Ejemplo n.º 1
0
        /// <summary>
        /// 单据序号加1
        /// </summary>
        /// <param name="p_FormNoID">单据ID</param>
        /// <param name="p_Num">第几个单据号码0,1,2,</param>
        /// <param name="sqlTrans">事务</param>
        public void RAddSort(int p_FormNoContronlID, int p_FNCVID, string p_VendorID, IDBTransAccess sqlTrans)
        {
            try
            {
                string       sql    = "SELECT ID FROM Data_FormNCVendor WHERE VendorID=" + SysString.ToDBString(p_VendorID) + " AND FNCVID=" + p_FNCVID;
                DataTable    dt     = sqlTrans.Fill(sql);
                FormNCVendor entity = new FormNCVendor(sqlTrans);
                if (dt.Rows.Count != 0)
                {
                    entity.ID = SysConvert.ToInt32(dt.Rows[0]["ID"]);
                    entity.SelectByID();

                    sql = "UPDATE Data_FormNCVendor SET CurSort=" + (entity.CurSort + 1) + " WHERE ID=" + entity.ID;
                    sqlTrans.ExecuteNonQuery(sql);
                }
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获得实体
        /// </summary>
        /// <returns></returns>
        private FormNCVendor EntityGet()
        {
            FormNCVendor entity = new FormNCVendor();

            entity.ID = HTDataID;
            entity.SelectByID();
            entity.FNCVID   = SysConvert.ToInt32(drpFNCVID.EditValue);
            entity.VendorID = SysConvert.ToString(drpVendorID.EditValue);
            entity.CurYear  = SysConvert.ToInt32(txtCurYear.Text.ToString());
            entity.CurMonth = SysConvert.ToInt32(txtCurMonth.Text.ToString());
            entity.CurDay   = SysConvert.ToInt32(txtCurMonth.Text.ToString());
            entity.CurSort  = SysConvert.ToInt32(txtCurSort.Text.ToString());
            entity.Remark   = txtRemark.Text.ToString();
            return(entity);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 设置
        /// </summary>
        public override void EntitySet()
        {
            FormNCVendor entity = new FormNCVendor();

            entity.ID = HTDataID;
            bool findFlag = entity.SelectByID();

            drpVendorID.EditValue = entity.VendorID;
            drpFNCVID.EditValue   = entity.FNCVID;
            txtCurSort.Text       = entity.CurSort.ToString();
            txtCurYear.Text       = entity.CurYear.ToString();
            txtCurMonth.Text      = entity.CurMonth.ToString();
            txtCurDay.Text        = entity.CurDay.ToString();
            txtRemark.Text        = entity.Remark.ToString();
            if (!findFlag)
            {
            }
        }
Ejemplo n.º 4
0
        bool THAddOneFlag = false;//2010/12月处理系统调号异常 标志是否已经自动跳过一次了

        /// <summary>
        /// 获得流水号处理
        /// </summary>
        /// <param name="fncEntity">单号控制表</param>
        /// <param name="p_VendorID">客户</param>
        /// <param name="sqlTrans">事务</param>
        /// <returns></returns>
        public string RGetFormNo(FormNoControl fncEntity, int p_FNCVID, string p_VendorID, IDBTransAccess sqlTrans)
        {
            string outstr = string.Empty;
            string sql    = "";

            //先期处理获得客户流水号实体BEGIN
            sql = "SELECT ID FROM Data_FormNCVendor WHERE VendorID=" + SysString.ToDBString(p_VendorID) + " AND FNCVID=" + p_FNCVID;
            DataTable    dt     = sqlTrans.Fill(sql);
            FormNCVendor entity = new FormNCVendor(sqlTrans);

            if (dt.Rows.Count != 0)
            {
                entity.ID = SysConvert.ToInt32(dt.Rows[0]["ID"]);
                entity.SelectByID();
            }
            else//如果没找到,新增一笔进去
            {
                entity.VendorID = p_VendorID;
                entity.FNCVID   = p_FNCVID;
                this.RAdd(entity, sqlTrans);
            }
            //先期处理获得客户流水号实体END

            #region 开始取号
            sql = "SELECT getdate() AS ServerTime";
            DateTime dtserver = SysConvert.ToDateTime(sqlTrans.Fill(sql).Rows[0][0].ToString());

            bool UpdFlag = false;
            if (fncEntity.CurYear != 0 && entity.CurYear != dtserver.Year)//判断年
            {
                entity.CurYear = dtserver.Year;
                UpdFlag        = true;
            }
            if (fncEntity.CurMonth != 0 && entity.CurMonth != dtserver.Month)//判断月
            {
                entity.CurMonth = dtserver.Month;
                UpdFlag         = true;
            }
            if (fncEntity.CurDay != 0 && entity.CurDay != dtserver.Day)//判断日
            {
                entity.CurDay = dtserver.Day;
                UpdFlag       = true;
            }
            if (UpdFlag)//需要更新
            {
                entity.CurSort = 0;
                this.RUpdate(entity, sqlTrans);
            }
            outstr = fncEntity.FormRulePre;

            if (entity.CurYear != 0)                                        //替换年
            {
                outstr = outstr.Replace("YYYY", entity.CurYear.ToString()); //如果是4位 陈加海2010/3/26日修改
                outstr = outstr.Replace("YY", entity.CurYear.ToString().Substring(2));
            }
            if (entity.CurMonth != 0)//替换月
            {
                outstr = outstr.Replace("MM", SysString.IntToStr(entity.CurMonth, 2));
            }
            if (entity.CurDay != 0)//替换日
            {
                outstr = outstr.Replace("DD", SysString.IntToStr(entity.CurDay, 2));
            }
            if (fncEntity.FormRuleSpecial == "V4")
            {
                string spstr = p_VendorID;
                if (p_VendorID.Length > 4)
                {
                    spstr = p_VendorID.Substring(p_VendorID.Length - 4);
                }
                outstr = outstr.Replace("X", spstr);
            }
            else if (fncEntity.FormRuleSpecial != "")//替换特殊符号
            {
                outstr = outstr.Replace("X", fncEntity.FormRuleSpecial);
            }
            outstr += SysString.IntToStr(entity.CurSort + 1, fncEntity.FormRuleSort.Length);//获得序号

            #endregion

            #region 多跳一个号处理
            if (!THAddOneFlag) //没有调号过,防止死循环
            {
                try            //跳号验证是否存在处理,存在则加1
                {
                    sql = "SELECT DTableName,DFieldName FROM Enum_FormNoControl WHERE ID=" + fncEntity.ID;
                    DataTable dtL = sqlTrans.Fill(sql);
                    if (dtL.Rows.Count != 0)
                    {
                        if (dtL.Rows[0]["DTableName"].ToString() != string.Empty && dtL.Rows[0]["DFieldName"].ToString() != string.Empty)
                        {
                            sql = "SELECT " + dtL.Rows[0]["DFieldName"].ToString() + " FROM " + dtL.Rows[0]["DTableName"].ToString() + " WHERE " + dtL.Rows[0]["DFieldName"].ToString() + "=" + SysString.ToDBString(outstr);
                            if (sqlTrans.Fill(sql).Rows.Count != 0)//产生的号码系统中已存在,则序号跳号
                            {
                                THAddOneFlag = true;
                                this.RAddSort(fncEntity.ID, p_FNCVID, p_VendorID, sqlTrans);
                                outstr = RGetFormNo(fncEntity, p_FNCVID, p_VendorID, sqlTrans);//循环调用一次
                            }
                        }
                    }
                }
                catch (Exception EL)//异常情况下填写临时信息
                {
                    SysFile.WriteFrameworkLog(EL.Message);
                }
            }
            #endregion
            return(outstr);
        }