This question has been flagged
2846 Views


Hi,

I am creating the module for Restaurant Management. I added the tabs like Table Booking, Orders, Kitchen Order Ticket(KOT)

where, Orders are taken and KOT is generated.

Now, I want to generate Invoice after generating KOT. I just want the value of TOTAL (amount_total) field on Orders tab should get invoiced and the TOTAL gets added. After that, It should creates Invoice on clicking the Generate Invoice Button.

Here is my code,

hotel_restaurant.py -------------------------------------------------------------------

class hotel_restaurant_order(osv.Model):

        def _sub_total(self, cr, uid, ids, field_name, arg, context=None):

        res = {}

        for sale in self.browse(cr, uid, ids, context=context):

            res[sale.id] = sum(line.price_subtotal for line in sale.order_list)

        return res

        def _total(self, cr, uid, ids, field_name, arg, context=None):

        res = {}

        for line in self.browse(cr, uid, ids, context=context):

        res[line.id] = line.amount_subtotal + (line.amount_subtotal * line.tax) / 100

        return res

        def generate_kot(self, cr, uid, ids, part):

        order_tickets_obj = self.pool.get('hotel.restaurant.kitchen.order.tickets')

        restaurant_order_list_obj = self.pool.get('hotel.restaurant.order.list')

        for order in self.browse(cr, uid, ids):

        table_ids = [x.id for x in order.table_no]

        kot_data = order_tickets_obj.create(cr, uid, {

        'orderno':order.order_no,

        'kot_date':order.o_date,

        'room_no':order.room_no.name,

        'w_name':order.waiter_name.name,

        'tableno':[(6, 0, table_ids)],

        })

        for order_line in order.order_list:

        o_line = {

        'kot_order_list':kot_data,

        'name':order_line.name.id,

        'item_qty':order_line.item_qty,

}

        restaurant_order_list_obj.create(cr, uid, o_line)

        return True


hotel_restaurant_view.xml------------------------------------------------------------------------

<!--

==============================

Table Order

==============================

-->

    <record model="ir.ui.view" id="view_hotel_restaurant_order_form">

        <field name="name">hotel_restaurant_order.form</field>

        <field name="model">hotel.restaurant.order</field>

        <field name="arch" type="xml">

            <form string="Order" version="7.0">

            <header>

                <button string="Generate KOT" name="generate_kot" type="object" icon="gtk-go-forward"/>

            </header>

            <sheet>

                <h1>

                    <label string="Table Order" colspan="4" />

                    <field name="order_no" colspan="4"/>

                </h1>

                <group>

                <group>

                    <field name="o_date" />

                </group>

                    <group colspan="2" col="4">

                    <field name="room_no"/>

                    <field name="waiter_name"/>

                    </group>

                    <newline/>

                   <separator colspan='4' string='Table List'/>

                    <field name="table_no" colspan="4" nolabel='1'/>

                    <newline/>

                   <separator colspan='4' string='Order List'/>

                    <field name="order_list" colspan="4" nolabel='1'>

                    <form string="Order List">

                   <group>

                   <field name="name" on_change="on_change_item_name(name)"/>

                   <field name="item_qty"/>

                <field name="item_rate"/>

                </group>

            </form>

            <tree string="Order List">

                <field name="name" />

                <field name="item_qty"/>

                <field name="item_rate"/>

                <field name="price_subtotal"/>

            </tree>

        </field>

    </group>    

<newline/>

         <group col="2" class="oe_subtotal_footer oe_right">

            <field name="amount_subtotal" widget="monetary"/>

            <field name="tax" widget='monetary'/>    

            <div class="oe_subtotal_footer_separator oe_inline">

            <label for="amount_total" />

            </div>

            <field name="amount_total" nolabel="1" widget='monetary'/>

        </group>

    <div class="oe_clear"/>

        </sheet>

     </form>

    </field>

</record>

    <record model="ir.ui.view" id="view_hotel_restaurant_order_tree">

    <field name="name">hotel_restaurant_order.tree</field>

    <field name="model">hotel.restaurant.order</field>

    <field name="arch" type="xml">

    <tree string="Order">

    <field name="order_no"/>

    <field name="o_date"/>

    <field name="table_no"/>

    <field name="room_no"/>

    <field name="waiter_name"/>

    <field name="order_list"/>

    </tree>

    </field>

</record>

    <record model="ir.actions.act_window" id="open_view_hotel_restaurant_order_form_tree">

        <field name="name">Order Generate</field>

        <field name="res_model">hotel.restaurant.order</field>

        <field name="view_type">form</field>

        <field name="view_mode">tree,form</field>

    </record>

        <menuitem name="Table Order"

        id="menu_open_view_hotel_restaurant_order_form_tree"

        action="open_view_hotel_restaurant_order_form_tree"

        sequence="11"

        parent="hotel_restaurant_menu"/>

Avatar
Discard