/** * Cerrar la caja */ public function CerrarAction() { if ($this->request["METHOD"] == "POST") { if ($this->values['permisos']['A']) { $datos = new CajaArqueos($this->request[$this->entity][$this->form->getPrimaryKey()]); $datos->cierra(); $this->values['errores'] = $datos->getErrores(); $this->values['alertas'] = $datos->getAlertas(); $this->values['datos'] = $datos; return array('template' => $this->entity . '/edit.html.twig', 'values' => $this->values); } else { return array('template' => '_global/forbiden.html.twig'); } } else { return array('template' => $this->entity . '/index.html.twig'); } }
/** * 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; }