From 979e82b07138cfe1b27f731b4018d04cd2bec0c2 Mon Sep 17 00:00:00 2001 From: Faheedkhan Date: Sun, 22 Jun 2025 20:08:26 +0300 Subject: [PATCH] update --- inventory/migrations/0001_initial.py | 25 +++----- .../0002_remove_saleorder_journal_entry.py | 17 ------ .../0003_saleorder_journal_entry.py | 20 ------ ..._remove_saleorder_agreed_price_and_more.py | 61 ------------------- .../migrations/0005_remove_saleorder_car.py | 17 ------ inventory/migrations/0006_saleorder_dealer.py | 20 ------ .../migrations/0007_saleorder_estimate.py | 20 ------ .../migrations/0008_saleorder_opportunity.py | 19 ------ .../migrations/0009_saleorder_customer.py | 19 ------ ...010_alter_saleorder_created_by_and_more.py | 26 -------- inventory/templatetags/custom_filters.py | 1 + inventory/urls.py | 1 + inventory/views.py | 10 ++- templates/inv_dash.html | 4 ++ templates/inventory/list.html | 3 + templates/inventory/tags/inventory_table.html | 5 ++ .../journal_entry/journal_entry_delete.html | 1 + 17 files changed, 32 insertions(+), 237 deletions(-) delete mode 100644 inventory/migrations/0002_remove_saleorder_journal_entry.py delete mode 100644 inventory/migrations/0003_saleorder_journal_entry.py delete mode 100644 inventory/migrations/0004_remove_saleorder_agreed_price_and_more.py delete mode 100644 inventory/migrations/0005_remove_saleorder_car.py delete mode 100644 inventory/migrations/0006_saleorder_dealer.py delete mode 100644 inventory/migrations/0007_saleorder_estimate.py delete mode 100644 inventory/migrations/0008_saleorder_opportunity.py delete mode 100644 inventory/migrations/0009_saleorder_customer.py delete mode 100644 inventory/migrations/0010_alter_saleorder_created_by_and_more.py create mode 100644 templates/inv_dash.html diff --git a/inventory/migrations/0001_initial.py b/inventory/migrations/0001_initial.py index a629e2f3..41947442 100644 --- a/inventory/migrations/0001_initial.py +++ b/inventory/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.1 on 2025-06-18 15:44 +# Generated by Django 5.1.7 on 2025-06-22 10:44 import datetime import django.core.validators @@ -21,7 +21,7 @@ class Migration(migrations.Migration): ('appointment', '0001_initial'), ('auth', '0012_alter_user_first_name_max_length'), ('contenttypes', '0002_remove_content_type_name'), - ('django_ledger', '0022_alter_billmodel_bill_items_and_more'), + ('django_ledger', '0021_alter_bankaccountmodel_account_model_and_more'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -637,15 +637,8 @@ class Migration(migrations.Migration): name='SaleOrder', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('payment_method', models.CharField(choices=[('cash', 'Cash'), ('finance', 'Finance'), ('lease', 'Lease'), ('credit_card', 'Credit Card'), ('bank_transfer', 'Bank Transfer'), ('sadad', 'SADAD')], max_length=20)), ('comments', models.TextField(blank=True, null=True)), ('formatted_order_id', models.CharField(editable=False, max_length=10, unique=True)), - ('agreed_price', models.DecimalField(decimal_places=2, help_text='The final agreed-upon selling price of the vehicle.', max_digits=12)), - ('down_payment_amount', models.DecimalField(decimal_places=2, default=0.0, help_text='The initial payment made by the customer.', max_digits=12)), - ('trade_in_value', models.DecimalField(decimal_places=2, default=0.0, help_text='The value of any vehicle traded in by the customer.', max_digits=12)), - ('loan_amount', models.DecimalField(decimal_places=2, default=0.0, help_text='The amount financed by a bank or third-party lender.', max_digits=12)), - ('total_paid_amount', models.DecimalField(decimal_places=2, default=0.0, help_text='Sum of down payment, trade-in value, and loan amount received so far.', max_digits=12)), - ('remaining_balance', models.DecimalField(decimal_places=2, default=0.0, help_text='The remaining amount due from the customer or financing.', max_digits=12)), ('status', models.CharField(choices=[('PENDING_APPROVAL', 'Pending Approval'), ('APPROVED', 'Approved'), ('IN_FINANCING', 'In Financing'), ('PARTIALLY_PAID', 'Partially Paid'), ('FULLY_PAID', 'Fully Paid'), ('PENDING_DELIVERY', 'Pending Delivery'), ('DELIVERED', 'Delivered'), ('CANCELLED', 'Cancelled')], default='PENDING_APPROVAL', help_text='Current status of the sales order.', max_length=20)), ('order_date', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time the sales order was created.')), ('expected_delivery_date', models.DateField(blank=True, help_text='The planned date for vehicle delivery.', null=True)), @@ -654,15 +647,13 @@ class Migration(migrations.Migration): ('cancellation_reason', models.TextField(blank=True, help_text='Reason for cancellation, if applicable.', null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), - ('car', models.ForeignKey(blank=True, help_text='The specific vehicle (VIN) being sold.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='sales_orders', to='inventory.car')), - ('created_by', models.ForeignKey(help_text='The user who created this sales order.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_sales_orders', to=settings.AUTH_USER_MODEL)), - ('customer', models.ForeignKey(help_text='The customer making the purchase.', on_delete=django.db.models.deletion.PROTECT, related_name='sales_orders', to='inventory.customer')), - ('estimate', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='django_ledger.estimatemodel', verbose_name='Estimate')), + ('created_by', models.ForeignKey(blank=True, help_text='The user who created this sales order.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_sales_orders', to=settings.AUTH_USER_MODEL)), + ('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='inventory.customer', verbose_name='Customer')), + ('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='inventory.dealer')), + ('estimate', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='django_ledger.estimatemodel', verbose_name='Estimate')), ('invoice', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='django_ledger.invoicemodel', verbose_name='Invoice')), - ('journal_entry', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.journalentrymodel')), - ('last_modified_by', models.ForeignKey(help_text='The user who last modified this sales order.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='modified_sales_orders', to=settings.AUTH_USER_MODEL)), - ('opportunity', models.OneToOneField(help_text='The associated sales opportunity for this order.', on_delete=django.db.models.deletion.CASCADE, related_name='sales_order', to='inventory.opportunity')), - ('trade_in_vehicle', models.ForeignKey(blank=True, help_text='The vehicle traded in by the customer, if any.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='traded_in_on_orders', to='inventory.car')), + ('last_modified_by', models.ForeignKey(blank=True, help_text='The user who last modified this sales order.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='modified_sales_orders', to=settings.AUTH_USER_MODEL)), + ('opportunity', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='inventory.opportunity', verbose_name='Opportunity')), ], options={ 'verbose_name': 'Sales Order', diff --git a/inventory/migrations/0002_remove_saleorder_journal_entry.py b/inventory/migrations/0002_remove_saleorder_journal_entry.py deleted file mode 100644 index aee1533b..00000000 --- a/inventory/migrations/0002_remove_saleorder_journal_entry.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-18 15:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='saleorder', - name='journal_entry', - ), - ] diff --git a/inventory/migrations/0003_saleorder_journal_entry.py b/inventory/migrations/0003_saleorder_journal_entry.py deleted file mode 100644 index 5cee8325..00000000 --- a/inventory/migrations/0003_saleorder_journal_entry.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-18 15:46 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('django_ledger', '0022_alter_billmodel_bill_items_and_more'), - ('inventory', '0002_remove_saleorder_journal_entry'), - ] - - operations = [ - migrations.AddField( - model_name='saleorder', - name='journal_entry', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.journalentrymodel'), - ), - ] diff --git a/inventory/migrations/0004_remove_saleorder_agreed_price_and_more.py b/inventory/migrations/0004_remove_saleorder_agreed_price_and_more.py deleted file mode 100644 index 5d924dd6..00000000 --- a/inventory/migrations/0004_remove_saleorder_agreed_price_and_more.py +++ /dev/null @@ -1,61 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 13:27 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0003_saleorder_journal_entry'), - ] - - operations = [ - migrations.RemoveField( - model_name='saleorder', - name='agreed_price', - ), - migrations.RemoveField( - model_name='saleorder', - name='customer', - ), - migrations.RemoveField( - model_name='saleorder', - name='down_payment_amount', - ), - migrations.RemoveField( - model_name='saleorder', - name='estimate', - ), - migrations.RemoveField( - model_name='saleorder', - name='journal_entry', - ), - migrations.RemoveField( - model_name='saleorder', - name='loan_amount', - ), - migrations.RemoveField( - model_name='saleorder', - name='opportunity', - ), - migrations.RemoveField( - model_name='saleorder', - name='payment_method', - ), - migrations.RemoveField( - model_name='saleorder', - name='remaining_balance', - ), - migrations.RemoveField( - model_name='saleorder', - name='total_paid_amount', - ), - migrations.RemoveField( - model_name='saleorder', - name='trade_in_value', - ), - migrations.RemoveField( - model_name='saleorder', - name='trade_in_vehicle', - ), - ] diff --git a/inventory/migrations/0005_remove_saleorder_car.py b/inventory/migrations/0005_remove_saleorder_car.py deleted file mode 100644 index 113040fc..00000000 --- a/inventory/migrations/0005_remove_saleorder_car.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 13:34 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0004_remove_saleorder_agreed_price_and_more'), - ] - - operations = [ - migrations.RemoveField( - model_name='saleorder', - name='car', - ), - ] diff --git a/inventory/migrations/0006_saleorder_dealer.py b/inventory/migrations/0006_saleorder_dealer.py deleted file mode 100644 index 16181308..00000000 --- a/inventory/migrations/0006_saleorder_dealer.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 13:51 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0005_remove_saleorder_car'), - ] - - operations = [ - migrations.AddField( - model_name='saleorder', - name='dealer', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='inventory.dealer'), - preserve_default=False, - ), - ] diff --git a/inventory/migrations/0007_saleorder_estimate.py b/inventory/migrations/0007_saleorder_estimate.py deleted file mode 100644 index 7d5254db..00000000 --- a/inventory/migrations/0007_saleorder_estimate.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 13:59 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('django_ledger', '0022_alter_billmodel_bill_items_and_more'), - ('inventory', '0006_saleorder_dealer'), - ] - - operations = [ - migrations.AddField( - model_name='saleorder', - name='estimate', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='django_ledger.estimatemodel', verbose_name='Estimate'), - ), - ] diff --git a/inventory/migrations/0008_saleorder_opportunity.py b/inventory/migrations/0008_saleorder_opportunity.py deleted file mode 100644 index 41fecf33..00000000 --- a/inventory/migrations/0008_saleorder_opportunity.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 14:00 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0007_saleorder_estimate'), - ] - - operations = [ - migrations.AddField( - model_name='saleorder', - name='opportunity', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='inventory.opportunity', verbose_name='Opportunity'), - ), - ] diff --git a/inventory/migrations/0009_saleorder_customer.py b/inventory/migrations/0009_saleorder_customer.py deleted file mode 100644 index 0fc198f5..00000000 --- a/inventory/migrations/0009_saleorder_customer.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 14:19 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0008_saleorder_opportunity'), - ] - - operations = [ - migrations.AddField( - model_name='saleorder', - name='customer', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sale_orders', to='inventory.customer', verbose_name='Customer'), - ), - ] diff --git a/inventory/migrations/0010_alter_saleorder_created_by_and_more.py b/inventory/migrations/0010_alter_saleorder_created_by_and_more.py deleted file mode 100644 index 72054443..00000000 --- a/inventory/migrations/0010_alter_saleorder_created_by_and_more.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 5.2.1 on 2025-06-19 14:34 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inventory', '0009_saleorder_customer'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AlterField( - model_name='saleorder', - name='created_by', - field=models.ForeignKey(blank=True, help_text='The user who created this sales order.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_sales_orders', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='saleorder', - name='last_modified_by', - field=models.ForeignKey(blank=True, help_text='The user who last modified this sales order.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='modified_sales_orders', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/inventory/templatetags/custom_filters.py b/inventory/templatetags/custom_filters.py index d3e97b55..87b91fc0 100644 --- a/inventory/templatetags/custom_filters.py +++ b/inventory/templatetags/custom_filters.py @@ -1,3 +1,4 @@ + from typing import Union from random import randint from django import template diff --git a/inventory/urls.py b/inventory/urls.py index a763ac0b..5fce3878 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -1107,6 +1107,7 @@ urlpatterns = [ views.PurchaseOrderMarkAsVoidView.as_view(), name="po-action-mark-as-void", ), + path('inv/dashboard',views.inventory_dash,name='inv_dash') ] handler404 = "inventory.views.custom_page_not_found_view" diff --git a/inventory/views.py b/inventory/views.py index 9bdcdfcb..17a3fe18 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -9504,4 +9504,12 @@ class InventoryListView(InventoryListViewBase): self.queryset = ItemTransactionModel.objects.inventory_pipeline_aggregate( entity_slug=dealer.entity.slug, ) - return super().get_queryset() \ No newline at end of file + return super().get_queryset() + + +def inventory_dash(request): + cars=models.Car.objects.all() + context={ + 'cars':cars + } + return render(request,'inv_dash.html',context) \ No newline at end of file diff --git a/templates/inv_dash.html b/templates/inv_dash.html new file mode 100644 index 00000000..fc90b9c3 --- /dev/null +++ b/templates/inv_dash.html @@ -0,0 +1,4 @@ +{% extends 'base.html' %} +{% block content %} +

inventory dash

+{%endblock%} \ No newline at end of file diff --git a/templates/inventory/list.html b/templates/inventory/list.html index 0df8ddf3..e7ed89fb 100644 --- a/templates/inventory/list.html +++ b/templates/inventory/list.html @@ -16,7 +16,10 @@
{% if inventory_ordered %} + +
+ {% inventory_table inventory_ordered %}
{% else %} diff --git a/templates/inventory/tags/inventory_table.html b/templates/inventory/tags/inventory_table.html index 904a56c1..8fc14eb3 100644 --- a/templates/inventory/tags/inventory_table.html +++ b/templates/inventory/tags/inventory_table.html @@ -5,6 +5,7 @@ + @@ -12,8 +13,12 @@ + {% for i in inventory_list %} + + + diff --git a/templates/ledger/journal_entry/journal_entry_delete.html b/templates/ledger/journal_entry/journal_entry_delete.html index 1af8e724..8eaca6fc 100644 --- a/templates/ledger/journal_entry/journal_entry_delete.html +++ b/templates/ledger/journal_entry/journal_entry_delete.html @@ -1,3 +1,4 @@ + {% extends 'base.html' %} {% load i18n %} {% load static %}
{% trans "Created at" %} {% trans "Item" %} {% trans "UOM" %} {% trans "Quantity" %}
{{ i.item_model__name }} {{ i.item_model__name }} {{ i.item_model__uom__name }} {{ i.total_quantity | floatformat:3 }}