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); }
$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) {