orderBy('name')->get(); } function getCategories() { return \App\Models\Category::where('enabled', true)->where('parent_id', null)->orderBy('name')->get(); } function formatPrice($price) { return "€ " . number_format($price, 2, ",", "."); } function getVatValue($v, $i) { $vat = 0; //if (env('VAT_MANAGE', 0) == 1) //{ $vats = \App\Models\Vat::select('id', 'name', 'value')->orderBy('value')->get(); if ($i > 0) { $iv = 0; foreach($vats as $vv) { if ($vv->id == $i) { $iv = $vv->value; break; } } if ($iv > 0) $vat = $v / 100 * $iv; } //} return $vat; } function getVatMap() { static $map = null; if ($map === null) { $map = []; $vats = \App\Models\Vat::select('id', 'value')->get(); foreach ($vats as $vat) { $rate = (float)$vat->value; $map[$vat->id] = $rate > 0 ? 1.0 + ($rate / 100.0) : 1.0; } } return $map; } function mysqlToDate($dt) { list($date, $hour) = explode(" ", $dt); list($year, $month, $day) = explode("-", $date); return $day . "/" . $month . "/" . $year; } function currencyToDouble($val) { $x = str_replace("€", "", $val); $x = str_replace(".", "", $x); $x = str_replace(",", ".", $x); return floatval(trim($x)); } function getConfiguration($field) { $ret = ""; $conf = \App\Models\Configurration::first(); if ($conf) { $ret = $conf[$field]; } return $ret; } function sendReceiptEmail($receipt) { $pdf = PDF::loadView('receipt', array('receipt' => $receipt)); $pdfName = "Ricevuta_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf"; //$pdfName = "Ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf"; Storage::put('public/pdf/' . $pdfName, $pdf->output()); $email = ''; $member = \App\Models\Member::findOrFail($receipt->member_id); if ($member->no_send_mail == null || !$member->no_send_mail) { if ($member->isAdult()) $email = $member->email; else { $check = explode(" ", $member->father_name); if (str_contains($receipt->parent, $check[0])) { $email = $member->father_email; } else { $check = explode(" ", $member->mother_name); if (str_contains($receipt->parent, $check[0])) $email = $member->mother_email; } } if ($email != '') { try { Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipEmail([ 'pdf' => 'public/pdf/' . $pdfName, 'number' => $receipt->number . "/" . $receipt->year ])); } catch (Exception $e) { //echo 'Caught exception: ', $e->getMessage(), "\n"; } } } } function sendReceiptDeleteEmail($receipt) { $pdf = PDF::loadView('receipt', array('receipt' => $receipt)); $pdfName = "Ricevuta_annullata_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf"; Storage::put('public/pdf/' . $pdfName, $pdf->output()); $email = ''; $member = \App\Models\Member::findOrFail($receipt->member_id); if ($member->no_send_mail == null || !$member->no_send_mail) { if ($member->isAdult()) $email = $member->email; else { $check = explode(" ", $member->father_name); if (str_contains($receipt->parent, $check[0])) { $email = $member->father_email; } else { $check = explode(" ", $member->mother_name); if (str_contains($receipt->parent, $check[0])) $email = $member->mother_email; } } if ($email != '') { try { Mail::to($email)->bcc(env('MAIL_CCN', ''))->send(new \App\Mail\ReceipDeleteEmail([ 'number' => $receipt->number . "/" . $receipt->year, 'pdf' => 'public/pdf/' . $pdfName, 'date' => date("d/m/Y", strtotime($receipt->date)) ])); } catch (Exception $e) { //echo 'Caught exception: ', $e->getMessage(), "\n"; } } } } function updateMemberData($member_id) { $member = \App\Models\Member::findOrFail($member_id); $status = $member->getStatus(); $status = $status["status"]; $has_certificate = $member->hasCertificate(); $certificate = 0; $certificate_date = null; if($has_certificate["date"] != '') { if($has_certificate["date"] < date("Y-m-d")) $certificate = 0; if($has_certificate["date"] >= date("Y-m-d") && $has_certificate["date"] < date("Y-m-d", strtotime("+1 month"))) $certificate = 1; if($has_certificate["date"] >= date("Y-m-d", strtotime("+1 month"))) $certificate = 2; $certificate_date = $has_certificate["date"] != '' ? $has_certificate["date"] : null; } $member->current_status = $status; $member->certificate = $certificate; $member->certificate_date = $certificate_date; $member->save(); } function getMonthName($m) { $ret = ''; switch ($m) { case 1: $ret = 'Gennaio'; break; case 2: $ret = 'Febbraio'; break; case 3: $ret = 'Marzo'; break; case 4: $ret = 'Aprile'; break; case 5: $ret = 'Maggio'; break; case 6: $ret = 'Giugno'; break; case 7: $ret = 'Luglio'; break; case 8: $ret = 'Agosto'; break; case 9: $ret = 'Settembre'; break; case 10: $ret = 'Ottobre'; break; case 11: $ret = 'Novembre'; break; case 12: $ret = 'Dicembre'; break; default: $ret = ''; break; } return $ret; } function getMonthList() { $months = []; if (env('FISCAL_YEAR_MONTH_FROM', 1) > 1) { for($x=env('FISCAL_YEAR_MONTH_FROM', 1); $x<=12; $x++) { $months[$x] = getMonthName($x); } for($x=1; $x