fix(billing): name ledger partners by company, not the NexaCloud user's full_name
One operator (e.g. "Gurpreet Singh") manages several distinct customer businesses; naming partners from full_name mislabeled Mobility Specialties Inc and Apex Vita Corporation as "Gurpreet Singh". Read the company field, name the partner by company (mark is_company), and rewrite existing partners so prior full_name-based names are corrected on re-ingest. 75 tests green.
This commit is contained in:
@@ -120,6 +120,14 @@ class TestLedgerIngest(TransactionCase):
|
||||
self.assertAlmostEqual(mv.amount_untaxed, 200.0, places=2) # captured via reconciling line
|
||||
self.assertTrue(any('base/unitemized' in (l.name or '') for l in mv.invoice_line_ids))
|
||||
|
||||
def test_partner_named_by_company_not_person(self):
|
||||
data = _inv_fixture()
|
||||
data[0]['partner_company'] = 'Acme Holdings Inc' # full_name is "Acme"; company wins
|
||||
self.W._ingest_invoices(data, post=False)
|
||||
mv = self.Move.search([('x_fc_nexacloud_invoice_id', '=', 'inv-1')])
|
||||
self.assertEqual(mv.partner_id.name, 'Acme Holdings Inc')
|
||||
self.assertTrue(mv.partner_id.is_company)
|
||||
|
||||
def test_prune_shadow_removes_shadow_subs_only(self):
|
||||
p = self.env['res.partner'].sudo().create({'name': 'X'})
|
||||
shadow = self.env['sale.order'].sudo().create({'partner_id': p.id, 'x_fc_shadow': True})
|
||||
|
||||
Reference in New Issue
Block a user