Subversion Repositories SmartDukaan

Rev

Rev 33291 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4500 mandeep.dh 1
/**
2
 * 
3
 */
4
package in.shop2020.warehouse.handler;
5
 
8689 amar.kumar 6
import in.shop2020.model.v1.inventory.InventoryService;
7
import in.shop2020.model.v1.inventory.InventoryServiceException;
8
import in.shop2020.model.v1.inventory.Warehouse;
9
import in.shop2020.thrift.clients.InventoryClient;
14491 manish.sha 10
import in.shop2020.warehouse.DoaOutInventoryItem;
7613 amar.kumar 11
import in.shop2020.warehouse.InTransitInventory;
5185 mandeep.dh 12
import in.shop2020.warehouse.ScanType;
4500 mandeep.dh 13
import in.shop2020.warehouse.domain.InventoryItem;
14
import in.shop2020.warehouse.persistence.InventoryItemMapper;
15
 
7613 amar.kumar 16
import java.util.ArrayList;
21617 amit.gupta 17
import java.util.Collections;
10215 amar.kumar 18
import java.util.Date;
10864 manish.sha 19
import java.util.HashMap;
10215 amar.kumar 20
import java.util.HashSet;
5185 mandeep.dh 21
import java.util.List;
6484 amar.kumar 22
import java.util.Map;
10215 amar.kumar 23
import java.util.Set;
5185 mandeep.dh 24
 
21617 amit.gupta 25
import org.apache.commons.collections.CollectionUtils;
26
import org.apache.commons.collections.ListUtils;
8689 amar.kumar 27
import org.apache.thrift.TException;
4500 mandeep.dh 28
import org.springframework.beans.factory.annotation.Autowired;
29
import org.springframework.stereotype.Service;
30
 
5530 mandeep.dh 31
import com.mysql.jdbc.StringUtils;
32
 
4500 mandeep.dh 33
/**
34
 * @author mandeep
35
 *
36
 */
37
@Service
38
public class InventoryItemHandler {
39
    @Autowired
40
    private InventoryItemMapper inventoryItemMapper;
41
 
42
    /**
43
     * @param inventoryItem
44
     */
5110 mandeep.dh 45
    public InventoryItem insertInventoryItem(InventoryItem inventoryItem) {
4500 mandeep.dh 46
        inventoryItemMapper.insertInventoryItem(inventoryItem);
5110 mandeep.dh 47
        return inventoryItem;
4500 mandeep.dh 48
    }
49
 
50
    /**
51
     * @param inventoryItemId
52
     * @return
53
     */
54
    public InventoryItem getInventoryItem(long inventoryItemId) {
55
        return inventoryItemMapper.getInventoryItem(inventoryItemId);
56
    }
57
 
58
    /**
59
     * @param serialNumber
60
     * @return
61
     */
62
    public InventoryItem getInventoryItem(String serialNumber) {
63
        return inventoryItemMapper.getInventoryItemFromSerialNumber(serialNumber);
64
    }
34330 amit.gupta 65
    /**
66
     * @param serialNumber
67
     * @return
68
     */
69
    public InventoryItem getInventoryItemInStock(String serialNumber) {
70
        return inventoryItemMapper.getInventoryItemInStockFromSerialNumber(serialNumber);
71
    }
5185 mandeep.dh 72
 
73
    public List<InventoryItem> getInventoryItemFromLastScanType(ScanType scanType) {
74
        return inventoryItemMapper.getInventoryItemsFromLastScanType(scanType);
75
    }
76
 
77
    /**
78
     * @param inventoryItemId
79
     * @return
80
     */
81
    public InventoryItem getInventoryItemFromId(long inventoryItemId) {
82
        return inventoryItemMapper.getInventoryItemsFromId(inventoryItemId);
83
    }
84
 
85
    /**
86
     * @param inventoryItem
87
     */
88
    public void update(InventoryItem inventoryItem) {
89
        inventoryItemMapper.update(inventoryItem);
90
    }
5361 mandeep.dh 91
 
92
    /**
93
     * @param itemId
94
     * @param warehouseId
95
     * @return
96
     */
8565 amar.kumar 97
    public InventoryItem getInventoryItem(String itemNumber, long itemId, long warehouseId, long billingWarehouseId) {
5530 mandeep.dh 98
        if (StringUtils.isNullOrEmpty(itemNumber)) {
99
            itemNumber = null;
100
        }
101
 
8565 amar.kumar 102
        return inventoryItemMapper.getNonSerializedInventoryItem(itemNumber, itemId, warehouseId, billingWarehouseId);
5361 mandeep.dh 103
    }
6467 amar.kumar 104
 
7957 amar.kumar 105
	public Long getCurrentQuantityForNonSerializedItem(long itemId, long warehouseId, long physicalWarehouseId) {
16411 manish.sha 106
		return inventoryItemMapper.getCurrentQuantityForNonSerializedItem(itemId, warehouseId, physicalWarehouseId, 0);
6467 amar.kumar 107
	}
16411 manish.sha 108
 
109
	public Long getCurrentQuantityForNonSerializedItemWithGrnId(long itemId, long warehouseId, long physicalWarehouseId, long purchaseId) {
110
		return inventoryItemMapper.getCurrentQuantityForNonSerializedItem(itemId, warehouseId, physicalWarehouseId, purchaseId);
111
	}
6467 amar.kumar 112
 
113
	public void markPurchaseReturnIdForItem(long id, long currentQuantity, long purchaseReturnId) {
114
		inventoryItemMapper.markPurchaseReturnIdForItem(id, currentQuantity, purchaseReturnId);
115
 
116
	}
10864 manish.sha 117
 
118
	public void markPurchaseReturnIdForBadItem(long id, long currentQuantity, long purchaseReturnId) {
119
		inventoryItemMapper.markPurchaseReturnIdForBadItem(id, currentQuantity, purchaseReturnId);
120
	}
6467 amar.kumar 121
 
8689 amar.kumar 122
	public List<InventoryItem> getCurrentNonSerializedItemsByItemId(long itemId, long warehouseId) throws InventoryServiceException, TException {
123
		InventoryService.Client inventoryClient = new InventoryClient().getClient();
124
		Warehouse warehouse = inventoryClient.getWarehouse(warehouseId);
16411 manish.sha 125
		return inventoryItemMapper.getCurrentNonSerializedItemsByItemId(itemId, warehouseId, warehouse.getBillingWarehouseId(),0);
6467 amar.kumar 126
	}
6484 amar.kumar 127
 
16411 manish.sha 128
	public List<InventoryItem> getCurrentNonSerializedItemsByItemIdWithGrnId(long itemId, long warehouseId, long purchaseId) throws InventoryServiceException, TException {
129
		InventoryService.Client inventoryClient = new InventoryClient().getClient();
130
		Warehouse warehouse = inventoryClient.getWarehouse(warehouseId);
131
		return inventoryItemMapper.getCurrentNonSerializedItemsByItemId(itemId, warehouseId, warehouse.getBillingWarehouseId(),purchaseId);
132
	}
133
 
10864 manish.sha 134
	public List<InventoryItem> getNonSerializedItemsForBadInventory(long itemId, long currentWarehouseId, long physicalWarehouseId){
135
		return inventoryItemMapper.getNonSerializedItemsForBadInventory(itemId, currentWarehouseId, physicalWarehouseId);
136
	}
137
 
6484 amar.kumar 138
	public List<Map<String, Integer>> getCurrentSerializedInventory() {
139
		return inventoryItemMapper.getCurrentSerializedInventory();
140
	}
141
 
142
	public List<Map<String, Integer>> getCurrentNonSerializedInventory() {
143
		return inventoryItemMapper.getCurrentNonSerializedInventory();
144
	}
6558 amar.kumar 145
 
146
	public void markItemAsLost(long id, long currentQuantity) {
147
		inventoryItemMapper.markItemAsLost(id, currentQuantity);
148
 
149
	}
7410 amar.kumar 150
 
151
	/*public void markTransferLotAsRecieved(long id) {
152
		inventoryItemMapper.markTransferLotAsRecieved(id);
153
	}*/
154
 
155
	public List<InventoryItem> getInventoryItemsForTransferLot(long id) {
156
		return inventoryItemMapper.getInventoryItemsForTransferLot(id);
157
	}
158
 
159
	/*public InventoryItem getNonSeralizedInventoryItemForPhysicalWarehouse(
160
			String itemNumber, long itemId, long physicalWarehouseId) {
161
		return  inventoryItemMapper.getNonSeralizedInventoryItemForPhysicalWarehouse(itemNumber, itemId, physicalWarehouseId);
162
	}*/
163
 
164
	public long getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(
165
			long itemId, long physicalWarehouseId) {
166
		return inventoryItemMapper.getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(itemId, physicalWarehouseId);
167
	}
168
 
169
	public List<InventoryItem> getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(
170
			long itemId, long physicalWarehouseId) {
171
		return inventoryItemMapper.getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(itemId, physicalWarehouseId);
172
	}
7574 amar.kumar 173
 
174
	public long getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
175
			long itemId, long physicalWarehouseId) {
176
		return inventoryItemMapper.getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
177
				itemId, physicalWarehouseId);
178
	}
7613 amar.kumar 179
 
180
	public List<InTransitInventory> getInTransitInventory(long originWarehouseId) {
181
		List<InTransitInventory> t_InTransitInventories = new ArrayList<InTransitInventory>();
182
		for(in.shop2020.warehouse.domain.InTransitInventory intransitInventory :inventoryItemMapper.getInTransitInventory(originWarehouseId)) {
183
			t_InTransitInventories.add(intransitInventory.toThriftObject());
184
		}
185
		return t_InTransitInventories;
186
	}
9129 amar.kumar 187
 
188
	public List<InventoryItem> getCurrentInTransitInventoryInPhysicalWarehouse(
189
			long itemId, long originWarehouseId) {
190
		return inventoryItemMapper.getCurrentInTransitInventoryInPhysicalWarehouse(itemId, originWarehouseId);
191
	}
6484 amar.kumar 192
 
10120 manish.sha 193
	public List<InventoryItem> getTransferLotItemsForMarkReceive(
194
			long transferLotId, ScanType scanType) {
195
		return inventoryItemMapper.getTransferLotItemsForMarkReceive(transferLotId,scanType);
196
	}
10215 amar.kumar 197
 
198
	public List<Long> getEmptyGrnsByDate(Date startDate, Date endDate) {
199
		List<Long> allGrns = inventoryItemMapper.getAllGrnsByDate(startDate, endDate);
200
		List<Long> nonEmptyGrns = inventoryItemMapper.getNonEmptyGrnsByDate(startDate, endDate);
201
 
202
		List<Long> emptyGrnsList = new ArrayList<Long>(10);
203
 
204
		Set<Long> emptyGrns = new HashSet<Long>();
205
		emptyGrns.addAll(allGrns);
206
		emptyGrns.removeAll(nonEmptyGrns);
207
 
208
		emptyGrnsList.addAll(emptyGrns);
209
		return emptyGrnsList;
210
	}
10407 amar.kumar 211
 
212
	public InventoryItem getSellableBadNonSerializedItem(long itemId, String itemNumber, long physicalWarehouseId) {
213
		return inventoryItemMapper.getSellableBadNonSerializedItem(itemId, itemNumber, physicalWarehouseId);
214
 
215
	}
10120 manish.sha 216
 
10689 manish.sha 217
	public List<InventoryItem> getInventoryItemScannedInForPO(long itemId, List<Long> purchaseIds) {
218
		return inventoryItemMapper.getInventoryItemScannedInForPO(itemId, purchaseIds);
219
	}
220
 
21617 amit.gupta 221
	public List<InventoryItem> getInventoryItemsBySerailNumbers(List<String> serialNumbers) {
222
		List<InventoryItem> inventoryItems = inventoryItemMapper.getInventoryItemsBySerailNumbers(serialNumbers);
223
		Map<String, InventoryItem> map = new HashMap<String, InventoryItem>();
224
		for(InventoryItem inventoryItem : inventoryItems){
225
			String serialNumber = inventoryItem.getSerialNumber();
226
			if(map.containsKey(serialNumber)){
227
				InventoryItem savedInventoryItem = map.get(serialNumber);
21927 amit.gupta 228
				if(savedInventoryItem.getId() < inventoryItem.getId()) {
21617 amit.gupta 229
					map.put(serialNumber, inventoryItem);
230
				}
231
			} else {
232
				map.put(serialNumber, inventoryItem);
233
			}
234
		}
235
		return new ArrayList<InventoryItem>(map.values());
236
	}
237
 
10864 manish.sha 238
	public Long getCurrentBadQuantityForItem( long itemId, long currentWarehouseId, long physicalWarehouseId){
239
		return inventoryItemMapper.getCurrentBadQuantityForItem(itemId, currentWarehouseId, physicalWarehouseId);
240
	}
241
 
13504 manish.sha 242
	public Map<Long, Long> getItemsInPurchaseReturn(long purchaseReturnId, ScanType type, String returnTime){		
243
		Map<Integer, Integer> result  = inventoryItemMapper.getItemsInPurchaseReturn(purchaseReturnId, type, returnTime);
10864 manish.sha 244
		Map<Long, Long> purchaseReturnItems = new HashMap<Long, Long>();
245
 
246
		for(Integer itemId : result.keySet()){
247
			Long count = Long.parseLong(((Object)((Map<String,Long>)(Object)result.get(itemId)).get("count")).toString());
248
			purchaseReturnItems.put(new Long(itemId), count);
249
		}
250
		return purchaseReturnItems;
251
	}
14491 manish.sha 252
 
253
	public List<DoaOutInventoryItem> getAllDoaOutInventoryItems(){
254
		return inventoryItemMapper.getAllDoaOutInventoryItems();
255
	}
32594 amit.gupta 256
 
257
	public InventoryItem getInventoryItem(String serialNumber, long billingWarehouseId) {
33291 amit.gupta 258
		return inventoryItemMapper.getInventoryItemFromSerialNumberWarehouse(serialNumber, billingWarehouseId);
32594 amit.gupta 259
	}
4500 mandeep.dh 260
}