예제 #1
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
EfectivoController::NuevoCorte();
$page->render();
return;
//
// Parametros necesarios
//
$page->requireParam("cid", "GET", "Esta caja no existe.");
$esta_caja = CajaDAO::getByPK($_GET["cid"]);
$page->addComponent(new TitleComponent("Corte a la caja " . $esta_caja->getDescripcion() . ". El saldo esperado es de: " . $esta_caja->getSaldo(), 3));
//
// Forma de producto
//
$form = new DAOFormComponent(new CorteDeCaja());
$form->addApiCall("api/sucursal/caja/corte", "GET");
$form->onApiCallSuccessRedirect("sucursales.lista.caja.php");
$form->hideField(array("id_corte_de_caja", "saldo_esperado", "id_caja", "fecha"));
$form->makeObligatory(array("saldo_real", "saldo_final"));
$form->createComboBoxJoinDistintName("id_cajero", "id_usuario", "nombre", UsuarioDAO::search(new Usuario(array("id_rol" => 3, "activo" => 1), SesionController::getCurrentUser())));
$form->createComboBoxJoinDistintName("id_cajero_nuevo", "id_usuario", "nombre", UsuarioDAO::search(new Usuario(array("id_rol" => 3, "activo" => 1), SesionController::getCurrentUser())));
$form->setValueField("id_caja", $_GET["cid"]);
$form->sendHidden("id_caja");
$page->addComponent($form);
$page->render();
예제 #2
0
 /**
  *
  *Obtener una lista de proveedores. Puede filtrarse por activo o inactivos, y puede ordenarse por sus atributos.
  *
  * @param activo bool Si el valor no es obtenido, se listaran los proveedores tanto activos como inactivos. Si su valor es true, se mostraran solo los proveedores activos, si es false, se mostraran solo los proveedores inactivos.
  * @param ordenar json Valor que determinara el orden de la lista.
  * @return proveedores json Objeto que contendra la lista de proveedores.
  **/
 public static function Lista($activo = null, $orden = null)
 {
     Logger::log("Listando los proveedores");
     $proveedores = array();
     //Solo se obtendran los usuarios cuya clasificacion de cliente no sea nula.
     $usuario_proveedores = UsuarioDAO::byRange(new Usuario(array("id_clasificacion_proveedor" => 0, "id_rol" => 6)), new Usuario(array("id_clasificacion_proveedor" => PHP_INT_MAX)), $orden);
     //Si no se reciben parametros, la lista final sera la variable usuario_clientes,
     //pero si se reciben parametros se hace una interseccion y se regresa lal ista
     if (!is_null($activo)) {
         $proveedores_rango = UsuarioDAO::search(new Usuario(array("activo" => $activo)), $orden);
         $proveedores = array_intersect($usuario_proveedores, $proveedores_rango);
     } else {
         $proveedores = $usuario_proveedores;
     }
     Logger::log("La lista de proveedores fue obtenida exitosamente con " . count($proveedores) . " elementos");
     return array("resultados" => $proveedores, "numero_de_resultados" => sizeof($proveedores));
 }
예제 #3
0
 /**
  *
  *Crear un nuevo cliente. Para los campos de Fecha_alta y Fecha_ultima_modificacion se usar?a fecha actual del servidor. El campo Agente y Usuario_ultima_modificacion ser?tomados de la sesi?ctiva. Para el campo Sucursal se tomar?a sucursal activa donde se est?reando el cliente. 
  * Al crear un cliente se le creara un usuario para la interfaz de cliente y pueda ver sus facturas y eso, si tiene email. Al crearse se le enviara un correo electronico con el url.
  *
  * @param razon_social string Nombre o razon social del cliente.
  * @param password string Password del cliente
  * @param codigo_cliente string Codigo interno del cliente
  * @param codigo_postal string Codigo postal del cliente
  * @param direccion_web string Direccin web del cliente.
  * @param rfc string RFC del cliente.
  * @param clasificacion_cliente int Id de la clasificacin del cliente.
  * @param calle string Calle del cliente
  * @param curp string CURP del cliente.
  * @param telefono2 string Segundo telfono del cliente.
  * @param mensajeria bool Si el cliente cuenta con un cliente de mensajera y paquetera.
  * @param numero_exterior string Nmero exterior del cliente
  * @param cuenta_de_mensajeria string Este parmetro se vuelve obligatorio si el parmetro Mensajera es true. Especifica la cuenta de mensajera instantanea del cliente.
  * @param denominacion_comercial string Nombre comercial del cliente.
  * @param representante_legal string Nombre del representante legal del cliente.
  * @param colonia string Colonia del cliente
  * @param numero_interior string Nmero interior del cliente.
  * @param moneda_del_cliente int Moneda que maneja el cliente.
  * @param telefono1 string Telefono del cliente
  * @param id_ciudad int id de la ciudad
  * @param retenciones json Objeto que contendra los ids de las retenciones que afectan a este cliente
  * @param impuestos json Objeto que contendra los impuestos que afectan a este cliente
  * @param email string E-mail del cliente
  * @param texto_extra string Comentario sobre la direccin del cliente.
  * @return id_cliente int Id autogenerado del cliente que se insert�
  **/
 public static function Nuevo($razon_social, $clasificacion_cliente = null, $codigo_cliente = null, $cuenta_de_mensajeria = null, $curp = null, $denominacion_comercial = null, $descuento_general = "0", $direcciones = null, $email = null, $extra_params = null, $id_cliente_padre = null, $id_moneda = 1, $id_tarifa_compra = null, $id_tarifa_venta = null, $limite_credito = "0", $password = null, $representante_legal = null, $rfc = null, $sitio_web = null, $telefono_personal1 = null, $telefono_personal2 = null)
 {
     //Se toma la sucursal actual para asignarsela al cliente
     $actual = SesionController::Actual();
     if (is_null($clasificacion_cliente)) {
         $clasificacion_cliente = 1;
     }
     if (!is_null($codigo_cliente)) {
         $res = UsuarioDAO::search(new Usuario(array("codigo_usuario" => $codigo_cliente)));
         if (sizeof($res) >= 1) {
             throw new InvalidDataException("El codigo de cliente ya esta en uso");
         }
     }
     //se crea la cliente utilizando el metodo Nuevo usuario, este se encarga de la validacion
     //y se toma como rol de cliente el 5
     if (strlen($rfc) == 0) {
         $rfc = null;
     }
     if (strlen($curp) == 0) {
         $curp = null;
     }
     if (strlen($email) == 0) {
         $email = null;
     }
     if (is_null($direcciones)) {
         $direcciones = array(new Direccion());
     }
     if (is_null($password)) {
         $password = "******" . rand(1, 9) . rand(1, 9);
     }
     try {
         $cliente = PersonalYAgentesController::NuevoUsuario(null, 5, $razon_social, $password, null, $email, null, $cuenta_de_mensajeria, $curp, $denominacion_comercial, $descuento_general, null, null, null, null, $direcciones, 0, $clasificacion_cliente, null, $id_moneda, $actual["id_sucursal"], $id_tarifa_compra, $id_tarifa_venta, $id_cliente_padre, null, null, $limite_credito, null, $sitio_web, $representante_legal, null, $rfc, null, null, null, $telefono_personal1, $telefono_personal2);
         ExtraParamsValoresDAO::setVals("usuarios", $extra_params, $cliente["id_usuario"]);
         $clienteObj = UsuarioDAO::getByPK($cliente["id_usuario"]);
         $clienteObj->setCodigoUsuario($codigo_cliente);
         UsuarioDAO::save($clienteObj);
         //guardar el codigo cliente
     } catch (Exception $e) {
         Logger::error($e);
         throw new InvalidDataException($e->getMessage());
     }
     ExtraParamsValoresDAO::actualizarRegistros("usuarios");
     return array("id_cliente" => (int) $cliente["id_usuario"]);
 }
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
//
// Titulo de la pagina
//
$page->addComponent(new TitleComponent("Editar gerencia", 2));
//
// Forma de usuario
//
$form = new DAOFormComponent(new Sucursal());
$form->hideField(array("id_direccion", "fecha_apertura", "fecha_baja", "activa", "rfc", "razon_social", "descripcion", "saldo_a_favor", "margen_utilidad", "descuento"));
$form->addApiCall("api/sucursal/gerencia/editar/", "GET");
//                $form->addField("id_producto", "Productos", "text","","productos");
//                $form->createListBoxJoin("id_producto", "nombre_producto", ProductoDAO::search( new Producto( array( "activo" => 1 ) ) ));
//
$form->createComboBoxJoin("id_sucursal", "razon_social", SucursalDAO::search(new Sucursal(array("activa" => 1))));
$form->createComboBoxJoinDistintName("id_gerente", "id_usuario", "nombre", UsuarioDAO::search(new Usuario(array("id_rol" => 2))));
//                $form->createComboBoxJoin( "id_rol", "nombre", RolDAO::getAll(), $este_usuario->getIdRol() );
//
//                $form->createComboBoxJoin( "id_moneda", "nombre", MonedaDAO::search( new Moneda( array( "activa" => 1 ) ) ),$este_usuario->getIdMoneda() );
//
//                $form->createComboBoxJoin( "id_clasificacion_cliente", "nombre", ClasificacionClienteDAO::getAll(), $este_usuario->getIdClasificacionCliente() );
//
//                $form->createComboBoxJoin( "id_clasificacion_proveedor", "nombre", ClasificacionProveedorDAO::search( new ClasificacionProveedor( array( "activa" => 1 ) ) ), $este_usuario->getIdClasificacionProveedor() );
//$form->createComboBoxJoin("id_tipo_almacen", "descripcion", array_diff(TipoAlmacenDAO::getAll(), TipoAlmacenDAO::search( new TipoAlmacen( array( "id_tipo_almacen" => 2 ) ) ) ), $este_almacen->getIdTipoAlmacen() );
//                $form->renameField( array(
//                    "id_ciudad" => "municipio"
//		));
$form->makeObligatory(array("id_sucursal", "id_gerente"));
$page->addComponent($form);
$page->render();
 /**
  *
  *Este metodo desactiva un grupo, solo se podra desactivar un grupo si no hay ningun usuario que pertenezca a el.
  *
  *
  * @author Juan Manuel Garc&iacute;a Carmona <*****@*****.**>
  * @param id_rol int Id del grupo a eliminar
  **/
 public static function EliminarRol($id_rol)
 {
     //Los roles de administrador (1), gerente (2), cajero(3), cliente (5) y proveedor(6) no pueden ser eliminados
     if ($id_rol >= 1 && $id_rol <= 3 || $id_rol >= 5 && $id_rol <= 6) {
         Logger::error("El rol predeterminado " . $id_rol . " no puede ser eliminado");
         throw new Exception("Los roles predeterminados no pueden ser eliminado", 901);
     }
     /*
      * Se obtiene la lista de usuarios con este rol.
      * Si almenos uno aun sigue activo, entonces no se puede eliminar el rol
      */
     $usuarios = UsuarioDAO::search(new Usuario(array("id_rol" => $id_rol)));
     if (!empty($usuarios)) {
         Logger::error("No se puede eliminar este rol pues el usuario " . $usuarios[0]->getNombre() . " lo tiene asignado");
         throw new Exception("No se puede eliminar este rol pues hay almenos un usuario asignado a el", 901);
     }
     DAO::transBegin();
     try {
         //Se elimina el rol
         $to_delete = RolDAO::getByPK($id_rol);
         RolDAO::delete($to_delete);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("Error al eliminar el rol: " . $e);
         throw new Exception("Error al eliminar el rol, consulte a su administrador de sistema", 901);
     }
     DAO::transEnd();
     Logger::log("Rol eliminado correctamente");
 }
예제 #6
0
 /**
  *
  * Metodo que crea una nueva sucursal
  *
  * @author Juan Manuel Garc&iacute;a Carmona <*****@*****.**>
  * @param descripcion string Descripcion de la sucursal
  * @param direccion json Objeto que contiene la informacin sobre al direccin 
  * @param id_tarifa int Id de la tarifa por default que tendra esa sucursal
  * @param activo bool Si esta sucursal estara activa inmediatamente despues de ser creada
  * @param id_gerente int ID del usuario que sera gerente de esta sucursal. Para que sea valido este usuario debe tener el nivel de acceso apropiado.
  * @return id_sucursal int Id autogenerado de la sucursal que se creo.
  **/
 public static function Nueva($descripcion, $direccion, $id_tarifa, $activo = 1, $id_gerente = null)
 {
     //validamos si la descripcion de la sucursal es valida
     $descripcion = trim($descripcion);
     if ($descripcion === "") {
         Logger::error("Error : Verifique la descripcion de la sucursal");
         throw new InvalidDataException("Error : Verifique la descripcion de la sucursal");
     }
     //buscamos si una sucursal ya existe
     /*if (!empty()) {
     			Logger::log("Ya existe una sucursal con la misma descripcion");
     			throw new BusinessLogicException("Ya existe una sucursal con la misma descripcion");
     		}*/
     $sucursales = SucursalDAO::search(new Sucursal(array("descripcion" => $descripcion)));
     if (!empty($sucursales)) {
         Logger::log("Ya existe una sucursal con la misma descripcion");
         throw new BusinessLogicException("Ya existe una sucursal con la misma descripcion");
     }
     //verificamos si la tarifa existe
     $tarifas = TarifaDAO::search(new Tarifa(array("id_tarifa" => $id_tarifa)));
     if (empty($tarifas)) {
         Logger::log("No se tiene registro de la tarifa indicada");
         throw new BusinessLogicException("No se tiene registro de la tarifa indicada");
     }
     //verificamos si se especifico un gerente y si este existe
     $usuarios = UsuarioDAO::search(new Usuario(array("id_usuario" => $id_gerente)));
     if (!is_null($id_gerente) && empty($usuarios)) {
         Logger::log("No se tiene registro del gerente indicado");
         throw new BusinessLogicException("No se tiene registro del gerente indicado");
     }
     DAO::transBegin();
     if (is_null($direccion)) {
         Logger::log("Missing 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);
     //Se inicializa el objeto sucursal con los parametros obtenidos
     $sucursal = new Sucursal();
     $sucursal->setActiva($activo);
     $sucursal->setIdGerente($id_gerente);
     $sucursal->setDescripcion($descripcion);
     $sucursal->setFechaApertura(time());
     $sucursal->setIdDireccion($id_direccion);
     $sucursal->setIdTarifa($id_tarifa);
     try {
         SucursalDAO::save($sucursal);
     } catch (Exception $e) {
         DAO::transRollback();
         throw new InvalidDatabaseOperationException($e);
     }
     DAO::transEnd();
     Logger::log("Sucursal {$sucursal->getIdSucursal()} creada.");
     return array("id_sucursal" => (int) $sucursal->getIdSucursal());
 }
예제 #7
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->requireParam("rid", "GET", "Este rol no existe.");
//$este_rol = RolDAO::getByPK($_GET["rid"]);
$este_rol = PersonalYAgentesController::DetallesRol($_GET["rid"]);
$este_rol = $este_rol["detalles"];
$menu = new MenuComponent();
$menu->addItem("Editar este rol", "personal.editar.rol.php?rid=" . $_GET["rid"]);
$usuarios_rol = UsuarioDAO::search(new Usuario(array("id_rol" => $_GET["rid"], "activo" => 1)));
if (empty($usuarios_rol)) {
    $btn_eliminar = new MenuItem("Eliminar este rol", null);
    $btn_eliminar->addApiCall("api/personal/rol/eliminar");
    $btn_eliminar->onApiCallSuccessRedirect("personal.rol.lista.php");
    $btn_eliminar->addName("eliminar");
    $funcion_eliminar = "function eliminar_rol (btn) {" . "\tif(btn == 'yes')" . "\t{" . "\t\tvar p = {};" . "\t\tp.id_rol = " . $_GET["rid"] . ";" . "\t\tsendToApi_eliminar(p);" . "\t}" . "}" . "" . "function confirmar () {" . "\tExt.MessageBox.confirm('Eliminar', 'Desea eliminar este rol?', eliminar_rol );" . "}";
    $btn_eliminar->addOnClick("confirmar", $funcion_eliminar);
    $menu->addMenuItem($btn_eliminar);
}
$page->addComponent($menu);
$page->addComponent(new TitleComponent("Detalles de " . $este_rol["nombre"], 2));
// Forma de producto
$form = new DAOFormComponent(RolDAO::getByPK($este_rol["id_rol"]));
$form->setEditable(false);
$form->hideField(array("id_rol"));
$form->createComboBoxJoinDistintName("id_tarifa_venta", "id_tarifa", "nombre", TarifaDAO::search(new Tarifa(array("tipo_tarifa" => "venta"))), $este_rol["id_tarifa_venta"]);
$form->createComboBoxJoinDistintName("id_tarifa_compra", "id_tarifa", "nombre", TarifaDAO::search(new Tarifa(array("tipo_tarifa" => "venta"))), $este_rol["id_tarifa_compra"]);
$form->createComboBoxJoinDistintName("id_rol_padre", "id_rol", "nombre", RolDAO::getAll(), $este_rol["id_rol_padre"]);
$form->createComboBoxJoin("id_perfil", "descripcion", POSController::ListaPerfilConfiguracion(), $este_rol["id_perfil"]);
예제 #8
0
 /**
  *
  *Desactiva una moneda
  *
  * @param id_moneda int Id de la moneda a desactivar
  **/
 public static function EliminarMoneda($id_moneda)
 {
     Logger::log("Eliminando la moneda " . $id_moneda);
     //Se valida que la moneda exista y que este activa
     $validar = self::validarParametrosMoneda($id_moneda);
     if (is_string($validar)) {
         Logger::error($validar);
         throw new Exception($validar);
     }
     $moneda_base = ConfiguracionDAO::search(new Configuracion(array("descripcion" => "id_moneda_base", "valor" => $id_moneda)));
     if (count($moneda_base) > 0) {
         Logger::log("La moneda es la moneda base de una empresa, no se puede desactivar ");
         throw new BusinessLogicException("La moneda es la moneda base de una empresa, no se puede desactivar");
     }
     //Si algun billete o usuario tiene asignada esta moneda, no se podra eliminar
     $billetes = BilleteDAO::search(new Billete(array("id_moneda" => $id_moneda)));
     foreach ($billetes as $billete) {
         if ($billete->getActivo()) {
             Logger::error("La moneda no puede ser eliminada pues esta asignada al billete " . $billete->getIdBillete());
             throw new Exception("La moneda no puede ser eliminada pues esta asignada al billete " . $billete->getIdBillete());
         }
     }
     $usuarios = UsuarioDAO::search(new Usuario(array("id_moneda" => $id_moneda)));
     foreach ($usuarios as $usuario) {
         if ($usuario->getActivo()) {
             Logger::error("La moneda no puede ser eliminada pues esta asignada al usuario " . $usuario->getIdUsuario());
             throw new Exception("La moneda no puede ser eliminada pues esta asignada al usuario " . $usuario->getIdUsuario());
         }
     }
     //Se elimina y se guarda
     $moneda = MonedaDAO::getByPK($id_moneda);
     $moneda->setActiva(0);
     DAO::transBegin();
     try {
         MonedaDAO::save($moneda);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo eliminar la moneda: " . $e);
         throw new Exception("No se pudo eliminar la moneda");
     }
     DAO::transEnd();
     Logger::log("La moneda ha sido eliminada exitosamente");
 }
예제 #9
0
//	-insertar
//	-insertar documento
//
//
//
//se debe redireccionar a un documentos
//para imprimir que esto fue lo que paso
$page->render();
exit;
//
// Parametros necesarios
//
$page->requireParam("cid", "GET", "Esta caja no existe.");
$esta_caja = CajaDAO::getByPK($_GET["cid"]);
$page->addComponent(new TitleComponent("Abriendo caja " . $esta_caja->getDescripcion(), 3));
//
// Forma de producto
//
$form = new DAOFormComponent(new AperturaCaja());
$form->addApiCall("api/sucursal/caja/abrir", "GET");
$form->onApiCallSuccessRedirect("sucursales.lista.caja.php");
$form->addField("client_token", "client_token", "text", "clienttoken");
$form->addField("control_billetes", "control_billetes", "text");
$form->createComboBoxJoin("control_billetes", "control_billetes", array(array("id" => 1, "caption" => "Llevar control"), array("id" => 0, "caption" => "No llevar control")), $esta_caja->getControlBilletes());
$form->hideField(array("id_apertura_caja", "id_caja", "fecha"));
$form->makeObligatory(array("saldo", "client-token", "control_billetes"));
$form->createComboBoxJoinDistintName("id_cajero", "id_usuario", "nombre", UsuarioDAO::search(new Usuario(array("id_rol" => 3, "activo" => 1))));
$form->setValueField("id_caja", $_GET["cid"]);
$form->sendHidden("id_caja");
$page->addComponent($form);
$page->render();