sale.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #-*- coding:utf-8 -*-
  2. from openerp import models, api, _
  3. from openerp.exceptions import Warning
  4. from datetime import datetime, date
  5. class sale_order(models.Model):
  6. _inherit = "sale.order"
  7. @api.one
  8. def action_wait(self):
  9. self.check_limit()
  10. # self.check_morosidad()
  11. return super(sale_order, self).action_wait()
  12. @api.one
  13. def check_limit(self):
  14. if self.contado == True:
  15. return True
  16. available_credit = self.partner_id.credit_limit - self.partner_id.credit
  17. if self.amount_total > available_credit:
  18. if not self.user_has_groups('partner_credito_limite.groups_partner_credito_limite'):
  19. msg = 'No se puede confirmar el Pedido ya que el cliente no tiene crédito suficiente.\
  20. Pruebe marcar la opción "Contado"'
  21. raise Warning(_(msg))
  22. return False
  23. return True
  24. #@api.one
  25. #def check_morosidad(self):
  26. # now = datetime.now()
  27. # hoy = datetime.strptime(now.strftime("%Y-%m-%d"),"%Y-%m-%d")
  28. # domain = [('id', '=', self.partner_id.id)]
  29. # partner = self.env['res.partner'].search(domain)
  30. # invoices = self.env['account.invoice'].search([('partner_id', '=',self.partner_id.id),('state', '=','open'),('type', '=', 'out_invoice'),('journal_id.type','=','sale')])
  31. # for item in invoices:
  32. # moveLine = self.env['account.move.line'].search([('move_id','=', item.move_id.id),('debit','>',0)])
  33. # if moveLine.date_maturity < now.strftime("%Y-%m-%d"):
  34. # vencimiento = datetime.strptime(moveLine.date_maturity,"%Y-%m-%d")
  35. # if partner.morosidad > 0 and (hoy-vencimiento).days > partner.morosidad:
  36. # raise Warning(_("El cliente %s tiene cuotas vencidas con más de %s días de atraso") % (partner.name, partner.morosidad))
  37. # return False
  38. # return True