redeem.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. <?php
  2. /****************************
  3. * File : redeem.php
  4. * Author : Cygnusa
  5. * @2018
  6. ****************************/
  7. //SECURITY
  8. if (!defined('APPLICATION_PATH')) {
  9. exit('No direct script access allowed');
  10. }
  11. //FUNCTION LISTS
  12. class redeem
  13. {
  14. private $woohoo_url = WOOHOO_API_URL;
  15. public function __construct($parent)
  16. {
  17. //GET PAGE MESSAGE
  18. $this->page_data = globalfunc::getMessage($parent, $parent->lang, 'redeem');
  19. if (count($parent->params) == 0) {
  20. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  21. } else {
  22. $qry_params = explode("?", $parent->params[0]);
  23. $parameter_val = strtolower($qry_params[0]);
  24. switch ($parameter_val) {
  25. case "wallet":
  26. case "category":
  27. case "product":
  28. case "order":
  29. case "orderstatus":
  30. $this->$parameter_val($parent);
  31. break;
  32. default:
  33. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  34. break;
  35. }
  36. }
  37. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  38. }
  39. /* /////////////////////////////// ADD TO WALLET //////////////////////////////////////////////// */
  40. private function wallet($parent)
  41. {
  42. globalfunc::checkMethodType($parent, array('GET'));
  43. globalfunc::checkParamCount($parent, 1);
  44. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  45. // REDEEM VALIDATION
  46. if (!projectfunc::checkValidReedem($parent)) {
  47. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error1"]), 406);
  48. }
  49. //CHECK POINTS
  50. $query_points = $parent->selectQuery(TABLE_USER_EPOINTS, "*", " smpin='" . $parent->current_smpin . "'", "1");
  51. if (!$query_points['nr'] > 0) {
  52. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error5"]), 406);
  53. }
  54. $points = $query_points['result'][0]->points;
  55. //MUST COMPLETE ON CERTIFICATION
  56. $query_learn = $parent->selectQuery(TABLE_USER_LEARNING, "smpin,lvl_id", "smpin='" . $parent->current_smpin . "' AND status=3 ORDER by lvl_id DESC", "1");
  57. if (!$query_learn['nr'] > 0) {
  58. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error12"]), 406);
  59. }
  60. //GET USER CURRENT LEVEL
  61. //$query_learn=$parent->selectQuery(TABLE_USER_LEARNING,"*","smpin='".$parent->current_smpin."' AND (status=3 OR (lvl_id IN (3,4) AND status NOT IN(4,6) ) ORDER by lvl_id DESC","1");
  62. if ($query_learn['nr'] > 0) {
  63. $query_multply = $parent->selectQuery(TABLE_TRAINING_LEVEL, "*", "lvl_id='" . $query_learn['result'][0]->lvl_id . "' ", "1");
  64. }
  65. // else
  66. // {
  67. // $query_multply=$parent->selectQuery(TABLE_TRAINING_LEVEL,"*","lvl_id='1' ","1");
  68. // }
  69. $balance_point = 0;
  70. //NEW LEVEL BASED COND
  71. switch ($query_learn['result'][0]->lvl_id) {
  72. case '1':
  73. $newpoints = round($points * .5);
  74. $balance_point = $points - $newpoints;
  75. $points = $newpoints;
  76. break;
  77. case '2':
  78. $newpoints = round($points * .75);
  79. $balance_point = $points - $newpoints;
  80. $points = $newpoints;
  81. break;
  82. case '3':
  83. //no condition
  84. $balance_point = 0;
  85. break;
  86. case '4':
  87. //no condition
  88. $balance_point = 0;
  89. break;
  90. case '5':
  91. //no condition
  92. $balance_point = 0;
  93. break;
  94. case '6':
  95. //no condition
  96. $balance_point = 0;
  97. break;
  98. }
  99. $redeem_amount = $query_multply['result'][0]->lvl_points * $points;
  100. //ADD WALLET AMOUNTS
  101. // $obj=new stdClass();
  102. // $obj->type="redeem";
  103. // $obj->type_id=TIMETOKEN.$parent->current_user_id;
  104. // $obj->description="REDEEM POINTS";
  105. // $obj->amount=$redeem_amount;
  106. // $obj->lvl_points=$query_multply['result'][0]->lvl_points;
  107. // projectfunc::userAddWallet($parent,$obj,$parent->current_user_id);
  108. $parent->executeQuery("INSERT INTO " . TABLE_USER_EPOINTS_HISTORY . "( `smpin`, `type`, `type_id`, `description`, `points`, `transaction_type`, `created_on`, `modified_on`) VALUES ('" . $parent->current_smpin . "','redeem','" . TIMETOKEN . $parent->current_user_id . "','REDEEM POINTS','" . $points . "' ,'D','" . NOW . "','" . NOW . "')");
  109. //UPDATE POINT IN USER
  110. $parent->executeQuery("UPDATE " . TABLE_USER_EPOINTS . " SET points=" . $balance_point . " WHERE smpin='" . $parent->current_smpin . "' ");
  111. //GET USER DETAILS
  112. $query_rewardpointarr = $parent->selectQuery(TABLE_USER_EPOINTS, "*", "smpin='" . $parent->current_smpin . "' ", "1");
  113. $earning = ($query_rewardpointarr['nr'] > 0) ? (string) $query_rewardpointarr['result'][0]->points : '0';
  114. $is_redeem_point = (projectfunc::checkValidReedem($parent)) ? "1" : "0";
  115. $wallet_amount = projectfunc::userWalletamount($parent, $parent->current_smpin);
  116. //SEND NOTIFICATION
  117. $nobj = new stdClass();
  118. $nobj->notificationtitle = 'Redemptions of redeem points';
  119. $nobj->notificationtext = 'Redemptions of redeem points will update to wallet on admin approval.';
  120. $nobj->notificationtype = '6';
  121. $nobj->notificationdata = new stdClass();
  122. // projectfunc::sendUserNotification($parent, $nobj);
  123. //ADDED TO APPROVAL
  124. $parent->executeQuery("INSERT INTO " . TABLE_USER_WALLET_APPROVE . "( `smpin`, `points`, `amount`, `lvl_id`, `is_approved`, `approved_id`, `created_on`, `modified_on`) VALUES ('" . $parent->current_smpin . "','" . $points . "','" . $redeem_amount . "','" . $query_multply['result'][0]->lvl_id . "','0' ,'0','" . NOW . "','" . NOW . "')");
  125. //GET UNAPPROVE AMOUNT
  126. $unapproved_amount = projectfunc::userUnapprovedamount($parent, $parent->current_smpin);
  127. $data_arr = array('earning' => $earning, 'is_redeem_point' => $is_redeem_point, 'wallet_amount' => $wallet_amount, 'unapproved_amount' => $unapproved_amount);
  128. $userdata = projectfunc::getuserdata($parent, $parent->current_user_id);
  129. //MAIL ADMIN
  130. $message = '<table width="100%" bgcolor="#dfdfdf" border="0" cellspacing="10" cellpadding="0" style="padding-top:10px;">
  131. <tr>
  132. <td><table width="700" border="0" align="center" cellpadding="0" cellspacing="0" style="background:#ffffff; margin-top:0px;">
  133. <tr>
  134. <td bgcolor="#4d90fe" height="36" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; color:#070000; text-align:left; font-weight:bold; padding-left:14px; color:#fff">HYPER-M</td>
  135. </tr>
  136. <tr>
  137. <td bgcolor="#333333" style="line-height:3px;">&nbsp;</td>
  138. </tr>
  139. <tr><td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  140. line-height: 1.5;"><div style="font-family:Arial, Helvetica, sans-serif; color:#333; font-size:12px; padding:5px;" ><p style="font-family:Arial, Helvetica, sans-serif; color:#333; font-size:12px; padding:5px;">Redeem point approval request</p><table width="100%" style="border-collapse: collapse;">
  141. <tr><th style=" border: 1px solid black;">Name</th><th style=" border: 1px solid black;">SMPIN</th><th style=" border: 1px solid black;">Dealer</th><th style=" border: 1px solid black;">Points</th><th style=" border: 1px solid black;">Amount</th></tr>
  142. <tr><td style=" border: 1px solid black;font-family:Arial, Helvetica, sans-serif;font-size:12px; ">' . $userdata->fname . ' ' . $userdata->lname . '</td><td style=" border: 1px solid black;font-family:Arial, Helvetica, sans-serif;font-size:12px; ">' . $userdata->smpin . '</td><td style=" border: 1px solid black;font-family:Arial, Helvetica, sans-serif;font-size:12px;">' . $userdata->dealer->dealer_name . '-' . $userdata->dealer->dealer_code . '</td><td style=" border: 1px solid black;font-family:Arial, Helvetica, sans-serif;font-size:12px; ">' . $points . '</td><td style=" border: 1px solid black;font-family:Arial, Helvetica, sans-serif;font-size:12px; ">' . $redeem_amount . '</td></tr>
  143. </div></table>
  144. <br><br>
  145. <tr>
  146. <td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3f3f3f; background:#fafafa; line-height:30px; text-align:center;"><div class="footer-con">
  147. <p>Thanks &amp; Regards, <strong style="color:#070000;">HYPER-M Support Team</strong></p>
  148. </div></td>
  149. </tr>
  150. <tr>
  151. <td bgcolor="#4d90fe" style="line-height:1px;">&nbsp;</td>
  152. </tr>
  153. </table></td>
  154. </tr>
  155. </table>';
  156. $obj = array();
  157. $obj['from'] = SUPPORT_EMAIL;
  158. $obj['to'] = SUPPORT_EMAIL;
  159. $obj['subject'] = "Redeem point approval request";
  160. $obj['message'] = $message;
  161. // globalfunc::sendMai($parent, $obj);
  162. //LOG
  163. $logstr = 'ADD WALLET AMOUNT';
  164. globalfunc::insertUserLog($parent, $logstr);
  165. $parent->response(array('response' => 'success', 'message' => "SUCCESS", 'data' => $data_arr), 200);
  166. }
  167. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  168. /* /////////////////////////////// WOOHOO //////////////////////////////////////////////// */
  169. private function woohooCurl($parent, $url, $post = null, $type)
  170. {
  171. }
  172. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  173. /* /////////////////////////////// CATEGORY //////////////////////////////////////////////// */
  174. private function category($parent)
  175. {
  176. globalfunc::checkMethodType($parent, array('GET'));
  177. //globalfunc::checkParamCount($parent,1);
  178. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  179. projectfunc::generateWoohoo($parent);
  180. if (!projectfunc::userWalletamount($parent, $parent->current_smpin)) {$parent->response(array('response' => 'failed', 'message' => $this->page_data["error7"]), 406);}
  181. //GET CATEGORY
  182. if (count($parent->params) == 1) {
  183. $url = "catalog/categories";
  184. $return_data = $this->woohooCurl($parent, $url, null, 'category');
  185. $category = new stdClass();
  186. $category->root_category = (object) array('category_id' => $return_data->id, 'category_name' => $return_data->name, 'category_image' => '');
  187. //LOG
  188. $logstr = 'WOOHOO CATEGORY';
  189. globalfunc::insertUserLog($parent, $logstr);
  190. $parent->response(array('response' => 'success', 'message' => "SUCCESS", 'data' => $category), 200);
  191. } else if (count($parent->params) == 2) {
  192. //GET CATEGORY DETAILS
  193. $categoryid = $parent->params[1];
  194. if (!is_numeric($categoryid)) {$parent->response(array('response' => 'failed', 'message' => $this->page_data["error2"]), 406);}
  195. $url = "catalog/categories/" . $categoryid . '/products?offset=0&limit=1000';
  196. $return_data = $this->woohooCurl($parent, $url, null, 'category_product');
  197. // echo '<pre>';
  198. // print_r($return_data);
  199. // echo '</pre>';
  200. $category = new stdClass();
  201. $product = new stdClass();
  202. foreach ($return_data->products as $k => $v) {
  203. $return_data->products[$k]->id = $v->sku;
  204. $return_data->products[$k]->price_type = 'Range';
  205. $return_data->products[$k]->min_custom_price = $v->minPrice;
  206. $return_data->products[$k]->max_custom_price = $v->maxPrice;
  207. //BASE
  208. $return_data->products[$k]->images->base = ($return_data->products[$k]->images->base != '') ? $return_data->products[$k]->images->base : NOIMAGE_URL;
  209. $return_data->products[$k]->images->base_image = $return_data->products[$k]->images->base;
  210. //SMALL
  211. $return_data->products[$k]->images->small = ($return_data->products[$k]->images->small != '') ? $return_data->products[$k]->images->small : NOIMAGE_URL;
  212. $return_data->products[$k]->images->small_image = $return_data->products[$k]->images->small;
  213. }
  214. $product->product = $return_data->products;
  215. $category = (object) array('id' => $return_data->id, 'name' => $return_data->name, 'description' => $return_data->description, 'count' => $return_data->productsCount, '_embedded' => $product);
  216. //LOG
  217. $logstr = 'WOOHOO CATEGORY PRODUCTS';
  218. globalfunc::insertUserLog($parent, $logstr);
  219. if (isset($return_data->id) && $return_data->id > 0) {
  220. $parent->response(array('response' => 'success', 'message' => "SUCCESS", 'data' => $category), 200);
  221. } else {
  222. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error3"]), 406);
  223. }
  224. }
  225. }
  226. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  227. /* /////////////////////////////// PRODUCT //////////////////////////////////////////////// */
  228. private function product($parent)
  229. {
  230. globalfunc::checkMethodType($parent, array('GET'));
  231. globalfunc::checkParamCount($parent, 2);
  232. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  233. projectfunc::generateWoohoo($parent);
  234. if (!projectfunc::userWalletamount($parent, $parent->current_smpin)) {$parent->response(array('response' => 'failed', 'message' => $this->page_data["error7"]), 406);}
  235. //GET PRODUCT DETAILS
  236. $productid = $parent->params[1];
  237. //if (!is_numeric($productid)) {$parent->response(array('response' => 'failed', 'message' => $this->page_data["error4"]), 406);}
  238. $url = "catalog/products/" . $productid;
  239. $return_data = $this->woohooCurl($parent, $url, null, 'product');
  240. //print_r($return_data);
  241. $product = new stdClass();
  242. $return_data->id = $return_data->sku;
  243. $return_data->price_type = ucfirst(strtolower($return_data->price->type));
  244. $return_data->min_custom_price = $return_data->price->min;
  245. $return_data->max_custom_price = $return_data->price->max;
  246. $return_data->images = ($return_data->images->base) ? $return_data->images->base : NOIMAGE_URL;
  247. $return_data->tnc_mobile = $return_data->tnc->link;
  248. $return_data->tnc_web = $return_data->tnc->link;
  249. $return_data->custom_denominations = @implode(',', $return_data->price->denominations);
  250. //LOG
  251. $logstr = 'WOOHOO PRODUCT DETAILS';
  252. globalfunc::insertUserLog($parent, $logstr);
  253. if (isset($return_data->id) && $return_data->id != '') {
  254. $parent->response(array('response' => 'success', 'message' => "SUCCESS", 'data' => $return_data), 200);
  255. } else {
  256. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error4"]), 406);
  257. }
  258. }
  259. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  260. /* /////////////////////////////// ORDER //////////////////////////////////////////////// */
  261. private function order($parent)
  262. {
  263. globalfunc::checkMethodType($parent, array('POST'));
  264. globalfunc::checkParamCount($parent, 1);
  265. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  266. projectfunc::generateWoohoo($parent);
  267. if (!projectfunc::userWalletamount($parent, $parent->current_smpin)) {$parent->response(array('response' => 'failed', 'message' => $this->page_data["error7"]), 406);}
  268. //GET PRODUCT DETAILS
  269. $REQUEST_KEYS = array('product_id' => 'string', 'product_price' => 'number');
  270. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  271. $product_id = escape_str($parent->_request["product_id"]);
  272. $product_price = escape_str($parent->_request["product_price"]);
  273. $url = "catalog/products/" . $product_id;
  274. $return_data = $this->woohooCurl($parent, $url, null, 'product');
  275. //print_r($return_data);
  276. $return_data->price_type = ucfirst(strtolower($return_data->price->type));
  277. $return_data->custom_denominations = $return_data->price->denominations;
  278. $return_data->images = ($return_data->images->base) ? $return_data->images->base : NOIMAGE_URL;
  279. //LOG
  280. $logstr = 'WOOHOO ORDER';
  281. globalfunc::insertUserLog($parent, $logstr);
  282. $current_amount = projectfunc::userWalletamount($parent, $parent->current_smpin);
  283. //print_r($return_data);
  284. if (isset($return_data->id) && isset($return_data->sku)) {
  285. if (!($current_amount >= $product_price)) {
  286. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error7"]), 406);
  287. }
  288. switch (strtolower($return_data->price_type)) {
  289. case "range":
  290. if (!($return_data->price->min <= $product_price && $return_data->price->max >= $product_price)) {
  291. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error9"]), 406);
  292. }
  293. break;
  294. case "slab":
  295. if (isset($return_data->custom_denominations) && is_array($return_data->custom_denominations)) {
  296. $slab_arr = $return_data->custom_denominations;
  297. //$slab_arr = @explode(',', $return_data->custom_denominations);
  298. if (!in_array($product_price, $slab_arr)) {
  299. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error9"]), 406);
  300. }
  301. } else {
  302. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error10"]), 406);
  303. }
  304. break;
  305. default:$parent->response(array('response' => 'failed', 'message' => $this->page_data["error8"]), 406);
  306. break;
  307. }
  308. //BILLING DETAILS
  309. $billing_obj = new stdClass();
  310. $shipping_obj = new stdClass();
  311. $billing_obj->firstname = $parent->current_user_data->fname;
  312. $billing_obj->lastname = $parent->current_user_data->lname;
  313. $billing_obj->email = $parent->current_user_data->emailid;
  314. $billing_obj->telephone = '+91' . $parent->current_user_data->mobileno;
  315. $user_data = projectfunc::getuserdata($parent, $parent->current_user_id);
  316. $billing_obj->line1 = $user_data->dealer->dealer_name;
  317. $billing_obj->line2 = $user_data->dealer->city;
  318. $billing_obj->city = $user_data->dealer->city;
  319. $billing_obj->region = $user_data->dealer->state;
  320. $billing_obj->country = "IN";
  321. $billing_obj->postcode = "560076";
  322. //$billing_obj->company = '';
  323. //SHIPPING DETAILS
  324. $shipping_obj->firstname = $parent->current_user_data->fname;
  325. $shipping_obj->lastname = $parent->current_user_data->lname;
  326. $shipping_obj->email = $parent->current_user_data->emailid;
  327. $shipping_obj->telephone = '+91' . $parent->current_user_data->mobileno;
  328. $shipping_obj->line1 = $user_data->dealer->dealer_name;
  329. $shipping_obj->line2 = $user_data->dealer->city;
  330. $shipping_obj->city = $user_data->dealer->city;
  331. $shipping_obj->region = $user_data->dealer->state;
  332. $shipping_obj->country = "IN";
  333. $shipping_obj->postcode = "560076";
  334. $shipping_obj->billToThis = true;
  335. //$shipping_obj->company = '';
  336. $post_obj = new stdClass();
  337. $post_obj->address = $shipping_obj;
  338. $post_obj->billing = $billing_obj;
  339. $post_obj->payments = array(array('code' => 'svc', 'amount' => (int) $product_price));
  340. $product_qty = 1;
  341. //INSERT INTO ORDER
  342. $parent->executeQuery("INSERT INTO " . TABLE_ORDER . "( `userid`,`smpin`, `product_id`, `product_name`, `product_desc`,images, `qty`, `product_amount`, `is_success`, `is_refund`, `created_on`, `modfified_on`) VALUES ( '" . $parent->current_user_id . "','" . $parent->current_smpin . "','" . $product_id . "','" . escape_str($return_data->name) . "','" . escape_str($return_data->name) . "','" . escape_str($return_data->images) . "','" . $product_qty . "','" . $product_price . "' ,'0','0','" . NOW . "','" . NOW . "')");
  343. $orderid = $parent->lastInsertId();
  344. //UDPATE ORDER ID
  345. $order_id = "SUZ" . date('ymd', strtotime(CUR_DATE)) . $orderid;
  346. $parent->executeQuery("UPDATE " . TABLE_ORDER . " SET order_id='" . $order_id . "' WHERE id='" . $orderid . "'");
  347. //WALLET UPDATE
  348. $new_balance = $current_amount - $product_price;
  349. $parent->executeQuery("UPDATE " . TABLE_USER_WALLET . " SET amount='" . $new_balance . "' WHERE smpin='" . $parent->current_smpin . "' ");
  350. $parent->executeQuery("INSERT INTO " . TABLE_USER_WALLET_HISTORY . "( `smpin`, `type`, `type_id`, `description`, `amount`, `transaction_type`, `created_on`, `modified_on`) VALUES ('" . $parent->current_smpin . "','ORDER','" . $orderid . "','ORDER','" . $product_price . "' ,'D','" . NOW . "','" . NOW . "')");
  351. $post_obj->refno = $order_id;
  352. //$post_obj->successUrl = "https://baseurl/ordercomplete/success";
  353. //$post_obj->failureUrl = "https://baseurl/ordercomplete/failure";
  354. $post_obj->products = array(array('sku' => $product_id, 'price' => (int) $product_price, 'qty' => $product_qty, 'currency' => 356, 'giftMessage' => '', "theme" => '')); //, "theme" => "bwi"
  355. $post_obj->syncOnly = true;
  356. $post_obj->deliveryMode = 'API';
  357. $url = "orders";
  358. //print_r($post_obj);
  359. $order_data = $this->woohooCurl($parent, $url, (array) $post_obj, 'order');
  360. if (isset($order_data->orderId) && $order_data->orderId != '') {
  361. $card_data = '';
  362. if (isset($order_data->cards) && count($order_data->cards) > 0) {
  363. //$key_name = key((array) $order_data->carddetails);
  364. //$card_obj = new stdClass();
  365. //$card_obj = $order_data->carddetails->$key_name[0];
  366. //$card_obj->name = $key_name;
  367. $card_data = escape_str(json_encode($order_data->cards[0]));
  368. }
  369. $parent->executeQuery("UPDATE " . TABLE_ORDER . " SET is_success='1',woohoo_order_id='" . escape_str($order_data->order_id) . "',woohoo_order_status='" . escape_str($order_data->status) . "',card_data='" . $card_data . "' WHERE id='" . $orderid . "'");
  370. //SEND NOTIFICATION
  371. $nobj = new stdClass();
  372. $nobj->notificationtitle = 'Order Placed successfully';
  373. $nobj->notificationtext = 'Order Placed successfully.';
  374. $nobj->notificationtype = '7';
  375. $nobj->notificationdata = new stdClass();
  376. // projectfunc::sendUserNotification($parent, $nobj);
  377. if ($order_data->payments[0]->balance < 25000) {
  378. $message = '<table width="100%" bgcolor="#dfdfdf" border="0" cellspacing="10" cellpadding="0" style="padding-top:10px;">
  379. <tbody><tr>
  380. <td><table width="700" border="0" align="center" cellpadding="0" cellspacing="0" style="background:#ffffff; margin-top:0px;">
  381. <tbody><tr>
  382. <td bgcolor="#2d2d2d" height="36" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; color:#e4e4e4; text-align:left; font-weight:bold; padding-left:14px; border-bottom:2px solid black">HYPER-M - WOOHOO API LOW BALANCE</td>
  383. </tr>
  384. <tr><td><table width="85%" align="center">
  385. <tbody> <tr><td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  386. line-height: 1.5;"><div style="font-family:arial; color:#333; font-size:12px; padding:5px;" >Woohoo api balance is below 25000. <br>Balance Available : ' . $order_data->payments[0]->balance . '</div></td>
  387. </tr>
  388. </tbody></table>
  389. </td>
  390. </tr>
  391. <tr>
  392. <td style="padding-top:0px; padding-bottom:10px;"></td>
  393. </tr>
  394. <tr>
  395. <td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3f3f3f; background:#fafafa; line-height:30px; text-align:center;border-bottom:2px solid black"><div class="footer-con">
  396. <p>Thanks &amp; Regards, <strong style="color:black;"> Support Team</strong></p>
  397. </div></td>
  398. </tr>
  399. </tbody></table></td>
  400. </tr>
  401. </tbody></table>';
  402. $obj = array();
  403. $obj['from'] = SUPPORT_EMAIL;
  404. //$obj['replayto']=SUPPORT_EMAIL;
  405. $obj['to'] = SUPPORT_EMAIL;
  406. $obj['subject'] = "Woohoo balance is less.";
  407. $obj['message'] = $message;
  408. // globalfunc::sendMai($parent, $obj);
  409. }
  410. $parent->response(array('response' => 'success', 'type' => '1', 'message' => "SUCCESS"), 200);
  411. } else {
  412. //REFUND WALLET
  413. /*
  414. * REFUND FROM CRON REFUND service only
  415. *
  416. $obj=new stdClass();
  417. $obj->type="REFUND";
  418. $obj->type_id=$orderid;
  419. $obj->description="REFUND ORDER";
  420. $obj->amount=$product_price;
  421. projectfunc::userAddWallet($parent,$obj,$parent->current_user_id);
  422. $parent->executeQuery("UPDATE ".TABLE_ORDER." SET is_refund='1' WHERE id='".$orderid."'");
  423. *
  424. */
  425. $parent->response(array('response' => 'success', 'type' => '2', 'message' => "SUCCESS"), 200);
  426. //$parent->response(array('response'=>'failed','message'=>$this->page_data["error10"]),406);
  427. }
  428. } else {
  429. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error4"]), 406);
  430. }
  431. }
  432. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  433. /* /////////////////////////////// ORDER //////////////////////////////////////////////// */
  434. private function orderstatus($parent)
  435. {
  436. globalfunc::checkMethodType($parent, array('GET'));
  437. globalfunc::checkParamCount($parent, 2);
  438. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  439. projectfunc::generateWoohoo($parent);
  440. $order_id = escape_str($parent->params[1]);
  441. $query_order_arr = $parent->selectQuery(TABLE_ORDER, "*", "is_success=1 AND smpin='" . $parent->current_smpin . "' AND id='" . $order_id . "' ", "1");
  442. if (!$query_order_arr['nr'] > 0) {
  443. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error11']), 406);
  444. }
  445. $order_ref = $query_order_arr['result'][0]->order_id;
  446. $url = "order/" . $order_ref . "/status";
  447. $return_data = $this->woohooCurl($parent, $url, null, 'status');
  448. if ($return_data->status == 'COMPLETE') {
  449. $parent->executeQuery("UPDATE " . TABLE_ORDER . " SET woohoo_order_id='" . $return_data->orderId . "',woohoo_order_status='" . $return_data->status . "' ,modfified_on='" . NOW . "' WHERE id='" . $order_id . "'");
  450. $query_arr = $parent->selectQuery(TABLE_ORDER, "*", " smpin='" . $parent->current_smpin . "' AND is_success='1' AND smpin='" . $parent->current_smpin . "' AND id='" . $order_id . "' ", "1");
  451. $parent->response(array('response' => 'success', 'data' => $query_arr['result'][0], 'message' => "SUCCESS"), 200);
  452. } else {
  453. $parent->response(array('response' => 'failed', 'message' => $this->page_data["error10"]), 406);
  454. }
  455. }
  456. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  457. }