Fall 5588: Übernahme von Steuerzuordnung und Zahlungsbedingung
							parent
							
								
									5c03797092
								
							
						
					
					
						commit
						026caa88e5
					
				|  | @ -22,13 +22,11 @@ import re | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| 
 | 
 | ||||||
| from odoo import api, fields, models, _ | from odoo import api, fields, models, _ | ||||||
| from odoo.tools import float_is_zero |  | ||||||
| from odoo.exceptions import ValidationError, UserError | from odoo.exceptions import ValidationError, UserError | ||||||
| from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT | from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT | ||||||
| from odoo.tools import float_compare | from odoo.tools import float_compare | ||||||
| from odoo.http import request | from odoo.tools import float_is_zero | ||||||
| 
 | 
 | ||||||
| import requests |  | ||||||
| 
 | 
 | ||||||
| class SaleOrder(models.Model): | class SaleOrder(models.Model): | ||||||
|     _name = 'sale.order' |     _name = 'sale.order' | ||||||
|  | @ -211,9 +209,17 @@ class SaleOrder(models.Model): | ||||||
|         payment_term = partner.property_payment_term_id |         payment_term = partner.property_payment_term_id | ||||||
|         if partner.retail_partner_id: |         if partner.retail_partner_id: | ||||||
|             payment_term = partner.retail_partner_id.property_payment_term_id |             payment_term = partner.retail_partner_id.property_payment_term_id | ||||||
|  |         addr = partner.address_get(['delivery', 'invoice']) | ||||||
|  |         vals['partner_invoice_id'] = vals.setdefault('partner_invoice_id', addr['invoice']) | ||||||
|  |         partner_invoice_id = self.env['res.partner'].browse([vals['partner_invoice_id']]) | ||||||
|  |         fiscal_position_id = False | ||||||
|  |         if partner_invoice_id: | ||||||
|  |             if partner_invoice_id.property_account_position_id: | ||||||
|  |                 fiscal_position_id = partner_invoice_id.property_account_position_id.id | ||||||
|         vals.update({ |         vals.update({ | ||||||
|             'partner_id': partner.id, |             'partner_id': partner.id, | ||||||
|             'fiscal_position_id': partner.property_account_position_id.id, |             'partner_invoice_id': partner_invoice_id.id, | ||||||
|  |             'fiscal_position_id': fiscal_position_id, | ||||||
|             'user_id': partner.user_id.id, |             'user_id': partner.user_id.id, | ||||||
|             'payment_term_id': payment_term.id, |             'payment_term_id': payment_term.id, | ||||||
|             'partner_shipping_id': delivery_partner.id, |             'partner_shipping_id': delivery_partner.id, | ||||||
|  | @ -403,6 +409,47 @@ class SaleOrder(models.Model): | ||||||
|                 res = '%s %s' % (currency_obj.symbol, res) |                 res = '%s %s' % (currency_obj.symbol, res) | ||||||
|         return res |         return res | ||||||
| 
 | 
 | ||||||
|  |     @api.multi | ||||||
|  |     @api.onchange('partner_id') | ||||||
|  |     def onchange_partner_id(self): | ||||||
|  |         if not self.partner_id: | ||||||
|  |             self.update({ | ||||||
|  |                 'partner_invoice_id': False, | ||||||
|  |                 'partner_shipping_id': False, | ||||||
|  |             }) | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|  |         addr = self.partner_id.address_get(['delivery', 'invoice']) | ||||||
|  |         values = { | ||||||
|  |             'partner_invoice_id': addr['invoice'], | ||||||
|  |             'partner_shipping_id': addr['delivery'], | ||||||
|  |             'pricelist_id': self.partner_id.property_product_pricelist and self.partner_id.property_product_pricelist.id or False, | ||||||
|  |             'user_id': self.partner_id.user_id.id or self.env.uid | ||||||
|  |         } | ||||||
|  |         if self.env['ir.config_parameter'].sudo().get_param( | ||||||
|  |                 'sale.use_sale_note') and self.env.user.company_id.sale_note: | ||||||
|  |             values['note'] = self.with_context(lang=self.partner_id.lang).env.user.company_id.sale_note | ||||||
|  | 
 | ||||||
|  |         if self.partner_id.team_id: | ||||||
|  |             values['team_id'] = self.partner_id.team_id.id | ||||||
|  |         self.update(values) | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     @api.onchange('partner_invoice_id') | ||||||
|  |     def onchange_partner_invoice_id(self): | ||||||
|  |         if not self.partner_invoice_id: | ||||||
|  |             self.update({ | ||||||
|  |                 'payment_term_id': False, | ||||||
|  |                 'fiscal_position_id': False, | ||||||
|  |             }) | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|  |         values = { | ||||||
|  |             'fiscal_position_id': self.partner_invoice_id.property_account_position_id and self.partner_invoice_id.property_account_position_id.id or False, | ||||||
|  |             'payment_term_id': self.partner_invoice_id.property_payment_term_id and self.partner_invoice_id.property_payment_term_id.id or False, | ||||||
|  |         } | ||||||
|  |         self.update(values) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class SaleOrderLine(models.Model): | class SaleOrderLine(models.Model): | ||||||
|     _inherit = 'sale.order.line' |     _inherit = 'sale.order.line' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue