demo files
This commit is contained in:
parent
6381a2d985
commit
a483925005
10 changed files with 1391 additions and 24 deletions
|
|
@ -42,6 +42,20 @@
|
|||
"views/portal_templates.xml",
|
||||
"views/load_from_history_templates.xml",
|
||||
],
|
||||
"demo": [
|
||||
# Demo: Account Taxes (must be loaded first)
|
||||
"demo/account_tax_demo.xml",
|
||||
# Demo: Partners (Groups and Members)
|
||||
"demo/res_partner_demo.xml",
|
||||
# Demo: Suppliers
|
||||
"demo/res_partner_suppliers_demo.xml",
|
||||
# Demo: Products and Categories
|
||||
"demo/product_demo.xml",
|
||||
# Demo: Group Orders
|
||||
"demo/group_order_demo.xml",
|
||||
# Demo: Sale Orders
|
||||
"demo/sale_order_demo.xml",
|
||||
],
|
||||
"i18n": [
|
||||
"i18n/es.po",
|
||||
"i18n/eu_ES.po",
|
||||
|
|
|
|||
247
website_sale_aplicoop/demo/README.md
Normal file
247
website_sale_aplicoop/demo/README.md
Normal file
|
|
@ -0,0 +1,247 @@
|
|||
# Demo Data - Website Sale Aplicoop
|
||||
|
||||
Este directorio contiene datos de demostración completos para el addon `website_sale_aplicoop`, diseñados para mostrar todas las funcionalidades del sistema de pedidos colaborativos (eskaera) para cooperativas de consumo.
|
||||
|
||||
## Contenido de los Archivos Demo
|
||||
|
||||
### 1. `res_partner_demo.xml` - Grupos y Miembros
|
||||
|
||||
**Grupos de Consumo (3 grupos):**
|
||||
- **Garaialde Kooperatiba** (Bilbao)
|
||||
- Grupo activo con pedidos semanales
|
||||
- 3 miembros activos
|
||||
|
||||
- **Lamiakada Kontsumoko Taldea** (Donostia)
|
||||
- Grupo con pedidos quincenales
|
||||
- 2 miembros activos
|
||||
|
||||
- **Eko Auzolan** (Gasteiz)
|
||||
- Grupo con pedidos mensuales
|
||||
- 2 miembros activos
|
||||
|
||||
**Total Miembros:** 7 personas distribuidas entre los 3 grupos
|
||||
|
||||
### 2. `res_partner_suppliers_demo.xml` - Proveedores
|
||||
|
||||
**6 Proveedores Locales:**
|
||||
- **Baserritarra SL** - Productos frescos locales y de temporada
|
||||
- **Bio Zikloa Kooperatiba** - Productos ecológicos certificados
|
||||
- **Artizarra Esnea** - Lácteos artesanales del País Vasco
|
||||
- **Hiruki Kontserbak** - Conservas y productos elaborados artesanales
|
||||
- **Ekotalde Barazkiak** - Verduras eco de km 0
|
||||
- **Auzoko Okindegia** - Pan artesano y repostería tradicional vasca
|
||||
|
||||
Todos los proveedores tienen `supplier_rank > 0` y pueden ser asignados a group orders.
|
||||
|
||||
### 3. `product_demo.xml` - Productos y Categorías
|
||||
|
||||
**Categorías de Producto:**
|
||||
- Fruta Fresca
|
||||
- Verdura Fresca
|
||||
- Lácteos
|
||||
- Pan y Repostería
|
||||
- Conservas
|
||||
|
||||
**13 Productos Demo:**
|
||||
|
||||
| Código | Nombre | Categoría | Proveedor(es) | Precio/€ |
|
||||
|-------------|-------------------------------|-----------------|------------------------|----------|
|
||||
| MANZ-ECO | Manzana Ecológica | Fruta | Baserritarra | 2.50/kg |
|
||||
| NARA-VAL | Naranja Valenciana | Fruta | Bio Zikloa | 2.80/kg |
|
||||
| PLAT-CAN | Plátano de Canarias | Fruta | Bio Zikloa | 3.20/kg |
|
||||
| TOMA-ECO | Tomate Ecológico | Verdura | Baserritarra | 3.50/kg |
|
||||
| LECH-KM0 | Lechuga Km 0 | Verdura | Ekotalde | 1.50/ud |
|
||||
| PIMI-VER | Pimiento Verde | Verdura | Ekotalde | 4.20/kg |
|
||||
| LECH-ENT | Leche Entera Artesana | Lácteos | Artizarra | 1.80/L |
|
||||
| YOGU-NAT | Yogur Natural (Pack 4) | Lácteos | Artizarra | 3.20/ud |
|
||||
| QUES-IDI | Queso Idiazabal D.O. | Lácteos | Artizarra | 25.00/kg |
|
||||
| PAN-INT | Pan Integral Artesano | Pan/Repostería | Auzoko Okindegia | 3.50/kg |
|
||||
| POST-GOX | Goxua (6 unidades) | Pan/Repostería | Auzoko Okindegia | 8.50/ud |
|
||||
| CONS-BON | Bonito del Norte en Aceite | Conservas | Hiruki | 12.50/ud |
|
||||
| CONS-PIQ | Pimientos del Piquillo D.O. | Conservas | Hiruki | 5.80/ud |
|
||||
|
||||
**Plus:**
|
||||
- `SRV-DELIV` - Servicio de Envío a Domicilio (5.00€/servicio)
|
||||
|
||||
Todos los productos incluyen:
|
||||
- Configuración de impuestos (IVA 4%, 10% o 21% según corresponda)
|
||||
- Información de proveedor (precio, cantidad mínima, plazo de entrega)
|
||||
- Unidades de medida apropiadas (kg, L, unidad)
|
||||
|
||||
### 4. `group_order_demo.xml` - Pedidos de Grupo
|
||||
|
||||
**8 Group Orders con diferentes configuraciones:**
|
||||
|
||||
1. **Eskaera Astekaria Garaialde** (ACTIVO)
|
||||
- Tipo: Regular (weekly)
|
||||
- Grupo: Garaialde
|
||||
- Pickup: Viernes / Cutoff: Jueves
|
||||
- Home delivery: SÍ
|
||||
- Proveedores: Baserritarra, Ekotalde, Artizarra, Okindegia
|
||||
- Categorías: Frutas, Verduras, Lácteos, Pan
|
||||
|
||||
2. **Eskaera Hamabostaldia Lamiakada** (ACTIVO)
|
||||
- Tipo: Regular (biweekly)
|
||||
- Grupo: Lamiakada
|
||||
- Pickup: Sábado / Cutoff: Viernes
|
||||
- Home delivery: NO
|
||||
- Proveedores: Bio Zikloa, Hiruki
|
||||
- Categorías: Frutas, Conservas
|
||||
|
||||
3. **Eskaera Hilabetekoa Eko Auzolan** (ACTIVO)
|
||||
- Tipo: Regular (monthly)
|
||||
- Grupo: Eko Auzolan
|
||||
- Pickup: Lunes / Cutoff: Domingo
|
||||
- Home delivery: SÍ
|
||||
- Productos específicos: Queso Idiazabal, Bonito, Pimientos Piquillo
|
||||
|
||||
4. **Eskaera Berezia - Denboraldia** (ACTIVO - Temporal)
|
||||
- Tipo: Special (once)
|
||||
- Grupos: Garaialde + Lamiakada
|
||||
- Duración: 14 días
|
||||
- Productos de temporada: Tomate, Pimiento, Lechuga
|
||||
|
||||
5. **Eskaera Promozionala - Gabonak** (FUTURO)
|
||||
- Tipo: Promotional (once)
|
||||
- Grupos: Los 3 grupos
|
||||
- Inicio: +5 días / Fin: +21 días
|
||||
- Productos: Goxua, Queso Idiazabal, Bonito
|
||||
|
||||
6. **Eskaera Astekaria (Itxita)** (CERRADO - Histórico)
|
||||
- Ejemplo de pedido histórico finalizado
|
||||
- Útil para testing de históricos
|
||||
|
||||
7. **Eskaera Kolektiboa - Ekintza Elkartua** (MULTI-GRUPO)
|
||||
- Los 3 grupos participan
|
||||
- Productos excluidos: Plátano de Canarias (demo de blacklist)
|
||||
|
||||
8. **Eskaera Urtekoa - Produktu Iraunkorra** (CON EXCLUSIONES)
|
||||
- Demo de funcionalidad de blacklist
|
||||
- Excluye: Pimientos del Piquillo
|
||||
|
||||
### 5. `sale_order_demo.xml` - Pedidos de Venta
|
||||
|
||||
**9 Sale Orders** asociados a diferentes group orders y miembros:
|
||||
|
||||
**Estado CONFIRMED (sale):**
|
||||
- Ane García: 4 líneas (frutas, verduras, leche, pan) - Pickup en tienda
|
||||
- Mikel Lopez: 3 líneas + delivery - Con envío a domicilio ✓
|
||||
- Jon Fernández: 3 líneas (conservas, frutas)
|
||||
- Unai Sánchez: 3 líneas + delivery - Pedido mensual
|
||||
|
||||
**Estado DRAFT:**
|
||||
- Leire Martínez: 2 líneas (naranjas, queso)
|
||||
- Amaia Méndez: 1 línea (naranjas)
|
||||
- Ainhoa Rodríguez: 1 línea (conservas)
|
||||
- Ane García (especial): 3 líneas - Pedido de temporada
|
||||
|
||||
**Características destacadas:**
|
||||
- Mezcla de pedidos confirmados y en borrador
|
||||
- Algunos con home_delivery=True (incluyen producto de delivery)
|
||||
- Diferentes fechas de pickup según el group order
|
||||
- Cantidades realistas y variadas
|
||||
|
||||
## Instalación y Uso
|
||||
|
||||
### Instalación Básica (Sin Demo)
|
||||
|
||||
```bash
|
||||
docker-compose run odoo odoo -d odoo -i website_sale_aplicoop --stop-after-init
|
||||
```
|
||||
|
||||
### Instalación con Datos Demo
|
||||
|
||||
```bash
|
||||
docker-compose run odoo odoo -d odoo -i website_sale_aplicoop --load-language=es_ES --load-language=eu_ES --stop-after-init --demo=True
|
||||
```
|
||||
|
||||
O desde la UI de Odoo:
|
||||
1. Apps > Buscar "Website Sale - Aplicoop"
|
||||
2. Asegurarse de que la base de datos tiene demo data habilitado
|
||||
3. Instalar el módulo
|
||||
|
||||
### Acceso a los Datos Demo
|
||||
|
||||
**Backend (Odoo):**
|
||||
- Ventas > Órdenes > Consumer Group Orders
|
||||
- Contactos > Filtrar por "Is a Consumer Group"
|
||||
- Productos > Ver productos demo con prefijos MANZ-, NARA-, etc.
|
||||
|
||||
**Frontend (Website):**
|
||||
1. Ir a `/shop/eskaera`
|
||||
2. Los group orders estarán visibles según permisos
|
||||
3. Hacer login como uno de los miembros demo para probar el flujo completo
|
||||
|
||||
### Usuarios Demo Recomendados
|
||||
|
||||
Para testing, crear usuarios de Odoo asociados a estos partners:
|
||||
- `ane.garcia@example.com` (Garaialde - Pedido semanal)
|
||||
- `jon.fernandez@example.com` (Lamiakada - Pedido quincenal)
|
||||
- `unai.sanchez@example.com` (Eko Auzolan - Pedido mensual)
|
||||
|
||||
## Casos de Uso Cubiertos
|
||||
|
||||
Los datos demo permiten probar:
|
||||
|
||||
✅ **Flujos básicos:**
|
||||
- Crear/editar/confirmar pedidos individuales
|
||||
- Añadir productos al carrito de eskaera
|
||||
- Seleccionar home delivery
|
||||
- Ver fechas de pickup y cutoff
|
||||
|
||||
✅ **Configuraciones variadas:**
|
||||
- Pedidos semanales, quincenales, mensuales
|
||||
- Pedidos especiales (one-time)
|
||||
- Pedidos promocionales con fechas futuras
|
||||
- Multi-grupo (varios grupos en un pedido)
|
||||
|
||||
✅ **Filtrado de productos:**
|
||||
- Por proveedores
|
||||
- Por categorías
|
||||
- Por productos específicos
|
||||
- Con exclusiones (blacklist)
|
||||
|
||||
✅ **Gestión de grupos:**
|
||||
- Múltiples grupos de diferentes ciudades
|
||||
- Miembros con diferentes patrones de compra
|
||||
- Asociaciones grupo-miembro
|
||||
|
||||
✅ **Reportes y análisis:**
|
||||
- Pedidos históricos (cerrados)
|
||||
- Pedidos activos con diferentes estados
|
||||
- Datos para testing de lazy loading
|
||||
- Datos para testing de date calculations
|
||||
|
||||
## Mantenimiento
|
||||
|
||||
Para regenerar o actualizar los datos demo:
|
||||
|
||||
```bash
|
||||
# Limpiar base de datos
|
||||
docker-compose run odoo odoo -d odoo --init=website_sale_aplicoop --demo=True --stop-after-init
|
||||
|
||||
# O actualizar solo el módulo
|
||||
docker-compose run odoo odoo -d odoo -u website_sale_aplicoop --stop-after-init
|
||||
```
|
||||
|
||||
## Notas Importantes
|
||||
|
||||
- Los precios incluyen IVA según categoría de producto
|
||||
- Las fechas de group orders usan `eval` con `DateTime.today()` para ser dinámicas
|
||||
- Los supplierinfo están correctamente configurados con precios y MOQ
|
||||
- Todos los partners tienen direcciones completas en España (Euskadi)
|
||||
- Los códigos de producto siguen un patrón coherente para fácil identificación
|
||||
|
||||
## Contribuir
|
||||
|
||||
Para añadir más datos demo:
|
||||
1. Seguir la estructura existente
|
||||
2. Usar XML IDs descriptivos (ej: `product_nombre_descriptivo`)
|
||||
3. Mantener coherencia en nombres (euskera + castellano)
|
||||
4. Documentar en este README
|
||||
|
||||
---
|
||||
|
||||
**Versión:** 18.0.1.7.0
|
||||
**Última actualización:** 2026-02-26
|
||||
**Autor:** Criptomart
|
||||
64
website_sale_aplicoop/demo/account_tax_demo.xml
Normal file
64
website_sale_aplicoop/demo/account_tax_demo.xml
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- ============================================ -->
|
||||
<!-- Demo Taxes (Impuestos para Demo) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<!-- IVA 4% (Alimentos básicos) -->
|
||||
<record id="demo_tax_iva_4_sale" model="account.tax">
|
||||
<field name="name">IVA 4% (Demo)</field>
|
||||
<field name="amount">4.0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="active" eval="True" />
|
||||
<field name="description">IVA4</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_tax_iva_4_purchase" model="account.tax">
|
||||
<field name="name">IVA 4% Compras (Demo)</field>
|
||||
<field name="amount">4.0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="active" eval="True" />
|
||||
<field name="description">IVA4_P</field>
|
||||
</record>
|
||||
|
||||
<!-- IVA 10% (Alimentos elaborados) -->
|
||||
<record id="demo_tax_iva_10_sale" model="account.tax">
|
||||
<field name="name">IVA 10% (Demo)</field>
|
||||
<field name="amount">10.0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="active" eval="True" />
|
||||
<field name="description">IVA10</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_tax_iva_10_purchase" model="account.tax">
|
||||
<field name="name">IVA 10% Compras (Demo)</field>
|
||||
<field name="amount">10.0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="active" eval="True" />
|
||||
<field name="description">IVA10_P</field>
|
||||
</record>
|
||||
|
||||
<!-- IVA 21% (Servicios) -->
|
||||
<record id="demo_tax_iva_21_sale" model="account.tax">
|
||||
<field name="name">IVA 21% (Demo)</field>
|
||||
<field name="amount">21.0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="active" eval="True" />
|
||||
<field name="description">IVA21</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_tax_iva_21_purchase" model="account.tax">
|
||||
<field name="name">IVA 21% Compras (Demo)</field>
|
||||
<field name="amount">21.0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="active" eval="True" />
|
||||
<field name="description">IVA21_P</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
165
website_sale_aplicoop/demo/group_order_demo.xml
Normal file
165
website_sale_aplicoop/demo/group_order_demo.xml
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- ============================================ -->
|
||||
<!-- Group Orders (Pedidos de Grupo) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<!-- Pedido semanal activo de Garaialde -->
|
||||
<record id="group_order_garaialde_weekly" model="group.order">
|
||||
<field name="name">Eskaera Astekaria Garaialde</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_garaialde')])]" />
|
||||
<field name="type">regular</field>
|
||||
<field name="start_date" eval="(DateTime.today() - timedelta(days=30)).strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="False" />
|
||||
<field name="period">weekly</field>
|
||||
<field name="pickup_day">4</field>
|
||||
<!-- Friday -->
|
||||
<field name="cutoff_day">3</field>
|
||||
<!-- Thursday -->
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="delivery_product_id" ref="product_home_delivery_service" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_baserritarra'), ref('supplier_ekotalde'), ref('supplier_artizarra'), ref('supplier_okindegia')])]" />
|
||||
<field name="category_ids" eval="[(6, 0, [ref('categ_fruta_fresca'), ref('categ_verdura_fresca'), ref('categ_lacteos'), ref('categ_pan_reposteria')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido quincenal activo de Lamiakada -->
|
||||
<record id="group_order_lamiakada_biweekly" model="group.order">
|
||||
<field name="name">Eskaera Hamabostaldia Lamiakada</field>
|
||||
<field name="sequence">20</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_lamiakada')])]" />
|
||||
<field name="type">regular</field>
|
||||
<field name="start_date" eval="(DateTime.today() - timedelta(days=15)).strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="False" />
|
||||
<field name="period">biweekly</field>
|
||||
<field name="pickup_day">5</field>
|
||||
<!-- Saturday -->
|
||||
<field name="cutoff_day">4</field>
|
||||
<!-- Friday -->
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_biozikloa'), ref('supplier_hiruki')])]" />
|
||||
<field name="category_ids" eval="[(6, 0, [ref('categ_fruta_fresca'), ref('categ_conservas')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido mensual de Eko Auzolan -->
|
||||
<record id="group_order_ekoauzolan_monthly" model="group.order">
|
||||
<field name="name">Eskaera Hilabetekoa Eko Auzolan</field>
|
||||
<field name="sequence">30</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_ekoauzolan')])]" />
|
||||
<field name="type">regular</field>
|
||||
<field name="start_date" eval="(DateTime.today() - timedelta(days=60)).strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="False" />
|
||||
<field name="period">monthly</field>
|
||||
<field name="pickup_day">0</field>
|
||||
<!-- Monday -->
|
||||
<field name="cutoff_day">6</field>
|
||||
<!-- Sunday -->
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="delivery_product_id" ref="product_home_delivery_service" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_baserritarra'), ref('supplier_biozikloa'), ref('supplier_artizarra')])]" />
|
||||
<field name="product_ids" eval="[(6, 0, [ref('product_queso_idiazabal'), ref('product_bonito_conserva'), ref('product_pimientos_piquillo')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido especial (una vez) - Productos de temporada -->
|
||||
<record id="group_order_special_seasonal" model="group.order">
|
||||
<field name="name">Eskaera Berezia - Denboraldia</field>
|
||||
<field name="sequence">40</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_garaialde'), ref('group_lamiakada')])]" />
|
||||
<field name="type">special</field>
|
||||
<field name="start_date" eval="DateTime.today().strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="(DateTime.today() + timedelta(days=14)).strftime('%Y-%m-%d')" />
|
||||
<field name="period">once</field>
|
||||
<field name="pickup_day">5</field>
|
||||
<!-- Saturday -->
|
||||
<field name="cutoff_day">3</field>
|
||||
<!-- Thursday -->
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_baserritarra')])]" />
|
||||
<field name="product_ids" eval="[(6, 0, [ref('product_tomate_ecologico'), ref('product_pimiento_verde'), ref('product_lechuga_km0')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido promocional (una vez) - Navidad -->
|
||||
<record id="group_order_promo_christmas" model="group.order">
|
||||
<field name="name">Eskaera Promozionala - Gabonak</field>
|
||||
<field name="sequence">50</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_garaialde'), ref('group_lamiakada'), ref('group_ekoauzolan')])]" />
|
||||
<field name="type">promotional</field>
|
||||
<field name="start_date" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="(DateTime.today() + timedelta(days=21)).strftime('%Y-%m-%d')" />
|
||||
<field name="period">once</field>
|
||||
<field name="pickup_day">4</field>
|
||||
<!-- Friday -->
|
||||
<field name="cutoff_day">2</field>
|
||||
<!-- Wednesday -->
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="delivery_product_id" ref="product_home_delivery_service" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_okindegia'), ref('supplier_hiruki'), ref('supplier_artizarra')])]" />
|
||||
<field name="product_ids" eval="[(6, 0, [ref('product_goxua'), ref('product_queso_idiazabal'), ref('product_bonito_conserva')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido pasado (cerrado) - Ejemplo histórico -->
|
||||
<record id="group_order_past_closed" model="group.order">
|
||||
<field name="name">Eskaera Astekaria (Itxita)</field>
|
||||
<field name="sequence">100</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_garaialde')])]" />
|
||||
<field name="type">regular</field>
|
||||
<field name="start_date" eval="(DateTime.today() - timedelta(days=90)).strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="(DateTime.today() - timedelta(days=30)).strftime('%Y-%m-%d')" />
|
||||
<field name="period">weekly</field>
|
||||
<field name="pickup_day">4</field>
|
||||
<field name="cutoff_day">3</field>
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="delivery_product_id" ref="product_home_delivery_service" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_baserritarra'), ref('supplier_artizarra')])]" />
|
||||
<field name="category_ids" eval="[(6, 0, [ref('categ_fruta_fresca'), ref('categ_lacteos')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido multi-grupo (varios grupos participan) -->
|
||||
<record id="group_order_multi_group" model="group.order">
|
||||
<field name="name">Eskaera Kolektiboa - Ekintza Elkartua</field>
|
||||
<field name="sequence">15</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_garaialde'), ref('group_lamiakada'), ref('group_ekoauzolan')])]" />
|
||||
<field name="type">regular</field>
|
||||
<field name="start_date" eval="(DateTime.today() - timedelta(days=7)).strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="False" />
|
||||
<field name="period">monthly</field>
|
||||
<field name="pickup_day">6</field>
|
||||
<!-- Sunday -->
|
||||
<field name="cutoff_day">5</field>
|
||||
<!-- Saturday -->
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="delivery_product_id" ref="product_home_delivery_service" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_baserritarra'), ref('supplier_biozikloa'), ref('supplier_ekotalde')])]" />
|
||||
<field name="category_ids" eval="[(6, 0, [ref('categ_verdura_fresca'), ref('categ_fruta_fresca')])]" />
|
||||
<field name="excluded_product_ids" eval="[(6, 0, [ref('product_platano_canarias')])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<!-- Pedido con productos excluidos (ejemplo blacklist) -->
|
||||
<record id="group_order_with_exclusions" model="group.order">
|
||||
<field name="name">Eskaera Urtekoa - Produktu Iraunkorra</field>
|
||||
<field name="sequence">25</field>
|
||||
<field name="group_ids" eval="[(6, 0, [ref('group_lamiakada')])]" />
|
||||
<field name="type">regular</field>
|
||||
<field name="start_date" eval="DateTime.today().strftime('%Y-%m-%d')" />
|
||||
<field name="end_date" eval="False" />
|
||||
<field name="period">monthly</field>
|
||||
<field name="pickup_day">1</field>
|
||||
<!-- Tuesday -->
|
||||
<field name="cutoff_day">0</field>
|
||||
<!-- Monday -->
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="supplier_ids" eval="[(6, 0, [ref('supplier_hiruki')])]" />
|
||||
<field name="category_ids" eval="[(6, 0, [ref('categ_conservas')])]" />
|
||||
<field name="excluded_product_ids" eval="[(6, 0, [ref('product_pimientos_piquillo')])]" />
|
||||
<field name="excluded_supplier_ids" eval="[(6, 0, [])]" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
365
website_sale_aplicoop/demo/product_demo.xml
Normal file
365
website_sale_aplicoop/demo/product_demo.xml
Normal file
|
|
@ -0,0 +1,365 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- ============================================ -->
|
||||
<!-- Product Categories (Categorías de Producto) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<record id="categ_fruta_fresca" model="product.category">
|
||||
<field name="name">Fruta Fresca</field>
|
||||
<field name="parent_id" ref="product.product_category_all" />
|
||||
</record>
|
||||
|
||||
<record id="categ_verdura_fresca" model="product.category">
|
||||
<field name="name">Verdura Fresca</field>
|
||||
<field name="parent_id" ref="product.product_category_all" />
|
||||
</record>
|
||||
|
||||
<record id="categ_lacteos" model="product.category">
|
||||
<field name="name">Lácteos</field>
|
||||
<field name="parent_id" ref="product.product_category_all" />
|
||||
</record>
|
||||
|
||||
<record id="categ_pan_reposteria" model="product.category">
|
||||
<field name="name">Pan y Repostería</field>
|
||||
<field name="parent_id" ref="product.product_category_all" />
|
||||
</record>
|
||||
|
||||
<record id="categ_conservas" model="product.category">
|
||||
<field name="name">Conservas</field>
|
||||
<field name="parent_id" ref="product.product_category_all" />
|
||||
</record>
|
||||
|
||||
<!-- ============================================ -->
|
||||
<!-- Products (Productos) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<!-- Frutas -->
|
||||
<record id="product_manzana_ecologica" model="product.product">
|
||||
<field name="name">Manzana Ecológica</field>
|
||||
<field name="default_code">MANZ-ECO</field>
|
||||
<field name="categ_id" ref="categ_fruta_fresca" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">2.50</field>
|
||||
<field name="standard_price">1.20</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_naranja_valenciana" model="product.product">
|
||||
<field name="name">Naranja Valenciana</field>
|
||||
<field name="default_code">NARA-VAL</field>
|
||||
<field name="categ_id" ref="categ_fruta_fresca" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">2.80</field>
|
||||
<field name="standard_price">1.50</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_platano_canarias" model="product.product">
|
||||
<field name="name">Plátano de Canarias</field>
|
||||
<field name="default_code">PLAT-CAN</field>
|
||||
<field name="categ_id" ref="categ_fruta_fresca" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">3.20</field>
|
||||
<field name="standard_price">1.80</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Verduras -->
|
||||
<record id="product_tomate_ecologico" model="product.product">
|
||||
<field name="name">Tomate Ecológico</field>
|
||||
<field name="default_code">TOMA-ECO</field>
|
||||
<field name="categ_id" ref="categ_verdura_fresca" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">3.50</field>
|
||||
<field name="standard_price">1.80</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_lechuga_km0" model="product.product">
|
||||
<field name="name">Lechuga Km 0</field>
|
||||
<field name="default_code">LECH-KM0</field>
|
||||
<field name="categ_id" ref="categ_verdura_fresca" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">1.50</field>
|
||||
<field name="standard_price">0.80</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_pimiento_verde" model="product.product">
|
||||
<field name="name">Pimiento Verde</field>
|
||||
<field name="default_code">PIMI-VER</field>
|
||||
<field name="categ_id" ref="categ_verdura_fresca" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">4.20</field>
|
||||
<field name="standard_price">2.10</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Lácteos -->
|
||||
<record id="product_leche_entera" model="product.product">
|
||||
<field name="name">Leche Entera Artesana</field>
|
||||
<field name="default_code">LECH-ENT</field>
|
||||
<field name="categ_id" ref="categ_lacteos" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">1.80</field>
|
||||
<field name="standard_price">1.00</field>
|
||||
<field name="uom_id" ref="uom.product_uom_litre" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_litre" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_yogur_natural" model="product.product">
|
||||
<field name="name">Yogur Natural (Pack 4)</field>
|
||||
<field name="default_code">YOGU-NAT</field>
|
||||
<field name="categ_id" ref="categ_lacteos" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">3.20</field>
|
||||
<field name="standard_price">1.80</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_queso_idiazabal" model="product.product">
|
||||
<field name="name">Queso Idiazabal D.O.</field>
|
||||
<field name="default_code">QUES-IDI</field>
|
||||
<field name="categ_id" ref="categ_lacteos" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">25.00</field>
|
||||
<field name="standard_price">15.00</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Pan y Repostería -->
|
||||
<record id="product_pan_integral" model="product.product">
|
||||
<field name="name">Pan Integral Artesano</field>
|
||||
<field name="default_code">PAN-INT</field>
|
||||
<field name="categ_id" ref="categ_pan_reposteria" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">3.50</field>
|
||||
<field name="standard_price">1.80</field>
|
||||
<field name="uom_id" ref="uom.product_uom_kgm" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_kgm" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_4_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_goxua" model="product.product">
|
||||
<field name="name">Goxua (6 unidades)</field>
|
||||
<field name="default_code">POST-GOX</field>
|
||||
<field name="categ_id" ref="categ_pan_reposteria" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">8.50</field>
|
||||
<field name="standard_price">4.50</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Conservas -->
|
||||
<record id="product_bonito_conserva" model="product.product">
|
||||
<field name="name">Bonito del Norte en Aceite</field>
|
||||
<field name="default_code">CONS-BON</field>
|
||||
<field name="categ_id" ref="categ_conservas" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">12.50</field>
|
||||
<field name="standard_price">7.00</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product_pimientos_piquillo" model="product.product">
|
||||
<field name="name">Pimientos del Piquillo D.O.</field>
|
||||
<field name="default_code">CONS-PIQ</field>
|
||||
<field name="categ_id" ref="categ_conservas" />
|
||||
<field name="type">consu</field>
|
||||
<field name="list_price">5.80</field>
|
||||
<field name="standard_price">3.20</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="True" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_sale')])]" />
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('demo_tax_iva_10_purchase')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Producto de envío a domicilio (servicio) -->
|
||||
<record id="product_home_delivery_service" model="product.product">
|
||||
<field name="name">Servicio de Envío a Domicilio</field>
|
||||
<field name="default_code">SRV-DELIV</field>
|
||||
<field name="categ_id" ref="product.product_category_all" />
|
||||
<field name="type">service</field>
|
||||
<field name="list_price">5.00</field>
|
||||
<field name="standard_price">0.00</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit" />
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit" />
|
||||
<field name="sale_ok" eval="True" />
|
||||
<field name="purchase_ok" eval="False" />
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('demo_tax_iva_21_sale')])]" />
|
||||
</record>
|
||||
|
||||
<!-- ============================================ -->
|
||||
<!-- Supplier Info (Información de Proveedores) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<!-- Baserritarra provee frutas y verduras -->
|
||||
<record id="supplierinfo_manzana_baserritarra" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_baserritarra" />
|
||||
<field name="product_id" ref="product_manzana_ecologica" />
|
||||
<field name="price">1.20</field>
|
||||
<field name="min_qty">10.0</field>
|
||||
<field name="delay">2</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_tomate_baserritarra" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_baserritarra" />
|
||||
<field name="product_id" ref="product_tomate_ecologico" />
|
||||
<field name="price">1.80</field>
|
||||
<field name="min_qty">5.0</field>
|
||||
<field name="delay">2</field>
|
||||
</record>
|
||||
|
||||
<!-- Bio Zikloa provee productos ecológicos -->
|
||||
<record id="supplierinfo_naranja_biozikloa" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_biozikloa" />
|
||||
<field name="product_id" ref="product_naranja_valenciana" />
|
||||
<field name="price">1.50</field>
|
||||
<field name="min_qty">10.0</field>
|
||||
<field name="delay">3</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_platano_biozikloa" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_biozikloa" />
|
||||
<field name="product_id" ref="product_platano_canarias" />
|
||||
<field name="price">1.80</field>
|
||||
<field name="min_qty">10.0</field>
|
||||
<field name="delay">3</field>
|
||||
</record>
|
||||
|
||||
<!-- Artizarra provee lácteos -->
|
||||
<record id="supplierinfo_leche_artizarra" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_artizarra" />
|
||||
<field name="product_id" ref="product_leche_entera" />
|
||||
<field name="price">1.00</field>
|
||||
<field name="min_qty">20.0</field>
|
||||
<field name="delay">1</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_yogur_artizarra" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_artizarra" />
|
||||
<field name="product_id" ref="product_yogur_natural" />
|
||||
<field name="price">1.80</field>
|
||||
<field name="min_qty">10.0</field>
|
||||
<field name="delay">1</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_queso_artizarra" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_artizarra" />
|
||||
<field name="product_id" ref="product_queso_idiazabal" />
|
||||
<field name="price">15.00</field>
|
||||
<field name="min_qty">2.0</field>
|
||||
<field name="delay">7</field>
|
||||
</record>
|
||||
|
||||
<!-- Auzoko Okindegia provee pan -->
|
||||
<record id="supplierinfo_pan_okindegia" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_okindegia" />
|
||||
<field name="product_id" ref="product_pan_integral" />
|
||||
<field name="price">1.80</field>
|
||||
<field name="min_qty">5.0</field>
|
||||
<field name="delay">1</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_goxua_okindegia" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_okindegia" />
|
||||
<field name="product_id" ref="product_goxua" />
|
||||
<field name="price">4.50</field>
|
||||
<field name="min_qty">2.0</field>
|
||||
<field name="delay">1</field>
|
||||
</record>
|
||||
|
||||
<!-- Hiruki provee conservas -->
|
||||
<record id="supplierinfo_bonito_hiruki" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_hiruki" />
|
||||
<field name="product_id" ref="product_bonito_conserva" />
|
||||
<field name="price">7.00</field>
|
||||
<field name="min_qty">6.0</field>
|
||||
<field name="delay">5</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_piquillo_hiruki" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_hiruki" />
|
||||
<field name="product_id" ref="product_pimientos_piquillo" />
|
||||
<field name="price">3.20</field>
|
||||
<field name="min_qty">12.0</field>
|
||||
<field name="delay">5</field>
|
||||
</record>
|
||||
|
||||
<!-- Ekotalde provee verduras -->
|
||||
<record id="supplierinfo_lechuga_ekotalde" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_ekotalde" />
|
||||
<field name="product_id" ref="product_lechuga_km0" />
|
||||
<field name="price">0.80</field>
|
||||
<field name="min_qty">10.0</field>
|
||||
<field name="delay">1</field>
|
||||
</record>
|
||||
|
||||
<record id="supplierinfo_pimiento_ekotalde" model="product.supplierinfo">
|
||||
<field name="partner_id" ref="supplier_ekotalde" />
|
||||
<field name="product_id" ref="product_pimiento_verde" />
|
||||
<field name="price">2.10</field>
|
||||
<field name="min_qty">5.0</field>
|
||||
<field name="delay">1</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
134
website_sale_aplicoop/demo/res_partner_demo.xml
Normal file
134
website_sale_aplicoop/demo/res_partner_demo.xml
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- ============================================ -->
|
||||
<!-- Consumer Groups (Grupos de Consumo) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<record id="group_garaialde" model="res.partner">
|
||||
<field name="name">Garaialde Kooperatiba</field>
|
||||
<field name="is_group" eval="True" />
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="street">Garaialde Kalea 1</field>
|
||||
<field name="city">Bilbao</field>
|
||||
<field name="zip">48012</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">garaialde@kooperatiba.eus</field>
|
||||
<field name="phone">+34 944 123 456</field>
|
||||
</record>
|
||||
|
||||
<record id="group_lamiakada" model="res.partner">
|
||||
<field name="name">Lamiakada Kontsumoko Taldea</field>
|
||||
<field name="is_group" eval="True" />
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="street">Lamia Plaza 5</field>
|
||||
<field name="city">Donostia</field>
|
||||
<field name="zip">20004</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">info@lamiakada.eus</field>
|
||||
<field name="phone">+34 943 234 567</field>
|
||||
</record>
|
||||
|
||||
<record id="group_ekoauzolan" model="res.partner">
|
||||
<field name="name">Eko Auzolan</field>
|
||||
<field name="is_group" eval="True" />
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="street">Arrasate Bidea 22</field>
|
||||
<field name="city">Gasteiz</field>
|
||||
<field name="zip">01008</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">kontaktua@ekoauzolan.eus</field>
|
||||
<field name="phone">+34 945 345 678</field>
|
||||
</record>
|
||||
|
||||
<!-- ============================================ -->
|
||||
<!-- Consumer Group Members (Miembros) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<!-- Miembros de Garaialde -->
|
||||
<record id="member_ane_garcia" model="res.partner">
|
||||
<field name="name">Ane García Etxebarria</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Autonomia Kalea 15, 3A</field>
|
||||
<field name="city">Bilbao</field>
|
||||
<field name="zip">48012</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">ane.garcia@example.com</field>
|
||||
<field name="phone">+34 666 111 222</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_garaialde')])]" />
|
||||
</record>
|
||||
|
||||
<record id="member_mikel_lopez" model="res.partner">
|
||||
<field name="name">Mikel Lopez Zubizarreta</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Elcano Kalea 8, 2B</field>
|
||||
<field name="city">Bilbao</field>
|
||||
<field name="zip">48012</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">mikel.lopez@example.com</field>
|
||||
<field name="phone">+34 666 222 333</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_garaialde')])]" />
|
||||
</record>
|
||||
|
||||
<record id="member_leire_martinez" model="res.partner">
|
||||
<field name="name">Leire Martínez Galdos</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Uribitarte Kalea 5, 4D</field>
|
||||
<field name="city">Bilbao</field>
|
||||
<field name="zip">48001</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">leire.martinez@example.com</field>
|
||||
<field name="phone">+34 666 333 444</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_garaialde')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Miembros de Lamiakada -->
|
||||
<record id="member_jon_fernandez" model="res.partner">
|
||||
<field name="name">Jon Fernández Iraola</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Zurriola Hiribidea 12, 1A</field>
|
||||
<field name="city">Donostia</field>
|
||||
<field name="zip">20002</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">jon.fernandez@example.com</field>
|
||||
<field name="phone">+34 677 111 222</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_lamiakada')])]" />
|
||||
</record>
|
||||
|
||||
<record id="member_amaia_mendez" model="res.partner">
|
||||
<field name="name">Amaia Méndez Etxeberria</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Ategorrieta Kalea 33, 5C</field>
|
||||
<field name="city">Donostia</field>
|
||||
<field name="zip">20013</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">amaia.mendez@example.com</field>
|
||||
<field name="phone">+34 677 222 333</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_lamiakada')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Miembros de Eko Auzolan -->
|
||||
<record id="member_unai_sanchez" model="res.partner">
|
||||
<field name="name">Unai Sánchez Alonso</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Portal de Castilla 18, 2A</field>
|
||||
<field name="city">Gasteiz</field>
|
||||
<field name="zip">01007</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">unai.sanchez@example.com</field>
|
||||
<field name="phone">+34 688 111 222</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_ekoauzolan')])]" />
|
||||
</record>
|
||||
|
||||
<record id="member_ainhoa_rodriguez" model="res.partner">
|
||||
<field name="name">Ainhoa Rodríguez Pérez</field>
|
||||
<field name="is_company" eval="False" />
|
||||
<field name="street">Florida Kalea 7, 1B</field>
|
||||
<field name="city">Gasteiz</field>
|
||||
<field name="zip">01005</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">ainhoa.rodriguez@example.com</field>
|
||||
<field name="phone">+34 688 222 333</field>
|
||||
<field name="member_ids" eval="[(6, 0, [ref('group_ekoauzolan')])]" />
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
85
website_sale_aplicoop/demo/res_partner_suppliers_demo.xml
Normal file
85
website_sale_aplicoop/demo/res_partner_suppliers_demo.xml
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- ============================================ -->
|
||||
<!-- Suppliers (Proveedores) -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<record id="supplier_baserritarra" model="res.partner">
|
||||
<field name="name">Baserritarra SL</field>
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="supplier_rank" eval="10" />
|
||||
<field name="street">Basarte Baserria s/n</field>
|
||||
<field name="city">Zestoa</field>
|
||||
<field name="zip">20740</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">pedidos@baserritarra.eus</field>
|
||||
<field name="phone">+34 943 147 258</field>
|
||||
<field name="comment">Proveedor de productos frescos locales y de temporada</field>
|
||||
</record>
|
||||
|
||||
<record id="supplier_biozikloa" model="res.partner">
|
||||
<field name="name">Bio Zikloa Kooperatiba</field>
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="supplier_rank" eval="10" />
|
||||
<field name="street">Errekalde Industrialdea 15</field>
|
||||
<field name="city">Irun</field>
|
||||
<field name="zip">20304</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">info@biozikloa.eus</field>
|
||||
<field name="phone">+34 943 625 789</field>
|
||||
<field name="comment">Productos ecológicos certificados</field>
|
||||
</record>
|
||||
|
||||
<record id="supplier_artizarra" model="res.partner">
|
||||
<field name="name">Artizarra Esnea</field>
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="supplier_rank" eval="10" />
|
||||
<field name="street">Aralar Etorbidea 33</field>
|
||||
<field name="city">Tolosa</field>
|
||||
<field name="zip">20400</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">pedidos@artizarra.com</field>
|
||||
<field name="phone">+34 943 654 321</field>
|
||||
<field name="comment">Lácteos artesanales del País Vasco</field>
|
||||
</record>
|
||||
|
||||
<record id="supplier_hiruki" model="res.partner">
|
||||
<field name="name">Hiruki Kontserbak</field>
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="supplier_rank" eval="10" />
|
||||
<field name="street">Industrialdea 8</field>
|
||||
<field name="city">Gernika</field>
|
||||
<field name="zip">48300</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">ventas@hiruki.eus</field>
|
||||
<field name="phone">+34 946 257 412</field>
|
||||
<field name="comment">Conservas y productos elaborados artesanales</field>
|
||||
</record>
|
||||
|
||||
<record id="supplier_ekotalde" model="res.partner">
|
||||
<field name="name">Ekotalde Barazkiak</field>
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="supplier_rank" eval="10" />
|
||||
<field name="street">Merkataritza Plaza 2</field>
|
||||
<field name="city">Durango</field>
|
||||
<field name="zip">48200</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">info@ekotalde.eus</field>
|
||||
<field name="phone">+34 946 234 789</field>
|
||||
<field name="comment">Verduras eco de km 0</field>
|
||||
</record>
|
||||
|
||||
<record id="supplier_okindegia" model="res.partner">
|
||||
<field name="name">Auzoko Okindegia</field>
|
||||
<field name="is_company" eval="True" />
|
||||
<field name="supplier_rank" eval="10" />
|
||||
<field name="street">Elcano Kalea 44</field>
|
||||
<field name="city">Bilbao</field>
|
||||
<field name="zip">48008</field>
|
||||
<field name="country_id" ref="base.es" />
|
||||
<field name="email">okindegia@auzokookindegia.eus</field>
|
||||
<field name="phone">+34 944 789 123</field>
|
||||
<field name="comment">Pan artesano y repostería tradicional vasca</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
265
website_sale_aplicoop/demo/sale_order_demo.xml
Normal file
265
website_sale_aplicoop/demo/sale_order_demo.xml
Normal file
|
|
@ -0,0 +1,265 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- ============================================ -->
|
||||
<!-- Sale Orders (Pedidos de Venta) -->
|
||||
<!-- Asociados a Group Orders -->
|
||||
<!-- ============================================ -->
|
||||
|
||||
<!-- Pedido de Ane García (Garaialde - Semanal) -->
|
||||
<record id="sale_order_ane_garcia_weekly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_ane_garcia" />
|
||||
<field name="group_order_id" ref="group_order_garaialde_weekly" />
|
||||
<field name="pickup_day">4</field>
|
||||
<!-- Friday -->
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=2)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="state">sale</field>
|
||||
<field name="date_order" eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_garcia_weekly_1" />
|
||||
<field name="product_id" ref="product_manzana_ecologica" />
|
||||
<field name="product_uom_qty">2.5</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">2.50</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_1_2" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_garcia_weekly_1" />
|
||||
<field name="product_id" ref="product_tomate_ecologico" />
|
||||
<field name="product_uom_qty">1.5</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">3.50</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_1_3" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_garcia_weekly_1" />
|
||||
<field name="product_id" ref="product_leche_entera" />
|
||||
<field name="product_uom_qty">4.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_litre" />
|
||||
<field name="price_unit">1.80</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_1_4" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_garcia_weekly_1" />
|
||||
<field name="product_id" ref="product_pan_integral" />
|
||||
<field name="product_uom_qty">1.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">3.50</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido de Mikel Lopez (Garaialde - Semanal) con envío a domicilio -->
|
||||
<record id="sale_order_mikel_lopez_weekly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_mikel_lopez" />
|
||||
<field name="group_order_id" ref="group_order_garaialde_weekly" />
|
||||
<field name="pickup_day">4</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=2)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="state">sale</field>
|
||||
<field name="date_order" eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_mikel_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_mikel_lopez_weekly_1" />
|
||||
<field name="product_id" ref="product_lechuga_km0" />
|
||||
<field name="product_uom_qty">2.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">1.50</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_mikel_1_2" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_mikel_lopez_weekly_1" />
|
||||
<field name="product_id" ref="product_yogur_natural" />
|
||||
<field name="product_uom_qty">3.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">3.20</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_mikel_1_3" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_mikel_lopez_weekly_1" />
|
||||
<field name="product_id" ref="product_home_delivery_service" />
|
||||
<field name="product_uom_qty">1.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">5.00</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido de Leire Martínez (Garaialde - Semanal) -->
|
||||
<record id="sale_order_leire_martinez_weekly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_leire_martinez" />
|
||||
<field name="group_order_id" ref="group_order_garaialde_weekly" />
|
||||
<field name="pickup_day">4</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=2)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="state">draft</field>
|
||||
<field name="date_order" eval="DateTime.today().strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_leire_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_leire_martinez_weekly_1" />
|
||||
<field name="product_id" ref="product_naranja_valenciana" />
|
||||
<field name="product_uom_qty">3.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">2.80</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_leire_1_2" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_leire_martinez_weekly_1" />
|
||||
<field name="product_id" ref="product_queso_idiazabal" />
|
||||
<field name="product_uom_qty">0.5</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">25.00</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido de Jon Fernández (Lamiakada - Quincenal) -->
|
||||
<record id="sale_order_jon_fernandez_biweekly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_jon_fernandez" />
|
||||
<field name="group_order_id" ref="group_order_lamiakada_biweekly" />
|
||||
<field name="pickup_day">5</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=3)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="state">sale</field>
|
||||
<field name="date_order" eval="(DateTime.today() - timedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_jon_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_jon_fernandez_biweekly_1" />
|
||||
<field name="product_id" ref="product_bonito_conserva" />
|
||||
<field name="product_uom_qty">3.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">12.50</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_jon_1_2" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_jon_fernandez_biweekly_1" />
|
||||
<field name="product_id" ref="product_pimientos_piquillo" />
|
||||
<field name="product_uom_qty">2.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">5.80</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_jon_1_3" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_jon_fernandez_biweekly_1" />
|
||||
<field name="product_id" ref="product_platano_canarias" />
|
||||
<field name="product_uom_qty">2.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">3.20</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido de Amaia Méndez (Lamiakada - Quincenal) -->
|
||||
<record id="sale_order_amaia_mendez_biweekly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_amaia_mendez" />
|
||||
<field name="group_order_id" ref="group_order_lamiakada_biweekly" />
|
||||
<field name="pickup_day">5</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=3)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="state">draft</field>
|
||||
<field name="date_order" eval="DateTime.today().strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_amaia_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_amaia_mendez_biweekly_1" />
|
||||
<field name="product_id" ref="product_naranja_valenciana" />
|
||||
<field name="product_uom_qty">5.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">2.80</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido de Unai Sánchez (Eko Auzolan - Mensual) con delivery -->
|
||||
<record id="sale_order_unai_sanchez_monthly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_unai_sanchez" />
|
||||
<field name="group_order_id" ref="group_order_ekoauzolan_monthly" />
|
||||
<field name="pickup_day">0</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="True" />
|
||||
<field name="state">sale</field>
|
||||
<field name="date_order" eval="(DateTime.today() - timedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_unai_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_unai_sanchez_monthly_1" />
|
||||
<field name="product_id" ref="product_queso_idiazabal" />
|
||||
<field name="product_uom_qty">1.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">25.00</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_unai_1_2" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_unai_sanchez_monthly_1" />
|
||||
<field name="product_id" ref="product_bonito_conserva" />
|
||||
<field name="product_uom_qty">6.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">12.50</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_unai_1_3" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_unai_sanchez_monthly_1" />
|
||||
<field name="product_id" ref="product_home_delivery_service" />
|
||||
<field name="product_uom_qty">1.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">5.00</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido de Ainhoa Rodríguez (Eko Auzolan - Mensual) -->
|
||||
<record id="sale_order_ainhoa_rodriguez_monthly_1" model="sale.order">
|
||||
<field name="partner_id" ref="member_ainhoa_rodriguez" />
|
||||
<field name="group_order_id" ref="group_order_ekoauzolan_monthly" />
|
||||
<field name="pickup_day">0</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="state">draft</field>
|
||||
<field name="date_order" eval="DateTime.today().strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ainhoa_1_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ainhoa_rodriguez_monthly_1" />
|
||||
<field name="product_id" ref="product_pimientos_piquillo" />
|
||||
<field name="product_uom_qty">4.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">5.80</field>
|
||||
</record>
|
||||
|
||||
<!-- Pedido especial de temporada (Ane - Multi-grupo) -->
|
||||
<record id="sale_order_ane_seasonal_special" model="sale.order">
|
||||
<field name="partner_id" ref="member_ane_garcia" />
|
||||
<field name="group_order_id" ref="group_order_special_seasonal" />
|
||||
<field name="pickup_day">5</field>
|
||||
<field name="pickup_date" eval="(DateTime.today() + timedelta(days=12)).strftime('%Y-%m-%d')" />
|
||||
<field name="home_delivery" eval="False" />
|
||||
<field name="state">draft</field>
|
||||
<field name="date_order" eval="DateTime.today().strftime('%Y-%m-%d %H:%M:%S')" />
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_seasonal_1" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_seasonal_special" />
|
||||
<field name="product_id" ref="product_tomate_ecologico" />
|
||||
<field name="product_uom_qty">5.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">3.50</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_seasonal_2" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_seasonal_special" />
|
||||
<field name="product_id" ref="product_pimiento_verde" />
|
||||
<field name="product_uom_qty">2.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_kgm" />
|
||||
<field name="price_unit">4.20</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_ane_seasonal_3" model="sale.order.line">
|
||||
<field name="order_id" ref="sale_order_ane_seasonal_special" />
|
||||
<field name="product_id" ref="product_lechuga_km0" />
|
||||
<field name="product_uom_qty">3.0</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit" />
|
||||
<field name="price_unit">1.50</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -1,12 +1,10 @@
|
|||
# Copyright 2025 Criptomart
|
||||
# Copyright 2025 - Today Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
||||
|
||||
from odoo import api
|
||||
from odoo import fields
|
||||
from odoo import models
|
||||
|
||||
# Note: translation function _ is not used in this module (removed to satisfy flake8)
|
||||
|
||||
|
||||
class ProductProduct(models.Model):
|
||||
_inherit = "product.product"
|
||||
|
|
|
|||
|
|
@ -20,9 +20,22 @@
|
|||
var page = checkoutPage || shopPage;
|
||||
|
||||
if (page) {
|
||||
this.deliveryProductId = page.getAttribute("data-delivery-product-id");
|
||||
var deliveryProductIdStr = page.getAttribute("data-delivery-product-id");
|
||||
// Parse to integer, filter out None/empty/invalid values
|
||||
if (
|
||||
deliveryProductIdStr &&
|
||||
deliveryProductIdStr !== "None" &&
|
||||
deliveryProductIdStr !== ""
|
||||
) {
|
||||
this.deliveryProductId = parseInt(deliveryProductIdStr, 10);
|
||||
if (isNaN(this.deliveryProductId)) {
|
||||
this.deliveryProductId = null;
|
||||
}
|
||||
}
|
||||
console.log(
|
||||
"[HomeDelivery] deliveryProductId from attribute:",
|
||||
deliveryProductIdStr,
|
||||
"-> parsed:",
|
||||
this.deliveryProductId,
|
||||
"type:",
|
||||
typeof this.deliveryProductId
|
||||
|
|
@ -55,16 +68,26 @@
|
|||
}
|
||||
}
|
||||
|
||||
// Get order ID from confirm button
|
||||
// Get order ID from multiple possible sources
|
||||
var confirmBtn = document.getElementById("confirm-order-btn");
|
||||
if (confirmBtn) {
|
||||
this.orderId = confirmBtn.getAttribute("data-order-id");
|
||||
console.log("[HomeDelivery] orderId from button:", this.orderId);
|
||||
var cartContainer = document.getElementById("cart-items-container");
|
||||
var orderIdElement = confirmBtn || cartContainer;
|
||||
|
||||
if (orderIdElement) {
|
||||
this.orderId = orderIdElement.getAttribute("data-order-id");
|
||||
}
|
||||
|
||||
var checkbox = document.getElementById("home-delivery-checkbox");
|
||||
if (!checkbox) return;
|
||||
// If still not found, try to extract from URL
|
||||
if (!this.orderId) {
|
||||
var urlMatch = window.location.pathname.match(/\/eskaera\/(\d+)/);
|
||||
this.orderId = urlMatch ? urlMatch[1] : null;
|
||||
}
|
||||
|
||||
console.log("[HomeDelivery] orderId resolved:", this.orderId);
|
||||
|
||||
// Handle checkbox (only exists on checkout page)
|
||||
var checkbox = document.getElementById("home-delivery-checkbox");
|
||||
if (checkbox) {
|
||||
var self = this;
|
||||
checkbox.addEventListener("change", function () {
|
||||
if (this.checked) {
|
||||
|
|
@ -78,9 +101,16 @@
|
|||
|
||||
// Check if delivery product is already in cart on page load
|
||||
this.checkDeliveryInCart();
|
||||
}
|
||||
|
||||
// Vincular botón Home Delivery en el shop (cart header)
|
||||
// Vincular botón Home Delivery en el shop SOLO si hay un producto de delivery válido
|
||||
if (this.deliveryProductId && this.homeDeliveryEnabled) {
|
||||
this.bindShopHomeDeliveryButton();
|
||||
} else {
|
||||
console.log(
|
||||
"[HomeDelivery] Shop button NOT bound - no delivery product or disabled"
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
bindShopHomeDeliveryButton: function () {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue