BriefController.php 3.9 KB
<?php
namespace controllers;

class BriefController extends \Phalcon\Mvc\Controller
{

    function indexAction()
    {
        $data = \fields::find(array("type='services_sales'","order" => 'id'));
        $this->view->setVars([
            'data' => $data,
        ]);
    }


    function setAction()
    {

    }


    function getBriefFormDataAction(){
        if($this->request->getPost()){
            $post = $this->request->getPost();
           /* $model = \briefToFields::find("brief_id='{$post["brief_id"]}'");
            print_r($model->toArray());*/
            $sql = "SELECT briefBlocksFields.id AS id, briefToFields.field_value AS field_value,  briefBlocksFields.type AS field_type
                FROM briefToFields
                LEFT JOIN briefBlocksFields ON briefToFields.field_id = briefBlocksFields.id
                WHERE briefToFields.brief_id = {$post["brief_id"]}";
            $data = $this->modelsManager->executeQuery($sql)->toArray();
            $result = json_encode($data);
            print_r($result);

            die();
        }
    }

    function addAction($id)
    {
        $fieldsData = \briefBlocksFields::find();


        if($this->request->getPost()){
            $post = $this->request->getPost();

            $model = \briefToFields::find("brief_id='$id'");
            foreach($model as $row){
                $row->delete();
            }
            foreach($post as $k => $field){
                    $model= new \briefToFields();
                    $model->field_value = $field;
                    $model->brief_id = $id;
                    $model->field_id = $k;
                    $model->save();
            }

            return $this->response->redirect([ 'for' => 'add_brief', 'id' =>$id ]);
        };

        $brief = \brief::findFirst("request_id=$id");
        if(!$brief instanceof \brief){
            $brief = new \brief();
            $brief->request_id=$id;
            $brief->date = date("Y-m-d");
            $brief->save();
        }


        $request_order = \orderRequest::findFirst("id = '$id'");

        $services_list = \fields::find("id IN ('".str_replace(",","','",$request_order->services)."') ORDER BY weight ASC")->toArray();

        $parent_id = $this->common->array_column($services_list, 'parent_id');
        $parent_services_list = \fields::find("id IN ('".implode("','", array_unique($parent_id))."') ")->toArray();

        $model_sections = \briefBlocksFields::query()
            ->where("field_id IN ('".str_replace(",","','",$request_order->services)."')")
            ->order('id')
            ->execute()->toArray();

        $sections = array();

        foreach($model_sections as $section){
            $sections[$section['field_id']][] = $section;
        }
        /*Соединяем все в один массив*/
        $sub_list = array();
        foreach($services_list as $field){
            if(isset($sections[$field['id']])) {
                $field['fields_data'] =$sections[$field['id']];
                $sub_list[$field['parent_id']][] = $field;
            }

        }


        $final_list = array();

        foreach($parent_services_list as $list){
            $list['children'] = $sub_list[$list['id']];
            $final_list[] = $list;
        }

        $this->view->disableLevel(\Phalcon\Mvc\View::LEVEL_MAIN_LAYOUT);

        $this->view->pick( 'brief/addEdit' );

        $this->view->setVars([
            'fields' =>  $final_list,
            'section_id' => $id
        ]);

    }

    function deleteAction($id)
    {


    }



    function updateAction($id)
    {


        $model = \briefBlocksFields::find("field_id = '$id'");
        $this->assets
            ->addJs('js/BriefBlockConstructor/HtmlConstructor.js')
            ->addJs('js/brief-block-constructor.js');
        $this->view->pick( 'brief_blocks/addEdit' );
        $this->view->setVars([
            'data' => $model,
            'section_id' => $id
        ]);

    }
}