Esempio n. 1
0
        public void CancelInStockSR(SRInfo oParam)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //�����˻���
                this.UpdateSRMaster(oParam);

                //������Ʒ��������Ϣ
                foreach (SRItemInfo item in oParam.ItemHash.Values)
                {
                    InventoryManager.GetInstance().SetInStockQty2(oParam.StockSysNo, item.ProductSysNo, -1 * item.Quantity);
                }

                SOInfo soInfo = SaleManager.GetInstance().LoadSO(oParam.SOSysNo);

                //�۳��ͻ�֧������
                if (soInfo.Status == (int)AppEnum.SOStatus.Return)//ȫ���˻��۳�����,�����˻����۳�����
                {
                    PointManager.GetInstance().SetScore(soInfo.CustomerSysNo, soInfo.PointPay * (-1), (int)AppEnum.PointLogType.CancelReturn, soInfo.SysNo.ToString());
                }

                //����л������������pointDelay,���޸Ķ������ͻ���
                int PointAmt = 0;
                foreach (SOItemInfo oItem in soInfo.ItemHash.Values)
                {
                    if (oItem.ReturnQty > 0 && oItem.Point > 0)
                    {
                        PointAmt += oItem.ReturnQty * oItem.Point;
                    }
                }
                if (PointAmt > 0)
                {
                    int soPointAmt = soInfo.PointAmt + PointAmt;
                    Hashtable ht = new Hashtable();
                    ht.Add("SysNo", soInfo.SysNo);
                    ht.Add("PointAmt", soPointAmt);
                    SaleManager.GetInstance().UpdateSOMaster(ht);
                }

                SalePointDelayInfo spInfo = new SalePointDelayInfo();
                spInfo.SOSysNo = soInfo.SysNo;
                spInfo.CreateTime = DateTime.Now;
                spInfo.Status = (int)AppEnum.TriStatus.Origin;
                PointManager.GetInstance().InsertPointDelay(spInfo);

                scope.Complete();
            }
        }
Esempio n. 2
0
        public void CancelAbandonSR(SRInfo oParam)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //�����˻���״̬
                oParam.Status = (int)AppEnum.SRStatus.Origin;
                this.UpdateSRMaster(oParam);

                scope.Complete();
            }
        }
Esempio n. 3
0
File: SRDac.cs Progetto: ue96/ue96
        public int InsertMaster(SRInfo oParam)
        {
            string sql = @"INSERT INTO SR_Master
                            (
                            SysNo, SRID, SOSysNo, Status,
                            ReturnType, StockSysNo, CreateUserSysNo, CreateTime,
                            ReceiveUserSysNo, ReceiveTime, InstockTime, InstockUserSysNo,
                            ShelveTime, ShelveUserSysNo, UpdateUserSysNo, UpdateTime,
                            Note
                            )
                            VALUES (
                            @SysNo, @SRID, @SOSysNo, @Status,
                            @ReturnType, @StockSysNo, @CreateUserSysNo, @CreateTime,
                            @ReceiveUserSysNo, @ReceiveTime, @InstockTime, @InstockUserSysNo,
                            @ShelveTime, @ShelveUserSysNo, @UpdateUserSysNo, @UpdateTime,
                            @Note
                            )";
            SqlCommand cmd = new SqlCommand(sql);

            SqlParameter paramSysNo = new SqlParameter("@SysNo", SqlDbType.Int, 4);
            SqlParameter paramSRID = new SqlParameter("@SRID", SqlDbType.Char, 10);
            SqlParameter paramSOSysNo = new SqlParameter("@SOSysNo", SqlDbType.Int, 4);
            SqlParameter paramStatus = new SqlParameter("@Status", SqlDbType.Int, 4);
            SqlParameter paramReturnType = new SqlParameter("@ReturnType", SqlDbType.Int, 4);
            SqlParameter paramStockSysNo = new SqlParameter("@StockSysNo", SqlDbType.Int, 4);
            SqlParameter paramCreateUserSysNo = new SqlParameter("@CreateUserSysNo", SqlDbType.Int, 4);
            SqlParameter paramCreateTime = new SqlParameter("@CreateTime", SqlDbType.DateTime);
            SqlParameter paramReceiveUserSysNo = new SqlParameter("@ReceiveUserSysNo", SqlDbType.Int, 4);
            SqlParameter paramReceiveTime = new SqlParameter("@ReceiveTime", SqlDbType.DateTime);
            SqlParameter paramInstockTime = new SqlParameter("@InstockTime", SqlDbType.DateTime);
            SqlParameter paramInstockUserSysNo = new SqlParameter("@InstockUserSysNo", SqlDbType.Int, 4);
            SqlParameter paramShelveTime = new SqlParameter("@ShelveTime", SqlDbType.DateTime);
            SqlParameter paramShelveUserSysNo = new SqlParameter("@ShelveUserSysNo", SqlDbType.Int, 4);
            SqlParameter paramUpdateUserSysNo = new SqlParameter("@UpdateUserSysNo", SqlDbType.Int, 4);
            SqlParameter paramUpdateTime = new SqlParameter("@UpdateTime", SqlDbType.DateTime);
            SqlParameter paramNote = new SqlParameter("@Note", SqlDbType.NVarChar, 500);

            if (oParam.SysNo != AppConst.IntNull)
                paramSysNo.Value = oParam.SysNo;
            else
                paramSysNo.Value = System.DBNull.Value;
            if (oParam.SRID != AppConst.StringNull)
                paramSRID.Value = oParam.SRID;
            else
                paramSRID.Value = System.DBNull.Value;
            if (oParam.SOSysNo != AppConst.IntNull)
                paramSOSysNo.Value = oParam.SOSysNo;
            else
                paramSOSysNo.Value = System.DBNull.Value;
            if (oParam.Status != AppConst.IntNull)
                paramStatus.Value = oParam.Status;
            else
                paramStatus.Value = System.DBNull.Value;
            if (oParam.ReturnType != AppConst.IntNull)
                paramReturnType.Value = oParam.ReturnType;
            else
                paramReturnType.Value = System.DBNull.Value;
            if (oParam.StockSysNo != AppConst.IntNull)
                paramStockSysNo.Value = oParam.StockSysNo;
            else
                paramStockSysNo.Value = System.DBNull.Value;
            if (oParam.CreateUserSysNo != AppConst.IntNull)
                paramCreateUserSysNo.Value = oParam.CreateUserSysNo;
            else
                paramCreateUserSysNo.Value = System.DBNull.Value;
            if (oParam.CreateTime != AppConst.DateTimeNull)
                paramCreateTime.Value = oParam.CreateTime;
            else
                paramCreateTime.Value = System.DBNull.Value;
            if (oParam.ReceiveUserSysNo != AppConst.IntNull)
                paramReceiveUserSysNo.Value = oParam.ReceiveUserSysNo;
            else
                paramReceiveUserSysNo.Value = System.DBNull.Value;
            if (oParam.ReceiveTime != AppConst.DateTimeNull)
                paramReceiveTime.Value = oParam.ReceiveTime;
            else
                paramReceiveTime.Value = System.DBNull.Value;
            if (oParam.InstockTime != AppConst.DateTimeNull)
                paramInstockTime.Value = oParam.InstockTime;
            else
                paramInstockTime.Value = System.DBNull.Value;
            if (oParam.InstockUserSysNo != AppConst.IntNull)
                paramInstockUserSysNo.Value = oParam.InstockUserSysNo;
            else
                paramInstockUserSysNo.Value = System.DBNull.Value;
            if (oParam.ShelveTime != AppConst.DateTimeNull)
                paramShelveTime.Value = oParam.ShelveTime;
            else
                paramShelveTime.Value = System.DBNull.Value;
            if (oParam.ShelveUserSysNo != AppConst.IntNull)
                paramShelveUserSysNo.Value = oParam.ShelveUserSysNo;
            else
                paramShelveUserSysNo.Value = System.DBNull.Value;
            if (oParam.UpdateUserSysNo != AppConst.IntNull)
                paramUpdateUserSysNo.Value = oParam.UpdateUserSysNo;
            else
                paramUpdateUserSysNo.Value = System.DBNull.Value;
            if (oParam.UpdateTime != AppConst.DateTimeNull)
                paramUpdateTime.Value = oParam.UpdateTime;
            else
                paramUpdateTime.Value = System.DBNull.Value;
            if (oParam.Note != AppConst.StringNull)
                paramNote.Value = oParam.Note;
            else
                paramNote.Value = System.DBNull.Value;

            cmd.Parameters.Add(paramSysNo);
            cmd.Parameters.Add(paramSRID);
            cmd.Parameters.Add(paramSOSysNo);
            cmd.Parameters.Add(paramStatus);
            cmd.Parameters.Add(paramReturnType);
            cmd.Parameters.Add(paramStockSysNo);
            cmd.Parameters.Add(paramCreateUserSysNo);
            cmd.Parameters.Add(paramCreateTime);
            cmd.Parameters.Add(paramReceiveUserSysNo);
            cmd.Parameters.Add(paramReceiveTime);
            cmd.Parameters.Add(paramInstockTime);
            cmd.Parameters.Add(paramInstockUserSysNo);
            cmd.Parameters.Add(paramShelveTime);
            cmd.Parameters.Add(paramShelveUserSysNo);
            cmd.Parameters.Add(paramUpdateUserSysNo);
            cmd.Parameters.Add(paramUpdateTime);
            cmd.Parameters.Add(paramNote);

            return SqlHelper.ExecuteNonQuery(cmd);
        }
Esempio n. 4
0
 private int InsertSRMaster(SRInfo oParam)
 {
     oParam.SRID = this.BuildSRID(oParam.SysNo);
     return new SRDac().InsertMaster(oParam);
 }
Esempio n. 5
0
 private void map(SRInfo oParam, DataRow tempdr)
 {
     oParam.SysNo = Util.TrimIntNull(tempdr["SysNo"]);
     oParam.SRID = Util.TrimNull(tempdr["SRID"]);
     oParam.SOSysNo = Util.TrimIntNull(tempdr["SOSysNo"]);
     oParam.Status = Util.TrimIntNull(tempdr["Status"]);
     oParam.ReturnType = Util.TrimIntNull(tempdr["ReturnType"]);
     oParam.StockSysNo = Util.TrimIntNull(tempdr["StockSysNo"]);
     oParam.CreateUserSysNo = Util.TrimIntNull(tempdr["CreateUserSysNo"]);
     oParam.CreateTime = Util.TrimDateNull(tempdr["CreateTime"]);
     oParam.ReceiveUserSysNo = Util.TrimIntNull(tempdr["ReceiveUserSysNo"]);
     oParam.ReceiveTime = Util.TrimDateNull(tempdr["ReceiveTime"]);
     oParam.InstockTime = Util.TrimDateNull(tempdr["InstockTime"]);
     oParam.InstockUserSysNo = Util.TrimIntNull(tempdr["InstockUserSysNo"]);
     oParam.ShelveTime = Util.TrimDateNull(tempdr["ShelveTime"]);
     oParam.ShelveUserSysNo = Util.TrimIntNull(tempdr["ShelveUserSysNo"]);
     oParam.UpdateUserSysNo = Util.TrimIntNull(tempdr["UpdateUserSysNo"]);
     oParam.UpdateTime = Util.TrimDateNull(tempdr["UpdateTime"]);
     oParam.Note = Util.TrimNull(tempdr["Note"]);
 }
Esempio n. 6
0
 public void UpdateSRMaster(SRInfo oParam)
 {
     new SRDac().UpdateMaster(oParam);
 }
Esempio n. 7
0
        private void InsertSRItem(SRItemInfo oParam, SRInfo srInfo)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                new SRDac().InsertItem(oParam);
                scope.Complete();
            }
        }
Esempio n. 8
0
        public void ShelveSR(SRInfo oParam)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //�����˻���
                this.UpdateSRMaster(oParam);

                //������Ʒ���ÿ����Ϣ
                foreach (SRItemInfo item in oParam.ItemHash.Values)
                {
                    InventoryManager.GetInstance().SetAvailableQty2(oParam.StockSysNo, item.ProductSysNo, item.Quantity);
                }

                scope.Complete();
            }
        }
Esempio n. 9
0
        public void ReceiveSR(SRInfo oParam)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //���¶���״̬
                if (oParam.ReturnType == (int)AppEnum.SRReturnType.PartlyReturn)
                {
                    Hashtable ht = new Hashtable();
                    ht.Add("SysNo", oParam.SOSysNo);
                    ht.Add("Status", (int)AppEnum.SOStatus.PartlyReturn);
                    SaleManager.GetInstance().UpdateSOMaster(ht);
                }
                else if (oParam.ReturnType == (int)AppEnum.SRReturnType.Return)
                {
                    Hashtable ht = new Hashtable();
                    ht.Add("SysNo", oParam.SOSysNo);
                    ht.Add("Status", (int)AppEnum.SOStatus.Return);
                    SaleManager.GetInstance().UpdateSOMaster(ht);
                }
                SOInfo soInfo = SaleManager.GetInstance().LoadSO(oParam.SOSysNo);

                //����SOItemReturnQty
                foreach (SRItemInfo sritem in oParam.ItemHash.Values)
                {
                    foreach (SOItemInfo item in soInfo.ItemHash.Values)
                    {
                        if (item.ProductSysNo == sritem.ProductSysNo)
                        {
                            SaleManager.GetInstance().UpdateSOItemReturnQty(oParam.SOSysNo, item.ProductSysNo, sritem.Quantity);
                        }
                    }
                }

                //�����˻���
                this.UpdateSRMaster(oParam);

                scope.Complete();
            }
        }
Esempio n. 10
0
 public SRInfo Load(int sysno)
 {
     try
     {
         SRInfo oInfo = new SRInfo();
         string sql = "select * from SR_Master (NOLOCK) where sysno=" + sysno;
         DataSet ds = SqlHelper.ExecuteDataSet(sql);
         if (Util.HasMoreRow(ds))
         {
             DataRow dr = ds.Tables[0].Rows[0];
             map(oInfo, dr);
             string itemSql = @"select SR_Item.*
                                from  SR_Master (NOLOCK)
                                inner join  SR_Item (NOLOCK) on SR_Item.SRSysNo = SR_Master.SysNo
                                where SR_Master.sysno=" + sysno;
             DataSet itemds = SqlHelper.ExecuteDataSet(itemSql);
             if (Util.HasMoreRow(itemds))
             {
                 foreach (DataRow itemdr in itemds.Tables[0].Rows)
                 {
                     SRItemInfo oSRItem = new SRItemInfo();
                     map(oSRItem, itemdr);
                     oInfo.ItemHash.Add(Util.TrimIntNull(itemdr["SysNo"]), oSRItem);
                 }
             }
         }
         return oInfo;
     }
     catch
     {
         throw new BizException("Load SRInfo Error!");
     }
 }
Esempio n. 11
0
        public void InStockSR(SRInfo oParam)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //�����˻���
                this.UpdateSRMaster(oParam);

                //������Ʒ��������Ϣ
                foreach (SRItemInfo item in oParam.ItemHash.Values)
                {
                    InventoryManager.GetInstance().SetInStockQty2(oParam.StockSysNo, item.ProductSysNo, item.Quantity);
                }

                SOInfo soInfo = SaleManager.GetInstance().LoadSO(oParam.SOSysNo);

                //�����ͻ�֧������
                if (soInfo.Status == (int)AppEnum.SOStatus.Return)//ȫ���˻�����,�����˻�����������
                {
                    PointManager.GetInstance().SetScore(soInfo.CustomerSysNo, soInfo.PointPay, (int)AppEnum.PointLogType.ReturnProduct, soInfo.SysNo.ToString());
                }

                //�޸Ķ������͵Ļ���
                int soPointAmt = 0;
                int PointAmt = 0;

                if (soInfo.Status == (int)AppEnum.SOStatus.PartlyReturn)
                {
                    foreach (SOItemInfo oItem in soInfo.ItemHash.Values)
                    {
                        if (oItem.ReturnQty > 0 && oItem.Point > 0)
                        {
                            PointAmt += oItem.ReturnQty * oItem.Point;
                        }
                    }
                    soPointAmt = soInfo.PointAmt - PointAmt;
                }
                else if (soInfo.Status == (int)AppEnum.SOStatus.Return)
                {
                    soPointAmt = 0;
                }

                Hashtable ht = new Hashtable();
                ht.Add("SysNo", soInfo.SysNo);
                ht.Add("PointAmt", soPointAmt);
                SaleManager.GetInstance().UpdateSOMaster(ht);

                //�۳����ͻ���
                SalePointDelayInfo spInfo = PointManager.GetInstance().LoadValid(soInfo.SysNo);
                if (spInfo != null)
                {
                    if (spInfo.Status == (int)AppEnum.TriStatus.Handled)//�����Ѿ�����ͻ��˻����۳���Ӧ����
                    {
                        PointManager.GetInstance().SetScore(soInfo.CustomerSysNo, soPointAmt * (-1), (int)AppEnum.PointLogType.ReturnProduct, soInfo.SysNo.ToString());
                    }
                    //���»������ͼ�¼״̬
                    spInfo.Status = (int)AppEnum.TriStatus.Abandon;
                    PointManager.GetInstance().UpdatePointDelay(spInfo);
                }

                scope.Complete();
            }
        }
Esempio n. 12
0
        public void CreateSR(SRInfo srInfo)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //�����˻�������
                srInfo.SysNo = SequenceDac.GetInstance().Create("SR_Sequence");
                this.InsertSRMaster(srInfo);

                //�����˻�����Ʒ��ϸ
                int itemCount = 0;
                foreach (SRItemInfo item in srInfo.ItemHash.Values)
                {
                    if (item.Quantity > 0)  //�ų�����Ϊ������
                    {
                        item.SRSysNo = srInfo.SysNo;
                        this.InsertSRItem(item, srInfo);

                        itemCount++;
                    }
                }
                if (itemCount == 0)  //���˻���Ʒ
                {
                    throw new BizException("��ѡ����˻���Ʒ����Ϊ0��");
                }
                scope.Complete();
            }
        }