_form.php 5.7 KB
<?php
    
    use kartik\select2\Select2;
    use yii\bootstrap\Html;
    use yii\helpers\Url;
    use yii\web\JsExpression;
    use yii\widgets\ActiveForm;
    
    /**
     * @var \yii\web\View              $this
     * @var \artbox\order\models\Order $model
     * @var array                      $labels
     * @var array                      $deliveries
     * @var array                      $payments
     * @var ActiveForm                 $form
     */
?>

<div class="order-form">
    
    <?php $form = ActiveForm::begin(); ?>
    
    <?php
        //        if ($model->isNewRecord) {
        //            echo $form->field($model, 'user_id')
        //                      ->textInput();
        //        }
    ?>
    
    <?= $form->field($model, 'name')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'phone')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'email')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'city')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'address')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'comment')
             ->textarea() ?>
    
    <?= $form->field($model, 'label_id')
             ->dropDownList($labels) ?>
    
    <?= $form->field($model, 'delivery_id')
             ->dropDownList($deliveries) ?>
    
    <?= $form->field($model, 'payment_id')
             ->dropDownList($payments) ?>
  
  <div class="ln_solid"></div>
  
  <div class="order-product-container">
    <div class="row">
      <div class="col-md-8">
          <?php
              echo Select2::widget(
                  [
                      'name'          => 'add-to-order',
                      'options'       => [
                          'placeholder' => \Yii::t('order', 'Select product'),
                      ],
                      'pluginOptions' => [
                          'allowClear'         => true,
                          'minimumInputLength' => 3,
                          'language'           => [
                              'errorLoading' => new JsExpression(
                                  "function() {return '" . \Yii::t('order', 'Waiting for results') . "'; }"
                              ),
                          ],
                          'ajax'               => [
                              'url'      => Url::to([ 'product-list' ]),
                              'dataType' => 'json',
                              'data'     => new JsExpression('function(params) { return {q:params.term}; }'),
                          ],
                          'escapeMarkup'       => new JsExpression('function (markup) { return markup; }'),
                          'templateResult'     => new JsExpression('function(city) { return city.text; }'),
                          'templateSelection'  => new JsExpression('function (city) { return city.text; }'),
                      ],
                      'id'            => 'add-to-order',
                  ]
              );
          ?>
      </div>
      <div class="col-md-3">
          <?php
              echo Html::textInput(
                  'count-to-order',
                  null,
                  [
                      'class' => 'form-control',
                      'id'    => 'count-to-order',
                  ]
              );
          ?>
      </div>
      <div class="col-md-1">
          <?php
              echo Html::a(
                  Html::icon(
                      'plus-circle',
                      [
                          'prefix' => 'fa fa-',
                      ]
                  ),
                  '#',
                  [
                      'class' => 'variant-to-order',
                  ]
              );
          ?>
      </div>
    </div>
    <div class="ln_solid"></div>
    <div id="order-product-pjax" style="position: relative;">
      <div class="row strong">
        <div class="col-md-4">
            <?php
                echo Html::tag('strong', \Yii::t('order', 'Product'));
            ?>
        </div>
        <div class="col-md-4">
            <?php
                echo Html::tag('strong', \Yii::t('order', 'Price'));
            ?>
        </div>
        <div class="col-md-4">
            <?php
                echo Html::tag('strong', \Yii::t('order', 'Count'));
            ?>
        </div>
      </div>
      <div id="product-rows">
          <?php
              if (!$model->isNewRecord) {
                  $sum = 0;
                  foreach ($model->orderProducts as $index => $orderProduct) {
                      $sum += ( $orderProduct->count * $orderProduct->price );
                      echo $this->render(
                          '_order_product',
                          [
                              'orderProduct' => $orderProduct,
                              'price'        => $orderProduct->price,
                              'index'        => $index,
                              'variant'      => $orderProduct->variant,
                              'form'         => $form,
                          ]
                      );
                  }
    
              }
          ?>

      </div>
        <?php if (!$model->isNewRecord) {
            echo( " <div class='sum_all'>Всего <p>" . $sum . "</p></div>" );
        } ?>
    </div>
  </div>
  
  <div class="ln_solid"></div>
  
  <div class="form-group">
      <?= Html::submitButton(
          $model->isNewRecord ? Yii::t('order', 'Create') : Yii::t('order', 'Update'),
          [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]
      ) ?>
  </div>
    
    <?php ActiveForm::end(); ?>

</div>