|
| 1 | +import decimal |
1 | 2 | from typing import Union, List |
2 | 3 |
|
3 | 4 | from invoice.models import Bill, BillItem |
|
9 | 10 |
|
10 | 11 |
|
11 | 12 | class BillService(BaseService): |
12 | | - |
13 | 13 | OBJECT_TYPE = Bill |
14 | 14 |
|
15 | 15 | def __init__(self, user, validation_class: BillModelValidation = BillModelValidation): |
@@ -55,17 +55,19 @@ def bill_create(cls, **kwargs): |
55 | 55 | if result_bill["success"] is True: |
56 | 56 | bill_update = { |
57 | 57 | "id": result_bill["data"]["id"], |
58 | | - "amount_net": 0, |
59 | | - "amount_total": 0, |
60 | | - "amount_discount": 0 |
| 58 | + "amount_net": decimal.Decimal(0), |
| 59 | + "amount_total": decimal.Decimal(0), |
| 60 | + "amount_discount": decimal.Decimal(0), |
61 | 61 | } |
62 | 62 | for bill_line_item in bill_line_items: |
63 | 63 | bill_line_item["bill_id"] = result_bill["data"]["id"] |
64 | 64 | result_bill_line = bill_line_item_service.create(bill_line_item) |
65 | 65 | if result_bill_line["success"] is True: |
66 | | - bill_update["amount_net"] += float(result_bill_line["data"]["amount_net"]) |
67 | | - bill_update["amount_total"] += float(result_bill_line["data"]["amount_total"]) |
68 | | - bill_update["amount_discount"] += 0 if result_bill_line["data"]["discount"] else result_bill_line["data"]["discount"] |
| 66 | + bill_update["amount_net"] += decimal.Decimal(result_bill_line["data"]["amount_net"]) |
| 67 | + bill_update["amount_total"] += decimal.Decimal(result_bill_line["data"]["amount_total"]) |
| 68 | + bill_update["amount_discount"] += decimal.Decimal(0) \ |
| 69 | + if not result_bill_line["data"]["discount"] \ |
| 70 | + else decimal.Decimal(result_bill_line["data"]["discount"]) |
69 | 71 | generated_bill = bill_service.update(bill_update) |
70 | 72 | return generated_bill |
71 | 73 |
|
|
0 commit comments