<?php

/**
 * Copyright Souke (2018)
 *
 * contact@souke.fr
 *
 * Ce logiciel est un programme informatique servant à aider les producteurs
 * à distribuer leur production en circuits courts.
 *
 * Ce logiciel est régi par la licence CeCILL soumise au droit français et
 * respectant les principes de diffusion des logiciels libres. Vous pouvez
 * utiliser, modifier et/ou redistribuer ce programme sous les conditions
 * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
 * sur le site "http://www.cecill.info".
 *
 * En contrepartie de l'accessibilité au code source et des droits de copie,
 * de modification et de redistribution accordés par cette licence, il n'est
 * offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
 * seule une responsabilité restreinte pèse sur l'auteur du programme,  le
 * titulaire des droits patrimoniaux et les concédants successifs.
 *
 * A cet égard  l'attention de l'utilisateur est attirée sur les risques
 * associés au chargement,  à l'utilisation,  à la modification et/ou au
 * développement et à la reproduction du logiciel par l'utilisateur étant
 * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
 * manipuler et qui le réserve donc à des développeurs et des professionnels
 * avertis possédant  des  connaissances  informatiques approfondies.  Les
 * utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
 * logiciel à leurs besoins dans des conditions permettant d'assurer la
 * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
 * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
 *
 * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
 * pris connaissance de la licence CeCILL, et que vous en avez accepté les
 * termes.
 */

use domain\Distribution\Distribution\DistributionModule;
use domain\Distribution\Distribution\ExportManager;
use domain\Feature\Feature\Feature;
use domain\Feature\Feature\FeatureModule;
use domain\Producer\Producer\Producer;
use domain\Producer\Producer\ProducerModule;
use lo\widgets\Toggle;
use domain\User\User\UserModule;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\widgets\ActiveForm;

$producerModule = ProducerModule::getInstance();
$userModule = UserModule::getInstance();
$distributionModule = DistributionModule::getInstance();
$featureChecker = FeatureModule::getInstance()->getChecker();

?>

<div class="point-sale-form">

    <?php $form = ActiveForm::begin([
        'enableClientValidation' => false
    ]); ?>

    <div class="col-md-8">

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-th-list"></i>
                    Général
                </h3>
            </div>
            <div class="panel-body">
                <?= $form->field($model, 'name')->textInput(['maxlength' => 255]) ?>
                <?= $form->field($model, 'locality')->textInput(['maxlength' => 255]) ?>
                <?= $form->field($model, 'address')->textarea(['rows' => 4]) ?>
                <?= $form->field($model, 'minimum_order_amount')->textInput() ?>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <span class="glyphicon glyphicon-credit-card"></span>
                    Modes de paiement
                </h3>
            </div>
            <div class="panel-body">
                <div id="credit">
                    <?php

                    echo $form->field($model, 'payment_method_onsite')->widget(Toggle::class,
                        [
                            'options' => [
                                'data-id' => $model->id,
                                'data-on' => 'Oui',
                                'data-off' => 'Non',
                            ],
                        ]
                    );

                    $addHintCredit = '';
                    if (!$producerModule->getConfig('credit')):
                        $addHintCredit = 'Attention, le système de cagnotte est désactivé au niveau des ' . Html::a('paramètres globaux', ['producer/update']);
                    endif;

                    echo '<div class="row">';
                    echo '<div class="col-md-4">';
                    echo $form->field($model, 'payment_method_credit')->widget(Toggle::class,
                        [
                            'options' => [
                                'data-id' => $model->id,
                                'data-on' => 'Oui',
                                'data-off' => 'Non',
                            ],
                        ]
                    )->hint($addHintCredit);
                    echo '</div>';
                    echo '<div class="col-md-8">';
                    echo $form->field($model, 'credit_functioning')
                        ->label('Fonctionnement de la cagnotte <span class="glyphicon glyphicon-info-sign" data-toggle="tooltip" data-placement="bottom" title="'.Producer::HINT_CREDIT_FUNCTIONING.'" data-html="true"></span>')
                        ->dropDownList([
                            Producer::CREDIT_FUNCTIONING_OPTIONAL => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_OPTIONAL],
                            Producer::CREDIT_FUNCTIONING_MANDATORY => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_MANDATORY],
                            Producer::CREDIT_FUNCTIONING_USER => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_USER],
                        ]);
                    echo '</div>';
                    echo '</div>';

                    if($featureChecker->isEnabled(Feature::ALIAS_ONLINE_PAYMENT)) {
                        echo $form->field($model, 'payment_method_online')->widget(Toggle::class,
                            [
                                'options' => [
                                    'data-id' => $model->id,
                                    'data-on' => 'Oui',
                                    'data-off' => 'Non',
                                ],
                            ]
                        );
                    }

                    ?>
                </div>
            </div>
        </div>


        <?php /*$form->field($model, 'product_price_percent')
                        ->dropDownList( ProductPrice::percentValues(), [])->hint('Pourcentage appliqué aux prix de chaque produit dans ce point de vente.');*/ ?>

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-truck"></i>
                    Livraison à domicile
                </h3>
            </div>
            <div class="panel-body">
                <div id="home-delivery">
                    <?= $form->field($model, 'is_home_delivery')->widget(Toggle::class,
                        [
                            'options' => [
                                'data-id' => $model->id,
                                'data-on' => 'Oui',
                                'data-off' => 'Non',
                            ],
                        ]
                    ); ?>
                </div>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-th-large"></i>
                    Boîte à pain
                </h3>
            </div>
            <div class="panel-body">
                <div id="bread-box">
                    <?= $form->field($model, 'is_bread_box')->widget(Toggle::class,
                        [
                            'options' => [
                                'data-id' => $model->id,
                                'data-on' => 'Oui',
                                'data-off' => 'Non',
                            ],
                        ]
                    ); ?>
                    <?= $form->field($model, 'bread_box_code')->textInput() ?>
                    <?= $form->field($model, 'maximum_number_orders')->textInput() ?>
                </div>
            </div>
        </div>
    </div>

    <div class="col-md-4">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-calendar"></i>
                    Jours de livraison
                </h3>
            </div>
            <div class="panel-body">
                <div id="days-distribution">
                    <?php $optionsTextareaInfos = ['rows' => 2, 'placeholder' => 'Informations'] ?>
                    <div class="day">
                        <?= $form->field($model, 'delivery_monday')->checkbox() ?>
                        <?= $form->field($model, 'infos_monday')->textarea($optionsTextareaInfos) ?>
                    </div>
                    <div class="day">
                        <?= $form->field($model, 'delivery_tuesday')->checkbox() ?>
                        <?= $form->field($model, 'infos_tuesday')->textarea($optionsTextareaInfos) ?>
                    </div>
                    <div class="day">
                        <?= $form->field($model, 'delivery_wednesday')->checkbox() ?>
                        <?= $form->field($model, 'infos_wednesday')->textarea($optionsTextareaInfos) ?>
                    </div>
                    <div class="day">
                        <?= $form->field($model, 'delivery_thursday')->checkbox() ?>
                        <?= $form->field($model, 'infos_thursday')->textarea($optionsTextareaInfos) ?>
                    </div>
                    <div class="day">
                        <?= $form->field($model, 'delivery_friday')->checkbox() ?>
                        <?= $form->field($model, 'infos_friday')->textarea($optionsTextareaInfos) ?>
                    </div>
                    <div class="day">
                        <?= $form->field($model, 'delivery_saturday')->checkbox() ?>
                        <?= $form->field($model, 'infos_saturday')->textarea($optionsTextareaInfos) ?>
                    </div>
                    <div class="day">
                        <?= $form->field($model, 'delivery_sunday')->checkbox() ?>
                        <?= $form->field($model, 'infos_sunday')->textarea($optionsTextareaInfos) ?>
                    </div>
                </div>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-lock"></i>
                    Accès
                </h3>
            </div>
            <div class="panel-body">
                <?= $form->field($model, 'code')
                    ->label('Code d\'accès')
                    ->hint('Renseignez ce champs si vous souhaitez protéger ce point de vente par un code.')
                ?>
                <?= $form->field($model, 'restricted_access')
                    ->checkbox()
                    ->hint('Cochez cette case si seulement un groupe restreint d\'utilisateurs peuvent accéder à ce point de vente.<br />'
                        . 'Dans le cas des boîtes à pain, il vous est possible de spécifier un commentaire pour chaque utilisateur sélectionné afin de lui renseigner son numéro de boîte ou son code.') ?>
                <div id="users">
                    <?= Html::activeCheckboxList($model, 'users', ArrayHelper::map($users, 'user_id', function ($model_user, $defaultValue) use ($model) {
                        $userModule = UserModule::getInstance();
                        return Html::encode($userModule->getUsernameFromArray($model_user)) . '<br />'
                            . Html::activeTextInput(
                                $model,
                                'users_comment[' . $model_user['user_id'] . ']',
                                [
                                    'class' => 'form-control commentaire',
                                    'placeholder' => 'Commentaire',
                                    'value' => (isset($model->users_comment[$model_user['user_id']])) ? Html::encode($model->users_comment[$model_user['user_id']]) : ''
                                ]);
                    }), ['encode' => false, 'class' => '']) ?>
                </div>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-sticky-note-o"></i>
                    Facturation
                </h3>
            </div>
            <div class="panel-body">
                <?= $form->field($model, 'id_user', [
                    'template' => '{label} <a href="' . Yii::$app->urlManager->createUrl(['user/create']) . '" class="btn btn-xs btn-default">Nouvel utilisateur <span class="glyphicon glyphicon-plus"></span></a><div>{input}</div>{hint}',
                ])
                    ->dropDownList($userModule->populateUserDropdownList(), ['class' => 'select2'])
                    ->hint('Utilisateur au nom duquel les factures de ce point de vente seront éditées'); ?>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-sticky-note-o"></i>
                    Génération des bons de livraison
                </h3>
            </div>
            <div class="panel-body">
                <div id="delivery-note-generation">
                    <?= $form->field($model, 'button_generate_delivery_note_point_sale')->checkbox() ?>
                    <?= $form->field($model, 'button_generate_delivery_note_each_user')->checkbox() ?>
                </div>
            </div>
        </div>

        <?php if ($distributionModule->getExportManager()->isEnabled(ExportManager::SHOPPING_CART_LABELS_PDF)): ?>
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">Exports</h3>
                </div>
                <div class="panel-body">
                    <?= $form->field($model, 'exclude_export_shopping_cart_labels')->checkbox(); ?>
                </div>
            </div>
        <?php endif; ?>
    </div>
    <div class="clr"></div>

    <?= $this->render('@backend/views/_include/form_actions.php',[
        'model' => $model,
    ]); ?>

    <?php ActiveForm::end(); ?>
</div>
