Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web
This commit is contained in:
@@ -19,13 +19,13 @@ enum Pendidikan: string
|
|||||||
{
|
{
|
||||||
return match($this) {
|
return match($this) {
|
||||||
self::TIDAK_SEKOLAH => 'Tidak Sekolah',
|
self::TIDAK_SEKOLAH => 'Tidak Sekolah',
|
||||||
self::SD => 'SD atau Sederajat',
|
self::SD => 'SD',
|
||||||
self::SMP => 'SMP atau Sederajat',
|
self::SMP => 'SMP',
|
||||||
self::SMA => 'SMA atau Sederajat',
|
self::SMA => 'SMA/SMK',
|
||||||
self::DIPLOMA => 'Diploma 1-3 (D1-D3)',
|
self::DIPLOMA => 'Diploma 1-3 (D1-D3)',
|
||||||
self::SARJANA => 'Sarjana (S1) atau sederajat',
|
self::SARJANA => 'Sarjana (S1)',
|
||||||
self::MAGISTER => 'Magister (S2) atau sederajat',
|
self::MAGISTER => 'Magister (S2)',
|
||||||
self::DOKTOR => 'Doktor (S3) atau sederajat',
|
self::DOKTOR => 'Doktor (S3)',
|
||||||
self::PESANTREN => 'Pesantren, Semiari, Wihara, atau Pendidikan Keagamaan Formal',
|
self::PESANTREN => 'Pesantren, Semiari, Wihara, atau Pendidikan Keagamaan Formal',
|
||||||
self::LAINNYA => 'Lainnya',
|
self::LAINNYA => 'Lainnya',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ class ProfilPetaniController extends Controller
|
|||||||
{
|
{
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
|
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
|
||||||
abort(403);
|
abort(403);
|
||||||
}
|
}
|
||||||
$title = 'Dashboard Profil Petani';
|
$title = 'Dashboard Profil Petani';
|
||||||
|
|
||||||
$komoditas = Komoditas::all();
|
$komoditas = Komoditas::where('is_utama', true)->get();
|
||||||
|
|
||||||
$petani = Petani::pluck('id');
|
$petani = Petani::pluck('id');
|
||||||
$lahan = Lahan::whereIn('petani_id', $petani)->get();
|
$lahan = Lahan::whereIn('petani_id', $petani)->get();
|
||||||
@@ -35,8 +35,8 @@ class ProfilPetaniController extends Controller
|
|||||||
->get();
|
->get();
|
||||||
$lahanSummary = Lahan::select(
|
$lahanSummary = Lahan::select(
|
||||||
'komoditas_id',
|
'komoditas_id',
|
||||||
DB::raw('COUNT(*) as total',
|
DB::raw('COUNT(*) as total'),
|
||||||
DB::raw('SUM(luas_lahan) as luas_lahan'))
|
DB::raw('SUM(luas_lahan) as luas_lahan')
|
||||||
)
|
)
|
||||||
->whereIn('petani_id', $petani)
|
->whereIn('petani_id', $petani)
|
||||||
->groupBy('komoditas_id')
|
->groupBy('komoditas_id')
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class SurveyPetaniController extends Controller
|
|||||||
->leftJoin("{$komoditasTable} as k", 'k.id', '=', 'p.komoditas_id')
|
->leftJoin("{$komoditasTable} as k", 'k.id', '=', 'p.komoditas_id')
|
||||||
->selectRaw("COALESCE(k.nama, 'Belum ditentukan') as nama")
|
->selectRaw("COALESCE(k.nama, 'Belum ditentukan') as nama")
|
||||||
->selectRaw('COUNT(p.id) as petani_count')
|
->selectRaw('COUNT(p.id) as petani_count')
|
||||||
|
->where('k.is_utama', true)
|
||||||
->groupBy('k.id', 'k.nama')
|
->groupBy('k.id', 'k.nama')
|
||||||
->orderByDesc('petani_count')
|
->orderByDesc('petani_count')
|
||||||
->get();
|
->get();
|
||||||
@@ -155,6 +156,7 @@ class SurveyPetaniController extends Controller
|
|||||||
->leftJoin("{$komoditasTable} as k", 'k.id', '=', 'p.komoditas_id')
|
->leftJoin("{$komoditasTable} as k", 'k.id', '=', 'p.komoditas_id')
|
||||||
->selectRaw("COALESCE(k.nama, 'Belum ditentukan') as label")
|
->selectRaw("COALESCE(k.nama, 'Belum ditentukan') as label")
|
||||||
->selectRaw('COALESCE(SUM(l.jumlah_tanaman), 0) as total')
|
->selectRaw('COALESCE(SUM(l.jumlah_tanaman), 0) as total')
|
||||||
|
->where('k.is_utama', true)
|
||||||
->groupBy('k.id', 'k.nama')
|
->groupBy('k.id', 'k.nama')
|
||||||
->orderByDesc('total')
|
->orderByDesc('total')
|
||||||
->get();
|
->get();
|
||||||
|
|||||||
@@ -28,9 +28,13 @@ class KomoditasController extends Controller
|
|||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama'], // Tambah unique biar nggak ada data kembar
|
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama'],
|
||||||
|
'kode' => ['required', 'string', 'max:2', 'unique:master_komoditas,kode'],
|
||||||
|
'is_utama' => ['nullable', 'boolean'],
|
||||||
], [
|
], [
|
||||||
'nama.unique' => 'Nama komoditas ini sudah ada di database.'
|
'nama.unique' => 'Nama komoditas ini sudah ada di database.',
|
||||||
|
'kode.unique' => 'Kode komoditas ini sudah ada di database.',
|
||||||
|
'kode.max' => 'Kode komoditas maksimal 2 Digit.'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($validator->fails()) {
|
if ($validator->fails()) {
|
||||||
@@ -39,6 +43,8 @@ class KomoditasController extends Controller
|
|||||||
|
|
||||||
Komoditas::create([
|
Komoditas::create([
|
||||||
'nama' => $request->nama,
|
'nama' => $request->nama,
|
||||||
|
'kode' => $request->kode,
|
||||||
|
'is_utama' => $request->is_utama,
|
||||||
'created_by' => auth()->id(),
|
'created_by' => auth()->id(),
|
||||||
'updated_by' => auth()->id(),
|
'updated_by' => auth()->id(),
|
||||||
]);
|
]);
|
||||||
@@ -56,8 +62,12 @@ class KomoditasController extends Controller
|
|||||||
{
|
{
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama,' . $id],
|
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama,' . $id],
|
||||||
|
'kode' => ['required', 'string', 'max:2', 'unique:master_komoditas,kode,' . $id],
|
||||||
|
'is_utama' => ['nullable', 'boolean'],
|
||||||
], [
|
], [
|
||||||
'nama.unique' => 'Nama komoditas ini sudah digunakan.'
|
'nama.unique' => 'Nama komoditas ini sudah ada di database.',
|
||||||
|
'kode.unique' => 'Kode komoditas ini sudah ada di database.',
|
||||||
|
'kode.max' => 'Kode komoditas maksimal 2 Digit.'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($validator->fails()) {
|
if ($validator->fails()) {
|
||||||
@@ -67,6 +77,8 @@ class KomoditasController extends Controller
|
|||||||
$komoditas = Komoditas::findOrFail($id);
|
$komoditas = Komoditas::findOrFail($id);
|
||||||
$komoditas->update([
|
$komoditas->update([
|
||||||
'nama' => $request->nama,
|
'nama' => $request->nama,
|
||||||
|
'kode' => $request->kode,
|
||||||
|
'is_utama' => $request->is_utama,
|
||||||
'updated_by' => auth()->id(),
|
'updated_by' => auth()->id(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ use App\Models\Wilayah\Provinsi;
|
|||||||
use App\Models\Pertanian\Petani;
|
use App\Models\Pertanian\Petani;
|
||||||
use App\Models\Wilayah\DesaKelurahan;
|
use App\Models\Wilayah\DesaKelurahan;
|
||||||
use App\Models\Pertanian\Komoditas;
|
use App\Models\Pertanian\Komoditas;
|
||||||
|
use App\Models\Pertanian\Tanaman;
|
||||||
|
use App\Models\Pertanian\Lahan;
|
||||||
|
use App\Models\Pertanian\SkorPetani;
|
||||||
|
|
||||||
use App\Enums\Pendidikan;
|
use App\Enums\Pendidikan;
|
||||||
use App\Enums\Pekerjaan;
|
use App\Enums\Pekerjaan;
|
||||||
@@ -27,6 +30,10 @@ class PetaniController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
|
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
|
||||||
|
abort(403);
|
||||||
|
}
|
||||||
|
|
||||||
$provinsi = Provinsi::orderBy('kode', 'asc')->get();
|
$provinsi = Provinsi::orderBy('kode', 'asc')->get();
|
||||||
|
|
||||||
$query = Petani::with('desakelurahan')
|
$query = Petani::with('desakelurahan')
|
||||||
@@ -39,9 +46,35 @@ class PetaniController extends Controller
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (auth()->user()->role->value === 'fasilitator') {
|
||||||
|
$query->where('created_by', auth()->user()->id);
|
||||||
|
}
|
||||||
|
|
||||||
$petani = $query->paginate($request->per_page ?? 10);
|
$petani = $query->paginate($request->per_page ?? 10);
|
||||||
|
|
||||||
return view('produktivitas.petani.index', compact('petani', 'provinsi'));
|
$komoditas = Komoditas::where('is_utama', true)->get();
|
||||||
|
$lahan = Lahan::whereIn('petani_id', $petani->pluck('id'))
|
||||||
|
->whereIn('komoditas_id', $komoditas->pluck('id'))
|
||||||
|
->get();
|
||||||
|
$tanaman = Tanaman::whereIn('lahan_id', $lahan->pluck('id'))
|
||||||
|
->whereIn('lahan_id', $lahan->pluck('id'))
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$case = "
|
||||||
|
CASE
|
||||||
|
WHEN skor_kesiapan_adopsi >= 4.0 THEN 'Penggerak'
|
||||||
|
WHEN skor_kesiapan_adopsi >= 3.0 THEN 'Perintis'
|
||||||
|
WHEN skor_kesiapan_adopsi >= 2.0 THEN 'Pemerhati'
|
||||||
|
WHEN skor_kesiapan_adopsi >= 1.0 THEN 'Pemula'
|
||||||
|
ELSE 'Belum Lengkap'
|
||||||
|
END
|
||||||
|
";
|
||||||
|
$skor = SkorPetani::selectRaw("$case AS segmen, COUNT(*) AS total")
|
||||||
|
->whereIn('petani_id', $petani->pluck('id'))
|
||||||
|
->groupByRaw($case)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return view('produktivitas.petani.index', compact('petani', 'provinsi', 'lahan', 'komoditas', 'tanaman', 'skor'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create()
|
public function create()
|
||||||
@@ -54,7 +87,7 @@ class PetaniController extends Controller
|
|||||||
$pekerjaan = Pekerjaan::options();
|
$pekerjaan = Pekerjaan::options();
|
||||||
$pernikahan = Pernikahan::options();
|
$pernikahan = Pernikahan::options();
|
||||||
|
|
||||||
$komoditas = Komoditas::all();
|
$komoditas = Komoditas::where('is_utama', true)->get();
|
||||||
|
|
||||||
$provinsi = Provinsi::orderBy('kode', 'asc')->get();
|
$provinsi = Provinsi::orderBy('kode', 'asc')->get();
|
||||||
|
|
||||||
@@ -174,7 +207,7 @@ class PetaniController extends Controller
|
|||||||
|
|
||||||
$provinsi = Provinsi::all();
|
$provinsi = Provinsi::all();
|
||||||
|
|
||||||
$komoditas = Komoditas::all();
|
$komoditas = Komoditas::where('is_utama', true)->get();
|
||||||
|
|
||||||
return view('produktivitas.petani.edit', compact('petani', 'pendidikan', 'pekerjaan',
|
return view('produktivitas.petani.edit', compact('petani', 'pendidikan', 'pekerjaan',
|
||||||
'pernikahan', 'provinsi', 'komoditas'));
|
'pernikahan', 'provinsi', 'komoditas'));
|
||||||
|
|||||||
@@ -81,8 +81,8 @@ class PetaniLahanController extends Controller
|
|||||||
'komoditas_id' => ['required', 'exists:master_komoditas,id'],
|
'komoditas_id' => ['required', 'exists:master_komoditas,id'],
|
||||||
'jenis_komoditas_id' => ['required', 'exists:jenis_komoditas,id'],
|
'jenis_komoditas_id' => ['required', 'exists:jenis_komoditas,id'],
|
||||||
'varietas_id' => ['nullable', 'exists:master_varietas,id'],
|
'varietas_id' => ['nullable', 'exists:master_varietas,id'],
|
||||||
'jumlah_tanaman' => ['required', 'numeric', 'min:1'],
|
'jumlah_tanaman' => ['required', 'numeric', 'min:0'],
|
||||||
'umur_lahan' => ['required', 'numeric', 'min:1'],
|
'umur_lahan' => ['nullable', 'numeric', 'min:1'],
|
||||||
'umur_tanaman' => ['required', 'numeric', 'min:1'],
|
'umur_tanaman' => ['required', 'numeric', 'min:1'],
|
||||||
'kondisi_tanaman' => ['required', 'string', new Enum(KondisiTanaman::class)],
|
'kondisi_tanaman' => ['required', 'string', new Enum(KondisiTanaman::class)],
|
||||||
'serangan_hama' => ['nullable', 'string', new Enum(SeranganHama::class)],
|
'serangan_hama' => ['nullable', 'string', new Enum(SeranganHama::class)],
|
||||||
@@ -104,8 +104,8 @@ class PetaniLahanController extends Controller
|
|||||||
'luas_lahan.min' => 'Luas lahan minimal 0.01.',
|
'luas_lahan.min' => 'Luas lahan minimal 0.01.',
|
||||||
'jumlah_tanaman.required' => 'Jumlah tanaman wajib diisi.',
|
'jumlah_tanaman.required' => 'Jumlah tanaman wajib diisi.',
|
||||||
'jumlah_tanaman.numeric' => 'Jumlah tanaman diisi dengan angka.',
|
'jumlah_tanaman.numeric' => 'Jumlah tanaman diisi dengan angka.',
|
||||||
'jumlah_tanaman.min' => 'Jumlah tanaman minimal 1.',
|
'jumlah_tanaman.min' => 'Jumlah tanaman minimal 0.',
|
||||||
'umur_lahan.required' => 'Umur lahan wajib diisi.',
|
//'umur_lahan.required' => 'Umur lahan wajib diisi.',
|
||||||
'umur_lahan.numeric' => 'Umur lahan diisi dengan angka.',
|
'umur_lahan.numeric' => 'Umur lahan diisi dengan angka.',
|
||||||
'umur_lahan.min' => 'Umur lahan minimal 1.',
|
'umur_lahan.min' => 'Umur lahan minimal 1.',
|
||||||
'umur_tanaman.required' => 'Umur tanaman wajib diisi.',
|
'umur_tanaman.required' => 'Umur tanaman wajib diisi.',
|
||||||
@@ -163,7 +163,7 @@ class PetaniLahanController extends Controller
|
|||||||
'updated_by' => auth()->id()]
|
'updated_by' => auth()->id()]
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($lahan) {
|
if ($lahan && $lahan->jumlah_tanaman > 0) {
|
||||||
$data = collect(range(1, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas, $lahanUid) {
|
$data = collect(range(1, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas, $lahanUid) {
|
||||||
return [
|
return [
|
||||||
'lahan_id' => $lahan->id,
|
'lahan_id' => $lahan->id,
|
||||||
@@ -199,6 +199,8 @@ class PetaniLahanController extends Controller
|
|||||||
|
|
||||||
return redirect()->route('petani.lahan-tanaman.index', $petaniId)->with('success', 'Lahan berhasil ditambahkan.');
|
return redirect()->route('petani.lahan-tanaman.index', $petaniId)->with('success', 'Lahan berhasil ditambahkan.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return redirect()->route('petani.lahan-tanaman.index', $petaniId)->with('success', 'Lahan berhasil ditambahkan.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show(string $petaniId, string $id)
|
public function show(string $petaniId, string $id)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class AksesPasar extends Model
|
|||||||
static::saved(function (AksesPasar $aksesPasar) {
|
static::saved(function (AksesPasar $aksesPasar) {
|
||||||
|
|
||||||
$petani = Petani::find($aksesPasar->petani_id);
|
$petani = Petani::find($aksesPasar->petani_id);
|
||||||
$skor = SkorPetani::where('petani_id')->orderBy('id')->first();
|
$skor = SkorPetani::where('petani_id', $petani->id)->orderBy('id')->first();
|
||||||
if (!$skor) {
|
if (!$skor) {
|
||||||
$petaniUid = $petani->uid;
|
$petaniUid = $petani->uid;
|
||||||
$part = explode('-', $petaniUid);
|
$part = explode('-', $petaniUid);
|
||||||
@@ -61,6 +61,7 @@ class AksesPasar extends Model
|
|||||||
'updated_by' => $petani->updated_by
|
'updated_by' => $petani->updated_by
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$skor->update([
|
$skor->update([
|
||||||
'skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda' => $aksesPasar->skor_pengalaman,
|
'skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda' => $aksesPasar->skor_pengalaman,
|
||||||
'skor_d6_k4_1_kesadaran_akses_pasar_premium' => $aksesPasar->skor_kesadaran_premium,
|
'skor_d6_k4_1_kesadaran_akses_pasar_premium' => $aksesPasar->skor_kesadaran_premium,
|
||||||
|
|||||||
@@ -16,11 +16,17 @@ class Komoditas extends Model
|
|||||||
|
|
||||||
protected $table = 'master_komoditas';
|
protected $table = 'master_komoditas';
|
||||||
|
|
||||||
|
protected $casts = [
|
||||||
|
'is_utama' => 'boolean',
|
||||||
|
];
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'nama',
|
'nama',
|
||||||
|
'kode',
|
||||||
'created_by',
|
'created_by',
|
||||||
'updated_by',
|
'updated_by',
|
||||||
'deleted_by',
|
'deleted_by',
|
||||||
|
'is_utama',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected static function booted()
|
protected static function booted()
|
||||||
|
|||||||
@@ -138,9 +138,9 @@ class Petani extends Model
|
|||||||
return $this->hasMany(SurveySertifikasi::class, 'petani_id');
|
return $this->hasMany(SurveySertifikasi::class, 'petani_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function surveyProduktivitas(): HasOne
|
public function surveyProduktivitas(): HasMany
|
||||||
{
|
{
|
||||||
return $this->hasOne(SurveyProduktivitas::class, 'petani_id')->latestOfMany();
|
return $this->hasMany(SurveyProduktivitas::class, 'petani_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function lahans(): HasMany
|
public function lahans(): HasMany
|
||||||
|
|||||||
@@ -91,16 +91,29 @@ class PraktikBudidaya extends Model
|
|||||||
'updated_by' => $petani->updated_by
|
'updated_by' => $petani->updated_by
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
$skor->update([
|
|
||||||
|
|
||||||
'skor_d2_k2_3_praktik_pemangkasan' => $praktikBudidaya->frekuensi_pemangkasan_komoditas_utama,
|
$kebiasaan = $praktikBudidaya->kebiasaan_konservasi_tanah ? count($praktikBudidaya->kebiasaan_konservasi_tanah) : 0;
|
||||||
|
$pemahaman = $praktikBudidaya->pemahaman_manfaat_konservasi_tanah == 'Ya, tahu manfaatnya' ? 1 : 0;
|
||||||
|
$skor_konservasi_tanah = 0;
|
||||||
|
if ($kebiasaan == 0) {
|
||||||
|
$skor_konservasi_tanah = 1;
|
||||||
|
} elseif ($kebiasaan == 1 && $pemahaman == 0) {
|
||||||
|
$skor_konservasi_tanah = 2;
|
||||||
|
} elseif ($kebiasaan == 1 && $pemahaman == 1) {
|
||||||
|
$skor_konservasi_tanah = 3;
|
||||||
|
} elseif ($kebiasaan > 1 && $pemahaman == 0) {
|
||||||
|
$skor_konservasi_tanah = 4;
|
||||||
|
} elseif ($kebiasaan > 1 && $pemahaman == 1) {
|
||||||
|
$skor_konservasi_tanah = 5;
|
||||||
|
}
|
||||||
|
$skor->update([
|
||||||
|
'skor_d2_k2_3_praktik_pemangkasan' => $praktikBudidaya->frekuensi_pemangkasan_utama,
|
||||||
'skor_d2_k2_4_praktik_pemupukan' => $praktikBudidaya->pemberian_pupuk,
|
'skor_d2_k2_4_praktik_pemupukan' => $praktikBudidaya->pemberian_pupuk,
|
||||||
'skor_d2_k2_5_pengendalian_opt' => $praktikBudidaya->metode_penanganan_hama_penyakit,
|
'skor_d2_k2_5_pengendalian_opt' => $praktikBudidaya->metode_penanganan_opt,
|
||||||
'skor_d2_k2_6_sanitasi_kebun' => $praktikBudidaya->frekuensi_sanitasi_lahan,
|
'skor_d2_k2_6_sanitasi_kebun' => $praktikBudidaya->frekuensi_sanitasi_lahan,
|
||||||
'skor_d2_k2_6b_pengelolaan_gulma' => $praktikBudidaya->penanganan_gulma,
|
'skor_d2_k2_6b_pengelolaan_gulma' => $praktikBudidaya->penanganan_gulma,
|
||||||
'skor_d2_k2_7_penglolaan_air_irigasi' => $praktikBudidaya->kondisi_pengelolaan_air_irigasi,
|
'skor_d2_k2_7_penglolaan_air_irigasi' => $praktikBudidaya->kondisi_pengelolaan_air,
|
||||||
//'skor_d2_k2_8_praktik_konservasi_tanah' => $praktikBudidaya->kebiasaan_konservasi_tanah,
|
'skor_d2_k2_8_praktik_konservasi_tanah' => $skor_konservasi_tanah,
|
||||||
//'skor_d2_k3_1_penentuan_pematangan' => $praktikBudidaya->
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class SkorPetani extends Model
|
|||||||
'skor_d4_k5_2_pengalaman_kredit_formal',
|
'skor_d4_k5_2_pengalaman_kredit_formal',
|
||||||
'skor_d4_k5_3_kepemilikan_aset_produktif',
|
'skor_d4_k5_3_kepemilikan_aset_produktif',
|
||||||
'skor_d4_k5_4_kepemilikan_aset_tidak_produktif',
|
'skor_d4_k5_4_kepemilikan_aset_tidak_produktif',
|
||||||
'skor_d4_k5_4_5_akses_program_bantuan',
|
'skor_d4_k5_4_akses_program_bantuan',
|
||||||
'skor_d4_k6_3_keberadaan_hutang_terkait_panen',
|
'skor_d4_k6_3_keberadaan_hutang_terkait_panen',
|
||||||
'skor_d4_k6_5a_praktik_ijon',
|
'skor_d4_k6_5a_praktik_ijon',
|
||||||
'skor_d4_k6_5b_kebebasan_memilih_pembeli',
|
'skor_d4_k6_5b_kebebasan_memilih_pembeli',
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ use App\Enums\SosialEkonomi\UsahaMutuTambahanHarga;
|
|||||||
|
|
||||||
use App\Models\Pertanian\Petani;
|
use App\Models\Pertanian\Petani;
|
||||||
use App\Models\Pertanian\SkorPetani;
|
use App\Models\Pertanian\SkorPetani;
|
||||||
|
use App\Models\Pertanian\PraktikBudidaya;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
@@ -204,7 +205,42 @@ class SosialEkonomi extends Model
|
|||||||
'updated_by' => $petani->updated_by
|
'updated_by' => $petani->updated_by
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
$praktik = PraktikBudidaya::where('petani_id', $petani->id)->orderBy('id')->first();
|
||||||
|
$pendapatan = PendapatanKomoditas::where('sosial_ekonomi_id', $sosialEkonomi->id)->get();
|
||||||
|
|
||||||
|
$rasio = 0;
|
||||||
|
if ($praktik && ($pendapatan && $pendapatan->count() > 0 && $pendapatan->sum('pendapatan') > 0)) {
|
||||||
|
$rasio = $praktik->total_estimasi_biaya_produksi / $pendapatan->sum('pendapatan');
|
||||||
|
}
|
||||||
|
if ($rasio >= 0.8) {
|
||||||
|
$skorRasio = 1;
|
||||||
|
} else if ($rasio >= 0.6) {
|
||||||
|
$skorRasio = 2;
|
||||||
|
} else if ($rasio >= 0.45) {
|
||||||
|
$skorRasio = 3;
|
||||||
|
} else if ($rasio >= 0.3) {
|
||||||
|
$skorRasio = 4;
|
||||||
|
} else {
|
||||||
|
$skorRasio = 5;
|
||||||
|
}
|
||||||
|
|
||||||
$skor->update([
|
$skor->update([
|
||||||
|
'skor_d4_k3_1_praktik_baru' => $sosialEkonomi->kemauan_mencoba_praktik_baru?->value,
|
||||||
|
'skor_d4_k3_4_pemahaman_mutu_harga' => $sosialEkonomi->pemahaman_mutu_harga?->value,
|
||||||
|
'skor_d4_k3_5_role_model' => $sosialEkonomi->panutan_petani_sukses?->value,
|
||||||
|
'skor_d4_k3_6_kemampuan_keterlibatan_program' => $sosialEkonomi->kemauan_ikut_program?->value,
|
||||||
|
'skor_d4_k3_7_orientasi_jangka_panjang' => $sosialEkonomi->orientasi_rencana_jangka_panjang?->value,
|
||||||
|
|
||||||
|
'skor_d4_k2_5_stabilitas_penghasilan' => $sosialEkonomi->skor_periode_paceklik?->value,
|
||||||
|
'skor_d4_k2_8_kemampuan_menabung' => $sosialEkonomi->skor_kemampuan_menabung?->value,
|
||||||
|
'skor_d4_k2_9_kecukupan_penghasilan' => $sosialEkonomi->skor_kecukupan_penghasilan?->value,
|
||||||
|
'skor_d4_k2_3_k2_7_rasio_biaya_produksi_pendapatan' => $skorRasio,
|
||||||
|
'skor_d4_k2_11_hak_kelola_lahan' => $sosialEkonomi->skor_kejelasan_status_lahan?->value,
|
||||||
|
|
||||||
|
'skor_d4_k4_2_keaktifan_pertemuan' => $sosialEkonomi->keaktifan_pertemuan_kelompok?->value,
|
||||||
|
'skor_d4_k4_3_peran_dalam_kelompok' => $sosialEkonomi->peran_dalam_kelompok?->value,
|
||||||
|
'skor_d4_k4_4_manfaat_dirasakan' => $sosialEkonomi->manfaat_kelompok_tani?->value,
|
||||||
|
|
||||||
'skor_d4_k5_1_kepemilikan_rekening' => $sosialEkonomi->status_rekening_tabungan?->value,
|
'skor_d4_k5_1_kepemilikan_rekening' => $sosialEkonomi->status_rekening_tabungan?->value,
|
||||||
'skor_d4_k5_2_pengalaman_kredit_formal' => $sosialEkonomi->pengalaman_kredit_kebun?->value,
|
'skor_d4_k5_2_pengalaman_kredit_formal' => $sosialEkonomi->pengalaman_kredit_kebun?->value,
|
||||||
'skor_d4_k5_3_kepemilikan_aset_produktif' => $sosialEkonomi->kondisi_aset_produktif?->value,
|
'skor_d4_k5_3_kepemilikan_aset_produktif' => $sosialEkonomi->kondisi_aset_produktif?->value,
|
||||||
|
|||||||
@@ -44,6 +44,30 @@ class SurveyPanen extends Model
|
|||||||
'deleted_by',
|
'deleted_by',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
protected static function booted(): void
|
||||||
|
{
|
||||||
|
static::saved(function (SurveyPanen $survey) {
|
||||||
|
|
||||||
|
$petani = Petani::find($survey->petani_id);
|
||||||
|
$skor = SkorPetani::where('petani_id', $petani->id)->orderBy('id')->first();
|
||||||
|
if (!$skor) {
|
||||||
|
$petaniUid = $petani->uid;
|
||||||
|
$part = explode('-', $petaniUid);
|
||||||
|
$skor = SkorPetani::create([
|
||||||
|
'petani_id' => $petani->id,
|
||||||
|
'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)),
|
||||||
|
'created_by' => $petani->created_by,
|
||||||
|
'updated_by' => $petani->updated_by
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$skor->update([
|
||||||
|
'skor_d2_k3_1_penentuan_pematangan' => $survey->dasar_penentuan_panen,
|
||||||
|
'skor_d2_k3_5_sortasi_awal_pemisahan_kualitas' => $survey->praktik_sortasi,
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public function petani(): BelongsTo
|
public function petani(): BelongsTo
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Petani::class, 'petani_id');
|
return $this->belongsTo(Petani::class, 'petani_id');
|
||||||
|
|||||||
@@ -35,24 +35,25 @@ return new class extends Migration
|
|||||||
$table->string('cara_pemberian_pupuk')->nullable();
|
$table->string('cara_pemberian_pupuk')->nullable();
|
||||||
// 2.5 Pengendalian Organisme Pengganggu Tumbuhan (OPT)
|
// 2.5 Pengendalian Organisme Pengganggu Tumbuhan (OPT)
|
||||||
$table->integer('metode_penanganan_opt')->nullable();
|
$table->integer('metode_penanganan_opt')->nullable();
|
||||||
$table->string('jenis_hama')->nullable();
|
$table->jsonb('jenis_hama')->nullable();
|
||||||
$table->string('jenis_penyakit')->nullable();
|
$table->jsonb('jenis_penyakit')->nullable();
|
||||||
$table->string('intensitas_serangan')->nullable();
|
$table->string('intensitas_serangan')->nullable();
|
||||||
$table->string('waktu_kemunculan_terparah')->nullable();
|
$table->string('waktu_kemunculan_terparah')->nullable();
|
||||||
$table->string('metode_paling_sering_dilakukan')->nullable();
|
$table->string('metode_paling_sering_dilakukan')->nullable();
|
||||||
$table->integer('volume_obat_obatan_permusim')->nullable();
|
$table->decimal('volume_obat_obatan_padat_permusim', 10, 2)->nullable();
|
||||||
|
$table->decimal('volume_obat_obatan_cair_permusim', 10, 2)->nullable();
|
||||||
// 2.6 Sanitasi Kebun
|
// 2.6 Sanitasi Kebun
|
||||||
$table->integer('frekuensi_sanitasi_lahan')->nullable();
|
$table->integer('frekuensi_sanitasi_lahan')->nullable();
|
||||||
$table->string('penanganan_sisa_buah_ranting')->nullable();
|
$table->string('penanganan_sisa_buah_ranting')->nullable();
|
||||||
$table->integer('penanganan_gulma')->nullable();
|
$table->integer('penanganan_gulma')->nullable();
|
||||||
// 2.7 Pengelolaan Air & irigasi
|
// 2.7 Pengelolaan Air & irigasi
|
||||||
$table->integer('kondisi_pengelolaan_air')->nullable();
|
$table->integer('kondisi_pengelolaan_air')->nullable();
|
||||||
$table->string('sumber_air')->nullable();
|
$table->jsonb('sumber_air')->nullable();
|
||||||
$table->string('sistem_irigasi')->nullable();
|
$table->string('sistem_irigasi')->nullable();
|
||||||
$table->string('kebutuhan_air_permusim')->nullable();
|
$table->string('kebutuhan_air_permusim')->nullable();
|
||||||
|
|
||||||
// 2.8 Praktik konservasi tanah
|
// 2.8 Praktik konservasi tanah
|
||||||
$table->string('kebiasaan_konservasi_tanah')->nullable();
|
$table->jsonb('kebiasaan_konservasi_tanah')->nullable();
|
||||||
$table->string('pemahaman_manfaat_konservasi_tanah')->nullable();
|
$table->string('pemahaman_manfaat_konservasi_tanah')->nullable();
|
||||||
$table->integer('nilai_konservasi_tanah')->nullable();
|
$table->integer('nilai_konservasi_tanah')->nullable();
|
||||||
|
|
||||||
@@ -99,7 +100,7 @@ return new class extends Migration
|
|||||||
$table->string('tindakan_panen_reject')->nullable();
|
$table->string('tindakan_panen_reject')->nullable();
|
||||||
$table->decimal('upah_tenaga_panen', 13, 2)->nullable();
|
$table->decimal('upah_tenaga_panen', 13, 2)->nullable();
|
||||||
$table->decimal('biaya_pengangkutan_panen', 13, 2)->nullable();
|
$table->decimal('biaya_pengangkutan_panen', 13, 2)->nullable();
|
||||||
$table->decimal('biaya_wadah-Panen', 13, 2)->nullable();
|
$table->decimal('biaya_wadah_Panen', 13, 2)->nullable();
|
||||||
$table->decimal('biaya_sewa_alat_panen', 13, 2)->nullable();
|
$table->decimal('biaya_sewa_alat_panen', 13, 2)->nullable();
|
||||||
$table->decimal('biaya_panen_lainnya', 13, 2)->nullable();
|
$table->decimal('biaya_panen_lainnya', 13, 2)->nullable();
|
||||||
$table->decimal('total_estimasi_biaya_panen', 13, 2)->nullable();
|
$table->decimal('total_estimasi_biaya_panen', 13, 2)->nullable();
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('master_komoditas', function (Blueprint $table) {
|
||||||
|
$table->boolean('is_utama')->default(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('master_komoditas', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('is_utama');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="card-body d-flex justify-content-between align-items-center">
|
<div class="card-body d-flex justify-content-between align-items-center">
|
||||||
<div>
|
<div>
|
||||||
<p class="text-muted fw-medium mb-1">{{ $title }}</p>
|
<p class="text-muted fw-medium mb-1">{{ $title }}</p>
|
||||||
<h3 class="text-dark fw-bold mb-1">{{ $count }}</h3>
|
<h3 class="text-dark fw-bold mb-1">{!! $count !!}</h3>
|
||||||
<small class="text-muted">{{ $subtitle }}</small>
|
<small class="text-muted">{{ $subtitle }}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="badge bg-label-{{ $color }} p-2 rounded">
|
<div class="badge bg-label-{{ $color }} p-2 rounded">
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<i class="icon-base ti tabler-trees icon-28px"></i>
|
<i class="icon-base ti tabler-trees icon-28px"></i>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="mb-0">{{ $lahanSummary->sum('luas_lahan') }}m<sup>2</sup></h4>
|
<h4 class="mb-0">{{ number_format($lahanSummary->sum('luas_lahan'), 0, ',', '.') }}m<sup>2</sup></h4>
|
||||||
</div>
|
</div>
|
||||||
<p class="mb-1">Lahan</p>
|
<p class="mb-1">Lahan</p>
|
||||||
<p class="mb-0">
|
<p class="mb-0">
|
||||||
@@ -91,10 +91,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ $skorSummary->where('segmentasi', 'Penggerak')->sum('total') }} petani</span>
|
<span>{{ $skorSummary->where('segmen', 'Penggerak')->sum('total') }} petani</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ number_format(($skorSummary->where('segmentasi', 'Penggerak')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
<span>{{ number_format(($skorSummary->where('segmen', 'Penggerak')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -110,10 +110,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ $skorSummary->where('segmentasi', 'Perintis')->sum('total') }} petani</span>
|
<span>{{ $skorSummary->where('segmen', 'Perintis')->sum('total') }} petani</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ number_format(($skorSummary->where('segmentasi', 'Perintis')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
<span>{{ number_format(($skorSummary->where('segmen', 'Perintis')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -129,10 +129,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ $skorSummary->where('segmentasi', 'Pemerhati')->sum('total') }} petani</span>
|
<span>{{ $skorSummary->where('segmen', 'Pemerhati')->sum('total') }} petani</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ number_format(($skorSummary->where('segmentasi', 'Pemerhati')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
<span>{{ number_format(($skorSummary->where('segmen', 'Pemerhati')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -148,10 +148,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ $skorSummary->where('segmentasi', 'Pemula')->sum('total') }} petani</span>
|
<span>{{ $skorSummary->where('segmen', 'Pemula')->sum('total') }} petani</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
<span>{{ number_format(($skorSummary->where('segmentasi', 'Pemula')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
<span>{{ number_format(($skorSummary->where('segmen', 'Pemula')->sum('total') / $petaniSummary->sum('total')) * 100, 2) }}%</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -173,6 +173,7 @@
|
|||||||
@foreach ($komoditas as $k)
|
@foreach ($komoditas as $k)
|
||||||
<?php
|
<?php
|
||||||
$max = $skorKomoditasSummary->where('komoditas_id', $k->id)
|
$max = $skorKomoditasSummary->where('komoditas_id', $k->id)
|
||||||
|
->whereIn('segmen', ['Penggerak', 'Perintis', 'Pemerhati', 'Pemula'])
|
||||||
->sortByDesc('total')
|
->sortByDesc('total')
|
||||||
->first();
|
->first();
|
||||||
?>
|
?>
|
||||||
@@ -182,19 +183,19 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="pe-0">
|
<td class="pe-0">
|
||||||
@if(isset($max))
|
@if(isset($max))
|
||||||
@if($max->segmentasi == 'Penggerak')
|
@if($max->segmen == 'Penggerak')
|
||||||
<span class="text-success">Petani Penggerak</span>
|
<span class="text-success">Petani Penggerak</span>
|
||||||
@elseif($max->segmentasi == 'Perintis')
|
@elseif($max->segmen == 'Perintis')
|
||||||
<span class="text-info">Petani Perintis</span>
|
<span class="text-info">Petani Perintis</span>
|
||||||
@elseif($max->segmentasi == 'Pemerhati')
|
@elseif($max->segmen == 'Pemerhati')
|
||||||
<span class="text-warning">Petani Pemerhati</span>
|
<span class="text-warning">Petani Pemerhati</span>
|
||||||
@elseif($max->segmentasi == 'Pemula')
|
@elseif($max->segmen == 'Pemula')
|
||||||
<span class="text-danger">Petani Pemula</span>
|
<span class="text-danger">Petani Pemula</span>
|
||||||
@else
|
@else
|
||||||
<span>Belum Lengkap</span>
|
<span>Belum Lengkap</span>
|
||||||
@endif
|
@endif
|
||||||
@else
|
@else
|
||||||
<span>Belum Ada</span>
|
<span>Belum Tersegmentasi</span>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end pe-0">
|
<td class="text-end pe-0">
|
||||||
|
|||||||
@@ -8,7 +8,38 @@
|
|||||||
@csrf
|
@csrf
|
||||||
<div class="mb-4 form-control-validation">
|
<div class="mb-4 form-control-validation">
|
||||||
<label class="form-label" for="add-nama">Nama Komoditas<span class="text-danger">*</span></label>
|
<label class="form-label" for="add-nama">Nama Komoditas<span class="text-danger">*</span></label>
|
||||||
<input type="text" class="form-control" id="add-nama" name="nama" placeholder="Cth: Padi Sabrang" />
|
<input type="text" class="form-control" id="add-nama" name="nama" placeholder="Cth: Kopi" />
|
||||||
|
</div>
|
||||||
|
<div class="mb-4 form-control-validation">
|
||||||
|
<label class="form-label" for="add-kode">Kode Komoditas<span class="text-danger">*</span></label>
|
||||||
|
<input type="text" class="form-control" id="add-kode" name="kode" placeholder="Cth: KP" />
|
||||||
|
</div>
|
||||||
|
<div class="mb-4 form-control-validation">
|
||||||
|
<label class="form-label d-block">Komoditas Utama <span class="text-danger">*</span></label>
|
||||||
|
<input type="hidden" name="is_utama" value="0">
|
||||||
|
|
||||||
|
<label class="switch switch-lg"><input type="checkbox" class="switch-input" id="add-is-utama" name="is_utama" value="1" @checked(old('is_utama', false))>
|
||||||
|
|
||||||
|
<span class="switch-toggle-slider">
|
||||||
|
<span class="switch-on">
|
||||||
|
<i class="icon-base ti tabler-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-off">
|
||||||
|
<i class="icon-base ti tabler-x"></i>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-label" id="add-is-utama-label">
|
||||||
|
{{ old('is_utama', false) ? 'Komoditas Utama' : 'Tidak Termasuk' }}
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
@error('is_utama')
|
||||||
|
<div class="invalid-feedback d-block">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Simpan</button>
|
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Simpan</button>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<div class="offcanvas-body mx-0 flex-grow-0 p-6 h-100">
|
<div class="offcanvas-body mx-0 flex-grow-0 p-6 h-100">
|
||||||
<form id="editKomoditasForm" class="pt-0" method="POST">
|
<form id="editKomoditasForm" class="pt-0" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
|
@method('PUT')
|
||||||
<input type="hidden" name="_method" value="PUT">
|
<input type="hidden" name="_method" value="PUT">
|
||||||
<input type="hidden" id="edit-id" name="id">
|
<input type="hidden" id="edit-id" name="id">
|
||||||
|
|
||||||
@@ -13,6 +14,39 @@
|
|||||||
<label class="form-label" for="edit-nama">Nama Komoditas<span class="text-danger">*</span></label>
|
<label class="form-label" for="edit-nama">Nama Komoditas<span class="text-danger">*</span></label>
|
||||||
<input type="text" class="form-control" id="edit-nama" name="nama" />
|
<input type="text" class="form-control" id="edit-nama" name="nama" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-4 form-control-validation">
|
||||||
|
<label class="form-label" for="edit-kode">Kode Komoditas<span class="text-danger">*</span></label>
|
||||||
|
<input type="text" class="form-control" id="edit-kode" name="kode" />
|
||||||
|
</div>
|
||||||
|
<div class="mb-4 form-control-validation">
|
||||||
|
<label class="form-label d-block" for="edit-is-utama">Komoditas Utama <span class="text-danger">*</span></label>
|
||||||
|
|
||||||
|
<input type="hidden" name="is_utama" value="0">
|
||||||
|
|
||||||
|
<label class="switch switch-lg">
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
class="switch-input"
|
||||||
|
id="edit-is-utama"
|
||||||
|
name="is_utama"
|
||||||
|
value="1"
|
||||||
|
>
|
||||||
|
|
||||||
|
<span class="switch-toggle-slider">
|
||||||
|
<span class="switch-on">
|
||||||
|
<i class="icon-base ti tabler-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-off">
|
||||||
|
<i class="icon-base ti tabler-x"></i>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-label" id="edit-is-utama-label">
|
||||||
|
Tidak Termasuk
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Update</button>
|
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Update</button>
|
||||||
<button type="reset" class="btn btn-label-secondary" data-bs-dismiss="offcanvas">Batal</button>
|
<button type="reset" class="btn btn-label-secondary" data-bs-dismiss="offcanvas">Batal</button>
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>No</th>
|
<th>No</th>
|
||||||
<th>Nama Komoditas</th>
|
<th>Nama Komoditas</th>
|
||||||
|
<th>Kode Komoditas</th>
|
||||||
<th>Aksi</th>
|
<th>Aksi</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -57,6 +58,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>{{ $komoditas->firstItem() + $index }}</td>
|
<td>{{ $komoditas->firstItem() + $index }}</td>
|
||||||
<td><span class="text-heading fw-medium">{{ $item->nama }}</span></td>
|
<td><span class="text-heading fw-medium">{{ $item->nama }}</span></td>
|
||||||
|
<td><span class="text-heading fw-medium">{{ $item->kode }}</span></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill view-record" data-id="{{ $item->id }}"><i class="ti tabler-eye ti-md"></i></a>
|
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill view-record" data-id="{{ $item->id }}"><i class="ti tabler-eye ti-md"></i></a>
|
||||||
@@ -144,6 +146,19 @@
|
|||||||
if (res.status === 'success') {
|
if (res.status === 'success') {
|
||||||
$('#edit-id').val(res.data.id);
|
$('#edit-id').val(res.data.id);
|
||||||
$('#edit-nama').val(res.data.nama);
|
$('#edit-nama').val(res.data.nama);
|
||||||
|
$('#edit-kode').val(res.data.kode);
|
||||||
|
|
||||||
|
const isUtama =
|
||||||
|
res.data.is_utama === true ||
|
||||||
|
res.data.is_utama === 1 ||
|
||||||
|
res.data.is_utama === '1';
|
||||||
|
|
||||||
|
$('#edit-is-utama').prop('checked', isUtama);
|
||||||
|
|
||||||
|
$('#edit-is-utama-label').text(
|
||||||
|
isUtama ? 'Komoditas Utama' : 'Tidak Termasuk'
|
||||||
|
);
|
||||||
|
|
||||||
if (typeof fvEdit !== 'undefined') fvEdit.resetForm();
|
if (typeof fvEdit !== 'undefined') fvEdit.resetForm();
|
||||||
offcanvasEdit.show();
|
offcanvasEdit.show();
|
||||||
}
|
}
|
||||||
@@ -166,6 +181,15 @@
|
|||||||
$btn.removeClass('disabled');
|
$btn.removeClass('disabled');
|
||||||
if (res.status === 'success') {
|
if (res.status === 'success') {
|
||||||
$('#view-nama').val(res.data.nama);
|
$('#view-nama').val(res.data.nama);
|
||||||
|
$('#view-kode').val(res.data.kode);
|
||||||
|
const isUtama =
|
||||||
|
res.data.is_utama === true ||
|
||||||
|
res.data.is_utama === 1 ||
|
||||||
|
res.data.is_utama === '1';
|
||||||
|
|
||||||
|
$('#view-is-utama').val(
|
||||||
|
isUtama ? 'Komoditas Utama' : 'Tidak Termasuk'
|
||||||
|
);
|
||||||
offcanvasView.show();
|
offcanvasView.show();
|
||||||
}
|
}
|
||||||
}).fail((xhr) => {
|
}).fail((xhr) => {
|
||||||
@@ -177,7 +201,9 @@
|
|||||||
|
|
||||||
const editForm = document.getElementById('editKomoditasForm');
|
const editForm = document.getElementById('editKomoditasForm');
|
||||||
let fvEdit = FormValidation.formValidation(editForm, {
|
let fvEdit = FormValidation.formValidation(editForm, {
|
||||||
fields: { nama: { validators: { notEmpty: { message: 'Nama komoditas wajib diisi' } } } },
|
fields: { nama: { validators: { notEmpty: { message: 'Nama komoditas wajib diisi' } } } ,
|
||||||
|
kode: {validators: { notEmpty: { message: 'Kode komoditas wajib diisi' } } }
|
||||||
|
},
|
||||||
plugins: {
|
plugins: {
|
||||||
trigger: new FormValidation.plugins.Trigger(),
|
trigger: new FormValidation.plugins.Trigger(),
|
||||||
bootstrap5: new FormValidation.plugins.Bootstrap5({ eleValidClass: '', rowSelector: '.form-control-validation' }),
|
bootstrap5: new FormValidation.plugins.Bootstrap5({ eleValidClass: '', rowSelector: '.form-control-validation' }),
|
||||||
@@ -245,5 +271,20 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
const switchInput = document.getElementById('add-is-utama');
|
||||||
|
const switchLabel = document.getElementById('add-is-utama-label');
|
||||||
|
|
||||||
|
function updateKomoditasLabel() {
|
||||||
|
switchLabel.textContent = switchInput.checked
|
||||||
|
? 'Komoditas Utama'
|
||||||
|
: 'Tidak Termasuk';
|
||||||
|
}
|
||||||
|
|
||||||
|
switchInput.addEventListener('change', updateKomoditasLabel);
|
||||||
|
|
||||||
|
updateKomoditasLabel();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
@@ -9,6 +9,14 @@
|
|||||||
<label class="form-label" for="view-nama">Nama Komoditas</label>
|
<label class="form-label" for="view-nama">Nama Komoditas</label>
|
||||||
<input type="text" class="form-control bg-lighter" id="view-nama" readonly />
|
<input type="text" class="form-control bg-lighter" id="view-nama" readonly />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-4">
|
||||||
|
<label class="form-label" for="view-kode">Kode Komoditas</label>
|
||||||
|
<input type="text" class="form-control bg-lighter" id="view-kode" readonly />
|
||||||
|
</div>
|
||||||
|
<div class="mb-4">
|
||||||
|
<label class="form-label" for="view-is-utama">Komoditas Utama</label>
|
||||||
|
<input type="text" class="form-control bg-lighter" id="view-is-utama" readonly>
|
||||||
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button type="button" class="btn btn-label-secondary d-grid w-100" data-bs-dismiss="offcanvas">Tutup</button>
|
<button type="button" class="btn btn-label-secondary d-grid w-100" data-bs-dismiss="offcanvas">Tutup</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -47,27 +47,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-6 col-md-4 col-xl-3">
|
|
||||||
<div class="card shadow-sm border-0 h-100">
|
|
||||||
<div class="card-body p-4">
|
|
||||||
<div class="d-flex justify-content-between">
|
|
||||||
<div>
|
|
||||||
<span class="text-muted d-block mb-2">Titik Penanaman</span>
|
|
||||||
<h2 class="mb-0 fw-bold text-dark" style="font-size: 2.5rem;">
|
|
||||||
{{ number_format($totalTitikTanam, 0, ',', '.') }}
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="d-flex align-items-center justify-content-center bg-label-warning text-warning" style="width: 56px; height: 56px; border-radius: 12px;">
|
|
||||||
<i class="ti tabler-map-pin" style="font-size: 1.8rem;"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<small class="text-muted d-block mt-3">Distribusi lahan aktif</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
|||||||
@@ -329,7 +329,7 @@
|
|||||||
ktp: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
ktp: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
||||||
kk: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
kk: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
||||||
tempat_lahir: { required: true },
|
tempat_lahir: { required: true },
|
||||||
tanggal_lahir: { required: true, date: true },
|
tanggal_lahir: { required: true },
|
||||||
jenis_kelamin: { required: true },
|
jenis_kelamin: { required: true },
|
||||||
pendidikan_terakhir: { required: true },
|
pendidikan_terakhir: { required: true },
|
||||||
komoditas_id: { required: true },
|
komoditas_id: { required: true },
|
||||||
@@ -349,7 +349,7 @@
|
|||||||
ktp: { required: "NIK wajib diisi", digits: "NIK harus berupa angka", minlength: "NIK harus 16 digit", maxlength: "NIK harus 16 digit" },
|
ktp: { required: "NIK wajib diisi", digits: "NIK harus berupa angka", minlength: "NIK harus 16 digit", maxlength: "NIK harus 16 digit" },
|
||||||
kk: { digits: "No. KK harus berupa angka", minlength: "No. KK harus 16 digit", maxlength: "No. KK harus 16 digit" },
|
kk: { digits: "No. KK harus berupa angka", minlength: "No. KK harus 16 digit", maxlength: "No. KK harus 16 digit" },
|
||||||
tempat_lahir: { required: "Tempat lahir wajib diisi" },
|
tempat_lahir: { required: "Tempat lahir wajib diisi" },
|
||||||
tanggal_lahir: { required: "Tanggal lahir wajib diisi", date: "Format tanggal salah" },
|
tanggal_lahir: { required: "Tanggal lahir wajib diisi" },
|
||||||
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
|
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
|
||||||
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
|
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
|
||||||
komoditas_id: { required: "Komoditas wajib diisi" },
|
komoditas_id: { required: "Komoditas wajib diisi" },
|
||||||
|
|||||||
@@ -83,9 +83,9 @@
|
|||||||
@error('tempat_lahir')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
@error('tempat_lahir')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 mb-4 form-control-validation">
|
<div class="col-md-3 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="edit-petani-tanggal-lahir">Tanggal Lahir {{ $petani->tanggal_lahir?->format('Y-m-d') }}</label>
|
<label class="form-label" for="edit-petani-tanggal-lahir">Tanggal Lahir</label>
|
||||||
<input type="date" class="form-control @error('tanggal_lahir') is-invalid @enderror" id="edit-petani-tanggal-lahir" name="tanggal_lahir"
|
<input type="text" class="form-control @error('tanggal_lahir') is-invalid @enderror" id="edit-petani-tanggal-lahir" name="tanggal_lahir"
|
||||||
value="{{ old('tanggal_lahir', $petani->tanggal_lahir?->format('Y-m-d')) }}" />
|
value="{{ old('tanggal_lahir', $petani->tanggal_lahir?->format('d-m-Y')) }}" />
|
||||||
@error('tanggal_lahir')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
@error('tanggal_lahir')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -334,7 +334,7 @@
|
|||||||
ktp: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
ktp: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
||||||
kk: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
kk: { required: true, digits: true, minlength: 16, maxlength: 16 },
|
||||||
tempat_lahir: { required: true },
|
tempat_lahir: { required: true },
|
||||||
tanggal_lahir: { required: true, date: true },
|
tanggal_lahir: { required: true },
|
||||||
jenis_kelamin: { required: true },
|
jenis_kelamin: { required: true },
|
||||||
pendidikan_terakhir: { required: true },
|
pendidikan_terakhir: { required: true },
|
||||||
komoditas_id: { required: true },
|
komoditas_id: { required: true },
|
||||||
@@ -354,7 +354,7 @@
|
|||||||
ktp: { required: "NIK wajib diisi", digits: "NIK harus berupa angka", minlength: "NIK harus 16 digit", maxlength: "NIK harus 16 digit" },
|
ktp: { required: "NIK wajib diisi", digits: "NIK harus berupa angka", minlength: "NIK harus 16 digit", maxlength: "NIK harus 16 digit" },
|
||||||
kk: { required: "No. KK wajib diisi", digits: "No. KK harus berupa angka", minlength: "No. KK harus 16 digit", maxlength: "No. KK harus 16 digit" },
|
kk: { required: "No. KK wajib diisi", digits: "No. KK harus berupa angka", minlength: "No. KK harus 16 digit", maxlength: "No. KK harus 16 digit" },
|
||||||
tempat_lahir: { required: "Tempat lahir wajib diisi" },
|
tempat_lahir: { required: "Tempat lahir wajib diisi" },
|
||||||
tanggal_lahir: { required: "Tanggal lahir wajib diisi", date: "Format tanggal salah" },
|
tanggal_lahir: { required: "Tanggal lahir wajib diisi" },
|
||||||
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
|
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
|
||||||
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
|
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
|
||||||
alamat: { required: "Alamat wajib diisi" },
|
alamat: { required: "Alamat wajib diisi" },
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<span class="avatar">
|
<span class="avatar">
|
||||||
<span class="avatar-initial rounded">
|
<span class="avatar-initial rounded">
|
||||||
<i class="icon-base ti tabler-seedling icon-22px"></i>
|
<i class="icon-base ti tabler-books icon-22px"></i>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -158,7 +158,7 @@
|
|||||||
@php
|
@php
|
||||||
$produktivitas = isset($petani?->surveyProduktivitas) ? $petani?->surveyProduktivitas : null;
|
$produktivitas = isset($petani?->surveyProduktivitas) ? $petani?->surveyProduktivitas : null;
|
||||||
if (!is_null($produktivitas)) {
|
if (!is_null($produktivitas)) {
|
||||||
$produktivitas = $produktivitas->get()->where('komoditas_id', $petani->komoditas_id);
|
$produktivitas = $produktivitas->where('komoditas_id', $petani->komoditas_id);
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
<div>
|
<div>
|
||||||
@@ -175,13 +175,13 @@
|
|||||||
@if(!is_null($skorPraktik))
|
@if(!is_null($skorPraktik))
|
||||||
<span class="me-1">{{ $praktik }}</span>
|
<span class="me-1">{{ $praktik }}</span>
|
||||||
@else
|
@else
|
||||||
<span class="me-1">Belum isi</span>
|
<span class="me-1">Belum terisi</span>
|
||||||
@endif
|
@endif
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<span class="avatar">
|
<span class="avatar">
|
||||||
<span class="avatar-initial rounded">
|
<span class="avatar-initial rounded">
|
||||||
<i class="icon-base ti tabler-books icon-22px"></i>
|
<i class="icon-base ti tabler-seedling icon-22px"></i>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -285,7 +285,7 @@
|
|||||||
@if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium))
|
@if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium))
|
||||||
<span class="me-1">{{ $pengalaman }}</span>
|
<span class="me-1">{{ $pengalaman }}</span>
|
||||||
@else
|
@else
|
||||||
<span class="me-1">Belum isi</span>
|
<span class="me-1">Belum terisi</span>
|
||||||
@endif
|
@endif
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,6 +2,36 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container-xxl flex-grow-1 container-p-y">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
|
<div class="d-flex flex-row gap-3 mb-4">
|
||||||
|
<div class="w-25">
|
||||||
|
<x-summary-card
|
||||||
|
title="Petani"
|
||||||
|
count="{{ $petani->count() }}"
|
||||||
|
subtitle="{{ $petani->where('jenis_kelamin', 1)->count() }} Laki-laki, {{ $petani->where('jenis_kelamin', 0)->count() }} Perempuan"
|
||||||
|
icon="user-check"
|
||||||
|
color="primary"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="w-25">
|
||||||
|
<x-summary-card
|
||||||
|
title="Lahan & Tanaman"
|
||||||
|
count="{{ number_format($lahan?->sum('luas_lahan'), 0, ',', '.') }}m<sup>2</sup>"
|
||||||
|
subtitle="{{ $tanaman?->count() }} tanaman dari {{ $komoditas?->count() }} komoditas utama"
|
||||||
|
icon="trees"
|
||||||
|
color="success"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="w-25">
|
||||||
|
<x-summary-card
|
||||||
|
title="Segmentasi"
|
||||||
|
count="{{ $skor->where('segmen', 'Penggerak')->count() }} Penggerak"
|
||||||
|
subtitle="{{ $skor->where('segmen', 'Perintis')->count() }} Perintis, {{ $skor->where('segmen', 'Pemerhati')->count() }} Pemerhati, {{ $skor->where('segmen', 'Pemula')->count() }} Pemula"
|
||||||
|
icon="star"
|
||||||
|
color="info"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header border-bottom">
|
<div class="card-header border-bottom">
|
||||||
<h5 class="card-title mb-0">Data Petani</h5>
|
<h5 class="card-title mb-0">Data Petani</h5>
|
||||||
@@ -40,6 +70,8 @@
|
|||||||
<th>Jenis Kelamin</th>
|
<th>Jenis Kelamin</th>
|
||||||
<th>Usia</th>
|
<th>Usia</th>
|
||||||
<th>Desa/Kelurahan</th>
|
<th>Desa/Kelurahan</th>
|
||||||
|
<th>Komoditas Utama</th>
|
||||||
|
<th>Segmentasi</th>
|
||||||
<th>Aksi</th>
|
<th>Aksi</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -51,7 +83,18 @@
|
|||||||
<td><span class="text-muted">{{ $item->jenis_kelamin ? 'Laki-laki' : 'Perempuan' }}</span></td>
|
<td><span class="text-muted">{{ $item->jenis_kelamin ? 'Laki-laki' : 'Perempuan' }}</span></td>
|
||||||
<td><span class="text-muted">{{ $item->umur }} tahun</span></td>
|
<td><span class="text-muted">{{ $item->umur }} tahun</span></td>
|
||||||
<td><span class="text-muted">{{ $item->desaKelurahan?->nama }}, {{ $item->desaKelurahan?->kecamatan?->nama }}, {{ $item->desaKelurahan?->kecamatan?->kabupatenKota?->nama }}, {{ $item->desaKelurahan?->kecamatan?->kabupatenKota?->provinsi?->nama }}</span></td>
|
<td><span class="text-muted">{{ $item->desaKelurahan?->nama }}, {{ $item->desaKelurahan?->kecamatan?->nama }}, {{ $item->desaKelurahan?->kecamatan?->kabupatenKota?->nama }}, {{ $item->desaKelurahan?->kecamatan?->kabupatenKota?->provinsi?->nama }}</span></td>
|
||||||
|
<td>{{ $item->komoditas?->nama }}</td>
|
||||||
|
<td>
|
||||||
|
@if($item->segmen() == 'Penggerak')
|
||||||
|
<span class="badge bg-label-success">Penggerak</span>
|
||||||
|
@elseif($item->segmen() == 'Perintis')
|
||||||
|
<span class="badge bg-label-info">Perintis</span>
|
||||||
|
@elseif($item->segmen() == 'Pemerhati')
|
||||||
|
<span class="badge bg-label-warning">Pemerhati</span>
|
||||||
|
@elseif($item->segmen() == 'Pemula')
|
||||||
|
<span class="badge bg-label-danger">Pemula</span>
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<!-- <a href="{{ route('petani.show', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill view-record"><i class="ti tabler-eye ti-md"></i></a> -->
|
<!-- <a href="{{ route('petani.show', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill view-record"><i class="ti tabler-eye ti-md"></i></a> -->
|
||||||
|
|||||||
@@ -208,13 +208,13 @@
|
|||||||
@error('luas_lahan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
@error('luas_lahan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 mb-3 form-control-validation">
|
<div class="col-md-3 mb-3 form-control-validation">
|
||||||
<label class="form-label">Umur Lahan (tahun) <span class="text-danger">*</span></label>
|
<label class="form-label">Umur Lahan (tahun)</label>
|
||||||
<input type="number" name="umur_lahan" class="form-control @error('umur_lahan') is-invalid @enderror" placeholder="Contoh: 1" />
|
<input type="number" name="umur_lahan" class="form-control @error('umur_lahan') is-invalid @enderror" placeholder="Contoh: 1" />
|
||||||
@error('umur_lahan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
@error('umur_lahan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 mb-3 form-control-validation">
|
<div class="col-md-3 mb-3 form-control-validation">
|
||||||
<label class="form-label">Jumlah Tanaman <span class="text-danger">*</span></label>
|
<label class="form-label">Jumlah Tanaman <span class="text-danger">*</span></label>
|
||||||
<input type="number" name="jumlah_tanaman" class="form-control @error('jumlah_tanaman') is-invalid @enderror" placeholder="Contoh: 1" required />
|
<input type="number" name="jumlah_tanaman" class="form-control @error('jumlah_tanaman') is-invalid @enderror" placeholder="Contoh: 1 (min 0)" required />
|
||||||
@error('jumlah_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
@error('jumlah_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 mb-3 form-control-validation">
|
<div class="col-md-3 mb-3 form-control-validation">
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
<label class="form-label">Komoditas Utama <span class="text-danger">*</span></label>
|
<label class="form-label">Komoditas Utama <span class="text-danger">*</span></label>
|
||||||
<select id="komoditas_id" name="komoditas_id" class="form-select @error('komoditas_id') is-invalid @enderror">
|
<select id="komoditas_id" name="komoditas_id" class="form-select @error('komoditas_id') is-invalid @enderror">
|
||||||
<option value="">Pilih Komoditas</option>
|
<option value="">Pilih Komoditas</option>
|
||||||
@foreach($komoditas as $k)
|
@foreach($komoditas->where('is_utama', '1') as $k)
|
||||||
<option value="{{ $k->id }}">{{ $k->nama }}</option>
|
<option value="{{ $k->id }}">{{ $k->nama }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
@@ -772,8 +772,8 @@
|
|||||||
kabupatenkota_id: { required: true },
|
kabupatenkota_id: { required: true },
|
||||||
kecamatan_id: { required: true },
|
kecamatan_id: { required: true },
|
||||||
desa_kelurahan_id: { required: true },
|
desa_kelurahan_id: { required: true },
|
||||||
jumlah_tanaman: { required: true },
|
jumlah_tanaman: { required: true, number: true, min: 0 },
|
||||||
umur_lahan: { required: true, number: true, min: 1 },
|
umur_lahan: { number: true, min: 1 },
|
||||||
umur_tanaman: { required: true, number: true, min: 1 },
|
umur_tanaman: { required: true, number: true, min: 1 },
|
||||||
kondisi_tanaman: { required: true },
|
kondisi_tanaman: { required: true },
|
||||||
},
|
},
|
||||||
@@ -786,8 +786,8 @@
|
|||||||
kabupatenkota_id: { required: "Kabupaten/Kota wajib diisi" },
|
kabupatenkota_id: { required: "Kabupaten/Kota wajib diisi" },
|
||||||
kecamatan_id: { required: "Kecamatan wajib diisi" },
|
kecamatan_id: { required: "Kecamatan wajib diisi" },
|
||||||
desa_kelurahan_id: { required: "Desa/Kelurahan wajib diisi" },
|
desa_kelurahan_id: { required: "Desa/Kelurahan wajib diisi" },
|
||||||
jumlah_tanaman: { required: "Jumlah tanaman wajib diisi" },
|
jumlah_tanaman: { required: "Jumlah tanaman wajib diisi", number: "Jumlah tanaman harus berupa angka", min: "Jumlah tanaman minimal 0" },
|
||||||
umur_lahan: { required: "Umur lahan wajib diisi", number: "Umur lahan harus berupa angka", min: "Umur lahan minimal 1 tahun" },
|
umur_lahan: { number: "Umur lahan harus berupa angka", min: "Umur lahan minimal 1 tahun" },
|
||||||
umur_tanaman: { required: "Umur tanaman wajib diisi", number: "Umur tanaman harus berupa angka", min: "Umur tanaman minimal 1 tahun" },
|
umur_tanaman: { required: "Umur tanaman wajib diisi", number: "Umur tanaman harus berupa angka", min: "Umur tanaman minimal 1 tahun" },
|
||||||
kondisi_tanaman: { required: "Kondisi tanaman wajib diisi" },
|
kondisi_tanaman: { required: "Kondisi tanaman wajib diisi" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 mb-3 form-control-validation">
|
<div class="col-md-3 mb-3 form-control-validation">
|
||||||
<label class="form-label">Jumlah Tanaman <span class="text-danger">*</span></label>
|
<label class="form-label">Jumlah Tanaman <span class="text-danger">*</span></label>
|
||||||
<input type="number" name="jumlah_tanaman" class="form-control @error('jumlah_tanaman') is-invalid @enderror" placeholder="Contoh: 1" required
|
<input type="number" name="jumlah_tanaman" class="form-control @error('jumlah_tanaman') is-invalid @enderror" placeholder="Contoh: 1 (min 0)" required
|
||||||
value="{{ old('jumlah_tanaman', $lahanSelected->jumlah_tanaman) }}" />
|
value="{{ old('jumlah_tanaman', $lahanSelected->jumlah_tanaman) }}" />
|
||||||
@error('jumlah_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
@error('jumlah_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
<label class="form-label">Komoditas Utama <span class="text-danger">*</span></label>
|
<label class="form-label">Komoditas Utama <span class="text-danger">*</span></label>
|
||||||
<select id="komoditas_id" name="komoditas_id" class="form-select @error('komoditas_id') is-invalid @enderror">
|
<select id="komoditas_id" name="komoditas_id" class="form-select @error('komoditas_id') is-invalid @enderror">
|
||||||
<option value="">Pilih Komoditas</option>
|
<option value="">Pilih Komoditas</option>
|
||||||
@foreach($komoditas as $k)
|
@foreach($komoditas->where('is_utama', '1') as $k)
|
||||||
<option value="{{ $k->id }}" {{ old('komoditas_id', $lahanSelected->komoditas_id) == $k->id ? 'selected' : '' }}>{{ $k->nama }}</option>
|
<option value="{{ $k->id }}" {{ old('komoditas_id', $lahanSelected->komoditas_id) == $k->id ? 'selected' : '' }}>{{ $k->nama }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@forelse($lahanSelected->tanaman as $index => $item)
|
@foreach($lahanSelected->tanaman as $item)
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ $loop->iteration }}</td>
|
<td>{{ $loop->iteration }}</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -339,9 +339,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@empty
|
@endforeach
|
||||||
<tr><td colspan="6" class="text-center py-4">Tidak ada data ditemukan.</td></tr>
|
|
||||||
@endforelse
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -239,13 +239,9 @@
|
|||||||
<td class="text-wrapped">Kepemilikan aset produktif</td>
|
<td class="text-wrapped">Kepemilikan aset produktif</td>
|
||||||
<td class="text-end">{{ number_format($skor->skor_d4_k5_3_kepemilikan_aset_produktif, 1, ',', '.') }}</td>
|
<td class="text-end">{{ number_format($skor->skor_d4_k5_3_kepemilikan_aset_produktif, 1, ',', '.') }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td class="text-wrapped">Kepemilikan aset tidak produktif</td>
|
|
||||||
<td class="text-end">{{ number_format($skor->skor_d4_k5_4_kepemilikan_aset_tidak_produktif, 1, ',', '.') }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-wrapped">Akses program bantuan</td>
|
<td class="text-wrapped">Akses program bantuan</td>
|
||||||
<td class="text-end">{{ number_format($skor->skor_d4_k5_4_5_akses_program_bantuan, 1, ',', '.') }}</td>
|
<td class="text-end">{{ number_format($skor->skor_d4_k5_4_akses_program_bantuan, 1, ',', '.') }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-wrapped">Keberadaan hutang terkait panen</td>
|
<td class="text-wrapped">Keberadaan hutang terkait panen</td>
|
||||||
|
|||||||
+5
-2
@@ -13,11 +13,14 @@ Route::post('/logout', [App\Http\Controllers\Web\Konfigurasi\AuthController::cla
|
|||||||
Route::view('/offline', 'offline')->name('offline');
|
Route::view('/offline', 'offline')->name('offline');
|
||||||
|
|
||||||
Route::get('/', function() {
|
Route::get('/', function() {
|
||||||
$userRole = auth()->check() ? (auth()->user()->role instanceof \App\Enums\Role ? auth()->user()->role->value : auth()->user()->role) : null;
|
if (!auth()->check()) {
|
||||||
|
return redirect()->route('login');
|
||||||
|
}
|
||||||
|
|
||||||
if ($userRole == 'fasilitator') {
|
if (auth()->user()->role->value === 'fasilitator') {
|
||||||
return redirect()->route('dashboard.survey-petani');
|
return redirect()->route('dashboard.survey-petani');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->route('dashboard.produktivitas');
|
return redirect()->route('dashboard.produktivitas');
|
||||||
})->name('home');
|
})->name('home');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user