Subversion Repositories SmartDukaan

Rev

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