Ejemplo n.º 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
Ejemplo n.º 2
0
    def get(self):
        qParser = reqparse.RequestParser()

        qParser.add_argument('fromDate', type=dateInput, default=None)
        qParser.add_argument('toDate', type=dateInput, default=None)
        qParser.add_argument('category_id', type=int, default=None)

        args = qParser.parse_args()

        fromDate = args.get('fromDate')
        toDate = args.get('toDate')
        category_id = args.get('category_id')

        incomeReport = IncomeReport()
        incomeReport.filterDateRange(fromDate, toDate)

        incomeReport.filterByCategory(category_id)

        return incomeReport.result()