/** * @expectedException BusinessLogicException */ public function testNuevaCuentaEstadoResultadosDeudoraNoIngresos() { $id_catalogo_cuentas = self::NuevoCatalogoCuentas(); ContabilidadController::NuevaCuenta(0, 1, 'Ingresos', 1, 0, $id_catalogo_cuentas, "Deudora", "Bancos", "Estado de Resultados", $id_cuenta_padre = ""); }
/** * *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()); }
protected function GenerateResponse() { try { $this->response = ContabilidadController::NuevaCuenta(isset($_POST['abonos_aumentan']) ? $_POST['abonos_aumentan'] : null, isset($_POST['cargos_aumentan']) ? $_POST['cargos_aumentan'] : null, isset($_POST['clasificacion']) ? $_POST['clasificacion'] : null, isset($_POST['es_cuenta_mayor']) ? $_POST['es_cuenta_mayor'] : null, isset($_POST['es_cuenta_orden']) ? $_POST['es_cuenta_orden'] : null, isset($_POST['id_catalogo_cuentas']) ? $_POST['id_catalogo_cuentas'] : null, isset($_POST['naturaleza']) ? $_POST['naturaleza'] : null, isset($_POST['nombre_cuenta']) ? $_POST['nombre_cuenta'] : null, isset($_POST['tipo_cuenta']) ? $_POST['tipo_cuenta'] : null, isset($_POST['id_cuenta_padre']) ? $_POST['id_cuenta_padre'] : ""); } catch (Exception $e) { //Logger::error($e); throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage())); } }
/** * *Crea un nuevo concepto de ingreso *Update : En la respuesta basta con solo indicar success : true | false, y en caso de fallo indicar el por que. * * @param id_cuenta_contable int El id de la cuenta contable a donde se registraran los ingresos correspondientes a este concepto * @param nombre string Justificacion que aparecer despus de la leyenda "ingreso por concepto de" * @param descripcion string Descripcion larga de este concepto de ingreso * @return id_concepto_ingreso int Id autogenerado por la creacion del nuevo concepto de ingreso **/ public static function NuevoConceptoIngreso($id_cuenta_contable, $nombre, $descripcion = null) { Logger::log("Creando nuevo concepto de ingreso"); //valida los parametros de concepto ingreso $validar = self::validarParametrosConceptoIngreso(null, $nombre, $descripcion, $id_cuenta_contable); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } //Inicializa el registro de ingreso $concepto_ingreso = new ConceptoIngreso(); $concepto_ingreso->setNombre(trim($nombre)); $concepto_ingreso->setIdCuentaContable($id_cuenta_contable); $concepto_ingreso->setDescripcion($descripcion); $concepto_ingreso->setActivo(1); DAO::transBegin(); try { ConceptoIngresoDAO::save($concepto_ingreso); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo crear el nuevo concepto de ingreso: " . $e); throw new Exception("No se pudo crear el nuevo concepto de ingreso"); } DAO::transEnd(); Logger::log("Concepto de ingreso creado exitosamente"); $cuenta_padre = CuentaContableDAO::getByPK($id_cuenta_contable); ContabilidadController::NuevaCuenta($cuenta_padre->getAbonosAumentan(), $cuenta_padre->getCargosAumentan(), $cuenta_padre->getClasificacion(), $cuenta_padre->getEsCuentaMayor(), $cuenta_padre->getEsCuentaOrden(), $cuenta_padre->getIdCatalogoCuentas(), $cuenta_padre->getNaturaleza(), $nombre, $cuenta_padre->getTipoCuenta(), $id_cuenta_contable); return array("id_concepto_ingreso" => $concepto_ingreso->getIdConceptoIngreso()); }