Subversion Repositories SmartDukaan

Rev

Rev 29574 | Rev 29785 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
26588 tejbeer 1
package com.spice.profitmandi.dao.model;
2
 
3
import java.time.LocalDateTime;
4
import java.util.List;
5
 
28541 amit.gupta 6
import org.apache.commons.lang3.StringUtils;
7
 
28019 amit.gupta 8
import com.spice.profitmandi.dao.enumuration.catalog.AchievementType;
27878 amit.gupta 9
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
10
import com.spice.profitmandi.service.offers.ItemCriteria;
11
import com.spice.profitmandi.service.offers.PartnerCriteria;
26588 tejbeer 12
 
13
public class CreateOfferRequest {
27360 tejbeer 14
	private int id;
27878 amit.gupta 15
	private boolean active;
28019 amit.gupta 16
	private boolean incrementalTarget;
26588 tejbeer 17
	private String name;
18
	private LocalDateTime startDate;
19
	private LocalDateTime endDate;
27878 amit.gupta 20
	private String offerNotes;
21
	private String terms;
27918 amit.gupta 22
	private AchievementType targetType;
23
	private AchievementType payoutType;
27878 amit.gupta 24
	private String activationBrands;
25
	private OfferSchemeType schemeType;
26
	private double sellinPercentage;
27
	private double brandShareTerms;
28
	private ItemCriteria itemCriteria;
29
	private String itemCriteriaString;
30
	private LocalDateTime createdOn;
31
	private List<TargetSlab> targetSlabs;
32
	private PartnerCriteria partnerCriteria;
33
	private String partnerCriteriaString;
34
 
35
	public int getEligibleSale() {
36
		return eligibleSale;
26694 tejbeer 37
	}
27878 amit.gupta 38
	public void setEligibleSale(int eligibleSale) {
39
		this.eligibleSale = eligibleSale;
27353 tejbeer 40
	}
41
 
28028 amit.gupta 42
	public String getDashboardHtml() {
43
		StringBuffer sb = new StringBuffer();
28541 amit.gupta 44
		if(this.getSchemeType().equals(OfferSchemeType.SELLIN)) {
29687 amit.gupta 45
			sb.append("On purchase");
28541 amit.gupta 46
			if(this.getTargetType().equals(AchievementType.QUANTITY)) {
47
				TargetSlab targetSlab = this.getTargetSlabs().get(0);
29687 amit.gupta 48
				sb.append("of " + targetSlab.getOnwardsAmount());
28541 amit.gupta 49
				if(this.getTargetSlabs().size()==1) {
50
					sb.append(" or more pcs, Get");
51
					if (StringUtils.isNotBlank(targetSlab.getTargetDescription())) {
52
						sb.append(" "+ targetSlab.getTargetDescription());
53
					}
54
				} else {
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());
58
					}
59
				}
29687 amit.gupta 60
			} else if (this.getTargetType().equals(AchievementType.VALUE)) {
61
 
28153 amit.gupta 62
			}
28541 amit.gupta 63
		} else {
64
			if(this.getNextTargetSlab() != null) {
65
				if(this.getCurrentTargetSlab()!=null) {
66
					sb.append("Contgratulations for achieving ").append(this.getCurrentTarget()).append(". ");
67
				}
68
				sb.append("Sell ");
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 {
28028 amit.gupta 74
					sb.append(this.getNextTargetSlab().getRemainingAmount(this.eligibleSale))
28967 amit.gupta 75
					.append(" more unit(s) to earn ");
76
					if (StringUtils.isNotEmpty(this.getNextTargetSlab().getTargetDescription())) {
77
						sb.append(this.getNextTargetSlab().getTargetDescription()).append(" per unit");
78
					} else {
79
						sb.append(this.getNextTargetSlab().getTargetDescription()).append(" additional margin");
80
					}
28541 amit.gupta 81
				}
28028 amit.gupta 82
			} else {
28541 amit.gupta 83
				sb.append("Congratulations for achieving the highest slab of ");
84
				if(this.getTargetType().equals(AchievementType.VALUE)) {
85
					sb.append("Rs.<span class=\"currency\">")
86
					.append(this.getCurrentTargetSlab().getOnwardsAmount())
87
					.append("</span>");
88
				} else {
29574 amit.gupta 89
					sb.append(this.getCurrentTargetSlab().getOnwardsAmount()).append(" units");
29573 amit.gupta 90
					//.append(", you are eligible for ").append(this.getCurrentTargetSlab().getTargetDescription());
28541 amit.gupta 91
 
92
				}
93
				sb.append(", keep it up!!");
28028 amit.gupta 94
			}
95
		}
96
		return sb.toString();
97
	}
28967 amit.gupta 98
 
28019 amit.gupta 99
	public boolean isIncrementalTarget() {
100
		return incrementalTarget;
101
	}
28967 amit.gupta 102
 
28019 amit.gupta 103
	public void setIncrementalTarget(boolean incrementalTarget) {
104
		this.incrementalTarget = incrementalTarget;
105
	}
28967 amit.gupta 106
 
28019 amit.gupta 107
	@Override
108
	public String toString() {
109
		return "CreateOfferRequest [id=" + id + ", active=" + active + ", incrementalTarget=" + incrementalTarget
110
				+ ", name=" + name + ", startDate=" + startDate + ", endDate=" + endDate + ", offerNotes=" + offerNotes
111
				+ ", terms=" + terms + ", targetType=" + targetType + ", payoutType=" + payoutType
112
				+ ", activationBrands=" + activationBrands + ", schemeType=" + schemeType + ", sellinPercentage="
113
				+ sellinPercentage + ", brandShareTerms=" + brandShareTerms + ", itemCriteria=" + itemCriteria
114
				+ ", itemCriteriaString=" + itemCriteriaString + ", createdOn=" + createdOn + ", targetSlabs="
115
				+ targetSlabs + ", partnerCriteria=" + partnerCriteria + ", partnerCriteriaString="
116
				+ partnerCriteriaString + ", eligibleSale=" + eligibleSale + ", nextTargetSlab=" + nextTargetSlab
117
				+ ", currentTargetSlab=" + currentTargetSlab + "]";
118
	}
119
 
27878 amit.gupta 120
	private int eligibleSale;
121
	private TargetSlab nextTargetSlab;
122
	private TargetSlab currentTargetSlab;
28153 amit.gupta 123
	private String currentTarget;
124
	private String nextTarget;
27353 tejbeer 125
 
28153 amit.gupta 126
	public String getCurrentTarget() {
127
		return currentTarget;
128
	}
28967 amit.gupta 129
 
28153 amit.gupta 130
	public void setCurrentTarget(String currentTarget) {
131
		this.currentTarget = currentTarget;
132
	}
28967 amit.gupta 133
 
28153 amit.gupta 134
	public String getNextTarget() {
135
		return nextTarget;
136
	}
28967 amit.gupta 137
 
28153 amit.gupta 138
	public void setNextTarget(String nextTarget) {
139
		this.nextTarget = nextTarget;
140
	}
28967 amit.gupta 141
 
27878 amit.gupta 142
	public TargetSlab getNextTargetSlab() {
143
		return nextTargetSlab;
27353 tejbeer 144
	}
28967 amit.gupta 145
 
27878 amit.gupta 146
	public void setNextTargetSlab(TargetSlab nextTargetSlab) {
147
		this.nextTargetSlab = nextTargetSlab;
26694 tejbeer 148
	}
28967 amit.gupta 149
 
27878 amit.gupta 150
	public TargetSlab getCurrentTargetSlab() {
151
		return currentTargetSlab;
26694 tejbeer 152
	}
28967 amit.gupta 153
 
27878 amit.gupta 154
	public void setCurrentTargetSlab(TargetSlab currentTargetSlab) {
155
		this.currentTargetSlab = currentTargetSlab;
26694 tejbeer 156
	}
157
 
27878 amit.gupta 158
	public boolean isActive() {
159
		return active;
26694 tejbeer 160
	}
161
 
27878 amit.gupta 162
	public void setActive(boolean active) {
163
		this.active = active;
26694 tejbeer 164
	}
165
 
27878 amit.gupta 166
	public LocalDateTime getCreatedOn() {
167
		return createdOn;
26694 tejbeer 168
	}
169
 
27918 amit.gupta 170
	public AchievementType getPayoutType() {
171
		return payoutType;
172
	}
28967 amit.gupta 173
 
27918 amit.gupta 174
	public void setPayoutType(AchievementType payoutType) {
175
		this.payoutType = payoutType;
176
	}
28967 amit.gupta 177
 
27878 amit.gupta 178
	public String getActivationBrands() {
179
		return activationBrands;
26694 tejbeer 180
	}
28967 amit.gupta 181
 
27878 amit.gupta 182
	public void setActivationBrands(String activationBrands) {
183
		this.activationBrands = activationBrands;
26674 tejbeer 184
	}
28967 amit.gupta 185
 
27878 amit.gupta 186
	public void setCreatedOn(LocalDateTime createdOn) {
187
		this.createdOn = createdOn;
188
	}
26674 tejbeer 189
 
27878 amit.gupta 190
	public String getItemCriteriaString() {
191
		return itemCriteriaString;
26674 tejbeer 192
	}
193
 
27878 amit.gupta 194
	public String getPartnerCriteriaString() {
195
		return partnerCriteriaString;
26674 tejbeer 196
	}
197
 
27878 amit.gupta 198
	public void setPartnerCriteriaString(String partnerCriteriaString) {
199
		this.partnerCriteriaString = partnerCriteriaString;
26674 tejbeer 200
	}
201
 
27878 amit.gupta 202
	public PartnerCriteria getPartnerCriteria() {
203
		return partnerCriteria;
26674 tejbeer 204
	}
205
 
27878 amit.gupta 206
	public void setPartnerCriteria(PartnerCriteria partnerCriteria) {
207
		this.partnerCriteria = partnerCriteria;
26588 tejbeer 208
	}
209
 
27878 amit.gupta 210
	public ItemCriteria getItemCriteria() {
211
		return itemCriteria;
26588 tejbeer 212
	}
213
 
27878 amit.gupta 214
	public void setItemCriteria(ItemCriteria itemCriteria) {
215
		this.itemCriteria = itemCriteria;
26588 tejbeer 216
	}
217
 
27878 amit.gupta 218
	public double getBrandShareTerms() {
219
		return brandShareTerms;
26588 tejbeer 220
	}
221
 
27878 amit.gupta 222
	public void setBrandShareTerms(double brandShareTerms) {
223
		this.brandShareTerms = brandShareTerms;
26588 tejbeer 224
	}
225
 
27878 amit.gupta 226
	public List<TargetSlab> getTargetSlabs() {
227
		return targetSlabs;
26588 tejbeer 228
	}
229
 
27878 amit.gupta 230
	public void setTargetSlabs(List<TargetSlab> targetSlabs) {
231
		this.targetSlabs = targetSlabs;
26588 tejbeer 232
	}
233
 
27878 amit.gupta 234
	public int getId() {
235
		return id;
26588 tejbeer 236
	}
237
 
27878 amit.gupta 238
	public void setId(int id) {
239
		this.id = id;
26588 tejbeer 240
	}
241
 
242
	public String getName() {
243
		return name;
244
	}
245
 
246
	public void setName(String name) {
247
		this.name = name;
248
	}
249
 
27878 amit.gupta 250
	public LocalDateTime getStartDate() {
251
		return startDate;
26588 tejbeer 252
	}
253
 
27878 amit.gupta 254
	public void setStartDate(LocalDateTime startDate) {
255
		this.startDate = startDate;
26588 tejbeer 256
	}
257
 
27878 amit.gupta 258
	public LocalDateTime getEndDate() {
259
		return endDate;
26588 tejbeer 260
	}
261
 
27878 amit.gupta 262
	public void setEndDate(LocalDateTime endDate) {
263
		this.endDate = endDate;
26588 tejbeer 264
	}
265
 
27918 amit.gupta 266
	public AchievementType getTargetType() {
27878 amit.gupta 267
		return targetType;
26588 tejbeer 268
	}
269
 
27918 amit.gupta 270
	public void setTargetType(AchievementType targetType) {
27878 amit.gupta 271
		this.targetType = targetType;
26588 tejbeer 272
	}
273
 
27878 amit.gupta 274
	public OfferSchemeType getSchemeType() {
275
		return schemeType;
26588 tejbeer 276
	}
277
 
27878 amit.gupta 278
	public void setSchemeType(OfferSchemeType schemeType) {
279
		this.schemeType = schemeType;
26588 tejbeer 280
	}
281
 
27878 amit.gupta 282
	public double getSellinPercentage() {
283
		return sellinPercentage;
26588 tejbeer 284
	}
285
 
27878 amit.gupta 286
	public void setSellinPercentage(double sellinPercentage) {
287
		this.sellinPercentage = sellinPercentage;
26588 tejbeer 288
	}
289
 
27878 amit.gupta 290
	public String getOfferNotes() {
291
		return offerNotes;
26588 tejbeer 292
	}
293
 
27878 amit.gupta 294
	public void setOfferNotes(String offerNotes) {
295
		this.offerNotes = offerNotes;
26588 tejbeer 296
	}
297
 
27878 amit.gupta 298
	public String getTerms() {
299
		return terms;
26588 tejbeer 300
	}
301
 
27878 amit.gupta 302
	public void setTerms(String terms) {
303
		this.terms = terms;
26588 tejbeer 304
	}
305
 
27878 amit.gupta 306
	public void setItemCriteriaString(String itemCriteriaString) {
307
		this.itemCriteriaString = itemCriteriaString;
26588 tejbeer 308
	}
309
 
27878 amit.gupta 310
	@Override
311
	public boolean equals(Object obj) {
312
		if (this == obj)
313
			return true;
314
		if (obj == null)
315
			return false;
316
		if (getClass() != obj.getClass())
317
			return false;
318
		CreateOfferRequest other = (CreateOfferRequest) obj;
319
		if (activationBrands == null) {
320
			if (other.activationBrands != null)
321
				return false;
322
		} else if (!activationBrands.equals(other.activationBrands))
323
			return false;
324
		if (active != other.active)
325
			return false;
326
		if (Double.doubleToLongBits(brandShareTerms) != Double.doubleToLongBits(other.brandShareTerms))
327
			return false;
328
		if (createdOn == null) {
329
			if (other.createdOn != null)
330
				return false;
331
		} else if (!createdOn.equals(other.createdOn))
332
			return false;
333
		if (currentTargetSlab == null) {
334
			if (other.currentTargetSlab != null)
335
				return false;
336
		} else if (!currentTargetSlab.equals(other.currentTargetSlab))
337
			return false;
338
		if (eligibleSale != other.eligibleSale)
339
			return false;
340
		if (endDate == null) {
341
			if (other.endDate != null)
342
				return false;
343
		} else if (!endDate.equals(other.endDate))
344
			return false;
345
		if (id != other.id)
346
			return false;
28019 amit.gupta 347
		if (incrementalTarget != other.incrementalTarget)
348
			return false;
27878 amit.gupta 349
		if (itemCriteria == null) {
350
			if (other.itemCriteria != null)
351
				return false;
352
		} else if (!itemCriteria.equals(other.itemCriteria))
353
			return false;
354
		if (itemCriteriaString == null) {
355
			if (other.itemCriteriaString != null)
356
				return false;
357
		} else if (!itemCriteriaString.equals(other.itemCriteriaString))
358
			return false;
359
		if (name == null) {
360
			if (other.name != null)
361
				return false;
362
		} else if (!name.equals(other.name))
363
			return false;
364
		if (nextTargetSlab == null) {
365
			if (other.nextTargetSlab != null)
366
				return false;
367
		} else if (!nextTargetSlab.equals(other.nextTargetSlab))
368
			return false;
369
		if (offerNotes == null) {
370
			if (other.offerNotes != null)
371
				return false;
372
		} else if (!offerNotes.equals(other.offerNotes))
373
			return false;
374
		if (partnerCriteria == null) {
375
			if (other.partnerCriteria != null)
376
				return false;
377
		} else if (!partnerCriteria.equals(other.partnerCriteria))
378
			return false;
379
		if (partnerCriteriaString == null) {
380
			if (other.partnerCriteriaString != null)
381
				return false;
382
		} else if (!partnerCriteriaString.equals(other.partnerCriteriaString))
383
			return false;
27918 amit.gupta 384
		if (payoutType != other.payoutType)
385
			return false;
27878 amit.gupta 386
		if (schemeType != other.schemeType)
387
			return false;
388
		if (Double.doubleToLongBits(sellinPercentage) != Double.doubleToLongBits(other.sellinPercentage))
389
			return false;
390
		if (startDate == null) {
391
			if (other.startDate != null)
392
				return false;
393
		} else if (!startDate.equals(other.startDate))
394
			return false;
395
		if (targetSlabs == null) {
396
			if (other.targetSlabs != null)
397
				return false;
398
		} else if (!targetSlabs.equals(other.targetSlabs))
399
			return false;
400
		if (targetType != other.targetType)
401
			return false;
402
		if (terms == null) {
403
			if (other.terms != null)
404
				return false;
405
		} else if (!terms.equals(other.terms))
406
			return false;
407
		return true;
26588 tejbeer 408
	}
409
 
27878 amit.gupta 410
	@Override
411
	public int hashCode() {
412
		final int prime = 31;
413
		int result = 1;
414
		result = prime * result + ((activationBrands == null) ? 0 : activationBrands.hashCode());
415
		result = prime * result + (active ? 1231 : 1237);
416
		long temp;
417
		temp = Double.doubleToLongBits(brandShareTerms);
418
		result = prime * result + (int) (temp ^ (temp >>> 32));
419
		result = prime * result + ((createdOn == null) ? 0 : createdOn.hashCode());
420
		result = prime * result + ((currentTargetSlab == null) ? 0 : currentTargetSlab.hashCode());
421
		result = prime * result + eligibleSale;
422
		result = prime * result + ((endDate == null) ? 0 : endDate.hashCode());
423
		result = prime * result + id;
28019 amit.gupta 424
		result = prime * result + (incrementalTarget ? 1231 : 1237);
27878 amit.gupta 425
		result = prime * result + ((itemCriteria == null) ? 0 : itemCriteria.hashCode());
426
		result = prime * result + ((itemCriteriaString == null) ? 0 : itemCriteriaString.hashCode());
427
		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());
430
		result = prime * result + ((partnerCriteria == null) ? 0 : partnerCriteria.hashCode());
431
		result = prime * result + ((partnerCriteriaString == null) ? 0 : partnerCriteriaString.hashCode());
27918 amit.gupta 432
		result = prime * result + ((payoutType == null) ? 0 : payoutType.hashCode());
27878 amit.gupta 433
		result = prime * result + ((schemeType == null) ? 0 : schemeType.hashCode());
434
		temp = Double.doubleToLongBits(sellinPercentage);
435
		result = prime * result + (int) (temp ^ (temp >>> 32));
436
		result = prime * result + ((startDate == null) ? 0 : startDate.hashCode());
437
		result = prime * result + ((targetSlabs == null) ? 0 : targetSlabs.hashCode());
438
		result = prime * result + ((targetType == null) ? 0 : targetType.hashCode());
439
		result = prime * result + ((terms == null) ? 0 : terms.hashCode());
440
		return result;
26588 tejbeer 441
	}
442
}