コード例 #1
0
 /**
  * Realiza un traspaso de importes entre la caja actual y la de destino
  *
  * Las cajas pueden ser de distintas sucursales
  *
  * Realiza las siguientes validaciones antes de traspasar:
  *
  *   - Se haya indicado tpv destino y que sea distinto al de origen
  *   - Que los importes a traspasar no superen la cantidad origen
  *   - Que el arqueo del tpv origen no esté cerrado
  *   - Que el arqueo del tpv destino para la fecha actual no esté cerrado
  *
  */
 public function TraspasarAction()
 {
     if ($this->validaTraspaso()) {
         $arqueoOrigen = new CajaArqueos($this->request['CajaArqueos']['IDArqueo']);
         // Comprobar que la caja destino esté abierta, si no, abrirla
         $arqueoDestino = new CajaArqueos();
         $arqueoDestino->setIDSucursal($this->request['IDSucursalDestino']);
         $arqueoDestino->setIDTpv($this->request['IDTpvDestino']);
         $arqueoDestino->setDia(date('Y-m-d'));
         $idArqueoDestino = $arqueoDestino->estaAbierta();
         if (!$idArqueoDestino) {
             $idArqueoDestino = $arqueoDestino->apertura();
         }
         foreach ($this->request['traspaso'] as $idFormaPago => $importes) {
             if ($importes['importeDestino'] > 0) {
                 // Sacar de la caja origen
                 $apunteSalida = new CajaLineas();
                 $apunteSalida->setIDArqueo($this->request['CajaArqueos']['IDArqueo']);
                 $apunteSalida->setFecha(date('Y-m-d H:i:s'));
                 $apunteSalida->setConcepto("Salida por Traspaso a " . $arqueoDestino->getIDSucursal() . " " . $arqueoDestino->getIDTpv());
                 $apunteSalida->setIDFP($idFormaPago);
                 $apunteSalida->setOrigen('6');
                 // Traspasos
                 $apunteSalida->setImporte(-1 * $importes['importeDestino']);
                 $apunteSalida->setIDAgente($_SESSION['usuarioPortal']['Id']);
                 $apunteSalida->create();
                 $this->_errores = $apunteSalida->getErrores();
                 // Meter en la caja destino
                 $apunteEntrada = new CajaLineas();
                 $apunteEntrada->setIDArqueo($idArqueoDestino);
                 $apunteEntrada->setFecha(date('Y-m-d H:i:s'));
                 $apunteEntrada->setConcepto("Entrada por Traspaso de " . $arqueoOrigen->getIDSucursal() . " " . $arqueoOrigen->getIDTpv());
                 $apunteEntrada->setIDFP($idFormaPago);
                 $apunteEntrada->setOrigen('6');
                 // Traspasos
                 $apunteEntrada->setImporte($importes['importeDestino']);
                 $apunteEntrada->setIDAgente($_SESSION['usuarioPortal']['Id']);
                 $apunteEntrada->create();
                 $this->_errores = $apunteEntrada->getErrores();
             }
         }
     } else {
         $this->values['errores'] = $this->errorTraspaso;
     }
     unset($arqueoDestino);
     unset($arqueoOrigen);
     unset($apunteEntrada);
     unset($apunteSalida);
     $datos = new CajaArqueos($this->request[$this->entity]['IDArqueo']);
     $this->values['datos'] = $datos;
     unset($datos);
     return array('template' => $this->entity . "/edit.html.twig", 'values' => $this->values);
 }