# Documento cierre Mitra
## URLs de importancia
Landing: https://mitra.abstract.cl/
Sección para empresas: https://mitra-user-backoffice.abstract.cl/
Sección para Mitra: https://mitra-admin-backoffice.abstract.cl/
## Documentacion y Playground
Cuenta: apollomitrateam@gmail.com
Contraseña Gmail: Abstract1234
Contraseña Apollo Studio: Abstract1234!
- user-api: https://studio.apollographql.com/graph/mitra-user-api-supergraph/explorer?variant=main
- admin-api: https://studio.apollographql.com/graph/mitra-admin-api-supergraph/explorer?variant=main
- public-api: https://studio.apollographql.com/graph/mitra-public-api-supergraph/explorer?variant=main
- diagrama UML: https://drive.google.com/file/d/1apemV-RLx8eqOVapSelSXEClvHO9_VvQ/view?usp=sharing
## Historias de usuario completas
### Solicitud de creación de empresa
Una persona natural debe poder acceder desde la página pública de Mitra a la opción de ‘Crear cuenta’ o ‘Inscribirse’.
El usuario deberá ingresar la información de la empresa, y la información del Usuario Administrador de Empresa. Además, este puede invitar a más integrantes de la empresa en el formulario, definiendo sus roles en el proceso.
Será necesario también adjuntar documentación exigida por Mitra, así como la firma de uno o más contratos por definir.
El usuario validador revisa la documentación de la empresa y valida que la información ingresada en la plataforma es correcta. Se podrá autorizar o rechazar (solicitar cambios) la creación de la empresa.
Luego el usuario deberá esperar la aprobación por parte de Mitra.
### LogIn
Los usuarios pueden ingresar sus credenciales e ingresar a la plataforma, con la cual puede ver las empresas a las que está asociado.
### Crear campaña Early Payment
Los usuarios empresa podrán crear una campaña de EP cuando posean un exceso de caja.
Primero el usuario deberá crear un borrador de la campaña, indicando:
- Exceso de caja
- Porcentaje mínimo de descuento a recibir
- Fecha y hora de la campaña inicial y final
- Reglas de facturas y puja
- Facturas a participar
Para que la campaña pase a estado “Activa” y otros usuarios puedan participar, algún usuario con los permisos suficientes deberá aprobar el borrador.
### Crear campaña Early Collecting
Los usuarios empresa podrán crear una campaña de EC.
Primero el usuario deberá crear un borrador de la campaña, indicando:
- Porcentaje de descuento ofrecido
- Monto mínimo (necesidad de caja)
- Fecha y hora de la campaña
- Reglas de facturas y puja
- Facturas a participar
Para que la campaña pase a estado “Activa” y otros usuarios puedan participar, algún usuario con los permisos suficientes deberá aprobar el borrador.
## Administración de campaña
Las empresas podrán administrar y supervisar las campañas que hayan creado, ya sean de EP o EC. Las acciones que puede realizar el creador de una campaña sobre esta son las siguientes:
- Visualizar las pujas
## Historias de usuario incompletas
### Información general de la empresa
Los usuarios de empresas podrán acceder a información general de la empresa. Por ejemplo:
- Rut
- Usuarios que pertenecen a la empresa
- Fecha de creación
Esto no se cumple para la siguiente información:
- Número de clientes en Mitra
- Número de proveedores en Mitra
- Campañas activas
- Exceso de caja
- Entre otros
### Administración de usuarios
El Usuario Administrador de Empresa y los usuarios que tengan los permisos requeridos, podrán visualizar el resto de los usuarios. La administración de usuarios permitirá:
- Solicitar nuevos usuarios
Incompleta porque no se puede:
- Eliminar usuarios
- Solicitar la edición de información de usuarios, incluyendo los permisos asociados a este.
### Participar en campaña Early Payment
Los usuarios deben poder ver un listado de las campañas EP en las que está invitado y aceptarlas.
Estas campañas fueron creadas por alguno de sus clientes con exceso de caja. Este cliente busca pagar anticipadamente al proveedor que le ofrezca mejor descuento.
El usuario ve el detalle de cada una de estas campañas, por ejemplo:
- Últimas pujas de la campaña con el porcentaje de descuento ofrecido
- Monto a prepagar de la campaña.
- Fecha de término de la campaña
- Facturas con las que participa en la campaña.
Finalmente, los usuarios podrán hacer ofertas en la campaña, escogiendo las facturas e ingresando un porcentaje de descuento mayor al último ofrecido.
Incompleta porque:
- No se crea un borrador de puja para que sea validado, si no que la campaña se crea inmediatamente por un usuario aprobador. La modelación se hizo pensando en esto, por lo que se crea el borrador aprobado y la puja en una misma acción, pero para el usuario es como si pujara inmediatamente.
### Participar en campaña Early Collecting
Los usuarios deben poder ver un listado de las campañas EC en las que está invitado.
Estas campañas fueron creadas por alguno de sus proveedores con necesidad de caja. Este proveedor busca que algún cliente le pague anticipadamente el mayor monto posible a cambio de un descuento.
El usuario debe poder ver el detalle de cada una de estas campañas, por ejemplo:
- Últimas pujas de la campaña con el monto a pagar.
- Valor de descuento de la campaña
- Fecha de término de la campaña
- Facturas con las que participa en la campaña.
Finalmente, los usuarios podrán hacer ofertas en la campaña, ingresando un monto a pagar mayor al último ofrecido.
Incompleto por lo mismo de EP.
## Historias de usuario no desarrolladas
### Revisión de proveedores y clientes
El usuario administrador de la empresa podrá gestionar el listado de clientes y proveedores.
No se desarrolla porque se hace mediante las facturas.
### Invitación de proveedores y clientes
El usuario administrador de la empresa podrá enviar invitaciones a los clientes y proveedores que no estén en la plataforma Mitra.
De esta forma ampliará la cantidad de campañas a participar o, los participantes de sus campañas.
No se desarrolla porque se hace mediante las facturas.
### Ejecutar Pago Early Payment
Una vez finalizada la campaña, se debe ejecutar el pago. En el caso de las campañas EP los pasos son los siguientes:
- Envío de preliquidación a las partes.
- El creador de la campaña realiza el pago anticipado.
- El creador de la campaña carga un comprobante del pago.
- El proveedor debe realizar una nota de crédito por el monto descontado según el porcentaje pujado en la campaña.
- El proveedor carga la nota de crédito.
- Envío de liquidación a las partes.
Una vez que los pasos anteriores se cumplan, el EP se da por finalizado
### Ejecutar Pago Early Collecting
Una vez finalizada la campaña, se debe ejecutar el pago. En el caso de las campañas EC los pasos son los siguientes:
- Envío de preliquidación a las partes.
- El ganador de la campaña realiza el pago según el monto pujado.
- El ganador de la campaña carga un comprobante del pago.
- El creador de la campaña genera una nota de crédito asociada al porcentaje de descuento ofrecido en la campaña.
- El creador de la campaña carga la nota de crédito.
- Envío de liquidación a las partes.
Una vez que los pasos anteriores se cumplan, el EC se da por finalizado
## Requerimientos
La lineas tachadas corresponden a requerimientos que se consideraron al principio, pero que fueron descartados a lo largo del proyecto.
- [x] Creación de usuarios
- [x] Autenticación
- [x] Integración con SII: Desarrollo de Query para obtener listado de clientes y proveedores
- [x] Mailer de notificaciones
- [x] Solicitud de creación de empresas
- [x] Revisión de solicitudes de creación de empresa
- [x] Respuesta a solicitudes de creación de empresa
- [ ] ~~Revisión de clientes y proveedores en SII~~
- [ ] ~~Filtrar clientes y proveedores de SII~~
- [ ] ~~Hacer grupos o listas de proveedores y clientes~~
- [ ] ~~Carga masiva de clientes mediante archivo plantilla~~
- [ ] ~~Carga masiva de proveedores mediante archivo plantilla~~
- [x] Carga masiva de facturas en XML
- [x] Listar Empresas
- [x] Creación de borrador campañas EP
- [x] Invitar a proveedores a campaña EP
- [x] Aprobar campaña EP
- [x] Aceptar invitación a campaña EP
- [x] Ver campaña EP
- [x] Editar una campaña EP, solo si mejora las condiciones
- [x] Eliminar una campaña EP, sin no tiene pujas
- [x] Hacer borrador de puja en campaña EP
- [ ] Aprobar puja en campaña EP
- [x] Crear puja en EP
- [x] Finalizar campaña EP
- [x] Asignar ganador de campaña EP
- [x] Creación de EP
- [ ] Carga de comprobante de pago EP
- [ ] Carga de nota de crédito EP
- [ ] Revisión de EP (Administrador)
- [x] Dar EP por finalizado
- [x] Creación de borrador campañas EC
- [x] Invitar a clientes a campaña EC
- [x] Aprobar campaña EC
- [x] Aceptar invitación a campaña EC
- [x] Ver campaña EC
- [ ] Editar una campaña EC, solo si mejora las condiciones
- [ ] Eliminar una campaña EC, sin no tiene pujas
- [x] Hacer borrador de puja en campaña EC
- [ ] Aprobar puja en campaña EC
- [x] Crear puja en EC
- [x] Finalizar campaña EC
- [x] Asignar ganador de campaña EC
- [x] Creación de EC
- [ ] Carga de comprobante de pago EC
- [ ] Carga de nota de crédito EC
- [ ] Revisión de EC (Administrador)
- [x] Dar EC por finalizado
- [ ] Listar campañas (Administrador)
- [x] Listar campañas EC por empresa
- [x] Listar campañas EP por empresa
- [ ] Listar pagos (Administrador)
- [x] Crear usuarios de empresa