from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
# Create your models here.
class Produit(models.Model):
    nom = models.CharField(max_length=255)
    description = models.TextField()
    prix = models.FloatField()
    image = models.ImageField(upload_to='images/')

    def __str__(self):
        return self.nom
    
    def get_image_url(self):
        if self.image:
            return self.image.url
        return None

class Category_user_set(models.Model):
    
    cat_parent_pf = models.CharField(max_length=200)
    cat_parent_mp = models.CharField(max_length=200)
    cat_imporation = models.CharField(max_length=200)
    marque = models.CharField(max_length=200,default='')
    username = models.CharField(max_length=200,default='')
    user = models.IntegerField(default=0)
    type_oper1 = models.IntegerField(default=0)
    type_oper2 = models.IntegerField(default=0)
    type_oper3 = models.IntegerField(default=0)
    database = models.CharField(max_length=200,default='')
    link_db = models.CharField(max_length=200,default='')
    Bom = models.BooleanField(default=True)
    Sale_ok = models.BooleanField(default=True)
    warehouse_delivry = models.IntegerField(default=0)
    location_delivry = models.IntegerField(default=0)
    partner_delivry = models.IntegerField(default=0)
    prevision_ERP = models.BooleanField(default=True)
    Get_PROD = models.BooleanField(default=False)
    Get_SALE = models.BooleanField(default=False)
    capacite_prod = models.BooleanField(default=False)


    def __str__(self):
        return self.cat_parent_pf


class prevsion_vente(models.Model):
    Annee = models.IntegerField(default=1)
    Product_Code =  models.CharField(max_length=500,default='')
    Product_Name =  models.CharField(max_length=500,default='')
    company = models.IntegerField(default=0)
    capacite_prod = models.IntegerField(default=0)
    _1 = models.IntegerField(default=0)
    _2 = models.IntegerField(default=0)
    _3 = models.IntegerField(default=0)
    _4 = models.IntegerField(default=0)
    _5 = models.IntegerField(default=0)
    _6 = models.IntegerField(default=0)
    _7 = models.IntegerField(default=0)
    _8 = models.IntegerField(default=0)
    _9 = models.IntegerField(default=0)
    _10 = models.IntegerField(default=0)
    _11 = models.IntegerField(default=0)
    _12 = models.IntegerField(default=0)
    SI_1 = models.IntegerField(default=0)
    SI_2 = models.IntegerField(default=0)
    SI_3 = models.IntegerField(default=0)
    SI_4 = models.IntegerField(default=0)
    SI_5 = models.IntegerField(default=0)
    SI_6 = models.IntegerField(default=0)
    SI_7 = models.IntegerField(default=0)
    SI_8 = models.IntegerField(default=0)
    SI_9 = models.IntegerField(default=0)
    SI_10 = models.IntegerField(default=0)
    SI_11 = models.IntegerField(default=0)
    SI_12 = models.IntegerField(default=0)
    
   
    

class Company_Config(models.Model):
    Company_id = models.IntegerField(default=1)
    Company_code = models.CharField(max_length=500,default='')
    Company_location_reception = models.IntegerField(default=1)
    Company_partner_reception = models.IntegerField(default=1)
    Operation_unit = models.IntegerField(default=1)
    price_list = models.IntegerField(default=2)
    api_user = models.CharField(max_length=500,default='')
    api_password = models.CharField(max_length=500,default='')
    Sales_location = models.IntegerField(default=1)

class Product(models.Model):
    id = models.IntegerField(primary_key=True)
    code = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    stock = models.FloatField(default=0)
    stock_prv = models.FloatField(default=0)
    stock_min = models.FloatField(default=0)
    flag = models.BooleanField(default=False)
    def __str__(self):
        return self.code
    
    def get_id(self):
        return self.id

class Obj(models.Model):
    cmp_id = models.IntegerField()
    code = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    cmp_qty = models.FloatField()



class Bom(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=255)
    code = models.CharField(max_length=255)
    product_id = models.ForeignKey(Product,related_name='boms', on_delete=models.CASCADE)
    product_qty = models.IntegerField()

    def __str__(self):
        return self.code
    
    def get_id(self):
        return self.id


    
class Bom_lines(models.Model):
    id = models.IntegerField(primary_key=True)
    product_id = models.ForeignKey(Product, related_name='product_id',on_delete=models.CASCADE)
    
    product_qty = models.IntegerField()
    bom_id = models.ForeignKey(Bom, related_name='bom_lines',on_delete=models.CASCADE)
    def get_id(self):
        return self.id
    
    
    
        
class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books')

    def __str__(self):
        return self.title
    


class Chargement(models.Model):
    
    Num = models.CharField(max_length=500,default='')
    Etd = models.DateTimeField(default=timezone.now, null=True, blank=True)
    Eta = models.DateTimeField(default=timezone.now, null=True, blank=True)
    Etdr = models.DateTimeField(default=timezone.now, null=True, blank=True)
    Etar = models.DateTimeField(default=timezone.now, null=True, blank=True)
    Etat  = models.CharField(max_length=500,default='')
    Comment = models.TextField(default='...' )
    Company = models.IntegerField(default=0 )


class Chargement_lines(models.Model):
    
    Num = models.CharField(max_length=500,default='')
    Product = models.CharField(max_length=500,default='')
    Product_Name = models.CharField(max_length=500,default='')
    Qty  = models.FloatField(max_length=500,default='')


class Commande(models.Model):
    
    Num = models.CharField(max_length=500,default='')
    Date_BC = models.DateTimeField(default=timezone.now, null=True, blank=True)
    Comment = models.TextField(default='...' )
    Company = models.IntegerField(default=0 )


class Commande_lines(models.Model):
    
    Num = models.CharField(max_length=500,default='')
    Product = models.CharField(max_length=500,default='')
    Product_Name = models.CharField(max_length=500,default='')
    Qty  = models.FloatField(max_length=500,default='')



class Access(models.Model):
    user_id = models.CharField(max_length=500,default='')
    Couverture =  models.BooleanField(default=True)
    capacite =  models.BooleanField(default=True)
    cbn = models.BooleanField(default=True)
    commande = models.BooleanField(default=True)
    chargement = models.BooleanField(default=True)
    transfert_pf = models.BooleanField(default=False)
    prevision_vente = models.BooleanField(default=False)
    stock_initial = models.BooleanField(default=False)
    chargement_simulator = models.BooleanField(default=False)
    pdp_menseuel = models.BooleanField(default=False)
    pdp_journalier = models.BooleanField(default=False)
    pdp_execute = models.BooleanField(default=False)
    get_prod = models.BooleanField(default=False)
    get_seles = models.BooleanField(default=False)
    commande_simulator = models.BooleanField(default=False)
    
    