0
class InvoiceWizard(models.TransientModel):
    _name = "pos.order.invoice.wizard"

date_order = fields.Datetime(string='Date Order', readonly=True)
partner_id = fields.Many2one('res.partner', string='Partner')



  @api.multi
    def to_invoice(self):
        pos_order = self.env['pos.order'].search([('id','=',self._context.get('active_id'))])
        pos_order.create_invoice()


<record id="pos_order_invoice_done" model="ir.ui.view">
            <field name="name">pos.order.wizard.invoice</field>
            <field name="model">pos.order.invoice.wizard</field>
            <field name="arch" type="xml">
                <form string="To Invoice">
                    <group>
                        <field name="partner_id"/>
                        <field name="date_order"/>
                    </group>
                    <footer>
                        <button name="to_invoice"
                                string="Finished" type="object"
                                class="btn-primary"/>
                        <button string="Cancel"
                                class="btn-default"
                                special="cancel" />
                    </footer>
                </form>
            </field>
        </record>

My goal is to create invoice from pos order with this 2 fields that manuale i will select in wizard. what do i'm missing here? i need to transfer data from those fields to create_invoice() method.

Chaban33
  • 1,362
  • 11
  • 38
  • which version of odoo8 or odoo 10 becuse odoo8 have no method create_invoice in pos.order if you using odoo8 then def action_invoice(self, cr, uid, ids, context=None): so you can overwrite this method and you can achive your goal – Jainik Patel Jun 19 '18 at 05:22

1 Answers1

1

partner_id is required in invoice object, so you must fill the fields in create method like:

   @api.multi
   def to_invoice(self):
   invoice_obj =self.env['account.invoice']
   values = {'partner_id' : self.partner_id,
             'date_invoice' : self.date_order
            }
   invoice_obj.create(values)

note : make sure all fields required is filled.

Rinaldi
  • 260
  • 3
  • 9