Example #1
0
class NetIncomeReport(object):
    def __init__(self):
        self.incomReport = IncomeReport()
        self.refundsReport = RefundsReport()
        self.category_id = None

    def filterDateRange(self, startDate=None, endDate=None):
        startTime = datetime.time(00, 00)
        endTime = datetime.time(23, 59)

        self.startDate = startDate if startDate else datetime.date.today()
        self.endDate = endDate if endDate else datetime.date.today()

        self.startDate = datetime.datetime.combine(self.startDate, startTime)
        self.endDate = datetime.datetime.combine(self.endDate, endTime)

        self.incomReport.filterDateRange(self.startDate, self.endDate)
        self.refundsReport.filterDateRange(self.startDate, self.endDate)

    def filterByCategory(self, category_id=None):
        self.category_id = category_id
        self.incomReport.filterByCategory(category_id)
        self.refundsReport.filterByCategory(category_id)

    def result(self):
        incomeResult = self.incomReport.result()
        refundsResult = self.refundsReport.result()

        netIncome = incomeResult["total"] - refundsResult["refundamount"]
        result = {'refunds': refundsResult, 'income': incomeResult, 'netIncome': netIncome}
        return result