Страница 1 из 1

Ошибки версии 1.25.1

СообщениеДобавлено: 08 июл 2018, 16:39
support
Ошибки версии 1.25.1

Re: Ошибки версии 1.25.1

СообщениеДобавлено: 01 авг 2018, 03:58
choi3837
Здравствуйте, при бронировании квартиры следующая проблема:
Необходимо исправить следующие ошибки:
Необходимо заполнить поле «Время заезда».
Необходимо заполнить поле «Время выезда».
таких полей в форме вообще нет.
Тема Basis, даже в вашем демо такая проблема!

Re: Ошибки версии 1.25.1

СообщениеДобавлено: 01 авг 2018, 13:19
Foton
Здравствуйте,
в файле themes\basis\views\modules\booking\views\_form.php
замените:
Код: Выделить всё

<div class="full-multicolumn-first col-md-6 col-sm-6 date_z">
        <?php echo $form->labelEx($model, 'date_start'); ?>

        <?php
        if 
(!$model->date_start) {
            if (issetModule('bookingcalendar') && isset($apartment) && $apartment) {
                if (isset($forceStartDay) && $forceStartDay) {
                    $time = $forceStartDay;
                } else {
                    $time = Bookingcalendar::getFirstFreeDay($apartment->id);
                }
            } else {
                $time = time();
            }

            if (Yii::app()->language != 'ru') {
                $model->date_start = date('m/d/Y', $time);
            } else {
                $model->date_start = date('d.m.Y', $time);
                //$model->date_start = Yii::app()->dateFormatter->formatDateTime($time, 'medium', null);
            }
        }
        if (!$isSimpleForm && $useBookingCalendar) {
            $this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_start',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    //'showAnim'=>'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control',
                //'id' => 'date_start_' . rand(1, 9999)
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        } else {
            $this->widget('application.extensions.FJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_start',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    'showAnim' => 'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control'
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        }

        ?>
        <?php //echo $form->error($model,'date_start'); ?>
    </div>
    <div class="full-multicolumn-first col-md-6 col-sm-6 date_v">
        <?php echo $form->labelEx($model, 'date_end'); ?>
        <?php
        
/* if(!$model->date_end){
          $model->date_end = Yii::app()->dateFormatter->formatDateTime(time()+60*60*24, 'medium', null);
          } */
        if (!$isSimpleForm && $useBookingCalendar) {
            $this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_end',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    //'showAnim'=>'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control',
                //'id' => 'date_end_' . rand(1, 9999)
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        } else {
            $this->widget('application.extensions.FJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_end',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    'showAnim' => 'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control'
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        }

        ?>
        <?php //echo $form->error($model,'date_end');  ?>
    </div>



на:
Код: Выделить всё

<div class="full-multicolumn-first col-md-6 col-sm-6 date_z">
        <?php echo $form->labelEx($model, 'date_start'); ?>

        <?php
        if 
(!$model->date_start) {
            if (issetModule('bookingcalendar') && isset($apartment) && $apartment) {
                if (isset($forceStartDay) && $forceStartDay) {
                    $time = $forceStartDay;
                } else {
                    $time = Bookingcalendar::getFirstFreeDay($apartment->id);
                }
            } else {
                $time = time();
            }

            if (Yii::app()->language != 'ru') {
                $model->date_start = date('m/d/Y', $time);
            } else {
                $model->date_start = date('d.m.Y', $time);
                //$model->date_start = Yii::app()->dateFormatter->formatDateTime($time, 'medium', null);
            }
        }
        if (!$isSimpleForm && $useBookingCalendar) {
            $this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_start',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    //'showAnim'=>'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control',
                //'id' => 'date_start_' . rand(1, 9999)
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        } else {
            $this->widget('application.extensions.FJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_start',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    'showAnim' => 'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control'
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        }

        ?>
        <?php //echo $form->error($model,'date_start'); ?>
    </div>
    <div class="full-multicolumn-second col-md-6 col-sm-6">
        <?php echo $form->labelEx($model, 'time_in'); ?>
        <?php echo $form->dropDownList($model, 'time_in', HBooking::getTimesIn(), array('class' => 'form-control')); ?>
        <?php //echo $form->error($model,'time_in');   ?>
    </div>
</div>
<div class="form-group row">
    <div class="full-multicolumn-first col-md-6 col-sm-6 date_v">
        <?php echo $form->labelEx($model, 'date_end'); ?>
        <?php
        
/* if(!$model->date_end){
          $model->date_end = Yii::app()->dateFormatter->formatDateTime(time()+60*60*24, 'medium', null);
          } */
        if (!$isSimpleForm && $useBookingCalendar) {
            $this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_end',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    //'showAnim'=>'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control',
                //'id' => 'date_end_' . rand(1, 9999)
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        } else {
            $this->widget('application.extensions.FJuiDatePicker', array(
                'model' => $model,
                'attribute' => 'date_end',
                'range' => 'eval_period',
                'language' => Yii::app()->controller->datePickerLang,
                'options' => array(
                    'showAnim' => 'fold',
                    'dateFormat' => Booking::getJsDateFormat(),
                    'minDate' => 'new Date()',
                ),
                'htmlOptions' => array(
                    'readonly' => 'true',
                    'class' => 'form-control'
                ),
            ));
            echo '<i class="fa fa-calendar" aria-hidden="true"></i>';
        }

        ?>
        <?php //echo $form->error($model,'date_end');  ?>
    </div>
    <div class="full-multicolumn-second col-md-6 col-sm-6">
        <?php echo $form->labelEx($model, 'time_out'); ?>
        <?php echo $form->dropDownList($model, 'time_out', HBooking::getTimesOut(), array('class' => 'form-control')); ?>
        <?php //echo $form->error($model,'time_out');  ?>
    </div>


Re: Ошибки версии 1.25.1

СообщениеДобавлено: 02 авг 2018, 05:07
choi3837
1 ошибка:
При бронировании квартиры и подтверждении ее же в админ панеле на определенный срок, почему то не блокируются даты и присутствует возможность забронировать на то же время одну и ту же квартиру.
2 ошибка: в админ панеле при удалении брони не чистится "календарь бронирования", то есть удаленные брони на нем все еще присутствует, чистка кэша не помогает.
Тема Basis. Версия движка Open Real Estate PRO V1.25.1

Re: Ошибки версии 1.25.1

СообщениеДобавлено: 02 авг 2018, 15:35
Foton
Здравствуйте!
Спасибо за сообщение, проверим и напишем решение.

Re: Ошибки версии 1.25.1

СообщениеДобавлено: 04 авг 2018, 21:42
Xpycm
Спасибо, что не забываете сообщать нам об ошибках в продукте. Это очень важно для нас.

1) В файле themes\название_используемой_темы\views\modules\booking\views\_form.php
в вызове виджета:
Код: Выделить всё
$this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array( 

до:
Код: Выделить всё
)); 


вставьте:
Код: Выделить всё
'showDayForId' => (isset($apartment) && $apartment) ? $apartment->id null


В этом файле два таких вызова.
В итоге должно выглядеть примерно так:

Код: Выделить всё
$this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array(
    
'model' => $model,
    
'attribute' => 'date_start',
    
'range' => 'eval_period',
    
'language' => Yii::app()->controller->datePickerLang,
    
'options' => array(
        
//'showAnim'=>'fold',
        
'dateFormat' => Booking::getJsDateFormat(),
        
'minDate' => 'new Date()',
    ),
    
'htmlOptions' => array(
        
'readonly' => 'true',
        
'class' => 'form-control',
    
//'id' => 'date_start_' . rand(1, 9999)
    
),
    
'showDayForId' => (isset($apartment) && $apartment) ? $apartment->id null,
)); 


и

Код: Выделить всё
$this->widget('application.modules.bookingcalendar.extensions.FFJuiDatePicker', array(
    
'model' => $model,
    
'attribute' => 'date_end',
    
'range' => 'eval_period',
    
'language' => Yii::app()->controller->datePickerLang,
    
'options' => array(
        
//'showAnim'=>'fold',
        
'dateFormat' => Booking::getJsDateFormat(),
        
'minDate' => 'new Date()',
    ),
    
'htmlOptions' => array(
        
'readonly' => 'true',
        
'class' => 'form-control',
    
//'id' => 'date_end_' . rand(1, 9999)
    
),
    
'showDayForId' => (isset($apartment) && $apartment) ? $apartment->id null,
)); 


2) У нас никогда не было такой связи: при удалении заявки удаляется запись из календаря бронирования.
Это связано с тем, что функционал продукта разрабатывается с учётом того как нужно большинству пользователей.
Занятые даты устанавливаются или удаляются вручную при редактировании объявления владельцем или администратором во вкладке "Дополнительно".