1
0
mirror of https://github.com/IRPTeam/IRP.git synced 2025-09-16 08:56:27 +02:00

#IRP-568 Add shift number support to fiscal printer modules (#2863)

* #IRP-568 Add shift number support to fiscal printer modules

Introduces handling of shift numbers in fiscal printer client, server, and API modules. Adds ShiftNumber fields to relevant structures, document objects, and information registers. Updates logic to store and retrieve shift numbers alongside check numbers for improved traceability and compliance.

* Add FiscalResponse to CorrectionData and refactor VAT handling

* Add PaymentInFiscalPrinterMode attribute and logic

Introduces the PaymentInFiscalPrinterMode boolean attribute to hardware catalog, retail sales receipt document, and payment forms. Updates UI forms to display and edit this attribute, and modifies payment processing logic to account for payments made in fiscal printer mode, including visibility and validation changes. Also refines cashier name retrieval in the fiscal printer server module.

* Update _8510FiscalPrinter.feature

* Add PaymentInFiscalPrinterMode attribute and update payment logic

* Add 'DocumentPostingAfterPrinting' option for receipts

Introduces the 'DocumentPostingAfterPrinting' boolean attribute to hardware and point of sale forms, allowing receipts to be posted after printing based on this setting. Updates business logic to handle postponed posting, including new procedures for posting and canceling transactions, and adjusts status handling throughout the payment and return process. Also refines data handling in HardwareServer and validation in EquipmentFiscalPrinterClient to support the new attribute.

* Fix nested attribute extraction in GetAttributesFromRef

Updated GetAttributesFromRef to correctly handle nested attribute names using dot notation. Extended unit tests to cover extraction of nested attributes from empty references, ensuring proper structure and default values are returned.

* Fix handling of undefined ConsolidatedRetailSales document

* Show user message if fiscal printer is not set

Added a call to display a user message when attempting to reconnect the fiscal printer and it is not configured. This improves user feedback in cases where the fiscal printer is missing.

---------

Co-authored-by: Natalia Trukhachova <66120736+Severnity@users.noreply.github.com>
This commit is contained in:
Dmitry Kinash
2025-09-15 15:46:21 +03:00
committed by GitHub
parent bb783b5e54
commit cf30a1836e
20 changed files with 496 additions and 129 deletions

View File

@@ -780,6 +780,76 @@
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>PaymentInFiscalPrinterMode</name>
<id>173</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.PaymentInFiscalPrinterMode</segments>
</dataPath>
<extendedTooltip>
<name>PaymentInFiscalPrinterModeExtendedTooltip</name>
<id>175</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>PaymentInFiscalPrinterModeContextMenu</name>
<id>174</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo">
<checkBoxType>Switcher</checkBoxType>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>DocumentPostingAfterPrinting</name>
<id>176</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.DocumentPostingAfterPrinting</segments>
</dataPath>
<extendedTooltip>
<name>DocumentPostingAfterPrintingExtendedTooltip</name>
<id>178</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DocumentPostingAfterPrintingContextMenu</name>
<id>177</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo">
<checkBoxType>Switcher</checkBoxType>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>

View File

@@ -214,6 +214,36 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="1454114b-fa9d-4c77-9308-af89beb82d7b">
<name>PaymentInFiscalPrinterMode</name>
<synonym>
<key>en</key>
<value>Payment in fiscal printer mode</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="90be32c2-b8f5-424b-9c93-6112b59f057f">
<name>DocumentPostingAfterPrinting</name>
<synonym>
<key>en</key>
<value>Document posting after printing</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<tabularSections uuid="fd9a6894-9c06-4625-91a4-5db398bbb9ac">
<producedTypes>
<objectType typeId="b8fed1f0-7596-48b4-9c7e-bbe156d72e69" valueTypeId="1acf60ec-ede0-41cf-8e2a-c53aee5f71c5"/>

View File

@@ -963,8 +963,14 @@ Function GetAttributesFromRef(Ref, Attributes, OnlyAllowed = False) Export
EndIf;
If Ref.IsEmpty() Then
For Each Attr In CurrentResult Do
CurrentResult[Attr.Key] = Ref[Attr.Key];
For Each ItemAttribute In AttributesStructure Do
CurrentResult = Result;
FieldName = ?(ValueIsFilled(ItemAttribute.Value), ItemAttribute.Value, ItemAttribute.Key); // String
FieldParts = StrSplit(FieldName, ".");
For Index = 0 To FieldParts.UBound() - 1 Do
CurrentResult = CurrentResult[FieldParts[Index]]; // Structure
EndDo;
CurrentResult[FieldParts[FieldParts.UBound()]] = GetRefAttribute(Ref, FieldName);
EndDo;
Return Result;
EndIf;

View File

@@ -325,6 +325,7 @@ EndFunction
// * In - Structure:
// ** DeviceID - String - Device ID
// ** CheckNumber - String - Fiscal check number
// ** ShiftNumber - String - Shift number
// * InOut - Structure -
// * Out - Structure:
Function GetPrintCheckCopySettings() Export
@@ -338,6 +339,7 @@ Function GetPrintCheckCopySettings() Export
Str.Insert("In", New Structure);
Str.In.Insert("DeviceID", "");
Str.In.Insert("CheckNumber", "");
Str.In.Insert("ShiftNumber", "");
Str.Insert("InOut", New Structure);
@@ -814,6 +816,7 @@ EndFunction
// *** Description - String - Description of the correction
// *** Date - Date - Date of the corrected transaction
// *** Number - String - Number of the tax authority's prescription
// *** FiscalResponse - String - Fiscal response
// ** TaxationSystem - Number - Taxation system code
// ** CustomerDetail - Structure - Customer (client) details:
// *** Info - String - Name of the organization or surname, name, patronymic (if available)
@@ -874,6 +877,7 @@ Function CheckPackage() Export
CorrectionData.Insert("Description", "");
CorrectionData.Insert("Date", Date(1, 1, 1));
CorrectionData.Insert("Number", "");
CorrectionData.Insert("FiscalResponse", "");
Str.Parameters.Insert("CorrectionData", CorrectionData);
CustomerDetail = New Structure;

View File

@@ -246,9 +246,11 @@ Procedure ValidateProcessCheck(DataSource)
OR TypeOf(DataSource) = Type("DocumentRef.RetailReceiptCorrection")
Then
StatusData = CommonFunctionsServer.GetAttributesFromRef(DataSource, "StatusType, Posted, DeletionMark");
StatusData = CommonFunctionsServer.GetAttributesFromRef(DataSource,
"StatusType, Posted, DeletionMark, ConsolidatedRetailSales.FiscalPrinter.DocumentPostingAfterPrinting");
If Not StatusData.StatusType = PredefinedValue("Enum.RetailReceiptStatusTypes.Completed") Then
If Not StatusData.StatusType = PredefinedValue("Enum.RetailReceiptStatusTypes.Completed")
And StatusData.ConsolidatedRetailSales.FiscalPrinter.DocumentPostingAfterPrinting <> True Then
Raise R().EqFP_CanPrintOnlyComplete;
EndIf;
@@ -330,6 +332,7 @@ Async Function PrintCheckCopy(ConsolidatedRetailSales, DataSource) Export
EndIf;
PrintCheckCopySettings.In.CheckNumber = StatusData.CheckNumber;
PrintCheckCopySettings.In.ShiftNumber = StatusData.ShiftNumber;
Await EquipmentFiscalPrinterAPIClient.PrintCheckCopy(CRS.FiscalPrinter, PrintCheckCopySettings);
Return PrintCheckCopySettings;

View File

@@ -96,6 +96,7 @@ Async Function PrintCheckCopy(ConsolidatedRetailSales, DataSource) Export
EndIf;
PrintCheckCopySettings.In.CheckNumber = StatusData.CheckNumber;
PrintCheckCopySettings.In.ShiftNumber = StatusData.ShiftNumber;
Await EquipmentFiscalPrinterAPIClient.PrintCheckCopy(CRS.FiscalPrinter, PrintCheckCopySettings);
Return PrintCheckCopySettings;

View File

@@ -278,6 +278,7 @@ Function PrintCheckCopy(ConsolidatedRetailSales, DataSource) Export
EndIf;
PrintCheckCopySettings.In.CheckNumber = StatusData.CheckNumber;
PrintCheckCopySettings.In.ShiftNumber = StatusData.ShiftNumber;
EquipmentFiscalPrinterAPIServer.PrintCheckCopy(CRS.FiscalPrinter, PrintCheckCopySettings);
Return PrintCheckCopySettings;
@@ -531,9 +532,12 @@ Procedure FillCheckPackageByRetailReceipt(Val SourceData, CheckPackage) Export
CheckPackage.Parameters.CorrectionData.Number = "0";
EndIf;
If IsBlankString(CheckPackage.Parameters.CorrectionData.Description) Then
Raise R().CorrectionDescriptionRequired;
EndIf;
FiscalStatus = InformationRegisters.DocumentFiscalStatus.GetStatusData(DocumentWithCorrectionInfo);
CheckPackage.Parameters.CorrectionData.FiscalResponse = FiscalStatus.FiscalResponse;
If IsBlankString(CheckPackage.Parameters.CorrectionData.Description) Then
Raise R().CorrectionDescriptionRequired;
EndIf;
Else
CheckPackage.Parameters.CorrectionData = New Structure();
@@ -670,18 +674,7 @@ Procedure FillCheckPackageByPayment(SourceData, CheckPackage, isCash)
FiscalStringData.PaymentMethod = 3;
FiscalStringData.PriceWithDiscount = Item.TotalAmount;
If ValueIsFilled(Item.VatRate) Then
If Item.VatRate.NoRate Then
FiscalStringData.VATRate = "none";
FiscalStringData.VATAmount = 0;
Else
FiscalStringData.VATRate = Format(Item.VatRate.Rate, "NZ=0; NG=0;");
FiscalStringData.VATAmount = Item.TaxAmount;
EndIf;
Else
FiscalStringData.VATRate = "none";
FiscalStringData.VATAmount = 0;
EndIf;
FillVatRate(Item, FiscalStringData);
CheckPackage.Positions.FiscalStrings.Add(FiscalStringData);
EndDo;
@@ -786,7 +779,8 @@ EndFunction
// Ref - DocumentRef.RetailSalesReceipt, DocumentRef.ConsolidatedRetailSales -
// InputParameters - See EquipmentFiscalPrinterAPIClient.InputParameters
Procedure FillInputParameters(Ref, InputParameters) Export
InputParameters.CashierName = Ref.Author.Partner.Description_ru;
//InputParameters.CashierName = Ref.Author.Partner.Description_ru;
InputParameters.CashierName = LocalizationServer.RefDescription(Ref.Author.Partner);
If IsBlankString(InputParameters.CashierName) Then
//@skip-check property-return-type
@@ -1044,46 +1038,54 @@ EndProcedure
Procedure FillPayments(SourceData, CheckPackage)
For Each Payment In SourceData.Payments Do
If Payment.Amount < 0 Then
Continue;
EndIf;
If SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.FullPrepayment Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.PartialPrepayment Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.AdvancePayment Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.FullCalculation Then
If Payment.PaymentType.Type = Enums.PaymentTypes.Cash Then
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Card Then
CheckPackage.Payments.ElectronicPayment = CheckPackage.Payments.ElectronicPayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.PaymentAgent Then
If Payment.Amount < 0 Then
Continue;
EndIf;
If SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.FullPrepayment Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.PartialPrepayment Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.AdvancePayment Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf SourceData.PaymentMethod = Enums.ReceiptPaymentMethods.FullCalculation Then
If Payment.PaymentType.Type = Enums.PaymentTypes.Cash Then
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Card Then
If Payment.PaymentInFiscalPrinterMode Then
CheckPackage.Payments.PostPayment = CheckPackage.Payments.PostPayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Advance Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Certificate Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
Else
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
CheckPackage.Payments.ElectronicPayment = CheckPackage.Payments.ElectronicPayment + Payment.Amount;
EndIf;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.PaymentAgent Then
CheckPackage.Payments.PostPayment = CheckPackage.Payments.PostPayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Advance Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Certificate Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
Else
If Payment.PaymentType.Type = Enums.PaymentTypes.Cash Then
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Card Then
CheckPackage.Payments.ElectronicPayment = CheckPackage.Payments.ElectronicPayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.PaymentAgent Then
CheckPackage.Payments.PostPayment = CheckPackage.Payments.PostPayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Advance Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Certificate Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
Else
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
EndIf;
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
EndIf;
EndDo;
Else
If Payment.PaymentType.Type = Enums.PaymentTypes.Cash Then
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Card Then
If Payment.PaymentInFiscalPrinterMode Then
CheckPackage.Payments.PostPayment = CheckPackage.Payments.PostPayment + Payment.Amount;
Else
CheckPackage.Payments.ElectronicPayment = CheckPackage.Payments.ElectronicPayment + Payment.Amount;
EndIf;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.PaymentAgent Then
CheckPackage.Payments.PostPayment = CheckPackage.Payments.PostPayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Advance Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
ElsIf Payment.PaymentType.Type = Enums.PaymentTypes.Certificate Then
CheckPackage.Payments.PrePayment = CheckPackage.Payments.PrePayment + Payment.Amount;
Else
CheckPackage.Payments.Cash = CheckPackage.Payments.Cash + Payment.Amount;
EndIf;
EndIf;
EndDo;
EndProcedure
#EndRegion

View File

@@ -253,14 +253,31 @@ Procedure FixTypesForWrite(Data) Export
EndDo;
EndIf;
EndIf;
If Data.Property("In") And Data.In.Property("CheckPackage") And Data.In.CheckPackage.Property("Positions") Then
For Each Row In Data.In.CheckPackage.Positions.FiscalStrings Do
For Each Prop In Row Do
If Not CommonFunctionsServer.IsPrimitiveValue(Prop.Value) Then
Row[Prop.Key] = String(Prop.Value);
If Data.Property("In") And Data.In.Property("CheckPackage") Then
If Data.In.CheckPackage.Property("Positions") Then
For Each Row In Data.In.CheckPackage.Positions.FiscalStrings Do
For Each Prop In Row Do
If Not CommonFunctionsServer.IsPrimitiveValue(Prop.Value) Then
Row[Prop.Key] = String(Prop.Value);
EndIf;
EndDo;
EndDo;
EndIf;
If Data.In.CheckPackage.Property("Parameters") Then
For Each ParameterKeyValue In Data.In.CheckPackage.Parameters Do
If TypeOf(ParameterKeyValue.Value) = Type("Structure") Then
For Each Prop In ParameterKeyValue.Value Do
If Not CommonFunctionsServer.IsPrimitiveValue(Prop.Value) Then
Data.In.CheckPackage.Parameters[ParameterKeyValue.Key][Prop.Key] = String(Prop.Value);
EndIf;
EndDo;
Else
If Not CommonFunctionsServer.IsPrimitiveValue(ParameterKeyValue.Value) Then
Data.In.CheckPackage.Parameters[ParameterKeyValue.Key] = String(ParameterKeyValue.Value);
EndIf;
EndIf;
EndDo;
EndDo;
EndIf;
EndIf;
EndIf;
EndProcedure

View File

@@ -6692,6 +6692,23 @@ End</presentationExpression>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>DocumentPostingAfterPrinting</name>
<title>
<key>en</key>
<value>Document posting after printing</value>
</title>
<id>216</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>qPayment</name>
<title>

View File

@@ -1095,9 +1095,11 @@ Async Procedure PaymentFormClose(Result, AdditionalData) Export
EndDo;
If Not ResultPrint Then
ReceiptsCanceling(TransactionResult.Refs);
ReceiptsCanceling(TransactionResult);
PaymentForm.Items.Enter.Enabled = True;
Return;
ElsIf DocumentPostingAfterPrinting Then
PostTransaction(TransactionResult);
EndIf;
PaymentForm.Close();
@@ -1362,6 +1364,11 @@ Function WriteTransaction(PaymentResult)
DocRef = Undefined;
CashbackAmount = 0;
ReceiptStatus = Enums.RetailReceiptStatusTypes.Completed;
If DocumentPostingAfterPrinting Then
ReceiptStatus = Enums.RetailReceiptStatusTypes.PostponedWithReserve;
EndIf;
If ThisObject.isReturn Then
PaymentsTable = PaymentResult.Payments.Unload(); // ValueTable
@@ -1372,10 +1379,10 @@ Function WriteTransaction(PaymentResult)
EndDo;
If ThisObject.RetailBasis.IsEmpty() Then
DocRef = CreateReturnWithoutBase(PaymentsTable, Enums.RetailReceiptStatusTypes.Completed);
DocRef = CreateReturnWithoutBase(PaymentsTable, ReceiptStatus);
Result.Refs.Add(DocRef);
Else
DocRefs = CreateReturnOnBase(PaymentsTable, Enums.RetailReceiptStatusTypes.Completed);
DocRefs = CreateReturnOnBase(PaymentsTable, ReceiptStatus);
For Each DocRef In DocRefs Do
Result.Refs.Add(DocRef);
EndDo;
@@ -1396,7 +1403,7 @@ Function WriteTransaction(PaymentResult)
ObjectValue = FormAttributeToValue("Object");
EndIf;
ObjectValue.Date = CommonFunctionsServer.GetCurrentSessionDate();
ObjectValue.StatusType = Enums.RetailReceiptStatusTypes.Completed;
ObjectValue.StatusType = ReceiptStatus;
ObjectValue.Payments.Load(Payments);
For Each Row In ObjectValue.Payments Do
If ValueIsFilled(Row.PaymentType) Then
@@ -1411,10 +1418,14 @@ Function WriteTransaction(PaymentResult)
Except
Return Result;
EndTry;
DocRef = ObjectValue.Ref;
DPPointOfSaleServer.AfterPostingDocument(DocRef);
If ReceiptStatus = Enums.RetailReceiptStatusTypes.Completed Then
DPPointOfSaleServer.AfterPostingDocument(DocRef);
EndIf;
Result.Refs.Add(DocRef);
EndIf;
CashAmountFilter = New Structure();
@@ -1430,6 +1441,38 @@ Function WriteTransaction(PaymentResult)
Return Result;
EndFunction
// Receipts canceling.
//
// Parameters:
// TransactionInfo - See WriteTransaction
&AtServer
Procedure ReceiptsCanceling(TransactionInfo)
For Each Ref In TransactionInfo.Refs Do
ThisObject.PostponedReceipt = Ref;
RefObject = Ref.GetObject();
If RefObject.StatusType = Enums.RetailReceiptStatusTypes.Canceled Then
Continue;
EndIf;
RefObject.StatusType = Enums.RetailReceiptStatusTypes.Canceled;
RefObject.Write(DocumentWriteMode.Posting);
EndDo;
EndProcedure
// Post transaction.
//
// Parameters:
// TransactionInfo - See WriteTransaction
&AtServer
Procedure PostTransaction(TransactionInfo)
For Each DocRef In TransactionInfo.Refs Do
ThisObject.PostponedReceipt = DocRef;
RefObject = DocRef.GetObject();
RefObject.StatusType = Enums.RetailReceiptStatusTypes.Completed;
RefObject.Write(DocumentWriteMode.Posting);
DPPointOfSaleServer.AfterPostingDocument(DocRef);
EndDo;
EndProcedure
&AtClient
Procedure SetShowItems()
Items.PageButtons.CurrentPage = Items.ItemsPage;
@@ -1521,10 +1564,22 @@ Procedure ClearRetailCustomerAtServer()
EndDo;
EndProcedure
// Change consolidated retail sales.
//
// Parameters:
// Object - FormDataStructure - Object
// Form - ClientApplicationForm - Form
// NewDocument - DocumentRef.ConsolidatedRetailSales, Undefined - New document
&AtClientAtServerNoContext
Procedure ChangeConsolidatedRetailSales(Object, Form, NewDocument)
Form.ConsolidatedRetailSales = NewDocument;
Object.ConsolidatedRetailSales = NewDocument;
If NewDocument <> Undefined Then
Form.DocumentPostingAfterPrinting =
CommonFunctionsServer.GetAttributesFromRef(
NewDocument, "FiscalPrinter.DocumentPostingAfterPrinting").
FiscalPrinter.DocumentPostingAfterPrinting;
EndIf;
EndProcedure
#EndRegion
@@ -2029,7 +2084,10 @@ Function CreateReturnOnBase(PaymentData, StatusType)
DPPointOfSaleServer.BeforePostingDocument(NewDoc);
NewDoc.Write(DocumentWriteMode.Posting);
DPPointOfSaleServer.AfterPostingDocument(NewDoc.Ref);
If StatusType = Enums.RetailReceiptStatusTypes.Completed Then
DPPointOfSaleServer.AfterPostingDocument(NewDoc.Ref);
EndIf;
DocRefs.Add(NewDoc.Ref);
EndDo;
@@ -2073,9 +2131,12 @@ Function CreateReturnWithoutBase(PaymentData, StatusType)
NewDoc.Fill(FillingData);
SourceOfOriginClientServer.UpdateSourceOfOriginsQuantity(NewDoc);
DPPointOfSaleServer.BeforePostingDocument(NewDoc);
DPPointOfSaleServer.BeforePostingDocument(NewDoc);
NewDoc.Write(DocumentWriteMode.Posting);
DPPointOfSaleServer.AfterPostingDocument(NewDoc.Ref);
If StatusType = Enums.RetailReceiptStatusTypes.Completed Then
DPPointOfSaleServer.AfterPostingDocument(NewDoc.Ref);
EndIf;
Return NewDoc.Ref;
@@ -2442,23 +2503,6 @@ Procedure OpenPostponedReceiptAtServer(Receipt)
EndProcedure
// Receipts canceling.
//
// Parameters:
// Refs - Array of DocumentRef.RetailSalesReceipt - Refs
&AtServer
Procedure ReceiptsCanceling(Refs)
For Each Ref In Refs Do
ThisObject.PostponedReceipt = Ref;
RefObject = Ref.GetObject();
If RefObject.StatusType = Enums.RetailReceiptStatusTypes.Canceled Then
Continue;
EndIf;
RefObject.StatusType = Enums.RetailReceiptStatusTypes.Canceled;
RefObject.Write(DocumentWriteMode.Posting);
EndDo;
EndProcedure
&AtServerNoContext
Function CancelingPostponedReceipts(ConsolidatedRetailSales)
Result = 0;

View File

@@ -2990,6 +2990,23 @@
<common>true</common>
</edit>
</columns>
<columns>
<name>PaymentInFiscalPrinterMode</name>
<title>
<key>en</key>
<value>Payment in fiscal printer mode</value>
</title>
<id>67</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>PaymentsAmountTotal</name>
@@ -3762,6 +3779,23 @@ WHERE
</edit>
</columns>
</attributes>
<attributes>
<name>FiscalPrinter</name>
<title>
<key>en</key>
<value>Fiscal printer</value>
</title>
<id>66</id>
<valueType>
<types>CatalogRef.Hardware</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Card</name>
<title>

View File

@@ -36,6 +36,10 @@ Procedure OnCreateAtServer(Cancel, StandardProcessing)
And ConsolidatedRetailSales = RetailBasis.ConsolidatedRetailSales Then
ReturnInTheSameConsolidateSales = True;
EndIf;
If Not ConsolidatedRetailSales.IsEmpty() Then
FiscalPrinter = CommonFunctionsServer.GetRefAttribute(ThisObject.ConsolidatedRetailSales, "FiscalPrinter");
EndIf;
Items.PaymentsRRNCode.Visible = isReturn;
@@ -238,7 +242,12 @@ Procedure PaymentsOnActivateRow(Item)
CurrentData.Edited = False;
CurrentData.AmountString = GetAmountString(CurrentData.Amount);
Items.GroupPaymentByAcquiring.Visible = Not CurrentData.Hardware.isEmpty();
If Not FiscalPrinter.IsEmpty() And CurrentData.Hardware = FiscalPrinter
And CurrentData.PaymentInFiscalPrinterMode Then
Items.GroupPaymentByAcquiring.Visible = False;
EndIf;
Items.Payment_PayByPaymentCard.Enabled = Not CurrentData.PaymentDone;
@@ -255,7 +264,7 @@ Procedure PaymentsOnActivateRow(Item)
EndIf;
Items.Payment_RevertLastPayment.Enabled = Not IsBlankString(CurrentData.RRNCodeCurrentOperation);
EndProcedure
#EndRegion
@@ -272,6 +281,7 @@ Async Procedure Enter(Command)
For Each PaymentRow In Payments Do
If Not PaymentRow.Hardware.IsEmpty()
And PaymentRow.Amount > 0
And Not PaymentRow.PaymentInFiscalPrinterMode
And Not PaymentRow.PaymentDone Then
CommonFunctionsClientServer.ShowUsersMessage(R().EqAc_NotAllPaymentDone);
Return;
@@ -359,9 +369,13 @@ EndProcedure
&AtClient
Async Procedure ReconnectFiscalPrinter(Command)
Hardware = CommonFunctionsServer.GetRefAttribute(ThisObject.ConsolidatedRetailSales, "FiscalPrinter");
HardwareClient.DisconnectHardware(Hardware);
ConnectResult = Await HardwareClient.ConnectHardware(Hardware);
If FiscalPrinter.IsEmpty() Then
CommonFunctionsClientServer.ShowUsersMessage(R().Eq_013);
Return;
EndIf;
HardwareClient.DisconnectHardware(FiscalPrinter);
ConnectResult = Await HardwareClient.ConnectHardware(FiscalPrinter);
If Not ConnectResult.Result Then
CommonFunctionsClientServer.ShowUsersMessage(ConnectResult.ErrorDescription);
Else
@@ -732,6 +746,10 @@ Procedure FillPayments(Result, AdditionalParameters) Export
Settings = EquipmentAcquiringServer.GetAcquiringHardwareSettings();
Settings.Account = Row.Account;
Row.Hardware = EquipmentAcquiringServer.GetAcquiringHardware(Settings);
If Not Row.Hardware.IsEmpty() Then
Row.PaymentInFiscalPrinterMode =
CommonFunctionsServer.GetRefAttribute(Row.Hardware, "PaymentInFiscalPrinterMode");
EndIf;
EndIf;
Items.Payments.CurrentRow = Row.GetID();

View File

@@ -84,9 +84,11 @@ Procedure Filling(FillingData, FillingText, StandardProcessing)
ThisObject.BasisDocument = Basis;
If TypeOf(Basis) = Type("DocumentRef.RetailReceiptCorrection") Then
ThisObject.BasisDocumentFiscalNumber = Basis.BasisDocumentFiscalNumber;
ThisObject.BasisDocumentShiftNumber = Basis.BasisDocumentShiftNumber;
Else
FiscalBasisData = InformationRegisters.DocumentFiscalStatus.GetStatusData(Basis);
ThisObject.BasisDocumentFiscalNumber = FiscalBasisData.CheckNumber;
ThisObject.BasisDocumentShiftNumber = FiscalBasisData.ShiftNumber;
EndIf;
ControllerClientServer_V2.SetReadOnlyProperties(ThisObject, FillingStructure);

View File

@@ -447,6 +447,24 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="f1d9ebf0-6e8d-416d-a191-6a9f02b6d651">
<name>BasisDocumentShiftNumber</name>
<synonym>
<key>en</key>
<value>Basis document shift number</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>20</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="25f5eabb-f4ad-4a36-b595-cf68b50bc18b">
<name>DocumentForm</name>
<synonym>
@@ -1439,6 +1457,20 @@
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="95ca2eca-17a3-4652-a547-5a5cf5fb52d0">
<name>PaymentInFiscalPrinterMode</name>
<synonym>
<key>en</key>
<value>Payment in fiscal printer mode</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="ea9bc598-0402-4151-a107-c0f62aef9194">
<producedTypes>

View File

@@ -1612,6 +1612,20 @@
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="43bbadd7-fcaf-47d3-9dd3-93b9bdeea9e0">
<name>PaymentInFiscalPrinterMode</name>
<synonym>
<key>en</key>
<value>Payment in fiscal printer mode</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="644488bc-e231-458a-9cca-7f62474c809d">
<producedTypes>

View File

@@ -1546,6 +1546,20 @@
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="1e8125a5-8921-475b-815a-d92c569e197b">
<name>PaymentInFiscalPrinterMode</name>
<synonym>
<key>en</key>
<value>Payment in fiscal printer mode</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="fac862fc-34a5-4249-954f-05cc4fcff6fb">
<producedTypes>

View File

@@ -55,6 +55,24 @@
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</resources>
<resources uuid="badebfa3-0b35-4b94-84fd-afd47c241f8d">
<name>ShiftNumber</name>
<synonym>
<key>en</key>
<value>Shift number</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>50</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</resources>
<attributes uuid="57efa06c-9cde-43c8-a1ca-1af9b4c65b19">
<name>FiscalResponse</name>
<synonym>

View File

@@ -20,6 +20,7 @@ Procedure SetStatus(Document, Status, FiscalResponse, DataPresentation = "") Exp
If TypeOf(FiscalResponse) = Type("Structure") Then
If FiscalResponse.Property("Out") And FiscalResponse.Out.Property("DocumentOutputParameters") And TypeOf(FiscalResponse.Out.DocumentOutputParameters) = Type("Structure") Then
NewRecord.CheckNumber = Format(FiscalResponse.Out.DocumentOutputParameters.CheckNumber, "NG=");
NewRecord.ShiftNumber = Format(FiscalResponse.Out.DocumentOutputParameters.ShiftNumber, "NG=");
EndIf;
EndIf;
NewRecord.Write(True);
@@ -36,6 +37,7 @@ EndProcedure
// * FiscalResponse - String -
// * DataPresentation - String -
// * CheckNumber - String -
// * ShiftNumber - String -
// * IsPrinted - Boolean -
Function GetStatusData(Document) Export
StatusData = New Structure();
@@ -43,12 +45,14 @@ Function GetStatusData(Document) Export
StatusData.Insert("FiscalResponse", "");
StatusData.Insert("DataPresentation", "");
StatusData.Insert("CheckNumber", 0);
StatusData.Insert("ShiftNumber", 0);
StatusData.Insert("IsPrinted", False);
Query = New Query;
Query.Text = "SELECT
| DocumentFiscalStatus.Status,
| DocumentFiscalStatus.FiscalResponse,
| DocumentFiscalStatus.DataPresentation,
| DocumentFiscalStatus.ShiftNumber,
| DocumentFiscalStatus.CheckNumber
|FROM
| InformationRegister.DocumentFiscalStatus AS DocumentFiscalStatus

View File

@@ -69,6 +69,7 @@ Function CommonFunctionsServer_GetAttributesFromRef() Export
If ArrayOfErrors.Count() Then
Unit_Service.assertFalse("Errors in : CommonFunctionsServer.GetAttributesFromRef() - String" + Chars.LF +
StrConcat(ArrayOfErrors, Chars.LF));
ArrayOfErrors = New Array; // Array of String
EndIf;
Attributes = New Array; // Array of String
@@ -95,6 +96,7 @@ Function CommonFunctionsServer_GetAttributesFromRef() Export
If ArrayOfErrors.Count() Then
Unit_Service.assertFalse("Errors in : CommonFunctionsServer.GetAttributesFromRef() - Array" + Chars.LF +
StrConcat(ArrayOfErrors, Chars.LF));
ArrayOfErrors = New Array; // Array of String
EndIf;
Selection = Catalogs.Items.Select();
@@ -111,8 +113,43 @@ Function CommonFunctionsServer_GetAttributesFromRef() Export
If ArrayOfErrors.Count() Then
Unit_Service.assertFalse("Errors in : CommonFunctionsServer.GetAttributesFromRef() - Exist Ref" + Chars.LF +
StrConcat(ArrayOfErrors, Chars.LF));
ArrayOfErrors = New Array; // Array of String
EndIf;
EndIf;
EmptyCRS = Documents.ConsolidatedRetailSales.EmptyRef();
Attributes = New Array; // Array of String
Attributes.Add("FiscalPrinter.Ref");
Attributes.Add("FiscalPrinter.DocumentPostingAfterPrinting");
Result = CommonFunctionsServer.GetAttributesFromRef(EmptyCRS, Attributes); // Structure
If Not TypeOf(Result) = Type("Structure") Then
ArrayOfErrors.Add("Unknown response type");
Else
If Not Result.Property("FiscalPrinter") Then
ArrayOfErrors.Add("Property ""FiscalPrinter"" not found");
ElsIf Not TypeOf(Result["FiscalPrinter"]) = Type("Structure") Then
ArrayOfErrors.Add("Property ""FiscalPrinter"" has unknown response type");
Else
FiscalPrinter = Result["FiscalPrinter"]; // Structure
If Not FiscalPrinter.Property("Ref") Then
ArrayOfErrors.Add("Property ""FiscalPrinter.Ref"" not found");
ElsIf Not FiscalPrinter["Ref"] = Catalogs.Hardware.EmptyRef() Then
ArrayOfErrors.Add("Property ""FiscalPrinter.Ref"" has an invalid value");
EndIf;
If Not FiscalPrinter.Property("DocumentPostingAfterPrinting") Then
ArrayOfErrors.Add("Property ""FiscalPrinter.DocumentPostingAfterPrinting"" not found");
ElsIf Not FiscalPrinter["DocumentPostingAfterPrinting"] = False Then
ArrayOfErrors.Add("Property ""FiscalPrinter.DocumentPostingAfterPrinting"" has an invalid value");
EndIf;
EndIf;
EndIf;
If ArrayOfErrors.Count() Then
Unit_Service.assertFalse("Errors in : CommonFunctionsServer.GetAttributesFromRef() - Values from Empty CRS Ref" + Chars.LF +
StrConcat(ArrayOfErrors, Chars.LF));
EndIf;
Return Undefined;
EndFunction

View File

@@ -13,7 +13,7 @@ SalesReceiptXML1 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="100" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 15 with SLN and code control (Main Company - Consignor 1) ODS [900999000009]" Quantity="1" PaymentMethod="4" PriceWithDiscount="100" VATRate="18" VATAmount="15.25" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -30,7 +30,7 @@ SalesReceiptXML2 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="100" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899877]" Quantity="1" PaymentMethod="4" PriceWithDiscount="100" VATRate="18" VATAmount="15.25"/>
<FiscalString AmountWithDiscount="520" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Dress XS/Blue" Quantity="1" PaymentMethod="4" PriceWithDiscount="520" VATRate="18" VATAmount="79.32"/>
@@ -44,7 +44,7 @@ SalesReceiptXML3 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="100" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="4" PriceWithDiscount="100" VATRate="18" VATAmount="15.25"/>
<FiscalString AmountWithDiscount="520" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Dress XS/Blue" Quantity="1" PaymentMethod="4" PriceWithDiscount="520" VATRate="18" VATAmount="79.32"/>
@@ -59,7 +59,7 @@ SalesReceiptXML4 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="118" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="4" PriceWithDiscount="118" VATRate="18" VATAmount="18"/>
</Positions>
@@ -70,7 +70,7 @@ SalesReceiptXML5 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="118" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="6" PriceWithDiscount="118" VATRate="18" VATAmount="18"/>
</Positions>
@@ -82,7 +82,7 @@ SalesReceiptXML51 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="129.8" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="5" PriceWithDiscount="129.8" VATRate="18" VATAmount="19.8"/>
</Positions>
@@ -95,7 +95,7 @@ SalesReceiptXML6 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="210" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="4" PriceWithDiscount="210" VATRate="18" VATAmount="32.03"/>
</Positions>
@@ -107,7 +107,7 @@ SalesReceiptXML7 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="118" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="6" PriceWithDiscount="118" VATRate="18" VATAmount="18"/>
</Positions>
@@ -119,7 +119,7 @@ SalesReceiptXML71 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="129.8" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="5" PriceWithDiscount="129.8" VATRate="18" VATAmount="19.8"/>
</Positions>
@@ -131,7 +131,7 @@ SalesReceiptXML8 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="520" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Dress XS/Blue" Quantity="1" PaymentMethod="4" PriceWithDiscount="520" VATRate="18" VATAmount="79.32"/>
</Positions>
@@ -143,7 +143,7 @@ SalesReceiptXML9 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="442" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 11 with SLN (Main Company - Consignor 1) PZU [11111111111112]" Quantity="2" PaymentMethod="4" PriceWithDiscount="221" VATRate="18" VATAmount="67.42" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -160,7 +160,7 @@ SalesReceiptXML10 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="100" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899877]" Quantity="1" PaymentMethod="4" PriceWithDiscount="100" VATRate="18" VATAmount="15.25"/>
<FiscalString AmountWithDiscount="520" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Dress XS/Blue" Quantity="1" PaymentMethod="4" PriceWithDiscount="520" VATRate="18" VATAmount="79.32"/>
@@ -173,7 +173,7 @@ SalesReceiptXML11 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="200" DiscountAmount="0" MarkingCode="11111111111111111111" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899877]" Quantity="1" PaymentMethod="4" PriceWithDiscount="200" VATRate="18" VATAmount="30.51"/>
</Positions>
@@ -185,7 +185,7 @@ SalesReceiptXML12 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="100" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 9 with SLN (control code string, without check) ODS [999999999]" Quantity="1" PaymentMethod="4" PriceWithDiscount="100" VATRate="18" VATAmount="15.25"/>
</Positions>
@@ -197,7 +197,7 @@ SalesReceiptXML13 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="112" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899880]" Quantity="1" PaymentMethod="4" PriceWithDiscount="112" VATRate="18" VATAmount="17.08"/>
</Positions>
@@ -209,7 +209,7 @@ SalesReceiptXML14 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="112" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899880]" Quantity="1" PaymentMethod="4" PriceWithDiscount="112" VATRate="18" VATAmount="17.08"/>
</Positions>
@@ -220,7 +220,7 @@ SalesReceiptXML15 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="113" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899880]" Quantity="1" PaymentMethod="4" PriceWithDiscount="113" VATRate="18" VATAmount="17.24"/>
</Positions>
@@ -232,7 +232,7 @@ SalesReceiptXML16 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="113" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899880]" Quantity="1" PaymentMethod="4" PriceWithDiscount="113" VATRate="18" VATAmount="17.24"/>
</Positions>
@@ -244,7 +244,7 @@ SalesReceiptXML17 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="500" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="10" Name="Certificate without denominal [99999999999]" Quantity="1" PaymentMethod="3" PriceWithDiscount="500" VATRate="18" VATAmount="76.27"/>
</Positions>
@@ -256,7 +256,7 @@ SalesReceiptXML18 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="520" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Dress XS/Blue" Quantity="1" PaymentMethod="4" PriceWithDiscount="520" VATRate="18" VATAmount="79.32"/>
<FiscalString AmountWithDiscount="200" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899880]" Quantity="1" PaymentMethod="4" PriceWithDiscount="200" VATRate="18" VATAmount="30.51"/>
@@ -268,7 +268,7 @@ SalesReceiptXML19 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="520" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Dress XS/Blue" Quantity="1" PaymentMethod="4" PriceWithDiscount="520" VATRate="18" VATAmount="79.32"/>
<FiscalString AmountWithDiscount="200" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 1 with SLN PZU [8908899880]" Quantity="1" PaymentMethod="4" PriceWithDiscount="200" VATRate="18" VATAmount="30.51"/>
@@ -281,7 +281,7 @@ SalesReceiptXML20 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="300" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="10" Name="Certificate without denominal [99999999998]" Quantity="1" PaymentMethod="3" PriceWithDiscount="300" VATRate="18" VATAmount="45.76"/>
</Positions>
@@ -293,7 +293,7 @@ SalesReceiptXML21 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="100" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product with Unique SLN ODS [0909088998998898789]" Quantity="1" PaymentMethod="4" PriceWithDiscount="100" VATRate="18" VATAmount="15.25" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -313,7 +313,7 @@ SalesReceiptXML22 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="300" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 16 with SLN and Good code data (Main Company - Consignor 1) PZU [89000008999]" Quantity="1" PaymentMethod="4" PriceWithDiscount="300" VATRate="18" VATAmount="45.76" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -333,7 +333,7 @@ SalesReceiptXML23 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="300" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 16 with SLN and Good code data (Main Company - Consignor 1) PZU [89000008999]" Quantity="1" PaymentMethod="4" PriceWithDiscount="300" VATRate="18" VATAmount="45.76" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -353,7 +353,7 @@ SalesReceiptXML24 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="301.11" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY3" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 16 with SLN and Good code data (Main Company - Consignor 1) PZU [89000008999]" Quantity="1" PaymentMethod="4" PriceWithDiscount="301.11" VATRate="18" VATAmount="45.93" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -370,7 +370,7 @@ SalesReceiptXML25 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="301.11" DiscountAmount="0" MarkingCode="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY3" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 16 with SLN and Good code data (Main Company - Consignor 1) PZU [89000008999]" Quantity="1" PaymentMethod="4" PriceWithDiscount="301.11" VATRate="18" VATAmount="45.93" CalculationAgent="5">
<VendorData VendorINN="1111111111" VendorName="Consignor 1" VendorPhone="+9 (000) 000-00-01"/>
@@ -387,7 +387,7 @@ SalesReceiptXML26 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="401.11" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="4" PriceWithDiscount="401.11" VATRate="18" VATAmount="61.19">
<GoodCodeData NotIdentified="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY8"/>
@@ -404,7 +404,7 @@ SalesReceiptXML27 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute=""/>
<Positions>
<FiscalString AmountWithDiscount="401.11" DiscountAmount="0" MeasureOfQuantity="255" CalculationSubject="1" Name="Product 6 with SLN PZU [57897909799]" Quantity="1" PaymentMethod="4" PriceWithDiscount="401.11" VATRate="18" VATAmount="61.19">
<GoodCodeData NotIdentified="Q3VycmVudCByb3cgd2lsbCBkZWNvZGUgdG8gYmFzZTY8"/>
@@ -421,7 +421,7 @@ SalesReceiptXML28 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="715">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="715">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-19T13:24:48"/>
</Parameters>
<Positions>
@@ -453,7 +453,7 @@ SalesReceiptXML29 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="716">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="716">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-19T13:24:48"/>
</Parameters>
<Positions>
@@ -485,7 +485,7 @@ SalesReceiptXML30 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="717">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="717">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-19T14:15:51"/>
</Parameters>
<Positions>
@@ -517,7 +517,7 @@ SalesReceiptXML31 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="718">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="718">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-19T14:15:51"/>
</Parameters>
<Positions>
@@ -549,7 +549,7 @@ SalesReceiptXML32 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="719">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="719">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-19T14:50:09"/>
</Parameters>
<Positions>
@@ -581,7 +581,7 @@ SalesReceiptXML33 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="720">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="720">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-19T14:50:09"/>
</Parameters>
<Positions>
@@ -613,7 +613,7 @@ SalesReceiptXML34 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="721">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="1" TaxationSystem="0" AdditionalAttribute="721">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-20T12:00:00"/>
</Parameters>
<Positions>
@@ -644,7 +644,7 @@ SalesReceiptXML35 =
"""xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters CashierName="Арина Браун" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="722">
<Parameters CashierName="Arina Brown" CashierINN="1111111111" SaleAddress="Sale address" SaleLocation="Sale location" OperationType="2" TaxationSystem="0" AdditionalAttribute="722">
<CorrectionData Type="0" Number="0" Description="wrong VAT rate" Date="2023-12-20T12:00:00"/>
</Parameters>
<Positions>
@@ -1062,7 +1062,7 @@ Scenario: _0850002 open session
And I save the value of the field named "Number" as "$$NumberCRS11$$"
And I parsed the log of the fiscal emulator by the path '$$LogPath$$' into the variable "ParsingResult"
And I check "$ParsingResult$" with "0" and method is "OpenShift"
And I check "$ParsingResult$" with "0" and data in "In.Parameter2" contains 'CashierName="Арина Браун"'
And I check "$ParsingResult$" with "0" and data in "In.Parameter2" contains 'CashierName="Arina Brown"'
And I check "$ParsingResult$" with "0" and data in "In.Parameter2" contains 'CashierINN="1111111111"'
And I check "$ParsingResult$" with "0" and data in "In.Parameter2" contains 'SaleAddress="Sale address"'
And I check "$ParsingResult$" with "0" and data in "In.Parameter2" contains 'SaleLocation="Sale location"'