# -*- coding: utf-8 -*-
from crispy_forms.bootstrap import InlineField
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Column, Div, Field, Layout, Row, Submit

from django import forms
from django.forms import inlineformset_factory



from .models import Receipt, ReceiptItem
from management.models import StorageFacility, Good



ReceiptItemFormSet = inlineformset_factory(
    Receipt,
    ReceiptItem,
    fields=['good', 'quantity', 'price', 'total'],
    extra=2,  # Кількість додаткових форм, які можна додати
    can_delete=True  # Дозволяє видаляти форми
)

class UploadFileForm(forms.Form):
    file = forms.FileField()

class DateInput(forms.DateInput):
    input_type = 'date'

class ReceiptForm(forms.ModelForm):
    class Meta:
        model = Receipt
        fields = ['vendor', 'created_by', 'invoice', 'date', 'storage_facility', 'comment']

    def __init__(self, *args, **kwargs):
        super(ReceiptForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = False
        self.helper.layout = Layout(
            Row(
                Column('vendor', css_class='form-group col-md-4 mb-0'),
                Column('created_by', css_class='form-group col-md-4 mb-0'),
            ),
            Row(
                Column('invoice', css_class='form-group col-md-4 mb-0'),
                Column('date', css_class='form-group col-md-4 mb-0'),
            ),
            Row(
                Column('storage_facility', css_class='form-group col-md-4 mb-0'),
                # Column('comment', css_class='form-group col-md-4 mb-0'),
            ),
            # Submit('submit', 'Зберегти')
        )

class ReceiptItemForm(forms.ModelForm):
    class Meta:
        model = ReceiptItem
        fields = ['good', 'quantity', 'price', 'total']

    def __init__(self, *args, **kwargs):
        super(ReceiptItemForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = False
        self.helper.layout = Layout(
            Row(
                Column('good',),
                Column('quantity', ),
                Column('price', ),
                Column('total', ),
            )
        )