helpers.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  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. if ($receipt->member) {
  142. $pdfName = "Ricevuta_annullata_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
  143. } elseif ($receipt->supplier) {
  144. $pdfName = "Ricevuta_annullata_" . $receipt->supplier->name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
  145. }
  146. Storage::put('public/pdf/' . $pdfName, $pdf->output());
  147. $email = '';
  148. $member = $receipt->member;
  149. if ($member && ($member->no_send_mail == null || !$member->no_send_mail))
  150. {
  151. if ($member->isAdult())
  152. $email = $member->email;
  153. else
  154. {
  155. $check = explode(" ", $member->father_name);
  156. if (str_contains($receipt->parent, $check[0]))
  157. {
  158. $email = $member->father_email;
  159. }
  160. else
  161. {
  162. $check = explode(" ", $member->mother_name);
  163. if (str_contains($receipt->parent, $check[0]))
  164. $email = $member->mother_email;
  165. }
  166. }
  167. if ($email != '')
  168. {
  169. try
  170. {
  171. Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipDeleteEmail([
  172. 'number' => $receipt->number . "/" . $receipt->year,
  173. 'pdf' => 'public/pdf/' . $pdfName,
  174. 'date' => date("d/m/Y", strtotime($receipt->date))
  175. ]));
  176. } catch (Exception $e) {
  177. //echo 'Caught exception: ', $e->getMessage(), "\n";
  178. }
  179. }
  180. }
  181. $supplier = $receipt->supplier;
  182. if ($supplier)
  183. {
  184. $email = $supplier->referent_email;
  185. if ($email != '')
  186. {
  187. try
  188. {
  189. Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipDeleteEmail([
  190. 'number' => $receipt->number . "/" . $receipt->year,
  191. 'pdf' => 'public/pdf/' . $pdfName,
  192. 'date' => date("d/m/Y", strtotime($receipt->date))
  193. ]));
  194. } catch (Exception $e) {
  195. //echo 'Caught exception: ', $e->getMessage(), "\n";
  196. }
  197. }
  198. }
  199. }
  200. function updateMemberData($member_id)
  201. {
  202. $member = \App\Models\Member::findOrFail($member_id);
  203. $status = $member->getStatus();
  204. $status = $status["status"];
  205. $has_certificate = $member->hasCertificate();
  206. $certificate = 0;
  207. $certificate_date = null;
  208. if($has_certificate["date"] != '')
  209. {
  210. if($has_certificate["date"] < date("Y-m-d"))
  211. $certificate = 0;
  212. if($has_certificate["date"] >= date("Y-m-d") && $has_certificate["date"] < date("Y-m-d", strtotime("+1 month")))
  213. $certificate = 1;
  214. if($has_certificate["date"] >= date("Y-m-d", strtotime("+1 month")))
  215. $certificate = 2;
  216. $certificate_date = $has_certificate["date"] != '' ? $has_certificate["date"] : null;
  217. }
  218. $member->current_status = $status;
  219. $member->certificate = $certificate;
  220. $member->certificate_date = $certificate_date;
  221. $member->save();
  222. }
  223. function getMonthName($m)
  224. {
  225. $ret = '';
  226. switch ($m) {
  227. case 1:
  228. $ret = 'Gennaio';
  229. break;
  230. case 2:
  231. $ret = 'Febbraio';
  232. break;
  233. case 3:
  234. $ret = 'Marzo';
  235. break;
  236. case 4:
  237. $ret = 'Aprile';
  238. break;
  239. case 5:
  240. $ret = 'Maggio';
  241. break;
  242. case 6:
  243. $ret = 'Giugno';
  244. break;
  245. case 7:
  246. $ret = 'Luglio';
  247. break;
  248. case 8:
  249. $ret = 'Agosto';
  250. break;
  251. case 9:
  252. $ret = 'Settembre';
  253. break;
  254. case 10:
  255. $ret = 'Ottobre';
  256. break;
  257. case 11:
  258. $ret = 'Novembre';
  259. break;
  260. case 12:
  261. $ret = 'Dicembre';
  262. break;
  263. default:
  264. $ret = '';
  265. break;
  266. }
  267. return $ret;
  268. }
  269. function getMonthList()
  270. {
  271. $months = [];
  272. if (env('FISCAL_YEAR_MONTH_FROM', 1) > 1)
  273. {
  274. for($x=env('FISCAL_YEAR_MONTH_FROM', 1); $x<=12; $x++)
  275. {
  276. $months[$x] = getMonthName($x);
  277. }
  278. for($x=1; $x<env('FISCAL_YEAR_MONTH_FROM', 1); $x++)
  279. {
  280. $months[$x] = getMonthName($x);
  281. }
  282. }
  283. else
  284. {
  285. for($x=1; $x<=12; $x++)
  286. {
  287. $months[$x] = getMonthName($x);
  288. }
  289. }
  290. return $months;
  291. }
  292. function sms_send($params, $backup = false)
  293. {
  294. static $content;
  295. if ($backup == true) {
  296. $url = 'https://api2.smsapi.com/sms.do';
  297. } else {
  298. $url = 'https://api.smsapi.com/sms.do';
  299. }
  300. $c = curl_init();
  301. curl_setopt($c, CURLOPT_URL, $url);
  302. curl_setopt($c, CURLOPT_POST, true);
  303. curl_setopt($c, CURLOPT_POSTFIELDS, $params);
  304. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  305. curl_setopt($c, CURLOPT_HTTPHEADER, array(
  306. "Authorization: Bearer " . env('SMS_TOKEN', 'kHebe4eQ5cTbPCHGiGrNJAFsy2z0fiF3W7DdO8Ss')
  307. ));
  308. $content = curl_exec($c);
  309. $http_status = curl_getinfo($c, CURLINFO_HTTP_CODE);
  310. /*if ($http_status != 200 && $backup == false) {
  311. $backup = true;
  312. sms_send($params, $token, $backup);
  313. }*/
  314. curl_close($c);
  315. return $content;
  316. }