public float getPaidAmount(int invoiceId) { String hql = " select sum(apply_amount) from accounting.ar_transaction_allocation a where a.invoice_id =" + invoiceId; List list = this.getSession().createSQLQuery(hql).list(); return Tools.String2Float(list.get(0).toString()); }
public Map getItemNum(int orderNo, int itemNo) { Map result = new HashMap(); String sql = " select sum(qty) as qty ,sum(size) as size ,count(qty) as num from accounting.ar_invoice_lines a " + " inner join accounting.ar_invoices b on a.invoice_id=b.invoice_id" + " where " + " a.order_no=" + orderNo + " and " + " a.item_no=" + itemNo + " and " + " b.status in ('" + Constant.STATUS_INPROCESS + "','" + Constant.STATUS_CLOSED + "','" + Constant.STATUS_COMPLETED + "')" + " group by a.item_no"; try { List list = this.getSession().createSQLQuery(sql).list(); result.put("qty", 0); result.put("size", 0.0f); if (list.size() > 0) { Object[] obj = (Object[]) list.get(0); int qty = Tools.String2Integer(obj[0].toString()); float size = Tools.String2Float(obj[1].toString()); int num = Tools.String2Integer(obj[2].toString()); if (num == qty) qty = 1; result.put("qty", qty); result.put("size", size); } } catch (Exception e) { e.printStackTrace(); result.put("qty", Tools.String2Integer("0")); result.put("size", Tools.String2Float("0")); } return result; }
/** * @function 修改 * @author 陈文擎 @ */ public String edit_invoiceline() { ActionContext ctx = ActionContext.getContext(); String symbol = currency_Dao.getCurrencySymbol(apInvoice.getCurrency()); apInvoice.setSymbol(symbol); ctx.getSession().put("apInvoice", apInvoice); ctx.getSession().put("param", param); Struts2Util.getRequest().setAttribute("paramEL", param); String LineNo = Struts2Util.getRequest().getParameter("LineNo").trim(); if (0 == param.size()) return "edit_invoiceline"; String[] itemNos = param.get("itemNo") == null ? null : (String[]) param.get("itemNo"); String[] catalogNo = param.get("catalogNo") == null ? null : (String[]) param.get("catalogNo"); String[] names = param.get("name") == null ? null : (String[]) param.get("name"); String[] qtys = param.get("qty") == null ? null : (String[]) param.get("qty"); String[] qtyUoms = param.get("qtyUom") == null ? null : (String[]) param.get("qtyUom"); String[] unitPrices = param.get("unitPrice") == null ? null : (String[]) param.get("unitPrice"); String[] amounts = param.get("amount") == null ? null : (String[]) param.get("amount"); String[] taxs = param.get("tax") == null ? null : (String[]) param.get("tax"); String[] sizes = param.get("size") == null ? null : (String[]) param.get("size"); String[] lineNo = param.get("lineNo") == null ? null : (String[]) param.get("lineNo"); int i = 0; for (i = 0; i < lineNo.length; i++) { if (LineNo.equals(lineNo[i])) { break; } } apInvoiceLine.setAmount(Tools.String2Float(amounts[i])); apInvoiceLine.setCatalogNo(catalogNo[i]); apInvoiceLine.setItemNo(Tools.String2Integer(itemNos[i])); apInvoiceLine.setName(names[i]); apInvoiceLine.setQty(Tools.String2Integer(qtys[i])); apInvoiceLine.setQtyUom(qtyUoms[i]); apInvoiceLine.setUnitPrice(Tools.String2Float(unitPrices[i])); apInvoiceLine.setTax(Tools.String2Float(taxs[i])); apInvoiceLine.setSize(Tools.String2Float(sizes[i])); apInvoiceLine.setLineNo(Tools.String2Integer(lineNo[i])); return "edit_invoiceline"; }
/** 退票 */ public void changeOderItem(ApInvoice apInvoice) { if (0 == param.size()) return; String[] itemNos = param.get("itemNo") == null ? null : (String[]) param.get("itemNo"); String[] qtys = param.get("qty") == null ? null : (String[]) param.get("qty"); String[] sizes = param.get("size") == null ? null : (String[]) param.get("size"); if (null != itemNos) { for (int i = 0; i < itemNos.length; i++) { int itemNo = 0; int quantity = 0; double size = 0; itemNo = Tools.String2Integer(itemNos[i]); quantity = Tools.String2Integer(qtys[i]); size = Tools.String2Float(sizes[i]); this.apInvoiceService.checkOderItem( apInvoice.getInvoiceId(), apInvoice.getOrderNo(), itemNo, quantity, size, true); } // for 循环结束 } /** 对invoice line 进行check 结束 */ }
/** 保存修改invoiceLine后的发票 */ public String saveEdit() { ActionContext ctx = ActionContext.getContext(); try { ApInvoice oldApInvoice = apInvoiceDao.getById(apInvoice.getInvoiceId()); apInvoice.setModifiedBy(SessionUtil.getUserId()); apInvoice.setModifyDate(new Date()); // 如果原来状态既非 new 也非 inprocess 则不能 修改内容,只能修改状态 if ((!Constant.STATUS_INPROCESS.equals(oldApInvoice.getStatus())) && (!Constant.STATUS_NEW.equals(oldApInvoice.getStatus()))) { String status = oldApInvoice.getStatus(); // 以手动更改为Invalid 手动改为Void if (Constant.STATUS_VOID.equals(status) || Constant.STATUS_INVALID.equals(status)) { oldApInvoice.setStatus(apInvoice.getStatus()); status = apInvoice.getStatus(); if (Constant.STATUS_INPROCESS.equals(status) || Constant.STATUS_NEW.equals(status)) { apInvoiceDao.getSession().clear(); apInvoiceService.edit(oldApInvoice); } } ctx.getSession().remove("apInvoice"); ctx.getSession().remove("param"); return input(); } // boolean flag = this.apInvoiceDao.isAllocation(apInvoice.getInvoiceId()); // 没对过账,对过账的不能修改 boolean changeStatus = false; String status = apInvoice.getStatus(); // 手动更改为Invalid 手动改为Void if (Constant.STATUS_VOID.equals(status) || Constant.STATUS_INVALID.equals(status) && (!flag)) { oldApInvoice.setStatus(status); changeStatus = true; if (Constant.STATUS_INPROCESS.equals(oldApInvoice.getStatus())) { this.changeOderItem(oldApInvoice); apInvoiceDao.getSession().clear(); apInvoiceService.edit(oldApInvoice); ctx.getSession().remove("apInvoice"); ctx.getSession().remove("param"); return input(); } } if ((!oldApInvoice.getCurrency().equals(apInvoice.getCurrency())) && (!flag) && (!changeStatus)) // 没对过账 Currency更改 没手动更改为Invalid 、Void { if (Constant.STATUS_INPROCESS.equals(oldApInvoice.getStatus())) // 原本就是inprocess { apInvoiceService.copyNewInvoice(apInvoice); apInvoice.setCurrency(oldApInvoice.getCurrency()); apInvoice.setStatus(Constant.STATUS_VOID); apInvoiceDao.getSession().clear(); apInvoiceService.edit(apInvoice); ctx.getSession().remove("apInvoice"); ctx.getSession().remove("param"); return input(); } // 原来状态是new的不需要 } apInvoiceDao.getSession().clear(); apInvoiceService.edit(apInvoice); if (!Constant.STATUS_NEW.equals(oldApInvoice.getStatus())) { ctx.getSession().remove("apInvoice"); ctx.getSession().remove("param"); return input(); } int InvoiceId = apInvoice.getInvoiceId(); if (0 != param.size()) { String[] invoiceLineIds = param.get("invoiceLineIds") == null ? null : (String[]) param.get("invoiceLineIds"); String[] invoiceIds = param.get("invoiceIds") == null ? null : (String[]) param.get("invoiceIds"); String[] itemNos = param.get("itemNo") == null ? null : (String[]) param.get("itemNo"); String[] catalogNo = param.get("catalogNo") == null ? null : (String[]) param.get("catalogNo"); String[] names = param.get("name") == null ? null : (String[]) param.get("name"); String[] qtys = param.get("qty") == null ? null : (String[]) param.get("qty"); String[] qtyUoms = param.get("qtyUom") == null ? null : (String[]) param.get("qtyUom"); String[] unitPrices = param.get("unitPrice") == null ? null : (String[]) param.get("unitPrice"); String[] amounts = param.get("amount") == null ? null : (String[]) param.get("amount"); String[] taxs = param.get("tax") == null ? null : (String[]) param.get("tax"); String[] sizes = param.get("size") == null ? null : (String[]) param.get("size"); String[] lineNo = param.get("lineNo") == null ? null : (String[]) param.get("lineNo"); String[] discounts = param.get("discount") == null ? null : (String[]) param.get("discount"); String[] creation_dates = param.get("creationDate") == null ? null : (String[]) param.get("creationDate"); String[] created_by = param.get("createdBy") == null ? null : (String[]) param.get("createdBy"); String[] modify_dates = param.get("modifyDate") == null ? null : (String[]) param.get("modifyDate"); String[] modified_by = param.get("modifiedBy") == null ? null : (String[]) param.get("modifiedBy"); /** 对从invoice 状态从new 变为 inprocess的 invoice line的审核 对invoice line 进行check 开始 */ if (Constant.STATUS_INPROCESS.equals(apInvoice.getStatus()) && (null != itemNos)) { for (int i = 0; i < itemNos.length; i++) { int itemNo = 0; int quantity = 0; double size = 0; itemNo = Tools.String2Integer(itemNos[i]); quantity = Tools.String2Integer(qtys[i]); size = Tools.String2Float(sizes[i]); // // OrderItemOverSizeDTO = this.apInvoiceService.checkOderItem( // apInvoice.getInvoiceId(), // apInvoice.getOrderNo(),itemNo,quantity, size,false ); // // if(null!=OrderItemOverSizeDTO) // { // apInvoiceService.edit(oldApInvoice);// 将 主表的数据 退回 原值 // return "edit_invoice"; // } } // for 循环结束 } /** 对invoice line 进行check 结束 */ ////////////// 在状态为New时。InvoiceLine 执行删除//////////////// // if(Constant.STATUS_NEW.equals(apInvoice.getStatus())) // { String InvoiceLineIds = "0"; String invoiceId = "" + InvoiceId; for (int i = 0; i < invoiceLineIds.length; i++) { InvoiceLineIds = InvoiceLineIds + "," + invoiceLineIds[i]; } try { apInvoiceLineDao.DeleteBatch(invoiceId, InvoiceLineIds); } catch (Exception e) { e.printStackTrace(); } // } //////////////////////////////// ApInvoiceLine insertLine = null; for (int i = 0; i < itemNos.length; i++) { insertLine = apInvoiceLineDao.queryInvoiceLine(Tools.String2Integer(invoiceLineIds[i]).intValue()); if (null == insertLine) { insertLine = new ApInvoiceLine(); } else { insertLine.setInvoiceLineId(Tools.String2Integer(invoiceLineIds[i])); } insertLine.setAmount(Tools.String2Float(amounts[i])); insertLine.setCatalogNo(catalogNo[i]); insertLine.setDiscount(Tools.String2Float(discounts[i])); ; insertLine.setInvoiceId(InvoiceId); insertLine.setItemNo(Tools.String2Integer(itemNos[i])); int linno = Tools.String2Integer(lineNo[i]); // insertLine.setLineNo(linno); insertLine.setLineNo(i + 1); insertLine.setModifiedBy(SessionUtil.getUserId()); insertLine.setModifyDate(new Date()); insertLine.setCreatedBy(Tools.String2Integer(created_by[i])); insertLine.setCreationDate(Tools.getFormatDate(creation_dates[i])); insertLine.setName(names[i]); insertLine.setOrderNo(apInvoice.getOrderNo()); insertLine.setQty(Tools.String2Integer(qtys[i])); insertLine.setQtyUom(qtyUoms[i]); insertLine.setSize(Tools.String2Float(sizes[i])); insertLine.setSizeUom(""); insertLine.setTax(Tools.String2Float(taxs[i])); insertLine.setUnitPrice(Tools.String2Float(unitPrices[i])); insertLine.setStatus(apInvoice.getStatus()); apInvoiceLineDao.save(insertLine); } } } catch (Exception e) { e.printStackTrace(); } ctx.getSession().remove("apInvoice"); ctx.getSession().remove("param"); return input(); }
/** * 添加invoice,跳转到页面 * * @return * @throws Exception */ public String save() throws Exception { try { apInvoice.setCreatedBy(SessionUtil.getUserId()); apInvoice.setCreationDate(new Date()); apInvoice.setModifiedBy(SessionUtil.getUserId()); apInvoice.setModifyDate(new Date()); apInvoice.setPrintedFlag("N"); int companyId = this.apInvoiceDao.getCompanyId(apInvoice.getOrderNo()); apInvoice.setCompanyId(companyId); // 测试 int InvoiceId = apInvoiceService.add(apInvoice); if (0 != param.size()) { String[] itemNos = param.get("itemNo") == null ? null : (String[]) param.get("itemNo"); String[] catalogNo = param.get("catalogNo") == null ? null : (String[]) param.get("catalogNo"); String[] names = param.get("name") == null ? null : (String[]) param.get("name"); String[] qtys = param.get("qty") == null ? null : (String[]) param.get("qty"); String[] qtyUoms = param.get("qtyUom") == null ? null : (String[]) param.get("qtyUom"); String[] unitPrices = param.get("unitPrice") == null ? null : (String[]) param.get("unitPrice"); String[] amounts = param.get("amount") == null ? null : (String[]) param.get("amount"); String[] taxs = param.get("tax") == null ? null : (String[]) param.get("tax"); String[] sizes = param.get("size") == null ? null : (String[]) param.get("size"); String[] lineNo = param.get("lineNo") == null ? null : (String[]) param.get("lineNo"); String[] discounts = param.get("discount") == null ? null : (String[]) param.get("discount"); ApInvoiceLine insertLine = null; for (int i = 0; i < itemNos.length; i++) { insertLine = new ApInvoiceLine(); insertLine.setAmount(Tools.String2Float(amounts[i])); insertLine.setCatalogNo(catalogNo[i]); insertLine.setCreatedBy(SessionUtil.getUserId()); insertLine.setCreationDate(new Date()); insertLine.setDiscount(Tools.String2Float(discounts[i])); insertLine.setInvoiceId(InvoiceId); insertLine.setItemNo(Tools.String2Integer(itemNos[i])); int linno = Tools.String2Integer(lineNo[i]); // insertLine.setLineNo(linno); insertLine.setLineNo(i + 1); insertLine.setModifiedBy(SessionUtil.getUserId()); insertLine.setModifyDate(new Date()); insertLine.setName(names[i]); insertLine.setOrderNo(apInvoice.getOrderNo()); insertLine.setQty(Tools.String2Integer(qtys[i])); insertLine.setQtyUom(qtyUoms[i]); insertLine.setSize(Tools.String2Float(sizes[i])); insertLine.setSizeUom(""); insertLine.setTax(Tools.String2Float(taxs[i])); insertLine.setUnitPrice(Tools.String2Float(unitPrices[i])); insertLine.setStatus(Constant.STATUS_NEW); apInvoiceLineDao.save(insertLine); } } } catch (Exception e) { e.printStackTrace(); } ActionContext ctx = ActionContext.getContext(); ctx.getSession().remove("apInvoice"); ctx.getSession().remove("param"); return input(); }