public void DeleteItemOnTransaction(Guid txId, long itemId)
        {
            ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceItemRow row = expDs.FnExpenseInvoiceItem.FindByInvoiceItemID(itemId);
            row.Delete();
        }
        public void AddMileageInvoiceItem(FnExpenseInvoiceItem item, Guid txId)
        {
            ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceItemRow row = ds.FnExpenseInvoiceItem.NewFnExpenseInvoiceItemRow();

            if (item.Invoice != null)
            {
                row.InvoiceID = item.Invoice.InvoiceID;
            }
            if (item.CostCenter != null)
            {
                row.CostCenterID = item.CostCenter.CostCenterID;
            }

            if (item.Account != null)
            {
                row.AccountID = item.Account.AccountID;
            }

            if (item.IO != null)
            {
                row.IOID = item.IO.IOID;
            }

            if (item.CurrencyID.HasValue)
            {
                row.CurrencyID = item.CurrencyID.Value;
            }
            if (item.Amount.HasValue)
            {
                row.Amount = item.Amount.Value;
            }
            if (item.ExchangeRate.HasValue)
            {
                row.ExchangeRate = item.ExchangeRate.Value;
            }
            if (item.CurrencyAmount.HasValue)
            {
                row.CurrencyAmount = item.CurrencyAmount.Value;
            }

            row.SaleOrder   = item.SaleOrder;
            row.SaleItem    = item.SaleItem;
            row.Description = item.Description;
            row.ReferenceNo = item.ReferenceNo;

            row.Active  = true;
            row.CreBy   = UserAccount.UserID;
            row.CreDate = DateTime.Now;
            row.UpdBy   = UserAccount.UserID;
            row.UpdDate = DateTime.Now;
            row.UpdPgm  = UserAccount.CurrentProgramCode;

            ds.FnExpenseInvoiceItem.AddFnExpenseInvoiceItemRow(row);
        }
Esempio n. 3
0
        public void UpdateDomesticInvoiceItemOnTransaction(FnExpenseInvoiceItem item, Guid txId)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();

            if (item.CostCenter == null)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredCostCenter"));
            }
            if (item.Account == null)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAccountCode"));
            }
            if (item.IO == null)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredIO"));
            }
            if (!item.Amount.HasValue)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAmount"));
            }

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

            ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceItemRow row = ds.FnExpenseInvoiceItem.FindByInvoiceItemID(item.InvoiceItemID);

            //row.ExpenseID = item.Expense.ExpenseID;
            //row.InvoiceID = item.Invoice.InvoiceID;
            row.CostCenterID = item.CostCenter.CostCenterID;
            row.AccountID    = item.Account.AccountID;
            row.IOID         = item.IO.IOID;

            if (item.Amount.HasValue)
            {
                row.Amount = (decimal)item.Amount.Value;
            }
            //if (item.ExchangeRate.HasValue)
            //    row.ExchangeRate = (decimal)item.ExchangeRate;

            row.Description = item.Description;
            row.ReferenceNo = item.ReferenceNo;
            row.CreBy       = item.CreBy;
            row.CreDate     = item.CreDate;
            row.UpdBy       = item.UpdBy;
            row.UpdDate     = item.UpdDate;
            row.UpdPgm      = item.UpdPgm;
            row.Active      = true;

            ds.FnExpenseInvoiceItem.AddFnExpenseInvoiceItemRow(row);
        }
Esempio n. 4
0
 public string DisplayCurrency(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceItemRow row = (ExpenseDataSet.FnExpenseInvoiceItemRow)obj;
     if (!string.IsNullOrEmpty(row["CurrencyID"].ToString()))
     {
         DbCurrency currency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(UIHelper.ParseShort(row["CurrencyID"].ToString()));
         if (currency != null)
         {
             return(Server.HtmlEncode(currency.Symbol));
         }
     }
     return(string.Empty);
 }
Esempio n. 5
0
 public string DisplayCostCenter(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceItemRow row = (ExpenseDataSet.FnExpenseInvoiceItemRow)obj;
     if (!string.IsNullOrEmpty(row["CostCenterID"].ToString()))
     {
         DbCostCenter costCenter = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(row.CostCenterID);
         if (costCenter != null)
         {
             return(Server.HtmlEncode(costCenter.CostCenterCode));
         }
     }
     return(string.Empty);
 }
Esempio n. 6
0
 public string DisplayAccount(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceItemRow row = (ExpenseDataSet.FnExpenseInvoiceItemRow)obj;
     if (!string.IsNullOrEmpty(row["AccountID"].ToString()))
     {
         IList <AccountLang> account = ScgDbQueryProvider.DbAccountLangQuery.FindByDbAccountLangKey(row.AccountID, UserAccount.CurrentLanguageID);
         if (account.Count > 0)
         {
             return(Server.HtmlEncode(String.Format("{0}-{1}", account[0].AccountCode, account[0].AccountName)));
         }
     }
     return(string.Empty);
 }
Esempio n. 7
0
 public string DisplayIO(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceItemRow row = (ExpenseDataSet.FnExpenseInvoiceItemRow)obj;
     if (!string.IsNullOrEmpty(row["IOID"].ToString()))
     {
         DbInternalOrder io = ScgDbQueryProvider.DbIOQuery.FindByIdentity(row.IOID);
         if (io != null)
         {
             return(Server.HtmlEncode(io.IONumber));
         }
     }
     return(string.Empty);
 }
Esempio n. 8
0
        public void AddBeginRowInvoiceItemOnTransaction(FnExpenseInvoiceItem item, Guid txId)
        {
            ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceItemRow row = ds.FnExpenseInvoiceItem.NewFnExpenseInvoiceItemRow();

            row.InvoiceID = item.Invoice.InvoiceID;

            row.CreBy   = item.CreBy;
            row.CreDate = item.CreDate;
            row.UpdBy   = item.UpdBy;
            row.UpdDate = item.UpdDate;
            row.UpdPgm  = item.UpdPgm;
            row.Active  = true;

            ds.FnExpenseInvoiceItem.AddFnExpenseInvoiceItemRow(row);
        }
        public void AddRecommendInvoiceItemOnTransaction(long invoiceId, string expenseType, IList <FnExpenseInvoiceItem> recommendList, Guid txId)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();

            ExpenseDataSet ds              = (ExpenseDataSet)TransactionService.GetDS(txId);
            short?         mainCurrencyID  = null;
            short?         localCurrencyID = null;

            if (ds.FnExpenseDocument.Rows.Count > 0)
            {
                if (!string.IsNullOrEmpty(ds.FnExpenseDocument.Rows[0]["MainCurrencyID"].ToString()) && Convert.ToInt16(ds.FnExpenseDocument.Rows[0]["MainCurrencyID"].ToString()) > 0)
                {
                    mainCurrencyID = Convert.ToInt16(ds.FnExpenseDocument.Rows[0]["MainCurrencyID"].ToString());
                }

                if (!string.IsNullOrEmpty(ds.FnExpenseDocument.Rows[0]["LocalCurrencyID"].ToString()) && Convert.ToInt16(ds.FnExpenseDocument.Rows[0]["MainCurrencyID"].ToString()) > 0)
                {
                    localCurrencyID = Convert.ToInt16(ds.FnExpenseDocument.Rows[0]["LocalCurrencyID"].ToString());
                }
            }

            foreach (FnExpenseInvoiceItem item in recommendList)
            {
                ExpenseDataSet.FnExpenseInvoiceItemRow row = ds.FnExpenseInvoiceItem.NewFnExpenseInvoiceItemRow();
                row.InvoiceID = invoiceId;

                if (item.CostCenter == null)
                {
                    errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("RequiredCostCenter"));
                }
                if (item.Account == null)
                {
                    errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("RequiredAccountID"));
                }

                if (!errors.IsEmpty)
                {
                    FnExpenseInvoiceService.DeleteInvoiceOnTransaction(invoiceId, txId);
                    throw new ServiceValidationException(errors);
                }

                if (item.CostCenter != null)
                {
                    row.CostCenterID = item.CostCenter.CostCenterID;
                }

                if (item.Account != null)
                {
                    row.AccountID = item.Account.AccountID;
                }

                if (item.IO != null)
                {
                    row.IOID = item.IO.IOID;
                }

                if (item.CurrencyID.HasValue)
                {
                    row.CurrencyID = item.CurrencyID.Value;
                }

                row.Description = item.Description;

                if (item.CurrencyAmount.HasValue)
                {
                    row.CurrencyAmount = item.CurrencyAmount.Value;
                }

                if (item.Amount.HasValue)
                {
                    row.Amount = item.Amount.Value;
                }

                if (item.ExchangeRate.HasValue)
                {
                    row.ExchangeRate = item.ExchangeRate.Value;
                }

                if (mainCurrencyID.HasValue)
                {
                    row.MainCurrencyID = mainCurrencyID.Value;
                }

                if (item.LocalCurrencyAmount.HasValue)
                {
                    row.LocalCurrencyAmount = (decimal)item.LocalCurrencyAmount.Value;
                }

                if (mainCurrencyID == localCurrencyID)
                {
                    row.MainCurrencyAmount = (double)row.LocalCurrencyAmount;
                }

                row.ReferenceNo = item.ReferenceNo;

                row.Active  = true;
                row.CreBy   = UserAccount.UserID;
                row.CreDate = DateTime.Now;
                row.UpdBy   = UserAccount.UserID;
                row.UpdDate = DateTime.Now;
                row.UpdPgm  = UserAccount.CurrentProgramCode;

                ds.FnExpenseInvoiceItem.AddFnExpenseInvoiceItemRow(row);
            }
        }
        public void AddInvoiceItemOnTransaction(FnExpenseInvoiceItem item, Guid txId, string expenseType)
        {
            bool isRepOffice = false;

            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
            ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseDocumentRow expRow = null;
            long documentId = 0;

            if (item.Invoice != null && item.Invoice.Expense != null)
            {
                expRow     = ds.FnExpenseDocument.FindByExpenseID(item.Invoice.Expense.ExpenseID);
                documentId = expRow == null ? 0 : expRow.DocumentID;
                if (!expRow.IsIsRepOfficeNull())
                {
                    isRepOffice = expRow.IsRepOffice;
                }
            }

            // Validate CostCenter.
            if (item.CostCenter == null)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredCostCenter"));
            }
            else
            {
                if (ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(item.CostCenter.CostCenterID) == null)
                {
                    errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredCostCenter"));
                }
            }

            // Validate Account.
            if (item.Account == null)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAccountID"));
            }
            else
            {
                if (ScgDbQueryProvider.DbAccountQuery.FindByIdentity(item.Account.AccountID) == null)
                {
                    errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAccountID"));
                }
            }

            if (!string.IsNullOrEmpty(item.SaleOrder) && item.SaleOrder.Length < 10)
            {
                errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("SaleOrder_Has_10_Digit"));
            }

            if (expenseType.Equals(ZoneType.Domestic))
            {
                // Validate Amount.
                if (!isRepOffice)
                {
                    if (!item.Amount.HasValue || (item.Amount.HasValue && item.Amount.Value == 0))
                    {
                        errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAmount"));
                    }
                }
                else
                {
                    if (!item.LocalCurrencyAmount.HasValue || (item.LocalCurrencyAmount.HasValue && item.LocalCurrencyAmount.Value == 0))
                    {
                        errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAmount"));
                    }
                }
            }
            else if (expenseType.Equals(ZoneType.Foreign))
            {
                // Validate Currency.
                if (!item.CurrencyID.HasValue || (item.CurrencyID.HasValue && item.CurrencyID.Value == 0))
                {
                    errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredCurrency"));
                }
                // Validate Currency Amount.
                if (!item.CurrencyAmount.HasValue || (item.CurrencyAmount.HasValue && item.CurrencyAmount.Value == 0))
                {
                    errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredAmount"));
                }

                // Validate ExchangeRate.
                if (!item.ExchangeRate.HasValue)
                {
                    errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredExchangeRate"));
                }
                else if ((item.ExchangeRate.HasValue) && (item.ExchangeRate.Value == 0))
                {
                    errors.AddError("InvoiceItem.Error", new Spring.Validation.ErrorMessage("RequiredExchangeRate"));
                }
            }
            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }

            ExpenseDataSet.FnExpenseInvoiceItemRow row = ds.FnExpenseInvoiceItem.NewFnExpenseInvoiceItemRow();

            if (item.Invoice != null)
            {
                row.InvoiceID = item.Invoice.InvoiceID;
            }

            if (item.CostCenter != null)
            {
                row.CostCenterID = item.CostCenter.CostCenterID;
            }
            else
            {
                row.SetCostCenterIDNull();
            }

            row.AccountID = item.Account.AccountID;

            if (item.IO != null)
            {
                row.IOID = item.IO.IOID;
            }

            if (item.CurrencyID.HasValue)
            {
                row.CurrencyID = item.CurrencyID.Value;
            }

            if (item.ExchangeRate.HasValue)
            {
                row.ExchangeRate = item.ExchangeRate.Value;
            }

            if (item.CurrencyAmount.HasValue)
            {
                row.CurrencyAmount = item.CurrencyAmount.Value;
            }

            if (item.LocalCurrencyAmount.HasValue)
            {
                row.LocalCurrencyAmount = (decimal)item.LocalCurrencyAmount.Value;
            }

            if (item.MainCurrencyAmount.HasValue)
            {
                row.MainCurrencyAmount = item.MainCurrencyAmount.Value;
            }

            if (expenseType.Equals(ZoneType.Foreign) && !isRepOffice)
            {
                row.Amount = (double)Math.Round((decimal)(item.CurrencyAmount.Value * item.ExchangeRate.Value), 2, MidpointRounding.AwayFromZero);
            }
            else
            {
                if (item.Amount.HasValue)
                {
                    row.Amount = item.Amount.Value;
                }
            }

            row.SaleOrder   = item.SaleOrder;
            row.SaleItem    = item.SaleItem;
            row.Description = item.Description;
            row.ReferenceNo = item.ReferenceNo;

            row.Active  = true;
            row.CreBy   = UserAccount.UserID;
            row.CreDate = DateTime.Now;
            row.UpdBy   = UserAccount.UserID;
            row.UpdDate = DateTime.Now;
            row.UpdPgm  = UserAccount.CurrentProgramCode;

            ds.FnExpenseInvoiceItem.AddFnExpenseInvoiceItemRow(row);
        }
        public void PrepareDataToDataset(ExpenseDataSet ds, long invoiceId)
        {
            IList <FnExpenseInvoiceItem> items = ScgeAccountingQueryProvider.FnExpenseInvoiceItemQuery.GetInvoiceItemByInvoiceID(invoiceId);

            //#region Validate
            //Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
            //if (invoice == null)
            //{
            //    //errors.AddError("Error", new Spring.Validation.ErrorMessage("NoDocumentFound"));
            //}
            //if (!errors.IsEmpty) throw new ServiceValidationException(errors);
            //#endregion

            // Set data to invoice row in Dataset.
            foreach (FnExpenseInvoiceItem item in items)
            {
                ExpenseDataSet.FnExpenseInvoiceItemRow itemRow = ds.FnExpenseInvoiceItem.NewFnExpenseInvoiceItemRow();
                itemRow.InvoiceItemID = item.InvoiceItemID;
                itemRow.InvoiceID     = invoiceId;
                if (item.CostCenter != null)
                {
                    itemRow.CostCenterID = item.CostCenter.CostCenterID;
                }
                if (item.Account != null)
                {
                    itemRow.AccountID = item.Account.AccountID;
                }
                if (item.IO != null)
                {
                    itemRow.IOID = item.IO.IOID;
                }
                if (item.CurrencyID.HasValue)
                {
                    itemRow.CurrencyID = item.CurrencyID.Value;
                }

                itemRow.Description = item.Description;

                if (item.CurrencyAmount.HasValue)
                {
                    itemRow.CurrencyAmount = item.CurrencyAmount.Value;
                }

                if (item.Amount.HasValue)
                {
                    itemRow.Amount = item.Amount.Value;
                }

                if (item.ExchangeRate.HasValue)
                {
                    itemRow.ExchangeRate = item.ExchangeRate.Value;
                }

                if (item.MainCurrencyID.HasValue)
                {
                    itemRow.MainCurrencyID = item.MainCurrencyID.Value;
                }

                if (item.LocalCurrencyAmount.HasValue)
                {
                    itemRow.LocalCurrencyAmount = (decimal)item.LocalCurrencyAmount.Value;
                }

                if (item.MainCurrencyAmount.HasValue)
                {
                    itemRow.MainCurrencyAmount = item.MainCurrencyAmount.Value;
                }

                itemRow.ReferenceNo  = item.ReferenceNo;
                itemRow.VendorCodeAP = item.VendorCodeAP;
                itemRow.SaleOrder    = item.SaleOrder;
                itemRow.SaleItem     = item.SaleItem;
                itemRow.Active       = item.Active;
                itemRow.CreBy        = item.CreBy;
                itemRow.CreDate      = item.CreDate;
                itemRow.UpdBy        = item.UpdBy;
                itemRow.UpdDate      = item.UpdDate;
                itemRow.UpdPgm       = item.UpdPgm;

                // Add invoice row to documentDataset.
                ds.FnExpenseInvoiceItem.AddFnExpenseInvoiceItemRow(itemRow);
            }
        }