Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. function shippypro_get_sql_order_error( $error ){
  2. switch ($error) {
  3. case 1:
  4. $check = ['caratteri', 'maximum length', 'characters', 'Max length'];
  5. break;
  6. case 2:
  7. $check = ['Cancelled by user'];
  8. break;
  9. case 3:
  10. $check = ['zip-code', ' cap ', 'postcode', 'postal code', 'Postnummer'];
  11. break;
  12. default:
  13. return '';
  14. }
  15.  
  16. $sql = " AND (";
  17. $checkLen = count($check) - 1;
  18. foreach ($check as $k => $v) {
  19. $sql .= "o.order_error_message LIKE '%{$v}%'";
  20. if ( $k != $checkLen ) $sql .= " OR ";
  21. }
  22. return $sql . ") ";
  23. }
  24.  
  25. function shippypro_admin_ordini($error = 0) {
  26. global $user;
  27. $uid = $user->uid;
  28.  
  29. $isAdminCdiscount = isset( array_flip(shippypro_getWhiteLabelMainUsersArr()['cdiscount'])[$uid] );
  30.  
  31. $couriers = array_column( shippypro_ottieni_carrier_array(), '3', '0');
  32.  
  33. $isAdminUser = shippypro_isAdminUser();
  34.  
  35. if (!$isAdminUser && !shippypro_isMainUserOfWhitelabel("cdiscount", $user->uid)) return;
  36.  
  37. $limit = $_GET['limit'] ?? 50;
  38. $limit = $limit < 10 ? 10 : $limit;
  39. $limit = $limit > 1000 ? 1000: $limit;
  40.  
  41. $courier = $_GET['courier'] ?? NULL;
  42. $courier = isset( $couriers[$courier]) ? $courier: NULL;
  43.  
  44. $ordering = $_GET['order'] ?? 'DESC';
  45. if ( !in_array($ordering, ['ASC','DESC']) ) $ordering = 'DESC';
  46.  
  47. $params = [];
  48.  
  49. $search = $_GET['search'] ?? NULL;
  50. if ( $search ){
  51. $where = "AND (
  52. o.ordine_id = :search OR
  53. o.transaction_id = :search OR
  54. o.tracking_code = :search
  55. )";
  56. $params[':search'] = $search;
  57. } else {
  58.  
  59. $dayStart = strtotime( $_GET['day']??date("Y-m-d") );
  60.  
  61. $params = [
  62. ':dayStart' => $dayStart,
  63. ':dayEnd' => $dayStart + ( 60*60*24 )
  64. ];
  65.  
  66. $where = "AND created_at > :dayStart AND created_at < :dayEnd";
  67. }
  68.  
  69. $errorFilter = $_GET['error'] ?? NULL;
  70. if ( $errorFilter ) $where .= shippypro_get_sql_order_error( $errorFilter );
  71.  
  72. if ( $courier ){
  73. $where .= " AND o.carrier_name = :courier";
  74. $params[':courier'] = $courier;
  75. }
  76.  
  77. $error && ( $where .= " AND o.order_status = 2" );
  78.  
  79. $innerUserSql = $isAdminCdiscount ? " AND users.cdiscount = 1": '';
  80.  
  81. $orders = db_query("
  82. SELECT
  83. o.ordine_id,
  84. o.transaction_id,
  85. o.user_id,
  86. o.created_at,
  87. o.to_address_name,
  88. o.marketplace_platform,
  89. o.marketplace_updated,
  90. o.carrier_name,
  91. o.carrier_id,
  92. o.carrier_closeout,
  93. o.service_name,
  94. o.order_status,
  95. o.order_error_message,
  96. o.shipment_cost,
  97. o.shipment_cost_currency,
  98. o.label_pdf_url,
  99. o.invoice_url,
  100. o.additionaldocs_url,
  101. o.tracker_id,
  102. o.tracking_code,
  103. users.first_name AS userfirstname,
  104. users.last_name AS userlastname,
  105. shippypro_trackers.status AS trackinglaststatus
  106. FROM shippypro_ordine AS o
  107. INNER JOIN users ON o.user_id = users.uid {$innerUserSql}
  108. LEFT JOIN shippypro_trackers ON o.tracker_id = shippypro_trackers.tracker_id
  109. WHERE 1 $where
  110. ORDER BY created_at $ordering, ordine_id DESC
  111. LIMIT $limit",
  112. $params
  113. );
  114.  
  115. $getStatusText = function( $status, $err = '' ){
  116. return t(['Pending', 'Completed', 'To check'][$status]) .
  117. ( (!($status-2)&&$err) ? (": " . nl2br($err)): '' );
  118. };
  119.  
  120. $orders = $orders->fetchAll();
  121.  
  122. return get_view( 'admin/orders', [
  123. 'uid' => $uid,
  124. 'limit' => $limit,
  125. 'error' => $error,
  126. 'orders' => $orders,
  127. 'couriers' => $couriers,
  128. 'errorFilter' => $errorFilter,
  129. 'isAdminUser' => $isAdminUser,
  130. 'getStatusText' => $getStatusText,
  131. 'trackingmodalhtml' => shippypro_getTrackingModalsHtml()
  132. ], PATH_PANEL_VIEW );
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement