Add brach 7.4, fields orde.line and xmls
This commit is contained in:
		| @@ -7,6 +7,7 @@ __all__ = ['register'] | |||||||
| def register(): | def register(): | ||||||
|     Pool.register( |     Pool.register( | ||||||
|         sale_order.SaleOrder, |         sale_order.SaleOrder, | ||||||
|  |         sale_order.OrderLine, | ||||||
|         module='sale_order', type_='model') |         module='sale_order', type_='model') | ||||||
|     Pool.register( |     Pool.register( | ||||||
|         module='sale_order', type_='wizard') |         module='sale_order', type_='wizard') | ||||||
|   | |||||||
| @@ -1,4 +1,10 @@ | |||||||
|  | # This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
|  | # this repository contains the full copyright notices and license terms. | ||||||
| from trytond.model import ModelView, ModelSQL, fields | from trytond.model import ModelView, ModelSQL, fields | ||||||
|  | from trytond.modules.currency.fields import Monetary | ||||||
|  | from trytond.modules.product import price_digits | ||||||
|  | from trytond.pyson import Eval | ||||||
|  | from decimal import Decimal | ||||||
|  |  | ||||||
|  |  | ||||||
| class SaleOrder(ModelView, ModelSQL): | class SaleOrder(ModelView, ModelSQL): | ||||||
| @@ -12,3 +18,53 @@ class SaleOrder(ModelView, ModelSQL): | |||||||
|         [("on_site", "On Site"), |         [("on_site", "On Site"), | ||||||
|          ("at_home", "At Home")], 'Pickup Location' |          ("at_home", "At Home")], 'Pickup Location' | ||||||
|     ) |     ) | ||||||
|  |     lines = fields.One2Many( | ||||||
|  |         'order.line', 'order', 'Lines' | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class OrderLine(ModelView, ModelSQL): | ||||||
|  |     "Order Line" | ||||||
|  |     __name__ = 'order.line' | ||||||
|  |  | ||||||
|  |     order = fields.Many2One( | ||||||
|  |         'sale.order', "Sale" | ||||||
|  |     ) | ||||||
|  |     product = fields.Many2One( | ||||||
|  |         'product.product', 'Product', required=True | ||||||
|  |     ) | ||||||
|  |     unit = fields.Many2One( | ||||||
|  |         'product.uom', 'Unit', | ||||||
|  |         domain=[ | ||||||
|  |             ('category', '=', Eval('product_uom_category')), | ||||||
|  |         ], | ||||||
|  |         depends=['product_uom_category'] | ||||||
|  |     ) | ||||||
|  |     product_uom_category = fields.Function( | ||||||
|  |         fields.Many2One('product.uom.category', 'Product UOM Category'), | ||||||
|  |         'on_change_with_product_uom_category' | ||||||
|  |     ) | ||||||
|  |     quantity = fields.Float( | ||||||
|  |         "Quantity", digits=('unit') | ||||||
|  |     ) | ||||||
|  |     unitprice = Monetary( | ||||||
|  |         "Unit Price", digits=price_digits, currency='currency' | ||||||
|  |     ) | ||||||
|  |     total_amount = fields.Function( | ||||||
|  |         Monetary("Total Amount", currency='currency', digits='currency'), | ||||||
|  |         'get_total_amount' | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |     @fields.depends('product') | ||||||
|  |     def on_change_with_product_uom_category(self, name=None): | ||||||
|  |         if self.product: | ||||||
|  |             return self.product.default_uom.category.id | ||||||
|  |         return None | ||||||
|  |  | ||||||
|  |     @fields.depends('quantity', 'unitprice') | ||||||
|  |     def on_change_with_total_amount(self): | ||||||
|  |         total_amount = self.unitprice * Decimal(self.quantity) | ||||||
|  |         return total_amount | ||||||
|  |  | ||||||
|  |     def get_total_amount(self): | ||||||
|  |         return self.on_change_with_total_amount() | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								sale_order.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								sale_order.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | <?xml version="1.0"?> | ||||||
|  | <!-- This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
|  | this repository contains the full copyright notices and license terms. --> | ||||||
|  | <tryton> | ||||||
|  |   <data> | ||||||
|  |     <record model="ir.ui.view" id="sale_order_view_tree"> | ||||||
|  |       <field name="model">sale.order</field> | ||||||
|  |       <field name="type">tree</field> | ||||||
|  |       <field name="name">order_tree</field> | ||||||
|  |     </record> | ||||||
|  |     <record model="ir.ui.view" id="sale_order_view_form"> | ||||||
|  |       <field name="model">sale.order</field> | ||||||
|  |       <field name="type">form</field> | ||||||
|  |       <field name="name">order_form</field> | ||||||
|  |     </record> | ||||||
|  |     <record model="ir.ui.view" id="order_line_view_tree"> | ||||||
|  |       <field name="model">order.line</field> | ||||||
|  |       <field name="type">tree</field> | ||||||
|  |       <field name="name">line_tree</field> | ||||||
|  |     </record> | ||||||
|  |     <record model="ir.ui.view" id="order_line_view_form"> | ||||||
|  |       <field name="model">order.line</field> | ||||||
|  |       <field name="type">form</field> | ||||||
|  |       <field name="name">line_form</field> | ||||||
|  |     </record> | ||||||
|  |    </data> | ||||||
|  | </tryton> | ||||||
| @@ -37,8 +37,9 @@ Create order:: | |||||||
|   >>> order.save() |   >>> order.save() | ||||||
|   >>> line1 = order.lines.new() |   >>> line1 = order.lines.new() | ||||||
|   >>> line1.product = product |   >>> line1.product = product | ||||||
|   >>> line1.quantity = 4 |   >>> line1.unit = unit | ||||||
|   >>> line1.unitprice = 8400  |   >>> line1.quantity = 4.0 | ||||||
|   >>> line1.total_amount = 33600 |   >>> line1.unitprice = Decimal('8400')  | ||||||
|  |   >>> line1.total_amount = Decimal('33600') | ||||||
|   >>> order.save() |   >>> order.save() | ||||||
|    |    | ||||||
							
								
								
									
										14
									
								
								view/order_form.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								view/order_form.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | <?xml version="1.0"?> | ||||||
|  | <!-- This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
|  | this repository contains the full copyright notices and license terms. --> | ||||||
|  | <form> | ||||||
|  |   <label name="party"/> | ||||||
|  |   <field name="party"/> | ||||||
|  |   <label name="pickup_location"/> | ||||||
|  |   <field name="pickup_location"/> | ||||||
|  |   <notebook colspan="4"> | ||||||
|  |     <page string="Order Lines" col="1" id="line">  | ||||||
|  |       <field name=""/>      | ||||||
|  |     </page>    | ||||||
|  |   </notebook> | ||||||
|  | </form> | ||||||
							
								
								
									
										7
									
								
								view/order_tree.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								view/order_tree.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | <?xml version="1.0"?> | ||||||
|  | <!-- This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
|  | this repository contains the full copyright notices and license terms. --> | ||||||
|  | <tree keyword_open="1"> | ||||||
|  |     <field name="party" expand="1"/> | ||||||
|  |     <field name="pickup_location" expand="1"/> | ||||||
|  | </tree> | ||||||
		Reference in New Issue
	
	Block a user