Se requiere el desarrollo de un sistema para facturación electrónica (por cada factura debe generar un archivo xml firmado) hecha en asp.net y C# el cual va a estar disponible en internet, las facturas deben ser firmadas mediante DNIe utilizando el estándar PKCS#7. En general el sistema debe tener las siguientes funcionalidades: 1- Registrarse como usuario La pagina web deberá contar con una opción para que una persona pueda ingresar a su cuenta mediante correo electrónico y contraseña si esta persona no tuviera cuenta entonces deberá haber una opción para crear una nueva cuenta. Al ingresar al panel de control el usuario tendrá la posibilidad de hacer uso de todas las opciones de la página web. A- Datos para el registro: - Nombre de la empresa: ……… Cedula jurídica: ……….. Cantón: ……….. Provincia: Esto debe ser un combo con las siguientes opciones (Alajuela, Cartago, Heredia, San José, Guanacaste, Limón, Puntarenas) Nombre del representante legal: …………. Email: …………. Teléfono: ……….. Contraseña:……….. Debajo de estos datos deben aparecer las políticas de uso y un check para aceptarlas: Doy fe de que todos los datos que he ingresado son verdaderos, además hago constar que actualmente trabajo o represento a la empresa que estoy registrando y que tengo autorización de la misma para abrir esta cuenta. Comprendo que si llegara a proporcionar información falsa o que incumpliera con las normas establecidas en este sitio web mi cuenta puede ser cerrada y Naby no realizara ningún reembolso de dinero en caso de que haya pagado alguno de los servicios. Luego al final debe aparecer el botón de Finalizar registro si el usuario no hubiera llenado todos los datos el sistema deberá solicitar que los llene. Una vez que haya terminado de registrarse inmediatamente debe aparecer el siguiente mensaje: Hola Gracias por registrarte. Ahora recibirás un mensaje en tu cuenta de correo electrónico, para terminar el proceso de registro debes darle clic al enlace que aparece allí. Recuerda que para empezar a facturar primero debes ingresar al panel de control y realizar un pago en la opción de Realizar Pago. 2- Panel de control En la página de inicio debe aparecer la opción del panel de control, si al darle clic a esta opción el usuario todavía no se ha registrado el sistema debe solicitarle que ingrese el correo electrónico y la contraseña. Dentro del panel de control deben haber 3 opciones: - Modificar datos Realizar pago Administrador de pagos A- Modificar datos: En esta opción el usuario podrá actualizar los datos de registro a excepción de 3 datos los cuales son el nombre de la empresa, cedula jurídica y correo electrónico estos datos no se deben poder modificar. B- Realizar pago: En esta opción el usuario podrá realizar el pago eligiendo el tipo de plan que desean adquirir. Los clientes deben pagar por la utilización del sistema, el método de pago es mediante una integración con paypal ya sea que el cliente tenga una cuenta en paypal o ingrese como usuario invitado de paypal y realice el pago mediante tarjeta de crédito o débito internacional. Cada uno de los planes de pago debe ser editable, se debe dar la opción de que el administrador pueda crear nuevos planes de pago, modificarlos o eliminarlos por el usuario administrador del sitio desde un panel de control general (más adelante se explicara que es el panel de control general), un ejemplo de un plan de pago es por ejemplo 1 mes por 20 dólares o 3 meses por 38 dólares. A continuación un ejemplo de cómo debe quedar: Planes de pago 1 mes 3 meses 6 meses 12 meses Costo 10 dólares 25 dólares 40 dólares 60 dólares El usuario deberá chequear cual plan de pago desea adquirir y al darle click a botón comprar debe dirigirlo a la cuenta en paypal en donde realizara el pago. C- Administrador de pagos: En esta opción el usuario podrá observar el tipo de plan que tiene actualmente, la fecha en que lo compro, la fecha de finalización y cuantos días le quedan antes de que deba hacer un nuevo pago. 3- Punto de venta En cuanto al punto de venta, el sistema debe poder ser utilizado tanto para facturar productos como servicios, crear clientes y seleccionar uno para facturar, debe poder permitir la aplicación de descuentos por línea de factura o por el total general de la factura, permitir varios tipos de impuesto y estos ser editables, debe poder permitir varios medios de pago, facturar a crédito, crear notas de crédito y débito, poder crear productos y servicios. El sistema debe poder generar algunos reportes y gráficos. Otras funciones que el sistema debe tener: Administración, generación y recepción de respuestas de envíos hechos a otros emisores electrónicos. Generación de mensajes de aceptación o rechazo, dirigidas al emisor electrónico. Generación, recuperación y visualización de la representación impresa del documento electrónico. Generación del acuse de recibo electrónico de las mercancías entregadas o servicios prestados y los ajustes correspondientes. Identificar los documentos electrónicos emitidos para los que no se haya recibido una respuesta de envío y un acuse de recibo de las mercancías -si corresponde- de parte del receptor. De esta forma, se tendrá certeza de que cada documento emitido haya sido recibido. No se podrán generar documentos electrónicos con fecha anterior o posterior a la de su emisión. Todos los documentos electrónicos deben ser incluidos y a la vez, actualizar todos los registros. Contar con las validaciones necesarias que controlen la numeración para que impidan la duplicidad de números. Impedir la anulación de documentos electrónicos. Incluir validaciones lógicas y aritméticas en los campos que requieren de algún cálculo. Contar con los controles requeridos para el desarrollo de auditorías de tecnología de la información y comunicación. Otros aspectos a tomar en cuenta son - - - Nota de Crédito: Debe haber una opción para notas de crédito, las notas de crédito son los documentos que se realizan cuando hay alguna devolución de productos o la anulación de alguna factura. Esta debe llevar el número de factura, la fecha, la justificación, en una tabla debe aparecer los artículos comprados y en otra tabla los artículos devueltos y sus respectivos datos como código, artículo, cantidad, precio unitario y total. Si se aplico algún descuento en la venta al momento de aplicar la nota de crédito debe tomar en cuenta el precio con el descuento aplicado y no el precio habitual. Hay que tomar en cuenta que este debe generar un archivo XML firmado. Pantalla de facturación: Esta pantalla llevara datos comunes en cualquier pantalla de facturación como nombre del cliente, código del artículo, precio, unidades, total, entre otros. Los datos de la pantalla de facturación se especificaran en otra ocasión, se debe poder facturar tanto productos como servicios. En la pantalla de facturación al momento de facturar debe aparecer opciones para diferentes medios de pagos como efectivo, tarjeta de debito o crédito, cheques o transferencia bancaria, también debe aceptar combinar varios tipos de pago como por ejemplo una parte en efectivo y otra con cheque o dos cheques o una parte en efectivo y otra con tarjeta de debito, etc. Cuando se está facturando si en algún momento el usuario ingresa más de una cantidad de algún producto sin querer o ingresa un producto que el cliente no quiere comprar se debe poder eliminar ese producto antes de que el usuario facture el total. En este caso por ejemplo si una persona ingresa 3 artículos iguales pero después solo desea llevar dos entonces se debe poder modificar la línea de la factura para eliminar uno y dejar 2. Ingresar clientes a la base de datos: Debe haber una opción para que el usuario pueda ingresar los nombres y datos de los clientes al sistema y que estos datos queden guardados. Por ejemplo cuando se emite una factura se ingresa las iniciales del nombre del cliente el sistema debe tomar de la base de datos los posibles nombres que correspondan a esas iniciales y proponerle al usuario el nombre de la persona que está buscando, esto funciona para agilizar el proceso de facturación. Si el cliente no está en base de datos el usuario desde la pantalla de facturación debe tener la posibilidad de agregar a este cliente y guardarlo en base de datos. Los datos que se deben solicitar al crear un nuevo cliente son: Nombre Completo, Cedula, dirección, 2 números telefónicos y el correo electrónico. - - Ingresar productos o servicios a la base de datos: Debe haber una opción para que el usuario pueda crear los productos y servicios que ofrece y que estos datos queden guardados en la base de datos. Al momento de facturar e ir ingresando las iniciales del producto o servicio el sistema debe buscar en la base de datos los posibles nombres del producto o servicio que el usuario está buscando, al momento de facturar debe disminuir los productos del inventario por la venta realizada y al generar un nota de crédito se debe regresar esos productos al inventario. Facturas a crédito: Al realizar una factura a crédito se debe poder realizar abonos a estas facturas. Primero se debe crear una factura a crédito a un cliente y esta quedara guardada en la base de datos. Cuando se ingresa al apartado en donde se encuentran todas las facturas de un cliente en especifico deben aparecer todas las facturas a crédito con un saldo mayor a cero al realizarle el abono se debe generar un recibo por el pago realizado y descontar ese monto del saldo total de la deuda. En este apartado también se debe poder aplicar diferentes medios de pago como efectivo, tarjetas de debito o crédito, cheques, depósito bancario o mezclar varios tipos de pagos como por ejemplo una parte en efectivo y otra con tarjeta de crédito o una parte con cheque y la otra en efectivo, etc. Las facturas a crédito y los abonos se deben poder reimprimir en caso de que se necesite imprimir más de una vez y también se deben poder anular mediante una nota de crédito. Importante: Tanto las facturas como las notas de crédito deben tener la opción de imprimir el documento o de enviar el documento al correo electrónico del cliente pero siempre deben generar un archivo xml firmado, además deben tener la opción de reimprimir cualquier factura o nota de crédito que ya se haya imprimido anteriormente. También todas las notas de crédito como las facturas deben poderse imprimir utilizando dos diseños diferentes de documentos, uno pequeño como los que dan en los supermercados que son alargado pero poco anchas y otras que son mas grandes aproximadamente del tamaño de la mitad de una hoja de carta. Por último debe ser posible facturar tanto productos como servicios profesionales. 4- Envío automatizado de correos electrónicos. A- El sistema debe enviar de forma automática correos a los clientes para casos como los siguientes: recordatorio del vencimiento de una cuenta cuando falte una semana para el vencimiento se debe enviar un correo de aviso, si el día antes del vencimiento el cliente no ha realizado el pago se le debe enviar otro correo de recordatorio y si no pago y se le vence la cuenta se le debe enviar automáticamente un correo para notificarle e instarle a realizar el pago, correo para confirmación de pago recibido, correo para terminar el registro de la cuenta. Tipo de mensaje Mensaje Para recordar el vencimiento de una Hola cuenta a falta de 7 días Ya solo falta 7 días para que finalice el periodo de pago. Evita atrasos en la facturación haciendo un pago ahora (link para direccionarlo al panel de control) Para recordar el vencimiento de una Hola cuenta a falta de 1 día. Ya solo te queda un día para que finalice el periodo de pago. Evita atrasos en la facturación haciendo un pago ahora (link para direccionarlo al panel de control) Una vez finalizado el periodo de pago Hola Se ha vencido el periodo de pago en este momento no puedes facturar para reactivar el servicio y poder seguir facturando realiza un pago (link para direccionarlo al panel de control) Confirmación de pago recibido Hola Gracias por haber realizado el pago Los datos de la compra son los siguientes: Plan de pagos adquirido: (1 mes, 3 mese, 6 meses, etc) Monto: …….. Fecha de pago: ……. Fecha de vencimiento: ……. Confirmación de correo electrónico Hola Solo te falta un paso para terminar el proceso de registro. Tus datos son los siguientes: Email: ……… Contraseña: …….. Ingresa al siguiente link y ya estarás registrado (link para registrarse) 5- Panel de control general En la opción para ingresar el correo y la contraseña nosotros como administradores del sitio debemos tener un panel de control general en donde podamos realizar diferentes funciones como: A- Administrar planes de pagos: En esta opción podremos crear, modificar o eliminar los planes de pagos actuales, una vez hecho esto se deberá ver reflejado en el sitio web. B- Administrador de usuarios: En esta opción podremos observar el listado completo de todos los usuarios registrados. También se deberá poder aplicar filtros: registro por rango de fecha o usuarios con planes de pagos vigentes o inactivos. En esta misma opción se podrá eliminar o suspender la cuenta de cualquiera de los usuarios. C- Administrador de Paypal: En esta opción el administrador podrá observar cuantos usuarios han realizado algún pago durante el día y la cantidad total de dinero que ha ingresado durante el día. También se podrá utilizar filtros por rango de fecha para observar estos mismos datos.