/** * *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; }
function funcion_moneda($id_moneda) { return MonedaDAO::getByPK($id_moneda) ? MonedaDAO::getByPK($id_moneda)->getNombre() : "-----"; }
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; }
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()); }
<?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();
/** * * 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í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()); }
function getNombreMoneda($id_moneda) { return MonedaDAO::getByPK($id_moneda)->getSimbolo() . " (\$)"; }
<option <?php echo $tarifa->getActiva() ? " SELECTED" : ""; ?> >Sí</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í <input type="Radio" DISABLED name="default_tarifa" value="false" <?php echo $tarifa->getDefault() ? "" : " CHECKED"; ?> /> No </td> </tr>