You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

513 lines
29KB

  1. <?php
  2. /**
  3. * Copyright La boîte à pain (2018)
  4. *
  5. * contact@opendistrib.net
  6. *
  7. * Ce logiciel est un programme informatique servant à aider les producteurs
  8. * à distribuer leur production en circuits courts.
  9. *
  10. * Ce logiciel est régi par la licence CeCILL soumise au droit français et
  11. * respectant les principes de diffusion des logiciels libres. Vous pouvez
  12. * utiliser, modifier et/ou redistribuer ce programme sous les conditions
  13. * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
  14. * sur le site "http://www.cecill.info".
  15. *
  16. * En contrepartie de l'accessibilité au code source et des droits de copie,
  17. * de modification et de redistribution accordés par cette licence, il n'est
  18. * offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
  19. * seule une responsabilité restreinte pèse sur l'auteur du programme, le
  20. * titulaire des droits patrimoniaux et les concédants successifs.
  21. *
  22. * A cet égard l'attention de l'utilisateur est attirée sur les risques
  23. * associés au chargement, à l'utilisation, à la modification et/ou au
  24. * développement et à la reproduction du logiciel par l'utilisateur étant
  25. * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
  26. * manipuler et qui le réserve donc à des développeurs et des professionnels
  27. * avertis possédant des connaissances informatiques approfondies. Les
  28. * utilisateurs sont donc invités à charger et tester l'adéquation du
  29. * logiciel à leurs besoins dans des conditions permettant d'assurer la
  30. * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
  31. * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
  32. *
  33. * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
  34. * pris connaissance de la licence CeCILL, et que vous en avez accepté les
  35. * termes.
  36. */
  37. use common\helpers\Dropdown;
  38. use common\helpers\GlobalParam;
  39. use common\logic\Distribution\Distribution\Module\DistributionModule;
  40. use common\logic\Distribution\Distribution\Service\ExportManager;
  41. use common\logic\Feature\Feature\Feature;
  42. use common\logic\Feature\Feature\FeatureModule;
  43. use common\logic\User\User\Module\UserModule;
  44. use common\logic\User\UserGroup\Module\UserGroupModule;
  45. use yii\helpers\Html;
  46. use yii\widgets\ActiveForm;
  47. use common\logic\Producer\Producer\Model\Producer;
  48. use common\logic\Config\TaxRate\Model\TaxRate;
  49. use common\logic\Document\Document\Model\Document;
  50. use yii\helpers\ArrayHelper;
  51. \backend\assets\VuejsProducerUpdateAsset::register($this);
  52. $userModule = UserModule::getInstance();
  53. $userGroupModule = UserGroupModule::getInstance();
  54. $distributionExportManager = DistributionModule::getInstance()->getExportManager();
  55. $featureChecker = FeatureModule::getInstance()->getChecker();
  56. $userCurrent = GlobalParam::getCurrentUser();
  57. $this->setTitle('Paramètres');
  58. $this->addBreadcrumb($this->getTitle());
  59. ?>
  60. <script>
  61. var appInitValues = {
  62. isAdmin: <?= (int)$userModule->getAuthorizationChecker()->isGrantedAsAdministrator($userCurrent) ?>
  63. };
  64. </script>
  65. <div class="user-update" id="app-producer-update">
  66. <div id="nav-params">
  67. <a v-for="section in sectionsArray" v-if="!section.isAdminSection || (section.isAdminSection && isAdmin)"
  68. :class="'btn '+((currentSection == section.name) ? 'btn-primary' : 'btn-default')"
  69. @click="changeSection(section)" :href="'#'+section.name">
  70. {{ section.nameDisplay }}
  71. </a>
  72. </div>
  73. <div class="user-form">
  74. <?php $form = ActiveForm::begin([
  75. 'enableClientValidation' => false,
  76. ]); ?>
  77. <div>
  78. <div v-show="currentSection == 'general'" class="panel panel-default">
  79. <div class="panel-body">
  80. <h4>Accès</h4>
  81. <?= $form->field($model, 'active')
  82. ->dropDownList(Dropdown::noYesChoices())
  83. ->label('En ligne')
  84. ->hint('Activez cette option pour rendre votre espace visible à vos clients.'); ?>
  85. <?= $form->field($model, 'code')->hint("Saisissez ce champs si vous souhaitez protéger l'accès à votre espace par un code, sinon laissez-le vide.<br />"
  86. . "Ce code est à communiquer à vos clients pour qu'ils puissent ajouter votre espace à leurs favoris.<br />"
  87. . "<a href=\"" . Yii::$app->urlManager->createUrl(['communicate/index']) . "\">Cliquez ici</a> pour télécharger un mode d'emploi comprenant ce code à distribuer à vos clients.") ?>
  88. <h4>Général</h4>
  89. <?= $form->field($model, 'name') ?>
  90. <?= $form->field($model, 'type') ?>
  91. <?php /*$form->field($model, 'description')
  92. ->textarea(['rows' => 4])
  93. ->hint('Affiché sur la page d\'accueil')*/ ?>
  94. <?= $form->field($model, 'description')->widget(letyii\tinymce\Tinymce::class, [
  95. 'options' => [
  96. 'id' => 'testid',
  97. ],
  98. 'configs' => [ // Read more: https://www.tiny.cloud/docs/tinymce/6/full-featured-open-source-demo/
  99. //'plugins' => 'preview importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap quickbars emoticons accordion' ,
  100. 'plugins' => 'preview searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link lists wordcount help' ,
  101. ]
  102. ])->hint('Affiché sur la page d\'accueil') ; ?>
  103. <?= $form->field($model, 'address')
  104. ->textarea(['rows' => 4]) ?>
  105. <?= $form->field($model, 'postcode') ?>
  106. <?= $form->field($model, 'city') ?>
  107. <h4>Apparence</h4>
  108. <?= $form->field($model, 'background_color_logo') ?>
  109. <?= $form->field($model, 'logoFile')->fileInput() ?>
  110. <?php
  111. if (strlen($model->logo)) {
  112. echo '<img src="' . Yii::$app->urlManagerProducer->getHostInfo() . '/' . Yii::$app->urlManagerProducer->baseUrl . '/uploads/' . $model->logo . '" width="200px" /><br />';
  113. echo '<input type="checkbox" name="delete_logo" id="delete_logo" /> <label for="delete_logo">Supprimer le logo</label><br /><br />';
  114. }
  115. ?>
  116. <?= $form->field($model, 'photoFile')->fileInput()->hint('Format idéal : 900 x 150 px') ?>
  117. <?php
  118. if (strlen($model->photo)) {
  119. echo '<img src="' . Yii::$app->urlManagerProducer->getHostInfo() . '/' . Yii::$app->urlManagerProducer->baseUrl . '/uploads/' . $model->photo . '" width="400px" /><br />';
  120. echo '<input type="checkbox" name="delete_photo" id="delete_photo" /> <label for="delete_photo">Supprimer la photo</label><br /><br />';
  121. }
  122. ?>
  123. <?= $form->field($model, 'behavior_home_point_sale_day_list')
  124. ->dropDownList([
  125. Producer::BEHAVIOR_HOME_POINT_SALE_DAY_LIST_WEEK => 'Jours de la semaine',
  126. Producer::BEHAVIOR_HOME_POINT_SALE_DAY_LIST_INCOMING_DISTRIBUTIONS => 'Distributions à venir',
  127. ]); ?>
  128. <?= $form->field($model, 'option_point_sale_wording') ?>
  129. <h4>Groupes utilisateurs</h4>
  130. <?= $form->field($model, 'id_user_group_default')
  131. ->dropDownList($userGroupModule->getRepository()->populateUserGroupDropdownList()); ?>
  132. </div>
  133. </div>
  134. <div v-show="currentSection == 'tableau-bord'" class="panel panel-default">
  135. <div class="panel-body">
  136. <h4>Tableau de bord administration</h4>
  137. <?= $form->field($model, 'option_dashboard_number_distributions')
  138. ->dropDownList(Dropdown::numberChoices(3, 30, false, '', 3)); ?>
  139. <?= $form->field($model, 'option_dashboard_date_start')->textInput([
  140. 'class' => 'datepicker form-control'
  141. ]); ?>
  142. <?= $form->field($model, 'option_dashboard_date_end')->textInput([
  143. 'class' => 'datepicker form-control'
  144. ]); ?>
  145. </div>
  146. </div>
  147. <div v-show="currentSection == 'prise-commande'" class="panel panel-default">
  148. <div class="panel-body">
  149. <h4>Horaires</h4>
  150. <?php
  151. $delaysArray = [
  152. 1 => '1 jour',
  153. 2 => '2 jours',
  154. 3 => '3 jours',
  155. 4 => '4 jours',
  156. 5 => '5 jours',
  157. 6 => '6 jours',
  158. 7 => '7 jours',
  159. ];
  160. $deadlinesArray = [
  161. 24 => 'Minuit',
  162. 23 => '23h',
  163. 22 => '22h',
  164. 21 => '21h',
  165. 20 => '20h',
  166. 19 => '19h',
  167. 18 => '18h',
  168. 17 => '17h',
  169. 16 => '16h',
  170. 15 => '15h',
  171. 14 => '14h',
  172. 13 => '13h',
  173. 12 => '12h',
  174. 11 => '11h',
  175. 10 => '10h',
  176. 9 => '9h',
  177. 8 => '8h',
  178. ];
  179. $daysArray = [
  180. 'monday' => 'Lundi',
  181. 'tuesday' => 'Mardi',
  182. 'wednesday' => 'Mercredi',
  183. 'thursday' => 'Jeudi',
  184. 'friday' => 'Vendredi',
  185. 'saturday' => 'Samedi',
  186. 'sunday' => 'Dimanche'
  187. ];
  188. ?>
  189. <div class="row">
  190. <div class="col-md-2">
  191. <strong>Par défaut</strong>
  192. </div>
  193. <div class="col-md-5">
  194. <?= $form->field($model, 'order_delay')
  195. ->dropDownList($delaysArray, ['prompt' => '--'])
  196. ->hint('Si <strong>1 jour</strong> est sélectionné, le client pourra commander jusqu\'à la veille de la production.<br />'
  197. . 'Si <strong>2 jours</strong> est sélectionné, le client pourra commander jusqu\'à l\'avant-veille de la production, etc.'); ?>
  198. </div>
  199. <div class="col-md-5">
  200. <?= $form->field($model, 'order_deadline')
  201. ->dropDownList($deadlinesArray, ['prompt' => '--'])
  202. ->hint('Heure limite jusqu\'à laquelle les clients peuvent commander pour satisfaire le délai de commande.<br />'
  203. . 'Par exemple, si <strong>2 jours</strong> est sélectionné dans le délai de commande, le client devra commander l\'avant-veille de la production avant l\'heure précisée ici.'); ?>
  204. </div>
  205. </div>
  206. <?php foreach ($daysArray as $day => $labelDay): ?>
  207. <div class="row">
  208. <div class="col-md-2">
  209. <strong><?= $labelDay ?></strong>
  210. </div>
  211. <div class="col-md-5">
  212. <?= $form->field($model, 'order_delay_' . $day, [
  213. 'template' => '{input}',
  214. ])->dropDownList($delaysArray, ['prompt' => '--'])->label(''); ?>
  215. </div>
  216. <div class="col-md-5">
  217. <?= $form->field($model, 'order_deadline_' . $day, [
  218. 'template' => '{input}',
  219. ])->dropDownList($deadlinesArray, ['prompt' => '--'])->label(''); ?>
  220. </div>
  221. </div>
  222. <?php endforeach; ?>
  223. <h4>Informations</h4>
  224. <?= $form->field($model, 'order_infos')
  225. ->textarea(['rows' => 6])
  226. ->hint('Affichées au client lors de sa commande') ?>
  227. <?= $form->field($model, 'option_payment_info')
  228. ->textarea(['rows' => 6])
  229. ->hint('Affichées au client à la fin de la prise de commande') ?>
  230. <h4>Tunnel de commande</h4>
  231. <?= $form->field($model, 'option_order_entry_point')
  232. ->dropDownList([
  233. Producer::ORDER_ENTRY_POINT_DATE => 'Date',
  234. Producer::ORDER_ENTRY_POINT_POINT_SALE => 'Point de vente',
  235. ], []); ?>
  236. <?= $form->field($model, 'behavior_order_select_distribution')
  237. ->dropDownList([
  238. Producer::BEHAVIOR_ORDER_SELECT_DISTRIBUTION_CALENDAR => 'Calendrier',
  239. Producer::BEHAVIOR_ORDER_SELECT_DISTRIBUTION_LIST => 'Liste',
  240. ]); ?>
  241. <?= $form->field($model, 'option_delivery')
  242. ->dropDownList(Dropdown::noYesChoices()); ?>
  243. <?php echo $form->field($model, 'option_allow_order_guest')
  244. ->dropDownList(Dropdown::noYesChoices()); ?>
  245. <h4>Notifications</h4>
  246. <?= $form->field($model, 'option_notify_producer_order_summary')
  247. ->dropDownList(Dropdown::noYesChoices()); ?>
  248. <?= $form->field($model, 'option_email_confirm')
  249. ->dropDownList(Dropdown::noYesChoices()); ?>
  250. <?= $form->field($model, 'option_email_confirm_producer')
  251. ->dropDownList(Dropdown::noYesChoices()); ?>
  252. <h4>Divers</h4>
  253. <?php
  254. $choicesWeeksDistributionsActivatedInAdvanceArray = [null => '--'];
  255. for ($i = 1; $i < 13; $i++) {
  256. $choicesWeeksDistributionsActivatedInAdvanceArray[$i] = $i . ' semaine' . (($i > 1) ? 's' : '');
  257. }
  258. ?>
  259. <?= $form->field($model, 'option_weeks_distributions_activated_in_advance')
  260. ->dropDownList($choicesWeeksDistributionsActivatedInAdvanceArray)
  261. ->hint("Attention, les premières semaines doivent être activées manuellement."); ?>
  262. <?= $form->field($model, 'option_order_reference_type')
  263. ->dropDownList([
  264. Producer::ORDER_REFERENCE_TYPE_NONE => '--',
  265. Producer::ORDER_REFERENCE_TYPE_YEARLY => 'Annuelle',
  266. ], []); ?>
  267. <?= $form->field($model, 'option_behavior_cancel_order')
  268. ->dropDownList([
  269. Producer::BEHAVIOR_DELETE_ORDER_DELETE => 'Suppression de la commande',
  270. Producer::BEHAVIOR_DELETE_ORDER_STATUS => 'Passage de la commande en statut "supprimé"',
  271. ], []); ?>
  272. </div>
  273. </div>
  274. <div v-show="currentSection == 'exports'" class="panel panel-default">
  275. <div class="panel-body">
  276. <h4>Exports affichés dans les distributions</h4>
  277. <?= $distributionExportManager->getProducerFormCheckboxes($form, $model) ?>
  278. <h4>Options exports</h4>
  279. <?= $form->field($model, 'option_csv_separator')
  280. ->dropDownList([
  281. ';' => 'Point-virgule (;)',
  282. ',' => 'Virgule (,)'
  283. ], []); ?>
  284. <?= $form->field($model, 'option_export_display_product_reference')
  285. ->dropDownList(Dropdown::noYesChoices()); ?>
  286. <?= $form->field($model, 'option_export_display_column_delivery_note')
  287. ->dropDownList(Dropdown::noYesChoices()); ?>
  288. <?= $form->field($model, 'option_csv_export_all_products')
  289. ->dropDownList(Dropdown::noYesChoices()); ?>
  290. <?= $form->field($model, 'option_csv_export_by_piece')
  291. ->dropDownList(Dropdown::noYesChoices()); ?>
  292. <?php if($featureChecker->isEnabled(Feature::ALIAS_EXPORT_SHOPPING_CART_LABELS_ADVANCED)): ?>
  293. <?= $form->field($model, 'export_shopping_cart_labels_format')
  294. ->dropDownList($distributionExportManager->getGenerator(ExportManager::SHOPPING_CART_LABELS_PDF)->populateDropdownSpecificFormats()); ?>
  295. <?php else: ?>
  296. <?= $form->field($model, 'export_shopping_cart_labels_number_per_column')
  297. ->dropDownList(Dropdown::numberChoices(1, 20)); ?>
  298. <?php endif; ?>
  299. </div>
  300. </div>
  301. <div v-show="currentSection == 'abonnements'" class="panel panel-default">
  302. <div class="panel-body">
  303. <h4>Abonnements</h4>
  304. <?= $form->field($model, 'user_manage_subscription')
  305. ->dropDownList(Dropdown::noYesChoices()); ?>
  306. </div>
  307. </div>
  308. <div v-show="currentSection == 'credit-payment'" class="panel panel-default">
  309. <div class="panel-body">
  310. <h4>Crédit</h4>
  311. <?= $form->field($model, 'credit')
  312. ->dropDownList(Dropdown::noYesChoices())
  313. ->label('Activer le système de Crédit')
  314. ->hint('Le système de Crédit permet à vos clients d\'avoir un compte prépayé sur le site <em>distrib</em>.<br />'
  315. . 'Ils créditent leur compte en vous donnant la somme de leur choix et c\'est ensuite à vous de ' . Html::a('mettre à jour', ['user/index']) . ' leur Crédit en ligne.<br />'
  316. . 'Ceci fait, les clients paient leur commande directement via leur Crédit.'); ?>
  317. <?= $form->field($model, 'credit_functioning')
  318. ->dropDownList([
  319. Producer::CREDIT_FUNCTIONING_OPTIONAL => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_OPTIONAL],
  320. Producer::CREDIT_FUNCTIONING_MANDATORY => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_MANDATORY],
  321. Producer::CREDIT_FUNCTIONING_USER => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_USER],
  322. ], [])->hint(Producer::HINT_CREDIT_FUNCTIONING); ?>
  323. <?= $form->field($model, 'use_credit_checked_default')
  324. ->dropDownList(Dropdown::noYesChoices())
  325. ->hint('Utilisation optionnelle du Crédit.'); ?>
  326. <?= $form->field($model, 'credit_limit_reminder', [
  327. 'template' => '{label}<div class="input-group">{input}<span class="input-group-addon"><span class="glyphicon glyphicon-euro"></span></span></div>{hint}',
  328. ])
  329. ->hint("Une relance est envoyé au client dès que ce seuil est dépassé."); ?>
  330. <?= $form->field($model, 'credit_limit', [
  331. 'template' => '{label}<div class="input-group">{input}<span class="input-group-addon"><span class="glyphicon glyphicon-euro"></span></span></div>{hint}',
  332. ])->hint('Limite de crédit que l\'utilisateur ne pourra pas dépasser. Laisser vide pour permettre un crédit négatif et infini.'); ?>
  333. <?= $form->field($model, 'option_check_by_default_prevent_user_credit')
  334. ->dropDownList(Dropdown::noYesChoices()); ?>
  335. <?php if($featureChecker->isEnabled(Feature::ALIAS_ONLINE_PAYMENT)): ?>
  336. <h4>Paiement en ligne</h4>
  337. <?php if($userModule->getAuthorizationChecker()->isGrantedAsAdministrator($userCurrent)): ?>
  338. <?= $form->field($model, 'online_payment')
  339. ->dropDownList(Dropdown::noYesChoices()); ?>
  340. <?= $form->field($model, 'option_stripe_mode_test')->dropDownList(Dropdown::noYesChoices()); ?>
  341. <?= $form->field($model, 'option_online_payment_type')
  342. ->dropDownList([
  343. 'credit' => 'Alimentation du crédit',
  344. 'order' => 'Paiement à la commande',
  345. ], []); ?>
  346. <?= $form->field($model, 'option_stripe_public_key')->textInput(); ?>
  347. <?= $form->field($model, 'option_stripe_private_key')->textInput(); ?>
  348. <?= $form->field($model, 'option_stripe_endpoint_secret')->textInput(); ?>
  349. <?php endif; ?>
  350. <?= $form->field($model, 'option_online_payment_minimum_amount')
  351. ->hint('Valeur par défaut si non défini : ' . Producer::ONLINE_PAYMENT_MINIMUM_AMOUNT_DEFAULT . ' €')
  352. ->textInput(); ?>
  353. <?php endif; ?>
  354. </div>
  355. </div>
  356. <div v-show="currentSection == 'infos'" class="panel panel-default">
  357. <div class="panel-body">
  358. <h4>Informations légales</h4>
  359. <?= $form->field($model, 'mentions')
  360. ->textarea(['rows' => 15])
  361. ->hint('') ?>
  362. <?= $form->field($model, 'gcs')
  363. ->textarea(['rows' => 15])
  364. ->hint('') ?>
  365. </div>
  366. </div>
  367. <div v-show="currentSection == 'logiciels-caisse'" class="panel panel-default">
  368. <div class="panel-body">
  369. <h4>Tiller</h4>
  370. <?= $form->field($model, 'tiller')
  371. ->dropDownList(Dropdown::noYesChoices())
  372. ->label('Synchroniser avec Tiller'); ?>
  373. <?= $form->field($model, 'tiller_provider_token'); ?>
  374. <?= $form->field($model, 'tiller_restaurant_token'); ?>
  375. </div>
  376. </div>
  377. <div v-show="currentSection == 'facturation'" class="panel panel-default">
  378. <div class="panel-body">
  379. <h4>Facturation</h4>
  380. <?= $form->field($model, 'id_tax_rate_default')
  381. ->dropDownList(ArrayHelper::map(TaxRate::find()->all(), 'id', function ($model) {
  382. return $model->name;
  383. }))
  384. ->label('TVA à appliquer par défaut'); ?>
  385. <?= $form->field($model, 'option_tax_calculation_method')
  386. ->dropDownList(Document::$taxCalculationMethodArray); ?>
  387. <?= $form->field($model, 'option_export_evoliz')->dropDownList(Dropdown::noYesChoices()); ?>
  388. <?php $hintKeywordsPrefix = "Saisissez [ANNEE] pour intégrer l'année courante"; ?>
  389. <?= $form->field($model, 'document_quotation_prefix')->hint($hintKeywordsPrefix); ?>
  390. <?= $form->field($model, 'document_quotation_first_reference'); ?>
  391. <?= $form->field($model, 'document_quotation_duration'); ?>
  392. <?= $form->field($model, 'document_invoice_prefix')->hint($hintKeywordsPrefix);; ?>
  393. <?= $form->field($model, 'document_invoice_first_reference'); ?>
  394. <?= $form->field($model, 'document_delivery_note_prefix')->hint($hintKeywordsPrefix);; ?>
  395. <?= $form->field($model, 'document_delivery_note_first_reference'); ?>
  396. <?= $form->field($model, 'delivery_note_automatic_validation')->dropDownList(Dropdown::noYesChoices()); ?>
  397. <?= $form->field($model, 'option_invoice_only_based_on_delivery_notes')->dropDownList(Dropdown::noYesChoices()); ?>
  398. <?= $form->field($model, 'option_document_width_logo')
  399. ->dropDownList(Dropdown::numberChoices(50, 250, true, 'px', 50)); ?>
  400. <?= $form->field($model, 'document_display_orders_invoice')->dropDownList(Dropdown::noYesChoices()); ?>
  401. <?= $form->field($model, 'document_display_orders_delivery_note')->dropDownList(Dropdown::noYesChoices()); ?>
  402. <?= $form->field($model, 'document_display_prices_delivery_note')->dropDownList(Dropdown::noYesChoices()); ?>
  403. <?= $form->field($model, 'document_display_product_description')->dropDownList(Dropdown::noYesChoices()); ?>
  404. <?= $form->field($model, 'option_document_price_decimals')->dropDownList([
  405. 2 => '2',
  406. 3 => '3'
  407. ]); ?>
  408. <?= $form->field($model, 'option_document_display_price_unit_reference')
  409. ->dropDownList(Dropdown::noYesChoices()); ?>
  410. <?= $form->field($model, 'document_infos_top')
  411. ->textarea(['rows' => 8])
  412. ->hint("Affichées juste en dessous de l'adresse"); ?>
  413. <?= $form->field($model, 'document_infos_bottom')
  414. ->textarea(['rows' => 8]) ?>
  415. <?= $form->field($model, 'document_image_bottomFile')->fileInput()->hint('') ?>
  416. <?php
  417. if (strlen($model->document_image_bottom)) {
  418. echo '<img src="' . Yii::$app->urlManagerProducer->getHostInfo() . '/' . Yii::$app->urlManagerProducer->baseUrl . '/uploads/' . $model->document_image_bottom . '" width="400px" /><br />';
  419. echo '<input type="checkbox" name="delete_document_image_bottom" id="delete_document_image_bottom" /> <label for="delete_document_image_bottom">Supprimer l\'image</label><br /><br />';
  420. }
  421. ?>
  422. <?= $form->field($model, 'document_infos_quotation')
  423. ->textarea(['rows' => 8]) ?>
  424. <?= $form->field($model, 'document_infos_invoice')
  425. ->textarea(['rows' => 8]) ?>
  426. <?= $form->field($model, 'document_infos_delivery_note')
  427. ->textarea(['rows' => 8]) ?>
  428. </div>
  429. </div>
  430. <div v-show="currentSection == 'software'" class="panel panel-default">
  431. <div class="panel-body">
  432. <h4>Opendistrib</h4>
  433. <?php $urlAboutPage = Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/about']); ?>
  434. <?= $form->field($model, 'option_testimony')
  435. ->textarea(['rows' => 7])
  436. ->hint("Écrivez ici votre témoignage concernant l'utilisation du logiciel. Il sera publié sur la page <a href=\"" . $urlAboutPage . "\" target=\"_blanck\">À propos</a> du site."); ?>
  437. <?= $form->field($model, 'option_time_saved')
  438. ->dropDownList([
  439. null => '--',
  440. 0.5 => '30 minutes',
  441. 1 => '1 heure',
  442. 2 => '2 heures',
  443. 3 => '3 heures',
  444. 4 => '4 heures',
  445. 5 => '5 heures',
  446. 6 => '6 heures',
  447. 7 => '7 heures',
  448. 8 => '8 heures',
  449. ])
  450. ->hint("Sélectionnez le temps que vous estimez gagner chaque semaine en utilisant ce logiciel. Cette donnée sera utilisée sur la page <a href=\"" . $urlAboutPage . "\" target=\"_blanck\">À propos</a> du site."); ?>
  451. <?= $form->field($model, 'option_display_message_new_opendistrib_version')
  452. ->dropDownList(Dropdown::noYesChoices()); ?>
  453. </div>
  454. </div>
  455. <div class="form-group form-actions">
  456. <?= Html::submitButton('Mettre à jour', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
  457. </div>
  458. </div>
  459. <?php ActiveForm::end(); ?>
  460. </div>
  461. </div>