<?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 common\helpers\GlobalParam;
use domain\Distribution\Distribution\DistributionModule;
use domain\Distribution\Distribution\ExportManager;
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;

$userCurrent = GlobalParam::getCurrentUser();
$userModule = UserModule::getInstance();
$producerModule = ProducerModule::getInstance();
$distributionModule = DistributionModule::getInstance();

?>

<div class="user-form" id="app-user-form">

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

    <div class="col-md-8 col-no-padding-left">
        <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, 'type')
                    ->dropDownList($userModule->getTypeChoicesArray(), [
                        'v-model' => 'type'
                    ]); ?>
                <?= $form->field($model, 'name_legal_person', ['options' => ['v-show' => "type == 'legal-person'"]])->textInput() ?>
                <?= $form->field($model, 'lastname')->textInput() ?>
                <?= $form->field($model, 'name')->textInput() ?>
                <?= $form->field($model, 'phone')->textInput() ?>
                <?= $form->field($model, 'email')->textInput() ?>
                <?php if(!$model->email): ?>
                    <?= $form->field($model, 'send_mail_welcome')->checkbox() ?>
                <?php endif; ?>
                <?= $form->field($model, 'email_sending_invoicing_documents')
                    ->textInput()
                    ->hint("Utilisé pour l'envoi des documents (devis, bons de livraisons et factures)")
                ?>
                <?= $form->field($model, 'address')->textarea() ?>
            </div>
        </div>

        <?php if($userModule->getAuthorizationChecker()->isGrantedAsAdministrator($userCurrent)): ?>
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">
                        <i class="fa fa-lock"></i>
                        Mot de passe
                    </h3>
                </div>
                <div class="panel-body">
                    <?= $form->field($model, 'password_new')->passwordInput(['autocomplete' => 'new-password']) ?>
                </div>
            </div>
        <?php endif; ?>

        <?php if($pointsSaleArray && count($pointsSaleArray) > 0): ?>
        <div class="panel panel-default panel-point-sales">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-map-marker"></i>
                    Points de vente
                </h3>
            </div>
            <div class="panel-body">
                <?= $form->field($model, 'points_sale')->checkboxlist(
                    ArrayHelper::map($pointsSaleArray, 'id', function ($pointSale) use ($model) {
                        $commentUserPointSale = isset($pointSale->userPointSale[0]) ? $pointSale->userPointSale[0]->comment : '';
                        $html = Html::encode($pointSale->name);
                        if ($pointSale->restricted_access) {
                            $html .= '<input type="text" placeholder="Commentaire" class="form-control" name="User[comment_point_sale_' . $pointSale->id . ']" value="' . (($model->id) ? Html::encode($commentUserPointSale) : '') . '" />';
                        }
                        return $html;
                    }), [
                    'encode' => false
                ]);
                ?>
            </div>
        </div>
        <?php endif; ?>

        <?php if($userGroupsArray && count($userGroupsArray) > 0): ?>
        <div class="panel panel-default panel-user-groups">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-users"></i>
                    Groupes
                </h3>
            </div>
            <div class="panel-body">
            <?= $form->field($model, 'user_groups')->checkboxlist(
                ArrayHelper::map($userGroupsArray, 'id', function ($userGroup) use ($model) {
                    return Html::encode($userGroup->name);
                }), [
                'encode' => false
            ]);
            ?>
            </div>
        </div>
        <?php endif; ?>

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

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

    <div class="col-md-4">
        <div class="panel panel-default panel-newsletter">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-paper-plane"></i>
                    Infolettres
                </h3>
            </div>
            <div class="panel-body">
                <?= $form->field($model, 'newsletter')->widget(Toggle::class,
                    [
                        'options' => [
                            'data-id' => $model->id,
                            'data-on' => 'Oui',
                            'data-off' => 'Non',
                        ],
                    ]
                ); ?>
                <?php if($userModule->getAuthorizationChecker()->isGrantedAsAdministrator($userCurrent)): ?>
                    <?= $form->field($model, 'newsletter_souke')->widget(Toggle::class,
                        [
                            'options' => [
                                'data-id' => $model->id,
                                'data-on' => 'Oui',
                                'data-off' => 'Non',
                            ],
                        ]
                    ); ?>
                <?php endif; ?>
                <?= $form->field($model, 'problem_receiving_emails')->widget(Toggle::class,
                    [
                        'options' => [
                            'data-id' => $model->id,
                            'data-on' => 'Oui',
                            'data-off' => 'Non',
                            'data-onstyle' => 'danger',
                            'data-offstyle' => 'default',
                        ],
                    ]
                ); ?>
                <?php if($userModule->getAuthorizationChecker()->isGrantedAsAdministrator($userCurrent)): ?>
                    <?= $form->field($model, 'note_emails')->textarea(['rows' => 7]); ?>
                <?php endif; ?>
            </div>
        </div>

        <div class="panel panel-default panel-newsletter">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <i class="fa fa-exclamation-triangle"></i>
                    Alerte confiance
                </h3>
            </div>
            <div class="panel-body">
                <?= $form->field($model, 'trust_alert')->widget(Toggle::class,
                    [
                        'options' => [
                            'data-id' => $model->id,
                            'data-on' => 'Oui',
                            'data-off' => 'Non',
                            'data-onstyle' => 'danger',
                            'data-offstyle' => 'default',
                        ],
                    ]
                )->hint('Si activé, le nom du client sera mis en avant dans la liste des commandes'); ?>
                <?= $form->field($model, 'trust_alert_comment')->textarea(['rows' => 7]); ?>
            </div>
        </div>

        <?php if (
            $distributionModule->getExportManager()->isEnabled(ExportManager::SHOPPING_CART_LABELS_PDF)
            || $producerModule->getSolver()->getConfig('option_export_evoliz')): ?>
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">
                        <i class="fa fa-download"></i>
                        Exports
                    </h3>
                </div>
                <div class="panel-body">
                    <?php if($distributionModule->getExportManager()->isEnabled(ExportManager::SHOPPING_CART_LABELS_PDF)): ?>
                        <?= $form->field($model, 'exclude_export_shopping_cart_labels')->checkbox(); ?>
                    <?php endif; ?>
                    <?php if ($producerModule->getSolver()->getConfig('option_export_evoliz')): ?>
                        <?= $form->field($model, 'evoliz_code')->textInput() ?>
                    <?php endif; ?>
                </div>
            </div>
        <?php endif; ?>
    </div>

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