This commit is contained in:
oscar alvarez 2023-01-14 10:33:01 -05:00
parent e0ae03deb0
commit c0707bba8a
2 changed files with 12 additions and 29 deletions

View File

@ -18,24 +18,18 @@ STATES = {
class DEX(Workflow, ModelSQL, ModelView):
"DEX"
__name__ = "exportation.dex"
_rec_name = 'number'
number = fields.Char('Number', states=STATES)
issue_date = fields.Date('Issue Date', required=True, states=STATES)
company = fields.Many2One('company.company', 'Company', required=True,
states=STATES)
# freight_forwader = fields.Many2One('party.party', 'Freight Forwader',
# required=True, select=True)
customer = fields.Many2One('party.party', 'Customer', select=True,
states=STATES, required=True)
invoice = fields.Many2One('account.invoice', 'invoice', states=STATES, domain=[
('party', '=', Eval('customer')),
('company', '=', Eval('company')),
])
invoice_exchange_rate = fields.Float('Invoice Exchange Rate',
digits=(16, 2))
invoice_exchange_rate = fields.Float('Invoice Exchange Rate', digits=(16, 2))
currency = fields.Many2One('currency.currency', 'Currency', states=STATES,
required=True)
invoiced_amount = fields.Numeric('Invoiced Amount', digits=(16, 2),
@ -75,10 +69,10 @@ class DEX(Workflow, ModelSQL, ModelView):
'invisible': True,
},
'refresh': {
'invisible': Eval('state') == 'draft',
'icon': 'tryton-refresh',
'depends': ['state'],
},
'invisible': Eval('state') == 'draft',
'icon': 'tryton-refresh',
'depends': ['state'],
},
})
@staticmethod
@ -139,7 +133,7 @@ class DEX(Workflow, ModelSQL, ModelView):
Currency = Pool().get('currency.currency')
ctx = {'date': self.invoice.invoice_date}
with Transaction().set_context(ctx):
rates= Currency.get_rate([self.currency], name=None)
rates = Currency.get_rate([self.currency], name=None)
try:
rate = round((1/rates[self.currency.id]), 2)
except:
@ -147,7 +141,6 @@ class DEX(Workflow, ModelSQL, ModelView):
self.invoice_exchange_rate = float(rate)
def get_amounts(self, name):
amount_for_exchange = []
amount_receivable = []
if self.lines:
@ -160,7 +153,7 @@ class DEX(Workflow, ModelSQL, ModelView):
if name == 'amount_receivable':
return (round(self.invoiced_amount - sum(amount_receivable), 2) if self.invoiced_amount else 0)
else:
return round(sum(amount_receivable) - sum(amount_for_exchange),2)
return round(sum(amount_receivable) - sum(amount_for_exchange), 2)
def get_conversion_of_invoiced_amount(self, name=None):
res = 0
@ -168,15 +161,6 @@ class DEX(Workflow, ModelSQL, ModelView):
res = self.invoiced_amount * Decimal(self.invoice_exchange_rate)
return round(res, 2)
# @classmethod
# def get_conversion_of_invoiced_amount(cls, records, name):
# print('ingresa a este')
# res = dict((x.id, Decimal(0)) for x in records)
# for rec in records:
# if rec.invoiced_amount and rec.invoice_exchange_rate:
# res[rec.id] = rec.invoiced_amount * Decimal(rec.invoice_exchange_rate)
# return res
class DEXLine(ModelSQL, ModelView):
"DEX Line"
@ -235,7 +219,7 @@ class DEXLine(ModelSQL, ModelView):
return res
def get_currency(self, name=None):
currency=None
currency = None
if name == 'currency' and self.dex.currency:
currency = self.dex.currency.id
elif name == 'currency_company' and self.dex.company:
@ -247,16 +231,15 @@ class ForeignExhangeTrading(Workflow, ModelSQL, ModelView):
"Foreign Exhange Trading"
__name__ = "foreign.exchange.trading"
_rec_name = 'number'
bank = fields.Many2One('bank', 'Bank', required=True)
company = fields.Many2One('company.company', 'Company', required=True,
states=STATES)
number = fields.Char('Number', states=STATES)
exchange_date = fields.Date('Exchange Date')
exchange_rate = fields.Float('Exchange Rate')
total_exchange = fields.Function(fields.Numeric('Total Exchange', digits=(16,2)),
'get_total_exchange')
lines = fields.One2Many('foreign.exchange.trading_line', 'exchange', 'Lines')
total_exchange = fields.Function(fields.Numeric('Total Exchange',
digits=(16,2)), 'get_total_exchange')
lines = fields.One2Many('foreign.exchange.trading_line', 'exchange', 'Lines')
state = fields.Selection([
('draft', 'Draft'),
('confirmed', 'Confirmed'),
@ -378,7 +361,6 @@ class ForeignExhangeTrading(Workflow, ModelSQL, ModelView):
class ForeignExhangeTradingLine(ModelSQL, ModelView):
"Foreign Exhange Trading Line"
__name__ = "foreign.exchange.trading_line"
exchange = fields.Many2One('foreign.exchange.trading', 'Exchange',
required=True)
dex = fields.Many2One('exportation.dex', 'DEX', required=True)

View File

@ -20,6 +20,7 @@ class Company(metaclass=PoolMeta):
class CustomsGlobal(ModelSQL, ModelView):
'Party Customs Global'
__name__ = 'party.customs_global'
_rec_name = 'global_custom'
party = fields.Many2One('party.party', 'Party', ondelete='CASCADE',
required=True)
export_target_city = fields.Many2One('party.city_code', 'Target City',