public function facturation(Request $request) { $data = $request->all(); $mois = date('Y-m-d', strtotime($data['mois'])); $fin = date('Y-m-d', strtotime('+2 month', strtotime($mois))); $facturations = Facturation::with('enfant', 'enfant.classe')->whereBetween('semaine', [$mois, $fin])->orderBy('enfant_id')->get(); //dd($facturations, $mois, $fin); Excel::load('fichiers/facturation.xlsx', function ($file) use($mois, $fin, $facturations, $data) { $file->setFileName('facturation_' . Feries::Mois(date('n', strtotime('+10day' . $mois))) . '_' . Feries::Mois(date('n', strtotime('+1month' . $mois)))); $file->setActiveSheetIndex(0)->setCellValue('E3', date('d/m/Y', strtotime($mois))); $file->setActiveSheetIndex(0)->setCellValue('E4', date('d/m/Y', strtotime($fin))); $file->setActiveSheetIndex(0)->setCellValue('E6', $data['prix_elementaire']); $file->setActiveSheetIndex(0)->setCellValue('D6', $data['prix_maternelle']); $ligne = 10; $id = 0; $total = 0; $colonne = 'G'; foreach ($facturations as $facturation) { if ($id != $facturation->enfant_id) { if ($total != 0) { $file->setActiveSheetIndex(0)->setCellValue('E' . $ligne, $total); if ($last->enfant->classe->cycle == 'Maternelle') { $file->setActiveSheetIndex(0)->setCellValue('F' . $ligne, $total * $data['prix_maternelle']); //dd($facturation, $total, 'F'.$ligne, $data['prix_maternelle']); } else { $file->setActiveSheetIndex(0)->setCellValue('F' . $ligne, $total * $data['prix_elementaire']); } $total = 0; } $ligne++; //$maDate = $mois; $colonne = 'G'; $file->setActiveSheetIndex(0)->setCellValue('A' . $ligne, $facturation->enfant->classe->niveau); $file->setActiveSheetIndex(0)->setCellValue('B' . $ligne, $facturation->enfant->classe->instituteur); $file->setActiveSheetIndex(0)->setCellValue('C' . $ligne, $facturation->enfant->nom); $file->setActiveSheetIndex(0)->setCellValue('D' . $ligne, $facturation->enfant->prenom); $id = $facturation->enfant_id; //ici prix } $maDate = $mois; while ($maDate < $facturation->semaine) { $maDate = date('Y-m-d', strtotime('+7day' . $maDate)); $colonne = chr(ord($colonne) + 3); } $total += $facturation->fixe + $facturation->non_fixe; $file->setActiveSheetIndex(0)->setCellValue($colonne . $ligne, $facturation->fixe + $facturation->non_fixe); $file->setActiveSheetIndex(0)->setCellValue(chr(ord($colonne) + 1) . $ligne, 0); $file->setActiveSheetIndex(0)->setCellValue(chr(ord($colonne) + 2) . $ligne, $facturation->abscence_signalee); $colonne = 'G'; $last = $facturation; } $file->setActiveSheetIndex(0)->setCellValue('E' . $ligne, $total); if (isset($last)) { if ($last->enfant->classe->cycle == 'maternelle') { $file->setActiveSheetIndex(0)->setCellValue('F' . $ligne, $total * $data['prix_maternelle']); } else { $file->setActiveSheetIndex(0)->setCellValue('F' . $ligne, $total * $data['prix_elementaire']); } } })->export('xls'); }
public function supprimerBase() { $enfants = Enfant::orderBy('classe_id')->with('users')->with('classe')->with('arret')->with('regulieres')->get(); $enfants_parents[0] = ['Classe', 'Nbre élèves', 'Commune', 'Nom', 'Prénom', 'Instituteur', 'CANTINE', 'GARDERIE', 'TRANSPORT', 'AUTORISATION', 'arret', 'porc', 'viande', 'PAI', 'nb_parent', 'nom1', 'prenom1', 'adresse1', 'nom2', 'prenom2', 'adresse2']; $cantine[0] = ['Nom', 'Prenom', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Jour_Debut']; $bus[0] = ['Nom', 'Prenom', 'Lundi_matin', 'Lundi_soir', 'Mardi_matin', 'Mardi_soir', 'Mercredi_matin', 'Mercredi_soir', 'Jeudi_ matin', 'Jeudi_soir', 'Vendredi_matin', 'Vendredi_soir', 'Jour_Debut', 'Responsable1', 'Responsable2', 'Responsable3', 'Responsable4', 'Responsable5']; foreach ($enfants as $enfant) { $parents = $enfant->users()->get(); $nb_parent = $parents->count(); $enfants_parents[$enfant->id] = [$enfant->niveau_classe, '', '', $enfant->nom, $enfant->prenom, $enfant->classe != null ? $enfant->classe->instituteur : '', $enfant->mange_cantine ? 'OUI' : 'NON', $enfant->garderie ? 'OUI' : 'NON', $enfant->prendre_bus ? 'OUI' : 'NON', $enfant->rentre_seul ? 'OUI' : 'NON', $enfant->prendre_bus && $enfant->arret != null ? $enfant->arret->nom : '', $enfant->exception_porc ? 'OUI' : 'NON', $enfant->exception_viande ? 'OUI' : 'NON', $enfant->exception_autre, $nb_parent]; $regs = $enfant->regulieres()->get(); $bus[$enfant->id] = [$enfant->nom, $enfant->prenom]; $bus[$enfant->id][13] = $enfant->responsable_bus; $cantine[$enfant->id] = [$enfant->nom, $enfant->prenom]; foreach ($regs as $reg) { $jours = str_split($reg->jours); for ($i = 1; $i <= 5; $i++) { $type = $reg->type; if (in_array($i, $jours)) { if ($type == 'cantine') { $cantine[$enfant->id][$i + 1] = 'x'; } else { if ($type == 'bus_matin') { //dd($jours, $enfant, $reg, $i*2); $bus[$enfant->id][$i * 2] = 'x'; } else { //dd(($i+1)*2+2,$enfant); $bus[$enfant->id][$i * 2 + 1] = 'x'; } } } else { if ($type == 'cantine') { $cantine[$enfant->id][$i + 1] = ' '; } else { if ($type == 'bus_matin') { //dd($jours, $enfant, $reg, $i*2); $bus[$enfant->id][$i * 2] = ' '; } else { //dd(($i+1)*2+2,$enfant); $bus[$enfant->id][$i * 2 + 1] = ' '; } } } } } foreach ($parents as $p) { $enfants_parents[$enfant->id][] = $p->nom; $enfants_parents[$enfant->id][] = $p->prenom; $enfants_parents[$enfant->id][] = $p->email; } ksort($bus[$enfant->id]); //dd($bus[$enfant->id]); } $classes = Classe::where('cycle', '<>', 'adulte')->get(); $classe[0] = ['Classe', 'cycle', 'instituteur']; foreach ($classes as $c) { $classe[$c->id] = [$c->niveau, $c->cycle, $c->instituteur]; } $arrets = Arret::with('ligne')->get(); $arret[0] = ['Ligne', 'Arret', 'Numero', 'Commune']; foreach ($arrets as $a) { $arret[$a->id] = [$a->ligne->nom, $a->nom, $a->numero_arret, $a->commune]; } DB::statement("SET foreign_key_checks=0"); Arret::truncate(); Ligne::truncate(); Exceptionnelle::truncate(); Reguliere::truncate(); $classe = Classe::where('cycle', '<>', 'adulte')->lists('id'); Classe::destroy($classe); Facturation::truncate(); $users = User::where('niveau', 0)->lists('id'); User::destroy($users); Enfant::truncate(); DB::table('enfant_user')->truncate(); DB::statement("SET foreign_key_checks=1"); //dd($bus); Excel::create('fin_annee' . date('Y'), function ($file) use($enfants_parents, $cantine, $bus, $classe, $arret) { $file->sheet('Classes', function ($sheet) use($classe) { $sheet->fromArray($classe, null, 'A1', false, false); }); $file->sheet('Sivusem', function ($sheet) use($enfants_parents) { $sheet->fromArray($enfants_parents, null, 'A1', false, false); }); $file->sheet('Lignes', function ($sheet) use($arret) { $sheet->fromArray($arret, null, 'A1', false, false); }); $file->sheet('Cantine', function ($sheet) use($cantine) { $sheet->fromArray($cantine, null, 'A1', false, false); }); $file->sheet('Bus', function ($sheet) use($bus) { $sheet->fromArray($bus, null, 'A1', false, false); }); })->export('xls'); }