helpers.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. <?php
  2. use Barryvdh\DomPDF\Facade\Pdf;
  3. use Illuminate\Support\Facades\Storage;
  4. use Illuminate\Support\Facades\Mail;
  5. function getCards()
  6. {
  7. return \App\Models\Card::where('enabled', true)->orderBy('name')->get();
  8. }
  9. function getCategories()
  10. {
  11. return \App\Models\Category::where('enabled', true)->where('parent_id', null)->orderBy('name')->get();
  12. }
  13. function formatPrice($price)
  14. {
  15. return "€ " . number_format($price, 2, ",", ".");
  16. }
  17. function getVatValue($v, $i)
  18. {
  19. $vat = 0;
  20. //if (env('VAT_MANAGE', 0) == 1)
  21. //{
  22. $vats = \App\Models\Vat::select('id', 'name', 'value')->orderBy('value')->get();
  23. if ($i > 0)
  24. {
  25. $iv = 0;
  26. foreach($vats as $vv)
  27. {
  28. if ($vv->id == $i)
  29. {
  30. $iv = $vv->value;
  31. break;
  32. }
  33. }
  34. if ($iv > 0)
  35. $vat = $v / 100 * $iv;
  36. }
  37. //}
  38. return $vat;
  39. }
  40. function getVatMap()
  41. {
  42. static $map = null;
  43. if ($map === null) {
  44. $map = [];
  45. $vats = \App\Models\Vat::select('id', 'value')->get();
  46. foreach ($vats as $vat) {
  47. $rate = (float)$vat->value;
  48. $map[$vat->id] = $rate > 0 ? 1.0 + ($rate / 100.0) : 1.0;
  49. }
  50. }
  51. return $map;
  52. }
  53. function mysqlToDate($dt)
  54. {
  55. list($date, $hour) = explode(" ", $dt);
  56. list($year, $month, $day) = explode("-", $date);
  57. return $day . "/" . $month . "/" . $year;
  58. }
  59. function currencyToDouble($val)
  60. {
  61. $x = str_replace("€", "", $val);
  62. $x = str_replace(".", "", $x);
  63. $x = str_replace(",", ".", $x);
  64. return floatval(trim($x));
  65. }
  66. function getConfiguration($field)
  67. {
  68. $ret = "";
  69. $conf = \App\Models\Configurration::first();
  70. if ($conf)
  71. {
  72. $ret = $conf[$field];
  73. }
  74. return $ret;
  75. }
  76. function sendReceiptEmail($receipt)
  77. {
  78. $pdf = PDF::loadView('receipt', array('receipt' => $receipt));
  79. $pdfName = "Ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf";
  80. if ($receipt->member) {
  81. $pdfName = "Ricevuta_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
  82. } elseif ($receipt->supplier) {
  83. $pdfName = "Ricevuta_" . $receipt->supplier->name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
  84. }
  85. //$pdfName = "Ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf";
  86. Storage::put('public/pdf/' . $pdfName, $pdf->output());
  87. $email = '';
  88. $member = $receipt->member;
  89. if ($member && ($member->no_send_mail == null || !$member->no_send_mail))
  90. {
  91. if ($member->isAdult())
  92. $email = $member->email;
  93. else
  94. {
  95. $check = explode(" ", $member->father_name);
  96. if (str_contains($receipt->parent, $check[0]))
  97. {
  98. $email = $member->father_email;
  99. }
  100. else
  101. {
  102. $check = explode(" ", $member->mother_name);
  103. if (str_contains($receipt->parent, $check[0]))
  104. $email = $member->mother_email;
  105. }
  106. }
  107. if ($email != '')
  108. {
  109. try
  110. {
  111. Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipEmail([
  112. 'pdf' => 'public/pdf/' . $pdfName,
  113. 'number' => $receipt->number . "/" . $receipt->year
  114. ]));
  115. } catch (Exception $e) {
  116. //echo 'Caught exception: ', $e->getMessage(), "\n";
  117. }
  118. }
  119. }
  120. $supplier = $receipt->supplier;
  121. if ($supplier)
  122. {
  123. $email = $supplier->referent_email;
  124. if ($email != '')
  125. {
  126. try
  127. {
  128. Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipEmail([
  129. 'pdf' => 'public/pdf/' . $pdfName,
  130. 'number' => $receipt->number . "/" . $receipt->year
  131. ]));
  132. } catch (Exception $e) {
  133. //echo 'Caught exception: ', $e->getMessage(), "\n";
  134. }
  135. }
  136. }
  137. }
  138. function sendReceiptDeleteEmail($receipt)
  139. {
  140. $pdf = PDF::loadView('receipt', array('receipt' => $receipt));
  141. $pdfName = "Ricevuta_annullata_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
  142. Storage::put('public/pdf/' . $pdfName, $pdf->output());
  143. $email = '';
  144. $member = \App\Models\Member::findOrFail($receipt->member_id);
  145. if ($member->no_send_mail == null || !$member->no_send_mail)
  146. {
  147. if ($member->isAdult())
  148. $email = $member->email;
  149. else
  150. {
  151. $check = explode(" ", $member->father_name);
  152. if (str_contains($receipt->parent, $check[0]))
  153. {
  154. $email = $member->father_email;
  155. }
  156. else
  157. {
  158. $check = explode(" ", $member->mother_name);
  159. if (str_contains($receipt->parent, $check[0]))
  160. $email = $member->mother_email;
  161. }
  162. }
  163. if ($email != '')
  164. {
  165. try
  166. {
  167. Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipDeleteEmail([
  168. 'number' => $receipt->number . "/" . $receipt->year,
  169. 'pdf' => 'public/pdf/' . $pdfName,
  170. 'date' => date("d/m/Y", strtotime($receipt->date))
  171. ]));
  172. } catch (Exception $e) {
  173. //echo 'Caught exception: ', $e->getMessage(), "\n";
  174. }
  175. }
  176. }
  177. }
  178. function updateMemberData($member_id)
  179. {
  180. $member = \App\Models\Member::findOrFail($member_id);
  181. $status = $member->getStatus();
  182. $status = $status["status"];
  183. $has_certificate = $member->hasCertificate();
  184. $certificate = 0;
  185. $certificate_date = null;
  186. if($has_certificate["date"] != '')
  187. {
  188. if($has_certificate["date"] < date("Y-m-d"))
  189. $certificate = 0;
  190. if($has_certificate["date"] >= date("Y-m-d") && $has_certificate["date"] < date("Y-m-d", strtotime("+1 month")))
  191. $certificate = 1;
  192. if($has_certificate["date"] >= date("Y-m-d", strtotime("+1 month")))
  193. $certificate = 2;
  194. $certificate_date = $has_certificate["date"] != '' ? $has_certificate["date"] : null;
  195. }
  196. $member->current_status = $status;
  197. $member->certificate = $certificate;
  198. $member->certificate_date = $certificate_date;
  199. $member->save();
  200. }
  201. function getMonthName($m)
  202. {
  203. $ret = '';
  204. switch ($m) {
  205. case 1:
  206. $ret = 'Gennaio';
  207. break;
  208. case 2:
  209. $ret = 'Febbraio';
  210. break;
  211. case 3:
  212. $ret = 'Marzo';
  213. break;
  214. case 4:
  215. $ret = 'Aprile';
  216. break;
  217. case 5:
  218. $ret = 'Maggio';
  219. break;
  220. case 6:
  221. $ret = 'Giugno';
  222. break;
  223. case 7:
  224. $ret = 'Luglio';
  225. break;
  226. case 8:
  227. $ret = 'Agosto';
  228. break;
  229. case 9:
  230. $ret = 'Settembre';
  231. break;
  232. case 10:
  233. $ret = 'Ottobre';
  234. break;
  235. case 11:
  236. $ret = 'Novembre';
  237. break;
  238. case 12:
  239. $ret = 'Dicembre';
  240. break;
  241. default:
  242. $ret = '';
  243. break;
  244. }
  245. return $ret;
  246. }
  247. function getMonthList()
  248. {
  249. $months = [];
  250. if (env('FISCAL_YEAR_MONTH_FROM', 1) > 1)
  251. {
  252. for($x=env('FISCAL_YEAR_MONTH_FROM', 1); $x<=12; $x++)
  253. {
  254. $months[$x] = getMonthName($x);
  255. }
  256. for($x=1; $x<env('FISCAL_YEAR_MONTH_FROM', 1); $x++)
  257. {
  258. $months[$x] = getMonthName($x);
  259. }
  260. }
  261. else
  262. {
  263. for($x=1; $x<=12; $x++)
  264. {
  265. $months[$x] = getMonthName($x);
  266. }
  267. }
  268. return $months;
  269. }
  270. function sms_send($params, $backup = false)
  271. {
  272. static $content;
  273. if ($backup == true) {
  274. $url = 'https://api2.smsapi.com/sms.do';
  275. } else {
  276. $url = 'https://api.smsapi.com/sms.do';
  277. }
  278. $c = curl_init();
  279. curl_setopt($c, CURLOPT_URL, $url);
  280. curl_setopt($c, CURLOPT_POST, true);
  281. curl_setopt($c, CURLOPT_POSTFIELDS, $params);
  282. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  283. curl_setopt($c, CURLOPT_HTTPHEADER, array(
  284. "Authorization: Bearer " . env('SMS_TOKEN', 'kHebe4eQ5cTbPCHGiGrNJAFsy2z0fiF3W7DdO8Ss')
  285. ));
  286. $content = curl_exec($c);
  287. $http_status = curl_getinfo($c, CURLINFO_HTTP_CODE);
  288. /*if ($http_status != 200 && $backup == false) {
  289. $backup = true;
  290. sms_send($params, $token, $backup);
  291. }*/
  292. curl_close($c);
  293. return $content;
  294. }