Compare commits

..

5 Commits

Author SHA1 Message Date
Ahmed Bouhuolia
a383c71424 Merge pull request #1000 from bigcapitalhq/fix/branch-warehouse-select-edit-form
fix(webapp): branch and warehouse select not showing saved values in edit mode
2026-02-27 04:49:54 +02:00
Ahmed Bouhuolia
2065afe108 fix(webapp): remove duplicated isNewMode from context 2026-02-27 04:46:59 +02:00
Ahmed Bouhuolia
7051256e60 fix(webapp): branch and warehouse select not showing saved values in edit mode
Fixed an issue where branch and warehouse select fields were not displaying
saved values when editing existing transactions. The useSetPrimaryBranchToForm
and useSetPrimaryWarehouseToForm hooks were overwriting saved values with
primary defaults on every form load.

Changes:
- Added isNewMode check to useSetPrimaryBranchToForm hook
- Added isNewMode check to useSetPrimaryWarehouseToForm hook
- Updated InvoiceFormProvider to expose isNewMode in context

Affected forms:
- Sales: Invoice, Estimate, Receipt, CreditNote, PaymentReceived
- Purchases: Bill, VendorCredit, PaymentMade
- Expense
- MakeJournal (Manual Journal)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 04:39:24 +02:00
Ahmed Bouhuolia
5dd7179cca Merge pull request #999 from bigcapitalhq/fix/attachments-for-all-transactions
fix(server): add attachment support for all transaction types
2026-02-26 23:18:41 +02:00
Ahmed Bouhuolia
3575d54efa fix: add attachment support for all transaction types
Fixed attachments not showing in edit forms for various transaction types by:

1. Adding @InjectAttachable() decorator to models:
   - SaleReceipt, SaleEstimate, CreditNote, PaymentReceived
   - Bill, BillPayment, VendorCredit
   - ManualJournal, Expense

2. Fixing transformers to include attachments in API responses:
   - SaleReceiptTransformer, PaymentReceivedTransformer

3. Registering missing event subscribers in Attachment.module.ts:
   - AttachmentsOnSaleReceipts, AttachmentsOnSaleEstimates

4. Fixing DocumentLink model relation mapping:
   - Changed Document.default to Document for proper module export

5. Fixing PaymentReceived model_ref consistency:
   - Changed from 'PaymentReceive' to 'PaymentReceived' to match class name

6. Adding missing withGraphFetched('attachments') to GetPaymentReceived.service.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 23:16:12 +02:00
25 changed files with 103 additions and 65 deletions

View File

@@ -15,6 +15,8 @@ import { AttachmentsOnPaymentsReceived } from "./events/AttachmentsOnPaymentsRec
import { AttachmentsOnManualJournals } from "./events/AttachmentsOnManualJournals";
import { AttachmentsOnVendorCredits } from "./events/AttachmentsOnVendorCredits";
import { AttachmentsOnSaleInvoiceCreated } from "./events/AttachmentsOnSaleInvoice";
import { AttachmentsOnSaleReceipt } from "./events/AttachmentsOnSaleReceipts";
import { AttachmentsOnSaleEstimates } from "./events/AttachmentsOnSaleEstimates";
import { AttachmentsController } from "./Attachments.controller";
import { RegisterTenancyModel } from "../Tenancy/TenancyModels/Tenancy.module";
import { DocumentModel } from "./models/Document.model";
@@ -50,6 +52,8 @@ const models = [
AttachmentsOnManualJournals,
AttachmentsOnVendorCredits,
AttachmentsOnSaleInvoiceCreated,
AttachmentsOnSaleReceipt,
AttachmentsOnSaleEstimates,
AttachmentsApplication,
UploadDocument,
AttachmentUploadPipeline,

View File

@@ -55,7 +55,7 @@ export class AttachmentsOnPaymentsReceived {
);
await this.linkAttachmentService.bulkLink(
keys,
'PaymentReceive',
'PaymentReceived',
paymentReceive.id,
trx,
);
@@ -76,7 +76,7 @@ export class AttachmentsOnPaymentsReceived {
);
await this.unlinkAttachmentService.unlinkUnpresentedKeys(
keys,
'PaymentReceive',
'PaymentReceived',
oldPaymentReceive.id,
trx,
);
@@ -100,7 +100,7 @@ export class AttachmentsOnPaymentsReceived {
);
await this.linkAttachmentService.bulkLink(
keys,
'PaymentReceive',
'PaymentReceived',
oldPaymentReceive.id,
trx,
);
@@ -117,7 +117,7 @@ export class AttachmentsOnPaymentsReceived {
trx,
}: IPaymentReceivedDeletingPayload) {
await this.unlinkAttachmentService.unlinkAllModelKeys(
'PaymentReceive',
'PaymentReceived',
oldPaymentReceive.id,
trx,
);

View File

@@ -9,7 +9,9 @@ import { BillPaymentMeta } from './BillPayment.meta';
import { TenantBaseModel } from '@/modules/System/models/TenantBaseModel';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { BillPaymentDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ImportableModel()
@ExportableModel()
@InjectModelMeta(BillPaymentMeta)

View File

@@ -13,7 +13,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje
import { BillMeta } from './Bill.meta';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { BillDefaultViews } from '../Bills.constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@InjectModelMeta(BillMeta)
@InjectModelDefaultViews(BillDefaultViews)

View File

@@ -28,7 +28,7 @@ export class DocumentLink extends BaseModel{
* Relationship mapping.
*/
static get relationMappings() {
const Document = require('./Document');
const { Document } = require('./Document');
return {
/**
@@ -36,7 +36,7 @@ export class DocumentLink extends BaseModel{
*/
document: {
relation: Model.HasOneRelation,
modelClass: Document.default,
modelClass: Document,
join: {
from: 'document_links.documentId',
to: 'documents.id',

View File

@@ -11,7 +11,9 @@ import { Warehouse } from '@/modules/Warehouses/models/Warehouse.model';
import { CreditNoteMeta } from './CreditNote.meta';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { CreditNoteDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(CreditNoteMeta)

View File

@@ -9,7 +9,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje
import { ExpenseMeta } from './Expense.meta';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { ExpenseDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(ExpenseMeta)

View File

@@ -8,7 +8,9 @@ import { ManualJournalMeta } from './ManualJournal.meta';
import { ImportableModel } from '@/modules/Import/decorators/Import.decorator';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { ManualJournalDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(ManualJournalMeta)

View File

@@ -1,5 +1,6 @@
import { Model } from 'objection';
import { PaymentReceivedEntry } from './PaymentReceivedEntry';
import { Document } from '@/modules/ChromiumlyTenancy/models/Document';
import { TenantBaseModel } from '@/modules/System/models/TenantBaseModel';
import { ExportableModel } from '@/modules/Export/decorators/ExportableModel.decorator';
import { ImportableModel } from '@/modules/Import/decorators/Import.decorator';
@@ -7,7 +8,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje
import { PaymentReceivedMeta } from './PaymentReceived.meta';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { PaymentReceivedDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(PaymentReceivedMeta)
@@ -31,6 +34,7 @@ export class PaymentReceived extends TenantBaseModel {
updatedAt: string;
entries?: PaymentReceivedEntry[];
public attachments!: Document[];
/**
* Table name.
@@ -159,7 +163,7 @@ export class PaymentReceived extends TenantBaseModel {
to: 'documents.id',
},
filter(query) {
query.where('model_ref', 'PaymentReceive');
query.where('model_ref', 'PaymentReceived');
},
},

View File

@@ -32,6 +32,7 @@ export class GetPaymentReceivedService {
.withGraphFetched('entries.invoice')
.withGraphFetched('transactions')
.withGraphFetched('branch')
.withGraphFetched('attachments')
.findById(paymentReceiveId);
if (!paymentReceive) {

View File

@@ -2,6 +2,7 @@ import { Transformer } from '../../Transformer/Transformer';
import { PaymentReceived } from '../models/PaymentReceived';
import { PaymentReceivedEntry } from '../models/PaymentReceivedEntry';
import { PaymentReceivedEntryTransfromer } from './PaymentReceivedEntryTransformer';
import { AttachmentTransformer } from '@/modules/Attachments/Attachment.transformer';
export class PaymentReceiveTransfromer extends Transformer {
/**
@@ -17,6 +18,7 @@ export class PaymentReceiveTransfromer extends Transformer {
'formattedAmount',
'formattedExchangeRate',
'entries',
'attachments',
];
};
@@ -89,4 +91,13 @@ export class PaymentReceiveTransfromer extends Transformer {
protected entries = (payment: PaymentReceived): PaymentReceivedEntry[] => {
return this.item(payment.entries, new PaymentReceivedEntryTransfromer());
};
/**
* Retrieves the payment received attachments.
* @param {PaymentReceived} payment
* @returns
*/
protected attachments = (payment: PaymentReceived) => {
return this.item(payment.attachments, new AttachmentTransformer());
};
}

View File

@@ -12,7 +12,9 @@ import { Customer } from '@/modules/Customers/models/Customer';
import { DiscountType } from '@/common/types/Discount';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { SaleEstimateDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(SaleEstimateMeta)

View File

@@ -5,6 +5,7 @@ import { BaseModel } from '@/models/Model';
import { ItemEntry } from '@/modules/TransactionItemEntry/models/ItemEntry';
import { Customer } from '@/modules/Customers/models/Customer';
import { AccountTransaction } from '@/modules/Accounts/models/AccountTransaction.model';
import { Document } from '@/modules/ChromiumlyTenancy/models/Document';
import { Branch } from '@/modules/Branches/models/Branch.model';
import { Warehouse } from '@/modules/Warehouses/models/Warehouse.model';
import { DiscountType } from '@/common/types/Discount';
@@ -15,6 +16,7 @@ import { SearchableBaseModelMixin } from '@/modules/DynamicListing/models/Search
import { ExportableModel } from '@/modules/Export/decorators/ExportableModel.decorator';
import { ImportableModel } from '@/modules/Import/decorators/Import.decorator';
import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/InjectModelMeta.decorator';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
import { SaleReceiptMeta } from './SaleReceipt.meta';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { SaleReceiptDefaultViews } from '../constants';
@@ -26,6 +28,7 @@ const ExtendedModel = R.pipe(
MetadataModelMixin,
)(BaseModel);
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(SaleReceiptMeta)
@@ -58,6 +61,7 @@ export class SaleReceipt extends ExtendedModel {
public customer!: Customer;
public entries!: ItemEntry[];
public transactions!: AccountTransaction[];
public attachments!: Document[];
public branch!: Branch;
public warehouse!: Warehouse;

View File

@@ -139,22 +139,22 @@ export class SaleReceiptTransformer extends Transformer {
};
/**
* Retrieves the entries of the credit note.
* @param {ISaleReceipt} credit
* Retrieves the entries of the sale receipt.
* @param {ISaleReceipt} receipt
* @returns {}
*/
// protected entries = (receipt: SaleReceipt) => {
// return this.item(receipt.entries, new ItemEntryTransformer(), {
// currencyCode: receipt.currencyCode,
// });
// };
protected entries = (receipt: SaleReceipt) => {
return this.item(receipt.entries, new ItemEntryTransformer(), {
currencyCode: receipt.currencyCode,
});
};
/**
* Retrieves the sale receipt attachments.
* @param {SaleReceipt} receipt
* @returns
*/
// protected attachments = (receipt: SaleReceipt) => {
// return this.item(receipt.attachments, new AttachmentTransformer());
// };
protected attachments = (receipt: SaleReceipt) => {
return this.item(receipt.attachments, new AttachmentTransformer());
};
}

View File

@@ -11,7 +11,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje
import { VendorCreditMeta } from './VendorCredit.meta';
import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator';
import { VendorCreditDefaultViews } from '../constants';
import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator';
@InjectAttachable()
@ExportableModel()
@ImportableModel()
@InjectModelMeta(VendorCreditMeta)

View File

@@ -213,17 +213,17 @@ export const currenciesFieldShouldUpdate = (newProps, oldProps) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useMakeJournalFormContext();
const { branches, isBranchesSuccess, isNewMode } = useMakeJournalFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
export const useManualJournalCreditTotal = () => {

View File

@@ -152,17 +152,17 @@ export const transformFormValuesToRequest = (values) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useExpenseFormContext();
const { branches, isBranchesSuccess, isNewMode } = useExpenseFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
/**

View File

@@ -231,25 +231,25 @@ export const handleErrors = (errors, { setErrors }) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useBillFormContext();
const { branches, isBranchesSuccess, isNewMode } = useBillFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useBillFormContext();
const { warehouses, isWarehousesSuccess, isNewMode } = useBillFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
@@ -257,7 +257,7 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
}, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
};
/**

View File

@@ -156,25 +156,25 @@ export const useObserveVendorCreditNoSettings = (prefix, nextNumber) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useVendorCreditNoteFormContext();
const { branches, isBranchesSuccess, isNewMode } = useVendorCreditNoteFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useVendorCreditNoteFormContext();
const { warehouses, isWarehousesSuccess, isNewMode } = useVendorCreditNoteFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
@@ -182,7 +182,7 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
}, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
};
/**

View File

@@ -115,17 +115,17 @@ export const transformFormToRequest = (form) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = usePaymentMadeFormContext();
const { branches, isBranchesSuccess, isNewMode } = usePaymentMadeFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
/**

View File

@@ -148,25 +148,25 @@ export const entriesFieldShouldUpdate = (newProps, oldProps) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useCreditNoteFormContext();
const { branches, isBranchesSuccess, isNewMode } = useCreditNoteFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useCreditNoteFormContext();
const { warehouses, isWarehousesSuccess, isNewMode } = useCreditNoteFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
@@ -174,7 +174,7 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
}, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
};
/**

View File

@@ -182,10 +182,10 @@ export const transfromsFormValuesToRequest = (values) => {
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useEstimateFormContext();
const { warehouses, isWarehousesSuccess, isNewMode } = useEstimateFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
@@ -193,22 +193,22 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
}, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
};
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useEstimateFormContext();
const { branches, isBranchesSuccess, isNewMode } = useEstimateFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
/**

View File

@@ -264,10 +264,10 @@ const transformPaymentMethodsToForm = (
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useInvoiceFormContext();
const { warehouses, isWarehousesSuccess, isNewMode } = useInvoiceFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
@@ -275,22 +275,22 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
}, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
};
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useInvoiceFormContext();
const { branches, isBranchesSuccess, isNewMode } = useInvoiceFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
/**

View File

@@ -177,17 +177,17 @@ export const transformFormToRequest = (form) => {
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = usePaymentReceiveFormContext();
const { branches, isBranchesSuccess, isNewMode } = usePaymentReceiveFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
/**

View File

@@ -173,10 +173,10 @@ export const transformFormValuesToRequest = (values) => {
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useReceiptFormContext();
const { warehouses, isWarehousesSuccess, isNewMode } = useReceiptFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
@@ -184,22 +184,22 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
}, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
};
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useReceiptFormContext();
const { branches, isBranchesSuccess, isNewMode } = useReceiptFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
}, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
};
/**