protected void GridGoods_AfterEdit(object sender, FineUIPro.GridAfterEditEventArgs e) { List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { return; } //处理返回jobject JObject defaultObj = Doc.GetJObject(GridGoods, e.RowID); //string cell = string.Format("[{0},{1}]", e.RowIndex, intCell[1]); if (e.ColumnID == "BZSL") { if (!PubFunc.isNumeric(Doc.GetGridInf(GridGoods, e.RowID, "BZHL")) || !PubFunc.isNumeric(Doc.GetGridInf(GridGoods, e.RowID, "BZSL")) || !PubFunc.isNumeric(Doc.GetGridInf(GridGoods, e.RowID, "HSJJ"))) { Alert.Show("商品信息异常,请详细检查商品信息:包装含量或价格!", "异常信息", MessageBoxIcon.Warning); return; } if ((Convert.ToInt32(defaultObj["BZSL"]) > Convert.ToInt32(defaultObj["KCSL"])) || (Convert.ToInt32(defaultObj["BZSL"]) * Convert.ToInt32(defaultObj["BZHL"]) > Convert.ToInt32(defaultObj["KCSL"]))) { Alert.Show("退货数量(最小包装)不能大于库存数量!", "异常信息", MessageBoxIcon.Warning); defaultObj["BZSL"] = "0"; } decimal hl = 0, rs = 0, jg = 0; decimal.TryParse((defaultObj["BZHL"] ?? "0").ToString(), out hl); decimal.TryParse((defaultObj["BZSL"] ?? "0").ToString(), out rs); decimal.TryParse((defaultObj["HSJJ"] ?? "0").ToString(), out jg); defaultObj["THSL"] = rs * hl; defaultObj["HSJE"] = Math.Round(rs * jg, 2).ToString("F2"); PageContext.RegisterStartupScript(GridGoods.GetUpdateCellValueReference(e.RowID, defaultObj)); #region //计算合计数量 decimal bzslTotal = 0, feeTotal = 0, thslTotal = 0; foreach (Dictionary <string, object> dic in newDict) { if ((dic["BZSL"] ?? "0").ToString().Length > 0 && (dic["HSJJ"] ?? "0").ToString().Length > 0) { bzslTotal += Convert.ToDecimal(dic["BZSL"] ?? "0"); feeTotal += Convert.ToDecimal(dic["HSJJ"] ?? "0") * Convert.ToDecimal(dic["BZSL"] ?? "0"); thslTotal += Convert.ToDecimal(dic["BZHL"] ?? "0") * Convert.ToDecimal(dic["BZSL"] ?? "0"); } object objISFLAG5 = DbHelperOra.GetSingle(string.Format("SELECT ISFLAG5 FROM DOC_GOODS WHERE GDSEQ = '{0}'", dic["GDSEQ"])); if (objISFLAG5.ToString() == "N") { string str = Convert.ToString(Convert.ToDecimal(dic["BZSL"] ?? "0")); if (Convert.ToDecimal(dic["BZSL"]) != (int)Convert.ToDecimal(dic["BZSL"]) && Convert.ToDecimal(dic["BZHL"] ?? "0") == 1) { Alert.Show("当前商品不支持申领数为小数,请调整", "消息提示", MessageBoxIcon.Warning); } } } JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("BZSL", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); summary.Add("THSL", thslTotal.ToString("F2")); GridGoods.SummaryData = summary; #endregion } }
protected override void billSave() { #region 数据有效性验证 if (docFLAG.SelectedValue != "N") { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString())) { goodsData.Add(newDict[i]); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return; } //验证单据信息 if (DbHelperOra.Exists("SELECT 1 FROM dat_ck_doc where seqno = '" + docBILLNO.Text + "'") && docBILLNO.Enabled) { Alert.Show("您输入的单号已存在,请检查!"); return; } #endregion if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); //处理单号前缀 docSEQNO.Text = "DSC" + docSEQNO.Text.Substring(3, docSEQNO.Text.Length - 3); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } MyTable mtType = new MyTable("DAT_CK_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow.Add("BILLTYPE", "DSC"); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "1"); decimal subNum = 0;//总金额 List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_CK_COM"); //先删除单据信息在插入 cmdList.Add(mtType.DeleteCommand("")); //删除单据台头 cmdList.Add(new CommandInfo("delete dat_ck_com where seqno='" + docBILLNO.Text + "'", null)); //删除单据明细 for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); //判断含税进价,为0时不能保存 string isJiFei = string.Format("select 1 from DOC_GOODS t where iscf = 'N' and gdseq = '{0}'", mtTypeMx.ColRow["GDSEQ"].ToString()); if (DbHelperOra.Exists(isJiFei)) { if (PubFunc.StrIsEmpty(mtTypeMx.ColRow["HSJJ"].ToString()) || mtTypeMx.ColRow["HSJJ"].ToString() == "0") { Alert.Show("商品【含税进价】为0或空,无法进行【定数出库管理】操作。"); return; } } mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow.Add("ROWNO", i + 1); mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); mtTypeMx.ColRow.Add("XSSL", 0); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); subNum = subNum + decimal.Parse(mtTypeMx.ColRow["HSJE"].ToString()); cmdList.Add(mtTypeMx.Insert()); } mtType.ColRow.Add("SUBSUM", subNum); cmdList.AddRange(mtType.InsertCommand()); DbHelperOra.ExecuteSqlTran(cmdList); Alert.Show("定数出库信息保存成功!"); //billNew(); billOpen(docBILLNO.Text); billLockDoc(true); }
protected override void billOpen(string strBillno) { DataTable dtDoc = DbHelperOra.Query(string.Format(strDocSql, strBillno)).Tables[0]; PubFunc.FormDataSet(FormDoc, dtDoc.Rows[0]); PageContext.RegisterStartupScript(GridGoods.GetRejectChangesReference()); decimal bzslTotal = 0, feeTotal = 0, dhslTotal = 0; DataTable dtBill = DbHelperOra.Query(string.Format(strComSql, strBillno, docDEPTOUT.SelectedValue)).Tables[0]; if (dtBill != null && dtBill.Rows.Count > 0) { foreach (DataRow row in dtBill.Rows) { bzslTotal += Convert.ToDecimal(row["BZSL"]); feeTotal += Convert.ToDecimal(row["HSJE"]); dhslTotal += Convert.ToDecimal(row["DHSL"]); } PubFunc.GridRowAdd(GridGoods, dtBill); } //计算合计数量 JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("BZSL", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); summary.Add("DHSL", dhslTotal.ToString()); GridGoods.SummaryData = summary; PubFunc.FormLock(FormDoc, true, ""); TabStrip1.ActiveTabIndex = 1; //增加按钮控制 if (docFLAG.SelectedValue == "M" || docFLAG.SelectedValue == "R") { docMEMO.Enabled = true; btnDel.Enabled = true; btnSave.Enabled = true; btnAudit.Enabled = true; btnCancel.Enabled = false; btnPrt.Enabled = false; btnPrint.Enabled = false; btnDelRow.Enabled = true; btnGoods.Enabled = true; trbBARCODE.Enabled = true; } else if (docFLAG.SelectedValue == "N") { docMEMO.Enabled = false; btnDel.Enabled = false; btnSave.Enabled = false; btnAudit.Enabled = true; btnCancel.Enabled = true; btnPrt.Enabled = false; btnPrint.Enabled = false; btnDelRow.Enabled = false; btnGoods.Enabled = false; } else { docMEMO.Enabled = false; btnDel.Enabled = false; btnSave.Enabled = false; btnAudit.Enabled = false; btnCancel.Enabled = false; btnPrt.Enabled = true; btnPrint.Enabled = true; btnDelRow.Enabled = false; btnGoods.Enabled = false; } }
protected void Window1_Close(object sender, WindowCloseEventArgs e) { DataTable dt = GetGoods(hfdValue.Text); dt.Columns.Remove(dt.Columns["BZHL"]); dt.Columns.Remove(dt.Columns["UNIT"]); if (dt != null && dt.Rows.Count > 0) { dt.Columns["UNITNAME"].ColumnName = "UNITSMALLNAME"; dt.Columns["BZHL_SELL"].ColumnName = "BZHL"; dt.Columns["UNIT_SELL_NAME"].ColumnName = "UNITNAME"; dt.Columns["UNIT_SELL"].ColumnName = "UNIT"; dt.Columns.Add("PH", Type.GetType("System.String")); dt.Columns.Add("RQ_SC", Type.GetType("System.String")); dt.Columns.Add("YXQZ", Type.GetType("System.String")); dt.Columns.Add("MEMO", Type.GetType("System.String")); dt.Columns.Add("BZSL", Type.GetType("System.Int32")); dt.Columns.Add("DHS", Type.GetType("System.Int32")); dt.Columns.Add("DHSL", Type.GetType("System.Int32")); dt.Columns.Add("HSJE", Type.GetType("System.Double")); dt.Columns.Add("SPZTSL", Type.GetType("System.Int32")); dt.Columns.Add("KCSL", Type.GetType("System.Double")); foreach (DataRow row in dt.Rows) { row["BZSL"] = "0"; row["DHSL"] = "0"; row["HSJE"] = "0"; //处理金额格式 decimal jingdu = 0; decimal bzhl = 0; if (decimal.TryParse(row["HSJJ"].ToString(), out jingdu) && decimal.TryParse(row["BZHL"].ToString(), out bzhl)) { row["HSJJ"] = Math.Round(jingdu * bzhl, 4).ToString("F4"); } if (decimal.TryParse(row["YBJ"].ToString(), out jingdu)) { row["YBJ"] = jingdu.ToString("F4"); } if (decimal.TryParse(row["HSJE"].ToString(), out jingdu)) { row["HSJE"] = Math.Round(jingdu, 2).ToString("F2"); } JObject defaultObj = new JObject(); foreach (DataColumn col in row.Table.Columns) { if (col.ColumnName.ToUpper() == "RQ_SC" || col.ColumnName.ToUpper() == "YXQZ") { if (!PubFunc.StrIsEmpty(row[col.ColumnName].ToString())) { defaultObj.Add(col.ColumnName.ToUpper(), DateTime.Parse(row[col.ColumnName].ToString())); } } else { defaultObj.Add(col.ColumnName.ToUpper(), row[col.ColumnName].ToString()); } } PageContext.RegisterStartupScript(GridGoods.GetAddNewRecordReference(defaultObj, true)); } } else { Alert.Show("系统传值错误!!!", "消息提示", MessageBoxIcon.Warning); } }
private void save(string flag = "N") { #region 数据有效性验证 if (docFLAG.SelectedValue != "N") { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString())) { if (newDict[i]["BZSL"].ToString() == "0" || string.IsNullOrWhiteSpace(newDict[i]["BZSL"].ToString())) { Alert.Show("第【" + (i + 1) + "】行【调拨数量】为空,请填写!"); return; } object DSBZSL = DbHelperOra.GetSingle(string.Format(@"SELECT DSHL FROM DAT_GOODSDS_LOG WHERE GDSEQ = '{0}' AND DEPTIN = '{1}' AND BARCODE = '{2}'", newDict[i]["GDSEQ"].ToString(), docDEPTOUT.SelectedValue, newDict[i]["DSCODE"].ToString())); object FDSKC = DbHelperOra.GetSingle(string.Format(@"SELECT (A.KCSL - NVL(B.DSSL, 0)) KSSPSL FROM (SELECT GDSEQ, SUM(KCSL) KCSL FROM DAT_GOODSSTOCK A WHERE KCSL > 0 AND A.DEPTID = '{1}' AND A.GDSEQ = '{0}' GROUP BY GDSEQ) A, (SELECT GDSEQ, SUM(DSHL) DSSL FROM DAT_GOODSDS_LOG WHERE DEPTIN = '{1}' AND FLAG = 'N' AND SL > 0 AND DSHL > 0 AND GDSEQ = '{0}' GROUP BY GDSEQ) B WHERE A.GDSEQ = B.GDSEQ(+)", newDict[i]["GDSEQ"].ToString(), docDEPTOUT.SelectedValue)); if (string.IsNullOrWhiteSpace(newDict[i]["PH"].ToString())) { Alert.Show("第【" + (i + 1) + "】行【批号】为空,请填写!"); return; } //if (newDict[i]["ISDS"].ToString() == "定数") if (!string.IsNullOrWhiteSpace(newDict[i]["DSCODE"].ToString())) { //if (newDict[i]["BZSL"].ToString() != newDict[i]["DSBZSL"].ToString()) if (newDict[i]["BZSL"].ToString() != DSBZSL.ToString()) { //newDict[i]["BZSL"] = newDict[i]["DSBZSL"].ToString(); Alert.Show("第【" + (i + 1) + "】行为定数,【调拨数量】不允许由【" + DSBZSL.ToString() + "】调整为【" + newDict[i]["BZSL"].ToString() + "】,请修改!"); return; } } else { if (Convert.ToDecimal(newDict[i]["BZSL"].ToString()) > Convert.ToDecimal(FDSKC.ToString())) { //newDict[i]["BZSL"] = newDict[i]["DSBZSL"].ToString(); Alert.Show("第【" + (i + 1) + "】行为非定数,不允许大于非定数库存数量【" + FDSKC.ToString() + "】,请修改!"); return; } } goodsData.Add(newDict[i]); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return; } //验证单据信息 if (DbHelperOra.Exists("SELECT 1 FROM dat_kd_doc where seqno = '" + docBILLNO.Text + "'") && docBILLNO.Enabled) { Alert.Show("您输入的单号已存在,请检查!"); return; } #endregion if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); //重新拼单号 docSEQNO.Text = "KSD" + docSEQNO.Text.Substring(3, docSEQNO.Text.Length - 3); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } MyTable mtType = new MyTable("DAT_KD_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow.Add("BILLTYPE", "KSD"); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "1"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_KD_COM"); decimal subNum = 0; //总金额 //先删除单据信息在插入 cmdList.Add(mtType.DeleteCommand("")); //删除单据台头 cmdList.Add(new CommandInfo("DELETE DAT_KD_COM WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据明细 for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); mtTypeMx.ColRow.Add("XSSL", Convert.ToInt32(mtTypeMx.ColRow["BZHL"]) * Convert.ToInt32(mtTypeMx.ColRow["BZSL"])); mtTypeMx.ColRow["HSJE"] = Convert.ToDecimal(mtTypeMx.ColRow["XSSL"]) * Convert.ToDecimal(mtTypeMx.ColRow["HSJJ"]); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); subNum = subNum + decimal.Parse(mtTypeMx.ColRow["HSJE"].ToString()); cmdList.Add(mtTypeMx.Insert()); } mtType.ColRow.Add("SUBSUM", subNum); cmdList.AddRange(mtType.InsertCommand()); DbHelperOra.ExecuteSqlTran(cmdList); if (flag == "N") { Alert.Show("科室商品调拨信息保存成功!"); } //billNew(); OperLog("科室调拨", "修改单据【" + docBILLNO.Text.Trim() + "】"); billOpen(docBILLNO.Text); btnDel.Enabled = true; billLockDoc(true); SaveSuccess = true; }
protected void bntSave_Click(object sender, EventArgs e) { String querySql = "select COUNT(1) from doc_goodscfg WHERE GDSEQ='{0}' AND DEPTID='{1}'"; String insSql = "insert into doc_goodscfg (GDSEQ,DEPTID,DHXS,DAYSL,ZDKC,ZGKC,ISAUTO,ISCFG) values ('{0}','{1}',{2},{3},{4},{5},'{6}','1')"; String uptSql = "update doc_goodscfg set DHXS={2},DAYSL={3},ZDKC={4},ZGKC={5},ISAUTO='{6}',ISCFG='Y' where GDSEQ='{0}' and DEPTID='{1}'"; List <CommandInfo> lci = new List <CommandInfo>(); JArray ja = GridGoods.GetModifiedData(); foreach (JToken jt in ja) { String res = (jt.SelectToken(string.Format("$.{0}", "index")) ?? "").ToString(); String rowid = (jt.SelectToken(string.Format("$.{0}", "id")) ?? "").ToString(); JObject defaultObj = Doc.GetJObject(GridGoods, rowid); object[] keys = GridGoods.DataKeys[Convert.ToInt16(res)]; int dhxs = Convert.ToInt32(defaultObj["DHXS"]); int daysl = Convert.ToInt32(defaultObj["DAYSL"]); int zdkc = Convert.ToInt32(defaultObj["ZDKC"]); int zgkc = Convert.ToInt32(defaultObj["ZGKC"]); String isAuto = (Convert.ToBoolean(defaultObj["ISAUTO"])) ? "Y" : "N"; String gdseq = keys[0].ToString(); String deptId = ""; if (!string.IsNullOrWhiteSpace((String)keys[1])) { deptId = keys[1].ToString(); } else if (!string.IsNullOrWhiteSpace(ddlDEPTID.SelectedValue)) { deptId = ddlDEPTID.SelectedValue; } else { Alert.Show("新增配置需要选择库房!"); return; } //int dhxs = 0; //int daysl = 0; //int zdkc = 0; //int zgkc = 0; //if (keys[2] != null && !string.IsNullOrWhiteSpace(keys[2].ToString())) //{ // dhxs = (Convert.ToInt32(keys[2])); //} //if (keys[3] != null && !string.IsNullOrWhiteSpace(keys[3].ToString())) //{ // daysl = Convert.ToInt32(keys[3]); //} //if (keys[4] != null && !string.IsNullOrWhiteSpace(keys[4].ToString())) //{ // zdkc = Convert.ToInt32(keys[4]); //} //if (keys[5] != null && !string.IsNullOrWhiteSpace(keys[5].ToString())) //{ // zgkc = Convert.ToInt32(keys[5]); //} //String isAuto = (Convert.ToInt32(keys[6]) == 1) ? "Y" : "N"; if (zdkc > zgkc && zgkc > 0) { Alert.Show("商品【" + gdseq + "】最高库存应大于最低库存!", "提示信息", MessageBoxIcon.Warning); return; } if (DbHelperOra.Exists(String.Format(querySql, gdseq, deptId))) { lci.Add(new CommandInfo(String.Format(uptSql, gdseq, deptId, dhxs, daysl, zdkc, zgkc, isAuto), null)); OperLog("商品配置", "修改商品【" + gdseq + "】"); } else { lci.Add(new CommandInfo(String.Format(insSql, gdseq, deptId, dhxs, daysl, zdkc, zgkc, isAuto), null)); OperLog("商品配置", "增加商品【" + gdseq + "】"); } } DbHelperOra.ExecuteSqlTran(lci); Alert.Show("信息保存成功。"); DataSearch(); }
protected void btnSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(docGROUPNAME.Text)) { Alert.Show("请输入模板名称!", "警告提醒", MessageBoxIcon.Warning); return; } if (docGROUPNAME.Text.Length > 50) { Alert.Show("输入的模板名称超过字数限制!", "警告提醒", MessageBoxIcon.Warning); return; } if (ddlTYPE.SelectedValue == "") { Alert.Show("请选择申请模板!", "警告提醒", MessageBoxIcon.Warning); return; } if (hfdGROUPID.Text == "") { hfdGROUPID.Text = GetCode(); } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().ToList(); MyTable mt = new MyTable("DOC_GROUPDOC"); mt.ColRow = PubFunc.FormDataHT(FormCond); //string type = ddlTYPE.SelectedValue; //mt.ColRow.Add("TYPE", "T"); mt.ColRow.Add("SUBNUM", newDict.Count); mt.ColRow.Add("LRY", UserAction.UserID); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DOC_GROUPCOM"); //先删除单据信息在插入 cmdList.Add(new CommandInfo("DELETE DOC_GROUPDOC WHERE GROUPID='" + hfdGROUPID.Text + "'", null)); //删除单据台头 cmdList.Add(new CommandInfo("DELETE DOC_GROUPCOM WHERE GROUPID='" + hfdGROUPID.Text + "'", null)); //删除单据明细 cmdList.AddRange(mt.InsertCommand()); for (int i = 0; i < newDict.Count; i++) { int num = Convert.ToInt32(newDict[i]["SL"]); if (num < 1) { Alert.Show("申请数量不能为0!", "警告提醒", MessageBoxIcon.Warning); return; } mtTypeMx.ColRow = PubFunc.GridDataGet(newDict[i]); mtTypeMx.ColRow.Remove("ROWNO"); mtTypeMx.ColRow.Add("ROWNO", i + 1); mtTypeMx.ColRow.Add("GROUPID", hfdGROUPID.Text); cmdList.Add(mtTypeMx.Insert()); } if (DbHelperOra.ExecuteSqlTran(cmdList)) { Alert.Show("模板信息保存成功!", "消息提示", MessageBoxIcon.Information); //DataInit(); GridStrategy.DataSource = GridTemplate(""); GridStrategy.DataBind(); } }
private void DataSearch() { if (PubFunc.StrIsEmpty(dpkDATE1.SelectedDate.ToString()) || PubFunc.StrIsEmpty(dpkDATE2.SelectedDate.ToString())) { Alert.Show("【输入日期】不正确,请检查!", MessageBoxIcon.Warning); return; } if (dpkDATE1.SelectedDate > dpkDATE2.SelectedDate) { Alert.Show("【开始日期】不能大于【结束日期】!", MessageBoxIcon.Warning); return; } string strSql2 = @"(SELECT SUM(DECODE(B.BILLTYPE,'XST',-ABS(B.SL),'XSD',ABS(B.SL),'XSG',ABS(B.SL),'DSH',ABS(B.SL))) FROM SYS_DEPT A,DAT_GOODSJXC B,DOC_GOODS C WHERE A.CODE = B.DEPTID AND A.TYPE = '3' AND B.DEPTID LIKE NVL('{2}', '%') AND B.RQSJ >= TO_DATE('{0}','yyyy-MM-dd') AND B.RQSJ <TO_DATE('{1}','yyyy-MM-dd') + 1 AND B.KCADD < 0 AND B.GDSEQ = C.GDSEQ"; string strWhere2 = ")"; // if (!PubFunc.StrIsEmpty(ddlISGZ.SelectedValue)) strWhere2 += " AND C.ISGZ = '" + ddlISGZ.SelectedValue + "'"; if (strWhere2.Trim().Length > 0) { strSql2 = string.Format(strSql2, dpkDATE1.Text, dpkDATE2.Text, lstDEPTID.SelectedValue.ToString()) + strWhere2; } string strSql3 = @"(SELECT SUM(DECODE(B.BILLTYPE,'XST',-ABS(B.HSJE),'XSG',ABS(B.HSJE),'XSD',ABS(B.HSJE),'DSH',ABS(B.HSJE))) FROM SYS_DEPT A,DAT_GOODSJXC B,DOC_GOODS C WHERE A.CODE = B.DEPTID AND A.TYPE = '3' AND B.DEPTID LIKE NVL('{2}', '%') AND B.RQSJ >= TO_DATE('{0}','yyyy-MM-dd') AND B.RQSJ < TO_DATE('{1}','yyyy-MM-dd') + 1 AND B.KCADD < 0 AND B.GDSEQ = C.GDSEQ"; string strWhere3 = ")"; //if (!PubFunc.StrIsEmpty(ddlISGZ.SelectedValue)) strWhere3 += " AND C.ISGZ = '" + ddlISGZ.SelectedValue + "'"; if (strWhere3.Trim().Length > 0) { strSql3 = string.Format(strSql3, dpkDATE1.Text, dpkDATE2.Text, lstDEPTID.SelectedValue.ToString()) + strWhere3; } string strSql = @"SELECT * FROM(SELECT C.GDSEQ, C.GDNAME,NVL(SUM(DECODE(B.BILLTYPE,'XST',-ABS(B.SL),'XSD',ABS(B.SL),'XSG',ABS(B.SL),'DSH',ABS(B.SL))),0) SL, NVL(SUM(DECODE(B.BILLTYPE,'XST',-ABS(B.HSJE),'XSG',ABS(B.HSJE),'XSD',ABS(B.HSJE),'DSH',ABS(B.HSJE))),0) HSJE, ROUND(NVL(SUM(DECODE(B.BILLTYPE,'XST',-ABS(B.SL),'XSD',ABS(B.SL),'XSG',ABS(B.SL),'DSH',ABS(B.SL))),0)/{2},4) ZBSL, ROUND(NVL(SUM(DECODE(B.BILLTYPE,'XST',-ABS(B.HSJE),'XSD',ABS(B.HSJE),'XSG',ABS(B.HSJE),'DSH',ABS(B.HSJE))),0)/{3},4) ZBJE, F_GETBL('DPJEHB','{0}','{1}','{4}',C.GDSEQ,'','','') JEHB,F_GETBL('DPJETB','{0}','{1}','{4}',C.GDSEQ,'','','') JETB, F_GETBL('DPSLHB','{0}','{1}','{4}',C.GDSEQ,'','','') SLHB,F_GETBL('DPSLTB','{0}','{1}','{4}',C.GDSEQ,'','','') SLTB FROM SYS_DEPT A,DAT_GOODSJXC B,DOC_GOODS C WHERE A.CODE = B.DEPTID AND A.TYPE = '3' AND B.RQSJ >=TO_DATE('{0}','yyyy-MM-dd')AND B.RQSJ<TO_DATE('{1}','yyyy-MM-dd') + 1 AND B.KCADD < 0 AND B.GDSEQ = C.GDSEQ"; string strWhere = ""; if (lstDEPTID.SelectedValue.Length > 0) { strWhere += " AND B.DEPTID = '" + lstDEPTID.SelectedValue + "'"; } // if (!PubFunc.StrIsEmpty(ddlISGZ.SelectedValue)) strWhere += " AND C.ISGZ = '" + ddlISGZ.SelectedValue + "'"; if (strWhere.Trim().Length > 0) { strSql = strSql + strWhere; } strSql += " GROUP BY C.GDSEQ, C.GDNAME) WHERE SL<>0"; string sortField = GridGoods.SortField; string sortDirection = GridGoods.SortDirection; string tempsql = string.Format(strSql, dpkDATE1.Text, dpkDATE2.Text, strSql2, strSql3, lstDEPTID.SelectedValue.ToString()) + String.Format(" ORDER BY {0} {1}", sortField, sortDirection); //string.Format(strSql, dpkDATE1.Text, dpkDATE2.Text, strSql2, strSql3) + String.Format(" ORDER BY {0} {1}", sortField, sortDirection) DataTable dtt = DbHelperOra.QueryForTable(tempsql); //GridGoods.DataSource = dt; //GridGoods.DataBind(); int total = 0; DataTable dt = PubFunc.DbGetPage(GridGoods.PageIndex, GridGoods.PageSize, tempsql, ref total); GridGoods.RecordCount = total; GridGoods.DataSource = dt; GridGoods.DataBind(); Decimal SL = 0, HSJE = 0; Decimal SLOther = 0, HSJEOther = 0; JObject summary = new JObject(); hfdArray.Text = ""; hfdArrayVal.Text = ""; hfdArrayVal2.Text = ""; for (int iRow = 0; iRow < dt.Rows.Count; iRow++) { if (iRow > 5) { SLOther += Convert.ToDecimal(dt.Rows[iRow]["SL"]); HSJEOther += Convert.ToDecimal(dt.Rows[iRow]["HSJE"]); } SL += Convert.ToDecimal(dt.Rows[iRow]["SL"]); HSJE += Convert.ToDecimal(dt.Rows[iRow]["HSJE"]); } for (int iRow = 0; iRow < dtt.Rows.Count; iRow++) { if (iRow < 5) { string strGDNAME = dt.Rows[iRow]["GDNAME"].ToString().Length < 14 ? dt.Rows[iRow]["GDNAME"].ToString() : dt.Rows[iRow]["GDNAME"].ToString().Substring(0, 13); hfdArray.Text += strGDNAME + ","; //string strGDNAME = dt.Rows[iRow]["GDNAME"].ToString().Length < 10 ? dt.Rows[iRow]["GDNAME"].ToString() : dt.Rows[iRow]["GDNAME"].ToString().Substring(1, dt.Rows[iRow]["GDNAME"].ToString().Length - 1); hfdArrayVal.Text += dt.Rows[iRow]["HSJE"] + "$" + strGDNAME + ","; hfdArrayVal2.Text += dt.Rows[iRow]["SL"] + "$" + strGDNAME + ","; } } hfdArray.Text += "其它,"; hfdArrayVal.Text += HSJEOther + "$其它,"; hfdArrayVal2.Text += SLOther + "$其它,"; hfdArray.Text = hfdArray.Text.TrimEnd(','); hfdArrayVal.Text = hfdArrayVal.Text.TrimEnd(','); hfdArrayVal2.Text = hfdArrayVal2.Text.TrimEnd(','); summary.Add("NAME", "本页合计"); summary.Add("SL", (SL).ToString("F2")); summary.Add("HSJE", HSJE.ToString("F2")); GridGoods.SummaryData = summary; if (GridGoods.PageIndex == 0) { PageContext.RegisterStartupScript("getEcharsData2();"); PageContext.RegisterStartupScript("getEcharsData();"); } }
protected override void billSearch() { PageContext.RegisterStartupScript(GridGoods.GetRejectChangesReference()); StringBuilder strSql = new StringBuilder(); strSql.AppendFormat(@"SELECT GD.GDNAME,GD.GDSEQ,GD.GDSPEC,GD.CATID,GD.SUPPLIER SUPID, F_GETUNITNAME(DECODE(GD.UNIT_ORDER, 'D', GD.UNIT_DABZ, 'Z', GD.UNIT_ZHONGBZ, GD.UNIT)) UNIT, GD.BZHL,NVL(GD.ISLOT,'2') ISLOT,GD.HSJJ,GD.PIZNO PZWH, F_GETPRODUCERNAME(GD.Producer) PRODUCER, NVL(GS.KCSL, 0) KCSL, NVL(CFG.ZGKC, 0) ZGKC, NVL(CFG.ZDKC, 0) ZDKC, DECODE(GD.UNIT_ORDER, 'D', GD.NUM_DABZ, 'Z', GD.NUM_ZHONGBZ, GD.BZHL) BZHL, F_GETZTKC('{3}', GD.GDSEQ) * DECODE(GD.UNIT_ORDER, 'D', GD.NUM_DABZ, 'Z', GD.NUM_ZHONGBZ, GD.BZHL) ZTSL, F_GETJYDH('{3}', GD.GDSEQ, 'DAY', '{1}', '{2}') AVGSL, F_GETJYDH('{3}', GD.GDSEQ, 'DS', '{1}', '{2}') * DECODE(GD.UNIT_ORDER, 'D', GD.NUM_DABZ, 'Z', GD.NUM_ZHONGBZ, GD.BZHL) ADVSL, F_GETJYDH('{3}', GD.GDSEQ, 'DS', '{1}', '{2}') * DECODE(GD.UNIT_ORDER, 'D', GD.NUM_DABZ, 'Z', GD.NUM_ZHONGBZ, GD.BZHL) * {0} DHS, (F_GETJYDH('{3}', GD.GDSEQ, 'DS', '{1}', '{2}') * DECODE(GD.UNIT_ORDER, 'D', GD.NUM_DABZ, 'Z', GD.NUM_ZHONGBZ, GD.BZHL)) * GD.HSJJ HSJE FROM (SELECT DISTINCT GDSEQ FROM DAT_GOODSJXC A WHERE RQSJ BETWEEN TO_DATE('{1}', 'YYYY-MM-DD') AND TO_DATE('{2}', 'YYYY-MM-DD') AND EXISTS (SELECT 1 FROM SYS_DEPT WHERE TYPE = '3' AND CODE = A.DEPTID)) JXC, (SELECT GDSEQ, SUM(KCSL) KCSL FROM DAT_GOODSSTOCK S WHERE EXISTS (SELECT 1 FROM SYS_DEPT WHERE TYPE = '3' AND CODE = S.DEPTID) GROUP BY GDSEQ) GS, (SELECT GDNAME, GDSEQ, GDSPEC, UNIT, BZHL, PIZNO, HSJJ,ISLOT, PRODUCER, NUM_ZHONGBZ, NUM_DABZ, UNIT_ORDER,UNIT_ZHONGBZ, UNIT_DABZ, F_GETSUPID(GDSEQ) SUPPLIER,CATID FROM DOC_GOODS WHERE ISGZ = 'N') GD, (SELECT ZGKC, ZDKC, GDSEQ FROM DOC_GOODSCFG WHERE DEPTID = '{3}') CFG WHERE JXC.GDSEQ = GS.GDSEQ(+) AND JXC.GDSEQ = GD.GDSEQ AND JXC.GDSEQ = CFG.GDSEQ", Convert.ToDecimal(nbxYSSL.Text), startDate.ToString("yyyy-MM-dd"), endDate.ToString("yyyy-MM-dd"), UserAction.UserDept); DataTable billDT = new DataTable(); billDT = DbHelperOra.Query(strSql.ToString()).Tables[0]; Doc.GridRowAdd(GridGoods, billDT); }
protected void tbxBARCODE_TextChanged(object sender, EventArgs e) { if (docDEPTGROUP.SelectedValue.Length > 0) { //长度不够 if (tbxBARCODE.Text.Trim().Length < Doc.LENCODE()) { return; } } else { //科室赋值 object obj = DbHelperOra.GetSingle("SELECT sjcode FROM SYS_DEPT WHERE CODE = '" + tbxBARCODE.Text.Trim() + "' AND TYPE = '5'"); if ((obj ?? "").ToString().Length > 0) { docDEPTGROUP.SelectedValue = tbxBARCODE.Text.Trim(); docDEPTID.Text = obj.ToString(); } else { Alert.Show("请首先选择科室或扫描科室工作牌!", "提示信息", MessageBoxIcon.Warning); } tbxBARCODE.Text = ""; tbxBARCODE.Focus(); return; } #region 扫描试剂条码 if (tbxBARCODE.Text.Trim().Substring(0, 1).ToUpper() == "3") { List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().ToList(); for (int i = 0; i < newDict.Count; i++) { string barcode_old = (newDict[i]["ONECODE"] ?? "").ToString(); if (barcode_old == tbxBARCODE.Text) { Alert.Show("扫描的试剂条码已存在!", "消息提示", MessageBoxIcon.Warning); tbxBARCODE.Text = ""; tbxBARCODE.Focus(); return; } } DataTable barcode = DbHelperOra.Query("SELECT A.*,B.HSJJ FROM DAT_BARCODE_SJ A,DOC_GOODS B WHERE A.GDSEQ=B.GDSEQ AND A.GDBARCODE = '" + tbxBARCODE.Text + "' AND A.FLAG IN ('N','R') AND B.FLAG IN('Y','T')").Tables[0]; if (barcode != null && barcode.Rows.Count > 0) { string code = barcode.Rows[0]["GDSEQ"].ToString(); string dept = docDEPTID.Text; if (!string.IsNullOrWhiteSpace(code) && code.Trim().Length >= 2) { DataTable dt_goods = Doc.GetGoods_His(code, "", dept); if (dt_goods != null && dt_goods.Rows.Count > 0) { dt_goods.Columns.Add("ONECODE", Type.GetType("System.String")); dt_goods.Columns.Add("BZSL", Type.GetType("System.Double")); dt_goods.Columns.Add("DHSL", Type.GetType("System.Double")); dt_goods.Columns.Add("NUM5", Type.GetType("System.Double")); dt_goods.Columns.Add("HSJE", Type.GetType("System.Double")); DataRow dr_goods = dt_goods.Rows[0]; dr_goods["BZSL"] = barcode.Rows[0]["SL"]; dr_goods["DHSL"] = barcode.Rows[0]["SL"]; object kcsl = DbHelperOra.GetSingle("SELECT SUM(KCSL-locksl) FROM DAT_GOODSSTOCK WHERE DEPTID = '" + dept + "' AND GDSEQ = '" + code + "' AND PHID = '" + barcode.Rows[0]["PH"].ToString() + "'"); dr_goods["NUM5"] = kcsl ?? 0; dr_goods["HSJE"] = Convert.ToDecimal(barcode.Rows[0]["SL"]) * Convert.ToDecimal(barcode.Rows[0]["HSJJ"]); dr_goods["PH"] = barcode.Rows[0]["PH"]; dr_goods["PZWH"] = barcode.Rows[0]["PZWH"]; dr_goods["RQ_SC"] = barcode.Rows[0]["RQ_SC"]; dr_goods["YXQZ"] = barcode.Rows[0]["YXQZ"]; dr_goods["HWID"] = barcode.Rows[0]["HWID"]; dr_goods["ONECODE"] = tbxBARCODE.Text; PubFunc.GridRowAdd(GridGoods, dr_goods, false); tbxNUM.Text = (Convert.ToInt16(tbxNUM.Text) + 1).ToString(); tbxBARCODE.Text = ""; tbxBARCODE.Focus(); } else { Alert.Show(string.Format("部门【{0}】尚未配置商品【{1}】!!!", docDEPTID.Text, code), MessageBoxIcon.Warning); } } } else { Alert.Show("扫描条码不存在或已被出库使用,请检查!!!"); tbxBARCODE.Text = ""; tbxBARCODE.Focus(); } } else { Alert.Show("条码异常,请检查后重新输入。", "操作提示", MessageBoxIcon.Warning); tbxBARCODE.Text = ""; tbxBARCODE.Focus(); } #endregion }
private void DataSearch() { string strsql = ""; string strwhere = ""; string sortField = GridGoods.SortField; string sortDirection = GridGoods.SortDirection; hfdArrayVal.Text = ""; DateTime begrq = Convert.ToDateTime(dpkDATE1.Text); DateTime endrq = Convert.ToDateTime(dpkDATE2.Text); if (PubFunc.StrIsEmpty(dpkDATE1.SelectedDate.ToString()) || PubFunc.StrIsEmpty(dpkDATE2.SelectedDate.ToString())) { Alert.Show("【输入日期】不正确,请检查!", MessageBoxIcon.Warning); return; } if (dpkDATE1.SelectedDate > dpkDATE2.SelectedDate) { Alert.Show("【开始日期】不能大于【结束日期】!", MessageBoxIcon.Warning); return; } strsql = string.Format(@"SELECT A.*, NVL(B.SLHBZ,0) SLHBZ, NVL(B.JEHBZ,0) JEHBZ, NVL(C.SLTBZ, 0) SLTBZ, NVL(C.JETBZ, 0) JETBZ, (SELECT COUNT(DGS.GDSEQ) FROM DOC_GOODSSUP DGS WHERE DGS.SUPID LIKE NVL(A.SUPID,'%') AND DGS.FLAG='Y')SUMGDSEQ, (SELECT SUM(NVL(DGS.KCSL,0)) FROM DAT_GOODSSTOCK DGS WHERE DGS.SUPID LIKE NVL(A.SUPID,'%') AND DGS.KCSL>0 AND DGS.DEPTID LIKE NVL('{3}', '%'))SUMKCSL, (SELECT SUM(NVL(DGS.KCHSJE,0)) FROM DAT_GOODSSTOCK DGS WHERE DGS.SUPID LIKE NVL(A.SUPID,'%') AND DGS.KCSL>0 AND DGS.DEPTID LIKE NVL('{3}', '%'))SUMKCJE FROM (SELECT SUPID, SUPNAME, SUM(NVL(TSL, 0)*(-1)) SYSL, ROUND(NVL(SUM(ZJ), 0)*(-1), 2) SYJE FROM (SELECT DGJ.SUPID,DS.SUPNAME, SUM(DGJ.SL) TSL, SUM(DGJ.HSJJ * DGJ.SL) ZJ FROM DAT_GOODSJXC DGJ, DOC_GOODS DG,DOC_SUPPLIER DS WHERE DGJ.GDSEQ = DG.GDSEQ(+) AND DGJ.SUPID=DS.SUPID(+) AND TRUNC(DGJ.RQSJ, 'DD')>=TRUNC(TO_DATE('{0}','yyyy-MM-dd'), 'DD') AND TRUNC(DGJ.RQSJ, 'DD') <TRUNC(TO_DATE('{1}','yyyy-MM-dd'), 'DD')+1 AND DGJ.BILLTYPE = 'THD' AND DGJ.SL < 0 AND DG.ISGZ LIKE NVL('{2}','%') AND DGJ.DEPTID LIKE NVL('{3}','%') GROUP BY DGJ.SUPID,DS.SUPNAME) GROUP BY SUPID,SUPNAME) A, (SELECT SUPID, SUM(NVL(TSL, 0)*(-1)) SLHBZ, ROUND(NVL(SUM(ZJ), 0)*(-1), 2) JEHBZ FROM (SELECT DGJ.SUPID, SUM(DGJ.SL) TSL, SUM(DGJ.HSJJ * DGJ.SL) ZJ FROM DAT_GOODSJXC DGJ, DOC_GOODS DG WHERE DGJ.GDSEQ = DG.GDSEQ(+) AND TRUNC(DGJ.RQSJ, 'DD') >= TRUNC(TO_DATE('{0}','yyyy-MM-dd')-(TO_DATE('{1}','yyyy-MM-dd')-TO_DATE('{0}','yyyy-MM-dd')), 'DD')-1 AND TRUNC(DGJ.RQSJ, 'DD') <TRUNC(TO_DATE('{0}','yyyy-MM-dd'), 'DD') AND DGJ.BILLTYPE = 'THD' AND DGJ.SL < 0 AND DG.ISGZ LIKE NVL('{2}','%') AND DGJ.DEPTID LIKE NVL('{3}','%') GROUP BY SUPID) GROUP BY SUPID) B, (SELECT SUPID, SUM(NVL(TSL, 0)*(-1)) SLTBZ, ROUND(NVL(SUM(ZJ), 0)*(-1), 2) JETBZ FROM (SELECT DGJ.SUPID, SUM(DGJ.SL) TSL, SUM(DGJ.HSJJ * DGJ.SL) ZJ FROM DAT_GOODSJXC DGJ, DOC_GOODS DG WHERE DGJ.GDSEQ = DG.GDSEQ(+) AND TRUNC(DGJ.RQSJ, 'DD') >= TRUNC(ADD_MONTHS(TO_DATE('{0}','yyyy-MM-dd'),-12), 'DD') AND TRUNC(DGJ.RQSJ, 'DD')< TRUNC(ADD_MONTHS((TO_DATE('{1}','yyyy-MM-dd') + 1),-12), 'DD') AND DGJ.BILLTYPE = 'THD' AND DGJ.SL < 0 AND DG.ISGZ LIKE NVL('{2}','%') AND DGJ.DEPTID LIKE NVL('{3}','%') GROUP BY SUPID) GROUP BY SUPID) C WHERE A.SUPID = B.SUPID(+) AND A.SUPID = C.SUPID(+)", begrq.ToShortDateString(), endrq.ToShortDateString(), ddlISGZ.SelectedValue, lstDEPTID.SelectedValue); if (!string.IsNullOrEmpty(lstSUPPLIER.SelectedValue)) { strwhere += " AND A.SUPID='" + lstSUPPLIER.SelectedValue + "' "; } //strsql += strwhere; //DataTable dt = DbHelperOra.QueryForTable(strsql+" ORDER BY SYSL DESC "); //GridGoods.DataSource = dt; //GridGoods.DataBind(); //解决排序问题 int total1 = 0; strsql += strwhere; DataTable dt = PubFunc.DbGetPage(GridGoods.PageIndex, GridGoods.PageSize, strsql + String.Format(" ORDER BY {0} {1}", sortField, sortDirection), ref total1); GridGoods.RecordCount = total1; GridGoods.DataSource = dt; GridGoods.DataBind(); JObject summary = new JObject(); string strpierose = string.Format(@"SELECT THTYPE,THTYPENAME,ABS(SUM(SL)) FROM( SELECT DTD.THTYPE,THCODE.NAME THTYPENAME ,DGJ.SL FROM DAT_GOODSJXC DGJ, DAT_TH_DOC DTD, (SELECT NAME,CODE FROM SYS_CODEVALUE WHERE TYPE='SUP_RETURNCAUSE')THCODE, DOC_GOODS DG, DAT_TH_COM DTC, DOC_GOODSSUP DS WHERE DGJ.BILLNO =DTD.SEQNO(+) AND DTD.THTYPE = THCODE.CODE(+) AND DTD.SEQNO = DTC.SEQNO(+) AND DTC.GDSEQ = DG.GDSEQ(+) AND DGJ.SUPID = DS.SUPID(+) AND DS.GDSEQ = DG.GDSEQ AND DGJ.GDSEQ=DG.GDSEQ AND DGJ.ROWNO=DTC.ROWNO AND DS.FLAG = 'Y' --AND DS.ORDERSORT = 'Y' AND DGJ.BILLTYPE = 'THD' AND DGJ.SL < 0 AND DGJ.SUPID LIKE NVL('{0}','%') AND DGJ.DEPTID LIKE NVL('{1}','%') AND TRUNC(DGJ.RQSJ,'DD') >= TRUNC(TO_DATE('{2}','YYYY-MM-DD'),'DD') AND TRUNC(DGJ.RQSJ,'DD')<TRUNC(TO_DATE('{3}','YYYY-MM-DD'),'DD')+1 AND DG.ISGZ LIKE NVL('{4}','%') ) GROUP BY THTYPE,THTYPENAME" , lstSUPPLIER.SelectedValue, lstDEPTID.SelectedValue, begrq.ToShortDateString(), endrq.ToShortDateString(), ddlISGZ.SelectedValue); DataTable dtrose = DbHelperOra.QueryForTable(strpierose); init_pie_rose(dtrose, begrq, endrq); Decimal SL = 0, HSJE = 0, total = 0, totaltb = 0, totalhb = 0; int i = 0; foreach (DataRow dr in dt.Rows) { SL += Convert.ToDecimal(dr["SYSL"]); HSJE += Convert.ToDecimal(dr["SYJE"]); if (i > 5) { total += Convert.ToDecimal(dr["SYSL"].ToString()); } else { hfdArray.Text += dr["SUPNAME"] + ","; hfdArrayVal.Text += dr["SYSL"] + "$" + dr["SUPNAME"] + ","; } i++; } if (total > 0) { hfdArray.Text += "其他,"; hfdArrayVal.Text += total.ToString() + "$其他,"; } Totalsl.Text = SL.ToString(); Totalje.Text = HSJE.ToString(); hfdArrayVal.Text = hfdArrayVal.Text.TrimEnd(','); hfdArray.Text = hfdArray.Text.TrimEnd(','); if (PubFunc.StrIsEmpty(hfdArrayVal.Text)) { hfdArrayVal.Text = "0" + "$" + "无数据"; } hfdArrayVal2.Text = HSJE.ToString() + "," + (Math.Round(totaltb, 2)).ToString() + "," + (Math.Round(totalhb, 2)).ToString(); summary.Add("SUPNAME", "本页合计"); summary.Add("SYSL", SL.ToString("F2")); summary.Add("SYJE", HSJE.ToString("F2")); GridGoods.SummaryData = summary; PageContext.RegisterStartupScript("showpie();updateDate();"); }
protected override void billSave() { #region 数据有效性验证 if (docFLAG.SelectedValue != "M") { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return; } if (PubFunc.FormDataCheck(FormDoc).Length > 0) { return; } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行、批号填写是否符合要求 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString()) && !string.IsNullOrWhiteSpace(newDict[i]["GDNAME"].ToString())) { if (newDict[i]["ISLOT"].ToString() == "1" || newDict[i]["ISLOT"].ToString() == "2") { if (string.IsNullOrWhiteSpace(newDict[i]["PH"].ToString())) { //GridGoods.SelectedCell = new int[] { i, 8 }; string[] selectedCell = GridGoods.SelectedCell; PageContext.RegisterStartupScript(String.Format("F('{0}').selectCell('{1}','{2}');", GridGoods.ClientID, selectedCell[0], "GDSPEC")); Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】批号不能为空!!!", "消息提示", MessageBoxIcon.Warning); return; } } if (newDict[i]["BZSL"].ToString() == "0" || string.IsNullOrWhiteSpace(newDict[i]["BZSL"].ToString())) { Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】使用数填写不正确!", "消息提示", MessageBoxIcon.Warning); return; } if (decimal.Parse(newDict[i]["NUM5"].ToString()) < decimal.Parse(newDict[i]["BZSL"].ToString())) { Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】使用数大于库存数,请重新输入!", "消息提示", MessageBoxIcon.Warning); return; } //当商品中含有贵重商品信息,即需要赋唯一码时 if (newDict[i]["ISGZ"].ToString() == "Y" && newDict[i]["ONECODE"].ToString() == "") { Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】为贵重商品,请先进行扫描赋码!", "消息提示", MessageBoxIcon.Warning); return; } //填写商品追溯码时,使用数必须为小于等于1 //if (newDict[i]["ONECODE"].ToString().Length > 0 && newDict[i]["BZSL"].ToString() != "1") //{ // Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】为贵重商品,使用数量只能为1!"); // return; //} goodsData.Add(newDict[i]); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return; } //验证单据信息 if (DbHelperOra.Exists("SELECT 1 FROM DAT_XS_DOC where seqno = '" + docBILLNO.Text + "'") && docBILLNO.Enabled) { Alert.Show("您输入的单号已存在,请检查!"); return; } #endregion if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } else { string flg = (string)DbHelperOra.GetSingle(string.Format("SELECT NVL(FLAG,'N') FROM DAT_XS_DOC WHERE SEQNO='{0}'", docBILLNO.Text)); if (!string.IsNullOrWhiteSpace(flg) && (",M,R").IndexOf(flg) < 0) { Alert.Show("您输入的单据号存在重复信息,请重新输入或置空!", "消息提示", MessageBoxIcon.Warning); return; } else { docSEQNO.Text = docBILLNO.Text; docBILLNO.Enabled = false; } } MyTable mtType = new MyTable("DAT_XS_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow.Add("BILLTYPE", BillType); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "3"); mtType.ColRow["STR5"] = mtType.ColRow["DEPTGROUP"]; mtType.ColRow.Remove("DEPTGROUP"); mtType.ColRow.Remove("NUM"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_XS_COM"); //先删除单据信息在插入 cmdList.Add(new CommandInfo("DELETE DAT_XS_DOC WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据台头 cmdList.Add(new CommandInfo("DELETE DAT_XS_COM WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据明细 cmdList.AddRange(mtType.InsertCommand()); for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); if (PubFunc.StrIsEmpty(mtTypeMx.ColRow["BZSL"].ToString()) || mtTypeMx.ColRow["BZSL"].ToString() == "0") { Alert.Show("商品【" + mtTypeMx.ColRow["GDSEQ"] + " | " + mtTypeMx.ColRow["GDNAME"] + "】【使用数】为0或空,无法进行【使用信息管理】操作。", "消息提示", MessageBoxIcon.Warning); return; } mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); mtTypeMx.ColRow["DHSL"] = decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()); mtTypeMx.ColRow["HSJE"] = decimal.Parse(mtTypeMx.ColRow["HSJJ"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()); mtTypeMx.ColRow["XSSL"] = mtTypeMx.ColRow["DHSL"]; mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); cmdList.Add(mtTypeMx.Insert()); } if (DbHelperOra.ExecuteSqlTran(cmdList)) { Alert.Show("学科组试剂领用信息保存成功!", "消息提示", MessageBoxIcon.Information); OperLog("试剂出库", "修改单据【" + docBILLNO.Text + "】"); billOpen(docBILLNO.Text); } }
protected void GridGoods_AfterEdit(object sender, FineUIPro.GridAfterEditEventArgs e) { string[] strCell = GridGoods.SelectedCell; List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { return; } if (e.ColumnID == "BZSL") { if (!PubFunc.isNumeric(Doc.GetGridInf(GridGoods, e.RowID, "BZHL")) || !PubFunc.isNumeric(Doc.GetGridInf(GridGoods, e.RowID, "BZSL")) || !PubFunc.isNumeric(Doc.GetGridInf(GridGoods, e.RowID, "HSJJ"))) { Alert.Show("商品信息异常,请详细检查商品信息:包装含量、价格或数量!", "异常信息", MessageBoxIcon.Warning); return; } JObject defaultObj = Doc.GetJObject(GridGoods, e.RowID); decimal hl = 0, rs = 0, jg = 0; decimal.TryParse((defaultObj["BZHL"] ?? "0").ToString(), out hl); decimal.TryParse((defaultObj["BZSL"] ?? "0").ToString(), out rs); decimal.TryParse((defaultObj["HSJJ"] ?? "0").ToString(), out jg); defaultObj["DHSL"] = rs * hl; defaultObj["HSJE"] = Math.Round(rs * jg, 2).ToString("F2"); PageContext.RegisterStartupScript(GridGoods.GetUpdateCellValueReference(e.RowID, defaultObj)); //计算合计数量 decimal bzslTotal = 0, feeTotal = 0; foreach (Dictionary <string, object> dic in newDict) { bzslTotal += Convert.ToDecimal(dic["BZSL"]); feeTotal += Convert.ToDecimal(dic["HSJJ"]) * Convert.ToDecimal(dic["BZSL"]); } JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("BZSL", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); GridGoods.SummaryData = summary; } else if (e.ColumnID == "PH") { String gdseq = Doc.GetGridInf(GridGoods, e.RowID, "GDSEQ"); if (gdseq.Length < 1) { Alert.Show("请先选择商品信息!", "异常信息", MessageBoxIcon.Question); return; } String ph = Doc.GetGridInf(GridGoods, e.RowID, "PH"); if (ph.Length < 1 && DbHelperOra.Exists(string.Format("SELECT 1 FROM DOC_GOODS WHERE GDSEQ = '{0}' AND ISLOT = '2'", gdseq))) { Alert.Show("请填写商品[" + gdseq + "]批次信息!", "异常信息", MessageBoxIcon.Warning); return; } if (ph.ToString() == "\\") { DataTable dtPH = Doc.GetGoodsPH_New(gdseq, docDEPTID.Text); if (dtPH != null && dtPH.Rows.Count > 0) { GridLot.DataSource = dtPH; GridLot.DataBind(); WindowLot.Hidden = false; } else { Alert.Show("商品[" + gdseq + "]已无库存,请检查!", MessageBoxIcon.Warning); } } } }
protected void trbBARCODE_TriggerClick(object sender, EventArgs e) { //扫码出库 if (trbBARCODE.Text.Trim().Length < Doc.LENCODE()) { return; } //if (docDEPTID.SelectedValue.Length < 1) //{ // Alert.Show("【退货科室】未维护", "提示信息", MessageBoxIcon.Warning); // return; //} List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); for (int i = 0; i < newDict.Count; i++) { if (newDict[i]["STR2"].ToString() == trbBARCODE.Text.Trim()) { Alert.Show("扫描条码已在单据中存在!", "提示信息", MessageBoxIcon.Warning); trbBARCODE.Text = ""; trbBARCODE.Focus(); return; } } DataTable dt = DbHelperOra.Query("SELECT A.* FROM DAT_GZ_EXT A,SYS_DEPT B WHERE A.DEPTCUR = B.CODE AND B.TYPE = '1' AND A.ONECODE = '" + trbBARCODE.Text.Trim() + "' AND A.FLAG IN('Y','R')").Tables[0]; if (dt.Rows.Count < 1) { Alert.Show("扫描条码未入库或已被退货!", "提示信息", MessageBoxIcon.Warning); trbBARCODE.Text = ""; trbBARCODE.Focus(); return; } string msg = ""; DataTable dtt = DbHelperOra.Query(string.Format("SELECT ONECODE,BILLNO,DEPTID,f_getdeptname(deptid) DEPTNAME FROM DAT_TH_EXT WHERE ONECODE = '{0}'", trbBARCODE.Text.Trim())).Tables[0]; if (dtt.Rows.Count > 0) { msg = "追溯码【" + dtt.Rows[0]["ONECODE"] + "】在【[" + dtt.Rows[0]["DEPTID"] + "]" + dtt.Rows[0]["DEPTNAME"] + "】被单据【" + dtt.Rows[0]["BILLNO"] + "】使用!"; Alert.Show(msg, "提示信息", MessageBoxIcon.Warning); return; } string dept = dt.Rows[0]["DEPTCUR"].ToString(); if (docDEPTID.SelectedValue.Length > 0) { if (docDEPTID.SelectedValue != dept) { Alert.Show("条码【" + trbBARCODE.Text.Trim() + "】不属于库房【" + docDEPTID.SelectedText + "】", "提示信息", MessageBoxIcon.Warning); trbBARCODE.Text = ""; trbBARCODE.Focus(); return; } } else { docDEPTID.SelectedValue = dept; } docDEPTID.Enabled = false; String strPSSID = dt.Rows[0]["PSSID"].ToString(); //if (strPSSID == "00001") //{ // Alert.Show("代管商品不允许退货!", MessageBoxIcon.Warning); // trbBARCODE.Text = ""; // trbBARCODE.Focus(); // return; //} string gdseq = dt.Rows[0]["GDSEQ"].ToString(); //增加商品 //信息赋值 DataTable dt_goods = Doc.GetGoods_His(gdseq, "", docDEPTID.SelectedValue); if (dt_goods != null && dt_goods.Rows.Count > 0) { string gys = DbHelperOra.GetSingle(String.Format(@"SELECT A.PSSID FROM DAT_GZ_EXT A WHERE A.ONECODE = '{0}'", trbBARCODE.Text.Trim()) ?? "").ToString(); if (docPSSID.SelectedValue.Length > 0) { if (docPSSID.SelectedValue != gys) { Alert.Show("条码【" + trbBARCODE.Text.Trim() + "】不属于配送商【" + docPSSID.SelectedText + "】", "提示信息", MessageBoxIcon.Warning); trbBARCODE.Text = ""; trbBARCODE.Focus(); return; } } else { docPSSID.SelectedValue = gys; docPSSID.Enabled = false; } dt_goods.Columns.Add("BZSL", Type.GetType("System.Int32")); dt_goods.Columns.Add("HSJE", Type.GetType("System.Double")); dt_goods.Columns.Add("STR2", Type.GetType("System.String")); DataRow dr_goods = dt_goods.Rows[0]; //退货价格重新获取 dr_goods["HSJJ"] = DbHelperOra.GetSingle(String.Format("SELECT HSJJ FROM (SELECT HSJJ FROM DAT_ONECODEJXC A WHERE A.ONECODE = '{0}' AND (A.BILLNO LIKE 'RKD%' OR A.BILLNO LIKE 'YKD%') ORDER BY SEQNO DESC) WHERE ROWNUM = 1", trbBARCODE.Text.Trim())); dr_goods["BZSL"] = "1"; dr_goods["BZHL"] = "1"; dr_goods["STR2"] = trbBARCODE.Text.Trim(); dr_goods["HSJE"] = dr_goods["HSJJ"]; dr_goods["PH"] = dt.Rows[0]["PH"]; dr_goods["YXQZ"] = dt.Rows[0]["YXQZ"]; dr_goods["RQ_SC"] = dt.Rows[0]["RQ_SC"]; LoadGridRow(dr_goods, false); } else { Alert.Show(string.Format("{0}尚未配置商品【{1}】!!!", docDEPTID.SelectedText, gdseq), MessageBoxIcon.Warning); } trbBARCODE.Text = ""; trbBARCODE.Focus(); }
private void save(string flag = "N") { #region 数据有效性验证 if (docFLAG.SelectedValue != "N") { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString())) { if (newDict[i].ContainsKey("STR2") && goodsData.Count > 0 && goodsData.Where(x => x["STR2"].ToString() == newDict[i]["STR2"].ToString()).Count() > 0) { Alert.Show("条码[" + newDict[i]["STR2"] + "]扫描重复!", "消息提示", MessageBoxIcon.Warning); return; } goodsData.Add(newDict[i]); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return; } #endregion if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } MyTable mtType = new MyTable("DAT_CK_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow.Add("BILLTYPE", "DST"); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "2"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_CK_COM"); //先删除单据信息在插入 cmdList.Add(mtType.DeleteCommand("")); //删除单据台头 cmdList.Add(new CommandInfo("delete dat_ck_com where seqno='" + docBILLNO.Text + "'", null)); //删除单据明细 Decimal subsum = 0; for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); //mtTypeMx.ColRow.Add("XSSL", mtTypeMx.ColRow["BZHL"]); mtTypeMx.ColRow.Add("XSSL", -Math.Abs(decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()))); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); mtTypeMx.ColRow["HSJE"] = -Math.Abs(decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["HSJJ"].ToString())); subsum = subsum + decimal.Parse(mtTypeMx.ColRow["HSJE"].ToString()); cmdList.Add(mtTypeMx.Insert()); } mtType.ColRow.Add("SUBSUM", subsum); cmdList.AddRange(mtType.InsertCommand()); DbHelperOra.ExecuteSqlTran(cmdList); if (flag == "N") { Alert.Show("定数商品退货信息保存成功!"); } OperLog("定数退货", "修改单据【" + docBILLNO.Text + "】"); billOpen(docBILLNO.Text); btnDel.Enabled = true; billLockDoc(true); SaveSuccess = true; }
private void DataSave() { List <Dictionary <string, object> > goodsData = GridGoods.GetNewAddedList().ToList(); if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("没有任何数据!", "消息提示", MessageBoxIcon.Information); return; } if (!string.IsNullOrEmpty(docYSRQ.Text) && Convert.ToDateTime(docYSRQ.Text + "-01") < Convert.ToDateTime(DateTime.Now.AddMonths(1).ToString("yyyy-MM") + "-01")) { Alert.Show("当前时间只能做下一个月采购!", "消息提示", MessageBoxIcon.Information); return; } if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docSEQNO.Enabled = false; } decimal bzslTotal = 0, feeTotal = 0; bzslTotal = goodsData.Count(); foreach (Dictionary <string, object> dic in goodsData) { if ((dic["HSJJ"] ?? "0").ToString().Length > 0) { feeTotal += Convert.ToDecimal(dic["HSJJ"] ?? "0") * Convert.ToDecimal(dic["DHS"] ?? "0"); } } MyTable mtType = new MyTable("DAT_DDPLAN_DOC"); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow["BILLNO"] = docBILLNO.Text; mtType.ColRow["FLAG"] = "M"; mtType.ColRow["BILLTYPE"] = "CJD"; //单据类别为采购单 mtType.ColRow["DEPTID"] = ddlDEPTID.SelectedValue; mtType.ColRow["NUM1"] = Convert.ToDecimal(nbxYSSL.Text); //插入采购调整幅度 mtType.ColRow["BEGINTIME"] = Convert.ToDateTime(dpStartDate.SelectedDate).ToString("yyyy-MM-dd"); mtType.ColRow["ENDTIME"] = Convert.ToDateTime(dpEndDate.SelectedDate).ToString("yyyy-MM-dd"); //dpEndDate.SelectedDate; mtType.ColRow["XDRQ"] = docYSRQ.Text; mtType.ColRow["SUBNUM"] = bzslTotal.ToString(); mtType.ColRow["SUBSUM"] = feeTotal.ToString("F2"); mtType.ColRow["CGY"] = UserAction.UserID; //采购员 mtType.ColRow["LRY"] = UserAction.UserID; mtType.ColRow["LRRQ"] = DateTime.Now; mtType.ColRow["SPR"] = UserAction.UserID; mtType.ColRow["SPRQ"] = DateTime.Now; mtType.ColRow["SHR"] = ""; mtType.ColRow["SHRQ"] = ""; mtType.ColRow["MEMO"] = docMEMO.Text; List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_DDPLAN_COM"); cmdList.Add(new CommandInfo("DELETE DAT_DDPLAN_DOC WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据台头 cmdList.Add(new CommandInfo("DELETE DAT_DDPLAN_COM WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据明细 cmdList.AddRange(mtType.InsertCommand()); for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; mtTypeMx.ColRow.Add("DEPTID", lstDEPTID.SelectedValue.ToString()); mtTypeMx.ColRow.Add("NUM1", nbxYSSL.Text); mtTypeMx.ColRow.Remove("HSJE"); mtTypeMx.ColRow.Add("HSJE", Convert.ToDecimal(goodsData[i]["HSJJ"] ?? "0") * Convert.ToDecimal(goodsData[i]["DHS"] ?? "0")); mtTypeMx.ColRow.Add("ISGZ", "N"); mtTypeMx.ColRow.Add("HISNAME", goodsData[i]["GDNAME"]); cmdList.Add(mtTypeMx.Insert()); } if (DbHelperOra.ExecuteSqlTran(cmdList)) { Alert.Show("采购单生成成功!!", "消息提示", MessageBoxIcon.Information); billOpen(docBILLNO.Text); btnSave.Enabled = true; btnSumbit.Enabled = true; btnPrint.Enabled = false; btnExport.Enabled = false; btnDelRow.Enabled = false; } else { Alert.Show("采购单生成失败!", "消息提示", MessageBoxIcon.Information); return; } }
protected void tbxINSERT_TextChanged(object sender, EventArgs e) { //测试使用18位条码 int len = Doc.LENCODE(); if (tbxINSERT.Text.Length < len) { return; } List <Dictionary <string, object> > newDict1 = GridGoods.GetNewAddedList(); if (newDict1.Count > 0) { bool result = false; var list = newDict1.Where(x => x["STR2"].ToString() == tbxINSERT.Text.Trim()); result = list.ToList().Count > 0; if (result) { Alert.Show("您输入的条码『" + tbxINSERT.Text.Trim() + "』已存在,请检查!!!", "消息提示", MessageBoxIcon.Warning); tbxINSERT.Text = ""; tbxINSERT.Focus(); return; } } string billno = (DbHelperOra.GetSingle("SELECT SEQNO FROM DAT_CK_COM WHERE STR2 = '" + tbxINSERT.Text.Trim() + "' AND SEQNO LIKE 'DST%'") ?? "").ToString(); if (!PubFunc.StrIsEmpty(billno)) { Alert.Show("扫描定数条码已存在单据【" + billno + "】中,请检查!", "提示信息", MessageBoxIcon.Warning); tbxINSERT.Text = ""; tbxINSERT.Focus(); return; } //检查条码状态 if (!DbHelperOra.Exists("select 1 from DAT_GOODSDS_LOG where BARCODE = '" + tbxINSERT.Text.Trim() + "' and FLAG = 'N'")) { Alert.Show("扫描定数条码不存在或已被回收使用!", "提示信息", MessageBoxIcon.Warning); tbxINSERT.Text = ""; tbxINSERT.Focus(); return; } if (docDEPTOUT.SelectedValue == "" || docDEPTID.SelectedValue == "") { //docDEPTID.SelectedValue = tbxINSERT.Text.Substring(9, 4); //docDEPTOUT.SelectedValue = tbxINSERT.Text.Substring(7, 2); docDEPTID.SelectedValue = Doc.ONECODE(tbxINSERT.Text.Trim(), "DEPTIN"); docDEPTOUT.SelectedValue = Doc.ONECODE(tbxINSERT.Text.Trim(), "DEPTOUT"); } else { if (docDEPTID.SelectedValue != Doc.ONECODE(tbxINSERT.Text.Trim(), "DEPTIN")) { string DEPTIN = Doc.ONECODE(tbxINSERT.Text.Trim(), "DEPTIN"); Alert.Show("扫描定数条码退货科室应为[" + DEPTIN + "],非[" + docDEPTID.SelectedText + "]科室条码,请检查!", "操作提示", MessageBoxIcon.Warning); tbxINSERT.Text = ""; tbxINSERT.Focus(); return; } if (docDEPTOUT.SelectedValue != Doc.ONECODE(tbxINSERT.Text.Trim(), "DEPTOUT")) { string DEPTOUT = Doc.ONECODE(tbxINSERT.Text.Trim(), "DEPTOUT"); Alert.Show("扫描定数条码退货库房应为[" + DEPTOUT + "],非[" + docDEPTOUT.SelectedText + "]库房出货,请检查!", "操作提示", MessageBoxIcon.Warning); tbxINSERT.Text = ""; tbxINSERT.Focus(); return; } } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().ToList(); for (int i = 0; i < newDict.Count; i++) { string barcode_old = newDict[i]["STR2"].ToString(); if (barcode_old == tbxINSERT.Text.Trim()) { Alert.Show("扫描定数条码已存在!", "提示信息", MessageBoxIcon.Warning); tbxINSERT.Text = ""; tbxINSERT.Focus(); return; } } //测试截取前6位 //string code = tbxINSERT.Text.Trim().Substring(13, 12); string code = Doc.ONECODE(tbxINSERT.Text.Trim(), "GDSEQ"); string dept = docDEPTID.SelectedValue; //从LOG表中取得记录数量 DataTable dhnum = DbHelperOra.QueryForTable("select A.*,F_GETUNITNAME(UNIT) UNITNAME,F_GETPRODUCERNAME(PRODUCER) PRODUCERNAME,F_GETGOODSHW(a.GDSEQ,'" + dept + "') hwname from DAT_CK_COM A where A.STR2 = '" + tbxINSERT.Text.Trim() + "'"); if (!string.IsNullOrWhiteSpace(code) && code.Trim().Length >= 2) { if (dhnum != null && dhnum.Rows.Count > 0) { foreach (DataRow dr in dhnum.Rows) { dr["ROWNO"] = GridGoods.GetMergedData().Count() + 1; dr["STR2"] = tbxINSERT.Text.Trim(); dr["HWID"] = dr["hwname"]; LoadGridRow(dr, false); } } else { Alert.Show(string.Format("{0}尚未配置商品【{1}】!!!", docDEPTID.SelectedText, code), MessageBoxIcon.Warning); } tbxINSERT.Text = ""; } if (docDEPTID.Enabled) { docDEPTID.Enabled = false; } if (docDEPTOUT.Enabled) { docDEPTOUT.Enabled = false; } if (!tbxINSERT.Enabled) { tbxINSERT.Enabled = true; } tbxINSERT.Focus(); }
protected override void billOpen(string strBillno) { DataTable dtDoc = DbHelperOra.Query(string.Format(strDocSql, strBillno)).Tables[0]; if (dtDoc != null && dtDoc.Rows.Count > 0) { PubFunc.FormDataSet(FormDoc, dtDoc.Rows[0]); } else { Alert.Show("单据信息获取失败!!!", "警告提示", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(GridGoods.GetRejectChangesReference()); DataTable dtBill = DbHelperOra.Query(string.Format(strComSql, strBillno)).Tables[0]; decimal bzslTotal = 0, feeTotal = 0; if (dtBill != null && dtBill.Rows.Count > 0) { foreach (DataRow row in dtBill.Rows) { bzslTotal += Convert.ToDecimal(row["DHS"] ?? "0"); feeTotal += Convert.ToDecimal(row["DHS"] ?? "0") * Convert.ToDecimal(row["HSJJ"] ?? "0"); } Doc.GridRowAdd(GridGoods, dtBill); } //增加合计 JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("DHS", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); GridGoods.SummaryData = summary; PubFunc.FormLock(FormDoc, true, ""); TabStrip1.ActiveTabIndex = 1; //按钮状态转换 if (docFLAG.SelectedValue == "N") { //提交 btnNew.Enabled = true; btnGenerate.Enabled = false; btnSave.Enabled = false; btnSumbit.Enabled = false; btnAudit.Enabled = true; btnCancel.Enabled = true; btnPrint.Enabled = true; btnExport.Enabled = false; } else if (docFLAG.SelectedValue == "R") { //已驳回 可以修改保存 btnSave.Enabled = true; btnSumbit.Enabled = true; btnDelRow.Enabled = true; btnGenerate.Enabled = false; // dpkRQSJ1.Enabled = true; // dpkRQSJ2.Enabled = true; // ddlDEPTID.Enabled = true; // nbxYSSL.Enabled = true; docMEMO.Enabled = true; } else if (docFLAG.SelectedValue == "M") { btnSave.Enabled = true; btnSumbit.Enabled = true; btnDelRow.Enabled = false; btnGenerate.Enabled = false; btnExport.Enabled = false; btnPrint.Enabled = false; btnCancel.Enabled = false; btnAudit.Enabled = false; docMEMO.Enabled = true; } else { //审核 btnNew.Enabled = true; btnGenerate.Enabled = false; btnSave.Enabled = false; btnSumbit.Enabled = false; btnAudit.Enabled = false; btnPrint.Enabled = true; btnExport.Enabled = true; } }
private void DataSearch() { string strSearch = @"select cfg.deptid, G.GDSEQ, G.GDNAME, G.GDSPEC, a.name UNITNAME, G.CATID0, b.name UNITNAME_ORDER, gt.name as typename, '[' || nvl(dept.code, '商品未配置') || ']' || dept.name as deptname, '[' || cat.code || ']' || cat.name as catname, decode(cfg.ISAUTO, 'N', 0, 'Y', 1, 0) as ISAUTO, cfg.DHXS, cfg.DAYSL, cfg.ZDKC, cfg.ZGKC,F_GETSTOCK(cfg.DEPTID,G.GDSEQ) KCSL from DOC_GOODS G, doc_goodsunit a, doc_goodsunit b, doc_goodscfg cfg, doc_goodstype gt, sys_dept dept, sys_category cat where g.ISDELETE = 'N' and G.UNIT = a.code(+) and g.catid0 = gt.code(+) and cfg.deptid = dept.code(+) and g.catid = cat.code(+) and decode(G.UNIT_ORDER, 'D', NVL(G.UNIT_DABZ, G.UNIT), 'Z', NVL(G.UNIT_ZHONGBZ, G.UNIT), G.UNIT) = b.code(+) and g.gdseq = cfg.gdseq(+) and cfg.deptid(+) like '{0}' and g.catid0 like '{1}' and g.catid like '{2}' and (g.gdseq like '{3}' or g.gdname like '{3}')"; StringBuilder strSql = new StringBuilder(""); String deptId = "%"; String catId0 = "%"; String catId = "%"; String gdseq = "%"; if (!string.IsNullOrWhiteSpace(ddlDEPTID.SelectedValue)) { deptId = ddlDEPTID.SelectedValue; } if (!string.IsNullOrWhiteSpace(ddlGoodsType.SelectedValue)) { catId0 = ddlGoodsType.SelectedValue; } if (!string.IsNullOrWhiteSpace(ddlCATID.SelectedValue)) { catId = ddlCATID.SelectedValue; } if (!string.IsNullOrWhiteSpace(tbxGoodsName.Text)) { gdseq = "%" + tbxGoodsName.Text + "%"; } if (!string.IsNullOrWhiteSpace(strSearch)) { strSql.Append(string.Format(strSearch, deptId, catId0, catId, gdseq)); } strSql.Append(" order by cfg.deptid(+),g.GDSEQ,g.GDNAME"); int total = 0; DataTable table = GetDataTable(GridGoods.PageIndex, GridGoods.PageSize, strSql, ref total); DataView view1 = table.DefaultView; view1.Sort = String.Format("{0} {1}", GridGoods.SortField, GridGoods.SortDirection); GridGoods.DataSource = view1; GridGoods.DataBind(); GridGoods.RecordCount = total; GridGoods.DataBind(); }
private bool DataSave() { #region 数据有效性验证 if ((",M,R").IndexOf(docFLAG.SelectedValue) < 0) { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return(false); } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().ToList(); if (newDict.Count == 0) { Alert.Show("请输入科室信息", "消息提示", MessageBoxIcon.Warning); return(false); } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["DEPTID"].ToString()) && !string.IsNullOrWhiteSpace(newDict[i]["DEPTIDNAME"].ToString())) { goodsData.Add(newDict[i]); } } if (goodsData.Count < 1)//所有Gird行都为空行时 { Alert.Show("科室信息不能为空", "消息提示", MessageBoxIcon.Warning); return(false); } #endregion if (PubFunc.StrIsEmpty(docSEQNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } else { string flg = (string)DbHelperOra.GetSingle(string.Format("SELECT NVL(FLAG,'N') FROM DAT_DZ_DOC WHERE SEQNO='{0}'", docSEQNO.Text)); if (!PubFunc.StrIsEmpty(flg) && (",N,R,M").IndexOf(flg) < 0) { Alert.Show("您输入的单据号存在重复信息,请重新输入或置空!", "消息提示", MessageBoxIcon.Warning); return(false); } else { docBILLNO.Text = docSEQNO.Text; docSEQNO.Enabled = false; } } MyTable mtType = new MyTable("DAT_DZ_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow["FLAG"] = "M";//所有单据在保存时单据状态一律为新增N mtType.ColRow.Add("BILLTYPE", BillType); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "1"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_DZ_COM"); //先删除单据信息在插入 cmdList.Add(new CommandInfo("DELETE DAT_DZ_DOC WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据台头 cmdList.Add(new CommandInfo("DELETE DAT_DZ_COM WHERE SEQNO='" + docBILLNO.Text + "'", null)); //删除单据明细 cmdList.AddRange(mtType.InsertCommand()); for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; mtTypeMx.ColRow.Add("XSSL", 0); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("FLAGNAME"); cmdList.Add(mtTypeMx.Insert()); } OperLog("商品替代", "修改单据【" + docBILLNO.Text + "】"); return(DbHelperOra.ExecuteSqlTran(cmdList)); }
private void save(string flag = "N") { #region 数据有效性验证 if ((",M,N").IndexOf(docFLAG.SelectedValue) < 0) { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return; } if (PubFunc.FormDataCheck(FormDoc).Length > 0) { return; } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行、批号填写是否符合要求 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString()) && !string.IsNullOrWhiteSpace(newDict[i]["GDNAME"].ToString())) { if ((newDict[i]["BZSL"] ?? "").ToString() == "" || (newDict[i]["BZSL"] ?? "").ToString() == "0") { Alert.Show("第【" + i + 1 + "】行,商品[" + newDict[i]["GDSEQ"] + "]借货数未填写!", "消息提示", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(newDict[i]["BZHL"].ToString()) || string.IsNullOrWhiteSpace(newDict[i]["UNIT"].ToString())) { Alert.Show("第【" + i + 1 + "】行,商品[" + newDict[i]["GDSEQ"] + "]包装单位信息错误,请联系管理员维护!", "消息提示", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(newDict[i]["UNIT"].ToString())) { Alert.Show("第【" + i + 1 + "】行,商品【" + newDict[i]["GDNAME"].ToString() + "】出库包装未维护!!!", "消息提示", MessageBoxIcon.Warning); return; } //有效期必须大于等于生成日期 if (newDict[i]["ISLOT"].ToString() == "1" || newDict[i]["ISLOT"].ToString() == "2") { if (string.IsNullOrWhiteSpace((string)newDict[i]["PH"])) { GridGoods.SelectedCell = new string[] { i.ToString(), "8" }; Alert.Show("第[" + (i + 1) + "]行商品【" + newDict[i]["GDNAME"].ToString() + "】批号不能为空!!!", "消息提示", MessageBoxIcon.Warning); return; } //if ((newDict[i]["RQ_SC"] ?? "").ToString() == "" || (newDict[i]["YXQZ"] ?? "").ToString() == "") //{ // GridGoods.SelectedCell = new string[] { i.ToString(), "8" }; // Alert.Show("第[" + (i + 1) + "]行商品【" + newDict[i]["GDNAME"].ToString() + "】生产日期/有效期至/注册证号不能为空!!!", "消息提示", MessageBoxIcon.Warning); // return; //} } try { if (!newDict[i].ContainsKey("RQ_SC")) { Alert.Show("第[" + (i + 1) + "]行商品【" + newDict[i]["GDNAME"].ToString() + "】生产日期不能为空!!!", "消息提示", MessageBoxIcon.Warning); return; } if (!newDict[i].ContainsKey("YXQZ")) { Alert.Show("第[" + (i + 1) + "]行商品【" + newDict[i]["GDNAME"].ToString() + "】有效期至不能为空!!!", "消息提示", MessageBoxIcon.Warning); return; } if (!string.IsNullOrWhiteSpace((newDict[i]["YXQZ"] ?? "").ToString()) && !string.IsNullOrWhiteSpace((newDict[i]["RQ_SC"] ?? "").ToString())) { if (DateTime.Compare(Convert.ToDateTime(newDict[i]["RQ_SC"]), Convert.ToDateTime(newDict[i]["YXQZ"])) > 0) { Alert.Show("第【" + i + 1 + "】行,商品【" + newDict[i]["GDNAME"].ToString() + "】有效期不能小于生产日期!!!", "消息提示", MessageBoxIcon.Warning); return; } } } catch { Alert.Show("生产日期/有效期至不能为空!!!", "消息提示", MessageBoxIcon.Warning); return; } goodsData.Add(newDict[i]); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return; } #endregion if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } else { string flg = (string)DbHelperOra.GetSingle(string.Format("SELECT NVL(FLAG,'N') FROM DAT_JH_DOC WHERE SEQNO='{0}'", docBILLNO.Text)); if (!string.IsNullOrWhiteSpace(flg) && (",M,N").IndexOf(flg) < 0) { Alert.Show("您输入的单据号存在重复信息,请重新输入或置空!", "消息提示", MessageBoxIcon.Warning); return; } else { docSEQNO.Text = docBILLNO.Text; docBILLNO.Enabled = false; } } MyTable mtType = new MyTable("DAT_JH_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow.Add("BILLTYPE", BillType); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "1"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_JH_COM"); decimal subNum = 0; //总金额 //先删除单据信息在插入 cmdList.Add(new CommandInfo("DELETE DAT_JH_DOC where seqno='" + docBILLNO.Text + "'", null)); //删除单据台头 cmdList.Add(new CommandInfo("DELETE DAT_JH_COM where seqno='" + docBILLNO.Text + "'", null)); //删除单据明细 for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); //判断含税进价,为0时不能保存 string isJiFei = string.Format("select 1 from DOC_GOODS t where iscf = 'N' and gdseq = '{0}'", mtTypeMx.ColRow["GDSEQ"].ToString()); if (DbHelperOra.Exists(isJiFei)) { if (Convert.ToDecimal(mtTypeMx.ColRow["HSJJ"] ?? "0") <= 0) { Alert.Show("商品【" + mtTypeMx.ColRow["GDNAME"].ToString() + "】含税进价为0或空,无法进行【商品借货管理】操作。"); return; } } mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); mtTypeMx.ColRow["DHSL"] = decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()); mtTypeMx.ColRow["HSJE"] = decimal.Parse(mtTypeMx.ColRow["HSJJ"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()); subNum = subNum + decimal.Parse(mtTypeMx.ColRow["HSJE"].ToString()); mtTypeMx.ColRow.Add("XSSL", mtTypeMx.ColRow["DHSL"].ToString()); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); cmdList.Add(mtTypeMx.Insert()); } mtType.ColRow.Add("SUBSUM", subNum); cmdList.AddRange(mtType.InsertCommand()); if (DbHelperOra.ExecuteSqlTran(cmdList)) { if (flag == "N") { Alert.Show("商品借货信息保存成功!"); } billLockDoc(true); billOpen(docBILLNO.Text); OperLog("商品接货", "修改单据【" + docBILLNO.Text + "】"); } SaveSuccess = true; }
protected void Window2_Close(object sender, WindowCloseEventArgs e) { DataTable dt = GetGoods(hfdValue.Text); dt.Columns.Remove(dt.Columns["BZHL"]); dt.Columns.Remove(dt.Columns["UNIT"]); string msg = ""; if (dt != null && dt.Rows.Count > 0) { dt.Columns["UNITNAME"].ColumnName = "UNITSMALLNAME"; dt.Columns["UNIT_SELL_NAME"].ColumnName = "UNITNAME"; dt.Columns["UNIT_SELL"].ColumnName = "UNIT"; dt.Columns["BZHL_SELL"].ColumnName = "BZHL"; dt.Columns["CKKCSL"].ColumnName = "NUM1"; dt.Columns.Add("PH", Type.GetType("System.String")); dt.Columns.Add("RQ_SC", Type.GetType("System.String")); dt.Columns.Add("YXQZ", Type.GetType("System.String")); dt.Columns.Add("MEMO", Type.GetType("System.String")); dt.Columns.Add("DHSL", Type.GetType("System.Int32")); dt.Columns.Add("HSJE", Type.GetType("System.Double")); dt.Columns.Add("BZSL", Type.GetType("System.String")); string someDjbh = string.Empty; bool getDjbh = false; foreach (DataRow row in dt.Rows) { row["MEMO"] = row["ISZS"]; row["DHSL"] = "0"; row["HSJE"] = "0"; row["BZSL"] = "0"; //row["HSJJ"].ToString(); if (string.IsNullOrWhiteSpace(row["HSJJ"].ToString()) || row["HSJJ"].ToString() == "0") { msg += "【" + row["GDSEQ"].ToString() + " | " + row["GDNAME"].ToString() + "】,"; Alert.Show("商品" + msg + "【含税进价】为空,不能进行【科室申领录入】操作。", "消息提示", MessageBoxIcon.Warning); continue; } //处理金额格式 decimal jingdu = 0; decimal bzhl = 0; if (decimal.TryParse(row["HSJJ"].ToString(), out jingdu) && decimal.TryParse(row["BZHL"].ToString(), out bzhl)) { row["HSJJ"] = Math.Round(jingdu * bzhl, 4).ToString("F4"); } if (decimal.TryParse(row["YBJ"].ToString(), out jingdu)) { row["YBJ"] = jingdu.ToString("F4"); } if (decimal.TryParse(row["HSJE"].ToString(), out jingdu)) { row["HSJE"] = Math.Round(jingdu, 2).ToString("F2"); } docMEMO.Enabled = true; List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); int sameRowCount = newDict.Where(a => a["GDSEQ"].ToString() == row["GDSEQ"].ToString()).Count(); if (sameRowCount > 0) { someDjbh += "【" + row["GDNAME"].ToString() + "】"; getDjbh = true; } else { PubFunc.GridRowAdd(GridGoods, row, false); docDEPTID.Enabled = false; } } if (getDjbh) { Alert.Show("商品名称:" + someDjbh + "申请明细中已存在", "消息提示", MessageBoxIcon.Warning); } } else { Alert.Show("请先选择要加载的商品信息!", "消息提示", MessageBoxIcon.Warning); } }
protected void GridGoods_AfterEdit(object sender, FineUIPro.GridAfterEditEventArgs e) { string[] strCell = GridGoods.SelectedCell; List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { return; } if (e.ColumnID == "BZSL") { JObject defaultObj = Doc.GetJObject(GridGoods, e.RowID); decimal hl = 0, rs = 0, jg = 0; decimal.TryParse((defaultObj["BZHL"] ?? "0").ToString(), out hl); decimal.TryParse((defaultObj["BZSL"] ?? "0").ToString(), out rs); decimal.TryParse((defaultObj["HSJJ"] ?? "0").ToString(), out jg); defaultObj["DHSL"] = rs * hl; defaultObj["HSJE"] = Math.Round(rs * jg, 2).ToString("F2"); PageContext.RegisterStartupScript(GridGoods.GetUpdateCellValueReference(e.RowID, defaultObj)); //计算合计数量 decimal bzslTotal = 0, feeTotal = 0; foreach (Dictionary <string, object> dic in newDict) { decimal.TryParse(dic["BZSL"].ToString(), out jg); bzslTotal += jg; feeTotal += Convert.ToDecimal(dic["HSJJ"] ?? "0") * Convert.ToDecimal(dic["BZSL"] ?? "0") * Convert.ToDecimal(dic["BZHL"]); } JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("BZSL", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); GridGoods.SummaryData = summary; } else if (e.ColumnID == "PH") { JObject defaultObj = Doc.GetJObject(GridGoods, e.RowID); String Sql = string.Format("SELECT SUM(A.KCSL),A.PH,A.YXQZ,A.RQ_SC,B.PIZNO PZWH FROM DAT_GOODSSTOCK A,DOC_GOODS B WHERE A.DEPTID = '{0}' AND A.GDSEQ ='{1}' AND A.GDSEQ=B.GDSEQ AND KCSL > LOCKSL GROUP BY PH,YXQZ,B.PIZNO,A.RQ_SC ", docDEPTOUT.SelectedValue, defaultObj["GDSEQ"].ToString()); if (defaultObj["PH"].ToString() != "\\") { Sql = string.Format("SELECT SUM(A.KCSL),A.PH,A.YXQZ,A.RQ_SC FROM DAT_GOODSSTOCK A WHERE A.DEPTID = '{0}' AND A.GDSEQ ='{1}'AND PH = '{2}' AND KCSL > LOCKSL GROUP BY PH,YXQZ,A.RQ_SC", docDEPTOUT.SelectedValue, defaultObj["GDSEQ"].ToString(), defaultObj["PH"]); } DataTable dtPH = DbHelperOra.Query(Sql).Tables[0]; if (dtPH != null && dtPH.Rows.Count > 0) { if (dtPH.Rows.Count == 1) { defaultObj["PH"] = dtPH.Rows[0]["PH"].ToString(); defaultObj["YXQZ"] = dtPH.Rows[0]["YXQZ"].ToString(); defaultObj["RQ_SC"] = dtPH.Rows[0]["RQ_SC"].ToString(); PageContext.RegisterStartupScript(GridGoods.GetUpdateCellValueReference(strCell[0], defaultObj)); } else { GridLot.DataSource = dtPH; GridLot.DataBind(); WindowLot.Hidden = false; } } //else //{ // Alert.Show("科室无可调出库存!", "提示信息", MessageBoxIcon.Warning); // return; //} } }
protected override void billAddRow() { if (docFLAG.SelectedValue != "N") { Alert.Show("非『新增』单据不能增行!", "消息提示", MessageBoxIcon.Warning); return; } if (PubFunc.FormDataCheck(FormDoc).Length > 1) { return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { if (Doc.DbGetSysPara("ISAUTOAPPLY") == "Y") { string sql = @"SELECT A.*, A.ZGKC - A.KCSL DHSL, (A.ZGKC - A.KCSL) / A.BZHL BZSL, ((A.ZGKC - A.KCSL) / A.BZHL) * A.HSJJ HSJE,A.KCSL NUM1 FROM (SELECT G.GDSEQ, G.BARCODE, G.GDNAME, G.GDSPEC, G.UNIT, F_GETUNITNAME(G.UNIT) UNITNAME, G.BZHL, G.JXTAX, G.HSJJ, G.ZPBH, G.PRODUCER, F_GETPRODUCERNAME(G.PRODUCER) PRODUCERNAME, PZ.HJCODE1, '自动生成' MEMO, G.ISLOT, G.ISGZ, PZ.ZDKC, PZ.ZGKC, (SELECT NVL(SUM(KCSL), 0) FROM DAT_GOODSSTOCK WHERE GDSEQ = G.GDSEQ) KCSL FROM DOC_GOODSCFG PZ, DOC_GOODS G WHERE PZ.GDSEQ = G.GDSEQ AND PZ.ZDKC > 0 AND PZ.ZGKC > 0 AND PZ.DEPTID = '{0}') A WHERE KCSL < ZDKC"; DataTable dt = DbHelperOra.Query(string.Format(sql, docDEPTID.SelectedValue)).Tables[0]; decimal bzslTotal = 0, feeTotal = 0; if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { bzslTotal += Convert.ToDecimal(row["BZSL"]); feeTotal += Convert.ToDecimal(row["BZSL"]) * Convert.ToDecimal(row["HSJJ"]) * Convert.ToDecimal(row["BZHL"]); LoadGridRow(row, false, "OLD"); } } else { PubFunc.GridRowAdd(GridGoods, "INIT"); } //增加合计 JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("BZSL", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); GridGoods.SummaryData = summary; } else { PubFunc.GridRowAdd(GridGoods, "INIT"); } } else { PubFunc.GridRowAdd(GridGoods, "INIT"); } PubFunc.FormLock(FormDoc, true, ""); }
private void DataGridBack(DataTable dt) { string msg = ""; if (dt != null && dt.Rows.Count > 0) { string someDjbh = string.Empty; bool getDjbh = false; dt.Columns.Add("BZSL", Type.GetType("System.Int32")); dt.Columns.Add("PH", Type.GetType("System.String")); dt.Columns.Add("YXQZ", Type.GetType("System.String")); dt.Columns.Add("RQ_SC", Type.GetType("System.String")); foreach (DataRow row in dt.Rows) { if (row["ISDS"].ToString() == "定数") { string sSQL = string.Format("SELECT * FROM DAT_CK_COM WHERE STR2='{0}'", row["DSCODE"].ToString()); DataTable Temp = DbHelperOra.Query(sSQL).Tables[0]; if (Temp.Rows.Count > 0) { row["PH"] = (Temp.Rows[0]["PH"] ?? ""); row["YXQZ"] = (Temp.Rows[0]["YXQZ"] ?? ""); row["RQ_SC"] = (Temp.Rows[0]["RQ_SC"] ?? ""); row["HWID"] = (Temp.Rows[0]["HWID"] ?? ""); } row["BZSL"] = row["KSSPSL"]; row["DSBZSL"] = row["KSSPSL"]; row["HSJE"] = Convert.ToDecimal(row["HSJJ"]) * Convert.ToDecimal(row["BZSL"]) * Convert.ToDecimal(row["BZHL"]); decimal jingdu = 0; decimal bzhl = 0; if (decimal.TryParse(row["HSJJ"].ToString(), out jingdu) && decimal.TryParse(row["BZHL"].ToString(), out bzhl)) { row["HSJJ"] = Math.Round(jingdu * bzhl, 4).ToString("F4"); } if (decimal.TryParse(row["HSJE"].ToString(), out jingdu)) { row["HSJE"] = Math.Round(jingdu, 2).ToString("F2"); } docMEMO.Enabled = true; List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); int sameRowCount = newDict.Where(a => a["DSCODE"].ToString() == row["DSCODE"].ToString()).Count(); if (sameRowCount > 0) { someDjbh += "【" + row["GDNAME"].ToString() + "】"; getDjbh = true; } else { PubFunc.GridRowAdd(GridGoods, row, false); } } else { string sSQL = string.Format("SELECT * FROM (SELECT A.HWID,SUM((A.KCSL - A.LOCKSL)) KCSL,A.PH,A.YXQZ,A.RQ_SC,B.ISGZ,B.GDNAME FROM DAT_GOODSSTOCK A ,DOC_GOODS B WHERE A.DEPTID ='{0}' AND A.GDSEQ = '{1}' AND A.GDSEQ = B.GDSEQ AND A.KCSL >0 GROUP BY HWID,PH,YXQZ,RQ_SC,ISGZ,GDNAME ORDER BY PH ASC) WHERE ROWNUM = 1 ", docDEPTOUT.SelectedValue, row["GDSEQ"].ToString()); DataTable Temp = DbHelperOra.Query(sSQL).Tables[0]; row["BZSL"] = "0"; row["DSBZSL"] = "0"; if (Temp.Rows.Count > 0) { row["PH"] = (Temp.Rows[0]["PH"] ?? ""); row["YXQZ"] = (Temp.Rows[0]["YXQZ"] ?? ""); row["RQ_SC"] = (Temp.Rows[0]["RQ_SC"] ?? ""); row["HWID"] = (Temp.Rows[0]["HWID"] ?? ""); } decimal jingdu = 0; decimal bzhl = 0; if (decimal.TryParse(row["HSJJ"].ToString(), out jingdu) && decimal.TryParse(row["BZHL"].ToString(), out bzhl)) { row["HSJJ"] = Math.Round(jingdu * bzhl, 4).ToString("F4"); } if (decimal.TryParse(row["HSJE"].ToString(), out jingdu)) { row["HSJE"] = Math.Round(jingdu, 2).ToString("F2"); } docMEMO.Enabled = true; List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().OrderBy(x => x["GDSEQ"]).ToList(); int sameRowCount = newDict.Where(a => a["GDSEQ"].ToString() == row["GDSEQ"].ToString() && a["DSCODE"].ToString().Length == 0).Count(); if (sameRowCount > 0) { someDjbh += "【" + row["GDNAME"].ToString() + "】"; getDjbh = true; } else { PubFunc.GridRowAdd(GridGoods, row, false); } } } if (getDjbh) { Alert.Show("商品名称:" + someDjbh + "申请明细中已存在", "消息提示", MessageBoxIcon.Warning); } } else { Alert.Show("请先选择要加载的商品信息!", "消息提示", MessageBoxIcon.Warning); } WindowGoods.Hidden = true; }
private bool DataSave() { #region 数据有效性验证 if ((",N,R").IndexOf(docFLAG.SelectedValue) < 0) { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return(false); } string strBillno = docSEQNO.Text; if (!Doc.getFlag(strBillno, "N", BillType) && !Doc.getFlag(strBillno, "R", BillType)) { Alert.Show("此单据已被其他人处理,请刷新页面更新单据状态!", "警告提示", MessageBoxIcon.Warning); return(false); } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return(false); } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); //判断是否有空行 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString()) && !string.IsNullOrWhiteSpace(newDict[i]["GDNAME"].ToString())) { if ((newDict[i]["BZSL"] ?? "").ToString() == "" || (newDict[i]["BZSL"] ?? "").ToString() == "0") { //Alert.Show("请填写商品[" + newDict[i]["GDSEQ"] + "]的申请数量!", "消息提示", MessageBoxIcon.Warning); //return false; continue; } //if (decimal.Parse(newDict[i]["BZSL"].ToString()) > decimal.Parse(newDict[i]["NUM1"].ToString())) //{ // Alert.Show("商品【" + (newDict[i]["GDSEQ"].ToString()) + "】申请数不能大于库存数量", "异常信息", MessageBoxIcon.Warning); // return false; //} if (string.IsNullOrWhiteSpace(newDict[i]["BZHL"].ToString()) || string.IsNullOrWhiteSpace(newDict[i]["UNIT"].ToString())) { Alert.Show("商品[" + newDict[i]["GDSEQ"] + "]包装单位信息错误,请联系管理员维护!", "消息提示", MessageBoxIcon.Warning); return(false); } goodsData.Add(newDict[i]); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return(false); } #endregion if (PubFunc.StrIsEmpty(docSEQNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } else { string flg = (string)DbHelperOra.GetSingle(string.Format("SELECT NVL(FLAG,'N') FROM DAT_DB_DOC WHERE SEQNO='{0}'", docSEQNO.Text)); if (!PubFunc.StrIsEmpty(flg) && (",N,R").IndexOf(flg) < 0) { Alert.Show("您输入的单据号存在重复信息,请重新输入或置空!", "消息提示", MessageBoxIcon.Warning); return(false); } else { docBILLNO.Text = docSEQNO.Text; docSEQNO.Enabled = false; } } if (string.IsNullOrWhiteSpace(docDEPTOUT.SelectedValue)) { Alert.Show("请选择出库库房!", "提示", MessageBoxIcon.Information); return(false); } MyTable mtType = new MyTable("DAT_DB_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow["FLAG"] = "N";//所有单据在保存时单据状态一律为新增N mtType.ColRow.Add("BILLTYPE", BillType); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "1"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_DB_COM"); //先删除单据信息在插入 cmdList.Add(new CommandInfo("delete DAT_DB_DOC where seqno='" + docBILLNO.Text + "'", null)); //删除单据台头 cmdList.Add(new CommandInfo("delete DAT_DB_COM where seqno='" + docBILLNO.Text + "'", null)); //删除单据明细 decimal subNum = 0; //总金额 for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); //判断含税进价,为0时不能保存 string isJiFei = string.Format("select 1 from DOC_GOODS t where iscf = 'N' and gdseq = '{0}'", mtTypeMx.ColRow["GDSEQ"].ToString()); if (DbHelperOra.Exists(isJiFei)) { if (PubFunc.StrIsEmpty(mtTypeMx.ColRow["HSJJ"].ToString()) || mtTypeMx.ColRow["HSJJ"].ToString() == "0") { Alert.Show("商品【含税进价】为0或空,无法进行【补货管理】操作。"); return(false); } } mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow["ROWNO"] = i + 1; //mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); if (PubFunc.StrIsEmpty(mtTypeMx.ColRow["DHSL"].ToString()) || mtTypeMx.ColRow["DHSL"].ToString() == "0") { mtTypeMx.ColRow["DHSL"] = decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()); } mtTypeMx.ColRow["HSJE"] = decimal.Parse(mtTypeMx.ColRow["HSJJ"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()); mtTypeMx.ColRow.Add("XSSL", 0); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); mtTypeMx.ColRow["PH"] = ""; subNum = subNum + decimal.Parse(mtTypeMx.ColRow["HSJE"].ToString()); cmdList.Add(mtTypeMx.Insert()); } mtType.ColRow.Add("SUBSUM", subNum); cmdList.AddRange(mtType.InsertCommand()); string flag = DbHelperOra.GetSingle("SELECT VALUE FROM SYS_PARA WHERE CODE='ISAUTOAUDIT'").ToString(); if (flag == "Y") { //当系统设置为自动审批时,商品申领信息在保存之后即进行审核操作 OracleParameter[] parameters = { new OracleParameter("VTASKID", OracleDbType.Varchar2, 20), new OracleParameter("VPARA", OracleDbType.Varchar2, 800) }; parameters[0].Value = BillType; parameters[1].Value = "'" + docBILLNO.Text + "','" + BillType + "','" + UserAction.UserID + "','DECLARE'"; cmdList.Add(new CommandInfo("P_EXECTASK", parameters, CommandType.StoredProcedure)); } return(DbHelperOra.ExecuteSqlTran(cmdList)); }
private void save(string flag = "N") { #region 数据有效性验证 if ((",M,R").IndexOf(docFLAG.SelectedValue) < 0) { Alert.Show("非新单不能保存!", "消息提示", MessageBoxIcon.Warning); return; } List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList(); if (newDict.Count == 0) { Alert.Show("请输入商品信息", "消息提示", MessageBoxIcon.Warning); return; } if (PubFunc.FormDataCheck(FormDoc).Length > 0) { return; } List <Dictionary <string, object> > goodsData = new List <Dictionary <string, object> >(); List <string> newstr = new List <string>(); //判断是否有空行、批号填写是否符合要求 for (int i = 0; i < newDict.Count; i++) { if (!string.IsNullOrWhiteSpace(newDict[i]["GDSEQ"].ToString()) && !string.IsNullOrWhiteSpace(newDict[i]["GDNAME"].ToString())) { if ((newDict[i]["BZSL"] ?? "").ToString() == "" || (newDict[i]["BZSL"] ?? "").ToString() == "0") { Alert.Show("请填写商品[" + newDict[i]["GDSEQ"] + "]出库数!", "消息提示", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(newDict[i]["BZHL"].ToString()) || string.IsNullOrWhiteSpace(newDict[i]["UNIT"].ToString())) { Alert.Show("商品[" + newDict[i]["GDSEQ"] + "]包装单位信息错误,请联系管理员维护!", "消息提示", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(newDict[i]["HSJJ"].ToString())) { Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】含税进价不能为空!!!", "消息提示", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(newDict[i]["UNIT"].ToString())) { Alert.Show("商品【" + newDict[i]["GDNAME"].ToString() + "】出库包装未维护!!!", "消息提示", MessageBoxIcon.Warning); return; } goodsData.Add(newDict[i]); newstr.Add(newDict[i]["STR2"].ToString()); } } if (goodsData.Count == 0)//所有Gird行都为空行时 { Alert.Show("商品信息不能为空", "消息提示", MessageBoxIcon.Warning); return; } if (newDict.Count != newstr.Distinct().ToArray().Count()) { List <string> strReturn = new List <string>(); StringBuilder sb = new StringBuilder(); int i = 0; foreach (string values in newstr.ToList()) { foreach (string values2 in newstr.ToList()) { if (values2.Equals(values)) { i++; } if (i > 1) { strReturn.Add(values); i = 0; break; } } } foreach (string res in strReturn.Distinct()) { sb.Append(res).Append(","); } Alert.Show(sb.ToString().Substring(0, sb.ToString().Count() - 1) + "高值码重复录入!", "消息提示", MessageBoxIcon.Warning); return; } #endregion if (PubFunc.StrIsEmpty(docBILLNO.Text)) { docSEQNO.Text = BillSeqGet(); docBILLNO.Text = docSEQNO.Text; docBILLNO.Enabled = false; } else { string flg = (string)DbHelperOra.GetSingle(string.Format("SELECT NVL(FLAG,'N') FROM DAT_CK_DOC WHERE SEQNO='{0}'", docBILLNO.Text)); if (!string.IsNullOrWhiteSpace(flg) && (",M,R").IndexOf(flg) < 0) { Alert.Show("您输入的单据号存在重复信息,请重新输入或置空!", "消息提示", MessageBoxIcon.Warning); return; } else { docSEQNO.Text = docBILLNO.Text; docBILLNO.Enabled = false; } } MyTable mtType = new MyTable("DAT_CK_DOC"); mtType.ColRow = PubFunc.FormDataHT(FormDoc); mtType.ColRow["SEQNO"] = docBILLNO.Text; mtType.ColRow.Add("BILLTYPE", BillType); mtType.ColRow.Add("SUBNUM", goodsData.Count); mtType.ColRow.Add("XSTYPE", "G"); List <CommandInfo> cmdList = new List <CommandInfo>(); MyTable mtTypeMx = new MyTable("DAT_CK_COM"); decimal subNum = 0;//总金额 string onecode = string.Empty; //先删除单据信息在插入 cmdList.Add(new CommandInfo("delete DAT_CK_DOC where seqno='" + docBILLNO.Text + "' and flag = 'M'", null)); //删除单据台头 cmdList.Add(new CommandInfo("delete DAT_CK_COM where seqno='" + docBILLNO.Text + "'", null)); //删除单据明细 for (int i = 0; i < goodsData.Count; i++) { mtTypeMx.ColRow = PubFunc.GridDataGet(goodsData[i]); //判断含税进价,为0时不能保存 if (PubFunc.StrIsEmpty(mtTypeMx.ColRow["HSJJ"].ToString()) || mtTypeMx.ColRow["HSJJ"].ToString() == "0") { Alert.Show("商品【含税进价】为0或空,无法进行【库房出库管理】操作。"); return; } mtTypeMx.ColRow.Add("SEQNO", docBILLNO.Text); mtTypeMx.ColRow.Add("PHID", mtTypeMx.ColRow["PH"]); mtTypeMx.ColRow["DHSL"] = decimal.Parse(mtTypeMx.ColRow["BZHL"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()); mtTypeMx.ColRow["HSJE"] = decimal.Parse(mtTypeMx.ColRow["HSJJ"].ToString()) * decimal.Parse(mtTypeMx.ColRow["BZSL"].ToString()); mtTypeMx.ColRow["ROWNO"] = i + 1; subNum = subNum + decimal.Parse(mtTypeMx.ColRow["HSJE"].ToString()); mtTypeMx.ColRow.Add("XSSL", mtTypeMx.ColRow["DHSL"].ToString()); mtTypeMx.ColRow.Add("BHSJJ", 0); mtTypeMx.ColRow.Add("BHSJE", 0); onecode += mtTypeMx.ColRow["STR2"].ToString() + ","; mtTypeMx.ColRow.Remove("UNITNAME"); mtTypeMx.ColRow.Remove("PRODUCERNAME"); cmdList.Add(mtTypeMx.Insert()); } mtType.ColRow.Add("SUBSUM", subNum); //object objCount = DbHelperOra.GetSingle(@"SELECT LISTAGG(ONECODE,',') WITHIN GROUP( ORDER BY ONECODE) // FROM DAT_CK_EXT WHERE BILLNO <> '" + docBILLNO.Text + @"' // AND ONECODE IN ('" + onecode.Trim(',').Replace(",", "','") + "')"); //if (objCount != null && objCount.ToString().Length > 0) //{ // Alert.Show("高值码【" + objCount.ToString() + "】重复!!!", "异常提醒", MessageBoxIcon.Warning); // return; //} //写入追溯码表 //cmdList.Add(new CommandInfo("DELETE FROM DAT_CK_EXT WHERE BILLNO='" + docBILLNO.Text + "'", null));//删除单据明细 //cmdList.Add(new CommandInfo(String.Format(@"INSERT INTO DAT_CK_EXT(DEPTID,BILLNO,ROWNO,ONECODE,GDSEQ,GDNAME,BARCODE,UNIT,GDSPEC,DEPTCUR,BZHL,FLAG,PH,RQ_SC,YXQZ) // SELECT '{1}','{0}',ROWNUM,A.ONECODE,A.GDSEQ,A.GDNAME,A.BARCODE,A.UNIT,A.GDSPEC,A.DEPTCUR,A.BZHL,A.FLAG,A.PH,A.RQ_SC,A.YXQZ // FROM DAT_RK_EXT A,DAT_CK_COM B // WHERE A.GDSEQ = B.GDSEQ AND B.SEQNO = '{0}' AND (A.ONECODE = B.STR2 OR A.STR1 = B.STR2)", docBILLNO.Text, docDEPTID.SelectedValue), null));//删除单据明细 cmdList.Add(mtType.Insert()); if (DbHelperOra.ExecuteSqlTran(cmdList)) { if (flag == "N") { Alert.Show("商品出库信息保存成功!"); } billLockDoc(true); OperLog("高值扫码出库", "修改单据【" + docBILLNO.Text.Trim() + "】"); billOpen(docBILLNO.Text); hdfRowIndex.Text = ""; } SaveSuccess = true; }
private void DataSearch() { if (PubFunc.StrIsEmpty(dpkDATE1.SelectedDate.ToString()) || PubFunc.StrIsEmpty(dpkDATE2.SelectedDate.ToString())) { Alert.Show("【输入日期】不正确,请检查!", MessageBoxIcon.Warning); return; } if (dpkDATE1.SelectedDate > dpkDATE2.SelectedDate) { Alert.Show("【开始日期】不能大于【结束日期】!", MessageBoxIcon.Warning); return; } string strSql = @"SELECT K.*,f_getdeptname(K.DEPTID) DEPTIDNAME,NVL(F.SHJE,0) SHJE,NVL(F.SHCS,0) SHCS,NVL(F.SHPG,0) SHPG, ROUND(NVL(F.SHJE,0)/DHJE,4) SLMZ,ROUND(NVL(F.SHCS,0)/DHCS,4) CSMZ,ROUND(NVL(F.SHPG,0)/DHPG,4) PGMZ, NVL(G.DSPG,0) DSPG,NVL(G.DSSL,0) DSSL, F_GETDEPTBL('KSPGHB','{0}','{1}',K.DEPTID,'','','','') PGHB,F_GETDEPTBL('KSPGTB','{0}','{1}',K.DEPTID,'','','','') PGTB, F_GETDEPTBL('KSSLHB','{0}','{1}',K.DEPTID,'','','','') SLHB,F_GETDEPTBL('KSSLTB','{0}','{1}',K.DEPTID,'','','','') SLTB, F_GETDEPTBL('KSSHHB','{0}','{1}',K.DEPTID,'','','','') SHHB,F_GETDEPTBL('KSSHTB','{0}','{1}',K.DEPTID,'','','','') SHTB FROM (SELECT A.DEPTID,SUM(B.DHSL*B.HSJJ) DHJE,COUNT(DISTINCT(A.SEQNO)) DHCS,COUNT(DISTINCT(B.GDSEQ)) DHPG FROM DAT_SL_DOC A,DAT_SL_COM B,DOC_GOODS DG WHERE A.SEQNO = B.SEQNO AND B.GDSEQ=DG.GDSEQ AND A.FLAG IN('Y','S','B','G','D','W') AND DG.ISGZ LIKE(NVL('{2}','%')) AND A.SHRQ BETWEEN TO_DATE('{0}','yyyy-MM-dd') AND TO_DATE('{1}','yyyy-MM-dd') + 1 GROUP BY A.DEPTID) K, (SELECT DGJ.DEPTID,SUM(DGJ.SL*DGJ.HSJJ) SHJE,COUNT(DISTINCT(DGJ.SEQNO)) SHCS,COUNT(DISTINCT(DGJ.GDSEQ)) SHPG FROM DAT_GOODSJXC DGJ,DOC_GOODS DG,SYS_DEPT SD WHERE DGJ.GDSEQ=DG.GDSEQ AND DGJ.DEPTID=SD.CODE AND DG.ISGZ LIKE(NVL('{2}','%')) AND DGJ.BILLTYPE IN('LCD','CKD','DSC') AND DGJ.RQSJ BETWEEN TO_DATE('{0}','yyyy-MM-dd') AND TO_DATE('{1}','yyyy-MM-dd') + 1 AND SD.TYPE<>1 GROUP BY DGJ.DEPTID) F, (SELECT A.DEPTID,COUNT(DISTINCT(A.GDSEQ)) DSPG,SUM((A.DSNUM - A.NUM3)*A.NUM1) DSSL FROM DOC_GOODSCFG A WHERE A.Dsnum > 0 AND A.NUM1 > 0 GROUP BY A.DEPTID) G WHERE K.DEPTID = F.DEPTID(+) AND K.DEPTID = G.DEPTID(+)"; string strWhere = ""; if (lstDEPTID.SelectedValue.Length > 0) { strWhere += " AND K.DEPTID = '" + lstDEPTID.SelectedValue + "'"; } if (strWhere.Trim().Length > 0) { strSql = strSql + strWhere; } string sortField = GridGoods.SortField; string sortDirection = GridGoods.SortDirection; string ss = string.Format(strSql, dpkDATE1.Text, dpkDATE2.Text, ddlISGZ.SelectedValue) + String.Format(" ORDER BY {0} {1}", sortField, sortDirection); DataTable dt = DbHelperOra.QueryForTable(string.Format(strSql, dpkDATE1.Text, dpkDATE2.Text, ddlISGZ.SelectedValue) + String.Format(" ORDER BY {0} {1}", sortField, sortDirection)); GridGoods.DataSource = dt; GridGoods.DataBind(); JObject summary = new JObject(); hfdArray.Text = ""; hfdArrayVal.Text = ""; hfdArrayVal2.Text = ""; hfdArrayVal3.Text = ""; Decimal num1 = 0, num2 = 0, num3 = 0, num4 = 0, num5 = 0, num6 = 0, num7 = 0, num8 = 0, total = 0, total1 = 0, total2 = 0; int i = 0; foreach (DataRow dr in dt.Rows) { num1 += Convert.ToDecimal(dr["DHPG"]); num2 += Convert.ToDecimal(dr["SHPG"]); num3 += Convert.ToDecimal(dr["DHJE"]); num4 += Convert.ToDecimal(dr["SHJE"]); num5 += Convert.ToDecimal(dr["SHCS"]); num6 += Convert.ToDecimal(dr["DHCS"]); num7 += Convert.ToDecimal(dr["DSPG"]); num8 += Convert.ToDecimal(dr["DSSL"]); if (i < 6) { hfdArray.Text += dr["DEPTIDNAME"] + ","; hfdArrayVal.Text += dr["DHPG"] + "$" + dr["DEPTIDNAME"] + ","; hfdArrayVal2.Text += dr["DHJE"] + "$" + dr["DEPTIDNAME"] + ","; hfdArrayVal3.Text += dr["DHCS"] + "$" + dr["DEPTIDNAME"] + ","; } else { total += Convert.ToDecimal(dr["DHPG"]); total1 += Convert.ToDecimal(dr["DHJE"]); total2 += Convert.ToDecimal(dr["DHCS"]); } i++; } if (total > 0) { hfdArray.Text += "其他,"; hfdArrayVal.Text += total.ToString() + "$其他,"; hfdArrayVal2.Text += total1.ToString() + "$其他,"; hfdArrayVal3.Text += total2.ToString() + "$其他,"; } hfdArray.Text = hfdArray.Text.TrimEnd(','); hfdArrayVal.Text = hfdArrayVal.Text.TrimEnd(','); hfdArrayVal2.Text = hfdArrayVal2.Text.TrimEnd(','); hfdArrayVal3.Text = hfdArrayVal3.Text.TrimEnd(','); summary.Add("DEPTIDNAME", "本页合计"); summary.Add("DHPG", num1.ToString("F2")); summary.Add("SHPG", num2.ToString("F2")); summary.Add("DHSL", num3.ToString("F2")); summary.Add("SHSL", num4.ToString("F2")); summary.Add("SHCS", num5.ToString("F2")); summary.Add("DHCS", num6.ToString("F2")); summary.Add("DSPG", num7.ToString("F2")); summary.Add("DSSL", num8.ToString("F2")); GridGoods.SummaryData = summary; PageContext.RegisterStartupScript("getEcharsData();getEcharsData2();getEcharsData3();"); }
protected override void billAudit() { //住院办审核 if (docFLAG.SelectedValue != "M") { Alert.Show("单据状态非新增,不能审核!", "操作提示", MessageBoxIcon.Warning); return; } SaveSuccess = false; save("Y"); if (SaveSuccess == false) { return; } SaveSuccess = false; //string strBillno = docSEQNO.Text; //if (BillOper(strBillno, "AUDIT") == 1) //{ // billLockDoc(true); // Alert.Show("单据【" + strBillno + "】审核成功!"); // billOpen(strBillno); // OperLog("直接出库", "审核单据【" + docSEQNO.Text + "】"); //} List <Dictionary <string, object> > newDict = GridGoods.GetNewAddedList().ToList(); string barcode = ""; for (int i = 0; i < newDict.Count; i++) { barcode = newDict[i]["STR2"].ToString(); if (DbHelperOra.Exists(string.Format("SELECT 1 FROM DAT_GZ_EXT WHERE ONECODE = '{0}'AND DEPTCUR<>'{1}'", barcode, docDEPTOUT.SelectedValue))) { Alert.Show("高值条码【" + barcode + "】已不在该出库库房,请检查!", "提示信息", MessageBoxIcon.Warning); return; } } StringBuilder sbSql = new StringBuilder(); sbSql.AppendFormat(@"DECLARE BEGIN UPDATE DAT_CK_DOC SET FLAG = 'N' WHERE SEQNO = '{0}' AND FLAG = 'M'; DELETE FROM DAT_CK_EXT T WHERE T.BILLNO ='{0}'; INSERT INTO DAT_CK_EXT(DEPTID,BILLNO,ROWNO,ONECODE,GDSEQ,GDNAME,BARCODE,UNIT,GDSPEC,DEPTCUR,BZHL,FLAG,PH,RQ_SC,YXQZ) SELECT '{3}','{0}',ROWNUM,A.STR2,A.GDSEQ,A.GDNAME,A.BARCODE,A.UNIT,A.GDSPEC,'{3}',A.BZHL,'Y',A.PH,A.RQ_SC,A.YXQZ FROM DAT_CK_COM A WHERE A.SEQNO = '{0}'; IF SQL%ROWCOUNT = 0 THEN RAISE_APPLICATION_ERROR(-20001, '修改单据[{0}]标志不成功!'); END IF; STORE.P_BILLOPER('{0}', '{1}', '{2}', 'AUDIT'); END; ", docSEQNO.Text, BillType, UserAction.UserID, docDEPTID.SelectedValue); try { DbHelperOra.ExecuteSql(sbSql.ToString()); billLockDoc(true); Alert.Show("单据【" + docSEQNO.Text + "】审核成功!", "消息提示", MessageBoxIcon.Information); OperLog("高值扫码出库", "审核单据【" + docSEQNO.Text + "】"); billOpen(docSEQNO.Text); } catch (Exception ex) { Alert.Show(ERPUtility.errorParse(ex.Message), "消息提示", MessageBoxIcon.Warning); } }
protected override void billOpen(string strBillno) { string sql = @"SELECT A.*,F_GETUNITNAME(A.UNIT) UNITNAME, F_GETPRODUCERNAME(A.PRODUCER) PRODUCERNAME, F_GETSUPNAME(A.SUPID) SUPNAME, (select NVL(SUM(KCSL), 0) from DAT_GOODSSTOCK where GDSEQ = A.GDSEQ and DEPTID = B.DEPTID) KCSL,f_getunitname(C.UNIT) UNITSMALLNAME ,DECODE(NVL(A.NUM1,0),0,'非赠品','赠品') NUM1NAME FROM DAT_TH_COM A,DAT_TH_DOC B,DOC_GOODS C WHERE A.SEQNO = B.SEQNO AND A.SEQNO = '{0}' AND A.GDSEQ=C.GDSEQ ORDER BY A.ROWNO"; DataTable dtDoc = DbHelperOra.Query(string.Format(strDocSql, strBillno)).Tables[0]; PubFunc.FormDataSet(FormDoc, dtDoc.Rows[0]); PageContext.RegisterStartupScript(GridGoods.GetRejectChangesReference()); decimal bzslTotal = 0, feeTotal = 0, dhslTotal = 0; DataTable dtBill = DbHelperOra.Query(string.Format(sql, strBillno)).Tables[0]; Doc.GridRowAdd(GridGoods, dtBill); if (dtBill != null && dtBill.Rows.Count > 0) { foreach (DataRow row in dtBill.Rows) { bzslTotal += Convert.ToDecimal(row["BZSL"]); feeTotal += Convert.ToDecimal(row["HSJE"]); dhslTotal += Convert.ToDecimal(row["THSL"]); } } //计算合计数量 JObject summary = new JObject(); summary.Add("GDNAME", "本页合计"); summary.Add("BZSL", bzslTotal.ToString()); summary.Add("HSJE", feeTotal.ToString("F2")); summary.Add("DHSL", dhslTotal.ToString()); GridGoods.SummaryData = summary; PubFunc.FormLock(FormDoc, true, ""); if ((",M,R").IndexOf(docFLAG.SelectedValue) > 0) { docMEMO.Enabled = true; } TabStrip1.ActiveTabIndex = 1; //增加按钮控制 if (docFLAG.SelectedValue == "M" || docFLAG.SelectedValue == "R") { btnDel.Enabled = true; btnSave.Enabled = true; btnCommit.Enabled = true; btnAudit.Enabled = true; btnCancel.Enabled = false; btnPrt.Enabled = false; btnPrint.Enabled = false; btnDelRow.Enabled = true; btnGoods.Enabled = true; trbBARCODE.Enabled = true; } else if (docFLAG.SelectedValue == "N") { btnDel.Enabled = false; btnSave.Enabled = false; btnAudit.Enabled = true; btnCommit.Enabled = false; btnCancel.Enabled = true; btnPrt.Enabled = false; btnPrint.Enabled = false; btnDelRow.Enabled = false; btnGoods.Enabled = false; } else { btnDel.Enabled = false; btnSave.Enabled = false; btnCommit.Enabled = false; btnAudit.Enabled = false; btnCancel.Enabled = false; btnPrt.Enabled = true; btnPrint.Enabled = true; btnDelRow.Enabled = false; btnGoods.Enabled = false; } }