Skip to content

Commit e710d1e

Browse files
author
Mikhail Kalatchev
committed
v.0.3.1 (Raw requests)
1 parent 0871905 commit e710d1e

4 files changed

Lines changed: 74 additions & 33 deletions

File tree

ErpNetClient/Client.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,23 @@ public async Task<DeviceStatusWithDateTime> GetPrinterStatusAsync(string deviceI
119119
}
120120
}
121121

122+
/// <summary>
123+
/// Register sale
124+
/// </summary>
125+
/// <param name="receipt">Receipt</param>
126+
/// <returns>Receipt status</returns>
127+
public async Task<DeviceStatusWithReceiptInfo> SendRawRequest(RawRequest request)
128+
{
129+
using (var clt = new HttpClient())
130+
{
131+
StringContent cont = new StringContent(JsonSerializer.Serialize<RawRequest>(request, serializeOptions), Encoding.UTF8, "application/json");
132+
clt.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
133+
HttpResponseMessage res = await clt.PostAsync(new Uri($"{BaseUrl}printers/{this.DeviceId}/rawrequest"), cont);
134+
string resStr = await res.Content.ReadAsStringAsync();
135+
return JsonSerializer.Deserialize<DeviceStatusWithReceiptInfo>(resStr, serializeOptions);
136+
}
137+
}
138+
122139
}
123140

124141
}

ErpNetClient/ErpNetClient.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<PackageTags>Fiscal server;Datecs;Tremol;Daisy;Eltrade;Incotex;ISL;SKYWARE Group;ErpNet.FS</PackageTags>
1616
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1717
<RepositoryUrl>https://github.com/SKYWARE-Group/ErpNetClient</RepositoryUrl>
18-
<Version>0.3.0</Version>
18+
<Version>0.3.1</Version>
1919
</PropertyGroup>
2020

2121
<ItemGroup>
@@ -35,7 +35,7 @@
3535
</ItemGroup>
3636

3737
<ItemGroup>
38-
<PackageReference Include="System.Text.Json" Version="6.0.5" />
38+
<PackageReference Include="System.Text.Json" Version="6.0.6" />
3939
</ItemGroup>
4040

4141
</Project>

ErpNetClient/Model/RawRequest.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using System.Text.Json.Serialization;
5+
6+
namespace Skyware.ErpNetFS.Model
7+
{
8+
9+
/// <summary>
10+
/// Represent raw request (comand+data) to be sent to the fiscal printer
11+
/// </summary>
12+
public class RawRequest
13+
{
14+
15+
[JsonPropertyName("rawRequest")]
16+
public string Request { get; set; }
17+
18+
}
19+
}

TestApp/Program.cs

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,38 +20,38 @@ static async Task Main(string[] args)
2020
//var x = await c.GetPrinterStatus();
2121
//Console.WriteLine($"abc: {x.Ok}");
2222

23-
var r = new Receipt()
24-
{
25-
Operator = "1",
26-
OperatorPassword = "1",
27-
Items = new Item[] {
28-
new Item() { Text = "LIS iLab", Amount = 1, UnitPrice = 0.01m, Quantity = 1, TaxGroup = TaxGroup.TaxGroup1}
29-
},
30-
Payments = new Payment[] {
31-
new Payment() { Amount = 0.01m, PaymentType = PaymentType.Cash }
32-
}
33-
};
34-
var c = new Client() { DeviceId = "dt937256" };
35-
var x = await c.PrintFiscalReceiptAsync(r);
36-
Console.WriteLine($"OK: {x.Ok}, Receipt number: {x.ReceiptNumber}");
23+
//var r = new Receipt()
24+
//{
25+
// Operator = "1",
26+
// OperatorPassword = "1",
27+
// Items = new Item[] {
28+
// new Item() { Text = "LIS iLab", Amount = 1, UnitPrice = 0.01m, Quantity = 1, TaxGroup = TaxGroup.TaxGroup1}
29+
// },
30+
// Payments = new Payment[] {
31+
// new Payment() { Amount = 0.01m, PaymentType = PaymentType.Cash }
32+
// }
33+
//};
34+
//var c = new Client() { DeviceId = "dt937256" };
35+
//var x = await c.PrintFiscalReceiptAsync(r);
36+
//Console.WriteLine($"OK: {x.Ok}, Receipt number: {x.ReceiptNumber}");
3737

38-
var rfnd = new ReversalReceipt()
39-
{
40-
Operator = "1",
41-
OperatorPassword = "1",
42-
FiscalMemorySerialNumber = x.FiscalMemorySerialNumber,
43-
ReceiptDateTime = x.ReceiptDateTime,
44-
Reason = ReversalReason.Refund,
45-
ReceiptNumber = x.ReceiptNumber,
46-
Items = new Item[] {
47-
new Item() { Text = "LIS iLab", Amount = 1, UnitPrice = 0.01m, Quantity = 1, TaxGroup = TaxGroup.TaxGroup1}
48-
},
49-
Payments = new Payment[] {
50-
new Payment() { Amount = 0.01m, PaymentType = PaymentType.Cash }
51-
}
52-
};
53-
var y = await c.PrintRefundReceiptAsync(rfnd);
54-
Console.WriteLine($"OK: {y.Ok}, Receipt number: {y.ReceiptNumber}");
38+
//var rfnd = new ReversalReceipt()
39+
//{
40+
// Operator = "1",
41+
// OperatorPassword = "1",
42+
// FiscalMemorySerialNumber = x.FiscalMemorySerialNumber,
43+
// ReceiptDateTime = x.ReceiptDateTime,
44+
// Reason = ReversalReason.Refund,
45+
// ReceiptNumber = x.ReceiptNumber,
46+
// Items = new Item[] {
47+
// new Item() { Text = "LIS iLab", Amount = 1, UnitPrice = 0.01m, Quantity = 1, TaxGroup = TaxGroup.TaxGroup1}
48+
// },
49+
// Payments = new Payment[] {
50+
// new Payment() { Amount = 0.01m, PaymentType = PaymentType.Cash }
51+
// }
52+
//};
53+
//var y = await c.PrintRefundReceiptAsync(rfnd);
54+
//Console.WriteLine($"OK: {y.Ok}, Receipt number: {y.ReceiptNumber}");
5555

5656
//var c = new Client() { DeviceId = "abc" };
5757
//var x = await c.PrintXReport();
@@ -61,6 +61,11 @@ static async Task Main(string[] args)
6161
//var x = await c.PrintZReport();
6262
//Console.WriteLine($"OK: {x.Ok}");
6363

64+
var c = new Client() { DeviceId = "dt937256" };
65+
var res = await c.SendRawRequest(new RawRequest() { Request = "P800\t200\t" });
66+
res = await c.SendRawRequest(new RawRequest() { Request = "P1200\t200\t" });
67+
res = await c.SendRawRequest(new RawRequest() { Request = "P1800\t200\t" });
68+
Console.WriteLine($"OK: {res.Ok}");
6469
}
6570

6671
}

0 commit comments

Comments
 (0)