/modules/storecommander/ead6f6fce09/SC/lib/ord/ord_order_download.php

https://gitlab.com/ptisky/API_prestashop · PHP · 197 lines · 163 code · 8 blank · 26 comment · 21 complexity · 9b0d13b9ccb2079cd9e066ef02866fa9 MD5 · raw file

  1. <?php
  2. /**
  3. * Store Commander
  4. *
  5. * @category administration
  6. * @author Store Commander - support@storecommander.com
  7. * @version 2015-09-15
  8. * @uses Prestashop modules
  9. * @since 2009
  10. * @copyright Copyright &copy; 2009-2015, Store Commander
  11. * @license commercial
  12. * All rights reserved! Copying, duplication strictly prohibited
  13. *
  14. * *****************************************
  15. * * STORE COMMANDER *
  16. * * http://www.StoreCommander.com *
  17. * * V 2015-09-15 *
  18. * *****************************************
  19. *
  20. * Compatibility: PS version: 1.1 to 1.6.1
  21. *
  22. **/
  23. // M4PDF Module compatibility
  24. $type=Tools::getValue('type',0);
  25. $orders=explode(',',Tools::getValue('orders',''));
  26. if (count($orders) && $orders[0]=='') $orders=array();
  27. function multipleInvoices($invoices)
  28. {
  29. if (version_compare(_PS_VERSION_, '1.5.0.0', '>='))
  30. {
  31. $sql_in = implode(",", $invoices);
  32. $order_invoice_list = Db::getInstance()->executeS('
  33. SELECT oi.*
  34. FROM `'._DB_PREFIX_.'order_invoice` oi
  35. LEFT JOIN `'._DB_PREFIX_.'orders` o ON (o.`id_order` = oi.`id_order`)
  36. WHERE oi.id_order IN ('.pSQL($sql_in).')
  37. ORDER BY oi.date_add ASC
  38. ');
  39. $order_invoice_collection = ObjectModel::hydrateCollection('OrderInvoice', $order_invoice_list);
  40. if (!count($order_invoice_collection))
  41. echo 'Nothing to download';
  42. else
  43. {
  44. if(SCI::getConfigurationValue('M4PDF_PDF_INVOICES') && _s("ORD_EXPORT_USE_M4PDF")){
  45. $dir = getcwd();
  46. chdir(dirname(__FILE__).'/../../../../../m4pdf');
  47. require_once('M4OrderDetail.php');
  48. $invoices = array();
  49. foreach($order_invoice_list as $r)
  50. {
  51. $invoices[] = $r['id_order'];
  52. }
  53. $_POST['submitFilterorder'] = 0;
  54. $_POST['orderFilter_id_order'] = $invoices;
  55. $object = new M4OrderDetail();
  56. $object->generatePDF('invoices.pdf', 'D', SCI::getConfigurationValue('M4TPL_PDF_INVOICE'));
  57. chdir($dir);
  58. }else{
  59. $pdf = new PDF($order_invoice_collection, PDF::TEMPLATE_INVOICE, Context::getContext()->smarty);
  60. $pdf->render();
  61. }
  62. }
  63. }
  64. else
  65. {
  66. if(SCI::getConfigurationValue('M4PDF_PDF_INVOICES') && _s("ORD_EXPORT_USE_M4PDF")){
  67. $dir = getcwd();
  68. chdir(dirname(__FILE__).'/../../../../../m4pdf');
  69. require_once('M4OrderDetail.php');
  70. $_POST['submitFilterorder'] = 0;
  71. $_POST['orderFilter_id_order'] = $invoices;
  72. $object = new M4OrderDetail();
  73. $object->generatePDF('invoices.pdf', 'D', SCI::getConfigurationValue('M4TPL_PDF_INVOICE'));
  74. chdir($dir);
  75. }else{
  76. $pdf = new PDF('P', 'mm', 'A4');
  77. $res=array();
  78. foreach ($invoices AS $id_order)
  79. {
  80. $orderObj = new Order((int)$id_order);
  81. if (Validate::isLoadedObject($orderObj))
  82. {
  83. PDF::invoice($orderObj, 'D', true, $pdf);
  84. $res[]=$orderObj->invoice_number;
  85. }
  86. }
  87. if (count($res))
  88. return $pdf->Output('invoices.pdf', 'D');
  89. }
  90. echo 'Nothing to download';
  91. }
  92. }
  93. function multipleOrderSlips($orderSlips)
  94. {
  95. $pdf = new PDF('P', 'mm', 'A4');
  96. sort($orderSlips);
  97. foreach ($orderSlips AS $id_order_slip)
  98. {
  99. $orderSlip = new OrderSlip((int)$id_order_slip);
  100. $order = new Order((int)$orderSlip->id_order);
  101. $order->products = OrderSlip::getOrdersSlipProducts($orderSlip->id, $order);
  102. if (Validate::isLoadedObject($orderSlip) AND Validate::isLoadedObject($order))
  103. PDF::invoice($order, 'D', true, $pdf, $orderSlip);
  104. }
  105. return $pdf->Output('order_slips.pdf', 'D');
  106. }
  107. function multipleDelivery($orders)
  108. {
  109. if (version_compare(_PS_VERSION_, '1.5.0.0', '>='))
  110. {
  111. $sql_in = implode(",", $orders);
  112. $order_invoice_list = Db::getInstance()->executeS('
  113. SELECT oi.*
  114. FROM `'._DB_PREFIX_.'order_invoice` oi
  115. LEFT JOIN `'._DB_PREFIX_.'orders` o ON (o.`id_order` = oi.`id_order`)
  116. WHERE oi.id_order IN ('.pSQL($sql_in).')
  117. '.((version_compare(_PS_VERSION_, '1.6.0.0', '>='))?' AND oi.delivery_number IS NOT NULL AND oi.delivery_number>0 ':'').'
  118. ORDER BY '.(_s("ORD_EXPORT_DELIVERY_SORT")=="2"?'oi.id_order':'oi.delivery_number').' ASC
  119. ');
  120. // ORDER BY oi.delivery_date ASC
  121. // ORDER BY oi.id_order ASC
  122. $order_invoice_collection = ObjectModel::hydrateCollection('OrderInvoice', $order_invoice_list);
  123. if (!count($order_invoice_collection))
  124. echo 'Nothing to download';
  125. else
  126. {
  127. // M4PDF Module compatibility
  128. if(SCI::getConfigurationValue('M4PDF_PDF_DELIVERYSLIPS') && _s("ORD_EXPORT_USE_M4PDF")){
  129. $dir = getcwd();
  130. chdir(dirname(__FILE__).'/../../../../../m4pdf');
  131. require_once('M4OrderDetail.php');
  132. $invoices = array();
  133. foreach($order_invoice_list as $r)
  134. {
  135. $invoices[] = $r['id_order'];
  136. }
  137. $_POST['submitFilterorder'] = 0;
  138. $_POST['orderFilter_id_order'] = $invoices;
  139. $object = new M4OrderDetail();
  140. $object->generatePDF('delivery.pdf', 'D', SCI::getConfigurationValue('M4TPL_PDF_DELIVERYSLIPS'));
  141. chdir($dir);
  142. }else{
  143. $pdf = new PDF($order_invoice_collection, PDF::TEMPLATE_DELIVERY_SLIP, Context::getContext()->smarty);
  144. $pdf->render();
  145. }
  146. }
  147. }
  148. else
  149. {
  150. // M4PDF Module compatibility
  151. if(SCI::getConfigurationValue('M4PDF_PDF_DELIVERYSLIPS') && _s("ORD_EXPORT_USE_M4PDF")){
  152. $dir = getcwd();
  153. chdir(dirname(__FILE__).'/../../../../../m4pdf');
  154. require_once('M4OrderDetail.php');
  155. $_POST['submitFilterorder'] = 0;
  156. $_POST['orderFilter_id_order'] = $orders;
  157. $object = new M4OrderDetail();
  158. $object->generatePDF('delivery.pdf', 'D', SCI::getConfigurationValue('M4TPL_PDF_DELIVERYSLIPS'));
  159. chdir($dir);
  160. }else{
  161. $pdf = new PDF('P', 'mm', 'A4');
  162. $res=array();
  163. sort($orders);
  164. foreach ($orders AS $id_order)
  165. {
  166. $orderObj = new Order((int)$id_order);
  167. if (Validate::isLoadedObject($orderObj) && $orderObj->delivery_number > 0)
  168. {
  169. PDF::invoice($orderObj, 'D', true, $pdf, false, $orderObj->delivery_number);
  170. $res[]=$orderObj->delivery_number;
  171. }
  172. }
  173. if (count($res))
  174. return $pdf->Output('delivery.pdf', 'D');
  175. }
  176. echo 'Nothing to download';
  177. }
  178. }
  179. switch($type){
  180. case 'download_invoice':
  181. multipleInvoices($orders);
  182. break;
  183. case 'download_delivery':
  184. multipleDelivery($orders);
  185. break;
  186. case 'download_slips':
  187. multipleOrderSlips($orders);
  188. break;
  189. }