from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Row, Column, ButtonHolder, Field, HTML

from utils.buttons import ButtonSubmit, ButtonAElement
from utils.crispy_containers import OrderableFormset


class TransactionListFilterFormHelper(FormHelper):
    form_method = 'GET'
    layout = Layout(
        Row(
            Column(
                Row(
                    # Column('payment_type', css_class='col'),
                    Column('cashier', css_class='col col-2'),
                    Column('beneficiary', css_class='col col-2'),
                    Column('accounting_headings', css_class='col col-2'),
                    Column('cost_center', css_class='col col-2'),
                    Column(Field('start_date'), css_class='col'),
                    Column(Field('end_date'), css_class='col'),
                    css_class='cols-auto',
                ), css_class='col-12',
            ),
            Column(
                ButtonHolder(
                    ButtonSubmit('submit', 'Search', css_class='btn btn-green'),
                    ButtonAElement('Clear', href='?', css_class='btn btn-primary'),
                    css_class='btn-group',
                ), css_class='col-12',
            ), css_class='row py-2',
        ),
    )


class TransactionCreateFormHelper(FormHelper):
    layout = Layout(
        Row(
            ButtonHolder(
                ButtonSubmit('submit', 'ذخیره', css_class='btn btn-green'), css_class='col-sm-12',
            ),
            Column(OrderableFormset('transaction', css_class='compact inline'), ),

        )
    )


class TransactionCreateInlineFormHelper(FormHelper):
    layout = Layout(
        Row(
            Column(
                Row(
                    Column('transaction_date', css_class='col col-4'),
                    Column('description', css_class='col'),
                    # Column('payment_type', css_class='col col-4'),
                ),
                css_class='col'
            ),
            Column(
                Row(
                    Column('cashier', css_class='col col-3'),
                    Column('beneficiary', css_class='col col-3'),
                    Column('payment', css_class='col col-3'),
                    Column('receipt', css_class='col col-3'),
                ),
                css_class='col'
            ),
            Column(
                Row(
                    Column('accounting_headings', css_class='col col-4'),
                    Column('cost_center', css_class='col col-4'),
                    Column(Field('factor_image'), css_class='col col-3'),
                ),
                css_class='col',
            ),
        ),
    )


class TransactionCreateInlineFormHeaderHelper(FormHelper):
    layout = Layout(
        Row(
            Row(
                Column(HTML('تاریخ'), css_class='col col-4'),
                Column(HTML('توضیحات'), css_class='col'),
                # Column(HTML('نوع پرداخت'), css_class='col'),
                css_class='col'
            ),
            Row(
                Column(HTML('صندوق'), css_class='col col-3'),
                Column(HTML('ذینفع'), css_class='col col-3'),
                Column(HTML('پرداخت'), css_class='col col-3'),
                Column(HTML('دریافت'), css_class='col col-3'),

                css_class='col'
            ),
            Row(
                Column(HTML('سرفصل'), css_class='col col-4'),
                Column(HTML('مرکز هزینه'), css_class='col col-4'),
                Column(HTML('تصویر سند'), css_class='col col-3'),
                css_class='col'
            ),
        ),
    )
