Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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')
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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')