|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- <?php
-
- /**
- Copyright Guillaume Bourgeois (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\Feature\Feature\Feature;
- use domain\Feature\Feature\FeatureModule;
- use domain\Order\Order\Order;
- use domain\Order\Order\OrderModule;
- use domain\Producer\Producer\ProducerModule;
- use domain\Setting\SettingModule;
- use domain\Subscription\Subscription\SubscriptionModule;
- use domain\User\User\UserModule;
- use yii\helpers\Html;
-
- $distributionModule = DistributionModule::getInstance();
- $userModule = UserModule::getInstance();
- $orderModule = OrderModule::getInstance();
- $subscriptionModule = SubscriptionModule::getInstance();
- $producerModule = ProducerModule::getInstance();
- $settingModule = SettingModule::getInstance();
- $adminSettingBag = $settingModule->getAdminSettingBag();
- $featureChecker = FeatureModule::getInstance()->getChecker();
-
- $this->setTitle('Tableau de bord');
-
- ?>
- <div class="dashboard-index">
- <div <?php if($featureChecker->isEnabled(Feature::ALIAS_FORUM)): ?>class="col-md-8"<?php endif; ?>>
- <?php if(Yii::$app->request->get('error_products_points_sale')): ?>
- <div class="alert alert-warning">
- Vous devez ajouter <?php if(!$productsCount): ?> des produits<?php endif; ?>
- <?php if(!$productsCount && !$pointsSaleCount): ?> et<?php endif; ?>
- <?php if(!$pointsSaleCount): ?> un ou des points de vente <?php endif; ?>
- avant d'effectuer cette action.
- </div>
- <?php endif; ?>
-
- <?php if(!$productsCount): ?>
- <div class="info-box">
- <span class="info-box-icon bg-yellow"><i class="fa fa-clone"></i></span>
- <div class="info-box-content">
- <span class="info-box-text"><br /><?= Html::a('Ajouter des produits', ['product/create'], ['class' => 'btn btn-default']); ?></span>
- </div>
- </div>
- <?php endif; ?>
-
- <?php if(!$pointsSaleCount): ?>
- <div class="info-box">
- <span class="info-box-icon bg-yellow"><i class="fa fa-map-marker"></i></span>
- <div class="info-box-content">
- <span class="info-box-text"><br /><?= Html::a('Ajouter des points de vente', ['point-sale/create'], ['class' => 'btn btn-default']); ?></span>
- </div>
- </div>
- <?php endif; ?>
-
- <?php if($productsCount && $pointsSaleCount && !count($distributionsArray)): ?>
- <div class="info-box">
- <span class="info-box-icon bg-yellow"><i class="fa fa-calendar"></i></span>
- <div class="info-box-content">
- <span class="info-box-text"><br /><?= Html::a('Ajouter des jours de distribution', ['distribution/index'], ['class' => 'btn btn-default']); ?></span>
- </div>
- </div>
- <?php endif; ?>
-
- <?php if(count($distributionsArray)): ?>
- <div id="distributions">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- Prochaines distributions
- </h3>
- </div>
- <div class="panel-body">
- <!-- distributions -->
- <?php foreach($distributionsArray as $distribution): ?>
- <div class="col-md-6 col-sm-12 col-xs-12">
- <div class="info-box">
- <span class="info-box-icon bg-green date">
- <span class="day"><?= strftime('%A', strtotime($distribution->date)) ?></span>
- <span class="num"><?= date('d', strtotime($distribution->date)) ?></span>
- <span class="month"><?= strftime('%B', strtotime($distribution->date)) ?></span>
- </span>
- <div class="info-box-content">
- <span class="info-box-text">
- <?php if(count($distribution->order)): ?>
- <strong><?= $distribution->countOrders(); ?></strong> COMMANDES
- <?php else: ?>
- AUCUNE COMMANDE
- <?php endif; ?>
- </span>
- <span class="info-box-number"></span>
- <div class="buttons">
- <?= Html::a('<span class="fa fa-eye"></span>', ['distribution/index', 'date' => $distribution->date], ['class' => 'btn btn-default']); ?>
- <?php if(count($distribution->order)): ?>
- <?php
- $exportsEnabledArray = $distributionModule->getExportManager()->getAllEnabled();
- foreach($exportsEnabledArray as $name => $export) {
- echo Html::a('<span class="fa fa-download"></span>', ['distribution/export', 'name' => $name, 'date' => $distribution->date], ['class' => 'btn btn-default', 'title' => $export[0]]).' ';
- }
- ?>
- <?php endif; ?>
- </div>
- </div>
- </div>
- </div>
- <?php endforeach; ?>
- </div>
- </div>
- </div>
- <?php endif; ?>
- </div>
-
- <?php if($featureChecker->isEnabled(Feature::ALIAS_FORUM)): ?>
- <div class="col-md-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- Derniers sujets sur le forum
- </h3>
- </div>
- <div class="panel-body">
- <?php if($forumDiscussionsArray && count($forumDiscussionsArray['data'])): ?>
- <table class="table">
- <?php $forumDiscussionsLimitedArray = array_slice($forumDiscussionsArray['data'], 0, min(3, count($forumDiscussionsArray['data']))); ?>
- <?php foreach($forumDiscussionsLimitedArray as $forumDiscussion): ?>
- <tr>
- <td><?= $forumDiscussion['attributes']['title']; ?></td>
- <td><?= date('d/m à H:i', strtotime($forumDiscussion['attributes']['lastPostedAt'])); ?></td>
- </tr>
- <?php endforeach; ?>
- </table>
- <?php else: ?>
- <p>Aucun sujet sur le forum.</p>
- <?php endif; ?>
- <p>
- <a href="<?= $settingModule->getAdminSettingBag()->get('forumFlarumUrl'); ?>" class="btn btn-default" target="_blank">
- <span class="fa fa-comments"></span>
- Consulter le forum
- </a>
- </p>
- </div>
- </div>
- </div>
- <?php endif; ?>
-
- <div class="clr"></div>
-
- <?php if(is_array($subscriptionsLatestAddedArray) && count($subscriptionsLatestAddedArray)): ?>
-
- <div id="last-subscriptions">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- Derniers abonnements créés/modifiés
- </h3>
- </div>
- <div class="panel-body">
- <table class="table table-condensed table-bordered">
- <thead>
- <tr>
- <th>Date</th>
- <th>Client</th>
- <th>Point de vente</th>
- <th>Produits</th>
- <th>Jours</th>
- <th>Période</th>
- <th></th>
- </tr>
- </thead>
- <tbody>
- <?php foreach($subscriptionsLatestAddedArray as $subscription): ?>
- <tr>
- <td><?= date('d/m/Y à H:i', strtotime($subscription->updated_at ?: $subscription->created_at)); ?></td>
- <td><?= $userModule->getUsername($subscription->user); ?></td>
- <td><?= Html::encode($subscription->pointSale->name); ?></td>
- <td><?= $subscriptionModule->getProductsListAsHtml($subscription); ?></td>
- <td><?= $subscriptionModule->getDaysAsHtml($subscription); ?></td>
- <td><?= $subscriptionModule->getPeriodAsHtml($subscription); ?></td>
- <td>
- <a href="<?= $this->getUrlManager()->createUrl(['subscription/update', 'id' => $subscription->id]) ?>" class="btn btn-default">
- <span class="glyphicon glyphicon-pencil"></span>
- </a>
- </td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="clr"></div>
- <?php endif; ?>
-
- <!-- dernières commandes -->
- <?php if(is_array($ordersArray) && count($ordersArray)): ?>
- <div id="last-orders" class="">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- Commandes à venir
- </h3>
- </div>
- <div class="panel-body">
- <table class="table table-condensed table-bordered">
- <thead>
- <tr>
- <th>Statut</th>
- <th>Origine</th>
- <th>Date</th>
- <th>Client</th>
- <th>Produits</th>
- <th>Point de vente</th>
- <th>Montant</th>
- </tr>
- </thead>
- <tbody>
- <?php foreach($ordersArray as $order): ?>
- <?php $orderModule->initOrder($order); ?>
-
- <tr class="<?= $orderModule->getHistoryClass($order) ; ?>">
- <td class="history">
- <?= $orderModule->getSolver()->getLabelOrderStatus($order, true); ?>
- </td>
- <td class="infos">
- <?= $orderModule->getSolver()->getLabelOrigin($order, true); ?>
- </td>
- <td class="date">
- <div class="block-date">
- <div class="day"><?= strftime('%A', strtotime($order->distribution->date)) ?></div>
- <div class="num"><?= date('d', strtotime($order->distribution->date)) ?></div>
- <div class="month"><?= strftime('%B', strtotime($order->distribution->date)) ?></div>
- </div>
- </td>
- <td>
- <?php if($order->user): ?>
- <a href="<?= Yii::$app->urlManager->createUrl(['user/view', 'id' => $order->user->id]) ?>" target="_blank">
- <?php else: ?>
- <span class="user-without-account">
- <?php endif; ?>
- <?= $orderModule->getOrderUsername($order); ?><br />
- <?php if($order->user): ?></a><?php else: ?></span><?php endif; ?>
-
- <?php if(strlen($order->comment)): ?>
- <div class="comment"><span class="glyphicon glyphicon-comment"></span> <?= nl2br(Html::encode($order->comment)) ; ?></div>
- <?php endif; ?>
- </td>
- <td><?= $orderModule->getCartSummary($order); ?></td>
- <td><?= $orderModule->getPointSaleSummary($order) ; ?></td>
- <td><?= $orderModule->getOrderAmountWithTax($order, Order::AMOUNT_TOTAL, true) ; ?></td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <?php endif; ?>
- </div>
|