// @ts-nocheck import React from 'react'; import intl from 'react-intl-universal'; import { ErrorMessage, useFormikContext } from 'formik'; import { Classes, FormGroup, RadioGroup, Radio, InputGroup, Spinner, } from '@blueprintjs/core'; import classNames from 'classnames'; import { x } from '@xstyled/emotion'; import { FormattedMessage as T, If, FFormGroup, FSelect, FRadioGroup, FInputGroup } from '@/components'; import { handleStringChange } from '@/utils'; import { FieldRequiredHint } from '@/components'; import { CLASSES } from '@/constants/classes'; import allocateLandedCostType from '@/constants/allocateLandedCostType'; import AllocateLandedCostFormBody from './AllocateLandedCostFormBody'; import { allocateCostToEntries, resetAllocatedCostEntries, } from './utils'; import { useAllocateLandedConstDialogContext } from './AllocateLandedCostDialogProvider'; /** * Allocate landed cost form fields. */ export default function AllocateLandedCostFormFields() { // Allocated landed cost dialog. const { costTransactionEntries, landedCostTransactions, isLandedCostTransactionsLoading } = useAllocateLandedConstDialogContext(); const { values, setFieldValue, form } = useFormikContext(); // Handle transaction type select change. const handleTransactionTypeChange = (type) => { const { items } = values; setFieldValue('transaction_type', type.value); setFieldValue('transaction_id', ''); setFieldValue('transaction_entry_id', ''); setFieldValue('amount', ''); setFieldValue('items', resetAllocatedCostEntries(items)); }; // Handle transaction select change. const handleTransactionChange = (transaction) => { const { items } = values; setFieldValue('transaction_id', transaction.id); setFieldValue('transaction_entry_id', ''); setFieldValue('amount', ''); setFieldValue('items', resetAllocatedCostEntries(items)); }; // Handle transaction entry select change. const handleTransactionEntryChange = (entry) => { const { id, unallocated_cost_amount: unallocatedAmount } = entry; const { items, allocation_method } = values; setFieldValue('amount', unallocatedAmount); setFieldValue('transaction_entry_id', id); setFieldValue( 'items', allocateCostToEntries(unallocatedAmount, allocation_method, items), ); }; return (
{/*------------Transaction type -----------*/} } labelInfo={} inline fill fastField > {/*------------ Transaction -----------*/} } labelInfo={} inline fill > {isLandedCostTransactionsLoading && ( )} {/*------------ Transaction line -----------*/} 0}> } inline fill fastField > {/*------------ Amount -----------*/} } inline={true} fastField > { const amount = e.target.value; const { allocation_method, items } = values; setFieldValue( 'items', allocateCostToEntries(amount, allocation_method, items), ); }} /> {/*------------ Allocation method -----------*/} } medium inline fastField > { const { amount, items } = values; setFieldValue('allocation_method', _value); setFieldValue( 'items', allocateCostToEntries(amount, _value, items), ); })} inline={true} > } value="quantity" /> } value="value" /> {/*------------ Allocate Landed cost Table -----------*/}
); }