feat(FE-316): Use population instead of available_quantity

This commit is contained in:
rstubryan
2025-12-30 14:41:06 +07:00
parent 52cb440cb3
commit 7c0581728e
3 changed files with 11 additions and 10 deletions
@@ -4,11 +4,11 @@ import * as XLSX from 'xlsx';
import { ProjectFlockKandangLookup } from '@/types/api/production/project-flock'; import { ProjectFlockKandangLookup } from '@/types/api/production/project-flock';
export const generateUniformityTemplate = ( export const generateUniformityTemplate = (
availableQuantity: number, population: number,
projectFlockKandangLookup: ProjectFlockKandangLookup projectFlockKandangLookup: ProjectFlockKandangLookup
) => { ) => {
try { try {
const sampleSize = Math.round(availableQuantity * 0.02); const sampleSize = Math.round(population * 0.02);
const kandangName = projectFlockKandangLookup.kandang?.name || 'Kandang'; const kandangName = projectFlockKandangLookup.kandang?.name || 'Kandang';
const flockName = projectFlockKandangLookup.project_flock?.flock_name || ''; const flockName = projectFlockKandangLookup.project_flock?.flock_name || '';
const flockPeriod = projectFlockKandangLookup.project_flock?.period || 1; const flockPeriod = projectFlockKandangLookup.project_flock?.period || 1;
@@ -23,7 +23,7 @@ export const generateUniformityTemplate = (
['Nama Flock', flockName], ['Nama Flock', flockName],
['Periode', flockPeriod], ['Periode', flockPeriod],
['Kandang', kandangName], ['Kandang', kandangName],
['Total Populasi', formatNumber(availableQuantity)], ['Total Populasi', formatNumber(population)],
['Jumlah Sampel (2%)', formatNumber(sampleSize)], ['Jumlah Sampel (2%)', formatNumber(sampleSize)],
[''], [''],
['CARA PENGISIAN:'], ['CARA PENGISIAN:'],
@@ -95,7 +95,7 @@ export const generateUniformityTemplate = (
XLSX.writeFile(workbook, filename); XLSX.writeFile(workbook, filename);
toast.success( toast.success(
`Template berhasil dibuat dengan ${formatNumber(sampleSize)} baris data (2% dari ${formatNumber(availableQuantity)} populasi).` `Template berhasil dibuat dengan ${formatNumber(sampleSize)} baris data (2% dari ${formatNumber(population)} populasi).`
); );
} catch (error) { } catch (error) {
console.error('Error generating uniformity template:', error); console.error('Error generating uniformity template:', error);
@@ -370,14 +370,14 @@ const UniformityForm = ({
}, [formik]); }, [formik]);
const handleDownloadTemplate = useCallback(() => { const handleDownloadTemplate = useCallback(() => {
const availableQuantity = projectFlockKandangLookup?.available_quantity; const population = projectFlockKandangLookup?.population;
if (!availableQuantity || !projectFlockKandangLookup) { if (!population || !projectFlockKandangLookup) {
toast.error('Silakan pilih Project Flock dan Kandang terlebih dahulu.'); toast.error('Silakan pilih Project Flock dan Kandang terlebih dahulu.');
return; return;
} }
generateUniformityTemplate(availableQuantity, projectFlockKandangLookup); generateUniformityTemplate(population, projectFlockKandangLookup);
}, [projectFlockKandangLookup]); }, [projectFlockKandangLookup]);
// ===== SIDE EFFECTS ===== // ===== SIDE EFFECTS =====
@@ -623,13 +623,13 @@ const UniformityForm = ({
Choose file to upload Choose file to upload
</span> </span>
<span className='text-xs font-light text-[#18181B80] text-center max-w-xs px-4'> <span className='text-xs font-light text-[#18181B80] text-center max-w-xs px-4'>
{projectFlockKandangLookup?.available_quantity {projectFlockKandangLookup?.population
? `Jumlah data yang dibutuhkan: ${formatNumber(Math.round(projectFlockKandangLookup.available_quantity * 0.02))} (2% dari ${formatNumber(projectFlockKandangLookup.available_quantity)} populasi).` ? `Jumlah data yang dibutuhkan: ${formatNumber(Math.round(projectFlockKandangLookup.population * 0.02))} (2% dari ${formatNumber(projectFlockKandangLookup.population)} populasi).`
: 'Upload data file (*.xlsx)'} : 'Upload data file (*.xlsx)'}
</span> </span>
</div> </div>
{projectFlockKandangLookup?.available_quantity && ( {projectFlockKandangLookup?.population && (
<> <>
<div className='flex items-center justify-center gap-2 py-4'> <div className='flex items-center justify-center gap-2 py-4'>
<div className='h-px bg-[#18181B33] w-8'></div> <div className='h-px bg-[#18181B33] w-8'></div>
+1
View File
@@ -69,6 +69,7 @@ export type ProjectFlockKandangLookup = {
project_flock: ProjectFlock; project_flock: ProjectFlock;
quantity: number; quantity: number;
available_quantity?: number; available_quantity?: number;
population: number;
}; };
export type ProjectFlockAvailableQuantity = { export type ProjectFlockAvailableQuantity = {