solve survey produktivitas
This commit is contained in:
@@ -3,26 +3,43 @@
|
||||
namespace App\Http\Controllers\Web\Produktivitas;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
use App\Models\Pertanian\Petani;
|
||||
use App\Models\Pertanian\SurveyProduktivitas;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class SurveyProduktivitasController extends Controller
|
||||
{
|
||||
public function store($petaniId, Request $request)
|
||||
{
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
$validated = $request->validate([
|
||||
'produktivitas_komoditas' => ['required', 'array'],
|
||||
'produktivitas_komoditas.*.komoditas_id' => ['nullable', 'exists:master_komoditas,id'],
|
||||
'produktivitas_komoditas.*.hasil_panen_3_musim' => ['nullable', 'numeric'],
|
||||
'produktivitas_komoditas.*.satuan' => ['nullable', 'string'],
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'produktivitas_komoditas' => ['required', 'array', 'min:1'],
|
||||
'produktivitas_komoditas.*.komoditas_id' => ['required', 'exists:master_komoditas,id'],
|
||||
'produktivitas_komoditas.*.hasil_panen_3_musim' => ['required', 'numeric', 'min:0'],
|
||||
'produktivitas_komoditas.*.satuan' => ['required', 'in:ha_tahun,pohon_tahun'],
|
||||
], [
|
||||
'produktivitas_komoditas.required' => 'Minimal satu data produktivitas harus diisi.',
|
||||
'produktivitas_komoditas.*.komoditas_id.required' => 'Komoditas wajib dipilih.',
|
||||
'produktivitas_komoditas.*.komoditas_id.exists' => 'Komoditas yang dipilih tidak valid.',
|
||||
'produktivitas_komoditas.*.hasil_panen_3_musim.required' => 'Hasil panen wajib diisi.',
|
||||
'produktivitas_komoditas.*.hasil_panen_3_musim.numeric' => 'Hasil panen harus berupa angka.',
|
||||
'produktivitas_komoditas.*.hasil_panen_3_musim.min' => 'Hasil panen tidak boleh kurang dari 0.',
|
||||
'produktivitas_komoditas.*.satuan.required' => 'Satuan wajib dipilih.',
|
||||
'produktivitas_komoditas.*.satuan.in' => 'Satuan yang dipilih tidak valid.',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return $this->redirectBackToFragment($request)->withErrors($validator)->withInput();
|
||||
}
|
||||
|
||||
$validated = $validator->validated();
|
||||
|
||||
foreach ($validated['produktivitas_komoditas'] as $row) {
|
||||
SurveyProduktivitas::create([
|
||||
'uid' => 'SPV-' . strtoupper(Str::random(10)),
|
||||
'uid' => 'SPV-'.strtoupper(Str::random(10)),
|
||||
'petani_id' => $petani->id,
|
||||
'komoditas_id' => $row['komoditas_id'],
|
||||
'kuantitas' => $row['hasil_panen_3_musim'],
|
||||
@@ -51,10 +68,10 @@ class SurveyProduktivitasController extends Controller
|
||||
{
|
||||
$fragment = $request->input('redirect_fragment');
|
||||
|
||||
if (!is_string($fragment) || !preg_match('/^[A-Za-z0-9_-]+$/', $fragment)) {
|
||||
if (! is_string($fragment) || ! preg_match('/^[A-Za-z0-9_-]+$/', $fragment)) {
|
||||
return back();
|
||||
}
|
||||
|
||||
return redirect()->to(Str::before(url()->previous(), '#') . '#' . $fragment);
|
||||
return redirect()->to(Str::before(url()->previous(), '#').'#'.$fragment);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user