fix(FE): adjust sapronak calculation to closing detail page

This commit is contained in:
randy-ar
2025-12-08 10:24:41 +07:00
31 changed files with 2081 additions and 1585 deletions
+91
View File
@@ -0,0 +1,91 @@
import { Area } from '@/types/api/master-data/area';
import { Fcr } from '@/types/api/master-data/fcr';
import { Flock } from '@/types/api/master-data/flock';
import { Kandang } from '@/types/api/master-data/kandang';
import { Location } from '@/types/api/master-data/location';
import { BaseApproval, BaseMetadata } from '@/types/api/api-general';
export type BaseClosing = {
id: number;
location_id: number;
location_name: string;
project_category: 'GROWING' | 'LAYING';
period: number;
closing_date?: string;
shed_label: string;
shed_count: number;
sales_paid_amount: number;
sales_remaining_amount: number;
sales_payment_status: string;
project_status: 'Pengajuan' | 'Aktif' | 'Selesai';
};
export type Closing = BaseMetadata & BaseClosing;
export type BaseClosingGeneralInformation = BaseClosing & {
flock_id: number;
period: number;
project_type: 'GROWING' | 'LAYING';
population: number;
active_house_count: number;
sales_payment_status: string;
project_status: 'Pengajuan' | 'Aktif' | 'Selesai';
closing_status: string;
};
export type ClosingGeneralInformation = BaseMetadata &
BaseClosingGeneralInformation;
export type ClosingIncomingSapronak = {
id: number;
date: string;
reference_number: string;
transaction_type: string;
product_name: string;
product_category: string;
product_sub_category: string;
source_warehouse: string;
destination_warehouse: string;
quantity: number;
unit: string;
formatted_quantity: string;
notes: string;
};
export type ClosingOutgoingSapronak = ClosingIncomingSapronak;
// ====== PERHITUNGAN SAPRONAK ======
export type RowSapronakCalculation = {
id: number;
tanggal: string;
no_referensi: string;
qty_masuk: number;
qty_keluar: number;
qty_pakai: number;
uraian: string;
kategori_produk: string;
harga_beli_per_qty: number;
total_harga: number;
keterangan: string;
};
export type TotalSapronakCalculation = {
label: string;
qty_masuk: number;
qty_keluar: number;
qty_pakai: number;
harga_beli_per_qty: number;
total_harga: number;
};
export type ClosingSapronakCalculationItem = {
rows: RowSapronakCalculation[];
total: TotalSapronakCalculation;
};
export type ClosingSapronakCalculation = {
doc_broiler: ClosingSapronakCalculationItem;
ovk: ClosingSapronakCalculationItem;
pakan: ClosingSapronakCalculationItem;
};
-65
View File
@@ -1,65 +0,0 @@
import { BaseMetadata } from '@/types/api/api-general';
import { Product } from '@type/api/master-data/product';
import { Customer } from '@type/api/master-data/customer';
import { Kandang } from '@type/api/master-data/kandang';
export type BaseSales = {
id: number;
realization_date: string;
age: number;
do_number: string;
product: Product;
customer: Customer;
qty: number;
weight: number;
avg_weight: number;
price: number;
total_price: number;
kandang: Kandang;
payment_status: string;
};
export type BaseClosingSales = {
project_type: string;
flock_id: number;
period: number;
sales: BaseSales[];
};
export type ClosingSales = BaseMetadata & BaseClosingSales;
// ====== PERHITUNGAN SAPRONAK ======
export type RowSapronakCalculation = {
id: number;
tanggal: string;
no_referensi: string;
qty_masuk: number;
qty_keluar: number;
qty_pakai: number;
uraian: string;
kategori_produk: string;
harga_beli_per_qty: number;
total_harga: number;
keterangan: string;
};
export type TotalSapronakCalculation = {
label: string;
qty_masuk: number;
qty_keluar: number;
qty_pakai: number;
harga_beli_per_qty: number;
total_harga: number;
};
export type SapronakCalculationItem = {
rows: RowSapronakCalculation[];
total: TotalSapronakCalculation;
};
export type SapronakCalculation = {
doc_broiler: SapronakCalculationItem;
ovk: SapronakCalculationItem;
pakan: SapronakCalculationItem;
};