changes
This commit is contained in:
@@ -306,6 +306,49 @@ class SaleOrderLine(models.Model):
|
||||
# 5. Final fallback - return default_code even if not in ADP database
|
||||
return self.product_id.default_code or ''
|
||||
|
||||
def _get_adp_code_for_report(self):
|
||||
"""Return the ADP device code for display on reports.
|
||||
|
||||
Uses the product's x_fc_adp_device_code field (not default_code).
|
||||
Returns 'NON-FUNDED' for non-ADP products.
|
||||
"""
|
||||
self.ensure_one()
|
||||
if not self.product_id:
|
||||
return 'NON-FUNDED'
|
||||
if self.product_id.is_non_adp_funded():
|
||||
return 'NON-FUNDED'
|
||||
product_tmpl = self.product_id.product_tmpl_id
|
||||
code = ''
|
||||
if hasattr(product_tmpl, 'x_fc_adp_device_code'):
|
||||
code = getattr(product_tmpl, 'x_fc_adp_device_code', '') or ''
|
||||
if not code and hasattr(product_tmpl, 'x_adp_code'):
|
||||
code = getattr(product_tmpl, 'x_adp_code', '') or ''
|
||||
if not code:
|
||||
return 'NON-FUNDED'
|
||||
ADPDevice = self.env['fusion.adp.device.code'].sudo()
|
||||
if ADPDevice.search_count([('device_code', '=', code), ('active', '=', True)]) > 0:
|
||||
return code
|
||||
return 'NON-FUNDED'
|
||||
|
||||
def _get_adp_device_type(self):
|
||||
"""Live lookup of device type from the ADP device code table.
|
||||
|
||||
Returns 'No Funding Available' for non-ADP products.
|
||||
"""
|
||||
self.ensure_one()
|
||||
if not self.product_id or self.product_id.is_non_adp_funded():
|
||||
return 'No Funding Available'
|
||||
code = self._get_adp_code_for_report()
|
||||
if code == 'NON-FUNDED':
|
||||
return 'No Funding Available'
|
||||
if self.x_fc_adp_device_type:
|
||||
return self.x_fc_adp_device_type
|
||||
adp_device = self.env['fusion.adp.device.code'].sudo().search([
|
||||
('device_code', '=', code),
|
||||
('active', '=', True),
|
||||
], limit=1)
|
||||
return adp_device.device_type if adp_device else 'No Funding Available'
|
||||
|
||||
def _get_serial_number(self):
|
||||
"""Get serial number from mapped field or native field."""
|
||||
self.ensure_one()
|
||||
|
||||
Reference in New Issue
Block a user