diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py
index a376774..e4bac01 100755
--- a/modules/account_invoice/payment_term.py
+++ b/modules/account_invoice/payment_term.py
@@ -155,12 +155,10 @@ class PaymentTermLine(sequence_ordered(), ModelSQL, ModelView):
self.ratio = self.round(1 / self.divisor,
self.__class__.ratio.digits[1])
- def get_date(self, date, purchase_line = None):
+ def get_date(self, date, line = None):
#find date based on trigger:
- if purchase_line and self.trigger_event:
- PurchaseLine = Pool().get('purchase.line')
- purchase_line = PurchaseLine(purchase_line)
- trigger_date = purchase_line.get_date(self.trigger_event)
+ if line and self.trigger_event:
+ trigger_date = line.get_date(self.trigger_event)
if trigger_date:
date = trigger_date
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index e56219c..8ca056d 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -57,7 +57,7 @@ class Fee(ModelSQL,ModelView):
('lumpsum', 'Lump sum'),
('perqt', 'Per qt'),
('pprice', '% price'),
- ('rate', '% Mth'),
+ ('rate', '% rate'),
('pcost', '% cost price'),
('ppack', 'Per packing'),
], 'Mode', required=True)
@@ -318,32 +318,34 @@ class Fee(ModelSQL,ModelView):
#take period with estimated trigger date
if self.line:
if self.line.purchase.payment_term:
- est_date = self.line.purchase.payment_term.get_date()
beg_date = self.fee_date if self.fee_date else Date.today()
- factor = InterestCalculator.calculate(
- start_date=beg_date,
- end_date=est_date,
- rate=self.price,
- rate_type='annual',
- convention='ACT/360',
- compounding='simple'
- )
+ est_date = self.line.purchase.payment_term[0].get_date(beg_date)
+ if est_date and beg_date:
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
- return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+ return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
if self.sale_line:
if self.sale_line.sale.payment_term:
- est_date = self.sale_line.sale.payment_term.get_date()
beg_date = self.fee_date if self.fee_date else Date.today()
- factor = InterestCalculator.calculate(
- start_date=beg_date,
- end_date=est_date,
- rate=self.price,
- rate_type='annual',
- convention='ACT/360',
- compounding='simple'
- )
+ est_date = self.sale_line.sale.payment_term.get_date(beg_date)
+ if est_date and beg_date:
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
- return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+ return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
elif self.mode == 'perqt':
if self.shipment_in:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 08999db..374c298 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -460,10 +460,12 @@ class SaleLine(metaclass=PoolMeta):
LotQt = Pool().get('lot.qt')
return LotQt.search([('lot_s','=',self.lots[0].id),('lot_p','>',0)])
- # @fields.depends('quantity')
- # def on_change_with_quantity_theorical(self):
- # if not self.quantity_theorical:
- # return self.quantity
+ def get_date(self,trigger_event):
+ date = None
+ if self.estimated_date:
+ trigger_date = [d.estimated_date for d in self.estimated_date if d.trigger == trigger_event]
+ trigger_date = trigger_date[0] if trigger_date else None
+ return date
def get_tol_min(self,name):
if self.inherit_tol:
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index 4016a39..922dc9a 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -76,10 +76,10 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
+
+
+
\ No newline at end of file