From 026caa88e5cce4fe5605a652a98a64938f710cfb Mon Sep 17 00:00:00 2001 From: Ahmed Aly Date: Tue, 8 May 2018 17:15:05 +0200 Subject: [PATCH] =?UTF-8?q?Fall=205588:=20=C3=9Cbernahme=20von=20Steuerzuo?= =?UTF-8?q?rdnung=20und=20Zahlungsbedingung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ext/custom-addons/dp_custom/models/sale.py | 61 +++++++++++++++++++--- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/ext/custom-addons/dp_custom/models/sale.py b/ext/custom-addons/dp_custom/models/sale.py index e8d00995..c19c05aa 100644 --- a/ext/custom-addons/dp_custom/models/sale.py +++ b/ext/custom-addons/dp_custom/models/sale.py @@ -22,13 +22,11 @@ import re from datetime import datetime from odoo import api, fields, models, _ -from odoo.tools import float_is_zero from odoo.exceptions import ValidationError, UserError from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT from odoo.tools import float_compare -from odoo.http import request +from odoo.tools import float_is_zero -import requests class SaleOrder(models.Model): _name = 'sale.order' @@ -65,10 +63,10 @@ class SaleOrder(models.Model): pg9_call = fields.Char(string='PG9-Auftrag', compute='_pg9_call', store=False) @api.multi - def _pg9_call(self) : - for record in self : + def _pg9_call(self): + for record in self: if record.origin != False: - xref = 'xref:'+record.origin + xref = 'xref:' + record.origin record.pg9_call = 'http://localhost:9531/pg9/order/' + xref # end def _pg9_call @@ -211,9 +209,17 @@ class SaleOrder(models.Model): payment_term = partner.property_payment_term_id if partner.retail_partner_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({ '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, 'payment_term_id': payment_term.id, 'partner_shipping_id': delivery_partner.id, @@ -403,6 +409,47 @@ class SaleOrder(models.Model): res = '%s %s' % (currency_obj.symbol, 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): _inherit = 'sale.order.line'