Merge branch 'main' of http://10.10.1.136:3000/ismail/haikal into frontend
This commit is contained in:
commit
e6e2ed0150
@ -728,6 +728,9 @@ class Car(Base):
|
||||
def additional_services(self):
|
||||
return self.finances.additional_services.all()
|
||||
@property
|
||||
def total_additional_services(self):
|
||||
return sum([service.price_ for service in self.additional_services])
|
||||
@property
|
||||
def ready(self):
|
||||
try:
|
||||
return all(
|
||||
@ -2467,7 +2470,7 @@ class Notification(models.Model):
|
||||
user = models.ForeignKey(
|
||||
User, on_delete=models.CASCADE, related_name="notifications"
|
||||
)
|
||||
message = models.CharField(max_length=255, verbose_name=_("Message"))
|
||||
message = models.TextField(verbose_name=_("Message"))
|
||||
is_read = models.BooleanField(default=False, verbose_name=_("Is Read"))
|
||||
created = models.DateTimeField(auto_now_add=True, verbose_name=_("Created"))
|
||||
|
||||
@ -2751,7 +2754,7 @@ class SaleOrder(models.Model):
|
||||
blank=True,
|
||||
)
|
||||
comments = models.TextField(blank=True, null=True)
|
||||
formatted_order_id = models.CharField(max_length=10, unique=True, editable=False)
|
||||
formatted_order_id = models.CharField(max_length=255, unique=True, editable=False)
|
||||
|
||||
# Status and Dates
|
||||
status = models.CharField(
|
||||
|
||||
@ -1125,7 +1125,7 @@ def estimate_in_review_notification(sender, instance, created, **kwargs):
|
||||
url=reverse(
|
||||
"estimate_detail",
|
||||
kwargs={"dealer_slug": dealer.slug, "pk": instance.pk},
|
||||
),
|
||||
)
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@ def create_coa_accounts(instance):
|
||||
"role": roles.ASSET_CA_CASH,
|
||||
"balance_type": roles.DEBIT,
|
||||
"locked": False,
|
||||
"default": False,
|
||||
"default": False,
|
||||
},
|
||||
{
|
||||
"code": "1030",
|
||||
|
||||
@ -1055,7 +1055,8 @@ class CarFinanceCalculator:
|
||||
quantity = self._get_quantity(item)
|
||||
car = item.item_model.car
|
||||
unit_price = Decimal(car.finances.marked_price)
|
||||
|
||||
discount = self.extra_info.data.get("discount",0)
|
||||
sell_price = unit_price - Decimal(discount)
|
||||
return {
|
||||
"item_number": item.item_model.item_number,
|
||||
"vin": car.vin, #car_info.get("vin"),
|
||||
@ -1071,8 +1072,13 @@ class CarFinanceCalculator:
|
||||
"discount": car.finances.discount_amount,
|
||||
"quantity": quantity,
|
||||
"unit_price": unit_price,
|
||||
"total": unit_price * Decimal(quantity),
|
||||
"total_vat": car.finances.total_vat,
|
||||
"sell_price": sell_price,
|
||||
"total": unit_price,
|
||||
"total_vat": sell_price * self.vat_rate,
|
||||
"total_discount": discount,
|
||||
"final_price": sell_price + (sell_price * self.vat_rate),
|
||||
"total_additionals": car.total_additional_services,
|
||||
"grand_total": sell_price + (sell_price * self.vat_rate) + car.total_additional_services,
|
||||
"additional_services": car.additional_services,# self._get_nested_value(
|
||||
#item, self.ADDITIONAL_SERVICES_KEY
|
||||
#),
|
||||
@ -1087,10 +1093,10 @@ class CarFinanceCalculator:
|
||||
Decimal(item.price_) for item in self._get_additional_services())
|
||||
|
||||
total_discount = self.extra_info.data.get("discount",0)
|
||||
|
||||
total_price_discounted = total_price
|
||||
if total_discount:
|
||||
total_price_discounted = total_price - Decimal(total_discount)
|
||||
print(total_price_discounted)
|
||||
total_vat_amount = total_price_discounted * self.vat_rate
|
||||
|
||||
return {
|
||||
@ -1371,10 +1377,10 @@ def _post_sale_and_cogs(invoice, dealer):
|
||||
).first().item_model.car
|
||||
qty = Decimal(car_data['quantity'])
|
||||
|
||||
net_car_price = Decimal(car_data['total'])
|
||||
net_add_price = Decimal(data['total_additionals'])
|
||||
net_car_price = Decimal(car_data['total']) - Decimal(car_data['total_discount'])
|
||||
net_additionals_price = Decimal(data['total_additionals'])
|
||||
vat_amount = Decimal(data['total_vat_amount']) * qty
|
||||
grand_total = net_car_price + net_add_price + vat_amount
|
||||
grand_total = net_car_price + net_additionals_price + vat_amount
|
||||
cost_total = Decimal(car_data['cost_price']) * qty
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
@ -1420,12 +1426,12 @@ def _post_sale_and_cogs(invoice, dealer):
|
||||
tx_type='credit'
|
||||
)
|
||||
|
||||
if net_add_price > 0:
|
||||
if net_additionals_price > 0:
|
||||
# Cr Sales – Additional Services
|
||||
TransactionModel.objects.create(
|
||||
journal_entry=je_sale,
|
||||
account=add_rev,
|
||||
amount=net_add_price,
|
||||
amount=net_additionals_price,
|
||||
tx_type='credit'
|
||||
)
|
||||
|
||||
|
||||
@ -4807,7 +4807,7 @@ class EstimateDetailView(LoginRequiredMixin, PermissionRequiredMixin, DetailView
|
||||
finance_data = calculator.get_finance_data()
|
||||
invoice_obj = InvoiceModel.objects.all().filter(ce_model=estimate).first()
|
||||
kwargs["data"] = finance_data
|
||||
print(kwargs["data"])
|
||||
|
||||
kwargs["invoice"] = invoice_obj
|
||||
try:
|
||||
car_finances = estimate.get_itemtxs_data()[0].first().item_model.car.finances
|
||||
@ -5465,9 +5465,9 @@ def invoice_create(request, dealer_slug, pk):
|
||||
|
||||
invoice_itemtxs = {
|
||||
i.get("item_number"): {
|
||||
"unit_cost": i.get("total_vat"),
|
||||
"quantity": i.get("quantity"),
|
||||
"total_amount": i.get("total_vat"),
|
||||
"unit_cost": i.get("grand_total"),
|
||||
"quantity": 1,
|
||||
"total_amount": i.get("grand_total"),
|
||||
}
|
||||
for i in finance_data.get("cars")
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<li class="collapsed-nav-item-title d-none">{% trans "Inventory"|capfirst %}</li>
|
||||
{% if perms.inventory.add_car %}
|
||||
<li class="nav-item">
|
||||
<a hx-boost="true" id="btn-add-car" class="nav-link btn-add-car" href="{% url 'car_add' request.dealer.slug %}">
|
||||
<a hx-boost="false" id="btn-add-car" class="nav-link btn-add-car" href="{% url 'car_add' request.dealer.slug %}">
|
||||
<div class="d-flex align-items-center">
|
||||
<span class="nav-link-icon"><span class="fas fa-plus-circle"></span></span><span class="nav-link-text">{% trans "add car"|capfirst %}</span>
|
||||
</div>
|
||||
@ -164,7 +164,7 @@
|
||||
<li class="collapsed-nav-item-title d-none">{% trans 'sales'|capfirst %}</li>
|
||||
{% if perms.django_ledger.add_estimatemodel %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'estimate_create' request.dealer.slug %}">
|
||||
<a hx-boost="false" class="nav-link" href="{% url 'estimate_create' request.dealer.slug %}">
|
||||
<div class="d-flex align-items-center">
|
||||
<span class="nav-link-icon"><span class="fas fa-handshake"></span></span><span class="nav-link-text">{% trans "create quotation"|capfirst %}</span>
|
||||
</div>
|
||||
|
||||
@ -191,7 +191,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user