only logic with the below formula is , first check if last invoice date to selected customer is less than selected invoice date, if yes then check if last issued bill was paid by him on or before last invoice due date, if yes, then current_lps = 0 , if not then current_lps = amount_payable * 0.15.
Problem: the field is showing empty didn't do any calculations nor any error has been face.
class CurrentLPS(models.Model):
_inherit = 'account.move'
current_lps = fields.Float(string='Current LPS', store=True, help='Place to store the amount',readonly=True)
@api.depends('partner_id', 'invoice_date')
def _compute_current_lps(self):
for move in self:
last_invoice = move.env['account.move'].search([
('partner_id', '=', move . partner_id. id),
('move_type', '=', 'out_invoice'),
], order='invoice_date desc, id desc', limit=1)
if last_invoice and last_invoice.invoice_date < move.invoice_date:
# Find the last payment for the last invoice
last_payment = self.env['account.payment'].search([
('partner_id', '=', move,partner_id,id),
('communication', '=', last_invoice.invoice_payment_term_id),
('payment_date', '<=', last_invoice.invoice_date_due),
], order='payment_date desc', limit=1)
if last_payment and last_payment.state == 'posted':
move.current_lps = 0.0
else:
move.current_lps = move.amount_payable * 0.15
else:
move.current_lps = move.amount_payable * 0.15
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Kirjanpito
- Varastointi
- PoS
- Project
- MRP
Tämä kysymys on merkitty
1712
Näkymät
Nautitko keskustelusta? Älä vain lue, vaan osallistu!
Luo tili jo tänään nauttiaksesi yksinoikeusominaisuuksista ja osallistuaksesi mahtavaan yhteisöömme!
RekisteröidyAiheeseen liittyviä artikkeleita | Vastaukset | Näkymät | Toimenpide | |
---|---|---|---|---|
|
0
toukok. 24
|
719 | ||
|
2
maalisk. 24
|
1577 | ||
|
2
kesäk. 23
|
7958 | ||
|
0
toukok. 23
|
90 | ||
what is a suspense account?
Ratkaistu
|
|
4
toukok. 22
|
25177 |