123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # -*- coding: utf-8 -*-
- from openerp import models, fields, api
- class SaleOrder(models.Model):
- _inherit = 'sale.order'
- is_delivery = fields.Boolean(string='Delivery?')
- delivery_type = fields.Selection([
- ('local', 'Local'),
- ('envio', 'Envio al Interior'),
- ('pickup', 'Pickup')],
- string='Tipo de delivery', default='local')
- @api.multi
- def order_process_now(self):
- """
- Confirms order and creates and validates invoice, confirms pickings.
- """
- for sale in self:
- sale.action_button_confirm()
- inv_id = sale.action_invoice_create()
- if inv_id:
- inv = self.env['account.invoice'].browse(inv_id)
- inv.write({
- 'is_delivery':self.is_delivery,
- 'delivery_type':self.delivery_type,
- })
- self.update_state()
- inv.signal_workflow('invoice_open')
- for picking in sale.picking_ids:
- picking.force_assign()
- picking.action_done()
- @api.multi
- def update_state(self):
- for order in self:
- order.write({'state': 'done'})
- return True
- class AccountInvoice(models.Model):
- _inherit = 'account.invoice'
- is_delivery = fields.Boolean(string='Delivery?')
- delivery_type = fields.Selection([
- ('local', 'Local'),
- ('envio', 'Envio al Interior'),
- ('pickup', 'Pickup')],
- string='Tipo de delivery', default='local')
|