/** * 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() }); }