/**
  * @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());
 }
Beispiel #3
0
 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());
 }