17.01.26
This commit is contained in:
@@ -1857,77 +1857,77 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
|
|||||||
else:
|
else:
|
||||||
lots_to_invoice = self.lots
|
lots_to_invoice = self.lots
|
||||||
for l in lots_to_invoice:
|
for l in lots_to_invoice:
|
||||||
#if l.lot_type == 'physic':
|
if l.lot_type == 'physic':
|
||||||
invoice_line = InvoiceLine()
|
invoice_line = InvoiceLine()
|
||||||
invoice_line.type = self.type
|
invoice_line.type = self.type
|
||||||
invoice_line.currency = self.currency
|
invoice_line.currency = self.currency
|
||||||
invoice_line.company = self.company
|
invoice_line.company = self.company
|
||||||
invoice_line.description = self.description
|
invoice_line.description = self.description
|
||||||
invoice_line.note = self.note
|
invoice_line.note = self.note
|
||||||
invoice_line.origin = self
|
invoice_line.origin = self
|
||||||
qt, gross_qt = l.get_hist_quantity(0)
|
qt, gross_qt = l.get_hist_quantity(0)
|
||||||
quantity = float(qt)
|
quantity = float(qt)
|
||||||
quantity = Uom.compute_qty(l.lot_unit_line, quantity, self.unit)
|
quantity = Uom.compute_qty(l.lot_unit_line, quantity, self.unit)
|
||||||
if self.unit:
|
if self.unit:
|
||||||
quantity = self.unit.round(quantity)
|
quantity = self.unit.round(quantity)
|
||||||
invoice_line.unit_price = l.get_lot_price()
|
invoice_line.unit_price = l.get_lot_price()
|
||||||
invoice_line.product = l.lot_product
|
invoice_line.product = l.lot_product
|
||||||
invoice_line.quantity = quantity
|
invoice_line.quantity = quantity
|
||||||
if not invoice_line.quantity:
|
if not invoice_line.quantity:
|
||||||
return []
|
return []
|
||||||
invoice_line.unit = self.unit
|
invoice_line.unit = self.unit
|
||||||
invoice_line.taxes = self.taxes
|
invoice_line.taxes = self.taxes
|
||||||
if self.company.purchase_taxes_expense:
|
if self.company.purchase_taxes_expense:
|
||||||
invoice_line.taxes_deductible_rate = 0
|
invoice_line.taxes_deductible_rate = 0
|
||||||
elif self.product:
|
elif self.product:
|
||||||
invoice_line.taxes_deductible_rate = (
|
invoice_line.taxes_deductible_rate = (
|
||||||
self.product.supplier_taxes_deductible_rate_used)
|
self.product.supplier_taxes_deductible_rate_used)
|
||||||
invoice_line.invoice_type = 'in'
|
invoice_line.invoice_type = 'in'
|
||||||
if self.product:
|
if self.product:
|
||||||
invoice_line.account = self.product.account_stock_in_used
|
invoice_line.account = self.product.account_stock_in_used
|
||||||
if not invoice_line.account:
|
if not invoice_line.account:
|
||||||
raise AccountError(
|
raise AccountError(
|
||||||
gettext('purchase'
|
gettext('purchase'
|
||||||
'.msg_purchase_product_missing_account_expense',
|
'.msg_purchase_product_missing_account_expense',
|
||||||
purchase=self.purchase.rec_name,
|
purchase=self.purchase.rec_name,
|
||||||
product=self.product.rec_name))
|
product=self.product.rec_name))
|
||||||
else:
|
else:
|
||||||
invoice_line.account = account_config.get_multivalue(
|
invoice_line.account = account_config.get_multivalue(
|
||||||
'default_category_account_expense', company=self.company.id)
|
'default_category_account_expense', company=self.company.id)
|
||||||
if not invoice_line.account:
|
if not invoice_line.account:
|
||||||
raise AccountError(
|
raise AccountError(
|
||||||
gettext('purchase'
|
gettext('purchase'
|
||||||
'.msg_purchase_missing_account_expense',
|
'.msg_purchase_missing_account_expense',
|
||||||
purchase=self.purchase.rec_name))
|
purchase=self.purchase.rec_name))
|
||||||
if action == 'prov':
|
if action == 'prov':
|
||||||
invoice_line.description = 'Pro forma'
|
invoice_line.description = 'Pro forma'
|
||||||
elif action == 'final':
|
elif action == 'final':
|
||||||
invoice_line.description = 'Final'
|
invoice_line.description = 'Final'
|
||||||
elif action == 'service':
|
elif action == 'service':
|
||||||
invoice_line.description = 'Service'
|
invoice_line.description = 'Service'
|
||||||
#invoice_line.stock_moves = self._get_invoice_line_moves()
|
#invoice_line.stock_moves = self._get_invoice_line_moves()
|
||||||
#invoice_line.stock_moves = [l.get_current_supplier_move()]
|
#invoice_line.stock_moves = [l.get_current_supplier_move()]
|
||||||
invoice_line.lot = l.id
|
invoice_line.lot = l.id
|
||||||
if self.product.type == 'service':
|
if self.product.type == 'service':
|
||||||
invoice_line.unit_price = self.unit_price
|
invoice_line.unit_price = self.unit_price
|
||||||
invoice_line.product = self.product
|
invoice_line.product = self.product
|
||||||
invoice_line.stock_moves = []
|
invoice_line.stock_moves = []
|
||||||
Fee = Pool().get('fee.fee')
|
Fee = Pool().get('fee.fee')
|
||||||
fee = Fee.search(['purchase','=',self.purchase.id])
|
fee = Fee.search(['purchase','=',self.purchase.id])
|
||||||
if fee:
|
if fee:
|
||||||
invoice_line.fee = fee[0]
|
invoice_line.fee = fee[0]
|
||||||
lines.append(invoice_line)
|
lines.append(invoice_line)
|
||||||
logger.info("GETINVLINE:%s",self.product.type)
|
logger.info("GETINVLINE:%s",self.product.type)
|
||||||
logger.info("GETINVLINE2:%s",l.invoice_line_prov)
|
logger.info("GETINVLINE2:%s",l.invoice_line_prov)
|
||||||
if l.invoice_line_prov and self.product.type != 'service':
|
if l.invoice_line_prov and self.product.type != 'service':
|
||||||
invoice_line_, = InvoiceLine.copy([l.invoice_line_prov], default={
|
invoice_line_, = InvoiceLine.copy([l.invoice_line_prov], default={
|
||||||
'invoice': None,
|
'invoice': None,
|
||||||
'quantity': -l.invoice_line_prov.quantity,
|
'quantity': -l.invoice_line_prov.quantity,
|
||||||
'unit_price': l.invoice_line_prov.unit_price,
|
'unit_price': l.invoice_line_prov.unit_price,
|
||||||
'party': l.invoice_line_prov.invoice.party,
|
'party': l.invoice_line_prov.invoice.party,
|
||||||
'origin': str(self),
|
'origin': str(self),
|
||||||
})
|
})
|
||||||
lines.append(invoice_line_)
|
lines.append(invoice_line_)
|
||||||
return lines
|
return lines
|
||||||
|
|
||||||
def _get_invoice_line_quantity(self):
|
def _get_invoice_line_quantity(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user