Пример #1
0
        public ResultModel ReceStockComplete(UserModel user, int allotId)
        {
            ResultModel result = new ResultModel();

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    DAL.ReceivableAllotDAL receivableAllotDAL = new ReceivableAllotDAL();
                    result = receivableAllotDAL.Get(user, allotId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.ReceivableAllot receivableAllot = result.ReturnValue as Model.ReceivableAllot;
                    if (receivableAllot == null || receivableAllot.ReceivableAllotId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "收款分配不存在";
                        return result;
                    }

                    //收款分配完成
                    result = receivableAllotDAL.Confirm(user, receivableAllot);
                    if (result.ResultStatus != 0)
                        return result;

                    //根据收款分配ID获取公司收款分配
                    DAL.CorpReceivableDAL corpReceivableDAL = new CorpReceivableDAL();
                    result = corpReceivableDAL.GetCorpReceivableByAllotId(user, allotId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<Model.CorpReceivable> corpReceivables = result.ReturnValue as List<Model.CorpReceivable>;
                    if (corpReceivables == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "公司收款分配不存在";
                        return result;
                    }

                    //公司收款分配完成
                    foreach (Model.CorpReceivable corpReceivable in corpReceivables)
                    {
                        result = corpReceivableDAL.Complete(user, corpReceivable);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    //根据收款分配ID获取合约收款分配
                    DAL.ContractReceivableDAL contractReceivableDAL = new ContractReceivableDAL();
                    result = contractReceivableDAL.GetContractReceivableByAllotId(user, allotId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<Model.ContractReceivable> contractReceivables = result.ReturnValue as List<Model.ContractReceivable>;
                    if (contractReceivables == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "合约收款分配不存在";
                        return result;
                    }

                    //合约收款分配完成
                    foreach (Model.ContractReceivable contractReceivable in contractReceivables)
                    {
                        result = contractReceivableDAL.Complete(user, contractReceivable);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    //根据收款分配ID获取库存收款分配
                    DAL.StcokReceivableDAL stcokReceivableDAL = new StcokReceivableDAL();
                    result = stcokReceivableDAL.GetStockReceivableByAllotId(user, allotId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<Model.StcokReceivable> stcokReceivables = result.ReturnValue as List<Model.StcokReceivable>;
                    if (stcokReceivables == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "库存收款分配不存在";
                        return result;
                    }

                    //库存收款分配完成
                    foreach (Model.StcokReceivable stcokReceivable in stcokReceivables)
                    {
                        result = stcokReceivableDAL.Complete(user, stcokReceivable);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.ResultStatus = -1;
            }

            return result;
        }