Exemplo n.º 1
0
def sales_amount_report(r_type, r_period):
    limit = get_limit(r_period)
    sql = sqls.SALES_AMOUNT_REPORT_SQL.format('WEEK', 'WW', limit) \
        if r_period == 'week' \
        else sqls.SALES_AMOUNT_REPORT_SQL.format('MONTH', 'Mon', limit)
    results = Info.get_db().engine.execute(sql).fetchall()
    labels, totals = [], []
    for r in results:
        labels.append("{0}, {1}".format(int(r[0]), gettext(r[2])))
        totals.append(float(r[3]))
    avg = str(format_util.format_decimal(
        sum(totals) / float(len(totals)))) if len(totals) > 0 else 0
    labels.reverse()
    totals.reverse()
    ct = gettext(r_type.capitalize())
    cp = gettext(r_period.capitalize())
    label_tot = gettext('Total Sales {0} Per {1}').format(ct, cp)
    label_avg = gettext('Average Sales {0}(Past {1} {2}(s)): {3}').format(
        ct, 24, cp, avg)
    return dict(data={
        "labels": labels,
        "details": {
            "average_amount": {
                "label": label_avg,
                "data": [avg] * len(totals),
                "style": "average"
            },
            "total": {
                "label": label_tot,
                "data": totals,
                "style": "major"
            }
        }
    },
                status='success')
Exemplo n.º 2
0
 def get_profit_lost_caused_by_inventory_short(self):
     if self.average_unit_profit == 0 or self.weekly_sold_qty == 0:
         return 0
     can_sell_day = format_decimal(
         self.available_quantity / self.weekly_sold_qty) * 7
     days_without_prd = (self.get_lead_deliver_day() - can_sell_day)
     return self.average_unit_profit * self.weekly_sold_qty * days_without_prd / 7
Exemplo n.º 3
0
def sales_amount_report(r_type, r_period):
    limit = get_limit(r_period)
    sql = sqls.SALES_AMOUNT_REPORT_SQL.format('WEEK', 'WW', limit) \
        if r_period == 'week' \
        else sqls.SALES_AMOUNT_REPORT_SQL.format('MONTH', 'Mon', limit)
    results = Info.get_db().engine.execute(sql).fetchall()
    labels, totals = [], []
    for r in results:
        labels.append("{0}, {1}".format(int(r[0]), gettext(r[2])))
        totals.append(float(r[3]))
    avg = str(format_util.format_decimal(sum(totals) / float(len(totals)))) if len(totals) > 0 else 0
    labels.reverse()
    totals.reverse()
    ct = gettext(r_type.capitalize())
    cp = gettext(r_period.capitalize())
    label_tot = gettext('Total Sales {0} Per {1}').format(ct, cp)
    label_avg = gettext('Average Sales {0}(Past {1} {2}(s)): {3}').format(ct, 24, cp, avg)
    return dict(
        data={
            "labels": labels,
            "details": {
                "average_amount": {
                    "label": label_avg,
                    "data": [avg] * len(totals),
                    "style": "average"
                },
                "total": {
                    "label": label_tot,
                    "data": totals,
                    "style": "major"
                }
            }
        },
        status='success'
    )
Exemplo n.º 4
0
def sales_profit_report(r_type, r_period):
    limit = get_limit(r_period)
    sql = sqls.SALES_PROFIT_REPORT_SQL.format(r_period, limit)
    labels, profits, totals = [], [], []
    results = Info.get_db().engine.execute(sql).fetchall()

    for r in results:
        labels.append("{0}, {1}".format(int(r[0]), gettext(int(r[1]))))
        totals.append(float(r[2]))
        profits.append(float(r[3]))
    length = len(profits)
    total_avg = str(format_util.format_decimal(sum(totals) / length)) if length > 0 else 0
    profit_avg = str(format_util.format_decimal(sum(profits) / length)) if length > 0 else 0
    label_avg = gettext('Average Sales {0}(Past {1} {2}(s)): {3}')
    label_tot = gettext('Total Sales {0} Per {1}')
    ct = gettext(r_type.capitalize())
    cp = gettext(r_period.capitalize())
    act = gettext("Amount")
    return dict(
        data={
            "labels": labels,
            "details": {
                "average_profit": {
                    "label": label_avg.format(ct, limit, cp, profit_avg),
                    "data": [profit_avg] * length,
                    "style": "average"
                },
                "average_total": {
                    "label": label_avg.format(act, limit, cp, total_avg),
                    "data": [total_avg] * length,
                    "style": "secondary_average"
                },
                "total": {
                    "label": label_tot.format(act, cp),
                    "data": totals,
                    "style": "secondary"
                },
                "profit": {
                    "label": label_tot.format(ct, cp),
                    "data": profits,
                    "style": "major"
                }
            }
        },
        status='success'
    )
Exemplo n.º 5
0
def sales_profit_report(r_type, r_period):
    limit = get_limit(r_period)
    sql = sqls.SALES_PROFIT_REPORT_SQL.format(r_period, limit)
    labels, profits, totals = [], [], []
    results = Info.get_db().engine.execute(sql).fetchall()

    for r in results:
        labels.append("{0}, {1}".format(int(r[0]), gettext(int(r[1]))))
        totals.append(float(r[2]))
        profits.append(float(r[3]))
    length = len(profits)
    total_avg = str(format_util.format_decimal(sum(totals) /
                                               length)) if length > 0 else 0
    profit_avg = str(format_util.format_decimal(sum(profits) /
                                                length)) if length > 0 else 0
    label_avg = gettext('Average Sales {0}(Past {1} {2}(s)): {3}')
    label_tot = gettext('Total Sales {0} Per {1}')
    ct = gettext(r_type.capitalize())
    cp = gettext(r_period.capitalize())
    act = gettext("Amount")
    return dict(data={
        "labels": labels,
        "details": {
            "average_profit": {
                "label": label_avg.format(ct, limit, cp, profit_avg),
                "data": [profit_avg] * length,
                "style": "average"
            },
            "average_total": {
                "label": label_avg.format(act, limit, cp, total_avg),
                "data": [total_avg] * length,
                "style": "secondary_average"
            },
            "total": {
                "label": label_tot.format(act, cp),
                "data": totals,
                "style": "secondary"
            },
            "profit": {
                "label": label_tot.format(ct, cp),
                "data": profits,
                "style": "major"
            }
        }
    },
                status='success')
Exemplo n.º 6
0
 def total_amount(self):
     if self.logistic_amount is None:
         l_a = 0
     else:
         l_a = self.logistic_amount
     if self.goods_amount is None:
         g_a = 0
     else:
         g_a = self.goods_amount
     return format_decimal(Decimal(l_a + g_a))
Exemplo n.º 7
0
 def total_amount(self):
     if self.logistic_amount is None:
         l_a = 0
     else:
         l_a = self.logistic_amount
     if self.goods_amount is None:
         g_a = 0
     else:
         g_a = self.goods_amount
     return format_decimal(Decimal(l_a + g_a))
Exemplo n.º 8
0
 def goods_amount(self):
     return format_decimal(
         Decimal(sum(line.total_amount for line in self.lines)))
Exemplo n.º 9
0
 def total_amount(self):
     return format_decimal(Decimal(sum(line.total_amount for line in self.lines)))
Exemplo n.º 10
0
 def total_amount(self):
     if self.quantity is None:
         q = 0
     else:
         q = self.quantity
     return format_decimal(Decimal(self.price * q))
Exemplo n.º 11
0
 def total_amount(self):
     if self.quantity is None:
         q = 0
     else:
         q = self.quantity
     return format_decimal(Decimal(self.price * q))
Exemplo n.º 12
0
 def test_format_decimal(self):
     self.assertEqual('20.00', str(format_util.format_decimal(20.0005)))
     self.assertEqual('0.01', str(format_util.format_decimal(0.009)))
     self.assertEquals("2.25", str(format_util.format_decimal(2.249)))
     self.assertEquals("2.24", str(format_util.format_decimal(2.244)))
Exemplo n.º 13
0
 def test_format_decimal(self):
     self.assertEqual('20.00', str(format_util.format_decimal(20.0005)))
     self.assertEqual('0.01', str(format_util.format_decimal(0.009)))
     self.assertEquals("2.25", str(format_util.format_decimal(2.249)))
     self.assertEquals("2.24", str(format_util.format_decimal(2.244)))
Exemplo n.º 14
0
 def original_amount(self):
     return format_decimal(self.product.retail_price * self.quantity)
Exemplo n.º 15
0
 def get_profit_lost_caused_by_inventory_short(self):
     if self.average_unit_profit == 0 or self.weekly_sold_qty == 0:
         return 0
     can_sell_day = format_decimal(self.available_quantity / self.weekly_sold_qty) * 7
     days_without_prd = (self.get_lead_deliver_day() - can_sell_day)
     return self.average_unit_profit * self.weekly_sold_qty * days_without_prd / 7
Exemplo n.º 16
0
 def total_amount(self):
     q = 0 if self.quantity is None else self.quantity
     i_t_q = 0 if self.in_transit_quantity is None else self.in_transit_quantity
     return format_decimal(Decimal(abs(self.price * (q + i_t_q))))
Exemplo n.º 17
0
 def original_amount(self):
     return format_decimal(Decimal(sum(line.original_amount for line in self.lines)))
Exemplo n.º 18
0
 def actual_amount(self):
     return format_decimal(Decimal(sum(line.actual_amount for line in self.lines)))
Exemplo n.º 19
0
 def price_discount(self):
     return format_decimal(self.product.retail_price - self.unit_price)
Exemplo n.º 20
0
 def total_amount(self):
     return format_decimal(self.unit_price * self.quantity)
Exemplo n.º 21
0
 def total_amount(self):
     return format_decimal(self.unit_price * self.quantity)
Exemplo n.º 22
0
 def total_amount(self):
     q = 0 if self.quantity is None else self.quantity
     i_t_q = 0 if self.in_transit_quantity is None else self.in_transit_quantity
     return format_decimal(Decimal(abs(self.price * (q + i_t_q))))
Exemplo n.º 23
0
 def discount_amount(self):
     return format_decimal(self.original_amount - self.actual_amount)