Advertisement
Guest User

CSV

a guest
Aug 17th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.37 KB | None | 0 0
  1. <?php
  2.  
  3. //przejrzyj wszystkie TODO w kodzie
  4.  
  5. require_once('PHPMailer/PHPMailerAutoload.php');
  6.  
  7. header('Content-Type: text/html; charset=utf-8');
  8.  
  9. error_reporting(E_ALL);
  10. ini_set('display_errors', 1);
  11.  
  12. $shift_hours = 2;
  13.  
  14. $hour = date('h');
  15. $date = date('Y-m-d');
  16.  
  17. $created_at_query_part = '';
  18. if ($hour >= 7 && $hour < 12) {
  19. //rano
  20.  
  21. $start = date('Y-m-d H:i:s', strtotime("$date 07:00") - 3600 * $shift_hours);
  22. $end = date('Y-m-d H:i:s', strtotime("$date 12:00") - 3600 * $shift_hours);
  23. $created_at_query_part = "created_at >= '$start' AND created_at < '$end'";
  24. } elseif ($hour >= 12 && $hour < 15) {
  25. //południe
  26.  
  27. $start = date('Y-m-d H:i:s', strtotime("$date 12:00") - 3600 * $shift_hours);
  28. $end = date('Y-m-d H:i:s', strtotime("$date 15:00") - 3600 * $shift_hours);
  29. $created_at_query_part = "created_at >= '$start' AND created_at < '$end'";
  30. } elseif ($hour >= 15 && $hour < 20) {
  31. //popołudnie
  32.  
  33. $start = date('Y-m-d H:i:s', strtotime("$date 15:00") - 3600 * $shift_hours);
  34. $end = date('Y-m-d H:i:s', strtotime("$date 20:00") - 3600 * $shift_hours);
  35. $created_at_query_part = "created_at >= '$start' AND created_at < '$end'";
  36. } else {
  37. //wieczór
  38.  
  39. $start = date('Y-m-d H:i:s', strtotime("$date 20:00") - 3600 * $shift_hours);
  40. $end = date('Y-m-d H:i:s', strtotime("$date 07:00") - 3600 * $shift_hours);
  41. $created_at_query_part = "created_at >= '$start' AND created_at < '$end'";
  42. }
  43.  
  44. //TESTY
  45. $created_at_query_part = "created_at >= '2017-08-16 08:00' AND created_at < '2017-08-16 24:00'";
  46.  
  47. //$file1array = array(array('numer zamówienia', 'data zamówienia', 'produkty', 'rodzaj odbioru / adres', 'cena zamówienia', 'status'));
  48. $file1array = array(array('Numer zamówienia', 'Produkty', 'Ilość'));
  49.  
  50. //$file2array = array(array('numer zamówienia', 'data zamówienia', 'adres dostawy', 'godzina dostawy'));
  51. $file2array = array(array('Numer zamówienia', 'Imię', 'Nazwisko', 'Nazwa firmy', 'Kod pocztowy', 'Miejscowość', 'Ulica i numer', 'godzina dostawy', 'telefon kontaktowy'));
  52.  
  53.  
  54. $file3array = array(array('Numer zamówienia', 'Produkty', 'Faktura/paragon', 'Imię', 'Nazwisko', 'Nazwa firmy', 'Kod pocztowy', 'Miejscowość', 'Ulica i numer', 'telefon kontaktowy', 'NIP'));
  55.  
  56. try {
  57. //TODO - zmiana danych do bazy dancyh
  58. $conn = new PDO("mysql:host=localhost;dbname=ssideare_witpol", 'ssideare_witpol', 'ZUJiUfWn', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
  59. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  60.  
  61. $sql = "SELECT * FROM sales_flat_order WHERE $created_at_query_part";
  62. echo $sql . '<br/><br/>';
  63.  
  64. foreach ($conn->query($sql) as $row) {
  65. $file1item = $file2item = $file3item = array();
  66. $file1item[] = $file2item[] = $file3item[] = $row['increment_id'];
  67.  
  68. //$file2item[] = date('Y-m-d H:i:s', strtotime($row['created_at']) + 3600 * $shift_hours);
  69.  
  70. $sql2 = "SELECT * FROM sales_flat_order_item WHERE order_id = {$row['entity_id']}";
  71. $items = array();
  72. $numbers = array();
  73. foreach ($conn->query($sql2) as $row2) {
  74. if ($row2['price'] > 0) {
  75. $items[] = $row2['name'];
  76. $check = $row2['qty_ordered'];
  77. $numbers[] = is_int($check) ? int($check) : $check;
  78. }
  79. }
  80. $file1item[] = implode("\r\n", $items);
  81. $file3item[] = implode("\r\n", $items);
  82. $file1item[] = implode("\r\n", $numbers);
  83.  
  84. $invoice = 'NIE';
  85. $sql2b = "SELECT * FROM sales_flat_invoice WHERE entity_id = {$row['entity_id']}";
  86. foreach ($conn->query($sql2b) as $row2b) {
  87. $invoice = 'TAK';
  88. }
  89. $file3item[] = $invoice;
  90.  
  91. $firstname = '';
  92. $lastname = '';
  93. $company = '';
  94. $postcode = '';
  95. $city = '';
  96. $street = '';
  97. $phone_numer = '';
  98.  
  99. $sql3 = "SELECT * FROM sales_flat_order_address WHERE entity_id = {$row['shipping_address_id']} AND address_type = 'shipping'";
  100. //$sql3 = "SELECT * FROM sales_flat_order_address WHERE entity_id = {$row['shipping_address_id']}";
  101. foreach ($conn->query($sql3) as $row3) {
  102. $firstname = $row3['firstname'];
  103. $lastname = $row3['lastname'];
  104. $company = $row3['company'];
  105. $postcode = $row3['postcode'];
  106. $city = $row3['city'];
  107. $street = $row3['street'];
  108. $phone_numer = $row3['telephone'];
  109. }
  110.  
  111. $file2item[] = $firstname;
  112. $file2item[] = $lastname;
  113. $file2item[] = $company;
  114. $file2item[] = $postcode;
  115. $file2item[] = $city;
  116. $file2item[] = $street;
  117.  
  118. $delivery_hour = '';
  119. $sql4 = "SELECT * FROM timeslot WHERE order_id = {$row['entity_id']}";
  120. foreach ($conn->query($sql4) as $row4) {
  121. $delivery_hour = "{$row['shipping_arrival_date']} {$row4['timeslot']}";
  122. }
  123. $file2item[] = $delivery_hour;
  124.  
  125. $file2item[] = $phone_numer;
  126.  
  127. $firstname = '';
  128. $lastname = '';
  129. $company = '';
  130. $postcode = '';
  131. $city = '';
  132. $street = '';
  133. $phone_numer = '';
  134.  
  135. $sql5 = "SELECT * FROM sales_flat_order_address WHERE entity_id = {$row['billing_address_id']} AND address_type = 'billing'";
  136. foreach ($conn->query($sql5) as $row5) {
  137. $firstname = $row3['firstname'];
  138. $lastname = $row3['lastname'];
  139. $company = $row3['company'];
  140. $postcode = $row3['postcode'];
  141. $city = $row3['city'];
  142. $street = $row3['street'];
  143. $phone_numer = $row3['telephone'];
  144. }
  145. $file3item[] = $firstname;
  146. $file3item[] = $lastname;
  147. $file3item[] = $company;
  148. $file3item[] = $postcode;
  149. $file3item[] = $city;
  150. $file3item[] = $street;
  151. $file3item[] = $phone_numer;
  152.  
  153. $file3item[] = $row['customer_taxvat'];
  154.  
  155. $file1array[] = $file1item;
  156. $file2array[] = $file2item;
  157. $file3array[] = $file3item;
  158. }
  159.  
  160. //debug
  161. //print_r($file1array);
  162. //print_r($file2array);
  163. //print_r($file3array);
  164. //die();
  165.  
  166.  
  167. $fp1 = fopen('SKLADANKA.csv', 'w');
  168. for ($x = 0; $x < count($file1array); $x++) {
  169. fputs($fp1, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
  170. if ($fp1)
  171. {
  172. fputcsv($fp1, $file1array[$x]);
  173. }
  174. }
  175. fclose($fp1);
  176.  
  177. $fp2 = fopen('LIST_PRZEWOZOWY.csv', 'w');
  178. for ($x = 0; $x < count($file2array); $x++) {
  179. fputs($fp2, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
  180. if ($fp2)
  181. {
  182. fputcsv($fp2, $file2array[$x]);
  183. }
  184. }
  185. fclose($fp2);
  186.  
  187. $fp3 = fopen('KSIEGOWY.csv', 'w');
  188. for ($x = 0; $x < count($file3array); $x++) {
  189. fputs($fp3, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
  190. if ($fp3)
  191. {
  192. fputcsv($fp3, $file3array[$x]);
  193. }
  194. }
  195. fclose($fp3);
  196.  
  197. //wysyłka maila
  198. $email = new PHPMailer();
  199.  
  200. //TODO - zmiana danych do serwera poczty wychodzącej
  201. $email->isSMTP();
  202. $email->Host = 'mail.app2perfect.com';
  203. $email->SMTPAuth = true;
  204. $email->Username = 'kontakt@app2perfect.com';
  205. $email->Password = 'laskowice1987';
  206. $email->SMTPSecure = 'ssl';
  207. $email->Port = 465;
  208.  
  209. //TODO - zmiana danych związanych z mailem oraz treści maila
  210. $email->From = 'zamowienia@witpol.net.pl';
  211. $email->CharSet = 'UTF-8';
  212. $email->FromName = 'Sklep Internetowy Witpol';
  213. $email->Subject = 'Zestawienie zamówień z sklepu internetowego Witpol';
  214. $email->Body = 'Witaj!<br> w załączeniu do niniejszego e-maila są pliki z zamówieniami z godzin: ';
  215. $email->AddAddress('sieradzkikristof@gmail.com');
  216. $email->AddAddress('marketing@witpol.net.pl');
  217.  
  218. $email->AddAttachment('SKLADANKA.csv');
  219. $email->AddAttachment('LIST_PRZEWOZOWY.csv');
  220. $email->AddAttachment('KSIEGOWY.csv');
  221.  
  222. if (!$email->Send()) {
  223. echo 'Mailer Error: ' . $email->ErrorInfo;
  224. } else {
  225. echo 'Wiadomość została wysłana';
  226. }
  227.  
  228. unlink('SKLADANKA.csv');
  229. unlink('LIST_PRZEWOZOWY.csv');
  230. unlink('KSIEGOWY.csv');
  231. } catch (PDOException $e) {
  232. echo "Connection failed: " . $e->getMessage();
  233. }
  234.  
  235. //TODO - dodaj w cronie aby odpalało się codziennie o 7:01, 12:01, 15:01 i 20:01
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement