/** * *Edita la informacion de una caja * * @param id_caja int Id de la caja a editar * @param descripcion string Descripcion de la caja * @param token string Token generado por el pos client **/ public static function EditarCaja($id_caja, $control_billetes = null, $descripcion = null, $token = null) { Logger::log("Editando caja"); //Valida los parametros de la caja y que la caja este activa $validar = self::validarParametrosCaja($id_caja, null, $token, $descripcion); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } $caja = CajaDAO::getByPK($id_caja); if (!$caja->getActiva()) { Logger::error("La caja no esta activa, no se puede editar"); throw new Exception("La caja no esta activa, no se puede editar"); } //Si un parametro no es nulo, se toma como actualizacion if (!is_null($descripcion)) { $caja->setDescripcion($descripcion); $cc = CuentaContableDAO::getByPK($caja->getIdCuentaContable()); if (count($cc) > 0) { $cc->setNombreCuenta($descripcion); DAO::transBegin(); try { CuentaContableDAO::save($cc); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo editar la cuenta contable de la caja {$descripcion}: " . $e); throw new Exception("No se pudo editar la cuenta contable de la caja {$descripcion}"); } DAO::transEnd(); Logger::log("Cuenta contable de la caja: {$descripcion} editada correctamente"); } } //fin if $descripcion if (!is_null($token)) { $caja->setToken($token); } if (!is_null($control_billetes)) { $caja->setControlBilletes($control_billetes); } DAO::transBegin(); try { CajaDAO::save($caja); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo editar la caja: " . $e); throw new Exception("No se pudo editar la caja"); } DAO::transEnd(); Logger::log("Caja editada exitosamente"); }
define("BYPASS_INSTANCE_CHECK", false); require_once "../../../server//bootstrap.php"; $page = new GerenciaTabPage(); // Parametros necesarios // $controller = new ContabilidadController(); $page->requireParam("cid", "GET", "Esta empresa no existe."); $cuenta = $controller::DetalleCuenta($_GET["cid"]); $cuentas = $controller::BuscarCuenta($cuenta["id_catalogo_cuentas"]); //titulos $page->addComponent(new TitleComponent("Editando cuenta " . $cuenta["nombre_cuenta"], 2)); $menu = new MenuComponent(); $menu->addItem("<< Regresar", "contabilidad.cuentas.ver.php?cid=" . $_GET["cid"]); $page->addComponent($menu); $form = new DAOFormComponent(CuentaContableDAO::getByPK($_GET["cid"])); $form->hideField(array("id_cuenta_contable", "clave", "nivel", "consecutivo_en_nivel", "afectable", "activa", "clasificacion", "id_catalogo_cuentas")); $form->sendHidden("id_cuenta_contable"); $form->createComboBoxJoin("cargos_aumentan", "cargos_aumentan", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si")), $cuenta["cargos_aumentan"]); $form->createComboBoxJoin("abonos_aumentan", "abonos_aumentan", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si")), $cuenta["abonos_aumentan"]); $form->createComboBoxJoin("es_cuenta_mayor", "es_cuenta_mayor", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si")), $cuenta["es_cuenta_mayor"]); $form->createComboBoxJoin("es_cuenta_orden", "es_cuenta_orden", array(array("id" => 0, "caption" => "No"), array("id" => 1, "caption" => "Si")), $cuenta["es_cuenta_orden"]); $cuentas_p = array(); //para enviar el id de cuenta contable en el combo de id_cuenta_padre se debe hacer este foreach foreach ($cuentas["resultados"] as $cta) { array_push($cuentas_p, 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_p, $cuenta["id_cuenta_padre"]); $form->createComboBoxJoin("tipo_cuenta", "tipo_cuenta", array(array("id" => "Balance", "caption" => "Balance"), array("id" => "Estado de Resultados", "caption" => "Estado de Resultados")), $cuenta["tipo_cuenta"]); $form->createComboBoxJoin("naturaleza", "naturaleza", array(array("id" => "Acreedora", "caption" => "Acreedora"), array("id" => "Deudora", "caption" => "Deudora")), $cuenta["naturaleza"]);
/** * * *Dado un id obtiene una cuenta contable en el sistema que corresponda con ese id. * * @param id_cuenta_contable int id de la cuenta contable **/ public static function DetalleCuenta($id_cuenta_contable) { $cuenta = CuentaContableDAO::getByPK($id_cuenta_contable); if (is_null($cuenta)) { throw new InvalidDatabaseOperationException("La cuenta con id " . $id_cuenta_contable . " no existe"); } return object_to_array($cuenta); }
public function testNuevaCuentaSeaAfectablePadreNoAfectable() { $id_catalogo_cuentas = self::NuevoCatalogoCuentas(); $randmon_str = "Cuenta Padre " . time(); $id_nueva_cuenta = ContabilidadController::NuevaCuenta(0, 1, 'Activo Circulante', 1, 0, $id_catalogo_cuentas, "Deudora", $randmon_str, "Balance", $id_cuenta_padre = ""); $padre = CuentaContableDAO::getByPK($id_nueva_cuenta['id_cuenta_contable']); $this->assertEquals($padre->getAfectable(), 1); $randmon_str = "Cuenta Hija " . time(); $id_nueva_cuenta2 = ContabilidadController::NuevaCuenta(0, 1, 'Activo Circulante', 1, 0, $id_catalogo_cuentas, "Deudora", $randmon_str, "Balance", $id_nueva_cuenta['id_cuenta_contable']); $hija = CuentaContableDAO::getByPK($id_nueva_cuenta2['id_cuenta_contable']); //se vuelve a trar a cuenta padre para obtener el valor actualzado $padre = CuentaContableDAO::getByPK($id_nueva_cuenta['id_cuenta_contable']); $this->assertEquals($hija->getAfectable(), 1); $this->assertEquals($padre->getAfectable(), 0); }
/** * *Edita un concepto de ingreso * * @param id_concepto_ingreso int Id del concepto de ingreso a modificar * @param id_cuenta_contable int El id de la cuenta contable * @param descripcion string Descripcion larga del concepto de ingreso * @param nombre string Justificacion que aparecera despues de la leyenda "ingreso por concepto de" **/ public static function EditarConceptoIngreso($id_concepto_ingreso, $id_cuenta_contable, $descripcion = null, $nombre = null) { Logger::log("Editando concepto de ingreso"); //valida si ha recibido algun parametro para la edicion if (!$nombre && !$descripcion && !$id_cuenta_contable) { Logger::warn("No se ha recibido un parametro a editar, no hay nada que editar"); throw new Exception("No se ha recibido un parametro a editar, no hay nada que editar"); } //valida los parametros recibidos $validar = self::validarParametrosConceptoIngreso($id_concepto_ingreso, $nombre, $descripcion, $id_cuenta_contable); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } $concepto_ingreso = ConceptoIngresoDAO::getByPK($id_concepto_ingreso); $cuenta = CuentaContableDAO::getByPK($id_cuenta_contable); //se toman como actualizacion aquellos parametros que no son null if (!is_null($nombre)) { $concepto_gasto->setNombre($nombre); $cuenta->setNombreCuenta($nombre); } if (!is_null($descripcion)) { $concepto_ingreso->setDescripcion($descripcion); } if (!is_null($monto)) { $concepto_ingreso->setIdCuentaContable($id_cuenta_contable); } DAO::transBegin(); try { ConceptoIngresoDAO::save($concepto_ingreso); CuentaContableDAO::save($cuenta); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo editar el concepto de ingreso: " . $e); throw new Exception("No se pudo editar el concepto de ingreso"); } DAO::transEnd(); Logger::log("Concepto de Ingreso editado exitosamente"); }