$form->createComboBoxJoin("control_billetes", "control_billetes", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si")), $esta_caja->getControlBilletes()); $form->createComboBoxJoin("abierta", "abierta", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si")), $esta_caja->getAbierta()); $page->addComponent($form); if ($esta_caja->getControlBilletes()) { $page->addComponent(new TitleComponent("Billetes en esta caja", 3)); $tabla = new TableComponent(array("id_billete" => "Billete", "cantidad" => "Cantidad"), BilleteCajaDAO::search(new BilleteCaja(array("id_caja" => $_GET["cid"])))); function funcion_billete($id_billete) { return BilleteDAO::getByPK($id_billete) ? BilleteDAO::getByPK($id_billete)->getNombre() : "------"; } $tabla->addColRender("id_billete", "funcion_billete"); $tabla->addOnClick("id_billete", "(function(a){window.location = 'efectivo.billete.ver.php?bid='+a;})"); $page->addComponent($tabla); } $page->addComponent(new TitleComponent("Aperturas")); $tabla = new TableComponent(array("fecha" => "Fecha", "saldo" => "Saldo", "id_cajero" => "Cajero"), AperturaCajaDAO::search(new AperturaCaja(array("id_caja" => $_GET["cid"])))); function funcion_cajero($id_cajero) { return UsuarioDAO::getByPK($id_cajero) ? UsuarioDAO::getByPK($id_cajero)->getNombre() : "------"; } $tabla->addColRender("id_cajero", "funcion_cajero"); $page->addComponent($tabla); $page->addComponent(new TitleComponent("Cortes")); $tabla = new TableComponent(array("fecha" => "Fecha", "saldo_real" => "Saldo Encontrado", "saldo_esperado" => "Saldo Esperado", "saldo_final" => "Saldo Final", "id_cajero" => "Cajero"), CorteDeCajaDAO::search(new CorteDeCaja(array("id_caja" => $_GET["cid"])))); $tabla->addColRender("id_cajero", "funcion_cajero"); $page->addComponent($tabla); $page->addComponent(new TitleComponent("Cierres")); $tabla = new TableComponent(array("fecha" => "Fecha", "saldo_real" => "Saldo Encontrado", "saldo_esperado" => "Saldo Esperado", "id_cajero" => "Cajero"), CierreCajaDAO::search(new CierreCaja(array("id_caja" => $_GET["cid"])))); $tabla->addColRender("id_cajero", "funcion_cajero"); $page->addComponent($tabla); $page->render();
/** * *Valida si una maquina que realizara peticiones al servidor pertenece a una sucursal. * * @param billetes json Ids de billetes y sus cantidades con los que inicia esta caja * @param saldo float Saldo con el que empieza a funcionar la caja * @param client_token string El token generado por el POS client * @param control_billetes bool Si se quiere llevar el control de billetes en la caja * @param id_cajero int Id del cajero que iniciara en esta caja en caso de que no sea este el que abre la caja * @return detalles_sucursal json Si esta es una sucursal valida, detalles sucursal contiene un objeto con informacion sobre esta sucursal. **/ public static function AbrirCaja($client_token, $control_billetes, $id_caja, $saldo, $billetes = null, $id_cajero = null) { Logger::log("Abriendo caja"); //Se validan los parametros obtenidos $validar = self::validarParametrosCaja($id_caja, null, $client_token, null, null, $saldo, $control_billetes); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar, 901); } $caja = CajaDAO::getByPK($id_caja); //verifica que la caja este activa if (!$caja->getActiva()) { Logger::error("La caja no esta activa y no puede ser abierta"); throw new Exception("La caja no esta activa y no puede ser abierta", 901); } //verifica que la caja no este abierta if ($caja->getAbierta()) { Logger::warn("La caja ya ha sido abierta"); throw new Exception("La caja ya ha sido abierta", 901); } //verifica que el id cajero exista en la base de datos if (!is_null($id_cajero)) { $cajero = UsuarioDAO::getByPK($id_cajero); if (is_null($cajero)) { Logger::error("El cajero con id " . $id_cajero . " no existe"); throw new Excetion("El cajero no existe", 901); } if ($cajero->getIdRol() != 3) { Logger::error("El usuario obtenido como cajero no es un cajero, no tiene rol 3"); throw new Exception("El usuario obtenido como cajero no es un cajero", 901); } } //Se declara la apertura de la caja $apertura_caja = new AperturaCaja(); $apertura_caja->setIdCaja($id_caja); $apertura_caja->setFecha(time()); $apertura_caja->setIdCajero($id_cajero); $apertura_caja->setSaldo($saldo); $caja->setAbierta(1); $caja->setSaldo($saldo); $caja->setControlBilletes($control_billetes); DAO::transBegin(); try { //Inserta los billetes en la caja y guarda los cambios en apetura caja y caja //El acto de abrir una caja da por hecho que no tiene ningun billete, pues al cerrar la caja se vaciaron. CajaDAO::save($caja); CajasController::modificarCaja($id_caja, 1, $billetes, 0); AperturaCajaDAO::save($apertura_caja); if ($control_billetes) { $billete_apertura_caja = new BilleteAperturaCaja(array("id_apertura_caja" => $apertura_caja->getIdAperturaCaja())); $billetes = object_to_array($billetes); foreach ($billetes as $billete) { $billete_apertura_caja->setIdBillete($billete["id_billete"]); $billete_apertura_caja->setCantidad($billete["cantidad"]); BilleteAperturaCajaDAO::save($billete_apertura_caja); } } } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo abrir la caja: " . $e, 901); if ($e->getCode() == 901) { throw new Exception("No se pudo abrir la caja: " . $e->getMessage(), 901); } throw new Exception("No se pudo abrir la caja", 901); } DAO::transEnd(); Logger::log("Caja abierta exitosamente"); return array("detalles_sucursal" => $apertura_caja->getIdAperturaCaja()); }