Esempio n. 1
0
        /// <summary>
        /// 保存(传入事务处理)
        /// </summary>
        /// <param name="p_Entity"></param>
        /// <param name="p_BE"></param>
        /// <param name="sqlTrans"></param>
        public void RSave(RecPay p_Entity, BaseEntity[] p_BE, IDBTransAccess sqlTrans)
        {
            try
            {
                string sql = "DELETE FROM Finance_RecPayHXDts WHERE MainID=" + p_Entity.ID.ToString();
                sql += " AND ID NOT IN" + string.Format("({0})", GetIDExist(p_BE));
                sqlTrans.ExecuteNonQuery(sql);//删除原单据里应该删除的明细数据,即数据库里有但是UI里已经删除的数据

                for (int i = 0; i < p_BE.Length; i++)
                {
                    RecPayHXDts entitydts = (RecPayHXDts)p_BE[i];
                    if (entitydts.ID != 0)//ID不为0说明数据库中已经存在
                    {
                        entitydts.MainID = p_Entity.ID;
                        this.RUpdate(entitydts, sqlTrans);
                    }
                    else
                    {
                        entitydts.MainID = p_Entity.ID;
                        this.RAdd(entitydts, sqlTrans);
                    }
                }
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="p_Entity">实体类</param>
        /// <returns>操作影响的记录行数</returns>
        public override int Delete(BaseEntity p_Entity)
        {
            try
            {
                RecPayHXDts MasterEntity = (RecPayHXDts)p_Entity;
                if (MasterEntity.ID == 0)
                {
                    return(0);
                }

                //删除主表数据
                string Sql = "";
                Sql = "DELETE FROM Finance_RecPayHXDts WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID);
                //执行
                int AffectedRows = 0;
                if (!this.sqlTransFlag)
                {
                    AffectedRows = this.ExecuteNonQuery(Sql);
                }
                else
                {
                    AffectedRows = sqlTrans.ExecuteNonQuery(Sql);
                }

                return(AffectedRows);
            }
            catch (BaseException E)
            {
                throw new BaseException(E.Message, E);
            }
            catch (Exception E)
            {
                throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBDelete), E);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 核销处理
        /// </summary>
        public void RHX(RecPay entity, int p_InvoiceID, decimal p_HXAmount, IDBTransAccess sqlTrans)
        {
            try
            {
                string sql = string.Empty;
                //First 处理收付款主表数据
                RecPay entitypay = new RecPay(sqlTrans);//处理收付款主表数据
                entitypay.ID = entity.ID;
                entitypay.SelectByID();

                if (entitypay.HXAmount + p_HXAmount > entitypay.ExAmount)
                {
                    throw new Exception("不能操作,核销金额超过了付款未核金额");
                }
                if (entitypay.HXAmount + p_HXAmount == entitypay.ExAmount)
                {
                    entitypay.HXFlag = (int)YesOrNo.Yes;
                }
                entitypay.HXAmount  += p_HXAmount;
                entitypay.NoHXAmount = entitypay.ExAmount - entitypay.HXAmount;
                this.RUpdate(entitypay, sqlTrans);


                //Second
                InvoiceOperationRule invoicerule   = new InvoiceOperationRule();     //处理发票主表数据
                InvoiceOperation     invoiceentity = new InvoiceOperation(sqlTrans); //发票实体
                invoiceentity.ID = p_InvoiceID;
                invoiceentity.SelectByID();
                if (invoiceentity.PayAmount + p_HXAmount > invoiceentity.TotalAmount)
                {
                    throw new Exception("不能操作,核销金额超过了发票未核金额");
                }
                invoiceentity.PayAmount += p_HXAmount;
                invoicerule.RUpdate(invoiceentity, sqlTrans);



                //Third 增加付款核销明细数据
                RecPayHXDtsRule dtsRule   = new RecPayHXDtsRule();
                RecPayHXDts     dtsentity = new RecPayHXDts(sqlTrans);
                dtsentity.MainID             = entity.ID;
                dtsentity.HXOPID             = entity.MakeOPID;
                dtsentity.HXOPName           = entity.MakeOPName;
                dtsentity.HXDate             = DateTime.Now;
                dtsentity.HXAmount           = p_HXAmount;
                dtsentity.InvoiceNo          = invoiceentity.InvoiceNO;
                dtsentity.InvoiceOperationID = p_InvoiceID;
                dtsRule.RAdd(dtsentity, sqlTrans);//增加明细实体
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 获得数据库里没有被删除的ID(即数据库里有而且UI里也没有删除的数据)
        /// </summary>
        /// <param name="p_BE"></param>
        /// <returns></returns>
        private string GetIDExist(BaseEntity[] p_BE)
        {
            string outstr = "0";

            for (int i = 0; i < p_BE.Length; i++)
            {
                RecPayHXDts entitydts = (RecPayHXDts)p_BE[i];
                if (entitydts.ID != 0)
                {
                    outstr += "," + entitydts.ID;
                }
            }
            return(outstr);
        }
Esempio n. 5
0
        /// <summary>
        /// 撤销核销处理
        /// </summary>
        public void RHXCancel(RecPay entity, int p_DtsID, IDBTransAccess sqlTrans)
        {
            try
            {
                string sql = string.Empty;
                //First 处理收付款主表数据
                RecPay entitypay = new RecPay(sqlTrans);//处理收付款主表数据
                entitypay.ID = entity.ID;
                entitypay.SelectByID();

                //Second 删除付款核销明细数据
                RecPayHXDtsRule dtsRule   = new RecPayHXDtsRule();
                RecPayHXDts     dtsentity = new RecPayHXDts(sqlTrans);
                dtsentity.ID = p_DtsID;
                dtsentity.SelectByID();
                dtsRule.RDelete(dtsentity, sqlTrans);//删除明细实体


                //First 处理收付款主表数据
                entitypay.HXFlag     = (int)YesOrNo.No;
                entitypay.HXAmount  -= dtsentity.HXAmount;
                entitypay.NoHXAmount = entitypay.ExAmount - entitypay.HXAmount;
                this.RUpdate(entitypay, sqlTrans);


                //Third 处理发票主表数据
                InvoiceOperationRule invoicerule   = new InvoiceOperationRule();     //处理发票主表数据
                InvoiceOperation     invoiceentity = new InvoiceOperation(sqlTrans); //发票实体
                invoiceentity.ID = dtsentity.InvoiceOperationID;
                invoiceentity.SelectByID();

                invoiceentity.PayAmount -= dtsentity.HXAmount;
                if (invoiceentity.PayAmount < 0)
                {
                    throw new BaseException("撤销后数据有误,请检查,发票的核销金额小于0");
                }
                invoicerule.RUpdate(invoiceentity, sqlTrans);
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }
Esempio n. 6
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="p_BE">要删除的实体</param>
 /// <param name="sqlTrans">事务类</param>
 public void RDelete(BaseEntity p_BE, IDBTransAccess sqlTrans)
 {
     try
     {
         this.CheckCorrect(p_BE);
         RecPayHXDts    entity  = (RecPayHXDts)p_BE;
         RecPayHXDtsCtl control = new RecPayHXDtsCtl(sqlTrans);
         control.Delete(entity);
     }
     catch (BaseException)
     {
         throw;
     }
     catch (Exception E)
     {
         throw new BaseException(E.Message);
     }
 }
Esempio n. 7
0
 /// <summary>
 /// 新增(传入事务处理)
 /// </summary>
 /// <param name="p_BE">要新增的实体</param>
 /// <param name="sqlTrans">事务类</param>
 public void RAdd(BaseEntity p_BE, IDBTransAccess sqlTrans)
 {
     try
     {
         this.CheckCorrect(p_BE);
         RecPayHXDts    entity  = (RecPayHXDts)p_BE;
         RecPayHXDtsCtl control = new RecPayHXDtsCtl(sqlTrans);
         entity.ID = (int)EntityIDTable.GetID((long)SysEntity.Finance_RecPayHXDts, sqlTrans);
         string sql = string.Empty;
         entity.Seq = SysConvert.ToInt32(sqlTrans.Fill("SELECT ISNULL(MAX(Seq),0)+1 AS MSeq FROM Finance_RecPayHXDts WHERE MainID=" + entity.MainID).Rows[0][0]);
         //取最大SEQ值
         control.AddNew(entity);
     }
     catch (BaseException)
     {
         throw;
     }
     catch (Exception E)
     {
         throw new BaseException(E.Message);
     }
 }
Esempio n. 8
0
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="p_Entity">实体类</param>
        /// <returns>操作影响的记录行数</returns>
        public override int AddNew(BaseEntity p_Entity)
        {
            try
            {
                RecPayHXDts MasterEntity = (RecPayHXDts)p_Entity;
                if (MasterEntity.ID == 0)
                {
                    return(0);
                }

                //新增主表数据
                StringBuilder MasterField = new StringBuilder();
                StringBuilder MasterValue = new StringBuilder();
                MasterField.Append("INSERT INTO Finance_RecPayHXDts(");
                MasterValue.Append(" VALUES(");
                MasterField.Append("ID" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.ID) + ",");
                MasterField.Append("MainID" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.MainID) + ",");
                MasterField.Append("Seq" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.Seq) + ",");
                MasterField.Append("HXOPID" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.HXOPID) + ",");
                MasterField.Append("HXOPName" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.HXOPName) + ",");
                MasterField.Append("InvoiceOperationID" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.InvoiceOperationID) + ",");
                MasterField.Append("InvoiceNo" + ",");
                MasterValue.Append(SysString.ToDBString(MasterEntity.InvoiceNo) + ",");
                MasterField.Append("HXDate" + ",");
                if (MasterEntity.HXDate != SystemConfiguration.DateTimeDefaultValue)
                {
                    MasterValue.Append(SysString.ToDBString(MasterEntity.HXDate.ToString("yyyy-MM-dd HH:mm:ss")) + ",");
                }
                else
                {
                    MasterValue.Append("null,");
                }

                MasterField.Append("HXAmount" + ")");
                if (MasterEntity.HXAmount != 0)
                {
                    MasterValue.Append(SysString.ToDBString(MasterEntity.HXAmount) + ")");
                }
                else
                {
                    MasterValue.Append("null)");
                }



                //执行
                int AffectedRows = 0;
                if (!this.sqlTransFlag)
                {
                    AffectedRows = this.ExecuteNonQuery(MasterField.Append(MasterValue.ToString()).ToString());
                }
                else
                {
                    AffectedRows = sqlTrans.ExecuteNonQuery(MasterField.Append(MasterValue.ToString()).ToString());
                }
                return(AffectedRows);
            }
            catch (BaseException E)
            {
                throw new BaseException(E.Message, E);
            }
            catch (Exception E)
            {
                throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBInsert), E);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="p_Entity">实体类</param>
        /// <returns>操作影响的记录行数</returns>
        public override int Update(BaseEntity p_Entity)
        {
            try
            {
                RecPayHXDts MasterEntity = (RecPayHXDts)p_Entity;
                if (MasterEntity.ID == 0)
                {
                    return(0);
                }

                //更新主表数据
                StringBuilder UpdateBuilder = new StringBuilder();
                UpdateBuilder.Append("UPDATE Finance_RecPayHXDts SET ");
                UpdateBuilder.Append(" ID=" + SysString.ToDBString(MasterEntity.ID) + ",");
                UpdateBuilder.Append(" MainID=" + SysString.ToDBString(MasterEntity.MainID) + ",");
                UpdateBuilder.Append(" Seq=" + SysString.ToDBString(MasterEntity.Seq) + ",");
                UpdateBuilder.Append(" HXOPID=" + SysString.ToDBString(MasterEntity.HXOPID) + ",");
                UpdateBuilder.Append(" HXOPName=" + SysString.ToDBString(MasterEntity.HXOPName) + ",");
                UpdateBuilder.Append(" InvoiceOperationID=" + SysString.ToDBString(MasterEntity.InvoiceOperationID) + ",");
                UpdateBuilder.Append(" InvoiceNo=" + SysString.ToDBString(MasterEntity.InvoiceNo) + ",");

                if (MasterEntity.HXDate != SystemConfiguration.DateTimeDefaultValue)
                {
                    UpdateBuilder.Append(" HXDate=" + SysString.ToDBString(MasterEntity.HXDate.ToString("yyyy-MM-dd HH:mm:ss")) + ",");
                }
                else
                {
                    UpdateBuilder.Append(" HXDate=null,");
                }


                if (MasterEntity.HXAmount != 0)
                {
                    UpdateBuilder.Append(" HXAmount=" + SysString.ToDBString(MasterEntity.HXAmount));
                }
                else
                {
                    UpdateBuilder.Append(" HXAmount=null");
                }


                UpdateBuilder.Append(" WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID));



                //执行
                int AffectedRows = 0;
                if (!this.sqlTransFlag)
                {
                    AffectedRows = this.ExecuteNonQuery(UpdateBuilder.ToString());
                }
                else
                {
                    AffectedRows = sqlTrans.ExecuteNonQuery(UpdateBuilder.ToString());
                }
                return(AffectedRows);
            }
            catch (BaseException E)
            {
                throw new BaseException(E.Message, E);
            }
            catch (Exception E)
            {
                throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBUpdate), E);
            }
        }
Esempio n. 10
0
 /// <summary>
 /// 检查将要操作的数据是否符合业务规则
 /// </summary>
 /// <param name="p_BE"></param>
 private void CheckCorrect(BaseEntity p_BE)
 {
     RecPayHXDts entity = (RecPayHXDts)p_BE;
 }