ldc-bogt/app/Http/Controllers/AjaxController.php
2022-03-08 11:40:52 +01:00

170 lines
6.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\MiseEnPlace;
use App\Models\Aliment;
use App\Models\Eleveur;
use App\Models\Moba;
use Carbon\Carbon;
class AjaxController extends Controller
{
public function importAliment(Request $request)
{
$file = $request->file('fileAliment');
$flag = true;
$total = 0;
$imported = 0;
$error = 0;
$errorHtml = "";
if (($handle = fopen($file, "r")) !== false) {
while (($data = fgetcsv($handle, 50000, ";", '"')) !== false) {
if ($flag) {
$flag = false;
continue;
} //end if
if (isset($data[0]) && isset($data[1]) && isset($data[2]) && strpos($data[1], "/") !== false) {
$total++;
$codeLot = $data[0];
$dateLivraison = $data[1];
list($d, $m, $y) = explode('/', $dateLivraison);
$date = $y . '-' . $m . '-' . $d;
$aliment = $data[2];
$alim = new Aliment();
$alim->code_lot = $codeLot;
$alim->date_livraison = $date;
$alim->type_aliment = $aliment;
if ($alim->save()) {
$imported++;
} else {
$error++;
$errorHtml = "<li>Les aliments n'ont pu être importés.</li>";
}
}
}//end while
}//end if
return json_encode(array('errors' => $error, 'errorHtml' => $errorHtml, 'total' => $total, 'imported' => $imported));
}
public function importMep(Request $request)
{
$file = $request->file('fileMep');
// var_dump($file);
$flag = true;
$total = 0;
$imported = 0;
$error = 0;
$errorHtml = "";
if (($handle = fopen($file, "r")) !== false) {
while (($data = fgetcsv($handle, 50000, ";", '"')) !== false) {
if ($flag) {
$flag = false;
continue;
} //end if
$total++;
$inuavEleveur = $data[10];
$eleveur = Eleveur::where('code_inuav', 'like', '%' . trim($inuavEleveur) . '%')->first();
if ($eleveur === null) {
$error++;
$errorHtml .= "<li>Eleveur non trouvé : " . $data[1] . " " . $data[2] . "</li>";
continue;
} else {
if (strpos($data[7], "/") !== false && strpos($data[8], "/") !== false) {
$mep = new MiseEnPlace();
$mep->eleveurId_pondeuse = $eleveur->id;
$mep->code_lot_pondeuse = $data[6];
$mep->hectares_parcours_pondeuse = $data[20];
switch ($data[21]) {
case 'OUI':
$mep->presence_ruche_pondeuse = 1;
break;
default:
$mep->presence_ruche_pondeuse = 0;
break;
}
switch ($data[22]) {
case 'OUI':
$mep->zone_mellifere_pondeuse = 1;
break;
default:
$mep->zone_mellifere_pondeuse = 0;
break;
}
$mep->nom_couvoir = $data[11];
$mep->ville_couvoir = $data[12];
$mep->cp_couvoir = $data[13];
$mep->raison_sociale_eleveur_poulettes = $data[14];
$mep->code_inuav_poulettes = $data[15];
$mep->nom_eleveur_poulettes = $data[16];
$mep->prenom_eleveur_poulettes = $data[17];
$mep->ville_eleveur_poulettes = $data[18];
$mep->cp_eleveur_poulettes = $data[19];
$eleveur->marquage_oeuf = $data[23];
$eleveur->marquage_b1 = $data[24];
$eleveur->marquage_b2 = $data[25];
$eleveur->save();
list($d_naissance, $m_naissance, $y_naissance) = explode('/', $data[7]);
list($d_transfert, $m_transfert, $y_transfert) = explode('/', $data[8]);
$mep->date_naissance_poulettes = $y_naissance . '-' . $m_naissance . '-' . $d_naissance;
$mep->date_transfert_poulettes = $y_transfert . '-' . $m_transfert . '-' . $d_transfert;
$mep->save();
$imported++;
}//end if
}//end if
}//end while
}//end if
return json_encode(array('errors' => $error, 'errorHtml' => $errorHtml, 'total' => $total, 'imported' => $imported));
}
public function rotateToRight(Request $request)
{
$home = url('/');
$test = $request->filePath;
// -90deg
$im = imagecreatefromjpeg($request->filePath);
$rotate = imagerotate($im, -90, 0);
imagejpeg($rotate, $test, 100);
return json_encode($home . '/' . $test);
}
public function rotateToLeft(Request $request)
{
$home = url('/');
$test = $request->filePath;
// 90deg
$im = imagecreatefromjpeg($request->filePath);
$rotate = imagerotate($im, 90, 0);
imagejpeg($rotate, $test, 100);
return json_encode($home . '/' . $test);
}
public function findMyBox(Request $request)
{
$code = $request->code;
$date = explode('/', $request->date);
$day = $date[0];
$month = $date[1];
$dateCarbon = Carbon::createFromDate(null, $month, $day)->toArray();
$year = $dateCarbon['year'];
$dcr = $year . '-' . $month . '-' . $day;
$moba = Moba::where(['code_ede' => $code, 'dcr' => $dcr])->orderBy('id', 'DESC')->first();
if (!$moba) {
return redirect()->route('erreur404');
}
return redirect()->route('FrontPage', ['id' => $moba->code_boite]);
}
}