Subversion Repositories SmartDukaan

Rev

Rev 13504 | Rev 16411 | 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) {
98
		return inventoryItemMapper.getCurrentQuantityForNonSerializedItem(itemId, warehouseId, physicalWarehouseId);
6467 amar.kumar 99
	}
100
 
101
	public void markPurchaseReturnIdForItem(long id, long currentQuantity, long purchaseReturnId) {
102
		inventoryItemMapper.markPurchaseReturnIdForItem(id, currentQuantity, purchaseReturnId);
103
 
104
	}
10864 manish.sha 105
 
106
	public void markPurchaseReturnIdForBadItem(long id, long currentQuantity, long purchaseReturnId) {
107
		inventoryItemMapper.markPurchaseReturnIdForBadItem(id, currentQuantity, purchaseReturnId);
108
	}
6467 amar.kumar 109
 
8689 amar.kumar 110
	public List<InventoryItem> getCurrentNonSerializedItemsByItemId(long itemId, long warehouseId) throws InventoryServiceException, TException {
111
		InventoryService.Client inventoryClient = new InventoryClient().getClient();
112
		Warehouse warehouse = inventoryClient.getWarehouse(warehouseId);
113
		return inventoryItemMapper.getCurrentNonSerializedItemsByItemId(itemId, warehouseId, warehouse.getBillingWarehouseId());
6467 amar.kumar 114
	}
6484 amar.kumar 115
 
10864 manish.sha 116
	public List<InventoryItem> getNonSerializedItemsForBadInventory(long itemId, long currentWarehouseId, long physicalWarehouseId){
117
		return inventoryItemMapper.getNonSerializedItemsForBadInventory(itemId, currentWarehouseId, physicalWarehouseId);
118
	}
119
 
6484 amar.kumar 120
	public List<Map<String, Integer>> getCurrentSerializedInventory() {
121
		return inventoryItemMapper.getCurrentSerializedInventory();
122
	}
123
 
124
	public List<Map<String, Integer>> getCurrentNonSerializedInventory() {
125
		return inventoryItemMapper.getCurrentNonSerializedInventory();
126
	}
6558 amar.kumar 127
 
128
	public void markItemAsLost(long id, long currentQuantity) {
129
		inventoryItemMapper.markItemAsLost(id, currentQuantity);
130
 
131
	}
7410 amar.kumar 132
 
133
	/*public void markTransferLotAsRecieved(long id) {
134
		inventoryItemMapper.markTransferLotAsRecieved(id);
135
	}*/
136
 
137
	public List<InventoryItem> getInventoryItemsForTransferLot(long id) {
138
		return inventoryItemMapper.getInventoryItemsForTransferLot(id);
139
	}
140
 
141
	/*public InventoryItem getNonSeralizedInventoryItemForPhysicalWarehouse(
142
			String itemNumber, long itemId, long physicalWarehouseId) {
143
		return  inventoryItemMapper.getNonSeralizedInventoryItemForPhysicalWarehouse(itemNumber, itemId, physicalWarehouseId);
144
	}*/
145
 
146
	public long getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(
147
			long itemId, long physicalWarehouseId) {
148
		return inventoryItemMapper.getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(itemId, physicalWarehouseId);
149
	}
150
 
151
	public List<InventoryItem> getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(
152
			long itemId, long physicalWarehouseId) {
153
		return inventoryItemMapper.getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(itemId, physicalWarehouseId);
154
	}
7574 amar.kumar 155
 
156
	public long getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
157
			long itemId, long physicalWarehouseId) {
158
		return inventoryItemMapper.getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
159
				itemId, physicalWarehouseId);
160
	}
7613 amar.kumar 161
 
162
	public List<InTransitInventory> getInTransitInventory(long originWarehouseId) {
163
		List<InTransitInventory> t_InTransitInventories = new ArrayList<InTransitInventory>();
164
		for(in.shop2020.warehouse.domain.InTransitInventory intransitInventory :inventoryItemMapper.getInTransitInventory(originWarehouseId)) {
165
			t_InTransitInventories.add(intransitInventory.toThriftObject());
166
		}
167
		return t_InTransitInventories;
168
	}
9129 amar.kumar 169
 
170
	public List<InventoryItem> getCurrentInTransitInventoryInPhysicalWarehouse(
171
			long itemId, long originWarehouseId) {
172
		return inventoryItemMapper.getCurrentInTransitInventoryInPhysicalWarehouse(itemId, originWarehouseId);
173
	}
6484 amar.kumar 174
 
10120 manish.sha 175
	public List<InventoryItem> getTransferLotItemsForMarkReceive(
176
			long transferLotId, ScanType scanType) {
177
		return inventoryItemMapper.getTransferLotItemsForMarkReceive(transferLotId,scanType);
178
	}
10215 amar.kumar 179
 
180
	public List<Long> getEmptyGrnsByDate(Date startDate, Date endDate) {
181
		List<Long> allGrns = inventoryItemMapper.getAllGrnsByDate(startDate, endDate);
182
		List<Long> nonEmptyGrns = inventoryItemMapper.getNonEmptyGrnsByDate(startDate, endDate);
183
 
184
		List<Long> emptyGrnsList = new ArrayList<Long>(10);
185
 
186
		Set<Long> emptyGrns = new HashSet<Long>();
187
		emptyGrns.addAll(allGrns);
188
		emptyGrns.removeAll(nonEmptyGrns);
189
 
190
		emptyGrnsList.addAll(emptyGrns);
191
		return emptyGrnsList;
192
	}
10407 amar.kumar 193
 
194
	public InventoryItem getSellableBadNonSerializedItem(long itemId, String itemNumber, long physicalWarehouseId) {
195
		return inventoryItemMapper.getSellableBadNonSerializedItem(itemId, itemNumber, physicalWarehouseId);
196
 
197
	}
10120 manish.sha 198
 
10689 manish.sha 199
	public List<InventoryItem> getInventoryItemScannedInForPO(long itemId, List<Long> purchaseIds) {
200
		return inventoryItemMapper.getInventoryItemScannedInForPO(itemId, purchaseIds);
201
	}
202
 
10864 manish.sha 203
	public Long getCurrentBadQuantityForItem( long itemId, long currentWarehouseId, long physicalWarehouseId){
204
		return inventoryItemMapper.getCurrentBadQuantityForItem(itemId, currentWarehouseId, physicalWarehouseId);
205
	}
206
 
13504 manish.sha 207
	public Map<Long, Long> getItemsInPurchaseReturn(long purchaseReturnId, ScanType type, String returnTime){		
208
		Map<Integer, Integer> result  = inventoryItemMapper.getItemsInPurchaseReturn(purchaseReturnId, type, returnTime);
10864 manish.sha 209
		Map<Long, Long> purchaseReturnItems = new HashMap<Long, Long>();
210
 
211
		for(Integer itemId : result.keySet()){
212
			Long count = Long.parseLong(((Object)((Map<String,Long>)(Object)result.get(itemId)).get("count")).toString());
213
			purchaseReturnItems.put(new Long(itemId), count);
214
		}
215
		return purchaseReturnItems;
216
	}
14491 manish.sha 217
 
218
	public List<DoaOutInventoryItem> getAllDoaOutInventoryItems(){
219
		return inventoryItemMapper.getAllDoaOutInventoryItems();
220
	}
4500 mandeep.dh 221
}