def discount_apply(self): if self.discount_method == "amount": account_invoice_tax = self.env['account.invoice.tax'] self.global_discount = 0.0 ctx = dict(self._context) for invoice in self: amount_tax_whitout = 0.0 self._cr.execute("DELETE FROM account_invoice_tax WHERE invoice_id=%s AND manual is False", (invoice.id,)) self.invalidate_cache() partner = invoice.partner_id if partner.lang: ctx['lang'] = partner.lang for taxe in account_invoice_tax.compute(invoice.with_context(ctx)).values(): account_invoice_tax.create(taxe) amount_tax = sum(line.amount for line in self.tax_line) amount_untaxed = sum(line.price_subtotal for line in self.invoice_line) amount_total = self.amount_untaxed + self.amount_tax for line in self.tax_line: if line.base == 0.0: amount_tax_whitout += line.amount if amount_total - amount_tax_whitout == 0: self.global_discount = 100 else: self.global_discount = self.global_discount_amount * 100 / (amount_total - amount_tax_whitout) else: self.global_discount_amount = 0.0 for line in self.invoice_line: self.global_discount_amount += (line.price_unit * line.quantity) * (self.global_discount / 100) self.button_reset_taxes() self.amount_in_word = amount_to_text(self.amount_total, lang='fr', currency='Dinars') return True
def _compute_amount(self): self.amount_tax = sum(line.amount for line in self.tax_line) discount = (100.00 - self.global_discount) / 100.00 self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line) * discount self.amount_total = self.amount_untaxed + self.amount_tax self.amount_in_word = amount_to_text(self.amount_total, lang='fr', currency='Dinars')
def discount_apply(self): if self.discount_method == "amount": account_invoice_tax = self.env['account.invoice.tax'] self.global_discount = 0.0 ctx = dict(self._context) for invoice in self: amount_tax_whitout = 0.0 self._cr.execute( "DELETE FROM account_invoice_tax WHERE invoice_id=%s AND manual is False", (invoice.id, )) self.invalidate_cache() partner = invoice.partner_id if partner.lang: ctx['lang'] = partner.lang for taxe in account_invoice_tax.compute( invoice.with_context(ctx)).values(): account_invoice_tax.create(taxe) amount_tax = sum(line.amount for line in self.tax_line) amount_untaxed = sum(line.price_subtotal for line in self.invoice_line) amount_total = self.amount_untaxed + self.amount_tax for line in self.tax_line: if line.base == 0.0: amount_tax_whitout += line.amount if amount_total - amount_tax_whitout == 0: self.global_discount = 100 else: self.global_discount = self.global_discount_amount * 100 / ( amount_total - amount_tax_whitout) else: self.global_discount_amount = 0.0 for line in self.invoice_line: self.global_discount_amount += ( line.price_unit * line.quantity) * (self.global_discount / 100) self.button_reset_taxes() self.amount_in_word = amount_to_text(self.amount_total, lang='fr', currency='Dinars') return True
def _compute_amount(self): self.amount_tax = sum(line.amount for line in self.tax_line) discount = (100.00 - self.global_discount) / 100.00 self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line) * discount self.amount_total = self.amount_untaxed + self.amount_tax self.amount_in_word = amount_to_text(self.amount_total, lang='fr', currency='Dinars')