Beispiel #1
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);
        }
Beispiel #2
0
        public DataTable DeleteRemittanceItemFromTransaction(Guid txID, long fnremittrnceItemID, bool isFromAdvanceGrid)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
            long remittanceId = 0;
            FnRemittanceDataset remittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.FnRemittanceItemRow remittanceItemRow = remittanceDS.FnRemittanceItem.FindByRemittanceItemID(fnremittrnceItemID);
            if (remittanceItemRow != null && !remittanceItemRow.IsNull("RemittanceID"))
            {
                remittanceId = remittanceItemRow.RemittanceID;
            }

            if (!isFromAdvanceGrid)
            {
                if (remittanceItemRow.IsImportFromAdvance)
                {
                    errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("CanNotDeleteItemInsertFromAdvance"));
                }

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

            FnRemittanceService.UpdateTotalRemittanceAmount(txID, remittanceId);

            return(remittanceDS.FnRemittanceItem);
        }
        public void UpdateRemittanceAdvanceTransaction(Guid txtID, FnRemittanceAdvance fnRemittanceAdvance)
        {
            this.ValidateRemittanceAdvance(fnRemittanceAdvance);

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

            #region FnRemittanceAdvance
            FnRemittanceDataset.FnRemittanceAdvanceRow fnRemittanceAdvanceRow = fnRemittanceDS.FnRemittanceAdvance.FindByRemittanceAdvanceID(fnRemittanceAdvance.RemittanceAdvanceID);

            fnRemittanceAdvanceRow.BeginEdit();

            if (fnRemittanceAdvance.Remittance != null)
            {
                fnRemittanceAdvanceRow.RemittanceID = fnRemittanceAdvance.Remittance.RemittanceID;
            }
            if (fnRemittanceAdvance.Advance != null)
            {
                fnRemittanceAdvanceRow.AdvanceID = fnRemittanceAdvance.Advance.AdvanceID;
            }
            fnRemittanceAdvanceRow.Active  = fnRemittanceAdvance.Active;
            fnRemittanceAdvanceRow.CreBy   = UserAccount.UserID;
            fnRemittanceAdvanceRow.CreDate = DateTime.Now;
            fnRemittanceAdvanceRow.UpdBy   = UserAccount.UserID;
            fnRemittanceAdvanceRow.UpdDate = DateTime.Now;
            fnRemittanceAdvanceRow.UpdPgm  = UserAccount.CurrentProgramCode;

            fnRemittanceAdvanceRow.EndEdit();
            #endregion
        }
        public long AddFnRemittanceAdvanceTransaction(Guid txID, FnRemittanceAdvance fnRemittanceAdvance)
        {
            //Initial Data for another table.
            FnRemittanceDataset fnRemittanceDocumentDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.FnRemittanceAdvanceRow fnRemittanceAdvanceRow = fnRemittanceDocumentDS.FnRemittanceAdvance.NewFnRemittanceAdvanceRow();;

            if (fnRemittanceAdvance.Remittance != null)
            {
                fnRemittanceAdvanceRow.RemittanceID = fnRemittanceAdvance.Remittance.RemittanceID;
            }
            if (fnRemittanceAdvance.Advance != null)
            {
                fnRemittanceAdvanceRow.AdvanceID = fnRemittanceAdvance.Advance.AdvanceID;
            }
            fnRemittanceAdvanceRow.Active  = fnRemittanceAdvance.Active;
            fnRemittanceAdvanceRow.CreBy   = UserAccount.UserID;
            fnRemittanceAdvanceRow.CreDate = DateTime.Now;
            fnRemittanceAdvanceRow.UpdBy   = UserAccount.UserID;
            fnRemittanceAdvanceRow.UpdDate = DateTime.Now;
            fnRemittanceAdvanceRow.UpdPgm  = UserAccount.CurrentProgramCode;

            fnRemittanceDocumentDS.FnRemittanceAdvance.AddFnRemittanceAdvanceRow(fnRemittanceAdvanceRow);

            return(fnRemittanceAdvanceRow.RemittanceAdvanceID);
        }
Beispiel #5
0
        public void SaveRemittanceItem(Guid txID, long remittanceID)
        {
            FnRemittanceDataset ds = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.FnRemittanceItemDataTable itemDt = new FnRemittanceDataset.FnRemittanceItemDataTable();
            foreach (FnRemittanceDataset.FnRemittanceItemRow row in ds.FnRemittanceItem.Select())
            {
                FnRemittanceDataset.FnRemittanceItemRow tempRow = itemDt.NewFnRemittanceItemRow();
                tempRow.RemittanceID             = row.RemittanceID;
                tempRow.PaymentType              = row.PaymentType;
                tempRow.CurrencyID               = row.CurrencyID;
                tempRow.ForeignCurrencyAdvanced  = (double)Math.Round((decimal)row.ForeignCurrencyAdvanced, 2, MidpointRounding.AwayFromZero);
                tempRow.ExchangeRate             = (double)Math.Round((decimal)row.ExchangeRate, 5, MidpointRounding.AwayFromZero);
                tempRow.ForeignCurrencyRemitted  = (double)Math.Round((decimal)row.ForeignCurrencyRemitted, 2, MidpointRounding.AwayFromZero);
                tempRow.ForeignAmountTHBAdvanced = (double)Math.Round((decimal)row.ForeignAmountTHBAdvanced, 2, MidpointRounding.AwayFromZero);
                tempRow.AmountTHB       = (double)Math.Round((decimal)row.AmountTHB, 2, MidpointRounding.AwayFromZero);
                tempRow.ExchangeRateTHB = (double)Math.Round((decimal)row.ExchangeRateTHB, 5, MidpointRounding.AwayFromZero);
                tempRow.ForeignAmountMainCurrencyAdvanced = (double)Math.Round((decimal)row.ForeignAmountMainCurrencyAdvanced, 2, MidpointRounding.AwayFromZero);
                tempRow.MainCurrencyAmount  = (double)Math.Round((decimal)row.MainCurrencyAmount, 2, MidpointRounding.AwayFromZero);
                tempRow.IsImportFromAdvance = row.IsImportFromAdvance;
                tempRow.Active  = row.Active;
                tempRow.CreBy   = row.CreBy;
                tempRow.CreDate = row.CreDate;
                tempRow.UpdBy   = row.UpdBy;
                tempRow.UpdDate = row.UpdDate;
                tempRow.UpdPgm  = row.UpdPgm;
                itemDt.AddFnRemittanceItemRow(tempRow);
            }

            //ScgeAccountingDaoProvider.FnRemittanceItemDao.Persist(ds.FnRemittanceItem);
            ScgeAccountingDaoProvider.FnRemittanceItemDao.Persist(itemDt);
        }
        public void PrepareDataToDataset(FnRemittanceDataset remittanceDataset, long remittanceID)
        {
            IList <FnRemittanceAdvance> remittanceAdvanceList = ScgeAccountingQueryProvider.FnRemittanceAdvanceQuery.FindRemittanceAdvanceByRemittanceID(remittanceID);

            if (remittanceAdvanceList.Count > 0)
            {
                foreach (FnRemittanceAdvance remittanceAdvance in remittanceAdvanceList)
                {
                    FnRemittanceDataset.FnRemittanceAdvanceRow remittanceAdvanceRow = remittanceDataset.FnRemittanceAdvance.NewFnRemittanceAdvanceRow();
                    remittanceAdvanceRow.RemittanceAdvanceID = remittanceAdvance.RemittanceAdvanceID;

                    if (remittanceAdvance.Remittance != null)
                    {
                        remittanceAdvanceRow.RemittanceID = remittanceAdvance.Remittance.RemittanceID;
                    }
                    if (remittanceAdvance.Advance != null)
                    {
                        remittanceAdvanceRow.AdvanceID = remittanceAdvance.Advance.AdvanceID;
                    }
                    remittanceAdvanceRow.Active  = remittanceAdvance.Active;
                    remittanceAdvanceRow.CreBy   = remittanceAdvance.CreBy;
                    remittanceAdvanceRow.CreDate = remittanceAdvance.CreDate;
                    remittanceAdvanceRow.UpdBy   = remittanceAdvance.UpdBy;
                    remittanceAdvanceRow.UpdDate = remittanceAdvance.UpdDate;
                    remittanceAdvanceRow.UpdPgm  = remittanceAdvance.UpdPgm;

                    remittanceDataset.FnRemittanceAdvance.AddFnRemittanceAdvanceRow(remittanceAdvanceRow);
                }
            }
        }
Beispiel #7
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();
            }
        }
Beispiel #8
0
        public DataSet PrepareDS(long documentID)
        {
            FnRemittanceDataset FnRemittanceDS = this.PrepareDataToDataset(documentID, false);

            FnRemittanceDS.AcceptChanges();

            return(FnRemittanceDS);
        }
Beispiel #9
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);
        }
Beispiel #10
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
        }
        public DataTable DeleteRemittanceAdvanceFromTransaction(Guid txID, long advanceID, long remittanceID)
        {
            FnRemittanceDataset fnRemittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.FnRemittanceAdvanceDataTable remittanceAdvanceTable = fnRemittanceDS.FnRemittanceAdvance;
            foreach (FnRemittanceDataset.FnRemittanceAdvanceRow row in remittanceAdvanceTable.Select())
            {
                if (row.RemittanceID == remittanceID && row.AdvanceID == advanceID)
                {
                    row.Delete();
                    break;
                }
            }

            return(remittanceAdvanceTable);
            //return fnRemittanceDS.FnRemittanceAdvance;
        }
        //public void InsertRemittanceAdvance(Guid txID, long tempfnRemittanceID)
        //{
        //    FnRemittanceDataset fnRemittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);
        //    FnRemittance fnRemittance = ScgeAccountingQueryProvider.FnRemittanceQuery.FindProxyByIdentity(tempfnRemittanceID);
        //    FnRemittanceDataset.FnRemittanceAdvanceDataTable insertTable = (FnRemittanceDataset.FnRemittanceAdvanceDataTable)fnRemittanceDS.FnRemittanceAdvance.GetChanges(DataRowState.Added);

        //    if (insertTable != null)
        //    {
        //        foreach (FnRemittanceDataset.FnRemittanceAdvanceRow row in insertTable.Rows)
        //        {
        //            FnRemittanceAdvance remittanceAdvance = new FnRemittanceAdvance();
        //            remittanceAdvance.Remittance = fnRemittance;
        //            remittanceAdvance.Advance = new AvAdvanceDocument(row.AdvanceID);
        //            remittanceAdvance.Active = row.Active;
        //            remittanceAdvance.CreBy = row.CreBy;
        //            remittanceAdvance.CreDate = row.CreDate;
        //            remittanceAdvance.UpdBy = row.UpdBy;
        //            remittanceAdvance.UpdDate = row.UpdDate;
        //            remittanceAdvance.UpdPgm = row.UpdPgm;

        //            // if row.BudgetCostElementID < 0 is new record that no data in database.
        //            if (row.RemittanceAdvanceID < 0)
        //            {
        //                ScgeAccountingDaoProvider.FnRemittanceAdvanceDao.Save(remittanceAdvance);
        //            }
        //        }
        //    }
        //}
        //public void UpdateRemittanceAdvance(Guid txID, long tempfnRemittanceID)
        //{
        //    FnRemittanceDataset fnRemittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);
        //    FnRemittance fnRemittance = ScgeAccountingQueryProvider.FnRemittanceQuery.FindProxyByIdentity(tempfnRemittanceID);
        //    FnRemittanceDataset.FnRemittanceAdvanceDataTable updateTable = (FnRemittanceDataset.FnRemittanceAdvanceDataTable)fnRemittanceDS.FnRemittanceAdvance.GetChanges(DataRowState.Modified);

        //    if (updateTable != null)
        //    {
        //        foreach (FnRemittanceDataset.FnRemittanceAdvanceRow row in updateTable.Rows)
        //        {
        //            FnRemittanceAdvance remittanceAdvance;
        //            if (row.RemittanceAdvanceID < 0)
        //            {
        //                remittanceAdvance = new FnRemittanceAdvance();
        //            }
        //            else
        //            {
        //                remittanceAdvance = ScgeAccountingQueryProvider.FnRemittanceAdvanceQuery.FindProxyByIdentity(row.RemittanceAdvanceID);
        //            }
        //            remittanceAdvance.Remittance = fnRemittance;
        //            remittanceAdvance.Advance = new AvAdvanceDocument(row.AdvanceID);
        //            remittanceAdvance.Active = row.Active;
        //            remittanceAdvance.CreBy = row.CreBy;
        //            remittanceAdvance.CreDate = row.CreDate;
        //            remittanceAdvance.UpdBy = row.UpdBy;
        //            remittanceAdvance.UpdDate = row.UpdDate;
        //            remittanceAdvance.UpdPgm = row.UpdPgm;

        //            // if row.BudgetCostElementID < 0 is new record that no data in database.
        //            if (row.RemittanceAdvanceID < 0)
        //            {
        //                ScgeAccountingDaoProvider.FnRemittanceAdvanceDao.Save(remittanceAdvance);
        //            }
        //            else
        //            {
        //                ScgeAccountingDaoProvider.FnRemittanceAdvanceDao.SaveOrUpdate(remittanceAdvance);
        //            }
        //        }
        //    }
        //}
        //public void DeleteRemittanceAdvance(Guid txID)
        //{
        //    FnRemittanceDataset fnRemittanceDS = (FnRemittanceDataset)TransactionService.GetDS(txID);
        //    FnRemittanceDataset.FnRemittanceAdvanceDataTable deleteTable = (FnRemittanceDataset.FnRemittanceAdvanceDataTable)fnRemittanceDS.FnRemittanceAdvance.GetChanges(DataRowState.Deleted);

        //    if (deleteTable != null)
        //    {
        //        foreach (FnRemittanceDataset.FnRemittanceItemRow row in deleteTable.Rows)
        //        {
        //            long remittanceItemID = Convert.ToInt64(row["RemittanceItemID", DataRowVersion.Original].ToString());
        //            if (remittanceItemID > 0)
        //            {
        //                FnRemittanceItem remittanceItem = ScgeAccountingQueryProvider.FnRemittanceItemQuery.FindProxyByIdentity(remittanceItemID);
        //                if (remittanceItem != null)
        //                {
        //                    ScgeAccountingDaoProvider.FnRemittanceItemDao.Delete(remittanceItem);
        //                }
        //            }
        //        }
        //    }
        //}

        public void SaveRemittanceAdvance(Guid txID, long remittanceID)
        {
            FnRemittanceDataset ds = (FnRemittanceDataset)TransactionService.GetDS(txID);

            FnRemittanceDataset.FnRemittanceAdvanceDataTable tempAdvance = new FnRemittanceDataset.FnRemittanceAdvanceDataTable();
            foreach (FnRemittanceDataset.FnRemittanceAdvanceRow row in ds.FnRemittanceAdvance.Select())
            {
                FnRemittanceDataset.FnRemittanceAdvanceRow tempRow = tempAdvance.NewFnRemittanceAdvanceRow();
                tempRow.RemittanceID = row.RemittanceID;
                tempRow.AdvanceID    = row.AdvanceID;
                tempRow.Active       = row.Active;
                tempRow.CreBy        = row.CreBy;
                tempRow.CreDate      = row.CreDate;
                tempRow.UpdBy        = row.UpdBy;
                tempRow.UpdDate      = row.UpdDate;
                tempRow.UpdPgm       = row.UpdPgm;
                tempAdvance.AddFnRemittanceAdvanceRow(tempRow);
            }

            //ScgeAccountingDaoProvider.FnRemittanceAdvanceDao.Persist(ds.FnRemittanceAdvance);
            ScgeAccountingDaoProvider.FnRemittanceAdvanceDao.Persist(tempAdvance);
        }
Beispiel #13
0
        public void PrepareDataToDataset(FnRemittanceDataset remittanceDataset, long remittanceID)
        {
            IList <FnRemittanceItem> remittanceItemList = ScgeAccountingQueryProvider.FnRemittanceItemQuery.FindRemittanceItemByRemittanceID(remittanceID);

            if (remittanceItemList.Count > 0)
            {
                foreach (FnRemittanceItem remittanceItem in remittanceItemList)
                {
                    FnRemittanceDataset.FnRemittanceItemRow remittanceItemRow = remittanceDataset.FnRemittanceItem.NewFnRemittanceItemRow();
                    remittanceItemRow.RemittanceItemID = remittanceItem.RemittanceItemID;
                    if (remittanceItem.Remittance != null)
                    {
                        remittanceItemRow.RemittanceID = remittanceItem.Remittance.RemittanceID;
                    }
                    remittanceItemRow.PaymentType = remittanceItem.PaymentType;
                    if (remittanceItem.Currency != null)
                    {
                        remittanceItemRow.CurrencyID = remittanceItem.Currency.CurrencyID;
                    }
                    remittanceItemRow.ForeignCurrencyAdvanced = remittanceItem.ForeignCurrencyAdvanced;
                    remittanceItemRow.ExchangeRate            = remittanceItem.ExchangeRate;
                    remittanceItemRow.ForeignCurrencyRemitted = remittanceItem.ForeignCurrencyRemitted;
                    remittanceItemRow.AmountTHB       = remittanceItem.AmountTHB;
                    remittanceItemRow.ExchangeRateTHB = remittanceItem.ExchangeRateTHB;
                    remittanceItemRow.ForeignAmountMainCurrencyAdvanced = remittanceItem.ForeignAmountMainCurrencyAdvanced;
                    remittanceItemRow.MainCurrencyAmount  = remittanceItem.MainCurrencyAmount;
                    remittanceItemRow.IsImportFromAdvance = remittanceItem.IsImportFromAdvance;
                    remittanceItemRow.Active  = remittanceItem.Active;
                    remittanceItemRow.CreBy   = remittanceItem.CreBy;
                    remittanceItemRow.CreDate = remittanceItem.CreDate;
                    remittanceItemRow.UpdBy   = remittanceItem.UpdBy;
                    remittanceItemRow.UpdDate = remittanceItem.UpdDate;
                    remittanceItemRow.UpdPgm  = remittanceItem.UpdPgm;
                    remittanceItemRow.ForeignAmountTHBAdvanced = remittanceItem.ForeignAmountTHBAdvanced;
                    remittanceDataset.FnRemittanceItem.AddFnRemittanceItemRow(remittanceItemRow);
                }
            }
        }
Beispiel #14
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);
            }
        }
Beispiel #15
0
        public void UpdateRemittanceItemTransaction(Guid txtID, FnRemittanceItem fnRemittanceItem, bool isFromAddItemIngrid)
        {
            this.ValidateRemittanceItem(fnRemittanceItem, isFromAddItemIngrid);

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

            #region FnRemittanceItem
            FnRemittanceDataset.FnRemittanceItemRow fnRemittanceItemRow = fnRemittanceDS.FnRemittanceItem.FindByRemittanceItemID(fnRemittanceItem.RemittanceItemID);

            fnRemittanceItemRow.BeginEdit();
            if (fnRemittanceItem.Remittance != null)
            {
                fnRemittanceItemRow.RemittanceID = fnRemittanceItem.Remittance.RemittanceID;
            }
            fnRemittanceItemRow.PaymentType              = fnRemittanceItem.PaymentType;
            fnRemittanceItemRow.CurrencyID               = fnRemittanceItem.Currency.CurrencyID;
            fnRemittanceItemRow.ForeignCurrencyAdvanced  = (double)Math.Round((decimal)fnRemittanceItem.ForeignCurrencyAdvanced, 2, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.ExchangeRate             = (double)Math.Round((decimal)fnRemittanceItem.ExchangeRate, 5, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.ForeignCurrencyRemitted  = (double)Math.Round((decimal)fnRemittanceItem.ForeignCurrencyRemitted, 2, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.ForeignAmountTHBAdvanced = (double)Math.Round((decimal)fnRemittanceItem.ForeignAmountTHBAdvanced, 2, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.AmountTHB       = (double)Math.Round((decimal)fnRemittanceItem.AmountTHB, 2, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.ExchangeRateTHB = (double)Math.Round((decimal)fnRemittanceItem.ExchangeRateTHB, 5, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.ForeignAmountMainCurrencyAdvanced = (double)Math.Round((decimal)fnRemittanceItem.ForeignAmountMainCurrencyAdvanced, 2, MidpointRounding.AwayFromZero);
            fnRemittanceItemRow.MainCurrencyAmount = (double)Math.Round((decimal)fnRemittanceItem.MainCurrencyAmount, 2, MidpointRounding.AwayFromZero);
            // Change from default IsImportFromAdvance = true to use data from screen, prevent error by Anuwat S. on 08/05/2009
            fnRemittanceItemRow.IsImportFromAdvance = fnRemittanceItem.IsImportFromAdvance;
            fnRemittanceItemRow.Active  = fnRemittanceItem.Active;
            fnRemittanceItemRow.CreBy   = UserAccount.UserID;
            fnRemittanceItemRow.CreDate = DateTime.Now;
            fnRemittanceItemRow.UpdBy   = UserAccount.UserID;
            fnRemittanceItemRow.UpdDate = DateTime.Now;
            fnRemittanceItemRow.UpdPgm  = UserAccount.CurrentProgramCode;

            fnRemittanceItemRow.EndEdit();
            #endregion
        }
Beispiel #16
0
        public long AddFnRemittanceItemTransaction(Guid txID, FnRemittanceItem fnRemittanceItem, bool isFromAddvance, double totalAdvance)
        {
            Spring.Validation.ValidationErrors errors  = new Spring.Validation.ValidationErrors();
            FnRemittanceDataset fnRemittanceDocumentDS = (FnRemittanceDataset)TransactionService.GetDS(txID);

            DataRow[] dr;
            //FnRemittanceDataset.FnRemittanceRow remittanceRow = fnRemittanceDocumentDS.FnRemittance.FindByRemittanceID(fnRemittanceItem.Remittance.RemittanceID);
            if (fnRemittanceItem.Remittance.PB.Pbid != 0)
            {
                Dbpb dbPb = ScgDbQueryProvider.DbPBQuery.FindByIdentity(Convert.ToInt64(fnRemittanceItem.Remittance.PB.Pbid));
                IsRepOffice = dbPb.RepOffice;
            }
            if (isFromAddvance)
            {
                string strSQL = " PaymentType = '{0}' AND CurrencyID = {1} ";
                dr = fnRemittanceDocumentDS.FnRemittanceItem.Select(string.Format(strSQL, fnRemittanceItem.PaymentType, fnRemittanceItem.Currency.CurrencyID));
            }
            else
            {
                if (fnRemittanceItem.Currency == null)
                {
                    errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("CurrencyIsRequire"));
                }
                if (fnRemittanceItem.ExchangeRate == 0 || fnRemittanceItem.ForeignCurrencyRemitted == 0)
                {
                    errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("ExchangerateAndForeignCurrencyRemittedMustMoreThanZero"));
                }
                double totalRemittanceItemAmount = 0;
                foreach (FnRemittanceDataset.FnRemittanceItemRow remittanceItemRow in fnRemittanceDocumentDS.FnRemittanceItem.Select())
                {
                    if (!IsRepOffice)
                    {
                        totalRemittanceItemAmount += (double)Math.Round((decimal)remittanceItemRow.AmountTHB, 2, MidpointRounding.AwayFromZero);
                    }
                    else
                    {
                        totalRemittanceItemAmount += (double)Math.Round((decimal)remittanceItemRow.MainCurrencyAmount, 2, MidpointRounding.AwayFromZero);
                    }
                }
                if (!IsRepOffice)
                {
                    if (totalRemittanceItemAmount + fnRemittanceItem.AmountTHB > totalAdvance)
                    {
                        errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("TotalRemittanceItemNotMoreThanTotalAdvance"));
                    }
                }
                else
                {
                    if (totalRemittanceItemAmount + fnRemittanceItem.MainCurrencyAmount > totalAdvance)
                    {
                        errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("TotalRemittanceItemNotMoreThanTotalAdvance"));
                    }
                }
                if (!errors.IsEmpty)
                {
                    throw new ServiceValidationException(errors);
                }
                dr = fnRemittanceDocumentDS.FnRemittanceItem.Select(string.Format("CurrencyID = {0}", fnRemittanceItem.Currency.CurrencyID.ToString()));
            }
            if (dr.Length > 0)
            {
                if (isFromAddvance)
                {
                    dr[0]["ForeignAmountTHBAdvanced"] = Convert.ToDouble(dr[0]["ForeignAmountTHBAdvanced"]) + fnRemittanceItem.ForeignAmountTHBAdvanced;
                    dr[0]["ForeignCurrencyAdvanced"]  = Convert.ToDouble(dr[0]["ForeignCurrencyAdvanced"]) + fnRemittanceItem.ForeignCurrencyAdvanced;

                    if (Convert.ToDouble(dr[0]["ExchangeRate"]).Equals(0))
                    {
                        dr[0]["ExchangeRate"] = fnRemittanceItem.ExchangeRate;
                    }
                    else
                    {
                        dr[0]["ExchangeRate"] = (Convert.ToDouble(dr[0]["ExchangeRate"]) + fnRemittanceItem.ExchangeRate) / 2;
                    }
                }
                else
                {
                    errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("DuplicateCurrency"));
                }
                if (!errors.IsEmpty)
                {
                    throw new ServiceValidationException(errors);
                }
                return(Convert.ToInt64(dr[0]["RemittanceItemID"]));
            }
            else
            {
                FnRemittanceDataset.FnRemittanceItemRow fnRemittanceItemRow = fnRemittanceDocumentDS.FnRemittanceItem.NewFnRemittanceItemRow();

                if (fnRemittanceItem.Remittance != null)
                {
                    fnRemittanceItemRow.RemittanceID = fnRemittanceItem.Remittance.RemittanceID;
                }
                fnRemittanceItemRow.PaymentType                       = fnRemittanceItem.PaymentType;
                fnRemittanceItemRow.CurrencyID                        = fnRemittanceItem.Currency.CurrencyID;
                fnRemittanceItemRow.ForeignCurrencyAdvanced           = (double)Math.Round((decimal)fnRemittanceItem.ForeignCurrencyAdvanced, 2, MidpointRounding.AwayFromZero);
                fnRemittanceItemRow.ExchangeRate                      = (double)Math.Round((decimal)fnRemittanceItem.ExchangeRate, 5, MidpointRounding.AwayFromZero);
                fnRemittanceItemRow.ForeignCurrencyRemitted           = (double)Math.Round((decimal)fnRemittanceItem.ForeignCurrencyRemitted, 2, MidpointRounding.AwayFromZero);
                fnRemittanceItemRow.ForeignAmountTHBAdvanced          = (double)Math.Round((decimal)fnRemittanceItem.ForeignAmountTHBAdvanced, 2, MidpointRounding.AwayFromZero);
                fnRemittanceItemRow.ExchangeRateTHB                   = (double)Math.Round((decimal)fnRemittanceItem.ExchangeRateTHB, 5, MidpointRounding.AwayFromZero);
                fnRemittanceItemRow.ForeignAmountMainCurrencyAdvanced = (double)Math.Round((decimal)fnRemittanceItem.ForeignAmountMainCurrencyAdvanced, 2, MidpointRounding.AwayFromZero);

                if (isFromAddvance)
                {
                    fnRemittanceItemRow.AmountTHB          = 0.00;
                    fnRemittanceItemRow.MainCurrencyAmount = 0.00;
                }
                else
                {
                    fnRemittanceItemRow.AmountTHB          = (double)Math.Round((decimal)fnRemittanceItem.AmountTHB, 2, MidpointRounding.AwayFromZero);
                    fnRemittanceItemRow.MainCurrencyAmount = (double)Math.Round((decimal)fnRemittanceItem.MainCurrencyAmount, 2, MidpointRounding.AwayFromZero);
                }
                fnRemittanceItemRow.IsImportFromAdvance = isFromAddvance;
                fnRemittanceItemRow.Active  = fnRemittanceItem.Active;
                fnRemittanceItemRow.CreBy   = UserAccount.UserID;
                fnRemittanceItemRow.CreDate = DateTime.Now;
                fnRemittanceItemRow.UpdBy   = UserAccount.UserID;
                fnRemittanceItemRow.UpdDate = DateTime.Now;
                fnRemittanceItemRow.UpdPgm  = UserAccount.CurrentProgramCode;
                fnRemittanceDocumentDS.FnRemittanceItem.AddFnRemittanceItemRow(fnRemittanceItemRow);

                FnRemittanceService.UpdateTotalRemittanceAmount(txID, fnRemittanceItemRow.RemittanceID);

                return(fnRemittanceItemRow.RemittanceItemID);
            }
        }
Beispiel #17
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);
        }
Beispiel #18
0
        public DataSet PrepareDS()
        {
            FnRemittanceDataset FnRemittanceDS = new FnRemittanceDataset();

            return(FnRemittanceDS);
        }