Con éxito

Notas

Error

Session expiration Your session is going to expireClick here to extend

Presupuesto

Proyecto pequeño <800

Publicado el

17/01/13 14:57

Cliente

JOA***

Este proyecto ha expirado

Publica un proyecto similar y recibe ofertas sin compromiso alguno.

¡Publica un proyecto similar ahora!

Descripción

DESCRIPCION Y DISEÑO DEL SISTEMA EN PHP PARA EL PORTAL DE FACTURACION

**********************************************************************************************************

 

RESUMEN:

 

SE TRATA DE UN SISTEMA DE FACTURACION QUE EN SU PARTE SUSTANCIAL ES APOYADO POR OTRO SISTEMA DE FACTURACION QUE SE EJECUTA EN EL SERVIDOR PHP. POR OTRO LADO EXISTE UN SISTEMA QUE ALIMENTA LOS MONTOS A SER FACTURADOS (DEPOSITOS DE CLIENTES). Y FINALMENTE, ESTE SISTEMA SE ENCARGA DE LEER LOS MONTOS POR FACTURAR, DETERMINA LA CANTIDAD MAXIMA A FACTURAR (MONTO TOTAL A FACTURAR MENOS FACTURAS YA HECHAS), CONSERVA DATOS DE LOS CLIENTES, INVOCA AL SISTEMA DE FACTURACION, RECOGE LOS DATOS DE FACTURAS REALIZADAS Y LOS GRABA, ENVIA CORREO AL CLIENTE

 

DESCRIPCION DETALLADA DEL DISEÑO:

 

Realizaré la descripción detallada de 4 pantallas relativamente lineales (la primera lleva a la segunda (o la cuarta), la segunda a la tercera y la tercera a la cuarta).

 

(El usuario, si trata de entrar directamente a la pantalla 2 o a la 3 o a la 4, debería ser direccionado a la pantalla 1)

 

Pantalla 1.

Esta pantalla debe poder incorporar una imagen JPG como logotipo y una leyenda de 300 caracteres.

 

En esta pantalla el usuario indica:

 

a. RFC (registro federal de causantes de MEXICO) 12 O 13 CARACTERES.

 

b. Número de transacción que está compuesto por:

 

b1. 6 caracteres iniciales por número de empresa (numérico con ceros a la izquierda para rellenar. Ej. 1 = 000001)

 

b2. (séptimo caracter) "I" ó "R"

 

b3. Número de transacción 6 caracteres (caracteres 8 a 13) numérico con ceros a la izquierda para rellenar.

 

b4. Número adicional 6 caracteres rellenado con 6 caracteres.

 

c. Usuario presiona botón "Continuar"

Este botón realiza lo siguiente:

c1. Evalua si la empresa existe en la tabla EMPRESAS de la base de datos FACTURACION. Si no existe, avisa al usuario y se mantiene en Pantalla 1.

c2. De la tabla empresas, en el registro encontrado, obtiene los campos: descr, sistema, base, usuario, pwd, ruta, programa, porciva, porcimphosp, asuntoemail, textoemail, emailempresa (ver abajo la descripción de los campos).

c3. Abre la base de datos (base, que en el ejemplo sería IHCLIENTE001), con el usuario (usuario) y contraseña (pwd) obtenidas en c2.

c4. usamos el caracter b2 indicado junto con b3 y b4 para formar una cadena que se usa a continuacion.

c5. Con la tabla FACTURAS. Obtiene la suma del campo TOTAL para todos los registros que contengan el campo RESING igual a esta cadena.

c6. Con la tabla ANTIABON. Obtiene la suma del campo CANTIDAD para todos los registros que contengan el campo RESING igual a esta cadena.

c7. Si el total de c6 ANTIABON, es menor o igual a c5 FACTURAS. Avisa al usuario que no hay nada por facturar, indica la cantidad ya facturada (c5) y la cantidad de depósitos de la cuenta (c6) y se envía a pantalla 4 en que podrá enviar por email alguna de las facturas generadas previamente. Se genera la variable de SESION, PENDIENTE_POR_FACTURAR como la diferencia entre c6 ANTIABON menos c5 FACTURAS. (seguramente muchas otras variables de sesion deberían ser generadas con los datos extraídos de las tablas que fueron mencionados antes).

c8. Pasa a pantalla 2

 

Pantalla 2.

 

a. Al entrar a esta pantalla se valida que el RFC exista en la tabla clientes buscada por el campo RFC. Si existe, se inicializa esta pantalla con los valores de la tabla clientes que tienen un RFC al indicado en el dato "a" de la pantalla 1. Si el cliente no es encontrado, entonces los datos de captura de esta pantalla son vacíos para que el usuario los llene:

 

 

| rfc | varchar(13)

| empresa | varchar(140)

| calle | varchar(140)

| noext | varchar(30)

| noint | varchar(30)

| cp | varchar(10)

| col | varchar(140)

| estado | varchar(100)

| locali | varchar(100)

| muni | varchar(100)

| pais | varchar(100)

 

Al pulsar el botón continuar:

 

1. Los datos son validados para no contener código HTML (depurar etiquetas en todos los campos). Si esto contradice lo dicho en el siguiente apartado, se preserva lo dicho en el siguiente apartado.

2. Todos los caracteres capturados deben ser alguno de los siguientes, incluyendo el ASCII 39:

[OBSCURED]!"#$%&/()=?\QWERTYUIOP+*~ASDFGHJKLÑ{[^}]<>ZXCVBNM,;.:-_/ qwertyuiopasdfghjklñzxcvbnmáéíóúÁÉÍÓÚ

3. Los datos del cliente que tiene ese RFC son actualizados con estos campos

 

Pantalla 3:

 

En esta pantalla el usuario puede generar una factura hasta el importe máximo pendiente de facturar.

Puede indicar alguno de los siguientes conceptos:

 

1. HOSPEDAJE, QUE INCLUYE IVA E IMPUESTO DE HOSPEDAJE

2. CUALQUIER CONCEPTO LIBRE QUE SOLO INCLUYE IVA

 

EN CADA CASO DEBE INDICAR, CANTIDAD, PRECIO UNITARIO CON IMPUESTOS, EL SISTEMA CALCULARA EL IMPORTE, EL IVA Y EL IMPUESTO DE HOSPEDAJE EN SU CASO.

 

EL PRECIO UNITARIO SIN IMPUESTOS, O PRECIO BASE, SERA EL RESULTADO DE DIVIDIR EL PRECIO CON IMPUESTO ENTRE (1+0.01*(IVA + IMPUESTO HOSPEDAJE )) SE ENTIENDE QUE EL IVA Y EL IMPUESTO DE HOSPEDAJE ESTAN EXPRESADOS EN PORCENTAJE.

 

EL IMPORTE DEL IVA SERA EL RESULTADO DE MULTIPLICAR EL PRECIO BASE POR 0.01*IVA

EL IMPORTE DEL IMPUESTO DE HOSPEDAJE SERA EL RESULTADO DE MULTIPLICAR EL PRECIO PASE POR 0.01 * IMP.HOSPEDAJE.

 

EL IMPORTE TOTAL DE LA FACTURA EN CUESTION (ES DECIR, LA SUMA DE LOS IMPORTES DE TODOS LOS CONCEPTOS INCLUIDO IVA E IMPUESTO DE HOSPEDAJE) NO DEBE SER SUPERIOR A LO PENDIENTE DE FACTURAR.

 

 

También en esta pantalla el usuario puede capturar hasta 3 posibles leyendas de hasta 100 caracteres cada una.

 

 

3. CUANDO EL USUARIO PRESIONA EL BOTON FACTURAR:

 

3.1 INTENTA BLOQUEAR LA TABLA EMPRESAS DE LA BASE FACTURACION, EN EL REGISTRO DE LA EMPRESA EN CUESTION. SI LO LOGRA Y EL CAMPO FACTURANDO=1, ENTONCES PIDE AL USUARIO QUE ESPERE E INTENTE EN UNOS MINUTOS, DESBLOQUEANDO EL REGISTRO (Y NO AVANZA). SI FACTURANDO=0, PONE FACTURANDO CON VALOR 1 Y DESBLOQUEA EL REGISTRO. SI NO LOGRA BLOQUEAR EL REGISTRO INDICA AL USUARIO QUE INTENTE EN UNOS MINUTOS MAS TARDE PORQUE ESTA EN USO EL SISTEMA (Y NO AVANZA).

3.2 SE RECALCULA PENDIENTE_DE_FACTURAR EXACTAMENTE IGUAL QUE EN EL PASO C7 DE LA PANTALLA 1 (POR SI ALGUN USUARIO INTENTO FACTURAR MEDIANTE DOS PANTALLAS ABIERTAS SIMULTÁNEAMENTE).

3.3 SE REPITE LA VALIDACION DE QUE LO QUE SE FACTURA NO SUPERE A LO PENDIENTE DE FACTURAR, EN CUYO CASO AVISA AL USUARIO Y REGRESA A ESTA MISMA PANTALLA.

3.4 BORRA EL ARCHIVO porfacturar.txt DE LA RUTA INDICADA EN FACTURACION.EMPRESAS.RUTA

3.5 GENERA EL ARCHIVO porfacturar.txt EN LA RUTA INDICADA EN FACTURACION.EMPRESAS.RUTA, conteniendo en cada renglón:

| rfc | varchar(13)

| empresa | varchar(140)

| calle | varchar(140)

| noext | varchar(30)

| noint | varchar(30)

| cp | varchar(10)

| col | varchar(140)

| estado | varchar(100)

| locali | varchar(100)

| muni | varchar(100)

| pais | varchar(100)

LEYENDA1

LEYENDA2

LEYENDA3

LO SIGUIENTE TANTAS VECES COMO PARTIDAS DE LA FACTURA EXISTAN

CANTIDAD

DESCRIPCION

PRECIO UNITARIO

PORCIVA

IVA

PORCIMPHOSP

IMPHOSP

IMPORTE

 

 

3.6 MANDA EJECUTAR AL PROGRAMA INDICADO EN FACTURACION (base).EMPRESAS(tabla).PROGRAMA(campo)

3.7 ESPERA HASTA 1 MINUTO LA RESPUESTA.

3.8 Este programa regresa tres rutas a archivos o bien una sola ruta a un archivo con un mensaje de error.

3.9 SI SE RECIBEN TRES NOMBRES DE ARCHIVOS COMO RESPUESTA CON SU RUTA COMPLETA. EL PRIMERO CONTIENE EL NUMERO DE FACTURA GENERADA, EL SEGUNDO Y EL TERCERO SON SOLO ARCHIVOS QUE SE ENVIARAN POR CORREO AL CLIENTE EN LA SIGUIENTE PAGINA.

SI SOLO SE RECIBE UNA RUTA DE ARCHIVO (CON UN MENSAJE DE ERROR), SE DESPLIEGA DICHO MENSAJE DE ERROR Y PARA. (QUEDARA EN EL USUARIO DEFINIR SU SIGUIENTE ACCION).

3.10 GRABA EN LA TABLA FACTURAS:

A. NUMERO DE FACTURA

B. RUTA AL ARCHIVO1

C. RUTA AL ARCHIVO2

D. CADENA RESING

E. FECHA HORA

F. TOTAL DE LA FACTURA

G. EMPRESA

H. RFC

I. CALLE

J. NOEXT

K. NOINT

L. COL

M. CP

N. ESTADO

O. LOCALI

P. MUNI

Q. PAIS

R. LEYENDA1

S. LEYENDA2

T. LEYENDA3

3.11 GRABA EN LA TABLA PARTIDAS: (PARA CADA PARTIDA DE LA FACTURA)

A. NUMERO DE FACTURA

B. CADENA RESING

C. CANTIDAD

D. DESCRIPCION

E. PRECIO UNITARIO SIN IVA Y SIN IMPUESTO DE HOSPEDAJE

F. IMPORTE (CANTIDAD POR PRECIO UNITARIO SIN IVA Y SIN IMPUESTO DE HOSPEDAJE)

G. IVA (IMPORTE DEL IVA)

H. PORCIVA (PORCENTAJE DEL IVA)

I. IMPHOSP (IMPORTE DEL IMPUESTO DE HOSPEDAJE)

J. PORCIMPHOSP (PORCENTAJE DEL IMPUESTO DE HOSPEDAJE)

3.12 BLOQUEA EL REGISTRO DE LA TABLA EMPRESAS DE LA BASE DE DATOS "FACTURACION" DE ESTE CLIENTE (ESPERA MAS TIEMPO QUE ANTES PORQUE ES RELEVANTE QUE LA DEJE DESBLOQUEADA). PONE EL CAMPO FACTURANDO=0.

3.13 Se muestra pantalla 4

 

 

Pantalla 4:

 

Esta pantalla muestra todas las facturas existentes con la cadena RESING igual a la indicada en la pantalla 1.

 

El usuario puede elegir una factura para envío.

 

Se muestran los 3 emails del cliente y el cliente indica a cuales de los 3 va a enviar la factura.

 

| email1 | varchar(100)

| email2 | varchar(100)

| email3 | varchar(100)

 

El usuario debe indicar si va a usar email1 y/o email2 y/o email3.

 

Al presionar enviar, se genera un correo a los emails indicados por el cliente, CCO al correo de la empresa (FACTURACION.EMPRESAS.EMAILEMPRESA).

 

El asunto del email es el indicado en FACTURACION.EMPRESAS.ASUNTOEMAIL

 

Se anexan los archivos de respuesta del sistema de facturación.

 

 

 

 

EN LA TABLA EMPRESAS DE LA BASE FACTURACION, BLOQUEA EL REGISTRO Y PONE FACTURANDO=0.

 

 

 

ESQUEMA PARA LAS TABLAS DEL SISTEMA DE FACTURACION POR INTERNET

***************************************************************************************************

 

BASE DE DATOS PRINCIPAL

***********************************

(ESTA SIRVE PARA IDENTIFICAR LA BASE DE DATOS ESPECIFICA DEL CLIENTE Y DATOS PROPIOS DEL QUE EMITE LA FACTURA, YA QUE PODRIA HABER VARIOS EMISORES DE FACTURAS).

 

BASE DE DATOS: facturacion

USUARIO: facturacion1

PWD: fac()tur54

DESCRIPCION: Contiene una tabla (empresas) con el nombre del cliente y el programa que ejecuta y la ruta al programa de facturacion, programa de facturacion,

base, usuario y pwd a la base de datos que contiene los datos de facturación.

EMPRESAS

registro

clave de la empresa (6 CARACTERES, ES NUMERICA RELLENADA CON CEROS A LA IZQUIERDA)

descr (NOMBRE DEL CLIENTE)

sistema (SISTEMA DE FACTURACION)

base (BASE DE DATOS DONDE RESIDEN LOS DATOS DEL CLIENTE)

usuario (USUARIO DE LA BASE DE DATOS DONDE RESIDEN LOS DATOS DEL CLIENTE)

pwd (PWD...)

ruta (RUTA EN LA QUE SE EJECUTA EL PROGRAMA DE FACTURACION)

programa (PROGRAMA DE FACTURACION USADO .EXE)

porciva (porcentaje de iva)

porcimphosp (porcentaje de impuesto de hospedaje)

facturando (1=si, 0=no)

asuntoemail

textoemail

emailempresa

 

 

 

BASE DE DATOS DE CLIENTES

****************************************

 

BASE DE DATOS: IHCLIENTE001

 

TABLAS

 

(EN EL CAMPO RESING QUE APARECE EN ESTAS TABLAS, LOS ULTIMOS 6 CARACTERES ALEATORIOS SON PREESCRITOS. ES DECIR, LA PARTE ALEATORIA ES GRABADA POR OTRO SISTEMA EXTERNO)

 

 

FACTURAS (ENCABEZADOS DE FACTURAS)

REGISTRO (autoincrement)

FACTURA (NUMERO DE FACTURA INTERNO)

RESING (NUMERO DE RESERVACION O INGRESO DIVERSO) (EMPIEZA CON R O CON I CON 6 DIGITOS DE NUMERO DE MOVIMIENTO Y 6 ALEATORIOS)

FECHAHORA (EN LA QUE SE ELABORO FACTURA)

TOTAL

EMPRESA (EMPRESA A LA QUE SE FACTURO. LO DE ABAJO SON SUS DATOS FISCALES)

RFC

CALLE

NOEXT

NOINT

COL

CP

LOCALI

MUNI

ESTADO

PAIS

LEYENDA1

LEYENDA2

LEYENDA3

 

PARTIDAS (PARTIDAS DE FACTURAS)

REGISTRO (autoincrement)

RESING (NUMERO DE RESERVACION O INGRESO DIVERSO) (EMPIEZA CON R O CON I CON 6 DIGITOS DE NUMERO DE MOVIMIENTO Y 6 ALEATORIOS).

FACTURA (NUMERO INTERNO DE FACTURA)

CANTIDAD

DESCRIPCION

PRECIO UNITARIO (SIN IVA Y SIN IMPUESTO DE HOSPEDAJE)

IMPORTE (CANTIDAD POR PRECIO UNITARIO SIN IVA Y SIN IMPUESTO DE HOSPEDAJE)

IVA (IMPORTE DEL IVA)

PORCIVA (PORCENTAJE DEL IVA)

IMPHOSP (IMPORTE DEL IMPUESTO DE HOSPEDAJE)

PORCIMPHOSP (PORCENTAJE DEL IMPUESTO DE HOSPEDAJE)

 

ANTIABON (anticipos y abonos)

REGISTRO (autoincrement)

RESING (NUMERO DE RESERVACION O INGRESO DIVERSO) (EMPIEZA CON R O CON I CON 6 DIGITOS DE NUMERO DE MOVIMIENTO Y 6 ALEATORIOS).

FECHAHORA

CANTIDAD

 

CLIENTES

REGISTRO

EMPRESA

RFC

CALLE

NOEXT

NOINT

COL

CP

LOCALI

MUNI

ESTADO

PAIS

EMAIL1

EMAIL2

EMAIL3

 

Observaciones:

 

1. Se debe prever un archivo include (info.inc) para establecer los parametros del uso de correos a través de un servidor de correos, SMTP, donde se indique:

SERVIDOR

USUARIO

CONTRASEÑA

PUERTO SERA 25 PERO PODRÍA VARIAR.

 

2. Se limitará a 30 partidas por factura.

 

3. La base de datos para la que se programará es MySQL (ya está hecha y se pondrá a disposición del desarrollador). La aplicación funcionará en un servidor en ambiente WAMP Server 2.0 (que puede ser proporcionado al desarrollador).

 

4. Consideramos que el desarrollo está documentado a un nivel de detalle tal que podamos solicitar 3 días naturales como máximo para el tiempo de entrega (viernes 18 o sábado 19 de enero 2013.).

 

5. Requerimos garantía de que se cumple con todo lo especificado.

 

6. Durante el desarrollo existirá intercambio de información para consultas, aclaraciones y alguna eventual falta de consistencia en la información proporcionada en este documento.

 

Mi idea en cuanto al presupuesto es dedicar unos 450€. Espero vuestras respuestas.