Skip to content

Commit 70cf2bb

Browse files
authored
Merge pull request #23 from rMozg/discounts
скидка на чек
2 parents 1acfc27 + 45efd28 commit 70cf2bb

File tree

4 files changed

+115
-0
lines changed

4 files changed

+115
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package ru.evotor.framework.core.action.event.receipt.discount;
2+
3+
import android.os.Bundle;
4+
5+
import java.math.BigDecimal;
6+
7+
public class ReceiptDiscountEvent {
8+
private static final String TAG = "ReceiptDiscountEvent";
9+
10+
public static final String NAME = "evo.v2.receipt.sell.receiptDiscount";
11+
private static final String KEY_DISCOUNT = "discount";
12+
13+
public static ReceiptDiscountEvent create(Bundle bundle) {
14+
BigDecimal discount = new BigDecimal(bundle.getString(KEY_DISCOUNT, "0"));
15+
return new ReceiptDiscountEvent(discount);
16+
}
17+
18+
private BigDecimal discount;
19+
20+
public ReceiptDiscountEvent(BigDecimal discount) {
21+
this.discount = discount;
22+
}
23+
24+
public Bundle toBundle() {
25+
Bundle result = new Bundle();
26+
result.putString(KEY_DISCOUNT, discount.toPlainString());
27+
return result;
28+
}
29+
30+
public BigDecimal getDiscount() {
31+
return discount;
32+
}
33+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ru.evotor.framework.core.action.event.receipt.discount;
2+
3+
import ru.evotor.framework.core.IntegrationActivity;
4+
5+
public class ReceiptDiscountEventActivity extends IntegrationActivity {
6+
public void setIntegrationResult(ReceiptDiscountEventResult result) {
7+
setIntegrationResult(result == null ? null : result.toBundle());
8+
}
9+
10+
public ReceiptDiscountEvent getEvent() {
11+
return ReceiptDiscountEvent.create(getSourceBundle());
12+
}
13+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package ru.evotor.framework.core.action.event.receipt.discount;
2+
3+
import android.os.Bundle;
4+
5+
import ru.evotor.framework.core.action.processor.ActionProcessor;
6+
7+
public abstract class ReceiptDiscountEventProcessor extends ActionProcessor {
8+
public ReceiptDiscountEventProcessor() {
9+
super(ReceiptDiscountEvent.NAME);
10+
}
11+
12+
@Override
13+
public void process(Bundle bundle, Callback callback) {
14+
call(ReceiptDiscountEvent.create(bundle), callback);
15+
}
16+
17+
public abstract void call(ReceiptDiscountEvent event, Callback callback);
18+
}
19+
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package ru.evotor.framework.core.action.event.receipt.discount;
2+
3+
import android.os.Bundle;
4+
5+
import java.math.BigDecimal;
6+
7+
import ru.evotor.framework.Utils;
8+
9+
public class ReceiptDiscountEventResult {
10+
11+
private static final String KEY_RESULT = "result";
12+
private static final String KEY_DISCOUNT = "discount";
13+
14+
public static ReceiptDiscountEventResult create(Bundle bundle) {
15+
String resultName = bundle.getString(KEY_RESULT);
16+
BigDecimal discount = new BigDecimal(bundle.getString(KEY_DISCOUNT, "0"));
17+
return new ReceiptDiscountEventResult(
18+
Utils.safeValueOf(Result.class, resultName, Result.UNKNOWN),
19+
discount
20+
);
21+
}
22+
23+
private final Result result;
24+
private final BigDecimal discount;
25+
26+
public ReceiptDiscountEventResult(Result result, BigDecimal discount) {
27+
this.result = result;
28+
this.discount = discount;
29+
}
30+
31+
public Bundle toBundle() {
32+
Bundle bundle = new Bundle();
33+
bundle.putString(KEY_RESULT, result.name());
34+
bundle.putString(KEY_DISCOUNT, discount.toPlainString());
35+
return bundle;
36+
}
37+
38+
public BigDecimal getDiscount() {
39+
return discount;
40+
}
41+
42+
public Result getResult() {
43+
return result;
44+
}
45+
46+
public enum Result {
47+
OK,
48+
UNKNOWN;
49+
}
50+
}

0 commit comments

Comments
 (0)