| Line 1... |
Line 1... |
| 1 |
package com.spice.profitmandi.dao.model;
|
1 |
package com.spice.profitmandi.dao.model;
|
| 2 |
|
2 |
|
| 3 |
import java.time.LocalDateTime;
|
3 |
import java.time.LocalDateTime;
|
| 4 |
import java.util.List;
|
4 |
import java.util.List;
|
| 5 |
|
5 |
|
| - |
|
6 |
import org.apache.logging.log4j.LogManager;
|
| 6 |
import org.apache.commons.lang3.StringUtils;
|
7 |
import org.apache.logging.log4j.Logger;
|
| 7 |
|
8 |
|
| 8 |
import com.spice.profitmandi.dao.enumuration.catalog.AchievementType;
|
9 |
import com.spice.profitmandi.dao.enumuration.catalog.AchievementType;
|
| - |
|
10 |
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
|
| 9 |
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
|
11 |
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
|
| 10 |
import com.spice.profitmandi.service.offers.ItemCriteria;
|
12 |
import com.spice.profitmandi.service.offers.ItemCriteria;
|
| 11 |
import com.spice.profitmandi.service.offers.PartnerCriteria;
|
13 |
import com.spice.profitmandi.service.offers.PartnerCriteria;
|
| - |
|
14 |
import com.spice.profitmandi.service.offers.PayoutSlab;
|
| 12 |
|
15 |
|
| 13 |
public class CreateOfferRequest {
|
16 |
public class CreateOfferRequest {
|
| 14 |
private int id;
|
17 |
private int id;
|
| 15 |
private boolean active;
|
18 |
private boolean active;
|
| 16 |
private boolean incrementalTarget;
|
19 |
private boolean incrementalTarget;
|
| Line 30... |
Line 33... |
| 30 |
private LocalDateTime createdOn;
|
33 |
private LocalDateTime createdOn;
|
| 31 |
private List<TargetSlab> targetSlabs;
|
34 |
private List<TargetSlab> targetSlabs;
|
| 32 |
private PartnerCriteria partnerCriteria;
|
35 |
private PartnerCriteria partnerCriteria;
|
| 33 |
private String partnerCriteriaString;
|
36 |
private String partnerCriteriaString;
|
| 34 |
|
37 |
|
| - |
|
38 |
private static final Logger LOGGER = LogManager.getLogger(CreateOfferRequest.class);
|
| - |
|
39 |
|
| 35 |
public int getEligibleSale() {
|
40 |
public int getEligibleSale() {
|
| 36 |
return eligibleSale;
|
41 |
return eligibleSale;
|
| 37 |
}
|
42 |
}
|
| - |
|
43 |
|
| 38 |
public void setEligibleSale(int eligibleSale) {
|
44 |
public void setEligibleSale(int eligibleSale) {
|
| 39 |
this.eligibleSale = eligibleSale;
|
45 |
this.eligibleSale = eligibleSale;
|
| 40 |
}
|
46 |
}
|
| 41 |
|
47 |
|
| - |
|
48 |
private void addAchievementPayoutString(StringBuffer sb, ItemCriteriaPayout itemCriteriaPayout,
|
| - |
|
49 |
PayoutSlab payoutSlab) {
|
| - |
|
50 |
this.addAchievementString(sb, itemCriteriaPayout);
|
| - |
|
51 |
sb.append(", Get ");
|
| - |
|
52 |
this.addPayoutString(sb, itemCriteriaPayout, payoutSlab);
|
| - |
|
53 |
}
|
| - |
|
54 |
|
| - |
|
55 |
private void addAchievementString(StringBuffer sb, ItemCriteriaPayout itemCriteriaPayout) {
|
| - |
|
56 |
if (this.getPayoutType().equals(AchievementType.QUANTITY)) {
|
| - |
|
57 |
sb.append(itemCriteriaPayout.getShortValue()).append(" more pc(s)");
|
| - |
|
58 |
} else if (this.getPayoutType().equals(AchievementType.VALUE)) {
|
| - |
|
59 |
sb.append("items worth Rs.").append("<span class=\"currency\">").append(itemCriteriaPayout.getShortValue())
|
| - |
|
60 |
.append("</span>");
|
| - |
|
61 |
}
|
| - |
|
62 |
}
|
| - |
|
63 |
|
| - |
|
64 |
private void addPayoutString(StringBuffer sb, ItemCriteriaPayout itemCriteriaPayout, PayoutSlab payoutSlab) {
|
| - |
|
65 |
if (itemCriteriaPayout.getAmountType().equals(AmountType.PERCENTAGE)) {
|
| - |
|
66 |
sb.append(payoutSlab.getPayoutAmount()).append("% of total sale value");
|
| - |
|
67 |
} else if (itemCriteriaPayout.getAmountType().equals(AmountType.FIXED)) {
|
| - |
|
68 |
sb.append("Rs.").append("<span class=\"currency\">").append(payoutSlab.getPayoutAmount())
|
| - |
|
69 |
.append("</span> per pc");
|
| - |
|
70 |
} else {
|
| - |
|
71 |
sb.append("flat Rs.").append("<span class=\"currency\">").append(payoutSlab.getPayoutAmount())
|
| - |
|
72 |
.append("</span>");
|
| - |
|
73 |
}
|
| - |
|
74 |
}
|
| - |
|
75 |
|
| 42 |
public String getDashboardHtml() {
|
76 |
public String getDashboardHtml() {
|
| - |
|
77 |
LOGGER.info("getDahsboard html --- {}", this.getId());
|
| - |
|
78 |
String activityString = null;
|
| - |
|
79 |
if (this.getSchemeType().equals(OfferSchemeType.ACTIVATION)) {
|
| - |
|
80 |
activityString = "Activate";
|
| - |
|
81 |
} else if (this.getSchemeType().equals(OfferSchemeType.SELLIN)) {
|
| - |
|
82 |
activityString = "Purchase";
|
| - |
|
83 |
} else {
|
| - |
|
84 |
activityString = "Sell";
|
| - |
|
85 |
}
|
| 43 |
StringBuffer sb = new StringBuffer();
|
86 |
StringBuffer sb = new StringBuffer();
|
| 44 |
if(this.getSchemeType().equals(OfferSchemeType.SELLIN)) {
|
- |
|
| 45 |
sb.append("On purchase");
|
87 |
int i=0;
|
| 46 |
if(this.getTargetType().equals(AchievementType.QUANTITY)) {
|
- |
|
| 47 |
TargetSlab targetSlab = this.getTargetSlabs().get(0);
|
88 |
for (ItemCriteriaPayout itemCriteriaPayout : this.getTargetSlabs().get(0).getItemCriteriaPayouts()) {
|
| 48 |
sb.append("of " + targetSlab.getOnwardsAmount());
|
89 |
LOGGER.info("itemCriteriaPayout {}", itemCriteriaPayout);
|
| 49 |
if(this.getTargetSlabs().size()==1) {
|
- |
|
| 50 |
sb.append(" or more pcs, Get");
|
- |
|
| 51 |
if (StringUtils.isNotBlank(targetSlab.getTargetDescription())) {
|
90 |
PayoutSlab currentSlab = itemCriteriaPayout.getCurrentSlab();
|
| 52 |
sb.append(" "+ targetSlab.getTargetDescription());
|
91 |
PayoutSlab nextSlab = itemCriteriaPayout.getNextSlab();
|
| 53 |
}
|
- |
|
| 54 |
} else {
|
92 |
if(i>0) {
|
| 55 |
sb.append(" but less than ").append(this.getTargetSlabs().get(1).getOnwardsAmount() + "pcs, Get");
|
- |
|
| 56 |
if (StringUtils.isNotBlank(targetSlab.getTargetDescription())) {
|
- |
|
| 57 |
sb.append(" "+ targetSlab.getTargetDescription());
|
93 |
sb.append("<br>");
|
| 58 |
}
|
- |
|
| 59 |
}
|
- |
|
| 60 |
} else if (this.getTargetType().equals(AchievementType.VALUE)) {
|
- |
|
| 61 |
|
- |
|
| 62 |
}
|
94 |
}
|
| 63 |
} else {
|
- |
|
| 64 |
if(this.getNextTargetSlab() != null) {
|
- |
|
| 65 |
if(this.getCurrentTargetSlab()!=null) {
|
- |
|
| 66 |
sb.append("Contgratulations for achieving ").append(this.getCurrentTarget()).append(". ");
|
- |
|
| 67 |
}
|
95 |
i++;
|
| 68 |
sb.append("Sell ");
|
96 |
if (currentSlab == null) {
|
| 69 |
if(this.getTargetType().equals(AchievementType.VALUE)) {
|
- |
|
| 70 |
sb.append("stock worth Rs.<span class=\"currency\">")
|
- |
|
| 71 |
.append(this.getNextTargetSlab().getRemainingAmount(this.eligibleSale))
|
- |
|
| 72 |
.append("</span> to earn ").append(this.getNextTargetSlab().getTargetDescription());
|
- |
|
| 73 |
} else {
|
- |
|
| 74 |
sb.append(this.getNextTargetSlab().getRemainingAmount(this.eligibleSale))
|
- |
|
| 75 |
.append(" more unit(s) to earn ");
|
97 |
sb.append(activityString).append(" ");
|
| 76 |
if (StringUtils.isNotEmpty(this.getNextTargetSlab().getTargetDescription())) {
|
- |
|
| 77 |
sb.append(this.getNextTargetSlab().getTargetDescription()).append(" per unit");
|
98 |
this.addAchievementPayoutString(sb, itemCriteriaPayout, nextSlab);
|
| 78 |
} else {
|
- |
|
| 79 |
sb.append(this.getNextTargetSlab().getTargetDescription()).append(" additional margin");
|
- |
|
| 80 |
}
|
- |
|
| 81 |
}
|
- |
|
| 82 |
} else {
|
99 |
} else {
|
| - |
|
100 |
if (itemCriteriaPayout.getNextSlab() != null) {
|
| 83 |
sb.append("Congratulations for achieving the highest slab of ");
|
101 |
sb.append("Congratulations, you have qualified to get ");
|
| 84 |
if(this.getTargetType().equals(AchievementType.VALUE)) {
|
102 |
this.addPayoutString(sb, itemCriteriaPayout, currentSlab);
|
| 85 |
sb.append("Rs.<span class=\"currency\">")
|
103 |
sb.append(". ");
|
| 86 |
.append(this.getCurrentTargetSlab().getOnwardsAmount())
|
104 |
sb.append(activityString).append(" ");
|
| 87 |
.append("</span>");
|
105 |
this.addAchievementPayoutString(sb, itemCriteriaPayout, nextSlab);
|
| 88 |
} else {
|
106 |
} else {
|
| 89 |
sb.append(this.getCurrentTargetSlab().getOnwardsAmount()).append(" units");
|
107 |
sb.append("Congratulations for achieving the highest slab,");
|
| - |
|
108 |
sb.append(" you have qualified to get ");
|
| 90 |
//.append(", you are eligible for ").append(this.getCurrentTargetSlab().getTargetDescription());
|
109 |
this.addPayoutString(sb, itemCriteriaPayout, currentSlab);
|
| 91 |
|
110 |
sb.append(", keep it up!!");
|
| 92 |
}
|
111 |
}
|
| 93 |
sb.append(", keep it up!!");
|
- |
|
| 94 |
}
|
112 |
}
|
| 95 |
}
|
113 |
}
|
| 96 |
return sb.toString();
|
114 |
return sb.toString();
|
| - |
|
115 |
|
| 97 |
}
|
116 |
}
|
| 98 |
|
117 |
|
| 99 |
public boolean isIncrementalTarget() {
|
118 |
public boolean isIncrementalTarget() {
|
| 100 |
return incrementalTarget;
|
119 |
return incrementalTarget;
|
| 101 |
}
|
120 |
}
|
| Line 423... |
Line 442... |
| 423 |
result = prime * result + id;
|
442 |
result = prime * result + id;
|
| 424 |
result = prime * result + (incrementalTarget ? 1231 : 1237);
|
443 |
result = prime * result + (incrementalTarget ? 1231 : 1237);
|
| 425 |
result = prime * result + ((itemCriteria == null) ? 0 : itemCriteria.hashCode());
|
444 |
result = prime * result + ((itemCriteria == null) ? 0 : itemCriteria.hashCode());
|
| 426 |
result = prime * result + ((itemCriteriaString == null) ? 0 : itemCriteriaString.hashCode());
|
445 |
result = prime * result + ((itemCriteriaString == null) ? 0 : itemCriteriaString.hashCode());
|
| 427 |
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
446 |
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
| 428 |
result = prime * result + ((nextTargetSlab == null) ? 0 : nextTargetSlab.hashCode());
|
- |
|
| 429 |
result = prime * result + ((offerNotes == null) ? 0 : offerNotes.hashCode());
|
447 |
result = prime * result + ((offerNotes == null) ? 0 : offerNotes.hashCode());
|
| 430 |
result = prime * result + ((partnerCriteria == null) ? 0 : partnerCriteria.hashCode());
|
448 |
result = prime * result + ((partnerCriteria == null) ? 0 : partnerCriteria.hashCode());
|
| 431 |
result = prime * result + ((partnerCriteriaString == null) ? 0 : partnerCriteriaString.hashCode());
|
- |
|
| 432 |
result = prime * result + ((payoutType == null) ? 0 : payoutType.hashCode());
|
449 |
result = prime * result + ((payoutType == null) ? 0 : payoutType.hashCode());
|
| 433 |
result = prime * result + ((schemeType == null) ? 0 : schemeType.hashCode());
|
450 |
result = prime * result + ((schemeType == null) ? 0 : schemeType.hashCode());
|
| 434 |
temp = Double.doubleToLongBits(sellinPercentage);
|
451 |
temp = Double.doubleToLongBits(sellinPercentage);
|
| 435 |
result = prime * result + (int) (temp ^ (temp >>> 32));
|
452 |
result = prime * result + (int) (temp ^ (temp >>> 32));
|
| 436 |
result = prime * result + ((startDate == null) ? 0 : startDate.hashCode());
|
453 |
result = prime * result + ((startDate == null) ? 0 : startDate.hashCode());
|