public function actionUpdate() { if (!Yii::app()->request->isPostRequest) { throw new CHttpException(400, 'must be a post request'); } if (isset($_POST['tel_id']) && $_POST['tel_id']) { $model = Telephone::model()->findByPk($_POST['tel_id']); } else { $model = new Telephone(); } $model->attributes = $_POST; if ($model->save()) { echo json_encode($model->attributes); } else { echo json_encode(['errors' => $model->getErrors()]); } }
private function saveClient(Client $model) { $this->prepareModel($model); if (isset($_POST['Client']) && $_POST['Client']) { $_POST['Client']['propertyTypesIds'] = isset($_POST['Client']['propertyTypesIds']) ? $_POST['Client']['propertyTypesIds'] : []; $_POST['Client']['propertyCategoryIds'] = isset($_POST['Client']['propertyCategoryIds']) ? $_POST['Client']['propertyCategoryIds'] : []; $model->attributes = $_POST['Client']; if ($model->isNewRecord) { $model->scenario = 'validPhoneOnInsert'; } $generalNoteIds = isset($_POST['noteId-' . Note::TYPE_CLIENT_GENERAL]) ? $_POST['noteId-' . Note::TYPE_CLIENT_GENERAL] : []; $generalNote = isset($_POST[Note::TYPE_CLIENT_GENERAL]) ? $_POST[Note::TYPE_CLIENT_GENERAL] : []; $reqNoteIds = isset($_POST['noteId-' . Note::TYPE_CLIENT_REQ]) ? $_POST['noteId-' . Note::TYPE_CLIENT_REQ] : []; $reqNote = isset($_POST[Note::TYPE_CLIENT_REQ]) ? $_POST[Note::TYPE_CLIENT_REQ] : []; $telephones = isset($_POST['telephones']) ? $_POST['telephones'] : []; $existingPhones = Telephone::model()->findAllByPk(array_filter($telephones['id']), ['index' => 'tel_id']); if (isset($telephones['number'][0]) && $telephones['number'][0]) { $phone = new Telephone(); $phone->tel_number = $telephones['number'][0]; $phone->tel_type = $telephones['type'][0]; $model->_newPhones = [$phone]; } $model->addressID = isset($_POST['primaryAddress']['id']) ? $_POST['primaryAddress']['id'] : 0; $model->secondAddressID = isset($_POST['secondAddress']['id']) ? $_POST['secondAddress']['id'] : 0; if ($model->save()) { /** @var $existingPhones Telephone */ foreach ($telephones['number'] as $key => $number) { $phoneId = $telephones['id'][$key]; $type = $telephones['type'][$key]; if (isset($existingPhones[$phoneId])) { $phone = $existingPhones[$phoneId]; } else { $phone = new Telephone(); } if ($number) { $phone->tel_cli = $model->cli_id; $phone->tel_number = $number; $phone->tel_type = $type; $phone->save(); } else { if (!$phone->isNewRecord) { $phone->delete(); } } } $model->saveAreas(isset($_POST['Client']['matchingPostcode']) ? $_POST['Client']['matchingPostcode'] : []); $model->saveFeatures(isset($_POST['Client']['feature']) ? $_POST['Client']['feature'] : []); if ($generalNoteIds) { Note::model()->saveNoteTypeIds($generalNoteIds, $model->cli_id); } if ($reqNoteIds) { Note::model()->saveNoteTypeIds($reqNoteIds, $model->cli_id); } if ($generalNote) { $generalNote['not_type'] = Note::TYPE_CLIENT_GENERAL; Note::model()->saveNote($generalNote, $model->cli_id); } if ($reqNote) { $reqNote['not_type'] = Note::TYPE_CLIENT_REQ; Note::model()->saveNote($reqNote, $model->cli_id); } if (isset($_POST['Client']['saveProceed']) && $_POST['Client']['saveProceed']) { $this->redirect([$this->createUrl('appointmentBuilder/clientSelected', ['clientId' => $model->cli_id])]); } else { Yii::app()->user->setFlash('client-update-success', 'Updated Successfully'); $this->redirect(array('Update', 'id' => $model->cli_id, 'useClient' => isset($_GET['useClient']) && $_GET['useClient'] ? 1 : 0)); } } } }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Telephone the loaded model * @throws CHttpException */ public function loadModel($id, $idTree) { if (!(Yii::app()->user->admin || Access::model()->checkAccessUserForTree($idTree)) || !Tree::model()->checkParentRight($idTree)) { throw new CHttpException(403, 'Доступ запрещен.'); } $criteria = new CDbCriteria(); $criteria->compare('id', $id); $criteria->addInCondition('ifns_code', CHtml::listData(Telephone::model()->listOrganizations($idTree), 'code', 'code')); $model = Telephone::model()->find($criteria); //$model=Telephone::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'Страница не найдена.'); } return $model; }
public function actionConfirm($app) { /** @var Appointment $model */ $model = Appointment::model()->findByPk($app); if (!$model) { throw new CHttpException(404, 'Appointment [id: ' . $app . '] not found'); } if ($_POST) { /** @var Telephone[] $phones */ $phones = []; // mapping phones for fast access foreach (Telephone::model()->findAllByPk($_POST['phones']) as $value) { $phones[$value->tel_id] = $value; } /** @var Deal[] $instructions */ $instructions = []; foreach ($model->instructions as $instruction) { $instructions[$instruction->dea_id] = $instruction; // mapping iinstructions } /** @var Client[] $clients */ $clients = []; $clientKeys = array_merge(isset($_POST['vendors']) ? array_keys($_POST['vendors']) : [], isset($_POST['clients']) ? array_keys($_POST['clients']) : []); foreach (Client::model()->findAllByPk($clientKeys) as $key => $value) { $clients[$value->cli_id] = $value; } $sendMessage = function ($clientId, $data) use($phones, $instructions, $clients, $model) { if (!$data['send'] || !$data['send_to'] || !isset($phones[$data['send_to']])) { return; } $sms = new Sms(); $sms->toNumber = $phones[$data['send_to']]->tel_number; $sms->clientId = $clientId; $sms->text = $data['text']; $sms->send(); $model->addTextMessage($sms); }; $errors = []; if (isset($_POST['vendors'])) { foreach ($_POST['vendors'] as $vendorId => $data) { try { $sendMessage($vendorId, $data); } catch (Exception $e) { $errors[] = $e; } } } if (isset($_POST['clients'])) { foreach ($_POST['clients'] as $vendorId => $data) { try { $sendMessage($vendorId, $data); } catch (Exception $e) { $errors[] = $e; } } } $model->saveTextMessages(); if (!$errors) { Yii::app()->user->setFlash('messages-sent', 'Text messages successfully sent.'); } } $this->render('confirm', compact('model')); }
<strong>Информация</strong><br /> Для изменения данных кроме файла справочника поле «Файл справочника» следует оставить пустыми. </div> <?php } ?> <p class="help-block">Поля обозначенные <span class="required">*</span> обязательны для заполнения.</p> <?php echo $form->errorSummary($model); ?> <?php echo $form->dropDownListRow($model, 'ifns_code', CHtml::listData(Telephone::model()->listOrganizations($idTree), 'code', 'name'), array('class' => 'span8', 'maxlength' => 50)); ?> <br />Файл справочника <?php echo $form->fileField($model, 'tel_file'); ?> <?php echo $form->textAreaRow($model, 'dop_text', array('rows' => 6, 'cols' => 50, 'class' => 'span8')); ?> <?php echo $form->textFieldRow($model, 'sort', array('class' => 'span5')); ?>