68 lines
2.6 KiB
PHP
68 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Breeders;
|
|
use App\Models\BreedersDatas;
|
|
use App\Models\Traceability;
|
|
use App\Models\TraceabilityDatas;
|
|
use Illuminate\Http\Request;
|
|
|
|
class TraceabilityController extends Controller
|
|
{
|
|
public function search(Request $request)
|
|
{
|
|
$searchCode = filter_var($request->code, FILTER_SANITIZE_NUMBER_INT);
|
|
$tracaDatas = TraceabilityDatas::where('no_lot', 'LIKE', $searchCode)->first();
|
|
$log = new Traceability();
|
|
$log->code = $searchCode;
|
|
|
|
if (!$tracaDatas) {
|
|
// Produit non trouvé
|
|
$log->response_type = 2;
|
|
$log->save();
|
|
return json_encode(['status' => 'KO', 'code' => 100]);
|
|
} else {
|
|
if ($tracaDatas->code_traca_prod_elab === 1) {
|
|
// Produit élaboré
|
|
$log->response_type = 3;
|
|
$log->save();
|
|
return json_encode(['status' => 'KO', 'code' => 101]);
|
|
}
|
|
|
|
// Si éleveur trouvé, alors c'est un éleveur OCB publié
|
|
$breeder = Breeders::where([['status', 1], ['breeder_code', 'LIKE', '%' . $tracaDatas->no_opa . $tracaDatas->no_elev]])->first();
|
|
if (!$breeder) {
|
|
// Sinon, c'est un éleveur non OCB
|
|
$breeder = BreedersDatas::where('code_eleveur', $tracaDatas->no_elev)->first();
|
|
if (!$breeder) {
|
|
// Eleveur non trouvé
|
|
$log->response_type = 4;
|
|
$log->save();
|
|
return json_encode(['status' => 'KO', 'code' => 102]);
|
|
}
|
|
} else {
|
|
// OCB donc redirection
|
|
$log->response = $breeder->first_name . " " . $breeder->last_name;
|
|
// Produit trouvé
|
|
$log->response_type = 1;
|
|
$log->save();
|
|
return json_encode(['status' => 'OK', 'code' => 200, 'redirect' => $breeder->slug]);
|
|
}
|
|
|
|
// Dans le BO : CP Eleveur Manquant, du coup je check le CP de l'éleveur
|
|
if ((isset($breeder->postal_code) && empty($breeder->postal_code)) || (isset($breeder->code_postal) && empty($breeder->code_postal))) {
|
|
// CP Eleveur Manquant
|
|
$log->response_type = 5;
|
|
$log->save();
|
|
return json_encode(['status' => 'KO', 'code' => 103]);
|
|
}
|
|
|
|
// Produit trouvé
|
|
$log->response_type = 1;
|
|
$log->save();
|
|
}
|
|
|
|
return json_encode(['status' => 'OK', 'code' => 200, 'breeder' => $breeder]);
|
|
}
|
|
}
|