Files
nice-app-web/src/entities/transaction/ui/all-transaction-part-cancel.tsx
2025-10-27 11:30:02 +09:00

182 lines
6.4 KiB
TypeScript

import { IMAGE_ROOT } from '@/shared/constants/common';
import { AllTransactionCancelInfoResponse } from '../model/types';
import { NumericFormat } from 'react-number-format';
import { AllTransactionCancelSectionPasswordGroup } from './section/all-transaction-cancel-section-password-group';
import { AllTransactionCancelSectionBankGroup } from './section/all-transaction-cancel-section-bank-group';
import { BankCode } from '@/shared/@types/banking-code';
import { ChangeEvent, useEffect, useState } from 'react';
export interface AllTransactionPartCancelProps extends AllTransactionCancelInfoResponse {
serviceCode: string;
cancelPassword: string;
setCancelPassword: (cancelPassword: string) => void;
bankCode?: string;
setBankCode?: (BankCode: string) => void;
accountNo?: string;
setAccountNo?: (accountNo: string) => void;
accountHolder?: string;
setAccountHolder?: (accountHolder: string) => void;
cancelSupplyAmount: number;
setCancelSupplyAmount: (cancelSupplyAmount: number) => void;
cancelGoodsVat: number;
setCancelGoodsVat: (cancelGoodsVat: number) => void;
cancelTaxFreeAmount: number;
setCancelTaxFreeAmount: (cancelTaxFreeAmount: number) => void;
cancelServiceAmount: number;
setCancelServiceAmount: (cancelServiceAmount: number) => void;
};
export const AllTransactionPartCancel = ({
serviceCode,
debtPreventionCancelDisplayInfo,
debtPreventionCancelRequestInfo,
goodsVat,
isCompoundTax,
isConditionalVatAutoCalcMerchant,
isNpg,
isVatAutoCalcMerchant,
isVatDisplayed,
partCancelCl,
remainAmount,
serviceAmount,
supplyAmount,
taxFreeAmount,
vatAutoCalcSummary,
cancelPassword,
setCancelPassword,
bankCode,
setBankCode,
accountNo,
setAccountNo,
accountHolder,
setAccountHolder,
cancelSupplyAmount,
setCancelSupplyAmount,
cancelGoodsVat,
setCancelGoodsVat,
cancelTaxFreeAmount,
setCancelTaxFreeAmount,
cancelServiceAmount,
setCancelServiceAmount
}: AllTransactionPartCancelProps) => {
return (
<>
{ !!isCompoundTax &&
<div className="tb_both">
<table className="partial-cancel-table">
<colgroup>
<col width="30%" />
<col width="30%" />
<col width="40%" />
</colgroup>
<thead>
<tr>
<th className="header-empty"></th>
<th className="header-balance"></th>
<th className="header-cancel"></th>
</tr>
</thead>
<tbody>
<tr>
<td className="row-label"></td>
<td className="row-balance">
<NumericFormat
value={ supplyAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</td>
<td className="row-cancel">
<NumericFormat
className="cancel-input"
value={ cancelSupplyAmount }
allowNegative={ false }
displayType="input"
onChange={(e: ChangeEvent<HTMLInputElement>) => setCancelServiceAmount(parseInt(e.target.value)) }
></NumericFormat>
</td>
</tr>
<tr>
<td className="row-label"></td>
<td className="row-balance">
<NumericFormat
value={ goodsVat }
thousandSeparator
displayType="text"
></NumericFormat>
</td>
<td className="row-cancel">
<NumericFormat
className="cancel-input"
value={ cancelGoodsVat }
allowNegative={ false }
displayType="input"
onChange={(e: ChangeEvent<HTMLInputElement>) => setCancelGoodsVat(parseInt(e.target.value)) }
></NumericFormat>
</td>
</tr>
<tr>
<td className="row-label"></td>
<td className="row-balance">
<NumericFormat
value={ taxFreeAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</td>
<td className="row-cancel">
<NumericFormat
className="cancel-input"
value={ cancelTaxFreeAmount }
allowNegative={ false }
displayType="input"
onChange={(e: ChangeEvent<HTMLInputElement>) => setCancelTaxFreeAmount(parseInt(e.target.value)) }
></NumericFormat>
</td>
</tr>
<tr>
<td className="row-label"></td>
<td className="row-balance">
<NumericFormat
value={ serviceAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</td>
<td className="row-cancel">
<NumericFormat
className="cancel-input"
value={ cancelServiceAmount }
allowNegative={ false }
displayType="input"
onChange={(e: ChangeEvent<HTMLInputElement>) => setCancelServiceAmount(parseInt(e.target.value)) }
></NumericFormat>
</td>
</tr>
</tbody>
</table>
</div>
}
<div className="form-section">
<AllTransactionCancelSectionPasswordGroup
cancelPassword={ cancelPassword }
setCancelPassword={ setCancelPassword }
></AllTransactionCancelSectionPasswordGroup>
{ serviceCode === '03' &&
<AllTransactionCancelSectionBankGroup
bankCode={ bankCode }
setBankCode={ setBankCode }
accountNo={ accountNo }
setAccountNo={ setAccountNo }
accountHolder={ accountHolder }
setAccountHolder={ setAccountHolder }
></AllTransactionCancelSectionBankGroup>
}
</div>
</>
);
};