@extends('layouts.app')

@section('content')
{{--*/ usort($tableGrid, "SiteHelpers::_sort") /*--}}
<div class="page-titles">
	<h2> {{ $pageTitle }} <small> {{ $pageNote }} </small></h2>
</div>
<div class="card">
	<div class="card-body">
		<div class="toolbar-nav">
			<div class="row">

				<div class="col-md-6 text-left">
					<form method="GET" action="{{ url($pageModule) }}" class="form-inline">
						<div class="form-group mt-2">
							<select name="filter_pg" id="filter_pg" class="form-control mr-2 select2 "
								style="width:400px;">
							</select>
						</div>
						<div class="form-group mt-2">
							<select name="filter_periode" id="filter_periode" class="form-control mr-2 select2 "
								style="width:400px;">
							</select>
						</div>

					</form>
				</div>
				<div class="col-md-6 text-right">
					<a href="{{ url('rekapprognosa') }}" class="btn btn-sm btn-secondary"><i class="fa fa-arrow-left"></i> Back</a>
					<button type="button" class="btn btn-sm btn-primary" id="btn-save"> <i class="fa fa-save"></i> Save Data</button>
						

					</div>
			</div>
			<div>

				{!! Form::open(array('url'=>'prognosa/delete/', 'class'=>'form-horizontal' ,'id' =>'SximoTable' )) !!}
				<div class="table-responsive" style="min-height:300px;">
					<div class="table-responsive" style="min-height:300px; max-height:600px; overflow:auto;">
						<table class="table table-bordered table-hover" id="table-ajax" style="min-width:2200px;">
							<thead class="thead-light">
								<tr>
									<th style="background: #ebffeb;" class="number sticky-col sticky-col-1"> No </th>
									<th style="background: #ebffeb;" width="100px" class="sticky-col sticky-col-2">Nama Rayon</th>
									<th style="background: #ebffeb;" class="text-center sticky-col sticky-col-3">Uraian</th>
									@foreach (range(1, 12) as $n)
									<th class="text-center">{{ $n }}A</th>
									<th class="text-center">{{ $n }}B</th>
									@endforeach
									<th class="text-center">Total</th>
								</tr>
							</thead>
							<tbody>
								@php
									// Mendapatkan tanggal hari ini
									$today = \Carbon\Carbon::now();
								@endphp
								@foreach ($rowData as $row)
								<tr>
									<td style="background: #ebffeb;" rowspan="7" width="30" class="sticky-col sticky-col-1"> {{ ++$i }} </td>
									<td style="background: #ebffeb;" rowspan="7" class="sticky-col sticky-col-2"><strong> {{ $row->nama_rayon }}</strong> </td>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Luas</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][luas][{{ $n }}A]"
												class="form-control input-total input-luas-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.luas.'.$n.'A', $row->luas[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][luas][{{ $n }}B]"
												class="form-control input-total input-luas-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.luas.'.$n.'B', $row->luas[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-luas-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								<tr>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Tebu</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][tebu][{{ $n }}A]"
												class="form-control input-total input-tebu-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.tebu.'.$n.'A', $row->tebu[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][tebu][{{ $n }}B]"
												class="form-control input-total input-tebu-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.tebu.'.$n.'B', $row->tebu[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-tebu-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								<tr>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Protas</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][protas][{{ $n }}A]"
												class="form-control input-total input-protas-{{ $row->kode_rayon }}"
												style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.protas.'.$n.'A', $row->protas[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][protas][{{ $n }}B]"
												class="form-control input-total input-protas-{{ $row->kode_rayon }}"
												style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.protas.'.$n.'B', $row->protas[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-protas-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								<tr>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Hablur</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][hablur][{{ $n }}A]"
												class="form-control input-total input-hablur-{{ $row->kode_rayon }}"
												style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.hablur.'.$n.'A', $row->hablur[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][hablur][{{ $n }}B]"
												class="form-control input-total input-hablur-{{ $row->kode_rayon }}"
												style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.hablur.'.$n.'B', $row->hablur[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-hablur-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								<tr>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Rendemen</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][rendemen][{{ $n }}A]"
												class="form-control input-total input-rendemen-{{ $row->kode_rayon }}"
												style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.rendemen.'.$n.'A', $row->rendemen[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][rendemen][{{ $n }}B]"
												class="form-control input-total input-rendemen-{{ $row->kode_rayon }}"
												style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.rendemen.'.$n.'B', $row->rendemen[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-rendemen-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								<tr>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Gumil</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][gumil][{{ $n }}A]"
												class="form-control input-total input-gumil-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.gumil.'.$n.'A', $row->gumil[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][gumil][{{ $n }}B]"
												class="form-control input-total input-gumil-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.gumil.'.$n.'B', $row->gumil[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-gumil-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								<tr>
									<th style="background: #ebffeb;" class="sticky-col sticky-col-3">Tetes</th>
									@foreach (range(1, 12) as $n)
										@php
											$year = $today->year;
											$month = $n;
											$startA = \Carbon\Carbon::create($year, $month, 1);
											$endA = \Carbon\Carbon::create($year, $month, 15);
											$startB = \Carbon\Carbon::create($year, $month, 16);
											$endB = \Carbon\Carbon::create($year, $month, $startB->daysInMonth);
											$isA = $today->between($startA, $endA);
											$isB = $today->between($startB, $endB);
										@endphp
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][tetes][{{ $n }}A]"
												class="form-control input-total input-tetes-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.tetes.'.$n.'A', $row->tetes[$n.'A'] ?? '') }}"
												{{ $isA ? '' : '' }}>
										</td>
										<td>
											<input type="number" name="data[{{ $row->kode_rayon }}][tetes][{{ $n }}B]"
												class="form-control input-total input-tetes-{{ $row->kode_rayon }}" style="width:100px; text-align: right;"
												value="{{ old('data.'.$row->id.'.tetes.'.$n.'B', $row->tetes[$n.'B'] ?? '') }}"
												{{ $isB ? '' : '' }}>
										</td>
									@endforeach
									<td style="text-align: right;">
										<label id="total-tetes-{{ $row->kode_rayon }}" >0</label>
									</td>
								</tr>
								@endforeach
							</tbody>
						</table>
					</div>
					<style>
					/* Sticky header */
					#table-ajax thead th {
						position: sticky;
						top: 0;
						background: #f8f9fa;
						z-index: 2;
					}
					/* Sticky columns */
					.sticky-col {
						position: sticky;
						left: 0;
						background: #fff;
						z-index: 3;
					}
					.sticky-col-1 { left: 0; z-index: 4; }
					.sticky-col-2 { left: 50px; z-index: 4; }
					.sticky-col-3 { left: 180px; z-index: 4; }
					/* Adjust width for sticky columns */
					#table-ajax th.sticky-col-1, #table-ajax td.sticky-col-1 { min-width: 50px; max-width: 50px; }
					#table-ajax th.sticky-col-2, #table-ajax td.sticky-col-2 { min-width: 130px; max-width: 130px; }
					#table-ajax th.sticky-col-3, #table-ajax td.sticky-col-3 { min-width: 130px; max-width: 130px; }
					</style>
					<input type="hidden" name="md" value="" />
				</div>
				{!! Form::close() !!}
				<script>
					$("#filter_pg").jCombo("{!! url('dataprodisconsole/comboselect?filter=master_pg:kode_pg:nama_pg') !!}", {
						initial_text: 'Pilih Pabrik Gula'
					});

					// $("#filter_periode").jCombo("{!! url('dataprodisconsole/comboselect?filter=master_bulan_tanam:bulan_tanam:bulan_tanam&parent=is_open:1') !!}", {
					// 	initial_text: 'Pilih Periode Input', selected_value: "{{ $periode }}"
					// });

					$("#filter_periode").jCombo("{!! url('dataprodisconsole/comboselect?filter=master_bulan_tanam:bulan_tanam:bulan_tanam') !!}", {
						initial_text: 'Pilih Periode Input', selected_value: "{{ $periode }}"
					});

						// Fungsi untuk menghitung total per baris input
					function hitungTotal(rowId, tipe) {
						let total = 0;
						$([1,2,3,4,5,6,7,8,9,10,11,12]).each(function(_, n) {
							let valA = parseFloat($(`input.input-${tipe}-${rowId}[name="data[${rowId}][${tipe}][${n}A]"]`).val().replace(/,/g, '')) || 0;
							let valB = parseFloat($(`input.input-${tipe}-${rowId}[name="data[${rowId}][${tipe}][${n}B]"]`).val().replace(/,/g, '')) || 0;
							total += valA + valB;
						});
						$(`#total-${tipe}-${rowId}`).text(total.toLocaleString('id-ID'));
					}

					// Daftar tipe data
					const types = ['luas', 'tebu', 'protas', 'hablur', 'rendemen', 'gumil', 'tetes'];

					// Event listener untuk semua input
					$(document).on('input', '.input-total', function() {
						const input = $(this);
						const classes = input.attr('class').split(' ');
						let rowId = null, tipe = null;
						classes.forEach(function(cls) {
							types.forEach(function(type) {
								if (cls.startsWith(`input-${type}-`)) {
									tipe = type;
									rowId = cls.replace(`input-${type}-`, '');
								}
							});
						});
						if (rowId && tipe) {
							hitungTotal(rowId, tipe);
						}
					});

					// Inisialisasi total saat halaman dimuat
					$(function() {
						@foreach ($rowData as $row)
							@foreach (['luas','tebu','protas','hablur','rendemen','gumil','tetes'] as $tipe)
								hitungTotal('{{ $row->kode_rayon }}', '{{ $tipe }}');
							@endforeach
						@endforeach
					});


					$('#btn-save').on('click', function() {
						let form = $('#SximoTable');
						let formData = form.serialize();
						// Tambahkan filter_pg ke formData jika ada
						const filterPg = $('#filter_pg').val();
						const filterPeriode = $('#filter_periode').val();
						if (!filterPg) {
							notyMessageError('Silakan pilih Pabrik Gula terlebih dahulu.');
							return;
						}
						if (!filterPeriode) {
							notyMessageError('Silakan pilih Periode terlebih dahulu.');
						}

						formData += '&filter_pg=' + encodeURIComponent(filterPg) + '&filter_periode=' + encodeURIComponent(filterPeriode);
						console.log(formData);
						$.ajax({
							url: '{{ url($pageModule . "?action_task=save") }}',
							type: 'POST',
							data: formData,
							success: function(response) {
								// alert('Data berhasil disimpan!');
								if (response.status == 'success') {
									notyMessage(response.message);	
								}
							},
							error: function(xhr) {
								alert('Terjadi kesalahan saat menyimpan data.');
							}
						});
					});


					function setFormValuesFromAjax(pg_penggiling, periode) {
						$.ajax({
							url: '{{ url($pageModule . "/checkPrognosa") }}',
							type: 'GET',
							data: { pg_penggiling: pg_penggiling, periode: periode },
							dataType: 'json',
							success: function(response) {
								if (response.status === 'success' && Array.isArray(response.data)) {
									const dataArr = response.data;
									// dataArr: array of { kode_rayon, kategori, bulan_tanam, prognosa }
									dataArr.forEach(function(item) {
										const kode_rayon = item.kode_rayon;
										const tipe = item.kategori;
										const bulan = item.bulan_tanam;
										const val = item.prognosa;
										const selector = `input[name="data[${kode_rayon}][${tipe}][${bulan}]"]`;
										$(selector).val(val).trigger('input');
									});
									// Hitung ulang total
									const kodeRayonSet = new Set(dataArr.map(item => item.kode_rayon));
									kodeRayonSet.forEach(function(kode_rayon) {
										['luas','tebu','protas','hablur','rendemen','gumil','tetes'].forEach(function(tipe) {
											hitungTotal(kode_rayon, tipe);
										});
									});
								} else {
									notyMessageError('Data tidak ditemukan.');
								}
							},
							error: function() {
								notyMessageError('Gagal mengambil data dari server.');
							}
						});
					}

					// Contoh pemakaian: panggil saat filter_pg berubah
					$('#filter_pg').on('change', function() {
						const pg_penggiling = $(this).val();
						const periode = $('#filter_periode').val();
						if (pg_penggiling && periode) {
							setFormValuesFromAjax(pg_penggiling, periode);
						}
					});

					$('#filter_periode').on('change', function() {
						const pg_penggiling = $('#filter_pg').val();
						const periode = $(this).val();
						if (pg_penggiling && periode) {
							setFormValuesFromAjax(pg_penggiling, periode);
						}
					});
				
				</script>

				@include('footer')
			</div>
		</div>

		@stop