123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- '''Created on 1 Feb 2023 @author: vnc-console'''
- # coding: UTF-8
- import yagmail
- from jinja2 import Environment, PackageLoader
- from beautiful_date import * # @UnusedWildImport
- from winmentor import WinMentor
- from .taxes import Taxes
- class M_mailer(object):
- date = (D.today() - 1 * months).strftime('%m_%Y')
- mentor_date = (D.today() - 1 * months - 5 * days).strftime('%Y_%m')
- templates = Environment(loader=PackageLoader('winmentor', 'templates'))
- template = templates.get_template('body.html')
-
- @staticmethod
- def get_vat_period(vat_text):
- if vat_text == 'TVA-1':
- ret = 'Lunara'
- elif vat_text == 'TVA-2':
- ret = 'Trimestriala'
- else:
- ret = 'Neplatitor de TVA'
- return ret
-
- @staticmethod
- def get_tax_type(tax_text):
- if tax_text == 'IMP-1':
- ret = 'profit 16%'
- elif tax_text == 'IMP-21':
- ret = 'micro 1%'
- elif tax_text == 'IMP-23':
- ret = 'micro 3%'
- else:
- ret = ''
- return ret
-
- @staticmethod
- def due_date():
- weekend = ['Saturday', 'Sunday']
- d_date = (25/M[D.today().month]/D.today().year)
- if d_date.strftime('%A') in weekend:
- d_date = (25/M[D.today().month]/D.today().year) + MO
- return d_date.strftime('%d-%m-%Y')
-
- @property
- def body(self):
- return self._body
-
- def tax_mailer(self, mentor_list: list,
- mail_dict: dict,
- mentor: WinMentor,
- yag: yagmail.SMTP,
- mentor_month: 'str'=None,
- send: bool=False) -> None:
- print(f'period should be "{M_mailer.date}"', end='\n' * 2)
- taxes = []
- for company in mentor_list:
- for name, contact in mail_dict.items():
- # print(company[10].split(sep=',')[1].split(sep=';'))
- condition = name == company[0]
- if condition:
- if mentor_month:
- if mentor_month >= mentor.get_last_month(company[6]):
- current_month = mentor.get_last_month(company[6])
- else:
- current_month = mentor_month
- else:
- current_month = mentor.get_last_month(company[6])
- print(current_month)
- if current_month == M_mailer.mentor_date:
- # print('True')
- account = mentor.verif_cont(company[6] + '/' + current_month + './NCONT.DB')
- print(f'...processing-->>{name}')
- vat = mentor.vat_payable(account)
- vat_final = mentor.vat_final(account)
- contrs = [mentor.CAS_payable(account),
- mentor.CASS_payable(account),
- mentor.sal_tax_payable(account)]
- contr = sum(contrs)
- cam = mentor.cam_payable(account)
- tax_payable = mentor.tax_payable(account)
- div_tax = mentor.div_tax_payable(account)
- an_inc = mentor.an_inc(account, 0, 6, 8)
- result = mentor.result(account, 0, 6, 8)
- vat_period = M_mailer.get_vat_period(company[10].split(sep=',')[0])
- tax_type = M_mailer.get_tax_type(company[10].split(sep=',')[1].split(sep=';')[0])
- data = {'name': name,
- 'date': M_mailer.date,
- 'vat': vat,
- 'vat_final': vat_final,
- 'contr': contr,
- 'cam': cam,
- 'tax_payable': tax_payable,
- 'div_tax': div_tax,
- 'an_inc': an_inc,
- 'result': result,
- 'tax_type': tax_type,
- 'vat_period': vat_period,
- 'due_date': M_mailer.due_date()}
- body = M_mailer.template.render(data)
- self._body = body
- tax = Taxes(name=name, vat=vat, vat_final=vat_final,contribs=contr,
- cam=cam, income_tax=tax_payable, dividend_tax=div_tax,
- return_=an_inc, result=result, tax_type=tax_type, period=M_mailer.mentor_date)
- taxes.append(tax)
- if send:
- yag.send(to=contact['mail'], subject='Great!', contents=body)
- return taxes
|