Esempio n. 1
0
<?php

use EasyFlow\Master\Models\Request;
use EasyFlow\Master\Models\Connector;
use EasyFlow\Master\Controllers\LogController;
require_once dirname(dirname(__DIR__)) . "/includes/configuration.php";
try {
    $periodosArray = [];
    $periodos_bpcs = Connector::connect(\FlowSettingsCore::get(FLOW_RECLAMOS, 'REC_CONN_PERIODOS_BPCS'));
    $first_request = Request::where('request_flow', FLOW_RECLAMOS)->first();
    $first_year = date('Y', strtotime($first_request->request_start_date));
    $first_month = date('m', strtotime($first_request->request_start_date));
    $first_date = strtotime($first_year . '-' . $first_month);
    foreach ($periodos_bpcs->data as $periodo) {
        if (strtotime($periodo['PLYEAR'] . '-' . $periodo['PLPERD']) >= $first_date) {
            $start = substr($periodo['PLSDAT'], 0, 4) . '-' . substr($periodo['PLSDAT'], 4, 2) . '-' . substr($periodo['PLSDAT'], 6, 2);
            $end = substr($periodo['PLEDAT'], 0, 4) . '-' . substr($periodo['PLEDAT'], 4, 2) . '-' . substr($periodo['PLEDAT'], 6, 2);
            $periodosArray[] = ['name' => 'Período BPCS: ' . $periodo['PLYEAR'] . '-' . $periodo['PLPERD'] . ' (Desde ' . $start . ' hasta ' . $end . ')', 'shortname' => $periodo['PLYEAR'] . '-' . $periodo['PLPERD'], 'start' => $start, 'end' => $end];
        }
    }
    // Write file
    file_put_contents(APP_ENVPATH . '/includes/InterfaceData/Periodos.json', json_encode($periodosArray));
} catch (Exception $e) {
    LogController::logCron('Error al ejecutar cron (JobDailyActionSummaryi.php)', ['error' => $e->getMessage()], 'ERROR');
    echo $e->getMessage();
}
        $productos = Connector::connect(FlowSettings::get(FLOW_ADQUISICIONES, 'ADQ_CONNECTION_PRODUCTOS_HACIENDAS'));
        $productos = $productos->data;
        //*******************************************************************
        // 2. Ingreso y datos calculados
        //*******************************************************************
        foreach ($productos as $producto_bpcs) {
            //***********************************************
            // Ingreso de datos básicos
            //***********************************************
            // Ingreso los artículos a la base del BPM
            $producto = Producto::firstOrNew(['origen' => $clase->origen_productos, 'codigo' => $producto_bpcs['HCPROID']]);
            if (!$producto->id) {
                $producto->save();
            }
            $producto->nombre = $producto_bpcs['HCPRONOC'];
            $producto->unidad = $producto_bpcs['HCPROUNM'];
            $producto->tipo = $producto_bpcs['HCPROBIE'];
            $producto->save();
            // Sincronizo las clases del producto
            $producto->clases()->sync([$clase->id]);
        }
        // Consultar y actualizar stocks desde web service
        $result = Connector::connect(FlowSettings::get(FLOW_ADQUISICIONES, 'ADQ_CONNECTION_STOCKS_HACIENDAS'));
        $result = $result->data;
        $result = json_decode($result['Longvarchar']);
        foreach ($result as $producto) {
            $producto_bpm = Producto::where('codigo', $producto->HaKaCId)->where('origen', $clase->origen_productos)->first();
            $producto_bpm->update(['stock_actual' => $producto->HaKacSto]);
        }
    }
}