code, FILTER_SANITIZE_NUMBER_INT); $tracaDatas = XmlTraceability::where('lot_code', '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) { // 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 = OCBBreeder::where([ ['status', 1], [ 'breeder_code', 'LIKE', '%' . $tracaDatas->opa_code . $tracaDatas->inuav_code ] ])->first(); if (!$breeder) { // Sinon, c'est un éleveur non OCB $breeder = XmlBreeder::where('code_eleveur', $tracaDatas->inuav_code)->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]); } }