/** * Realiza el apunte de caja si procede según la forma de pago */ public function anotaEnCaja() { if ($this->getIDFP()->getAnotarEnCaja()->getIDTipo() == '1') { $arqueo = new CajaArqueos(); $arqueo->anotaEnCaja($this); } }
/** * Cambia de estado al conjunto de recibos recibidos * * Actualiza su estado, la fecha de vencimiento y la cuenta contable * Además genera apunte de caja si procede * * @return array */ public function CobrarAction() { if ($this->values['permisos']['permisosModulo']['UP']) { $formaPago = new FormasPago($this->request['idFP']); $anotarEnCaja = $formaPago->getAnotarEnCaja()->getIDTipo() == '1'; $estadoRecibo = $formaPago->getEstadoRecibo()->getIDTipo(); $cContable = $formaPago->getCContable(); $caja = new CajaArqueos(); foreach ($this->request['RecibosClientes'] as $recibo) { $objeto = new RecibosClientes($recibo['IDRecibo']); $objeto->setVencimiento($this->request['fechaCobro']); $objeto->setIDEstado($estadoRecibo); $objeto->setCContable($cContable); if ($objeto->save() and $anotarEnCaja) { $caja->anotaEnCaja($objeto, $this->request['idFP']); } if (count($objeto->getErrores) > 0) { print_r($objeto->getErrores()); } } unset($objeto); unset($formaPago); unset($caja); return $this->listAction(); } else { return array('template' => '_global/forbiden.html.twig'); } }
/** * 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 * * * @return boolean */ private function validaTraspaso() { if ($this->request['IDTpvDestino'] == '') { $this->errorTraspaso[] = "Debe indicar un TPV destino"; } if ($this->request['IDTpvDestino'] == $this->request['IDTpvOrigen']) { $this->errorTraspaso[] = "El TPV destino no puede ser igual al de origen"; } foreach ($this->request['traspaso'] as $value) { if ($value['importeDestino'] > $value['importeOrigen']) { $this->errorTraspaso[] = "El importe a traspasar supera el importe origen"; } } // Comprobar que la caja origen no esté cerrada $arqueoOrigen = new CajaArqueos($this->request['IDArqueo']); if ($arqueoOrigen->estaCerrada()) { $this->errorTraspaso[] = "La caja de origen está cerrada. No se puede traspasar"; } // Comprobar que la caja destino no esté cerrada $arqueoDestino = new CajaArqueos(); $arqueoDestino->setIDSucursal($this->request['IDSucursalDestino']); $arqueoDestino->setIDTpv($this->request['IDTpvDestino']); $arqueoDestino->setDia(date('Y-m-d')); if ($arqueoDestino->estaCerrada()) { $this->errorTraspaso[] = "La caja de destino está cerrada. No se puede traspasar"; } return count($this->errorTraspaso) == 0; }
/** * Abre la caja en el día actual con los importes * de la caja que esté cerrada inmediatamente antes. * * Si la caja inmediatamente anterior no estuviera cerrada, la cierra * * Se crean tantos apuntes de apertura como formas de pago * haya en el arqueo de la caja cerrada * * @return integer El id del arqueo creado */ public function apertura() { // Localizar el arqueo anterior. $filtro = "IDSucursal='{$this->IDSucursal}' and IDTpv='{$this->IDTpv}'"; $arqueo = new CajaArqueos(); $rows = $arqueo->cargaCondicion("IDArqueo,Dia,CajaCerrada", $filtro, "Dia DESC"); $arqueoAnterior = $rows[0]; if (count($rows)) { $arqueo = new CajaArqueos($arqueoAnterior['IDArqueo']); // Si el arqueo anterior está abierto, lo cierro if (!$arqueoAnterior['CajaCerrada']) { $arqueo->cierra(); } // Agrupar los importes por forma de pago $importes = $arqueo->getResumen(); } else { $importes = array(); } unset($arqueo); // Abrir la caja $idArqueo = parent::create(); if ($idArqueo) { // Crear los apuntes de apertura foreach ($importes as $key => $importe) { $dia = new Fecha($rows[0]['Dia']); $apunte = new CajaLineas(); $apunte->setIDArqueo($idArqueo); $apunte->setFecha(date('Y-m-d H:i:s')); $apunte->setConcepto('APERTURA CON EL CIERRE DEL DIA ' . $dia->getddmmaaaa()); $apunte->setIDFP($importe['IDFP']); $apunte->setOrigen(0); // Apertura $apunte->setEntidad('CajaArqueos'); $apunte->setIDEntidad($arqueoAnterior['IDArqueo']); $apunte->setImporte($importe['Importe']); $apunte->setIDAgente($_SESSION['usuarioPortal']['Id']); $apunte->create(); $this->_errores = $apunte->getErrores(); unset($apunte); unset($dia); } } return $idArqueo; }