/* ===================================Update Method======================== */ @RequestMapping(value = "/vendorReturnEdit", method = RequestMethod.GET) public String updateVendorReturn( @ModelAttribute("vendorReturnCommand") VendorReturn vrEdit, HttpServletRequest request, HttpServletResponse response, Model model) { response.setCharacterEncoding("UTF-8"); VendorReturnLine vrLine = null; List<VendorReturnLine> vrLines = null; String vendorReturnUpdate = null; List<Object[]> ob = null; float rejQty = 0.0f, returnQty = 0.0f, qty = 0.0f, diffQty = 0.0f; List<String> list = new ArrayList<String>(); String msg = null; String checkVrNo = vrEdit.getVendorReturnNoEditt(); int id = vrEdit.getVendorReturnIdEditt(); int list1 = vrService.checkEditDuplicate(checkVrNo, id); if (list1 == 0) { try { float stockEdit = vrEdit.getStockEdit(); vrEdit.setVendorReturnId(id); vrEdit.setVendorReturnNo(vrEdit.getVendorReturnNoEditt()); vrEdit.setVendorReturnDate( dateService.dateFormat( dateService.dateParse(vrEdit.getVendorReturnDateEditt(), "au"), "au")); vrEdit.setReference(vrEdit.getReferenceEditt()); vrEdit.setDescription(vrEdit.getDescriptionEditt()); vrEdit.setPurchaseOrderId(vrEdit.getPurchaseOrderIdEditt()); vrEdit.setGoodsReceiptId(vrEdit.getGoodsReceiptIdEdit()); vrLines = new ArrayList<VendorReturnLine>(); List<Float> newQty = new ArrayList<Float>(); int[] vrIdUpdate = vrEdit.getVendorReturnLineIdEditt(); String[] bno = vrEdit.getBatchNoEdit(); String materialedit = vrEdit.getmIdEditt(); List<String> meditlist = Arrays.asList(materialedit.split(",")); Object[] materialiidedit = meditlist.toArray(); Integer[] quantity = vrEdit.getQuantityEditt(); String unitedit = vrEdit.getUommEditt(); List<String> uomeditlist = Arrays.asList(unitedit.split(",")); Object[] uomidedit = uomeditlist.toArray(); float[] price = vrEdit.getPriceEditt(); String rfredit = vrEdit.getRfrIdEditt(); List<String> rfreditlist = Arrays.asList(rfredit.split(",")); Object[] rfridedit = rfreditlist.toArray(); String storageedit = vrEdit.getUommEditt(); List<String> storageeditlist = Arrays.asList(storageedit.split(",")); Object[] storageidedit = storageeditlist.toArray(); String idQL = null; if (quantity != null) { session = request.getSession(false); @SuppressWarnings("unchecked") List<Float> oldQty = (List<Float>) session.getAttribute("qtyList"); for (int i = 0; i < quantity.length; i++) { int kk = vrIdUpdate[i]; // get the Qtys ob = vrService.getRejQty( Integer.parseInt(vrEdit.getPurchaseOrderId()), Integer.parseInt(vrEdit.getGoodsReceiptId()), materialiidedit[i].toString(), bno[i]); if (kk == 0) { vrLine = new VendorReturnLine(); vrLine.setBatchNo(bno[i]); vrLine.setMaterial_Id(materialiidedit[i].toString()); vrLine.setQuantity(quantity[i]); /* * float afterEdit = vrLine.getQuantity(); int * materialId = Integer.parseInt(vrLine * .getMaterial_Id()); float finalStock = 0; * finalStock = stockEdit - afterEdit; * * materialService.materialStockUpdate(materialId, * finalStock); */ vrLine.setUom_Id(uomidedit[i].toString()); vrLine.setPrice(price[i]); vrLine.setReasonForRejectionId(rfridedit[i].toString()); vrLine.setStorageLocationId(storageidedit[i].toString()); vrLines.add(vrLine); // update qty returns in GRL if (ob != null) { Iterator<Object[]> itr = ob.iterator(); while (itr.hasNext()) { Object[] obj = (Object[]) itr.next(); if (obj[0] != null && obj[1] != null) { rejQty = (Float) obj[0]; returnQty = (Float) obj[1]; } else if (obj[0] != null) { rejQty = (Float) obj[0]; } } diffQty = returnQty + quantity[i].floatValue(); // update qty returns in GRL vrService.updateGRLQtyReturns( Integer.parseInt(vrEdit.getGoodsReceiptIdEdit()), materialiidedit[i].toString(), String.valueOf(bno[i]), diffQty); } } else { vrLine = new VendorReturnLine(); vrLine.setBatchNo(bno[i]); vrLine.setMaterial_Id(materialiidedit[i].toString()); vrLine.setQuantity(quantity[i]); vrLine.setUom_Id(uomidedit[i].toString()); vrLine.setPrice(price[i]); vrLine.setReasonForRejectionId(rfridedit[i].toString()); vrLine.setStorageLocationId(storageidedit[i].toString()); newQty.add((float) (quantity[i])); String ch = "1", ch1 = "0"; idQL = request.getParameter(kk + "Check"); if (ch.equals(idQL)) { vrService.deleteVendorReturnLine(kk); } if (ch1.equals(idQL) || idQL == null) { vrLines.add(vrLine); } if (oldQty.get(i) > (newQty.get(i))) { qty = oldQty.get(i) - newQty.get(i); if (ob != null) { Iterator<Object[]> itr = ob.iterator(); while (itr.hasNext()) { Object[] obj = (Object[]) itr.next(); if (obj[0] != null && obj[1] != null) { rejQty = (Float) obj[0]; returnQty = (Float) obj[1]; } else if (obj[0] != null) { rejQty = (Float) obj[0]; } } diffQty = returnQty - qty; // update qty returns in GRL vrService.updateGRLQtyReturns( Integer.parseInt(vrEdit.getGoodsReceiptIdEdit()), materialiidedit[i].toString(), String.valueOf(bno[i]), diffQty); } } else if (oldQty.get(i) < (newQty.get(i))) { qty = newQty.get(i) - oldQty.get(i); if (ob != null) { Iterator<Object[]> itr = ob.iterator(); while (itr.hasNext()) { Object[] obj = (Object[]) itr.next(); if (obj[0] != null && obj[1] != null) { rejQty = (Float) obj[0]; returnQty = (Float) obj[1]; } else if (obj[0] != null) { rejQty = (Float) obj[0]; } } diffQty = returnQty + qty; // update qty returns in GRL vrService.updateGRLQtyReturns( Integer.parseInt(vrEdit.getGoodsReceiptIdEdit()), materialiidedit[i].toString(), String.valueOf(bno[i]), diffQty); } } else { // Two Quantitys are Equal No update... } } } } } vrEdit.setVendorReturnLine(vrLines); msg = vrService.updateVendorReturn(vrEdit); request.setAttribute("updateVendorReturn", "Vendor Return Details Updated Successfully"); } catch (Exception e) { e.printStackTrace(); } if (msg.equals("Vendor Return Details Updated Successfully")) { vendorReturnUpdate = "Vendor Return Details Updated Successfully"; list.add("2"); } else { return "redirect:VendorReturn.mnt?updateFail=" + vendorReturnUpdate + ""; } model.addAttribute("vendorReturnCommand", new VendorReturn()); return "redirect:VendorReturn.mnt?updateSuccess=" + vendorReturnUpdate + ""; } else { request.setAttribute("vrEditList", "vrEditList"); return "redirect:VendorReturn.mnt?updateFail=" + vendorReturnUpdate + ""; } }
/* ================================Add Method========================== */ @RequestMapping(value = "/vendorReturn", method = RequestMethod.GET) public String addVendorReturn( @ModelAttribute("vendorReturnCommand") VendorReturn vendorReturnAdd, HttpServletRequest request, HttpServletResponse response, Model model) { response.setCharacterEncoding("UTF-8"); List<String> list = new ArrayList<String>(); VendorReturnLine vrLine = null; List<VendorReturnLine> vrLines = null; String vrAddSus = null; String msg = null; String checkVrNo = vendorReturnAdd.getVendorReturnNo(); int list1 = vrService.checkDuplicate(checkVrNo); if (list1 == 0) { try { vrLines = new ArrayList<VendorReturnLine>(); String material = vendorReturnAdd.getmId(); String[] bNo = vendorReturnAdd.getBatchNo(); List<String> mlist = Arrays.asList(material.split(",")); Object[] materialiid = mlist.toArray(); Integer[] quantity = vendorReturnAdd.getQuantity(); String unit = vendorReturnAdd.getUomm(); List<String> uomlist = Arrays.asList(unit.split(",")); Object[] uomid = uomlist.toArray(); float[] price = vendorReturnAdd.getPrice(); String rfr = vendorReturnAdd.getRfrId(); List<String> rfrlist = Arrays.asList(rfr.split(",")); Object[] rfrid = rfrlist.toArray(); String storage = vendorReturnAdd.getStLId(); List<String> storagelist = Arrays.asList(storage.split(",")); Object[] storageid = storagelist.toArray(); for (int i = 0; i < quantity.length; i++) { vrLine = new VendorReturnLine(); vrLine.setMaterial_Id(materialiid[i].toString()); vrLine.setQuantity(quantity[i]); vrLine.setUom_Id(uomid[i].toString()); vrLine.setPrice(price[i]); vrLine.setReasonForRejectionId(rfrid[i].toString()); vrLine.setStorageLocationId(storageid[i].toString()); vrLine.setBatchNo(bNo[i]); vrLines.add(vrLine); float enteredQty = vrLine.getQuantity(); int materialid = Integer.parseInt(vrLine.getMaterial_Id()); float materialStock; materialStock = materialService.materialStockGet(materialid); float updatedStock = 0; updatedStock = materialStock - enteredQty; // msg = // materialService.materialStockUpdate(materialid,updatedStock); // Update Goods Receipt Line Returns Qty vrService.updateGRLQtyReturns( Integer.parseInt(vendorReturnAdd.getGoodsReceiptId()), materialiid[i].toString(), String.valueOf(bNo[i]), quantity[i].floatValue()); } vendorReturnAdd.setVendorReturnDate( dateService.dateFormat( dateService.dateParse(vendorReturnAdd.getVendorReturnDate(), "au"), "au")); vendorReturnAdd.setVendorReturnLine(vrLines); msg = vrService.addVendorReturn(vendorReturnAdd); request.setAttribute("addVendorReturn", "Vendor Return Details Successfully Saved"); } catch (Exception e) { e.printStackTrace(); } if (msg.equals("S")) { session = request.getSession(false); Date dates = new Date(); String modifiedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dates); auditLogService.setAuditLogSave( session.getAttribute("userId").toString(), "A", "Vendor Returns", "ROW", String.valueOf(vendorReturnAdd.getVendorReturnId()), "1", modifiedDate, session.getAttribute("userName").toString()); vrAddSus = "Vendor Return Details Successfully Saved"; list.add("2"); } model.addAttribute("vendorReturnCommand", new VendorReturn()); return "redirect:VendorReturn.mnt?Addsuccess=" + vrAddSus + ""; } else { vendorReturnAdd.setAid(1); request.setAttribute( "addVendorReturnDuplicate", "Vendor Return No Already Exists Choose Another One"); return "redirect:VendorReturn.mnt?AddFail=" + vrAddSus + ""; } }