Ejemplo n.º 1
0
 public function actionSave()
 {
     $response = array('status' => 'failed');
     if (Yii::app()->request->isAjaxRequest) {
         if (isset($_POST['datas']) and $_POST['datas'] != "" and isset($_POST['import_fields']) and count($_POST['import_fields']) > 0) {
             $datas = json_decode($_POST['datas']);
             $fields = $_POST['import_fields'];
             $start = 1;
             $singlequery = false;
             $inserted_rows = 0;
             $requiredattributes = array();
             if (Contacts::model()->import_contacts_config()) {
                 $import_config = Contacts::model()->import_contacts_config();
                 if ($import_config['required_attributes']) {
                     $requiredattributes = $import_config['required_attributes'];
                 }
             }
             $valid = true;
             foreach ($fields as $field => $value) {
                 if (in_array($field, $requiredattributes) and $value == NULL) {
                     $valid = false;
                 }
             }
             if (!$valid) {
                 $response['data'] = $this->renderPartial('import/_error', array('error' => 2), true);
             } else {
                 while ($start < count($datas)) {
                     if (!$singlequery) {
                         $contact = new Contacts();
                         $contact->created_by = Yii::app()->user->id;
                         $contact->created_at = date('Y-m-d H:i:s');
                         $contact->status = 1;
                         foreach ($fields as $field => $value) {
                             if ($value != NULL) {
                                 $contact->{$field} = $datas[$start][$value];
                             }
                         }
                         if ($contact->save()) {
                             $inserted_rows++;
                             if (isset($_POST['groups']) and count($_POST['groups']) > 0) {
                                 foreach ($_POST['groups'] as $group) {
                                     $list = new ContactsList();
                                     $list->contact_id = $contact->id;
                                     $list->group_id = $group;
                                     $list->save();
                                 }
                             }
                         }
                     }
                     $start++;
                 }
                 $response['status'] = "success";
                 $response['data'] = $this->renderPartial('import/_step3', array('inserted_rows' => $inserted_rows, 'total_rows' => count($datas) - 1), true);
             }
         }
     }
     echo json_encode($response);
     Yii::app()->end();
 }