public function overwriteRead($return) { $objs = $return['objs']; // pr($objs); foreach ($objs as $obj) { if (isset($obj->status)) { if ($obj->status == "1") { $obj->status = "Free"; } else { $obj->status = "Occupied"; } } if (isset($obj->availability)) { if ($obj->availability == "1") { $obj->availability = "Active"; } else { $obj->availability = "Inactive"; } } if (isset($obj->id_restaurant)) { $resto = new MasterRestaurantModel(); $resto->getByID($obj->id_restaurant); if (Generic::IsNullOrEmptyString($resto->name)) { $obj->id_restaurant = "Error"; } else { $obj->id_restaurant = $resto->name; } } } return $return; }
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 static function saveDistrictCityFromLatLng($lat, $lng, $accId, $isCashier) { $lat = trim($lat); $lng = trim($lng); if (self::IsNullOrEmptyString($lat) || self::IsNullOrEmptyString($lng)) { return; } $url = "https://maps.googleapis.com/maps/api/geocode/json?latlng={$lat},{$lng}&result_type=administrative_area_level_3&key=" . self::$geoCodingServerKey; $json = json_decode(file_get_contents($url), true); $addressComponents = $json['results'][0]['address_components']; if (count($addressComponents) < 2) { return; } $district = strtoupper($addressComponents[0]['long_name']); $city = strtoupper($addressComponents[1]['long_name']); $loc = new LocationModel(); $arrLoc = $loc->getWhere("district='{$district}' AND city='{$city}'"); if (count($arrLoc) == 0) { $l = new LocationModel(); $l->district = $district; $l->city = $city; if ($isCashier) { $l->cashier_visit_count = 1; $l->user_visit_count = 0; } else { $l->cashier_visit_count = 0; $l->user_visit_count = 1; } $l->visit_count = 1; $l->save(); } else { $l = new LocationModel(); $l->getByID($arrLoc[0]->id_location); if ($isCashier) { $l->cashier_visit_count = $l->cashier_visit_count + 1; } else { $l->user_visit_count = $l->user_visit_count + 1; } $l->save(); } if ($accId != 0 && !$isCashier) { $user = new UserModel(); $user->getByID($accId); $user->last_lat = $lat; $user->last_long = $lng; $user->last_city = $city; $user->last_district = $district; if (Generic::IsNullOrEmptyString($user->latitude)) { $user->latitude = $lat; } if (Generic::IsNullOrEmptyString($user->longitude)) { $user->longitude = $lng; } if (Generic::IsNullOrEmptyString($user->district)) { $user->district = $district; } if (Generic::IsNullOrEmptyString($user->city)) { $user->city = $city; } $user->save(); } }
public function userUpdateProfile() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $idUser = Generic::mustCheck($_POST['id_user'], "ID user required"); $fullName = Generic::mustCheck($_POST['full_name'], "Empty Full Name"); $userName = Generic::mustCheck($_POST['user_name'], "Empty User Name"); $email = Generic::mustCheck($_POST['email'], "Empty Email"); $password = Generic::mustCheck($_POST['pwd'], "Empty Password"); $idCuisine = Generic::mustCheck($_POST['pref_cuisine'], "Cuisine Not Selected"); $birthday = Generic::mustCheck($_POST['birthday'], "Empty Birthday"); $phoneNo = Generic::mustCheck($_POST['phone_no'], "Empty Phone Number"); $fbId = Generic::IsNullOrEmptyString($_POST['fb_id']) ? "" : $_POST['fb_id']; $latitude = Generic::IsNullOrEmptyString($_POST['lat']) ? "" : $_POST['lat']; $longitude = Generic::IsNullOrEmptyString($_POST['long']) ? "" : $_POST['long']; $district = Generic::IsNullOrEmptyString($_POST['district']) ? "" : $_POST['district']; $city = Generic::IsNullOrEmptyString($_POST['city']) ? "" : $_POST['city']; $pic = Generic::IsNullOrEmptyString($_POST['pic']) ? "" : MasterRestaurant::savePic($_POST['pic']); ///START OF LOVELY VALIDATION TIME if (!Generic::isValidUserName($userName)) { Generic::errorMsg("Username must only contains alphanumeric (and/or) \\'.\\', \\'-\\', \\'_\\'"); } if (!Generic::isValidUserNameLength($userName)) { Generic::errorMsg("Max username length is 20"); } if (!Generic::isValidEmail($email)) { Generic::errorMsg("Email format not valid"); } if (!Generic::isValidPassword($password)) { Generic::errorMsg("Password must contain minimum 5 character and no whitespace"); } $user = new UserModel(); $user->getByID($idUser); if ($birthday != $user->birthday) { Generic::errorMsg("Birthday cannot be changed"); } if ($userName != $user->user_name) { Generic::errorMsg("Username cannot be changed"); } if (!Generic::IsNullOrEmptyString($user->fb_id) && $fbId != $user->fb_id) { Generic::errorMsg("Facebook cannot be changed"); } else { $user->fb_id = $fbId; } ///END OF LOVELY VALIDATION TIME, HOW SAD :( $user->full_name = $fullName; $user->email = $email; $user->password = $password; $user->id_cuisine = $idCuisine; $user->phone_no = $phoneNo; if (!Generic::IsNullOrEmptyString($pic)) { $user->pic = $pic; } if (!Generic::IsNullOrEmptyString($latitude)) { $user->latitude = $latitude; $user->last_lat = $latitude; } if (!Generic::IsNullOrEmptyString($longitude)) { $user->longitude = $longitude; $user->last_long = $longitude; } if (!Generic::IsNullOrEmptyString($district)) { $user->district = $district; $user->last_district = $district; } if (!Generic::IsNullOrEmptyString($city)) { $user->city = $city; $user->last_city = $city; } $user->status = "1"; $uid = $user->save(); if (!$uid) { Generic::errorMsg("Failed Creating User"); } else { $json['status_code'] = 1; $json['results']['fb_id'] = $user->fb_id; $json['results']['id_user'] = $idUser; $json['results']['user_name'] = $user->user_name; $json['results']['full_name'] = $user->full_name; $json['results']['email'] = $user->email; $json['results']['pic'] = Generic::insertImageUrl($user->pic); echo json_encode($json); die; } }
public function createNewRestaurant() { ?> <style> .controls { margin-top: 10px; border: 1px solid transparent; border-radius: 2px 0 0 2px; box-sizing: border-box; -moz-box-sizing: border-box; height: 32px; outline: none; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); } #pac-input { background-color: #fff; font-family: Roboto; font-size: 15px; font-weight: 300; margin-left: 12px; margin-right: 12px; padding: 0 11px 0 13px; text-overflow: ellipsis; width: 80%; } #pac-input:focus { border-color: #4d90fe; } .pac-container { font-family: Roboto; } #type-selector { color: #fff; background-color: #4d90fe; padding: 5px 11px 0px 11px; } #type-selector label { font-family: Roboto; font-size: 13px; font-weight: 300; } </style> <div class="col-sm-12"> <h1>Create New Restaurant</h1> </div> <div id="formgroup_name" class="form-group"> <label for="name" class=" col-sm-2 control-label">Name</label> <div class="col-sm-10"><input type="text" name="name" value="" id="name" class="form-control"> <span class="help-block" id="warning_name"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_email" class="form-group"> <label for="email" class=" col-sm-2 control-label">Email</label> <div class="col-sm-10"><input type="text" name="email" value="" id="email" class="form-control"> <span class="help-block" id="warning_email"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_phone_no" class="form-group"> <label for="phone_no" class=" col-sm-2 control-label">Phone</label> <div class="col-sm-10"><input type="text" name="phone_no" value="" id="phone_no" class="form-control"> <span class="help-block" id="warning_phone_no"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_time_open" class="form-group"> <label for="time_open" class=" col-sm-2 control-label">time_open</label> <div class="col-sm-10"><input type="time" name="time_open" value="" id="time_open" class="form-control"> <span class="help-block" id="warning_time_open"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_time_close" class="form-group"> <label for="time_close" class=" col-sm-2 control-label">time_close</label> <div class="col-sm-10"><input type="time" name="time_close" value="" id="time_close" class="form-control"> <span class="help-block" id="warning_time_close"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_halal" class="form-group"> <label for="halal" class=" col-sm-2 control-label">Halal</label> <div class="col-sm-10"><select class="form-control" name="halal" id="halal"> <option value="1">Yes</option> <option value="0" selected="">No</option> </select> <span class="help-block" id="warning_halal"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_foto" class="form-group"> <label for="image_logo" class=" col-sm-2 control-label">image_logo</label> <div class="col-sm-10"> <div id="loaderholder_foto_old_1465962690" style="position: absolute; margin-top: 30px; margin-left: 40px; display: none;" class="inputfotoloader">Loading... </div> <span id="foto_1465962690"> <div class="foto100"> <img src="/images/noimage.jpg" id="holder_foto_old_1465962690" onload="OnImageLoadMR(event,72,30);"> </div> <input type="file" name="file_image_logo" id="file_foto" value="noimage.jpg"> <input type="hidden" name="image_logo" id="foto" value="noimage.jpg"> </span> <style> .inputfotoloader, .inputfotoloader:before, .inputfotoloader:after { background: #888; -webkit-animation: load1 1s infinite ease-in-out; animation: load1 1s infinite ease-in-out; width: 1em; height: 4em; } .inputfotoloader:before, .inputfotoloader:after { position: absolute; top: 0; content: ''; } .inputfotoloader:before { left: -1.5em; } .inputfotoloader { text-indent: -9999em; margin: 8em auto; position: relative; font-size: 11px; -webkit-animation-delay: -0.16s; animation-delay: -0.16s; } .inputfotoloader:after { left: 1.5em; -webkit-animation-delay: -0.32s; animation-delay: -0.32s; } @-webkit-keyframes load1 { 0%, 80%, 100% { box-shadow: 0 0 #888; height: 4em; } 40% { box-shadow: 0 -2em #888; height: 5em; } } @keyframes load1 { 0%, 80%, 100% { box-shadow: 0 0 #888; height: 4em; } 40% { box-shadow: 0 -2em #888; height: 5em; } } </style> <script type="text/javascript"> var fileTypes = ['jpg', 'jpeg', 'png', 'gif', 'bmp']; //acceptable file types document.querySelector('#foto_1465962690 input[type=file]').addEventListener('change', function (event) { // Read files var files = event.target.files; for (var i = 0; i < files.length; i++) { if (files[i].type.match(/image.*/)) { var reader = new FileReader(); var extension = files[i].name.split('.').pop().toLowerCase(); var isSuccess = fileTypes.indexOf(extension) > -1; console.log(extension); console.log(reader); console.log(isSuccess); if (isSuccess) { //check size if (extension == "png" || extension == "gif") { //kalau png atau gif, tidak di resize, krn we want to preserve the transparency and animations if (typeof FileReader !== "undefined") { var sizess = files[i].size; // check file size console.log(sizess); } inputFotoFiles_1465962690(event); } else { reader.onload = function (readerEvent) { var image = new Image(); image.onload = function (imageEvent) { // Resize image var canvas = document.createElement('canvas'), max_size = 1200, width = image.width, height = image.height; if (width > height) { if (width > max_size) { height *= max_size / width; width = max_size; } } else { if (height > max_size) { width *= max_size / height; height = max_size; } } canvas.width = width; canvas.height = height; canvas.getContext('2d').drawImage(image, 0, 0, width, height); var xhr = new XMLHttpRequest(); if (xhr.upload) { // Update progress xhr.upload.addEventListener('progress', function (event) { var percent = parseInt(event.loaded / event.total * 100); $("#loaderholder_foto_old_1465962690").show(); }, false); xhr.onreadystatechange = function (event) { if (xhr.readyState == 4) { if (xhr.status == 200) { $("#loaderholder_foto_old_1465962690").hide(); var imageHtml = document.getElementById("holder_foto_old_1465962690"); imageHtml.removeAttribute("style"); imageHtml.removeAttribute("width"); imageHtml.removeAttribute("height"); imageHtml.src = '/' + 'uploads/' + xhr.responseText; $('#foto_1465962690 #foto').val(xhr.responseText); console.log('Image uploaded: ' + xhr.responseText); } else { //imageElement.parentNode.removeChild(imageElement); } } } // Start upload xhr.open('post', '/uploader/uploadres?adafile=noimage.jpg&ext=' + extension, true); xhr.send(canvas.toDataURL('image/' + extension)); } } image.src = readerEvent.target.result; } reader.readAsDataURL(files[i]); }//else png or gif }//success else { alert("Please only upload image files"); console.log("err type"); } } else { alert("Please only upload image files"); console.log("err type"); } } }); // Catch the form submit and upload the files function inputFotoFiles_1465962690(event) { files = event.target.files; event.stopPropagation(); // Stop stuff happening event.preventDefault(); // Totally stop stuff happening // START A LOADING SPINNER HERE // Create a formdata object and add the files var data = new FormData(); $.each(files, function (key, value) { data.append(key, value); }); //console.log(data); $.ajax({ url: '/Uploader/uploadres_ext?t=1465962690&files=1&adafile=noimage.jpg', type: 'POST', data: data, cache: false, dataType: 'json', processData: false, // Don't process the files contentType: false, // Set content type to false as jQuery will tell the server its a query string request success: function (data, textStatus, jqXHR) { // console.log(data); if (data.bool) { var imageHtml = document.getElementById("holder_foto_old_1465962690"); imageHtml.removeAttribute("style"); imageHtml.removeAttribute("width"); imageHtml.removeAttribute("height"); imageHtml.src = '/' + 'uploads/' + data.filename; $('#foto_1465962690 #foto').val(data.filename); imageHtml.src = '/uploads/' + data.filename; console.log('Image uploaded: ' + data.filename); } else { // Handle errors here console.log('ERRORS: ' + data.error); $("#file_repeat_foto_1465962690").show(); } }, error: function (jqXHR, textStatus, errorThrown) { // Handle errors here console.log('ERRORS: ' + textStatus); // STOP LOADING SPINNER } }); } </script> <span class="help-block" id="warning_foto"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_map" class="form-group"> <label for="map" class=" col-sm-2 control-label">Map</label> <div class="col-sm-10"> <input id="pac-input" class="controls" type="text" placeholder="Search"> <div class="col-sm-12" id="map" style="width: 100%;height: 450px;background-color: #CCC;"></div> <script> function setLatLong(lat, lng) { var marker = new google.maps.Marker({ position: {lat: lat, lng: lng}, map: map, title: $("#name").val }); $("#latitude").val(lat); $("#longitude").val(lng); var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat + "," + lng + "&language=en&key=AIzaSyAjTYhXjHK4MgwGPK8UlveENUMCjgZcSZA"; console.log(url); $.ajax({ method: "GET", url: url }) .done(function (msg) { if (msg.results[3] == null) { $("#district").val(""); $("#city").val(""); $("#latitude").val(""); $("#longitude").val(""); alert("Cannot get exact location\nPlease zoom in and select again"); return; } var arrComponents = msg.results[3].address_components; // console.log(arrComponents); $.each(arrComponents, function (jObj) { console.log(arrComponents[jObj].types[0]); if (arrComponents[jObj].types[0] == "administrative_area_level_3") { $("#district").val(arrComponents[jObj].long_name.toUpperCase()); } else if (arrComponents[jObj].types[0] == "administrative_area_level_2") { $("#city").val(arrComponents[jObj].long_name.toUpperCase()); } }); }); } </script> <script> function initAutocomplete() { var map = new google.maps.Map(document.getElementById("map"), { center: {lat: -6.175883636877263, lng: 106.82710647583008}, zoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP }); // Create the search box and link it to the UI element. var input = document.getElementById("pac-input"); var searchBox = new google.maps.places.SearchBox(input); map.controls[google.maps.ControlPosition.TOP_LEFT].push(input); // Bias the SearchBox results towards current map's viewport. map.addListener("bounds_changed", function () { searchBox.setBounds(map.getBounds()); }); var markers = []; google.maps.event.addListener(map, "click", function (event) { markers.forEach(function (marker) { marker.setMap(null); }); markers = []; var icon = { size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25) }; markers.push(new google.maps.Marker({ map: map, icon: icon, position: {lat: event.latLng.lat(), lng: event.latLng.lng()} })); setLatLong(event.latLng.lat(), event.latLng.lng()); }); // [START region_getplaces] // Listen for the event fired when the user selects a prediction and retrieve // more details for that place. searchBox.addListener("places_changed", function () { var places = searchBox.getPlaces(); if (places.length == 0) { return; } // Clear out the old markers. markers.forEach(function (marker) { marker.setMap(null); }); markers = []; // For each place, get the icon, name and location. var bounds = new google.maps.LatLngBounds(); places.forEach(function (place) { // var icon = { // size: new google.maps.Size(71, 71), // origin: new google.maps.Point(0, 0), // anchor: new google.maps.Point(17, 34), // scaledSize: new google.maps.Size(25, 25) // }; // // // Create a marker for each place. // markers.push(new google.maps.Marker({ // map: map, // icon: icon, // title: place.name, // position: place.geometry.location // })); if (place.geometry.viewport) { // Only geocodes have viewport. bounds.union(place.geometry.viewport); } else { bounds.extend(place.geometry.location); } }); map.fitBounds(bounds); }); // [END region_getplaces] } </script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAjTYhXjHK4MgwGPK8UlveENUMCjgZcSZA&libraries=places&callback=initAutocomplete" async defer></script> <span class="help-block" id="warning_map"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_address" class="form-group"> <label for="address" class=" col-sm-2 control-label">address</label> <div class="col-sm-10"><input type="text" name="address" value="" id="address" class="form-control"> <span class="help-block" id="warning_address"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_district" class="form-group"> <label for="district" class=" col-sm-2 control-label">District</label> <div class="col-sm-10"> <input type="text" name="district" value="" id="district" class="form-control" disabled> <span class="help-block" id="warning_district"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_city" class="form-group"> <label for="city" class=" col-sm-2 control-label">City</label> <div class="col-sm-10"> <input type="text" name="city" value="" id="city" class="form-control" disabled> <span class="help-block" id="warning_city"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_latitude" class="form-group"> <label for="latitude" class=" col-sm-2 control-label">Latitude</label> <div class="col-sm-10"> <input type="text" name="latitude" value="" id="latitude" class="form-control" disabled> <span class="help-block" id="warning_latitude"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_longitude" class="form-group"> <label for="longitude" class=" col-sm-2 control-label">Longitude</label> <div class="col-sm-10"> <input type="text" name="longitude" value="" id="longitude" class="form-control" disabled> <span class="help-block" id="warning_longitude"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_restaurant_type" class="form-group"> <label for="restaurant_type" class=" col-sm-2 control-label">Restaurant Type</label> <div class="col-sm-10"><select class="form-control" name="restaurant_type" id="restaurant_type"> <option value="0">Select Restaurant Type</option> <?php $rType = new MasterRestaurantTypeModel(); $arrRType = $rType->getAll(); foreach ($arrRType as $r) { if (Generic::IsNullOrEmptyString($r->name)) { continue; } ?> <option value="<?php echo $r->id_restaurant_type; ?> "><?php echo $r->name; ?> </option> <?php } ?> </select> <span class="help-block" id="warning_restaurant_type"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_id_cuisine" class="form-group"> <label for="id_cuisine" class=" col-sm-2 control-label">ID Cuisine</label> <div class="col-sm-10"><select class="form-control" name="id_cuisine" id="id_cuisine"> <option value="0">Select Cuisine</option> <?php $rType = new CuisineModel(); $arrRType = $rType->getWhere("status='1'"); foreach ($arrRType as $r) { if (Generic::IsNullOrEmptyString($r->name_cuisine)) { continue; } ?> <option value="<?php echo $r->id_cuisine; ?> "><?php echo $r->name_cuisine; ?> </option> <?php } ?> </select> <span class="help-block" id="warning_id_cuisine"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_cat_choices" class="form-group"> <label for="cat_choices" class=" col-sm-2 control-label">Categories</label> <div class="col-sm-8"> <select class="form-control" name="cat_choices" id="cat_choices"> <option value="-1">Select Category</option> <?php $c = new MasterCategoryModel(); $arrCats = $c->getWhere("status='1'"); foreach ($arrCats as $r) { if (Generic::IsNullOrEmptyString($r->name)) { continue; } ?> <option value="<?php echo $r->id_category; ?> "><?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_cat" class="btn btn-default" style="width: 100%;">Add</button> </div> <div class="clearfix"></div> </div> <div id="formgroup_selected_cat" class="form-group"> <label for="selected_cat" class=" col-sm-2 control-label">Selected Category</label> <div class="col-sm-10"> <input type="text" name="selected_cat" id="selected_cat" class="form-control"> <span class="help-block" id="warning_selected_cat"></span> </div> <div class="clearfix"></div> </div> <script> $('#button_select_cat').click( function () { var restoChoice = $('select#cat_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; } $("select#cat_choices option:selected").remove(); $('#selected_cat').tokenfield(); $('#selected_cat').tokenfield('createToken', {value: selectedVal, label: selectedText}); restoChoice.val(''); } ); $('#selected_cat') .on('tokenfield:removedtoken', function (e) { var value = e.attrs.value; var label = e.attrs.label; var restoChoice = $('select#cat_choices'); restoChoice .append($("<option></option>") .attr("value", value) .text(label)); if (value == '0') { restoChoice.prop("disabled", false); } var selectList = $('select#cat_choices option'); selectList.sort(function (a, b) { a = a.value; b = b.value; return a - b; }); restoChoice.html(selectList); restoChoice.val(value); }); function clearFields() { lwrefresh('DiscCreditCard'); } </script> <div class="form-group"> <div class="col-sm-12"> <button id="submit_create_new_resto" class="btn btn-default">submit</button> <button id="cancel_create_new_resto" class="btn btn-default">cancel</button> <script> $("#cancel_create_new_resto").click(function (event) { event.preventDefault(); lwclose(window.selected_page); }); </script> </div> </div> <?php }
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 constraints() { $err = array(); if (!isset($this->name)) { $err['name'] = Lang::t('Name cannot be empty'); } if (!isset($this->address)) { $err['address'] = Lang::t('address cannot be empty'); } if (!isset($this->district)) { $err['district'] = Lang::t('District cannot be empty'); } if (!isset($this->city)) { $err['city'] = Lang::t('City cannot be empty'); } if (!isset($this->email)) { $err['email'] = Lang::t('Email cannot be empty'); } if (!isset($this->phone_no)) { $err['phone_no'] = Lang::t('phone no cannot be empty'); } if (!isset($this->time_open)) { $err['time_open'] = Lang::t('Time open cannot be empty'); } if (!isset($this->time_close)) { $err['time_close'] = Lang::t('Time Close cannot be empty'); } if (!isset($this->halal)) { $err['halal'] = Lang::t('Halal cannot be empty'); } //Set Default Values if (count($err) <= 0) { //SAVING NEW LOCATION TO Location DB $ll = new LocationModel(); $arrLoc = $ll->getWhere("district='{$this->district}' AND city='{$this->city}'"); if (count($arrLoc) <= 0) { $loc = new LocationModel(); $loc->district = $this->district; $loc->city = $this->city; $loc->user_visit_count = 0; $loc->cashier_visit_count = 0; if (!Generic::IsNullOrEmptyString($this->district) && !Generic::IsNullOrEmptyString($this->city)) { $loc->save(); } } //MAKE id_categories always have 0 if (Generic::IsNullOrEmptyString($this->id_categories)) { $this->id_categories; } else { $arrCats = explode(',', $this->id_categories); if (!in_array("0", $arrCats)) { $arrCats[] = "0"; $this->id_categories = implode(',', $arrCats); } } } return $err; }
public function responseJoinTable() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $leaderId = $_POST["id_user"]; $guestId = $_POST["guest_id"]; $response = $_POST["response"]; //O = REJECTED --- 1 = ACCEPTED switch ($response) { case 0: $msg = "Your request has been rejected by table leader"; $this->pushToUser($guestId, $msg, "", Push::$typeNormalPopUpNoAction); break; case 1: //TODO GET LEADER ACTIVE ORDER + ALL THIS ORDER DETAIL ORDER then ENCODE put into $j $order = MasterOrder::getOpenOrderbyUserID($leaderId); if (Generic::IsNullOrEmptyString($order[0]->user_guest_id) || trim($order[0]->user_guest_id) == ',') { $order[0]->user_guest_id = $guestId; } else { $gid = explode(",", $order[0]->user_guest_id); array_push($gid, $guestId); $order[0]->user_guest_id = implode(",", array_unique($gid)); } $order[0]->user_count = $order[0]->user_count + 1; $order[0]->load = 1; $order[0]->save(); $j["id_restaurant"] = $order[0]->id_restaurant; $j['datetime'] = date('Y-m-d H:i:s'); //TODO ADD $guestId TO THIS ORDER $msg = "Your request has been accepted"; $this->pushToUser($guestId, $msg, $j, Push::$typeAcceptJoinTable); break; } }
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 function pushByLocation() { $idUsers = Generic::mustCheck($_POST['id_users'], "IDs User not Found"); $title = Generic::mustCheck($_POST['title'], "Title not Found"); $message = Generic::mustCheck($_POST['message'], "Message not Found"); $image = Generic::IsNullOrEmptyString($_POST['image']) ? "" : $_POST['image']; if (Generic::IsNullOrEmptyString($idUsers)) { Generic::errorMsg("Empty IDs User"); } $arrIdUser = explode(',', $idUsers); $results['id_users'] = $idUsers; $results['title'] = $title; $results['message'] = $message; $results['image'] = $image; $trackerModel = Util::getTrackerModelByCode(Keys::$TRACKER_PUSH); if (!$trackerModel) { Generic::errorMsg("Failed To Fetch Tracker Model"); } else { $trackerModel->title = $title; $trackerModel->message = $message; $trackerModel->image = $image; $trackerModel->id_from = 0; $trackerModel->id_reference = 0; $trackerModel->id_to = $idUsers; $trackerModel->readed = "0"; $trackerModel->answered = "1"; $trackerModel->canceled = "0"; $trackerModel->status = "1"; $trackerModel->type = Push::$typeMRPushByLocation; $idTracker = $trackerModel->save(); } foreach ($arrIdUser as $idUser) { //saving log $pLog = new MasterPushLoggerModel(); $pLog->from_id = 0; $pLog->to_id = $idUser; $pLog->title = $title; $pLog->message = $message; //type 3 : MR to User $pLog->type = Push::$pushLogMRToUser; $pLog->push_code = Push::$typeMRPushByLocation; $pLog->datetime_notif = leap_mysqldate(); $pLog->id_reference = $image; $pLog->status = "1"; $pLog->save(); } $_POST["ids"] = implode(',', $arrIdUser); $_POST["msg"] = $title; $_POST["json"] = $idTracker; //json_encode($j); $_POST["type"] = Push::$typeMRPushByCuisine; $push = new PushTo(); $results['user_count'] = count($arrIdUser); $results['push'] = $push->usersMR(); Generic::finish($results); }
public function loadPaymentToken() { $idUser = Generic::mustCheck($_GET['id_user'], "ID User Required"); $user = new UserModel(); $user->getByID($idUser); if (Generic::IsNullOrEmptyString($user->id_user)) { Generic::errorMsg("User Not Found"); } $results['payment_token'] = Generic::IsNullOrEmptyString($user->payment_token) ? "" : $user->payment_token; $results['payment_id'] = Generic::IsNullOrEmptyString($user->payment_id) ? "" : $user->payment_id; $results['payment_type'] = Generic::IsNullOrEmptyString($user->payment_type) ? "" : $user->payment_type; $results['has_token'] = Generic::IsNullOrEmptyString($user->payment_token) ? false : true; $results['default_cash'] = Generic::IsNullOrEmptyString($user->payment_type) || $user->payment_type == "0" ? true : false; Generic::finish($results); }
public function setupMenuRevolutionFees() { $resto = new MasterRestaurantModel(); $arrResto = $resto->getWhere("id_restaurant!='0' ORDER BY name ASC"); ?> <div class="col-sm-12"> <h1>Setup Discount Credit Card</h1> </div> <div id="formgroup_restaurant" class="form-group"> <label for="restaurant_choices" class=" col-sm-2 control-label">restaurant</label> <div class="col-sm-8"> <select class="form-control" name="restaurant_choices" id="restaurant_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" 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" class=" col-sm-2 control-label">selected_resto</label> <div class="col-sm-10"> <input type="text" name="selected_restaurant" id="selected_restaurant" class="form-control"> <span class="help-block" id="warning_id_user"></span> </div> <div class="clearfix"></div> </div> <div id="formgroup_discount" class="form-group"> <label for="discount_resto_cc" class=" col-sm-2 control-label">discount</label> <div class="col-sm-10"> <div class="input-group"> <span class="input-group-addon"> Rp.</span> <input type="text" name="discount_resto_cc" value="0" id="discount_resto_cc" class="form-control"> </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_cc_disc" class="btn btn-default">submit</button> <button id="cancel_button_resto_cc_disc" class="btn btn-default">cancel</button> </div> </div> <script> $('#button_select_resto').click( function () { var restoChoice = $('select#restaurant_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_choices option:selected").remove(); $('#selected_restaurant').tokenfield(); $('#selected_restaurant').tokenfield('createToken', {value: selectedVal, label: selectedText}); restoChoice.val(''); } ); $('#selected_restaurant') .on('tokenfield:removedtoken', function (e) { var value = e.attrs.value; var label = e.attrs.label; var restoChoice = $('select#restaurant_choices'); restoChoice .append($("<option></option>") .attr("value", value) .text(label)); if (value == '0') { restoChoice.prop("disabled", false); } var selectList = $('select#restaurant_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_cc_disc').click(function () { clearFields(); }); $('#submit_button_resto_cc_disc').click(function () { var arr = $('#selected_restaurant').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 disc = $('#discount_resto_cc').val(); updateDiscountCreditCard(arrValue.join(), disc); }); function updateDiscountCreditCard(values, disc) { $.ajax({ method: "POST", url: _sppath + "Discount/updateRestoCCDiscount", data: {id_restaurant: values, discount: disc} }) .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('DiscCreditCard'); lwclose(window.selected_page); //clear token fields // var restoChoice = $('select#restaurant_choices'); // // var arr = $('#selected_restaurant').tokenfield('getTokens'); // if (Array.isArray(arr) && arr.length > 0) { // var arrValue = []; // arr.forEach(function (e) { // console.log(e); // var value = e.value; // var label = e.label; // restoChoice // .append($("<option></option>") // .attr("value", value) // .text(label)); // // }); // // var selectList = $('select#restaurant_choices option'); // selectList.sort(function (a, b) { // a = a.value; // b = b.value; // // return a - b; // }); // restoChoice.html(selectList); // restoChoice.val('-1'); // restoChoice.prop("disabled", false); // $('#discount_resto_cc').val('0'); // } // $('#selected_restaurant').tokenfield('setTokens', []); // $('#selected_restaurant').val(''); // lwclose(window.selected_page); } </script> <?php }
public function getTodayDineInOrderByRestoId() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $idResto = $_GET["id_restaurant"]; $o = new MasterOrderModel(); $arrOrder = $o->getWhere("DATE(datetime_order) >= DATE(CONVERT_TZ(NOW(),@@session.time_zone,'+07:00')) AND status_progress>='4' AND status='1' AND (type_order='0' OR type_order='1') AND order_now='1' AND id_restaurant='{$idResto}' ORDER BY id_order DESC"); // pr($arrOrder); $json["status_code"] = 1; $json["results"] = array(); foreach ($arrOrder as $order) { // $order = new MasterOrderModel(); $b["id_order"] = $order->id_order; $b["status_progress"] = $order->status_progress; $b["isOut"] = false; if ($order->status_progress === "0") { $b["progress"] = "Wait"; } elseif ($order->status_progress == "1") { $b["progress"] = "Cook"; } elseif ($order->status_progress == "2" || $order->status_progress == "3") { $b["progress"] = "Ready"; $b["isOut"] = true; } elseif ($order->status_progress == "4") { $b["progress"] = "Finish"; $b["isOut"] = true; } elseif ($order->status_progress == "9") { $b["progress"] = "Voided"; $b["isOut"] = true; } $b["status_payment"] = $order->status_payment; if ($order->status_payment == "1") { $b["isPaid"] = true; } else { $b["isPaid"] = false; } $b["type_order"] = $order->type_order; if ($order->type_order == "3") { $b["isAppOrder"] = true; } else { $b["isAppOrder"] = false; } $b["table_number"] = "0"; if (!Generic::IsNullOrEmptyString($order->id_table) || $order->id_table != 0) { $table = new MasterTableModel(); $table->getByID($order->id_table); $b["table_number"] = $table->table_number; } $b["datetime_order"] = $order->datetime_order; $b["order_number"] = $order->order_number; $json["results"][] = $b; } echo json_encode($json); die; }
public function getUserDWBalance() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } if (Generic::IsNullOrEmptyString($_GET['id_user'])) { $results['balance'] = doubleval(0); Generic::finish($results); } $idUser = addslashes($_GET['id_user']); $user = new UserModel(); $user->getByID($idUser); $results["pic"] = Generic::insertImageUrl($user->pic); $allowDokuWallet = Efiwebsetting::getData('App_Allow_Doku_Wallet') == 'yes'; if (Generic::IsNullOrEmptyString($user->payment_id) || $user->payment_id == 0) { $results['balance'] = doubleval(0); } else { if ($allowDokuWallet) { $doku = new PaymentDoku(); $results['balance'] = $doku->checkBalance($user->payment_id); } else { $results['balance'] = doubleval(0); } } Generic::finish($results); }
public static function CalDistrictCityFromLatLng($lat, $lng) { $lat = trim($lat); $lng = trim($lng); if (Generic::IsNullOrEmptyString($lat) || Generic::IsNullOrEmptyString($lng)) { return; } $url = "https://maps.googleapis.com/maps/api/geocode/json?latlng={$lat},{$lng}&result_type=administrative_area_level_3&key=" . Generic::$geoCodingServerKey; $json = json_decode(file_get_contents($url), true); $addressComponents = $json['results'][0]['address_components']; if (count($addressComponents) < 2) { return; } $district = strtoupper($addressComponents[0]['long_name']); $city = strtoupper($addressComponents[1]['long_name']); $result['district'] = $district; $result['city'] = $city; return $result; }
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 checkBalance($idDoku) { if (Generic::IsNullOrEmptyString($idDoku) || $idDoku == 0) { return doubleval(0); } if ($this->DOKU_ERROR) { return doubleval(0); } $this->WORDS = Util::sha1HMAC($this->getDataCheckBalance($idDoku), $this->CLIENT_SECRET); $params = array($this->KEY_CLIENT_ID => $this->CLIENT_ID, $this->KEY_ACCESS_TOKEN => $this->ACCESS_TOKEN, $this->KEY_ACCOUNT_ID => $idDoku, $this->KEY_WORDS => $this->WORDS); $results = Util::httpPost($this->API_CHECK_BALANCE, $params); if (Generic::IsNullOrEmptyString($results)) { return doubleval(0); } $json = json_decode($results); if (Generic::IsNullOrEmptyString($json->responseCode)) { return doubleval(0); } if (!in_array($json->responseCode, $this->getCodeCheckBalanceOK())) { return doubleval(0); } if (Generic::IsNullOrEmptyString($json->lastBalance)) { return doubleval(0); } return doubleval($json->lastBalance); }
public static function payViaCreditCard($idOrder, $idUser = "") { $restoInitiate = Generic::IsNullOrEmptyString($idUser); $userInitiate = !$restoInitiate; $order = new MasterOrderModel(); $order->getByID($idOrder); //KALO USER INITIATE CEK APA DIA LEADER if ($userInitiate) { $user = new UserModel(); $user->getByID($idUser); if (!Util::isLeader($idOrder, $idUser)) { Generic::errorMsg(Keys::$ERR_PAYMENT_NOT_LEADER); } } else { $idUser = $order->id_user; $user = new UserModel(); $user->getByID($idUser); } //CEK APA PEMBAYARAN PAKE CREDIT CARD if ($order->payment_method != Keys::$PAYMENT_TYPE_CREDIT_CARD) { Generic::errorMsg("This Order Not Using Credit Card as Payment Method"); } Doku_Initiate::$sharedKey = "iMdRs8Iz987Z"; Doku_Initiate::$mallId = "3199"; $invoice = new Invoice($idOrder, true); $params = array('amount' => Generic::dokuMoneyValue($invoice->grandTotal), 'invoice' => $idOrder, 'currency' => '360'); $detailOrders = $invoice->orderDetails; $basket = array(); foreach ($detailOrders as $detailOrder) { $b = array(); $b['name'] = $detailOrder->name_dish; $b['amount'] = Generic::dokuMoneyValue($detailOrder->single_price); $b['quantity'] = $detailOrder->quantity; $b['subtotal'] = Generic::dokuMoneyValue($detailOrder->price); $basket[] = $b; } $words = Doku_Library::doCreateWords($params); $customer = array('name' => $user->full_name, 'data_phone' => $user->phone_no, 'data_email' => $user->email, 'data_address' => $user->district . ',' . $user->city); // $basket[] = array( // 'name' => 'sayur', // 'amount' => '10000.00', // 'quantity' => '1', // 'subtotal' => '10000.00' // ); // $basket[] = array( // 'name' => 'buah', // 'amount' => '10000.00', // 'quantity' => '1', // 'subtotal' => '10000.00' // ); $dataPayment = array('req_mall_id' => Doku_Initiate::$mallId, 'req_chain_merchant' => 'NA', 'req_amount' => $params['amount'], 'req_words' => $words, 'req_purchase_amount' => $params['amount'], 'req_trans_id_merchant' => $params['invoice'], 'req_request_date_time' => date('YmdHis'), 'req_currency' => '360', 'req_purchase_currency' => '360', 'req_session_id' => sha1(date('YmdHis')), 'req_name' => $customer['name'], 'req_payment_channel' => '15', 'req_email' => $customer['data_email'], 'req_basket' => $basket, 'req_address' => $customer['data_address'], 'req_token_payment' => $user->payment_token, 'req_customer_id' => $idUser); $response = Doku_Api::doDirectPayment($dataPayment); if ($response->res_response_code == '0000') { $status = "SUCCESS"; $order->status_payment = Keys::$PAYMENT_STATUS_PAID; $order->isPaid = Keys::$YES; $order->load = 1; $order->save(); //success $trans = new MasterRestoTransactionModel(); $trans->id_restaurant = $order->id_restaurant; $trans->id_request = $order->id_order; $trans->gross_amount = $invoice->grandTotal; $trans->type_transaction = "1"; $trans->datetime_transaction = leap_mysqldate(); $trans->approved = "1"; $trans->mr_fee = $invoice->valFeeMR; //doubleval($order->mr_fee);//((double)($arrOrder[0]->grand_total * $resto->mr_fee)) / 100; //TODO LATER CHANGE 3 (BANK FEE) INTO GLOBAL VAR $trans->other_fee = 0; //((double)($arrOrder[0]->grand_total * $resto->cc_fee)) / 100; $trans->bank_disc = $invoice->valDiscBank; //doubleval($order->disc_bank);//$objOrder->disc_bank; $valNetAmount = doubleval($trans->gross_amount - $trans->mr_fee - $trans->other_fee + $trans->bank_disc); $trans->net_amount = $valNetAmount; $trans->save(); //reset user credit to 0 $user = new UserModel(); $user->getByID($idUser); $user->credit = 0; $user->save(); } else { $status = "FAILED"; } $results['status'] = $status; $results['res_token_id'] = $user->payment_token; $results['invoice_no'] = $idOrder; $results['id_user'] = $idUser; $results['res_response_code'] = $response->res_response_code; $results['doku_results'] = $response; // $results['data_payment'] = $dataPayment; // pr($results); if ($status == "SUCCESS") { return array("success" => 1, $results); } else { return array("success" => 0, $results); } // Generic::finish($results); }
public function isCategoryIdValid($catId) { $mc = new MasterCategoryModel(); $mc->getByID($catId); if (Generic::IsNullOrEmptyString($mc->id_category)) { return false; } else { return true; } }