Esempio n. 1
0
class Category(models.Model):
    """ 
    Category database model in the system.
    if "parent_category" is passed then this is a subcategory
    """
    name = models.CharField(max_length=255, unique=True)
    is_verified = models.BooleanField(default=False)
    store_category = models.ForeignKey("core.StoreCategory",
                                       on_delete=models.CASCADE)
    parent_category = models.ForeignKey("self",
                                        on_delete=models.CASCADE,
                                        null=True,
                                        blank=True,
                                        related_name="sub_categories")
    owner = models.ForeignKey(settings.AUTH_USER_MODEL,
                              on_delete=models.SET_NULL,
                              null=True)
    created = jmodels.jDateField(auto_now_add=True)
    updated = jmodels.jDateField(auto_now=True)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name_plural = "Categories"
Esempio n. 2
0
class Store(models.Model):
    """ 'Store' database model in the system """
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=255, blank=True)
    address = models.CharField(max_length=255)
    long = models.DecimalField(max_digits=8, decimal_places=6)
    lat = models.DecimalField(max_digits=8, decimal_places=6)
    store_score = models.DecimalField(max_digits=2,
                                      decimal_places=1,
                                      null=True,
                                      default=None,
                                      blank=True)

    city = models.ForeignKey("City", on_delete=models.CASCADE)
    store_category = models.ForeignKey("core.StoreCategory",
                                       on_delete=models.CASCADE)
    owner = models.ForeignKey(settings.AUTH_USER_MODEL,
                              on_delete=models.CASCADE,
                              related_name="stores")

    is_open = models.BooleanField(default=False)
    is_verified = models.BooleanField(default=False)

    created = jmodels.jDateField(auto_now_add=True)
    updated = jmodels.jDateField(auto_now=True)

    def __str__(self):
        return self.name
Esempio n. 3
0
class ContractModel(models.Model):
    reckoning = models.ForeignKey(ReckoningModel,
                                  on_delete=models.PROTECT,
                                  null=True,
                                  related_name='contracts')
    booker = models.ForeignKey(CommonUserModel,
                               on_delete=models.SET_NULL,
                               null=True,
                               related_name='contracts')
    salon = models.ForeignKey(SalonModel,
                              on_delete=models.SET_NULL,
                              null=True,
                              related_name='contracts')
    created_at_date = jmodels.jDateField(null=False)
    str_created_at_date = models.CharField(null=False, max_length=264)
    created_at_time = models.TimeField(null=False)
    total_price = models.FloatField(null=False)
    transfered_to_sportclub = models.BooleanField(null=False, default=False)
    transfered_at_date = jmodels.jDateField(null=True)
    transfered_at_time = models.TimeField(null=True)
    numbers = models.IntegerField(null=False)
    sportclub_portion = models.FloatField(null=True)
    company_portion = models.FloatField(null=True)

    def transfer_to_sportclub(self):
        self.transfer_to_sportclub = True
        date = jdatetime.datetime.now().date()
        time = datetime.datetime.now().time()
        self.transfered_at_date = date
        self.transfered_at_time = time
        self.save()

    def save(self, *args, **kwargs):
        self.str_created_at_date = str(self.created_at_date)
        super(ContractModel, self).save(*args, **kwargs)
Esempio n. 4
0
class Product(models.Model):
    """ Product database model in the system """
    name = models.CharField(max_length=255)
    purchased_price = models.IntegerField(null=True, blank=True)
    sale_price = models.IntegerField()
    stock = models.PositiveIntegerField()
    product_score = models.DecimalField(max_digits=2,
                                        decimal_places=1,
                                        null=True,
                                        default=None,
                                        blank=True)
    discount = models.IntegerField(null=True, blank=True)
    is_verified = models.BooleanField(default=False)
    brand = models.ForeignKey("Brand",
                              on_delete=models.SET_NULL,
                              null=True,
                              blank=True)
    category = models.ForeignKey("Category",
                                 on_delete=models.SET_NULL,
                                 null=True,
                                 blank=True,
                                 related_name="products")
    store = models.ForeignKey("Store", on_delete=models.CASCADE)
    slug = AutoSlugField(populate_from="name", default="")
    created = jmodels.jDateField(auto_now_add=True)
    updated = jmodels.jDateField(auto_now=True)

    def __str__(self):
        return self.name
Esempio n. 5
0
class FileRecovery(Base):
    RECOVERY_TYPE = (
        ('نقدی', 'نقدی'),
        ('چک', 'چک'),
        ('فروش رهنی', 'فروش رهنی'),
    )
    file = models.ForeignKey(File,
                             verbose_name=_('پرونده'),
                             related_name='recoveries')
    recovery_type = models.CharField(_('نوع وصولی'),
                                     max_length=100,
                                     choices=RECOVERY_TYPE,
                                     default='نقدی')
    value = models.PositiveIntegerField(_('مبلغ وصولی'), default=0)
    value_code = models.CharField(_('شماره سند'), max_length=200, default='0')
    detail = models.TextField(_('شرح'))
    recovery_date = jmodels.jDateField(_('تاریخ'), null=True)
    created_at = jmodels.jDateField(_('تاریخ'), null=True, auto_now_add=True)
    assurance_confirm = models.BooleanField(_('تاییدیه مالی'), default=False)

    class Meta:
        unique_together = ('file', 'recovery_type', 'value_code')
        verbose_name = _('file_recovery')
        verbose_name_plural = _('file_recoveries')
        db_table = 'file_recoveries'

    def __str__(self):
        return self.value_code
Esempio n. 6
0
class LastDataModel(models.Model):
    salon = models.ForeignKey(SalonModel,
                              on_delete=models.CASCADE,
                              related_name='lastdatas',
                              blank=False,
                              null=False)
    last_length = models.IntegerField(null=True, blank=True)
    first_day = jmodels.jDateField(null=True, blank=True)
    first_day_2 = jmodels.jDateField(null=True, blank=True)
    last_day = jmodels.jDateField(null=True, blank=True)
    last_saturday = models.BooleanField(default=False)
    last_sunday = models.BooleanField(default=False)
    last_monday = models.BooleanField(default=False)
    last_tuesday = models.BooleanField(default=False)
    last_wednesday = models.BooleanField(default=False)
    last_thursday = models.BooleanField(default=False)
    last_friday = models.BooleanField(default=False)

    def save(self, *args, **kwargs):
        if self.last_saturday and self.last_sunday and self.last_monday and self.last_tuesday and self.last_wednesday and self.last_thursday and self.last_friday:
            self.first_day_2 = self.last_day + timedelta(days=1)
            self.first_day = None
            self.last_day = None
            self.last_length = None
            self.last_saturday = False
            self.last_sunday = False
            self.last_monday = False
            self.last_tuesday = False
            self.last_wednesday = False
            self.last_thursday = False
            self.last_friday = False
        super(LastDataModel, self).save(*args, **kwargs)

    def __str__(self):
        return str(self.salon.sportclub.sportclub_name) + '\'s ' + ' LastData'
class Comment(models.Model):
    STATUS = (
        ('جدید', 'جدید'),
        ('True', 'انتشار'),
        ('False', 'عدم انتشار'),
    )
    product = models.ForeignKey(Product,
                                on_delete=models.CASCADE,
                                verbose_name='محصول')
    user = models.ForeignKey(User,
                             on_delete=models.CASCADE,
                             verbose_name='کاربر')
    name = models.CharField(max_length=50, blank=True, verbose_name='نام')
    email = models.CharField(max_length=100, blank=True, verbose_name='ایمیل')
    subject = models.CharField(max_length=50, blank=True, verbose_name='موضوع')
    comment = models.CharField(max_length=2000, blank=True, verbose_name='نظر')
    ip = models.CharField(max_length=20, blank=True, verbose_name='ای پی')
    status = models.CharField(max_length=10,
                              choices=STATUS,
                              default='جدید',
                              verbose_name='وضعیت')
    create_at = jmodels.jDateField(auto_now_add=True)
    update_at = jmodels.jDateField(auto_now=True, verbose_name='به روز شده در')

    def __str__(self):
        return self.subject

    class Meta:
        verbose_name = 'نظر'
        verbose_name_plural = 'نظرات'
Esempio n. 8
0
class Perm(TimeStampedModel):
    proforma = models.ForeignKey(Xpref,
                                 on_delete=models.CASCADE,
                                 related_name='perm_prof')
    number = models.IntegerField()
    date = models.CharField(max_length=10)
    year = models.CharField(max_length=4)
    due_date = jmodels.jDateField(null=True, blank=True)
    date_complete = jmodels.jDateField(null=True, blank=True)

    def __str__(self):
        return "Perm: %s - Prof: %s: " % (
            self.number,
            self.proforma,
        )

    def qty_total(self):
        count = self.permspec_perm.aggregate(Sum('qty'))
        return count['qty__sum']

    def qty_sent(self):
        count = self.inv_out_perm.aggregate(sum=Sum('inventoryoutspec__qty'))
        if not count['sum']:
            return 0
        return count['sum']

    def qty_remained(self):
        return self.qty_total() - self.qty_sent()

    def update_delays(self):
        remaining = self.qty_total() - self.qty_sent()
        if remaining == 0:
            date = change_date_format(self.date, '/')
            self.date_complete = date
            self.save()
Esempio n. 9
0
class SessionCategoryModel(models.Model):
    salon = models.ForeignKey(SalonModel,
                              on_delete=models.CASCADE,
                              related_name='sessioncategories',
                              blank=False,
                              null=False)
    saturdays = models.BooleanField(default=False)
    sundays = models.BooleanField(default=False)
    mondays = models.BooleanField(default=False)
    tuesdays = models.BooleanField(default=False)
    wednesdays = models.BooleanField(default=False)
    thursdays = models.BooleanField(default=False)
    fridays = models.BooleanField(default=False)
    range_start_day = jmodels.jDateField(null=False, blank=False)
    range_end_day = jmodels.jDateField(null=False, blank=False)
    is_closed = models.BooleanField(null=False, default=False)
    created_at_date = jmodels.jDateField(null=True, max_length=264)
    created_at_time = models.TimeField(null=True, max_length=264)

    def save(self, *args, **kwargs):
        self.created_at_date = jdatetime.datetime.now().date()
        self.created_at_time = datetime.datetime.now().time()
        super(SessionCategoryModel, self).save(*args, **kwargs)

    def __str__(self):
        return str(self.salon.sportclub.sportclub_name) + '\'s ' + str(
            self.pk) + ' SessionCategory'
Esempio n. 10
0
class Order(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    address = models.CharField(max_length=250, verbose_name="آدرس")
    postal_code = models.CharField(max_length=20, verbose_name="کدپستی")
    city = models.CharField(max_length=100, verbose_name="شهر | استان")
    created = jmodels.jDateField(auto_now_add=True, verbose_name="تاریخ ایجاد")
    updated = jmodels.jDateField(auto_now=True, verbose_name="تاریخ تغییر")
    paid = models.BooleanField(default=False, verbose_name="وضعیت پرداخت")
    coupon = models.ForeignKey(Coupon,
                               related_name='orders',
                               null=True,
                               blank=True,
                               on_delete=models.SET_NULL,
                               verbose_name="تخفیف")
    discount = models.IntegerField(
        default=0, validators=[MinValueValidator(0),
                               MaxValueValidator(100)])

    class Meta:
        ordering = ('-created', )

    def __str__(self):
        return f'Order {self.id}'

    def get_total_cost(self):
        total_cost = sum(item.get_cost() for item in self.items.all())
        return total_cost - total_cost * \
            (self.discount / Decimal(100))
Esempio n. 11
0
class Term(models.Model):
    objects = jmodels.jManager()
    start_date = jmodels.jDateField(null=False, blank=False)
    end_date = jmodels.jDateField(null=False, blank=False)

    @property
    def title(self):
        if self.start_date.month > self.end_date.month:
            return str(self.start_date.year) + " دوم"
        else:
            return str(self.start_date.year) + " اول"

    class Meta:
        unique_together = (("start_date", "end_date"))

    def __str__(self):
        return self.title

    def __init__(self, *args, **kwargs):
        super(Term, self).__init__(* args, **kwargs)
        if self.start_date is not None:
            self.old_title = self.title
        else:
            self.old_title = " "

    def clean(self):
        if (self.end_date < self.start_date) or (self.end_date.year - self.start_date.year > 1):
            raise ValidationError("Invalid Term interval!")
        elif self.title != self.old_title and self.title in list(map(lambda x: x.title, Term.objects.all())):
            raise ValidationError(
                "A term with the title <%s> is already defined!" % self.title)

    def save(self, *args, **kwargs):
        self.full_clean()
        super(Term, self).save(*args, **kwargs)
Esempio n. 12
0
class Event(models.Model):
    title = models.CharField(max_length=30)
    content = models.TextField()
    # please add a location field to this
    date = jmodels.jDateField()  # when is the event
    unitl = jmodels.jDateField()  # when singup for the event finishes

    def __str__(self):
        return self.title
Esempio n. 13
0
class BookingModel(models.Model):
    reckoning = models.ForeignKey(ReckoningModel,
                                  on_delete=models.PROTECT,
                                  null=True,
                                  related_name='bookings')
    salon = models.ForeignKey(SalonModel,
                              on_delete=models.SET_NULL,
                              null=True,
                              related_name='bookings')
    session = models.ForeignKey(SessionModel,
                                on_delete=models.SET_NULL,
                                null=True,
                                related_name='bookings')
    booker = models.ForeignKey(CommonUserModel,
                               on_delete=models.SET_NULL,
                               null=True,
                               related_name='bookings')
    contract = models.ForeignKey(ContractModel,
                                 on_delete=models.SET_NULL,
                                 null=True,
                                 related_name='bookings')
    transfered_to_sportclub = models.BooleanField(null=False, default=False)
    transfered_at_date = jmodels.jDateField(null=True)
    transfered_at_time = models.TimeField(null=True)
    booked_at_date = jmodels.jDateField(null=False)
    booked_at_time = models.TimeField(null=False)
    final_price = models.FloatField(null=False)
    discount_percentage = models.IntegerField(null=False)
    company_discount_percentage = models.IntegerField(null=False)
    raw_price = models.FloatField(null=False)
    profit_percantage = models.IntegerField(null=False)
    company_portion = models.FloatField(null=False)
    sportclub_portion = models.FloatField(
        null=False)  #change this to null = False later
    cancelled = models.BooleanField(null=False, default=False)
    is_contract = models.BooleanField(null=False, default=False)
    contract_discount = models.IntegerField(null=True)
    code = models.CharField(null=False, max_length=264)
    pay_back = models.FloatField(null=True)
    cancelled_at_date = jmodels.jDateField(null=True)
    cancelled_at_time = models.TimeField(null=True)
    cancelled_by_sportclub = models.BooleanField(null=False, default=False)
    pay_back_by_sportclub = models.FloatField(null=True)
    cancelled_by_sportclub_at_date = jmodels.jDateField(null=True)
    cancelled_by_sportclub_at_time = models.TimeField(null=True)

    def __str__(self):
        return str(self.user.username) + ' booked ' + str(self.sesison.pk)

    def transfer_to_sportclub(self):
        self.transfer_to_sportclub = True
        date = jdatetime.datetime.now().date()
        time = datetime.datetime.now().time()
        self.transfered_at_date = date
        self.transfered_at_time = time
        self.save()
Esempio n. 14
0
class ReportedComment(models.Model):
    created = jmodels.jDateField(auto_now_add=True, blank=True)
    updated_at = jmodels.jDateField(auto_now_add=True, blank=True)
    reported = models.ForeignKey(ProductComment,
                                 on_delete=models.CASCADE,
                                 default='1',
                                 related_name='reportcm_id')

    def __str__(self):
        return str(self.reported)
Esempio n. 15
0
class Campaign(models.Model):
    Title=models.CharField(verbose_name='عنوان', max_length=100, db_index=True)
    Description=models.TextField(verbose_name='توضیحات', blank=True)
    FK_Creator=models.ForeignKey(User, on_delete=models.SET_NULL, verbose_name='سازنده', related_name='Campaign_Creator', null=True)
    DISCOUNT_TYPE=(
        ('1','درصدی'),
        ('2','اعتباری'),
        ('3','ارسال رایگان'),
    )
    DiscountType=models.CharField(verbose_name='نوع تخفیف', max_length=1, choices=DISCOUNT_TYPE, default='1')
    DiscountRate=models.CharField(verbose_name='میزان تخفیف', max_length=7, blank=True)
    FK_InvitationShops=models.ManyToManyField('Invitation', verbose_name='حجره های دعوت شده', related_name='Campaign_Invitation_Shop', blank=True)
    FK_Shops=models.ManyToManyField(Shop, verbose_name='حجره های مجاز', related_name='ShopCampaign', blank=True)
    FK_Products=models.ManyToManyField(Product, verbose_name='محصولات مجاز', related_name='ProductCampaign', blank=True)
    FK_Categories=models.ManyToManyField(Category, verbose_name='دسته بندی های مجاز', related_name='CategoryCampaign', blank=True)
    CAMPAGIN_TYPE=(
        ('0','تولد'),
        ('1','مناسبتی'),
        ('2','انجمنی'),
        ('3','فروش اولی'),
        ('4','خرید اولی'),
    )
    CampaignType=models.CharField(verbose_name='نوع کمپین', max_length=1, choices=CAMPAGIN_TYPE)
    DISCOUNT_TYPE =(
        ('0','مدیریتی'),
        ('1','حجره ای'),
    )
    DiscountStatus=models.CharField(verbose_name='نوع تخفیف', max_length=1, choices=DISCOUNT_TYPE, blank=True)
    TextRequest=models.TextField(verbose_name='متن پیام دعوت نامه', blank=True)
    MinimumAmount=models.CharField(verbose_name='حداقل مبلغ خرید', max_length=15, blank=True, default='0')
    MaximumAmount=models.CharField(verbose_name='حداکثر مبلغ خرید', max_length=15, blank=True, default='0')
    StartDate=jmodels.jDateField(verbose_name='تاریخ شروع کمپین')
    EndDate=jmodels.jDateField(verbose_name='تاریخ پایان کمپین')
    AVAILABLE_STATUS =(
        (True,'فعال'),
        (False,'غیر فعال'),
    )
    PUBLISH_STATUS =(
        (True,'منتشر شده'),
        (False,'در انتظار تایید'),
    )
    Available=models.BooleanField(verbose_name='وضعیت ثبت کمپین', choices=AVAILABLE_STATUS, default=True)
    Publish=models.BooleanField(verbose_name='وضعیت انتشار کمپین', choices=PUBLISH_STATUS, default=False)
    FK_User=models.ForeignKey(User, on_delete=models.SET_NULL, verbose_name='تایید کننده', related_name='Campaign_Accept', blank=True, null=True)

    # Output Customization Based On Creator, Serial Number
    def __str__(self):
        return "{} ({})".format(self.Title, self.FK_Creator)

    # Ordering With StartDate
    class Meta:
        ordering = ('StartDate',)
        verbose_name = "کمپین"
        verbose_name_plural = "کمپین ها"
Esempio n. 16
0
class ProductImage(models.Model):
    product = models.ForeignKey("Product",
                                on_delete=models.CASCADE,
                                related_name="product_images")
    image = models.ImageField(upload_to=product_image_file_path)
    is_featured = models.BooleanField(default=False)
    created = jmodels.jDateField(auto_now_add=True)
    updated = jmodels.jDateField(auto_now=True)

    def __str__(self):
        return self.product.name
Esempio n. 17
0
class BaseFollowUp(models.Model):
    author = models.ForeignKey('accounts.User', on_delete=models.CASCADE)
    summary = models.CharField(max_length=100)
    description = models.TextField(null=True, blank=True)
    pub_date = models.DateTimeField(default=now)
    date_fa = jmodels.jDateField(default=now)
    next_followup = jmodels.jDateField(null=True, blank=True)
    is_imported = models.BooleanField(default=False)

    class Meta:
        abstract = True

    def __str__(self):
        return self.summary
Esempio n. 18
0
def addGood(request):
    buy_agent = MyBackend().authenticate(request.POST['username'], request.POST['password'])
    if buy_agent == None or (buy_agent.groups.all()[0].name != 'B' and not buy_agent.is_superuser) :
        return HttpResponse('borooo')
    today = jDateField()
    today = today.to_python(datetime.datetime.now())

    order = Order.objects.filter(pk=int(request.POST['order']))[0]
    orderitem = OrderItem.objects.filter(pk=int(request.POST['orderitem']))[0]
    orderitem.status = 'I'
    orderitem.save()
    if not order.user == None:
        inform_user(user=order.user, message=render_to_string('mail/orderitem_available.html', {'orderitem': orderitem}),
                    subject='سفارش شما در انبار موجود است')

    if not OrderItem.objects.filter(order=order).exclude(status='I'):
        order.status = 'D'
        order.save()

    for i in range(0, orderitem.quantity):
        good = Good(submitDate=today, category=orderitem.category, user=order.user, orderitem=orderitem, status='W')
        good.save()

    c = {'rlink': '../../allgoods/', 'success': "کالاها با موفقیت ثبت شدند"}
    return render_to_response("success.html", c)
Esempio n. 19
0
class Profile(models.Model):
    GENDER = [
        ('m', 'مرد'),
        ('w', 'زن'),
    ]

    MARITAL = [
        ('m', 'متاهل'),
        ('s', 'مجرد'),
    ]

    user = models.OneToOneField(User, on_delete=models.CASCADE)
    email = models.EmailField('ایمیل')
    first_name = models.CharField('نام', max_length=200)
    last_name = models.CharField('نام خانوادگی', max_length=200)
    national_code = models.CharField('کد ملی', max_length=200)
    date_birth = jmodels.jDateField('تاریخ تولد')
    gender = models.CharField('جنسیت', max_length=1, choices=GENDER)
    marital = models.CharField('وضعیت تاهل', max_length=1, choices=MARITAL)
    address = models.TextField('آدرس')
    mobile = models.CharField('موبایل', max_length=15)
    picture = models.ImageField('عکس', null=True, blank=True)
    father_name = models.CharField('نام پدر', max_length=200)
    #
    # def __str__(self):
    #     return (self.user.username)

    class Meta:
        verbose_name = 'profile'
        verbose_name_plural = 'پروفایل افراد'
Esempio n. 20
0
class kagar_cyrus(models.Model):

	MELIYAT_CHOICES = (
		('IR', 'ایرانی'),
		('AF', 'افغانی'),
	)

	VAZIYAT_KARI_CHOICES = (
		('krg', 'کارگر'),
		('ost', 'استادکار'),
	)
	f_name = models.CharField('نام', max_length=200)
	l_name = models.CharField('نام خانوادگی', max_length=250)
	meli_code = models.CharField('کد ملی', max_length=10, help_text='ورود کد ملی ۱۰ رقمی', null=True, blank=True)
	birthday = jmodels.jDateField('تاریخ تولد', help_text='تاریخ تولد را وارد کنید', null=True, blank=True)
	meliyat = models.CharField('ملیت', max_length=2, choices=MELIYAT_CHOICES)
	vaziyet_kari = models.CharField('وضعیت کاری', max_length=3, choices=VAZIYAT_KARI_CHOICES)
	moaref_kargar = models.ForeignKey(personel_cyrus, 'معرف', null=True)
	address = models.CharField('آدرس', max_length=300, help_text='آدرس را در این قسمت وارد کنید')
	tel_cellphone = models.CharField('شماره تلفن همراه', max_length=11,
									help_text='لطفا شماره تلفن همراه را در این حالت وارد کنید 09113910400',
									)
	tel_sabet = models.CharField('شماره تلفن ثابت', max_length=11,
									help_text='لطفا شماره تلفن همراه را در این حالت وارد کنید 01154633340',
									)
	created = models.DateField(auto_now_add=True)
	updated = models.DateTimeField(auto_now=True)

	class Meta:
		verbose_name = 'کارگرها'
		verbose_name_plural = 'لیست کارگرها'

	def __str__(self):
		return 'کد کارگر :{} ,  نام : {} {} , {} , {}'.format(self.id, self.f_name, self.l_name, self.vaziyet_kari, self.meliyat)
Esempio n. 21
0
class DrugRegistration(models.Model):
    objects = jmodels.jManager()
    drug = models.OneToOneField('Drug',on_delete = models.CASCADE, null = False, blank = False, unique = True, verbose_name = 'دارو')
    addDate = jmodels.jDateField(default = jdatetime.date.today, null = False, blank = True, verbose_name = 'تاریخ ثبت')
    pharmacy = models.ForeignKey('Pharmacy', on_delete = models.CASCADE, null = False, blank = False, verbose_name = 'داروخانه ثبت کننده')
    def __str__(self):
        return '%s : %s'%(self.drug.name,self.parmacy.fullName)
Esempio n. 22
0
class OpinionForDrug(models.Model):
    objects = jmodels.jManager()
    drug = models.ForeignKey('Drug', on_delete = models.CASCADE, null = False, blank = False, verbose_name = 'دارو')
    author = models.ForiegnKey('MyUser', on_delete = models.CASCADE, null = False, blank = False, verbose_name = 'نویسنده')
    title = models.CharField(db_index = True, max_length = 300, null = True, blank = True, verbose_name = 'عنوان')
    text = models.TextField(max_length = 1000, null = False, blank = False, verbose_name = 'متن')
    date = jmodels.jDateField(default = jdatetime.date.today, null = False = blank = True, verbose_name = 'تاریخ ثبت')
Esempio n. 23
0
class CustomUser(models.Model):
    GENDER = [
        ('M', 'Male'),
        ('F', 'Female'),
    ]

    username = models.CharField(max_length=255)
    full_name = models.CharField(max_length=255)
    gender = models.CharField(
        max_length=1,
        choices=GENDER,
    )
    national_code = models.CharField(max_length=10)
    birthday_date = jmodels.jDateField()
    ceremony_datetime = jmodels.jDateTimeField(null=True)
    country = models.CharField(default="Iran", max_length=255)

    def get_first_and_last_name(self):
        if self.full_name:
            first_name, last_name = str(self.full_name).split(' ')
            return {
                'first_name': first_name.capitalize(),
                'last_name': last_name.capitalize(),
            }
        return {}

    def get_age(self):
        return jmodels.jDateField.parse_date(
            jmodels.datetime.datetime.now()).year - self.birthday_date.year

    def is_birthday(self):
        today = jdate.today()
        birthday = self.birthday_date
        return today.month == birthday.month and today.day == birthday.day
Esempio n. 24
0
class ProductComment(models.Model):
    created = jmodels.jDateField(auto_now_add=True, blank=True)
    updated_at = jmodels.jDateField(auto_now_add=True, blank=True)
    usercm_id = models.ForeignKey(Person_Register,
                                  on_delete=models.CASCADE,
                                  default='1',
                                  related_name='usercm_id')
    productcm_id = models.ForeignKey(Product,
                                     on_delete=models.CASCADE,
                                     default='1',
                                     related_name='productcm_id')
    username = models.CharField(max_length=100, default='', null=True)
    cm = models.TextField(blank=True, null=True, default='')

    def __str__(self):
        return str(self.usercm_id)
Esempio n. 25
0
class ReqEntered(models.Model):
    number_entered = models.CharField(max_length=20, blank=True, null=True)
    number_automation = models.IntegerField(unique=True)
    # received_by = models.ForeignKey(ReceivedBy, on_delete=models.DO_NOTHING)
    is_entered = models.BooleanField(default=False)
    title = models.CharField(max_length=250, null=True, blank=True)
    # owner = models.ForeignKey(User, on_delete=models.DO_NOTHING)
    owner_text = models.CharField(max_length=40, default='الوند')
    date_txt = models.CharField(max_length=12, null=True, blank=True)
    customer = models.CharField(max_length=200, null=True, blank=True)
    is_request = models.BooleanField(default=True)
    attachment = models.CharField(max_length=100, null=True, blank=True)
    description = models.TextField(max_length=600, null=True, blank=True)
    date_fa = jmodels.jDateField(default=now, null=True, blank=True)
    # date_fa = jmodels.jDateField(default=now, null=True, blank=True)

    def __str__(self):
        return '%s' % self.number_automation

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        self.date_fa = self.jdate_form_text()
        super(ReqEntered, self).save(force_insert, force_update, using, update_fields)

    def jdate_form_text(self):
        year, month, day = self.date_txt.split('/')
        if len(year) == 2:
            year = f"13{year}"
        return jdatetime.date(int(year), int(month), int(day))
Esempio n. 26
0
class Item(TimeStampedModel):
    ITEM_TYPE = (
        ('In', 'درآمد'),
        ('Exp', 'هزینه')
    )

    name = models.CharField(max_length=500, verbose_name="نام")
    price = models.BigIntegerField(verbose_name="مقدار")
    date = jmodels.jDateField(verbose_name="تاریخ")
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    group = models.ForeignKey(
        Group, on_delete=models.CASCADE, verbose_name="دسته‌بندی")
    tags = models.ManyToManyField(Tag)
    item_type = models.CharField(
        max_length=3, choices=ITEM_TYPE, verbose_name="نوع")

    class Meta:
        verbose_name = "دخل و خرج"
        verbose_name_plural = "دخل و خرج"
        indexes = [
            models.Index(fields=['name', 'date'])
        ]

    def get_absolute_url(self):
        return reverse("dashboard_item_update", kwargs={"pk": self.pk})
    

    def __str__(self):
        return f"{self.name} - {self.price}"
Esempio n. 27
0
class Borrow(models.Model):
    book = models.ForeignKey(Book,
                             on_delete=models.CASCADE,
                             default='',
                             verbose_name='عنوان کتاب')
    user = models.ForeignKey(User,
                             on_delete=models.CASCADE,
                             verbose_name='نام کاربری')
    carry = jmodels.jDateField(auto_now_add=True,
                               verbose_name='تاریخ امانت بردن')
    bring = jmodels.jDateField(validators=[validate_date],
                               verbose_name='تاریخ انقضا')
    remainingTime = models.CharField(default='', max_length=100)

    def __str__(self):
        return f'${self.book}'
Esempio n. 28
0
class bookshelfs(models.Model):
    FRESHMAN = 'FR'
    SOPHOMORE = 'SO'
    JUNIOR = 'JR'
    SENIOR = 'SR'
    YEAR_IN_SCHOOL_CHOICES = [
        (FRESHMAN, 'Freshman'),
        (SOPHOMORE, 'Sophomore'),
        (JUNIOR, 'Junior'),
        (SENIOR, 'Senior'),
    ]
    name = models.CharField(
        max_length=30,
        choices=YEAR_IN_SCHOOL_CHOICES,
    )

    # ).only("first_name", "last_name")
    # name = models.CharField(max_length=30)

    publicationDate = jmodels.jDateField()
    #     publicationDate = models.DateField()
    pageNumber = models.IntegerField()
    firstPublished = models.BooleanField()

    def __str__(self):
        return self.name

    def better_time(self):
        return self.publicationDate.strftime('%d-%m-%Y')

    def anotherDateFormat(self):
        return self.publicationDate.strftime('%b %d %Y ')
Esempio n. 29
0
class Bar(models.Model):
    objects = jmodels.jManager()
    name = models.CharField(max_length=200)
    date = jmodels.jDateField()

    def __str__(self):
        return "%s, %s" % (self.name, self.date)
Esempio n. 30
0
class ExcludeDate(models.Model):
    DAY_CHOICES = (
        (0, _('Saturday')),
        (1, _('Sunday')),
        (2, _('Monday')),
        (3, _('Tuesday')),
        (4, _('Wednesday')),
        (5, _('Thursday')),
        (6, _('Friday')),
    )
    date = jmodels.jDateField(_('Date'), null=True, blank=True)
    times = models.ManyToManyField(Time, verbose_name=_('Times'))
    day = models.PositiveSmallIntegerField(_('Day'),
                                           choices=DAY_CHOICES,
                                           null=True,
                                           blank=True)

    def __str__(self):
        if self.date:
            return str(self.date)
        else:
            return str(self.DAY_CHOICES[self.day][1])

    class Meta:
        verbose_name = _("ExcludeDate")
        verbose_name_plural = _("ExcludeDates")
Esempio n. 31
0
class Grade(models.Model):
    objects = jmodels.jManager()
    out_of_twenty = models.FloatField(
        null=False, blank=False, default=20.0)  # az 20 nomre
    value = models.FloatField(null=False, blank=False, default=0.0)
    base_value = models.FloatField(null=False, blank=False, default=20.0)
    date_examined = jmodels.jDateField(null=True, blank=True)
    title = models.CharField(max_length=255, blank=True)
    attend = models.ForeignKey(
        Attend, on_delete=models.CASCADE, related_name="grades")

    @property
    def percentage(self):
        return self.out_of_twenty*100/20.0

    @property
    def carrier(self):
        return self.attend.carrier

    @property
    def course(self):
        return self.attend.course

    def __str__(self):
        return "Grade for: "+str(self.attend)+" | Title :"+str(self.title)
Esempio n. 32
0
def addOrder(request):
    c = request.POST
    tableData = json.loads( c['tableData']);

    today = jDateField();
    today = today.to_python(datetime.datetime.now())

    order = Order(submitDate=today)


    status = OrderItem.ORDER_ITEM_STATUS_CHOICES[0][0]
    order.user = request.user
    isforall = 'isforall' in request.POST and request.POST['isforall']
    if request.user.is_superuser:
        order.status = 'A'
        if isforall:
            status = 'P'
            order.user = None



    order.save()
    #print tableData
    for order_item in tableData:
         #print order_item[2]
         if order_item[3] == '':
             category = None
         else:
             category = Category.objects.filter(pk=order_item[3])[0]

         orderitem=OrderItem(order=order,
                               category=category,
                               quantity=int(order_item[1]),
                               description = order_item[4],
                               status= status  #if it's admin and the order belongs to the public ..., if it's admin the order is accepted
         )
         orderitem.save()
         if request.user.is_superuser and isforall:
             inform_purchase_agent(subject='سفارش نیازمند خرید است',message=render_to_string('mail/buy_orderitem.html',{'orderitem' : orderitem}))

    c = {'rlink' : '../../myorders/' , 'success' : "سفارش شما با موفقیت ثبت شد تا لحظاتی دیگر به فهرست سفارشاتتان خواهید رفت"}

    if request.user.is_superuser:
        if not isforall :
            inform_warehouse_manager( message=render_to_string('mail/order_warehouse_manager.html', {'order': order}),
                                      subject='سفارش نیازمند بررسی است')

    else:
        inform_admin('سفارش جدید', render_to_string('mail/order_added.html', {'order': order}))
    return render_to_response("success.html",c);