purchase_order.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # -*- encoding: utf-8 -*-
  2. from openerp import models, fields, api, _
  3. from openerp.exceptions import Warning
  4. from pytz import timezone
  5. from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
  6. from datetime import datetime,timedelta
  7. DATE_FORMAT = '%Y-%m-%d'
  8. class purchase_order(models.Model):
  9. _inherit = 'purchase.order'
  10. contado = fields.Boolean('Contado')
  11. credito = fields.Boolean('Crédito')
  12. @api.one
  13. @api.onchange('credito')
  14. def cambiar_estado_credito(self):
  15. self.contado = not self.credito
  16. @api.one
  17. @api.onchange('contado')
  18. def cambiar_estado_contado(self):
  19. self.credito = not self.contado
  20. if self.contado == True:
  21. self.payment_term = False
  22. def _convert_str_to_datetime(self, date):
  23. return datetime.strptime(date,DEFAULT_SERVER_DATETIME_FORMAT)
  24. @api.model
  25. def action_invoice_create(self):
  26. for purchase in self:
  27. inv_id = super(purchase_order, self).action_invoice_create()
  28. if inv_id:
  29. inv = self.env['account.invoice'].browse(inv_id)
  30. date = self._convert_str_to_datetime(purchase.date_order)
  31. date = date.strftime(DATE_FORMAT)
  32. inv.write({
  33. 'date_invoice':date,
  34. 'contado':self.contado,
  35. 'credito':self.credito
  36. })
  37. self.update_state()
  38. @api.multi
  39. def update_state(self):
  40. for order in self:
  41. order.write({'state': 'done'})
  42. return True