Subversion Repositories SmartDukaan

Rev

Rev 29687 | Rev 29795 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 29687 Rev 29785
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());