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 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);
                }
            }
        }
        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);
        }
        //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);
        }