Documentación del Proyecto Guibei - Odoo 17
Sistema ERP personalizado para gestión de autopartes y comercio electrónico
📋 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 Enhancementvehicle_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 Businessproduct_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 Managementcommission_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 Extensionmulti_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 Logicpurchase_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.
Reportingfactory_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 Extensionproduct_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.
Automationlanded_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.
Financialinventory_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.
Integrationreception_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 Extensionaccount_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 Managementaccount_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 Logiccurrency_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-Currencyl10n_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.
Localizationlogistic_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 Optimizedguibei_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 Authenticationclaim_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 Portalpickup_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.
Logisticscontainer_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 Managementzehntech_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 Automationvehicle_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
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
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"
Configurar el Servicio
- Type: Static Site
- Build Command: (dejar vacío)
- Output Directory: /
- HTTP Port: 80
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
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 Platformindex.html- Página principalstyles.css- Estilos personalizadosREADME.md- Documentación del proyecto
�️ /dev/null
Acceso Restringido
Área protegida. Autenticación requerida.