fix mandehesab, bazdid, sms
This commit is contained in:
1 parent
7e5c83bea2
commit
1fd27d0445
22 files changed
+16462
-5918
No files matched your search
@@ -22,7 +22,35 @@ class VisitQueue(models.Model):
|
||||
|
||||
|
||||
class Action(models.Model):
|
||||
actionType = models.CharField(max_length=50, null=True, blank=True)
|
||||
"""اقدام/وظیفهٔ CRM مرتبط با مشتری.
|
||||
|
||||
``actionType`` فقط این شش مقدار را میپذیرد؛ همین شش مقدار در فرمهای پنل
|
||||
(``customerActionInc.html``) و در تمام مقایسههای کد (``== 'bazdid'``،
|
||||
``exclude(actionType='vosol')`` و …) استفاده میشوند.
|
||||
|
||||
``status`` نیز همان سه مقدارِ بهکاررفته در کد و قالبها را میپذیرد.
|
||||
املای ``'waite'`` عمداً حفظ شده است: ۲٫۷۱۹ رکورد موجودِ دیتابیس و تمام
|
||||
مقایسههای کد/قالب (``== 'waite'``، ``if filter_status == 'waite'``) با
|
||||
همین املا کار میکنند و تغییرش داده را از موتور جستوجو جدا میکند.
|
||||
"""
|
||||
|
||||
class ActionType(models.TextChoices):
|
||||
BAZDID = 'bazdid', 'بازدید'
|
||||
NASB = 'nasb', 'نصب'
|
||||
VOSOL = 'vosol', 'وصول مطالبات'
|
||||
HAMAHANGI = 'hamahangi', 'هماهنگی'
|
||||
IN_CALL = 'inCall', 'تماس ورودی'
|
||||
OUT_CALL = 'outCall', 'تماس خروجی'
|
||||
|
||||
class Status(models.TextChoices):
|
||||
# املا عیناً مطابق داده و کد فعلی است (نه 'wait').
|
||||
WAITE = 'waite', 'در انتظار (باز)'
|
||||
FINISH = 'finish', 'انجام شده'
|
||||
CANCELL = 'cancell', 'لغو شده'
|
||||
|
||||
actionType = models.CharField(
|
||||
max_length=50, null=True, blank=True, choices=ActionType.choices,
|
||||
)
|
||||
forUser = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
customer = models.ForeignKey('Customer', related_name='actionrlt', on_delete=models.CASCADE, null=True, blank=True)
|
||||
createdDT = models.DateTimeField(auto_now_add=True)
|
||||
@@ -31,7 +59,9 @@ class Action(models.Model):
|
||||
finishDateTime = models.DateTimeField(null=True, blank=True)
|
||||
desc = models.CharField(max_length=500, null=True, blank=True)
|
||||
result = models.CharField(max_length=500, null=True, blank=True)
|
||||
status = models.CharField(max_length=50, null=True, blank=True)
|
||||
status = models.CharField(
|
||||
max_length=50, null=True, blank=True, choices=Status.choices,
|
||||
)
|
||||
nazar = models.CharField(max_length=50, null=True, blank=True, default=None)
|
||||
nextNazarDT = models.DateTimeField(null=True, blank=True, default=None)
|
||||
nazarDT = models.DateTimeField(null=True, blank=True, default=None)
|
||||
|
||||
@@ -154,7 +154,11 @@ class SMSTemplate(models.Model):
|
||||
verbose_name="متن پیامک",
|
||||
help_text="متغیرهای قابل استفاده: {name} نام مشتری، {amount} مبلغ، "
|
||||
"{amount_sep} مبلغ با جداکننده، {date} تاریخ جلالی، {days} تعداد روز، "
|
||||
"{check_row} شماره ردیف چک، {owner_name} نام مالک چک.",
|
||||
"{check_row} شماره ردیف چک، {sayyad_id} شناسه صیاد چک، "
|
||||
"{owner_name} نام مالک چک، {balance} مانده حساب مشتری، "
|
||||
"{balance_sep} مانده حساب با جداکننده. "
|
||||
"(توجه: {balance} مانده کل حساب است و با مبلغ سررسیدشدهٔ چک/نسیه "
|
||||
"که در {amount} میآید تفاوت دارد.)",
|
||||
)
|
||||
is_enabled = models.BooleanField(default=True, verbose_name="فعال")
|
||||
auto_send = models.BooleanField(
|
||||
|
||||
Reference in new issue
Block a user