Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
167 ashish 1
package in.shop2020.hotspot.dashbaord.shared.actions;
2
 
19004 manish.sha 3
import in.shop2020.hotspot.dashbaord.server.TransactionUtils;
4
 
5
import java.text.ParseException;
6
import java.text.SimpleDateFormat;
4004 chandransh 7
import java.util.Date;
13146 manish.sha 8
import java.util.List;
9
import java.util.Map;
4004 chandransh 10
 
167 ashish 11
import com.google.gwt.user.client.rpc.IsSerializable;
12
 
13
public class Order implements IsSerializable{
14
 
15
	private static final long serialVersionUID = 5804421607858217477L;
4004 chandransh 16
 
17
	private static final long MS_IN_HOUR  = 3600000;
167 ashish 18
 
484 rajveer 19
	private long orderId;
13146 manish.sha 20
	private long transactionId;
167 ashish 21
	private long customerId;
484 rajveer 22
	private String customerName;
23
	private String customerMobileNumber;
24
	private String customerPincode;
737 chandransh 25
	private String customerAddress1;
26
	private String customerAddress2;
671 chandransh 27
	private String customerCity;
28
	private String customerState;
484 rajveer 29
	private String customerEmail;
30
 
167 ashish 31
	private long createdOn;
4004 chandransh 32
	private long shippedAt;
33
	private long verifiedAt;
167 ashish 34
	private long expectedDeliveryTime;
3994 chandransh 35
	private long promisedDeliveryTime;
4004 chandransh 36
	private long expectedShippingTime;
4666 rajveer 37
	private long promisedShippingTime;
484 rajveer 38
 
39
	private long status;
167 ashish 40
	private String statusMessage;
41
 
5527 anupam.sin 42
	private String orderType;
706 chandransh 43
	private long itemId;
7190 amar.kumar 44
	private long freebieItemId;
966 chandransh 45
	private String productGroup;
46
	private String brand;
484 rajveer 47
	private String modelName;
48
	private String modelNumber;
914 chandransh 49
	private String color;
484 rajveer 50
	private String extraInfo;
4172 rajveer 51
	private String dealText;
5387 rajveer 52
	private double quantity;
167 ashish 53
 
484 rajveer 54
	private double totalAmount;
55
	private double totalWeight;
306 ashish 56
 
486 rajveer 57
	private String airwayBillNo;
58
	private String billedBy;
59
	private String invoiceNumber;
639 chandransh 60
	private long jacketNumber;
2781 chandransh 61
	private String itemNumber;
4658 mandeep.dh 62
	private String serialNumber;
1224 chandransh 63
	private long batchNo;
64
	private long serialNo;
306 ashish 65
 
2509 chandransh 66
	private boolean doaFlag;
67
	private String pickupRequestNo;
3065 chandransh 68
	private boolean cod;
5769 rajveer 69
	private long pickupStoreId;
2509 chandransh 70
 
3553 chandransh 71
	private String delayReason;
5110 mandeep.dh 72
	private String pickFromWarehouse;
5530 mandeep.dh 73
	private boolean hasItemNumber;
5110 mandeep.dh 74
	private long fulfilmentWarehouseId;
9263 amar.kumar 75
	private long warehouseId;
5110 mandeep.dh 76
	private boolean serialized;
4398 rajveer 77
	private OrderAlert alert;
8717 amar.kumar 78
	private long productCondition; 
7422 rajveer 79
	private String source;
13146 manish.sha 80
	private String logisticsTransactionId;
7422 rajveer 81
 
13146 manish.sha 82
	private Map<Long, Map<String, String>> acceptTogetherOrdersMap;
83
	private Map<Long, Map<String, String>> billTogetherOrdersMap;
84
 
167 ashish 85
	@SuppressWarnings("unused")
740 chandransh 86
	private Order(){}
484 rajveer 87
 
88
	public Order(long orderId, long customerId, String customerName,
89
			String customerMobileNumber, String customerPincode,
737 chandransh 90
			String customerAddress1, String customerAddress2, String customerCity, String customerState, String customerEmail, long createdOn,
4004 chandransh 91
			long shippedAt,
92
			long verifiedAt,
93
			long expectedDeliveryTime,
94
			long promisedDeliveryTime,
95
			long expectedShippingTime,
4666 rajveer 96
			long promisedShippingTime,
4004 chandransh 97
			long status, String statusMessage,
5527 anupam.sin 98
			String orderType, long itemId, String productGroup, String brand, String modelName,
5387 rajveer 99
			String modelNumber, String color, String extraInfo, String dealText, double quantity,
100
			double totalAmount,	double totalWeight, String airwayBillNo, String billedBy,
2781 chandransh 101
			String invoiceNumber, long jacketNumber, String itemNumber,
4658 mandeep.dh 102
			String serialNumber, long batchNo, long serialNo,
5110 mandeep.dh 103
			boolean doaFlag, String pickupRequestNo, boolean cod, String delayReason,
9263 amar.kumar 104
			String pickFromWarehouse, boolean serialized, boolean hasItemNumber, 
105
			long fulfilmentWarehouseId, long warehouseId, long pickupStoreId, long freebieItemId, 
13146 manish.sha 106
			String source, long productCondition, long transactionId) {
484 rajveer 107
		super();
108
		this.orderId = orderId;
167 ashish 109
		this.customerId = customerId;
484 rajveer 110
		this.customerName = customerName;
111
		this.customerMobileNumber = customerMobileNumber;
112
		this.customerPincode = customerPincode;
737 chandransh 113
		this.customerAddress1 = customerAddress1;
740 chandransh 114
		this.customerAddress2 = customerAddress2;
671 chandransh 115
		this.customerCity = customerCity;
116
		this.customerState = customerState;
484 rajveer 117
		this.customerEmail = customerEmail;
167 ashish 118
		this.createdOn = createdOn;
4004 chandransh 119
		this.shippedAt = shippedAt;
120
		this.verifiedAt = verifiedAt;
167 ashish 121
		this.expectedDeliveryTime = expectedDeliveryTime;
3994 chandransh 122
		this.promisedDeliveryTime = promisedDeliveryTime;
4004 chandransh 123
		this.expectedShippingTime = expectedShippingTime;
4666 rajveer 124
		this.promisedShippingTime = promisedShippingTime;
740 chandransh 125
		this.status = status;
484 rajveer 126
		this.statusMessage = statusMessage;
5527 anupam.sin 127
		this.orderType = orderType;
740 chandransh 128
		this.itemId = itemId;
966 chandransh 129
		this.productGroup = productGroup;
130
		this.brand = brand;
484 rajveer 131
		this.modelName = modelName;
132
		this.modelNumber = modelNumber;
914 chandransh 133
		this.color = color;
484 rajveer 134
		this.extraInfo = extraInfo;
4172 rajveer 135
		this.dealText = dealText;
5387 rajveer 136
		this.setQuantity(quantity);
484 rajveer 137
		this.totalAmount = totalAmount;
138
		this.totalWeight = totalWeight;
486 rajveer 139
		this.airwayBillNo = airwayBillNo;
140
		this.billedBy = billedBy;
639 chandransh 141
		this.invoiceNumber = invoiceNumber;
142
		this.jacketNumber = jacketNumber;
2781 chandransh 143
		this.itemNumber = itemNumber;
4658 mandeep.dh 144
		this.serialNumber = serialNumber;
1224 chandransh 145
		this.batchNo = batchNo;
146
		this.serialNo = serialNo;
2509 chandransh 147
		this.doaFlag = doaFlag;
148
		this.pickupRequestNo = pickupRequestNo;
3065 chandransh 149
		this.cod = cod;
3553 chandransh 150
		this.delayReason = delayReason;
5110 mandeep.dh 151
		this.pickFromWarehouse = pickFromWarehouse;
152
		this.serialized = serialized;
5530 mandeep.dh 153
		this.hasItemNumber = hasItemNumber;
5110 mandeep.dh 154
		this.fulfilmentWarehouseId = fulfilmentWarehouseId;
9263 amar.kumar 155
		this.warehouseId = warehouseId;
5769 rajveer 156
		this.setPickupStoreId(pickupStoreId);
7190 amar.kumar 157
		this.freebieItemId = freebieItemId;
7422 rajveer 158
		this.source = source;
8717 amar.kumar 159
		this.productCondition = productCondition;
13146 manish.sha 160
		this.transactionId = transactionId;
4004 chandransh 161
		checkForAlerts();
167 ashish 162
	}
163
 
4004 chandransh 164
	private void checkForAlerts(){
4398 rajveer 165
	    this.alert = OrderAlert.NONE;
19004 manish.sha 166
	    Date date = new Date(System.currentTimeMillis());
167
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
4004 chandransh 168
	    long currentTime = date.getTime();
19004 manish.sha 169
	    long currentDateTime = 0;
170
	    long expectedDateShippingTime =0 ;
171
	    try {
172
	    	currentDateTime = sdf.parse(sdf.format(date)).getTime();
173
			expectedDateShippingTime = sdf.parse(sdf.format(new Date(this.expectedShippingTime))).getTime();
174
		} catch (ParseException e) {
175
			e.printStackTrace();
176
		}
4004 chandransh 177
	    if(this.expectedDeliveryTime <= currentTime && this.status < 12){
178
	        //Orders whose delivery dates have passed but which are not yet delivered
4398 rajveer 179
	        this.alert = OrderAlert.DELIVERY_TIME_EXCEEDED;
4004 chandransh 180
	        return;
181
	    }
182
 
19004 manish.sha 183
    	//Orders whose expected shipping dates have passed but which have not been shipped yet
184
    	if(expectedDateShippingTime >0){
185
    		if(expectedDateShippingTime <= currentDateTime){
186
    			if( TransactionUtils.virtualInvnetoryWarehouses.contains(this.fulfilmentWarehouseId)){
187
    				this.alert = OrderAlert.TODAY_SHIPPING_NOT_IN_STOCK;
188
    			}else{
189
    				this.alert = OrderAlert.TODAY_SHIPPING_IN_STOCK;
190
    			}
191
    			return;
192
    		}else{
193
    			if(this.expectedShippingTime <= currentTime && this.status < 9){
194
    				this.alert = OrderAlert.SHIPPING_TIME_EXCEEDED;
195
        			return;
196
    			}else{
197
	    			this.alert = OrderAlert.LATER_SHIPPING;
198
	    			return;
199
    			}
200
    		}
201
    	}else{
202
    		if(this.expectedShippingTime <= currentTime && this.status < 9){
203
    			this.alert = OrderAlert.SHIPPING_TIME_EXCEEDED;
204
    			return;
205
    		}
206
    	}
207
 
4004 chandransh 208
 
209
	    if(this.createdOn <= currentTime - 2 * MS_IN_HOUR && this.status == 3 && !this.cod){
210
            //A prepaid order has neither been accepted nor marked out of stock after 2 hours of order creation
4398 rajveer 211
            this.alert = OrderAlert.ACCEPTANCE_DELAYED_TOO_MUCH;
4004 chandransh 212
            return;
213
        }
214
 
215
	    if(this.verifiedAt <= currentTime - 2 * MS_IN_HOUR && this.status == 3 && this.cod){
216
	        //A COD order has neither been accepted nor marked out of stock after 2 hours of order verification
4398 rajveer 217
            this.alert = OrderAlert.ACCEPTANCE_DELAYED_TOO_MUCH;
4004 chandransh 218
            return;
219
	    }
220
 
221
	    if(this.shippedAt <= currentTime - 27 * MS_IN_HOUR && this.status == 9){
222
            //A shipped order has not been picked up even after 6 hours of pickup mismatch being reported
4398 rajveer 223
            this.alert = OrderAlert.ORDER_NOT_CONNECTED_FOR_TOO_LONG;
4004 chandransh 224
            return;
225
        }
226
 
227
	    if(this.cod && this.status == 2 && this.createdOn <= currentTime - MS_IN_HOUR){
228
	        //A COD order has not been verified for an hour
4398 rajveer 229
	        this.alert = OrderAlert.VERIFICATION_DELAYED;
4004 chandransh 230
            return;
231
	    }
232
 
233
        if(this.createdOn <= currentTime - MS_IN_HOUR && this.status == 3 && !this.cod){
234
            //A prepaid order has neither been accepted nor marked out of stock after 1 hour of order creation
4398 rajveer 235
            this.alert = OrderAlert.ACCEPTANCE_DELAYED;
4004 chandransh 236
            return;
237
        }
238
 
239
        if(this.verifiedAt <= currentTime - MS_IN_HOUR && this.status == 3 && this.cod){
240
            //A COD order has neither been accepted nor marked out of stock after an hour of order verification
4398 rajveer 241
            this.alert = OrderAlert.ACCEPTANCE_DELAYED;
4004 chandransh 242
            return;
243
        }
244
 
245
	    if(this.status == 9 && this.shippedAt <= currentTime - 20 * MS_IN_HOUR){
246
            //A shipped order has not been picked up
4398 rajveer 247
            this.alert = OrderAlert.ORDER_NOT_CONNECTED;
4004 chandransh 248
            return;
249
	    }
250
	}
251
 
167 ashish 252
	public long getCustomerId() {
253
		return customerId;
254
	}
255
 
256
	public long getCreatedOn() {
257
		return createdOn;
258
	}
259
 
260
	public long getExpectedDeliveryTime() {
261
		return expectedDeliveryTime;
262
	}
3994 chandransh 263
 
264
	public long getPromisedDeliveryTime() {
265
	    return promisedDeliveryTime;
266
	}
167 ashish 267
 
306 ashish 268
	public void setStatusMessage(String message){
269
		this.statusMessage = message;
270
	}
271
 
167 ashish 272
	public String getStatusMessage() {
273
		return statusMessage;
306 ashish 274
	}
275
 
484 rajveer 276
	public void setOrderId(long orderId) {
277
		this.orderId = orderId;
306 ashish 278
	}
279
 
484 rajveer 280
	public long getOrderId() {
281
		return orderId;
306 ashish 282
	}
283
 
484 rajveer 284
	public void setCustomerName(String customerName) {
285
		this.customerName = customerName;
306 ashish 286
	}
287
 
484 rajveer 288
	public String getCustomerName() {
289
		return customerName;
290
	}
291
 
292
	public void setCustomerMobileNumber(String customerMobileNumber) {
293
		this.customerMobileNumber = customerMobileNumber;
294
	}
295
 
296
	public String getCustomerMobileNumber() {
297
		return customerMobileNumber;
298
	}
299
 
300
	public void setCustomerPincode(String customerPincode) {
301
		this.customerPincode = customerPincode;
302
	}
303
 
304
	public String getCustomerPincode() {
305
		return customerPincode;
306
	}
307
 
308
	public void setCustomerEmail(String customerEmail) {
309
		this.customerEmail = customerEmail;
310
	}
311
 
312
	public String getCustomerEmail() {
313
		return customerEmail;
314
	}
315
 
737 chandransh 316
	public void setCustomerAddress1(String customerAddress) {
317
		this.customerAddress1 = customerAddress;
484 rajveer 318
	}
319
 
737 chandransh 320
	public String getCustomerAddress1() {
321
		return customerAddress1;
484 rajveer 322
	}
737 chandransh 323
 
324
	public void setCustomerAddress2(String customerAddress2) {
325
		this.customerAddress2 = customerAddress2;
326
	}
484 rajveer 327
 
737 chandransh 328
	public String getCustomerAddress2() {
329
		return customerAddress2;
330
	}
331
 
671 chandransh 332
	public String getCustomerCity() {
333
		return customerCity;
334
	}
335
 
336
	public void setCustomerCity(String customerCity) {
337
		this.customerCity = customerCity;
338
	}
339
 
340
	public String getCustomerState() {
341
		return customerState;
342
	}
343
 
344
	public void setCustomerState(String customerState) {
345
		this.customerState = customerState;
346
	}
347
 
484 rajveer 348
	public void setModelName(String modelName) {
349
		this.modelName = modelName;
350
	}
351
 
352
	public String getModelName() {
353
		return modelName;
354
	}
355
 
356
	public void setTotalWeight(double totalWeight) {
357
		this.totalWeight = totalWeight;
358
	}
359
 
360
	public double getTotalWeight() {
361
		return totalWeight;
362
	}
363
 
364
	public void setTotalAmount(double totalAmount) {
365
		this.totalAmount = totalAmount;
366
	}
367
 
368
	public double getTotalAmount() {
369
		return totalAmount;
370
	}
371
 
706 chandransh 372
	public void setItemId(long itemId) {
373
		this.itemId = itemId;
374
	}
375
 
376
	public long getItemId() {
377
		return itemId;
378
	}
379
 
966 chandransh 380
	public void setProductGroup(String productGroup) {
381
		this.productGroup = productGroup;
484 rajveer 382
	}
383
 
966 chandransh 384
	public String getProductGroup() {
385
		return productGroup;
306 ashish 386
	}
387
 
966 chandransh 388
	public void setBrand(String brand) {
389
		this.brand = brand;
390
	}
391
 
392
	public String getBrand() {
393
		return brand;
394
	}
395
 
396
	public void setModelNumber(String modelNumber) {
397
		this.modelNumber = modelNumber;
398
	}
399
 
400
	public String getModelNumber() {
401
		return modelNumber;
402
	}
403
 
404
	public String getColor() {
405
		return color;
406
	}
407
 
408
	public void setColor(String color) {
409
		this.color = color;
410
	}
411
 
412
	public void setExtraInfo(String extraInfo) {
413
		this.extraInfo = extraInfo;
414
	}
415
 
416
	public String getExtraInfo() {
417
		return extraInfo;
418
	}
419
 
484 rajveer 420
	public void setStatus(long status) {
421
		this.status = status;
306 ashish 422
	}
423
 
484 rajveer 424
	public long getStatus() {
425
		return status;
426
	}
427
 
486 rajveer 428
	public void setAirwayBillNo(String airwayBillNo) {
429
		this.airwayBillNo = airwayBillNo;
430
	}
431
 
432
	public String getAirwayBillNo() {
433
		return airwayBillNo;
434
	}
435
 
436
	public void setBilledBy(String billedBy) {
437
		this.billedBy = billedBy;
438
	}
439
 
440
	public String getBilledBy() {
441
		return billedBy;
442
	}
443
 
444
	public void setInvoiceNumber(String invoiceNumber) {
445
		this.invoiceNumber = invoiceNumber;
446
	}
447
 
448
	public String getInvoiceNumber() {
449
		return invoiceNumber;
450
	}
451
 
639 chandransh 452
	public long getJacketNumber() {
453
		return jacketNumber;
454
	}
455
 
456
	public void setJacketNumber(long jacketNumber) {
457
		this.jacketNumber = jacketNumber;
458
	}
1224 chandransh 459
 
2781 chandransh 460
	public void setItemNumber(String itemNumber) {
461
		this.itemNumber = itemNumber;
462
	}
463
 
464
	public String getItemNumber() {
465
		return itemNumber;
466
	}
467
 
4658 mandeep.dh 468
	public void setImeiNumber(String imeiNumber) {
469
		this.serialNumber = imeiNumber;
2352 chandransh 470
	}
471
 
4658 mandeep.dh 472
	public String getImeiNumber() {
473
		return serialNumber;
2352 chandransh 474
	}
475
 
1224 chandransh 476
	public long getBatchNo() {
477
		return batchNo;
478
	}
479
 
480
	public void setBatchNo(long batchNo) {
481
		this.batchNo = batchNo;
482
	}
483
 
484
	public long getSerialNo() {
485
		return serialNo;
486
	}
487
 
488
	public void setSerialNo(long serialNo) {
489
		this.serialNo = serialNo;
490
	}
2509 chandransh 491
 
492
	public void setDoaFlag(boolean doaFlag) {
493
		this.doaFlag = doaFlag;
494
	}
495
 
496
	public boolean isDoaFlag() {
497
		return doaFlag;
498
	}
499
 
500
	public void setPickupRequestNo(String pickupRequestNo) {
501
		this.pickupRequestNo = pickupRequestNo;
502
	}
503
 
504
	public String getPickupRequestNo() {
505
		return pickupRequestNo;
506
	}
3065 chandransh 507
 
508
    public boolean isCod() {
509
        return cod;
510
    }
3553 chandransh 511
 
512
    public String getDelayReason() {
513
        return delayReason;
514
    }
4004 chandransh 515
 
4398 rajveer 516
    public void setAlert(OrderAlert alert) {
4004 chandransh 517
        this.alert = alert;
518
    }
519
 
4398 rajveer 520
    public OrderAlert getAlert() {
4004 chandransh 521
        return alert;
522
    }
4172 rajveer 523
 
524
	public String getDealText() {
525
		return dealText;
526
	}
527
 
528
	public void setDealText(String dealText) {
529
		this.dealText = dealText;
530
	}
531
 
4666 rajveer 532
	public void setPromisedShippingTime(long promisedShippingTime) {
533
		this.promisedShippingTime = promisedShippingTime;
534
	}
535
 
536
	public long getPromisedShippingTime() {
537
		return promisedShippingTime;
538
	}
539
 
5110 mandeep.dh 540
    public String getPickFromWarehouse() {
541
        return pickFromWarehouse;
542
    }
543
 
544
    public void setPickFromWarehouse(String pickFromWarehouse) {
545
        this.pickFromWarehouse = pickFromWarehouse;
546
    }
547
 
548
    public boolean isSerialized() {
549
        return serialized;
550
    }
551
 
552
    public void setSerialized(boolean serialized) {
553
        this.serialized = serialized;
554
    }
555
 
556
    public long getFulfilmentWarehouseId() {
557
        return fulfilmentWarehouseId;
558
    }
559
 
560
    public void setFulfilmentWarehouseId(long fulfilmentWarehouseId) {
561
        this.fulfilmentWarehouseId = fulfilmentWarehouseId;
562
    }
9263 amar.kumar 563
 
564
	public long getWarehouseId() {
565
		return warehouseId;
566
	}
5110 mandeep.dh 567
 
9263 amar.kumar 568
	public void setWarehouseId(long warehouseId) {
569
		this.warehouseId = warehouseId;
570
	}
571
 
5387 rajveer 572
	public void setQuantity(double quantity) {
573
		this.quantity = quantity;
574
	}
575
 
576
	public double getQuantity() {
577
		return quantity;
578
	}
579
 
5530 mandeep.dh 580
    public boolean isHasItemNumber() {
581
        return hasItemNumber;
582
    }
583
 
584
    public void setHasItemNumber(boolean hasItemNumber) {
585
        this.hasItemNumber = hasItemNumber;
586
    }
587
 
5527 anupam.sin 588
    public String getOrderType() {
589
        return orderType;
590
    }
591
 
592
    public void setOrderType(String orderType) {
593
        this.orderType = orderType;
594
    }
595
 
5769 rajveer 596
	public void setPickupStoreId(long pickupStoreId) {
597
		this.pickupStoreId = pickupStoreId;
598
	}
599
 
600
	public long getPickupStoreId() {
601
		return pickupStoreId;
602
	}
603
 
7190 amar.kumar 604
	public long getFreebieItemId() {
605
		return freebieItemId;
606
	}
607
 
608
	public void setFreebieItemId(long freebieItemId) {
609
		this.freebieItemId = freebieItemId;
610
	}
611
 
7422 rajveer 612
	public String getSource(){
613
		return this.source;
614
	}
8717 amar.kumar 615
 
616
	public long getProductCondition() {
617
		return productCondition;
618
	}
619
 
620
	public void setProductCondition(long productCondition) {
621
		this.productCondition = productCondition;
622
	}
13146 manish.sha 623
 
624
	public long getTransactionId() {
625
		return transactionId;
626
	}
627
 
628
	public void setTransactionId(long transactionId) {
629
		this.transactionId = transactionId;
630
	}
631
 
632
	public Map<Long, Map<String, String>> getBillTogetherOrdersMap() {
633
		return billTogetherOrdersMap;
634
	}
635
 
636
	public void setBillTogetherOrdersMap(
637
			Map<Long, Map<String, String>> billTogetherOrdersMap) {
638
		this.billTogetherOrdersMap = billTogetherOrdersMap;
639
	}
640
 
641
	public String getLogisticsTransactionId() {
642
		return logisticsTransactionId;
643
	}
644
 
645
	public void setLogisticsTransactionId(String logisticsTransactionId) {
646
		this.logisticsTransactionId = logisticsTransactionId;
647
	}
648
 
649
	public Map<Long, Map<String, String>> getAcceptTogetherOrdersMap() {
650
		return acceptTogetherOrdersMap;
651
	}
652
 
653
	public void setAcceptTogetherOrdersMap(
654
			Map<Long, Map<String, String>> acceptTogetherOrdersMap) {
655
		this.acceptTogetherOrdersMap = acceptTogetherOrdersMap;
656
	}
19004 manish.sha 657
 
167 ashish 658
}