/**
  *
  *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"]);
 }
 /**
  *
  *Crea un nuevo proveedor
  *
  * @param id_tipo_proveedor int Id del tipo proveedor al que pertenece este usuario
  * @param password string Password del proveedor para entrar al sistema
  * @param nombre string Nombre del proveedor
  * @param codigo_proveedor string Codigo interno para identificar al proveedor
  * @param codigo_postal string Codigo postal de la direccion del proveedor
  * @param id_ciudad int Id de la ciudad de la direccion del proveedor
  * @param texto_extra string Referencia de la direcciond el proveedor
  * @param numero_interior string Numero interior de la direccion del proveedor
  * @param numero_exterior string Numero exterior de la direccion del proveedor
  * @param direccion_web string Direccion web del proveedor
  * @param retenciones json Retenciones que afectan a este proveedor
  * @param impuestos json Ids de los impuestos que afectan a este proveedor
  * @param dias_embarque int Dias en que el proveedor embarca ( Lunes, Martes, Miercoles, Jueves..)
  * @param telefono_personal string Telefono personal del proveedor
  * @param rfc string RFC del proveedor
  * @param calle string Calle de la direccion del proveedor
  * @param email string Correo electronico del proveedor
  * @param id_moneda int Id de la moneda preferente del proveedor
  * @param cuenta_bancaria string Cuenta bancaria del proveedor
  * @param activo bool Si este proveedor esta activo o no
  * @param representante_legal string Representante legal del proveedor
  * @param tiempo_entrega string Tiempo de entrega del proveedor en dias
  * @param limite_credito float Limite de credito que otorga el proveedor
  * @param dias_de_credito int Dias de credito que otorga el proveedor
  * @param telefono1 string Telefono 1 de la direccion del proveedor
  * @param telefono2 string Telefono 2 de la direccion del proveedor
  * @return id_proveedor int Id autogenerado por la inserci�n del nuevo proveedor.
  **/
 public static function Nuevo($codigo_proveedor, $id_tipo_proveedor, $nombre, $password, $activo = null, $cuenta_bancaria = null, $dias_de_credito = null, $dias_embarque = true, $direcciones = null, $direccion_web = null, $email = null, $id_moneda = null, $id_tarifa_compra = null, $id_tarifa_venta = null, $impuestos = null, $limite_credito = null, $representante_legal = null, $retenciones = null, $rfc = null, $telefono_personal1 = null, $telefono_personal2 = null, $tiempo_entrega = null)
 {
     Logger::log("Creando nuevo proveedor");
     //Se obtiene la informacion actual
     $actual = SesionController::Actual();
     //Se utiliza el metodo de nuevo usuario, este se encarga de las validaciones.
     //El rol numero 6 es tomado como el rol de proveedor
     try {
         $proveedor = PersonalYAgentesController::NuevoUsuario($codigo_proveedor, 6, $nombre, $password, 0, $email, $cuenta_bancaria, null, null, null, null, $dias_de_credito, $dias_embarque, null, null, $direcciones, 0, null, $id_tipo_proveedor, $id_moneda, $actual["id_sucursal"], $id_tarifa_compra, $id_tarifa_venta, $impuestos, null, $limite_credito, null, $direccion_web, $representante_legal, $retenciones, $rfc, null, null, $telefono_personal1, $telefono_personal2, $tiempo_entrega);
     } catch (BusinessLogicException $ble) {
         //propagate
         throw $ble;
     } catch (Exception $e) {
         Logger::error("No se pudo crear al nuevo proveedor: " . $e);
         throw new Exception("No se pudo crear al nuevo proveedor");
     }
     Logger::log("Proveedor creado exitosamente");
     return array("id_proveedor" => $proveedor["id_usuario"]);
 }
Beispiel #3
0
 protected function GenerateResponse()
 {
     try {
         $this->response = PersonalYAgentesController::NuevoUsuario(isset($_POST['codigo_usuario']) ? $_POST['codigo_usuario'] : null, isset($_POST['id_rol']) ? $_POST['id_rol'] : null, isset($_POST['nombre']) ? $_POST['nombre'] : null, isset($_POST['password']) ? $_POST['password'] : null, isset($_POST['comision_ventas']) ? $_POST['comision_ventas'] : "0", isset($_POST['correo_electronico']) ? $_POST['correo_electronico'] : null, isset($_POST['cuenta_bancaria']) ? $_POST['cuenta_bancaria'] : null, isset($_POST['cuenta_mensajeria']) ? $_POST['cuenta_mensajeria'] : null, isset($_POST['curp']) ? $_POST['curp'] : null, isset($_POST['denominacion_comercial']) ? $_POST['denominacion_comercial'] : null, isset($_POST['descuento']) ? $_POST['descuento'] : null, isset($_POST['dias_de_credito']) ? $_POST['dias_de_credito'] : null, isset($_POST['dias_de_embarque']) ? $_POST['dias_de_embarque'] : null, isset($_POST['dia_de_pago']) ? $_POST['dia_de_pago'] : null, isset($_POST['dia_de_revision']) ? $_POST['dia_de_revision'] : null, isset($_POST['direcciones']) ? json_decode($_POST['direcciones']) : null, isset($_POST['facturar_a_terceros']) ? $_POST['facturar_a_terceros'] : null, isset($_POST['id_clasificacion_cliente']) ? $_POST['id_clasificacion_cliente'] : null, isset($_POST['id_clasificacion_proveedor']) ? $_POST['id_clasificacion_proveedor'] : null, isset($_POST['id_moneda']) ? $_POST['id_moneda'] : null, isset($_POST['id_sucursal']) ? $_POST['id_sucursal'] : null, isset($_POST['id_tarifa_compra']) ? $_POST['id_tarifa_compra'] : null, isset($_POST['id_tarifa_venta']) ? $_POST['id_tarifa_venta'] : null, isset($_POST['id_usuario_padre']) ? $_POST['id_usuario_padre'] : null, isset($_POST['impuestos']) ? json_decode($_POST['impuestos']) : null, isset($_POST['intereses_moratorios']) ? $_POST['intereses_moratorios'] : null, isset($_POST['limite_credito']) ? $_POST['limite_credito'] : "0", isset($_POST['mensajeria']) ? $_POST['mensajeria'] : null, isset($_POST['pagina_web']) ? $_POST['pagina_web'] : null, isset($_POST['representante_legal']) ? $_POST['representante_legal'] : null, isset($_POST['retenciones']) ? json_decode($_POST['retenciones']) : null, isset($_POST['rfc']) ? $_POST['rfc'] : null, isset($_POST['salario']) ? $_POST['salario'] : null, isset($_POST['saldo_del_ejercicio']) ? $_POST['saldo_del_ejercicio'] : null, isset($_POST['telefono_personal1']) ? $_POST['telefono_personal1'] : null, isset($_POST['telefono_personal2']) ? $_POST['telefono_personal2'] : null, isset($_POST['tiempo_entrega']) ? $_POST['tiempo_entrega'] : null, isset($_POST['ventas_a_credito']) ? $_POST['ventas_a_credito'] : null);
     } catch (Exception $e) {
         //Logger::error($e);
         throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage()));
     }
 }