def Studentlist(so_conn,
                re_path,
                s_period='curr',
                s_year='2019',
                l_export=False):

    # DECLARE VARIABLES
    if s_period == 'prev':
        s_year = funcdate.prev_year()
    elif s_period == 'curr':
        s_year = funcdate.cur_year()
    so_curs = so_conn.cursor()
    """*************************************************************************
    BUILD STUDENTS
    *************************************************************************"""
    print("BUILD " + s_year + " STUDENTS")
    funcfile.writelog("BUILD " + s_year + " YEAR STUDENTS")

    # BUILD STUDENT QUALIFICATION RESULTS
    print("Build student qualification results...")
    sr_file = "X001_Student_qual_result"
    s_sql = "CREATE VIEW " + sr_file + " AS " + """
    SELECT
      RESULT.KBUSINESSENTITYID,
      RESULT.KACADEMICPROGRAMID,
      RESULT.KQUALFOSRESULTCODEID,
      RESULT.RESULT,
      RESULT.KRESULTYYYYMM,
      RESULT.KSTUDQUALFOSRESULTID,
      RESULT.FGRADUATIONCEREMONYID,
      RESULT.FPOSTPONEMENTCODEID,
      RESULT.POSTPONE_REAS,
      RESULT.RESULTISSUEDATE,
      RESULT.DISCONTINUEDATE,
      RESULT.FDISCONTINUECODEID,
      RESULT.DISCONTINUE_REAS,
      RESULT.RESULTPASSDATE,
      RESULT.FLANGUAGECODEID,
      RESULT.ISSUESURNAME,
      RESULT.CERTIFICATESEQNUMBER,
      RESULT.AVGMARKACHIEVED,
      RESULT.PROCESSSEQNUMBER,
      RESULT.FRECEIPTID,
      RESULT.FRECEIPTLINEID,
      RESULT.ISINABSENTIA,
      RESULT.FPROGRAMAPID,
      RESULT.FISSUETYPECODEID,
      RESULT.ISSUE_TYPE,
      RESULT.DATEPRINTED,
      RESULT.LOCKSTAMP,
      RESULT.AUDITDATETIME,
      RESULT.FAUDITSYSTEMFUNCTIONID,
      RESULT.FAUDITUSERCODE,
      RESULT.FAPPROVEDBYCODEID,
      RESULT.FAPPROVEDBYUSERCODE,
      RESULT.DATERESULTAPPROVED,
      RESULT.FENROLMENTPRESENTATIONID,
      RESULT.CERTDISPATCHDATE,
      RESULT.CERTDISPATCHREFNO,
      RESULT.ISSUEFIRSTNAMES
    FROM
      X000_Student_qual_result RESULT
    WHERE
      RESULT.KRESULTYYYYMM >= SubStr('%YEARB%',1,4)||SubStr('%YEARB%',6,2) AND
      RESULT.KRESULTYYYYMM <= SubStr('%YEARE%',1,4)||SubStr('%YEARE%',6,2)
    ORDER BY
      RESULT.KBUSINESSENTITYID
    """
    if s_period == 'prev':
        s_sql = s_sql.replace("%YEARB%", funcdate.prev_yearbegin())
        s_sql = s_sql.replace("%YEARE%", funcdate.prev_yearend())
    elif s_period == 'peri':
        s_sql = s_sql.replace("%YEARB%", s_year + "-01-01")
        s_sql = s_sql.replace("%YEARE%", s_year + "-12-31")
    else:
        s_sql = s_sql.replace("%YEARB%", funcdate.cur_yearbegin())
        s_sql = s_sql.replace("%YEARE%", funcdate.cur_yearend())
    so_curs.execute("DROP VIEW IF EXISTS " + sr_file)
    so_curs.execute(s_sql)
    so_conn.commit()
    funcfile.writelog("%t BUILD VIEW: X001_Student_qual_result")

    # BUILD STUDENT QUALIFICATION ONE
    # QUALLEVELENROLSTUD + PRESENTOUENROLPRESENTCAT
    print("Build student qualification step 1...")
    s_sql = "CREATE VIEW X001aa_Stud_qual_enrol AS " + """
    Select
      QUAL.KSTUDBUSENTID,
      QUAL.KENROLSTUDID,
      QUAL.DATEQUALLEVELSTARTED,  
      QUAL.DATEENROL,  
      QUAL.STARTDATE,
      QUAL.ENDDATE,
      QUAL.ISHEMISSUBSIDY,
      QUAL.ISMAINQUALLEVEL,
      QUAL.ENROLACADEMICYEAR,
      QUAL.ENROLHISTORYYEAR,  
      QUAL.FSTUDACTIVECODEID,
      ACTIVE.LONG AS ACTIVE_IND,  
      QUAL.FENTRYLEVELCODEID,
      ENTRY.LONG AS ENTRY_LEVEL,
      ENROL.FENROLMENTCATEGORYCODEID,  
      ENROL.LONG AS ENROL_CAT,  
      ENROL.FPRESENTATIONCATEGORYCODEID,
      PRESENT.LONG AS PRESENT_CAT,
      QUAL.FBLACKLISTCODEID,
      BLACK.LONG AS BLACKLIST,  
      QUAL.ISCONDITIONALREG,
      QUAL.MARKSFINALISEDDATE,
      ENROL.EXAMSUBMINIMUM,  
      QUAL.ISCUMLAUDE,
      QUAL.FGRADCERTLANGUAGECODEID,
      QUAL.ISPOSSIBLEGRADUATE,
      QUAL.FGRADUATIONCEREMONYID,
      QUAL.FACCEPTANCETESTCODEID,
      QUAL.FENROLMENTPRESENTATIONID,
      QUAL.FPROGRAMAPID, 
      ENROL.FQUALPRESENTINGOUID
    From
      QUALLEVELENROLSTUD_%PERIOD% QUAL Left Join
      PRESENTOUENROLPRESENTCAT ENROL ON ENROL.KENROLMENTPRESENTATIONID = QUAL.FENROLMENTPRESENTATIONID Left Join
      X000_Codedescription BLACK ON BLACK.KCODEDESCID = QUAL.FBLACKLISTCODEID Left Join
      X000_Codedescription ACTIVE ON ACTIVE.KCODEDESCID = QUAL.FSTUDACTIVECODEID Left Join
      X000_Codedescription ENTRY ON ENTRY.KCODEDESCID = QUAL.FENTRYLEVELCODEID Left Join
      X000_Codedescription ENROL ON ENROL.KCODEDESCID = ENROL.FENROLMENTCATEGORYCODEID Inner Join
      X000_Codedescription PRESENT ON PRESENT.KCODEDESCID = ENROL.FPRESENTATIONCATEGORYCODEID
    Order By
      QUAL.KSTUDBUSENTID,
      QUAL.DATEQUALLEVELSTARTED  
    """
    s_sql = s_sql.replace("%PERIOD%", s_period)
    so_curs.execute("DROP VIEW IF EXISTS X001aa_Stud_qual_enrol")
    so_curs.execute(s_sql)
    so_conn.commit()

    funcfile.writelog("%t BUILD VIEW: X001aa_Stud_qual_enrol")

    # BUILD STUDENT QUALIFICATION TWO
    # QUALLEVELENROLSTUD + PRESENTOUENROLPRESENTCAT
    # QUALIFICATIONLEVEL
    print("Build student qualification step 2...")
    s_sql = "CREATE VIEW X001ab_Stud_qual_present AS " + """
    Select
      QUAL.KSTUDBUSENTID,
      QUAL.KENROLSTUDID,
      QUAL.DATEQUALLEVELSTARTED,
      QUAL.DATEENROL,
      QUAL.STARTDATE,
      QUAL.ENDDATE,
      QUALLEVE.QUALIFICATIONLEVEL,  
      QUAL.ISHEMISSUBSIDY,
      QUAL.ISMAINQUALLEVEL,
      QUAL.ENROLACADEMICYEAR,
      QUAL.ENROLHISTORYYEAR,
      QUAL.FSTUDACTIVECODEID,
      QUAL.ACTIVE_IND,
      QUAL.FENTRYLEVELCODEID,
      QUAL.ENTRY_LEVEL,
      QUAL.FENROLMENTCATEGORYCODEID,
      QUAL.ENROL_CAT,
      QUAL.FPRESENTATIONCATEGORYCODEID,
      QUAL.PRESENT_CAT,
      QUALLEVE.FFINALSTATUSCODEID,
      QUALLEVE.STATUS_FINAL AS QUAL_LEVEL_STATUS_FINAL,  
      QUALLEVE.FLEVYCATEGORYCODEID,
      QUALLEVE.LEVY_CATEGORY AS QUAL_LEVEL_LEVY_CAT,  
      QUAL.FBLACKLISTCODEID,
      QUAL.BLACKLIST,
      QUALPRES.FBUSINESSENTITYID,
      ORG.FORGUNITNUMBER,
      ORG.ORGUNIT_TYPE,
      ORG.ORGUNIT_NAME,
      ORG.FSITEORGUNITNUMBER,  
      QUAL.ISCONDITIONALREG,
      QUAL.MARKSFINALISEDDATE,
      QUAL.EXAMSUBMINIMUM,
      QUAL.ISCUMLAUDE,
      QUAL.FGRADCERTLANGUAGECODEID,
      QUAL.ISPOSSIBLEGRADUATE,
      QUAL.FGRADUATIONCEREMONYID,
      QUAL.FACCEPTANCETESTCODEID,
      QUAL.FENROLMENTPRESENTATIONID,
      QUAL.FQUALPRESENTINGOUID,
      QUAL.FPROGRAMAPID,   
      QUALPRES.FQUALLEVELAPID,
      QUALLEVE.FFIELDOFSTUDYAPID,
      QUALLEVE.STARTDATE AS QUAL_LEVEL_STARTDATE,
      QUALLEVE.ENDDATE AS QUAL_LEVEL_ENDDATE
    From
      X001aa_Stud_qual_enrol QUAL Left Join
      QUALLEVELPRESENTINGOU QUALPRES ON QUALPRES.KPRESENTINGOUID = QUAL.FQUALPRESENTINGOUID Left Join
      X000_Qualification_level QUALLEVE ON QUALLEVE.KACADEMICPROGRAMID = QUALPRES.FQUALLEVELAPID Left Join
      X000_Orgunitinstance ORG ON ORG.KBUSINESSENTITYID = QUALPRES.FBUSINESSENTITYID
    """
    so_curs.execute("DROP VIEW IF EXISTS X001ab_Stud_qual_present")
    so_curs.execute(s_sql)
    so_conn.commit()
    funcfile.writelog("%t BUILD VIEW: X001ab_Stud_qual_present")

    # BUILD STUDENT QUALIFICATION THREE
    # QUALLEVELENROLSTUD + PRESENTOUENROLPRESENTCAT
    # QUALIFICATIONLEVEL
    print("Build student qualification step 3...")
    s_sql = "CREATE VIEW X001ac_Stud_qual_fos AS " + """
    SELECT
      QUAL.KSTUDBUSENTID,
      QUAL.KENROLSTUDID,
      QUAL.DATEQUALLEVELSTARTED,
      QUAL.DATEENROL,
      QUAL.STARTDATE,
      QUAL.ENDDATE,
      PROG.QUALIFICATIONCODE,  
      FOS.QUALIFICATIONFIELDOFSTUDY,  
      QUAL.QUALIFICATIONLEVEL,
      PROG.QUAL_TYPE,  
      QUAL.ISHEMISSUBSIDY,
      QUAL.ISMAINQUALLEVEL,
      QUAL.ENROLACADEMICYEAR,
      QUAL.ENROLHISTORYYEAR,
      PROG.MIN,
      PROG.MIN_UNIT,
      PROG.MAX,
      PROG.MAX_UNIT,
      QUAL.FSTUDACTIVECODEID,
      QUAL.ACTIVE_IND,
      QUAL.FENTRYLEVELCODEID,
      QUAL.ENTRY_LEVEL,
      QUAL.FENROLMENTCATEGORYCODEID,
      QUAL.ENROL_CAT,
      QUAL.FPRESENTATIONCATEGORYCODEID,
      QUAL.PRESENT_CAT,
      QUAL.FFINALSTATUSCODEID,
      QUAL.QUAL_LEVEL_STATUS_FINAL,
      QUAL.FLEVYCATEGORYCODEID,
      QUAL.QUAL_LEVEL_LEVY_CAT,
      PROG.CERT_TYPE,
      PROG.LEVY_TYPE,
      QUAL.FBLACKLISTCODEID,
      QUAL.BLACKLIST,
      FOS.FSELECTIONCODEID,
      SEL.LONG AS FOS_SELECTION,
      QUAL.FBUSINESSENTITYID,
      QUAL.FORGUNITNUMBER,
      QUAL.ORGUNIT_TYPE,
      QUAL.ORGUNIT_NAME,
      QUAL.FSITEORGUNITNUMBER,
      QUAL.ISCONDITIONALREG,
      QUAL.MARKSFINALISEDDATE,
      QUAL.EXAMSUBMINIMUM,
      QUAL.ISCUMLAUDE,
      QUAL.FGRADCERTLANGUAGECODEID,
      QUAL.ISPOSSIBLEGRADUATE,
      QUAL.FGRADUATIONCEREMONYID,
      QUAL.FACCEPTANCETESTCODEID,
      QUAL.FENROLMENTPRESENTATIONID,
      QUAL.FQUALPRESENTINGOUID,
      QUAL.FQUALLEVELAPID,
      QUAL.FFIELDOFSTUDYAPID,
      QUAL.FPROGRAMAPID,  
      FOS.FQUALIFICATIONAPID
    FROM
      X001ab_Stud_qual_present QUAL Left Join
      FIELDOFSTUDY FOS ON FOS.KACADEMICPROGRAMID = QUAL.FFIELDOFSTUDYAPID Left Join
      X000_Codedescription SEL ON SEL.KCODEDESCID = FOS.FSELECTIONCODEID Left Join
      X000_Qualification PROG ON PROG.KACADEMICPROGRAMID = FOS.FQUALIFICATIONAPID
    """
    so_curs.execute("DROP VIEW IF EXISTS X001ac_Stud_qual_fos")
    so_curs.execute(s_sql)
    so_conn.commit()
    funcfile.writelog("%t BUILD VIEW: X001ac_Stud_qual_fos")

    # BUILD STUDENT QUALIFICATION RESULTS FOUR
    print("Build student qualification step 4...")
    sr_file = "X001ad_Stud_qual_result"
    s_sql = "CREATE VIEW " + sr_file + " AS " + """
    SELECT
      QUAL.KSTUDBUSENTID,
      QUAL.KENROLSTUDID,
      QUAL.DATEQUALLEVELSTARTED,
      QUAL.DATEENROL,
      QUAL.STARTDATE,
      QUAL.ENDDATE,
      QUAL.QUALIFICATIONCODE,
      QUAL.QUALIFICATIONFIELDOFSTUDY,
      QUAL.QUALIFICATIONLEVEL,
      QUAL.QUAL_TYPE,
      QUAL.ISHEMISSUBSIDY,
      QUAL.ISMAINQUALLEVEL,
      QUAL.ENROLACADEMICYEAR,
      QUAL.ENROLHISTORYYEAR,
      QUAL.MIN,
      QUAL.MIN_UNIT,
      QUAL.MAX,
      QUAL.MAX_UNIT,
      QUAL.FSTUDACTIVECODEID,
      QUAL.ACTIVE_IND,
      QUAL.FENTRYLEVELCODEID,
      QUAL.ENTRY_LEVEL,
      QUAL.FENROLMENTCATEGORYCODEID,
      QUAL.ENROL_CAT,
      QUAL.FPRESENTATIONCATEGORYCODEID,
      QUAL.PRESENT_CAT,
      QUAL.FFINALSTATUSCODEID,
      QUAL.QUAL_LEVEL_STATUS_FINAL,
      QUAL.FLEVYCATEGORYCODEID,
      QUAL.QUAL_LEVEL_LEVY_CAT,
      QUAL.CERT_TYPE,
      QUAL.LEVY_TYPE,
      QUAL.FBLACKLISTCODEID,
      QUAL.BLACKLIST,
      QUAL.FSELECTIONCODEID,
      QUAL.FOS_SELECTION,
      QUAL.FBUSINESSENTITYID,
      QUAL.FORGUNITNUMBER,
      QUAL.ORGUNIT_TYPE,
      QUAL.ORGUNIT_NAME,
      QUAL.FSITEORGUNITNUMBER,
      QUAL.ISCONDITIONALREG,
      QUAL.MARKSFINALISEDDATE,
      QUAL.EXAMSUBMINIMUM,
      QUAL.ISCUMLAUDE,
      QUAL.FGRADCERTLANGUAGECODEID,
      QUAL.ISPOSSIBLEGRADUATE,
      QUAL.FGRADUATIONCEREMONYID,
      QUAL.FACCEPTANCETESTCODEID,
      QUAL.FENROLMENTPRESENTATIONID,
      QUAL.FQUALPRESENTINGOUID,
      QUAL.FQUALLEVELAPID,
      QUAL.FFIELDOFSTUDYAPID,
      QUAL.FPROGRAMAPID,
      QUAL.FQUALIFICATIONAPID,
      RESULT.KBUSINESSENTITYID,
      RESULT.KACADEMICPROGRAMID,
      RESULT.KQUALFOSRESULTCODEID,
      RESULT.RESULT,
      RESULT.KRESULTYYYYMM,
      RESULT.KSTUDQUALFOSRESULTID,
      RESULT.FGRADUATIONCEREMONYID AS FGRADUATIONCEREMONYID1,
      RESULT.FPOSTPONEMENTCODEID,
      RESULT.POSTPONE_REAS,
      RESULT.RESULTISSUEDATE,
      RESULT.DISCONTINUEDATE,
      RESULT.FDISCONTINUECODEID,
      RESULT.DISCONTINUE_REAS,
      RESULT.RESULTPASSDATE,
      RESULT.FLANGUAGECODEID,
      RESULT.ISSUESURNAME,
      RESULT.CERTIFICATESEQNUMBER,
      RESULT.AVGMARKACHIEVED,
      RESULT.PROCESSSEQNUMBER,
      RESULT.FRECEIPTID,
      RESULT.FRECEIPTLINEID,
      RESULT.ISINABSENTIA,
      RESULT.FPROGRAMAPID AS FPROGRAMAPID1,
      RESULT.FISSUETYPECODEID,
      RESULT.ISSUE_TYPE,
      RESULT.DATEPRINTED,
      RESULT.LOCKSTAMP,
      RESULT.AUDITDATETIME,
      RESULT.FAUDITSYSTEMFUNCTIONID,
      RESULT.FAUDITUSERCODE,
      RESULT.FAPPROVEDBYCODEID,
      RESULT.FAPPROVEDBYUSERCODE,
      RESULT.DATERESULTAPPROVED,
      RESULT.FENROLMENTPRESENTATIONID AS FENROLMENTPRESENTATIONID1,
      RESULT.CERTDISPATCHDATE,
      RESULT.CERTDISPATCHREFNO,
      RESULT.ISSUEFIRSTNAMES
    FROM
      X001ac_Stud_qual_fos QUAL Left Join
      X001_Student_qual_result RESULT ON RESULT.KBUSINESSENTITYID = QUAL.KSTUDBUSENTID AND
          RESULT.FPROGRAMAPID = QUAL.FPROGRAMAPID AND
          RESULT.KACADEMICPROGRAMID = QUAL.FFIELDOFSTUDYAPID
    """
    so_curs.execute("DROP VIEW IF EXISTS " + sr_file)
    so_curs.execute(s_sql)
    so_conn.commit()
    funcfile.writelog("%t BUILD VIEW: X001ad_Stud_qual_result")

    # BUILD STUDENT QUALIFICATION FINAL LIST
    print("Build student qualification step 5...")
    sr_file = "X001_Student_" + s_period
    s_sql = "CREATE TABLE " + sr_file + " AS " + """
    SELECT
      QUAL.KSTUDBUSENTID,
      QUAL.KENROLSTUDID,
      QUAL.FORGUNITNUMBER,      
      QUAL.DATEQUALLEVELSTARTED,
      QUAL.DATEENROL,
      QUAL.STARTDATE,
      QUAL.ENDDATE,
      QUAL.DISCONTINUEDATE,
      QUAL.RESULT,      
      QUAL.QUALIFICATIONCODE,
      QUAL.QUALIFICATIONFIELDOFSTUDY,
      QUAL.QUALIFICATIONLEVEL,
      QUAL.QUAL_TYPE,
      QUAL.ISHEMISSUBSIDY,
      QUAL.ISMAINQUALLEVEL,
      QUAL.ENROLACADEMICYEAR,
      QUAL.ENROLHISTORYYEAR,
      QUAL.MIN,
      QUAL.MIN_UNIT,
      QUAL.MAX,
      QUAL.MAX_UNIT,
      QUAL.FSTUDACTIVECODEID,
      QUAL.ACTIVE_IND,
      QUAL.FENTRYLEVELCODEID,
      QUAL.ENTRY_LEVEL,
      QUAL.FENROLMENTCATEGORYCODEID,
      QUAL.ENROL_CAT,
      QUAL.FPRESENTATIONCATEGORYCODEID,
      QUAL.PRESENT_CAT,
      QUAL.FFINALSTATUSCODEID,
      QUAL.QUAL_LEVEL_STATUS_FINAL,
      QUAL.FLEVYCATEGORYCODEID,
      QUAL.QUAL_LEVEL_LEVY_CAT,
      QUAL.CERT_TYPE,
      QUAL.LEVY_TYPE,
      QUAL.FBLACKLISTCODEID,
      QUAL.BLACKLIST,
      QUAL.FSELECTIONCODEID,
      QUAL.FOS_SELECTION,
      QUAL.DISCONTINUE_REAS,
      QUAL.POSTPONE_REAS,
      QUAL.FBUSINESSENTITYID,
      QUAL.ORGUNIT_TYPE,
      QUAL.ORGUNIT_NAME,
      QUAL.FSITEORGUNITNUMBER,
      QUAL.ISCONDITIONALREG,
      QUAL.MARKSFINALISEDDATE,
      QUAL.RESULTPASSDATE,
      QUAL.RESULTISSUEDATE,
      QUAL.EXAMSUBMINIMUM,
      QUAL.ISCUMLAUDE,
      QUAL.FGRADCERTLANGUAGECODEID,
      QUAL.ISPOSSIBLEGRADUATE,
      QUAL.FGRADUATIONCEREMONYID,
      QUAL.FACCEPTANCETESTCODEID,
      QUAL.FENROLMENTPRESENTATIONID,
      QUAL.FQUALPRESENTINGOUID,
      QUAL.FQUALLEVELAPID,
      QUAL.FFIELDOFSTUDYAPID,
      QUAL.FPROGRAMAPID,
      QUAL.FQUALIFICATIONAPID,
      PROGRAM.FFIELDOFSTUDYAPID AS FFIELDOFSTUDYAPID1,
      PROGRAM.PROGRAMCODE
    FROM
      X001ad_Stud_qual_result QUAL Left Join
      PROGRAM ON PROGRAM.KACADEMICPROGRAMID = QUAL.FPROGRAMAPID
    ORDER BY
      QUAL.KSTUDBUSENTID,
      QUAL.DATEENROL
    """
    so_curs.execute("DROP TABLE IF EXISTS " + sr_file)
    so_curs.execute(s_sql)
    so_conn.commit()
    funcfile.writelog("%t BUILD TABLE: X001cx_Stud_qual")
    # Export the data
    if l_export == True:
        print("Export students all...")
        sr_filet = sr_file
        sx_path = re_path + s_year + "/"
        sx_file = "Student_001_all_"
        #sx_filet = sx_file + funcdate.today()
        s_head = funccsv.get_colnames_sqlite(so_conn, sr_filet)
        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)
        funcfile.writelog("%t EXPORT DATA: " + sx_path + sx_file)

    return
  RESIDENCE.STARTDATE <= Date("%CYEARE%"))
ORDER BY
  RESIDENCEID
"""
s_sql = s_sql.replace("%CYEARB%",funcdate.cur_yearbegin())
s_sql = s_sql.replace("%CYEARE%",funcdate.cur_yearend())
so_curs.execute("DROP TABLE IF EXISTS X001_Active_residence")
so_curs.execute(s_sql)
so_conn.commit()

funcfile.writelog("%t BUILD TABLE: X001_Active_residence")

# Data export
sr_file = "X001_active_residence"
sr_filet = sr_file
sx_path = "O:/Nwudata/Debtorstud/" + funcdate.cur_year() + "/"
sx_file = "Residence_001_residence_"
sx_filet = sx_file + funcdate.today_file()

print("Export active residences..." + sx_path + sx_filet)

# 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)

funcfile.writelog("%t EXPORT DATA: " + sx_path + sx_file)

# 03 Extract the previous year rates *******************************************
Exemple #3
0
print("")

# 12 Build current assignment round 1 ******************************************

funcpeople.assign01(so_conn,"X001_ASSIGNMENT_PERI_01",s_fr,s_to,s_on,"Build period assignments 1...")

# 13 Build current assignment round 2 ******************************************

funcpeople.assign02(so_conn,"X001_ASSIGNMENT_PERI","X001_ASSIGNMENT_PERI_01","Build period assignments 2...")

if s_export == "True":

    # Data export
    sr_file = "X001_ASSIGNMENT_PERI"
    sr_filet = sr_file
    sx_path = "R:/People/" + funcdate.cur_year() + "/"
    sx_file = "Assignment_001_period_"
    sx_filet = sx_file + s_fr + "_" + s_to

    print("Export period assignments..." + sx_path + sx_filet)

    # 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_filet, s_head)

    funcfile.writelog("%t EXPORT DATA: " + sx_path + sx_file)

# 17 Build PHONE MOBILE PERI ***************************************************
Exemple #4
0
# Save the sql for previous year too
s_sql_prev = s_sql

so_curs.execute("DROP TABLE IF EXISTS X103_PER_ABSENCE_ATTENDANCES_CURR")
s_sql = s_sql.replace("%CYEARB%", funcdate.cur_yearbegin())
s_sql = s_sql.replace("%CYEARE%", funcdate.cur_yearend())
so_curs.execute(s_sql)
so_conn.commit()

funcfile.writelog("%t BUILD TABLE: X103_Per_absence_attendances_curr")

# Export the declaration data

sr_file = "X103_Per_absence_attendances_curr"
sr_filet = sr_file
sx_path = "R:/People/" + funcdate.cur_year() + "/"
sx_file = "Leave_103_lst_transact_" + funcdate.cur_year() + "_"
sx_filet = sx_file + funcdate.today_file()  #Today

print("Export data..." + sx_path + sx_filet)

# 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)

funcfile.writelog("%t EXPORT DATA: Current year leave transactions")

# Build PREVIOUS ABSENCE ATTENDANCES *******************************************