Finally, I found code in decompile dll.
This method inside of request to call XZ Report.
This really final solution I choosed.
public static void Calculate(
RequestContext context,
Shift currentShift,
string shiftTerminalId,
long shiftId)
{
GetEndOfDayShiftDetailsDataRequest detailsDataRequest = new GetEndOfDayShiftDetailsDataRequest(shiftTerminalId, shiftId, context.GetChannelConfiguration().PriceIncludesSalesTax);
Shift entity1 = context.Runtime.Execute>((Request)detailsDataRequest, context).Entity;
LAW_ShiftCalculator.SetShiftSalesTotals(currentShift, entity1);
LAW_ShiftCalculator.SetShiftTenderLine(currentShift, entity1);
LAW_ShiftCalculator.SetShiftAccountLines(currentShift, entity1);
GetShiftTransactionsCountDataRequest countDataRequest = new GetShiftTransactionsCountDataRequest(shiftTerminalId, shiftId);
Shift entity2 = context.Runtime.Execute>((Request)countDataRequest, context).Entity;
LAW_ShiftCalculator.SetRetailTransactionCount(currentShift, entity2);
GetShiftTenderedAmountDataRequest amountDataRequest = new GetShiftTenderedAmountDataRequest(shiftTerminalId, shiftId, QueryResultSettings.AllRecords);
ReadOnlyCollection results = context.Runtime.Execute>((Request)amountDataRequest, context).PagedEntityCollection.Results;
LAW_ShiftCalculator.SetShiftTenderLineTenderAmounts(currentShift, (IEnumerable)results);
if (context.GetChannelConfiguration().CountryRegionISOCode != CountryRegionISOCode.SE)
return;
GetEndOfDayShiftDetailsSwedenDataRequest swedenDataRequest = new GetEndOfDayShiftDetailsSwedenDataRequest(currentShift.StoreId, shiftTerminalId, shiftId, context.GetChannelConfiguration().PriceIncludesSalesTax);
Shift entity3 = context.Runtime.Execute>((Request)swedenDataRequest, context).Entity;
LAW_ShiftCalculator.SetShiftSalesTotals_SE(currentShift, entity3);
LAW_ShiftCalculator.SetShiftTaxLine(currentShift, entity3);
}
private static void SetShiftSalesTotals(Shift currentShift, Shift shiftTotals)
{
currentShift.SalesTotal = shiftTotals.SalesTotal;
currentShift.ReturnsTotal = shiftTotals.ReturnsTotal;
currentShift.DiscountTotal = shiftTotals.DiscountTotal;
currentShift.TaxTotal = shiftTotals.TaxTotal;
currentShift.PaidToAccountTotal = shiftTotals.PaidToAccountTotal;
currentShift.SuspendedTransactionCount = shiftTotals.SuspendedTransactionCount;
currentShift.DepositCollected = shiftTotals.DepositCollected;
currentShift.DepositRedeemed = shiftTotals.DepositRedeemed;
currentShift.DepositRefunded = shiftTotals.DepositRefunded;
currentShift.CancellationCharges = shiftTotals.CancellationCharges;
currentShift.CustomerOrdersPlaced = shiftTotals.CustomerOrdersPlaced;
currentShift.CustomerOrdersCanceled = shiftTotals.CustomerOrdersCanceled;
currentShift.CustomerOrdersVoidedLines = shiftTotals.CustomerOrdersVoidedLines;
currentShift.CustomerOrdersEdited = shiftTotals.CustomerOrdersEdited;
currentShift.GiftCardsTotal = shiftTotals.GiftCardsTotal;
currentShift.GiftCardCashOutTotal = shiftTotals.GiftCardCashOutTotal;
currentShift.VoidedSalesTotal = shiftTotals.VoidedSalesTotal;
currentShift.ChargeTotal = shiftTotals.ChargeTotal;
}
private static void SetShiftSalesTotals_SE(Shift currentShift, Shift shiftTotals)
{
currentShift.ReceiptsCount = shiftTotals.ReceiptsCount;
currentShift.ReturnsCount = shiftTotals.ReturnsCount;
currentShift.GoodsSoldQty = shiftTotals.GoodsSoldQty;
currentShift.ServicesSoldQty = shiftTotals.ServicesSoldQty;
currentShift.ReceiptCopiesCount = shiftTotals.ReceiptCopiesCount;
currentShift.ReceiptCopiesTotal = shiftTotals.ReceiptCopiesTotal;
currentShift.PriceOverrideTotal = shiftTotals.PriceOverrideTotal;
currentShift.SuspendedTotal = shiftTotals.SuspendedTotal;
currentShift.SalesTotalIncludingTax = shiftTotals.SalesTotalIncludingTax;
currentShift.SalesTotalExcludingTax = shiftTotals.SalesTotalExcludingTax;
currentShift.SalesGrandTotal = shiftTotals.SalesGrandTotal;
currentShift.ReturnsGrandTotal = shiftTotals.ReturnsGrandTotal;
}
private static void SetShiftTenderLine(Shift currentShift, Shift endOfDayShiftDetails)
{
currentShift.TenderLines.AddRange((IEnumerable)endOfDayShiftDetails.TenderLines);
}
private static void SetShiftAccountLines(Shift currentShift, Shift endOfDayShiftDetails)
{
currentShift.AccountLines.AddRange((IEnumerable)endOfDayShiftDetails.AccountLines);
}
private static void SetShiftTaxLine(Shift currentShift, Shift endOfDayShiftDetails)
{
currentShift.TaxLines.AddRange((IEnumerable)endOfDayShiftDetails.TaxLines);
}
private static void SetShiftTenderLineTenderAmounts(
Shift currentShift,
IEnumerable shiftTenderLines)
{
foreach (ShiftTenderLine shiftTenderLine in shiftTenderLines)
{
ShiftTenderLine orCreate = currentShift.TenderLines.FindOrCreate(shiftTenderLine);
orCreate.CountingRequired = shiftTenderLine.CountingRequired;
orCreate.TenderCurrency = shiftTenderLine.TenderCurrency;
orCreate.ChangeLine = shiftTenderLine.ChangeLine;
if (orCreate.ChangeLine)
{
orCreate.ChangeAmountOfTenderCurrency = Decimal.Negate(shiftTenderLine.TenderedAmountOfTenderCurrency);
orCreate.ChangeAmountOfStoreCurrency = Decimal.Negate(shiftTenderLine.TenderedAmountOfStoreCurrency);
}
else
{
orCreate.TenderedAmountOfTenderCurrency = shiftTenderLine.TenderedAmountOfTenderCurrency;
orCreate.TenderedAmountOfStoreCurrency = shiftTenderLine.TenderedAmountOfStoreCurrency;
orCreate.Count = shiftTenderLine.Count;
}
}
}
private static ShiftTenderLine FindOrCreate(
this IList shiftTenderLines,
ShiftTenderLine tenderLine)
{
string tenderTypeId = tenderLine.TenderTypeId;
string tenderCurrency = tenderLine.TenderCurrency;
string tenderTypeName = tenderLine.TenderTypeName;
ShiftTenderLine shiftTenderLine = shiftTenderLines.FirstOrDefault((Func)(p =>
{
if (p.TenderTypeId == tenderTypeId)
return p.TenderCurrency == tenderCurrency;
return false;
}));
if (shiftTenderLine == null)
{
shiftTenderLine = new ShiftTenderLine()
{
TenderTypeId = tenderTypeId,
CardTypeId = string.Empty,
TenderCurrency = tenderCurrency,
TenderTypeName = tenderTypeName
};
shiftTenderLines.Add(shiftTenderLine);
}
return shiftTenderLine;
}
private static void SetRetailTransactionCount(Shift currentShift, Shift endOfDayShift)
{
currentShift.VoidTransactionCount = endOfDayShift.VoidTransactionCount;
currentShift.NoSaleTransactionCount = endOfDayShift.NoSaleTransactionCount;
currentShift.RoundedAmountTotal = endOfDayShift.RoundedAmountTotal;
currentShift.TransactionCount = endOfDayShift.TransactionCount;
currentShift.CustomerCount = endOfDayShift.CustomerCount;
currentShift.SaleTransactionCount = endOfDayShift.SaleTransactionCount;
}