Example #1
0
 /**
  * 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;
 }