public override object Do(object obj)
        {
            RedFlushPrePaymentBP bpObj = (RedFlushPrePaymentBP)obj;

            if (bpObj == null)
            {
                return(false);
            }

            List <CommonDTO> resultList = new List <CommonDTO>();

            using (ISession session = Session.Open())
            {
                foreach (PrePaymentHeadDTO headDto in bpObj.PrePaymentHeadDTOs)
                {
                    UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Finder.FindByID(headDto.SrcPrePayDocID);
                    if (doc != null)
                    {
                        CommonDTO result = new CommonDTO();
                        result.ID = CreatePrePayment(doc, headDto);

                        resultList.Add(result);
                    }
                }
                session.Commit();
            }

            return(resultList);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 复核
 /// </summary>
 /// <param name="dtoList"></param>
 /// <param name="entityList"></param>
 /// <param name="isCancel"></param>
 private void Review(List <CommonDTO> dtoList, List <UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey> entityList, bool isCancel)
 {
     foreach (UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey key in entityList)
     {
         UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = key.GetEntity();
         if (doc != null)
         {
             if (!isCancel)
             {
                 doc.IsReview = true;
                 doc.ReviewBy = Context.LoginUser;
                 doc.ReviewOn = DateTime.Now;
             }
             else
             {
                 if (doc.IsFinal)
                 {
                     throw new Exception("已终审,不允许取消复核!");
                 }
                 doc.IsReview = false;
                 doc.ReviewBy = string.Empty;
                 doc.ReviewOn = DateTime.MinValue;
             }
         }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 新增预付款通知单行
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="lineDto"></param>
        private void CreatePrePaymentLine(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc, PrePaymentLineDTO lineDto, int lineNum)
        {
            UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Create(doc);
            line.LineNum     = lineNum;
            line.SrcPOKey    = lineDto.PurchaseOrder;
            line.PrePayMoney = lineDto.PrePayMoney;
            line.ActualMoeny = lineDto.PrePayMoney;

            line.SrcMoveDocID   = lineDto.SrcMoveDocID;
            line.SrcMoveDocNo   = lineDto.SrcMoveDocNo;
            line.SrcMoveLineID  = lineDto.SrcMoveLineID;
            line.SrcMoveLineNum = lineDto.SrcMoveLineNum;
        }
        /// <summary>
        /// 给单头赋值
        /// </summary>
        /// <param name="headDto"></param>
        /// <param name="doc"></param>
        private void SetPrePaymentHead(PrePaymentHeadDTO headDto, UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc)
        {
            doc.DocumentTypeKey = headDto.DocumentType;
            doc.SrcDocType      = EnumBE.PrePaySrcDocTypeEnum.PO;
            doc.CurrencyKey     = headDto.Currency;
            doc.SupplierKey     = headDto.Supplier;
            doc.POOrgKey        = headDto.POOrg;
            doc.BusinessDate    = DateTime.Today;
            doc.DeptKey         = headDto.Dept;
            doc.BuyerKey        = headDto.Buyer;
            doc.PrePayDate      = doc.BusinessDate;

            if (headDto.POOrg != null)
            {
                doc.AccountPeriod = PubHelperExtend.GetSOBAccountingPeriod(doc.BusinessDate, headDto.POOrg.GetEntity().ID);
            }
        }
        /// <summary>
        /// 创建红字的预付款通知单
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="headDto"></param>
        private long CreatePrePayment(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc, PrePaymentHeadDTO headDto)
        {
            UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment head = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Create();
            head.DocumentTypeKey = headDto.DocumentType;
            head.SrcDocType      = EnumBE.PrePaySrcDocTypeEnum.PO;
            head.CurrencyKey     = doc.CurrencyKey;
            head.SupplierKey     = doc.SupplierKey;
            head.POOrgKey        = doc.POOrgKey;
            head.BusinessDate    = DateTime.Today;
            head.DeptKey         = doc.DeptKey;
            head.BuyerKey        = doc.BuyerKey;
            head.PrePayDate      = head.BusinessDate;

            if (doc.POOrg != null)
            {
                head.AccountPeriod = PubHelperExtend.GetSOBAccountingPeriod(head.BusinessDate, doc.POOrg.ID);
            }

            head.SrcPrePayDocID = doc.ID;
            head.SrcPrePayDocNo = doc.DocNo;

            int lineNum = 10;//行号

            foreach (PrePaymentLineDTO lineDto in headDto.PrePaymentLineDTOs)
            {
                UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Create(head);
                line.LineNum     = lineNum;
                line.SrcPOKey    = lineDto.PurchaseOrder;
                line.PrePayMoney = lineDto.ThisRedMoney;
                line.ActualMoeny = lineDto.ThisRedMoney;

                UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine oldLine = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Finder.FindByID(lineDto.SrcPrePayLineID);
                if (oldLine != null)
                {
                    oldLine.SumRedFlushMoney = oldLine.SumRedFlushMoney + lineDto.ThisRedMoney;

                    if (oldLine.SrcPO != null)
                    {
                        UpdatePORedMoney(oldLine.SrcPO.ID, lineDto.ThisRedMoney);
                    }
                }
            }
            return(head.ID);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 退款
 /// </summary>
 /// <param name="dtoList"></param>
 /// <param name="entityList"></param>
 /// <param name="isCancel"></param>
 private void Refund(List <CommonDTO> dtoList, List <UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey> entityList, bool isCancel)
 {
     foreach (UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey key in entityList)
     {
         UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = key.GetEntity();
         if (doc != null)
         {
             if (!isCancel)
             {
                 doc.IsRefund = true;
                 doc.RefundBy = Context.LoginUser;
                 doc.RefundOn = DateTime.Now;
             }
             else
             {
                 doc.IsRefund = false;
                 doc.RefundBy = string.Empty;
                 doc.RefundOn = DateTime.MinValue;
             }
         }
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 修改预付款通知单行中的挪出数量
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="lineDto"></param>
        private void UpdatePrePaymentLine(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc, PrePaymentLineDTO lineDto)
        {
            UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Finder.FindByID(lineDto.ID);
            if (line != null)
            {
                line.SumMoveMoney = line.SumMoveMoney + lineDto.ThisMoveMoney;

                if (line.SrcPO != null)
                {
                    UFIDA.U9.PM.PO.PurchaseOrder poDoc = UFIDA.U9.PM.PO.PurchaseOrder.Finder.FindByID(line.SrcPO.ID);
                    if (poDoc != null)
                    {
                        decimal sumMoveMoney = 0;
                        if (!string.IsNullOrEmpty(poDoc.DescFlexField.PrivateDescSeg6))
                        {
                            sumMoveMoney = decimal.Parse(poDoc.DescFlexField.PrivateDescSeg6);
                        }
                        sumMoveMoney = sumMoveMoney + lineDto.ThisMoveMoney;
                        poDoc.DescFlexField.PrivateDescSeg6 = sumMoveMoney.ToString();
                    }
                }
            }
        }
Ejemplo n.º 8
0
        public override object Do(object obj)
        {
            PrePaymentMoveBP bpObj = (PrePaymentMoveBP)obj;

            if (bpObj == null)
            {
                return(false);
            }

            using (ISession session = Session.Open())
            {
                foreach (PrePaymentHeadDTO head in bpObj.PrePaymentHeadDTOs)
                {
                    UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Finder.FindByID(head.ID);
                    if (doc != null)
                    {
                        int lineNum = GetMaxLineNum(doc.ID);
                        foreach (PrePaymentLineDTO lineDto in head.PrePaymentLineDTOs)
                        {
                            if (lineDto.ID > 0L)
                            {
                                UpdatePrePaymentLine(doc, lineDto);
                            }
                            else
                            {
                                CreatePrePaymentLine(doc, lineDto, lineNum);

                                lineNum = lineNum + 10;
                            }
                        }
                    }
                }
                session.Commit();
            }

            return(true);
        }
        public override object Do(object obj)
        {
            BatchCreatePrePaymentBP bpObj = (BatchCreatePrePaymentBP)obj;

            if (bpObj == null)
            {
                return(null);
            }

            List <CommonDTO> resultList = new List <CommonDTO>();

            using (ISession session = Session.Open())
            {
                foreach (PrePaymentHeadDTO headDto in bpObj.PrePaymentHeadDTOs)
                {
                    UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Create();

                    SetPrePaymentHead(headDto, doc);

                    int lineNum = 10;//行号
                    foreach (PrePaymentLineDTO lineDto in headDto.PrePaymentLineDTOs)
                    {
                        UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Create(doc);

                        SetPrePaymentLine(lineDto, line, lineNum);

                        lineNum = lineNum + 10;
                    }

                    CommonDTO result = new CommonDTO();
                    result.ID = doc.ID;//返回新创建的预付款通知单ID
                    resultList.Add(result);
                }
                session.Commit();
            }
            return(resultList);
        }
Ejemplo n.º 10
0
 private static PrePaymentLine CreateDefault_Extend(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment parentEntity)
 {
     //TODO delete next code and add your custome code here
     throw new NotImplementedException();
 }
Ejemplo n.º 11
0
        public override object Do(object obj)
        {
            ApprovedPrePaymentBP bpObj = (ApprovedPrePaymentBP)obj;

            ErrorMessageDTO dto = new ErrorMessageDTO();

            if (bpObj == null)
            {
                dto.IsSuccess    = false;
                dto.ErrorMessage = "没有可返回的信息!";
                return(dto);
            }

            UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment mDoc = bpObj.EntityKey.GetEntity();

            if (mDoc == null)
            {
                dto.IsSuccess    = false;
                dto.ErrorMessage = "单据不存在或者已删除!";
                return(dto);
            }

            try
            {
                if (bpObj.Type == 0)
                {
                    //提交
                    using (Session s = Session.Open())
                    {
                        mDoc.StateMachineInstance.Opened_SubmitEventDriven(new UFIDA.U9.Cust.GS.FI.PrePaymentBE.SubmintEvent());
                        s.InList(mDoc);
                        s.Commit();
                    }
                }

                else if (bpObj.Type == 1)
                {
                    //审核
                    using (Session s = Session.Open())
                    {
                        mDoc.StateMachineInstance.Approving_ApproveEventDriven(new UFIDA.U9.GeneralEvents.ApprovalResultEvent());
                        s.InList(mDoc);
                        s.Commit();
                    }
                }
                else if (bpObj.Type == 2)
                {
                    //弃审
                    using (Session s = Session.Open())
                    {
                        mDoc.StateMachineInstance.Approved_UnApprovedEventDriven(new UFIDA.U9.Cust.GS.FI.PrePaymentBE.UnApprovedEvent());
                        s.InList(mDoc);
                        s.Commit();
                    }
                }
                else if (bpObj.Type == 3)
                {
                    //收回
                    using (Session s = Session.Open())
                    {
                        ApprovalService.Instance.CanRevocateAfterSubmit(mDoc, long.Parse(UFIDA.U9.Base.Context.LoginUserID.ToString()));
                        ApprovalService.Instance.RevocateAfterSubmit(mDoc, long.Parse(UFIDA.U9.Base.Context.LoginUserID.ToString()));
                        s.InList(mDoc);
                        s.Commit();
                    }
                }
                dto.IsSuccess = true;
            }
            catch (Exception ex)
            {
                dto.IsSuccess    = false;
                dto.ErrorMessage = ex.Message;
            }
            return(dto);
        }