public function overwriteRead($return)
 {
     $objs = $return['objs'];
     foreach ($objs as $obj) {
         if (isset($obj->id_restaurant)) {
             $resto = new MasterRestaurantModel();
             $resto->getByID($obj->id_restaurant);
             $obj->id_restaurant = $resto->name;
         }
         if (isset($obj->id_bank)) {
             $bank = new BankModel();
             $bank->getByID($obj->id_bank);
             $obj->id_bank = $bank->bank_name;
         }
         if (isset($obj->start_fee)) {
             $date = new DateTime($obj->start_fee);
             $obj->start_fee = $date->format('d.m.Y');
         }
         if (isset($obj->end_fee)) {
             $dateEnd = new DateTime($obj->end_fee);
             $obj->end_fee = $dateEnd->format('d.m.Y');
         }
     }
     return $return;
 }
    public function overwriteRead($return)
    {
        $objs = $return['objs'];
        foreach ($objs as $obj) {
            $obj->removeAutoCrudClick = array("status");
            if (isset($obj->status)) {
                $idR = $obj->id_request;
                if ($obj->status == "1") {
                    $obj->status = '<button type="button" id="button' . $idR . '" onclick="updateStatusCashout(' . $obj->status . ',' . $idR . ')" style="width: 100%;" class="btn btn-success">Paid</button>';
                } else {
                    if ($obj->status == "0") {
                        $obj->status = '<button type="button" id="button' . $idR . '" onclick="updateStatusCashout(' . $obj->status . ',' . $idR . ')" style="width: 100%;" class="btn btn-danger">Pay Now</button>';
                    }
                }
            }
            if (isset($obj->id_restaurant)) {
                if ($obj->id_restaurant != "") {
                    $r = new MasterRestaurantModel();
                    $r->getByID($obj->id_restaurant);
                    $obj->id_restaurant = $r->name;
                }
            }
            if (isset($obj->datetime_request)) {
                $d = strtotime("{$obj->datetime_request}");
                $obj->datetime_request = date("d M, y h:m a", $d);
            }
        }
        ?>
        <script>
            function updateStatusCashout(status, id) {
                if (status == "1") {
                    alert("ID " + id + " Already Paid");
                    return;
                } else {
                    if (!confirm("Set Request to Paid?")) {
                        return;
                    }
                }

                $.ajax({
                    method: "GET",
                    url: _sppath + "MasterCashOutRequest/setCashOutPaid",
                    data: {id_request: id}
                })
                    .done(function (msg) {
                        console.log(msg);
                        var json_obj = $.parseJSON(msg);//parse JSON
                        var statusCode = json_obj.status_code;
                        if (statusCode == 0) {
                            alert(json_obj.status_message);
                        } else {
                            alert(json_obj.status_message);
                        }
                        lwrefresh('CashOutRequest');
                    });
            }
        </script>
        <?php 
        return $return;
    }
 public function overwriteRead($return)
 {
     $objs = $return['objs'];
     foreach ($objs as $obj) {
         if (isset($obj->id_restaurant)) {
             if ($obj->id_restaurant == "0") {
                 $obj->id_restaurant = "Nothing Selected";
             } else {
                 $r = new MasterRestaurantModel();
                 $r->getByID($obj->id_restaurant);
                 $obj->id_restaurant = $r->name;
             }
         }
         if (isset($obj->id_dish)) {
             if ($obj->id_dish == "0") {
                 $obj->id_dish = "Nothing Selected";
             } else {
                 $d = new MasterDishModel();
                 $d->getByID($obj->id_dish);
                 $obj->id_dish = $d->name;
             }
         }
     }
     return $return;
 }
 public function overwriteForm($return, $returnfull)
 {
     $return['status'] = new Leap\View\InputSelect(array("1" => "Free", "0" => "Occupied"), "status", "status", $this->status);
     $return['availability'] = new Leap\View\InputSelect(array("1" => "Active", "0" => "Inactive"), "availability", "availability", $this->availability);
     $resto = new MasterRestaurantModel();
     $resto->getByID($this->id_restaurant);
     $return['id_restaurant'] = new \Leap\View\InputText("hidden", "id_restaurant", "id_restaurant", $this->id_restaurant);
     $return['resto_name'] = new \Leap\View\InputText("text", "resto_name", "resto_name", $resto->name);
     $return['resto_name']->setReadOnly(true);
     return $return;
 }
 public function overwriteRead($return)
 {
     $objs = $return['objs'];
     foreach ($objs as $obj) {
         if (isset($obj->id_restaurant)) {
             $resto = new MasterRestaurantModel();
             $resto->getByID($obj->id_restaurant);
             $obj->id_restaurant = $resto->name;
         }
     }
     return $return;
 }
 public function overwriteRead($return)
 {
     $objs = $return['objs'];
     foreach ($objs as $obj) {
         if (isset($obj->id_restaurant)) {
             $resto = new MasterRestaurantModel();
             $resto->getByID($obj->id_restaurant);
             $obj->id_restaurant = $resto->name;
         }
         if (isset($obj->start)) {
             $date = new DateTime($obj->start);
             $obj->start = $date->format('d.m.Y');
         }
         if (isset($obj->end)) {
             $dateEnd = new DateTime($obj->end);
             $obj->end = $dateEnd->format('d.m.Y');
         }
         ?>
         <script>
             $(document).ready(function () {
                 var date = new Date();
                 var i = 1;
                 while ($('#id_MR_' + i).text().trim()) {
                     var dateEndNow = $('#end_' + i).text().trim();
                     var dt1 = parseInt(dateEndNow.substring(0, 2));
                     var mon1 = parseInt(dateEndNow.substring(3, 5));
                     var yr1 = parseInt(dateEndNow.substring(6, 10));
                     var dateEnd = new Date(yr1, mon1 - 1, dt1);
                     var diff = dateEnd - date, sign = diff < 0 ? -1 : 1, milliseconds, seconds, minutes, hours, days;
                     diff = (diff - (milliseconds = diff % 1000)) / 1000;
                     diff = (diff - (seconds = diff % 60)) / 60;
                     diff = (diff - (minutes = diff % 60)) / 60;
                     days = (diff - (hours = diff % 24)) / 24;
                     if(days <2){
                         $("#MRDiscountModel_" + i).css("background-color", "red");
                     }
                     else{
                         
                         $("#MRDiscountModel_" + i).css("background-color", "yellow");
                     }
                     i = i + 1;
                 }
             });
             </script>
             <?php 
     }
     return $return;
 }
 public function requestCashOut()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $idResto = Generic::mustCheck($_GET['id_restaurant'], "No ID Restaurant Found");
     $amount = Generic::mustCheck($_GET['amount'], "No Amount Found");
     if ($amount == "0") {
         Generic::errorMsg("Zero Amount not Allowed");
     }
     $bankAcc = new RestoBankAccModel();
     $arrBank = $bankAcc->getWhere("id_restaurant='{$idResto}'");
     if (count($arrBank) <= 0) {
         Generic::errorMsg("You Have Not Set Your Cash Out Account");
     }
     $req = new MasterCashOutRequestModel();
     $arrReq = $req->getWhere("id_restaurant='{$idResto}' AND status='0'");
     if (count($arrReq) > 0) {
         Generic::errorMsg("You Already Request Cash Out");
     }
     $resto = new MasterRestaurantModel();
     $resto->getByID($idResto);
     $cashOut = new MasterCashOutRequestModel();
     $cashOut->id_restaurant = $idResto;
     $cashOut->datetime_request = leap_mysqldate();
     $cashOut->amount = $amount;
     $cashOut->status = 0;
     $idNewRequest = $cashOut->save();
     $tr = new MasterRestoTransactionModel();
     $tr->id_request = $idNewRequest;
     $tr->id_restaurant = $idResto;
     $tr->gross_amount = (double) $amount * -1;
     $tr->net_amount = (double) $amount * -1;
     $tr->approved = "0";
     $tr->type_transaction = "2";
     $tr->datetime_transaction = leap_mysqldate();
     $tr->mr_fee = 0;
     $tr->credit_card_fee = 0;
     $tr->other_fee = 0;
     $tr->bank_disc = 0;
     $tr->save();
     $json['status_code'] = 1;
     $json['results']['messages'] = "success";
     echo json_encode($json);
     die;
 }
 public function requestRestoPermission($userModel, $tableModel, $paymentMethod)
 {
     $resto = new MasterRestaurantModel();
     $resto->getByID($tableModel['id_restaurant']);
     //TODO CHECK RESTAURANT EMPTY, IF EMPTY goto ERROR()  -> sdh di kerjakan
     if ($resto == null) {
         Generic::errorMsg("Restaurant is empty");
     }
     $msg = $userModel->user_name . " want to open table no. " . $tableModel['table_number'];
     $j["user_id"] = $userModel->id_user;
     $j["user_name"] = $userModel->full_name;
     $j["user_pic"] = _BPATH . _PHOTOURL . $userModel->pic;
     $j["id_table"] = $tableModel['id_table'];
     $j["table_number"] = $tableModel['table_number'];
     $j["payment_method"] = $paymentMethod;
     $j['datetime'] = date('Y-m-d H:i:s');
     $restoId = $tableModel['id_restaurant'];
     $this->pushToRestoCashier($tableModel['id_restaurant'], $msg, json_encode($j), Push::$typeRequestOpenTable);
 }
 public function overwriteRead($return)
 {
     $objs = $return['objs'];
     //        pr($objs);
     foreach ($objs as $obj) {
         if (isset($obj->status)) {
             if ($obj->status == "1") {
                 $obj->status = "Active";
             } else {
                 $obj->status = "Inactive";
             }
         }
         if (isset($obj->id_restaurant)) {
             $resto = new MasterRestaurantModel();
             $resto->getByID($obj->id_restaurant);
             $obj->id_restaurant = $resto->name;
         }
     }
     return $return;
 }
 /**
  * Invoice constructor.
  */
 public function __construct($idOrder, $calcPending = 1)
 {
     $this->calcPending = $calcPending;
     $this->idOrder = $idOrder;
     $order = new MasterOrderModel();
     $order->getByID($idOrder);
     $restaurant = new MasterRestaurantModel();
     $restaurant->getByID($order->id_restaurant);
     $this->idRestaurant = $order->id_restaurant;
     $this->restaurantName = $restaurant->name;
     $user = new UserModel();
     $user->getByID($order->id_user);
     $this->idUser = $order->id_user;
     $this->userName = $user->full_name;
     $this->paymentMethod = $order->payment_method;
     $this->discRestaurant = $restaurant->disc_resto;
     $this->discMR = Util::getDiscountMR($order->id_restaurant);
     $this->feeMR = Util::getFeeMR($order->id_restaurant);
     if ($order->payment_method == Keys::$PAYMENT_TYPE_CREDIT_CARD) {
         $this->discBank = Util::getDiscountCreditCard($order->id_restaurant, $user->payment_bank_id);
         $this->feeNominalBank = Util::getFeeNominalCreditCard($order->id_restaurant, $user->payment_bank_id);
         $this->feePercentBank = Util::getFeePercentCreditCard($order->id_restaurant, $user->payment_bank_id);
     } else {
         if ($order->payment_method == Keys::$PAYMENT_TYPE_DOKU_WALLET) {
             $this->discBank = 0;
             $this->feeNominalBank = 0;
             $this->feePercentBank = 0;
         } else {
             $this->discBank = 0;
             $this->feeNominalBank = 0;
             $this->feePercentBank = 0;
         }
     }
     $this->serviceCharge = $restaurant->service_charge;
     $this->taxCharge = $restaurant->tax_pb_1;
     $this->otherCharge = $restaurant->other_charge;
     $this->updateSubTotal();
     $this->assignValue();
 }
 public function overwriteRead($return)
 {
     $objs = $return['objs'];
     foreach ($objs as $obj) {
         if (isset($obj->id_restaurant)) {
             if ($obj->id_restaurant != "") {
                 $r = new MasterRestaurantModel();
                 $r->getByID($obj->id_restaurant);
                 $obj->id_restaurant = $r->name;
             }
         }
         if (isset($obj->type_transaction)) {
             if ($obj->type_transaction == "1") {
                 $obj->type_transaction = "User Transaction";
             } elseif ($obj->type_transaction == "2") {
                 $obj->type_transaction = "Cash Out Request";
             } else {
                 $obj->type_transaction = "Error";
             }
         }
         if (isset($obj->approved)) {
             if ($obj->approved == "1") {
                 $obj->approved = "Yes";
             } elseif ($obj->approved == "0") {
                 $obj->approved = "No";
             } else {
                 $obj->approved = "Error";
             }
         }
         if (isset($obj->datetime_transaction)) {
             $d = strtotime("{$obj->datetime_transaction}");
             $obj->datetime_transaction = date("d M Y h:m a", $d);
         }
     }
     return $return;
 }
 public function getCategoriesByResto()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $idRestaurant = Generic::mustCheck($_GET['id_restaurant'], Keys::$ERR_NOT_FOUND_ID_RESTAURANT);
     $objResto = new MasterRestaurantModel();
     $objResto->getByID($idRestaurant);
     if (!Generic::IsNullOrEmptyString($objResto->id_categories)) {
         $arrCategories = explode(",", $objResto->id_categories);
     } else {
         $arrCategories = array();
     }
     $categories = array();
     foreach ($arrCategories as $idCat) {
         $c = new MasterCategoryModel();
         $c->getByID($idCat);
         if ($c->id_category) {
             $categories[] = $c->name;
         }
     }
     //        pr($arrCategories);
     //        pr($categories);
     $results['categories'] = $categories;
     $rawTags = array();
     $id_dish = isset($_GET['id_dish']) ? addslashes($_GET['id_dish']) : "";
     if ($id_dish) {
         $dish = new MasterDishModel();
         $dish->getByID($id_dish);
         $tagsIds = explode(",", $dish->dish_tags);
         if (count($tagsIds) != 0) {
             foreach ($tagsIds as $tagsId) {
                 if ($tagsId == null || $tagsId == "") {
                     continue;
                 }
                 $dishTag = new MasterDishTagModel();
                 $dishTag->getByID($tagsId);
                 $b["id_tag"] = $dishTag->id_tag;
                 $b["name"] = $dishTag->name;
                 $rawTags[] = $b;
             }
         }
     }
     $results['raw_tags'] = $rawTags;
     Generic::finish($results);
 }
 public function setRestoCategories()
 {
     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) {
         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);
     $jsonCategories = json_decode($category);
     $jsonCategorieshlp = array();
     foreach ($jsonCategories as $cat) {
         $jsonCategorieshlp[] = $cat->category_name;
     }
     if (!in_array("OTHERS", $jsonCategorieshlp)) {
         $jsonCategorieshlp[] = "OTHERS";
     }
     $jsonCategorieshlp = array_unique($jsonCategorieshlp);
     $objCategory = new MasterCategoryModel();
     $idCategories = array();
     foreach ($jsonCategorieshlp as $category) {
         $arrCategory = $objCategory->getWhere("name = '{$category}'");
         if (count($arrCategory) == 0 && !Generic::IsNullOrEmptyString($category)) {
             $oc = new MasterCategoryModel();
             $oc->name = strtoupper($category);
             $oc->status = "1";
             $oc->is_drink = "0";
             $oc->save();
         }
     }
     foreach ($jsonCategorieshlp as $category) {
         $arrCategory = $objCategory->getWhere("name = '{$category}'");
         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 addDishToMyFavorite()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $idUser = Generic::mustCheck($_GET['id_user'], "User ID not Found");
     $idDish = Generic::mustCheck($_GET['id_dish'], "Dish ID not Found");
     $user = new UserModel();
     $user->getByID($idUser);
     $arrFavDishIds = explode(',', $user->fav_dishes_ids);
     $alreadyInFavorite = count($arrFavDishIds) <= 0 ? false : in_array($idDish, $arrFavDishIds);
     if ($alreadyInFavorite) {
         Generic::errorMsg("Already Favorited");
     }
     if (count($arrFavDishIds) <= 0) {
         $user->fav_dishes_ids = $idDish;
     } else {
         $arrFavDishIds[] = $idDish;
         $arrFavDishIds = array_unique($arrFavDishIds);
         $user->fav_dishes_ids = implode(',', $arrFavDishIds);
     }
     $dish = new MasterDishModel();
     $dish->getByID($idDish);
     $dish->fav = $dish->fav + 1;
     $dish->save();
     $resto = new MasterRestaurantModel();
     $resto->getByID($dish->id_restaurant);
     $resto->fav = $resto->fav + 1;
     $resto->save();
     $user->save();
     $this->success();
 }
 public function clearRestoCats()
 {
     $catIdDefault = $this->createCategories("OTHERS");
     $rm = new MasterRestaurantModel();
     $arrResto = $rm->getAll();
     foreach ($arrResto as $r) {
         $resto = new MasterRestaurantModel();
         $resto->getByID($r->id_restaurant);
         $resto->id_categories = $catIdDefault;
         $resto->save();
     }
 }
 public function updateRestoMRFee()
 {
     $idsResto = Generic::mustCheck($_POST['id_restaurant'], "No Restaurant IDs Found");
     $fee = Generic::mustCheck($_POST['fee'], "No Fee Found");
     if (!is_numeric($fee)) {
         Generic::errorMsg("Fee Must Numbers");
     }
     if (doubleval($fee) > 100) {
         Generic::errorMsg("Fee Max 100%");
     }
     $ids = explode(',', $idsResto);
     if (count($ids) <= 0) {
         Generic::errorMsg("Empty Id");
     }
     $updateAll = in_array('0', $ids);
     if ($updateAll) {
         $r = new MasterRestaurantModel();
         $arrR = $r->getAll();
         foreach ($arrR as $singleR) {
             unset($resto);
             $resto = new MasterRestaurantModel();
             $resto->getByID($singleR->id_restaurant);
             $log = new LogDiscFeeModel();
             $log->id_reference = $singleR->id_restaurant;
             $log->change_type = "Fee MR";
             $log->change_from = Generic::IsNullOrEmptyString($resto->mr_fee) ? "0" : $resto->mr_fee;
             $log->change_to = $fee;
             $log->change_date_time = leap_mysqldate();
             $log->save();
             $resto->mr_fee = $fee;
             $resto->save();
         }
     } else {
         foreach ($ids as $id) {
             unset($resto);
             $resto = new MasterRestaurantModel();
             $resto->getByID($id);
             $log = new LogDiscFeeModel();
             $log->id_reference = $id;
             $log->change_type = "Fee MR";
             $log->change_from = Generic::IsNullOrEmptyString($resto->mr_fee) ? "0" : $resto->mr_fee;
             $log->change_to = $fee;
             $log->change_date_time = leap_mysqldate();
             $log->save();
             $resto->mr_fee = $fee;
             $resto->save();
         }
     }
     $json['status_code'] = 1;
     $json['status_message'] = "success";
     echo json_encode($json);
     die;
 }
    public function createQRbyRestoID()
    {
        $id_restaurant = $_GET['id_restaurant'];
        $quantityQR = $_GET['quantityQR'];
        $id_request = $_GET['id_request'];
        $objResto = new MasterRestaurantModel();
        $objResto->getByID($id_restaurant);
        $objResto->table_quantity = $objResto->table_quantity + $quantityQR;
        $objResto->load = 1;
        $objResto->save();
        //        pr($objResto);
        $objQRRequest = new QRRequestModel();
        $objQRRequest->getByID($id_request);
        $objQRRequest->createdOn = leap_mysqldate();
        //        pr($objQRRequest);
        $objQRRequest->status = "1";
        $objQRRequest->load = 1;
        $objQRRequest->save();
        $objQR = new QRModel();
        global $db;
        $qtydiDB = "SELECT max(id_qr) as max from menurevo__QR";
        $arr = $db->query($qtydiDB, 1);
        for ($i = $arr->max + 1; $i <= $quantityQR + $arr->max; $i++) {
            $encode = addslashes(base64_encode($i));
            $q = "INSERT INTO menurevo__QR (id_qr, textQR,status) VALUES({$i},'{$encode}',0)";
            $id = $db->query($q, 1);
        }
        $pdf = new FPDF();
        $myarray = array(1, 2, 3);
        $pdf->SetFont('Arial', 'B', 16);
        for ($i = $arr->max + 1; $i <= $quantityQR + $arr->max; $i++) {
            $pdf->AddPage();
            $pdf->Image("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chld=L|0&chl=" . base64_encode($i), 60, 30, 90, 0, 'PNG');
            $pdf->Text(85, 130, "Menu Revolution");
        }
        $pdf->Output();
        ?>


        <html>
            <head>
                <title>Print QR-Code</title>
                <style>
                    body{ margin: 0; padding: 0; font-family: verdana;}
                </style>
            </head>
            <body>
        <?php 
        for ($i = $arr->max + 1; $i <= $quantityQR + $arr->max; $i++) {
            ?>
                    <!--                    <div style="width:800px; border-bottom: 3px dashed #aaaaaa; margin-bottom: 20px;">
                                            <img src="<?php 
            echo _SPPATH;
            ?>
images/headerleap.jpg"  width="100%">-->

                    <div style="padding:40px; text-align: center;">
                        <!--<div style="letter-spacing: 2px; font-size: 18px; font-weight: bold; padding-bottom: 20px;"> <?php 
            echo $mur->admin_nama_depan;
            ?>
</div>-->
                        <img src="<?php 
            echo "https://chart.googleapis.com/chart?chs=150x150&cht=qr&chld=L|0&chl=" . base64_encode($i);
            ?>
"alt="QR">

                    </div>

                    <!--</div>--> 

            <?php 
        }
        ?>
 </body>

        </html><?php 
        die('finished');
    }
 public function getAllActiveRestoUser()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $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;
     }
     $json = array();
     $json['status_code'] = 1;
     $objRestoUsers = new RestaurantUserModel();
     $arrRestoUsers = $objRestoUsers->getWhere("id_restaurant = '{$id_restaurant}' AND status = '1'");
     MasterDish::checkCount($arrRestoUsers);
     $sem = array();
     foreach ($arrRestoUsers as $val) {
         $sem["users"][] = RestaurantUser::getRestaurantUser($val->id_user);
     }
     $resto = new MasterRestaurantModel();
     $resto->getByID($id_restaurant);
     $sem['now_open'] = $resto->now_open;
     $sem['order_number'] = $resto->order_number;
     $json['results'] = $sem;
     echo json_encode($json);
     die;
 }
 public function deleteDish()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $json = array();
     $json['status_code'] = 1;
     $id_dish = isset($_POST['id_dish']) ? addslashes($_POST['id_dish']) : "";
     $id_restaurant = isset($_POST['id_restaurant']) ? addslashes($_POST['id_restaurant']) : "";
     if (!$id_dish) {
         Generic::errorMsg("No Dish ID Found");
     }
     $dish = new MasterDishModel();
     $dish->getByID($id_dish);
     if (!$id_restaurant) {
         Generic::errorMsg("No Restaurant ID Found");
     }
     $resto = new MasterRestaurantModel();
     $resto->getByID($id_restaurant);
     if ($dish->id_restaurant != $resto->id_restaurant) {
         Generic::errorMsg("Mismatch Dish and Restaurant");
     }
     if ($dish->status == "0") {
         Generic::errorMsg("Dish Already Deleted");
     } else {
         $dish->status = "0";
         $dish->save();
     }
     $json['status_message'] = 'Success';
     echo json_encode($json);
     die;
 }
 public function updateStatusProgress()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $idDish = $_GET["id_dish"];
     $idOrder = $_GET["id_order"];
     $idResto = $_GET["id_restaurant"];
     //TODO cek id_resto di order header apakah sama degan $Resto
     $objOrder = new MasterOrderModel();
     $arrOrder = $objOrder->getWhere("id_order='{$idOrder}' AND order_now='1' AND status_payment='0'");
     //        $objOrder->getByID($idOrder);
     if ($arrOrder[0]->id_restaurant != $idResto) {
         Generic::errorMsg("ID Resto in Order is not same as id resto!");
     }
     $resto = new MasterRestaurantModel();
     $resto->getByID($idResto);
     $od = new OrderDetailModel();
     $arrOrDetails = $od->getWhere("id_order='{$idOrder}' AND id_dish='{$idDish}' AND status_progress > 3");
     Generic::checkCountWithMsg($arrOrDetails, "Dish already out!");
     //pr($arrOrDetails);
     foreach ($arrOrDetails as $oDetails) {
         if ($oDetails->status_progress < 2) {
             pr($oDetails->status_progress);
             $oDetails->status_progress = $oDetails->status_progress + 1;
             $oDetails->load = 1;
             $oDetails->save();
             $sp = $oDetails->status_progress;
         } else {
             //TODO ERROR order already out
         }
     }
     $order = $this->updateOrderHeaderStatusProgress($idOrder);
     $ids = $order->user_guest_id + "," + $order->id_user;
     $msg = "Your ";
     if ($order->type_order == "0") {
         $msg .= "Dine In ";
     } elseif ($order->type_order == "3") {
         $msg .= "Take Away ";
     } else {
         $json["status_code"] = 1;
         $json["results"]["id_dish"] = $idDish;
         $json["results"]["id_order"] = $idDish;
         $json["results"]["id_restaurant"] = $idDish;
         $json["results"]["status_progress"] = $sp;
         $json["results"]["order_status_progress"] = $order->status_progress;
         echo json_encode($json);
         die;
     }
     $msg .= "order's status at {$resto->name} has been updated";
     $j["id_order"] = $idOrder;
     $json = json_encode($j);
     $_POST["ids"] = $ids;
     $_POST["msg"] = $msg;
     $_POST["json"] = $json;
     $_POST["type"] = 41;
     $p = new PushTo();
     $p->users();
     echo json_encode($json);
     die;
 }
 public function settlePayment()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $id_order = $_GET["id_order"];
     $id_user = $_GET["id_user"];
     $user = new UserModel();
     $user->getByID($id_user);
     $order = new MasterOrderModel();
     $order->getByID($id_order);
     $objResto = new MasterRestaurantModel();
     $objResto->getByID($order->id_restaurant);
     if ($user->payment_id == null || $user->payment_id == "0") {
         Generic::errorMsg("No Payment Method");
     }
     try {
         $result = Braintree_PaymentMethodNonce::create($user->braintree_id);
         $nonce = $result->paymentMethodNonce->nonce;
         $resultSale = Braintree_Transaction::sale(['amount' => $order->grand_total, 'paymentMethodNonce' => $nonce, 'options' => ['submitForSettlement' => True]]);
     } catch (Exception $e) {
         Generic::errorMsg($e->getMessage());
     }
     //        $transaction = $resultSale->transaction;
     //        $order->transaction_id = $transaction->id;
     //        $order->load = 1;
     //        $order->status_payment = '1';
     //        $orderObj->nonce_cc = $nonce;
     //        $order->isPaid = '1';
     //        $order->save();
     pr($resultSale);
     //        $json['results'] = "Your Payment was successful with ID Order " . $id_order;
     //        echo json_encode($json);
     //,
     //                        'descriptor' => [
     //                            'name' => $objResto->name . " - " . $objResto->order_number
     //                        ]
     //        die();
 }
 public function updateRestoMRDiscount()
 {
     $idsResto = Generic::mustCheck($_POST['id_restaurant'], "No Restaurant IDs Found");
     $disc = Generic::mustCheck($_POST['discount'], "No Discount Found");
     if (!is_numeric($disc)) {
         Generic::errorMsg("Discount Must Numbers");
     }
     if (strlen(trim($disc)) > 2) {
         Generic::errorMsg("Discount Max 2 Digits");
     }
     $ids = explode(',', $idsResto);
     if (count($ids) <= 0) {
         Generic::errorMsg("Empty Id");
     }
     $updateAll = in_array('0', $ids);
     if ($updateAll) {
         $r = new MasterRestaurantModel();
         $arrR = $r->getAll();
         foreach ($arrR as $singleR) {
             unset($resto);
             $resto = new MasterRestaurantModel();
             $resto->getByID($singleR->id_restaurant);
             unset($logdisc);
             $logdisc = new LogDiscFeeModel();
             $logdisc->id_reference = $resto->id_restaurant;
             $logdisc->change_type = "Discount MR";
             $logdisc->change_from = Generic::IsNullOrEmptyString($resto->disc_mr) ? "0" : $resto->disc_mr;
             $logdisc->change_to = $disc;
             $logdisc->change_date_time = leap_mysqldate();
             $logdisc->save();
             $resto->disc_mr = $disc;
             $resto->save();
         }
     } else {
         foreach ($ids as $id) {
             unset($resto);
             $resto = new MasterRestaurantModel();
             $resto->getByID($id);
             unset($logdisc);
             $logdisc = new LogDiscFeeModel();
             $logdisc->id_reference = $resto->id_restaurant;
             $logdisc->change_type = "Discount MR";
             $logdisc->change_from = Generic::IsNullOrEmptyString($resto->disc_mr) ? "0" : $resto->disc_mr;
             $logdisc->change_to = $disc;
             $logdisc->change_date_time = leap_mysqldate();
             $logdisc->save();
             $resto->disc_mr = $disc;
             $resto->save();
         }
     }
     $json['status_code'] = 1;
     $json['status_message'] = "success";
     echo json_encode($json);
     die;
 }
 public static function isRestaurantOpen($idResto)
 {
     $resto = new MasterRestaurantModel();
     $resto->getByID($idResto);
     return $resto->now_open == "1";
 }
 public function requestRestoPermission($userModel, $tableModel)
 {
     $resto = new MasterRestaurantModel();
     $resto->getByID($tableModel->id_restaurant);
     // persiapan push message
     $msg = $userModel->user_name . " want to open table no. " . $tableModel->table_number;
     $j["user"] = $userModel;
     $j["table"] = $tableModel;
     //simpan di tracker untuk nantinya dilihat di inbox
     $tracker = new TrackerRequestModel();
     $tracker->id_from = $userModel->id_user;
     $tracker->id_to = $tableModel->id_restaurant;
     $tracker->id_reference = $tableModel->id_table;
     $tracker->type = $this->typeRequestOpenTable;
     $tracker->title = "Request Open Table";
     $tracker->message = $msg;
     $tracker->image = "";
     $tracker->readed = 0;
     $tracker->answered = 0;
     $tracker->canceled = 0;
     $tracker->status = 1;
     $tracker->save();
     $this->pushToRestoCashier($tableModel->id_restaurant, $msg, json_encode($j), $this->typeRequestOpenTable);
 }
 public function sendwithreturn()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $json = array();
     $json['status_code'] = 1;
     $idOrder = $_GET['id_order'];
     $toEmail = $_GET['email'];
     $order = new MasterOrderModel();
     $order->getByID($idOrder);
     $resto = new MasterRestaurantModel();
     $resto->getByID($order->id_restaurant);
     $subject = "Your receipt from " . $restoName . " , Receipt#" . $idOrder;
     $od = new OrderDetailModel();
     $d = new MasterDishModel();
     //      $dompdf = new Dompdf\Dompdf();
     global $db;
     $q = "SELECT {$od->table_name}.id_dish, {$d->table_name}.name, SUM(quantity) AS sum_qty, {$d->table_name}.price,\nSUM({$od->table_name}.price) AS sum_price, status_progress FROM `{$od->table_name}`\nRIGHT JOIN {$d->table_name} ON {$od->table_name}.id_dish = {$d->table_name}.id_dish WHERE id_order='{$idOrder}' GROUP BY id_dish";
     $arrDetails = $db->query($q, 2);
     $css_boot = _BPATH . "themes/tbstheme_ori/css/bootstrap.min.css";
     $image1 = _BPATH . _PHOTOURL . $resto->image_logo;
     if ($image1 == "") {
         $image1 = _BPATH . _PHOTOURL . "noimage.jpg";
     }
     $head = "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
     $head = "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>Notification email</title>";
     $head = $head . "<link href=" . $css_boot . " rel=\"stylesheet\">";
     $head = $head . "<link href=\"https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700&subset=latin,latin-ext\" rel=\"stylesheet\" type=\"text/css\">";
     $head = $head . "</head>";
     $html = "<div style=\"max-width: 800px; box-shadow: 0 0 10px rgba(0, 0, 0, .15); font-size: 16px; line-height: 24px; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; color: #555; margin: auto; padding: 30px; border: 1px solid #eee;\">\n<table style=\"width: 100%; line-height: inherit; text-align: left;\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td style=\"vertical-align: top; padding: 5px;\" colspan=\"2\">\n<table style=\"width: 100%; line-height: inherit; text-align: left;\">\n<tbody>\n<tr>\n<td style=\"vertical-align: top; font-size: 45px; line-height: 45px; color: #333; width: 50%; display: block; text-align: left; padding: 5px 5px 20px;\" align=\"left\" valign=\"top\"><img style=\"width: 50%; max-width: 300px;\" src=" . $image1 . " alt=\"\" /></td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; width: 100%; display: block; text-align: left; padding: 5px 5px 40px;\" align=\"center\" valign=\"top\">";
     $html = $html . "<strong>" . $resto->name . "</strong><br />";
     $html = $html . $resto->district . " - " . $resto->city . " <br>";
     $html = $html . "Phone : " . $resto->phone_no . "</td>";
     $html = $html . "</tr>\n</tbody>\n</table>\n</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; padding: 5px;\" colspan=\"2\" valign=\"top\">\n<table style=\"width: 100%; line-height: inherit; text-align: left;\">\n<tbody>\n<tr>\n<td style=\"vertical-align: top; text-align: left; t width: 50%; display: block; padding: 5px 5px 20px;\" align=\"left\" valign=\"top\">";
     $html = $html . "</tr>";
     $html = $html . "Receipt #: " . $idOrder;
     $html = $html . "<br/>";
     $html = $html . "  Server : ";
     if ($order->type_order == "1" || $order->type_order == "3") {
         $html = $html . "Apps Order";
     } else {
         $html = $html . $order->server_name;
     }
     $html = $html . "<br/>";
     $html = $html . " Time Order : " . date("d M, Y H:m", strtotime($order->datetime_order));
     $html = $html . "<br/>";
     $html = $html . " Payment Method : " . Generic::selectPaymentMethod($order->status_payment);
     $html = $html . "<br/>";
     if ($order->type_order == "1" || $order->type_order == "3") {
         $html = $html . "Apps Order";
     } else {
         $html = $html . "Manual Order";
     }
     $html = $html . "<br/>";
     $html = $html . "</td>";
     $html = $html . "</tr> \n</tbody>\n</table>\n</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ddd; font-weight: bold; background-color: #eee; padding: 5px;\" valign=\"top\" bgcolor=\"#eee\">Item</td>\n<td style=\"vertical-align: top; text-align: right; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ddd; font-weight: bold; background-color: #eee; padding: 5px;\" align=\"center\" valign=\"top\" bgcolor=\"#eee\">#</td>\n<td style=\"vertical-align: top; text-align: right; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ddd; font-weight: bold; background-color: #eee; padding: 5px;\" align=\"right\" valign=\"top\" bgcolor=\"#eee\">Price</td>\n  <td style=\"vertical-align: top; text-align: right; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ddd; font-weight: bold; background-color: #eee; padding: 5px;\" align=\"right\" valign=\"top\" bgcolor=\"#eee\">Total</td>\n</tr>";
     foreach ($arrDetails as $details) {
         $void = "";
         if ($details->status_progress == "9") {
             $void = "<strong> Voided </strong>";
             $details->price = 0;
             $details->sum_price = 0;
         }
         $html = $html . "<tr><td style=\"vertical-align: top; border-bottom-width: 1px; border-bottom-color: #eee; border-bottom-style: solid; padding: 5px;\" valign=\"top\">" . $details->name . $void . "</td>";
         $html = $html . "<td style=\"vertical-align: top; text-align: right; border-bottom-width: 1px; border-bottom-color: #eee; border-bottom-style: solid; padding: 5px;\" align=\"right\" valign=\"top\">" . $details->sum_qty . "</td>";
         $html = $html . "<td style=\"vertical-align: top; text-align: right; border-bottom-width: 1px; border-bottom-color: #eee; border-bottom-style: solid; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($details->price) . "</td>";
         $html = $html . "<td style=\"vertical-align: top; text-align: right; border-bottom-width: 1px; border-bottom-color: #eee; border-bottom-style: solid; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($details->sum_price) . "</td></tr>";
     }
     $html = $html . "<tr>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Total : </td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->total_cost) . "</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Disc Resto : </td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->disc_resto) . "</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Disc Credit Card : </td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->disc_bank) . "</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Disc MR : </td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->disc_mr) . "</td>\n</tr>\n\n<tr>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Tax PB1 : </td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->tax_pb1) . "</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Service Charge : </td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->tax_pb1) . "</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Other Charge : </td>\n<td style=\"vertical-align: top; text-align: right; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->tax_pb1) . "</td>\n</tr>\n<tr>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\"></td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">Grand Total :</td>\n<td style=\"vertical-align: top; text-align: right; border-top-style: solid; border-top-width: 2px; border-top-color: #eee; font-weight: bold; padding: 5px;\" align=\"right\" valign=\"top\">" . Generic::formatRupiah($order->grand_total) . "</td>\n</tr>\n\n</tbody>\n</table>\n</div></html>";
     $html = $head . $html;
     $mail = new Leapmail();
     $res = $mail->sendEmailHTML($toEmail, $subject, $html);
     return $res;
 }
 private function viewSearchTerm($searchType, $searchTerm)
 {
     switch ($searchType) {
         case "1":
             $rt = new MasterRestaurantTypeModel();
             $rt->getByID($searchTerm);
             return $rt->name;
         case "2":
             $r = new MasterCategoryModel();
             $r->getByID($searchTerm);
             return $r->name;
         case "3":
             $r = new CuisineModel();
             $r->getByID($searchTerm);
             return $r->name_cuisine;
             //            case "4": {
             //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
             //            }
             //            case "5": {
             //                $r = new MasterDishTagModel();
             //                $r->getByID($searchTerm);
             //                return $r->name;
             //            }
             //            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();
         //                $r->getByID($searchTerm);
         //                return $r->name;
         //            }
         //            case "6": {
         //                return new Leap\View\InputText("text", "search_term", "search_term", $this->search_term);
         //            }
         case "7":
             $r = new MasterRestaurantModel();
             $r->getByID($searchTerm);
             return $r->name;
         case "8888":
             return "Not Available";
         default:
             return "Not Available";
     }
 }
 public function updateStatusProgress()
 {
     $idDish = $_GET["id_dish"];
     $idOrder = $_GET["id_order"];
     $idResto = $_GET["id_restaurant"];
     //TODO cek id_resto di order header apakah sama degan $Resto
     $resto = new MasterRestaurantModel();
     $resto->getByID($resto);
     $od = new OrderDetailModel();
     $arrOrDetails = $od->getWhere("id_order='{$idOrder}' AND id_dish='{$idDish}'");
     foreach ($arrOrDetails as $oDetails) {
         if ($oDetails->status_progress < 2) {
             $oDetails->status_progress++;
             $sp = $oDetails->status_progress;
         } else {
             //TODO ERROR order already out
         }
     }
     $order = $this->updateOrderHeaderStatusProgress($idOrder);
     $ids = $order->user_guest_id + "," + $order->id_user;
     $msg = "Your ";
     if ($order->type_order == "0") {
         $msg .= "Dine In ";
     } elseif ($order->type_order == "3") {
         $msg .= "Take Away ";
     } else {
         $json["status_code"] = 1;
         $json["results"]["id_dish"] = $idDish;
         $json["results"]["id_order"] = $idDish;
         $json["results"]["id_restaurant"] = $idDish;
         $json["results"]["status_progress"] = $sp;
         $json["results"]["order_status_progress"] = $order->status_progress;
         die;
     }
     $msg .= "order's status at {$resto->name} has been updated";
     $j["id_order"] = $idOrder;
     $json = json_encode($j);
     $_POST["ids"] = $ids;
     $_POST["msg"] = $msg;
     $_POST["json"] = $json;
     $_POST["type"] = 41;
     $p = new PushTo();
     $p->users();
     die;
 }
 function createQRbyRestoID()
 {
     $id_restaurant = $_POST['id_restaurant'];
     $quantityQR = $_POST['quantityQR'];
     $objResto = new MasterRestaurantModel();
     $objResto->getByID($id_restaurant);
     $objResto->table_quantity = $objResto->table_quantity + $quantityQR;
     $objResto->load = 1;
     $objResto->save();
 }
    public function overwriteRead($return)
    {
        $objs = $return['objs'];
        $dateNow = new DateTime('now');
        foreach ($objs as $obj) {
            foreach ($obj as $key => $val) {
                if ($key == "end") {
                    $datetimeEnd = new DateTime($val);
                    $interval = $dateNow->diff($datetimeEnd);
                    if ($dateNow->format("Y.m.d") > $datetimeEnd->format("Y.m.d")) {
                    }
                    if ($interval->format('%R%a') >= 1) {
                    } else {
                    }
                }
            }
            if (isset($obj->id_restaurant)) {
                $resto = new MasterRestaurantModel();
                $resto->getByID($obj->id_restaurant);
                $obj->id_restaurant = $resto->name;
            }
            if (isset($obj->id_bank)) {
                $bank = new BankModel();
                $bank->getByID($obj->id_bank);
                $obj->id_bank = $bank->bank_name;
            }
            if (isset($obj->start)) {
                $date = new DateTime($obj->start);
                $obj->start = $date->format('d.m.Y');
            }
            if (isset($obj->end)) {
                $dateEnd = new DateTime($obj->end);
                $obj->end = $dateEnd->format('d.m.Y');
            }
            ?>
            <script>
                $(document).ready(function () {
                    var date = new Date();
                    var i = 1;
                    while ($('#id_bank_discount_' + i).text().trim()) {
                        var dateEndNow = $('#end_' + i).text().trim();
                        var dt1 = parseInt(dateEndNow.substring(0, 2));
                        var mon1 = parseInt(dateEndNow.substring(3, 5));
                        var yr1 = parseInt(dateEndNow.substring(6, 10));
                        var dateEnd = new Date(yr1, mon1 - 1, dt1);
                        var diff = dateEnd - date, sign = diff < 0 ? -1 : 1, milliseconds, seconds, minutes, hours, days;
                        diff = (diff - (milliseconds = diff % 1000)) / 1000;
                        diff = (diff - (seconds = diff % 60)) / 60;
                        diff = (diff - (minutes = diff % 60)) / 60;
                        days = (diff - (hours = diff % 24)) / 24;
                        if(days <2){
                            $("#BankDiscountModel_" + i).css("background-color", "red");
                        }
                        else{
                            
                            $("#BankDiscountModel_" + i).css("background-color", "yellow");
                        }
                        i = i + 1;
                    }
                });

            </script>
            <?php 
        }
        ?>


        <style>
            .table{
                background-color: red;
            }

            #BankDiscountModel_1{
                background-color: red;
            }

            #BankDiscountModel_{
                background-color: greenyellow;
            }
        </style>
        <?php 
        return $return;
    }
 public function overwriteRead($return)
 {
     $objs = $return['objs'];
     foreach ($objs as $obj) {
         if (isset($obj->datetime_order)) {
             $d = strtotime("{$obj->datetime_order}");
             $obj->datetime_order = date("d M, y h:m a", $d);
         }
         if (isset($obj->datetime_done)) {
             $d = strtotime("{$obj->datetime_done}");
             $obj->datetime_done = date("d M, y h:m a", $d);
         }
         if (isset($obj->type_order)) {
             $obj->type_order = $this->arrOrderType[$obj->type_order];
         }
         if (isset($obj->order_now)) {
             $obj->order_now = $this->arrOrderNow[$obj->order_now];
         }
         if (isset($obj->voided)) {
             $obj->voided = $this->arrYesNo[$obj->voided];
         }
         if (isset($obj->status_progress)) {
             $obj->status_progress = $this->arrStatusProgress[$obj->status_progress];
         }
         if (isset($obj->status)) {
             $obj->status = $this->arrStatusOrder[$obj->status];
         }
         if (isset($obj->id_table)) {
             if ($obj->id_table == "0") {
                 $obj->id_table = "Take Away";
             } else {
                 $tab = new MasterTableModel();
                 $tab->getByID($obj->id_table);
                 $obj->id_table = "Table ID " . $obj->id_table . " - Table No. " . $tab->table_number;
             }
         }
         if (isset($obj->id_restaurant)) {
             $resto = new MasterRestaurantModel();
             $resto->getByID($obj->id_restaurant);
             $obj->id_restaurant = $resto->name;
         }
     }
     return $return;
 }