Exemplo n.º 1
0
        /// <summary>
        /// 撤销合同关联处理
        /// </summary>
        public void RHTCancel(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 删除付款核销明细数据
                RecPayHTDtsRule dtsRule   = new RecPayHTDtsRule();
                RecPayHTDts     dtsentity = new RecPayHTDts(sqlTrans);
                dtsentity.ID = p_DtsID;
                dtsentity.SelectByID();
                dtsRule.RDelete(dtsentity, sqlTrans);//删除明细实体


                //First 处理收付款主表数据
                entitypay.HTFlag    = (int)YesOrNo.No;
                entitypay.HTAmount -= dtsentity.HTAmount;
                entitypay.HTNo      = entitypay.HTNo.Replace(dtsentity.HTNo, "").Replace(" " + dtsentity.HTNo, "");//替换合同号
                if (entitypay.HTGoodsCode != "")
                {
                    entitypay.HTGoodsCode = entitypay.HTGoodsCode.Replace(dtsentity.HTGoodsCode, "").Replace(" " + dtsentity.HTGoodsCode, "");//替换商品码
                }
                this.RUpdate(entitypay, sqlTrans);

                //关联到采购单或者销售合同资金实际执行表
                if (dtsentity.HTTypeID == (int)EnumRecPayType.收款)
                {
                    SaleOrderCapExDtsRule capRule = new SaleOrderCapExDtsRule();
                    capRule.RHTCancel(dtsentity, sqlTrans);
                }
                else if (dtsentity.HTTypeID == (int)EnumRecPayType.付款)
                {
                    ItemBuyCapExDtsRule capRule = new ItemBuyCapExDtsRule();
                    capRule.RHTCancel(dtsentity, sqlTrans);
                }
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }