Ejemplo n.º 1
0
        public SqlDataReader GetLastProdDetails()
        {
            string strSql = string.Empty;

            strSql = string.Format("select 1 from T_TransferMain where ISNULL(OrderState,0)<2");
            object oRes = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);

            if (oRes == null || Convert.ToInt32(oRes) > 1)
            {
                return(null);
            }
            strSql = string.Format(@"SELECT [id]
                  ,[mID]
                  ,[RowNo]
                  ,[cInvCode]
                  ,[BuildingNo]
                  ,[QtyReq]
                  ,[QtyTransfer]
                  ,[iOperate]
                  ,[sOperate]
                  ,[sInvType]
                  ,[WorkShopStock]
              FROM [Barcode].[dbo].[T_TRANSFERDETAIL]
              where mID=(SELECT [id] FROM [Barcode].[dbo].[T_TransferMain] where ISNULL(OrderState,0)<2)");
            return(OperationSql.ExecuteReader(CommandType.Text, strSql, null));
        }
Ejemplo n.º 2
0
        internal bool AreaOfCheck(int checkID, AreaInfo area)
        {
            string strSql = string.Empty;

            strSql = string.Format("select count(1) from t_check where id = {0} and checktype in (1,2,3,5)", checkID);
            object obj = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);

            if (obj.ToInt32() <= 0)
            {
                return(true);
            }

            int checktype = 0;

            strSql    = string.Format("select CheckType from t_check where id = {0}", checkID);
            checktype = OperationSql.ExecuteScalar(CommandType.Text, strSql, null).ToInt32();

            switch (checktype)
            {
            case 1:
                strSql = string.Format("select count(1) from v_CheckDetails where checkid = {0} and warehouseno = '{1}' ", checkID, area.WarehouseNo);
                obj    = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);
                if (obj.ToInt32() <= 0)
                {
                    return(false);
                }
                break;

            case 2:
                strSql = string.Format("select count(1) from v_CheckDetails where checkid = {0} and warehouseno = '{1}' and houseno = '{2}' ", checkID, area.WarehouseNo, area.HouseNo);
                obj    = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);
                if (obj.ToInt32() <= 0)
                {
                    return(false);
                }
                break;

            case 3:
                strSql = string.Format("select count(1) from v_CheckDetails where checkid = {0} and areano = '{1}' ", checkID, area.AreaNo);
                obj    = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);
                if (obj.ToInt32() <= 0)
                {
                    return(false);
                }
                break;

            case 5:
                //strSql = string.Format("select count(1) from v_CheckDetails A join v_area B on A.WAREHOUSENO = B.warehouseno where A.checkid = {0} and A.warehouseno = '{1}' and B.areano = '{2}' ", checkID, area.WarehouseNo, area.AreaNo);
                strSql = string.Format("select count(1) from v_CheckDetails where checkid = {0} and nvl(warehouseno,'{1}') = '{1}' ", checkID, area.WarehouseNo);
                obj    = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);
                if (obj.ToInt32() <= 0)
                {
                    return(false);
                }
                break;
            }

            return(true);
        }
Ejemplo n.º 3
0
 public int CheckDeliveryNoIsExist(string strDeliveryNo)
 {
     try
     {
         string strSql = string.Format("select count(1) from t_receive where deliveryno = '{0}'", strDeliveryNo);
         return(Convert.ToInt32(OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql)));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 4
0
 public int CheckAreaIsLock(string strAreaNo)
 {
     try
     {
         string strSql = string.Format("select count(1) from t_area where areano = '{0}' and areastatus = '1'", strAreaNo);
         return(Convert.ToInt32(OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql)));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message + ex.TargetSite);
     }
 }
Ejemplo n.º 5
0
        public int CheckBarCodeIsInStock(string strBarcode)
        {
            try
            {
                string strSql = string.Format("select count(1) from t_stock where serialno = '{0}'", strBarcode);

                return(Convert.ToInt32(OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql)));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + ex.TargetSite);
            }
        }
Ejemplo n.º 6
0
        internal bool VerifyCheckStockChange(CheckInfo model)
        {
            string strSql = string.Empty;

            strSql = string.Format("select COUNT(1) from t_stock S join t_checkdetaillist L on L.checkid = {0} and S.SERIALNO = L.SERIALNO and (S.Areano <> L.AREANO or S.QTY <> L.QTY)", model.ID);
            object obj = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);

            if (obj.ToInt32() <= 0)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 7
0
        public Task_Model GetTaskDetailsInfo(string strTaskNo)
        {
            try
            {
                Task_Model TM = new Task_Model();
                TM.lstTaskDetails = new List <TaskDetails_Model>();

                string strSql = string.Format("select * from V_GETTASKDETAILSINFO where taskno = '{0}'", strTaskNo);

                using (SqlDataReader dr = OperationSql.ExecuteReader(System.Data.CommandType.Text, strSql))
                {
                    while (dr.Read())
                    {
                        TM.ID           = dr["task_id"].ToInt32();
                        TM.TaskNo       = dr["taskno"].ToDBString();
                        TM.TaskStatus   = dr["taskstatus"].ToInt32();
                        TM.IsShelvePost = dr["isshelvepost"].ToInt32();
                        TM.IsQuality    = dr["isquality"].ToInt32();
                        TM.VoucherType  = dr["VoucherType"].ToInt32();
                        TM.Plant        = dr["plant"].ToDBString();
                        TM.DeliveryNo   = dr["deliveryno"].ToDBString();

                        TaskDetails_Model TDM = new TaskDetails_Model();
                        TDM.ID              = dr["id"].ToInt32();
                        TDM.MaterialNo      = dr["materialno"].ToDBString();
                        TDM.MaterialDesc    = dr["materialdesc"].ToDBString();
                        TDM.MaterialStd     = dr["MaterialStd"].ToDBString();
                        TDM.TaskQty         = dr["taskqty"].ToDecimal();
                        TDM.QuanlityQty     = dr["qualityqty"].ToDecimal();
                        TDM.RemainQty       = dr["remainqty"].ToDecimal();
                        TDM.ShelveQty       = dr["shelveqty"].ToDecimal();
                        TDM.RowNo           = dr["RowNo"].ToDBString();
                        TDM.VoucherNo       = dr["VoucherNo"].ToDBString();
                        TDM.PackCount       = dr["PackCount"].ToDecimal();
                        TDM.ShelvePackCount = dr["ShelvePackCount"].ToDecimal();
                        TDM.RemainPackCount = dr["RemainPackCount"].ToDecimal();
                        TM.lstTaskDetails.Add(TDM);
                    }
                }
                strSql         = string.Format(@"SELECT A.warehouseno FROM T_WAREHOUSE A JOIN T_TASKWAREHOUSE B ON A.id=B.warehouse_id JOIN T_TASK C ON B.task_id=C.id
WHERE C.taskno = '{0}'", strTaskNo);
                TM.WareHouseNo = OperationSql.ExecuteScalar(CommandType.Text, strSql, null).ToString();
                return(TM);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 /// 查看物料被哪个用户锁定
 /// </summary>
 /// <param name="taskDetailsMdl"></param>
 /// <param name="userMdl"></param>
 /// <returns></returns>
 public string QueryUserNameByTaskDetails(TaskDetails_Model taskDetailsMdl, BLL.Basic.User.UserInfo userMdl)
 {
     try
     {
         string strUserName = string.Empty;
         string strSql      = "select b.UserName from t_taskdetails a left join t_user b on a.operatoruserno = b.userno where a.id = {0} " +
                              " and  a.operatoruserno!='{1}'";
         strSql = string.Format(strSql, taskDetailsMdl.ID, userMdl.UserNo);
         return((string)OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message + ex.TargetSite);
     }
 }
Ejemplo n.º 9
0
        public string GetMenuNo(MenuInfo model)
        {
            string strSql = string.Empty;

            if (model.ID <= 0)
            {
                strSql = "SELECT CONVERT(nvarchar,CONVERT(decimal(20,0),(ISNULL(MAX(MENUNO),10000000000000000000)))+ 1) FROM T_MENU";
            }
            else
            {
                strSql = string.Format("SELECT menuno FROM T_Menu WHERE ID = {0}", model.ID);
            }

            object o;

            o = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);
            return(o.ToDBString());
        }
Ejemplo n.º 10
0
        public string GetTempMaterialNo(TempMaterialInfo model)
        {
            string strSql = string.Empty;

            if (model.ID <= 0)
            {
                strSql = "SELECT 'L' || TO_CHAR(SYSDATE,'YYYYMM') || CONCAT(SUBSTR('00000',1,5-LENGTH(SEQ_TEMPMATERIALNO.NEXTVAL)),SEQ_TEMPMATERIALNO.NEXTVAL) FROM DUAL";
            }
            else
            {
                strSql = string.Format("SELECT TempMaterialNo FROM T_TEMPMATERIAL WHERE ID = {0}", model.ID);
            }

            object o;

            o = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);
            return(o.ToDBString());
        }
Ejemplo n.º 11
0
        public bool InStock(string strToAreaNo, string strTaskXml, UserInfo userModel, ref string strErrMsg)
        {
            #region 验证货位是否合法
            string strsql = string.Format("select 1 from v_area where AREATYPE=1 and AREANO='{0}'", strToAreaNo);
            if (OperationSql.ExecuteScalar(CommandType.Text, strsql, null) == null)
            {
                strErrMsg = "货位不存在或者不是正式货位!";
                return(false);
            }
            #endregion
            try
            {
                int iResult = 0;

                SqlParameter[] cmdParms = new SqlParameter[]
                {
                    new SqlParameter("strToAreaNo", SqlDbType.NVarChar),
                    new SqlParameter("Task_xml", SqlDbType.Xml),
                    new SqlParameter("strUserNo", SqlDbType.NVarChar),
                    //new SqlParameter("bResult", SqlDbType.Int,ParameterDirection.Output),
                    new SqlParameter("bResult", SqlDbType.Int),

                    //new SqlParameter("strErrMsg", SqlDbType.NVarChar,1000,strErrMsg,ParameterDirection.Output)
                    new SqlParameter("strErrMsg", SqlDbType.NVarChar, 1000, strErrMsg)
                };

                cmdParms[0].Value = strToAreaNo;
                cmdParms[1].Value = strTaskXml;
                cmdParms[2].Value = userModel.UserNo;

                cmdParms[3].Direction = ParameterDirection.Output;
                cmdParms[4].Direction = ParameterDirection.Output;

                OperationSql.ExecuteNonQuery2(CommandType.StoredProcedure, "p_instock", cmdParms);
                iResult   = Convert.ToInt32(cmdParms[3].Value.ToString());
                strErrMsg = cmdParms[4].Value.ToString();

                return(iResult == 1 ? true : false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 12
0
        internal bool IsChecking(Barcode_Model barcodeMdl, ref string strErrorMsg)
        {
            string strSql = "";

            if (barcodeMdl.iFlag != 0 && barcodeMdl.iFlag != 10)
            {
                if (barcodeMdl.labeltype.Equals("10") || barcodeMdl.labeltype.Equals("14"))
                {
                    strSql = string.Format("select a.serialno from T_OUTBARCODE a join T_INNERBARCODE b on a.id=b.outbox_id where b.serialno = '{0}'", barcodeMdl.SERIALNO);
                    string oSerialno = OperationSql.ExecuteScalar(CommandType.Text, strSql, null).ToDBString();
                    if (string.IsNullOrEmpty(oSerialno))
                    {
                        return(false);
                    }
                    barcodeMdl.SERIALNO = oSerialno;
                }
                strSql = string.Format("select b.areastatus,b.CheckID [ACheckID],a.status,a.CheckID [SCheckID] from t_stock a join T_AREA b on a.areano=b.areano where serialno='{0}'", barcodeMdl.SERIALNO);
                using (SqlDataReader sdr = OperationSql.ExecuteReader(CommandType.Text, strSql, null))
                {
                    if (sdr.Read())
                    {
                        if (sdr[0].ToInt32() != 1 && !string.IsNullOrEmpty(sdr[1].ToString()))
                        {
                            strErrorMsg = "该条码所在货位正在盘点!";
                            return(true);
                        }
                        if (sdr[2].ToInt32() != 1 && !string.IsNullOrEmpty(sdr[3].ToString()))
                        {
                            strErrorMsg = "该物料正在盘点!";
                            return(true);
                        }
                    }
                    else
                    {
                        if (barcodeMdl.iFlag != 4 && barcodeMdl.iFlag != 5)
                        {
                            strErrorMsg = "该条码库存有误!";
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 13
0
        public SqlDataReader GetLastProdHead()
        {
            string strSql = string.Empty;

            strSql = string.Format("select count(1) from T_TransferMain where ISNULL(OrderState,0)<2");
            object oRes = OperationSql.ExecuteScalar(CommandType.Text, strSql, null);

            if (oRes == null || Convert.ToInt32(oRes) > 1)
            {
                return(null);
            }
            strSql = string.Format(@"SELECT [id]
                  ,[AllotNo]
                  ,[dTime]
                  ,[UserCode]
                  ,[OrderState]
              FROM [Barcode].[dbo].[T_TransferMain] where ISNULL(OrderState,0)<2");
            return(OperationSql.ExecuteReader(CommandType.Text, strSql, null));
        }
Ejemplo n.º 14
0
        public Barcode_Model GetBarCodeInfoForReturn(string strSerialNo, string labeltype)
        {
            try
            {
                string        strSql     = string.Format("select ID,VOUCHERTYPE,DELIVERYNO,VOUCHERNO,ROWNO,QTY, OUTPACKQTY,BARCODE,BARCODETYPE,SERIALNO,MATERIALNO,MATERIALDESC,MATERIALSTD,BATCHNO,ROWNO,TrayID,ISNULL(iFlag,0) iFlag,[ProductLineNo] cProductLineCode,SoCode from t_outbarcode where serialno = '{0}'", strSerialNo);
                Barcode_Model barcodeMdl = new Barcode_Model();
                using (SqlDataReader dr = OperationSql.ExecuteReader(System.Data.CommandType.Text, strSql))
                {
                    if (dr.Read())
                    {
                        barcodeMdl.ID               = dr["id"].ToDecimal();
                        barcodeMdl.DELIVERYNO       = dr["DELIVERYNO"].ToDBString();
                        barcodeMdl.VOUCHERNO        = dr["VOUCHERNO"].ToDBString();
                        barcodeMdl.ROWNO            = dr["ROWNO"].ToDBString();
                        barcodeMdl.OUTPACKQTY       = dr["OUTPACKQTY"].ToDecimal();
                        barcodeMdl.labeltype        = dr["BARCODETYPE"].ToDBString();
                        barcodeMdl.QTY              = dr["QTY"].ToDecimal();
                        barcodeMdl.BARCODE          = dr["barcode"].ToDBString();
                        barcodeMdl.SERIALNO         = dr["serialno"].ToDBString();
                        barcodeMdl.MATERIALNO       = dr["materialno"].ToDBString();
                        barcodeMdl.MATERIALDESC     = dr["materialdesc"].ToDBString();
                        barcodeMdl.MATERIALSTD      = dr["materialstd"].ToDBString();//规格型号
                        barcodeMdl.BATCHNO          = dr["batchno"].ToDBString();
                        barcodeMdl.ROWNO            = dr["rowno"].ToDBString();
                        barcodeMdl.VOUCHERTYPE      = dr["VOUCHERTYPE"].ToDBString();
                        barcodeMdl.TrayID           = dr["TrayID"].ToInt32();
                        barcodeMdl.iFlag            = dr["iFlag"].ToInt32();
                        barcodeMdl.cProductLineCode = dr["cProductLineCode"].ToDBString();//产线
                        barcodeMdl.SoCode           = dr["SoCode"].ToDBString();
                    }
                }

                if (string.IsNullOrEmpty(barcodeMdl.SERIALNO))
                {
                    strSql = string.Format("  select a.ID,b.VOUCHERTYPE,b.DELIVERYNO,a.VOUCHERNO,a.QTY, a.OUTPACKQTY,a.BARCODE,a.BARCODETYPE,a.SERIALNO,a.MATERIALNO,a.MATERIALDESC,a.MATERIALSTD,a.BATCHNO,b.ROWNO,0 TrayID,ISNULL(iFlag,0) iFlag,[ProductLineNo] cProductLineCode,a.SoCode from T_INNERBARCODE a join T_OUTBARCODE b on a.outbox_id=b.id where a.serialno = '{0}'", strSerialNo);
                    using (SqlDataReader dr = OperationSql.ExecuteReader(System.Data.CommandType.Text, strSql))
                    {
                        if (dr.Read())
                        {
                            barcodeMdl.ID               = dr["id"].ToDecimal();
                            barcodeMdl.DELIVERYNO       = dr["DELIVERYNO"].ToDBString();
                            barcodeMdl.VOUCHERNO        = dr["VOUCHERNO"].ToDBString();
                            barcodeMdl.ROWNO            = dr["ROWNO"].ToDBString();
                            barcodeMdl.OUTPACKQTY       = dr["OUTPACKQTY"].ToDecimal();
                            barcodeMdl.labeltype        = dr["BARCODETYPE"].ToDBString();
                            barcodeMdl.QTY              = dr["QTY"].ToDecimal();
                            barcodeMdl.BARCODE          = dr["barcode"].ToDBString();
                            barcodeMdl.SERIALNO         = dr["serialno"].ToDBString();
                            barcodeMdl.MATERIALNO       = dr["materialno"].ToDBString();
                            barcodeMdl.MATERIALDESC     = dr["materialdesc"].ToDBString();
                            barcodeMdl.MATERIALSTD      = dr["materialstd"].ToDBString();//规格型号
                            barcodeMdl.BATCHNO          = dr["batchno"].ToDBString();
                            barcodeMdl.ROWNO            = dr["rowno"].ToDBString();
                            barcodeMdl.VOUCHERTYPE      = dr["VOUCHERTYPE"].ToDBString();
                            barcodeMdl.TrayID           = dr["TrayID"].ToInt32();
                            barcodeMdl.iFlag            = dr["iFlag"].ToInt32();
                            barcodeMdl.cProductLineCode = dr["cProductLineCode"].ToDBString();//产线
                            barcodeMdl.SoCode           = dr["SoCode"].ToDBString();
                        }
                    }
                    if (string.IsNullOrEmpty(barcodeMdl.SERIALNO))
                    {
                        return(null);
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(labeltype) && !labeltype.Equals("10") && !labeltype.Equals("14"))
                        {
                            throw new Exception("本次扫描必须都为外箱条码!");
                        }
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(labeltype) && !labeltype.Equals("11") && !labeltype.Equals("15"))
                    {
                        throw new Exception("本次扫描必须都为内盒条码!");
                    }
                }
                //strSql = string.Format("select ISNULL(orderseq,'') sorowno,ISNULL(ordercode,'') socode from v_st_mom_orderdetail where mocode = '{0}' and MoSeq={1}", barcodeMdl.VOUCHERNO, barcodeMdl.ROWNO);
                //using (SqlDataReader dr = OperationSql.ExecuteReaderForU8(System.Data.CommandType.Text, strSql))
                //{
                //    if (dr.Read())
                //    {
                //        if (!string.IsNullOrEmpty(dr["socode"].ToDBString()))
                //            barcodeMdl.SoCode = dr["socode"].ToDBString();
                //        barcodeMdl.sorowno = dr["sorowno"].ToDBString();
                //    }
                //}
                strSql = string.Format("select 1 from t_stockoutdetails where serialno='{0}'", barcodeMdl.SERIALNO);
                object oResult = OperationSql.ExecuteScalar(CommandType.Text, strSql);
                if (oResult == null || oResult == DBNull.Value)
                {
                    strSql  = string.Format("select a.serialno from t_stockoutdetails a join T_INNERBARCODE b on a.serialno=b.serialno  where b.serialno='{0}'", barcodeMdl.SERIALNO);
                    oResult = OperationSql.ExecuteScalar(CommandType.Text, strSql);
                    if (barcodeMdl.iFlag != 4 || oResult == null || oResult == DBNull.Value)
                    {
                        barcodeMdl = null;
                        throw new Exception("该条码并未出库!");
                    }
                    else if (!char.IsLetter(oResult.ToString().Last()))
                    {
                        barcodeMdl = null;
                        throw new Exception("违规操作,该条码是按外箱出库的,不能还回内箱!");
                    }
                    else
                    {
                        strSql              = string.Format(@"select a.areano from T_STOCK a join T_OUTBARCODE b on a.serialno=b.serialno
join T_SplitRecord c on c.old_outboxid = b.id
join T_SplitDetails d on c.id = d.id
where d.serialno = '{0}' order by c.createrdate desc", barcodeMdl.SERIALNO);
                        oResult             = OperationSql.ExecuteScalar(CommandType.Text, strSql);
                        barcodeMdl.AndalaNo = oResult.ToString();
                    }
                }
                else
                {
                    if (barcodeMdl.iFlag != 4)
                    {
                        barcodeMdl = null;
                        throw new Exception("该条码并未出库!");
                    }
                }


                if (barcodeMdl.TrayID != 0)
                {
                    Tray_Func  tf   = new Tray_Func();
                    Tray_Model tray = new Tray_Model();
                    if (tf.GetTrayInfoByTrayIDForOutStock(barcodeMdl, ref tray))
                    {
                        barcodeMdl.tray_Model = tray;
                    }
                }

                return(barcodeMdl);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 15
0
        public int GetIsUrgent(string strMaterialNo)
        {
            string strSql = string.Format("select count(1) from t_stock where materialno = '{0}'", strMaterialNo);

            return(Convert.ToInt32(OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql)));
        }
Ejemplo n.º 16
0
        public bool UserLogin(ref UserInfo user, ref string strError)
        {
            if (DateTime.Today >= Convert.ToDateTime("2016-10-15") && !securityAndRegister.EncryptionHelper.CheckRegist())
            {
                strError = "登陆异常!该用户不存在";
                return(false);
            }
            if (string.IsNullOrEmpty(user.LoginDevice))
            {
                user.LoginDevice = user.LoginIP;
            }
            string   LoginIP = user.LoginIP;
            DateTime CurrentTime;
            string   strSql = string.Empty;

            if (user.UserNo.ToUpper() != "ADMIN")
            {
                UFSoft.U8.Framework.Login.UI.clsLogin netLogin = new UFSoft.U8.Framework.Login.UI.clsLogin();
                user.Password = netLogin.EnPassWord(user.Password);
                strSql        = string.Format("SELECT GETDATE() CurrentTime,V_User.* FROM V_User WHERE UserNo = '{0}' AND password = '******'", user.UserNo, user.Password);
            }
            else
            {
                strSql = string.Format("SELECT GETDATE() CurrentTime,V_User.* FROM V_User WHERE UserNo = '{0}' ", user.UserNo);
            }
            //strSql = string.Format("SELECT GETDATE() CurrentTime,V_User.* FROM V_User WHERE UserNo = '{0}'", user.UserNo);

            UserInfo model;

            using (SqlDataReader odr = OperationSql.ExecuteReader(CommandType.Text, strSql))
            {
                if (odr.Read())
                {
                    User_Func func = new User_Func();
                    model       = func.GetModelFromDataReader(odr);
                    CurrentTime = odr["CurrentTime"].ToDateTime();

                    if (model == null)
                    {
                        strError = "用户实例化失败";
                        return(false);
                    }
                    else if (model.UserStatus == 2)
                    {
                        strError = string.Format("用户【{0}】已停用", model.UserName);
                        return(false);
                    }
                    else if (model.IsDel == 2)
                    {
                        strError = string.Format("用户【{0}】已删除", model.UserName);
                        return(false);
                    }

                    if (model.BIsOnline)
                    {
                        if (model.UserType == 1)
                        {
                            if (!string.IsNullOrEmpty(user.LoginIP) && model.LoginIP.Length + user.LoginIP.Length >= 100 && model.LoginIP.IndexOf(user.LoginIP) <= -1)
                            {
                                strError = string.Format("超级管理员用户【{0}】已超过登录次数上限,目前共【{1}】处登录{2}请先登出或联系管理员清除后重试", model.UserName, model.LoginIP.Split(';').Length, Environment.NewLine);
                                return(false);
                            }
                            else if (!string.IsNullOrEmpty(user.LoginDevice) && model.LoginDevice.Length + user.LoginDevice.Length >= 200 && model.LoginDevice.IndexOf(user.LoginDevice) <= -1)
                            {
                                strError = string.Format("超级管理员用户【{0}】已超过登录次数上限,目前共【{1}】处登录{2}请先登出或联系管理员清除后重试", model.UserName, model.LoginDevice.Split(';').Length, Environment.NewLine);
                                return(false);
                            }
                        }
                        else
                        {
                            if (model.LoginIP != user.LoginIP)
                            {
                                string LoginAddress = string.IsNullOrEmpty(model.LoginDevice) ? model.LoginIP : model.LoginDevice;
                                if (!model.LoginIP.StartsWith("PC"))
                                {
                                    strError = string.Format("用户【{0}】已于【{1}】在【{2}】处登录{3}请先登出或联系管理员清除后重试", model.UserName, model.LoginTime, LoginAddress, Environment.NewLine);
                                    return(false);
                                }
                                else if ((CurrentTime - model.LoginTime.ToDateTime()).TotalMilliseconds < 1500000)
                                {
                                    strError = string.Format("用户【{0}】正在【{1}】处使用{2}请先登出或联系管理员清除后重试", model.UserName, LoginAddress, Environment.NewLine);
                                    return(false);
                                }
                            }
                        }
                    }

                    model.LoginTime   = CurrentTime;
                    model.LoginIP     = user.LoginIP;
                    model.LoginDevice = user.LoginDevice;

                    user = model;
                }
                else
                {
                    strSql = string.Format("SELECT COUNT(1) FROM V_User WHERE UserNo = '{0}' ", user.UserNo);
                    int i = OperationSql.ExecuteScalar(CommandType.Text, strSql).ToInt32();
                    if (i <= 0)
                    {
                        strError = "登陆异常!该用户不存在";
                        return(false);
                    }
                    else
                    {
                        strError = "密码输入错误";
                        return(false);
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 17
0
        public bool GetSaleBillDetailsForTrans(SaleBillDetails_Model detail, out List <SaleBillDetails_Model> list, out string strErrMsg)
        {
            try
            {
                list = new List <SaleBillDetails_Model>();
                string strSql = @"select cSOCode,iRowNo,iQuantity from SO_SODetails
where dbclosedate is null and cInvCode = '" + detail.cinvcode + "' and cSOCode != '" + detail.ssocode + "'";
                using (SqlDataReader dr = OperationSql.ExecuteReaderForERP(System.Data.CommandType.Text, strSql))
                {
                    while (dr.Read())
                    {
                        strSql = "select * from T_temptrans where RealQty < " + detail.qty + " and ssocode = '" + dr["cSOCode"].ToDBString() + "' and cinvcode = '" + detail.cinvcode + "'";
                        if (OperationSql.ExecuteReader(System.Data.CommandType.Text, strSql).Read())
                        {
                            break;
                        }
                        strSql = "select SUM(qty) from T_temptrans where  cinvcode = '" + detail.cinvcode + "' and dsocode = '" + dr["cSOCode"].ToDBString() + "'";
                        decimal sum = OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql).ToDecimal();
                        if (sum != null && (dr["iQuantity"].ToDecimal() - sum < detail.qty))
                        {
                            continue;
                        }
                        strSql = "select SUM(T_STOCK.qty) from T_OUTBARCODE join T_STOCK on T_STOCK.serialno = T_OUTBARCODE.serialno where T_STOCK.warehouseno = '14' and T_OUTBARCODE.materialno = '" + detail.cinvcode + "' and SoCode = '" + dr["cSOCode"].ToDBString() + "'";
                        sum    = OperationSql.ExecuteScalar(System.Data.CommandType.Text, strSql).ToDecimal();
                        if (sum == null)
                        {
                            continue;
                        }
                        else if (sum < detail.qty)
                        {
                            continue;
                        }
                        SaleBillDetails_Model SM = new SaleBillDetails_Model();
                        SM.autoid    = detail.autoid;
                        SM.cinvcode  = detail.cinvcode;
                        SM.cinvname  = detail.cinvname;
                        SM.cinvstd   = detail.cinvstd;
                        SM.ssorowno  = detail.ssorowno;
                        SM.ssbvrowno = detail.ssbvrowno;
                        SM.cWhCode   = detail.cWhCode;
                        SM.cWhName   = detail.cWhName;
                        SM.ssoqty    = detail.ssoqty;
                        SM.ssbvqty   = detail.ssbvqty;
                        SM.ssocode   = detail.ssocode;
                        SM.ssbvcode  = detail.ssbvcode;
                        SM.dsocode   = dr["cSOCode"].ToDBString();
                        SM.dsorowno  = dr["iRowNo"].ToDBString();
                        SM.dsoqty    = sum;
                        SM.qty       = detail.qty;
                        //SM.dsoqty = dr["iQuantity"].ToDecimal();
                        list.Add(SM);
                    }
                }
                strErrMsg = "";
                return(true);
            }
            catch (Exception ex)
            {
                strErrMsg = ex.Message;
                list      = null;
                return(false);
            }
        }