📋 Resumen General

Este proyecto implementa un sistema ERP completo basado en Odoo 17 para la gestión de autopartes, con módulos personalizados que extienden las funcionalidades core de Odoo en las siguientes áreas:

🛒 Ventas

Gestión de cotizaciones, comisiones y marca de vehículos

🏭 Compras

Múltiples proveedores, liquidaciones y reportes personalizados

📦 Inventario

Reabastecimiento automático, costos aterrizados y personalización de stock

💰 Contabilidad

Pagos personalizados, deducibles y bloqueo de tasas de cambio

🌐 Website

Tema de autopartes, seguimiento de reclamos y simulador 3D

👥 RRHH

Alertas de empleados y felicitaciones de cumpleaños

🤖 Inteligencia Artificial

Procesamiento de documentos con GPT-4o y completado automático de compatibilidades

📊 Estadísticas del Proyecto

  • Módulos Personalizados: 31 módulos funcionales (26 core + 5 especializados)
  • Modelos Extendidos: 10+ modelos core de Odoo
  • Áreas de Negocio: 9 (Ventas, Compras, Inventario, Contabilidad, Website, POS, RRHH, IA, Logística)
  • Versión Odoo: 17 Community/Enterprise
  • Sector: Distribución de Autopartes
  • Autor Principal: Gerlin Matos
  • IA Integrada: OpenAI GPT-4o/GPT-4o-mini

🏗️ Arquitectura del Sistema

El siguiente diagrama muestra la arquitectura general del sistema, incluyendo la infraestructura, componentes principales y flujo de datos:

graph TB
    subgraph Internet["🌍 Internet"]
        Users["👥 Usuarios"]
        Mobile["📱 Dispositivos Móviles"]
    end

    subgraph DigitalOcean["☁️ Digital Ocean Infrastructure"]
        subgraph AppPlatform["App Platform"]
            DocSite["📚 Este Sitio de Documentación
(Static Site)"] end subgraph Droplet["💧 Droplet / VM"] subgraph Docker["🐳 Docker Containers"] Nginx["🔄 Nginx Reverse Proxy
:80, :443"] OdooWeb["🚀 Odoo Web Server
:8069"] OdooWorkers["⚙️ Odoo Workers
(Background Jobs)"] end subgraph Database["💾 Database Layer"] PostgreSQL["🗄️ PostgreSQL 14+
(Main DB)"] Redis["⚡ Redis
(Cache/Sessions)"] end subgraph Storage["💿 Storage"] Filestore["📁 Filestore
(Attachments)"] Backups["💾 Backups"] end end subgraph Spaces["📦 Spaces (Object Storage)"] StaticFiles["🖼️ Static Assets"] MediaFiles["📄 Media Files"] end end subgraph External["🔌 Integraciones Externas"] PaymentGW["💳 Payment Gateway"] EmailSMTP["📧 Email SMTP"] SMS["📱 SMS Provider"] end Users -->|HTTPS| Nginx Mobile -->|HTTPS| Nginx Users -.->|Consulta Docs| DocSite Nginx -->|Proxy Pass| OdooWeb OdooWeb -->|Read/Write| PostgreSQL OdooWeb -->|Cache| Redis OdooWorkers -->|Read/Write| PostgreSQL OdooWorkers -->|Jobs Queue| Redis OdooWeb -->|Store Files| Filestore OdooWeb -->|CDN Assets| Spaces PostgreSQL -->|Daily Backup| Backups Filestore -->|Backup| Spaces OdooWeb -->|Process Payments| PaymentGW OdooWeb -->|Send Emails| EmailSMTP OdooWeb -->|Send SMS| SMS StaticFiles -.->|CDN| Users MediaFiles -.->|CDN| Users style DocSite fill:#e1f5ff style OdooWeb fill:#00a09d style PostgreSQL fill:#336791 style Nginx fill:#009639 style Redis fill:#dc382d

📦 Componentes Principales

🚀 Odoo Web Server

Servidor principal que maneja las peticiones HTTP y la lógica de negocio. Ejecuta en modo gevent para alta concurrencia.

🗄️ PostgreSQL

Base de datos relacional que almacena todos los datos del sistema. Versión 14+ con extensiones para búsqueda full-text.

🔄 Nginx

Reverse proxy que maneja SSL/TLS, compresión, caché de assets estáticos y balanceo de carga.

⚡ Redis

Cache en memoria para sesiones de usuario, cola de trabajos en background y caché de queries frecuentes.

🔐 Seguridad

  • SSL/TLS para todas las conexiones (Let's Encrypt)
  • Firewall configurado (solo puertos 80, 443)
  • Base de datos sin acceso público
  • Backups automáticos diarios
  • Autenticación de dos factores disponible

🔄 Diagrama de Flujo de Módulos

Este diagrama muestra las relaciones entre los módulos core de Odoo y los módulos personalizados de Guibei:

---
config:
  layout: dagre
---
flowchart TD
subgraph Integrations["🌐 Website & Integraciones"]
    WebsiteClient["Odoo Website / eCommerce"]
    WebControllers["Web Controllers & QWeb Reports"]
end
subgraph OdooCore["🧩 Odoo 17 Core"]
    subgraph SalesCore["Sales"]
        SaleOrderCore["sale.order"]
        SaleOrderLine["sale.order.line"]
    end

    subgraph PurchaseCore["Purchase"]
        PurchaseOrderCore["purchase.order"]
        PurchaseOrderLine["purchase.order.line"]
    end

    subgraph InventoryCore["Inventory / Stock"]
        StockPickingCore["stock.picking"]
        StockMoveCore["stock.move"]
        StockQuantCore["stock.quant"]
        ProductTemplateCore["product.template"]
    end

    subgraph AccountingCore["Accounting"]
        AccountMoveCore["account.move"]
        AccountPaymentCore["account.payment"]
    end

    subgraph WebsiteCore["Website / eCommerce"]
        WebsiteModelCore["website.page"]
    end

    subgraph POSCore["POS"]
        POSModelCore["pos.order"]
    end

    subgraph HRCore["HR"]
        HREmployeeCore["hr.employee"]
    end
end

subgraph CustomModules["📦 Custom Modules - Guibei"]
    subgraph CustomSales["Sales Extensions"]
        sale_quotation_date_visible["sale_quotation_date_visible"]
        vehicle_make["vehicle_make"]
        product_brand_inventory["product_brand_inventory"]
        commission_settlement["commission_settlement"]
    end
    subgraph CustomPurchase["Purchase Extensions"]
        purchase_customization["purchase_customization"]
        multi_supplier_search["multi_supplier_search"]
        purchase_order_lines_report["purchase_order_lines_report"]
        factory_settlement["factory_settlement"]
    end
    subgraph CustomInventory["Inventory / Stock Extensions"]
        stock_customization["stock_customization"]
        product_restock["product_restock"]
        landed_cost_guibei["landed_cost_guibei"]
        inventory_sync["inventory_sync"]
        reception_tracking["reception_tracking"]
    end
    subgraph CustomAccounting["Accounting Extensions"]
        account_customization["account_customization"]
        account_deductible["account_deductible"]
        account_payment_customization["account_payment_customization"]
        currency_rate_lock["currency_rate_lock"]
        l10n_do_invoice_report_fix["l10n_do_invoice_report_fix"]
        logistic_transport_liquidation["logistic_transport_liquidation"]
    end
    subgraph CustomWebsite["Website / eCommerce"]
        theme_autoparts_blue["theme_autoparts_blue"]
        claim_tracking_website["claim_tracking_website"]
        pickup_points["pickup_points"]
        container_3d_simulator["container_3d_simulator"]
    end
    subgraph CustomTools["🛠️ Tools & Utilities"]
        import_cost_calculator["import_cost_calculator"]
    end
    subgraph CustomPOS["POS Extensions"]
        pos_hide_product_info["pos_hide_product_info"]
    end
    subgraph CustomHR["HR Extensions"]
        employee_warning["employee_warning"]
        zehntech_employee_birthday_wishes["zehntech_employee_birthday_wishes"]
    end
    subgraph CustomAI["🤖 AI Modules"]
        guibei_ai_sale_from_document["guibei_ai_sale_from_document"]
        vehicle_compatibility_ai["vehicle_compatibility_ai"]
    end
end
subgraph DataModels["📊 Modelos de Datos Impactados"]
    SaleOrder["sale.order"]
    PurchaseOrder["purchase.order"]
    StockPicking["stock.picking"]
    AccountMove["account.move"]
    AccountPayment["account.payment"]
    HREmployee["hr.employee"]
    ProductTemplate["product.template"]
end
WebsiteClient -->|renders| WebsiteModelCore
WebControllers -->|QWeb report| l10n_do_invoice_report_fix
sale_quotation_date_visible -->|extends model| SaleOrderCore
vehicle_make -->|extends model| SaleOrderCore
vehicle_make -->|view extension| WebsiteModelCore
product_brand_inventory -->|extends model| ProductTemplateCore
commission_settlement -->|extends model| AccountMoveCore
commission_settlement -->|business logic override| SaleOrderCore
purchase_customization -->|extends model| PurchaseOrderCore
multi_supplier_search -->|business logic override| PurchaseOrderCore
purchase_order_lines_report -->|QWeb report| PurchaseOrderCore
factory_settlement -->|extends model| PurchaseOrderCore
factory_settlement -->|extends model| AccountMoveCore
stock_customization -->|extends model| StockPickingCore
stock_customization -->|extends model| StockMoveCore
product_restock -->|extends model| StockQuantCore
product_restock -->|extends model| ProductTemplateCore
product_restock -->|extends model| PurchaseOrderCore
landed_cost_guibei -->|extends model| StockMoveCore
landed_cost_guibei -->|extends model| AccountMoveCore
account_customization -->|extends model| AccountMoveCore
account_customization -->|business logic override| AccountMoveCore
account_deductible -->|extends model| AccountMoveCore
account_payment_customization -->|extends model| AccountPaymentCore
account_payment_customization -->|business logic override| AccountPaymentCore
currency_rate_lock -->|extends model| AccountMoveCore
currency_rate_lock -->|extends model| PurchaseOrderCore
currency_rate_lock -->|extends model| SaleOrderCore
l10n_do_invoice_report_fix -->|QWeb report| AccountMoveCore
theme_autoparts_blue -->|web controller| WebsiteClient
theme_autoparts_blue -->|view extension| WebsiteModelCore
claim_tracking_website -->|web controller| WebsiteClient
pickup_points -->|web controller| WebsiteClient
pickup_points -->|extends model| StockPickingCore
container_3d_simulator -->|web controller| WebsiteClient
pos_hide_product_info -->|view extension| POSModelCore
employee_warning -->|extends model| HREmployeeCore
zehntech_employee_birthday_wishes -->|extends model| HREmployeeCore
guibei_ai_sale_from_document -->|extends model| SaleOrderCore
guibei_ai_sale_from_document -->|uses| account_customization
vehicle_compatibility_ai -->|extends model| ProductTemplateCore
vehicle_compatibility_ai -->|uses| vehicle_make
vehicle_compatibility_ai -->|uses| guibei_ai_sale_from_document
inventory_sync -->|extends model| ProductTemplateCore
inventory_sync -->|extends model| StockQuantCore
reception_tracking -->|extends model| StockMoveCore
logistic_transport_liquidation -->|extends model| AccountMoveCore
logistic_transport_liquidation -->|extends model| SaleOrderCore
import_cost_calculator -->|web utility| WebControllers
product_restock -->|uses| multi_supplier_search
commission_settlement -->|depends on| account_customization
factory_settlement -->|depends on| purchase_customization
currency_rate_lock -->|depends on| account_payment_customization
pickup_points -->|depends on| stock_customization
SaleOrderCore --> SaleOrder
PurchaseOrderCore --> PurchaseOrder
StockPickingCore --> StockPicking
AccountMoveCore --> AccountMove
AccountPaymentCore --> AccountPayment
HREmployeeCore --> HREmployee
ProductTemplateCore --> ProductTemplate
                    

🏛️ Diagrama de Clases

Este diagrama muestra los modelos principales de Odoo 17 Core y cómo son extendidos por los módulos personalizados de Guibei:

classDiagram
    %% Modelos Core de Odoo 17
    class SaleOrder {
        +String name
        +Date date_order
        +Many2one partner_id
        +Float amount_total
        +String state
        +action_confirm()
        +action_cancel()
    }
    
    class SaleOrderLine {
        +Many2one order_id
        +Many2one product_id
        +Float product_uom_qty
        +Float price_unit
        +Float price_subtotal
    }
    
    class PurchaseOrder {
        +String name
        +Date date_order
        +Many2one partner_id
        +Float amount_total
        +String state
        +button_confirm()
        +button_cancel()
    }
    
    class PurchaseOrderLine {
        +Many2one order_id
        +Many2one product_id
        +Float product_qty
        +Float price_unit
        +Date date_planned
    }
    
    class StockPicking {
        +String name
        +Date scheduled_date
        +Many2one partner_id
        +String state
        +Many2one picking_type_id
        +button_validate()
    }
    
    class StockMove {
        +Many2one picking_id
        +Many2one product_id
        +Float product_uom_qty
        +Many2one location_id
        +Many2one location_dest_id
        +_action_done()
    }
    
    class ProductTemplate {
        +String name
        +String default_code
        +Float list_price
        +String type
        +Many2one categ_id
        +Boolean sale_ok
        +Boolean purchase_ok
    }
    
    class AccountMove {
        +String name
        +Date date
        +Many2one partner_id
        +Float amount_total
        +String state
        +String move_type
        +action_post()
    }
    
    class AccountPayment {
        +String name
        +Date date
        +Many2one partner_id
        +Float amount
        +String state
        +String payment_type
        +action_post()
    }
    
    class HREmployee {
        +String name
        +Date birthday
        +Many2one department_id
        +String work_email
        +String work_phone
    }
    
    %% Extensiones Personalizadas Guibei
    class SaleOrderGuibei {
        <>
        +Date quotation_date
        +Many2one vehicle_make_id
        +Many2one vehicle_model_id
        +Float commission_amount
        +Boolean is_locked_rate
    }
    
    class PurchaseOrderGuibei {
        <>
        +Many2many supplier_ids
        +Float factory_settlement_amount
        +Boolean rate_locked
        +Text custom_notes
    }
    
    class StockPickingGuibei {
        <>
        +Many2one pickup_point_id
        +Boolean is_custom_delivery
        +Text special_instructions
    }
    
    class ProductTemplateGuibei {
        <>
        +Many2one brand_id
        +Float restock_qty
        +Boolean auto_restock
        +Many2many compatible_vehicles
        +Boolean sync_inventory
        +Text ai_compatibility_data
    }
    
    class AccountMoveGuibei {
        <>
        +Float deductible_amount
        +Boolean rate_locked
        +Float commission_total
        +Float landed_cost_amount
        +Boolean is_logistic_transport
        +Many2one sale_order_id
    }
    
    class AccountPaymentGuibei {
        <>
        +Boolean custom_validation
        +Text payment_notes
        +Many2one settlement_id
    }
    
    class HREmployeeGuibei {
        <>
        +Boolean has_warning
        +Text warning_message
        +Boolean birthday_notification_sent
    }
    
    %% Modelos Nuevos Personalizados
    class VehicleMake {
        +String name
        +String code
        +Binary logo
        +One2many model_ids
    }
    
    class VehicleModel {
        +String name
        +Many2one make_id
        +Integer year_from
        +Integer year_to
    }
    
    class ProductBrand {
        +String name
        +String code
        +One2many product_ids
    }
    
    class CommissionSettlement {
        +String name
        +Date date
        +Many2one employee_id
        +Float total_amount
        +String state
        +compute_commissions()
    }
    
    class FactorySettlement {
        +String name
        +Date date
        +Many2one supplier_id
        +Float total_amount
        +String state
    }
    
    class PickupPoint {
        +String name
        +String address
        +Float latitude
        +Float longitude
        +String operating_hours
    }
    
    class ReceivedArticle {
        +String name
        +Many2one product_id
        +Float quantity
        +Date reception_date
        +Boolean announced
    }
    
    class InventorySyncConnection {
        +String name
        +String url
        +String database
        +String username
        +Boolean active
        +test_connection()
    }
    
    class InventorySyncLog {
        +String name
        +Date sync_date
        +String state
        +Text error_message
        +One2many line_ids
    }
    
    class DocumentProcessor {
        +Binary document_file
        +String document_type
        +Text ai_response
        +process_with_ai()
        +create_sale_order()
    }
    
    %% Relaciones Core
    SaleOrder "1" --> "*" SaleOrderLine
    PurchaseOrder "1" --> "*" PurchaseOrderLine
    StockPicking "1" --> "*" StockMove
    ProductTemplate "1" --> "*" SaleOrderLine
    ProductTemplate "1" --> "*" PurchaseOrderLine
    ProductTemplate "1" --> "*" StockMove
    
    %% Herencia/Extensión
    SaleOrder <|-- SaleOrderGuibei
    PurchaseOrder <|-- PurchaseOrderGuibei
    StockPicking <|-- StockPickingGuibei
    ProductTemplate <|-- ProductTemplateGuibei
    AccountMove <|-- AccountMoveGuibei
    AccountPayment <|-- AccountPaymentGuibei
    HREmployee <|-- HREmployeeGuibei
    
    %% Relaciones con Modelos Nuevos
    VehicleMake "1" --> "*" VehicleModel
    VehicleMake "1" --> "*" SaleOrderGuibei
    VehicleModel "1" --> "*" SaleOrderGuibei
    ProductBrand "1" --> "*" ProductTemplateGuibei
    CommissionSettlement "1" --> "*" SaleOrderGuibei
    FactorySettlement "1" --> "*" PurchaseOrderGuibei
    PickupPoint "1" --> "*" StockPickingGuibei
    ReceivedArticle "*" --> "1" ProductTemplate
    InventorySyncConnection "1" --> "*" InventorySyncLog
    InventorySyncLog "1" --> "*" ProductTemplateGuibei
    DocumentProcessor "1" --> "1" SaleOrderGuibei
    DocumentProcessor --> VehicleMake
    ProductTemplateGuibei --> VehicleMake : AI compatibility
    AccountMoveGuibei --> SaleOrderGuibei : logistic transport
                    

📝 Leyenda

  • Clases sin marcador: Modelos core de Odoo 17
  • <<extension>>: Extensiones a modelos existentes (herencia)
  • Clases normales (nuevas): Modelos completamente nuevos creados para Guibei
  • Flechas sólidas (|-->): Herencia
  • Flechas con números: Relaciones One2many/Many2one

⚙️ Diagrama de Procesos de Negocio

Este diagrama muestra los principales flujos de procesos de negocio en el sistema Guibei:

📊 Tipos de Diagramas

Cada proceso incluye dos vistas complementarias:

  • Diagrama de Flujo (Flowchart): Muestra el flujo lógico y las decisiones del proceso
  • Diagrama de Secuencia: Detalla las interacciones entre componentes/actores en orden temporal

🛒 Proceso de Venta

flowchart LR
    Start([Cliente Solicita
Cotización]) --> HasDocument{¿Tiene
Documento?} HasDocument -->|Sí| UploadDoc[Subir Documento
JPG/PNG/PDF] HasDocument -->|No| CreateQuote UploadDoc --> ProcessAI[Procesar con IA
guibei_ai_sale_from_document
GPT-4o Vision] ProcessAI --> AutoCreateQuote[Crear Cotización
Automáticamente] AutoCreateQuote --> CreateQuote[Revisar/Ajustar
Cotización] CreateQuote --> SelectVehicle{¿Seleccionar
Vehículo?} SelectVehicle -->|Sí| AddVehicle[Agregar Marca/Modelo
vehicle_make] SelectVehicle -->|No| AddProducts AddVehicle --> AddProducts[Agregar Productos
con Marcas] AddProducts --> CheckStock{¿Stock
Disponible?} CheckStock -->|No| TriggerRestock[Activar Reabastecimiento
product_restock] TriggerRestock --> SearchSuppliers[Buscar Proveedores
multi_supplier_search] SearchSuppliers --> CreatePO[Crear Orden Compra] CheckStock -->|Sí| LockRate[Bloquear Tasa Cambio
currency_rate_lock] CreatePO --> LockRate LockRate --> ConfirmSale[Confirmar Venta] ConfirmSale --> CalcCommission[Calcular Comisiones
commission_settlement] CalcCommission --> CreateInvoice[Crear Factura
account.move] CreateInvoice --> RegisterPayment[Registrar Pago
account.payment] RegisterPayment --> CreateDelivery[Crear Entrega
stock.picking] CreateDelivery --> SelectPickup{¿Punto
Recogida?} SelectPickup -->|Sí| AssignPickup[Asignar Pickup Point] SelectPickup -->|No| StandardShip[Envío Estándar] AssignPickup --> ValidateDelivery StandardShip --> ValidateDelivery[Validar Entrega] ValidateDelivery --> End([Proceso Completado]) style Start fill:#e1f5ff style End fill:#c6f6d5 style CreateQuote fill:#fed7d7 style ConfirmSale fill:#fefcbf style CreateInvoice fill:#feebc8 style ValidateDelivery fill:#c6f6d5

🔄 Diagrama de Secuencia: Venta con IA

sequenceDiagram
    participant U as Usuario/Vendedor
    participant W as Wizard Documentos
    participant AI as OpenAI GPT-4o
    participant SO as Sale Order
    participant P as Partner/Product
    participant V as Vehicle Make
    participant I as Invoice
    participant St as Stock
    
    U->>W: Subir Documento (JPG/PNG/PDF)
    W->>W: Validar formato
    W->>AI: Enviar imagen/PDF
(GPT-4o Vision) Note over AI: OCR + Extracción de datos
- Cliente
- Productos
- Cantidades
- Referencias AI-->>W: JSON estructurado W->>W: Validar respuesta IA alt Cliente existe W->>P: Buscar por nombre/RNC P-->>W: Partner ID else Cliente nuevo W->>P: Crear Partner P-->>W: Nuevo Partner ID end loop Por cada producto alt Producto existe W->>P: Buscar por código/nombre P-->>W: Product ID else Producto no existe W->>P: Sugerir crear producto P-->>W: Product ID / Warning end end W->>SO: Crear Sale Order SO->>SO: Validar líneas opt Datos de vehículo extraídos W->>V: Buscar/Crear Vehicle Make/Model V-->>SO: Vehicle info end SO-->>U: Orden creada (draft) U->>SO: Revisar y ajustar U->>SO: Confirmar orden SO->>St: Reservar stock SO->>I: Generar factura I-->>U: Factura lista Note over U,I: Tiempo total: 2-5 min
(vs 20-30 min manual)

🏭 Proceso de Compra e Importación

flowchart TD
    Start([Necesidad de
Compra]) --> CheckRestock{¿Reabastecimiento
Automático?} CheckRestock -->|Sí| AutoTrigger[Sistema Detecta
Punto Reorden] CheckRestock -->|No| ManualRequest[Solicitud Manual] AutoTrigger --> SearchSupp ManualRequest --> SearchSupp[Buscar en Múltiples
Proveedores
multi_supplier_search] SearchSupp --> ComparePrices[Comparar Precios
y Disponibilidad] ComparePrices --> SelectSupplier[Seleccionar Proveedor
Óptimo] SelectSupplier --> CreatePO[Crear Orden Compra
purchase.order] CreatePO --> LockRate[Bloquear Tasa
Cambio] LockRate --> ConfirmPO[Confirmar Orden] ConfirmPO --> ReceiveGoods[Recibir Mercancía
stock.picking] ReceiveGoods --> TrackReception[Anunciar Recepción
reception_tracking
TV Monitor + TTS] TrackReception --> IsImport{¿Es
Importación?} IsImport -->|Sí| CalcLandedCost[Calcular Landed Cost
landed_cost_guibei] IsImport -->|No| ValidateReceipt CalcLandedCost --> DistributeCosts[Distribuir Costos
a Productos] DistributeCosts --> ValidateReceipt[Validar Recepción] ValidateReceipt --> CreateBill[Crear Factura
Proveedor] CreateBill --> FactorySettle[Liquidación Fábrica
factory_settlement] FactorySettle --> ProcessPayment[Procesar Pago
account.payment] ProcessPayment --> UpdateStock[Actualizar Stock
stock.quant] UpdateStock --> End([Proceso Completado]) style Start fill:#e1f5ff style End fill:#c6f6d5 style SearchSupp fill:#feebc8 style CalcLandedCost fill:#fed7d7 style FactorySettle fill:#fefcbf

🔄 Diagrama de Secuencia: Compra e Importación

sequenceDiagram
    participant U as Usuario
    participant O as Odoo System
    participant MS as Multi Supplier Search
    participant Sup as Proveedores Externos
    participant PO as Purchase Order
    participant Rec as Reception
    participant TV as TV Monitor
    participant TTS as Text-to-Speech
    participant LC as Landed Cost
    participant Inv as Inventory
    
    U->>O: Detectar producto bajo stock
    O->>MS: Activar búsqueda multi-proveedor
    
    par Búsqueda Paralela
        MS->>Sup: RockAuto API
        MS->>Sup: KSI Auto Parts
        MS->>Sup: CrashParts
        MS->>Sup: BMW Parts Now
        MS->>Sup: eBay
    end
    
    Sup-->>MS: Resultados (precio, disponibilidad)
    MS->>MS: Comparar y rankear
    MS-->>U: Mostrar mejores opciones
    
    U->>PO: Crear orden al mejor proveedor
    U->>PO: Confirmar orden
    PO->>Sup: Enviar orden de compra
    
    Note over Sup,Rec: Espera 15-45 días (importación)
    
    Sup-->>Rec: Mercancía llega a almacén
    Rec->>Rec: Escanear productos recibidos
    Rec->>Rec: Crear received_article
    
    Rec->>TV: Enviar notificación
    TV->>TV: Mostrar en pantalla
    TV->>TTS: Activar anuncio de voz
    TTS-->>TV: "Artículo [nombre] recibido
Cantidad: [X]
Ubicación: [Y]" Rec->>LC: ¿Es importación? alt Es importación LC->>LC: Calcular costos aterrizados
- Flete
- Seguro
- Aranceles
- Manejo LC->>LC: Distribuir costos por producto LC->>Inv: Actualizar costo unitario end Rec->>Inv: Validar recepción Inv->>Inv: Actualizar cantidades Inv-->>U: Stock actualizado Note over U,Inv: Notificación instantánea
al personal de almacén

💰 Proceso Contable y Financiero

flowchart LR
    subgraph Ingresos["💵 Gestión de Ingresos"]
        SaleInv[Factura de Venta
account.move] --> CheckDed{¿Tiene
Deducibles?} CheckDed -->|Sí| ApplyDed[Aplicar Deducibles
account_deductible] CheckDed -->|No| RegPayment ApplyDed --> RegPayment[Registrar Pago
Cliente] RegPayment --> ReconcileInv[Conciliar Factura] ReconcileInv --> CalcComm[Calcular Comisiones
Vendedores] CalcComm --> CreateCommSettle[Crear Liquidación
commission_settlement] end subgraph Egresos["💸 Gestión de Egresos"] PurchBill[Factura Proveedor
account.move] --> CheckTransport{¿Es Transporte
Logístico?} CheckTransport -->|Sí| MarkTransport[Marcar como Transporte
logistic_transport_liquidation] CheckTransport -->|No| AddLanded MarkTransport --> LinkSaleOrder[Asociar con
Orden de Venta] LinkSaleOrder --> CreateLiquidation[Crear Líneas
Liquidación] CreateLiquidation --> AddLanded AddLanded{¿Costos
Aterrizados?} AddLanded -->|Sí| DistLanded[Distribuir Landed Cost] AddLanded -->|No| ValidateBill DistLanded --> ValidateBill[Validar Factura] ValidateBill --> SchedulePay[Programar Pago] SchedulePay --> CreatePayment[Crear Pago
account.payment] CreatePayment --> ValidatePayment[Validar Pago
Personalizado] ValidatePayment --> CreateFactSettle[Liquidación Fábrica
factory_settlement] end subgraph Reports["📊 Reportes Financieros"] GenReport[Generar Reportes
QWeb] --> CustomInvReport[Reporte Factura
República Dominicana
l10n_do_invoice_report_fix] CustomInvReport --> PurchReport[Reporte Líneas
Compra
purchase_order_lines_report] end CreateCommSettle --> Reports CreateFactSettle --> Reports style Ingresos fill:#c6f6d5 style Egresos fill:#fed7d7 style Reports fill:#e1f5ff

🔄 Diagrama de Secuencia: Liquidación de Transporte Logístico

sequenceDiagram
    participant U as Usuario Contabilidad
    participant AM as Account Move (Factura)
    participant LTL as Logistic Transport Liquidation
    participant SO as Sale Order
    participant SOL as Sale Order Lines
    participant Liq as Líneas Liquidación
    
    U->>AM: Recibir factura de transporte
    U->>AM: Marcar "Es Transporte Logístico"
    AM->>LTL: Activar lógica de liquidación
    
    U->>LTL: Seleccionar Orden de Venta
    LTL->>SO: Buscar orden relacionada
    SO-->>LTL: Sale Order data
    
    LTL->>SOL: Obtener líneas de productos
    SOL-->>LTL: Lista de productos vendidos
    
    loop Por cada línea de producto
        LTL->>LTL: Calcular costo logístico
proporcional LTL->>Liq: Crear línea de liquidación Liq->>Liq: Asociar:
- Product ID
- Cantidad
- Costo transporte
- Factura transporte end LTL->>SO: Actualizar totales de liquidación SO->>SO: Añadir Smart Button
"Facturas de Transporte" SO-->>U: Liquidación completa U->>SO: Click en Smart Button SO->>AM: Mostrar facturas asociadas AM-->>U: Lista de facturas de transporte Note over U,Liq: Proporciona visibilidad completa
de costos logísticos por orden
sin afectar contabilidad

🌐 Proceso de eCommerce

flowchart TD
    Start([Cliente Visita
Website]) --> BrowseCatalog[Navegar Catálogo
theme_autoparts_blue] BrowseCatalog --> FilterVehicle[Filtrar por
Marca/Modelo Vehículo] FilterVehicle --> ViewProduct[Ver Producto
con Compatibilidad] ViewProduct --> Use3D{¿Ver Simulador
3D Container?} Use3D -->|Sí| Open3D[Abrir Simulador 3D
container_3d_simulator] Use3D -->|No| AddCart Open3D --> AddCart[Agregar al Carrito] AddCart --> Checkout[Proceso Checkout] Checkout --> SelectDelivery{Método
Entrega} SelectDelivery -->|Pickup Point| ChoosePickup[Elegir Punto Recogida
pickup_points] SelectDelivery -->|Delivery| EnterAddress[Ingresar Dirección] ChoosePickup --> Payment EnterAddress --> Payment[Procesar Pago] Payment --> ConfirmOrder[Confirmar Orden] ConfirmOrder --> CreateSaleOrder[Crear Sale Order
en Backend] CreateSaleOrder --> PrepareShipment[Preparar Envío] PrepareShipment --> NotifyCustomer[Notificar Cliente] NotifyCustomer --> TrackOrder{¿Rastrear
Orden?} TrackOrder -->|Sí| ShowTracking[Mostrar Tracking
claim_tracking_website] TrackOrder -->|No| WaitDelivery[Esperar Entrega] ShowTracking --> WaitDelivery WaitDelivery --> End([Orden Completada]) style Start fill:#e1f5ff style End fill:#c6f6d5 style Open3D fill:#feebc8 style ChoosePickup fill:#fefcbf style ShowTracking fill:#e1f5ff

🔄 Diagrama de Secuencia: eCommerce con Autopartes

sequenceDiagram
    participant C as Cliente
    participant W as Website Odoo
    participant Theme as Auto Parts Theme
    participant VM as Vehicle Make Module
    participant Cart as Shopping Cart
    participant 3D as Container 3D Simulator
    participant PP as Pickup Points
    participant Checkout as Checkout Process
    participant SO as Sale Order Backend
    participant Pay as Payment Gateway
    participant Track as Claim Tracking
    
    C->>W: Visitar tienda online
    W->>Theme: Cargar tema autopartes
    Theme-->>C: Interface automotriz
    
    C->>W: Filtrar por vehículo
    W->>VM: Buscar marca/modelo/año
    VM->>VM: Filtrar productos compatibles
    VM-->>C: Productos para su vehículo
    
    C->>W: Ver producto
    W-->>C: Detalles + compatibilidad
    
    opt Cliente quiere simular contenedor
        C->>3D: Abrir simulador 3D
        3D->>3D: Cargar dimensiones producto
        3D->>3D: Simular empaquetado
        3D-->>C: Visualización 3D interactiva
    end
    
    C->>Cart: Agregar al carrito
    Cart-->>C: Carrito actualizado
    
    C->>Checkout: Ir a checkout
    Checkout->>C: ¿Método de entrega?
    
    alt Pickup Point
        C->>PP: Seleccionar punto de recogida
        PP->>PP: Mostrar ubicaciones en mapa
        PP->>PP: Mostrar horarios
        C->>PP: Elegir punto cercano
        PP-->>Checkout: Pickup point seleccionado
    else Envío a domicilio
        C->>Checkout: Ingresar dirección
    end
    
    Checkout->>Pay: Procesar pago
    Pay->>Pay: Validar tarjeta
    Pay-->>Checkout: Pago aprobado
    
    Checkout->>SO: Crear orden en backend
    SO->>SO: Generar sale.order
    SO->>SO: Reservar inventario
    SO-->>C: Orden confirmada + Número
    
    SO->>C: Enviar email confirmación
    
    opt Cliente quiere rastrear
        C->>Track: Ingresar número orden/reclamo
        Track->>SO: Buscar estado
        SO-->>Track: Estado actual + historial
        Track-->>C: Información en tiempo real
    end
    
    Note over C,Track: Sistema 24/7 con experiencia
optimizada para autopartes

📦 Proceso de Gestión de Inventario

stateDiagram-v2
    [*] --> Monitoring: Sistema Activo
    
    state "Monitoreo de Stock" as Monitoring {
        [*] --> CheckLevels
        CheckLevels --> BelowReorder: Stock < Punto Reorden
        CheckLevels --> Adequate: Stock OK
        BelowReorder --> TriggerRestock: product_restock
        Adequate --> CheckLevels
    }
    
    state "Reabastecimiento" as Restock {
        [*] --> SearchSuppliers
        SearchSuppliers --> ComparePrices: multi_supplier_search
        ComparePrices --> CreatePO: Mejor Opción
        CreatePO --> WaitReceipt: Orden Confirmada
    }
    
    state "Recepción" as Receipt {
        [*] --> ReceiveGoods
        ReceiveGoods --> QualityCheck: stock.picking
        QualityCheck --> Approved: ✓
        QualityCheck --> Rejected: ✗
        Approved --> UpdateStock
        Rejected --> ReturnSupplier
    }
    
    state "Salida de Stock" as Outbound {
        [*] --> PrepareDelivery
        PrepareDelivery --> PickItems: stock_customization
        PickItems --> PackItems
        PackItems --> ValidateShipment
    }
    
    Monitoring --> Restock: Stock Bajo
    Restock --> Receipt: Mercancía Llega
    Receipt --> Monitoring: Stock Actualizado
    Monitoring --> Outbound: Orden Venta
    Outbound --> Monitoring: Entrega Completada
    
    Outbound --> [*]: Proceso Completado
                    

🔄 Diagrama de Secuencia: Recepción con Tracking en Tiempo Real

sequenceDiagram
    participant Op as Operador Almacén
    participant Scan as Escáner de Código
    participant SP as Stock Picking
    participant RT as Reception Tracking
    participant RA as Received Article
    participant TV as TV Monitor (Almacén)
    participant TTS as Text-to-Speech Engine
    participant Team as Equipo Almacén
    participant WS as WebSocket Server
    
    Note over Op,Team: Llegada de mercancía al almacén
    
    Op->>Scan: Escanear código de barras
    Scan->>SP: Identificar stock.picking
    SP-->>Op: Mostrar productos esperados
    
    loop Por cada producto recibido
        Op->>SP: Escanear producto
        SP->>SP: Validar producto esperado
        SP->>SP: Registrar cantidad recibida
        
        SP->>RT: Crear evento de recepción
        RT->>RA: Crear received_article
        RA->>RA: Guardar:
- Product ID
- Cantidad
- Timestamp
- Usuario RT->>WS: Notificar nueva recepción (tiempo real) WS->>TV: Push notification TV->>TV: Actualizar display:
✓ Mostrar nombre producto
✓ Cantidad recibida
✓ Ubicación destino
✓ Usuario que recibió
✓ Timestamp TV->>TTS: Activar anuncio de voz Note over TTS: Sintetizar mensaje:
"Atención almacén,
recibido artículo:
[nombre del producto],
cantidad [X] unidades,
ubicar en pasillo [Y]" TTS-->>TV: Reproducir audio TV-->>Team: 🔊 Anuncio audible en almacén alt Artículo es prioritario RT->>RT: Marcar como urgente TV->>TV: Mostrar en rojo/destacado TTS->>TTS: Usar tono de urgencia TTS-->>Team: 🔴 "URGENTE: [producto]" end Team->>Team: Escuchar anuncio Team->>Op: Coordinar ubicación RA->>RA: Marcar como announced = True end Op->>SP: Validar recepción completa SP->>SP: Cambiar estado a "done" RT->>TV: Actualizar resumen del día TV->>TV: Mostrar estadísticas:
- Total artículos recibidos
- Órdenes completadas
- Pendientes de ubicar TV-->>Team: Dashboard en tiempo real Note over Op,Team: Notificaciones instantáneas
mejoran coordinación
y reducen errores

🤖 Proceso de Gestión de Productos con IA

flowchart TD
    Start([Gestionar Producto]) --> NeedCompatibility{¿Añadir
Compatibilidad?} NeedCompatibility -->|Sí Manual| ManualEntry[Entrada Manual
vehicle_make] NeedCompatibility -->|Sí con IA| UseAI[Usar IA
vehicle_compatibility_ai] NeedCompatibility -->|No| CheckPrice UseAI --> EnterText[Ingresar Texto
con Compatibilidades] EnterText --> ProcessGPT[Procesar con GPT-4o
Extracción JSON] ProcessGPT --> ParseData[Extraer Marcas,
Modelos, Años] ParseData --> CreateCompat[Crear/Actualizar
Compatibilidades] CreateCompat --> ManualEntry ManualEntry --> CheckPrice{¿Calcular
Precio?} CheckPrice -->|Sí| UseCalc[Usar Calculadora
import_cost_calculator] CheckPrice -->|No| SaveProduct UseCalc --> InputCosts[Ingresar: Precio,
Tasa, Peso, Envío] InputCosts --> CalcTotal[Calcular Costo
Total Aterizado] CalcTotal --> SaveProduct[Guardar Producto] SaveProduct --> NeedSync{¿Sincronizar
con Externo?} NeedSync -->|Sí| ConfigSync[Configurar Conexión
inventory_sync] NeedSync -->|No| End ConfigSync --> MapLocations[Mapear Ubicaciones] MapLocations --> RunSync[Ejecutar Sincronización] RunSync --> UpdateExternal[Actualizar Inventario
Externo] UpdateExternal --> LogSync[Registrar Log
de Sincronización] LogSync --> End([Producto Actualizado]) style Start fill:#e1f5ff style End fill:#c6f6d5 style ProcessGPT fill:#feebc8 style UseCalc fill:#fefcbf style RunSync fill:#fed7d7

🔄 Diagrama de Secuencia: Gestión de Productos con IA

sequenceDiagram
    participant U as Usuario
    participant P as Product Template
    participant Wiz as Compatibility AI Wizard
    participant AI as OpenAI GPT-4o
    participant VM as Vehicle Make/Model
    participant Calc as Import Cost Calculator
    participant Sync as Inventory Sync
    participant Ext as Sistema Externo
    
    U->>P: Seleccionar productos (batch)
    U->>Wiz: Abrir wizard de IA
    
    Note over U,Wiz: Caso 1: Añadir Compatibilidades
    
    U->>Wiz: Pegar texto con compatibilidades
Ej: "Toyota Corolla 2015-2020
Honda Civic 2016-2019" Wiz->>Wiz: Validar formato de entrada Wiz->>AI: Enviar prompt estructurado Note over AI: GPT-4o extrae y estructura:
- Marcas
- Modelos
- Años (desde-hasta)
- Motor
- Versiones
- Combustible AI-->>Wiz: JSON estructurado
[{make: "Toyota",
model: "Corolla",
year_from: 2015,
year_to: 2020}, ...] Wiz->>Wiz: Parsear JSON loop Por cada registro de compatibilidad Wiz->>VM: Buscar/Crear Vehicle Make VM-->>Wiz: Make ID Wiz->>VM: Buscar/Crear Vehicle Model VM-->>Wiz: Model ID Wiz->>P: Crear línea de compatibilidad P-->>Wiz: Compatibilidad añadida end Wiz-->>U: ✓ X compatibilidades añadidas Note over U,Calc: Caso 2: Calcular Costo Importación U->>Calc: Abrir calculadora (header) U->>Calc: Ingresar datos:
- Precio USD: 50
- Tasa RD$: 58.5
- Peso lb: 2.5
- Precio/lb: $10 Calc->>Calc: Calcular en tiempo real:
Precio RD$ = 50 × 58.5 = 2,925
Envío RD$ = 2.5 × 10 × 58.5 = 1,462.5
Total = 4,387.5 Calc-->>U: Mostrar costo total aterizado U->>P: Actualizar precio de venta Note over U,Ext: Caso 3: Sincronizar con Sistema Externo U->>Sync: Configurar sincronización Sync->>Ext: Test de conexión (XML-RPC) Ext-->>Sync: ✓ Conexión exitosa U->>Sync: Mapear ubicaciones
Local WH/Stock → Externo Location/5 U->>Sync: Ejecutar sincronización Sync->>Ext: Solicitar cantidades de productos Ext-->>Sync: Stock quantities loop Por cada producto sincronizado Sync->>Sync: Comparar cantidad local vs externa alt Hay diferencia Sync->>P: Actualizar stock.quant Sync->>Sync: Log cambio end end Sync-->>U: Sincronización completa
X productos actualizados Note over U,Ext: IA + Herramientas = 90% reducción
tiempo de gestión de productos

🔄 Proceso de Sincronización de Inventario

sequenceDiagram
    participant U as Usuario
    participant O as Odoo 17 Principal
    participant IS as Inventory Sync Module
    participant E as Odoo 19 Externo
    participant L as Logs
    
    U->>O: Configurar Conexión Externa
    O->>IS: Crear inventory_sync_connection
    IS->>E: Test Connection
    E-->>IS: OK / Error
    IS-->>U: Resultado de Conexión
    
    U->>O: Mapear Ubicaciones
    O->>IS: Crear location_mappings
    IS->>IS: Validar Mappings
    IS-->>U: Mappings Configurados
    
    Note over U,E: Sincronización Manual o Automática
    
    U->>O: Ejecutar Sincronización
    O->>IS: Wizard de Sincronización
    IS->>IS: Validar Productos Activos
    IS->>E: Solicitar Cantidades (XML-RPC)
    E-->>IS: Retornar Stock por Ubicación
    
    loop Por cada Producto
        IS->>IS: Comparar Cantidades
        alt Diferencia Detectada
            IS->>O: Actualizar stock.quant
            O-->>IS: Cantidad Actualizada
        else Sin Diferencia
            IS->>IS: Skip
        end
    end
    
    IS->>L: Crear inventory_sync_log
    L->>L: Registrar Líneas Actualizadas
    IS-->>U: Resumen de Sincronización
    
    Note over U,L: Sincronización Completada
                    

📋 Resumen de Flujos

🛒 Ventas

Módulos involucrados: guibei_ai_sale_from_document, sale_quotation_date_visible, vehicle_make, commission_settlement, currency_rate_lock, pickup_points

Duración promedio: 2-5 días (1 hora con IA)

🏭 Compras

Módulos involucrados: purchase_customization, multi_supplier_search, product_restock, landed_cost_guibei, factory_settlement, reception_tracking

Duración promedio: 15-45 días (importaciones)

💰 Contabilidad

Módulos involucrados: account_customization, account_deductible, account_payment_customization, l10n_do_invoice_report_fix, logistic_transport_liquidation

Frecuencia: Diaria

🌐 eCommerce

Módulos involucrados: theme_autoparts_blue, claim_tracking_website, pickup_points, container_3d_simulator

Disponibilidad: 24/7

🤖 Inteligencia Artificial

Módulos involucrados: guibei_ai_sale_from_document, vehicle_compatibility_ai

Impacto: Reducción 80% tiempo de captura de datos

🔄 Sincronización

Módulos involucrados: inventory_sync, reception_tracking

Frecuencia: Tiempo real / Programada

🛠️ Herramientas

Módulos involucrados: import_cost_calculator, multi_supplier_search

Uso: Operaciones diarias

📦 Módulos Personalizados

Listado detallado de todos los módulos personalizados desarrollados para Guibei:

🛒 Extensiones de Ventas

sale_quotation_date_visible

Hace visible y editable el campo de fecha de cotización en órdenes de venta. Permite registrar cotizaciones con fechas específicas diferentes a la fecha actual.

UI Enhancement

vehicle_make

Sistema completo de compatibilidad de vehículos: marcas, modelos, años, tipos, posiciones y fitment. Permite búsqueda de partes por vehículo en tienda online. Incluye listas de precios restringidas por usuario.

Core Business

product_brand_inventory

Gestión de marcas de productos en inventario con filtros, agrupación y análisis de rotación por fabricante. Integración con marcas de vehículos y reportes de stock por marca.

Product Management

commission_settlement

Sistema completo de liquidación de comisiones por vendedor: generación por período, cálculo automático basado en ventas, múltiples esquemas de comisión, reportes detallados e integración con RRHH.

Financial

🏭 Extensiones de Compras

purchase_customization

Personalizaciones específicas del flujo de compras adaptadas a las necesidades de Guibei para operaciones con proveedores de autopartes.

Core Extension

multi_supplier_search

Búsqueda simultánea de partes automotrices en RockAuto, KSI Auto Parts, CrashParts, BMW Parts Now y eBay. Incluye preview en iframe, autenticación automática y navegación por pestañas.

Business Logic

purchase_order_lines_report

Vista analítica de líneas de compra: información de producto, fecha de orden, usuario creador y marca. Análisis detallado con filtros avanzados y exportación a Excel.

Reporting

factory_settlement

Gestión de liquidación con factory desde órdenes facturadas: avances de efectivo, pagos parciales, devoluciones, liquidación final con control de seguridad y parámetros configurables.

Financial

📦 Extensiones de Inventario

stock_customization

Personalizaciones de reportes y vistas de inventario: template de producto, reporte de picking, reporte de devolución y extensión de albarán de entrega.

Core Extension

product_restock

Gestión completa de reabastecimiento desde cotizaciones y facturas: pestaña de reabastecimiento, líneas con proveedores y precios, generación automática de órdenes de compra, gestión de reclamos y reportes.

Automation

landed_cost_guibei

Extensión de costos aterrizados con capacidad de contenedores: gestión por tipo de contenedor, distribución automática de costos según uso e integración con simulador 3D.

Financial

inventory_sync

Sincronización de inventario desde ambientes externos de Odoo: configuración de conexiones, mapeo de ubicaciones, sincronización bidireccional, logs detallados y wizard de sincronización. Compatible con Odoo 19 Community.

Integration

reception_tracking

Sistema completo de seguimiento de recepciones: visualización en TV con monitor y text-to-speech, wizard para registro masivo de guías y peso, recepción masiva por escaneo (batch reception) con pistola lectora para procesar múltiples artículos simultáneamente, validación interactiva, registro de artículos recibidos con números de lote, auto-actualización en tiempo real, impresión de etiquetas masiva y trazabilidad completa.

Operations Automation Barcode

💰 Extensiones de Contabilidad

account_customization

Campos personalizados en facturas y cotizaciones: No. Licitación, Reclamo, Marca/Modelo/Generación del Vehículo, No. Chasis. Facilita rastreo de ventas en el sector automotriz.

Core Extension

account_deductible

Gestión completa de deducibles en facturas: marcación y monto, descuento automático, desglose en reportes, factura de cierre y ciclo contable completo. Control total del esquema de deducibles con clientes.

Tax Management

account_payment_customization

Permite forzar la cuenta de destino en pagos a proveedores, proporcionando mayor control sobre las cuentas contables utilizadas en el flujo de pagos.

Business Logic

currency_rate_lock

Control automático de tasas de cambio: verifica tasas diarias, bloquea el sistema si faltan tasas, soporte para fines de semana, acceso rápido al registro y desbloqueo automático. Excluye moneda local (DOP).

Multi-Currency

l10n_do_invoice_report_fix

Corrección del reporte de facturas para diarios no fiscales en República Dominicana. Aplica template dominicano solo cuando use_documents es True y restaura template estándar para facturas no fiscales.

Localization

logistic_transport_liquidation

Asociación de facturas de transporte con liquidaciones en órdenes de venta: marca de transporte logístico, vinculación con ventas específicas, líneas de liquidación automáticas, smart button y registro de costos por línea.

Logistics

🌐 Extensiones de Website

theme_autoparts_blue

Tema profesional eCommerce para autopartes con esquema azul y amarillo (#0D2C6E y #FFC300): diseño moderno y responsive, carrusel hero personalizado, grid de categorías con efectos hover, sección de productos destacados, barra de búsqueda prominente, badges de confianza de pago (Visa, Mastercard, 3D Secure), navegación sticky, integración con WhatsApp, optimizado para móviles y mercado dominicano, imágenes de seguridad de pago.

Frontend Mobile Optimized

guibei_portal_auth

Sistema avanzado de autenticación y registro para portal: Google reCAPTCHA v3 invisible, verificación de email obligatoria, rate limiting (máx 5 intentos/15min), protección contra fuerza bruta, política de contraseñas fuertes con indicador visual, CSRF protection, audit logging completo, emails HTML profesionales con diseño Guibei, tema personalizado azul/amarillo y nombre de usuario en header.

Security Portal Authentication

claim_tracking_website

Portal web para seguimiento de reclamos: búsqueda por número, estado en tiempo real, información detallada del reclamo e integración con chatter. Mejora el servicio al cliente con consulta autónoma.

Customer Portal

pickup_points

Sistema completo de puntos de entrega: registro de comercios aliados, propietarios/responsables, geolocalización con mapas, horarios y disponibilidad, gestión de capacidad, documentación y compensaciones.

Logistics

container_3d_simulator

Simulador 3D profesional de carga de contenedores: visualización 3D interactiva, simulación en tiempo real, múltiples tipos de contenedores, algoritmos de empaquetado y optimización de espacio.

Visualization

🏪 Extensiones de POS

pos_hide_product_info

Protege información sensible en POS: muestra descripción de venta bajo nombre y código, oculta información de proveedores, tiempos de reabastecimiento, costos, márgenes y totales sensibles en órdenes.

Security

👥 Extensiones de RRHH

employee_warning

Sistema de advertencias a empleados con impacto en comisiones: registro de advertencias con monto, deducción automática de comisiones, vinculación con ventas, reportes y control de acceso por grupos.

HR Management

zehntech_employee_birthday_wishes

Gestión de cumpleaños: emails automáticos de felicitación, personalización por departamento, vista de próximos cumpleaños, mejora de engagement y programación automática. Soporte multi-idioma.

Employee Engagement

🤖 Módulos de Inteligencia Artificial

guibei_ai_sale_from_document

Crea órdenes de venta automáticamente desde documentos (imágenes o PDFs) usando ChatGPT. OCR con GPT-4o vision, estructuración inteligente de datos JSON, creación automática de clientes, matching de productos y validación robusta.

AI Automation

vehicle_compatibility_ai

Completa automáticamente información de compatibilidad de vehículos usando IA. Reconoce marcas, modelos, años, motores, versiones y combustible desde texto natural. Actualización inteligente de compatibilidades existentes.

AI Product Management

🛠️ Herramientas y Utilidades

import_cost_calculator

Calculadora de costos de importación accesible desde la barra superior: cálculos en tiempo real considerando precio de compra, tasa de cambio, peso del artículo y precio por libra de envío. Interface simple y rápida.

Productivity Tools

🚀 Deployment en Digital Ocean

📋 Pasos para Desplegar

1

Preparar el Repositorio

Sube este proyecto a GitHub. Asegúrate de incluir todos los archivos necesarios.

git init
git add .
git commit -m "Initial commit - Guibei Documentation"
git remote add origin <tu-repo-url>
git push -u origin main
2

Crear App en Digital Ocean

  • Ve a Digital Ocean App Platform
  • Haz clic en "Create App"
  • Conecta tu repositorio de GitHub
  • Selecciona la rama "main"
3

Configurar el Servicio

  • Type: Static Site
  • Build Command: (dejar vacío)
  • Output Directory: /
  • HTTP Port: 80
4

Deploy

Haz clic en "Create Resources" y espera que se complete el deployment.

Digital Ocean te proporcionará una URL automática tipo: https://tu-app.ondigitalocean.app

5

Configurar Dominio (Opcional)

Puedes conectar tu propio dominio en la configuración de la app en Digital Ocean.

💡 Recursos Recomendados

📄 Plan Básico (Static Site)

Costo: GRATIS

  • Ancho de banda ilimitado
  • SSL automático
  • Deploy automático desde Git

🔧 Archivos de Configuración

Este proyecto incluye los siguientes archivos de configuración:

  • .do/app.yaml - Configuración de Digital Ocean App Platform
  • index.html - Página principal
  • styles.css - Estilos personalizados
  • README.md - Documentación del proyecto

�️ /dev/null