Subversion Repositories SmartDukaan

Rev

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

Rev 5945 Rev 6630
Line 52... Line 52...
52
    private String itemNo;
52
    private String itemNo;
53
    private String errorMsg = "";
53
    private String errorMsg = "";
54
    private List<Item> items;
54
    private List<Item> items;
55
    private List<LineItem> lineItems;
55
    private List<LineItem> lineItems;
56
    private List<Invoice> invoices;
56
    private List<Invoice> invoices;
-
 
57
    
-
 
58
    private String invoiceNumber;
-
 
59
    private Double freightCharges ;
-
 
60
    private Long poId;
57
 
61
 
58
    private String purchaseOrderId;
62
    private String purchaseOrderId;
59
    private Warehouse warehouse;
63
    private Warehouse warehouse;
60
 
64
 
61
    public String editNew() {
65
    public String editNew() {
Line 77... Line 81...
77
        calendar.add(Calendar.DAY_OF_MONTH, -1);
81
        calendar.add(Calendar.DAY_OF_MONTH, -1);
78
        return calendar.getTime();
82
        return calendar.getTime();
79
    }
83
    }
80
 
84
 
81
    public String create() {
85
    public String create() {
82
        this.purchaseOrderId = request.getParameter("poId");
86
    	this.purchaseOrderId = request.getParameter("poId");
83
        long poId = Long.parseLong(purchaseOrderId);
87
        poId = Long.parseLong(purchaseOrderId);
84
        String invoiceNumber = request.getParameter("invoiceNo");
88
        invoiceNumber = request.getParameter("invoiceNo");
85
        String fc = request.getParameter("freightCharges").trim();
89
        String fc = request.getParameter("freightCharges").trim();
86
        double freightCharges = 0;
90
        freightCharges = 0D;
-
 
91
        id = "0";
87
        if (fc != null && !fc.isEmpty())
92
        if (fc != null && !fc.isEmpty())
88
            freightCharges = Double.parseDouble(fc);
93
            freightCharges = Double.parseDouble(fc);
89
        try {
94
        return show();
90
            PurchaseClient purchaseClient = new PurchaseClient();
-
 
91
            in.shop2020.purchase.PurchaseService.Client client = purchaseClient
-
 
92
                    .getClient();
-
 
93
            id = "" + client.startPurchase(poId, invoiceNumber, freightCharges);
-
 
94
        } catch (TTransportException e) {
-
 
95
            errorMsg = "Error while establishing connection to the warehouse server";
-
 
96
            logger.error(errorMsg, e);
-
 
97
        } catch (TException e) {
-
 
98
            errorMsg = "Error while scanning in the item";
-
 
99
            logger.error(errorMsg, e);
-
 
100
        } catch (PurchaseServiceException e) {
-
 
101
            errorMsg = e.getMessage();
-
 
102
            logger.error(errorMsg, e);
-
 
103
        }
-
 
104
 
-
 
105
        if (errorMsg.isEmpty())
-
 
106
            return "create";
95
        //return "create";
107
        else {
-
 
108
            addActionError(errorMsg);
-
 
109
            return "new";
-
 
110
        }
-
 
111
 
96
 
112
    }
97
    }
113
 
98
 
114
    public String show() {
99
    public String show() {
115
        resetLineItems();
100
        resetLineItems();
116
        setItemsFromPO(Long.parseLong(id));
101
        setItemsFromPO();
117
        return SHOW;
102
        return SHOW;
118
    }
103
    }
119
 
104
 
120
    private void resetLineItems() {
105
    private void resetLineItems() {
121
        lineItems = new ArrayList<LineItem>();
106
        lineItems = new ArrayList<LineItem>();
Line 130... Line 115...
130
            lineItem.setItem_id(-1);
115
            lineItem.setItem_id(-1);
131
            lineItems.add(lineItem);
116
            lineItems.add(lineItem);
132
        }
117
        }
133
    }
118
    }
134
 
119
 
-
 
120
    public boolean createPurchase(){
-
 
121
        try {
-
 
122
        	logger.info("poId="+poId+" invoiceNumber="+invoiceNumber+" freightCharges="+freightCharges);
-
 
123
            PurchaseClient purchaseClient = new PurchaseClient();
-
 
124
            in.shop2020.purchase.PurchaseService.Client client = purchaseClient
-
 
125
                    .getClient();
-
 
126
            id = "" + client.startPurchase(poId, invoiceNumber, freightCharges);
-
 
127
            logger.info("id = "+id);
-
 
128
        } catch (TTransportException e) {
-
 
129
            errorMsg = "Error while establishing connection to the warehouse server";
-
 
130
            logger.error(errorMsg, e);
-
 
131
        } catch (TException e) {
-
 
132
            errorMsg = "Error while scanning in the item";
-
 
133
            logger.error(errorMsg, e);
-
 
134
        } catch (PurchaseServiceException e) {
-
 
135
            errorMsg = e.getMessage();
-
 
136
            logger.error(errorMsg, e);
-
 
137
        }
-
 
138
 
-
 
139
        if (errorMsg.isEmpty())
-
 
140
            return true;
-
 
141
        else {
-
 
142
            addActionError(errorMsg);
-
 
143
            return false;
-
 
144
        }
-
 
145
    }
-
 
146
    
135
    public String update() {
147
    public String update() {
136
        long id = Long.parseLong(this.id);
148
        long id = Long.parseLong(this.id);
137
        setItemsFromPO(id);
149
        setItemsFromPO();
138
 
150
 
139
        try {
151
        try {
140
            if (!areValidScans()) {
152
            if (!areValidScans()) {
141
                return SHOW;
153
                return SHOW;
142
            }
154
            }
-
 
155
            if(!createPurchase()) {
-
 
156
        		return "new";
-
 
157
        	} 
143
 
158
 
144
            WarehouseClient warehouseClient = new WarehouseClient();
159
            WarehouseClient warehouseClient = new WarehouseClient();
145
            Client client = warehouseClient.getClient();
160
            Client client = warehouseClient.getClient();
146
 
161
 
147
            for (LineItem lineItem : lineItems) {
162
            for (LineItem lineItem : lineItems) {
Line 167... Line 182...
167
            errorMsg = e.getMessage();
182
            errorMsg = e.getMessage();
168
            logger.error(errorMsg, e);
183
            logger.error(errorMsg, e);
169
        } catch (TException e) {
184
        } catch (TException e) {
170
            errorMsg = "Error while scanning in the item";
185
            errorMsg = "Error while scanning in the item";
171
            logger.error(errorMsg, e);
186
            logger.error(errorMsg, e);
-
 
187
        } catch (PurchaseServiceException e) {
-
 
188
            errorMsg = "Error while creating the purchase";
-
 
189
            logger.error(errorMsg, e);
172
        }
190
        }
173
 
191
 
174
        if (!errorMsg.isEmpty()) {
192
        if (!errorMsg.isEmpty()) {
175
            addActionError(errorMsg);
193
            addActionError(errorMsg);
176
        }
194
        }
Line 180... Line 198...
180
 
198
 
181
    /**
199
    /**
182
     * @return
200
     * @return
183
     * @throws TException 
201
     * @throws TException 
184
     * @throws NumberFormatException 
202
     * @throws NumberFormatException 
-
 
203
     * @throws PurchaseServiceException 
185
     */
204
     */
186
    private boolean areValidScans() throws NumberFormatException, TException {
205
    private boolean areValidScans() throws NumberFormatException, TException, PurchaseServiceException {
187
        boolean areValidScans = true;
206
        boolean areValidScans = true;
188
        in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
207
        in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
189
        PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrderForPurchase(Long.parseLong(id));
208
        //PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrderForPurchase(Long.parseLong(id));
-
 
209
        PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrder(poId);
190
        Map<Long, Long> itemsQuantityMapFromPO = new HashMap<Long, Long>();
210
        Map<Long, Long> itemsQuantityMapFromPO = new HashMap<Long, Long>();
191
        for (in.shop2020.purchase.LineItem lineItem : purchaseOrder.getLineitems()) {
211
        for (in.shop2020.purchase.LineItem lineItem : purchaseOrder.getLineitems()) {
192
            itemsQuantityMapFromPO.put(lineItem.getItemId(), (long) lineItem.getUnfulfilledQuantity());
212
            itemsQuantityMapFromPO.put(lineItem.getItemId(), (long) lineItem.getUnfulfilledQuantity());
193
        }
213
        }
194
 
214
 
Line 216... Line 236...
216
                    lineItem.setExtra_info("Item not selected/Item or serial number not present");
236
                    lineItem.setExtra_info("Item not selected/Item or serial number not present");
217
                    areValidScans = false;
237
                    areValidScans = false;
218
                    continue;
238
                    continue;
219
                }
239
                }
220
 
240
 
-
 
241
                if (StringUtils.isBlank(lineItem.getItem_number())) {
-
 
242
                	lineItem.setExtra_info("Item number not entered");
-
 
243
                	areValidScans = false;
-
 
244
                	continue;
-
 
245
                }
-
 
246
                
221
                if (lineItem.getItem_id() == -1) {
247
                if (lineItem.getItem_id() == -1) {
222
                    List<Long> itemIds = warehouseClient.getItemIds(lineItem.getItem_number());
248
                    List<Long> itemIds = warehouseClient.getItemIds(lineItem.getItem_number());
223
                    if (itemIds.isEmpty()) {
249
                    if (itemIds.isEmpty()) {
224
                        lineItem.setExtra_info("Unknown item number");
250
                        lineItem.setExtra_info("Unknown item number");
225
                        areValidScans = false;
251
                        areValidScans = false;
Line 261... Line 287...
261
        }
287
        }
262
 
288
 
263
        return areValidScans;
289
        return areValidScans;
264
    }
290
    }
265
 
291
 
266
    private void setItemsFromPO(long id) {
292
    private void setItemsFromPO() {
267
        try {
293
        try {
268
            items = new ArrayList<Item>();
294
            items = new ArrayList<Item>();
269
            in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
295
            in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
270
            PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrderForPurchase(id);
296
            //PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrderForPurchase(id);
-
 
297
            PurchaseOrder purchaseOrder = purchaseClient.getPurchaseOrder(poId);
271
            in.shop2020.model.v1.catalog.CatalogService.Client catalogClient = new CatalogClient().getClient();
298
            in.shop2020.model.v1.catalog.CatalogService.Client catalogClient = new CatalogClient().getClient();
272
 
299
 
273
            for (in.shop2020.purchase.LineItem lineItem : purchaseOrder.getLineitems()) {
300
            for (in.shop2020.purchase.LineItem lineItem : purchaseOrder.getLineitems()) {
274
                items.add(catalogClient.getItem(lineItem.getItemId()));
301
                items.add(catalogClient.getItem(lineItem.getItemId()));
275
            }
302
            }
Line 386... Line 413...
386
    }
413
    }
387
 
414
 
388
    public void setInvoices(List<Invoice> invoices) {
415
    public void setInvoices(List<Invoice> invoices) {
389
        this.invoices = invoices;
416
        this.invoices = invoices;
390
    }
417
    }
-
 
418
 
-
 
419
	public String getInvoiceNumber() {
-
 
420
		return invoiceNumber;
-
 
421
	}
-
 
422
 
-
 
423
	public void setInvoiceNumber(String invoiceNumber) {
-
 
424
		this.invoiceNumber = invoiceNumber;
-
 
425
	}
-
 
426
 
-
 
427
	public Double getFreightCharges() {
-
 
428
		return freightCharges;
-
 
429
	}
-
 
430
 
-
 
431
	public void setFreightCharges(Double freightCharges) {
-
 
432
		this.freightCharges = freightCharges;
-
 
433
	}
-
 
434
 
-
 
435
	public Long getPoId() {
-
 
436
		return poId;
-
 
437
	}
-
 
438
 
-
 
439
	public void setPoId(Long poId) {
-
 
440
		this.poId = poId;
-
 
441
	}
-
 
442
    
-
 
443
    
391
}
444
}