public function getTableData()
 {
     $input = Request::createFromGlobals();
     $returnData = [];
     // Get all records
     $records = Producto::where('id', '>', 0);
     $returnData['total'] = $records->count();
     // Get only a specific class
     if ($input->clase != '') {
         $records->whereHas('clases', function ($query) use($input) {
             $query->whereIdClase($input->clase);
         });
     }
     // Filter results
     if ($input->searchString != '') {
         $records->where(function ($query) use($input) {
             $query->where('nombre', 'LIKE', '%' . $input->searchString . '%')->orWhere('codigo', 'LIKE', '%' . $input->searchString . '%');
         });
     }
     $returnData['filtered'] = $records->count();
     // Get the actual data with limits
     $records->skip($input->displayStart)->take($input->recordsPerPage);
     $returnData['records'] = $records->get();
     return $returnData;
 }
Exemple #2
0
 public function storeMaterialOficina()
 {
     $input = Request::createFromGlobals();
     // Validaciones para materiales de oficina
     // Revisar que el código no se repita entre los otros materiales de oficina
     $tmp_record = Producto::where('codigo', $input->codigo)->whereHas('clases', function ($query) use($input) {
         return $query->where('id_clase', 11);
         // Clase para materiales de oficina
     })->first();
     if ($tmp_record) {
         return new AjaxResponse('error', 'Ese código de producto ya existe');
     }
     $record = Producto::create(['origen' => 'oficina', 'codigo' => $input->codigo, 'nombre' => $input->nombre, 'precio_promedio' => 0, 'dias_promedio' => 0, 'meses_inventario' => 0, 'stock_minimo' => 0, 'stock_maximo' => 0, 'stock_actual' => 0, 'stock_transito' => 0, 'consumo_promedio' => 0, 'unidad' => $input->unidad, 'sugerido' => 0]);
     $record->clases()->attach(11);
     // Clase para materiales de oficina
     return new AjaxResponse('success', '', $record);
 }
        $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]);
        }
    }
}