changes
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Step 8 re-verify — fresh SO with net_terms strategy should now get
|
||||
# Net-30 payment term auto-filled, and the invoice should post.
|
||||
|
||||
from odoo import fields
|
||||
W = env['fp.direct.order.wizard']
|
||||
Line = env['fp.direct.order.line']
|
||||
Part = env['fp.part.catalog']
|
||||
P = env['res.partner']
|
||||
|
||||
target = P.browse(2529)
|
||||
part = Part.search([('x_fc_default_coating_config_id', '!=', False)], limit=1)
|
||||
|
||||
w = W.create({
|
||||
'partner_id': target.id, 'po_pending': True,
|
||||
'po_number': 'PO-STEP8RV-001',
|
||||
'invoice_strategy': 'net_terms',
|
||||
})
|
||||
w._onchange_partner_id()
|
||||
w._onchange_invoice_strategy() # also fires _apply_strategy_payment_term
|
||||
print(f'[Sarah] After invoice_strategy=net_terms, payment_term_id={w.payment_term_id.name if w.payment_term_id else None}')
|
||||
|
||||
Line.create({
|
||||
'wizard_id': w.id, 'part_catalog_id': part.id,
|
||||
'coating_config_id': part.x_fc_default_coating_config_id.id,
|
||||
'quantity': 4, 'unit_price': 30.0,
|
||||
})
|
||||
r = w.action_create_order()
|
||||
so = env['sale.order'].browse(r['res_id'])
|
||||
print(f'[Sarah] SO {so.name} created, payment_term_id={so.payment_term_id.name if so.payment_term_id else None}')
|
||||
so.action_confirm()
|
||||
print(f'[Sarah] Confirmed → state={so.state}')
|
||||
|
||||
# Walk job to done so it's invoiceable.
|
||||
job = env['fp.job'].search([('sale_order_id', '=', so.id)], limit=1)
|
||||
for s in job.step_ids.sorted('sequence'):
|
||||
if s.state in ('pending', 'ready'):
|
||||
s.button_start()
|
||||
if s.state == 'in_progress':
|
||||
s.button_finish()
|
||||
job.button_mark_done()
|
||||
print(f'[Carlos] Job {job.name} done')
|
||||
|
||||
# Jane invoices.
|
||||
print()
|
||||
print('[Jane] Creating + posting invoice:')
|
||||
result = so._create_invoices()
|
||||
inv = env['account.move'].search([('invoice_origin', '=', so.name)], order='id desc', limit=1)
|
||||
print(f' Invoice {inv.name or "(unnamed draft)"}: state={inv.state}, payment_term={inv.invoice_payment_term_id.name if inv.invoice_payment_term_id else None}')
|
||||
try:
|
||||
inv.action_post()
|
||||
print(f' ✓ Posted: state={inv.state}, payment_state={inv.payment_state}')
|
||||
print(f' ✓ Invoice name: {inv.name}, due date: {inv.invoice_date_due}')
|
||||
except Exception as e:
|
||||
print(f' ❌ {e}')
|
||||
|
||||
env.cr.commit()
|
||||
print()
|
||||
print('== Step 8 re-verify complete ==')
|
||||
Reference in New Issue
Block a user