コード例 #1
0
ファイル: WSAdquisiciones.php プロジェクト: elcuy/Novopan
function crearRequisicionHaciendas($estructura)
{
    LogController::logWebServiceIn('Llamada a web service: ' . __FILE__ . ' - ' . __FUNCTION__, compact('estructura'));
    $id_clase = 1;
    // Haciendas
    $requisicion = json_decode($estructura);
    $clase = Clase::find($id_clase);
    $solicitante = User::where('user_additional_data_1', $requisicion->id_solicitante)->first();
    if ($solicitante) {
        $requisicion->id_solicitante = $solicitante->user_id;
        $requisicion->nombre_solicitante = $solicitante->user_name;
    } else {
        return 'No hay un usuario en EasyFlow con ese codigo de empleado Novopan. Imposible continuar';
    }
    // Armar arreglo de cabecera de requisición
    $cabecera = ['ext_id' => $requisicion->id_requisicion, 'id_clase' => $id_clase, 'id_solicitante' => $requisicion->id_solicitante, 'nombre_solicitante' => $requisicion->nombre_solicitante, 'id_cc' => $requisicion->id_hacienda, 'nombre_cc' => $requisicion->nombre_hacienda, 'descripcion' => $requisicion->descripcion, 'prioridad' => $requisicion->prioridad];
    // Armar arreglo de líneas de requisición
    $lineas = [];
    foreach ($requisicion->lineas as $linea) {
        // Ingresar el producto si no existe
        $producto = Producto::firstOrNew(['origen' => $clase->origen_productos, 'codigo' => $linea->id_producto]);
        $producto->origen = $clase->origen_productos;
        $producto->codigo = $linea->id_producto;
        $producto->nombre = $linea->nombre_producto;
        $producto->unidad = $linea->unidad;
        $producto->tipo = $linea->tipo;
        $producto->save();
        // Sincronizar la clase 'haciendas' para el mismo producto
        $producto->clases()->sync([$clase->id]);
        // Armar la línea
        $lineas[] = ['ext_id' => $linea->id_linea, 'id_producto' => $producto->id, 'observacion_creador' => $linea->observacion, 'cantidad' => $linea->cantidad_solicitada, 'bodega_haciendas' => $requisicion->bodega];
    }
    $datos_requisicion = [compact(['cabecera', 'lineas'])];
    return IngresoRequisicionController::ingresarRequisicionesYSolicitudes($datos_requisicion);
}
コード例 #2
0
 $clases_bpcs = explode(',', $clase->clases_prod_bpcs);
 foreach ($clases_bpcs as $clase_bpcs) {
     //*******************************************************************
     // 1. Extracción de datos
     //*******************************************************************
     $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) {