from django.db import models

# Create your models here.

class employee_table(models.Model):    
    company_id = models.IntegerField(default=0,null=True)
    is_wholesale = models.IntegerField(default=0,null=True)
    role_id = models.IntegerField(default=0,null=True)
    branch_id = models.IntegerField(default=0,null=True)
    store_type = models.CharField(max_length=50,null= True)
    name = models.CharField(max_length=50,null= True)
    employee_code = models.CharField(max_length=50,null= True)
    num_series = models.CharField(max_length=10,null= True)
    nick_name = models.CharField(max_length=50,null= True)
    email = models.CharField(max_length=50,null= True)
    mobile = models.CharField(max_length=50,null= True)
    password = models.CharField(max_length=50,null= True)
    address_line1 = models.CharField(max_length=150,null= True)
    address_line2 = models.CharField(max_length=150,null= True)
    city = models.CharField(max_length=50,null= True)
    state = models.CharField(max_length=50,null= True)
    pincode = models.IntegerField(null= True)
    photo = models.ImageField(upload_to='employee/', max_length=100)
    is_admin = models.IntegerField(default=0,null=True)
    is_pos = models.IntegerField(default=0,null=True)
    auth_id = models.IntegerField(default=0)
    device_id = models.CharField(max_length=50,null=True)
    
    # Basic Details
    gender = models.CharField(max_length=20, null=True, blank=True)
    parent_name = models.CharField(max_length=100, null=True, blank=True)
    spouse_name = models.CharField(max_length=100, null=True, blank=True)
    aadhar_no = models.CharField(max_length=50, null=True, blank=True)
    pan_no = models.CharField(max_length=50, null=True, blank=True)
    alternative_no = models.CharField(max_length=50, null=True, blank=True)
    home_contact_no = models.CharField(max_length=50, null=True, blank=True)
    blood_group = models.CharField(max_length=10, null=True, blank=True)
    dob = models.DateField(null=True, blank=True)
    marital_status = models.CharField(max_length=20, null=True, blank=True)
    ot_applicable = models.CharField(max_length=10, null=True, blank=True)

    # Accounting Details
    promoter_brand = models.CharField(max_length=100, null=True, blank=True)
    esi_no = models.CharField(max_length=50, null=True, blank=True)
    pf_no = models.CharField(max_length=50, null=True, blank=True)
    salary_type = models.CharField(max_length=50, null=True, blank=True)
    opening_balance = models.DecimalField(max_digits=10, decimal_places=2, default=0, null=True)
    monthly_salary = models.DecimalField(max_digits=10, decimal_places=2, default=0, null=True)
    daily_salary = models.DecimalField(max_digits=10, decimal_places=2, default=0, null=True)
    loan_amount = models.DecimalField(max_digits=10, decimal_places=2, default=0, null=True)
    monthly_loan_deduction = models.DecimalField(max_digits=10, decimal_places=2, default=0, null=True)
    doj = models.DateField(null=True, blank=True)
    enable_esi = models.CharField(max_length=10, null=True, blank=True)
    enable_pf = models.CharField(max_length=10, null=True, blank=True)
    esi_percentage = models.DecimalField(max_digits=5, decimal_places=2, default=0, null=True)
    pf_percentage = models.DecimalField(max_digits=5, decimal_places=2, default=0, null=True)
    allowed_leave = models.IntegerField(default=0, null=True)

    # Bank Account
    bank_name = models.CharField(max_length=100, null=True, blank=True)
    ifsc_code = models.CharField(max_length=50, null=True, blank=True)
    account_no = models.CharField(max_length=50, null=True, blank=True)
    account_holder_name = models.CharField(max_length=100, null=True, blank=True)
    bonus_percentage = models.DecimalField(max_digits=5, decimal_places=2, default=0, null=True)
    work_time_from = models.TimeField(null=True, blank=True)
    work_time_to = models.TimeField(null=True, blank=True)

    # Other Details
    no_of_children = models.IntegerField(default=0, null=True)
    height = models.CharField(max_length=20, null=True, blank=True)
    weight = models.CharField(max_length=20, null=True, blank=True)
    driving_license_no = models.CharField(max_length=50, null=True, blank=True)
    quota = models.CharField(max_length=50, null=True, blank=True)
    nature_of_employee = models.CharField(max_length=50, null=True, blank=True)
    ration_card_no = models.CharField(max_length=50, null=True, blank=True)
    passport_no = models.CharField(max_length=50, null=True, blank=True)
    nominees = models.CharField(max_length=200, null=True, blank=True)
    weekly_off = models.CharField(max_length=50, null=True, blank=True)
    rejoin_date = models.DateField(null=True, blank=True)
    current_address = models.TextField(null=True, blank=True)
    medical_record = models.TextField(null=True, blank=True)
    resignation_date = models.DateField(null=True, blank=True)
    is_active = models.IntegerField(default=1,null=True)
    status = models.IntegerField(default=1,null=True)
    created_on=models.DateTimeField(null=True)
    updated_on=models.DateTimeField(null=True)
    created_by=models.IntegerField(null=True)
    updated_by=models.IntegerField(null=True)
    class Meta:
        db_table="employee"

    def save(self, *args, **kwargs):
        if self.name:
            self.name = self.name.strip().title()       
        super(employee_table, self).save(*args, **kwargs)