Subversion Repositories SmartDukaan

Rev

Rev 5110 | Rev 5372 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5110 Rev 5361
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
    }