Files
odoo-addons/addons/laundry_management/data/laundry_data.xml

350 lines
18 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<!-- ═══════════════════════════════════════════════════════════════
SETTLEMENT PRODUCT — used for collecting outstanding laundry dues.
Service type, no tax, NOT a laundry service (no laundry.order created).
The income account override happens in pos.order.line Python code
to use the partner's receivable account → no revenue recognised.
═══════════════════════════════════════════════════════════════ -->
<record id="product_laundry_settlement" model="product.product">
<field name="name">Laundry Settlement</field>
<field name="type">service</field>
<field name="lst_price">0.00</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="available_in_pos">True</field>
<field name="is_laundry_settlement">True</field>
<field name="is_laundry_service">False</field>
<field name="taxes_id" eval="[(5, 0, 0)]"/>
<field name="description_sale">Settlement of outstanding laundry dues.</field>
</record>
<!-- ═══════════════════════════════════════════════════════════════
PRODUCT CATEGORIES (Laundry Services tree)
═══════════════════════════════════════════════════════════════ -->
<record id="product_categ_laundry_root" model="product.category">
<field name="name">Laundry Services</field>
</record>
<record id="product_categ_washing" model="product.category">
<field name="name">Washing</field>
<field name="parent_id" ref="product_categ_laundry_root"/>
</record>
<record id="product_categ_dry_cleaning" model="product.category">
<field name="name">Dry Cleaning</field>
<field name="parent_id" ref="product_categ_laundry_root"/>
</record>
<record id="product_categ_ironing" model="product.category">
<field name="name">Ironing &amp; Pressing</field>
<field name="parent_id" ref="product_categ_laundry_root"/>
</record>
<record id="product_categ_special_care" model="product.category">
<field name="name">Special Care</field>
<field name="parent_id" ref="product_categ_laundry_root"/>
</record>
<record id="product_categ_express" model="product.category">
<field name="name">Express Service</field>
<field name="parent_id" ref="product_categ_laundry_root"/>
</record>
<!-- ═══════════════════════════════════════════════════════════════
LAUNDRY SERVICE PRODUCTS — WASHING
Using product.product so XML IDs are directly referenceable.
Template fields (name, categ_id, type, lst_price) are set via
product.product's delegation inheritance to product.template.
═══════════════════════════════════════════════════════════════ -->
<record id="svc_wash_shirt" model="product.product">
<field name="name">Shirt — Wash &amp; Iron</field>
<field name="type">service</field>
<field name="lst_price">5.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Standard wash and press for dress shirts and casual shirts.</field>
</record>
<record id="svc_wash_trousers" model="product.product">
<field name="name">Trousers — Wash &amp; Iron</field>
<field name="type">service</field>
<field name="lst_price">6.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_wash_tshirt" model="product.product">
<field name="name">T-Shirt / Polo — Wash</field>
<field name="type">service</field>
<field name="lst_price">4.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_wash_jeans" model="product.product">
<field name="name">Jeans — Wash</field>
<field name="type">service</field>
<field name="lst_price">7.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_wash_abaya" model="product.product">
<field name="name">Abaya — Wash &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">10.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_wash_thobe" model="product.product">
<field name="name">Thobe / Dishdasha — Wash &amp; Iron</field>
<field name="type">service</field>
<field name="lst_price">9.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_wash_blanket" model="product.product">
<field name="name">Blanket / Duvet — Wash</field>
<field name="type">service</field>
<field name="lst_price">18.00</field>
<field name="categ_id" ref="product_categ_washing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<!-- ═══════════════════════════════════════════════════════════════
LAUNDRY SERVICE PRODUCTS — DRY CLEANING
═══════════════════════════════════════════════════════════════ -->
<record id="svc_dc_suit" model="product.product">
<field name="name">Suit (2-Piece) — Dry Clean</field>
<field name="type">service</field>
<field name="lst_price">25.00</field>
<field name="categ_id" ref="product_categ_dry_cleaning"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Full dry cleaning for 2-piece suits.</field>
</record>
<record id="svc_dc_jacket" model="product.product">
<field name="name">Jacket / Blazer — Dry Clean</field>
<field name="type">service</field>
<field name="lst_price">15.00</field>
<field name="categ_id" ref="product_categ_dry_cleaning"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_dc_dress" model="product.product">
<field name="name">Dress / Gown — Dry Clean</field>
<field name="type">service</field>
<field name="lst_price">20.00</field>
<field name="categ_id" ref="product_categ_dry_cleaning"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_dc_abaya" model="product.product">
<field name="name">Abaya — Dry Clean &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">18.00</field>
<field name="categ_id" ref="product_categ_dry_cleaning"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_dc_thobe" model="product.product">
<field name="name">Thobe / Dishdasha — Dry Clean</field>
<field name="type">service</field>
<field name="lst_price">16.00</field>
<field name="categ_id" ref="product_categ_dry_cleaning"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_dc_wedding_dress" model="product.product">
<field name="name">Wedding Dress — Dry Clean &amp; Preserve</field>
<field name="type">service</field>
<field name="lst_price">60.00</field>
<field name="categ_id" ref="product_categ_dry_cleaning"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Premium dry cleaning and preservation for wedding dresses.</field>
</record>
<!-- ═══════════════════════════════════════════════════════════════
LAUNDRY SERVICE PRODUCTS — IRONING & PRESSING
═══════════════════════════════════════════════════════════════ -->
<record id="svc_iron_shirt" model="product.product">
<field name="name">Shirt — Iron &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">3.00</field>
<field name="categ_id" ref="product_categ_ironing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_iron_trousers" model="product.product">
<field name="name">Trousers — Iron &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">4.00</field>
<field name="categ_id" ref="product_categ_ironing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_iron_thobe" model="product.product">
<field name="name">Thobe / Dishdasha — Iron &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">5.00</field>
<field name="categ_id" ref="product_categ_ironing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_iron_suit" model="product.product">
<field name="name">Suit — Iron &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">8.00</field>
<field name="categ_id" ref="product_categ_ironing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_iron_dress" model="product.product">
<field name="name">Dress / Gown — Iron &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">7.00</field>
<field name="categ_id" ref="product_categ_ironing"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<!-- ═══════════════════════════════════════════════════════════════
LAUNDRY SERVICE PRODUCTS — SPECIAL CARE
═══════════════════════════════════════════════════════════════ -->
<record id="svc_special_carpet" model="product.product">
<field name="name">Carpet / Rug — Deep Clean</field>
<field name="type">service</field>
<field name="lst_price">35.00</field>
<field name="categ_id" ref="product_categ_special_care"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Deep steam cleaning for carpets and rugs.</field>
</record>
<record id="svc_special_curtain" model="product.product">
<field name="name">Curtain — Wash &amp; Press</field>
<field name="type">service</field>
<field name="lst_price">25.00</field>
<field name="categ_id" ref="product_categ_special_care"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_special_leather" model="product.product">
<field name="name">Leather Jacket — Clean &amp; Condition</field>
<field name="type">service</field>
<field name="lst_price">40.00</field>
<field name="categ_id" ref="product_categ_special_care"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
</record>
<record id="svc_special_stain" model="product.product">
<field name="name">Stain Treatment (per item)</field>
<field name="type">service</field>
<field name="lst_price">12.00</field>
<field name="categ_id" ref="product_categ_special_care"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Targeted stain removal treatment applied before washing.</field>
</record>
<!-- ═══════════════════════════════════════════════════════════════
LAUNDRY SERVICE PRODUCTS — EXPRESS SERVICE
═══════════════════════════════════════════════════════════════ -->
<record id="svc_express_4hr" model="product.product">
<field name="name">Express Turnaround (4-Hour)</field>
<field name="type">service</field>
<field name="lst_price">10.00</field>
<field name="categ_id" ref="product_categ_express"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Priority processing — ready within 4 hours.</field>
</record>
<record id="svc_express_sameday" model="product.product">
<field name="name">Same-Day Delivery Surcharge</field>
<field name="type">service</field>
<field name="lst_price">8.00</field>
<field name="categ_id" ref="product_categ_express"/>
<field name="is_laundry_service">True</field>
<field name="sale_ok">True</field>
<field name="purchase_ok">False</field>
<field name="description_sale">Add-on fee for same-day home delivery.</field>
</record>
<!-- ═══════════════════════════════════════════════════════════════
POLISHED EXAMPLE — Service Speed variant.
Demonstrates the cleanest workflow: ONE template, two timing
variants (Normal / Express). Cashier picks variant in POS.
Uses native product.attribute machinery.
═══════════════════════════════════════════════════════════════ -->
<record id="lm_attr_service_speed" model="product.attribute">
<field name="name">Service Speed</field>
<field name="display_type">radio</field>
<field name="create_variant">always</field>
</record>
<record id="lm_attr_speed_normal" model="product.attribute.value">
<field name="name">Normal</field>
<field name="attribute_id" ref="lm_attr_service_speed"/>
<field name="sequence">1</field>
<field name="default_extra_price">0.00</field>
</record>
<record id="lm_attr_speed_express" model="product.attribute.value">
<field name="name">Express</field>
<field name="attribute_id" ref="lm_attr_service_speed"/>
<field name="sequence">2</field>
<field name="default_extra_price">3.00</field>
</record>
<!-- Demo product removed; canonical catalog lives in
data/service_catalog_data.xml (Abaya / Thobe / T-Shirt). -->
</odoo>