import { Add } from "../../shared/math-operations"; import { PrintSharedService } from "../../shared/shared-print.service"; import { MyDate } from "../../utils/my-date"; import { TrUtils } from "../../utils/tr-utils"; declare var pdfMake: any; export class ReceiptPrintService { static GetReceiptPrint(argPaymentViewData: any, EntityData: any, image: any) { let PaymentViewData = TrUtils.Stringify(argPaymentViewData); let ReceiptData: any = {}; ReceiptData.Entity = PrintSharedService.GetFormattedEntityDataForPrint(EntityData, "Receipt", argPaymentViewData); ReceiptData = PrintSharedService.GetEntityHeaderStyles(ReceiptData, EntityData, image); ReceiptData.FullName = PaymentViewData.Name; // if (PaymentViewData.PType === 'Cash') { // ReceiptData.TypeNumber = PaymentViewData.Amt; // } else if (PaymentViewData.PType === 'Cheque' || PaymentViewData.PType === 'MasterCard') { ReceiptData.TypeNumber = PaymentViewData.CNo; } else if (PaymentViewData.PType === 'Visa') { ReceiptData.TypeNumber = PaymentViewData.CNo; } else { ReceiptData.TypeNumber = ''; } ReceiptData.TotalAmount = PaymentViewData.Amt; ReceiptData.RemAmt = PaymentViewData.RemAmt; let Refunds: any = PaymentViewData?.AllocRefs?.filter((ref: any) => ref.Type === 'CR'); if (!TrUtils.IsNull(Refunds) && Refunds.length > 0) { let Amount: number = 0; for (let i = 0; i < Refunds.length; i++) { Amount = Add(Amount, Refunds[i].Amt); } ReceiptData.RefundAmount = Amount; } ReceiptData.PaidDate = MyDate.ConvertUTCDateToReadable(PaymentViewData.Date); ReceiptData.Ids = this.GetRecordIds(PaymentViewData); ReceiptData.AllocRefs = PaymentViewData.AllocRefs; ReceiptData.Type = 'Receipt'; ReceiptData.HeaderName = 'Receipt'; ReceiptData.PaymentId = PaymentViewData.Code; ReceiptData.PaymentType = PaymentViewData.PType; return ReceiptData; } static GetRecordIds(PaymentViewData: any) { let IdList: any = []; var i = 0; if (!TrUtils.IsNull(PaymentViewData.AllocRefs) && PaymentViewData.AllocRefs.length !== 0) { let Invoices: any = PaymentViewData?.AllocRefs?.filter((ref: any) => ref.Type === 'INV'); for (i = 0; i < Invoices.length; i++) { let Id: any = Invoices[i].Code; if (!TrUtils.IsNull(Invoices[i].RegNo)) { Id = Id + '(' + Invoices[i].RegNo + ')'; } IdList.push(Id); } } if (!TrUtils.IsNull(PaymentViewData.Invs) && PaymentViewData.Invs.length !== 0) { for (i = 0; i < PaymentViewData.Invs.length; i++) { let Id: any = PaymentViewData.Invs[i].Code; if (!TrUtils.IsNull(PaymentViewData.Invs[i].RegNo)) { Id = Id + '(' + PaymentViewData.Invs[i].RegNo + ')'; } IdList.push(Id); } } return IdList; } }