Merge branch 'main' of http://10.10.1.136:3000/ismail/haikal into frontend

This commit is contained in:
Faheedkhan 2025-07-01 17:09:12 +03:00
commit 6030267f61
5 changed files with 35 additions and 32 deletions

View File

@ -84,3 +84,8 @@ class AuthorizedEntityMixin:
user_model=dealer.entity.admin, user_model=dealer.entity.admin,
authorized_superuser=self.get_superuser_authorization(), authorized_superuser=self.get_superuser_authorization(),
) )
def get_queryset(self):
dealer = get_object_or_404(models.Dealer,slug=self.kwargs["dealer_slug"])
self.queryset = EntityModel.objects.for_user(
user_model=dealer.entity.admin).select_related('default_coa')
return super().get_queryset()

View File

@ -48,11 +48,13 @@ def attr(field, args):
"ledger/reports/components/period_navigator.html", takes_context=True "ledger/reports/components/period_navigator.html", takes_context=True
) )
def period_navigation(context, base_url: str): def period_navigation(context, base_url: str):
print(context, base_url)
kwargs = dict() kwargs = dict()
dealer_slug = context["view"].kwargs["dealer_slug"]
entity_slug = context["view"].kwargs["entity_slug"] entity_slug = context["view"].kwargs["entity_slug"]
kwargs["dealer_slug"] = dealer_slug
kwargs["entity_slug"] = entity_slug kwargs["entity_slug"] = entity_slug
if context["view"].kwargs.get("ledger_pk"): if context["view"].kwargs.get("ledger_pk"):
kwargs["ledger_pk"] = context["view"].kwargs.get("ledger_pk") kwargs["ledger_pk"] = context["view"].kwargs.get("ledger_pk")
@ -86,6 +88,7 @@ def period_navigation(context, base_url: str):
dt = get_localdate() dt = get_localdate()
KWARGS_CURRENT_MONTH = { KWARGS_CURRENT_MONTH = {
"dealer_slug": context["view"].kwargs["dealer_slug"],
"entity_slug": context["view"].kwargs["entity_slug"], "entity_slug": context["view"].kwargs["entity_slug"],
"year": dt.year, "year": dt.year,
"month": dt.month, "month": dt.month,
@ -100,7 +103,7 @@ def period_navigation(context, base_url: str):
if "coa_slug" in kwargs: if "coa_slug" in kwargs:
KWARGS_CURRENT_MONTH["coa_slug"] = kwargs["coa_slug"] KWARGS_CURRENT_MONTH["coa_slug"] = kwargs["coa_slug"]
ctx["current_month_url"] = reverse(f"{base_url}-month", kwargs=KWARGS_CURRENT_MONTH) ctx["current_month_url"] = reverse(f"{base_url}-month" ,kwargs=KWARGS_CURRENT_MONTH)
quarter_urls = list() quarter_urls = list()
ctx["quarter"] = context.get("quarter") ctx["quarter"] = context.get("quarter")

View File

@ -940,54 +940,54 @@ urlpatterns = [
# BALANCE SHEET Reports... # BALANCE SHEET Reports...
# Entities... # Entities...
path( path(
"entity/<slug:entity_slug>/balance-sheet/", "<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/",
views.BaseBalanceSheetRedirectView.as_view(), views.BaseBalanceSheetRedirectView.as_view(),
name="entity-bs", name="entity-bs",
), ),
path( path(
"entity/<slug:entity_slug>/balance-sheet/year/<int:year>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/year/<int:year>/",
views.FiscalYearBalanceSheetViewBase.as_view(), views.FiscalYearBalanceSheetViewBase.as_view(),
name="entity-bs-year", name="entity-bs-year",
), ),
path( path(
"entity/<slug:entity_slug>/balance-sheet/quarter/<int:year>/<int:quarter>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/quarter/<int:year>/<int:quarter>/",
views.QuarterlyBalanceSheetView.as_view(), views.QuarterlyBalanceSheetView.as_view(),
name="entity-bs-quarter", name="entity-bs-quarter",
), ),
path( path(
"entity/<slug:entity_slug>/balance-sheet/month/<int:year>/<int:month>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/month/<int:year>/<int:month>/",
views.MonthlyBalanceSheetView.as_view(), views.MonthlyBalanceSheetView.as_view(),
name="entity-bs-month", name="entity-bs-month",
), ),
path( path(
"entity/<slug:entity_slug>/balance-sheet/date/<int:year>/<int:month>/<int:day>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/date/<int:year>/<int:month>/<int:day>/",
views.DateBalanceSheetView.as_view(), views.DateBalanceSheetView.as_view(),
name="entity-bs-date", name="entity-bs-date",
), ),
# INCOME STATEMENT Reports ---- # INCOME STATEMENT Reports ----
# Entity ..... # Entity .....
path( path(
"entity/<slug:entity_slug>/income-statement/", "<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/",
views.BaseIncomeStatementRedirectViewBase.as_view(), views.BaseIncomeStatementRedirectViewBase.as_view(),
name="entity-ic", name="entity-ic",
), ),
path( path(
"entity/<slug:entity_slug>/income-statement/year/<int:year>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/year/<int:year>/",
views.FiscalYearIncomeStatementViewBase.as_view(), views.FiscalYearIncomeStatementViewBase.as_view(),
name="entity-ic-year", name="entity-ic-year",
), ),
path( path(
"entity/<slug:entity_slug>/income-statement/quarter/<int:year>/<int:quarter>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/quarter/<int:year>/<int:quarter>/",
views.QuarterlyIncomeStatementView.as_view(), views.QuarterlyIncomeStatementView.as_view(),
name="entity-ic-quarter", name="entity-ic-quarter",
), ),
path( path(
"entity/<slug:entity_slug>/income-statement/month/<int:year>/<int:month>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/month/<int:year>/<int:month>/",
views.MonthlyIncomeStatementView.as_view(), views.MonthlyIncomeStatementView.as_view(),
name="entity-ic-month", name="entity-ic-month",
), ),
path( path(
"entity/<slug:entity_slug>/income-statement/date/<int:year>/<int:month>/<int:day>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/date/<int:year>/<int:month>/<int:day>/",
views.MonthlyIncomeStatementView.as_view(), views.MonthlyIncomeStatementView.as_view(),
name="entity-ic-date", name="entity-ic-date",
), ),
@ -1004,17 +1004,17 @@ urlpatterns = [
name="entity-cf-year", name="entity-cf-year",
), ),
path( path(
"entity/<slug:entity_slug>/cash-flow-statement/quarter/<int:year>/<int:quarter>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/quarter/<int:year>/<int:quarter>/",
views.QuarterlyCashFlowStatementView.as_view(), views.QuarterlyCashFlowStatementView.as_view(),
name="entity-cf-quarter", name="entity-cf-quarter",
), ),
path( path(
"entity/<slug:entity_slug>/cash-flow-statement/month/<int:year>/<int:month>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/month/<int:year>/<int:month>/",
views.MonthlyCashFlowStatementView.as_view(), views.MonthlyCashFlowStatementView.as_view(),
name="entity-cf-month", name="entity-cf-month",
), ),
path( path(
"entity/<slug:entity_slug>/cash-flow-statement/date/<int:year>/<int:month>/<int:day>/", "<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/date/<int:year>/<int:month>/<int:day>/",
views.DateCashFlowStatementView.as_view(), views.DateCashFlowStatementView.as_view(),
name="entity-cf-date", name="entity-cf-date",
), ),

View File

@ -7428,9 +7428,10 @@ class BaseBalanceSheetRedirectView(RedirectView):
def get_redirect_url(self, *args, **kwargs): def get_redirect_url(self, *args, **kwargs):
year = get_localdate().year year = get_localdate().year
dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"])
return reverse( return reverse(
"entity-bs-year", "entity-bs-year",
kwargs={"entity_slug": self.kwargs["entity_slug"], "year": year}, kwargs={"dealer_slug": self.kwargs["dealer_slug"],"entity_slug": self.kwargs["entity_slug"], "year": year},
) )
def get_login_url(self): def get_login_url(self):
@ -7438,7 +7439,7 @@ class BaseBalanceSheetRedirectView(RedirectView):
class FiscalYearBalanceSheetViewBase( class FiscalYearBalanceSheetViewBase(
FiscalYearBalanceSheetView AuthorizedEntityMixin,FiscalYearBalanceSheetView
): ):
""" """
Defines a base view for the fiscal year balance sheet. Defines a base view for the fiscal year balance sheet.
@ -7541,7 +7542,7 @@ class DateBalanceSheetView(
class BaseIncomeStatementRedirectViewBase( class BaseIncomeStatementRedirectViewBase(
BaseIncomeStatementRedirectView AuthorizedEntityMixin,BaseIncomeStatementRedirectView
): ):
""" """
The BaseIncomeStatementRedirectViewBase class provides functionality for handling The BaseIncomeStatementRedirectViewBase class provides functionality for handling
@ -7560,9 +7561,9 @@ class BaseIncomeStatementRedirectViewBase(
def get_redirect_url(self, *args, **kwargs): def get_redirect_url(self, *args, **kwargs):
year = get_localdate().year year = get_localdate().year
dealer = get_user_type(self.request) dealer = get_object_or_404(models.Dealer, slug=kwargs["dealer_slug"])
return reverse( return reverse(
"entity-ic-year", kwargs={"entity_slug": dealer.entity.slug, "year": year} "entity-ic-year", kwargs={"dealer_slug": dealer.slug,"entity_slug": dealer.entity.slug, "year": year}
) )
def get_login_url(self): def get_login_url(self):
@ -7570,7 +7571,7 @@ class BaseIncomeStatementRedirectViewBase(
class FiscalYearIncomeStatementViewBase( class FiscalYearIncomeStatementViewBase(
FiscalYearIncomeStatementView AuthorizedEntityMixin,FiscalYearIncomeStatementView
): ):
""" """
Represents a base view for fiscal year income statement. Represents a base view for fiscal year income statement.
@ -7690,8 +7691,8 @@ class BaseCashFlowStatementRedirectViewBase(
""" """
def get_redirect_url(self, *args, **kwargs): def get_redirect_url(self, *args, **kwargs):
dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"])
year = get_localdate().year year = get_localdate().year
dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"])
return reverse( return reverse(
"entity-cf-year", kwargs={"dealer_slug": dealer.slug,"entity_slug": dealer.entity.slug, "year": year} "entity-cf-year", kwargs={"dealer_slug": dealer.slug,"entity_slug": dealer.entity.slug, "year": year}
) )
@ -7727,8 +7728,6 @@ class FiscalYearCashFlowStatementViewBase(
class QuarterlyCashFlowStatementView( class QuarterlyCashFlowStatementView(
FiscalYearCashFlowStatementViewBase, QuarterlyReportMixIn, FiscalYearCashFlowStatementViewBase, QuarterlyReportMixIn,
): ):

View File

@ -306,10 +306,8 @@
<i class="fa-solid fa-sack-dollar"></i><span class="nav-link-text">{% trans 'Cash Flow'|capfirst %}</span> <i class="fa-solid fa-sack-dollar"></i><span class="nav-link-text">{% trans 'Cash Flow'|capfirst %}</span>
</div> </div>
</a> </a>
{% if request.user.is_authenticated and request.is_dealer %} {% if request.user.is_authenticated %}
<a class="nav-link" href="{% url 'entity-ic' request.user.dealer.entity.slug %}"> <a class="nav-link" href="{% url 'entity-ic' request.dealer.slug request.dealer.entity.slug %}">
{% elif request.user.is_authenticated and request.is_staff %}
<a class="nav-link" href="{% url 'entity-ic' request.user.staffmember.staff.dealer.entity.slug %}">
{% else %} {% else %}
<a class="nav-link" href="#"> <a class="nav-link" href="#">
{% endif %} {% endif %}
@ -317,10 +315,8 @@
<i class="fa-solid fa-sheet-plastic"></i><span class="nav-link-text">{% trans 'Income Statement'|capfirst %}</span> <i class="fa-solid fa-sheet-plastic"></i><span class="nav-link-text">{% trans 'Income Statement'|capfirst %}</span>
</div> </div>
</a> </a>
{% if request.user.is_authenticated and request.is_dealer %} {% if request.user.is_authenticated %}
<a class="nav-link" href="{% url 'entity-bs' request.user.dealer.entity.slug %}"> <a class="nav-link" href="{% url 'entity-bs' request.dealer.slug request.dealer.entity.slug %}">
{% elif request.user.is_authenticated and request.is_staff %}
<a class="nav-link" href="{% url 'entity-bs' request.user.staffmember.staff.dealer.entity.slug %}">
{% else %} {% else %}
<a class="nav-link" href="#"> <a class="nav-link" href="#">
{% endif %} {% endif %}