Example #1
0
        public void DeleteInvoiceOnTransaction(FnExpenseInvoice invoice, Guid txId)
        {
            ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceRow row = expDs.FnExpenseInvoice.FindByInvoiceID(invoice.InvoiceID);
            expDs.FnExpenseInvoice.RemoveFnExpenseInvoiceRow(row);
        }
Example #2
0
 public string DisplayVendor(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceRow row = (ExpenseDataSet.FnExpenseInvoiceRow)obj;
     if (!string.IsNullOrEmpty(row["VendorCode"].ToString()) || !string.IsNullOrEmpty(row["VendorName"].ToString()))
     {
         return(Server.HtmlEncode(String.Format("{0}-{1}", row["VendorCode"].ToString(), row["VendorName"].ToString())));
     }
     return(string.Empty);
 }
Example #3
0
        public long AddInvoiceOnTransaction(FnExpenseInvoice invoice, Guid txId)
        {
            ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceRow row = ds.FnExpenseInvoice.NewFnExpenseInvoiceRow();

            ds.FnExpenseInvoice.AddFnExpenseInvoiceRow(row);

            return(row.InvoiceID);
        }
Example #4
0
        private string ShowExpenseGeneral(long invoiceId)
        {
            string         url;
            ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(TransactionId);

            ExpenseDataSet.FnExpenseDocumentRow expenseDocumentRow = expDs.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);
            ExpenseDataSet.FnExpenseInvoiceRow  invoiceRows        = expDs.FnExpenseInvoice.FindByInvoiceID(invoiceId);
            if (invoiceRows != null)
            {
                url = String.Format(string.Concat(invoiceURL, "&invId={4}"), this.TransactionId, this.ExpDocumentID, this.DocumentType, expenseDocumentRow.DocumentID, invoiceId);
            }
            else
            {
                url = String.Format(invoiceURL, this.TransactionId, this.ExpDocumentID, this.DocumentType, expenseDocumentRow.DocumentID);
            }
            return(url);
        }
Example #5
0
        public long AddBeginRowInvoiceOnTransaction(FnExpenseInvoice invoice, Guid txId)
        {
            ExpenseDataSet ds = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseInvoiceRow row = ds.FnExpenseInvoice.NewFnExpenseInvoiceRow();

            row.InvoiceType = invoice.InvoiceType;

            row.Active  = invoice.Active;
            row.CreBy   = invoice.CreBy;
            row.CreDate = invoice.CreDate;
            row.UpdBy   = invoice.UpdBy;
            row.UpdDate = invoice.UpdDate;
            row.UpdPgm  = invoice.UpdPgm;

            ds.FnExpenseInvoice.AddFnExpenseInvoiceRow(row);

            return(row.InvoiceID);
        }
Example #6
0
 public string DisplayInvoiceDate(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceRow row = (ExpenseDataSet.FnExpenseInvoiceRow)obj;
     return(Server.HtmlEncode(UIHelper.BindDate(row["InvoiceDate"].ToString())));
 }
Example #7
0
        protected void ctlRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            string url = string.Empty;

            if (e.Item.DataItem != null)
            {
                ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(TransactionId);
                ExpenseDataSet.FnExpenseInvoiceRow  invoice            = (ExpenseDataSet.FnExpenseInvoiceRow)e.Item.DataItem;
                ExpenseDataSet.FnExpenseDocumentRow expenseDocumentRow = expDs.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);

                PopupCaller popupEdit       = (PopupCaller)e.Item.FindControl("ctlEditPopupCaller");
                PopupCaller popupView       = (PopupCaller)e.Item.FindControl("ctlViewPopupCaller");
                LinkButton  edit            = (LinkButton)e.Item.FindControl("ctlEdit");
                LinkButton  delete          = (LinkButton)e.Item.FindControl("ctlDelete");
                LinkButton  view            = (LinkButton)e.Item.FindControl("ctlView");
                Literal     totalBaseAmount = (Literal)e.Item.FindControl("ctlTotalAmount");
                Literal     totalNetAmount  = (Literal)e.Item.FindControl("ctlNetAmount");

                if (IsRepOffice)
                {
                    totalBaseAmount.Text = UIHelper.BindDecimal(invoice.TotalBaseAmountLocalCurrency.ToString());
                    totalNetAmount.Text  = UIHelper.BindDecimal(invoice.NetAmountLocalCurrency.ToString());
                }
                else
                {
                    totalBaseAmount.Text = UIHelper.BindDecimal(invoice.TotalBaseAmount.ToString());
                    totalNetAmount.Text  = UIHelper.BindDecimal(invoice.NetAmount.ToString());
                }

                if (!invoice.IsInvoiceDocumentTypeNull() && invoice.InvoiceDocumentType.Equals(InvoiceType.Perdiem))
                {
                    popupEdit.URL = ShowPerdiemPopup(FlagEnum.EditFlag, invoice.InvoiceID);
                    popupView.URL = ShowPerdiemPopup(FlagEnum.ViewFlag, invoice.InvoiceID);
                }
                if (!invoice.IsInvoiceDocumentTypeNull() && invoice.InvoiceDocumentType.Equals(InvoiceType.General))
                {
                    url           = ShowExpenseGeneral(invoice.InvoiceID);
                    popupEdit.URL = url.Replace("[mode]", FlagEnum.EditFlag);
                    popupView.URL = url.Replace("[mode]", FlagEnum.ViewFlag);
                }

                // Show Mileage.
                if (!invoice.IsInvoiceDocumentTypeNull() && invoice.InvoiceDocumentType.Equals(InvoiceType.Mileage))
                {
                    popupEdit.URL = ShowMileagePopup(FlagEnum.EditFlag);
                    popupView.URL = ShowMileagePopup(FlagEnum.ViewFlag);
                }

                SS.Standard.WorkFlow.DTO.WorkFlow workflow = SS.Standard.WorkFlow.Query.WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(this.DocumentID);

                if (InitialFlag.Equals(FlagEnum.ViewFlag))
                {
                    edit.Visible   = false;
                    delete.Visible = false;
                    view.Visible   = true;
                }
                else
                {
                    edit.Visible = true;
                    view.Visible = false;

                    if (!invoice.IsInvoiceDocumentTypeNull() && invoice.InvoiceDocumentType.Equals(InvoiceType.Mileage))
                    {
                        delete.Visible = false;
                    }
                    else
                    if (workflow != null && workflow.CurrentState.Name.Equals(WorkFlowStateFlag.Hold))
                    {
                        delete.Visible = false;
                    }
                    else
                    {
                        delete.Visible = true;
                    }
                }

                Literal seq = (Literal)e.Item.FindControl("ctlSeq");

                seq.Text += e.Item.ItemIndex + 1;

                BaseGridView gridview = (BaseGridView)e.Item.FindControl("ctlInvoiceItem");

                string filter = String.Format("InvoiceID = {0}", invoice.InvoiceID);
                gridview.DataSource = expDs.FnExpenseInvoiceItem.Select(filter);
                gridview.DataBind();
            }
        }
        public void UpdateInvoiceItemByInvoiceID(Guid txID, long invoiceId, FnExpenseDocument expenseDocument)
        {
            ExpenseDataSet expDS = (ExpenseDataSet)TransactionService.GetDS(txID);

            ExpenseDataSet.FnExpenseInvoiceRow       invoiceRow = expDS.FnExpenseInvoice.FindByInvoiceID(invoiceId);
            ExpenseDataSet.FnExpenseInvoiceItemRow[] itemRows   = (ExpenseDataSet.FnExpenseInvoiceItemRow[])expDS.FnExpenseInvoiceItem.Select();
            DbAccount account = new DbAccount();

            foreach (ExpenseDataSet.FnExpenseInvoiceItemRow row in itemRows)
            {
                account = ScgDbQueryProvider.DbAccountQuery.FindByIdentity(row.AccountID);
            }
            string filter = String.Format("InvoiceID = {0}", invoiceId);

            DataRow[] rows = expDS.FnExpenseInvoiceItem.Select(filter);
            Dbpb      pb   = null;
            double    totalLocalCurrencyAmount = 0;
            double    totalMainCurrencyAmount  = 0;
            double    totalAmountTHB           = 0;
            bool      isRepOffice = expenseDocument.IsRepOffice.HasValue ? expenseDocument.IsRepOffice.Value : false;

            if (expenseDocument.PB != null)
            {
                pb = ScgDbQueryProvider.DbPBQuery.FindByIdentity(expenseDocument.PB.Pbid);
            }

            foreach (DataRow row in rows)
            {
                FnExpenseInvoiceItem item = new FnExpenseInvoiceItem();
                item.LoadFromDataRow(row);
                item.Invoice.Expense = expenseDocument;
                if (account.SaveAsVendor)
                {
                    if (invoiceRow.isVAT)
                    {
                        if (!invoiceRow.IsVendorIDNull())
                        {
                            item.VendorCodeAP = invoiceRow.VendorCode;
                        }
                    }
                }
                if (isRepOffice)
                {
                    if (expenseDocument.MainCurrencyID.HasValue)
                    {
                        item.MainCurrencyID = expenseDocument.MainCurrencyID.Value;
                    }

                    if (expenseDocument.ExchangeRateForLocalCurrency.HasValue && expenseDocument.ExchangeRateForLocalCurrency.Value != 0)
                    {
                        if (item.LocalCurrencyAmount.HasValue)
                        {
                            if (expenseDocument.MainCurrencyID == expenseDocument.LocalCurrencyID)
                            {
                                item.MainCurrencyAmount = item.LocalCurrencyAmount;
                            }
                            else
                            {
                                item.MainCurrencyAmount = (double)Math.Round((decimal)(item.LocalCurrencyAmount.Value / expenseDocument.ExchangeRateForLocalCurrency.Value), 2, MidpointRounding.AwayFromZero);
                            }
                            totalMainCurrencyAmount  += item.MainCurrencyAmount.Value;
                            totalLocalCurrencyAmount += item.LocalCurrencyAmount.Value;
                        }
                    }

                    if (expenseDocument.ExchangeRateMainToTHBCurrency.HasValue)
                    {
                        if (item.MainCurrencyAmount.HasValue)
                        {
                            item.Amount     = (double)Math.Round((decimal)(item.MainCurrencyAmount * expenseDocument.ExchangeRateMainToTHBCurrency), 2, MidpointRounding.AwayFromZero);
                            totalAmountTHB += item.Amount.Value;
                        }
                    }
                }
                else
                {
                    if (expenseDocument.ExpenseType == ZoneType.Foreign)
                    {
                        //item.ExchangeRate = (double)Math.Round(Convert.ToDecimal(expenseDocument.ExchangeRateForUSDAdvance), 4, MidpointRounding.AwayFromZero);
                        item.Amount = (double)Math.Round(Convert.ToDecimal(item.CurrencyAmount * item.ExchangeRate), 2, MidpointRounding.AwayFromZero);
                    }

                    totalAmountTHB += item.Amount.Value;
                }
                UpdateInvoiceItemOnTransaction(item, txID, expenseDocument.ExpenseType);
            }
            invoiceRow.BeginEdit();
            if (isRepOffice)
            {
                invoiceRow.TotalAmountLocalCurrency = invoiceRow.TotalBaseAmountLocalCurrency = invoiceRow.NetAmountLocalCurrency = (decimal)totalLocalCurrencyAmount;
            }
            invoiceRow.TotalAmount = (decimal)totalAmountTHB;
            invoiceRow.EndEdit();
        }