public function setRestoCategories()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $idRestaurant = Generic::mustCheck($_POST['id_restaurant'], Keys::$ERR_NOT_FOUND_ID_RESTAURANT);
     $category = Generic::mustCheck($_POST['categories'], Keys::$ERR_NOT_FOUND_CATEGORIES);
     //category yang di passing harus berupa JSON ARRAY
     $arrNewCategory = json_decode($category);
     foreach ($arrNewCategory as $newCategory) {
         echo $newCategory->category_name . "<br>";
     }
     die;
     $json = array();
     $json['status_code'] = 1;
     $id_restaurant = isset($_POST['id_restaurant']) ? addslashes($_POST['id_restaurant']) : "";
     if (!$id_restaurant) {
         Generic::errorMsg("Restaurant ID not Found");
     }
     $category = isset($_POST['categories']) ? $_POST['categories'] : "";
     if (!$category) {
         Generic::errorMsg("Category ID not found!");
     }
     $resto = new MasterRestaurantModel();
     $resto->getByID($id_restaurant);
     $arrOldCategories = explode(",", $resto->id_categories);
     $other = '[{"category_name":"OTHERS"}]';
     $other = json_decode($other);
     $jsonCategories = json_decode($category);
     foreach ($jsonCategories as $cat) {
         $jsonCategorieshlp[] = $cat->category_name;
     }
     if (!in_array("OTHERS", $jsonCategorieshlp)) {
         $jsonCategories[]['category_name'] = "OTHERS";
     }
     $objCategory = new MasterCategoryModel();
     $idCategories = array();
     foreach ($jsonCategories as $category) {
         $arrCategory = $objCategory->getWhere("name = '{$category->category_name}'");
         if (count($arrCategory) == 0) {
             if (strtoupper($category->category_name) != strtoupper("OTHERS")) {
                 $objCategory->name = strtoupper($category->category_name);
                 //                    echo $objCategory->name;
                 $objCategory->status = "1";
                 $objCategory->is_drink = "0";
                 $objCategory->save();
             }
         }
     }
     foreach ($jsonCategories as $category) {
         $arrCategory = $objCategory->getWhere("name = '{$category->category_name}'");
         foreach ($arrCategory as $val) {
             $idCategories[] = $val->id_category;
         }
     }
     //compare old categories to new categories
     //cari yang dulu ada sekarang ga ada
     //migrasi dish ke others
     $missingCategories = array_diff($arrOldCategories, $idCategories);
     foreach ($missingCategories as $category) {
         $d = new MasterDishModel();
         $arrDishes = $d->getWhere("id_category = '{$category}' AND id_restaurant = '{$id_restaurant}'");
         foreach ($arrDishes as $dish) {
             $dish->load = 1;
             $dish->id_category = "0";
             $dish->save();
         }
     }
     $objRestaurant = new MasterRestaurantModel();
     $arrResto = $objRestaurant->getWhere("id_restaurant = '{$id_restaurant}'");
     if (count($arrResto) == 0) {
         $json['status_code'] = 0;
         $json['status_message'] = "No ID Found";
         echo json_encode($json);
         die;
     }
     $idCategories = implode(",", $idCategories);
     $arrResto[0]->id_categories = $idCategories;
     $arrResto[0]->load = 1;
     $idSave = $arrResto[0]->save();
     if (!$idSave) {
         Generic::errorMsg(Lang::t('save failed'));
     } else {
         $json['status_code'] = 1;
         $json['results'] = "Success";
     }
     echo json_encode($json);
     die;
 }
 public function repositionTables()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $json = array();
     $json['status_code'] = 1;
     $id_restaurant = isset($_POST['id_restaurant']) ? addslashes($_POST['id_restaurant']) : "";
     if (!$id_restaurant) {
         $json['status_code'] = 0;
         $json['status_message'] = "No ID Found";
         echo json_encode($json);
         die;
     }
     $jsonTables = isset($_POST['tables']) ? $_POST['tables'] : "";
     if (!$jsonTables) {
         $json['status_code'] = 0;
         $json['status_message'] = "No ID Found";
         echo json_encode($json);
         die;
     }
     $jsonArrayTables = json_decode($jsonTables);
     //        pr($jsonArrayTables);
     $countjsonArrayTables = count($jsonArrayTables);
     //        pr($countTables);
     $objResto = new MasterRestaurantModel();
     $arrResto = $objResto->getWhere("id_restaurant='{$id_restaurant}'");
     MasterDish::checkCount($arrResto);
     $countTablesinResto = $arrResto[0]->table_quantity;
     //        pr($arrResto);
     $objTable = new MasterTableModel();
     $arrTable = $objTable->getWhere("id_restaurant='{$id_restaurant}'");
     if ($countTablesinResto != $countjsonArrayTables) {
         Generic::errorMsg("Wrong Quantity");
     }
     //        $break = false;
     //        foreach ($jsonArrayTables as $key => $objTables) {
     ////
     //            $arrReposTable = $objTable->getWhere("id_restaurant='$id_restaurant' AND id_table='$objTables->table_id' ");
     //            if (count($arrReposTable) == 0) {
     //                $break = true;
     //                $msg = $msg . " $objTables->table_id can't find in database.";
     //            }
     //        }
     //        if ($break == false) {
     //            foreach ($jsonArrayTables as $key => $objTables) {
     //                $arrReposTable = $objTable->getWhere("id_restaurant='$id_restaurant' AND id_table='$objTables->table_id' ");
     ////               $arrReposTable[0]->table_position = $key + 1;
     //                $arrReposTable[0]->load = 1;
     //                $arrReposTable[0]->save();
     //            }
     //        }
     $counter = 1;
     foreach ($jsonArrayTables as $jsonObjTable) {
         $table = new MasterTableModel();
         $table->getByID($jsonObjTable->table_id);
         $table->table_position = $counter;
         $table->save();
         $counter++;
     }
     $json['status_code'] = 1;
     $json['results']['message'] = "success";
     echo json_encode($json);
     die;
 }
 public static function getRestaurantnyID($id_restaurant)
 {
     $objResto = new MasterRestaurantModel();
     $arrResto = $objResto->getWhere("id_restaurant='{$id_restaurant}'");
     return $arrResto;
 }
    public function setupFeeMenuRevolution()
    {
        $resto = new MasterRestaurantModel();
        $arrResto = $resto->getWhere("id_restaurant!='0' ORDER BY name ASC");
        ?>
        <div class="col-sm-12">
            <h1>Setup Fee Menu Revolution</h1>
        </div>
        <div id="formgroup_restaurant" class="form-group">
            <label for="restaurant_mr_fee_choices" class=" col-sm-2 control-label">restaurant</label>

            <div class="col-sm-8">
                <select class="form-control" name="restaurant_mr_fee_choices" id="restaurant_mr_fee_choices">
                    <option value="-1">Select Restaurant</option>
                    <option value="0">All Restaurant</option>
                    <?php 
        foreach ($arrResto as $r) {
            if (Generic::IsNullOrEmptyString($r->name)) {
                continue;
            }
            ?>
                        <option value="<?php 
            echo $r->id_restaurant;
            ?>
"><?php 
            echo $r->name;
            ?>
</option>
                        <?php 
        }
        ?>
                </select>
                <span class="help-block" id="warning_voided"></span>
            </div>
            <div class="col-sm-2">
                <button type="button" id="button_select_resto_mr_fee" class="btn btn-default" style="width: 100%;">Add
                </button>
            </div>

            <div class="clearfix"></div>
        </div>

        <div id="formgroup_selected_restaurant" class="form-group">
            <label for="selected_restaurant_mr_fee" class=" col-sm-2 control-label">selected_resto</label>

            <div class="col-sm-10">
                <input type="text" name="selected_restaurant_mr_fee" id="selected_restaurant_mr_fee"
                       class="form-control">
                <span class="help-block" id="warning_id_user"></span>
            </div>
            <div class="clearfix"></div>
        </div>

        <div id="formgroup_fee_resto_mr" class="form-group">
            <label for="fee_resto_mr" class=" col-sm-2 control-label">Fee</label>

            <div class="col-sm-10">
                <div class="input-group">
                    <input type="text" name="fee_resto_mr" value="0" id="fee_resto_mr" class="form-control">
                    <span class="input-group-addon"> % </span>
                </div>
                <span class="help-block" id="warning_id_user"></span>
            </div>
            <div class="clearfix"></div>
        </div>

        <div class="form-group">
            <div class="col-sm-12">
                <button id="submit_button_resto_mr_fee" class="btn btn-default">submit</button>
                <button id="cancel_button_resto_mr_fee" class="btn btn-default">cancel</button>
            </div>
        </div>

        <script>
            $('#button_select_resto_mr_fee').click(
                function () {
                    var restoChoice = $('select#restaurant_mr_fee_choices');
                    var selectedVal = restoChoice.val();
                    var selectedText = restoChoice.find('option:selected').text();
                    if (restoChoice.prop('disabled')) {
                        alert("All Restaurant Selected");
                        return;
                    }

                    if (selectedVal == '-1' || selectedVal == null || selectedVal == '') {
                        alert("Please Select Restaurant");
                        return;
                    } else if (selectedVal == '0') {
                        restoChoice.prop("disabled", true);
                    }
                    $("select#restaurant_mr_fee_choices option:selected").remove();
                    $('#selected_restaurant_mr_fee').tokenfield();
                    $('#selected_restaurant_mr_fee').tokenfield('createToken', {
                        value: selectedVal,
                        label: selectedText
                    });
                    restoChoice.val('');
                }
            );

            $('#selected_restaurant_mr_fee')
                .on('tokenfield:removedtoken', function (e) {
                    var value = e.attrs.value;
                    var label = e.attrs.label;
                    var restoChoice = $('select#restaurant_mr_fee_choices');
                    restoChoice
                        .append($("<option></option>")
                            .attr("value", value)
                            .text(label));

                    if (value == '0') {
                        restoChoice.prop("disabled", false);
                    }

                    var selectList = $('select#restaurant_mr_fee_choices option');
                    selectList.sort(function (a, b) {
                        a = a.value;
                        b = b.value;

                        return a - b;
                    });
                    restoChoice.html(selectList);
                    restoChoice.val(value);
                });

            $('#cancel_button_resto_mr_fee').click(function () {
                clearFields();
            });

            $('#submit_button_resto_mr_fee').click(function () {
                var arr = $('#selected_restaurant_mr_fee').tokenfield('getTokens');
                if (!Array.isArray(arr) || arr.length <= 0) {
                    alert("No Restaurant Selected");
                    return;
                }
                var arrValue = [];
                arr.forEach(function (e) {
                    console.log(e);
                    var value = e.value;
                    var label = e.label;
                    arrValue.push(value);
                    console.log(arrValue.join());
                });
                var fee = $('#fee_resto_mr').val();
                updateMRFee(arrValue.join(), fee);
            });

            function updateMRFee(values, fee) {
                $.ajax({
                    method: "POST",
                    url: _sppath + "Fee/updateRestoMRFee",
                    data: {id_restaurant: values, fee: fee}
                })
                    .done(function (msg) {
//                        console.log(msg);
                        var json_obj = $.parseJSON(msg);//parse JSON
                        if (json_obj.status_code == 0) {
                            alert(json_obj.status_message);
                        }
                        if (json_obj.status_code == 1) {
                            alert(json_obj.status_message);
                            clearFields();
                        }
                    });
            }

            function clearFields() {
                lwrefresh(window.selected_page);
            }
        </script>
        <?php 
    }
 public static function getRestaurant($restaurant_id)
 {
     $objRestaurant = new MasterRestaurantModel();
     $arr = $objRestaurant->getWhere("id_restaurant={$restaurant_id}");
     $exp = explode(",", str_replace(" ", "", $objRestaurant->crud_webservice_allowed));
     $arrPicsToAddPhotoUrl = $objRestaurant->crud_add_photourl;
     $sem = array();
     foreach ($arr as $o) {
         foreach ($exp as $attr) {
             if (in_array($attr, $arrPicsToAddPhotoUrl)) {
                 $sem[$attr] = Generic::insertImageUrl($o->{$attr});
             } else {
                 $sem[$attr] = stripslashes($o->{$attr});
             }
             $sem['disc_mr'] = MasterOrder::getDiscountMR($restaurant_id);
         }
     }
     return $sem;
 }
 public static function getRestaurant($restaurant_id)
 {
     $objRestaurant = new MasterRestaurantModel();
     $arr = $objRestaurant->getWhere("id_restaurant={$restaurant_id}");
     $exp = explode(",", str_replace(" ", "", $objRestaurant->crud_webservice_allowed));
     $arrPicsToAddPhotoUrl = $objRestaurant->crud_add_photourl;
     $sem = array();
     foreach ($arr as $o) {
         foreach ($exp as $attr) {
             if (in_array($attr, $arrPicsToAddPhotoUrl)) {
                 if ($o->{$attr} != "" and $o->{$attr} != 0) {
                     $sem[$attr] = _BPATH . _PHOTOURL . $o->{$attr};
                 } else {
                     $sem[$attr] = "";
                 }
             } else {
                 $sem[$attr] = stripslashes($o->{$attr});
             }
         }
     }
     return $sem;
 }
 private function searchTypeDataSet($searchType, $identifier)
 {
     switch ($searchType) {
         //            case "0": {
         //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
         //            }
         case "1":
             $rt = new MasterRestaurantTypeModel();
             $arr = $rt->getWhere("name!=''");
             $arrRestoType = array();
             foreach ($arr as $restoType) {
                 $arrRestoType[$restoType->id_restaurant_type] = $restoType->name;
             }
             return new Leap\View\InputSelect($arrRestoType, "search_term{$identifier}", "search_term", $this->search_term);
         case "2":
             $r = new MasterCategoryModel();
             $arr = $r->getWhere("name!=''");
             $arrRestoTag = array();
             foreach ($arr as $tag) {
                 $arrRestoTag[$tag->id_category] = $tag->name;
             }
             return new Leap\View\InputSelect($arrRestoTag, "search_term{$identifier}", "search_term", $this->search_term);
         case "3":
             $r = new CuisineModel();
             $arrRC = $r->getWhere("name_cuisine!=''");
             $arrRestoCuisine = array();
             foreach ($arrRC as $cuisine) {
                 $arrRestoCuisine[$cuisine->id_cuisine] = $cuisine->name_cuisine;
             }
             return new Leap\View\InputSelect($arrRestoCuisine, "search_term{$identifier}", "search_term", $this->search_term);
             //            case "4": {
             //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
             //            }
             //            case "5": {
             //                $r = new MasterDishTagModel();
             //                $arr = $r->getWhere("name!=''");
             //                $arrDishTag = array();
             //                foreach ($arr as $tag) {
             //                    $arrDishTag[$tag->id_tag] = $tag->name;
             //                }
             //                return new Leap\View\InputSelect($arrDishTag, "search_term$identifier", "search_term", $this->search_term);
             //
             //            }
             //            case "6": {
             //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
             //            }
         //            case "4": {
         //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
         //            }
         //            case "5": {
         //                $r = new MasterDishTagModel();
         //                $arr = $r->getWhere("name!=''");
         //                $arrDishTag = array();
         //                foreach ($arr as $tag) {
         //                    $arrDishTag[$tag->id_tag] = $tag->name;
         //                }
         //                return new Leap\View\InputSelect($arrDishTag, "search_term$identifier", "search_term", $this->search_term);
         //
         //            }
         //            case "6": {
         //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
         //            }
         case "7":
             $rt = new MasterRestaurantModel();
             $arr = $rt->getWhere("name!=''");
             $arrResto = array();
             foreach ($arr as $resto) {
                 $arrResto[$resto->id_restaurant] = $resto->name;
             }
             return new Leap\View\InputSelect($arrResto, "search_term{$identifier}", "search_term", $this->search_term);
         case "8888":
             return new Leap\View\InputSelect(array("8888" => "Not Available"), "search_term{$identifier}", "search_term", $this->search_term);
         default:
             return new Leap\View\InputSelect(array("8888" => "Not Available"), "search_term{$identifier}", "search_term", $this->search_term);
     }
 }
 public static function getRestoNameByIDResto($id_restaurant)
 {
     $objResto = new MasterRestaurantModel();
     $arrResto = $objResto->getWhere("id_restaurant = '{$id_restaurant}'");
     if (count($arrResto) > 0) {
         return $arrResto[0]->name;
     } else {
         return "";
     }
 }
    public function overwriteForm($return, $returnfull)
    {
        $r = new MasterRestaurantModel();
        $arrR = $r->getWhere("aktiv='1'");
        $arrHelp = array("0" => "Nothing Selected");
        foreach ($arrR as $resto) {
            $arrHelp[$resto->id_restaurant] = $resto->name;
        }
        $return['id_restaurant'] = new \Leap\View\InputSelect($arrHelp, "id_restaurant", "id_restaurant", $this->id_restaurant);
        if (!isset($this->id_restaurant)) {
            $this->id_restaurant = key($arrHelp);
        }
        $d = new MasterDishModel();
        $arrD = $d->getWhere("id_restaurant='{$this->id_restaurant}' AND status='1'");
        $arrHelpDish = array("0" => "Nothing Selected");
        foreach ($arrD as $dish) {
            $arrHelpDish[$dish->id_dish] = $dish->name;
        }
        $return['id_dish'] = new Leap\View\InputSelect($arrHelpDish, "id_dish", "id_dish", $this->id_dish);
        ?>
        <script>
            $("#id_restaurant").change(function () {
                var selVal = $("select#id_restaurant option:selected").val();
                if (selVal == 0 || selVal == "" || selVal == "0") {
                    $('#id_dish').empty();
                    $('#id_dish').append($("<option></option>")
                        .attr("value", 0)
                        .text("Nothing Selected"));
                    return;
                }
                $.ajax({
                    method: "GET",
                    url: _sppath + "RecommendationFood/getDishByRestoId",
                    data: {id_restaurant: selVal}
                }).done(function (msg) {
//                        console.log(msg);
                    $('#id_dish').empty();
                    var json_obj = $.parseJSON(msg);//parse JSON
                    for (var i in json_obj) {
                        $('#id_dish')
                            .append($("<option></option>")
                                .attr("value", json_obj[i].value)
                                .text(json_obj[i].text));
                        console.log(json_obj[i].text);
                    }
                });
            });
        </script>
        <?php 
        if (!isset($this->start)) {
            $dt = leap_mysqldate();
        } else {
            $dt = $this->start;
        }
        $return['start'] = new \Leap\View\InputText("date", "start", "start", $dt);
        if (!isset($this->end)) {
            $dt = leap_mysqldate();
        } else {
            $dt = $this->end;
        }
        $return['end'] = new \Leap\View\InputText("date", "end", "end", $dt);
        return $return;
    }
 public function searchTypeDataSet()
 {
     $searchType = $_GET['search_type'];
     $json = array();
     switch ($searchType) {
         case "1":
             $rt = new MasterRestaurantTypeModel();
             $arr = $rt->getWhere("name!=''");
             foreach ($arr as $restoType) {
                 $b['value'] = $restoType->id_restaurant_type;
                 $b['text'] = $restoType->name;
                 $json[] = $b;
             }
             break;
         case "2":
             $r = new MasterCategoryModel();
             $arr = $r->getWhere("name!=''");
             foreach ($arr as $tag) {
                 $b['value'] = $tag->id_category;
                 $b['text'] = $tag->name;
                 $json[] = $b;
             }
             break;
         case "3":
             $r = new CuisineModel();
             $arrRC = $r->getWhere("name_cuisine!=''");
             foreach ($arrRC as $cuisine) {
                 $b['value'] = $cuisine->id_cuisine;
                 $b['text'] = $cuisine->name_cuisine;
                 $json[] = $b;
             }
             break;
             //            case "5": {
             //                $r = new MasterDishTagModel();
             //                $arr = $r->getWhere("name!=''");
             //                foreach ($arr as $tag) {
             //                    $b['value'] = $tag->id_tag;
             //                    $b['text'] = $tag->name;
             //                    $json[] = $b;
             //                }
             //                break;
             //            }
         //            case "5": {
         //                $r = new MasterDishTagModel();
         //                $arr = $r->getWhere("name!=''");
         //                foreach ($arr as $tag) {
         //                    $b['value'] = $tag->id_tag;
         //                    $b['text'] = $tag->name;
         //                    $json[] = $b;
         //                }
         //                break;
         //            }
         case "7":
             $rt = new MasterRestaurantModel();
             $arr = $rt->getWhere("name!=''");
             foreach ($arr as $resto) {
                 $b['value'] = $resto->id_restaurant;
                 $b['text'] = $resto->name;
                 $json[] = $b;
             }
             break;
         default:
             $b['value'] = 8888;
             $b['text'] = "Not Available";
             $json[] = $b;
             break;
     }
     echo json_encode($json);
     die;
 }
 public function regroupCategories()
 {
     $idResto = Generic::getOrDefault($_GET['id_restaurant'], Keys::$EMPTY);
     $catIdDefault = $this->createCategories("OTHERS");
     echo "<h1>ID Others : {$catIdDefault}</h1>";
     $r = new MasterRestaurantModel();
     if (Generic::IsNullOrEmptyString($idResto)) {
         $arrResto = $r->getAll();
     } else {
         $arrResto = $r->getWhere("id_restaurant='{$idResto}'");
     }
     foreach ($arrResto as $resto) {
         if (!$resto instanceof MasterRestaurantModel) {
             continue;
         }
         echo "<h2>{$resto->id_restaurant} - {$resto->name}</h2>";
         $resto->load = 1;
         if (Generic::IsNullOrEmptyString($resto->id_categories)) {
             $resto->id_categories = $catIdDefault;
             $resto->save();
             continue;
         }
         $arrNewCats = array();
         $arrCatIds = explode(',', $resto->id_categories);
         foreach ($arrCatIds as $catId) {
             if (!$this->isCategoryIdValid($catId)) {
                 $arrNewCats[] = $catId;
             }
         }
         $arrNewCats = array_unique($arrNewCats);
         if (count($arrNewCats) <= 0) {
             $resto->id_categories = $catIdDefault;
             $resto->save();
         }
         $resto->id_categories = implode(',', $arrNewCats);
         $resto->save();
         echo "<h3>{$resto->id_categories}</h3>";
     }
     $d = new MasterDishModel();
     //        $arrDish = $d->getAll();
     $arrDish = $d->getWhere("id_restaurant='62'");
     foreach ($arrDish as $dish) {
         if (!$dish instanceof MasterDishModel) {
             continue;
         }
         echo "<h2>{$dish->id_dish} - {$dish->name}-></h2>";
         if (!$this->isCategoryIdValid($dish->id_category)) {
             $dish->id_category = $catIdDefault;
             $dish->load = 1;
             $dish->save();
         }
     }
 }