Bugfixes in "Händlerrabatt" + Report
							parent
							
								
									14dc3c2f7e
								
							
						
					
					
						commit
						01769a7a68
					
				|  | @ -103,3 +103,21 @@ class AccountInvoice(models.Model): | ||||||
|         self.ensure_one() |         self.ensure_one() | ||||||
|         self.sent = True |         self.sent = True | ||||||
|         return self.env.ref('account.account_invoices_without_payment').report_action(self) |         return self.env.ref('account.account_invoices_without_payment').report_action(self) | ||||||
|  | 
 | ||||||
|  |     @api.model | ||||||
|  |     def _formatLang(self, value, currency=True): | ||||||
|  |         lang = self.partner_id.lang | ||||||
|  |         lang_objs = self.env['res.lang'].search([('code', '=', lang)]) | ||||||
|  |         if not lang_objs: | ||||||
|  |             lang_objs = self.env['res.lang'].search([], limit=1) | ||||||
|  |         lang_obj = lang_objs[0] | ||||||
|  | 
 | ||||||
|  |         res = lang_obj.format('%.' + str(2) + 'f', value, grouping=True, monetary=True) | ||||||
|  |         currency_obj = self.currency_id | ||||||
|  | 
 | ||||||
|  |         if currency_obj and currency_obj.symbol and currency: | ||||||
|  |             if currency_obj.position == 'after': | ||||||
|  |                 res = '%s %s' % (res, currency_obj.symbol) | ||||||
|  |             elif currency_obj and currency_obj.position == 'before': | ||||||
|  |                 res = '%s %s' % (currency_obj.symbol, res) | ||||||
|  |         return res | ||||||
|  |  | ||||||
|  | @ -353,6 +353,24 @@ class SaleOrder(models.Model): | ||||||
|             self.name = new_name |             self.name = new_name | ||||||
|         return super(SaleOrder, self).action_confirm() |         return super(SaleOrder, self).action_confirm() | ||||||
| 
 | 
 | ||||||
|  |     @api.model | ||||||
|  |     def _formatLang(self, value, currency=True): | ||||||
|  |         lang = self.partner_id.lang | ||||||
|  |         lang_objs = self.env['res.lang'].search([('code', '=', lang)]) | ||||||
|  |         if not lang_objs: | ||||||
|  |             lang_objs = self.env['res.lang'].search([], limit=1) | ||||||
|  |         lang_obj = lang_objs[0] | ||||||
|  | 
 | ||||||
|  |         res = lang_obj.format('%.' + str(2) + 'f', value, grouping=True, monetary=True) | ||||||
|  |         currency_obj = self.currency_id | ||||||
|  | 
 | ||||||
|  |         if currency_obj and currency_obj.symbol and currency: | ||||||
|  |             if currency_obj.position == 'after': | ||||||
|  |                 res = '%s %s' % (res, currency_obj.symbol) | ||||||
|  |             elif currency_obj and currency_obj.position == 'before': | ||||||
|  |                 res = '%s %s' % (currency_obj.symbol, res) | ||||||
|  |         return res | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class SaleOrderLine(models.Model): | class SaleOrderLine(models.Model): | ||||||
|     _inherit = 'sale.order.line' |     _inherit = 'sale.order.line' | ||||||
|  | @ -442,21 +460,23 @@ class SaleOrderLine(models.Model): | ||||||
|     @api.multi |     @api.multi | ||||||
|     def calc_discount(self): |     def calc_discount(self): | ||||||
|         discount = 0.0 |         discount = 0.0 | ||||||
|         context_partner = dict(self.env.context, partner_id=self.order_id.partner_invoice_id.id, date=self.order_id.date_order) |         context_partner = dict(self.env.context, partner_id=self.order_id.partner_invoice_id.id, | ||||||
|  |                                date=self.order_id.date_order) | ||||||
|         pricelist_context = dict(context_partner, uom=self.product_uom.id) |         pricelist_context = dict(context_partner, uom=self.product_uom.id) | ||||||
| 
 | 
 | ||||||
|         price, rule_id = self.order_id.pricelist_id.with_context(pricelist_context).get_product_price_rule( |         pricelist_id = self.order_id.partner_invoice_id.property_product_pricelist | ||||||
|  |         price, rule_id = pricelist_id.with_context(pricelist_context).get_product_price_rule( | ||||||
|             self.product_id, self.product_uom_qty or 1.0, self.order_id.partner_invoice_id) |             self.product_id, self.product_uom_qty or 1.0, self.order_id.partner_invoice_id) | ||||||
|         new_list_price, currency_id = self.with_context(context_partner)._get_real_price_currency(self.product_id, |         new_list_price, currency_id = self.with_context(context_partner)._get_real_price_currency(self.product_id, | ||||||
|                                                                                                   rule_id, |                                                                                                   rule_id, | ||||||
|                                                                                                   self.product_uom_qty, |                                                                                                   self.product_uom_qty, | ||||||
|                                                                                                   self.product_uom, |                                                                                                   self.product_uom, | ||||||
|                                                                                                   self.order_id.pricelist_id.id) |                                                                                                   pricelist_id.id) | ||||||
| 
 | 
 | ||||||
|         if new_list_price != 0: |         if new_list_price != 0: | ||||||
|             if self.order_id.pricelist_id.currency_id.id != currency_id: |             if pricelist_id.currency_id.id != currency_id: | ||||||
|                 # we need new_list_price in the same currency as price, which is in the SO's pricelist's currency |                 # we need new_list_price in the same currency as price, which is in the SO's pricelist's currency | ||||||
|                 new_list_price = self.env['res.currency'].browse(currency_id).with_context(context_partner).compute( |                 new_list_price = self.env['res.currency'].browse(currency_id).with_context(context_partner).compute( | ||||||
|                     new_list_price, self.order_id.pricelist_id.currency_id) |                     new_list_price, pricelist_id.currency_id) | ||||||
|             discount = (new_list_price - price) / new_list_price * 100 |             discount = (new_list_price - price) / new_list_price * 100 | ||||||
|         return discount |         return discount | ||||||
|  |  | ||||||
|  | @ -88,9 +88,9 @@ | ||||||
|                         <thead class="table-header"> |                         <thead class="table-header"> | ||||||
|                             <tr> |                             <tr> | ||||||
|                                 <th class="text-center">Pos.</th> |                                 <th class="text-center">Pos.</th> | ||||||
|                                 <th class="text-center">Anzahl</th> |                                 <th class="text-tight">Anzahl</th> | ||||||
|                                 <th class="text-right">Gewicht</th> |                                 <th class="text-right">Gewicht</th> | ||||||
|                                 <th class="text-right"></th> |                                 <th class="text-right"/> | ||||||
|                                 <th class="text-left">Artikel</th> |                                 <th class="text-left">Artikel</th> | ||||||
|                                 <th class="text-right">EP</th> |                                 <th class="text-right">EP</th> | ||||||
|                                 <th class="text-right" t-if="discount_is_set">Rabatt</th> |                                 <th class="text-right" t-if="discount_is_set">Rabatt</th> | ||||||
|  | @ -104,7 +104,7 @@ | ||||||
|                                 <tr t-if="layout_category['name'] != 'Uncategorized'"> |                                 <tr t-if="layout_category['name'] != 'Uncategorized'"> | ||||||
|                                     <td colspan="6"> |                                     <td colspan="6"> | ||||||
|                                         <strong> |                                         <strong> | ||||||
|                                             <t t-esc="layout_category['name']"/> - <t t-esc="o.partner_id.ref"/><t t-if="layout_category['confirmation_nr']"> - <t t-esc="layout_category['confirmation_nr']"/></t> |                                             <t t-esc="layout_category['name']"/> - <t t-esc="o.partner_id.name"/><t t-if="layout_category['confirmation_nr']"> - <t t-esc="layout_category['confirmation_nr']"/></t> | ||||||
|                                         </strong> |                                         </strong> | ||||||
|                                     </td> |                                     </td> | ||||||
|                                     <td class="text-right" t-if="discount_is_set"/> |                                     <td class="text-right" t-if="discount_is_set"/> | ||||||
|  | @ -122,7 +122,7 @@ | ||||||
|                                             <span t-esc="pos_nr"/> |                                             <span t-esc="pos_nr"/> | ||||||
|                                         </td> |                                         </td> | ||||||
|                                         <td class="text-right"> |                                         <td class="text-right"> | ||||||
|                                             <span t-field="invoice_line.quantity"/> |                                             <span t-esc="o._formatLang(invoice_line.quantity, False).strip('0').strip(',')"/> | ||||||
|                                         </td> |                                         </td> | ||||||
|                                         <td class="text-right"> |                                         <td class="text-right"> | ||||||
|                                             <span t-field="invoice_line.weight"/> |                                             <span t-field="invoice_line.weight"/> | ||||||
|  |  | ||||||
|  | @ -78,9 +78,9 @@ | ||||||
|                     <thead class="table-header"> |                     <thead class="table-header"> | ||||||
|                         <tr> |                         <tr> | ||||||
|                             <th class="text-center">Pos.</th> |                             <th class="text-center">Pos.</th> | ||||||
|                             <th class="text-center">Anzahl</th> |                             <th class="text-right">Anzahl</th> | ||||||
|                             <th class="text-right">Gewicht</th> |                             <th class="text-right">Gewicht</th> | ||||||
|                             <th class="text-right"></th> |                             <th class="text-right"/> | ||||||
|                             <th class="text-left">Artikel</th> |                             <th class="text-left">Artikel</th> | ||||||
|                             <th class="text-right">EP</th> |                             <th class="text-right">EP</th> | ||||||
|                             <th class="text-right" t-if="discount_is_set">Rabatt</th> |                             <th class="text-right" t-if="discount_is_set">Rabatt</th> | ||||||
|  | @ -95,8 +95,8 @@ | ||||||
|                                 <td class="text-center"> |                                 <td class="text-center"> | ||||||
|                                     <span t-esc="pos_nr"/> |                                     <span t-esc="pos_nr"/> | ||||||
|                                 </td> |                                 </td> | ||||||
|                                 <td class="text-left"> |                                 <td class="text-right"> | ||||||
|                                     <span t-field="order_line.product_uom_qty"/> |                                     <span t-esc="o._formatLang(order_line.product_uom_qty, False).strip('0').strip(',')"/> | ||||||
|                                 </td> |                                 </td> | ||||||
|                                 <td class="text-right"> |                                 <td class="text-right"> | ||||||
|                                     <span t-field="order_line.weight"/> kg |                                     <span t-field="order_line.weight"/> kg | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue