1337 lines
46 KiB
Python
1337 lines
46 KiB
Python
from inventory.utils import get_user_type
|
|
from . import views
|
|
from django.urls import path
|
|
from django.urls import reverse_lazy
|
|
from django.views.generic import RedirectView
|
|
from django_tables2.export.export import TableExport
|
|
from django.conf.urls import handler403, handler400, handler404, handler500
|
|
|
|
urlpatterns = [
|
|
# main URLs
|
|
path("", views.WelcomeView, name="welcome"),
|
|
path("signup/", views.dealer_signup, name="account_signup"),
|
|
path("", views.HomeView, name="home"),
|
|
path("<slug:dealer_slug>/", views.HomeView, name="home"),
|
|
# Tasks
|
|
path("legal/", views.terms_and_privacy, name="terms_and_privacy"),
|
|
# path('tasks/<int:task_id>/detail/', views.task_detail, name='task_detail'),
|
|
# Dashboards
|
|
# path("user/<int:pk>/settings/", views.UserSettingsView.as_view(), name="user_settings"),
|
|
path("<slug:dealer_slug>/pricing/", views.pricing_page, name="pricing_page"),
|
|
path("<slug:dealer_slug>/submit_plan/", views.submit_plan, name="submit_plan"),
|
|
path(
|
|
"<slug:dealer_slug>/payment-callback/",
|
|
views.payment_callback,
|
|
name="payment_callback",
|
|
),
|
|
#
|
|
path(
|
|
"<slug:dealer_slug>/dealers/activity/",
|
|
views.UserActivityLogListView.as_view(),
|
|
name="dealer_activity",
|
|
),
|
|
path(
|
|
"dealers/<slug:slug>/settings/",
|
|
views.DealerSettingsView,
|
|
name="dealer_settings",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/dealers/assign-car-makes/",
|
|
views.assign_car_makes,
|
|
name="assign_car_makes",
|
|
),
|
|
|
|
|
|
#dashboards for manager, dealer, inventory and accounatant
|
|
path("dashboards/<slug:dealer_slug>/general/", views.general_dashboard,name="general_dashboard"),
|
|
#dashboard for sales
|
|
path("dashboards/<slug:dealer_slug>/sales/", views.sales_dashboard, name="sales_dashboard"),
|
|
|
|
path(
|
|
"<slug:dealer_slug>/cars/aging-inventory/list",
|
|
views.aging_inventory_list_view,
|
|
name="aging_inventory_list",
|
|
),
|
|
path("cars/inventory/table/", views.CarListViewTable.as_view(), name="car_table"),
|
|
path("export/format/", TableExport.export, name="export"),
|
|
# Dealer URLs
|
|
path(
|
|
"<slug:slug>/dealers/", views.DealerDetailView.as_view(), name="dealer_detail"
|
|
),
|
|
path(
|
|
"dealers/<slug:slug>/update/",
|
|
views.DealerUpdateView.as_view(),
|
|
name="dealer_update",
|
|
),
|
|
path(
|
|
"dealers/<slug:slug>/dealer_vat_rate_update/",
|
|
views.dealer_vat_rate_update,
|
|
name="dealer_vat_rate_update",
|
|
),
|
|
# path('dealers/<int:pk>/delete/', views.DealerDeleteView.as_view(), name='dealer_delete'),
|
|
# CRM URLs
|
|
path(
|
|
"<slug:dealer_slug>/customers/create/",
|
|
views.CustomerCreateView.as_view(),
|
|
name="customer_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/customers/",
|
|
views.CustomerListView.as_view(),
|
|
name="customer_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/customers/<slug:slug>/",
|
|
views.CustomerDetailView.as_view(),
|
|
name="customer_detail",
|
|
),
|
|
# path(
|
|
# "<slug:dealer_slug>/customers/<slug:slug>/add-note/",
|
|
# views.add_note_to_customer,
|
|
# name="add_note_to_customer",
|
|
# ),
|
|
path(
|
|
"<slug:dealer_slug>/customers/<slug:slug>/update/",
|
|
views.CustomerUpdateView.as_view(),
|
|
name="customer_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/customers/<slug:slug>/delete/",
|
|
views.delete_customer,
|
|
name="customer_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/customers/<slug:slug>/opportunities/create/",
|
|
views.OpportunityCreateView.as_view(),
|
|
name="create_opportunity",
|
|
),
|
|
########################################
|
|
#####Lead
|
|
########################################
|
|
path("<slug:dealer_slug>/crm/leads/create/", views.lead_create, name="lead_create"),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/view/",
|
|
views.LeadDetailView.as_view(),
|
|
name="lead_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/update-lead-actions/",
|
|
views.update_lead_actions,
|
|
name="update_lead_actions",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/lead_tracking/",
|
|
views.lead_tracking,
|
|
name="lead_tracking",
|
|
),
|
|
path("<slug:dealer_slug>/crm/leads/lead_view/", views.lead_view, name="lead_view"),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/", views.LeadListView.as_view(), name="lead_list"
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/update/",
|
|
views.lead_update,
|
|
name="lead_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/delete/",
|
|
views.LeadDeleteView,
|
|
name="lead_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/lead-convert/",
|
|
views.lead_convert,
|
|
name="lead_convert",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<int:pk>/delete-note/",
|
|
views.delete_note,
|
|
name="delete_note_to_lead",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/<int:pk>/update-note/",
|
|
views.update_note,
|
|
name="update_note",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/<str:content_type>/<slug:slug>/add-note/",
|
|
views.add_note,
|
|
name="add_note",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/<int:pk>/update-task/",
|
|
views.update_task,
|
|
name="update_task",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/<int:pk>/update-schedule/",
|
|
views.update_schedule,
|
|
name="update_schedule",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/<str:content_type>/<slug:slug>/add-task/",
|
|
views.add_task,
|
|
name="add_task",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/<str:content_type>/<slug:slug>/add-activity/",
|
|
views.add_activity,
|
|
name="add_activity",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/send_lead_email/",
|
|
views.send_lead_email,
|
|
name="send_lead_email",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/send_lead_email/<int:email_pk>",
|
|
views.send_lead_email,
|
|
name="send_lead_email_with_template",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/<str:content_type>/<slug:slug>/schedule/",
|
|
views.schedule_event,
|
|
name="schedule_event",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/schedule/<int:pk>/cancel/",
|
|
views.schedule_cancel,
|
|
name="schedule_cancel",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/leads/<slug:slug>/transfer/",
|
|
views.lead_transfer,
|
|
name="lead_transfer",
|
|
),
|
|
# path(
|
|
# "<slug:dealer_slug>/crm/opportunities/<slug:slug>/add_note/",
|
|
# views.add_note_to_opportunity,
|
|
# name="add_note_to_opportunity",
|
|
# ),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/create/",
|
|
views.OpportunityCreateView.as_view(),
|
|
name="opportunity_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<slug:slug>/create/",
|
|
views.OpportunityCreateView.as_view(),
|
|
name="lead_opportunity_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<slug:slug>/create/",
|
|
views.OpportunityCreateView.as_view(),
|
|
name="opportunity_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<slug:slug>/",
|
|
views.OpportunityDetailView.as_view(),
|
|
name="opportunity_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<slug:slug>/edit/",
|
|
views.OpportunityUpdateView.as_view(),
|
|
name="update_opportunity",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<slug:slug>/stage/edit",
|
|
views.OpportunityStageUpdateView.as_view(),
|
|
name="update_opportunity_stage",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/",
|
|
views.OpportunityListView.as_view(),
|
|
name="opportunity_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<int:pk>/delete/",
|
|
views.delete_opportunity,
|
|
name="delete_opportunity",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/crm/opportunities/<slug:slug>/opportunity_update_status/",
|
|
views.opportunity_update_status,
|
|
name="opportunity_update_status",
|
|
),
|
|
# path('crm/opportunities/<int:pk>/logs/', views.OpportunityLogsView.as_view(), name='opportunity_logs'),
|
|
# #######################
|
|
# #######################
|
|
# Notifications
|
|
path("notifications/stream/", views.sse_stream, name="sse_stream"),
|
|
path("notifications/fetch/", views.fetch_notifications, name="fetch_notifications"),
|
|
path(
|
|
"notifications/list/",
|
|
views.NotificationListView.as_view(),
|
|
name="notifications_history",
|
|
),
|
|
path(
|
|
"notifications/<int:notification_id>/mark_as_read/",
|
|
views.mark_notification_as_read,
|
|
name="mark_notification_as_read",
|
|
),
|
|
path(
|
|
"notifications/mark_all_notifications_as_read/",
|
|
views.mark_all_notifications_as_read,
|
|
name="mark_all_notifications_as_read",
|
|
),
|
|
# #######################
|
|
# #######################
|
|
# path("crm/calender/", views.EmployeeCalendarView.as_view(), name="calendar_list"),
|
|
#######################################################
|
|
# Vendor URLs
|
|
#######################################################
|
|
path(
|
|
"<slug:dealer_slug>/vendors/create/",
|
|
views.VendorCreateView.as_view(),
|
|
name="vendor_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/vendors", views.VendorListView.as_view(), name="vendor_list"
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/vendors/<slug:slug>/",
|
|
views.vendorDetailView,
|
|
name="vendor_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/vendors/<slug:slug>/update/",
|
|
views.VendorUpdateView.as_view(),
|
|
name="vendor_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/vendors/<slug:slug>/delete/",
|
|
views.delete_vendor,
|
|
name="vendor_delete",
|
|
),
|
|
#######################################################
|
|
# Car URLs
|
|
#######################################################
|
|
path("<slug:dealer_slug>/cars/upload_cars/", views.upload_cars, name="upload_cars"),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<uuid:pk>/upload_cars/",
|
|
views.upload_cars,
|
|
name="upload_cars",
|
|
),
|
|
path("<slug:dealer_slug>/cars/add/", views.CarCreateView.as_view(), name="car_add"),
|
|
path(
|
|
"<slug:dealer_slug>/cars/inventory/",
|
|
views.CarInventory.as_view(),
|
|
name="car_inventory_all",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/inventory/<slug:make_id>/<slug:model_id>/<slug:trim_id>/",
|
|
views.CarInventory.as_view(),
|
|
name="car_inventory",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/inventory/stats",
|
|
views.inventory_stats_view,
|
|
name="inventory_stats",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/inventory/list",
|
|
views.CarListView.as_view(),
|
|
name="car_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/",
|
|
views.CarDetailView.as_view(),
|
|
name="car_detail",
|
|
),
|
|
path("cars/<slug:slug>/history/", views.car_history, name="car_history"),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/update/",
|
|
views.CarUpdateView.as_view(),
|
|
name="car_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/delete/",
|
|
views.CarDeleteView.as_view(),
|
|
name="car_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/finance/update/",
|
|
views.CarFinanceUpdateView,
|
|
name="car_finance_update",
|
|
),
|
|
path(
|
|
"htmx/cars/bulk_update_car_price/",
|
|
views.bulk_update_car_price,
|
|
name="bulk_update_car_price",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ajax/", views.AjaxHandlerView.as_view(), name="ajax_handler"
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/add-color/",
|
|
views.CarColorCreate.as_view(),
|
|
name="add_color",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/car/colors/<slug:slug>/update/",
|
|
views.CarColorsUpdateView.as_view(),
|
|
name="car_colors_update",
|
|
),
|
|
path(
|
|
"cars/<slug:slug>/location/add/",
|
|
views.CarLocationCreateView.as_view(),
|
|
name="add_car_location",
|
|
),
|
|
path(
|
|
"cars/<slug:car_pk>/location/<int:pk>/update",
|
|
views.CarLocationUpdateView.as_view(),
|
|
name="update_car_location",
|
|
),
|
|
path(
|
|
"cars/<slug:slug>/location/update/",
|
|
views.CarTransferCreateView.as_view(),
|
|
name="transfer",
|
|
),
|
|
path(
|
|
"cars/<slug:slug>/location/detail/",
|
|
views.CarTransferDetailView.as_view(),
|
|
name="transfer_detail",
|
|
),
|
|
path(
|
|
"cars/<slug:slug>/location/<int:transfer_pk>/transfer_approve/",
|
|
views.car_transfer_approve,
|
|
name="transfer_confirm",
|
|
),
|
|
path(
|
|
"cars/<slug:slug>/location/<int:transfer_pk>/transfer_accept_reject/",
|
|
views.car_transfer_accept_reject,
|
|
name="transfer_accept_reject",
|
|
),
|
|
path(
|
|
"cars/<slug:slug>/location/<int:transfer_pk>/preview/",
|
|
views.CarTransferPreviewView,
|
|
name="transfer_preview",
|
|
),
|
|
path("cars/inventory/search/", views.SearchCodeView.as_view(), name="car_search"),
|
|
# path('cars/<int:car_pk>/colors/<int:pk>/update/',views.CarColorUpdateView.as_view(),name='color_update'),
|
|
path(
|
|
"<slug:dealer_slug>/cars/reserve/<slug:slug>/",
|
|
views.reserve_car_view,
|
|
name="reserve_car",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/reservations/<int:reservation_id>/",
|
|
views.manage_reservation,
|
|
name="reservations",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/add-custom-card/",
|
|
views.CustomCardCreateView.as_view(),
|
|
name="add_custom_card",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/cars/<slug:slug>/add-registration/",
|
|
views.CarRegistrationCreateView.as_view(),
|
|
name="add_registration",
|
|
),
|
|
# sales list
|
|
path(
|
|
"<slug:dealer_slug>/sales/list/",
|
|
views.sales_list_view,
|
|
name="sales_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sale_orders/<int:pk>/",
|
|
views.SaleOrderDetailView.as_view(),
|
|
name="order_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/inventory/<slug:entity_slug>/list/",
|
|
views.InventoryListView.as_view(),
|
|
name="inventory_list",
|
|
),
|
|
# Sales URLs quotation_create
|
|
# path(
|
|
# "sales/quotations/create/",
|
|
# views.QuotationCreateView.as_view(),
|
|
# name="quotation_create",
|
|
# ),
|
|
# path(
|
|
# "sales/quotations/<int:pk>/",
|
|
# views.QuotationDetailView.as_view(),
|
|
# name="quotation_detail",
|
|
# ),
|
|
# path("sales/quotations/", views.QuotationListView.as_view(), name="quotation_list"),
|
|
# path(
|
|
# "sales/quotations/<int:pk>/confirm/",
|
|
# views.confirm_quotation,
|
|
# name="confirm_quotation",
|
|
# ),
|
|
# path(
|
|
# "sales/orders/detail/<int:order_id>/",
|
|
# views.SalesOrderDetailView.as_view(),
|
|
# name="order_detail",
|
|
# ),
|
|
# path(
|
|
# "quotation/<int:quotation_id>/pdf/",
|
|
# views.download_quotation_pdf,
|
|
# name="quotation_pdf",
|
|
# ),
|
|
# path("generate_invoice/<int:pk>/", views.generate_invoice, name="generate_invoice"),
|
|
# path(
|
|
# "sales/quotations/<int:pk>/mark_quotation/",
|
|
# views.mark_quotation,
|
|
# name="mark_quotation",
|
|
# ),
|
|
# path(
|
|
# "sales/quotations/<int:pk>/post_quotation/",views.post_quotation,
|
|
# name="post_quotation"
|
|
# ),
|
|
# path(
|
|
# "sales/quotations/<int:pk>/invoice_detail/",
|
|
# views.invoice_detail,
|
|
# name="invoice_detail",
|
|
# ),
|
|
# path("subscriptions", views.SubscriptionPlans.as_view(), name="subscriptions"),
|
|
# Payment URLs
|
|
# path('sales/quotations/<int:pk>/payment/', views.PaymentCreateView.as_view(), name='payment_create'),
|
|
# path(
|
|
# "sales/quotations/<int:pk>/payment/",
|
|
# views.payment_create,
|
|
# name="payment_create",
|
|
# ),
|
|
# Users URLs
|
|
path("<slug:dealer_slug>/user/", views.UserListView.as_view(), name="user_list"),
|
|
path(
|
|
"<slug:dealer_slug>/user/create/",
|
|
views.UserCreateView.as_view(),
|
|
name="user_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/user/<slug:slug>/",
|
|
views.UserDetailView.as_view(),
|
|
name="user_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/user/<slug:slug>/groups/",
|
|
views.UserGroupView,
|
|
name="user_groups",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/user/<slug:slug>/update/",
|
|
views.UserUpdateView.as_view(),
|
|
name="user_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/user/<slug:slug>/confirm/",
|
|
views.UserDeleteview,
|
|
name="user_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/user/<int:user_pk>/password_reset/",
|
|
views.staff_password_reset_view,
|
|
name="staff_password_reset",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/group/create/",
|
|
views.GroupCreateView.as_view(),
|
|
name="group_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/group/<int:pk>/update/",
|
|
views.GroupUpdateView.as_view(),
|
|
name="group_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/group/<int:pk>/",
|
|
views.GroupDetailView.as_view(),
|
|
name="group_detail",
|
|
),
|
|
path("<slug:dealer_slug>/group/", views.GroupListView.as_view(), name="group_list"),
|
|
path(
|
|
"<slug:dealer_slug>/group/<int:pk>/confirm/",
|
|
views.GroupDeleteview,
|
|
name="group_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/group/<int:pk>/permission/",
|
|
views.GroupPermissionView,
|
|
name="group_permission",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/organizations/create/",
|
|
views.OrganizationCreateView.as_view(),
|
|
name="organization_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/organizations/",
|
|
views.OrganizationListView.as_view(),
|
|
name="organization_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/organizations/<slug:slug>/",
|
|
views.OrganizationDetailView.as_view(),
|
|
name="organization_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/organizations/<slug:slug>/update/",
|
|
views.OrganizationUpdateView.as_view(),
|
|
name="organization_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/organizations/<slug:slug>/delete/",
|
|
views.OrganizationDeleteView,
|
|
name="organization_delete",
|
|
),
|
|
path(
|
|
"representatives/",
|
|
views.RepresentativeListView.as_view(),
|
|
name="representative_list",
|
|
),
|
|
path(
|
|
"representatives/<int:pk>/",
|
|
views.RepresentativeDetailView.as_view(),
|
|
name="representative_detail",
|
|
),
|
|
path(
|
|
"representatives/create/",
|
|
views.RepresentativeCreateView.as_view(),
|
|
name="representative_create",
|
|
),
|
|
path(
|
|
"representatives/<int:pk>/update/",
|
|
views.RepresentativeUpdateView.as_view(),
|
|
name="representative_update",
|
|
),
|
|
path(
|
|
"representatives/<int:pk>/delete/",
|
|
views.RepresentativeDeleteView.as_view(),
|
|
name="representative_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/",
|
|
views.LedgerModelListView.as_view(),
|
|
name="ledger_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/create/",
|
|
views.LedgerModelCreateView.as_view(),
|
|
name="ledger_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/detail/<uuid:pk>/",
|
|
views.LedgerModelDetailView.as_view(),
|
|
name="ledger_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/lock_all_journals/<uuid:pk>/",
|
|
views.ledger_lock_all_journals,
|
|
name="lock_all_journals",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/unlock_all_journals/<uuid:pk>/",
|
|
views.ledger_unlock_all_journals,
|
|
name="unlock_all_journals",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/post_all_journals/<uuid:pk>/",
|
|
views.ledger_post_all_journals,
|
|
name="post_all_journals",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/unpost_all_journals/<uuid:pk>/",
|
|
views.ledger_unpost_all_journals,
|
|
name="unpost_all_journals",
|
|
),
|
|
# path(
|
|
# "ledgers/create/", views.LedgerModelCreateView.as_view(), name="ledger_create"
|
|
# ),
|
|
path(
|
|
"<slug:dealer_slug>/journalentries/<uuid:pk>/list/",
|
|
views.JournalEntryListView.as_view(),
|
|
name="journalentry_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/journalentries/<uuid:pk>/create/",
|
|
views.JournalEntryCreateView.as_view(),
|
|
name="journalentry_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/journalentries/<uuid:pk>/delete/",
|
|
views.JournalEntryDeleteView,
|
|
name="journalentry_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/journalentries/<uuid:pk>/transactions/",
|
|
views.JournalEntryTransactionsView,
|
|
name="journalentry_transactions",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/journalentries/<slug:entity_slug>/<uuid:ledger_pk>/detail/<uuid:je_pk>/txs/",
|
|
views.JournalEntryModelTXSDetailView.as_view(),
|
|
name="journalentry_txs",
|
|
),
|
|
##############################################################
|
|
# ledger actions
|
|
##############################################################
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/post/",
|
|
views.LedgerModelModelActionView.as_view(action_name="post"),
|
|
name="ledger-action-post",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/post-journal-entries/",
|
|
views.LedgerModelModelActionView.as_view(action_name="post_journal_entries"),
|
|
name="ledger-action-post-journal-entries",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/unpost/",
|
|
views.LedgerModelModelActionView.as_view(action_name="unpost"),
|
|
name="ledger-action-unpost",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/lock/",
|
|
views.LedgerModelModelActionView.as_view(action_name="lock"),
|
|
name="ledger-action-lock",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/lock-journal-entries/",
|
|
views.LedgerModelModelActionView.as_view(action_name="lock_journal_entries"),
|
|
name="ledger-action-lock-journal-entries",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/unlock/",
|
|
views.LedgerModelModelActionView.as_view(action_name="unlock"),
|
|
name="ledger-action-unlock",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/hide/",
|
|
views.LedgerModelModelActionView.as_view(action_name="hide"),
|
|
name="ledger-action-hide",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/action/<uuid:ledger_pk>/unhide/",
|
|
views.LedgerModelModelActionView.as_view(action_name="unhide"),
|
|
name="ledger-action-unhide",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/ledgers/<slug:entity_slug>/delete/<uuid:ledger_pk>/",
|
|
views.LedgerModelDeleteView,
|
|
name="ledger-delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/bank_accounts/",
|
|
views.BankAccountListView.as_view(),
|
|
name="bank_account_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/bank_accounts/<uuid:pk>/",
|
|
views.BankAccountDetailView.as_view(),
|
|
name="bank_account_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/bank_accounts/create/",
|
|
views.BankAccountCreateView.as_view(),
|
|
name="bank_account_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/bank_accounts/<uuid:pk>/update/",
|
|
views.BankAccountUpdateView.as_view(),
|
|
name="bank_account_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/bank_accounts/<uuid:pk>/delete/",
|
|
views.bank_account_delete,
|
|
name="bank_account_delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/coa_accounts/<coa_pk>/",
|
|
views.AccountListView.as_view(),
|
|
name="account_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/coa_accounts/<coa_pk>/<uuid:pk>/",
|
|
views.AccountDetailView.as_view(),
|
|
name="account_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/coa_accounts/<coa_pk>/create/",
|
|
views.AccountCreateView.as_view(),
|
|
name="account_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/coa_accounts/<coa_pk>/<uuid:pk>/update/",
|
|
views.AccountUpdateView.as_view(),
|
|
name="account_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/coa_accounts/<coa_pk>/<uuid:pk>/delete/",
|
|
views.account_delete,
|
|
name="account_delete",
|
|
),
|
|
#################################################
|
|
# Estimate
|
|
#################################################
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/",
|
|
views.EstimateListView.as_view(),
|
|
name="estimate_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/",
|
|
views.EstimateDetailView.as_view(),
|
|
name="estimate_detail",
|
|
),
|
|
path('<slug:dealer_slug>/sales/estimates/print/<uuid:pk>/', views.EstimatePrintView.as_view(), name='estimate_print'),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/create/",
|
|
views.create_estimate,
|
|
name="estimate_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/create/<slug:slug>/",
|
|
views.create_estimate,
|
|
name="estimate_create_from_opportunity",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/estimate_mark_as/",
|
|
views.estimate_mark_as,
|
|
name="estimate_mark_as",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/preview/",
|
|
views.EstimatePreviewView.as_view(),
|
|
name="estimate_preview",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/payment_request/",
|
|
views.PaymentRequest.as_view(),
|
|
name="payment_request",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/send_email",
|
|
views.send_email_view,
|
|
name="send_email",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/sale_order/",
|
|
views.create_sale_order,
|
|
name="create_sale_order",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/sale_order/<int:order_pk>/details/",
|
|
views.SaleOrderDetail.as_view(),
|
|
name="sale_order_details",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/sale_order/preview/",
|
|
views.preview_sale_order,
|
|
name="preview_sale_order",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/update_estimate_discount/",
|
|
views.update_estimate_discount,
|
|
name="update_estimate_discount",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/estimates/<uuid:pk>/update_estimate_additionals/",
|
|
views.update_estimate_additionals,
|
|
name="update_estimate_additionals",
|
|
),
|
|
###############################################
|
|
# Invoice
|
|
###############################################
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/",
|
|
views.InvoiceListView.as_view(),
|
|
name="invoice_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/<uuid:pk>/create/",
|
|
views.invoice_create,
|
|
name="invoice_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/<slug:entity_slug>/invoices/<uuid:pk>/",
|
|
views.InvoiceDetailView.as_view(),
|
|
name="invoice_detail",
|
|
),
|
|
# path(
|
|
# "<slug:dealer_slug>/sales/<slug:entity_slug>/invoices/<uuid:pk>/update",
|
|
# views.InvoiceDetailView.as_view(),
|
|
# name="invoice_update",
|
|
# ),
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/<uuid:pk>/preview/",
|
|
views.InvoicePreviewView.as_view(),
|
|
name="invoice_preview",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/<uuid:pk>/invoice_mark_as/",
|
|
views.invoice_mark_as,
|
|
name="invoice_mark_as",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/<uuid:pk>/draft_invoice_update/",
|
|
views.DraftInvoiceModelUpdateFormView.as_view(),
|
|
name="draft_invoice_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/<uuid:pk>/approved_invoice_update/",
|
|
views.ApprovedInvoiceModelUpdateFormView.as_view(),
|
|
name="approved_invoice_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/invoices/<uuid:pk>/paid_invoice_update/",
|
|
views.PaidInvoiceModelUpdateFormView.as_view(),
|
|
name="paid_invoice_update",
|
|
),
|
|
# path('sales/estimates/<uuid:pk>/preview/', views.EstimatePreviewView.as_view(), name='estimate_preview'),
|
|
# path('send_email/<uuid:pk>', views.send_email, name='send_email'),
|
|
# Payment
|
|
path(
|
|
"<slug:dealer_slug>/sales/payments/", views.PaymentListView, name="payment_list"
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/payments/<uuid:pk>/create/",
|
|
views.PaymentCreateView,
|
|
name="payment_create",
|
|
),
|
|
# path(
|
|
# "<slug:dealer_slug>/sales/payments/<slug:entity_slug>/<uuid:invoice_pk>/create/",
|
|
# views.InvoiceModelUpdateView.as_view(),
|
|
# name="invoice_update",
|
|
# ),
|
|
# path(
|
|
# "<slug:dealer_slug>/sales/payments/<slug:entity_slug>/<uuid:invoice_pk>/create/",
|
|
# views.InvoiceModelUpdateView.as_view(),
|
|
# name="payment_create",
|
|
# ),
|
|
# path("<slug:dealer_slug>/sales/payments/create/", views.PaymentCreateView, name="payment_create"),
|
|
path(
|
|
"<slug:dealer_slug>/sales/payments/<uuid:pk>/payment_details/",
|
|
views.PaymentDetailView,
|
|
name="payment_details",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/sales/payments/<uuid:pk>/payment_mark_as_paid/",
|
|
views.payment_mark_as_paid,
|
|
name="payment_mark_as_paid",
|
|
),
|
|
# path('sales/payments/<uuid:pk>/update/', views.JournalEntryUpdateView.as_view(), name='payment_update'),
|
|
# path('sales/payments/<uuid:pk>/delete/', views.JournalEntryDeleteView.as_view(), name='payment_delete'),
|
|
# path('sales/payments/<uuid:pk>/preview/', views.JournalEntryPreviewView.as_view(), name='payment_preview'),
|
|
# # Journal
|
|
# path('sales/journal/<uuid:pk>/create/', views.JournalEntryCreateView.as_view(), name='journal_create'),
|
|
# Items
|
|
path(
|
|
"<slug:dealer_slug>/items/services/",
|
|
views.ItemServiceListView.as_view(),
|
|
name="item_service_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/services/create/",
|
|
views.ItemServiceCreateView.as_view(),
|
|
name="item_service_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/services/<int:pk>/update/",
|
|
views.ItemServiceUpdateView.as_view(),
|
|
name="item_service_update",
|
|
),
|
|
|
|
# Expanese
|
|
path(
|
|
"<slug:dealer_slug>/items/expeneses/",
|
|
views.ItemExpenseListView.as_view(),
|
|
name="item_expense_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/expeneses/create/",
|
|
views.ItemExpenseCreateView.as_view(),
|
|
name="item_expense_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/expeneses/<uuid:pk>/update/",
|
|
views.ItemExpenseUpdateView.as_view(),
|
|
name="item_expense_update",
|
|
),
|
|
# Bills
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/",
|
|
views.BillListView.as_view(),
|
|
name="bill_list",
|
|
),
|
|
# path("items/bills/create/", views.BillModelCreateViewView.as_view(), name="bill_create"),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/create/",
|
|
views.BillModelCreateView.as_view(),
|
|
name="bill-create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/create/purchase-order/<uuid:po_pk>/",
|
|
views.BillModelCreateView.as_view(for_purchase_order=True),
|
|
name="bill-create-po",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/create/estimate/<uuid:ce_pk>/",
|
|
views.BillModelCreateView.as_view(for_estimate=True),
|
|
name="bill-create-estimate",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/detail/<uuid:bill_pk>/",
|
|
views.BillModelDetailView.as_view(),
|
|
name="bill-detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/update/<uuid:bill_pk>/",
|
|
views.BillModelUpdateView.as_view(),
|
|
name="bill-update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/update/<uuid:bill_pk>/items/",
|
|
views.BillModelUpdateView.as_view(action_update_items=True),
|
|
name="bill-update-items",
|
|
),
|
|
############################################################
|
|
############################################################
|
|
# BILL MARK AS
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/mark-as-draft/",
|
|
views.BillModelActionMarkAsDraftView.as_view(),
|
|
name="bill-action-mark-as-draft",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/mark-as-review/",
|
|
views.BillModelActionMarkAsInReviewView.as_view(),
|
|
name="bill-action-mark-as-review",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/mark-as-approved/",
|
|
views.BillModelActionMarkAsApprovedView.as_view(),
|
|
name="bill-action-mark-as-approved",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/mark-as-paid/",
|
|
views.BillModelActionMarkAsPaidView.as_view(),
|
|
name="bill-action-mark-as-paid",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/mark-as-void/",
|
|
views.BillModelActionVoidView.as_view(),
|
|
name="bill-action-mark-as-void",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/mark-as-canceled/",
|
|
views.BillModelActionCanceledView.as_view(),
|
|
name="bill-action-mark-as-canceled",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/lock-ledger/",
|
|
views.BillModelActionLockLedgerView.as_view(),
|
|
name="bill-action-lock-ledger",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/unlock-ledger/",
|
|
views.BillModelActionUnlockLedgerView.as_view(),
|
|
name="bill-action-unlock-ledger",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/items/bills/<slug:entity_slug>/actions/<uuid:bill_pk>/force-migration/",
|
|
views.BillModelActionForceMigrateView.as_view(),
|
|
name="bill-action-force-migrate",
|
|
),
|
|
# orders
|
|
path("orders/", views.OrderListView.as_view(), name="order_list_view"),
|
|
# BALANCE SHEET Reports...
|
|
# Entities...
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/",
|
|
views.BaseBalanceSheetRedirectView.as_view(),
|
|
name="entity-bs",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/year/<int:year>/",
|
|
views.FiscalYearBalanceSheetViewBase.as_view(),
|
|
name="entity-bs-year",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/quarter/<int:year>/<int:quarter>/",
|
|
views.QuarterlyBalanceSheetView.as_view(),
|
|
name="entity-bs-quarter",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/month/<int:year>/<int:month>/",
|
|
views.MonthlyBalanceSheetView.as_view(),
|
|
name="entity-bs-month",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/balance-sheet/date/<int:year>/<int:month>/<int:day>/",
|
|
views.DateBalanceSheetView.as_view(),
|
|
name="entity-bs-date",
|
|
),
|
|
# INCOME STATEMENT Reports ----
|
|
# Entity .....
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/",
|
|
views.BaseIncomeStatementRedirectViewBase.as_view(),
|
|
name="entity-ic",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/year/<int:year>/",
|
|
views.FiscalYearIncomeStatementViewBase.as_view(),
|
|
name="entity-ic-year",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/quarter/<int:year>/<int:quarter>/",
|
|
views.QuarterlyIncomeStatementView.as_view(),
|
|
name="entity-ic-quarter",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/month/<int:year>/<int:month>/",
|
|
views.MonthlyIncomeStatementView.as_view(),
|
|
name="entity-ic-month",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/income-statement/date/<int:year>/<int:month>/<int:day>/",
|
|
views.MonthlyIncomeStatementView.as_view(),
|
|
name="entity-ic-date",
|
|
),
|
|
# Chart of Accounts...
|
|
path('<slug:dealer_slug>/chart-of-accounts/<slug:entity_slug>/list/',
|
|
views.ChartOfAccountModelListView.as_view(),
|
|
name='coa-list'),
|
|
path('<slug:dealer_slug>/chart-of-accounts/<slug:entity_slug>/list/inactive/',
|
|
views.ChartOfAccountModelListView.as_view(inactive=True),
|
|
name='coa-list-inactive'),
|
|
path('<slug:dealer_slug>/<slug:entity_slug>/create/',
|
|
views.ChartOfAccountModelCreateView.as_view(),
|
|
name='coa-create'),
|
|
path('<slug:dealer_slug>/<slug:entity_slug>/detail/<slug:coa_slug>/',
|
|
views.ChartOfAccountModelListView.as_view(),
|
|
name='coa-detail'),
|
|
path('<slug:dealer_slug>/<slug:entity_slug>/update/<slug:coa_slug>/',
|
|
views.ChartOfAccountModelUpdateView.as_view(),
|
|
name='coa-update'),
|
|
|
|
# ACTIONS....
|
|
path('<slug:dealer_slug>/<slug:entity_slug>/action/<slug:coa_slug>/mark-as-default/',
|
|
views.CharOfAccountModelActionView.as_view(action_name='mark_as_default'),
|
|
name='coa-action-mark-as-default'),
|
|
path('<slug:dealer_slug>/<slug:entity_slug>/action/<slug:coa_slug>/mark-as-active/',
|
|
views.CharOfAccountModelActionView.as_view(action_name='mark_as_active'),
|
|
name='coa-action-mark-as-active'),
|
|
path('<slug:dealer_slug>/<slug:entity_slug>/action/<slug:coa_slug>/mark-as-inactive/',
|
|
views.CharOfAccountModelActionView.as_view(action_name='mark_as_inactive'),
|
|
name='coa-action-mark-as-inactive'),
|
|
# CASH FLOW STATEMENTS...
|
|
# Entities...
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/",
|
|
views.BaseCashFlowStatementRedirectViewBase.as_view(),
|
|
name="entity-cf",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/year/<int:year>/",
|
|
views.FiscalYearCashFlowStatementViewBase.as_view(),
|
|
name="entity-cf-year",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/quarter/<int:year>/<int:quarter>/",
|
|
views.QuarterlyCashFlowStatementView.as_view(),
|
|
name="entity-cf-quarter",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/month/<int:year>/<int:month>/",
|
|
views.MonthlyCashFlowStatementView.as_view(),
|
|
name="entity-cf-month",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/entity/<slug:entity_slug>/cash-flow-statement/date/<int:year>/<int:month>/<int:day>/",
|
|
views.DateCashFlowStatementView.as_view(),
|
|
name="entity-cf-date",
|
|
),
|
|
# Dashboard
|
|
# DASHBOARD Views...
|
|
path(
|
|
"<slug:entity_slug>/dashboard/",
|
|
views.EntityModelDetailHandlerViewBase.as_view(),
|
|
name="entity-dashboard",
|
|
),
|
|
path(
|
|
"<slug:entity_slug>/dashboard/year/<int:year>/",
|
|
views.FiscalYearEntityModelDashboardView.as_view(),
|
|
name="entity-dashboard-year",
|
|
),
|
|
path(
|
|
"<slug:entity_slug>/dashboard/quarter/<int:year>/<int:quarter>/",
|
|
views.QuarterlyEntityDashboardView.as_view(),
|
|
name="entity-dashboard-quarter",
|
|
),
|
|
path(
|
|
"<slug:entity_slug>/dashboard/month/<int:year>/<int:month>/",
|
|
views.MonthlyEntityDashboardView.as_view(),
|
|
name="entity-dashboard-month",
|
|
),
|
|
path(
|
|
"<slug:entity_slug>/dashboard/date/<int:year>/<int:month>/<int:day>/",
|
|
views.DateEntityDashboardView.as_view(),
|
|
name="entity-dashboard-date",
|
|
),
|
|
# dashboard api
|
|
path(
|
|
"entity/<slug:entity_slug>/data/net-payables/",
|
|
views.PayableNetAPIView.as_view(),
|
|
name="entity-json-net-payables",
|
|
),
|
|
path(
|
|
"entity/<slug:entity_slug>/data/net-receivables/",
|
|
views.ReceivableNetAPIView.as_view(),
|
|
name="entity-json-net-receivables",
|
|
),
|
|
path(
|
|
"entity/<slug:entity_slug>/data/pnl/",
|
|
views.PnLAPIView.as_view(),
|
|
name="entity-json-pnl",
|
|
),
|
|
# Admin Management...
|
|
path("<slug:dealer_slug>/management/", views.management_view, name="management"),
|
|
path(
|
|
"<slug:dealer_slug>/management/user_management/",
|
|
views.user_management,
|
|
name="user_management",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/management/<str:content_type>/<slug:slug>/activate_account/",
|
|
views.activate_account,
|
|
name="activate_account",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/management/<str:content_type>/<slug:slug>/permenant_delete_account/",
|
|
views.permenant_delete_account,
|
|
name="permenant_delete_account",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/management/audit_log_dashboard/",
|
|
views.AuditLogDashboardView,
|
|
name="audit_log_dashboard",
|
|
),
|
|
#########
|
|
# Purchase Order
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/purchase_orders/",
|
|
views.PurchaseOrderListView.as_view(),
|
|
name="purchase_order_list",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/<slug:entity_slug>/new/",
|
|
views.PurchaseOrderCreateView,
|
|
name="purchase_order_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/<slug:entity_slug>/<uuid:pk>/detail/",
|
|
views.PurchaseOrderDetailView.as_view(),
|
|
name="purchase_order_detail",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/<slug:entity_slug>/<uuid:po_pk>/update/",
|
|
views.PurchaseOrderUpdateView.as_view(),
|
|
name="purchase_order_update",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/<slug:entity_slug>/update/<uuid:po_pk>/update-items/",
|
|
views.PurchaseOrderUpdateView.as_view(action_update_items=True),
|
|
name="purchase_order_update_items",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/inventory_item/create/",
|
|
views.InventoryItemCreateView,
|
|
name="inventory_item_create",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/inventory_items_filter/",
|
|
views.inventory_items_filter,
|
|
name="inventory_items_filter",
|
|
),
|
|
path(
|
|
"inventory_items_filter/",
|
|
views.inventory_items_filter,
|
|
name="inventory_items_filter",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/<slug:entity_slug>/delete/<uuid:po_pk>/",
|
|
views.PurchaseOrderModelDeleteView.as_view(),
|
|
name="po-delete",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/purchase_orders/<slug:entity_slug>/<uuid:po_pk>/upload/",
|
|
view=views.view_items_inventory,
|
|
name="view_items_inventory",
|
|
),
|
|
# Actions....
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/action/<uuid:po_pk>/mark-as-draft/",
|
|
views.PurchaseOrderMarkAsDraftView.as_view(),
|
|
name="po-action-mark-as-draft",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/action/<uuid:po_pk>/mark-as-review/",
|
|
views.PurchaseOrderMarkAsReviewView.as_view(),
|
|
name="po-action-mark-as-review",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/action/<uuid:po_pk>/mark-as-approved/",
|
|
views.PurchaseOrderMarkAsApprovedView.as_view(),
|
|
name="po-action-mark-as-approved",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/action/<uuid:po_pk>/mark-as-fulfilled/",
|
|
views.PurchaseOrderMarkAsFulfilledView.as_view(),
|
|
name="po-action-mark-as-fulfilled",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/action/<uuid:po_pk>/mark-as-canceled/",
|
|
views.PurchaseOrderMarkAsCanceledView.as_view(),
|
|
name="po-action-mark-as-canceled",
|
|
),
|
|
path(
|
|
"<slug:dealer_slug>/<slug:entity_slug>/action/<uuid:po_pk>/mark-as-void/",
|
|
views.PurchaseOrderMarkAsVoidView.as_view(),
|
|
name="po-action-mark-as-void",
|
|
),
|
|
|
|
# reports
|
|
path(
|
|
"<slug:dealer_slug>/purchase-report/",
|
|
views.purchase_report_view,
|
|
name="po-report",
|
|
),
|
|
path('purchase-report/<slug:dealer_slug>/csv/', views.purchase_report_csv_export, name='purchase-report-csv-export'),
|
|
|
|
path(
|
|
"<slug:dealer_slug>/car-sale-report/",
|
|
views.car_sale_report_view,
|
|
name="car-sale-report",
|
|
),
|
|
path('car-sale-report/<slug:dealer_slug>/csv/', views.car_sale_report_csv_export, name='car-sale-report-csv-export'),
|
|
|
|
path('feature/recall/', views.RecallListView.as_view(), name='recall_list'),
|
|
path('feature/recall/filter/', views.RecallFilterView, name='recall_filter'),
|
|
path('feature/recall/<int:pk>/view/', views.RecallDetailView.as_view(), name='recall_detail'),
|
|
path('feature/recall/create/', views.RecallCreateView.as_view(), name='recall_create'),
|
|
path('feature/recall/success/', views.RecallSuccessView.as_view(), name='recall_success'),
|
|
|
|
path('<slug:dealer_slug>/schedules/calendar/', views.schedule_calendar, name='schedule_calendar'),
|
|
|
|
# staff profile
|
|
path('<slug:dealer_slug>/staff/<slug:slug>detail/', views.StaffDetailView.as_view(), name='staff_detail'),
|
|
# tickets
|
|
path('help_center/view/', views.help_center, name='help_center'),
|
|
path('<slug:dealer_slug>/help_center/tickets/', views.ticket_list, name='ticket_list'),
|
|
path('help_center/tickets/<slug:dealer_slug>/create/', views.create_ticket, name='create_ticket'),
|
|
path('<slug:dealer_slug>/help_center/tickets/<int:ticket_id>/', views.ticket_detail, name='ticket_detail'),
|
|
path('help_center/tickets/<int:ticket_id>/update/', views.ticket_update, name='ticket_update'),
|
|
# path('help_center/tickets/<int:ticket_id>/ticket_mark_resolved/', views.ticket_mark_resolved, name='ticket_mark_resolved'),
|
|
|
|
]
|
|
|
|
handler404 = "inventory.views.custom_page_not_found_view"
|
|
handler500 = "inventory.views.custom_error_view"
|
|
handler403 = "inventory.views.custom_permission_denied_view"
|
|
handler400 = "inventory.views.custom_bad_request_view"
|