178 lines
5.9 KiB
QBasic
178 lines
5.9 KiB
QBasic
Attribute VB_Name = "Common"
|
|
|
|
Sub test()
|
|
Dim sPath As String
|
|
Dim calc_result As Variant
|
|
|
|
Config.init
|
|
|
|
sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Sales\Agent_Sales.xlsx"
|
|
AgentSalesMeta = ReadAgentSalesWorkbook.Run(sPath)
|
|
|
|
sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Product_Sales\Product_Sales.xlsx"
|
|
ProductSalesMeta = ReadProductSalesWorkbook.Run(sPath)
|
|
|
|
sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Working_Performance\Agent_Working_Performance.xlsx"
|
|
AgentWorkingPerformanceMeta = ReadAgentWorkingPerfWorkbook.Run(sPath)
|
|
|
|
CombinedSalesMeta = Array(AgentSalesMeta, ProductSalesMeta, AgentWorkingPerformanceMeta)
|
|
|
|
Const FILE_PATH As String = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\main_xlsm\helloworld.xlsx"
|
|
|
|
|
|
' SAMonthAndQuart
|
|
calc_result = CalcSalesAnalysisMonthlyAndQuart(CombinedSalesMeta)
|
|
WriteSalesAnalysisMonthlyAndQuart calc_result, FILE_PATH
|
|
|
|
' write sales analysis product category
|
|
' SAProductCategory
|
|
calc_result = CalcSalesAnalysisFileSalesAmount(CombinedSalesMeta)
|
|
WriteSalesAnalysisFileSalesAmount calc_result, FILE_PATH
|
|
|
|
calc_result = CalcSalesAnalysisFileSalesUnit(CombinedSalesMeta)
|
|
WriteSalesAnalysisFileSalesUnit calc_result, FILE_PATH
|
|
|
|
calc_result = APAnalysis_Calc(CombinedSalesMeta)
|
|
APAnalysis_WriteTable calc_result, FILE_PATH
|
|
|
|
calc_result = NoOfCasesTable_Calc(CombinedSalesMeta)
|
|
NoOfCasesTable_WriteTable calc_result, FILE_PATH
|
|
|
|
Debug.Print "done"
|
|
|
|
End Sub
|
|
|
|
Sub testDraftGraphData()
|
|
Dim sPath As String
|
|
Dim calc_result As Variant
|
|
|
|
Config.init
|
|
|
|
sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Sales\Agent_Sales.xlsx"
|
|
AgentSalesMeta = ReadAgentSalesWorkbook.Run(sPath)
|
|
|
|
sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Product_Sales\Product_Sales.xlsx"
|
|
ProductSalesMeta = ReadProductSalesWorkbook.Run(sPath)
|
|
|
|
sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Working_Performance\Agent_Working_Performance.xlsx"
|
|
AgentWorkingPerformanceMeta = ReadAgentWorkingPerfWorkbook.Run(sPath)
|
|
|
|
CombinedSalesMeta = Array(AgentSalesMeta, ProductSalesMeta, AgentWorkingPerformanceMeta)
|
|
|
|
Const FILE_PATH As String = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\main_xlsm\helloworld_graph.xlsm"
|
|
' creasteXlsm(FILE_PATH)
|
|
|
|
|
|
' Sales Analysis (Monthly & Quartery)
|
|
AddSheet FILE_PATH, "Sales Analysis Monthly_Quartery"
|
|
calc_result = CalcSalesAnalysisMonthlyAndQuart(CombinedSalesMeta)
|
|
SAMonthAndQuartGraph.MonthlySalesAmountTable calc_result, FILE_PATH
|
|
SAMonthAndQuartGraph.MonthlySalesAmountGraph FILE_PATH
|
|
|
|
SAMonthAndQuartGraph.MonthlySalesComissionTable calc_result, FILE_PATH
|
|
SAMonthAndQuartGraph.MonthlySalesComissionGraph FILE_PATH
|
|
|
|
|
|
' Sales Analysis (Product Category)
|
|
AddSheet FILE_PATH, "Sales Analysis Product Category"
|
|
calc_result = CalcSalesAnalysisFileSalesAmount(CombinedSalesMeta)
|
|
SAProdCatGraph.SalesAmountTable calc_result, FILE_PATH, 1
|
|
SAProdCatGraph.SalesAmountGraph calc_result, FILE_PATH, 1
|
|
|
|
calc_result = CalcSalesAnalysisFileSalesUnit(CombinedSalesMeta)
|
|
SAProdCatGraph.SalesUnitTable calc_result, FILE_PATH, 1
|
|
SAProdCatGraph.SalesUnitGraph calc_result, FILE_PATH, 1
|
|
|
|
' Agent performance analysis(Comm
|
|
AddSheet FILE_PATH, "Agent performance analysis"
|
|
calc_result = APAnalysis_Calc(CombinedSalesMeta)
|
|
APAnalysisGraph.TeamATotalSalesCommisionPerformanceTable calc_result, FILE_PATH
|
|
APAnalysisGraph.TeamATotalSalesCommisionPerformanceGraph calc_result, FILE_PATH
|
|
|
|
APAnalysisGraph.TeamBTotalSalesCommisionPerformanceTable calc_result, FILE_PATH
|
|
APAnalysisGraph.TeamBTotalSalesCommisionPerformanceGraph calc_result, FILE_PATH
|
|
|
|
' Rank of agent's sales commission (monthly)
|
|
APAnalysisGraph.RankOfAgentSalesCommMonthlyTable calc_result, FILE_PATH
|
|
APAnalysisGraph.RankOfAgentSalesCommMonthlyGraph calc_result, FILE_PATH
|
|
|
|
' ' Case persistency
|
|
AddSheet FILE_PATH, "Case persistency"
|
|
calc_result = NoOfCasesTable_Calc(CombinedSalesMeta)
|
|
CasePersistencyGraph.TeamACaseDistributionTable calc_result, FILE_PATH
|
|
CasePersistencyGraph.TeamACaseDistributionGraph calc_result, FILE_PATH
|
|
|
|
CasePersistencyGraph.TeamBCaseDistributionTable calc_result, FILE_PATH
|
|
CasePersistencyGraph.TeamBCaseDistributionGraph calc_result, FILE_PATH
|
|
|
|
Debug.Print "done"
|
|
|
|
End Sub
|
|
|
|
Function GetQuarterFromMonth(ByVal month As Integer) As Integer
|
|
GetQuarterFromMonth = Int((month - 1) / 3) + 1
|
|
End Function
|
|
|
|
Function SortArray(ByRef arr() As Double) As Double()
|
|
Dim i As Long, j As Long
|
|
Dim temp As Variant
|
|
|
|
For i = LBound(arr) To UBound(arr) - 1
|
|
For j = i + 1 To UBound(arr)
|
|
If arr(i) < arr(j) Then
|
|
temp = arr(i)
|
|
arr(i) = arr(j)
|
|
arr(j) = temp
|
|
End If
|
|
Next j
|
|
Next i
|
|
|
|
SortArray = arr
|
|
End Function
|
|
|
|
Sub creasteXlsm(ByVal FILE_PATH As String)
|
|
Dim xlApp As Object
|
|
Set xlApp = CreateObject("Excel.Application")
|
|
|
|
Dim wb As Object
|
|
Set wb = xlApp.Workbooks.Add
|
|
|
|
wb.SaveAs FILE_PATH, FileFormat:=52
|
|
wb.Close SaveChanges:=True
|
|
|
|
xlApp.Quit
|
|
Set xlApp = Nothing
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Function AddSheet(ByVal FILE_PATH As String, ByVal sheet_name As String)
|
|
Dim wb As Workbook
|
|
Dim ws As Worksheet
|
|
|
|
' Open the workbook
|
|
Set wb = Workbooks.Open(FILE_PATH)
|
|
|
|
' Check if the sheet exists
|
|
On Error Resume Next
|
|
Set ws = wb.Sheets(sheet_name)
|
|
On Error GoTo 0
|
|
|
|
' If not found, create a new sheet
|
|
If ws Is Nothing Then
|
|
Set ws = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
|
|
ws.Name = sheet_name
|
|
Else
|
|
' Empty the entire sheet
|
|
ws.UsedRange.ClearContents
|
|
End If
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
|
|
|