/** * Expide todas las líneas de expedición correspondientes * a la entidad $entidad y línea de entidad $idLineaEntidad * * @param string $entidad La entidad padre (AlbaranesCab,ManufacCab,TraspasosCab) * @param integer $idLineaEntidad El id de la línea de la entidad padre * @return float La cantidad de unidades expedidas */ public function expide($entidad, $idLineaEntidad) { $unidadesExpedidas = 0; $rows = $this->cargaCondicion("*", "Entidad='{$entidad}' and IDLineaEntidad='{$idLineaEntidad}' and Expedida='0'"); foreach ($rows as $row) { // Si no se han indicado unidades a expedir, // no se actualiza stock ni se genera mvto de almacen. if ($row['Unidades'] != 0) { $valores = array('UM' => $row['UnidadMedida'], 'Reales' => $row['Unidades'], 'Pales' => $row['Pales'], 'Cajas' => $row['Cajas'], 'Reservadas' => 0, 'Entrando' => 0); $mvtoAlmacen = new MvtosAlmacen(); $ok = $mvtoAlmacen->genera($row['Entidad'], 'S', $row['IDEntidad'], $row['IDAlmacen'], $row['IDArticulo'], $row['IDLote'], $row['IDUbicacion'], 0, $valores); // Valores con los que actualizar } $unidadesExpedidas += $row['Unidades']; if ($ok) { // Marcar la linea de expedición como expedida $expedicion = new Expediciones($row['IDLinea']); $expedicion->setExpedida(1); $expedicion->save(); } else { $expedicion = new Expediciones($row['IDLinea']); $expedicion->setExpedida(0); $expedicion->setUnidades(0); $expedicion->save(); $unidadesExpedidas = 0; } } unset($mvtoAlmacen); unset($expedicion); return $unidadesExpedidas; }
/** * Edita, actualiza o borrar un registro * * Viene siempre por POST * Actualiza o Borrar según el valor de $this->request['accion'] * * @return array con el template y valores a renderizar */ public function editAction() { switch ($this->request['accion']) { case 'G': //GUARDAR DATOS $datos = new Expediciones($this->request['Expediciones']['IDLinea']); $datos->bind($this->request['Expediciones']); if ($datos->valida($this->form->getRules())) { $datos->save(); } $this->values['errores'] = $datos->getErrores(); $this->values['alertas'] = $datos->getAlertas(); unset($datos); return $this->listAction($this->request['entidad'], $this->request['idEntidad']); break; case 'B': //BORRAR DATOS $datos = new Expediciones($this->request['Expediciones']['IDLinea']); $datos->erase(); $this->values['errores'] = $datos->getErrores(); unset($datos); return $this->listAction($this->request['entidad'], $this->request['idEntidad']); break; } }