protected void btnSub_Click(object sender, EventArgs e) { if (txtProNo.Text.Trim() == "") { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('请填写 销售退货单号!');</script>"); return; } else { if (CheckProNo(txtProNo.Text) == false) { return; } } //查询项目信息是否存在 string sql = string.Format("select Id,PoNo from Sell_OrderInHouse where ProNo='{0}' and status='通过'", txtProNo.Text.Trim()); var obj = DBHelp.getDataTable(sql); if (obj.Rows.Count != 1) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('销售退货信息不存在!');</script>"); return; } Sell_OrderInHousesService ordersSer = new Sell_OrderInHousesService(); TB_HouseGoodsService houseGoodsSer = new TB_HouseGoodsService(); //查询销售退货信息 List <Sell_OrderInHouses> orders = ordersSer.GetListArray(" 1=1 and Sell_OrderInHouses.id=" + obj.Rows[0]["Id"]); sql = string.Format(@"--销售退货还原--25 销售退货 delete from tb_EForm where e_No='{0}' and proId=25; delete from tb_EForms where e_Id in (select id from tb_EForm where e_No='{0}' and proId=25); delete from Sell_OrderInHouses where id = (select ID from Sell_OrderInHouse where ProNo='{0}'); delete from Sell_OrderInHouse where ProNo='{0}';", txtProNo.Text.Trim()); using (SqlConnection conn = DBHelp.getConn()) { conn.Open(); SqlTransaction tan = conn.BeginTransaction(); SqlCommand objCommand = conn.CreateCommand(); objCommand.Transaction = tan; try { for (int i = 0; i < orders.Count; i++) { if (orders[i].GoodPriceSecond != 0) { houseGoodsSer.OutHouse(orders[i].HouseID, orders[i].GooId, orders[i].GoodNum, orders[i].GoodPriceSecond, objCommand); } else { houseGoodsSer.OutHouse(orders[i].HouseID, orders[i].GooId, orders[i].GoodNum, orders[i].GoodPrice, objCommand); } } objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); tan.Commit(); } catch (Exception) { tan.Rollback(); conn.Close(); base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('删除失败!');</script>"); return; } conn.Close(); string PONO = obj.Rows[0]["PoNo"].ToString(); Sell_OrderOutHouseService SellOutSer = new Sell_OrderOutHouseService(); SellOutSer.SellOrderUpdatePoStatus2(PONO); new CG_POOrdersService().GetListArrayToFpsAndUpdatePoStatue(PONO, "通过"); new CG_POOrderService().GetOrder_ToInvoiceAndUpdatePoStatus(PONO); base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('删除成功!');</script>"); } }
protected void btnSub_Click(object sender, EventArgs e) { if (txtProNo.Text == "") { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('请填写 采购退货单号!');</script>"); return; } //查询项目信息是否存在 string sql = string.Format("select Id,PoNo,HouseID from CAI_OrderOutHouse where ProNo='{0}' and status='通过'", txtProNo.Text); var obj = DBHelp.getDataTable(sql); if (obj.Rows.Count != 1) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('采购退货信息不存在!');</script>"); return; } sql = string.Format("SELECT count(id) FROM TB_SupplierInvoice where CaiTuiProNo='{0}' and status='通过'", txtProNo.Text); var obj1 = DBHelp.ExeScalar(sql); if (Convert.ToInt32(obj1) != 1) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('支付负数单不存在!');</script>"); return; } // 如果此采购退货单生成的负数的 支付单的支付状态为已支付,结清状态为已结清 //说明有3种可能 1.事后退货的已抵消 2.此采退是全退货单 3.此采退单导致了全部退货 //1.修改此采购退货单生成的负数的支付单的状态 为未支付,结清状态为 未结清。 //2-3 删除基于此入库ID 的所有负数支付单(支付状态为未支付和结清状态为 未结清),修改此采购退货单生成的负数的支付单的状态 为未支付,结清状态为 未结清。 // 你要区分这两种情况!! //4.如果此采购退货单生成的负数的 支付单的支付状态为未支付,结清状态为未结清,由此采购退货单生成的负数的支付单删除即可 sql = string.Format(@"select TB_SupplierInvoice.Id,Ids,RuIds,RePayClear,IsPayStatus from TB_SupplierInvoices left join TB_SupplierInvoice on TB_SupplierInvoices.Id=TB_SupplierInvoice.Id where CAITUIPRONO='{0}' and Status='通过'", txtProNo.Text); var dt = DBHelp.getDataTable(sql); using (SqlConnection conn = DBHelp.getConn()) { conn.Open(); SqlCommand objCommand = conn.CreateCommand(); foreach (DataRow dr in dt.Rows) { if (dr["RePayClear"].ToString() == "1" && dr["IsPayStatus"].ToString() == "2")//已支付 已结清 { //检查是否是事后退货的已抵消 sql = string.Format(@"select COUNT(*) from TB_TempSupplierInvoice left join TB_SupplierInvoice on TB_SupplierInvoice.Id=TB_TempSupplierInvoice.SupplierInvoiceId where SupplierInvoiceIds={0} and Status='通过' ", dr["Ids"]); objCommand.CommandText = sql; var result = objCommand.ExecuteScalar(); if (Convert.ToInt32(result) > 0) { //修改此采购退货单生成的负数的支付单的状态 为未支付,结清状态为 未结清。 sql = "update TB_SupplierInvoices set RePayClear=2,IsPayStatus=0 where ids=" + dr["Ids"]; objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); } else { //删除基于此入库ID 的所有负数支付单(支付状态为未支付和结清状态为 未结清), //修改此采购退货单生成的负数的支付单的状态 为未支付,结清状态为 未结清 sql = "delete from TB_SupplierInvoices where RuIds=" + dr["RuIds"] + " and SupplierInvoiceTotal<0 and RePayClear=2 and IsPayStatus=0"; objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); sql = "update TB_SupplierInvoices set RePayClear=2,IsPayStatus=0 where ids=" + dr["Ids"]; objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); } } else if (dr["RePayClear"].ToString() == "2" && dr["IsPayStatus"].ToString() == "0")//未支付 未结清 { //如果此采购退货单生成的负数的 支付单的支付状态为未支付,结清状态为未结清,由此采购退货单生成的负数的支付单删除即可 sql = "delete from TB_SupplierInvoices where Ids=" + dr["Ids"]; objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); } } conn.Close(); } TB_HouseGoodsService houseGoodsSer = new TB_HouseGoodsService(); CAI_OrderOutHousesService ordersSer = new CAI_OrderOutHousesService(); List <CAI_OrderOutHouses> orders = ordersSer.GetListArray(" 1=1 and CAI_OrderOutHouses.id=" + obj.Rows[0]["Id"]); sql = string.Format(@"delete from tb_EForm where e_No='{0}' and proId=24; delete from tb_EForms where e_Id in (select id from tb_EForm where e_No='{0}' and proId=24); delete from CAI_OrderOutHouses where id = (select ID from CAI_OrderOutHouse where ProNo='{0}'); delete from CAI_OrderOutHouse where ProNo='{0}';", txtProNo.Text); using (var conn = DBHelp.getConn()) { conn.Open(); SqlTransaction tan = conn.BeginTransaction(); var objCommand = conn.CreateCommand(); objCommand.Transaction = tan; try { for (int i = 0; i < orders.Count; i++) { houseGoodsSer.InHouse(Convert.ToInt32(obj.Rows[0]["HouseID"]), orders[i].GooId, orders[i].GoodNum, orders[i].GoodPrice, objCommand); } objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); tan.Commit(); } catch (Exception) { tan.Rollback(); conn.Close(); base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('删除失败!');</script>"); return; } conn.Close(); } //删除没有表体的数据 sql = "select ProNo from TB_SupplierInvoice where not exists(select Id from TB_SupplierInvoices where TB_SupplierInvoices.Id=TB_SupplierInvoice.Id)"; var db = DBHelp.getDataTable(sql); if (db.Rows.Count > 0) { using (var conn = DBHelp.getConn()) { conn.Open(); SqlTransaction tan = conn.BeginTransaction(); var objCommand = conn.CreateCommand(); objCommand.Transaction = tan; try { foreach (DataRow dr in db.Rows) { sql = string.Format(@" delete from tb_EForm where e_No='{0}' and proId=31; delete from tb_EForms where e_Id in (select id from tb_EForm where e_No='{0}' and proId=31); delete from TB_SupplierInvoice where ProNo='{0}'; delete from TB_SupplierInvoices where Id = (select Id from TB_SupplierInvoice where ProNo='{0}');", dr["ProNo"]); objCommand.CommandText = sql; objCommand.ExecuteNonQuery(); } tan.Commit(); conn.Close(); } catch (Exception) { tan.Rollback(); conn.Close(); base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('删除失败!');</script>"); return; } } } string PONO = obj.Rows[0]["PoNo"].ToString(); Sell_OrderOutHouseService SellOutSer = new Sell_OrderOutHouseService(); SellOutSer.SellOrderUpdatePoStatus2(PONO); base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('删除成功!');</script>"); }
public bool FormCheck() { #region 设置自己要判断的信息 if (txtCheckPer.Text == "") { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('你填写检验人!');</script>"); txtCheckPer.Focus(); return(false); } if (txtCheckTime.Text == "") { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('你填写检验时间!');</script>"); txtCheckTime.Focus(); return(false); } else { if (CommHelp.VerifesToDateTime(txtCheckTime.Text) == false) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('检验时间 格式错误!');</script>"); return(false); } } try { Convert.ToDateTime(txtCheckTime.Text); } catch (Exception) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('你填写检验时间有误!');</script>"); txtCheckTime.Focus(); return(false); } if (ddlPers.Visible == true && ddlPers.SelectedItem == null) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('请选择下一步审核人!');</script>"); ddlPers.Focus(); return(false); } if (DBHelp.ExeScalar(string.Format("select ID from tb_User where loginName='{0}'", txtName.Text)) == null) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('你填写申请用户不存在!');</script>"); return(false); } if (DBHelp.ExeScalar(string.Format("select ID from tb_User where loginName='{0}'", txtCheckPer.Text)) == null) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('你填写检验人不存在!');</script>"); return(false); } #endregion if (Request["allE_id"] == null) { List <CAI_OrderChecks> POOrders = Session["Orders"] as List <CAI_OrderChecks>; if (POOrders == null || POOrders.Count <= 0) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('请添加明显信息!');</script>"); return(false); } var mycaiIds = new StringBuilder(); foreach (var m in POOrders) { mycaiIds.AppendFormat("{0},", m.CaiId); } if (mycaiIds.ToString() == "") { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('请添加明细!');</script>"); return(false); } var ids = mycaiIds.ToString().Substring(0, mycaiIds.ToString().Length - 1); //--在创建/编辑 预付单时 判断是否已经有入库记录(包含正在执行的单子) string checkSql = string.Format(@"select COUNT(*) from TB_SupplierAdvancePayment left join TB_SupplierAdvancePayments on TB_SupplierAdvancePayment.Id=TB_SupplierAdvancePayments.Id where Status='执行中' and CaiIds in ({0})", ids);//--增加采购订单的ID ( and CaiId=?) var errorText = new StringBuilder(); var count = DBHelp.ExeScalar(checkSql); if (count != null && Convert.ToInt32(count) > 0) { errorText.Append("列表中采购数据,存在正在执行中的预付款单,请先将对应预付款单审批通过!"); base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('" + errorText.ToString() + "');</script>"); return(false); } Hashtable ht = new Hashtable(); Hashtable htSupplier = new Hashtable(); foreach (var model in POOrders) { string key = model.CheckGoodId.ToString() + model.CaiProNo; if (!ht.Contains(key)) { ht.Add(key, null); } else { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('单号[{3}]-商品[{0}]\规格[{1}]\型号[{2}],信息重复!');</script>", model.GoodName, model.GoodSpec, model.Good_Model, model.CaiProNo)); return(false); } string aa = model.SupplierName + model.PONo + model.POName + model.CaiGouPer; if (!htSupplier.Contains(aa)) { if ((!model.PONo.Contains("KC")) && new CG_POOrderService().ExistPONO(model.PONo) == false) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('项目信息不存在!');</script>"); return(false); } htSupplier.Add(aa, null); if (htSupplier.Keys.Count > 1) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('检验单中 项目单号,项目名称,供应商,采购人必选完全一样!');</script>")); return(false); } } } CAI_POCaiService POSer = new CAI_POCaiService(); for (int i = 0; i < gvList.Rows.Count; i++) { TextBox txtNum = gvList.Rows[i].FindControl("txtNum") as TextBox; if (txtNum != null) { if (CommHelp.VerifesToNum(txtNum.Text) == false) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('数量 格式错误!');</script>"); return(false); } POOrders[i].CheckNum = Convert.ToDecimal(txtNum.Text); } var model = POOrders[i]; if (model.CheckNum <= 0) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('商品[{0}]\规格[{1}]\型号[{2}],数量必须大于0!');</script>", model.GoodName, model.GoodSpec, model.Good_Model)); return(false); } if (model.CheckPrice < 0) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('商品[{0}]\规格[{1}]\型号[{2}],价格必须大于等于0!');</script>", model.GoodName, model.GoodSpec, model.Good_Model)); return(false); } string sql = string.Format(" 1=1 and Ids={0}", model.CaiId); List <CAI_POCaiView> cars = POSer.GetListViewCai_POOrders_Cai_POOrderChecks_View(sql); if (cars.Count <= 0) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('单号[{3}]-商品[{0}]\规格[{1}]\型号[{2}],在项目订单[{3}]中不存在!');</script>", model.GoodName, model.GoodSpec, model.Good_Model, model.PONo)); return(false); } if (model.CheckNum > cars[0].ResultNum) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('单号[{3}]-商品[{0}]\规格[{1}]\型号[{2}],检查数量剩余[{3}]!');</script>", model.GoodName, model.GoodSpec, model.Good_Model, cars[0].ResultNum)); return(false); } } Session["Orders"] = POOrders; } else { List <CAI_OrderChecks> POOrders = Session["Orders"] as List <CAI_OrderChecks>; CAI_POCaiService POSer = new CAI_POCaiService(); for (int i = 0; i < gvList.Rows.Count; i++) { TextBox txtNum = gvList.Rows[i].FindControl("txtNum") as TextBox; if (txtNum != null) { if (CommHelp.VerifesToNum(txtNum.Text) == false) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('数量 格式错误!');</script>"); return(false); } POOrders[i].CheckNum = Convert.ToDecimal(txtNum.Text); } var model = POOrders[i]; if (model.CheckNum <= 0) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('商品[{0}]\规格[{1}]\型号[{2}],数量必须大于0!');</script>", model.GoodName, model.GoodSpec, model.Good_Model)); return(false); } if (model.CheckPrice < 0) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('商品[{0}]\规格[{1}]\型号[{2}],价格必须大于等于0!');</script>", model.GoodName, model.GoodSpec, model.Good_Model)); return(false); } if (i == 0 && (!model.PONo.Contains("KC")) && new CG_POOrderService().ExistPONO(model.PONo) == false) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('项目信息不存在!');</script>"); return(false); } //查询订单原来的数量 string oldString = string.Format(@"select isnull(Num,0)-ISNULL(totalOrderNum,0) as ResultNum from CAI_POCai left join CAI_POOrder on CAI_POCai.Id=CAI_POOrder.Id left join ( select CaiId,SUM(CheckNum) as totalOrderNum from CAI_OrderChecks left join CAI_OrderCheck on CAI_OrderCheck.id=CAI_OrderChecks.CheckId where CaiId<>0 and status<>'不通过' and CAI_OrderChecks.Ids<>{0} group by CaiId ) as newtable on CAI_POCai.Ids=newtable.CaiId where (CAI_POCai.Num>newtable.totalOrderNum or totalOrderNum is null) and status='通过' and Ids={1}", model.Ids, model.CaiId); var oldNum = DBHelp.ExeScalar(oldString); if (oldNum is DBNull) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('单号[{3}]-商品[{0}]\规格[{1}]\型号[{2}],在项目订单[{3}]中不存在!');</script>", model.GoodName, model.GoodSpec, model.Good_Model, model.PONo)); return(false); } if (model.CheckNum > Convert.ToDecimal(oldNum)) { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('单号[{3}]-商品[{0}]\规格[{1}]\型号[{2}],检查数量剩余[{3}]!');</script>", model.GoodName, model.GoodSpec, model.Good_Model, oldNum)); return(false); } } Session["Orders"] = POOrders; } if (ddlResult.SelectedItem != null && ddlResult.SelectedItem.Text == "通过") { List <CAI_OrderChecks> POOrders = Session["Orders"] as List <CAI_OrderChecks>; //判断是否为特殊商品 并查询库存是否有库存 TB_HouseGoodsService goodHouseSer = new TB_HouseGoodsService(); CAI_OrderCheckService checkSer = new CAI_OrderCheckService(); foreach (var m in POOrders) { if (goodHouseSer.CheckGoodInHouse(m.CheckGoodId)) { string mess = checkSer.GetPONoInfo(m.CheckGoodId, m.GoodNo, m.GoodName, m.GoodTypeSmName, m.GoodSpec); if (mess == "") { base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('数据异常!');</script>")); return(false); } base.ClientScript.RegisterStartupScript(base.GetType(), null, string.Format(@"<script>alert('{0}!');</script>", mess)); return(false); } } } //判断有没有设置默认仓库 if (ddlPers.Visible == false) { string sql = "select count(*) from TB_HouseInfo where IfDefault=1"; if (Convert.ToInt32(DBHelp.ExeScalar(sql)) != 1) { base.ClientScript.RegisterStartupScript(base.GetType(), null, "默认仓库设置错误!请检查"); return(false); } } return(true); }