• Как вбивать дату и время в разных инпутах, но сохранять все в одной поле таблицы?

    @Silverviql Автор вопроса
    все решил ) чет туплю $srok_time = date("Y-m-d", strtotime($model->srok));
  • Как вбивать дату и время в разных инпутах, но сохранять все в одной поле таблицы?

    @Silverviql Автор вопроса
    Максим Тимофеев, а как теперь у срока обновлять дату ?) у меня одна и та же форма но разные экшены вызывается в зависимости что вызвано.
    То есть создание все нормально работает. Но теперь при редактирование надо если пользователь изменил дату а время оставил чтобы срок который был например
    2018-06-08 20:10:00 изменился на введенную дату а время не поменялось то есть
    если я ввел дату 2018-09-08 то время осталось то же 20:10:00 и наоборот ,если я время поменял, дата не поменялась.
    В модели я получаю срок полностью 2018-06-08 20:10:00 как при условие что если
    if(Yii::$app->request->post('Zakaz')['srok_time'] != null ){
                    $model->srok =старая дата.' '.Yii::$app->request->post('Zakaz')['srok_time'];
                }
  • Сервисы с виджетом для звонка с сайта на yii2?

    @Silverviql Автор вопроса
    а как сам звонок реализовать? ставить астерикс настраивать и через него звонить ? это же слишком геморойно.
  • Как вбивать дату и время в разных инпутах, но сохранять все в одной поле таблицы?

    @Silverviql Автор вопроса
    Максим Тимофеев, Ну меня для создание обновления данных отдельные экшены с дополнительный функционалом, вызов уведомления, вызов создание нового клиента . Отправка сообщение в телеграм через бот ( который не работает из за ркн). Поэтому я запихнул туда.
    public function actionCreate()
        {
            $model = new Zakaz();
            $client = new Client();
            $client->scenario = Client::SCENARIO_CREATE;
            $telegram = new Telegram();
            $tag = new ZakazTag();
            $financy = new Financy();
            $notification = new Notification();
    
            if ($model->load(Yii::$app->request->post()) && $client->load(Yii::$app->request->post())) {
                if(Yii::$app->request->post('Zakaz')['srok_time'] == null){
                    $model->srok = Yii::$app->request->post('Zakaz')['srok_date'].' '.date('H-i-s');;
                }else{
                    $model->srok = Yii::$app->request->post('Zakaz')['srok_date'].' '.Yii::$app->request->post('Zakaz')['srok_time'];
                }
                if (Yii::$app->request->get('id')){
                    $model->id_client = ArrayHelper::getValue(Yii::$app->request->get(), 'id');
                } else {
                    $model->id_client = ArrayHelper::getValue(Yii::$app->request->post('Client'), 'id');
                }
                $model->id_shop = $model->id_sotrud;
                $model->file = UploadedFile::getInstance($model, 'file');
                if ($model->file) {
                    $model->upload('create');
                }
                $model->changedUnread();
                if ($model->validate() && $client->validate()){
                    if (!$model->save()) {
                        print_r($model->getErrors());
                    } else {
                        $arr = ArrayHelper::map($model->tags, 'id', 'id');
                        $post = Yii::$app->request->post('Zakaz')['tags_array'];
                        if ($post){
                            $tag->getZakazForm($post, $arr, $model->id_zakaz);
                        }
                        $financy->saveSum($model->fact_oplata, $model->id_zakaz, $model->oplata);
                        Yii::$app->session->addFlash('update', 'Успешно создан заказ '.$model->id_zakaz);
                        if (Yii::$app->user->id != User::USER_ADMIN ){
                            $notification->getByIdNotification(2, $model->id_zakaz);
                            $notification->getSaveNotification();
                        }
    
                        if($model->status == Zakaz::STATUS_DISAIN){
                            $notification->getByIdNotification(3, $model->id_zakaz);
                            $notification->getSaveNotification();
                           /* $telegram->message(User::USER_DISAYNER, 'Назначен заказ '.$model->prefics.' '.$model->description);*/
                        }
                        if ($model->status == Zakaz::STATUS_MASTER ){
                            $notification->getByIdNotification(4, $model->id_zakaz);
                            $notification->getSaveNotification();
                            /* $telegram->message(User::USER_MASTER, 'Назначен заказ '.$model->prefics.' '.$model->description);*/
                        }
    
                        /*$telegram->message(User::USER_ADMIN, 'Создан заказ '.$model->prefics.' '.$model->description);*/
                    }
    
                    if (Yii::$app->user->can('shop')) {
                        return $this->redirect(['shop']);
                    } elseif (Yii::$app->user->can('admin')) {
                        return $this->redirect(['admin']);
                    }
                }
            }
    
            return $this->render('create', [
                'model' => $model,
                'client' => $client,
            ]);
        }
  • Как вбивать дату и время в разных инпутах, но сохранять все в одной поле таблицы?

    @Silverviql Автор вопроса
    Спасибо сделал как вы описали. Сохраняю в контроллере вот так :
    if ($model->load(Yii::$app->request->post()) && $client->load(Yii::$app->request->post())) {
                $model->srok = Yii::$app->request->post('Zakaz')['srok_date'].' '.Yii::$app->request->post('Zakaz')['srok_time'];
  • Как вбивать дату и время в разных инпутах, но сохранять все в одной поле таблицы?

    @Silverviql Автор вопроса
    Перебивал он потому что был в ActiveForm
    <div class="col-xs-10">
                        <?= $form->field($test1, 'time_input')->widget(DateControl::className(),
                        [
                            'convertFormat' => true,
                            'type'=>DateControl::FORMAT_DATE,
    
    
                            'widgetOptions' => [
                                    'pluginOptions' => [
                                            'autoclose' => true,
                                        ],
                                'options' => ['placeholder' => 'Cрок']
                            ],
                        ])->label(false);?>
                </div>
            <div class="col-xs-10">
                <?=  $form->field($test2, 'time_input')->widget(DateControl::classname(), [
                    'type'=>DateControl::FORMAT_TIME,
                    'ajaxConversion'=>false,
                    'widgetOptions' => [
                        'pluginOptions' => [
                            'autoclose' => true
                        ],
                        'options' => ['placeholder' => 'Время']
                    ]
                ])->label(false);?>
            </div>
            <?php $datetime = $test1->data_input.' '.$test2->time_input ?>
            <?php ActiveForm::begin(); ?>

    Как переписать виджеты чтобы они записывали значение в объект $test1->data_input и $test2->time_input а потом $datetime записать в $model->srok
    $form->field($model, 'time_input')
    Я думаю я неправильно объясняю..
  • Как вбивать дату и время в разных инпутах, но сохранять все в одной поле таблицы?

    @Silverviql Автор вопроса
    Так если я пропишу 2 дата контроллера ,он же обращается через $form->field($model, 'srok')
    он просто перезапишет данные
    То есть если я введу дату, а потом веду время он же запишет только время а дату оставит пустой
  • Как сделать фильтр в GridView для отображение полученной выручки за дату?

    @Silverviql Автор вопроса
    У меня сейчас вот так :5afadfc379825394895066.png

    Надо чтобы 5afae02a379ec946002223.png
    Я гуглил подсчитать количество строк из таблицы, или подсчитать сумму из колонки таблицы, все что я нашел это в sql запросе прописать чтобы сразу суммировалось.
  • Как сделать фильтр в GridView для отображение полученной выручки за дату?

    @Silverviql Автор вопроса
    Максим Тимофеев, а как ?) я хочу не через запрос msql это делать. Просто мне в дальнейшем надо будет считать количество строк, сумму по этим строкам. Если можете показать какой то пример буду благодарен.
  • Как сделать фильтр в GridView для отображение полученной выручки за дату?

    @Silverviql Автор вопроса
    Какой метод нужно использовать чтобы не отображать элемент таблицы gridview?
    Я хочу получить сумму колонки, но сами данные из колонки отображать не хочу.
    [
    /* 'class' => NumberColumn::className(),*/
    'attribute' => 'fact_oplata',
    'pageSummary'=>true,

    ],

    visible ,это чтобы сделать огр на отображение опр пользователям.
  • Как при нажатие на ссылку оставать на той же странице на сайте?

    @Silverviql Автор вопроса
    <?= Html::a('Доставил', ['#'],['class' => 'btn btn-xs done', 'value' => Url::to(['courier/delivered', 'id' => $courier->id]), 'onclick' => 'return false']) ?>
    Что то типо этого? пробывал не работает)
  • Как правильно вызвать напоминание в yii2?

    @Silverviql Автор вопроса
    Все я разобрался спасибо.
    Предыдущий разработчик написал при сохранение что $this->srok = null поэтому он просто перезаписывал значение с полученного на null... зачем это было сделано я не знаю..
    public function getSaveNotification()
    {
    /*$this->srok = null;*/
    $this->active = true;
    $this->save();
    if (!$this->save()) {
    print_r($this->getErrors());
    }
    }
  • Как правильно вызвать напоминание в yii2?

    @Silverviql Автор вопроса
    Максим Тимофеев, А можно еще вопрос , у меня не получается записать данные и я не знаю как узнать почему.
    Все данные указанные ниже записываются кроме
    $this->srok = $comment->date ;
    $comment->date в таком формате. 2018-05-10 09:50
    case '13':
    $this->id_user = 5;
    $this->name = $comment->comment.' по заказу:'.$comment->id_zakaz;
    $this->id_zakaz = $comment->id_zakaz;
    $this->category = 2;
    $this->srok = $comment->date ;
    break;
    Есть предположение что дело в валидации) Но я не знаю как проверить.
    В бд [srok datetime] таблица Уведомлений
    [date timestamp Нет CURRENT_TIMESTAMP] таблица Комментариев
    У модели Уведомлений rules
    [['id_user', 'category','todoist_id','active'], 'integer'],
    [['name'], 'string', 'max' => 50],
    [['srok'], 'safe'],
    У модели Комментариев rules
    [['id_user', 'sotrud', 'id_zakaz', 'id_todoist', 'id_helpdesk', 'notice_id', 'category'], 'integer'],
    [['date'], 'safe'],
    [['comment'], 'string'],
    ['date', 'default', 'value' => date('Y-m-d H:i:s')],
  • Как правильно вызвать напоминание в yii2?

    @Silverviql Автор вопроса
    Я еще не так хорош в программирование, думаю пока сделаю по старинке постоянный запрос на проверку к бд, как вырасту в плане опыта и знаний буду смотреть в сторону сокетов) Спасибо)
  • Можно ли сделать якорь при redirect в PHP?

    @Silverviql Автор вопроса
    slo_nik, спасибо буду разбираться)
  • Можно ли сделать якорь при redirect в PHP?

    @Silverviql Автор вопроса
    Это переход к div с id, а на элемент gridview
    <tr class="trTable trNormal trTablePass" data-key="78">
    по data-key="78" ? Я по гуглил на элемент таблицы никаких примеров нет.
  • Как ограничить pjar на обновление иконки?

    @Silverviql Автор вопроса
    Максим Тимофеев, нее эт пример ) я хочу его переделать для получение данных о новых уведомлениях . 5ae370427b71b640826336.jpeg
    У меня уже есть модуль уведомлений, но отображается он когда страницу обновляешь. То есть например у меня задача на двух пользователей, один написал другому пришло уведомление что в этой задаче уведомление и иконка становится зеленой и при клике на нее показан текст типо к такой задаче комментарий при нажатие он переходит на эту задачу.
    Вот изменение иконки на зеленый, клин на иконку выпадающее окошко с отображение уведомления и возможность перехода на это уведомление при нажатие на сообщение есть, но чтобы все это появилось надо обновить страницу... А мне надо чтобы обновилась часть только вот именно иконка стала зеленой ) В дальнейшем если я это сделаю я хочу добавить чтобы еще вспылающее окно было, похожее на встроенного уведомления yii2.
    Но все упирается в мои знания ajax. Так как на данный момент я знаю что он отправляет запрос на сервер по url получает всю страницу которая рендерится и передает ее обратно. А вот как сделать чтобы он не получал всю страницу а только эту гребанную иконку и делал ее зеленой при появление сообщения от другого пользователя я не могу сделать. Поэтому я и прошу помощи.
  • Как ограничить pjar на обновление иконки?

    @Silverviql Автор вопроса
    Максим Тимофеев,
    <blockquote><?php echo date("H:i:s");;
        $script = <<<JS
        function show()  
            {  
                $.ajax({  
                    type: "POST",  
                        url: "admin",   
                    cache: false,  
                    success: function(html){  
                        $("#content").html(html);  
                    }  
                });  
            }  
          
           
                show();  
                setInterval('show()',10000);  
        
    JS;
        $this->registerJs($script);
        echo '<div id="content"></div>';
        ?></blockquote>

    Он так же как и pjax отрабатывает, просто тянет всю страницу..
    Как ограничить на получение только echo date("H:i:s"); ?
  • Как убрать время у даты при получение данных из модели бд?

    @Silverviql Автор вопроса
    Я не знаю почему она до этого не работало, но когда я прописывал
    'format' => ['date', ' dd.MM.YYYY'], он не объединял , сейчас так же прописал и все работает
    5adf91b67eaa6269324624.png
    Спасибо)
    Но ->select('DATE_FORMAT(data, "%m-%Y") as data') так и не сработало ). Хотя интересно почему.
  • Как убрать время у даты при получение данных из модели бд?

    @Silverviql Автор вопроса
    Boris Korobkov, SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM `zakaz` WHERE (action <= 0) AND (data >= DATE_SUB(CURRENT_DATE, INTERVAL 7 ' at line 1
    The SQL being executed was: SELECT DATE_FORMAT(data, `"%m-%Y")` AS `data` FROM `zakaz` WHERE (action <= 0) AND (data >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)) LIMIT 10
    У меня отображаются за вчерашний день и за неделю. Я не туда прописал.
    За вчера по сути мне не нужно убирать время , а для недели где много заявок с разным временем это необходимо.

    $dataProvider = new ActiveDataProvider([
    'query' => \app\models\Zakaz::find()
    /* ->select('DATE_FORMAT(date, "%d-%M") as data')*/
    ->where('action <= 0') ->andWhere( 'data >= (CURDATE()-1) AND data < CURDATE()')
    ->groupBy('data'),
    'pagination' => [
    'pageSize' => 10,
    ],
    ]);

    $Articles = new ActiveDataProvider([
    'query' => \app\models\Zakaz::find()
    ->where('action <= 0') ->andWhere('data >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)'),
    'pagination' => [
    'pageSize' => 10,
    ],
    ]);
    var_dump($Articles->query->createCommand()->rawSql);