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