feat(FE): Fetch sales from UserApi and use sales_id param

This commit is contained in:
rstubryan
2026-01-14 11:35:10 +07:00
parent 53277b5893
commit d28fa77405
2 changed files with 15 additions and 17 deletions
@@ -11,6 +11,7 @@ import SelectInputCheckbox from '@/components/input/SelectInputCheckbox';
import DateInput from '@/components/input/DateInput'; import DateInput from '@/components/input/DateInput';
import { CustomerApi } from '@/services/api/master-data'; import { CustomerApi } from '@/services/api/master-data';
import { FinanceApi } from '@/services/api/report/finance-report'; import { FinanceApi } from '@/services/api/report/finance-report';
import { UserApi } from '@/services/api/user';
import Table from '@/components/Table'; import Table from '@/components/Table';
import { ColumnDef } from '@tanstack/react-table'; import { ColumnDef } from '@tanstack/react-table';
import { formatCurrency, formatDate, formatNumber } from '@/lib/helper'; import { formatCurrency, formatDate, formatNumber } from '@/lib/helper';
@@ -46,7 +47,7 @@ const CustomerPaymentTab = () => {
const [filterCustomer, setFilterCustomer] = useState<typeof customerOptions>( const [filterCustomer, setFilterCustomer] = useState<typeof customerOptions>(
[] []
); );
const [filterSales, setFilterSales] = useState<OptionType[]>([]); const [filterSales, setFilterSales] = useState<typeof salesOptions>([]);
const [filterStartDate, setFilterStartDate] = useState(''); const [filterStartDate, setFilterStartDate] = useState('');
const [filterEndDate, setFilterEndDate] = useState(''); const [filterEndDate, setFilterEndDate] = useState('');
@@ -55,14 +56,11 @@ const CustomerPaymentTab = () => {
const { options: customerOptions, isLoadingOptions: isLoadingCustomers } = const { options: customerOptions, isLoadingOptions: isLoadingCustomers } =
useSelect(CustomerApi.basePath, 'id', 'name', 'search'); useSelect(CustomerApi.basePath, 'id', 'name', 'search');
const salesOptions = useMemo( const { options: salesOptions, isLoadingOptions: isLoadingSales } = useSelect(
() => [ UserApi.basePath,
{ value: 'Sales A', label: 'Sales A' }, 'id',
{ value: 'Sales B', label: 'Sales B' }, 'name',
{ value: 'Sales C', label: 'Sales C' }, 'search'
// TODO: Fetch sales options from API
],
[]
); );
const dataTypeOptions = useMemo( const dataTypeOptions = useMemo(
@@ -161,7 +159,7 @@ const CustomerPaymentTab = () => {
filterCustomer.length > 0 filterCustomer.length > 0
? filterCustomer.map((v) => String(v.value)).join(',') ? filterCustomer.map((v) => String(v.value)).join(',')
: undefined, : undefined,
sales: sales_id:
filterSales.length > 0 filterSales.length > 0
? filterSales.map((v) => String(v.value)).join(',') ? filterSales.map((v) => String(v.value)).join(',')
: undefined, : undefined,
@@ -178,7 +176,7 @@ const CustomerPaymentTab = () => {
([, params]) => ([, params]) =>
FinanceApi.getCustomerPaymentReport( FinanceApi.getCustomerPaymentReport(
params.customer_id, params.customer_id,
params.sales, params.sales_id,
params.filter_by, params.filter_by,
params.start_date, params.start_date,
params.end_date, params.end_date,
@@ -204,7 +202,7 @@ const CustomerPaymentTab = () => {
filterCustomer.length > 0 filterCustomer.length > 0
? filterCustomer.map((v) => String(v.value)).join(',') ? filterCustomer.map((v) => String(v.value)).join(',')
: undefined, : undefined,
sales: sales_id:
filterSales.length > 0 filterSales.length > 0
? filterSales.map((v) => String(v.value)).join(',') ? filterSales.map((v) => String(v.value)).join(',')
: undefined, : undefined,
@@ -217,7 +215,7 @@ const CustomerPaymentTab = () => {
const response = await FinanceApi.getCustomerPaymentReport( const response = await FinanceApi.getCustomerPaymentReport(
params.customer_id, params.customer_id,
params.sales, params.sales_id,
params.filter_by, params.filter_by,
params.start_date, params.start_date,
params.end_date, params.end_date,
@@ -659,15 +657,15 @@ const CustomerPaymentTab = () => {
</div> </div>
<div> <div>
<SelectInput <SelectInputCheckbox
label='Sales' label='Sales'
placeholder='Pilih Sales' placeholder='Pilih Sales'
isMulti
options={salesOptions} options={salesOptions}
value={filterSales} value={filterSales}
onChange={(val) => { onChange={(val) => {
setFilterSales(Array.isArray(val) ? val : val ? [val] : []); setFilterSales(Array.isArray(val) ? val : val ? [val] : []);
}} }}
isLoading={isLoadingSales}
isClearable isClearable
className={{ wrapper: 'w-full' }} className={{ wrapper: 'w-full' }}
/> />
+2 -2
View File
@@ -14,7 +14,7 @@ export class FinanceApiService extends BaseApiService<
async getCustomerPaymentReport( async getCustomerPaymentReport(
customer_id?: string, customer_id?: string,
sales?: string, sales_id?: string,
filter_by?: 'do_date', filter_by?: 'do_date',
start_date?: string, start_date?: string,
end_date?: string, end_date?: string,
@@ -27,7 +27,7 @@ export class FinanceApiService extends BaseApiService<
method: 'GET', method: 'GET',
params: { params: {
customer_id: customer_id, customer_id: customer_id,
sales: sales, sales_id: sales_id,
filter_by: filter_by, filter_by: filter_by,
start_date: start_date, start_date: start_date,
end_date: end_date, end_date: end_date,