1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # -*- encoding: utf-8 -*-
- from openerp import models, fields, api, _
- from openerp.exceptions import Warning
- from pytz import timezone
- from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
- from datetime import datetime,timedelta
- DATE_FORMAT = '%Y-%m-%d'
- class sale_order(models.Model):
- _inherit = 'sale.order'
- contado = fields.Boolean('Contado')
- credito = fields.Boolean('Crédito')
- _defaults = {
- 'contado': True,
- 'order_policy':'prepaid'
- }
- @api.one
- @api.onchange('contado')
- def cambiar_estado_contado(self):
- self.credito = not self.contado
- if self.contado == True:
- self.payment_term = False
- self.order_policy = 'prepaid'
- @api.one
- @api.onchange('credito')
- def cambiar_estado_credito(self):
- self.contado = not self.credito
- if self.credito == True:
- self.order_policy = 'manual'
- def _convert_str_to_datetime(self, date):
- return datetime.strptime(date,DEFAULT_SERVER_DATETIME_FORMAT)
- @api.model
- def action_invoice_create(self):
- for sale in self:
- inv_id = super(sale_order, self).action_invoice_create()
- if inv_id:
- inv = self.env['account.invoice'].browse(inv_id)
- date = self._convert_str_to_datetime(sale.date_order)
- date = date.strftime(DATE_FORMAT)
- inv.write({
- 'date_invoice':date,
- 'contado':self.contado,
- 'credito':self.credito
- })
- self.update_state()
- @api.multi
- def update_state(self):
- for order in self:
- order.write({'state': 'done'})
- return True
|