diff --git a/src/containers/Dialogs/MoneyInDialog/MoneyInDialogProvider.js b/src/containers/Dialogs/MoneyInDialog/MoneyInDialogProvider.js index 354fbfa25..d0535ec07 100644 --- a/src/containers/Dialogs/MoneyInDialog/MoneyInDialogProvider.js +++ b/src/containers/Dialogs/MoneyInDialog/MoneyInDialogProvider.js @@ -4,6 +4,7 @@ import { useCreateCashflowTransaction, useAccount, useAccounts, + useBranches, useCashflowAccounts, useSettingCashFlow, } from 'hooks/query'; @@ -28,6 +29,13 @@ function MoneyInDialogProvider({ enabled: !!accountId, }); + // Fetches the branches list. + const { + data: branches, + isLoading: isBranchesLoading, + isSuccess: isBranchesSuccess, + } = useBranches(); + // Fetch cash flow list . const { data: cashflowAccounts, isLoading: isCashFlowAccountsLoading } = useCashflowAccounts({}, { keepPreviousData: true }); @@ -49,9 +57,11 @@ function MoneyInDialogProvider({ const provider = { accounts, account, + branches, accountId, accountType, isAccountsLoading, + isBranchesSuccess, cashflowAccounts, @@ -66,7 +76,10 @@ function MoneyInDialogProvider({ return ( diff --git a/src/containers/Dialogs/MoneyInDialog/MoneyInForm.js b/src/containers/Dialogs/MoneyInDialog/MoneyInForm.js index 3a03ff2a0..a8f27aec5 100644 --- a/src/containers/Dialogs/MoneyInDialog/MoneyInForm.js +++ b/src/containers/Dialogs/MoneyInDialog/MoneyInForm.js @@ -30,6 +30,7 @@ const defaultInitialValues = { credit_account_id: '', currency_code: '', description: '', + branch_id: '', publish: '', }; diff --git a/src/containers/Dialogs/MoneyInDialog/MoneyInForm.schema.js b/src/containers/Dialogs/MoneyInDialog/MoneyInForm.schema.js index a3a498fd5..cd072f78c 100644 --- a/src/containers/Dialogs/MoneyInDialog/MoneyInForm.schema.js +++ b/src/containers/Dialogs/MoneyInDialog/MoneyInForm.schema.js @@ -10,11 +10,12 @@ const Schema = Yup.object().shape({ reference_no: Yup.string(), credit_account_id: Yup.number().required(), cashflow_account_id: Yup.string().required(), + branch_id: Yup.string(), description: Yup.string() .min(3) .max(DATATYPES_LENGTH.TEXT) .label(intl.get('description')), - publish: Yup.boolean(), + publish: Yup.boolean(), }); export const CreateMoneyInFormSchema = Schema; diff --git a/src/containers/Dialogs/MoneyInDialog/OwnerContribution/OwnerContributionFormFields.js b/src/containers/Dialogs/MoneyInDialog/OwnerContribution/OwnerContributionFormFields.js index c1aad511d..f2d9105fe 100644 --- a/src/containers/Dialogs/MoneyInDialog/OwnerContribution/OwnerContributionFormFields.js +++ b/src/containers/Dialogs/MoneyInDialog/OwnerContribution/OwnerContributionFormFields.js @@ -7,7 +7,9 @@ import { TextArea, Position, ControlGroup, + Button, } from '@blueprintjs/core'; +import styled from 'styled-components'; import classNames from 'classnames'; import { FormattedMessage as T, @@ -21,6 +23,8 @@ import { If, InputPrependButton, ExchangeRateInputGroup, + BranchSelect, + FeatureCan, } from 'components'; import { DateInput } from '@blueprintjs/datetime'; import { useAutofocus } from 'hooks'; @@ -32,9 +36,13 @@ import { handleDateChange, compose, } from 'utils'; +import { Features } from 'common'; import { CLASSES } from 'common/classes'; import { useMoneyInDailogContext } from '../MoneyInDialogProvider'; -import { useObserveTransactionNoSettings } from '../utils'; +import { + useObserveTransactionNoSettings, + useSetPrimaryBranchToForm, +} from '../utils'; import withSettings from 'containers/Settings/withSettings'; import withDialogActions from 'containers/Dialog/withDialogActions'; @@ -52,7 +60,8 @@ function OwnerContributionFormFields({ transactionNextNumber, }) { // Money in dialog context. - const { accounts, account, isForeignCurrency } = useMoneyInDailogContext(); + const { accounts, account, branches, isForeignCurrency } = + useMoneyInDailogContext(); const { values } = useFormikContext(); @@ -83,8 +92,28 @@ function OwnerContributionFormFields({ transactionNextNumber, ); + // Sets the primary branch to form. + useSetPrimaryBranchToForm(); + return ( + + + + } + className={classNames('form-group--select-list', Classes.FILL)} + > + + + + + {/*------------ Date -----------*/} @@ -184,7 +213,6 @@ function OwnerContributionFormFields({ )} - {/*------------ exchange rate -----------*/} {/* {/* */} - {/*------------ equity account -----------*/} @@ -246,7 +273,6 @@ function OwnerContributionFormFields({ - {/*------------ description -----------*/} {({ field, meta: { error, touched } }) => ( @@ -277,3 +303,12 @@ export default compose( transactionNumberPrefix: cashflowSetting?.numberPrefix, })), )(OwnerContributionFormFields); + +function BranchSelectButton({ label }) { + return