$data = json_decode(Yii::$app->request->getRawBody(), true);
$model = BouquetComposition::findOne($data['bouquetId']);
+ $cost = [];
+ $markup = [];
+ foreach (BouquetComposition::getRegions() as $region_id) {
+ $cost[$region_id] = round($model->getBouquetCost($region_id, $data, true));
+ $markup[$region_id] = round($model->getBouquetCostMarkup($region_id, $data, true), 2);
+ }
+
return [
'selfcost' => round($model->getSelfCost($data), 2),
- 'cost' => [
- 52 => round($model->getBouquetCost(52, $data, true)),
- 77 => round($model->getBouquetCost(77, $data, true)),
- ],
- 'markup' => [
- 52 => round($model->getBouquetCostMarkup(52, $data, true), 2),
- 77 => round($model->getBouquetCostMarkup(77, $data, true), 2),
- ]
+ 'cost' => $cost,
+ 'markup' => $markup,
];
}
*/
class BouquetComposition extends ActiveRecord
{
+ const REGION_NN = 52;
+ const REGIONO_MSK = 77;
+ const PROCENT_30 = 0.3;
+
+ public static function getRegions() {
+ return [
+ self::REGION_NN,
+ self::REGIONO_MSK
+ ];
+ }
+
public const PHOTO_TYPE = 'image';
public const VIDEO_TYPE = 'video';
public const PHOTO_BOUQUET = 'bouquet/photo_bouquet';
</div>
<strong style="display: inline-block; font-size: 1.1rem;" class="mb-2">Нижегородская обл.</strong><br>
<p class="mb-1"><strong>Себестоимость:</strong> <span class="selfcost-value"><?= round($selfCost ?? 0) ?></span> ₽</p>
- <p class="mb-1"><strong>Наценка:</strong> +30% / +<span class="markup-value"><?= round(0.3 * ($selfCost ?? 0)) ?></span>₽</p>
- <p class="mb-0"><strong>Цена:</strong> <input type="number" name="cost-value[52]" class="cost-value region52" value="<?= round($cost[52]) ?>"
- min="<?= round(1.3 * ($selfCost ?? 0)) ?>" step="1" />₽. +<span class="markup-cost-value region52"><?= round($markUp[52], 2) ?></span>%</p>
+ <p class="mb-1"><strong>Наценка:</strong> +30% / +<span class="markup-value"><?= round(BouquetComposition::PROCENT_30 * ($selfCost ?? 0)) ?></span>₽</p>
+ <p class="mb-0"><strong>Цена:</strong> <input type="number" name="cost-value[52]" class="cost-value region52" value="<?= round($cost[BouquetComposition::REGION_NN]) ?>"
+ min="<?= round((1 + BouquetComposition::PROCENT_30) * ($selfCost ?? 0)) ?>" step="1" />₽. +<span class="markup-cost-value region52"><?= round($markUp[BouquetComposition::REGION_NN], 2) ?></span>%</p>
</div>
</div>
</div>
<strong style="display: inline-block; font-size: 1.1rem;" class="mb-2">Московская обл.</strong><br>
<p class="mb-1"><strong>Себестоимость:</strong> <span class="selfcost-value"><?= round($selfCost ?? 0) ?></span> ₽</p>
- <p class="mb-1"><strong>Наценка:</strong> +30% / +<span class="markup-value"><?= round(0.3 * ($selfCost ?? 0)) ?></span>₽</p>
- <p class="mb-0"><strong>Цена:</strong> <input type="number" name="cost-value[77]" class="cost-value region77" value="<?= round($cost[77]) ?>"
- min="<?= round(1.3 * ($selfCost ?? 0)) ?>" step="1" />₽. +<span class="markup-cost-value region77"><?= round($markUp[77], 2) ?></span>%</p>
+ <p class="mb-1"><strong>Наценка:</strong> +30% / +<span class="markup-value"><?= round(BouquetComposition::PROCENT_30 * ($selfCost ?? 0)) ?></span>₽</p>
+ <p class="mb-0"><strong>Цена:</strong> <input type="number" name="cost-value[77]" class="cost-value region77" value="<?= round($cost[BouquetComposition::REGIONO_MSK]) ?>"
+ min="<?= round((1 + BouquetComposition::PROCENT_30) * ($selfCost ?? 0)) ?>" step="1" />₽. +<span class="markup-cost-value region77"><?= round($markUp[BouquetComposition::REGIONO_MSK], 2) ?></span>%</p>
</div>
</div>
<strong>Нижегородская обл.</strong>
<div class='self-cost pt-3' style='display: flex; gap: 10px;'>
Себестоимость: <?= round($model->getSelfCost()) ?>₽<br>
- Наценка: +30% / +<?= round(0.3 * $model->getSelfCost()) ?>₽<br>
- Цена: <?= round($model->getBouquetCost(52)) ?>₽. +<?= round($model->getBouquetCostMarkup(52), 2) ?>%<br>
+ Наценка: +30% / +<?= round(BouquetComposition::PROCENT_30 * $model->getSelfCost()) ?>₽<br>
+ Цена: <?= round($model->getBouquetCost(BouquetComposition::REGION_NN)) ?>₽. +<?= round($model->getBouquetCostMarkup(BouquetComposition::REGION_NN), 2) ?>%<br>
</div>
</div>
</div>
<strong>Московская обл.</strong>
<div class='self-cost pt-3' style='display: flex; gap: 10px;'>
Себестоимость: <?= round($model->getSelfCost()) ?>₽<br>
- Наценка: +30% / +<?= round(0.3 * $model->getSelfCost()) ?>₽<br>
- Цена: <?= round($model->getBouquetCost(77)) ?>₽. +<?= round($model->getBouquetCostMarkup(77), 2) ?>%<br>
+ Наценка: +30% / +<?= round(BouquetComposition::PROCENT_30 * $model->getSelfCost()) ?>₽<br>
+ Цена: <?= round($model->getBouquetCost(BouquetComposition::REGIONO_MSK)) ?>₽. +<?= round($model->getBouquetCostMarkup(BouquetComposition::REGIONO_MSK), 2) ?>%<br>
</div>
</div>
<div class="col-md-4">
<div><strong>Нижегородская обл.</strong></div>
<div>
Себестоимость: " . round($model->getSelfCost()) . "₽<br>
- Наценка: +30% / +" . round(0.3 * $model->getSelfCost()) . "₽<br>
- Цена: " . round($model->getBouquetCost(52)) . "₽. +" . round($model->getBouquetCostMarkup(52), 2) . "%<br>
+ Наценка: +30% / +" . round(BouquetComposition::PROCENT_30 * $model->getSelfCost()) . "₽<br>
+ Цена: " . round($model->getBouquetCost(BouquetComposition::REGION_NN)) . "₽. +" . round($model->getBouquetCostMarkup(BouquetComposition::REGION_NN), 2) . "%<br>
</div>
</div>
<div class='self-cost pt-3'>
<div><strong>Московская обл.</strong></div>
<div>
Себестоимость: " . round($model->getSelfCost()) . "₽<br>
- Наценка: +30% / +" . round(0.3 * $model->getSelfCost()) . "₽<br>
- Цена: " . round($model->getBouquetCost(77)) . "₽. +" . round($model->getBouquetCostMarkup(77), 2) . "%<br>
+ Наценка: +30% / +" . round(BouquetComposition::PROCENT_30 * $model->getSelfCost()) . "₽<br>
+ Цена: " . round($model->getBouquetCost(BouquetComposition::REGIONO_MSK)) . "₽. +" . round($model->getBouquetCostMarkup(BouquetComposition::REGIONO_MSK), 2) . "%<br>
</div>
</div>
</div>
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
+use yii_app\records\BouquetComposition;
use yii_app\records\Products1c;
use yii_app\records\Products1cNomenclature;
<div class="col-md-8">
<?php $form = ActiveForm::begin(['id' => 'dual-list-form']); ?>
<div class="row mb-5"></div>
+ <?php
+ $cost = [];
+ $markup = [];
+ foreach (BouquetComposition::getRegions() as $region_id) {
+ $cost[$region_id] = $model->getBouquetCost($region_id);
+ $markup[$region_id] = $model->getBouquetCostMarkup($region_id);
+ }
+ ?>
<?= $this->render('_product_edit', [
'availableItems' => $availableItems,
'selectedItems' => $selectedItems,
'isCreate' => false,
'listContainerSize' => [],
'selfCost' => $model->getSelfCost(),
- 'cost' => [ 52 => $model->getBouquetCost(52), 77 => $model->getBouquetCost(77)],
- 'markUp' => [ 52 => $model->getBouquetCostMarkup(52), 77 => $model->getBouquetCostMarkup(77)],
+ 'cost' => $cost,
+ 'markUp' => $markup,
]); ?>
<?php ActiveForm::end(); ?>
</div>
\ No newline at end of file