Merge branch 'development' into feat/FE/US-164/TASK-200-204-205-206-207-expense-realization

This commit is contained in:
ValdiANS
2025-11-25 10:55:52 +07:00
86 changed files with 11655 additions and 5334 deletions
-2
View File
@@ -71,5 +71,3 @@ export type CreateMovementPayload = {
}[];
}[];
};
export type UpdateMovementPayload = CreateMovementPayload;
+86 -18
View File
@@ -6,19 +6,55 @@ import {
} from '@/types/api/api-general';
import { ProductWarehouse } from '@/types/api/inventory/product-warehouse';
import { Kandang } from '@/types/api/master-data/kandang';
import { id } from 'react-day-picker/locale';
import { Warehouse } from '../master-data/warehouse';
/**
* Base Data Response
*/
export type BaseMarketing = {
id: number;
status?: string;
so_number: string;
customer: Customer;
so_docs: string;
so_date: string;
customer: Customer;
sales_person: CreatedUser;
notes: string;
grand_total: number;
approval: BaseApproval;
marketing_products?: MarketingProduct[];
latest_approval: BaseApproval;
sales_order: BaseSalesOrder[];
delivery_order: BaseDeliveryOrder[];
};
export type BaseSalesOrder = {
id: number;
marketing_id: number;
product_warehouse_id: number;
qty: number;
unit_price: number;
avg_weight: number;
total_weight: number;
total_price: number;
product_warehouse: ProductWarehouse;
vehicle_number: string;
};
export type BaseDeliveryOrder = {
id: number;
marketing_id: number;
do_number: string;
delivery_date: string;
warehouse: Warehouse;
deliveries: BaseDelivery[];
};
export type BaseDelivery = {
product_warehouse: ProductWarehouse;
qty: number;
unit_price: number;
total_weight: number;
avg_weight: number;
total_price: number;
vehicle_number: string;
};
export type MarketingProduct = {
@@ -29,7 +65,7 @@ export type MarketingProduct = {
total_weight: number;
total_price: number;
product_warehouse: ProductWarehouse;
marketing_delivery_products?: MarketingDeliveryProducts;
delivery_product?: MarketingDeliveryProducts;
};
export type MarketingDeliveryProducts = {
@@ -39,34 +75,66 @@ export type MarketingDeliveryProducts = {
avg_weight: number;
total_weight: number;
total_price: number;
delivery_date: string;
delivery_date: string | null;
vehicle_number: string;
do_number?: string | undefined;
do_number?: string | undefined; // Uncertain
};
export type Marketing = BaseMetadata & BaseMarketing;
export type CreateMarketingPayload = {
/**
* Base Data Payload
*/
export type BaseCreateMarketingPayload = {
customer_id: number;
sales_person_id: number;
date: string;
notes: string;
marketing_products: CreateMarketingProductPayload[];
};
export type UpdateMarketingPayload = CreateMarketingPayload;
export type CreateMarketingProductPayload = {
id?: number;
export type BaseCreateMarketingProductPayload = {
vehicle_number: string;
kandang_id: string | number | undefined;
kandang: Kandang | undefined;
product_warehouse_id: string | number | undefined;
product_warehouse: ProductWarehouse | undefined;
unit_price: string | number | undefined;
total_weight: string | number | undefined;
qty: string | number | undefined;
uom: string | undefined;
avg_weight: string | number | undefined;
total_price: string | number | undefined;
delivery_date?: string | null;
};
export type UpdateMarketingProductPayload = CreateMarketingProductPayload;
/**
* Payload Data Types Sales Order
*/
export type CreateSalesOrderPayload = BaseCreateMarketingPayload & {
marketing_products: CreateSalesOrderProductPayload[];
};
export type CreateSalesOrderProductPayload =
BaseCreateMarketingProductPayload & {
id?: number;
kandang?: Kandang | undefined;
product_warehouse?: ProductWarehouse | undefined;
};
export type CreateDeliveryOrderPayload = {
marketing_id?: number;
delivery_products: CreateDeliveryOrderProductPayload[];
};
export type CreateDeliveryOrderProductPayload =
BaseCreateMarketingProductPayload & {
id?: number;
marketing_product_id: number;
delivery_date: string;
};
export type UpdateSalesOrderProductPayload = CreateSalesOrderProductPayload;
export type UpdateDeliveryOrderProductPayload =
CreateDeliveryOrderProductPayload;
export type UpdateSalesOrderPayload = CreateSalesOrderPayload;
export type UpdateDeliveryOrderPayload = CreateDeliveryOrderPayload;
+18 -6
View File
@@ -7,12 +7,9 @@ import { BaseApproval, BaseMetadata } from '@/types/api/api-general';
export type BaseProjectFlock = {
id: number;
name: string;
flock_name: string;
name?: string;
flock_name?: string;
status: string;
flock?: Flock;
flock_i?: number;
flock_name: string;
area: Area;
area_id: number;
category: string;
@@ -41,7 +38,6 @@ export type CreateProjectFlockPayload = {
category: string;
fcr_id: number;
location_id: number;
period: number;
kandang_ids: number[];
};
@@ -52,6 +48,16 @@ export type ProjectFlockApprovalPayload = {
approvable_ids: number[];
};
export type ProjectFlockKandangLookup = {
id: number;
project_flock_kandang_id: number;
project_flock_id: number;
kandang_id: number;
kandang: Kandang;
project_flock: ProjectFlock;
quantity: number;
};
export type ProjectFlockAvailableQuantity = {
project_flock_id: number;
flock_name: string;
@@ -61,3 +67,9 @@ export type ProjectFlockAvailableQuantity = {
available_qty: number;
}[];
};
export type ProjectFlockPeriods = {
id: number;
name: string;
period: number;
}[];
+134 -48
View File
@@ -1,61 +1,147 @@
import { BaseMetadata } from '@/types/api/api-general';
import { Location } from '@/types/api/master-data/location';
import { Kandang } from '@/types/api/master-data/kandang';
import { Flock } from '@/types/api/master-data/flock';
import { BaseApproval, BaseMetadata, User } from '@/types/api/api-general';
import { ProductWarehouse } from '@/types/api/inventory/product-warehouse';
export type ProductionMetrics = {
total_depletion_qty: number;
cum_depletion_rate: number;
daily_gain: number;
avg_daily_gain: number;
cum_intake: number;
fcr_value: number;
total_chick_qty: number;
daily_depletion_rate?: number;
cum_depletion?: number;
};
export type BaseRecording = {
id: number;
flock: Flock;
recording_date: string;
location: Location;
coop: Kandang;
feed_data: {
feed_name: string;
feed_qty: number;
feed_stock: number;
}[];
body_weight: {
chicken_weight: number;
chicken_count: number;
average_chicken_weight: number;
}[];
vaccination: {
vaccine_name: string;
total_stock: number;
used_stock: number;
}[];
mortality: {
condition: string;
count: number;
project_flock_kandang_id: number;
record_datetime: string;
day: number;
created_by: User;
} & ProductionMetrics;
export type RecordingBW = {
id: number;
recording_id: number;
avg_weight: number;
qty: number;
total_weight: number;
};
export type RecordingDepletion = {
id: number;
recording_id: number;
product_warehouse_id: number;
qty: number;
product_warehouse: ProductWarehouse;
};
export type RecordingStock = {
id: number;
recording_id: number;
product_warehouse_id: number;
usage_amount?: number;
usage_qty: number;
qty: number;
pending_qty: number;
product_warehouse: ProductWarehouse;
};
export type RecordingEgg = {
id: number;
recording_id: number;
product_warehouse_id: number;
qty: number;
created_by: User;
product_warehouse: ProductWarehouse;
gradings?: {
grade: string;
qty: number;
}[];
};
export type Recording = BaseMetadata & BaseRecording;
export type GradingEgg = {
id: number;
recording_egg_id: number;
qty: number;
grade: string;
created_by: User;
};
export type CreateRecordingPayload = {
flock_id: number;
recording_date: string;
location_id: number;
coop_id: number;
feed_data: {
feed_id: string;
feed_qty: number;
feed_stock: number;
export type Recording = BaseMetadata &
BaseRecording & {
project_flock_category?: 'GROWING' | 'LAYING';
approval?: BaseApproval;
egg_grading_status?: string | null;
egg_grading_pending_qty?: number | null;
egg_grading_completed_qty?: number | null;
body_weights?: RecordingBW[];
depletions?: RecordingDepletion[];
stocks?: RecordingStock[];
eggs?: RecordingEgg[];
recording_bws?: RecordingBW[];
recording_depletions?: RecordingDepletion[];
recording_stocks?: RecordingStock[];
recording_eggs?: RecordingEgg[];
grading_eggs?: GradingEgg[];
};
export type NextDayRecording = {
project_flock_kandang_id: number;
next_day: number;
};
export type CreateGrowingRecordingPayload = {
project_flock_kandang_id: number;
body_weights: {
avg_weight: number;
qty: number;
}[];
body_weight: {
chicken_weight: number;
chicken_count: number;
average_chicken_weight: number;
stocks?: {
product_warehouse_id: number;
qty: number;
}[];
vaccination: {
vaccine_id: string;
total_stock: number;
used_stock: number;
}[];
mortality: {
condition: string;
count: number;
depletions?: {
product_warehouse_id: number;
qty: number;
}[];
};
export type CreateGradingPayload = {
eggs_grading: {
recording_egg_id: number;
grade: string;
qty: number;
}[];
};
export type UpdateGradingPayload = CreateGradingPayload;
export type CreateGradingRecordingPayload = {
eggs_grading: {
recording_egg_id: number;
grade: string;
qty: number;
}[];
};
export type CreateEggPayload = {
product_warehouse_id: number;
qty: number;
};
export type CreateLayingRecordingPayload = CreateGrowingRecordingPayload & {
eggs?: CreateEggPayload[];
};
export type CreateRecordingPayload =
| CreateGrowingRecordingPayload
| CreateLayingRecordingPayload
| CreateGradingRecordingPayload;
export type UpdateGrowingRecordingPayload = CreateGrowingRecordingPayload;
export type UpdateLayingRecordingPayload = CreateLayingRecordingPayload;
export type UpdateGradingRecordingPayload = CreateGradingRecordingPayload;
export type UpdateRecordingPayload = CreateRecordingPayload;