コード例 #1
0
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
コード例 #2
0
ファイル: funcsys.py プロジェクト: Grubsnera/Webdev_python_ia
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
コード例 #3
0
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
コード例 #4
0
* 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
****************************************************************************"""
コード例 #5
0
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
コード例 #6
0
"""
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)