예제 #1
0
 /**
  *
  *Obtener los detalles de un cliente.
  *
  * @param id_cliente int Id del cliente del cual se listarn sus datos.
  * @return cliente json Arreglo que contendr� la informaci�n del cliente. 
  **/
 public static function Detalle($id_cliente)
 {
     Logger::log("Listando los detalles del cliente");
     //valida que el cliente exista, que sea cliente y que este activo
     /*$validar = self::validarParametrosCliente($id_cliente);
     		if(is_string($validar))
     		{
     			Logger::error($validar);
     			throw new Exception($validar,901);
     		}*/
     //Se regresa un arreglo que contendra en el primer campo el cliente en si, en segundo campo estara
     //su direccion, el tercero sera su direccion alterna, el cuarto sera la sucursal en la que fue dado de alta,
     //la quinta sera el rol que tiene, la sexta sera su clasificacion, la septima la moneda que prefiere.
     $cliente = array();
     $c = UsuarioDAO::getByPK($id_cliente);
     array_push($cliente, $c);
     array_push($cliente, DireccionDAO::getByPK($c->getIdDireccion()));
     array_push($cliente, DireccionDAO::getByPK($c->getIdDireccionAlterna()));
     array_push($cliente, SucursalDAO::getByPK($c->getIdSucursal()));
     array_push($cliente, RolDAO::getByPK($c->getIdRol()));
     array_push($cliente, ClasificacionClienteDAO::getByPK($c->getIdClasificacionCliente()));
     array_push($cliente, MonedaDAO::getByPK($c->getIdMoneda()));
     array_push($cliente, ExtraParamsValoresDAO::getVals("usuarios", $id_cliente));
     return $cliente;
 }
예제 #2
0
function funcion_moneda($id_moneda)
{
    return MonedaDAO::getByPK($id_moneda) ? MonedaDAO::getByPK($id_moneda)->getNombre() : "-----";
}
예제 #3
0
 private static function ValidarParametrosTarifa($id_tarifa = null, $nombre = null, $tipo_tarifa = null, $id_moneda = null)
 {
     //Valida que la tarifa exista y este activa
     if (!is_null($id_tarifa)) {
         $tarifa = TarifaDAO::getByPK($id_tarifa);
         if (is_null($tarifa)) {
             return "La tarifa " . $id_tarifa . " no existe";
         }
         if (!$tarifa->getActiva()) {
             return "La tarifa " . $id_tarifa . " esta inactiva";
         }
     }
     //valida que el nombre sea valido y que no se repita
     if (!is_null($nombre)) {
         if (!self::validarLongitudDeCadena($nombre, 0, 95)) {
             throw InvalidDataException("nombre muy largo");
         }
         if (!is_null($id_tarifa)) {
             $tarifas = array_diff(TarifaDAO::search(new Tarifa(array("nombre" => trim($nombre)))), array(TarifaDAO::getByPK($id_tarifa)));
         } else {
             $tarifas = TarifaDAO::search(new Tarifa(array("nombre" => trim($nombre))));
         }
         foreach ($tarifas as $tarifa) {
             if ($tarifa->getActiva()) {
                 return "El nombre (" . trim($nombre) . ") ya esta en uso por la tarifa " . $tarifa->getIdTarifa();
             }
         }
     }
     //valida que el tipo de tarifa sea valido
     if (!is_null($tipo_tarifa) && $tipo_tarifa != "compra" && $tipo_tarifa != "venta") {
         return "El tipo de tarifa " . $tipo_tarifa . " no es valido, tiene que ser 'compra' o 'venta'";
     }
     //valida la moneda recibida
     if (!is_null($id_moneda)) {
         $moneda = MonedaDAO::getByPK($id_moneda);
         if (is_null($moneda)) {
             return "La moneda " . $id_moneda . " no existe";
         }
         if (!$moneda->getActiva()) {
             return "La moneda " . $id_moneda . " esta inactiva";
         }
     }
     //no se encontro error, regresa verdadero
     return true;
 }
 public static function validarParametrosUsuario($id_usuario = null, $id_direccion = null, $id_sucursal = null, $id_rol = null, $id_clasificacion_cliente = null, $id_clasificacion_proveedor = null, $id_moneda = null, $activo = null, $nombre = null, $rfc = null, $curp = null, $comision_ventas = null, $telefono_personal1 = null, $telefono_personal2 = null, $limite_credito = null, $descuento = null, $password = null, $salario = null, $correo_electronico = null, $pagina_web = null, $saldo_del_ejercicio = null, $ventas_a_credito = null, $representante_legal = null, $facturar_a_terceros = null, $dia_de_pago = null, $mensajeria = null, $intereses_moratorios = null, $denominacion_comercial = null, $dias_de_credito = null, $cuenta_de_mensajeria = null, $dia_de_revision = null, $codigo_usuario = null, $dias_de_embarque = null, $tiempo_entrega = null, $cuenta_bancaria = null, $id_tarifa_compra = null, $id_tarifa_venta = null, $id_usuario_padre = null)
 {
     //valida que el id del usuario exista en la base de datos
     if (!is_null($id_usuario)) {
         if (is_null(UsuarioDAO::getByPK($id_usuario))) {
             return "El usuario con id: " . $id_usuario . " no existe";
         }
     }
     //valida que el id de la direccion exista en la base de datos
     if (!is_null($id_direccion)) {
         if (is_null(DireccionDAO::getByPK($id_direccion))) {
             return "La direccion con id: " . $id_direccion . " no existe";
         }
     }
     //valida el id de la sucursal exista en la base de datos
     if (!is_null($id_sucursal)) {
         if (is_null(SucursalDAO::getByPK($id_sucursal))) {
             return "La sucursal con id: " . $id_sucursal . " no existe";
         }
     }
     //valida que el id del rol exista en la base de datos
     if (!is_null($id_rol)) {
         if (is_null(RolDAO::getByPK($id_rol))) {
             return "El rol con id: " . $id_rol . " no existe";
         }
     }
     //valida que la clasificacion del cliente exista en la base de datos
     if (!is_null($id_clasificacion_cliente)) {
         if (is_null(ClasificacionClienteDAO::getByPK($id_clasificacion_cliente))) {
             return "La clasificacion cliente con id: " . $id_clasificacion_cliente . " no existe";
         }
     }
     //valida que la clasificacion del proveedor exista en la base de datos
     if (!is_null($id_clasificacion_proveedor)) {
         if (is_null(ClasificacionProveedorDAO::getByPK($id_clasificacion_proveedor))) {
             return "La clasficiacion proveedor con id: " . $id_clasificacion_proveedor . " no existe";
         }
     }
     //valida que la moneda exista en la base de datos
     if (!is_null($id_moneda)) {
         Logger::log("Editando a moneda:" . $id_moneda);
         if (is_null(MonedaDAO::getByPK($id_moneda))) {
             return "La moneda con id: " . $id_moneda . " no existe";
         }
     }
     //valida el nombre
     if (!is_null($nombre)) {
         $e = ValidacionesController::validarLongitudDeCadena($nombre, 1, 100);
         if (!$e) {
             return "El numero de caracteres del nombre (" . $nombre . ") no esta entre 1 y 100";
         }
     }
     //valida el rfc, el rfc solo puede estar compuesto por Letras mayusculas y numeros
     if (!is_null($rfc)) {
         $e = ValidacionesController::validarLongitudDeCadena($rfc, 1, 30);
         if (!$e) {
             return "El numero de caracteres del rfc (" . $rfc . ") no esta entre 1 y 30";
         }
         if (preg_match('/[^A-Z0-9]/', $rfc)) {
             return "El rfc " . $rfc . " contiene caracteres fuera del rango A-Z y 0-9";
         }
     }
     //valida el curp, el curp solo puede tener letras mayusculas y numeros
     if (!is_null($curp)) {
         $e = ValidacionesController::validarLongitudDeCadena($curp, 1, 30);
         if (!$e) {
             return "El numero de caracteres de la curp (" . $curp . ") no esta entre 1 y 30";
         }
         if (preg_match('/[^A-Z0-9]/', $curp)) {
             return "El curp " . $curp . " contiene caracteres fuera del rango A-Z y 0-9";
         }
     }
     //valida la comision por ventas
     if (!is_null($comision_ventas)) {
         $e = ValidacionesController::validarNumero($comision_ventas, 0, 100);
         if (!$e) {
             return "La comision de ventas (" . $comision_ventas . ") no esta entre 0 y 100";
         }
     }
     //valida el telefono. Los telefonos solo pueden tener numeros, guiones,parentesis,asteriscos y espacios en blanco
     if (!is_null($telefono_personal1)) {
         $e = ValidacionesController::validarLongitudDeCadena($telefono_personal1, 1, 20);
         if (!$e) {
             return "El numero de caracteres del telefono personal (" . $telefono_personal1 . ") no esta entre 1 y 20";
         }
         if (preg_match('/[^0-9\\- \\(\\)\\*]/', $telefono_personal1)) {
             return "El telefono " . $telefono_personal1 . " tiene caracteres fuera del rango 0-9,-,(,),* o espacio vacío";
         }
     }
     //valida el telefono. Los telefonos solo pueden tener numeros, guiones,parentesis,asteriscos y espacios en blanco
     if (!is_null($telefono_personal2)) {
         $e = ValidacionesController::validarLongitudDeCadena($telefono_personal2, 1, 20);
         if (!$e) {
             return "El numero de caracteres del telefono personal alterno (" . $telefono_personal2 . ") no esta entre 1 y 20";
         }
         if (preg_match('/[^0-9\\- \\(\\)\\*]/', $telefono_personal2)) {
             return "El telefono " . $telefono_personal2 . " tiene caracteres fuera del rango 0-9,-,(,),* o espacio vacío";
         }
     }
     //valida el activo. Activo es una variable booleana.
     if (!is_null($activo)) {
         $e = ValidacionesController::validarEntero($activo, 0, 1);
         if (!$e) {
             return "La variable activo (" . $activo . ") no esta entre 0 y 1";
         }
     }
     //valida el limite de credito
     if (!is_null($limite_credito)) {
         $e = ValidacionesController::validarNumero($limite_credito, 0, 1.8E+200);
         if (!$e) {
             return "El limite de credito (" . $limite_credito . ") no esta entre 0 y 1.8e200";
         }
     }
     //valida el descuento. El descuento es un porcentaje y no puede ser mayor a 100
     if (!is_null($descuento)) {
         $e = ValidacionesController::validarNumero($descuento, 0, 100);
         if (!$e) {
             return "El descuento (" . $descuento . ") no esta entre 0 y 100";
         }
     }
     //valida el password, El pasword tiene que tener una longitud mayor o igual a 4
     if (!is_null($password)) {
         $e = ValidacionesController::validarLongitudDeCadena($password, 4, 32);
         if (!$e) {
             return "El numero de caracteres del password (" . $password . ") no esta entre 4 y 32";
         }
     }
     //valida el salario
     if (!is_null($salario)) {
         $e = ValidacionesController::validarNumero($salario, 0, 1.8E+200);
         if (!$e) {
             return "El salario (" . $salario . ") no esta entre 0 y 1.8e200";
         }
     }
     //valida el correo electronico segun las especificaciones de php
     if (!is_null($correo_electronico)) {
         $e = ValidacionesController::validarLongitudDeCadena($correo_electronico, 3, 30);
         if (!$e) {
             return "El numero de caracteres del correo electronico (" . $correo_electronico . ") no esta entre 3 y 30";
         }
         if (!is_string(filter_var($correo_electronico, FILTER_VALIDATE_EMAIL))) {
             return "El correo electronico " . $correo_electronico . " no es valido";
         }
     }
     //valida que una pagina web tenga un formato valido.
     if (!is_null($pagina_web)) {
         $e = ValidacionesController::validarLongitudDeCadena($pagina_web, 2, 30);
         if (!$e) {
             return $e;
         }
         if (!preg_match('/^(http|https|ftp):\\/\\/[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}' . '((:[0-9]{1,5})?\\/.*)?$/i', $pagina_web) && !preg_match('/^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}' . '((:[0-9]{1,5})?\\/.*)?$/i', $pagina_web)) {
             return "La direccion web " . $pagina_web . " no cumple el formato valido";
         }
     }
     //valida el saldo del ejercicio
     if (!is_null($saldo_del_ejercicio)) {
         $e = ValidacionesController::validarNumero($saldo_del_ejercicio, -1.8E+200, 1.8E+200);
         if (!$e) {
             return "El saldo del ejercicio (" . $saldo_del_ejercicio . ") no esta entre -1.8e200 y 1.8e200";
         }
     }
     //valida las ventas a credito
     if (!is_null($ventas_a_credito)) {
         $e = ValidacionesController::validarEntero($ventas_a_credito, 0, PHP_INT_MAX);
         if (!$e) {
             return "Las venta a credito no estan entre 0 y " . PHP_INT_MAX;
         }
     }
     //valida el represnetante legal
     if (!is_null($representante_legal)) {
         $e = ValidacionesController::validarLongitudDeCadena($representante_legal, 0, 100);
         if (!$e) {
             return "El numero de caracteres del representante legal (" . $representante_legal . ") no esta entre 0 y 100";
         }
     }
     //valida la facturacion a terceros. Es un boleano
     if (!is_null($facturar_a_terceros)) {
         $e = ValidacionesController::validarEntero($facturar_a_terceros, 0, 1);
         if (!$e) {
             return "La variable facturar a terceros (" . $facturar_a_terceros . ") no esta entre 0 y 1";
         }
     }
     //valida los dias de pago
     if (!is_null($dia_de_pago)) {
         $e = ValidacionesController::validarLongitudDeCadena($dia_de_pago, 19, 19);
         if (!$e) {
             return "La fecha de dia de pago (" . $dia_de_pago . ") es invalida, el formato valido es YYYY-MM-dd HH:mm:ss";
         }
     }
     //valida el boleano mensajeria
     if (!is_null($mensajeria)) {
         $e = ValidacionesController::validarEntero($mensajeria, 0, 1);
         if (!$e) {
             return "La variable mensajeria (" . $mensajeria . ") no esta entre 0 y 1";
         }
     }
     //valida los intereses moratorios
     if (!is_null($intereses_moratorios)) {
         $e = ValidacionesController::validarNumero($intereses_moratorios, 0, 1.8E+200);
         if (!$e) {
             return "Los intereses moratorios (" . $intereses_moratorios . ") no estan entre 0 y 1.8e200";
         }
     }
     //valida la denominacion comercial
     if (!is_null($denominacion_comercial)) {
         $e = ValidacionesController::validarLongitudDeCadena($denominacion_comercial, 0, 100);
         if (!$e) {
             return "El numero de caracteres de la denominacion comercial (" . $denominacion_comercial . ") no esta entre 0 y 100";
         }
     }
     //valida los dias de credito
     if (!is_null($dias_de_credito)) {
         $e = ValidacionesController::validarEntero($dias_de_credito, 0, PHP_INT_MAX);
         if (!$e) {
             return "Los dias de credito (" . $dias_de_credito . ") no estan en el rango de 0 a " . PHP_INT_MAX;
         }
     }
     //valida la cuenta de mensajeria
     if (!is_null($cuenta_de_mensajeria)) {
         $e = ValidacionesController::validarLongitudDeCadena($cuenta_de_mensajeria, 0, 50);
         if (!$e) {
             return "El numero de caracteres de la cuenta de mensajeria (" . $cuenta_de_mensajeria . ") no etsa entre 0 y 50";
         }
     }
     //valida lso dias de revision
     if (!is_null($dia_de_revision)) {
         $e = ValidacionesController::validarLongitudDeCadena($dia_de_revision, 19, 19);
         if (!$e) {
             return "El dia de revision (" . $dia_de_revision . ") no tiene el formato apropiado, el formato valido es YYYY-MM-dd HH:mm:ss";
         }
     }
     //valida el codigo de usuario
     if (!is_null($codigo_usuario)) {
         $e = ValidacionesController::validarLongitudDeCadena($codigo_usuario, 1, 50);
         if (!$e) {
             return "El numero de caracteres del codigo de usuario no esta entre 1 y 50";
         }
         if (preg_match('/[^a-zA-Z0-9]/', $codigo_usuario)) {
             return "El codigo de usuario (" . $codigo_usuario . ") no tiene solo caracteres alfanumericos";
         }
     }
     //valida los dias de embarque
     if (!is_null($dias_de_embarque)) {
         $e = ValidacionesController::validarEntero($dias_de_embarque, 0, PHP_INT_MAX);
         if (!$e) {
             return "Los dias de embarque (" . $dias_de_embarque . ") no esta entre 0 y " . PHP_INT_MAX;
         }
     }
     //valida el tiempo de entrega
     if (!is_null($tiempo_entrega)) {
         $e = ValidacionesController::validarEntero($tiempo_entrega, 0, PHP_INT_MAX);
         if (!$e) {
             return "El tiempo de entrega (" . $tiempo_entrega . ") no esta entre 0 y " . PHP_INT_MAX;
         }
     }
     //valida la cuenta bancaria
     if (!is_null($cuenta_bancaria)) {
         $e = ValidacionesController::validarLongitudDeCadena($cuenta_bancaria, 0, 50);
         if (!$e) {
             return "El numero de caracteres de la cuenta bancaria (" . $cuenta_bancaria . ") no esta entre 0 y 50";
         }
     }
     //valida que la tarifa de compra sea valida
     if (!is_null($id_tarifa_compra)) {
         $tarifa = TarifaDAO::getByPK($id_tarifa_compra);
         if (is_null($tarifa)) {
             return "La tarifa " . $id_tarifa_compra . " no existe";
         }
         if (!$tarifa->getActiva()) {
             return "La tarifa " . $id_tarifa_compra . " no esta activa";
         }
         if ($tarifa->getTipoTarifa() != "compra") {
             return "La tarifa " . $id_tarifa_compra . " no es una tarifa de compra";
         }
     }
     //valida que la tarifa de venta sea valida
     if (!is_null($id_tarifa_venta)) {
         $tarifa = TarifaDAO::getByPK($id_tarifa_venta);
         if (is_null($tarifa)) {
             return "La tarifa " . $id_tarifa_venta . " no existe";
         }
         if (!$tarifa->getActiva()) {
             return "La tarifa " . $id_tarifa_venta . " no esta activa";
         }
         if ($tarifa->getTipoTarifa() != "venta") {
             return "La tarifa " . $id_tarifa_venta . " no es una tarifa de venta";
         }
     }
     //valida que el usuario padre exista y este activo
     if (!is_null($id_usuario_padre)) {
         $usuario_padre = UsuarioDAO::getByPK($id_usuario_padre);
         if (is_null($usuario_padre)) {
             return "El usuario padre " . $id_usuario_padre . " no existe";
         }
         if ($usuario_padre->getActivo()) {
             return "El usuario padre " . $usuario_padre->getNombre() . " no esta activo";
         }
     }
     return true;
 }
예제 #5
0
 public static function ObtenerMonedaBase()
 {
     $moneda_base = ConfiguracionDAO::search(new Configuracion(array("descripcion" => "id_moneda_base")));
     if (count($moneda_base) < 1) {
         Logger::Log("La empresa no tiene moneda base");
         //throw new BusinessLogicException("La empresa no tiene moneda base");
         return NULL;
     }
     $moneda = MonedaDAO::getByPK($moneda_base[0]->getValor());
     return array("id_moneda_base" => $moneda_base[0]->getValor(), "simbolo" => $moneda->getSimbolo());
 }
예제 #6
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
//
// Parametros necesarios
//
$page->requireParam("mid", "GET", "Esta moneda no existe.");
$esta_moneda = MonedaDAO::getByPK($_GET["mid"]);
//
// Titulo de la pagina
//
$page->addComponent(new TitleComponent("Detalles de " . $esta_moneda->getNombre(), 2));
//
// Menu de opciones
//
if ($esta_moneda->getActiva()) {
    $menu = new MenuComponent();
    //$menu->addItem("Editar esta moneda", "efectivo.editar.moneda.php?mid=".$_GET["mid"]);
    //$menu->addItem("Desactivar este producto", null);
    $btn_eliminar = new MenuItem("Desactivar esta moneda", null);
    $btn_eliminar->addApiCall("api/efectivo/moneda/eliminar", "GET");
    $btn_eliminar->onApiCallSuccessRedirect("efectivo.lista.moneda.php");
    $btn_eliminar->addName("eliminar");
    $funcion_eliminar = " function eliminar_moneda(btn){" . "if(btn == 'yes')" . "{" . "var p = {};" . "p.id_moneda = " . $_GET["mid"] . ";" . "sendToApi_eliminar(p);" . "}" . "}" . "      " . "function confirmar(){" . " Ext.MessageBox.confirm('Desactivar', 'Desea eliminar esta moneda?', eliminar_moneda );" . "}";
    $btn_eliminar->addOnClick("confirmar", $funcion_eliminar);
    $menu->addMenuItem($btn_eliminar);
    $page->addComponent($menu);
} else {
    $menu = new MenuComponent();
예제 #7
0
 /**
  *
  * Crear una nueva empresa. Por default una nueva empresa no tiene sucursales.
  * Varios RFC`s pueden repetirse siempre y cuando solo exista una empresa activa.
  *
  * @author Juan Manuel Garc&iacute;a Carmona <*****@*****.**>
  *
  * @param contabilidad json JSON donde se describe la moneda que usara como base la empresa, indica la descripción del ejercicio, el periodo inicial y la duración de cada periodo
  * @param direccion json {    "calle": "Francisco I Madero",    "numero_exterior": "1009A",    "numero_interior": 12,     "colonia": "centro",    "codigo_postal": "38000",    "telefono1": "4611223312",    "telefono2": "",       "id_ciudad": 3,    "referencia": "El local naranja"}
  * @param razon_social string El nombre de la nueva empresa.
  * @param rfc string RFC de la nueva empresa.
  * @param cuentas_bancarias json arreglo que contiene los id de las cuentas bancarias
  * @param direccion_web string Direccion del sitio de la empresa
  * @param duplicar bool Significa que se duplicara una empresa, solo es una bandera, en caso de que exista y sea = true ,  significa que duplicara todo lo referente a la empresa (direccion, impuestos asociados, cuentas bancarias, etc..)
  * @param email string Correo electronico de la empresa
  * @param impuestos_compra json Impuestos de compra por default que se heredan  a los productos
  * @param impuestos_venta json Impuestos de venta por default que se heredan a los productos
  * @param mensaje_morosos string mensaje enviado a los clientes cuando un pago es demorado
  * @param representante_legal string El nombre del representante legal de la nueva empresa.
  * @param uri_logo string url del logo de la empresa
  * @return id_empresa int El ID autogenerado de la nueva empresa.
  **/
 static function Nuevo($contabilidad, $direccion, $razon_social, $rfc, $cuentas_bancarias = null, $direccion_web = null, $duplicar = false, $email = null, $impuestos_compra = null, $impuestos_venta = null, $mensaje_morosos = null, $representante_legal = null, $uri_logo = null)
 {
     //verificamos los impuestos de compra
     if ($impuestos_compra !== NULL && !is_array($impuestos_compra)) {
         Logger::error("Error : Verifique los datos especiicados en los impuestos de compra, debe ser una array no vacio");
         throw new InvalidDataException("Error : Verifique los datos especiicados en los impuestos de compra, debe ser una array no vacio");
     }
     //verificamos los impuestos de venta
     if ($impuestos_venta !== NULL && !is_array($impuestos_venta)) {
         Logger::error("Error : Verifique los datos especiicados en los impuestos de venta, debe ser una array no vacio");
         throw new InvalidDataException("Error : Verifique los datos especiicados en los impuestos de venta, debe ser una array no vacio");
     }
     //verificamos si se enviaron todos los parametros
     if (empty($contabilidad->id_moneda) || empty($contabilidad->ejercicio) || empty($contabilidad->periodo_actual) || empty($contabilidad->duracion_periodo)) {
         Logger::error("Error : Verifique que la información de contabilidad este completa");
         throw new InvalidDataException("Verifique que la información de contabilidad este completa : " . $contabilidad);
     }
     //verificamos si se enviaron valores correctos
     if (!is_numeric($contabilidad->id_moneda) || !is_numeric($contabilidad->periodo_actual) || !is_numeric($contabilidad->duracion_periodo)) {
         Logger::error("Error : Verifique que la información de contabilidad sea correcta");
         throw new InvalidDataException("Verifique que la información de contabilidad sea correcta");
     }
     //validamos decimales
     if ($contabilidad->id_moneda - (int) $contabilidad->id_moneda !== 0 || $contabilidad->periodo_actual - (int) $contabilidad->periodo_actual !== 0 || $contabilidad->duracion_periodo - (int) $contabilidad->duracion_periodo !== 0) {
         Logger::error("Error : Verifique que la información de contabilidad sea correcta, el id_moneda, periodo_actual y duracion_periodo deben ser valores enteros");
         throw new InvalidDataException("Error : Verifique que la información de contabilidad sea correcta, el id_moneda, periodo_actual y duracion_periodo deben ser valores enteros");
     }
     if ($contabilidad->duracion_periodo < "1" || $contabilidad->duracion_periodo === "5" || $contabilidad->duracion_periodo > "6") {
         Logger::error("Error : Verifique que la duracion de los perodos, solo pueden durar 1, 2, 3, 4 y 6 meses");
         throw new InvalidDataException("Error : Verifique que la duracion de los perodos, solo pueden durar 1, 2, 3, 4 y 6 meses");
     }
     if ($contabilidad->periodo_actual > 12 / $contabilidad->duracion_periodo) {
         Logger::error("Error : Verifique el valor del periodo actual, debe concordar con la relacion de la duracion de los periodos");
         throw new InvalidDataException("Error : Verifique el valor del periodo actual, debe concordar con la relacion de la duracion de los periodos");
     }
     if (is_null($direccion)) {
         throw new InvalidDataException("Missing direccion");
     }
     if (!is_array($direccion)) {
         $direccion = object_to_array($direccion);
     }
     $id_direccion = DireccionController::NuevaDireccion(isset($direccion["calle"]) ? $direccion["calle"] : null, isset($direccion["numero_exterior"]) ? $direccion["numero_exterior"] : null, isset($direccion["colonia"]) ? $direccion["colonia"] : null, isset($direccion["id_ciudad"]) ? $direccion["id_ciudad"] : null, isset($direccion["codigo_postal"]) ? $direccion["codigo_postal"] : null, isset($direccion["numero_interior"]) ? $direccion["numero_interior"] : null, isset($direccion["referencia"]) ? $direccion["referencia"] : null, isset($direccion["telefono1"]) ? $direccion["telefono1"] : null, isset($direccion["telefono2"]) ? $direccion["telefono2"] : null);
     DAO::transBegin();
     $id_logo = -1;
     //verificamos si se ha enviado informacion sobre un logo
     if (!empty($uri_logo)) {
         $logo = new Logo(array("imagen" => $uri_logo, "tipo" => "-"));
         try {
             LogoDAO::save($logo);
         } catch (Exception $e) {
             DAO::transRollback();
             Logger::error("No se pudo crear la empresa, error al crear el logo: " . $e->getMessage());
             throw new Exception("No se pudo crear la empresa, consulte a su administrador de sistema", 901);
         }
         $id_logo = $logo->getIdLogo();
     }
     //Se crea la empresa con los parametros obtenidos.
     $empresa = new Empresa(array("id_direccion" => $id_direccion, "rfc" => $rfc, "razon_social" => trim($razon_social), "representante_legal" => $representante_legal, "fecha_alta" => time(), "fecha_baja" => null, "activo" => true, "direccion_web" => $direccion_web, "cedula" => "", "id_logo" => $id_logo, "mensaje_morosos" => $mensaje_morosos));
     //Se busca el rfc en la base de datos. Si hay una empresa activa con el mismo rfc se lanza un error
     $empresas = EmpresaDAO::search(new Empresa(array("rfc" => $rfc, "activo" => 1)));
     if (!empty($empresas)) {
         Logger::error("Este rfc ya esta en uso por la empresa activa");
         throw new InvalidDataException("El rfc: " . $rfc . " ya esta en uso", 901);
     }
     /*
      * Se busca la razon social en la base de datos. 
      * Si hay una empresa activa con la misma razon zocial se lanza un error. 
      * Se usa trim para cubrir los casos "caffeina" y "    caffeina    ".
      */
     $empresas = EmpresaDAO::search(new Empresa(array("razon_social" => trim($razon_social), "activo" => 1)));
     if (!empty($empresas)) {
         Logger::error("La razon social: " . $razon_social . " ya esta en uso por la empresa: " . $empresas[0]->getIdEmpresa());
         throw new InvalidDataException("La razon social: " . $razon_social . " ya esta en uso", 901);
     }
     try {
         EmpresaDAO::save($empresa);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear la empresa: " . $e->getMessage());
         throw new Exception("No se pudo crear la empresa, consulte a su administrador de sistema", 901);
     }
     //verificamos si la moneda que se esta indicando exista
     if (!($moneda = MonedaDAO::getByPK($contabilidad->id_moneda))) {
         DAO::transRollback();
         Logger::error("Error : No existe la moneda indicada.");
         throw new InvalidDataException("Error : No existe la moneda indicada.", 901);
     }
     //creamos la configuracion de la moneda para esta empresa
     $moneda_base = new Configuracion(array("descripcion" => "id_moneda_base", "valor" => $contabilidad->id_moneda, "id_usuario" => "", "fecha" => time()));
     try {
         ConfiguracionDAO::save($moneda_base);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear la configuracion de la moneda base para la empresa: " . $e->getMessage());
         throw new Exception("No se pudo crear la configuracion de la moneda base para la empresa", 901);
     }
     //relacionamos la configuracion con la empresa que estamos creando
     $configuracion_empresa = new ConfiguracionEmpresa(array("id_configuracion" => $moneda_base->getIdConfiguracion(), "id_empresa" => $empresa->getIdEmpresa()));
     try {
         ConfiguracionEmpresaDAO::save($configuracion_empresa);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear la relacion entre la moneda base y la empresa: " . $e->getMessage());
         throw new Exception("No se pudo crear la relacion entre la moneda base y la empresa", 901);
     }
     //creamos la configuracion del tipo de cambio para esta empresa
     $tc = new Configuracion(array("descripcion" => "tipo_cambio", "valor" => "", "id_usuario" => "", "fecha" => time()));
     try {
         ConfiguracionDAO::save($tc);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear la configuracion del tipo de cambio para la empresa: " . $e->getMessage());
         throw new Exception("No se pudo crear la configuracion del tipo de cambio para la empresa", 901);
     }
     //relacionamos la configuracion con la empresa que estamos creando
     $conf_empresa = new ConfiguracionEmpresa(array("id_configuracion" => $tc->getIdConfiguracion(), "id_empresa" => $empresa->getIdEmpresa()));
     try {
         ConfiguracionEmpresaDAO::save($conf_empresa);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear la relacion entre el tipo de cambio y la empresa: " . $e->getMessage());
         throw new Exception("No se pudo crear la relacion entre el tipo de cambio y la empresa", 901);
     }
     //creamos los periodos necesarios
     $_p = 1;
     $_periodo = NULL;
     $_ejercicio = NULL;
     $_mes_inicial = 1;
     $_mes_final = 1;
     $_anio = date("Y");
     $_inicio = 0;
     $_fin = 0;
     for ($i = $contabilidad->duracion_periodo; $i <= 12; $i += $contabilidad->duracion_periodo) {
         //obtenemos la fecha inicial
         $_inicio = mktime(0, 0, 0, $_mes_inicial, 1, $_anio);
         //obtenemos la fecha final
         $_mes_final = $_mes_inicial * $_p;
         $_fin = mktime(23, 59, 59, $_mes_final, getUltimoDiaDelMes($_mes_final, $_anio), $_anio);
         //damos de alta los periodos
         try {
             $_periodo = new Periodo(array("periodo" => $_p, "inicio" => $_inicio, "fin" => $_fin));
             PeriodoDAO::save($_periodo);
         } catch (Exception $e) {
             DAO::transRollback();
             Logger::error("Error al crear los periodos : " . $e->getMessage());
             throw new Exception("Error al crear los periodos", 901);
         }
         //damos de alta el ejercicio
         if ($_p == $contabilidad->periodo_actual) {
             try {
                 $_ejercicio = new Ejercicio(array("anio" => $_anio, "id_periodo" => $_periodo->getIdPeriodo(), "inicio" => $_inicio, "fin" => $_fin, "vigente" => 1));
                 EjercicioDAO::save($_ejercicio);
             } catch (Exception $e) {
                 DAO::transRollback();
                 Logger::error("Error al crear el ejercicio : " . $e->getMessage());
                 throw new Exception("Error al crear el ejercicio", 901);
             }
         }
         $_mes_inicial = $_mes_final + 1;
         $_p++;
     }
     //relacionamos a la empresa con el ejercicio
     try {
         EjercicioEmpresaDAO::save(new EjercicioEmpresa(array("id_ejercicio" => $_ejercicio->getIdEjercicio(), "id_empresa" => $empresa->getIdEmpresa())));
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("Error al relacionar la empresa con el ejercicio: " . $e->getMessage());
         throw new Exception("Error al relacionar la empresa con el ejercicio", 901);
     }
     if (!empty($impuestos_compra)) {
         for ($i = 0; $i < count($impuestos_compra); $i++) {
             try {
                 ImpuestoEmpresaDAO::save(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa(), "id_impuesto" => $impuestos_compra[$i])));
             } catch (Exception $e) {
                 Logger::warn("Error al guardar un impuesto de compra : " . $e->getMessage());
             }
         }
     }
     if (!empty($impuestos_venta)) {
         for ($i = 0; $i < count($impuestos_venta); $i++) {
             try {
                 ImpuestoEmpresaDAO::save(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa(), "id_impuesto" => $impuestos_venta[$i])));
             } catch (Exception $e) {
                 Logger::warn("Error al guardar un impuesto de venta : " . $e->getMessage());
             }
         }
     }
     if (!empty($cuentas_bancarias)) {
         foreach ($cuentas_bancarias as $cuenta_bancarias) {
             //Pendiente hasta que se haga el SPEC de cuentas bancarias
         }
     }
     DAO::transEnd();
     //Creamos el catalogo de cuentas por default para esta nueva empresa
     ContabilidadController::NuevoCatalogoCuentasEmpresa($empresa->getIdEmpresa());
     Logger::log("Empresa creada exitosamente, id=" . $empresa->getIdEmpresa());
     return array("id_empresa" => (int) $empresa->getIdEmpresa());
 }
예제 #8
0
function getNombreMoneda($id_moneda)
{
    return MonedaDAO::getByPK($id_moneda)->getSimbolo() . " (\$)";
}
예제 #9
0
                    <option <?php 
echo $tarifa->getActiva() ? " SELECTED" : "";
?>
 >S&iacute;</option>
                    <option <?php 
echo $tarifa->getActiva() ? "" : " SELECTED";
?>
 >No</option>
                </select>
            </td>
        </tr>
        <tr>
            <td><label>Moneda</label></td>
            <td>                
                <input type="text" value ="<?php 
echo MonedaDAO::getByPK($tarifa->getIdMoneda())->getSimbolo();
?>
 ($)" DISABLED />                
            </td>
            <td><label>Default Sistema</label></td>
            <td>
                <input type="Radio" DISABLED name="default_tarifa" value="true" <?php 
echo $tarifa->getDefault() ? " CHECKED" : "";
?>
 /> S&iacute;
                <input type="Radio" DISABLED name="default_tarifa" value="false" <?php 
echo $tarifa->getDefault() ? "" : " CHECKED";
?>
 /> No                
            </td>        
        </tr>