Beispiel #1
0
        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);
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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;
        }
Beispiel #6
0
        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();
        }
Beispiel #7
0
        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();
            }
        }
Beispiel #8
0
        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();");
            }
        }
Beispiel #9
0
        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
        }
Beispiel #11
0
        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);
                    }
                }
            }
        }
Beispiel #14
0
        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();
        }
Beispiel #15
0
        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;
        }
Beispiel #16
0
        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;
            }
        }
Beispiel #17
0
        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();
        }
Beispiel #18
0
        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;
            }
        }
Beispiel #19
0
        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();
        }
Beispiel #20
0
        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));
        }
Beispiel #21
0
        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;
        }
Beispiel #22
0
        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);
            }
        }
Beispiel #23
0
        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;
                //}
            }
        }
Beispiel #24
0
        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, "");
        }
Beispiel #25
0
        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;
        }
Beispiel #26
0
 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));
 }
Beispiel #27
0
        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;
        }
Beispiel #28
0
        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();");
        }
Beispiel #29
0
        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);
            }
        }
Beispiel #30
0
        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;
            }
        }