Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
21713 ashik.ali 1
package com.spice.profitmandi.dao.entity.catalog;
21552 ashik.ali 2
 
32230 amit.gupta 3
import com.spice.profitmandi.common.enumuration.ItemType;
4
import in.shop2020.model.v1.catalog.status;
5
 
6
import javax.persistence.*;
31065 tejbeer 7
import java.io.Serializable;
31846 tejbeer 8
import java.time.LocalDateTime;
31065 tejbeer 9
import java.util.Arrays;
10
import java.util.List;
11
 
21552 ashik.ali 12
/**
13
 * This class basically contains item details
30121 amit.gupta 14
 *
21552 ashik.ali 15
 * @author ashikali
16
 */
29707 tejbeer 17
 
31846 tejbeer 18
@NamedQueries({@NamedQuery(name = "Item.selectItemByLikes", query = "select new com.spice.profitmandi.common.model.CustomItemModel(" + "	i.id, i.brand, i.modelName, i.modelNumber, i.color" + "	) from Item  i join CurrentInventorySnapshot cis on i.id = cis.itemId " + " where cis.fofoId = :fofoId and cis.availability > 0 and REPLACE(CONCAT(i.brand,' ', ifnull(i.modelName, ' '), ' ', ifnull(i.modelNumber, ' ')), '  ', ' ')  like CONCAT('%',:query,'%')"),
30121 amit.gupta 19
 
31846 tejbeer 20
        @NamedQuery(name = "Item.selectCatalogIdByMopRange", query = "select i.catalogItemId" + " from Item i join TagListing tl on tl.itemId = i.id " + " where tl.mop between :startPrice and :endPrice and  i.categoryId=10006 group by i.catalogItemId"),
30492 amit.gupta 21
 
31846 tejbeer 22
        @NamedQuery(name = "Item.selectAllBrands", query = "select distinct" + "  i.brand from Item i join TagListing tl on tl.itemId = i.id " + " where i.categoryId=:categoryId"), @NamedQuery(name = "Item.selectAllCategories", query = "select distinct" + "  i.categoryId from Item i join TagListing tl on tl.itemId = i.id "), @NamedQuery(name = "Item.selectAllModels", query = "select " + "  i from Item i join TagListing tl on tl.itemId = i.id where i.brand in :brands and i.categoryId = :categoryId")})
21552 ashik.ali 23
@Entity
31846 tejbeer 24
@Table(name = "catalog.item")
29707 tejbeer 25
public class Item implements Serializable {
26
 
31846 tejbeer 27
    public static final List<String> SMART_PG = Arrays.asList("85171300", "85171290");
31065 tejbeer 28
 
31846 tejbeer 29
    private static final long serialVersionUID = 1L;
29707 tejbeer 30
 
31846 tejbeer 31
    public Item() {
32
    }
29707 tejbeer 33
 
31846 tejbeer 34
    @Id
35
    @Column(name = "id", columnDefinition = "int(11)")
36
    @GeneratedValue(strategy = GenerationType.IDENTITY)
37
    private int id;
29707 tejbeer 38
 
31846 tejbeer 39
    @Column(name = "brand", length = 100)
40
    private String brand;
29707 tejbeer 41
 
31846 tejbeer 42
    @Column(name = "status")
43
    @Enumerated(EnumType.ORDINAL)
44
    private status status;
29707 tejbeer 45
 
31846 tejbeer 46
    @Column(name = "product_group", length = 100)
47
    private String productGroup;
29707 tejbeer 48
 
31846 tejbeer 49
    @Column(name = "model_name", length = 100)
50
    private String modelName;
29707 tejbeer 51
 
31846 tejbeer 52
    @Column(name = "model_number", length = 100)
53
    private String modelNumber;
29707 tejbeer 54
 
31846 tejbeer 55
    @Column(name = "color", length = 20)
56
    private String color;
29707 tejbeer 57
 
31846 tejbeer 58
    @Column(name = "catalog_item_id")
59
    private int catalogItemId;
29707 tejbeer 60
 
31846 tejbeer 61
    @Column(name = "weight")
62
    private Double weight;
29707 tejbeer 63
 
31846 tejbeer 64
    @Column(name = "category")
65
    private int categoryId;
29707 tejbeer 66
 
32417 amit.gupta 67
 
31846 tejbeer 68
    @Column(name = "startDate")
69
    private LocalDateTime startDate;
29707 tejbeer 70
 
32417 amit.gupta 71
    @Column(name = "addedOn")
72
    private LocalDateTime addedOn;
73
 
74
    @Column(name = "updatedOn")
75
    private LocalDateTime updatedOn;
76
 
33183 shampa 77
    private Boolean risky;
32417 amit.gupta 78
 
33183 shampa 79
    private Integer expectedDelay;
32417 amit.gupta 80
 
81
    @Column(name = "warranty_period")
82
    private Integer warrantyPeriod;
83
 
84
    private Integer preferredVendor;
85
 
31846 tejbeer 86
    public int getCategoryId() {
87
        return categoryId;
88
    }
23426 amit.gupta 89
 
31846 tejbeer 90
    public void setCategoryId(int categoryId) {
91
        this.categoryId = categoryId;
92
    }
29707 tejbeer 93
 
32417 amit.gupta 94
    public LocalDateTime getAddedOn() {
95
        return addedOn;
96
    }
97
 
98
    public void setAddedOn(LocalDateTime addedOn) {
99
        this.addedOn = addedOn;
100
    }
101
 
102
    public LocalDateTime getUpdatedOn() {
103
        return updatedOn;
104
    }
105
 
106
    public void setUpdatedOn(LocalDateTime updatedOn) {
107
        this.updatedOn = updatedOn;
108
    }
109
 
110
    public boolean isRisky() {
111
        return risky;
112
    }
113
 
114
    public void setRisky(boolean risky) {
115
        this.risky = risky;
116
    }
117
 
118
    public int getExpectedDelay() {
119
        return expectedDelay;
120
    }
121
 
122
    public void setExpectedDelay(int expectedDelay) {
123
        this.expectedDelay = expectedDelay;
124
    }
125
 
126
    public Integer getWarrantyPeriod() {
127
        return warrantyPeriod;
128
    }
129
 
130
    public void setWarrantyPeriod(Integer warrantyPeriod) {
131
        this.warrantyPeriod = warrantyPeriod;
132
    }
133
 
134
    public Integer getPreferredVendor() {
135
        return preferredVendor;
136
    }
137
 
138
    public void setPreferredVendor(Integer preferredVendor) {
139
        this.preferredVendor = preferredVendor;
140
    }
141
 
31846 tejbeer 142
    @Enumerated(EnumType.STRING)
143
    @Column(name = "type")
144
    private ItemType type;
29707 tejbeer 145
 
31846 tejbeer 146
    @Column(name = "hsnCode")
147
    private String hsnCode;
29707 tejbeer 148
 
31846 tejbeer 149
    @Column(name = "sellingPrice")
150
    private Float sellingPrice;
31821 amit.gupta 151
 
31846 tejbeer 152
    public String getProductGroup() {
153
        return productGroup;
154
    }
29707 tejbeer 155
 
31846 tejbeer 156
    public void setProductGroup(String productGroup) {
157
        this.productGroup = productGroup;
158
    }
29707 tejbeer 159
 
31846 tejbeer 160
    public int getId() {
161
        return id;
162
    }
29707 tejbeer 163
 
31846 tejbeer 164
    @Column
165
    private Float mrp;
29707 tejbeer 166
 
31846 tejbeer 167
    public void setId(int id) {
168
        this.id = id;
169
    }
29707 tejbeer 170
 
31846 tejbeer 171
    public String getBrand() {
172
        return brand;
173
    }
29707 tejbeer 174
 
31846 tejbeer 175
    public void setBrand(String brand) {
176
        this.brand = brand;
177
    }
29707 tejbeer 178
 
31846 tejbeer 179
    public String getModelName() {
180
        return modelName;
181
    }
29707 tejbeer 182
 
31846 tejbeer 183
    public void setModelName(String modelName) {
184
        this.modelName = modelName;
185
    }
29707 tejbeer 186
 
31846 tejbeer 187
    public String getModelNumber() {
188
        return modelNumber;
189
    }
29707 tejbeer 190
 
31846 tejbeer 191
    public void setModelNumber(String modelNumber) {
192
        this.modelNumber = modelNumber;
193
    }
29707 tejbeer 194
 
31846 tejbeer 195
    public String getColor() {
196
        if (color != null && (color.startsWith("f_") || color.startsWith("F_"))) {
197
            return color.substring(2);
198
        }
199
        return color;
200
    }
29707 tejbeer 201
 
31846 tejbeer 202
    public String getColorNatural() {
203
        return this.color;
204
    }
29707 tejbeer 205
 
31846 tejbeer 206
    public void setColor(String color) {
207
        this.color = color;
208
    }
29707 tejbeer 209
 
31846 tejbeer 210
    public ItemType getType() {
211
        return type;
212
    }
29707 tejbeer 213
 
31846 tejbeer 214
    public void setType(ItemType type) {
215
        this.type = type;
216
    }
29707 tejbeer 217
 
31846 tejbeer 218
    public String getHsnCode() {
219
        return hsnCode;
220
    }
29707 tejbeer 221
 
31846 tejbeer 222
    public void setHsnCode(String hsnCode) {
223
        this.hsnCode = hsnCode;
224
    }
29707 tejbeer 225
 
31846 tejbeer 226
    public int getCatalogItemId() {
227
        return catalogItemId;
228
    }
29707 tejbeer 229
 
31846 tejbeer 230
    public Double getWeight() {
231
        return weight;
232
    }
29707 tejbeer 233
 
31846 tejbeer 234
    public void setWeight(Double weight) {
235
        this.weight = weight;
236
    }
29707 tejbeer 237
 
31846 tejbeer 238
    public void setCatalogItemId(int catalogItemId) {
239
        this.catalogItemId = catalogItemId;
240
    }
29707 tejbeer 241
 
31846 tejbeer 242
    public Float getSellingPrice() {
243
        return sellingPrice;
244
    }
29707 tejbeer 245
 
31846 tejbeer 246
    public void setSellingPrice(Float sellingPrice) {
247
        this.sellingPrice = sellingPrice;
248
    }
29707 tejbeer 249
 
31065 tejbeer 250
 
31846 tejbeer 251
    public LocalDateTime getStartDate() {
252
        return startDate;
253
    }
29707 tejbeer 254
 
31846 tejbeer 255
    public void setStartDate(LocalDateTime startDate) {
256
        this.startDate = startDate;
257
    }
29707 tejbeer 258
 
31846 tejbeer 259
    public String getItemDescription() {
260
        StringBuilder itemString = new StringBuilder();
261
        if (this.getBrand() != null && !this.getBrand().isEmpty()) {
262
            itemString.append(this.getBrand().trim());
263
        }
264
        itemString.append(" ");
265
        if (this.getModelName() != null && !this.getModelName().isEmpty()) {
266
            itemString.append(this.getModelName().trim());
267
        }
268
        if (this.getModelNumber() != null && !this.getModelNumber().isEmpty()) {
269
            itemString.append(" ");
270
            itemString.append(this.getModelNumber().trim());
271
        }
272
        if (this.getColor() != null && !this.getColor().isEmpty() && !this.getColor().trim().equals("f_")) {
273
            itemString.append(" ");
274
            itemString.append(this.getColor().trim());
275
        }
276
        return itemString.toString().replaceAll("\\s+", " ").trim();
277
    }
29707 tejbeer 278
 
31846 tejbeer 279
    public boolean isSmartPhone() {
280
        return SMART_PG.contains(this.getHsnCode());
281
    }
29707 tejbeer 282
 
32230 amit.gupta 283
    public String getModel() {
284
        StringBuilder itemString = new StringBuilder();
285
        if (this.getModelName() != null && !this.getModelName().isEmpty()) {
286
            itemString.append(this.getModelName().trim());
287
        }
288
        if (this.getModelNumber() != null && !this.getModelNumber().isEmpty()) {
289
            itemString.append(" ");
290
            itemString.append(this.getModelNumber().trim());
291
        }
292
 
293
        return itemString.toString().replaceAll("\\s+", " ").trim();
294
 
295
    }
296
 
31846 tejbeer 297
    public String getItemDescriptionNoColor() {
298
        StringBuilder itemString = new StringBuilder();
299
        if (this.getBrand() != null && !this.getBrand().isEmpty()) {
300
            itemString.append(this.getBrand().trim());
301
        }
302
        itemString.append(" ");
303
        if (this.getModelName() != null && !this.getModelName().isEmpty()) {
304
            itemString.append(this.getModelName().trim());
305
        }
306
        if (this.getModelNumber() != null && !this.getModelNumber().isEmpty()) {
307
            itemString.append(" ");
308
            itemString.append(this.getModelNumber().trim());
309
        }
29707 tejbeer 310
 
31846 tejbeer 311
        return itemString.toString().replaceAll("\\s+", " ").trim();
312
    }
29707 tejbeer 313
 
31846 tejbeer 314
    @Override
315
    public int hashCode() {
316
        final int prime = 31;
317
        int result = 1;
318
        result = prime * result + ((brand == null) ? 0 : brand.hashCode());
319
        result = prime * result + catalogItemId;
320
        result = prime * result + categoryId;
321
        result = prime * result + ((color == null) ? 0 : color.hashCode());
322
        result = prime * result + ((hsnCode == null) ? 0 : hsnCode.hashCode());
323
        result = prime * result + id;
324
        result = prime * result + ((modelName == null) ? 0 : modelName.hashCode());
325
        result = prime * result + ((modelNumber == null) ? 0 : modelNumber.hashCode());
326
        result = prime * result + ((productGroup == null) ? 0 : productGroup.hashCode());
327
        result = prime * result + ((sellingPrice == null) ? 0 : sellingPrice.hashCode());
328
        result = prime * result + ((startDate == null) ? 0 : startDate.hashCode());
329
        result = prime * result + ((status == null) ? 0 : status.hashCode());
330
        result = prime * result + ((type == null) ? 0 : type.hashCode());
331
        result = prime * result + ((weight == null) ? 0 : weight.hashCode());
332
        return result;
333
    }
29707 tejbeer 334
 
31846 tejbeer 335
    @Override
336
    public boolean equals(Object obj) {
337
        if (this == obj) return true;
338
        if (obj == null) return false;
339
        if (getClass() != obj.getClass()) return false;
340
        Item other = (Item) obj;
341
        if (brand == null) {
342
            if (other.brand != null) return false;
343
        } else if (!brand.equals(other.brand)) return false;
344
        if (catalogItemId != other.catalogItemId) return false;
345
        if (categoryId != other.categoryId) return false;
346
        if (color == null) {
347
            if (other.color != null) return false;
348
        } else if (!color.equals(other.color)) return false;
349
        if (hsnCode == null) {
350
            if (other.hsnCode != null) return false;
351
        } else if (!hsnCode.equals(other.hsnCode)) return false;
352
        if (id != other.id) return false;
353
        if (modelName == null) {
354
            if (other.modelName != null) return false;
355
        } else if (!modelName.equals(other.modelName)) return false;
356
        if (modelNumber == null) {
357
            if (other.modelNumber != null) return false;
358
        } else if (!modelNumber.equals(other.modelNumber)) return false;
359
        if (productGroup == null) {
360
            if (other.productGroup != null) return false;
361
        } else if (!productGroup.equals(other.productGroup)) return false;
362
        if (sellingPrice == null) {
363
            if (other.sellingPrice != null) return false;
364
        } else if (!sellingPrice.equals(other.sellingPrice)) return false;
365
        if (startDate == null) {
366
            if (other.startDate != null) return false;
367
        } else if (!startDate.equals(other.startDate)) return false;
368
        if (status != other.status) return false;
369
        if (type != other.type) return false;
370
        if (weight == null) {
371
            if (other.weight != null) return false;
372
        } else if (!weight.equals(other.weight)) return false;
373
        return true;
374
    }
31767 amit.gupta 375
 
31846 tejbeer 376
    public status getStatus() {
377
        return status;
378
    }
379
 
380
    public void setStatus(status status) {
381
        this.status = status;
382
    }
383
 
384
    public boolean isAnyColor() {
385
        if (this.color != null) {
386
            String lowerCaseColor = this.color.toLowerCase();
387
            return lowerCaseColor.equals("any color") || lowerCaseColor.equals("f_any color") || lowerCaseColor.equals("any colour") || lowerCaseColor.equals("f_any colour");
388
        }
389
        return false;
390
    }
391
 
32417 amit.gupta 392
    public Item clone() {
393
        Item item = new Item();
394
        item.setBrand(this.getBrand());
395
        item.setModelName(this.getModelName());
396
        item.setModelNumber(this.getModelNumber());
397
        item.setColor(this.getColor());
398
        item.setCatalogItemId(this.catalogItemId);
399
        item.setHsnCode(this.getHsnCode());
400
        item.setCategoryId(this.getCategoryId());
401
        item.setMrp(this.getMrp());
402
        item.setProductGroup(this.getProductGroup());
403
        item.setSellingPrice(this.getSellingPrice());
404
        item.setStartDate(LocalDateTime.now());
405
        item.setStatus(this.getStatus());
406
        item.setType(this.getType());
407
        item.setWeight(this.getWeight());
408
        item.setAddedOn(LocalDateTime.now());
409
        item.setUpdatedOn(LocalDateTime.now());
410
        item.setExpectedDelay(0);
411
        item.setPreferredVendor(null);
412
        item.setRisky(true);
413
        item.setWarrantyPeriod(0);
414
        return item;
415
    }
416
 
31846 tejbeer 417
    public Float getMrp() {
418
        return mrp;
419
    }
420
 
421
    public void setMrp(Float mrp) {
422
        this.mrp = mrp;
423
    }
32417 amit.gupta 424
 
425
    @Override
426
    public String toString() {
427
        return "Item{" +
428
                "id=" + id +
429
                ", brand='" + brand + '\'' +
430
                ", status=" + status +
431
                ", productGroup='" + productGroup + '\'' +
432
                ", modelName='" + modelName + '\'' +
433
                ", modelNumber='" + modelNumber + '\'' +
434
                ", color='" + color + '\'' +
435
                ", catalogItemId=" + catalogItemId +
436
                ", weight=" + weight +
437
                ", categoryId=" + categoryId +
438
                ", startDate=" + startDate +
439
                ", addedOn=" + addedOn +
440
                ", updatedOn=" + updatedOn +
441
                ", risky=" + risky +
442
                ", expectedDelay=" + expectedDelay +
443
                ", warrantyPeriod=" + warrantyPeriod +
444
                ", preferredVendor=" + preferredVendor +
445
                ", type=" + type +
446
                ", hsnCode='" + hsnCode + '\'' +
447
                ", sellingPrice=" + sellingPrice +
448
                ", mrp=" + mrp +
449
                '}';
450
    }
21552 ashik.ali 451
}