Вход Регистрация
Файл: protected/controllers/rest/PageRestController.php
Строк: 220
<?php


class PageRestController extends MyRestController
{

    public function 
actionCreateLead()
    {
        
$return = [
            
'result' => 'failed',
            
'description' => 'failed',
            
'errors' => [],
        ];

        if (!isset(
Yii::app()->params['Lead']) || !Yii::app()->params['Lead']) {
            
$return['description'] = 'Disabled';
            return 
Json::render($return);
        }
        if (isset(
$_POST['fieldFio'])) {
            
$transaction Yii::app()->db->beginTransaction();
            try {
                
$noSteps false;
                if (isset(
$_POST['steps']) && isset($_POST['steps_options'])) {
                    
$step Steps::model()->findByAttributes(['id' => $_POST['steps'], 'steps_type_id' => 1]);
                    if (
$step) {
                        
$stepOption StepsOptions::model()->findByAttributes(['weight' => $_POST['steps_options'], 'steps_id' => $_POST['steps']]);
                        if (!
$stepOption) {
                            
$noSteps true;
                        }
                    }
                    if (!
$step) {
                        
$noSteps true;
                    }
                } else {
                    
$noSteps true;
                }

                if (
$noSteps) {
                    
$step Steps::model()->findByAttributes(['name' => 'Нет воронки''steps_type_id' => 1]);
                }
                if (isset(
$_POST['labels_in_clients'])) {
                    
$label Labels::model()->findByAttributes(['id' => $_POST['labels_in_clients'], 'type_id' => 1]);
                }

                
$_POST['responsable_id'] = (isset($_POST['responsable_id']) && Users::model()->findByPk($_POST['responsable_id']))
                    ? 
$_POST['responsable_id']
                    : 
Users::model()->getAdminInCompany()->id;
                
$responsible Users::model()->findByPk($_POST['responsable_id']);
                
$_POST['creator_id'] = isset($_POST['creator_id']) ? $_POST['creator_id'] : 1;
                
$_POST['priority_id'] = isset($_POST['priority_id']) ? $_POST['priority_id'] : 1;
                
$_POST['source_id'] = isset($_POST['source_id']) ? $_POST['source_id'] : 28;
                
$_POST['city_id'] = isset($_POST['city_id']) ? $_POST['city_id'] : 29;
                
$_POST['group_id'] = isset($_POST['group_id']) ? $_POST['group_id'] : 33;
                
$client = new Clients();
                
$client->attributes $_POST;
                
$client->name $_POST['fieldFio'];
                
$client->creation_date date('Y-m-d H:i:s');

                if (!
$client->save()) {
                    
$return['errors'] = $client->getErrors();
                    throw new 
CHttpException('400');
                }

                if (isset(
$label)) {
                    
$labelClient = new LabelsInClients();
                    
$labelClient->label_id $label->id;
                    
$labelClient->client_id $client->id;
                    
$labelClient->save();
                }
                if (isset(
$step)) {
                    
$stepClient = new StepsInClients();
                    
$stepClient->steps_id $step->id;
                    
$stepClient->clients_id $client->id;
                    
$stepClient->selected_option_id = !$noSteps $stepOption->id 0;
                    
$stepClient->save();
                }

                
$addFields AdditionalFields::model()->findAll();
                
$addFieldsErrors = [];
                
$addFieldInClient = new AdditionalFieldsValues();
                
$addFieldInClient->client_id $client->id;
                foreach (
$addFields as $field) {
                    if (
$field->required && (!isset($_POST[$field->table_name]) || trim($_POST[$field->table_name]) == '')) {
                        
$addFieldsErrors[$field->table_name] = 'Required';
                    }
                    
/*if ($field->unique && isset($_POST[$field->table_name]) && $_POST[$field->table_name] != '') {
                        if (AdditionalFieldsValues::model()->count($field->table_name . ' = :value', [':value' => $_POST[$field->table_name]]))
                        {
                            $addFieldsErrors[$field->table_name] = 'Unique';
                        }
                    }*/
                    
if (isset($_POST[$field->table_name])) {
                        switch (
$field->type) {
                            case 
'select':
                                
$select json_decode($field->default_valuetrue);
                                
$select CHtml::listData($select'id''optionName');
                                if (isset(
$select[$_POST[$field->table_name]])) {
                                    
$addFieldInClient->{$field->table_name} = $_POST[$field->table_name];
                                } else {
                                    
$addFieldsErrors[$field->table_name] = 'Incorrect';
                                }
                                break;
                            case 
'date':
                                if (
is_numeric($_POST[$field->table_name])) {
                                    
$addFieldInClient->{$field->table_name} = $_POST[$field->table_name];
                                } elseif (
trim($_POST[$field->table_name]) != '') {
                                    
$addFieldInClient->{$field->table_name} = strtotime($_POST[$field->table_name] . ' +0');
                                } else {
                                    
$addFieldInClient->{$field->table_name} = '';
                                }
                                break;
                            default:
                                
$addFieldInClient->{$field->table_name} = $_POST[$field->table_name];
                                break;
                        }
                    } else {
                        
$addFieldInClient->{$field->table_name} = '';
                    }
                }
                if (
count($addFieldsErrors) > 0) {
                    
$return['errors'] = array_merge($return['errors'], $addFieldsErrors);
                    throw new 
CHttpException('400');
                }

                if (!
$addFieldInClient->save()) {
                    foreach (
$addFieldInClient->getErrors() as $key => $error) {
                        if (isset(
$addFieldInClient->$key)) {
                            
$return['errors'][$key] = $error[0];
                            
$addFieldInClient->clearErrors($key);
                        }
                    }
                    
$return['errors'] = array_merge($return['errors'], $addFieldInClient->getErrors());
                    throw new 
CHttpException('400');
                }

                
$transaction->commit();
                
$return = [
                    
'result' => 'success',
                    
'values' => $client->attributes,
                ];
            } catch (
Exception $e) {
                
$transaction->rollback();
            }
        } else {
            
$return['errors'][] = 'Incorrect data';
        }
        if (isset(
$responsible)) {
            
$return['values']['resp_name'] = $responsible->getFullName();
        }
        
Json::render($return);
    }

    public function 
actionSendEmail()
    {
        
$return = [
            
'result' => 'failed',
            
'description' => 'failed',
            
'errors' => [],
        ];

        if (isset(
$_POST['email']) && isset($_POST['subject']) && isset($_POST['text'])) {
            
Yii::app()->commonFunction->emailSend($_POST['email'], $_POST['subject'], $_POST['text']);
            
$return = ['result' => 'success'];
        } else {
            
$return['description'] = 'Incorrect data';

        }
        
Json::render($return);
    }

    public function 
actionGetAdditionalFields()
    {
        
$fields = [];
        foreach (
AdditionalFields::model()->findAll() as $value) {
            
$fields[] = $value->attributes;
        }
        
$return = [
            
'result' => 'success',
            
'values' => $fields,
        ];
        
Json::render($return);
    }

    public function 
actionGetSettings()
    {
        
$settings = [];
        foreach (
Labels::model()->findAll() as $value) {
            
$settings['labels'][] = $value->attributes;
        }
        foreach (
Steps::model()->findAll() as $value) {
            
$data $value->attributes;
            foreach (
StepsOptions::model()->findAllByAttributes(['steps_id' => $value->id]) as $stepOption) {
                
$data['step_options'][] = $stepOption->attributes;
            }
            
$settings['steps'][] = $data;
        }
        
$return = [
            
'result' => 'success',
            
'values' => $settings,
        ];
        
Json::render($return);
    }


}
Онлайн: 3
Реклама