From 6c11e12fc5145631b830f58fda50e9623dca4659 Mon Sep 17 00:00:00 2001 From: Andreas Osim Date: Fri, 29 Nov 2019 12:15:21 +0100 Subject: [PATCH] =?UTF-8?q?Allow=20modification=20of=20assembly=5Fstate=20?= =?UTF-8?q?for=20authorized=20group=20only=20(dp=5Fcustom.group=5Fallow=5F?= =?UTF-8?q?change=5Fpg=5Fstatus=20=3D=20"=C3=84ndern=20des=20PG-Status=20e?= =?UTF-8?q?rlauben")=20Fix=20resequence=20of=20sale.order.line=20(create)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ext/custom-addons/dp_custom/models/sale.py | 105 ++---------------- .../dp_custom/security/security.xml | 4 + .../dp_custom/views/sale_views.xml | 3 +- 3 files changed, 16 insertions(+), 96 deletions(-) diff --git a/ext/custom-addons/dp_custom/models/sale.py b/ext/custom-addons/dp_custom/models/sale.py index 20cf5050..93c034d2 100644 --- a/ext/custom-addons/dp_custom/models/sale.py +++ b/ext/custom-addons/dp_custom/models/sale.py @@ -391,101 +391,6 @@ class SaleOrder(models.Model): order_id.action_confirm() return {'id': order_id.id, 'name': order_id.name} - @api.model - def pg_create_quotation___1(self, vals): - """ - SST-3 - :param vals: - :return: - """ - # print('1') - if not vals.get('portal_id', False): - raise ValidationError( - _("Der Kunde mit der Portal-ID \'%s\' kann nicht zugeordnet werden") % vals['portal_id']) - partner = self.env['res.partner'].search([('portal_id', '=', vals['portal_id'])]) - if not partner.parent_id: - raise ValidationError( - _('Zu dem Kontakt mit der portal-ID %s existiert kein Unternehmen') % vals['portal_id']) - partner = partner.parent_id - vals['partner_id'] = partner.id - # print('2') - if not partner: - raise ValidationError( - _("Der Kunde mit der Portal-ID \'%s\' kann nicht zugeordnet werden") % vals['portal_id']) - del vals['portal_id'] - delivery_partner = self.env['res.partner'] - delivery_vals = {} - # print('3') - if vals.get('portal_delivery_id', False): - delivery_partner = self.env['res.partner'].search([('portal_id', '=', vals['portal_delivery_id'])]) - delivery_vals['portal_id'] = vals['portal_delivery_id'] - del vals['portal_delivery_id'] - for key in list(vals.keys()): - if key.startswith('delivery_'): - delivery_vals[key.replace('delivery_', '')] = vals[key] - del vals[key] - - # print('4') - delivery_partner.with_context(delivery_partner=True).check_not_specified_fields(delivery_vals) - delivery_vals = delivery_partner.correct_values(delivery_vals) - delivery_vals['parent_id'] = partner.id - - if delivery_partner: - # print('4a') - allowed_update_keys = ['firstname', 'lastname', 'midname', 'email', 'phone'] - for key in list(delivery_vals.keys()): - if key not in allowed_update_keys: - del delivery_vals[key] - # print('4a1') - delivery_partner.write(delivery_vals) - # print('4a2') - else: - # print('4b') - if not delivery_vals.get('type', False): - delivery_vals['type'] = 'delivery' - delivery_vals['property_delivery_carrier_id'] = partner.property_delivery_carrier_id.id - delivery_partner = delivery_partner.create(delivery_vals) - - # print('5') - attachment_vals = vals.pop('attachment_ids', False) - order_line_vals = vals.get('order_lines', False) - # if 'attachment_ids' in vals: del vals['attachment_ids'] - del vals['order_lines'] - # print('6') - self.check_not_specified_fields(vals) - vals = self.correct_values(vals) - 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']) - # print('7') - 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 - # print('8') - 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, - '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, - 'incoterm': partner.sale_incoterm_id.id, - 'carrier_id': delivery_partner.property_delivery_carrier_id.id - }) - # print('9') - order_id = self.create(vals) - if attachment_vals: - order_id.pg_create_sale_order_attachments(attachment_vals) - if order_line_vals: - order_id.pg_create_order_lines(order_line_vals) - if vals.get('confirm_order'): - order_id.action_confirm() - return {'id': order_id.id, 'name': order_id.name} - @api.multi def pg_create_sale_order_attachments(self, values): self.ensure_one() @@ -567,6 +472,16 @@ class SaleOrder(models.Model): 'fiscal_position_id', 'user_id', 'payment_term_id', 'partner_delivery_id', 'partner_invoice_id', 'assembly_state', 'confirmation_nr', 'confirm_order', 'order_type', 'internal_notes', 'from_designbox', 'discount', 'hide_discount', 'desired_delivery_date', 'sequence'] + @api.model + def create(self,vals): + order = super(SaleOrder, self).create(vals) + current_sequence = 0 + for order_line in order.order_line: + current_sequence += 1 + order_line.update({'sequence': current_sequence,}) + + return order + @api.multi def write(self, vals): res = super(SaleOrder, self).write(vals) diff --git a/ext/custom-addons/dp_custom/security/security.xml b/ext/custom-addons/dp_custom/security/security.xml index 0ebadfc0..081376ab 100644 --- a/ext/custom-addons/dp_custom/security/security.xml +++ b/ext/custom-addons/dp_custom/security/security.xml @@ -12,4 +12,8 @@ Informieren bei neuem Portalkunden Informieren bei neuem Portalkunden + + Ändern des PG-Status erlauben + Ändern des PG-Status erlauben + diff --git a/ext/custom-addons/dp_custom/views/sale_views.xml b/ext/custom-addons/dp_custom/views/sale_views.xml index e7b82744..02c8dcca 100644 --- a/ext/custom-addons/dp_custom/views/sale_views.xml +++ b/ext/custom-addons/dp_custom/views/sale_views.xml @@ -36,7 +36,8 @@ - + +