public function testNewPhoneSavesOrdNumIFItIsSetExternaly()
 {
     $phone = new Telephone();
     $phone->tel_cli = 9999;
     $phone->tel_number = 1234567890;
     $phone->tel_ord = 1000;
     $phone->save();
     $this->assertEquals(1000, $phone->tel_ord, 'New phone doesnt save its order num');
 }
 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()]);
     }
 }
 public function register()
 {
     if ($this->validate()) {
         $address = new Address();
         $lines = explode("\n", $this->address);
         $postcode = '';
         if (count($lines) > 1) {
             $postcode = array_pop($lines);
         }
         for ($i = 0; $i < count($lines) && $i < 5; $i++) {
             $t = 'line' . ($i + 1);
             $address->{$t} = $lines[$i];
         }
         $address->postcode = strtoupper($postcode);
         $address->save();
         $client = new Client();
         $client->cli_fname = $this->name;
         $client->cli_sname = $this->surname;
         $client->cli_email = $this->email;
         $client->cli_branch = $this->branch;
         $client->cli_neg = 0;
         $client->cli_status = 'Active';
         $client->cli_salemin = $this->minPrice;
         $client->cli_salemax = $this->maxPrice;
         $client->cli_salebed = $this->bedrooms;
         $client->cli_sales = 'Yes';
         $client->cli_saleemail = 'Yes';
         $client->cli_salestatus = $this->currentPosition;
         $client->addressID = $address->id;
         if ($client->save(false)) {
             $telephone = new Telephone();
             $telephone->tel_type = 'Other';
             $telephone->tel_number = $this->telephone;
             $telephone->tel_cli = $client->cli_id;
             $telephone->tel_ord = 1;
             $telephone->save();
         }
         return true;
     }
 }
 public function actionCallback($email = '', $telephone = '', $message = '')
 {
     $this->layout = '/layouts/popup-iframe';
     if (isset($_POST['Callback']) && $_POST['Callback']) {
         $callback = $_POST['Callback'];
         $email = $callback['email'];
         $telephone = $callback['telephone'];
         $criteria = new CDbCriteria();
         $criteria->compare('cli_email', $email);
         $criteria->with = ['telephones'];
         $client = Client::model()->find($criteria);
         if ($client) {
             if (!$telephone) {
                 $telephone = $client->telephones[0]->tel_number;
             } else {
                 if ($client->telephones[0]->tel_number != $telephone) {
                     $telExist = false;
                     $tels = $client->telephones;
                     foreach ($tels as $tel) {
                         if ($tel->tel_number == $telephone) {
                             $telExist = true;
                             break;
                         }
                     }
                     if (!$telExist) {
                         $telephone = new Telephone();
                         $telephone->tel_type = 'Other';
                         $telephone->tel_number = $telephone;
                         $telephone->tel_cli = $client->cli_id;
                         $telephone->save();
                     }
                 }
             }
         }
         $message = $this->sendEmailForRegisteredClient($email, $telephone);
         echo json_encode($message);
     } else {
         $this->render('_callbackForm', ['email' => $email, 'telephone' => $telephone, 'message' => $message]);
     }
 }
 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));
             }
         }
     }
 }