47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
/**
|
||
* Copyright since 2025 Mifos Initiative
|
||
*
|
||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
*/
|
||
|
||
import { OrganizationService } from 'app/organization/organization.service';
|
||
import { AlertService } from 'app/core/alert/alert.service';
|
||
|
||
/**
|
||
* Whether the server held a DDS entry for a checker rather than carrying it out. The reply then
|
||
* names the entry (commandId) and asks for the work to be rolled back, and carries no result of its own.
|
||
*/
|
||
export function heldForApproval(response: any): boolean {
|
||
return !!response?.rollbackTransaction || (!!response?.commandId && response?.resourceId == null);
|
||
}
|
||
|
||
/**
|
||
* Tells the clerk their entry went to a checker - with the voucher it will move under - instead of
|
||
* saying it was done. Nothing has moved yet, and a message that read as though it had would send them
|
||
* looking for money that is still waiting on a manager.
|
||
*/
|
||
export function announceHeldForApproval(
|
||
response: any,
|
||
what: string,
|
||
organizationService: OrganizationService,
|
||
alertService: AlertService
|
||
): void {
|
||
const say = (voucherNo?: string) =>
|
||
alertService.alert({
|
||
type: 'Sent for Approval',
|
||
message:
|
||
`${what} sent for approval${voucherNo ? ' under voucher ' + voucherNo : ''}. ` +
|
||
'It takes effect once a checker approves it in Approval Center › DDS Approvals.'
|
||
});
|
||
if (!response?.commandId) {
|
||
say();
|
||
return;
|
||
}
|
||
organizationService.getDdsApproval(response.commandId).subscribe({
|
||
next: (entry: any) => say(entry?.voucherNo),
|
||
error: () => say()
|
||
});
|
||
}
|