from django import forms
from apps.lotes.models import CadastroLote, Semeadura
from apps.fornecedores.models import FornecedoresModels


import locale
locale.setlocale(locale.LC_NUMERIC, 'pt_BR.UTF-8')

class LoteForms(forms.ModelForm):

    class Meta:
        model = CadastroLote
        exclude = ['especie', 'valor_minimo',
                   'valor_maximo']  # Exclua o campo especie
     # Outros campos

    numero_lote = forms.CharField(
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'
            }
        )
    )

    especies = forms.CharField(
        required=True,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'


            }
        )
    )

    nome_popular = forms.CharField(
        required=True,
        max_length=500,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'


            }

        )
    )

    valor_minimo = forms.DecimalField(
        required=True,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            attrs={
                "class": "form-control",
                'readonly': 'readonly'



            }
        )
    )
    valor_maximo = forms.DecimalField(
        required=True,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            attrs={
                "class": "form-control",
                'readonly': 'readonly'


            }
        )
    )

    numero_sementes_por_kg = forms.DecimalField(
        required=False,  # O campo não é obrigatório
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            attrs={'class': 'form-control', 'readonly': 'readonly'}),
    )

    qtd_sementes_minimo = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            # Estilo do campo
            attrs={'class': 'form-control', 'id': 'id_sementes_apt_minimo', 'readonly': 'readonly'}),
    )

    qtd_sementes_maximo = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            # Estilo do campo
            attrs={'class': 'form-control', 'id': 'id_sementes_apt_maximo', 'readonly': 'readonly'}),
    )

    entrada_sementes_kg = forms.DecimalField(
        required=True,
        max_digits=10,
        decimal_places=3,
        validators=[],
        widget=forms.NumberInput(
            attrs={'class': 'form-control', 'id': 'id_entrada_sementes_kg'}),
    )
    

    estimativa_minima = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado1_multiplicacao', 'readonly': 'readonly'}),
    )

    estimativa_maxima = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado2_multiplicacao', 'readonly': 'readonly'}),
    )

    estimativa_media = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado3_multiplicacao', 'readonly': 'readonly'}),
    )

    data_lote = forms.DateField(
        required=True,
        widget=forms.DateInput(
            attrs={
                "type": "date",
                "class": "form-control",
            }
        ),
    )

    nf_fiscal = forms.CharField(
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                
            }
        )
    )

    
    fornecedor = forms.ChoiceField(
        required=True,
        choices=[('', 'Selecione um fornecedor')],
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "risco_extincao",
            }
        ),
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        
        # Preencha o campo fornecedor com os dados do modelo FornecedoresModels
        fornecedores = FornecedoresModels.objects.all()
        choices = [(str(f.id), f.nome_fantasia) for f in fornecedores]  # Converta o ID para string
        self.fields['fornecedor'].choices += choices

        
    camera_fria = forms.ChoiceField(
        required=True,
        choices=(('Sim', 'Sim'), ('Não', 'Não')),
        widget=forms.Select(
            attrs={
                "class": "form-select",

            }
        ),
    )

    quebra_dormencia = forms.ChoiceField(
        required=True,
        choices=(('Selecione', 'Selecione'), ('Sim', 'Sim'), ('Não', 'Não')),
        widget=forms.Select(
            attrs={
                "class": "form-select",

            }
        ),
    )


class SemeaduraForms(forms.ModelForm):

    class Meta:
        model = Semeadura
        exclude = ['especie', 'valor_minimo',
                   'valor_maximo', 'lote']  # Exclua o campo especie
     # Outros campos

    numero_muda = forms.CharField(
        required=True,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'
            }
        )
    )

    especies = forms.CharField(
        required=True,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'


            }
        )
    )

    nome_popular = forms.CharField(
        required=True,
        max_length=500,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'


            }

        )
    )

   
    
   

    qtd_sementes_minimo = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            # Estilo do campo
            attrs={'class': 'form-control d-none', 'id': 'id_sementes_apt_minimo', 'readonly': 'readonly'}),
    )

    qtd_sementes_maximo = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(
            # Estilo do campo
            attrs={'class': 'form-control d-none', 'id': 'id_sementes_apt_maximo', 'readonly': 'readonly'}),
    )

    entrada_sementes_kg = forms.DecimalField(
        required=True,  # O campo não é obrigatório
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 # Estilo do campo
                                 'class': 'form-control', 'id': 'id_entrada_sementes_kg', 'readonly': 'readonly'}),
    )

    estimativa_minima = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado1_multiplicacao', 'readonly': 'readonly'}),
    )

    estimativa_maxima = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado2_multiplicacao', 'readonly': 'readonly'}),
    )

    estimativa_media = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado3_multiplicacao', 'readonly': 'readonly'}),
    )

    data_lote = forms.DateField(
        required=True,
        widget=forms.DateInput(
            attrs={
                "type": "date",
                "class": "form-control",
                'readonly': 'readonly',
            }
        ),
    )

    data_semeia = forms.DateField(
        required=True,
        widget=forms.DateInput(
            attrs={
                "type": "date",
                "class": "form-control",
                
            }
        ),
    )

    
    

    metodo_semeadura= forms.ChoiceField(
        required=True,
        choices=(('', 'Selecione'),('Semeadura Direta', 'Semeadura Direta'), ('Semeadura Indireta', 'Semeadura Indireta')),
        widget=forms.Select(
            attrs={
                "class": "form-select",

            }
        ),
    )

    local_semeadura= forms.ChoiceField(
        required=True,
        choices=(('', 'Selecione'),('Sementeira', 'Sementeira'), ('Canteiro', 'Canteiro'), ('Bandeja de Germinação', 'Bandeja de Germinação')),
        widget=forms.Select(
            attrs={
                "class": "form-select",

            }
        ),
    )

    abertura= forms.ChoiceField(
        required=True,
        choices=(('', 'Selecione'),('Completa', 'Completa'), ('Parcial', 'Parcial')),
        widget=forms.Select(
            attrs={
                "class": "form-select",

            }
        ),
    )

    qtd_sementes_utilizada = forms.DecimalField(
        required=True,  # O campo não é obrigatório
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 # Estilo do campo
                                 'class': 'form-control', 'id': 'id_qtd_sementes_utilizadas'}),
    )

    sobra_sementes = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado4_multiplicacao', 'readonly': 'readonly'}),
    )

    nova_media = forms.DecimalField(
        required=False,
        max_digits=10,
        decimal_places=3,
        widget=forms.NumberInput(attrs={
                                 'class': 'form-control', 'id': 'id_resultado5_multiplicacao', 'readonly': 'readonly'}),
    )

    fornecedor  = forms.CharField(
        required=True,
        max_length=500,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                'readonly': 'readonly'


            }

        )
    )