Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions beverage_distributor/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
'demo/crm_lead.xml',
'demo/product_template.xml',
'demo/product_supplierinfo.xml',
'demo/stock_quant.xml',
'demo/sale_order.xml',
'demo/sale_order_line.xml',
'demo/sale_order_confirm.xml',
Expand All @@ -63,9 +64,6 @@
'demo/purchase_order.xml',
'demo/purchase_order_line.xml',
'demo/purchase_order_confirm.xml',
'demo/validate_deliveries.xml',
'demo/validate_receipts.xml',
'demo/stock_quant.xml',
'demo/mail_activity.xml',
'demo/delivery_carrier.xml',
'demo/payment_provider_demo_post.xml',
Expand Down
124 changes: 66 additions & 58 deletions beverage_distributor/data/knowledge_article.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,64 +46,72 @@
</li>
<li>You can also collect deposit directly on your Point of Sale. Select the correct product and encode a negative quantity.</li>
</ul><p><br/></p>
<h3>Excise Management 🧾</h3>
<p>In case you import or purchase products for which excises need to be recorded, you can handle it with this package.</p>
<p>Excise management consists in two dimensions in this package:</p>
<ul>
<li>The maintenance of excise categories and the assignation of excises to products</li>
<li>The reporting of received and delivered excise concerned products, a legal implication for any fiscal deposit</li>
</ul>
<div class="o_editor_banner lh-1 d-flex align-items-center alert alert-warning pb-0 pt-3 o-contenteditable-false" data-oe-protected="true" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Warning" aria-label="Banner Warning">⚠️</i>
<div class="w-100 px-3 o_editor_banner_content o-contenteditable-true" data-oe-protected="false" contenteditable="true">
<p>When installing this module, all Fiscal Positions are set as Fiscal Deposit.<br/>Adjust the Fiscal Positions which are not to consider the Excise Taxes in your orders.</p>
</div>
</div>
<p><strong>Excise categories maintenance</strong></p>
<p>From the <strong>Inventory app</strong>, open the Excise categories from the menu Configuration / Excise Categories. <br/>Here you can define new and maintain existing excise categories.</p>
<p>Imagine you create a new category of products which need excise management...</p>
<ul>
<li>Create a new excise category defining its name, description and reporting unit following the legislation which applies.</li>
</ul>
<p>Then create your product: </p>
<ul>
<li>Define the required product fields. </li>
<li>Assign the relevant excise category, input the Excise Amount and the Excise Quantity in the reporting unit and then save your product.</li>
</ul>
<div class="o_editor_banner user-select-none lh-1 d-flex align-items-center alert alert-info pb-0 pt-3 o-contenteditable-false" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Info" aria-label="Banner Info">💡</i>
<div class="w-100 px-3 o_editor_banner_content o-contenteditable-true" contenteditable="true">
<p>When you sell this product, the excise is accounted separately in a tax and summarised at the end of your sale orders, allowing you to offer clear discounts on your product irrespectively of the excise.</p>
</div>
</div>
<p><strong>Excise reporting</strong></p>
<p>On a regular basis, excises need to be declared. To support you with this duty, a report is setup to reach the quantity by excise category entering and exiting your fiscal deposit warehouse.</p>
<ul>
<li>
<p>Open the <strong>Inventory app</strong> and reach from the Reporting menu the Excises.</p>
<ul>
<li>Entry from FD corresponds to products entering you fiscal deposit warehouse from the fiscal deposit of a supplier. To define such suppliers, adapt their fiscal position to handle excise tax.</li>
<li>Exit to FD refers to products exiting your fiscal deposit warehouse to the fiscal deposit of a customer. To define such customers, adapt their fiscal position to handle excise tax.</li>
<li>Exit means that products exited your fiscal deposit, to another warehouse of your or through a delivery to a customer without fiscal deposit warehouse.</li>
<li>Entry is here in case you purchase products or are returned products not from a fiscal deposit warehouse. In such case, you ask for excise credits with your excise declaration.</li>
<li>Transfer is here to handle the transfers between multiple fiscal deposit warehouses of yours.</li>
</ul>
</li>
</ul>
<div class="o_editor_banner user-select-none o-contenteditable-false lh-1 d-flex align-items-center alert alert-warning pb-0 pt-3" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Warning" aria-label="Banner Warning">⚠️</i>
<div class="o_editor_banner_content o-contenteditable-true w-100 px-3" contenteditable="true">
<p>Receipts and Deliveries from and to Partners having no Fiscal Position defined are handled with the product taxes.</p>
</div>
</div>
<p>Remember that only stock moves to or from your fiscal deposit warehouses are reported here.<br/>This is normal not to see any move related to a sale from a front store warehouse since it is not a fiscal deposit for example.</p>
<p>You now have the keys to easily report those to the relevant authorities!</p>
<div class="o_editor_banner user-select-none o-contenteditable-false lh-1 d-flex align-items-center alert alert-info pb-0 pt-3" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Info" aria-label="Banner Info">💡</i>
<div class="o_editor_banner_content o-contenteditable-true w-100 px-3" contenteditable="true">
<p>The default breakdown is done by week and you can configure it to be by month if needed.</p>
</div>
</div>
<h3>Excise Management 🧾</h3>
<p>In case you import or purchase products for which excises need to be recorded, you can handle it with this package.</p>
<p>Excise management consists in two dimensions in this package:</p>
<ul>
<li>The maintenance of excise categories and the assignation of excises to products</li>
<li>The reporting of received and delivered excise concerned products, a legal implication for any fiscal deposit</li>
</ul>
<div class="o_editor_banner lh-1 d-flex align-items-center alert alert-warning pb-0 pt-3 o-contenteditable-false" data-oe-protected="true" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Warning" aria-label="Banner Warning">⚠️</i>
<div class="w-100 px-3 o_editor_banner_content o-contenteditable-true" data-oe-protected="false" contenteditable="true">
<p>When installing this module, all Fiscal Positions are set as Fiscal Deposit.<br/>Adjust the Fiscal Positions which are not to consider the Excise Taxes in your orders.</p>
</div>
</div>
<p><strong>Excise categories maintenance</strong></p>
<p>From the <strong>Inventory app</strong>, open the Excise categories from the menu Configuration / Excise Categories. <br/>Here you can define new and maintain existing excise categories.</p>
<p>Imagine you create a new category of products which need excise management...</p>
<ul>
<li>Create a new excise category defining its name, description and reporting unit following the legislation which applies.</li>
</ul>
<p>Then create your product: </p>
<ul>
<li>Define the required product fields. </li>
<li>Assign the relevant excise category, input the Excise Amount and the Excise Quantity in the reporting unit and then save your product.</li>
</ul>
<div class="o_editor_banner user-select-none lh-1 d-flex align-items-center alert alert-info pb-0 pt-3 o-contenteditable-false" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Info" aria-label="Banner Info">💡</i>
<div class="w-100 px-3 o_editor_banner_content o-contenteditable-true" contenteditable="true">
<p>When you sell this product, the excise is accounted separately in a tax and summarised at the end of your sale orders, allowing you to offer clear discounts on your product irrespectively of the excise.</p>
</div>
</div>
<p><strong>Excise reports</strong></p>
<p>On a regular basis, excises need to be declared. To support you with this duty, a report generated weekly provides the quantity by excise category entering and exiting your fiscal deposit warehouse with a dedicated activity for it.</p>
<div class="o_editor_banner user-select-none o-contenteditable-false lh-1 d-flex align-items-center alert alert-info pb-0 pt-3" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Info" aria-label="Banner Info">💡</i>
<div class="o_editor_banner_content o-contenteditable-true w-100 px-3" contenteditable="true">
<p>The assignee of the excise reporting activities can be set from the Inventory settings.</p>
</div>
</div>
<ul>
<li>
<p>Open the <strong>Inventory app</strong> and reach the Excise Reports from the Reporting menu.</p>
<ul>
<li>Entry from FD corresponds to products entering you fiscal deposit warehouse from the fiscal deposit of a supplier. To define such suppliers, adapt their fiscal position to handle excise tax.</li>
<li>Exit to FD refers to products exiting your fiscal deposit warehouse to the fiscal deposit of a customer. To define such customers, adapt their fiscal position to handle excise tax.</li>
<li>Exit means that products exited your fiscal deposit, to another warehouse of your or through a delivery to a customer without fiscal deposit warehouse.</li>
<li>Entry is here in case you purchase products or are returned products not from a fiscal deposit warehouse. In such case, you ask for excise credits with your excise declaration.</li>
<li>Transfer is here to handle the transfers between multiple fiscal deposit warehouses of yours.</li>
</ul>
</li>
</ul>
<div class="o_editor_banner user-select-none o-contenteditable-false lh-1 d-flex align-items-center alert alert-warning pb-0 pt-3" data-oe-role="status" contenteditable="false" role="status">
<i class="o_editor_banner_icon mb-3 fst-normal" data-oe-aria-label="Banner Warning" aria-label="Banner Warning">⚠️</i>
<div class="o_editor_banner_content o-contenteditable-true w-100 px-3" contenteditable="true">
<p>Receipts and Deliveries from and to Partners having no Fiscal Position defined are handled with the product taxes.</p>
</div>
</div>
<p>Remember that only stock moves to or from your fiscal deposit warehouses are reported here.</p>
<p>This is normal not to see any move related to a sale from a front store warehouse since it is not a fiscal deposit for example</p>
<p><strong>Excise reporting</strong></p>
<p>On top of the legal reporting, you needs as well to know at all time the quantity of excise submitted products in your fiscal deposit warehouses.</p>
<ul>
<li><p>Open the <strong>Inventory app</strong> and reach the Excise Reports from the Reporting menu.</p></li>
<li><p>Rows come with the same move types detailed as the Excise Reports.</p></li>
<li><p>The Total row allows you to capture your currently in fiscal deposit warehouse product quantity!</p></li>
</ul>
<p>You now have the keys to easily report those to the relevant authorities!</p>
<h3>Sales Management 🍾</h3><p>Use the Sales app to:</p><ul>
<li>Manage your product catalog</li>
<li>Create and track sales orders</li>
Expand Down
8 changes: 8 additions & 0 deletions beverage_distributor/demo/mail_activity.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,12 @@
<field name="res_id" ref="crm_lead_6"/>
<field name="activity_type_id" ref="mail.mail_activity_data_todo"/>
</record>
<record id="mail_activity_4" model="mail.activity">
<field name="res_model_id" ref="excise_management.excise_report"/>
<field name="res_id" ref="excise_report_1"/>
<field name="summary" model="mail.activity" eval="'Excise Report ' + obj().env.ref('beverage_distributor.excise_report_1').x_name"/>
<field name="date_deadline" eval="(datetime.today() + timedelta(weeks=1))"/>
<field name="user_id" ref="base.user_admin"/>
<field name="activity_type_id" ref="mail.mail_activity_data_todo"/>
</record>
</odoo>
16 changes: 14 additions & 2 deletions beverage_distributor/demo/purchase_order_confirm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,23 @@
).picking_ids.ids"/>
<value model="stock.location" eval="{'location_dest_id': obj().search([('display_name', '=', 'FD/Stock')]).id}"/>
</function>

<function name="button_validate" model="stock.picking">
<function name="button_validate" model="stock.picking" context="{'skip_sms': True}">
<value model="stock.picking" eval="(
obj().env.ref('beverage_distributor.purchase_order_4') +
obj().env.ref('beverage_distributor.purchase_order_5') +
obj().env.ref('beverage_distributor.purchase_order_6') +
obj().env.ref('beverage_distributor.purchase_order_7')
).picking_ids.ids"/>
</function>
<function name="write" model="stock.picking">
<value model="stock.picking" eval="(
obj().env.ref('beverage_distributor.purchase_order_4')
).picking_ids.ids"/>
<value eval="{'scheduled_date': (datetime.today().date() + relativedelta(weeks=-1)), 'date_done': (datetime.today().date() + relativedelta(weeks=-1))}" />
</function>
<record id="excise_report_1" model="x_excise_report">
<field name="x_user_id" ref="base.user_admin"/>
<field name="x_from_date" eval="(datetime.today() - timedelta(weeks=1))"/>
<field name="x_to_date" eval="(datetime.today())"/>
</record>
</odoo>
28 changes: 26 additions & 2 deletions beverage_distributor/demo/sale_order_confirm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,39 @@
]]"/>
<function name="write" model="stock.picking">
<value model="stock.picking" eval="(
obj().env.ref('beverage_distributor.sale_order_21') +
obj().env.ref('beverage_distributor.sale_order_22') +
obj().env.ref('beverage_distributor.sale_order_23') +
obj().env.ref('beverage_distributor.sale_order_24') +
obj().env.ref('beverage_distributor.sale_order_25') +
obj().env.ref('beverage_distributor.sale_order_26') +
obj().env.ref('beverage_distributor.sale_order_27') +
obj().env.ref('beverage_distributor.sale_order_28') +
obj().env.ref('beverage_distributor.sale_order_29') +
obj().env.ref('beverage_distributor.sale_order_30')
).picking_ids.ids"/>
<value model="stock.location" eval="{'location_id': obj().search([('warehouse_id', '=', ref('excise_management.stock_warehouse_fiscal_deposit')), ('child_ids', '=', False)], limit=1).id}"/>
</function>
<function name="button_validate" model="stock.picking">
<function name="action_assign" model="stock.picking">
<value model="stock.picking" eval="(
obj().env.ref('beverage_distributor.sale_order_29') +
obj().env.ref('beverage_distributor.sale_order_21') +
obj().env.ref('beverage_distributor.sale_order_25') +
obj().env.ref('beverage_distributor.sale_order_30')
).picking_ids.ids"/>
</function>
<function name="button_validate" model="stock.picking" context="{'skip_sms': True}">
<value model="stock.picking" eval="(
obj().env.ref('beverage_distributor.sale_order_21') +
obj().env.ref('beverage_distributor.sale_order_25') +
obj().env.ref('beverage_distributor.sale_order_30')
).picking_ids.ids"/>
</function>
<function name="write" model="stock.picking">
<value model="stock.picking" eval="(
obj().env.ref('beverage_distributor.sale_order_21') +
obj().env.ref('beverage_distributor.sale_order_25') +
obj().env.ref('beverage_distributor.sale_order_30')
).picking_ids.ids"/>
<value eval="{'scheduled_date': (datetime.today().date() + relativedelta(weeks=-1)), 'date_done': (datetime.today().date() + relativedelta(weeks=-1))}" />
</function>
</odoo>
Loading