sanisurcrm

byJaime Cardenas

Crea una aplicación web SaaS empresarial, responsive y en español para **SANISUR**, destinada a centralizar la gestión comercial de Mercado Público: oportunidades, evaluación, postulaciones, clientes, cotizaciones, adjudicaciones, notas de venta, documentos, facturación y cobranza. Implementa una app FUNCIONAL con autenticación, RBAC, base de datos relacional, CRUD, archivos, auditoría, cálculos, notificaciones, PDF y exportación CSV/XLSX. No usar mock data final, placeholders ni botones sin funcionalidad. ## 1. UX Diseño SaaS profesional, limpio y rápido. Sidebar izquierdo + header con búsqueda global, notificaciones y usuario. Menú: **Dashboard | Oportunidades | Clientes | Cotizaciones | Notas de Venta | Documentos | Reportes | Configuración** Tablas con búsqueda, filtros, ordenamiento y paginación. Formularios validados, badges de estado, KPI, gráficos y responsive. Idioma español. Moneda CLP `$1.234.567`. Fecha `DD-MM-AAAA`. IVA configurable. ## 2. MODELO DE DATOS Crear entidades relacionadas con PK/FK: **Users** `id,name,email,role,status,created_at,last_login` Roles: `superadmin|admin|comercial|administracion` Status: `pending|active|rejected|suspended` **Clients** `id,razon_social,nombre_fantasia,rut,tipo,direccion,comuna,region,telefono,email,contacto,cargo_contacto,telefono_contacto,email_contacto,observaciones` **Opportunities** `id,codigo_mp,nombre,tipo,client_id,organismo,rut_organismo,region,descripcion,presupuesto,monto_estimado,fecha_publicacion,fecha_cierre,url_mp,responsible_user_id,prioridad,status,probability,observaciones,created_at` Tipos: `licitacion|compra_agil|trato_directo|convenio_marco|otro` Estados: `nueva|evaluacion|postular|no_postular|preparando|postulada|evaluacion_organismo|adjudicada|perdida|desierta|cancelada` **OpportunityEvaluations** `id,opportunity_id,requisitos_admin,requisitos_tecnicos,producto_disponible,stock,proveedor,costo_conocido,plazo_viable,margen_viable,documentacion_completa,costo_estimado,precio_estimado,utilidad_estimada,margen_estimado,decision,notes` Decision: `postular|revisar|no_postular` **Quotes** `id,numero,client_id,opportunity_id,responsible_user_id,fecha,validez,forma_pago,plazo_entrega,condiciones,status,subtotal,iva,total,total_cost,profit,margin` Estados: `borrador|enviada|negociacion|aceptada|rechazada|vencida` **QuoteItems** `id,quote_id,sku,producto,descripcion,cantidad,unidad,costo_unitario,transporte,packaging,comisiones,otros_costos,margen,precio_unitario,total` **SalesNotes** `id,numero,client_id,opportunity_id,quote_id,orden_compra,fecha,fecha_entrega,responsible_user_id,status,subtotal,iva,total,observaciones` Estados: `pendiente|confirmada|preparacion|despacho|entregada|facturada|pagada|cancelada` **Billing** `id,sales_note_id,numero_factura,fecha_factura,monto,fecha_vencimiento,fecha_pago,forma_pago,status` Estados: `por_facturar|facturado|pendiente_pago|pagado|vencido` **Documents** `id,nombre,categoria,file,client_id?,opportunity_id?,quote_id?,sales_note_id?,fecha_carga,fecha_vencimiento?,uploaded_by` **Activities** `id,user_id,entity_type,entity_id,action,previous_value,new_value,timestamp` **Notifications** `id,user_id,type,entity_type,entity_id,message,read,created_at` ## 3. AUTENTICACIÓN/RBAC Configurar como **SuperAdmin principal: [cardenas.adriasola@gmail.com](mailto:cardenas.adriasola@gmail.com)**. Debe tener FULL ACCESS y no poder ser eliminado, suspendido ni degradado por otros usuarios. En **Configuración > Usuarios** permitir crear, editar, aprobar, rechazar, activar, suspender y asignar roles/permisos. Roles: * `superadmin`: acceso total. * `admin`: gestión administrativa según permisos. * `comercial`: clientes, oportunidades, cotizaciones. * `administracion`: notas de venta, documentos, facturación y cobranza. Registro público permitido pero SIN acceso automático. Workflow: `REGISTER → pending → ADMIN REVIEW → active/rejected` Usuario `pending` no accede a información interna. Mostrar: **“Tu cuenta se encuentra pendiente de aprobación por un administrador.”** Nueva inscripción debe generar notificación al SuperAdmin/Admin. Aplicar permisos sobre datos/acciones, no solo ocultar UI. ## 4. DASHBOARD KPI desde datos reales: * Oportunidades detectadas/evaluadas. * Postulaciones. * En trámite. * Adjudicadas. * Perdidas. * Desiertas. * Monto postulado. * Monto adjudicado. * Ventas. * Utilidad. * Margen promedio. * Pendiente facturación. * Pendiente cobranza. `TasaAdjudicacion = Adjudicadas/Postuladas*100` Gráficos: oportunidades por estado, postulaciones/adjudicaciones mensuales, ventas, monto adjudicado, top organismos y evolución de adjudicación. Filtros: `periodo|responsable|organismo|tipo|estado`. Mostrar próximos vencimientos y tareas críticas. ## 5. OPORTUNIDADES CRUD + tabla + Kanban. Filtros por código, organismo, tipo, estado, responsable, prioridad y fecha. Ficha: **Resumen | Evaluación | Costos/Cotización | Documentos | Actividad** Registrar automáticamente cambios en `Activities`. Alertas de cierre: `7 días|3 días|24 horas|mismo día`. Desde oportunidad permitir evaluar, crear cotización, adjuntar documentos, registrar postulación/resultado y procesar adjudicación. Evaluación mediante checklist de requisitos administrativos/técnicos, disponibilidad, stock, proveedor, costo, plazo, margen y documentación. Calcular costo, precio, utilidad y margen estimado. ## 6. COTIZACIONES Relacionar Quote con Client + Opportunity. Número correlativo automático. Permitir N QuoteItems. Cálculos: `BaseCost=(CostoUnitario*Cantidad)+Transporte+Packaging+Comisiones+Otros` `Profit=PrecioVenta-BaseCost` `Margin%=Profit/PrecioVenta*100` Permitir margen objetivo global o por item y calcular precio de venta automáticamente. Diferenciar técnicamente markup sobre costo de margen sobre venta; usar **margen sobre venta** como indicador principal. Totales: `TotalCost|Subtotal/Neto|IVA|Total|Profit|Margin%` Acciones: `Guardar|Editar|Duplicar|PDF|Imprimir|Convertir a Nota de Venta` PDF profesional con logo/datos SANISUR, cliente, productos, cantidades, precios, neto, IVA, total, condiciones, vigencia y ejecutivo. ## 7. NOTAS DE VENTA/COBRANZA Crear SalesNote desde cotización aceptada u oportunidad adjudicada, heredando cliente, oportunidad, productos, cantidades, precios y totales. No duplicar ingreso. Workflow: `ADJUDICADA → OC RECIBIDA → NV → PREPARACIÓN → DESPACHO → ENTREGA → FACTURACIÓN → COBRO → CERRADA` Generar PDF de Nota de Venta. Billing debe gestionar factura, monto, vencimiento, pago y forma de pago. Regla: `fecha_actual>fecha_vencimiento AND fecha_pago IS NULL → status=vencido` Mostrar cartera: por facturar, pendiente, vencida y pagada. Generar alertas de cobranza. ## 8. CLIENTES CRUD completo. Ficha 360°: **Oportunidades | Cotizaciones | Adjudicaciones | Notas Venta | Documentos | Facturación | Cobros** KPI: `total_vendido|total_adjudicado|operaciones|saldo_pendiente` ## 9. DOCUMENTOS Repositorio con upload/download. Categorías: `empresa|certificados|mercado_publico|fichas_tecnicas|proveedores|licitaciones|ordenes_compra|contratos|otros` Relacionar opcionalmente con Client, Opportunity, Quote o SalesNote. Alertar por fecha de vencimiento. ## 10. REPORTES Filtros: `fecha_inicio|fecha_fin|cliente|organismo|responsable|tipo|estado` Reportes: * Pipeline oportunidades. * Postulaciones/adjudicaciones. * Tasa adjudicación. * Monto postulado/adjudicado. * Ventas. * Costos/rentabilidad. * Facturación. * Cobranza. * Rendimiento por organismo. * Rendimiento por ejecutivo. Exportar datos filtrados reales a `PDF|CSV|XLSX`. ## 11. CONFIGURACIÓN Secciones: **Empresa:** `razon_social,rut,direccion,telefono,email,web,logo,datos_bancarios` **Comercial:** `iva,moneda,margen_default,vigencia_cotizacion,condiciones_pago` **Usuarios:** gestión y aprobación. **Roles/Permisos:** RBAC. Propagar configuración automáticamente a cálculos, cotizaciones, PDFs y reportes. ## 12. BÚSQUEDA GLOBAL Buscar desde header: `Clientes|RUT|Oportunidades|Código MP|Cotizaciones|Notas Venta|OC|Documentos` Resultados clickeables deben abrir el registro correspondiente. ## 13. AUTOMATIZACIONES Implementar: 1. Registro → `pending` + notificación Admin. 2. Opportunity próxima a cierre → alerta. 3. Quote supera validez → `vencida`. 4. Opportunity `adjudicada` → habilitar NV. 5. Quote `aceptada` → habilitar NV. 6. SalesNote `facturada` → crear/actualizar Billing. 7. Billing vencido → `vencido` + alerta. 8. Documento próximo a vencer → alerta. 9. Cambios críticos → registrar Activities. ## 14. REGLAS * Persistencia real Base44. * CRUD funcional. * PK/FK y relaciones correctas. * Validaciones. * Confirmación antes de eliminar. * Auditoría de cambios críticos. * Seguridad RBAC real. * Componentes reutilizables. * Estados loading/error/success/empty. * PDFs/exportaciones funcionales. * No duplicar datos. * No placeholders. * No botones sin lógica. * No mock data final. * Heredar datos entre etapas. * Priorizar velocidad operativa y pocos clics. ## FLUJO MAESTRO `MERCADO PÚBLICO → OPORTUNIDAD → EVALUACIÓN → POSTULACIÓN → RESULTADO` Si pierde: `PERDIDA|RECHAZADA|DESIERTA` Si gana: `ADJUDICADA → ORDEN DE COMPRA → NOTA DE VENTA → PREPARACIÓN → DESPACHO → ENTREGA → FACTURACIÓN → COBRANZA → CERRADA` El Dashboard debe permitir saber inmediatamente: oportunidades vigentes y próximas a cerrar, postulaciones, adjudicaciones, pérdidas, monto postulado/adjudicado, ventas, costos, utilidad, margen, entregas, facturación y saldo pendiente de cobro. Implementa la aplicación completa en Base44 priorizando **integridad de datos, trazabilidad, automatización, seguridad RBAC y velocidad operativa**. Toma decisiones técnicas menores de forma autónoma sin detener la implementación.

No preview

Comments (0)

No comments yet. Be the first!

Project Tasks

33 planning tasks
#1

Generate system requirement document

1m 25s0.1 cr usedDone
#2

Generate personas & user flows

0m 47s0.1 cr usedDone
#7

Create flow for Super Admin

Not recordedDone
#8

Create flow for Admin

Not recordedDone
#9

Create flow for Comercial User

Not recordedDone
#10

Create flow for Administracion User

Not recordedDone
#11

Dashboard

19m 0sError
#35

Repair Dashboard JSX

0m 12s0.2 cr usedError
#34

Repair Dashboard JSX

0m 24s0.2 cr usedError
#32

Repair Dashboard JSX

0m 8s0.2 cr usedError
#31

Repair Dashboard JSX

0m 36s0.2 cr usedError
#29

Repair Dashboard JSX

0m 9s0.2 cr usedError
#28

Repair Dashboard JSX

0m 19s0.2 cr usedError
#26

Repair Dashboard JSX

0m 6s0.2 cr usedError
#25

Repair Dashboard JSX

0m 21s0.2 cr usedError
#21

Dashboard / Navigation

1m 17s0.8 cr usedDone
#20

Dashboard / Content

1m 31s0.8 cr usedDone
#22

Dashboard / Footer

0m 22s0.8 cr usedDone
#23

Navigation

1m 17sDone
#24

Footer

0m 22sDone
#27

Retry First Page

1m 9s0.2 cr usedError
#30

Retry First Page

1m 23s0.2 cr usedError
#33

Retry First Page

2m 6s0.2 cr usedError
#12

Configuración

Backlog
#13

Notas de Venta/Cobranza

Backlog
#14

Documentos

Backlog
#15

Reportes

Backlog
#16

Clientes

Backlog
#17

Oportunidades

Backlog
#18

Cotizaciones

Backlog
#19

Búsqueda Global

Backlog
#5

Architecture

0.1 cr neededBacklog
#6

Workspace task plan

0.1 cr neededBacklog

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Rendering diagram...

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Rendering diagram...