PrePrintReceiptCopyTrigger POS 365
Nghia Song - Microsoft Dynamics 365 Technical Consultant
Nghia Song
Tel - WhatsApp: +84967324794
Email: songnghia.uit@gmail.com
Nghia Song
Tel - WhatsApp: +84967324794
Email: songnghia.uit@gmail.com
import * as Triggers from "PosApi/Extend/Triggers/PrintingTriggers";
import { ClientEntities, ProxyEntities } from "PosApi/Entities";
import { ObjectExtensions } from "PosApi/TypeExtensions";
//import ReprintReceiptCache from "../ViewExtensions/ShowJournal/ReprintReceiptCache";
//import { Entities, XZReportDocument } from "../DataService/DataServiceRequests.g";
import { GetHardwareProfileClientRequest, GetHardwareProfileClientResponse } from "PosApi/Consume/Device";
import { GetReceiptsClientRequest, GetReceiptsClientResponse } from "PosApi/Consume/SalesOrders";
import { PrinterPrintRequest, PrinterPrintResponse } from "PosApi/Consume/Peripherals";
export default class PrePrintReceiptCopyTrigger extends Triggers.PrePrintReceiptCopyTrigger {
public execute(options: Triggers.IPrePrintReceiptCopyTriggerOptions): Promise {
if (ObjectExtensions.isNullOrUndefined(options)) {
// This will never happen, but is included to demonstrate how to return a rejected promise when validation fails.
//ABC
let error: ClientEntities.ExtensionError
= new ClientEntities.ExtensionError("The options provided to the PrePrintReceiptCopyTrigger were invalid.");
return Promise.reject(error);
} else {
return this.context.runtime.executeAsync(new GetHardwareProfileClientRequest())
.then((response: ClientEntities.ICancelableDataResult)
: Promise> => {
let hardwareProfile: ProxyEntities.HardwareProfile = response.data.result;
// Gets the receipts.
let salesOrderId: string = options.salesOrder.Id;
let receiptRetrievalCriteria: ProxyEntities.ReceiptRetrievalCriteria = {
IsCopy: false,
IsRemoteTransaction: false,
IsPreview: false,
QueryBySalesId: true,
ReceiptTypeValue: ProxyEntities.ReceiptType.CustomReceipt6,
HardwareProfileId: hardwareProfile.ProfileId
};
let getReceiptsClientRequest: GetReceiptsClientRequest =
new GetReceiptsClientRequest(salesOrderId, receiptRetrievalCriteria);
return this.context.runtime.executeAsync(getReceiptsClientRequest);
})
.then((response: ClientEntities.ICancelableDataResult)
: Promise> => {
let receipts: ProxyEntities.Receipt[] = response.data.result;
// Prints the receipts.
let printerPrintRequest: PrinterPrintRequest = new PrinterPrintRequest(receipts);
return this.context.runtime.executeAsync(printerPrintRequest);
})
}
}

No comments:
Post a Comment