| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- package restcontroller.webmanage.sale.invoice;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import beans.data.BatchDeleteErr;
- import common.Controller;
- import common.YosException;
- import common.annotation.API;
- import common.annotation.CACHEING;
- import common.annotation.CACHEING_CLEAN;
- import common.data.Rows;
- import common.data.RowsMap;
- import common.data.SQLFactory;
- import restcontroller.R;
- import utility.tools.Math;
- public class invoicebillitem extends Controller {
- public invoicebillitem(JSONObject arg0) throws YosException {
- super(arg0);
- // TODO Auto-generated constructor stub
- }
- @API(title = "可选择开票明细列表查询", apiversion = R.ID20221228093803.v1.class)
- @CACHEING
- public String queryInvoiceapplyorder() throws YosException {
- /*
- * 过滤条件设置
- */
- StringBuffer where = new StringBuffer(" 1=1 ");
- if (content.containsKey("where")) {
- JSONObject whereObject = content.getJSONObject("where");
- if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
- where.append(" and(");
- where.append("t4.sonum like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t2.itemname like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- if (whereObject.containsKey("sonum") && !"".equals(whereObject.getString("sonum"))) {
- where.append(" and t4.sonum ='").append(whereObject.getString("sonum")).append("' ");
- }
- }
- SQLFactory sqlFactory = new SQLFactory(this, "可选择开票明细查询", pageSize, pageNumber, pageSorting);
- sqlFactory.addParameter_SQL("where", where);
- sqlFactory.addParameter("sa_invoiceapplyid", content.getLong("sa_invoiceapplyid"));
- sqlFactory.addParameter("siteid", siteid);
- Rows rows1 = dbConnect.runSqlQuery(sqlFactory);
- return getSucReturnObject().setData(rows1).toString();
- }
- @API(title = "新建或修改发票明细", apiversion = R.ID20221227152903.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20221228101203.v1.class, R.ID20221228093803.v1.class, R.ID20221223153403.v1.class})
- public String insertormodify_invoiceapplyorder() throws YosException {
- Long sa_invoicebillid = content.getLong("sa_invoicebillid");
- Long sa_invoiceapplyid = content.getLong("sa_invoiceapplyid");
- JSONArray iteminfos = content.getJSONArray("iteminfos");
- ArrayList<String> sqlList = new ArrayList<>();
- Rows rowscount = dbConnect
- .runSqlQuery("select status,sys_enterpriseid from sa_invoiceapply where sa_invoiceapplyid=" + sa_invoiceapplyid);
- if (!rowscount.isEmpty()) {
- String status= rowscount.get(0).getString("status");
- if (!status.equals("新建")||!status.equals("提交")) {
- return getErrReturnObject().setErrMsg("非新建或提交状态的发票无法新增修改").toString();
- }
- }
- int i = 0;
- long[] sa_invoicebill_itemid = createTableID("sa_invoicebill_item", iteminfos.size());
- for (Object obj : iteminfos) {
- JSONObject iteminfo = (JSONObject) obj;
- if (iteminfo.getLong("sa_invoicebill_itemid") <= 0 || dbConnect.runSqlQuery(
- "select sa_invoicebill_itemid from sa_invoicebill_item where sa_invoicebill_itemid="
- + iteminfo.getLong("sa_invoicebill_itemid"))
- .isEmpty()) {
- SQLFactory saleFactory = new SQLFactory(this, "发票商品明细新增");
- saleFactory.addParameter("siteid", siteid);
- saleFactory.addParameter("sa_invoicebill_itemid", sa_invoicebill_itemid[i]);
- saleFactory.addParameter("sa_invoiceapplyid", sa_invoiceapplyid);
- saleFactory.addParameter("taxincludedamount", iteminfo.getBigDecimal("invoiceamount"));
- saleFactory.addParameter("spectype", iteminfo.getString("spec"));
- saleFactory.addParameter("price", iteminfo.getBigDecimal("price").abs());
- saleFactory.addParameter("num", iteminfo.getBigDecimal("invoiceaqty").abs());
- saleFactory.addParameter("taxrate", iteminfo.getBigDecimal("taxrate").abs());
- saleFactory.addParameter("goodsname", iteminfo.getString("itemname"));
- saleFactory.addParameter("goodscode", iteminfo.getString("itemno"));
- saleFactory.addParameter("sa_invoiceapply_orderid",
- iteminfo.getString("sa_invoiceapply_orderid"));
- saleFactory.addParameter("sa_invoicebillid", sa_invoicebillid);
- sqlList.add(saleFactory.getSQL());
- i++;
- } else {
- SQLFactory saleFactory = new SQLFactory(this, "发票商品明细更新");
- saleFactory.addParameter("sa_invoicebill_itemid", iteminfo.getLong("sa_invoicebill_itemid"));
- // saleFactory.addParameter("itemno", iteminfo.getString("itemno"));
- if ((iteminfo.getBigDecimal("invoiceaqty").abs()).compareTo(BigDecimal.ZERO) > 0 && (iteminfo.getBigDecimal("invoiceamount").abs()).compareTo(BigDecimal.ZERO) <= 0) {
- saleFactory.addParameter("num", iteminfo.getBigDecimal("invoiceaqty").abs());
- saleFactory.addParameter("taxincludedamount", (iteminfo.getBigDecimal("invoiceaqty").abs()).multiply(iteminfo.getBigDecimal("price")));
- saleFactory.addParameter("taxrate", iteminfo.getBigDecimal("taxrate").abs());
- } else if ((iteminfo.getBigDecimal("invoiceaqty").abs()).compareTo(BigDecimal.ZERO) <= 0 && (iteminfo.getBigDecimal("invoiceamount").abs()).compareTo(BigDecimal.ZERO) > 0) {
- saleFactory.addParameter("num", (iteminfo.getBigDecimal("invoiceamount").abs()).divide(iteminfo.getBigDecimal("price"), 4));
- saleFactory.addParameter("taxincludedamount", iteminfo.getBigDecimal("invoiceamount").abs());
- saleFactory.addParameter("taxrate", iteminfo.getBigDecimal("taxrate"));
- }
- sqlList.add(saleFactory.getSQL());
- }
- }
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
-
-
- @API(title = "新建或修改发票明细(红票)", apiversion = R.ID20230228090903.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20221228101203.v1.class, R.ID20221228093803.v1.class, R.ID20221223153403.v1.class})
- public String insertormodify_invoiceapplyorderRed() throws YosException {
- Long sa_invoicebillid = content.getLong("sa_invoicebillid");
- Long sa_invoiceapplyid = content.getLong("sa_invoiceapplyid");
- JSONArray iteminfos = content.getJSONArray("iteminfos");
- ArrayList<String> sqlList = new ArrayList<>();
- Rows rowscount = dbConnect
- .runSqlQuery("select status,rb from sa_invoicebill where sa_invoicebillid=" + sa_invoicebillid);
- if (!rowscount.isEmpty()) {
- String status= rowscount.get(0).getString("status");
- String rb= rowscount.get(0).getString("rb");
- if(rb.equals("0")) {
- if (!status.equals("")) {
- return getErrReturnObject().setErrMsg("非新建或提交状态的发票无法新增修改").toString();
- }
- }else {
- return getErrReturnObject().setErrMsg("蓝票不得修改").toString();
- }
-
- }else {
- return getErrReturnObject().setErrMsg("发票不存在").toString();
- }
- int i = 0;
- long[] sa_invoicebill_itemid = createTableID("sa_invoicebill_item", iteminfos.size());
- for (Object obj : iteminfos) {
- JSONObject iteminfo = (JSONObject) obj;
- if (iteminfo.getLong("sa_invoicebill_itemid") <= 0 || dbConnect.runSqlQuery(
- "select sa_invoicebill_itemid from sa_invoicebill_item where sa_invoicebill_itemid="
- + iteminfo.getLong("sa_invoicebill_itemid"))
- .isEmpty()) {
- SQLFactory saleFactory = new SQLFactory(this, "发票商品明细新增");
- saleFactory.addParameter("siteid", siteid);
- saleFactory.addParameter("sa_invoicebill_itemid", sa_invoicebill_itemid[i]);
- saleFactory.addParameter("sa_invoiceapplyid", sa_invoiceapplyid);
- saleFactory.addParameter("taxincludedamount", iteminfo.getBigDecimal("invoiceamount"));
- saleFactory.addParameter("spectype", iteminfo.getString("spec"));
- saleFactory.addParameter("price", iteminfo.getBigDecimal("price"));
- saleFactory.addParameter("num", iteminfo.getBigDecimal("invoiceaqty"));
- saleFactory.addParameter("taxrate", iteminfo.getBigDecimal("taxrate"));
- saleFactory.addParameter("goodsname", iteminfo.getString("itemname"));
- saleFactory.addParameter("goodscode", iteminfo.getString("itemno"));
- saleFactory.addParameter("sa_invoiceapply_orderid",
- iteminfo.getString("sa_invoiceapply_orderid"));
- saleFactory.addParameter("sa_invoicebillid", sa_invoicebillid);
- sqlList.add(saleFactory.getSQL());
- i++;
- } else {
- SQLFactory saleFactory = new SQLFactory(this, "发票商品明细更新");
- saleFactory.addParameter("sa_invoicebill_itemid", iteminfo.getLong("sa_invoicebill_itemid"));
- // saleFactory.addParameter("itemno", iteminfo.getString("itemno"));
- if ((iteminfo.getBigDecimal("invoiceaqty").abs()).compareTo(BigDecimal.ZERO) > 0 && (iteminfo.getBigDecimal("invoiceamount").abs()).compareTo(BigDecimal.ZERO) <= 0) {
- saleFactory.addParameter("num", (iteminfo.getBigDecimal("invoiceaqty").abs()).negate());
- saleFactory.addParameter("taxincludedamount", ((iteminfo.getBigDecimal("invoiceaqty").abs()).negate()).multiply(iteminfo.getBigDecimal("price")));
- saleFactory.addParameter("taxrate", iteminfo.getBigDecimal("taxrate"));
- } else if ((iteminfo.getBigDecimal("invoiceaqty").abs()).compareTo(BigDecimal.ZERO) <= 0 && (iteminfo.getBigDecimal("invoiceamount").abs()).compareTo(BigDecimal.ZERO) > 0) {
- saleFactory.addParameter("num", ((iteminfo.getBigDecimal("invoiceamount").abs()).negate()).divide(iteminfo.getBigDecimal("price"), 4));
- saleFactory.addParameter("taxincludedamount", (iteminfo.getBigDecimal("invoiceamount").abs()).negate());
- saleFactory.addParameter("taxrate", iteminfo.getBigDecimal("taxrate"));
- }
- sqlList.add(saleFactory.getSQL());
- }
- }
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "查询发票明细列表", apiversion = R.ID20221228101203.v1.class)
- @CACHEING
- public String queryinvoiceList() throws YosException {
- Long sa_invoicebillid = content.getLong("sa_invoicebillid");
- StringBuffer where = new StringBuffer(" 1=1 ");
- if (content.containsKey("where")) {
- JSONObject whereObject = content.getJSONObject("where");
- if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
- where.append(" and(");
- where.append("t1.goodscode like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t1.goodsname like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t1.spectype like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- }
- SQLFactory sqlFactory = new SQLFactory(this, "发票明细列表查询", pageSize, pageNumber, pageSorting);
- sqlFactory.addParameter("sa_invoicebillid", sa_invoicebillid);
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter_SQL("where", where);
- Rows rows = dbConnect.runSqlQuery(sqlFactory);
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "删除发票明细", apiversion = R.ID20221228101303.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20221228101203.v1.class, R.ID20221228093803.v1.class, R.ID20221223153403.v1.class})
- public String delete() throws YosException {
- JSONArray sa_invoicebill_itemids = content.getJSONArray("sa_invoicebill_itemids");
- BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_invoicebill_itemids.size());
- for (Object o : sa_invoicebill_itemids) {
- long sa_invoicebill_itemid = Long.parseLong(o.toString());
- Rows RowsStatus = dbConnect.runSqlQuery(
- "SELECT t2.status as parentstatus,t3.rb,t3.status from sa_invoicebill_item t1 inner join sa_invoiceapply t2 on t1.sa_invoiceapplyid=t2.sa_invoiceapplyid and t1.siteid=t2.siteid inner join sa_invoicebill t3 on t3.sa_invoicebillid=t1.sa_invoicebillid and t3.siteid=t1.siteid where t1.siteid='"
- + siteid + "' and t1.sa_invoicebill_itemid='" + sa_invoicebill_itemid + "'");
- if (RowsStatus.isNotEmpty()) {
- if ("0".equals(RowsStatus.get(0).getString("rb"))) {
- if (!"".equals(RowsStatus.get(0).getString("status"))) {
- batchDeleteErr.addErr(sa_invoicebill_itemid, "红票已提交,不可删除");
- continue;
- }
- } else {
- if ("审核".equals(RowsStatus.get(0).getString("parentstatus"))) {
- batchDeleteErr.addErr(sa_invoicebill_itemid, "审核状态下不可删除");
- continue;
- }
- }
- }
- dbConnect.runSqlUpdate("delete from sa_invoicebill_item where siteid='" + siteid + "' and sa_invoicebill_itemid="
- + sa_invoicebill_itemid);
- }
- return batchDeleteErr.getReturnObject().toString();
- }
- }
|