minor fix for print tickect and invoice

This commit is contained in:
Wilson Gomez 2023-03-10 15:08:45 -05:00
parent e36a2c6fce
commit 85cd66c923
1 changed files with 81 additions and 2 deletions

83
sale.py
View File

@ -208,8 +208,87 @@ class Sale(metaclass=PoolMeta):
response_process_pay = process_response(response)
if response_process_pay is not None:
break
print(response_process_pay)
return get_dict_response_pay(response_process_pay) if response_process_pay else {'status': 'error al procesar pago'}
if response_process_pay:
data_pay = get_dict_response_pay(response_process_pay)
result = {
'pay': data_pay,
'status': 'ok',
'msg': 'Pago exitoso'
}
else:
result = {
'pay': None,
'status': 'error',
'msg': 'error al procesar pago'
}
return result
@classmethod
def process_pay_sale(cls, args):
pool = Pool()
Device = pool.get('sale.device')
StatementLine = pool.get('account.statement.line')
Date = pool.get('ir.date')
payment = args['pay']
sale_id = args['sale_id']
sale, = cls.browse([sale_id])
if sale.residual_amount == sale.total_amount:
device, = Device.search([
('shop', '=', sale.shop.id),
])
sale.sale_device = device
payment_means_code = '48' if payment['tipo_cuenta'] == 'CR' else '49'
journal_id = None
for journal in device.journals:
if journal.payment_means_code == payment_means_code:
journal_id = journal.id
break
statement_open_id = cls.is_statement_open(
journal_id, sale.sale_device.id)
to_create = {
'sale': sale_id,
'date': Date.today(),
'statement': statement_open_id,
'amount': sale.total_amount,
'party': sale.party.id,
'account': sale.party.account_receivable.id,
'description': sale.invoice_number or '',
'number': payment['consecutivo_transaccion']
}
line, = StatementLine.create([to_create])
line.create_move()
cls.wizard_generate_invoice([sale])
qr_code = sale.number + ' ' + str(sale.sale_date)
data_order = cls.get_order2print({'sale_id': sale_id, 'repeat': True})
data_invoice = cls.get_data({'sale_id': sale_id, 'type_doc': 'invoice'})
data_invoice['qr_code'] = qr_code
for d in data_order[0].values():
d['qr_code'] = qr_code
shop = sale.shop
ctx = {
'company': sale.company.party.name,
'sale_device': sale.sale_device.name,
'shop': shop.name,
'street': shop.address.street,
'user': "app.user",
'city': shop.address.city_code.name,
'zip': "00000",
'phone': sale.company.party.phone,
'id_number': sale.company.party.id_number,
'tax_regime': "NA",
}
return {
'status': 'ok',
'data_order': data_order[0],
'data_invoice': data_invoice,
'ctx': ctx,
}
@classmethod
def dash_get_line(cls, args, ctx):