예제 #1
0
        public void UpdateTotalRemittanceAmount(Guid txID, long remittanceId)
        {
            FnRemittanceDataset fnRemittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            if (fnRemittanceDS != null)
            {
                double totalRemittanceAmount     = 0;
                double totalRemittanceMainAmount = 0;
                FnRemittanceDataset.FnRemittanceItemRow[] items           = (FnRemittanceDataset.FnRemittanceItemRow[])fnRemittanceDS.FnRemittanceItem.Select();
                FnRemittanceDataset.FnRemittanceRow       fnremittanceRow = fnRemittanceDS.FnRemittance.FindByRemittanceID(remittanceId);
                if (items.Length > 0)
                {
                    totalRemittanceAmount = items.Sum(x => x.AmountTHB);
                    if ((!fnremittanceRow.IsIsRepOfficeNull() && fnremittanceRow.IsRepOffice))
                    {
                        totalRemittanceMainAmount = items.Sum(x => x.MainCurrencyAmount);
                    }
                }

                fnremittanceRow.BeginEdit();
                fnremittanceRow.TotalAmount        = (double)Math.Round((decimal)totalRemittanceAmount, 2, MidpointRounding.AwayFromZero);
                fnremittanceRow.MainCurrencyAmount = (double)Math.Round((decimal)totalRemittanceMainAmount, 2, MidpointRounding.AwayFromZero);
                //fnremittanceRow.IsRepOffice = isRepOffice;
                fnremittanceRow.EndEdit();
            }
        }
예제 #2
0
        public long SaveRemittanceDocument(Guid txID, long remittanceID)
        {
            FnRemittanceDataset remittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.FnRemittanceRow remittanceRow = remittanceDS.FnRemittance.FindByRemittanceID(remittanceID);
            long documentID = remittanceRow.DocumentID;

            documentID = SCGDocumentService.SaveSCGDocument(txID, documentID);

            remittanceID = ScgeAccountingDaoProvider.FnRemittanceDao.Persist(remittanceDS.FnRemittance);

            ScgeAccountingDaoProvider.FnRemittanceDao.DeleteAllRemittanceItemAndRemittanceAdvance(remittanceRow.RemittanceID);

            FnRemittanceItemService.SaveRemittanceItem(txID, remittanceID);

            FnRemittanceAdvanceService.SaveRemittanceAdvance(txID, remittanceID);

            // Add code for update clearing advance by Anuwat S on 19/04/2009

            AvAdvanceDocumentService.UpdateRemittanceAdvance(remittanceID, double.Parse("0" + remittanceDS.FnRemittance.Rows[0]["TotalAmount"].ToString()), false);

            if (!remittanceRow.IsIsRepOfficeNull() && remittanceRow.IsRepOffice)
            {
                AvAdvanceDocumentService.UpdateRemittanceAdvanceForRepOffice(remittanceID, double.Parse("0" + remittanceDS.FnRemittance.Rows[0]["MainCurrencyAmount"].ToString()), false);
            }
            return(remittanceID);
        }
예제 #3
0
        public long AddFnRemittanceDocumentTransaction(Guid txID)
        {
            FnRemittanceDataset fnRemittanceDocumentDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.DocumentRow documentRow = fnRemittanceDocumentDS.Document.NewDocumentRow(); //create new row to dataset.
            fnRemittanceDocumentDS.Document.AddDocumentRow(documentRow);                                    //add new row to dataset.

            FnRemittanceDataset.FnRemittanceRow fnRemittanceDocumentRow = fnRemittanceDocumentDS.FnRemittance.NewFnRemittanceRow();
            fnRemittanceDocumentRow.DocumentID = documentRow.DocumentID;
            fnRemittanceDocumentDS.FnRemittance.AddFnRemittanceRow(fnRemittanceDocumentRow);

            return(fnRemittanceDocumentRow.RemittanceID);
        }
예제 #4
0
        public void UpdateRemittanceDocumentTransaction(Guid txtID, FnRemittance fnRemittance, bool IsHeaderAndFooter)
        {
            this.ValidateRemittance(fnRemittance, IsHeaderAndFooter); // function to validateion of remittance.
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();

            FnRemittanceDataset fnRemittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txtID);

            #region FnRemittanceDocument
            FnRemittanceDataset.FnRemittanceRow fnremittanceRow = fnRemittanceDS.FnRemittance.FindByRemittanceID(fnRemittance.RemittanceID);

            if (!IsHeaderAndFooter && fnremittanceRow.TotalAmount == 0)
            {
                errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("CannotSaveRemittance_TotalRemittanceAmountMustMoreThanZero"));
            }

            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }


            fnremittanceRow.BeginEdit();
            if (fnRemittance.Document != null)
            {
                fnremittanceRow.DocumentID = fnRemittance.Document.DocumentID;
            }
            if (fnRemittance.TADocumentID > 0)
            {
                fnremittanceRow.TADocumentID = fnRemittance.TADocumentID;
            }
            if (fnRemittance.PB != null)
            {
                fnremittanceRow.PBID = fnRemittance.PB.Pbid;
            }
            if (fnRemittance.MainCurrencyID != null)
            {
                fnremittanceRow.MainCurrencyID = fnRemittance.MainCurrencyID;
            }
            //fnremittanceRow.TotalAmount = (double)Math.Round((decimal)fnRemittance.TotalAmount, 2, MidpointRounding.AwayFromZero);
            fnremittanceRow.isFullClearing = fnRemittance.IsFullClearing;
            fnremittanceRow.IsRepOffice    = Convert.ToBoolean(fnRemittance.IsRepOffice);
            fnremittanceRow.Active         = fnRemittance.Active;
            fnremittanceRow.CreBy          = UserAccount.UserID;
            fnremittanceRow.CreDate        = DateTime.Now;
            fnremittanceRow.UpdBy          = UserAccount.UserID;
            fnremittanceRow.UpdDate        = DateTime.Now;;
            fnremittanceRow.UpdPgm         = UserAccount.CurrentProgramCode;

            fnremittanceRow.EndEdit();
            #endregion
        }
예제 #5
0
        public void ValidateRemittanceAdvance(Guid txID, long remittnceID)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();

            FnRemittanceDataset remittanceDs = (FnRemittanceDataset)TransactionService.GetDS(txID);

            DataRow[] rowAdvList = remittanceDs.FnRemittanceAdvance.Select(string.Format("RemittanceID = '{0}'", remittnceID));
            FnRemittanceDataset.FnRemittanceRow remittanceRow = remittanceDs.FnRemittance.FindByRemittanceID(remittnceID);

            if (remittanceRow != null)
            {
                long companyId   = remittanceRow.DocumentRow == null ? 0 : remittanceRow.DocumentRow.CompanyID;
                long requesterId = remittanceRow.DocumentRow == null ? 0 : remittanceRow.DocumentRow.RequesterID;

                foreach (FnRemittanceDataset.FnRemittanceAdvanceRow row in rowAdvList)
                {
                    AvAdvanceDocument adv = ScgeAccountingQueryProvider.AvAdvanceDocumentQuery.FindByIdentity(row.AdvanceID);
                    if (adv != null && adv.DocumentID != null && adv.DocumentID.CompanyID != null)
                    {
                        if (companyId != 0 && adv.DocumentID.CompanyID.CompanyID != companyId)
                        {
                            errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("CanNotSaveRemittance_CompanyIsNotMatch", adv.DocumentID.DocumentNo));  // Company of ADV-xxxxxxx is not match
                        }
                    }
                    if (adv != null && adv.DocumentID != null && adv.DocumentID.RequesterID != null)
                    {
                        if (requesterId != 0 && adv.DocumentID.RequesterID.Userid != requesterId)
                        {
                            errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("CanNotAddAdvance_RequesterIsNotMatch"));  // Requester of ADV-xxxxxxx is not match
                        }
                    }
                }
            }
            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }
        }
예제 #6
0
        public FnRemittanceDataset PrepareDataToDataset(long documentID, bool isCopy)
        {
            FnRemittanceDataset remittanceDS = new FnRemittanceDataset();
            FnRemittance        remittance   = ScgeAccountingQueryProvider.FnRemittanceQuery.GetFnRemittanceByDocumentID(documentID);

            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
            if (remittance == null)
            {
                errors.AddError("Remittance.Error", new Spring.Validation.ErrorMessage("NoRemittanceFound"));
            }
            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }


            // Prepare Data to Document datatable.
            if (!isCopy)
            {
                SCGDocumentService.PrepareDataToDataset(remittanceDS, documentID);
            }
            else
            {
                SCGDocumentService.PrepareDataInternalToDataset(remittanceDS, documentID, isCopy);
            }
            // Set data to Remittance Document row in FnremittanceDS.
            FnRemittanceDataset.FnRemittanceRow remittanceRow = remittanceDS.FnRemittance.NewFnRemittanceRow();
            remittanceRow.RemittanceID = remittance.RemittanceID;
            //remittanceRow.SAPIONo = remittance.SAPIONo;
            if (!isCopy)
            {
                if (remittance.Document != null)
                {
                    remittanceRow.DocumentID = remittance.Document.DocumentID;
                }
                //remittanceRow.PBID = remittance.PB.Pbid;
                remittanceRow.TotalAmount    = remittance.TotalAmount;
                remittanceRow.isFullClearing = remittance.IsFullClearing;
                remittanceRow.TADocumentID   = remittance.TADocumentID;
            }
            else
            {
                if (remittanceDS.Document.Rows.Count > 0)
                {
                    FnRemittanceDataset.DocumentRow docRow = (FnRemittanceDataset.DocumentRow)remittanceDS.Document.Rows[0];
                    remittanceRow.DocumentID = docRow.DocumentID;
                }
            }
            remittanceRow.PBID = remittance.PB.Pbid;
            remittanceRow.MainCurrencyAmount = remittance.MainCurrencyAmount;
            remittanceRow.IsRepOffice        = Convert.ToBoolean(remittance.IsRepOffice);
            remittanceRow.Active             = remittance.Active;
            remittanceRow.CreBy   = remittance.CreBy;
            remittanceRow.CreDate = remittance.CreDate;
            remittanceRow.UpdBy   = remittance.UpdBy;
            remittanceRow.UpdDate = remittance.UpdDate;
            remittanceRow.UpdPgm  = remittance.UpdPgm;
            // Add Remittance document row to FnremittanceDS.
            remittanceDS.FnRemittance.AddFnRemittanceRow(remittanceRow);

            // Prepare Data to RemittanceItem Datatable.
            FnRemittanceItemService.PrepareDataToDataset(remittanceDS, remittance.RemittanceID);

            // Prepare Data to RemittacneAdvance Datatable.
            FnRemittanceAdvanceService.PrepareDataToDataset(remittanceDS, remittance.RemittanceID);

            return(remittanceDS);
        }