Browse Source

Jul 24 : [UPDT] Bug Fixed 'pos_discount_manager'

pull/267/head
AjmalCybro 2 years ago
parent
commit
935a345cda
  1. 2
      pos_discount_manager/README.rst
  2. 2
      pos_discount_manager/__manifest__.py
  3. 8
      pos_discount_manager/doc/RELEASE_NOTES.md
  4. 2
      pos_discount_manager/static/description/index.html
  5. 113
      pos_discount_manager/static/src/js/ValidateManager.js

2
pos_discount_manager/README.rst

@ -3,7 +3,7 @@
:alt: License: AGPL-3 :alt: License: AGPL-3
POS Discount Manager Approval POS Discount Manager Approval
============================= =====================
This module helps to provide Discount limit for each employee in every pos This module helps to provide Discount limit for each employee in every pos
Configuration Configuration

2
pos_discount_manager/__manifest__.py

@ -26,7 +26,7 @@
'description': """"This module helps you to set a discount limit for each 'description': """"This module helps you to set a discount limit for each
employee in every point of sale.It facilitate the manager employee in every point of sale.It facilitate the manager
approval when discount over the limit of employee""", approval when discount over the limit of employee""",
'category': 'Point of Sale', 'category': 'Point Of Sale',
'author': 'Cybrosys Techno Solutions', 'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions', 'company': 'Cybrosys Techno Solutions',
'maintainer': "Cybrosys Techno Solutions", 'maintainer': "Cybrosys Techno Solutions",

8
pos_discount_manager/doc/RELEASE_NOTES.md

@ -3,4 +3,10 @@
#### 12.05.2023 #### 12.05.2023
#### Version 16.0.1.0.0 #### Version 16.0.1.0.0
#### ADD #### ADD
Initial Commit for POS Discount Manager Approval - Initial Commit POS Discount Manager Approval
#### 21.07.2023
#### Version 16.0.2.0.1
#### FIX
- Removed the already existing function from payment screen js function.
- Super the existing button action.

2
pos_discount_manager/static/description/index.html

@ -628,7 +628,7 @@
</div> </div>
</section> </section>
<!-- END OF END OF OUR INDUSTRIES --> <!-- END OF OUR INDUSTRIES -->
<!-- FOOTER --> <!-- FOOTER -->
<!-- Footer Section --> <!-- Footer Section -->

113
pos_discount_manager/static/src/js/ValidateManager.js

@ -10,92 +10,45 @@ odoo.define('pos_discount_manager.ValidateManager', function(require) {
*Override the validate button to approve discount limit *Override the validate button to approve discount limit
*/ */
async _finalizeValidation() { async _finalizeValidation() {
if ((this.currentOrder.is_paid_with_cash() || this.currentOrder.get_change()) && this.env.pos.config.iface_cashdrawer) { var order = this.env.pos.get_order();
this.env.pos.proxy.printer.open_cashbox(); var orderlines = this.currentOrder.get_orderlines()
} var employee_dis = this.env.pos.get_cashier()['limited_discount'];
var employee_name = this.env.pos.get_cashier()['name']
this.currentOrder.initialize_validation_date(); var flag = 1;
let syncedOrderBackendIds = []; orderlines.forEach((order) => {
try { if(order.discount > employee_dis)
if (this.currentOrder.is_to_invoice()) { flag = 0;
syncedOrderBackendIds = await this.env.pos.push_and_invoice_order( });
this.currentOrder if (flag != 1) {
); const {confirmed,payload} = await this.showPopup('NumberPopup', {
} else { title: this.env._t(employee_name + ', your discount is over the limit. \n Manager pin for Approval'),
syncedOrderBackendIds = await this.env.pos.push_single_order(this.currentOrder);
}
} catch (error) {
if (error instanceof Error) {
throw error;
} else {
await this._handlePushOrderError(error);
}
}
if (syncedOrderBackendIds.length && this.currentOrder.wait_for_push_order()) {
const result = await this._postPushOrderResolve(
this.currentOrder,
syncedOrderBackendIds
);
if (!result) {
await this.showPopup('ErrorPopup', {
title: 'Error: no internet connection.',
body: error,
}); });
} if(confirmed){
} var output = this.env.pos.employees.filter((obj) => obj.role == 'manager');
var pin = output[0].pin
if (Sha1.hash(payload) == pin) {
this.showScreen(this.nextScreen);
}
else {
this.showPopup('ErrorPopup', {
title: this.env._t(" Manager Restricted your discount"),
body: this.env._t(employee_name + ", Your Manager pin is incorrect."),
var order = this.env.pos.get_order(); });
var orderlines = this.currentOrder.get_orderlines() return false;
var employee_dis = this.env.pos.get_cashier()['limited_discount']; }
var employee_name = this.env.pos.get_cashier()['name']
var flag = 1;
orderlines.forEach((order) => {
if(order.discount > employee_dis)
flag = 0;
});
if (flag != 1) {
const {confirmed,payload} = await this.showPopup('NumberPopup', {
title: this.env._t(employee_name + ', your discount is over the limit. \n Manager pin for Approval'),
});
if(confirmed){
var output = this.env.pos.employees.filter((obj) => obj.role == 'manager');
var pin = output[0].pin
if (Sha1.hash(payload) == pin) {
this.showScreen(this.nextScreen);
} }
else { else {
this.showPopup('ErrorPopup', {
title: this.env._t(" Manager Restricted your discount"),
body: this.env._t(employee_name + ", Your Manager pin is incorrect."),
});
return false; return false;
} }
} }
else { this.currentOrder.finalized = true;
return false; this.showScreen(this.nextScreen);
} super._finalizeValidation();
} // If we succeeded in syncing the current order, and
this.currentOrder.finalized = true; // there are still other orders that are left unsynced,
this.showScreen(this.nextScreen); // we ask the user if he is willing to wait and sync them.
// If we succeeded in syncing the current order, and }
// there are still other orders that are left unsynced,
// we ask the user if he is willing to wait and sync them.
if (syncedOrderBackendIds.length && this.env.pos.db.get_orders().length) {
const {
confirmed
} = await this.showPopup('ConfirmPopup', {
title: this.env._t('Remaining unsynced orders'),
body: this.env._t(
'There are unsynced orders. Do you want to sync these orders?'
),
});
if (confirmed) {
// Not yet sure if this should be awaited or not.
this.env.pos.push_orders();
}
}
}
} }
Registries.Component.extend(PaymentScreen, ValidateManagers); Registries.Component.extend(PaymentScreen, ValidateManagers);
return ValidateManagers; return ValidateManagers;

Loading…
Cancel
Save