protected function GenerateResponse() { try { $this->response = ContabilidadController::BuscarCuenta(isset($_POST['id_catalogo_cuentas']) ? $_POST['id_catalogo_cuentas'] : null, isset($_POST['afectable']) ? $_POST['afectable'] : "", isset($_POST['clasificacion']) ? $_POST['clasificacion'] : "", isset($_POST['clave']) ? $_POST['clave'] : "", isset($_POST['consecutivo_en_nivel']) ? $_POST['consecutivo_en_nivel'] : "", isset($_POST['es_cuenta_mayor']) ? $_POST['es_cuenta_mayor'] : "", isset($_POST['es_cuenta_orden']) ? $_POST['es_cuenta_orden'] : "", isset($_POST['id_cuenta_contable']) ? $_POST['id_cuenta_contable'] : "", isset($_POST['id_cuenta_padre']) ? $_POST['id_cuenta_padre'] : "", isset($_POST['naturaleza']) ? $_POST['naturaleza'] : "", isset($_POST['nivel']) ? $_POST['nivel'] : "", isset($_POST['nombre_cuenta']) ? $_POST['nombre_cuenta'] : "", isset($_POST['tipo_cuenta']) ? $_POST['tipo_cuenta'] : ""); } catch (Exception $e) { //Logger::error($e); throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage())); } }
$page = new GerenciaComponentPage(); $page->addComponent(new TitleComponent("Nueva Cuenta")); $page->requireParam("idcc", "GET", "Este catalogo de cuentas no existe."); //forma de nueva caja $page->addComponent("<div class='POS Boton' onClick='window.location=\"contabilidad.cuentas.php?idcc={$_GET["idcc"]}\"'> << Regresar</div> "); $form = new DAOFormComponent(array(new CuentaContable())); $controller = new ContabilidadController(); $catalogo = $controller::DetalleCatalogoCuentas($_GET["idcc"]); $form->hideField(array("id_cuenta_contable", "clave", "nivel", "consecutivo_en_nivel", "afectable", "activa")); $form->addApiCall("api/contabilidad/cuenta/nueva"); $form->onApiCallSuccessRedirect("contabilidad.cuentas.nueva.php?idcc={$_GET['idcc']}"); $form->createComboBoxJoin("id_catalogo_cuentas", "id_catalogo_cuentas", array(array("id" => $_GET["idcc"], "caption" => $catalogo["descripcion"])), $_GET["idcc"]); $form->createComboBoxJoin("naturaleza", "naturaleza", array(array("id" => "Acreedora", "caption" => "Acreedora"), array("id" => "Deudora", "caption" => "Deudora"))); $form->createComboBoxJoin("tipo_cuenta", "tipo_cuenta", array(array("id" => "Balance", "caption" => "Balance"), array("id" => "Estado de Resultados", "caption" => "Estado de Resultados"))); $form->createComboBoxJoin("es_cuenta_orden", "es_cuenta_orden", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si"))); $form->createComboBoxJoin("es_cuenta_mayor", "es_cuenta_mayor", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si"))); $form->createComboBoxJoin("clasificacion", "clasificacion", array(array("id" => "Activo Circulante", "caption" => "Activo Circulante"), array("id" => "Activo Fijo", "caption" => "Activo Fijo"), array("id" => "Activo Diferido", "caption" => "Activo Diferido"), array("id" => "Pasivo Circulante", "caption" => "Pasivo Circulante"), array("id" => "Pasivo Largo Plazo", "caption" => "Pasivo Largo Plazo"), array("id" => "Capital Contable", "caption" => "Capital Contable"), array("id" => "Ingresos", "caption" => "Ingresos"), array("id" => "Egresos", "caption" => "Egresos"))); $form->createComboBoxJoin("abonos_aumentan", "abonos_aumentan", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si"))); $form->createComboBoxJoin("cargos_aumentan", "cargos_aumentan", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si"))); $form->makeObligatory(array("nombre_cuenta", "naturaleza", "clasificacion", "tipo_cuenta", "es_cuenta_mayor", "es_cuenta_orden", "abonos_aumentan", "cargos_aumentan", "id_catalogo_cuentas")); $ctas = ContabilidadController::BuscarCuenta($_GET["idcc"]); $cuentas = array(); //para enviar el id de cuenta contable en el combo de id_cuenta_padre se debe hacer este foreach foreach ($ctas["resultados"] as $cta) { array_push($cuentas, array("id" => $cta->getIdCuentaContable(), "caption" => $cta->getNombreCuenta())); } //se llena el combo con los ids cambiados para que no se envien los id_cuenta_padre si no el id de la cuenta $form->createComboBoxJoin("id_cuenta_padre", "nombre_cuenta", $cuentas); $page->addComponent($form); //render the page $page->render();
/** * *Este metodo creara una caja asociada a una sucursal. Debe haber una caja por CPU. * * @param token string el token que pos_client otorga por equipo * @param codigo_caja string El codigo de uso interno de la caja * @param impresoras json Un objeto con las impresoras asociadas a esta sucursal. * @param basculas json Un objeto con las basculas conectadas a esta caja. * @param descripcion string Descripcion de esta caja * @return id_caja int Id de la caja generada por la isnercion **/ public static function NuevaCaja($token, $basculas = null, $control_billetes = 0, $descripcion = null, $id_sucursal = null, $impresoras = null) { Logger::log("Creando nueva caja"); //Se validan los parametros de caja, si no se recibe sucursal, se intenta //tomar de la sesion $validar = self::validarParametrosCaja(null, $id_sucursal, $token, $descripcion); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } if (is_null($id_sucursal)) { $id_sucursal = self::getSucursal(); if (is_null($id_sucursal)) { Logger::error("No se pudo obtener la sucursal actual y no se obtuvo ninguna sucursal"); throw new Exception("No se pudo obtener la sucursal actual y no se obtuvo ninguna sucursal"); } } //si no recibimos control de billetes, lo ponemos en cero. if (is_null($control_billetes)) { $control_billetes = 0; } $caja = ContabilidadController::BuscarCuenta(1, $afectable = "", $clasificacion = "Activo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Deudora", $nivel = "", $nombre_cuenta = "Caja", $tipo_cuenta = "Balance"); if (count($caja["resultados"]) < 1) { Logger::Log("Debe de existir la cuenta contable 'Caja' para dar de alta una caja"); throw new BusinessLogicException("Debe de existir la cuenta contable 'Caja' para dar de alta una caja"); } //se inserta la cuenta contable $res = ContabilidadController::NuevaCuenta($caja["resultados"][0]->getAbonosAumentan(), $caja["resultados"][0]->getCargosAumentan(), $caja["resultados"][0]->getClasificacion(), $caja["resultados"][0]->getEsCuentaMayor(), $caja["resultados"][0]->getEsCuentaOrden(), $caja["resultados"][0]->getIdCatalogoCuentas(), $caja["resultados"][0]->getNaturaleza(), $descripcion, $caja["resultados"][0]->getTipoCuenta(), $caja["resultados"][0]->getIdCuentaContable()); //Se inicializa el registro de caja $caja = new Caja(); $caja->setIdSucursal($id_sucursal); $caja->setAbierta(0); $caja->setActiva(1); $caja->setControlBilletes($control_billetes); $caja->setDescripcion($descripcion); $caja->setIdSucursal($id_sucursal); $caja->setSaldo(0); $caja->setToken($token); $caja->setIdCuentaContable($res["id_cuenta_contable"]); DAO::transBegin(); try { //Se guarda el registro de caja y si se recibieron impresoras se registran con la caja //en la tabla impresora_caja. CajaDAO::save($caja); if (!is_null($impresoras)) { $impresoras = object_to_array($impresoras); if (!is_array($impresoras)) { throw new Exception("Las impresoras son invalidas", 901); } $impresora_caja = new ImpresoraCaja(array("id_caja" => $caja->getIdCaja())); foreach ($impresoras as $id_impresora) { if (is_null(ImpresoraDAO::getByPK($id_impresora))) { throw new Exception("La impresora con id: " . $id_impresora . " no existe", 901); } $impresora_caja->setIdImpresora($id_impresora); ImpresoraCajaDAO::save($impresora_caja); } } } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo crear la caja: " . $e); if ($e->getCode() == 901) { throw new Exception("No se pudo crear la caja: " . $e->getMessage(), 901); } throw new Exception("No se pudo crear la caja", 901); } DAO::transEnd(); Logger::log("caja creada exitosamente"); return array("id_caja" => $caja->getIdCaja()); }