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