/** * Cambia la forma de pago el flag de facturar del albaran * a peticion del usuario * * @return <type> */ public function cambiaAction() { if ($this->request['sino'] == 'on') { $estado = '1'; } else { $estado = '0'; } $pedido = new PedidosCab($this->request['idPedido']); $pedido->setFlagFacturar($estado); $pedido->setIDFP($this->request['idFormaPago']); $pedido->save(); unset($pedido); return $this->listAction(); }
private function cargarLineas($idPedido, $idFirma, $idCliente, $archivoCsv) { $nLinea = 0; $errores = array(); $csv = new Archivo($archivoCsv); $csv->setColumnsDelimiter(";"); if ($csv->open()) { $articulo = new Articulos(); while ($linea = $csv->readLine()) { $nLinea++; $codigo = trim($linea[0]); $unidades = trim($linea[1]); if ($codigo != '') { $filtro = "IdFirma='{$idFirma}' and (Codigo='{$codigo}' or CodigoEAN='{$codigo}')"; //echo $filtro,"\n"; $rows = $articulo->cargaCondicion("Id,IdFamilia,Codigo,Descripcion,Pvd", $filtro); $row = $rows[0]; if ($row['Id'] != '') { $articulo = new Articulos($row['Id']); $pedidoLinea = new PedidosLineas(); $pedidoLinea->setIdPedido($idPedido); $pedidoLinea->setIdFirma($idFirma); $pedidoLinea->setIdFamilia($row['IdFamilia']); $pedidoLinea->setIdCliente($idCliente); $pedidoLinea->setIdArticulo($row['Id']); $pedidoLinea->setDescripcion($row['Descripcion']); $pedidoLinea->setUnidades($unidades); $pedidoLinea->setPrecio($row['Pvd']); $pedidoLinea->setIva($articulo->getIdIva()->getIva()); $pedidoLinea->setImporte($unidades * $row['Pvd']); $id = $pedidoLinea->create(); if (!$id) { $errores[] = "Línea {$nLinea}: No se pudo crear la línea de pedido."; } } else { $errores[] = "Línea {$nLinea}: El artículo {$codigo} no existe o no pertenece a la firma del pedido."; } } } $csv->close(); unset($articulo); unset($pedidoLinea); // Recalcular los totales del pedido if (count($errores) == 0) { $pedido = new PedidosCab($idPedido); $pedido->save(); unset($pedido); } } else { $errores[] = "No se ha podido abrir el archivo cargado"; } return $errores; }
/** * Crea un registro nuevo en la entidad correspondiente * y su correspondiente registro en las líneas de recepción * * @return array con el template y valores a renderizar */ public function newAction() { switch ($this->request["entidad"]) { //CREAR UNA LINEA DE PEDIDO NUEVA Y SU CORRESPONDIENTE LINEA DE RECEPCION case 'PedidosCab': $pedido = new PedidosCab($this->request['idEntidad']); $lineaPedido = new PedidosLineas(); $lineaPedido->setIDPedido($this->request['idEntidad']); $lineaPedido->setIDArticulo($this->request['idArticulo']); $lineaPedido->setDescripcion($this->request['Descripcion']); $lineaPedido->setUnidades(0); $lineaPedido->setIDEstado(1); $lineaPedido->setIDAgente($_SESSION['usuarioPortal']['Id']); $lineaPedido->setIDAlmacen($pedido->getIDAlmacen()->getIDAlmacen()); if ($lineaPedido->valida()) { if ($lineaPedido->create()) { $this->creaLineaRecepcion($this->request['entidad'], $this->request['idEntidad'], $lineaPedido); $pedido->setIDAlmacen($pedido->getIDAlmacen()->getIDAlmacen()); $pedido->setIncidencias($pedido->getIncidencias() . "\nFuera de pedido: " . $lineaPedido->getDescripcion()); $pedido->save(); } } $this->values['errores'] = $lineaPedido->getErrores(); unset($pedido); unset($lineaPedido); break; //CREAR UNA LINEA DE PEDIDO NUEVA Y SU CORRESPONDIENTE LINEA DE RECEPCION //CREAR UNA LINEA DE PEDIDO NUEVA Y SU CORRESPONDIENTE LINEA DE RECEPCION case 'ManufacCab': $manufac = new ManufacCab($this->request['idEntidad']); $lineaManufac = new ManufacLineas(); $lineaManufac->setIDManufac($this->request['idEntidad']); $lineaManufac->setTipo(1); $lineaManufac->setIDArticulo($this->request['idArticulo']); $lineaManufac->setDescripcion($this->request['Descripcion']); $lineaManufac->setUnidades(1); $lineaManufac->setIDEstado(0); $lineaManufac->setIDAlmacen($manufac->getIDAlmacenDestino()->getIDAlmacen()); if ($lineaManufac->valida()) { if ($lineaManufac->create()) { $this->creaLineaRecepcion($this->request['entidad'], $this->request['idEntidad'], $lineaManufac); $manufac->setIDAlmacenDestino($manufac->getIDAlmacenDestino()->getIDAlmacen()); $manufac->setIncidencias($manufac->getIncidencias() . "\nFuera de pedido: " . $lineaManufac->getDescripcion()); $manufac->save(); } } $this->values['errores'] = $lineaManufac->getErrores(); unset($manufac); unset($lineaManufac); break; //CREAR UNA LINEA DE TRASPASO NUEVA Y SU CORRESPONDIENTE LINEA DE RECEPCION //CREAR UNA LINEA DE TRASPASO NUEVA Y SU CORRESPONDIENTE LINEA DE RECEPCION case 'TraspasosCab': $traspaso = new TraspasosCab($this->request['idEntidad']); $lineaTraspaso = new TraspasosLineas(); $lineaTraspaso->setIDTraspaso($this->request['idEntidad']); $lineaTraspaso->setTipo(1); $lineaTraspaso->setIDArticulo($this->request['idArticulo']); $lineaTraspaso->setDescripcion($this->request['Descripcion']); $lineaTraspaso->setUnidades(1); $lineaTraspaso->setIDEstado(0); $lineaTraspaso->setIDAlmacen($traspaso->getIDAlmacenDestino()->getIDAlmacen()); if ($lineaTraspaso->valida()) { if ($lineaTraspaso->create()) { $this->creaLineaRecepcion($this->request['entidad'], $this->request['idEntidad'], $lineaTraspaso); $traspaso->setIDAlmacenDestino($traspaso->getIDAlmacenDestino()->getIDAlmacen()); $traspaso->setIncidencias($traspaso->getIncidencias() . "\nFuera de traspaso: " . $lineaTraspaso->getDescripcion()); $traspaso->save(); } } $this->values['errores'] = $lineaTraspaso->getErrores(); unset($traspaso); unset($lineaTraspaso); break; } return $this->listAction($this->request['entidad'], $this->request['idEntidad']); }