/** * Crea una orden de compra con el ID y líneas, o adjunta líneas a una OC * @param String $oc * @param String $lineas * @return void */ public function crearOrdenCompraAjax() { $input = Request::createFromGlobals(); $oc = $input->oc; $lineas = $input->lineas; // Validar que no se combinen líneas de requisición de un proveedor ya asignado con otro proveedor // o con líneas de requisición que no tengan proveedor $proveedoresArray = []; $lineasArray = explode(',', $lineas); foreach ($lineasArray as $idLinea) { $linea_requisicion = RequisicionLinea::with('requisicion')->find($idLinea); if ($linea_requisicion->requisicion->proveedor) { $proveedoresArray[] = $linea_requisicion->requisicion->id_proveedor; } else { $proveedoresArray[] = 0; } } $proveedoresArray = array_unique($proveedoresArray); if (count($proveedoresArray) > 1) { return array('status' => false, 'message' => 'Algunas de las líneas ya tienen proveedor asignado. No se pueden combinar con líneas no asignadas'); } $requisicion = Requisicion::find($input->id); if ($oc == 'nueva_oc') { $orden_compra = OrdenCompra::create(array('ext_id' => '', 'id_clase' => $requisicion->id_clase, 'moneda' => 'dolar', 'fecha_inicio' => date('Y-m-d H:i:s'), 'fecha_fin' => '', 'estado' => 'I')); if ($proveedoresArray[0] != 0) { $orden_compra->id_proveedor = $proveedoresArray[0]; $orden_compra->save(); } $id = $orden_compra->id; } else { $id = $oc; } foreach ($lineasArray as $idLinea) { $linea_requisicion = RequisicionLinea::with('requisicion')->find($idLinea); OrdenCompraLinea::create(array('id_ordencompra' => $id, 'id_linea_requisicion' => $idLinea, 'id_producto' => $linea_requisicion->id_producto, 'cantidad' => $linea_requisicion->cantidad, 'valor' => 0, 'observacion' => $linea_requisicion->requisicion->observacion_creador, 'estado' => 'I')); } return $this->getFormDataAjax(); }
/** * Store a newly created resource in storage. * * @return Response */ public function store() { $input = Request::createFromGlobals(); $record = OrdenCompraLinea::create($input->all()); return new AjaxResponse('success', '', $record); }