diff --git a/addons/point_of_sale/static/src/app/navbar/closing_popup/closing_popup.js b/addons/point_of_sale/static/src/app/navbar/closing_popup/closing_popup.js index 94c207e6ec4..f317e9c3fef 100644 --- a/addons/point_of_sale/static/src/app/navbar/closing_popup/closing_popup.js +++ b/addons/point_of_sale/static/src/app/navbar/closing_popup/closing_popup.js @@ -27,7 +27,6 @@ export class ClosePosPopup extends AbstractAwaitablePopup { this.report = useService("report"); this.hardwareProxy = useService("hardware_proxy"); this.customerDisplay = useService("customer_display"); - this.manualInputCashCount = false; this.cashControl = this.pos.config.cash_control; this.closeSessionClicked = false; this.moneyDetails = null; @@ -74,9 +73,6 @@ export class ClosePosPopup extends AbstractAwaitablePopup { this.hardwareProxy.openCashbox(action); const { confirmed, payload } = await this.popup.add(MoneyDetailsPopup, { moneyDetails: this.moneyDetails, - total: this.manualInputCashCountpayments - ? 0 - : this.state.payments[this.defaultCashDetails.id].counted, action: action, }); if (confirmed) { @@ -90,7 +86,6 @@ export class ClosePosPopup extends AbstractAwaitablePopup { if (moneyDetailsNotes) { this.state.notes = moneyDetailsNotes; } - this.manualInputCashCount = false; this.moneyDetails = moneyDetails; } } @@ -103,7 +98,6 @@ export class ClosePosPopup extends AbstractAwaitablePopup { } let expectedAmount; if (paymentId === this.defaultCashDetails?.id) { - this.manualInputCashCount = true; this.moneyDetails = null; this.state.notes = ""; expectedAmount = this.defaultCashDetails.amount; diff --git a/addons/point_of_sale/static/src/app/store/cash_opening_popup/cash_opening_popup.js b/addons/point_of_sale/static/src/app/store/cash_opening_popup/cash_opening_popup.js index 86c01c6e94b..dfbf416c22b 100644 --- a/addons/point_of_sale/static/src/app/store/cash_opening_popup/cash_opening_popup.js +++ b/addons/point_of_sale/static/src/app/store/cash_opening_popup/cash_opening_popup.js @@ -15,7 +15,6 @@ export class CashOpeningPopup extends AbstractAwaitablePopup { setup() { super.setup(); - this.manualInputCashCount = null; this.moneyDetails = null; this.pos = usePos(); this.state = useState({ @@ -44,7 +43,6 @@ export class CashOpeningPopup extends AbstractAwaitablePopup { this.hardwareProxy.openCashbox(action); const { confirmed, payload } = await this.popup.add(MoneyDetailsPopup, { moneyDetails: this.moneyDetails, - total: this.manualInputCashCount ? 0 : this.state.openingCash, action: action, }); if (confirmed) { @@ -53,7 +51,6 @@ export class CashOpeningPopup extends AbstractAwaitablePopup { if (moneyDetailsNotes) { this.state.notes = moneyDetailsNotes; } - this.manualInputCashCount = false; this.moneyDetails = moneyDetails; } } @@ -61,7 +58,6 @@ export class CashOpeningPopup extends AbstractAwaitablePopup { if (!this.env.utils.isValidFloat(this.state.openingCash)) { return; } - this.manualInputCashCount = true; this.state.notes = ""; } } diff --git a/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.js b/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.js index 6867ce9e90b..1d46b617488 100644 --- a/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.js +++ b/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.js @@ -16,30 +16,17 @@ export class MoneyDetailsPopup extends AbstractAwaitablePopup { moneyDetails: this.props.moneyDetails ? { ...this.props.moneyDetails } : Object.fromEntries(this.pos.bills.map((bill) => [bill.value, 0])), - total: this.props.total ? this.props.total : 0, - action: this.props.action ? this.props.action : null, }); } - get firstHalfMoneyDetails() { - const moneyDetailsKeys = Object.keys(this.state.moneyDetails).sort((a, b) => a - b); - return moneyDetailsKeys.slice(0, Math.ceil(moneyDetailsKeys.length / 2)); - } - get lastHalfMoneyDetails() { - const moneyDetailsKeys = Object.keys(this.state.moneyDetails).sort((a, b) => a - b); - return moneyDetailsKeys.slice( - Math.ceil(moneyDetailsKeys.length / 2), - moneyDetailsKeys.length - ); - } - updateMoneyDetailsAmount() { - this.state.total = Object.entries(this.state.moneyDetails).reduce( + computeTotal(moneyDetails = this.state.moneyDetails) { + return Object.entries(moneyDetails).reduce( (total, money) => total + money[0] * money[1], 0 ); } //@override async getPayload() { - let moneyDetailsNotes = !floatIsZero(this.state.total, this.currency.decimal_places) + let moneyDetailsNotes = !floatIsZero(this.computeTotal(), this.currency.decimal_places) ? "Money details: \n" : null; this.pos.bills.forEach((bill) => { @@ -50,10 +37,10 @@ export class MoneyDetailsPopup extends AbstractAwaitablePopup { } }); return { - total: this.state.total, + total: this.computeTotal(), moneyDetailsNotes, moneyDetails: { ...this.state.moneyDetails }, - action: this.state.action, + action: this.props.action, }; } async cancel() { @@ -62,7 +49,7 @@ export class MoneyDetailsPopup extends AbstractAwaitablePopup { this.pos.config.iface_cashdrawer && this.pos.hardwareProxy.connectionInfo.status === "connected" ) { - this.pos.logEmployeeMessage(this.state.action, "ACTION_CANCELLED"); + this.pos.logEmployeeMessage(this.props.action, "ACTION_CANCELLED"); } } } diff --git a/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.xml b/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.xml index cb7834f3c23..928a9ae9a63 100644 --- a/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.xml +++ b/addons/point_of_sale/static/src/app/utils/money_details_popup/money_details_popup.xml @@ -6,23 +6,20 @@
-
-
- -
- - -
-
+ +
+
+ +

Total - +