diff --git a/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesForm.tsx b/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesForm.tsx
index f98d6af97..205d4c0b4 100644
--- a/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesForm.tsx
+++ b/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesForm.tsx
@@ -71,6 +71,8 @@ function MakeJournalEntriesForm({
}
: {
...defaultManualJournal,
+ // If the auto-increment mode is enabled, take the next journal
+ // number from the settings.
...(journalAutoIncrement && {
journal_number: journalNumber,
}),
@@ -127,7 +129,6 @@ function MakeJournalEntriesForm({
transformErrors(errors, { setErrors });
setSubmitting(false);
};
-
// Handle the request success.
const handleSuccess = (errors) => {
AppToaster.show({
diff --git a/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesHeaderFields.tsx b/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesHeaderFields.tsx
index 82eb9d505..ae9c18f2e 100644
--- a/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesHeaderFields.tsx
+++ b/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalEntriesHeaderFields.tsx
@@ -27,6 +27,7 @@ import {
CurrencySelectList,
FormattedMessage as T,
FInputGroup,
+ FFormGroup,
} from '@/components';
import { useMakeJournalFormContext } from './MakeJournalProvider';
import { JournalExchangeRateInputField } from './components';
@@ -74,7 +75,7 @@ const MakeJournalTransactionNoField = R.compose(
};
return (
- }
labelInfo={
@@ -91,10 +92,10 @@ const MakeJournalTransactionNoField = R.compose(
{}}
/>
-
+
);
},
);
diff --git a/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalFormDialogs.tsx b/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalFormDialogs.tsx
index 6a8123d86..197ce96dd 100644
--- a/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalFormDialogs.tsx
+++ b/packages/webapp/src/containers/Accounting/MakeJournal/MakeJournalFormDialogs.tsx
@@ -11,8 +11,14 @@ export default function MakeJournalFormDialogs() {
// Update the form once the journal number form submit confirm.
const handleConfirm = (settings) => {
+ // Set the invoice transaction no. that cames from dialog to the form.
+ // the `journal_number` will be empty except the increment mode is not auto.
setFieldValue('journal_number', settings.transactionNumber);
- setFieldValue('journal_number_manually', settings.transactionNumber);
+ setFieldValue('journal_number_manually', '');
+
+ if (settings.incrementMode !== 'auto') {
+ setFieldValue('journal_number_manually', settings.transactionNumber);
+ }
};
return (
diff --git a/packages/webapp/src/containers/Accounting/MakeJournal/components.tsx b/packages/webapp/src/containers/Accounting/MakeJournal/components.tsx
index 07b985230..c413d74b1 100644
--- a/packages/webapp/src/containers/Accounting/MakeJournal/components.tsx
+++ b/packages/webapp/src/containers/Accounting/MakeJournal/components.tsx
@@ -218,10 +218,13 @@ export const JournalSyncIncrementSettingsToForm = R.compose(
const { setFieldValue } = useFormikContext();
useUpdateEffect(() => {
+ // Do not update if the journal auto-increment mode is disabled.
if (!journalAutoIncrement) return null;
- const journalNo = transactionNumber(journalNumberPrefix, journalNextNumber);
- setFieldValue('journal_number', journalNo);
+ setFieldValue(
+ 'journal_number',
+ transactionNumber(journalNumberPrefix, journalNextNumber),
+ );
}, [
setFieldValue,
journalNumberPrefix,
diff --git a/packages/webapp/src/containers/Accounting/MakeJournal/utils.tsx b/packages/webapp/src/containers/Accounting/MakeJournal/utils.tsx
index 61fd41208..8e42a6630 100644
--- a/packages/webapp/src/containers/Accounting/MakeJournal/utils.tsx
+++ b/packages/webapp/src/containers/Accounting/MakeJournal/utils.tsx
@@ -6,7 +6,6 @@ import intl from 'react-intl-universal';
import { Intent } from '@blueprintjs/core';
import { sumBy, setWith, toSafeInteger, get, first } from 'lodash';
import {
- transactionNumber,
updateTableCell,
repeatValue,
transformToForm,
@@ -46,7 +45,7 @@ export const defaultEntry = {
export const defaultManualJournal = {
journal_number: '',
- journal_number_manually: false,
+ journal_number_manually: '',
journal_type: 'Journal',
date: moment(new Date()).format('YYYY-MM-DD'),
description: '',
diff --git a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.tsx b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.tsx
index bc8c2410b..ec8467061 100644
--- a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.tsx
+++ b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.tsx
@@ -162,7 +162,11 @@ function CreditNoteForm({
+
+ {/*-------- Dialogs --------*/}
+
+ {/*-------- Effects --------*/}
diff --git a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormDialogs.tsx b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormDialogs.tsx
index 726013312..b519242b7 100644
--- a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormDialogs.tsx
+++ b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormDialogs.tsx
@@ -8,11 +8,17 @@ import CreditNoteNumberDialog from '@/containers/Dialogs/CreditNoteNumberDialog'
*/
export default function CreditNoteFormDialogs() {
const { setFieldValue } = useFormikContext();
-
+
// Update the form once the credit number form submit confirm.
const handleCreditNumberFormConfirm = (settings) => {
+ // Set the credit note transaction no. that cames from dialog to the form.
+ // the `credit_note_number` will be empty except the increment mode is not auto.
setFieldValue('credit_note_number', settings.transactionNumber);
- setFieldValue('credit_note_no_manually', settings.transactionNumber);
+ setFieldValue('credit_note_number_manually', '');
+
+ if (settings.incrementMode !== 'auto') {
+ setFieldValue('credit_note_number_manually', settings.transactionNumber);
+ }
};
return (
diff --git a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.tsx b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.tsx
index 2d192175e..fac113606 100644
--- a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.tsx
+++ b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.tsx
@@ -60,10 +60,12 @@ const CreditNoteTransactionNoField = R.compose(
const handleCreditNumberChange = () => {
openDialog('credit-number-form');
};
- // Handle credit no. field blur.
+ // Handle credit note no. field blur.
const handleCreditNoBlur = (event) => {
const newValue = event.target.value;
+ // Show the confirmation dialog if the value has changed and auto-increment
+ // mode is enabled.
if (values.credit_note_no !== newValue && creditAutoIncrement) {
openDialog('credit-number-form', {
initialFormValues: {
@@ -72,6 +74,8 @@ const CreditNoteTransactionNoField = R.compose(
},
});
}
+ // Setting the credit note number to the form will be manually in case
+ // auto-increment is disable.
if (!creditAutoIncrement) {
setFieldValue('credit_note_number', newValue);
setFieldValue('credit_note_number_manually', newValue);
@@ -92,6 +96,7 @@ const CreditNoteTransactionNoField = R.compose(
value={values.credit_note_number}
asyncControl={true}
onBlur={handleCreditNoBlur}
+ onChange={() => {}}
/>
-
{/* ----------- Credit note date ----------- */}
{({ form, field: { value }, meta: { error, touched } }) => (
diff --git a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/components.tsx b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/components.tsx
index a8342a4a6..2902299fa 100644
--- a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/components.tsx
+++ b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/components.tsx
@@ -45,10 +45,13 @@ export const CreditNoteSyncIncrementSettingsToForm = R.compose(
const { setFieldValue } = useFormikContext();
useEffect(() => {
+ // Do not update if the credit note auto-increment mode is disabled.
if (!creditAutoIncrement) return;
- const creditNo = transactionNumber(creditNumberPrefix, creditNextNumber);
- setFieldValue('credit_note_number', creditNo);
+ setFieldValue(
+ 'credit_note_number',
+ transactionNumber(creditNumberPrefix, creditNextNumber),
+ );
}, [setFieldValue, creditNumberPrefix, creditNextNumber]);
return null;
diff --git a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/utils.tsx b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/utils.tsx
index 46beaa711..11ffb118d 100644
--- a/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/utils.tsx
+++ b/packages/webapp/src/containers/Sales/CreditNotes/CreditNoteForm/utils.tsx
@@ -40,7 +40,8 @@ export const defaultCreditNote = {
customer_id: '',
credit_note_date: moment(new Date()).format('YYYY-MM-DD'),
credit_note_number: '',
- credit_note_no_manually: false,
+ // Holds the credit note number that entered manually only.
+ credit_note_number_manually: false,
open: '',
reference_no: '',
note: '',
diff --git a/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormDialogs.tsx b/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormDialogs.tsx
index c60aca031..4fe2cb947 100644
--- a/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormDialogs.tsx
+++ b/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormDialogs.tsx
@@ -11,8 +11,14 @@ export default function ReceiptFormDialogs() {
// Update the form once the receipt number form submit confirm.
const handleReceiptNumberFormConfirm = (settings) => {
+ // Set the receipt transaction no. that cames from dialog to the form.
+ // the `receipt_no_manually` will be empty except the increment mode is not auto.
setFieldValue('receipt_number', settings.transactionNumber);
- setFieldValue('receipt_number_manually', settings.transactionNumber);
+ setFieldValue('receipt_number_manually', '');
+
+ if (settings.incrementMode !== 'auto') {
+ setFieldValue('receipt_number_manually', settings.transactionNumber);
+ }
};
return (
diff --git a/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.tsx b/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.tsx
index 235501592..ff62e984a 100644
--- a/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.tsx
+++ b/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.tsx
@@ -70,6 +70,8 @@ const ReceiptFormReceiptNumberField = R.compose(
const handleReceiptNoBlur = (event) => {
const newValue = event.target.value;
+ // Show the confirmation dialog if the value has changed and auto-increment
+ // mode is enabled.
if (values.receipt_number !== newValue && receiptAutoIncrement) {
openDialog('receipt-number-form', {
initialFormValues: {
@@ -78,6 +80,8 @@ const ReceiptFormReceiptNumberField = R.compose(
},
});
}
+ // Setting the receipt number to the form will be manually in case
+ // auto-increment is disable.
if (!receiptAutoIncrement) {
setFieldValue('receipt_number', newValue);
setFieldValue('receipt_number_manually', newValue);
@@ -98,6 +102,7 @@ const ReceiptFormReceiptNumberField = R.compose(
value={values.receipt_number}
asyncControl={true}
onBlur={handleReceiptNoBlur}
+ onChange={() => {}}
/>
{
+ // Do not update if the receipt auto-increment mode is disabled.
if (!receiptAutoIncrement) return;
- const receiptNo = transactionNumber(receiptNumberPrefix, receiptNextNumber);
- setFieldValue('receipt_number', receiptNo);
+ setFieldValue(
+ 'receipt_number',
+ transactionNumber(receiptNumberPrefix, receiptNextNumber),
+ );
}, [
setFieldValue,
receiptNumberPrefix,
diff --git a/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/utils.tsx b/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/utils.tsx
index 3abeb7fb1..4dcaec4b2 100644
--- a/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/utils.tsx
+++ b/packages/webapp/src/containers/Sales/Receipts/ReceiptForm/utils.tsx
@@ -36,6 +36,8 @@ export const defaultReceipt = {
customer_id: '',
deposit_account_id: '',
receipt_number: '',
+ // Holds the receipt number that entered manually only.
+ receipt_number_manually: '',
receipt_date: moment(new Date()).format('YYYY-MM-DD'),
reference_no: '',
receipt_message: '',