Fall 5557: Änderungswünsche vom Workshop Termin am 12.04.2018
parent
2411057beb
commit
4b9629d9b0
|
|
@ -393,12 +393,28 @@ class SaleOrderLine(models.Model):
|
|||
from_designbox = fields.Boolean(string='I', readonly=True, help='Import von externem System')
|
||||
product_id = fields.Many2one(domain=[('sale_ok', '=', True), ('can_be_sold_unconfigured', '=', True)])
|
||||
weight = fields.Float(string='Gewicht', compute='_compute_weight')
|
||||
intrastat_id = fields.Many2one(comodel_name='report.intrastat.code', string='Intrastat Code',
|
||||
compute="_compute_intrastat_id")
|
||||
intrastat_id = fields.Many2one(comodel_name='report.intrastat.code', string='Intrastat Code')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
if vals.get('intrastat_id', None) is None:
|
||||
if vals.get('lot_id', False):
|
||||
vals.update(intrastat_id=self.env['stock.production.lot'].browse(vals['lot_id']).intrastat_id.id)
|
||||
elif vals.get('product_id', False):
|
||||
vals.update(intrastat_id=self.env['product.template'].browse(vals['product_id']).intrastat_id.id)
|
||||
return super(SaleOrderLine, self).create(vals)
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
for record in self:
|
||||
lot_id = record.lot_id if 'lot_id' not in vals else vals.get('lot_id', False)
|
||||
if vals.get('intrastat_id', False) and lot_id:
|
||||
self.env['stock.production.lot'].browse([vals.get('lot_id', False)]).write({
|
||||
'intrastat_id': vals.get('intrastat_id')
|
||||
})
|
||||
elif vals.get('intrastat_id', False) and not lot_id:
|
||||
raise UserError(_('Der Intrastrat Code kann nur gesetzt werden wenn ein Lot angegeben wurde.'))
|
||||
|
||||
if record.from_designbox and set(vals.keys()).intersection(
|
||||
['product_uom_qty', 'product_uom', 'price_unit']):
|
||||
raise ValidationError(_("Menge und Preis können von Produkten aus der Designbox nicht geändert werden"))
|
||||
|
|
@ -430,11 +446,6 @@ class SaleOrderLine(models.Model):
|
|||
for record in self:
|
||||
record.weight = record.lot_id.weight or record.product_id.weight
|
||||
|
||||
@api.multi
|
||||
def _compute_intrastat_id(self):
|
||||
for record in self:
|
||||
record.intrastat_id = record.lot_id.intrastat_id.id or record.product_id.intrastat_id.id
|
||||
|
||||
@api.multi
|
||||
def _prepare_invoice_line(self, qty):
|
||||
self.ensure_one()
|
||||
|
|
|
|||
|
|
@ -25,10 +25,16 @@
|
|||
<field name="assembly_notes"/>
|
||||
</group>
|
||||
</field>
|
||||
<xpath expr="//field[@name='order_line']/form//field[@name='name']" position="after">
|
||||
<field name="intrastat_id"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/form//field[@name='product_id']" position="after">
|
||||
<field name="lot_id"/>
|
||||
<field name="from_designbox"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/tree//field[@name='name']" position="after">
|
||||
<field name="intrastat_id"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/tree//field[@name='product_id']" position="after">
|
||||
<field name="lot_id" options="{'no_open': True}"/>
|
||||
<button name="action_show_lot" string="Lot" type="object" icon="fa-list"
|
||||
|
|
@ -131,6 +137,7 @@
|
|||
<filter name="customer" position="after">
|
||||
<filter string="PG Status" domain="[]" context="{'group_by':'assembly_state'}"/>
|
||||
<filter string="Rechnungsadresse" domain="[]" context="{'group_by':'partner_invoice_id'}"/>
|
||||
<filter string="Auftragsart" domain="[]" context="{'group_by':'order_type'}"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -138,11 +138,15 @@
|
|||
<span t-esc="pos_nr"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o._formatLang(invoice_line.quantity, False).strip('0').strip(',')"/>
|
||||
<t t-if="invoice_line.quantity">
|
||||
<span t-esc="o._formatLang(invoice_line.quantity, False).strip('0').strip(',').strip('.')"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="invoice_line.weight"/>
|
||||
kg
|
||||
<t t-if="invoice_line.weight">
|
||||
<span t-field="invoice_line.weight"/>
|
||||
kg
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right"/>
|
||||
<td class="text-left">
|
||||
|
|
|
|||
|
|
@ -127,11 +127,15 @@
|
|||
<span t-esc="pos_nr"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o._formatLang(order_line.product_uom_qty, False).strip('0').strip(',')"/>
|
||||
<t t-if="order_line.product_uom_qty">
|
||||
<span t-esc="o._formatLang(order_line.product_uom_qty, False).strip('0').strip(',').strip('.')"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="order_line.weight"/>
|
||||
kg
|
||||
<t t-if="order_line.weight">
|
||||
<span t-field="order_line.weight"/>
|
||||
kg
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
</td>
|
||||
|
|
@ -232,7 +236,7 @@
|
|||
<span t-esc="o.incoterm.name"/>
|
||||
<br/>
|
||||
</p>
|
||||
<p class="col-xs-12" t-if="o.payment_term_id">
|
||||
<p class="col-xs-12" t-if="o.payment_term_id and not o.partner_invoice_id.is_retailer">
|
||||
Zahlungskonditionen:
|
||||
<span t-esc="o.payment_term_id.name"/>
|
||||
<br/>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class AccountInvoiceLine(models.Model):
|
|||
compute='_compute_price_reduce', required=True, store=True,
|
||||
help='Rabattierter Einzelpreis, inkludiert bereits den Rabatt und ist auf 2 Stellen '
|
||||
'kaufmännisch gerundet.')
|
||||
hide_discount = fields.Boolean(string='Rabatt verstecken')
|
||||
hide_discount = fields.Boolean(string='RV')
|
||||
|
||||
@api.multi
|
||||
@api.depends('price_unit', 'discount')
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ from odoo.tools import float_round
|
|||
class SaleOrderLine(models.Model):
|
||||
_inherit = 'sale.order.line'
|
||||
|
||||
hide_discount = fields.Boolean(string='Rabatt verstecken')
|
||||
hide_discount = fields.Boolean(string='RV')
|
||||
|
||||
@api.multi
|
||||
@api.depends('product_uom_qty', 'discount', 'price_unit', 'tax_id')
|
||||
|
|
|
|||
Loading…
Reference in New Issue