Skip to content

Commit 75b0906

Browse files
sjai-odoovlst-odoo
authored andcommitted
[FIX] l10n_es_edi_tbai_pos: fix tests
1 parent f09c3e0 commit 75b0906

File tree

5 files changed

+33
-25
lines changed

5 files changed

+33
-25
lines changed

addons/l10n_es_edi_tbai_pos/models/pos_order.py

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,29 @@ def _compute_l10n_es_tbai_state(self):
6363
# OVERRIDES
6464
# -------------------------------------------------------------------------
6565

66-
def _process_saved_order(self, draft):
67-
if not self.l10n_es_tbai_is_required:
68-
return super()._process_saved_order(draft)
69-
70-
self.ensure_one()
71-
72-
if not self.to_invoice and self.amount_total > self.company_id.l10n_es_simplified_invoice_limit:
73-
raise UserError(self.env._("Please create an invoice for an amount over %s.", self.company_id.l10n_es_simplified_invoice_limit))
74-
75-
if self.refunded_order_id:
76-
if self.to_invoice and not self.refunded_order_id.account_move:
77-
raise UserError(self.env._("You cannot invoice a refund whose linked order hasn't been invoiced."))
78-
if not self.to_invoice and self.refunded_order_id.account_move:
79-
raise UserError(self.env._("Please invoice the refund as the linked order has been invoiced."))
66+
@api.model_create_multi
67+
def create(self, vals_list):
68+
pos_orders = super().create(vals_list)
69+
if self.l10n_es_tbai_is_required:
70+
pos_orders._check_order()
71+
return pos_orders
72+
73+
def write(self, vals):
74+
order = super().write(vals)
75+
for order in self:
76+
if order.l10n_es_tbai_is_required:
77+
self._check_order()
78+
return order
8079

81-
return super()._process_saved_order(draft)
80+
def _check_order(self):
81+
for order in self:
82+
if not order.to_invoice and order.amount_total > order.company_id.l10n_es_simplified_invoice_limit:
83+
raise UserError(self.env._("Please create an invoice for an amount over %s.", self.company_id.l10n_es_simplified_invoice_limit))
84+
if order.refunded_order_id:
85+
if order.to_invoice and not order.refunded_order_id.account_move:
86+
raise UserError(self.env._("You cannot invoice a refund whose linked order hasn't been invoiced."))
87+
if not order.to_invoice and order.refunded_order_id.account_move:
88+
raise UserError(self.env._("Please invoice the refund as the linked order has been invoiced."))
8289

8390
def action_pos_order_paid(self):
8491
res = super().action_pos_order_paid()

addons/l10n_es_edi_tbai_pos/tests/test_tbai_pos.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ def test_tbai_refund_pos_order(self):
6868
pos_refund = self.env['pos.order'].browse(refund_action['res_id'])
6969

7070
# An error is raised if the refund is invoiced
71-
pos_refund.to_invoice = True
7271
with self.assertRaises(UserError):
73-
self.pay_pos_order(pos_refund)
72+
pos_refund.to_invoice = True
73+
self.pay_pos_order(pos_refund)
7474

7575
# Now works with the refund not invoiced
7676
pos_refund.to_invoice = False

addons/l10n_es_pos/static/src/app/screens/payment_screen/payment_screen.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,15 @@ patch(PaymentScreen.prototype, {
5151
}
5252
return false;
5353
},
54-
// shouldDownloadInvoice() {
55-
// return this.pos.config.is_spanish
56-
// ? !this.currentOrder.is_l10n_es_simplified_invoice
57-
// : super.shouldDownloadInvoice();
58-
// },
54+
shouldDownloadInvoice() {
55+
return this.pos.config.is_spanish
56+
? !this.currentOrder.is_l10n_es_simplified_invoice
57+
: super.shouldDownloadInvoice();
58+
},
5959
async _postPushOrderResolve(order, order_server_ids) {
60+
await this.pos.data.read("pos.order", [order.id]);
6061
if (this.pos.config.is_spanish) {
61-
order.invoice_name = order.account_move?.name;;
62+
order.invoice_name = order.account_move?.name;
6263
}
6364
return super._postPushOrderResolve(...arguments);
6465
},

addons/l10n_es_pos/tests/test_frontend.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def get_number_of_regular_invoices():
3434
self.main_pos_config.l10n_es_simplified_invoice_journal_id = simp
3535
# this `limit` value is linked to the `SIMPLIFIED_INVOICE_LIMIT` const in the tour
3636
self._get_main_company().l10n_es_simplified_invoice_limit = 1000
37-
self.main_pos_config.with_user(self.pos_admin).open_ui()
37+
self.main_pos_config.with_user(self.pos_user).open_ui()
3838
self.start_pos_tour("spanish_pos_tour", login="accountman")
3939
num_of_simp_invoices = self.env['account.move'].search_count([('journal_id', '=', simp.id), ('l10n_es_is_simplified', '=', True)])
4040
num_of_regular_invoices = get_number_of_regular_invoices() - initial_number_of_regular_invoices

addons/l10n_test_pos_qr_payment/tests/test_pos_qr_payment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,4 +228,4 @@ def test_02_pos_order_with_pix_qr_payment(self):
228228

229229
self.main_pos_config.with_user(self.pos_user).open_ui()
230230

231-
self.start_tour("/pos/ui/%d" % self.main_pos_config.id, 'PaymentScreenWithQRPayment', login="pos_user")
231+
self.start_tour("/pos/ui/%d" % self.main_pos_config.id, 'PaymentScreenWithQRPayment', login="pos_user")

0 commit comments

Comments
 (0)