def ErrMessage(e, l_mail=False, s_subject='', s_body=''): """ Error message handler. :param e: Error object :param l_mail: Send mail and message :param s_subject: Mail subject :param s_body: Mail body :return: Nothing """ # IMPORT OWN MODULES from _my_modules import funcconf from _my_modules import funcfile from _my_modules import funcmail from _my_modules import funcsms # DECLARE VARIABLES s_mess = str(e).replace("'", "") s_mess = s_mess.replace('"', '') s_mess = s_mess.replace(':', '') s_mess = s_mess.replace('[', '') s_mess = s_mess.replace(']', '') s_mess = s_mess.replace('(', '') s_mess = s_mess.replace(')', '') if not funcconf.l_mail_project: l_mail = False # DISPLAY print(s_mess) print("E: ", e) print("TYPE(E): ", type(e)) print("TYPE(E)NAME: ", type(e).__name__) print("JOIN(E.ARGS: ", e.args) # DEFINE THE ERROR TEMPLATE AND MESSAGE template = "Exception type {0} occurred. Arguments:\n{1!r}" message = template.format(type(e).__name__, e.args) print("MESSAGE: ", message) # SEND MAIL if l_mail and s_subject != '' and s_body != '': # s_body1 = s_body + '\n' + type(e).__name__ + '\n' + "".join(e.args) s_body1 = s_body + '\n' + s_mess funcmail.Mail('std_fail_gmail', s_subject, s_body1) # SEND MESSAGE if funcconf.l_mess_project: # s_body1 = s_body + ' | ' + type(e).__name__ + ' | ' + "".join(e.args) s_body1 = s_body + ' | ' + s_mess funcsms.send_telegram('', 'administrator', s_body1) # WRITE ERROR TO LOG funcfile.writelog("%t ERROR: " + type(e).__name__) # funcfile.writelog("%t ERROR: " + "".join(e.args)) funcfile.writelog("%t ERROR: " + s_mess) return
def ErrMessage(e, l_mail=False, s_subject='', s_body=''): print(type(e)) print(e) template = "An exception of type {0} occurred. Arguments:\n{1!r}" message = template.format(type(e).__name__, e.args) if l_mail and s_subject != '' and s_body != '': s_body = s_body + '\n' + type(e).__name__ + '\n' + "".join(e.args) funcmail.Mail('std_fail_gmail', s_subject, s_body) funcfile.writelog("%t ERROR: " + type(e).__name__) funcfile.writelog("%t ERROR: " + "".join(e.args)) return
def test_student_general(): """ SCRIPT TO TEST STUDENT MASTER FILE :return: Nothing """ """***************************************************************************** ENVIRONMENT *****************************************************************************""" # Declare variables so_path = "W:/Vss_general/" # Source database path re_path = "R:/Vss/" # Results ed_path = "S:/_external_data/" so_file = "Vss_general.sqlite" # Source database s_sql = "" # SQL statements l_mail = True l_export = True # OPEN THE LOG funcfile.writelog("Now") funcfile.writelog("SCRIPT: C300_TEST_STUDENT_GENERAL") funcfile.writelog("---------------------------------") print("-------------------------") print("C300_TEST_STUDENT_GENERAL") print("-------------------------") # MESSAGE if funcconf.l_mess_project: funcsms.send_telegram("", "administrator", "<b>C300 Student master file tests</b>") """***************************************************************************** OPEN THE DATABASES *****************************************************************************""" print("OPEN THE DATABASES") funcfile.writelog("OPEN THE DATABASES") # Open the SOURCE file with sqlite3.connect(so_path+so_file) as so_conn: so_curs = so_conn.cursor() funcfile.writelog("OPEN DATABASE: " + so_file) # ATTACH VSS DATABASE print("Attach vss database...") so_curs.execute("ATTACH DATABASE 'W:/Vss/Vss.sqlite' AS 'VSS'") funcfile.writelog("%t ATTACH DATABASE: Vss.sqlite") so_curs.execute("ATTACH DATABASE 'W:/Vss/Vss_curr.sqlite' AS 'VSSCURR'") funcfile.writelog("%t ATTACH DATABASE: Vss_curr.sqlite") so_curs.execute("ATTACH DATABASE 'W:/Vss/Vss_prev.sqlite' AS 'VSSPREV'") funcfile.writelog("%t ATTACH DATABASE: Vss_prev.sqlite") """ **************************************************************************** BEGIN OF SCRIPT *****************************************************************************""" print("BEGIN OF SCRIPT") funcfile.writelog("BEGIN OF SCRIPT") funcfile.writelog("%t ---------- STUDENT ID NUMBER LIST ----------") # Import vss transactions from VSS.SQLITE ********************************* print("IDNo list import vss transactions from VSS.SQLITE...") sr_file = "X001aa_impo_vsstran" s_sql = "CREATE TABLE "+sr_file+" AS " + """ SELECT TRAN.FBUSENTID AS STUDENT, TRAN.FDEBTCOLLECTIONSITE AS CAMPUS, SUBSTR(TRAN.TRANSDATE,1,4) AS YEAR FROM VSSCURR.X010_Studytrans TRAN GROUP BY TRAN.FBUSENTID ORDER BY TRAN.FBUSENTID ;""" so_curs.execute("DROP TABLE IF EXISTS "+sr_file) so_curs.execute(s_sql) so_conn.commit() funcfile.writelog("%t BUILD TABLE: "+sr_file) # Import previously reported findings ****************************************** print("IDNo list import previously reported findings...") tb_name = "X001ac_impo_reported" so_curs.execute("DROP TABLE IF EXISTS " + tb_name) so_curs.execute("CREATE TABLE " + tb_name + "(PROCESS TEXT,FIELD1 INT,FIELD2 TEXT,FIELD3 TEXT,FIELD4 TEXT,FIELD5 TEXT,DATE_REPORTED TEXT,DATE_RETEST TEXT)") co = open(ed_path + "300_reported.txt", newline=None) co_reader = csv.reader(co) # Read the COLUMN database data for row in co_reader: # Populate the column variables if row[0] == "PROCESS": continue elif row[0] != "idno_list": continue else: s_cols = "INSERT INTO " + tb_name + " VALUES('" + row[0] + "','" + row[1] + "','" + row[2] + "','" + row[3] + "','" + row[4] + "','" + row[5] + "','" + row[6] + "','" + row[7] + "')" so_curs.execute(s_cols) so_conn.commit() # Close the imported data file co.close() funcfile.writelog("%t IMPORT TABLE: " + ed_path + "300_reported.txt (" + tb_name + ")" ) # Join the tran and party data ********************************************* print("IDNo list join the vss tran and party data...") sr_file = "X001ba_join_tran_vss" s_sql = "CREATE TABLE "+sr_file+" AS " + """ SELECT VSS.X000_party.IDNO, TRAN.STUDENT, VSS.X000_Party.FULL_NAME AS NAME, TRAN.YEAR, TRAN.CAMPUS, Trim(VSS.X000_Party.FIRSTNAMES) AS FIRSTNAME, VSS.X000_Party.INITIALS, VSS.X000_Party.SURNAME, VSS.X000_Party.TITLE, VSS.X000_Party.DATEOFBIRTH, VSS.X000_Party.GENDER, VSS.X000_Party.NATIONALITY, VSS.X000_Party.POPULATION, VSS.X000_Party.RACE, VSS.X000_Party.FAUDITUSERCODE AS PARTY_AUDITDATETIME, VSS.X000_Party.AUDITDATETIME AS PARTY_AUDITUSERCODE FROM X001aa_impo_vsstran TRAN Inner Join VSS.X000_Party ON VSS.X000_Party.KBUSINESSENTITYID = TRAN.STUDENT AND Length(Trim(VSS.X000_Party.IDNO)) = 13 ORDER BY TRAN.STUDENT ;""" so_curs.execute("DROP TABLE IF EXISTS "+sr_file) so_curs.execute(s_sql) so_conn.commit() funcfile.writelog("%t BUILD TABLE: "+sr_file) # Add previous reported ID list to current ID list ***************************** print("IDNo list join the previously reported id number list...") sr_file = "X001ca_join_prev_reported" s_sql = "CREATE TABLE " + sr_file + " AS" + """ SELECT TRAN.IDNO, TRAN.STUDENT, TRAN.NAME, TRAN.YEAR, TRAN.CAMPUS, TRAN.FIRSTNAME, TRAN.INITIALS, TRAN.SURNAME, TRAN.TITLE, TRAN.DATEOFBIRTH, TRAN.GENDER, TRAN.NATIONALITY, TRAN.POPULATION, TRAN.RACE, TRAN.PARTY_AUDITDATETIME, TRAN.PARTY_AUDITUSERCODE, IMPO.PROCESS AS PREV_PROCESS, IMPO.DATE_REPORTED AS PREV_DATE_REPORTED, IMPO.DATE_RETEST AS PREV_DATE_RETEST FROM X001ba_join_tran_vss TRAN Left Join X001ac_impo_reported IMPO ON IMPO.FIELD1 = TRAN.STUDENT AND IMPO.DATE_RETEST >= Date('%TODAY%') ;""" so_curs.execute("DROP TABLE IF EXISTS " + sr_file) s_sql = s_sql.replace("%TODAY%",funcdate.today()) so_curs.execute(s_sql) so_conn.commit() funcfile.writelog("%t BUILD TABLE: " + sr_file) # Add columns used to export new ID list print("IDNo list add prev reported columns...") so_curs.execute("ALTER TABLE "+sr_file+" ADD COLUMN PROCESS TEXT;") so_curs.execute("ALTER TABLE "+sr_file+" ADD COLUMN FIELD2 TEXT;") so_curs.execute("ALTER TABLE "+sr_file+" ADD COLUMN DATE_REPORTED TEXT;") so_curs.execute("ALTER TABLE "+sr_file+" ADD COLUMN DATE_RETEST TEXT;") so_curs.execute("UPDATE "+sr_file+" SET PROCESS = 'idno_list'") s_sql = "UPDATE "+sr_file+" SET DATE_REPORTED = '%TODAY%'" s_sql = s_sql.replace("%TODAY%",funcdate.today()) so_curs.execute(s_sql) s_sql = "UPDATE "+sr_file+" SET DATE_RETEST = '%NYEARB%'" s_sql = s_sql.replace("%NYEARB%",funcdate.next_yearbegin()) so_curs.execute(s_sql) so_conn.commit() # Build the final ytd ID list report table ***************************************** print("IDNo list build the ytd ID list to export...") sr_file = "X001da_report_idlist" s_sql = "CREATE TABLE " + sr_file + " AS" + """ SELECT PREV.IDNO, PREV.STUDENT, PREV.NAME, PREV.YEAR, PREV.CAMPUS, PREV.FIRSTNAME, PREV.INITIALS, PREV.SURNAME, PREV.TITLE, PREV.DATEOFBIRTH, PREV.GENDER, PREV.NATIONALITY, PREV.POPULATION, PREV.RACE FROM X001ca_join_prev_reported PREV ORDER BY PREV.STUDENT ;""" so_curs.execute("DROP TABLE IF EXISTS " + sr_file) so_curs.execute(s_sql) so_conn.commit() funcfile.writelog("%t BUILD TABLE: " + sr_file) # MESSAGE if funcconf.l_mess_project: i = funcsys.tablerowcount(so_curs, sr_file) funcsms.send_telegram("", "administrator", "<b> " + str(i) + "</b> " + " Student id numbers") # Export the data if l_export == True and funcsys.tablerowcount(so_curs,sr_file) > 0: print("IDNo list export ytd ID list...") sr_filet = sr_file sx_path = re_path + funcdate.cur_year() + "/" sx_file = "Idno_001a_list_ytd_" sx_filet = sx_file + funcdate.prev_monthendfile() # Read the header data s_head = funccsv.get_colnames_sqlite(so_conn, sr_filet) # Write the data funccsv.write_data(so_conn, "main", sr_filet, sx_path, sx_file, s_head) #funccsv.write_data(so_conn, "main", sr_filet, sx_path, sx_filet, s_head) # Build the final ytd ID list report table ***************************************** print("IDNo list build the current ID list to export...") sr_file = "X001da_report_idlist" s_sql = "CREATE TABLE " + sr_file + " AS" + """ SELECT PREV.IDNO, PREV.STUDENT, PREV.NAME, PREV.YEAR, PREV.CAMPUS, PREV.FIRSTNAME, PREV.INITIALS, PREV.SURNAME, PREV.TITLE, PREV.DATEOFBIRTH, PREV.GENDER, PREV.NATIONALITY, PREV.POPULATION, PREV.RACE FROM X001ca_join_prev_reported PREV WHERE StrfTime('%m', PREV.PREV_DATE_REPORTED) = StrfTime('%m', 'now') OR StrfTime('%m', PREV.DATE_REPORTED) = StrfTime('%m', 'now') AND PREV.PREV_PROCESS IS NULL ORDER BY PREV.STUDENT ;""" so_curs.execute("DROP TABLE IF EXISTS " + sr_file) so_curs.execute(s_sql) so_conn.commit() funcfile.writelog("%t BUILD TABLE: " + sr_file) # Export the data if l_export == True and funcsys.tablerowcount(so_curs,sr_file) > 0: print("IDNo list export current ID lists...") sr_filet = sr_file sx_path = re_path + funcdate.cur_year() + "/" sx_file = "Idno_001b_list_curr_" sx_filet = sx_file + funcdate.cur_month() # Read the header data s_head = funccsv.get_colnames_sqlite(so_conn, sr_filet) # Write the data funccsv.write_data(so_conn, "main", sr_filet, sx_path, sx_file, s_head) funccsv.write_data(so_conn, "main", sr_filet, sx_path, sx_filet, s_head) # Build new ID list file to export to external previous reported file ********** print("IDNo list add new id number list to previous reported...") sr_file = "X001ea_prev_reported" s_sql = "CREATE TABLE "+sr_file+" AS " + """ SELECT PREV.PROCESS, PREV.STUDENT AS FIELD1, PREV.FIELD2, PREV.FIELD2 AS FIELD3, PREV.FIELD2 AS FIELD4, PREV.FIELD2 AS FIELD5, PREV.DATE_REPORTED, PREV.DATE_RETEST FROM X001ca_join_prev_reported PREV WHERE PREV.PREV_PROCESS IS NULL ;""" so_curs.execute("DROP TABLE IF EXISTS "+sr_file) so_curs.execute(s_sql) so_conn.commit() funcfile.writelog("%t BUILD TABLE: "+sr_file) # Export the new ID list to previous reported file if funcsys.tablerowcount(so_curs,sr_file) > 0: print("IDNo list export the new data to previously reported file...") sr_filet = sr_file sx_path = ed_path sx_file = "300_reported" # Read the header data s_head = funccsv.get_colnames_sqlite(so_conn, sr_filet) # Write the data funccsv.write_data(so_conn, "main", sr_filet, sx_path, sx_file, s_head,"a",".txt") funcfile.writelog("%t EXPORT DATA: "+sr_file) else: print("IDNo list no new data to previously reported file...") funcfile.writelog("%t EXPORT DATA: No new data to export") if l_mail: funcmail.Mail("vss_list_idno_ytd") if l_mail: funcmail.Mail("vss_list_idno_curr") # MESSAGE # if funcconf.l_mess_project: # funcsms.send_telegram("", "administrator", "<b>VSS STUDENT</b> master file tests end.") """***************************************************************************** End OF SCRIPT *****************************************************************************""" print("END OF SCRIPT") funcfile.writelog("END OF SCRIPT") # COMMIT DATA so_conn.commit() # CLOSE THE DATABASE CONNECTION so_conn.close() # CLOSE THE LOG WRITER funcfile.writelog("------------------------------------") funcfile.writelog("COMPLETED: C300_TEST_STUDENT_GENERAL") return
* VSS STUDENT DEFERMENT MASTER FILE (C301_report_student_deferment) "MonTueWedThuFri" * MYSQL LISTS WEB SERVER (B005_mysql_lists) "TueWedThuFriSat" * MYSQL LISTS ACL SERVER (B005_mysql_lists) "TueWedThuFriSat" ****************************************************************************""" """**************************************************************************** ENVIRONMENT ****************************************************************************""" # DECLARE VARIABLES l_mail = True l_mess = True # MESSAGES TO ADMIN if l_mail: funcmail.Mail('std_success_gmail', 'Python:Success:Start_runall', 'NWUIAPython: Success: Start runall') if l_mess: funcsms.send_telegram( '', 'administrator', 'Downloading <b>kfs</b> data from oracle and <b>running</b> tests.') # OPEN THE SCRIPT LOG FILE print("------------") print("A000_RUN_ALL") print("------------") funcfile.writelog("Now") funcfile.writelog("SCRIPT: A000_RUN_ALL") funcfile.writelog("--------------------") """**************************************************************************** ORACLE TO SQLITE ****************************************************************************"""
def run_scripts(s_script: str = "a003", s_parameter1: str = "", s_parameter2: str = ""): """ SCRIPT TO RUN OTHER SCRIPTS IT WILL USE GLOBAL l_run VARIABLES :param s_script: Script to run :param s_parameter1: Script first parameter :param s_parameter2: Script second parameter :return: bool: Successful or not """ # VARIABLES l_return = False l_debug = True # DEBUG if l_debug: print("SCRIPT: " + s_script) print("PARAM1: " + s_parameter1) print("PARAM2: " + s_parameter2) # SWITCH ON funcconf.l_run_system = True if s_script in "all|data|kfs": funcconf.l_run_kfs_test = True elif s_script in "all|data|people": funcconf.l_run_people_test = True elif s_script in "all|data|vss": funcconf.l_run_vss_test = True # GENERAL GROUP **************************************************************** # UPDATE LOG s_project: str = "A002_log" if s_script in "a002|all|general": import A002_log try: if s_script == 'a002' and s_parameter1[0:1] == 'y': A002_log.log_capture(funcdate.yesterday(), True) elif s_script == 'all': A002_log.log_capture(funcdate.yesterday(), True) elif s_script == 'general': A002_log.log_capture(funcdate.yesterday(), True) else: A002_log.log_capture(funcdate.today(), False) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcsys.ErrMessage(err, funcconf.l_mail_project, 'NWUIACA:Fail:' + s_project, 'NWUIACA: Fail: ' + s_project) # VACUUM TEST FINDING TABLES s_project: str = "A003_table_vacuum" if s_script in "a003|all|general": import A003_table_vacuum try: A003_table_vacuum.table_vacuum() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcsys.ErrMessage(err, funcconf.l_mail_project, 'NWUIACA:Fail:' + s_project, 'NWUIACA: Fail: ' + s_project) # BACKUP MYSQL s_project: str = "B008_mysql_backup" if s_script in "b008|all|general": import B008_mysql_backup try: l_return = B008_mysql_backup.mysql_backup() if l_return: if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) else: if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Fail:' + s_project, 'NWUIACA: Fail: ' + s_project) except Exception as err: l_return = False funcsys.ErrMessage(err, funcconf.l_mail_project, 'NWUIACA:Fail:' + s_project, 'NWUIACA: Fail: ' + s_project) # IMPORT TEMP s_project: str = "A001_oracle_to_sqlite(temp)" if s_script in "a001": if s_script == "a001" and s_parameter1[0:1] == "t": import A001_oracle_to_sqlite try: A001_oracle_to_sqlite.oracle_to_sqlite() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # PEOPLE GROUP ***************************************************************** # IMPORT PEOPLE s_project: str = "A001_oracle_to_sqlite(people)" if s_script in "a001|all|data|people": if (s_script == "a001" and s_parameter1 == "people") or (s_script in "all|data|people"): import A001_oracle_to_sqlite try: A001_oracle_to_sqlite.oracle_to_sqlite( "000b_Table - people.csv", "PEOPLE") l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_people_test = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # PEOPLE MASTER LISTS s_project: str = "B001_people_lists" if funcconf.l_run_people_test: if s_script in "b001|all|people": import B001_people_lists try: B001_people_lists.people_lists() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_people = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # PEOPLE LISTS s_project: str = "C003_people_list_masterfile" if funcconf.l_run_people_test: if s_script in "c003|all|people": import C003_people_list_masterfile try: C003_people_list_masterfile.people_list_masterfile() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_people = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # PEOPLE TEST MASTER FILE s_project: str = "C001_people_test_masterfile" if funcconf.l_run_people_test: if s_script in "c001|all|people": import C001_people_test_masterfile try: C001_people_test_masterfile.people_test_masterfile() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_people = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # PEOPLE TEST CONFLICT s_project: str = "C002_people_test_conflict" if funcconf.l_run_people_test: if s_script in "c002|all|people": import C002_people_test_conflict try: C002_people_test_conflict.people_test_conflict() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_people = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # PEOPLE PAYROLL LISTS if s_script in "b004|all|people": import B004_payroll_lists s_project: str = "B004_payroll_lists" try: B004_payroll_lists.payroll_lists() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcsys.ErrMessage(err, funcconf.l_mail_project, 'NWUIACA:Fail:' + s_project, 'NWUIACA: Fail: ' + s_project) # VSS GROUP ******************************************************************** # IMPORT VSS s_project: str = "A001_oracle_to_sqlite(vss)" if s_script in "a001|all|data|vss": if (s_script == "a001" and s_parameter1 == "vss") or (s_script in "all|data|vss"): import A001_oracle_to_sqlite try: A001_oracle_to_sqlite.oracle_to_sqlite("000b_Table - vss.csv", "VSS") l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss_test = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS LISTS s_project: str = "B003_vss_lists" if funcconf.l_run_vss_test: if s_script in "b003|all|vss": import B003_vss_lists try: B003_vss_lists.vss_lists() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS PERIOD LISTS s_project: str = "B007_vss_period_list" if funcconf.l_run_vss_test: if s_script in "b007|all|vss": if s_script != "b007": s_parameter1 = "curr" if (s_parameter1 in "curr|prev") or (2015 <= int(s_parameter1) <= int(funcdate.cur_year()) - 2): import B007_vss_period_list try: B007_vss_period_list.vss_period_list(s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS STUDENT DEFERMENT MASTER LISTS s_project: str = "C301_report_student_deferment" if funcconf.l_run_vss_test: if s_script in "c301|all|vss": if s_script != "c301": s_parameter1 = "curr" if (s_parameter1 in "curr|prev") or (2015 <= int(s_parameter1) <= int(funcdate.cur_year()) - 2): import C301_report_student_deferment try: C301_report_student_deferment.studdeb_deferments( s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # # VSS STUDENT DEFERMENT MASTER LISTS s_project: str = "C301_report_student_deferment" if funcconf.l_run_vss_test: if s_script in "c301|all|vss": if s_script != "c301": s_parameter1 = "curr" if (s_parameter1 in "curr|prev") or (2015 <= int(s_parameter1) <= int(funcdate.cur_year()) - 2): import C301_report_student_deferment try: C301_report_student_deferment.studdeb_deferments( s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS STUDENT DEFERMENT MASTER LISTS s_project: str = "C301_report_student_deferment" if funcconf.l_run_vss_test: if s_script in "c301|all|vss": if s_script != "c301": s_parameter1 = "curr" if (s_parameter1 in "curr|prev") or (2015 <= int(s_parameter1) <= int(funcdate.cur_year()) - 2): import C301_report_student_deferment try: C301_report_student_deferment.studdeb_deferments( s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS STUDENT DEBTOR RECON s_project: str = "C200_report_studdeb_recon" if funcconf.l_run_vss_test: if s_script in "c200|all|vss": if s_script != "c200": s_parameter1 = "curr" # No open balances # r_maf = 0 # r_pot = 0 # r_vaa = 0 # 2020 balances r_maf = 48501952.09 r_pot = -12454680.98 r_vaa = 49976048.39 # 2019 balances # r_maf = 66561452.48 # r_pot = -18340951.06 # r_vaa = 39482933.18 else: r_maf = 0 r_pot = 0 r_vaa = 0 if s_parameter1 in "curr|prev": import C200_report_studdeb_recon try: C200_report_studdeb_recon.report_studdeb_recon( r_maf, r_pot, r_vaa, s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS STUDENT MASTER FILE TESTS s_project: str = "C300_test_student_general" if funcconf.l_run_vss_test: if s_script in "c300|all|vss": import C300_test_student_general try: C300_test_student_general.test_student_general() l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # VSS STUDENT FEE TESTS AND REPORTS s_project: str = "C302_test_student_fee" if funcconf.l_run_vss_test: if s_script in "c302|all|vss": if s_script != "c302": s_parameter1 = "curr" if s_parameter1 in "curr|prev": import C302_test_student_fee try: C302_test_student_fee.student_fee(s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_vss = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # KFS GROUP ******************************************************************** # IMPORT KFS s_project: str = "A001_oracle_to_sqlite(kfs)" if (s_script == "a001" and s_parameter1 == "kfs") or (s_script in "all|data|kfs"): import A001_oracle_to_sqlite try: A001_oracle_to_sqlite.oracle_to_sqlite("000b_Table - kfs.csv", "KFS") l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_kfs_test = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) # KFS PERIOD LISTS s_project: str = "B006_kfs_period_list" if funcconf.l_run_kfs_test: if s_script in "b006|all|kfs": if s_script != "b006": s_parameter1 = "curr" if (s_parameter1 in "curr|prev") or (2015 <= int(s_parameter1) <= int(funcdate.cur_year()) - 2): import B006_kfs_period_list try: B006_kfs_period_list.kfs_period_list(s_parameter1) l_return = True if funcconf.l_mail_project: funcmail.Mail('std_success_gmail', 'NWUIACA:Success:' + s_project, 'NWUIACA: Success: ' + s_project) except Exception as err: l_return = False funcconf.l_run_kfs = False funcsys.ErrMessage(err, funcconf.l_mail_project, "NWUIACA:Fail:" + s_project, "NWUIACA: Fail: " + s_project) return l_return
""" MAILER Function to invoke the mailer *************************************** Copyright (c) Albert J van Rensburg 30 May 2018 *****************************************************************************""" # Import own modules from _my_modules import funcmail # Ask which mail trigger to send s_trigger = input("Mail trigger: ") funcmail.Mail(s_trigger)