Subversion Repositories SmartDukaan

Rev

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