<?php
// session_start();
if (!defined('sugarEntry') || !sugarEntry) {
    die('Not A Valid Entry Point');
}

require_once 'modules/Administration/controller.php';

class CustomAdministrationController extends AdministrationController
{
    public function action_LatitudeSaveModules()
    {
        global $sugar_config;

        $configurator = new Configurator();
        $configurator->loadConfig();
        $configurator->config['lat_available_modules'] = html_entity_decode($_REQUEST['available_modules']);
        $configurator->config['lat_enabled_modules']   = html_entity_decode($_REQUEST['enabled_modules']);
        $configurator->handleOverride();
        header("Location: index.php?module=Administration&action=lat_module_configuration");
    }

    //Send Notification to all devices
    public function action_sendnotification()
    {
        // require_once 'custom/modules/Configurator/Mobile_App/method.php';
        // global $db;
        // $mob_notification   = new Method();
        // $check_mob_id_query = "SELECT DISTINCT `mobile_notification_id_c` FROM `users_cstm` WHERE `mobile_notification_id_c` NOT LIKE ''";
        // $res                = $db->query($check_mob_id_query);
        // while ($value = $db->fetchByAssoc($res)) {
        //     $mob_notification->nik_push_notification_api('', '', 'Layout Update', 'Please click "SYNC NOW" to Update Mobile Layouts.', $value['mobile_notification_id_c']);
        // }

        require_once 'custom/modules/Configurator/Mobile_App/mobile_notification.php';
        $mobile_notification = new mobile_notification();
        
        $eqm_final_query = "select M.id from users M inner join users_cstm C on M.id = C.id_c where M.deleted=0 and C.mobile_notification_id_c NOT LIKE ''";
        $eqm_rows = $GLOBALS['db']->query($eqm_final_query, true, "eqm_sql_msg: User Token");
        while($eqm_cols = $GLOBALS['db']->fetchByAssoc($eqm_rows))
        {
            $assigned_user_id = $eqm_cols['id'];

            $mobile_notification->nik_push_notification_api("","","Layout Update",'Please click "SYNC NOW" to Update Mobile Layouts.',$assigned_user_id);
        }

        if ($module == "Check_Out") {
            $sub_module = $_REQUEST['check_out_module_array'];
            header("Location: index.php?module=Administration&action=lat_module_field_configuration&module_name=" . $module . "&check_out_module_name=" . $sub_module);
        } else {
            header("Location: index.php?module=Administration&action=lat_module_field_configuration&module_name=" . $module);
        }
    }

    public function action_LatitudeSaveModulesFields()
    {
        global $db;
        $module    = $_REQUEST['enabled_module_array'];
        $unique_id = create_guid();

        // $allfield_tabs   = $_REQUEST['allfield_tabs'];
        $listview_tabs   = json_decode(stripslashes(html_entity_decode($_REQUEST['listview_tabs'])), true);
        $editview_tabs   = json_decode(stripslashes(html_entity_decode($_REQUEST['editview_tabs'])), true);
        $detailview_tabs = json_decode(stripslashes(html_entity_decode($_REQUEST['detailview_tabs'])), true);

        if (isset($_REQUEST['copyto']) && !empty($_REQUEST['copyto'])) {
            $copytoval = trim($_REQUEST['copyto']);

            switch ($copytoval) {
                case 'etol':
                    $listview_tabs = $editview_tabs;
                    break;
                case 'etod':
                    $detailview_tabs = $editview_tabs;
                    break;
                case 'ltoe':
                    $editview_tabs = $listview_tabs;
                    break;
                case 'ltod':
                    $detailview_tabs = $listview_tabs;
                    break;
                case 'dtoe':
                    $editview_tabs = $detailview_tabs;
                    break;
                case 'dtol':
                    $listview_tabs = $detailview_tabs;
                    break;
                default:
                    break;
            }
        }

        $final_json = json_encode(array('editview' => $editview_tabs, 'listview' => $listview_tabs, 'detailview' => $detailview_tabs));

        $chk_exists      = "select * from latitude_mobile_layout where module_name='$module'";
        $retrieve_result = $db->query($chk_exists);
        if ($retrieve_result->num_rows == 0) {
            if ($module == "Check_Out") {
                $sub_module                         = $_REQUEST['check_out_module_array'];
                $final_check_out_array[$sub_module] = $editview_tabs;
                $final_json                         = json_encode($final_check_out_array);
            }
            //Added by Yesha 
            if ($module == "Convert_Enquiry") {
                $sub_module                         = $_REQUEST['convert_enquiry_module_array'];
                $final_convert_enquiry_array[$sub_module] = $editview_tabs;
                $final_json                         = json_encode($final_convert_enquiry_array);
            }
            $nj_save_listview_query = "Insert into latitude_mobile_layout values('$unique_id','$module','$final_json')";
            $result                 = $db->query($nj_save_listview_query);
            echo $final_json;
        } else {
            if ($module == "Check_Out") {
                $sub_module                         = $_REQUEST['check_out_module_array'];
                $final_check_out_array[$sub_module] = $editview_tabs;
                $row                                = $db->fetchByAssoc($retrieve_result);
                $prev_layout                        = json_decode(stripslashes(html_entity_decode($row['layout'])), true);
                $final_json                         = json_encode(array_merge($prev_layout, $final_check_out_array));
            }
            //Added by Yesha 
            if ($module == "Convert_Enquiry") {
                $sub_module                         = $_REQUEST['convert_enquiry_module_array'];
                $final_convert_enquiry_array[$sub_module] = $editview_tabs;
                $row                                = $db->fetchByAssoc($retrieve_result);
                $prev_layout                        = json_decode(stripslashes(html_entity_decode($row['layout'])), true);
                // $final_json                         = json_encode(array_merge($prev_layout, $final_convert_enquiry_array));
                if(!empty($prev_layout)){

                    // foreach ($prev_layout as $key => $value) {
                    //     if(!in_array($key, $_SESSION['convert_modules'])){
                    //         unset($prev_layout[$key]);
                    //     }
                    // }

                    $final_json                     = json_encode(array_merge($prev_layout, $final_convert_enquiry_array));
                }else{
                    $final_json                     = json_encode($final_convert_enquiry_array);
                }
            }
            $save_listview_query = "Update latitude_mobile_layout set layout='$final_json' where module_name='$module'";
            $result              = $db->query($save_listview_query);
        }

        if ($module == "Check_Out") {
            $sub_module = $_REQUEST['check_out_module_array'];
            header("Location: index.php?module=Administration&action=lat_module_field_configuration&module_name=" . $module . "&check_out_module_name=" . $sub_module);
        }else if ($module == "Convert_Enquiry") {
            $sub_module = $_REQUEST['convert_enquiry_module_array'];
            header("Location: index.php?module=Administration&action=lat_module_field_configuration&module_name=" . $module . "&check_out_module_name=" . $sub_module);
        }  else {
            header("Location: index.php?module=Administration&action=lat_module_field_configuration&module_name=" . $module);
        }
    }

    //Added by Yesha for Web Dashboard configuration 19-06-2019
    public function action_WebDashboardSaveModules()
    {
        global $sugar_config;

        $configurator = new Configurator();
        $configurator->loadConfig();
        $configurator->config['web_dashboard']['available_modules'] = html_entity_decode($_REQUEST['available_modules']);
        $configurator->config['web_dashboard']['enabled_modules']   = html_entity_decode($_REQUEST['enabled_modules']);
        $configurator->handleOverride();
        header("Location: index.php?module=Administration&action=webdashboard_module_configuration");
    }
}
