/** * *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"]); }
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())); } }