Merge branch 'main' of http://10.10.1.136:3000/ismail/haikal into frontend
This commit is contained in:
commit
c3fe1817c3
@ -53,6 +53,7 @@ from encrypted_model_fields.fields import (
|
|||||||
EncryptedCharField,
|
EncryptedCharField,
|
||||||
EncryptedDateField,
|
EncryptedDateField,
|
||||||
EncryptedEmailField,
|
EncryptedEmailField,
|
||||||
|
EncryptedTextField,
|
||||||
)
|
)
|
||||||
# from plans.models import AbstractPlan
|
# from plans.models import AbstractPlan
|
||||||
# from simple_history.models import HistoricalRecords
|
# from simple_history.models import HistoricalRecords
|
||||||
@ -621,7 +622,7 @@ class AdditionalServices(models.Model, LocalizedNameMixin):
|
|||||||
if self.taxable
|
if self.taxable
|
||||||
else self.price
|
else self.price
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def service_tax(self):
|
def service_tax(self):
|
||||||
vat = VatRate.objects.filter(dealer=self.dealer, is_active=True).first()
|
vat = VatRate.objects.filter(dealer=self.dealer, is_active=True).first()
|
||||||
@ -1491,7 +1492,7 @@ class Staff(models.Model):
|
|||||||
last_name = models.CharField(max_length=255, verbose_name=_("Last Name"))
|
last_name = models.CharField(max_length=255, verbose_name=_("Last Name"))
|
||||||
|
|
||||||
arabic_name = models.CharField(max_length=255, verbose_name=_("Arabic Name"),null=True,blank=True)
|
arabic_name = models.CharField(max_length=255, verbose_name=_("Arabic Name"),null=True,blank=True)
|
||||||
phone_number = models.CharField(
|
phone_number = EncryptedCharField(
|
||||||
max_length=255,
|
max_length=255,
|
||||||
verbose_name=_("Phone Number"),
|
verbose_name=_("Phone Number"),
|
||||||
validators=[SaudiPhoneNumberValidator()],
|
validators=[SaudiPhoneNumberValidator()],
|
||||||
@ -1499,7 +1500,7 @@ class Staff(models.Model):
|
|||||||
staff_type = models.CharField(
|
staff_type = models.CharField(
|
||||||
choices=StaffTypes.choices, max_length=255, verbose_name=_("Staff Type")
|
choices=StaffTypes.choices, max_length=255, verbose_name=_("Staff Type")
|
||||||
)
|
)
|
||||||
address = models.CharField(
|
address = EncryptedCharField(
|
||||||
max_length=200, blank=True, null=True, verbose_name=_("Address")
|
max_length=200, blank=True, null=True, verbose_name=_("Address")
|
||||||
)
|
)
|
||||||
logo = models.ImageField(
|
logo = models.ImageField(
|
||||||
@ -1803,22 +1804,22 @@ class Customer(models.Model):
|
|||||||
return f"{self.first_name} {self.last_name}"
|
return f"{self.first_name} {self.last_name}"
|
||||||
|
|
||||||
def create_customer_model(self, for_lead=False):
|
def create_customer_model(self, for_lead=False):
|
||||||
customer_dict = to_dict(self)
|
# customer_dict = to_dict(self)
|
||||||
customer = self.dealer.entity.get_customers().filter(email=self.email).first()
|
customer = self.dealer.entity.get_customers().filter(email=self.email).first()
|
||||||
if not customer:
|
if not customer:
|
||||||
customer = self.dealer.entity.create_customer(
|
customer = self.dealer.entity.create_customer(
|
||||||
commit=False,
|
commit=False,
|
||||||
customer_model_kwargs={
|
customer_model_kwargs={
|
||||||
"customer_name": self.full_name,
|
"customer_name": self.full_name,
|
||||||
"address_1": self.address,
|
"address_1": "",#self.address,
|
||||||
"phone": self.phone_number,
|
# "phone": self.phone_number,
|
||||||
"email": self.email,
|
# "email": self.email,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
try:
|
# try:
|
||||||
customer.additional_info.update({"customer_info": customer_dict})
|
# customer.additional_info.update({"customer_info": customer_dict})
|
||||||
except Exception:
|
# except Exception:
|
||||||
pass
|
# pass
|
||||||
customer.active = False if for_lead else True
|
customer.active = False if for_lead else True
|
||||||
customer.save()
|
customer.save()
|
||||||
self.customer_model = customer
|
self.customer_model = customer
|
||||||
@ -1837,9 +1838,9 @@ class Customer(models.Model):
|
|||||||
customer_dict = to_dict(self)
|
customer_dict = to_dict(self)
|
||||||
customer = self.customer_model
|
customer = self.customer_model
|
||||||
customer.customer_name = self.full_name
|
customer.customer_name = self.full_name
|
||||||
customer.address_1 = self.address
|
# customer.address_1 = self.address
|
||||||
customer.phone = self.phone_number
|
# customer.phone = self.phone_number
|
||||||
customer.email = self.email
|
# customer.email = self.email
|
||||||
try:
|
try:
|
||||||
customer.additional_info.update({"customer_info": customer_dict})
|
customer.additional_info.update({"customer_info": customer_dict})
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -1906,13 +1907,13 @@ class Organization(models.Model, LocalizedNameMixin):
|
|||||||
max_length=15, verbose_name=_("Commercial Registration Number")
|
max_length=15, verbose_name=_("Commercial Registration Number")
|
||||||
)
|
)
|
||||||
vrn = models.CharField(max_length=15, verbose_name=_("VAT Registration Number"))
|
vrn = models.CharField(max_length=15, verbose_name=_("VAT Registration Number"))
|
||||||
email = models.EmailField(verbose_name=_("Email"))
|
email = EncryptedEmailField(verbose_name=_("Email"))
|
||||||
phone_number = models.CharField(
|
phone_number = EncryptedCharField(
|
||||||
max_length=255,
|
max_length=255,
|
||||||
verbose_name=_("Phone Number"),
|
verbose_name=_("Phone Number"),
|
||||||
validators=[SaudiPhoneNumberValidator()],
|
validators=[SaudiPhoneNumberValidator()],
|
||||||
)
|
)
|
||||||
address = models.CharField(
|
address = EncryptedCharField(
|
||||||
max_length=200, blank=True, null=True, verbose_name=_("Address")
|
max_length=200, blank=True, null=True, verbose_name=_("Address")
|
||||||
)
|
)
|
||||||
logo = models.ImageField(
|
logo = models.ImageField(
|
||||||
@ -1968,9 +1969,9 @@ class Organization(models.Model, LocalizedNameMixin):
|
|||||||
commit=False,
|
commit=False,
|
||||||
customer_model_kwargs={
|
customer_model_kwargs={
|
||||||
"customer_name": self.name,
|
"customer_name": self.name,
|
||||||
"address_1": self.address,
|
"address_1": "",
|
||||||
"phone": self.phone_number,
|
# "phone": self.phone_number,
|
||||||
"email": self.email,
|
# "email": self.email,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
@ -1991,16 +1992,16 @@ class Organization(models.Model, LocalizedNameMixin):
|
|||||||
return user
|
return user
|
||||||
|
|
||||||
def update_customer_model(self):
|
def update_customer_model(self):
|
||||||
customer_dict = to_dict(self)
|
# customer_dict = to_dict(self)
|
||||||
customer = self.customer_model
|
customer = self.customer_model
|
||||||
customer.customer_name = self.name
|
customer.customer_name = self.name
|
||||||
customer.address_1 = self.address
|
# customer.address_1 = self.address
|
||||||
customer.phone = self.phone_number
|
# customer.phone = self.phone_number
|
||||||
customer.email = self.email
|
# customer.email = self.email
|
||||||
try:
|
# try:
|
||||||
customer.additional_info.update({"customer_info": customer_dict})
|
# customer.additional_info.update({"customer_info": customer_dict})
|
||||||
except Exception:
|
# except Exception:
|
||||||
pass
|
# pass
|
||||||
customer.save()
|
customer.save()
|
||||||
return customer
|
return customer
|
||||||
|
|
||||||
@ -2072,13 +2073,13 @@ class Lead(models.Model):
|
|||||||
dealer = models.ForeignKey(Dealer, on_delete=models.CASCADE, related_name="leads")
|
dealer = models.ForeignKey(Dealer, on_delete=models.CASCADE, related_name="leads")
|
||||||
first_name = models.CharField(max_length=50, verbose_name=_("First Name"))
|
first_name = models.CharField(max_length=50, verbose_name=_("First Name"))
|
||||||
last_name = models.CharField(max_length=50, verbose_name=_("Last Name"))
|
last_name = models.CharField(max_length=50, verbose_name=_("Last Name"))
|
||||||
email = models.EmailField(verbose_name=_("Email"))
|
email = EncryptedEmailField(verbose_name=_("Email"))
|
||||||
phone_number = models.CharField(
|
phone_number = EncryptedCharField(
|
||||||
max_length=255,
|
max_length=255,
|
||||||
verbose_name=_("Phone Number"),
|
verbose_name=_("Phone Number"),
|
||||||
validators=[SaudiPhoneNumberValidator()],
|
validators=[SaudiPhoneNumberValidator()],
|
||||||
)
|
)
|
||||||
address = models.CharField(
|
address = EncryptedCharField(
|
||||||
max_length=200, blank=True, null=True, verbose_name=_("Address")
|
max_length=200, blank=True, null=True, verbose_name=_("Address")
|
||||||
)
|
)
|
||||||
lead_type = models.CharField(
|
lead_type = models.CharField(
|
||||||
@ -3572,7 +3573,7 @@ class PaymentHistory(models.Model):
|
|||||||
blank=False,
|
blank=False,
|
||||||
related_name="payments",
|
related_name="payments",
|
||||||
)
|
)
|
||||||
user_data = models.JSONField(null=True, blank=True)
|
user_data = EncryptedTextField(null=True, blank=True)
|
||||||
amount = models.DecimalField(
|
amount = models.DecimalField(
|
||||||
max_digits=10, decimal_places=2, validators=[MinValueValidator(0.01)]
|
max_digits=10, decimal_places=2, validators=[MinValueValidator(0.01)]
|
||||||
)
|
)
|
||||||
@ -3591,7 +3592,7 @@ class PaymentHistory(models.Model):
|
|||||||
order_reference = models.CharField(max_length=100, blank=True, null=True)
|
order_reference = models.CharField(max_length=100, blank=True, null=True)
|
||||||
|
|
||||||
# Payment processor details
|
# Payment processor details
|
||||||
gateway_response = models.JSONField(
|
gateway_response = EncryptedTextField(
|
||||||
blank=True, null=True
|
blank=True, null=True
|
||||||
) # Raw response from payment gateway
|
) # Raw response from payment gateway
|
||||||
gateway_name = models.CharField(max_length=50, blank=True, null=True)
|
gateway_name = models.CharField(max_length=50, blank=True, null=True)
|
||||||
|
|||||||
@ -21,6 +21,7 @@ from django_ledger.models import (
|
|||||||
EstimateModel,
|
EstimateModel,
|
||||||
BillModel,
|
BillModel,
|
||||||
ChartOfAccountModel,
|
ChartOfAccountModel,
|
||||||
|
CustomerModel
|
||||||
)
|
)
|
||||||
from . import models
|
from . import models
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user