mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
Merge branch 'fix/adjustment-closing-tab-and-finance-report' into 'development'
[FIX/FE] Adjustment Finance Report (Kontrol Pembayaran Customer) See merge request mbugroup/lti-web-client!161
This commit is contained in:
@@ -48,6 +48,13 @@ const ExpenseRealizationContent = ({
|
|||||||
|
|
||||||
const realizationDocumentsChangeHandler = (val: File[]) => {
|
const realizationDocumentsChangeHandler = (val: File[]) => {
|
||||||
formik.setFieldTouched('documents', true);
|
formik.setFieldTouched('documents', true);
|
||||||
|
|
||||||
|
const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024);
|
||||||
|
if (invalidFiles.length > 0) {
|
||||||
|
toast.error('Ukuran dokumen maksimal 5 MB!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
formik.setFieldValue('documents', val);
|
formik.setFieldValue('documents', val);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -251,6 +251,13 @@ const ExpenseRequestContent = ({
|
|||||||
|
|
||||||
const requestDocumentsChangeHandler = (val: File[]) => {
|
const requestDocumentsChangeHandler = (val: File[]) => {
|
||||||
formik.setFieldTouched('documents', true);
|
formik.setFieldTouched('documents', true);
|
||||||
|
|
||||||
|
const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024);
|
||||||
|
if (invalidFiles.length > 0) {
|
||||||
|
toast.error('Ukuran dokumen maksimal 5 MB!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
formik.setFieldValue('documents', val);
|
formik.setFieldValue('documents', val);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ const ExpenseStatusBadge = ({ approval }: ExpenseStatusBadgeProps) => {
|
|||||||
case 5:
|
case 5:
|
||||||
expenseStatusPillBadgeColor = 'green';
|
expenseStatusPillBadgeColor = 'green';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
expenseStatusPillBadgeColor = 'green';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isLatestApprovalRejected) {
|
if (isLatestApprovalRejected) {
|
||||||
|
|||||||
@@ -223,6 +223,13 @@ const ExpenseRealizationForm = ({
|
|||||||
|
|
||||||
const realizationDocumentsChangeHandler = (val: File[]) => {
|
const realizationDocumentsChangeHandler = (val: File[]) => {
|
||||||
formik.setFieldTouched('documents', true);
|
formik.setFieldTouched('documents', true);
|
||||||
|
|
||||||
|
const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024);
|
||||||
|
if (invalidFiles.length > 0) {
|
||||||
|
toast.error('Ukuran dokumen maksimal 5 MB!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
formik.setFieldValue('documents', val);
|
formik.setFieldValue('documents', val);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -161,10 +161,7 @@ const createPDFDocument = (params: CustomerPaymentExportPDFParams) => {
|
|||||||
{customerReport.customer.name}
|
{customerReport.customer.name}
|
||||||
</Text>
|
</Text>
|
||||||
<Text style={pdfStyles.supplierInfo}>
|
<Text style={pdfStyles.supplierInfo}>
|
||||||
{customerReport.customer_address || ''}
|
{customerReport.customer.address || ''}
|
||||||
</Text>
|
|
||||||
<Text style={pdfStyles.supplierInfo}>
|
|
||||||
NPWP: {customerReport.customer_npwp || '-'}
|
|
||||||
</Text>
|
</Text>
|
||||||
{customerReport.summary && (
|
{customerReport.summary && (
|
||||||
<Text style={pdfStyles.supplierInfo}>
|
<Text style={pdfStyles.supplierInfo}>
|
||||||
@@ -266,7 +263,9 @@ const createPDFDocument = (params: CustomerPaymentExportPDFParams) => {
|
|||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View style={[pdfStyles.tableCellCenter, { flex: 0.8 }]}>
|
<View style={[pdfStyles.tableCellCenter, { flex: 0.8 }]}>
|
||||||
<Text>{formatNumber(item.aging)} hari</Text>
|
<Text>
|
||||||
|
{item.aging_day ? formatNumber(item.aging_day) : '-'} hari
|
||||||
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View style={[pdfStyles.tableCell, { flex: 1 }]}>
|
<View style={[pdfStyles.tableCell, { flex: 1 }]}>
|
||||||
<Text>{item.reference || '-'}</Text>
|
<Text>{item.reference || '-'}</Text>
|
||||||
|
|||||||
@@ -30,9 +30,11 @@ export const generateCustomerPaymentExcel = (
|
|||||||
'Tanggal Realisasi': item.realization_date
|
'Tanggal Realisasi': item.realization_date
|
||||||
? formatDate(item.realization_date, 'DD MMM YYYY')
|
? formatDate(item.realization_date, 'DD MMM YYYY')
|
||||||
: '',
|
: '',
|
||||||
Aging: formatNumber(item.aging || 0),
|
Aging: formatNumber(item.aging_day || 0),
|
||||||
Referensi: item.reference || '',
|
Referensi: item.reference || '',
|
||||||
'Nomor Polisi': item.vehicle_plate || '',
|
'Nomor Polisi': Array.isArray(item.vehicle_plate)
|
||||||
|
? item.vehicle_plate.join(', ')
|
||||||
|
: '',
|
||||||
'Ekor/Qty': formatNumber(item.qty || 0),
|
'Ekor/Qty': formatNumber(item.qty || 0),
|
||||||
'Berat (Kg)': formatNumber(item.weight || 0),
|
'Berat (Kg)': formatNumber(item.weight || 0),
|
||||||
AVG: formatNumber(item.average_weight || 0),
|
AVG: formatNumber(item.average_weight || 0),
|
||||||
|
|||||||
@@ -279,10 +279,14 @@ const CustomerPaymentTab = () => {
|
|||||||
{
|
{
|
||||||
id: 'aging',
|
id: 'aging',
|
||||||
header: 'Aging',
|
header: 'Aging',
|
||||||
accessorKey: 'aging',
|
accessorKey: 'aging_day',
|
||||||
cell: (props) => {
|
cell: (props) => {
|
||||||
const value = props.row.original.aging;
|
const value = props.row.original.aging_day;
|
||||||
return <div className='text-center'>{formatNumber(value)} hari</div>;
|
return (
|
||||||
|
<div className='text-center'>
|
||||||
|
{value ? formatNumber(value) : '-'} hari
|
||||||
|
</div>
|
||||||
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -662,7 +666,7 @@ const CustomerPaymentTab = () => {
|
|||||||
<Card
|
<Card
|
||||||
key={customerReport.customer.id}
|
key={customerReport.customer.id}
|
||||||
title={customerReport.customer.name}
|
title={customerReport.customer.name}
|
||||||
subtitle={`NPWP: ${customerReport.customer_npwp || '-'} | ${customerReport.customer_address || ''}\nSaldo Piutang: ${formatCurrency(totalAccountsReceivable)}`}
|
subtitle={`${customerReport.customer.address || ''}\nSaldo Piutang: ${formatCurrency(totalAccountsReceivable)}`}
|
||||||
className={{ wrapper: 'w-full' }}
|
className={{ wrapper: 'w-full' }}
|
||||||
variant='bordered'
|
variant='bordered'
|
||||||
collapsible={true}
|
collapsible={true}
|
||||||
|
|||||||
@@ -63,4 +63,8 @@ export class FinanceApiService extends BaseApiService<
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const FinanceApi = new FinanceApiService('reports');
|
// export const FinanceApi = new FinanceApiService('reports');
|
||||||
|
|
||||||
|
export const FinanceApi = new FinanceApiService(
|
||||||
|
'http://localhost:4010/api/reports/finance'
|
||||||
|
);
|
||||||
|
|||||||
+4
-9
@@ -1,15 +1,13 @@
|
|||||||
import { BaseMetadata } from '@/types/api/api-general';
|
|
||||||
import { BaseCustomer } from '@/types/api/master-data/customer';
|
import { BaseCustomer } from '@/types/api/master-data/customer';
|
||||||
import { BaseProduct } from '@/types/api/master-data/product';
|
import { BaseMetadata } from '@/types/api/api-general';
|
||||||
|
|
||||||
export type CustomerPaymentRow = {
|
export type CustomerPaymentRow = {
|
||||||
no: number;
|
id: number;
|
||||||
do_date: string;
|
do_date: string;
|
||||||
payment_date: string;
|
|
||||||
realization_date: string;
|
realization_date: string;
|
||||||
aging: number;
|
aging_day: number | null;
|
||||||
reference: string;
|
reference: string;
|
||||||
vehicle_plate: string;
|
vehicle_plate: string[];
|
||||||
qty: number;
|
qty: number;
|
||||||
weight: number;
|
weight: number;
|
||||||
average_weight: number;
|
average_weight: number;
|
||||||
@@ -23,7 +21,6 @@ export type CustomerPaymentRow = {
|
|||||||
notes: string;
|
notes: string;
|
||||||
pickup_info: string;
|
pickup_info: string;
|
||||||
sales_marketing: string;
|
sales_marketing: string;
|
||||||
product?: BaseProduct;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type CustomerPaymentSummary = {
|
export type CustomerPaymentSummary = {
|
||||||
@@ -40,8 +37,6 @@ export type CustomerPaymentSummary = {
|
|||||||
|
|
||||||
export type CustomerPaymentReport = BaseMetadata & {
|
export type CustomerPaymentReport = BaseMetadata & {
|
||||||
customer: BaseCustomer;
|
customer: BaseCustomer;
|
||||||
customer_npwp: string;
|
|
||||||
customer_address: string;
|
|
||||||
rows: CustomerPaymentRow[];
|
rows: CustomerPaymentRow[];
|
||||||
summary: CustomerPaymentSummary;
|
summary: CustomerPaymentSummary;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user