1 package com.srv4pos.server.api.sale;
2
3 import com.srv4pos.server.api.ServiceFactory;
4 import com.srv4pos.server.api.activation.ActivationServiceSample;
5 import com.srv4pos.server.api.day.DayInfo;
6 import com.srv4pos.server.api.day.DayService;
7 import com.srv4pos.server.api.infrastructure.credentials.Credentials;
8 import com.srv4pos.server.api.infrastructure.http.Transport;
9 import com.srv4pos.server.api.posplus.PrintType;
10 import com.srv4pos.server.api.seller.SellerService;
11
12 import java.net.URL;
13 import java.util.Collections;
14 import java.util.Date;
15
16
17
18
19 public class SaleServiceSample {
20 private final SaleService saleService;
21 private final SellerService sellerService;
22 private final Credentials credentials;
23 private final DayService dayService;
24
25 public SaleServiceSample(URL url, Credentials credentials, Transport transport) {
26 ServiceFactory serviceFactory = new ServiceFactory(url, credentials, transport);
27 saleService = serviceFactory.getSaleService();
28 dayService = serviceFactory.getDayService();
29 sellerService = serviceFactory.getSellerService();
30 this.credentials = credentials;
31 }
32
33 public void test() {
34 int version = sellerService.getThisVersion().getVersion();
35
36 DayInfo dayInfo = new DayInfo();
37
38 dayInfo.setCashAtClose(100);
39 dayInfo.setCash(110);
40 dayInfo.setCashRegisterName("Cash22");
41 dayInfo.setClose(null);
42 dayInfo.setModified(new Date(1000000000001L));
43 dayInfo.setGrandTotal(120);
44 dayInfo.setOpen(new Date(1000000000002L));
45 dayInfo.setOpened(true);
46 dayInfo.setReportPrinted(false);
47 dayInfo.setDayNumber(10);
48 dayInfo.setGrandTotalRefund(130);
49
50 String dayIdentifier = dayService.create(version, dayInfo).getIdentifier();
51
52 dayInfo.setIdentifier(dayIdentifier);
53 dayInfo.setCash(200);
54
55 dayService.put(version, dayInfo);
56
57 SaleInfo saleInfo = new SaleInfo();
58 saleInfo.setAbsoluteDiscount(0);
59 saleInfo.setRelativeDiscount(1000);
60 saleInfo.setDay(dayIdentifier);
61 saleInfo.setDiscount(3700);
62 saleInfo.setClose(new Date());
63 saleInfo.setRefund(true);
64 saleInfo.setVat(6660);
65 saleInfo.setRefundFor(123);
66 saleInfo.setBrutto(33300);
67 saleInfo.setVanillaBrutto(37000);
68 saleInfo.setControlUnitId(ActivationServiceSample.CONTROL_UNIT_SERIAL_NUMBER);
69
70 saleInfo.setSaleState(SaleState.Open);
71
72 SaleProductInfo saleProductInfo = new SaleProductInfo();
73 saleProductInfo.setAbsoluteDiscount(500);
74 saleProductInfo.setRelativeDiscount(0);
75 saleProductInfo.setDiscount(500);
76 saleProductInfo.setDeltaUnit(true);
77 saleProductInfo.setDelta(300);
78 saleProductInfo.setNetto(29600);
79 saleProductInfo.setVat(7400);
80 saleProductInfo.setBrutto(37000);
81 saleProductInfo.setEffectiveBrutto(33300);
82 saleProductInfo.setCreated(new Date());
83 saleProductInfo.setVanillaBrutto(37500);
84 saleProductInfo.setProductBrutto(12500);
85 saleProductInfo.setVatRate(2500);
86 saleProductInfo.setProductIdentifier("PRODUCT1");
87
88 PrintInfo printInfo = new PrintInfo();
89 printInfo.setReceiptNumber(0);
90 printInfo.setPrintType(PrintType.Proforma);
91 printInfo.setControlNumber("123");
92 printInfo.setDeliveryType(DeliveryType.Display);
93
94 PaymentInfo paymentInfo = new PaymentInfo();
95 paymentInfo.setPaymentType(PaymentType.Card);
96 paymentInfo.setPaymentState(PaymentState.PENDING);
97 paymentInfo.setAmount(10);
98
99 VatRateSumInfo vatRateSumInfo = new VatRateSumInfo();
100 vatRateSumInfo.setBrutto(33300);
101 vatRateSumInfo.setNetto(26640);
102 vatRateSumInfo.setVat(6660);
103 vatRateSumInfo.setVanillaBrutto(37000);
104 vatRateSumInfo.setVanillaNetto(29600);
105 vatRateSumInfo.setVanillaVat(7400);
106 vatRateSumInfo.setVatRate(2500);
107
108 saleInfo.setSaleProducts(Collections.singletonList(saleProductInfo));
109 saleInfo.setPrints(Collections.singletonList(printInfo));
110 saleInfo.setPayments(Collections.singletonList(paymentInfo));
111 saleInfo.setVatRateSums(Collections.singletonList(vatRateSumInfo));
112
113 saleInfo.setSellerIdentifier(credentials.getSellerId());
114
115 saleService.create(version, saleInfo);
116 }
117 }