private function calcRechnungAndSave($id_restaurant, $id_order)
 {
     $order = new MasterOrderModel();
     $order->getByID($id_order);
     $objResto = User::getRestaurant($id_restaurant);
     //        pr($objResto );
     $objOrder = MasterOrder::getOrder($id_order);
     $arrOrderDetails = OrderDetail::getOrderDetailsByIDOrderForCalc($id_order);
     $total = 0;
     foreach ($arrOrderDetails as $orderDetails) {
         //            pr($orderDetails);
         $total = $total + $orderDetails['price'];
     }
     $invoice['sub_total'] = strval($total);
     $order->total_cost = $invoice['sub_total'];
     if ($objResto['service_charge'] > 100) {
         $invoice['service_charge'] = strval($objResto['service_charge']);
     } else {
         $invoice['service_charge'] = strval($objResto['service_charge'] / 100 * $total);
     }
     $order->service_charge = $invoice['service_charge'];
     if ($objResto['other_charge'] > 100) {
         $invoice['other_charge'] = strval($objResto['other_charge']);
     } else {
         $invoice['other_charge'] = strval($objResto['other_charge'] / 100 * $total);
     }
     $order->other_charge = $invoice['other_charge'];
     if ($objResto['disc_mr'] > 100) {
         $invoice['Discount_MR'] = strval($objResto['disc_mr']);
     } else {
         $invoice['Discount_MR'] = strval($objResto['disc_mr'] / 100 * $total);
     }
     $order->disc_mr = $invoice['Discount_MR'];
     if ($objResto['disc_bank'] > 100) {
         $invoice['Discount_Bank'] = strval($objResto['disc_bank']);
     } else {
         $invoice['Discount_Bank'] = strval($objResto['disc_bank'] / 100 * $total);
     }
     $order->disc_bank = $invoice['Discount_Bank'];
     if ($objResto['disc_resto'] > 100) {
         $invoice['Discount_Resto'] = strval($objResto['disc_resto']);
     } else {
         $invoice['Discount_Resto'] = strval($objResto['disc_resto'] / 100 * $total);
     }
     $order->disc_resto = $invoice['Discount_Resto'];
     $invoice['Tax'] = strval($total * ($objResto['tax_pb_1'] / 100));
     $order->tax_pb1 = $invoice['Discount_Resto'];
     $invoice['Total'] = strval($total + $invoice['Tax'] + $invoice['service_charge'] + $invoice['other_charge'] - $invoice['Discount_MR'] - $invoice['Discount_Bank'] - $invoice['Discount_Resto']);
     $order->grand_total = $invoice['Total'];
     $order->save();
     return $invoice;
 }
 public static function calcRechnung($id_restaurant, $id_order, $save = false)
 {
     $objResto = User::getRestaurant($id_restaurant);
     $objOrder = new MasterOrderModel();
     $objOrder->getByID($id_order);
     $arrOrderDetails = OrderDetail::getOrderDetailsByIDOrderForCalc($id_order);
     $total = 0;
     foreach ($arrOrderDetails as $orderDetails) {
         //            pr($orderDetails);
         if ($orderDetails['status_progress'] != '9') {
             $total = $total + $orderDetails['price'];
         }
     }
     $invoice['sub_total'] = strval($total);
     //        $invoice['service_charge'] = $objResto['service_charge'];
     //        $invoice['other_charge'] = $objResto['other_charge'];
     if ($objResto['service_charge'] > 100) {
         $invoice['service_charge'] = strval($objResto['service_charge']);
     } else {
         $invoice['service_charge'] = strval($objResto['service_charge'] / 100 * $total);
     }
     if ($objResto['other_charge'] > 100) {
         //
         $invoice['other_charge'] = strval($objResto['other_charge']);
     } else {
         $invoice['other_charge'] = strval($objResto['other_charge'] / 100 * $total);
     }
     $disc_bank = self::getDiscountCreditCard($id_restaurant, $id_bank);
     if ($objResto['disc_bank'] > 100) {
         $invoice['Discount_Bank'] = strval($objResto['disc_bank']);
     } else {
         $invoice['Discount_Bank'] = strval($objResto['disc_bank'] / 100 * $total);
     }
     $discMR = self::getDiscountMR($id_restaurant);
     if ($discMR > 100) {
         //
         $invoice['Discount_MR'] = strval($discMR);
     } else {
         $invoice['Discount_MR'] = strval($discMR / 100 * $total);
     }
     $feeMR = self::getFeeMR($id_restaurant);
     $feeBank = self::getFeeCreditCard($id_restaurant, $id_bank);
     //        $total_2 = $total_2 - $invoice['Discount_Bank'];
     if ($objResto['disc_resto'] > 100) {
         //
         $invoice['Discount_Resto'] = strval($objResto['disc_resto']);
     } else {
         $invoice['Discount_Resto'] = strval($objResto['disc_resto'] / 100 * $total);
     }
     // Fee
     //
     //        $total_2 = $total_2 - $invoice['Discount_Resto'];
     $invoice['Tax'] = strval($total * ($objResto['tax_pb_1'] / 100));
     $invoice['Total'] = strval($total + $invoice['Tax'] + $invoice['service_charge'] + $invoice['other_charge'] - $invoice['Discount_MR'] - $invoice['Discount_Bank'] - $invoice['Discount_Resto']);
     return $invoice;
 }
 public function getMenuRestoForExtra()
 {
     if (Efiwebsetting::getData('checkOAuth') == 'yes') {
         IMBAuth::checkOAuth();
     }
     $json = array();
     $json['status_code'] = 1;
     $id_restaurant = isset($_GET['id_restaurant']) ? addslashes($_GET['id_restaurant']) : "";
     if (!$id_restaurant) {
         Generic::errorMsg("No Restaurant ID Found");
     }
     $id_order = isset($_GET['id_order']) ? addslashes($_GET['id_order']) : "";
     if (!$id_restaurant) {
         Generic::errorMsg("No ID Order Found");
     }
     $objRestaurant = new MasterRestaurantModel();
     $arrResto = $objRestaurant->getWhere("id_restaurant={$id_restaurant}");
     if (count($arrResto) == 0) {
         Generic::errorMsg("Can't find Restaurant in the Database!");
     }
     $resto = User::getRestaurant($id_restaurant);
     $json['results']['restaurant'][] = $resto;
     global $db;
     $objDish = new MasterDishModel();
     $q = "SELECT id_category FROM {$objDish->table_name} WHERE availability=1 AND id_restaurant={$id_restaurant}";
     $arrCat = $objDish->getWhere("id_restaurant='{$id_restaurant}'");
     if (count($arrCat) == 0) {
         $json['status_code'] = 0;
         $json['status_message'] = "Can't find dish in the Restaurant!";
         echo json_encode($json);
         die;
     }
     $catIds = explode(",", $resto["id_categories"]);
     $objCategory = new MasterCategoryModel();
     $objDish = new MasterDishModel();
     foreach ($catIds as $val) {
         $cat = MasterCategory::getCategoryByID($val);
         $arrDish = $objDish->getWhere("status!='0' AND id_category='{$val}' AND id_restaurant='{$id_restaurant}'");
         if (count($arrDish) == 0) {
             continue;
         }
         $dishHelp = array();
         foreach ($arrDish as $val) {
             //                echo $val->id_dish;
             $dishHelp[] = MasterDish::getDish($val->id_dish);
         }
         $cat['dishes'] = $dishHelp;
         $json['results']['categories'][] = $cat;
     }
     $json['results']['order_details'][] = OrderDetail::getOrderDetailsByIDOrderForCalc($id_order);
     echo json_encode($json);
     die;
 }