from django.db import models


class sales_order_table(models.Model):  
    company_id           = models.IntegerField(null=True)
    ws_po_id             = models.IntegerField(null=True)
    ws_po_no             = models.CharField(max_length=10,null=True)
    inv_date             = models.DateField(null=True)
    inv_no               = models.CharField(max_length=10)
    current_fy           = models.IntegerField(null=True)
    num_series           = models.CharField(max_length=10)
    customer_id          = models.IntegerField(default=0,null=True)
    time                 = models.TimeField(null=True)
    customer_name        = models.CharField(max_length=50)
    customer_phone       = models.IntegerField(null=True)
    customer_type        = models.CharField(max_length=10,null=True)
    branch_id            = models.IntegerField(null=True)
    total_quantity       = models.IntegerField(null=True)
    total_amount         = models.FloatField(null=True)
    sub_total            = models.FloatField(null=True)
    total_discount       = models.FloatField(null=True)
    total_cgst           = models.FloatField(null=True)
    total_sgst           = models.FloatField(null=True)
    total_paid           = models.FloatField(null=True)
    charges              = models.FloatField(null=True)
    remarks              = models.CharField(max_length=150)
    rejected_remarks     = models.CharField(max_length=150)
    balance              = models.FloatField(null=True)
    is_active            = models.IntegerField(default=1,null=True)
    sales_status         = models.CharField(max_length=10,null=True, blank=True, default='pending')
    employee_id          = models.IntegerField(null=True)
    status               = models.IntegerField(default=1,null=True)
    rejected_on          = models.DateTimeField(null=True)
    rejected_by          = models.IntegerField(null=True, blank=True, default=0)
    created_on           = models.DateTimeField(null=True)
    updated_on           = models.DateTimeField(null=True)
    created_by           = models.IntegerField(null=True, blank=True, default=0)
    updated_by           = models.IntegerField(null=True, blank=True, default=0)
    sales_channel        = models.CharField(max_length=50,null=True, blank=True)
    class Meta:
        db_table="tm_sales"



class child_sales_order_table(models.Model):    
    
    company_id           = models.IntegerField(null=True, blank=True, default=0)
    current_fy           = models.IntegerField(null=True, blank=True, default=0)
    tm_sales_id          = models.IntegerField(null=True, blank=True, default=0)
    ws_po_id             = models.IntegerField(null=True)
    branch_id            = models.IntegerField(null=True, blank=True, default=0)
    customer_id          = models.IntegerField(default=0,null=True)
    item_id              = models.IntegerField(null=True, blank=True, default=0)
    imei_no              = models.CharField(max_length=20,null=True, blank=True, default='')
    source               = models.CharField(max_length=20,null=True, blank=True, default='')
    ean_number           = models.CharField(max_length=20,null=True, blank=True, default='')
    subcategory_id       = models.IntegerField(null=True, blank=True, default=0)
    brand_id             = models.IntegerField(null=True, blank=True, default=0)
    model_id             = models.IntegerField(null=True, blank=True, default=0)
    variant_id           = models.IntegerField(null=True, blank=True, default=0)
    color_id             = models.IntegerField(null=True, blank=True, default=0)    
    quantity             = models.IntegerField(null=True, blank=True, default=0)
    rate                 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    amount               = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    tax_percent          = models.IntegerField(null=True, blank=True, default=0)
    tax_amount           = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    tax_cgst             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    tax_sgst             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    discount_percent     = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    discount_amount      = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    mop                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    bop                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    wsp                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    fsp                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    mrp                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    db_price             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    purchase_price       = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    upgrade_id           = models.IntegerField(null=True, blank=True, default=0)
    upgrade_amount       = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    is_upgrade_approved  = models.IntegerField(null=True, blank=True, default=0)
    upgrade_approved_on  = models.DateTimeField(null=True,blank=True)
    upgrade_approved_by  = models.IntegerField(null=True, blank=True, default=0)
    upgrade_collect      = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    upgrade_status       = models.CharField(max_length=10,null=True, blank=True, default='pending')
    upgrade_rejected_on  = models.DateTimeField(null=True,blank=True)
    upgrade_rejected_by  = models.IntegerField(null=True, blank=True, default=0)
    upgrade_rejected_remarks = models.CharField(max_length=150,null=True, blank=True, default='')
    special_id           = models.IntegerField(null=True, blank=True, default=0)
    price_id             = models.IntegerField(null=True, blank=True, default=0)
    special_amount       = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    is_claim             = models.IntegerField(default=0,null=True)
    claim_amount         = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    is_active            = models.IntegerField(default=1,null=True)
    status               = models.IntegerField(default=1,null=True)
    claimed_on           = models.DateTimeField(null=True)
    created_on           = models.DateTimeField(null=True)
    updated_on           = models.DateTimeField(null=True)
    created_by           = models.IntegerField(null=True, blank=True, default=0)
    updated_by           = models.IntegerField(null=True, blank=True, default=0)
    sales_channel        = models.CharField(max_length=50,null=True, blank=True)

    class Meta:
        db_table="tx_sales"


class transaction_table(models.Model):    
    tm_sales_id         = models.IntegerField(null=True, blank=True, default=0)
    branch_id           = models.IntegerField(null=True, blank=True, default=0)
    current_fy         = models.IntegerField(null=True, blank=True, default=0)
    date                = models.DateField(null=True,blank=True)
    time                = models.TimeField(null=True, blank=True)
    finance_customer    = models.CharField(max_length=150,null=True)    
    payment_type        = models.CharField(max_length=50,null=True)    
    total_amount        = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    finance_id          = models.IntegerField(null=True, blank=True, default=0)
    card_id             = models.IntegerField(null=True, blank=True, default=0)
    bank_id             = models.IntegerField(null=True, blank=True, default=0)
    reference_no        = models.CharField(max_length=50,null=True, blank=True, default='')
    amount              = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    cashback            = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    # CHARGE Details
    charges             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    charge_mode         = models.CharField(max_length=50,null=True, blank=True, default='')
    charge_bank_id      = models.IntegerField(null=True, blank=True, default=0)
    charge_status       = models.CharField(max_length=50,null=True, default='pending')
    charge_amount_collect= models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    charge_collect_on   = models.DateTimeField(null=True,blank=True)
    
    balance             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    exchange_claim      = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    is_collect          = models.IntegerField(default=0,null=True)
    collected_on        = models.DateTimeField(null=True,blank=True)
    collect_amount      = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    collect_status      = models.CharField(max_length=50,null=True, default='pending')
    exchange_status     = models.CharField(max_length=50,null=True, default='pending')
    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, blank=True, default=0)
    updated_by          = models.IntegerField(null=True, blank=True, default=0)
    class Meta:
        db_table="tx_sales_transaction"


class sales_return_table(models.Model):    
    company_id           = models.IntegerField(null=True)
    sr_date             = models.DateField(null=True)
    sr_no               = models.CharField(max_length=10)
    current_fy           = models.IntegerField(null=True)
    num_series           = models.CharField(max_length=10)
    customer_id          = models.IntegerField(default=0,null=True)
    time                 = models.TimeField(null=True)
    branch_id            = models.IntegerField(null=True)
    total_quantity       = models.IntegerField(null=True)
    total_amount         = models.FloatField(null=True)
    sub_total            = models.FloatField(null=True)
    total_discount       = models.FloatField(null=True)
    total_cgst           = models.FloatField(null=True)
    total_sgst           = models.FloatField(null=True)
    total_paid           = models.FloatField(null=True)
    charges              = models.FloatField(null=True)
    remarks              = models.CharField(max_length=150)
    balance              = models.FloatField(null=True)
    is_active            = models.IntegerField(default=1,null=True)
    employee_id          = models.IntegerField(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, blank=True, default=0)
    updated_by           = models.IntegerField(null=True, blank=True, default=0)
    class Meta:
        db_table="tm_sales_return"


class child_sales_return_table(models.Model):    
    company_id           = models.IntegerField(null=True, blank=True, default=0)
    current_fy           = models.IntegerField(null=True, blank=True, default=0)
    tm_return_id          = models.IntegerField(null=True, blank=True, default=0)
    branch_id            = models.IntegerField(null=True, blank=True, default=0)
    customer_id          = models.IntegerField(default=0,null=True)
    sales_id             = models.IntegerField(null=True, blank=True, default=0)
    imei_no              = models.CharField(max_length=20,null=True, blank=True, default='')
    source               = models.CharField(max_length=20,null=True, blank=True, default='')
    ean_number           = models.CharField(max_length=20,null=True, blank=True, default='')
    subcategory_id       = models.IntegerField(null=True, blank=True, default=0)
    brand_id             = models.IntegerField(null=True, blank=True, default=0)
    model_id             = models.IntegerField(null=True, blank=True, default=0)
    variant_id           = models.IntegerField(null=True, blank=True, default=0)
    color_id             = models.IntegerField(null=True, blank=True, default=0)    
    quantity             = models.IntegerField(null=True, blank=True, default=0)
    rate                 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    amount               = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    tax_percent          = models.IntegerField(null=True, blank=True, default=0)
    tax_amount           = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    tax_cgst             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    tax_sgst             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    discount_percent     = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    discount_amount      = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    mop                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    bop                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    wsp                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    fsp                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    mrp                  = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    db_price             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    special_id           = models.IntegerField(null=True, blank=True, default=0)
    special_amount       = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    claim_amount         = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)

    upgrade_id           = models.IntegerField(null=True, blank=True, default=0)
    upgrade_amount       = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    collect_amount       = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=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, blank=True, default=0)
    updated_by           = models.IntegerField(null=True, blank=True, default=0)
    class Meta:
        db_table="tx_sales_return"





class contra_sales_table(models.Model):    
    company_id          = models.IntegerField(default=0,null=True)
    branch_id           = models.IntegerField(default=0,null=True)
    bank_id             = models.IntegerField(default=0,null=True)
    current_fy          = models.IntegerField(default=0,null=True)
    contra_no           = models.CharField(max_length=10,null=True)
    time                = models.TimeField(null=True)
    date                = models.DateField(null=True)
    payment_type        = models.CharField(max_length=20,null=True)
    amount              = models.FloatField(null=True)
    description         = models.CharField(max_length=150)
    is_wholesale        = models.IntegerField(default=0,null=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)
    employee_id         = models.IntegerField(null=True)
    class Meta:
        db_table="contra_sales"


class return_transaction_table(models.Model):    
    tm_return_id         = models.IntegerField(null=True, blank=True, default=0)
    branch_id           = models.IntegerField(null=True, blank=True, default=0)
    current_fy         = models.IntegerField(null=True, blank=True, default=0)
    date                = models.DateField(null=True,blank=True)
    time                = models.TimeField(null=True, blank=True)
    finance_customer    = models.CharField(max_length=150,null=True)    
    payment_type        = models.CharField(max_length=50,null=True)    
    total_amount        = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    finance_id          = models.IntegerField(null=True, blank=True, default=0)
    card_id             = models.IntegerField(null=True, blank=True, default=0)
    bank_id             = models.IntegerField(null=True, blank=True, default=0)
    reference_no        = models.CharField(max_length=50,null=True, blank=True, default='')
    amount              = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    cashback            = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    # CHARGE Details
    charges             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    charge_mode         = models.CharField(max_length=50,null=True, blank=True, default='')
    charge_bank_id      = models.IntegerField(null=True, blank=True, default=0)
    charge_status       = models.CharField(max_length=50,null=True, default='pending')
    charge_amount_collect= models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    charge_collect_on   = models.DateTimeField(null=True,blank=True)
    
    balance             = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    is_collect          = models.IntegerField(default=0,null=True)
    collected_on        = models.DateTimeField(null=True,blank=True)
    collect_amount      = models.DecimalField(max_digits=10, decimal_places=2, default=0.00,null=True)
    collect_status      = models.CharField(max_length=50,null=True, default='pending')
    charge_status       = models.CharField(max_length=50,null=True, default='pending')
    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, blank=True, default=0)
    updated_by          = models.IntegerField(null=True, blank=True, default=0)
    class Meta:
        db_table="tx_sales_return_transaction"