| Line 1... |
Line 1... |
| 1 |
package in.shop2020.inventory.controllers;
|
1 |
package in.shop2020.inventory.controllers;
|
| 2 |
|
2 |
|
| 3 |
import in.shop2020.model.v1.catalog.InventoryType;
|
3 |
import in.shop2020.model.v1.catalog.InventoryType;
|
| 4 |
import in.shop2020.model.v1.catalog.Item;
|
4 |
import in.shop2020.model.v1.catalog.Item;
|
| - |
|
5 |
import in.shop2020.model.v1.catalog.ItemType;
|
| 5 |
import in.shop2020.model.v1.catalog.Warehouse;
|
6 |
import in.shop2020.model.v1.catalog.Warehouse;
|
| 6 |
import in.shop2020.model.v1.catalog.WarehouseType;
|
7 |
import in.shop2020.model.v1.catalog.WarehouseType;
|
| 7 |
import in.shop2020.model.v1.order.LineItem;
|
8 |
import in.shop2020.model.v1.order.LineItem;
|
| 8 |
import in.shop2020.purchase.PurchaseOrder;
|
9 |
import in.shop2020.purchase.PurchaseOrder;
|
| 9 |
import in.shop2020.purchase.PurchaseServiceException;
|
10 |
import in.shop2020.purchase.PurchaseServiceException;
|
| Line 103... |
Line 104... |
| 103 |
LineItem lineItem = new LineItem();
|
104 |
LineItem lineItem = new LineItem();
|
| 104 |
lineItem.setId(i);
|
105 |
lineItem.setId(i);
|
| 105 |
lineItem.setExtra_info("");
|
106 |
lineItem.setExtra_info("");
|
| 106 |
lineItem.setSerial_number("");
|
107 |
lineItem.setSerial_number("");
|
| 107 |
lineItem.setItem_number("");
|
108 |
lineItem.setItem_number("");
|
| - |
|
109 |
lineItem.setQuantity(1);
|
| 108 |
lineItem.setItem_id(-1);
|
110 |
lineItem.setItem_id(-1);
|
| 109 |
lineItems.add(lineItem);
|
111 |
lineItems.add(lineItem);
|
| 110 |
}
|
112 |
}
|
| 111 |
}
|
113 |
}
|
| 112 |
|
114 |
|
| Line 125... |
Line 127... |
| 125 |
for (LineItem lineItem : lineItems) {
|
127 |
for (LineItem lineItem : lineItems) {
|
| 126 |
if (ScanRecordType.BLANK.name().equals(lineItem.getExtra_info())) {
|
128 |
if (ScanRecordType.BLANK.name().equals(lineItem.getExtra_info())) {
|
| 127 |
continue;
|
129 |
continue;
|
| 128 |
}
|
130 |
}
|
| 129 |
|
131 |
|
| 130 |
InventoryItem inventoryItem = null;
|
- |
|
| 131 |
|
- |
|
| 132 |
if (lineItem.getItem_id() != -1) {
|
132 |
if (ItemType.SERIALIZED.name().equals(lineItem.getProductGroup())) {
|
| 133 |
inventoryItem = client.createSerializedInventoryItem(lineItem.getItem_id(), lineItem.getItem_number(), lineItem.getSerial_number(), id);
|
133 |
InventoryItem inventoryItem = client.createSerializedInventoryItem(lineItem.getItem_id(), lineItem.getItem_number(), lineItem.getSerial_number(), id);
|
| - |
|
134 |
client.scanSerializedItem(inventoryItem, ScanType.PURCHASE, PurchaseOrderController.WAREHOUSE_ID);
|
| 134 |
}
|
135 |
}
|
| 135 |
else {
|
136 |
else {
|
| 136 |
inventoryItem = client.createSerializedInventoryItemFromItemNumber(lineItem.getItem_number(), lineItem.getSerial_number(), id);
|
137 |
InventoryItem inventoryItem = client.createInventoryItem(lineItem.getItem_id(), new Double(lineItem.getQuantity()).longValue(), id);
|
| - |
|
138 |
client.scan(inventoryItem, ScanType.PURCHASE, new Double(lineItem.getQuantity()).longValue()
|
| - |
|
139 |
, PurchaseOrderController.WAREHOUSE_ID);
|
| 137 |
}
|
140 |
}
|
| 138 |
|
- |
|
| 139 |
client.scanSerializedItem(inventoryItem, ScanType.PURCHASE, PurchaseOrderController.WAREHOUSE_ID);
|
- |
|
| 140 |
}
|
141 |
}
|
| 141 |
|
142 |
|
| 142 |
resetLineItems();
|
143 |
resetLineItems();
|
| 143 |
} catch (TTransportException e) {
|
144 |
} catch (TTransportException e) {
|
| 144 |
errorMsg = "Error while establishing connection to the warehouse server";
|
145 |
errorMsg = "Error while establishing connection to the warehouse server";
|
| 145 |
logger.error(errorMsg, e);
|
146 |
logger.error(errorMsg, e);
|
| 146 |
} catch (WarehouseServiceException e) {
|
147 |
} catch (WarehouseServiceException e) {
|
| Line 178... |
Line 179... |
| 178 |
if (lineItem.getItem_id() == -1 && lineItem.getItem_number().isEmpty() && lineItem.getSerial_number().isEmpty()) {
|
179 |
if (lineItem.getItem_id() == -1 && lineItem.getItem_number().isEmpty() && lineItem.getSerial_number().isEmpty()) {
|
| 179 |
lineItem.setExtra_info(ScanRecordType.BLANK.name());
|
180 |
lineItem.setExtra_info(ScanRecordType.BLANK.name());
|
| 180 |
}
|
181 |
}
|
| 181 |
else {
|
182 |
else {
|
| 182 |
lineItem.setExtra_info(ScanRecordType.VALID.name());
|
183 |
lineItem.setExtra_info(ScanRecordType.VALID.name());
|
| - |
|
184 |
if (ItemType.SERIALIZED.name().equals(lineItem.getProductGroup())) {
|
| 183 |
if (lineItem.getSerial_number().isEmpty()) {
|
185 |
if (lineItem.getSerial_number().isEmpty()) {
|
| 184 |
lineItem.setExtra_info("Serial number not present.");
|
186 |
lineItem.setExtra_info("Serial number not present.");
|
| - |
|
187 |
areValidScans = false;
|
| - |
|
188 |
continue;
|
| - |
|
189 |
}
|
| - |
|
190 |
|
| - |
|
191 |
try {
|
| - |
|
192 |
warehouseClient.getInventoryItem(lineItem.getSerial_number());
|
| - |
|
193 |
lineItem.setExtra_info("Item scanned already.");
|
| 185 |
areValidScans = false;
|
194 |
areValidScans = false;
|
| 186 |
continue;
|
195 |
continue;
|
| - |
|
196 |
}
|
| - |
|
197 |
catch (Exception e) {
|
| - |
|
198 |
}
|
| 187 |
}
|
199 |
}
|
| 188 |
|
200 |
|
| 189 |
if (lineItem.getItem_id() == -1 && lineItem.getItem_number().isEmpty()) {
|
201 |
if (lineItem.getItem_id() == -1 && lineItem.getItem_number().isEmpty()) {
|
| 190 |
lineItem.setExtra_info("Item not selected/Item number not present.");
|
202 |
lineItem.setExtra_info("Item not selected/Item number not present.");
|
| 191 |
areValidScans = false;
|
203 |
areValidScans = false;
|
| Line 210... |
Line 222... |
| 210 |
}
|
222 |
}
|
| 211 |
|
223 |
|
| 212 |
if (numItemsInPO > 1) {
|
224 |
if (numItemsInPO > 1) {
|
| 213 |
lineItem.setExtra_info("Multiple items found for given item Number. Choose item explicitly.");
|
225 |
lineItem.setExtra_info("Multiple items found for given item Number. Choose item explicitly.");
|
| 214 |
areValidScans = false;
|
226 |
areValidScans = false;
|
| 215 |
continue;
|
227 |
continue;
|
| 216 |
}
|
228 |
}
|
| 217 |
}
|
229 |
}
|
| 218 |
}
|
230 |
}
|
| 219 |
|
231 |
|
| 220 |
if (!itemsQuantityMapFromPO.containsKey(lineItem.getItem_id())) {
|
232 |
if (!itemsQuantityMapFromPO.containsKey(lineItem.getItem_id())) {
|
| 221 |
lineItem.setExtra_info("Item not present in PO.");
|
233 |
lineItem.setExtra_info("Item not present in PO.");
|
| 222 |
areValidScans = false;
|
234 |
areValidScans = false;
|
| 223 |
continue;
|
235 |
continue;
|
| 224 |
}
|
236 |
}
|
| 225 |
|
237 |
|
| - |
|
238 |
itemsQuantityMapFromPO.put(lineItem.getItem_id(),
|
| 226 |
itemsQuantityMapFromPO.put(lineItem.getItem_id(), itemsQuantityMapFromPO.get(lineItem.getItem_id()) - 1);
|
239 |
itemsQuantityMapFromPO.get(lineItem.getItem_id()) - new Double(lineItem.getQuantity()).longValue());
|
| 227 |
|
240 |
|
| 228 |
if (itemsQuantityMapFromPO.get(lineItem.getItem_id()) < 0) {
|
241 |
if (itemsQuantityMapFromPO.get(lineItem.getItem_id()) < 0) {
|
| 229 |
lineItem.setExtra_info("Item already fulfilled in PO.");
|
242 |
lineItem.setExtra_info("Item already fulfilled in PO.");
|
| 230 |
areValidScans = false;
|
243 |
areValidScans = false;
|
| 231 |
continue;
|
244 |
continue;
|
| 232 |
}
|
245 |
}
|
| 233 |
|
- |
|
| 234 |
try {
|
- |
|
| 235 |
warehouseClient.getInventoryItem(lineItem.getSerial_number());
|
- |
|
| 236 |
lineItem.setExtra_info("Item scanned already.");
|
- |
|
| 237 |
areValidScans = false;
|
- |
|
| 238 |
continue;
|
- |
|
| 239 |
}
|
- |
|
| 240 |
catch (Exception e) {
|
- |
|
| 241 |
}
|
- |
|
| 242 |
}
|
246 |
}
|
| 243 |
}
|
247 |
}
|
| 244 |
|
248 |
|
| 245 |
return areValidScans;
|
249 |
return areValidScans;
|
| 246 |
}
|
250 |
}
|
| Line 248... |
Line 252... |
| 248 |
private void setItemsFromPO(long id) {
|
252 |
private void setItemsFromPO(long id) {
|
| 249 |
try {
|
253 |
try {
|
| 250 |
items = new ArrayList<Item>();
|
254 |
items = new ArrayList<Item>();
|
| 251 |
in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
|
255 |
in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
|
| 252 |
PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrderForPurchase(id);
|
256 |
PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrderForPurchase(id);
|
| - |
|
257 |
in.shop2020.model.v1.catalog.InventoryService.Client catalogClient = new CatalogClient().getClient();
|
| - |
|
258 |
|
| 253 |
for (in.shop2020.purchase.LineItem lineItem : purchaseOrder.getLineitems()) {
|
259 |
for (in.shop2020.purchase.LineItem lineItem : purchaseOrder.getLineitems()) {
|
| 254 |
Item item = new Item();
|
260 |
Item item = new Item();
|
| 255 |
item.setId(lineItem.getItemId());
|
261 |
item.setId(lineItem.getItemId());
|
| 256 |
item.setBrand(lineItem.getBrand());
|
262 |
item.setBrand(lineItem.getBrand());
|
| 257 |
item.setModelName(lineItem.getModelName());
|
263 |
item.setModelName(lineItem.getModelName());
|
| 258 |
item.setModelNumber(lineItem.getModelNumber());
|
264 |
item.setModelNumber(lineItem.getModelNumber());
|
| 259 |
item.setColor(lineItem.getColor());
|
265 |
item.setColor(lineItem.getColor());
|
| - |
|
266 |
item.setProductGroup(catalogClient.getItem(lineItem.getItemId()).getType().name());
|
| 260 |
items.add(item);
|
267 |
items.add(item);
|
| 261 |
}
|
268 |
}
|
| 262 |
|
269 |
|
| 263 |
in.shop2020.model.v1.catalog.InventoryService.Client catalogClient = new CatalogClient().getClient();
|
- |
|
| 264 |
warehouse = catalogClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, purchaseOrder.getSupplierId(), PurchaseOrderController.WAREHOUSE_ID, PurchaseOrderController.WAREHOUSE_ID).get(0);
|
270 |
warehouse = catalogClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, purchaseOrder.getSupplierId(), PurchaseOrderController.WAREHOUSE_ID, PurchaseOrderController.WAREHOUSE_ID).get(0);
|
| 265 |
} catch (Exception e) {
|
271 |
} catch (Exception e) {
|
| 266 |
logger.error("Could not find items in PO with purchase: " + id, e);
|
272 |
logger.error("Could not find items in PO with purchase: " + id, e);
|
| 267 |
}
|
273 |
}
|
| 268 |
}
|
274 |
}
|