From 4f15501a8847a12d6d7e233780cfdd637b5c259e Mon Sep 17 00:00:00 2001 From: AjmalCybro Date: Tue, 20 Aug 2024 14:24:28 +0530 Subject: [PATCH] Aug 20 [UPDT] Updated 'laundry_management_pos' --- laundry_management_pos/__manifest__.py | 6 +- laundry_management_pos/doc/RELEASE_NOTES.md | 6 ++ laundry_management_pos/models/__init__.py | 1 - laundry_management_pos/models/pos_order.py | 70 +++++++++---------- .../static/src/js/screen/payment_screen.js | 25 +++++++ .../static/src/js/screen/product_screen.js | 43 ------------ .../static/src/xml/pos_receipt.xml | 19 ++--- 7 files changed, 80 insertions(+), 90 deletions(-) create mode 100644 laundry_management_pos/static/src/js/screen/payment_screen.js delete mode 100644 laundry_management_pos/static/src/js/screen/product_screen.js diff --git a/laundry_management_pos/__manifest__.py b/laundry_management_pos/__manifest__.py index 39b8c7a1c..efde3b33d 100755 --- a/laundry_management_pos/__manifest__.py +++ b/laundry_management_pos/__manifest__.py @@ -20,7 +20,7 @@ ############################################################################## { 'name': "POS Laundry Management", - 'version': '16.0.1.0.0', + 'version': '16.0.1.0.1', 'category': 'Point of Sale', 'summary': """Launch Automatic Laundry Orders After selling Through POS.""", 'description': """It manages the Point of sale laundry process with assigning works to workers.We can create @@ -50,12 +50,12 @@ 'laundry_management_pos/static/src/xml/pos_receipt.xml', 'laundry_management_pos/static/src/js/product_img.js', 'laundry_management_pos/static/src/xml/product_img.xml', - 'laundry_management_pos/static/src/js/screen/product_screen.js', 'laundry_management_pos/static/src/css/pos.css', 'laundry_management_pos/static/src/xml/button/product_create_button.xml', 'laundry_management_pos/static/src/js/button/product_create_button.js', 'laundry_management_pos/static/src/js/screen/product_create_popup.js', - 'laundry_management_pos/static/src/xml/screen/product_create_popup.xml' + 'laundry_management_pos/static/src/xml/screen/product_create_popup.xml', + 'laundry_management_pos/static/src/js/screen/payment_screen.js', ], }, 'images': ['static/description/banner.png'], diff --git a/laundry_management_pos/doc/RELEASE_NOTES.md b/laundry_management_pos/doc/RELEASE_NOTES.md index 8f1d93a1d..f82ba8692 100755 --- a/laundry_management_pos/doc/RELEASE_NOTES.md +++ b/laundry_management_pos/doc/RELEASE_NOTES.md @@ -4,3 +4,9 @@ #### Version 16.0.1.0.0 #### ADD - Initial commit for POS Laundry Management + +#### 13.08.2024 +#### Version 16.0.1.0.1 +#### UPDT + +- Bug Fix - Addressed the issue that occurred when a partner was not selected for a laundry order. diff --git a/laundry_management_pos/models/__init__.py b/laundry_management_pos/models/__init__.py index 425804bec..206ec6d75 100755 --- a/laundry_management_pos/models/__init__.py +++ b/laundry_management_pos/models/__init__.py @@ -22,4 +22,3 @@ from . import laundry_order from . import pos_config from . import pos_order - diff --git a/laundry_management_pos/models/pos_order.py b/laundry_management_pos/models/pos_order.py index 68d996d60..ac51cc9fd 100755 --- a/laundry_management_pos/models/pos_order.py +++ b/laundry_management_pos/models/pos_order.py @@ -90,44 +90,44 @@ class PosOrder(models.Model): if order: order_id = order[0]['id'] values = self.env['pos.order'].browse(order_id) - values.write({ - 'laundry_order': True, - }) - if values.laundry_order: - values.action_pos_order_invoice() lines = [] - for rec in values.lines: - vals = (0, 0, { - 'product_id': rec.product_id.id, - 'description': rec.full_product_name, - 'qty': rec.qty, + if values.orderline_washing_type and False not in values.lines.mapped('washing_type_id.name'): + values.write({ + 'laundry_order': True, + }) + values.action_pos_order_invoice() + for rec in values.lines: + vals = (0, 0, { + 'product_id': rec.product_id.id, + 'description': rec.full_product_name, + 'qty': rec.qty, + 'state': 'done', + 'tax_ids': [(6, 0, rec.tax_ids.ids)], + 'washing_type': rec.washing_type_id.id, + 'amount': rec.price_subtotal_incl, + }) + lines.append(vals) + laundry_order = self.env['laundry.order'].sudo().create({ + 'order_ref': values.name, + 'pos_order_id': values.id, + 'pos_reference': values.pos_reference, + 'partner_id': values.partner_id.id, + 'partner_invoice_id': values.partner_id.id, + 'partner_shipping_id': values.partner_id.id, + 'laundry_person': values.user_id.id, 'state': 'done', - 'tax_ids': [(6, 0, rec.tax_ids.ids)], - 'washing_type': rec.washing_type_id.id, - 'amount': rec.price_subtotal_incl, + 'order_lines': lines, }) - lines.append(vals) - laundry_order = self.env['laundry.order'].sudo().create({ - 'order_ref': values.name, - 'pos_order_id': values.id, - 'pos_reference': values.pos_reference, - 'partner_id': values.partner_id.id, - 'partner_invoice_id': values.partner_id.id, - 'partner_shipping_id': values.partner_id.id, - 'laundry_person': values.user_id.id, - 'state': 'done', - 'order_lines': lines, - }) - for each in laundry_order: - for obj in each.order_lines: - self.env['washing.washing'].create( - {'name': obj.product_id.name + '-Washing', - 'user_id': obj.washing_type.assigned_person.id, - 'description': obj.description, - 'laundry_obj': obj.id, - 'state': 'done', - 'washing_date': datetime.now().strftime( - '%Y-%m-%d %H:%M:%S')}) + for each in laundry_order: + for obj in each.order_lines: + self.env['washing.washing'].create( + {'name': obj.product_id.name + '-Washing', + 'user_id': obj.washing_type.assigned_person.id, + 'description': obj.description, + 'laundry_obj': obj.id, + 'state': 'done', + 'washing_date': datetime.now().strftime( + '%Y-%m-%d %H:%M:%S')}) return order def _prepare_invoice_lines(self): diff --git a/laundry_management_pos/static/src/js/screen/payment_screen.js b/laundry_management_pos/static/src/js/screen/payment_screen.js new file mode 100644 index 000000000..d8e41f553 --- /dev/null +++ b/laundry_management_pos/static/src/js/screen/payment_screen.js @@ -0,0 +1,25 @@ +/** @odoo-module **/ +import PaymentScreen from 'point_of_sale.PaymentScreen'; +import Registries from 'point_of_sale.Registries'; +export const PosLoyaltyPaymentScreen = (PaymentScreen) => + class extends PaymentScreen { + //@override + async validateOrder(isForceValidate) { + const order = this.currentOrder; + const hasWashingType = order.get_orderlines().some(line => line.washingType); + if (hasWashingType && !order.get_partner()) { + const { confirmed } = await this.showPopup('ConfirmPopup', { + title: this.env._t('Please select the Customer'), + body: this.env._t( + 'You need to select the customer for the order contains laundry products.' + ), + }); + if (confirmed) { + this.selectPartner(); + } + return false + } + await super.validateOrder(...arguments); + } + }; +Registries.Component.extend(PaymentScreen, PosLoyaltyPaymentScreen); diff --git a/laundry_management_pos/static/src/js/screen/product_screen.js b/laundry_management_pos/static/src/js/screen/product_screen.js deleted file mode 100644 index 7809a4b6d..000000000 --- a/laundry_management_pos/static/src/js/screen/product_screen.js +++ /dev/null @@ -1,43 +0,0 @@ -/** @odoo-module **/ - -import ProductScreen from 'point_of_sale.ProductScreen'; -import Registries from 'point_of_sale.Registries'; - -export const PoSSaleBeProductScreen = (ProductScreen) => - class extends ProductScreen { - async onClickPartner() { - // Override to check whether the laundry type already is added - const currentPartner = this.currentOrder.get_partner(); - if (currentPartner && this.currentOrder.getHasRefundLines()) { - this.showPopup('ErrorPopup', { - title: this.env._t("Can't change customer"), - body: _.str.sprintf( - this.env._t( - "This order already has refund lines for %s. We can't change the customer associated to it. Create a new order for the new customer." - ), - currentPartner.name - ), - }); - return; - } - const { confirmed, payload: newPartner } = await this.showTempScreen( - 'PartnerListScreen', - { partner: currentPartner } - ); - if (confirmed) { - this.currentOrder.set_partner(newPartner); - var washing=0 - for (let line of this.currentOrder.orderlines) { - if (line.get_washingType()) - { - washing=1 - } - } - if (washing==0) - { - this.currentOrder.updatePricelist(newPartner); - } - } - } - }; -Registries.Component.extend(ProductScreen, PoSSaleBeProductScreen); diff --git a/laundry_management_pos/static/src/xml/pos_receipt.xml b/laundry_management_pos/static/src/xml/pos_receipt.xml index 54826531b..26b316eee 100755 --- a/laundry_management_pos/static/src/xml/pos_receipt.xml +++ b/laundry_management_pos/static/src/xml/pos_receipt.xml @@ -19,11 +19,12 @@ - + - + @@ -43,12 +44,14 @@
- -
- -
- -
+ + +
+ +
+ +
+