purchase_global_discount_wizard.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from openerp import models, fields, api
  2. import logging
  3. from datetime import datetime
  4. #from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
  5. _logger = logging.getLogger(__name__)
  6. class purchase_global_discount_wizard(models.TransientModel):
  7. _name = "purchase.order.global_discount.wizard"
  8. # todo implement fixed amount
  9. type = fields.Selection([
  10. ('percentage', 'Porcentaje'),
  11. ('fixed_amount', 'Monto fijo'),
  12. ],
  13. 'Tipo',
  14. required=True,
  15. default='fixed_amount',
  16. )
  17. amount = fields.Float(
  18. # 'Amount',
  19. 'Descuento',
  20. required=True,
  21. )
  22. @api.multi
  23. def confirm(self):
  24. self.ensure_one()
  25. order = self.env['purchase.order'].browse(
  26. self._context.get('active_id', False))
  27. if self.type == 'percentage':
  28. for line in order.order_line:
  29. line.discount = str(self.amount) + "%"
  30. line.price_unit = line.orig_price_unit * (1 - (self.amount or 0.0) / 100.0)
  31. else:
  32. total_amount = order.amount_untaxed
  33. for line in order.order_line:
  34. line.discount = ((line.price_subtotal / total_amount) * self.amount) / line.product_qty
  35. line.price_unit = float(line.orig_price_unit) - float(line.discount)
  36. return True