Esempio n. 1
0
        public async Task <IActionResult> PutDbCurrency(Guid id, DbCurrency dbCurrency)
        {
            if (id != dbCurrency.Id)
            {
                return(BadRequest());
            }

            _context.Entry(dbCurrency).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DbCurrencyExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 2
0
        public async Task <ActionResult <DbCurrency> > PostDbCurrency(DbCurrency dbCurrency)
        {
            _context.Currencies.Add(dbCurrency);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetDbCurrency", new { id = dbCurrency.Id }, dbCurrency));
        }
Esempio n. 3
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id")] DbCurrency dbCurrency, string currency)
        {
            if (id != dbCurrency.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    dbCurrency.Currency = new Currency(currency);
                    _context.Update(dbCurrency);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DbCurrencyExists(dbCurrency.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(dbCurrency));
        }
Esempio n. 4
0
        protected void ctlCurrencyForm_ItemUpdating(object sender, FormViewUpdateEventArgs e)
        {
            short    currencyId   = Convert.ToInt16(ctlCurrencyForm.DataKey.Value);
            TextBox  ctlSymbol    = (TextBox)ctlCurrencyForm.FindControl("ctlSymbol");
            TextBox  ctlComment   = (TextBox)ctlCurrencyForm.FindControl("ctlComment");
            CheckBox ctlActiveChk = (CheckBox)ctlCurrencyForm.FindControl("ctlActiveChk");

            DbCurrency currency = DbCurrencyService.FindByIdentity(currencyId);

            currency.Symbol  = ctlSymbol.Text;
            currency.Comment = ctlComment.Text;
            currency.Active  = ctlActiveChk.Checked;
            currency.UpdBy   = UserAccount.UserID;
            currency.UpdDate = DateTime.Now;
            currency.UpdPgm  = ProgramCode;
            try
            {
                DbCurrencyService.UpdateCurrency(currency);
                ctlCurrencyGrid.DataCountAndBind();
                ctlCurrencyForm.ChangeMode(FormViewMode.ReadOnly);
                CloseCurrencyPopUp();
            }
            catch (ServiceValidationException ex)
            {
                ValidationErrors.MergeErrors(ex.ValidationErrors);
            }
        }
Esempio n. 5
0
        protected void ctlReport_DataBound(object sender, EventArgs e)
        {
            Dbpb       dbPb       = ScgDbQueryProvider.DbPBQuery.FindByIdentity(Convert.ToInt64(ctlPbDropdownList.SelectedValue));
            DbCurrency dbCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(Convert.ToInt16(dbPb.MainCurrencyID));

            ctlReport.Columns[6].HeaderText = string.Format(GetProgramMessage("ctlMainCurrency"), "(" + dbCurrency.Symbol + ")");
        }
        protected void ctlCurrency_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(ctlReturnAction.Value))
            {
                SelectedValue = ctlReturnValue.Value;
                if (NotifyPopupResult != null)
                {
                    NotifyPopupResult(this, ctlReturnAction.Value, SelectedValue);
                }
                ctlReturnAction.Value = string.Empty;
            }
            else
            {
                DbCurrency currency = SsDbQueryProvider.DbCurrencyQuery.FindByCurrencySymbol(ctlCurrency.Text.ToUpper(), IsExpense, IsAdvanceFR);
                if (string.IsNullOrEmpty(ctlCurrency.Text) || currency == null)
                {
                    ResetControl();
                }
                else
                {
                    SelectedValue = currency.CurrencyID.ToString();
                }
                if (NotifyPopupResult != null)
                {
                    NotifyPopupResult(this, "textChange", ctlCurrency.Text);
                }
            }

            if (NotifyCurrencyChanged != null)
            {
                NotifyCurrencyChanged(this);
            }
        }
Esempio n. 7
0
        private static DbCurrency CreateCurrency(string currencyCode)
        {
            var currency = new DbCurrency
            {
                Code        = currencyCode,
                Id          = Guid.NewGuid(), //TODO: use identity factory
                CreatedDate = DateTime.Now    //TODO use utc date
            };

            return(currency);
        }
Esempio n. 8
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. 9
0
        public async Task <IActionResult> Create([Bind("Id")] DbCurrency dbCurrency, string currency)
        {
            if (ModelState.IsValid)
            {
                dbCurrency.Id       = Guid.NewGuid();
                dbCurrency.Currency = new Currency(currency);
                _context.Add(dbCurrency);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(dbCurrency));
        }
        protected void ctlRemittanceGridview_DataBound(object sender, EventArgs e)
        {
            ExpenseDataSet expenseDS = (ExpenseDataSet)TransactionService.GetDS(this.TransactionId);

            ExpenseDataSet.FnExpenseDocumentRow row = expenseDS.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);
            SS.Standard.WorkFlow.DTO.WorkFlow   wf  = null;
            int Ordinal = 0;

            if (Request["wfid"] != null)
            {
                WorkFlowID   = UIHelper.ParseLong(Request["wfid"].ToString());
                wf           = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(WorkFlowID);
                CurrentState = wf.CurrentState.Name;
                Ordinal      = wf.CurrentState.Ordinal;
            }
            DbCurrency mainCurrency = null;

            if (!row.IsMainCurrencyIDNull())
            {
                mainCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(row.MainCurrencyID);
            }
            if (mainCurrency != null)
            {
                ctlRemittanceGridview.Columns[7].HeaderText = string.Format(GetProgramMessage("ctlLblRemittanceMainAmount"), "(" + mainCurrency.Symbol + ")");
            }

            string expenseType = FnExpenseDocumentService.GetExpenseType(this.ExpDocumentID, this.TransactionId);
            bool   isRepOffice = row.IsIsRepOfficeNull() ? false : row.IsRepOffice;

            if (!expenseType.Equals(ZoneType.Domestic))
            {
                if (isRepOffice)
                {
                    if (CurrentState.Equals(WorkFlowStateFlag.WaitVerify) || Ordinal > 5)
                    {
                        ctlRemittanceGridview.Columns[7].Visible = true;
                        ctlRemittanceGridview.Columns[8].Visible = true;
                    }
                    else
                    {
                        ctlRemittanceGridview.Columns[7].Visible = true;
                        ctlRemittanceGridview.Columns[8].Visible = false;
                    }
                }
                else
                {
                    ctlRemittanceGridview.Columns[7].Visible = false;
                    ctlRemittanceGridview.Columns[8].Visible = true;
                }
            }
        }
        protected void ctlCurrency_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int rowIndex;

            if (e.CommandName.Equals("CurrencyEdit"))
            {
                rowIndex   = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
                CurrencyId = UIHelper.ParseShort(ctlCurrencySetupGrid.DataKeys[rowIndex].Values["CurrencyID"].ToString());


                ctlCurrencyEditor.Initialize(FlagEnum.EditFlag, CurrencyId);
                ctlCurrencyEditor.ShowPopUp();
            }

            if (e.CommandName.Equals("CurrencyDelete"))
            {
                try
                {
                    rowIndex   = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
                    CurrencyId = UIHelper.ParseShort(ctlCurrencySetupGrid.DataKeys[rowIndex].Value.ToString());
                    // delete by cascade on delete
                    //IList<DbCurrencyLang> clang = SsDbQueryProvider.DbCurrencyLangQuery.FindCurrencyLangByCID(CurrencyId);
                    //DbCurrencyLangService.DeleteCurrencyLang(clang);

                    DbCurrency currency = SsDbQueryProvider.DbCurrencyQuery.FindCurrencyById(CurrencyId);
                    DbCurrencyService.DeleteCurrency(currency);
                }
                catch (Exception ex)
                {
                    if (((System.Data.SqlClient.SqlException)(ex.GetBaseException())).Number == 547)
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AlertInUseData",
                                                                "alert('This data is now in use.');", true);
                        ctlCurrencySetupGrid.DataCountAndBind();
                    }
                }

                ctlCurrencySetupGrid.DataCountAndBind();
                ctlCurrencySetupUpdatePanel.Update();
            }
        }
Esempio n. 12
0
        public void Initialize(string mode, short?currencyID)
        {
            Mode = mode.ToString();
            if (currencyID.HasValue)
            {
                CurrencyID = currencyID.Value;
            }

            if (mode.Equals(FlagEnum.EditFlag))
            {
                DbCurrency currency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(CurrencyID);
                ctlSymbol.Text    = currency.Symbol;
                ctlComment.Text   = currency.Comment;
                ctlActive.Checked = currency.Active;
                ctlCurrencyEditorGrid.DataCountAndBind();
                ctlCurrencyUpdatePanel.Update();
                ctlCurrencySymbol.Text = currency.CurrencySymbol;
            }
            else if (mode.ToString() == FlagEnum.NewFlag)
            {
                ResetValue();
            }
        }
        protected void ctlAdvanceGridview_DataBound(object sender, EventArgs e)
        {
            ExpenseDataSet expenseDS = (ExpenseDataSet)TransactionService.GetDS(this.TransactionId);

            if (expenseDS != null)
            {
                ExpenseDataSet.FnExpenseDocumentRow row = expenseDS.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);
                SS.Standard.WorkFlow.DTO.WorkFlow   wf  = null;
                int Ordinal = 0;
                if (Request["wfid"] != null)
                {
                    WorkFlowID   = UIHelper.ParseLong(Request["wfid"].ToString());
                    wf           = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(WorkFlowID);
                    CurrentState = wf.CurrentState.Name;
                    Ordinal      = wf.CurrentState.Ordinal;
                }
                //DbCurrency localCurrency = null;
                DbCurrency mainCurrency = null;
                //if (!row.IsLocalCurrencyIDNull())
                //{
                //    localCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(row.LocalCurrencyID);
                //}
                if (!row.IsMainCurrencyIDNull())
                {
                    mainCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(row.MainCurrencyID);
                }
                //if (localCurrency != null)
                //{
                //    ctlAdvanceGridView.Columns[4].HeaderText = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "(" + localCurrency.Symbol + ")");
                //}
                //else
                //{
                ctlAdvanceGridView.Columns[4].HeaderText = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "");
                //}

                if (mainCurrency != null)
                {
                    ctlAdvanceGridView.Columns[5].HeaderText   = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "(" + mainCurrency.Symbol + ")");
                    ctlAdvanceGridView.HeaderRow.Cells[5].Text = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "(" + mainCurrency.Symbol + ")");
                }
                else
                {
                    ctlAdvanceGridView.Columns[5].HeaderText = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "");
                }

                string expenseType = FnExpenseDocumentService.GetExpenseType(this.ExpDocumentID, this.TransactionId);
                bool   isRepOffice = row.IsIsRepOfficeNull() ? false : row.IsRepOffice;

                if (expenseType.Equals(ZoneType.Domestic))
                {
                    if (isRepOffice)
                    {
                        if (CurrentState.Equals(WorkFlowStateFlag.WaitVerify) || Ordinal > 5)
                        {
                            ctlAdvanceGridView.Columns[4].Visible = false;
                            ctlAdvanceGridView.Columns[5].Visible = true;
                            ctlAdvanceGridView.Columns[6].Visible = true;
                        }
                        else
                        {
                            ctlAdvanceGridView.Columns[4].Visible = false;
                            ctlAdvanceGridView.Columns[5].Visible = true;
                            ctlAdvanceGridView.Columns[6].Visible = false;
                        }
                    }
                    else
                    {
                        ctlAdvanceGridView.Columns[4].Visible = false;
                        ctlAdvanceGridView.Columns[5].Visible = false;
                        ctlAdvanceGridView.Columns[6].Visible = true;
                    }
                }
                else
                {
                    if (isRepOffice)
                    {
                        if (CurrentState.Equals(WorkFlowStateFlag.WaitVerify) || Ordinal > 5)
                        {
                            ctlAdvanceGridView.Columns[4].Visible = false;
                            ctlAdvanceGridView.Columns[5].Visible = true;
                            ctlAdvanceGridView.Columns[6].Visible = true;
                        }
                        else
                        {
                            ctlAdvanceGridView.Columns[4].Visible = false;
                            ctlAdvanceGridView.Columns[5].Visible = true;
                            ctlAdvanceGridView.Columns[6].Visible = false;
                        }
                    }
                    else
                    {
                        ctlAdvanceGridView.Columns[4].Visible = false;
                        ctlAdvanceGridView.Columns[5].Visible = false;
                        ctlAdvanceGridView.Columns[6].Visible = true;
                    }
                }
            }

            if (ctlAdvanceGridView.Rows.Count == 0)
            {
                ctlTANoLookup.Enabled = true;
                ctlDeleteTA.Enabled   = true;
                //this.ClearRemittanceGridview();
            }
        }
Esempio n. 14
0
        protected void ctlInvoiceItem_DataBound(object sender, EventArgs e)
        {
            BaseGridView gridview = (BaseGridView)sender;

            if (DocumentType.Equals(ZoneType.Domestic))
            {
                gridview.Columns[5].Visible = false;
                gridview.Columns[4].Visible = false;
                gridview.Columns[6].Visible = false;
            }
            else
            {
                gridview.Columns[5].Visible = true;
                gridview.Columns[4].Visible = true;
                gridview.Columns[6].Visible = true;
            }

            if (IsRepOffice)
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workflow = null;
                if (!string.IsNullOrEmpty(Request.Params["wfid"]) && UIHelper.ParseInt(Request.Params["wfid"]) > 0)
                {
                    long workFlowID = UIHelper.ParseLong(Request.Params["wfid"]);

                    try
                    {
                        workflow = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workFlowID);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }

                gridview.Columns[7].Visible    = true; //local currency
                gridview.Columns[7].HeaderText = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "(" + SelectedCurrency + ")");

                ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(TransactionId);

                ExpenseDataSet.FnExpenseDocumentRow expRow = expDs.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);
                if (!expRow.IsMainCurrencyIDNull())
                {
                    DbCurrency mainCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(expRow.MainCurrencyID);
                    if (mainCurrency != null)
                    {
                        gridview.Columns[8].HeaderText = string.Format(GetMessage("AmountCurrencyHeaderColumn"), "(" + mainCurrency.Symbol + ")");
                    }
                }

                if ((workflow != null && workflow.CurrentState.Ordinal >= 5) && (UserAccount.IsAccountant || UserAccount.IsPayment))
                {
                    if (!expRow.IsMainCurrencyIDNull() && !expRow.IsLocalCurrencyIDNull() && (expRow.MainCurrencyID == expRow.LocalCurrencyID))
                    {
                        gridview.Columns[8].Visible = false;  //hide main currency
                    }
                    else
                    {
                        gridview.Columns[8].Visible = true; //show main currency
                    }
                    gridview.Columns[9].Visible = true;     //THB
                }
                else
                {
                    gridview.Columns[8].Visible = false;
                    gridview.Columns[9].Visible = false;
                }
            }
            else
            {
                gridview.Columns[7].Visible = false;
                gridview.Columns[8].Visible = false;
                gridview.Columns[9].Visible = true;
            }
        }
Esempio n. 15
0
        public void BindControl()
        {
            SS.Standard.WorkFlow.DTO.WorkFlow workflow = null;
            long workFlowID = 0;

            if (!string.IsNullOrEmpty(Request.Params["wfid"]) && UIHelper.ParseInt(Request.Params["wfid"]) > 0)
            {
                workFlowID = UIHelper.ParseLong(Request.Params["wfid"]);
                workflow   = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workFlowID);
            }

            if (DocumentType.Equals(ZoneType.Foreign) || this.IsRepOffice)
            {
                ctlAddMilage.Style["display"] = "none";
            }
            else
            {
                ctlAddMilage.Style["display"] = string.Empty;
            }

            if (!InitialFlag.Equals(FlagEnum.ViewFlag) && (workflow == null || (workflow != null && !workflow.CurrentState.Name.Equals(WorkFlowStateFlag.Hold))))
            {
                ctlAddGeneralExpense.Enabled = true;
                ctlAddPerdiem.Enabled        = true;
                ctlAddMilage.Enabled         = true;
            }
            else
            {
                ctlAddGeneralExpense.Enabled = false;
                ctlAddPerdiem.Enabled        = false;
                ctlAddMilage.Enabled         = false;
            }
            ctlSimpleExpense.DocumentType = this.DocumentType;
            ctlPerdiemPopupCaller.URL     = ShowPerdiemPopup(InitialFlag, null);
            ctlInvoicePopupCaller.URL     = String.Format(invoiceURL.Replace("[mode]", FlagEnum.NewFlag), this.TransactionId, this.ExpDocumentID, this.DocumentType, this.DocumentID, string.Empty);
            ctlMileagePopupCaller.URL     = ShowMileagePopup(InitialFlag);

            ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(this.TransactionId);

            ExpenseDataSet.FnExpenseDocumentRow expenseDocumentRow = expDs.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);
            this.DocumentID = expenseDocumentRow.DocumentID;

            ctlDivExchangeRateLocalInfo.Style["display"] = "none";
            ctlDivExchangeRateMainInfo.Style["display"]  = "none";

            if (!InitialFlag.Equals(FlagEnum.NewFlag) && IsRepOffice)
            {
                try
                {
                    if ((workflow != null && workflow.CurrentState.Ordinal >= 5) && (UserAccount.IsAccountant || UserAccount.IsPayment))
                    {
                        string mainCurrencySymbol  = string.Empty;
                        string localCurrencySymbol = string.Empty;
                        if (!expenseDocumentRow.IsLocalCurrencyIDNull())
                        {
                            DbCurrency localCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(expenseDocumentRow.LocalCurrencyID);
                            localCurrencySymbol = localCurrency.Symbol;
                        }

                        if (!expenseDocumentRow.IsMainCurrencyIDNull())
                        {
                            DbCurrency mainCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(expenseDocumentRow.MainCurrencyID);
                            mainCurrencySymbol = mainCurrency.Symbol;
                        }

                        ctlExRateMainCurrencyLabel.Text = GetProgramMessage("DisplayExchangeRateInfo");
                        ctlExchangeRateMain.Text        = UIHelper.BindExchangeRate(expenseDocumentRow.IsExchangeRateMainToTHBCurrencyNull() ? string.Empty : expenseDocumentRow.ExchangeRateMainToTHBCurrency.ToString());
                        ctlExchangeRateMainUnit.Text    = CurrencySymbol.THB + "/" + mainCurrencySymbol;

                        ctlExRateLocalCurrencyLabel.Text = GetProgramMessage("DisplayExchangeRateInfo");
                        ctlExchangeRateLocal.Text        = UIHelper.BindExchangeRate(expenseDocumentRow.IsExchangeRateForLocalCurrencyNull() ? string.Empty : expenseDocumentRow.ExchangeRateForLocalCurrency.ToString());
                        ctlExchangeRateLocalUnit.Text    = localCurrencySymbol + "/" + mainCurrencySymbol;

                        ctlDivExchangeRateMainInfo.Style["display"] = "block";
                        if (!expenseDocumentRow.IsMainCurrencyIDNull() && !expenseDocumentRow.IsLocalCurrencyIDNull() && (expenseDocumentRow.MainCurrencyID != expenseDocumentRow.LocalCurrencyID))
                        {
                            ctlDivExchangeRateLocalInfo.Style["display"] = "block";
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Esempio n. 16
0
        protected void ctlExchangeForm_ItemInserting(object sender, FormViewInsertEventArgs e)
        {
            //modify by tom 28/01/209
            //SCG.eAccounting.Web.UserControls.Calendar ctlFromDateCalendar = ctlExchangeForm.FindControl("Calendar1") as SCG.eAccounting.Web.UserControls.Calendar;
            //SCG.eAccounting.Web.UserControls.Calendar ctlToDateCalendar = ctlExchangeForm.FindControl("Calendar2") as SCG.eAccounting.Web.UserControls.Calendar;
            UserControls.Calendar ctlFromDateCalendar = ctlExchangeForm.FindControl("Calendar1") as UserControls.Calendar;
            UserControls.Calendar ctlToDateCalendar   = ctlExchangeForm.FindControl("Calendar2") as UserControls.Calendar;
            TextBox  ctlFromDate  = ctlFromDateCalendar.FindControl("txtDate") as TextBox;
            TextBox  ctlToDate    = ctlToDateCalendar.FindControl("txtDate") as TextBox;
            TextBox  ctlBuyRate   = (TextBox)ctlExchangeForm.FindControl("ctlBuyRate");
            TextBox  ctlSellRate  = (TextBox)ctlExchangeForm.FindControl("ctlSellRate");
            TextBox  ctlComment   = (TextBox)ctlExchangeForm.FindControl("ctlComment");
            CheckBox ctlActiveChk = (CheckBox)ctlExchangeForm.FindControl("ctlActiveChk");

            DbExchangeRate exchangeRate = new DbExchangeRate();
            DbCurrency     currency     = new DbCurrency(UIHelper.ParseShort(ctlCurrencyGrid.SelectedValue.ToString()));

            exchangeRate.Currency = currency;
            if (!string.IsNullOrEmpty(ctlFromDate.Text))
            {
                //exchangeRate.FromDate = UIHelper.ParseDate(ctlFromDateCalendar.DateValue, UserCulture).Value; //UIHelper.ParseDate("01-Jan-2009").Value;
            }
            if (!string.IsNullOrEmpty(ctlToDate.Text))
            {
                //exchangeRate.ToDate = UIHelper.ParseDate(ctlToDateCalendar.DateValue, UserCulture).Value; //UIHelper.ParseDate("01-Jan-2009").Value;
            }
            if (!string.IsNullOrEmpty(ctlBuyRate.Text))
            {
                try
                {
                    exchangeRate.BuyRate = Convert.ToSingle(ctlBuyRate.Text);
                }
                catch (FormatException)
                {
                    ValidationErrors.AddError("Currency.Error", new Spring.Validation.ErrorMessage("BuyrateFormat"));
                }
            }
            if (!string.IsNullOrEmpty(ctlSellRate.Text))
            {
                try
                {
                    exchangeRate.SellRate = Convert.ToSingle(ctlSellRate.Text);
                }
                catch (FormatException)
                {
                    ValidationErrors.AddError("Currency.Error", new Spring.Validation.ErrorMessage("SellrateFormat"));
                }
            }
            exchangeRate.Comment = ctlComment.Text;
            exchangeRate.Active  = ctlActiveChk.Checked;
            exchangeRate.CreBy   = UserAccount.UserID;
            exchangeRate.CreDate = DateTime.Now;
            exchangeRate.UpdBy   = UserAccount.UserID;
            exchangeRate.UpdDate = DateTime.Now;
            exchangeRate.UpdPgm  = ProgramCode;
            try
            {
                DbExchangeRateService.AddExchangeRate(exchangeRate);
                ctlExchangeGrid.DataCountAndBind();
                ctlExchangeForm.ChangeMode(FormViewMode.ReadOnly);
                CloseExchangePopUp();
            }
            catch (ServiceValidationException ex)
            {
                ValidationErrors.MergeErrors(ex.ValidationErrors);
            }
        }
Esempio n. 17
0
        public override void CreatePostData(long DocID, string DocKind)
        {
            Hashtable paramete = new Hashtable();

            paramete.Add("@DOCUMENT_ID", DocID.ToString());
            DataSet dstPosting         = new DBManage().ExecuteQuery("ADVANCE_POSTING", paramete);
            bool    repOffice          = false;
            string  mainCurrencySymbol = string.Empty;

            SCGDocument doc = SCG.eAccounting.Query.ScgeAccountingQueryProvider.SCGDocumentQuery.FindProxyByIdentity(DocID);

            DbSapInstance sap = SCG.DB.Query.ScgDbQueryProvider.DbCompanyQuery.GetSAPDocTypeForPosting(doc.CompanyID.CompanyCode);

            if (dstPosting.Tables[0].Rows.Count > 0)
            {
                if (!string.IsNullOrEmpty(dstPosting.Tables[0].Rows[0]["IsRepOffice"].ToString()))
                {
                    repOffice = bool.Parse(dstPosting.Tables[0].Rows[0]["IsRepOffice"].ToString());
                }

                // get main currency symbol
                if (repOffice)
                {
                    DbCurrency mainCurrency = SS.DB.Query.SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(short.Parse(dstPosting.Tables[0].Rows[0]["MainCurrencyID"].ToString()));
                    if (mainCurrency != null)
                    {
                        mainCurrencySymbol = mainCurrency.Symbol;
                    }
                }

                if (dstPosting.Tables[0].Rows[0]["AdvanceType"].ToString() == ZoneTypeConst.Domestic)
                {
                    #region HEAD
                    Bapiache09 che09 = new Bapiache09();
                    che09.DocId       = DocID;
                    che09.DocSeq      = "M";
                    che09.DocKind     = DocKind;
                    che09.BusAct      = PostingConst.BusAct;
                    che09.Username    = sap.UserCPIC; //PostingConst.UserCPIC;
                    che09.CompCode    = dstPosting.Tables[0].Rows[0]["COMP_CODE"].ToString().Substring(0, 4);
                    che09.DocDate     = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                    che09.DocKind     = DocKind;
                    che09.DocType     = sap.DocTypeAdvancePostingDM;//DocTypeConst.KR;
                    che09.PstngDate   = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                    che09.ReverseDate = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                    che09.RefDocNo    = SAPUIHelper.SubString(16, dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString());
                    che09.DocStatus   = "N";

                    if (dstPosting.Tables[0].Rows[0]["PaymentType"].ToString() == PaymentTypeConst.DomesticCash)
                    {
                        che09.DocAppFlag = "A";
                    }
                    else
                    {
                        che09.DocAppFlag = "V";
                    }

                    che09.Active  = true;
                    che09.CreBy   = 1;
                    che09.CreDate = DateTime.Now;
                    che09.UpdBy   = 1;
                    che09.UpdDate = DateTime.Now;
                    che09.UpdPgm  = "AdvancePosting";
                    BapiServiceProvider.Bapiache09Service.Save(che09);
                    #endregion HEAD

                    #region Foolter
                    Bapiacextc cextc = new Bapiacextc();
                    cextc.DocId   = DocID;
                    cextc.DocSeq  = "M";
                    cextc.DocKind = DocKind;
                    cextc.Field1  = PostingConst.BRNCH;
                    cextc.Field2  = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();

                    cextc.Active  = true;
                    cextc.CreBy   = 1;
                    cextc.CreDate = DateTime.Now;
                    cextc.UpdBy   = 1;
                    cextc.UpdDate = DateTime.Now;
                    cextc.UpdPgm  = "AdvancePosting";
                    BapiServiceProvider.BapiacextcService.Save(cextc);

                    Bapiacextc cextc1 = new Bapiacextc();
                    cextc1.DocId   = DocID;
                    cextc1.DocSeq  = "M";
                    cextc1.DocKind = DocKind;
                    cextc1.Field1  = PostingConst.VAT;
                    cextc1.Field2  = TaxCodeConst.NV;

                    cextc1.Active  = true;
                    cextc1.CreBy   = 1;
                    cextc1.CreDate = DateTime.Now;
                    cextc1.UpdBy   = 1;
                    cextc1.UpdDate = DateTime.Now;
                    cextc1.UpdPgm  = "AdvancePosting";
                    BapiServiceProvider.BapiacextcService.Save(cextc1);
                    #endregion Foolter

                    #region Domestic
                    Bapiacap09 capItem1  = new Bapiacap09();
                    Bapiacap09 capItem2  = new Bapiacap09();
                    Bapiaccr09 accrItem1 = new Bapiaccr09();
                    Bapiaccr09 accrItem2 = new Bapiaccr09();

                    if (!repOffice)
                    {
                        if (dstPosting.Tables[0].Rows[0]["PaymentType"].ToString() == PaymentTypeConst.DomesticCash)
                        {
                            #region Cash

                            #region Credit
                            capItem1.DocId         = DocID;
                            capItem1.DocSeq        = "M";
                            capItem1.DocKind       = DocKind;
                            capItem1.ItemnoAcc     = "1";
                            capItem1.VendorNo      = dstPosting.Tables[0].Rows[0]["PBCode"].ToString();
                            capItem1.PmntBlock     = PostingConst.PmntBlock;
                            capItem1.Pmnttrms      = PostingConst.Pmnttrms;
                            capItem1.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                            capItem1.AllocNmbr     = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["ReceiverID"].ToString())).EmployeeName;
                            capItem1.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                            capItem1.PymtMeth      = dstPosting.Tables[0].Rows[0]["PaymentMethod"].ToString();
                            capItem1.ItemText      = dstPosting.Tables[0].Rows[0]["Description"].ToString();
                            capItem1.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                            capItem1.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                            capItem1.TaxCode       = TaxCodeConst.NV;

                            if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                            {
                                capItem1.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                            }

                            capItem1.Active  = true;
                            capItem1.CreBy   = 1;
                            capItem1.CreDate = DateTime.Now;
                            capItem1.UpdBy   = 1;
                            capItem1.UpdDate = DateTime.Now;
                            capItem1.UpdPgm  = "AdvancePosting";

                            accrItem1.DocId     = DocID;
                            accrItem1.DocSeq    = "M";
                            accrItem1.DocKind   = DocKind;
                            accrItem1.ItemnoAcc = "1";

                            accrItem1.Currency  = PostingConst.Currency;
                            accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[0]["Amount"].ToString());

                            accrItem1.Active  = true;
                            accrItem1.CreBy   = 1;
                            accrItem1.CreDate = DateTime.Now;
                            accrItem1.UpdBy   = 1;
                            accrItem1.UpdDate = DateTime.Now;
                            accrItem1.UpdPgm  = "AdvancePosting";
                            #endregion Credit

                            #region Debit
                            capItem2.DocId         = DocID;
                            capItem2.DocSeq        = "M";
                            capItem2.DocKind       = DocKind;
                            capItem2.ItemnoAcc     = "2";
                            capItem2.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["RequesterID"].ToString())).VendorCode;
                            capItem2.Pmnttrms      = PostingConst.Pmnttrms;
                            capItem2.PymtMeth      = dstPosting.Tables[0].Rows[0]["PaymentMethod"].ToString();
                            capItem2.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                            capItem2.PmntBlock     = PostingConst.PmntBlock;
                            capItem2.AllocNmbr     = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                            capItem2.AllocNmbr     = SAPUIHelper.SubString18(capItem2.AllocNmbr);
                            capItem2.ItemText      = dstPosting.Tables[0].Rows[0]["DueDate"].ToString() + "/" + dstPosting.Tables[0].Rows[0]["Description"].ToString();
                            capItem2.ItemText      = SAPUIHelper.SubString50(capItem2.ItemText);
                            capItem2.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                            capItem2.TaxCode       = TaxCodeConst.NV;
                            capItem2.SpGlInd       = SpGlIndConst.D;

                            if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                            {
                                capItem2.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                            }

                            capItem2.Active  = true;
                            capItem2.CreBy   = 1;
                            capItem2.CreDate = DateTime.Now;
                            capItem2.UpdBy   = 1;
                            capItem2.UpdDate = DateTime.Now;
                            capItem2.UpdPgm  = "AdvancePosting";

                            accrItem2.DocId     = DocID;
                            accrItem2.DocSeq    = "M";
                            accrItem2.DocKind   = DocKind;
                            accrItem2.ItemnoAcc = "2";

                            accrItem2.Currency  = PostingConst.Currency;
                            accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[0]["Amount"].ToString());

                            accrItem2.Active  = true;
                            accrItem2.CreBy   = 1;
                            accrItem2.CreDate = DateTime.Now;
                            accrItem2.UpdBy   = 1;
                            accrItem2.UpdDate = DateTime.Now;
                            accrItem2.UpdPgm  = "AdvancePosting";
                            #endregion Debit

                            #endregion Cash
                        }
                        else
                        {
                            #region Transfer หรือ Cheque

                            #region Credit
                            capItem1.DocId         = DocID;
                            capItem1.DocSeq        = "M";
                            capItem1.DocKind       = DocKind;
                            capItem1.ItemnoAcc     = "1";
                            capItem1.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["ReceiverID"].ToString())).VendorCode;
                            capItem1.PmntBlock     = "";
                            capItem1.Pmnttrms      = PostingConst.Pmnttrms;
                            capItem1.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                            capItem1.AllocNmbr     = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                            capItem1.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                            capItem1.PymtMeth      = dstPosting.Tables[0].Rows[0]["PaymentMethod"].ToString();
                            capItem1.ItemText      = dstPosting.Tables[0].Rows[0]["Description"].ToString();
                            capItem1.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                            capItem1.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                            capItem1.TaxCode       = TaxCodeConst.NV;

                            if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                            {
                                capItem1.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                            }

                            capItem1.Pmtmthsupl = dstPosting.Tables[0].Rows[0]["Supplementary"].ToString();

                            capItem1.Active  = true;
                            capItem1.CreBy   = 1;
                            capItem1.CreDate = DateTime.Now;
                            capItem1.UpdBy   = 1;
                            capItem1.UpdDate = DateTime.Now;
                            capItem1.UpdPgm  = "AdvancePosting";

                            accrItem1.DocId     = DocID;
                            accrItem1.DocSeq    = "M";
                            accrItem1.DocKind   = DocKind;
                            accrItem1.ItemnoAcc = "1";
                            accrItem1.Currency  = PostingConst.Currency;
                            accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[0]["Amount"].ToString());

                            accrItem1.Active  = true;
                            accrItem1.CreBy   = 1;
                            accrItem1.CreDate = DateTime.Now;
                            accrItem1.UpdBy   = 1;
                            accrItem1.UpdDate = DateTime.Now;
                            accrItem1.UpdPgm  = "AdvancePosting";
                            #endregion Credit

                            #region Debit
                            capItem2.DocId         = DocID;
                            capItem2.DocSeq        = "M";
                            capItem2.DocKind       = DocKind;
                            capItem2.ItemnoAcc     = "2";
                            capItem2.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["RequesterID"].ToString())).VendorCode;
                            capItem2.Pmnttrms      = PostingConst.Pmnttrms;
                            capItem2.PymtMeth      = dstPosting.Tables[0].Rows[0]["PaymentMethod"].ToString();
                            capItem2.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                            capItem2.PmntBlock     = "";
                            capItem2.AllocNmbr     = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                            capItem2.AllocNmbr     = SAPUIHelper.SubString18(capItem2.AllocNmbr);
                            capItem2.ItemText      = dstPosting.Tables[0].Rows[0]["DueDate"].ToString() + "/" + dstPosting.Tables[0].Rows[0]["Description"].ToString();
                            capItem2.ItemText      = SAPUIHelper.SubString50(capItem2.ItemText);
                            capItem2.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                            capItem2.TaxCode       = TaxCodeConst.NV;
                            capItem2.SpGlInd       = SpGlIndConst.D;

                            if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                            {
                                capItem2.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                            }

                            capItem2.Pmtmthsupl = dstPosting.Tables[0].Rows[0]["Supplementary"].ToString();

                            capItem2.Active  = true;
                            capItem2.CreBy   = 1;
                            capItem2.CreDate = DateTime.Now;
                            capItem2.UpdBy   = 1;
                            capItem2.UpdDate = DateTime.Now;
                            capItem2.UpdPgm  = "AdvancePosting";

                            accrItem2.DocId     = DocID;
                            accrItem2.DocSeq    = "M";
                            accrItem2.DocKind   = DocKind;
                            accrItem2.ItemnoAcc = "2";
                            accrItem2.Currency  = PostingConst.Currency;
                            accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[0]["Amount"].ToString());

                            accrItem2.Active  = true;
                            accrItem2.CreBy   = 1;
                            accrItem2.CreDate = DateTime.Now;
                            accrItem2.UpdBy   = 1;
                            accrItem2.UpdDate = DateTime.Now;
                            accrItem2.UpdPgm  = "AdvancePosting";
                            #endregion Debit

                            #endregion Transfer หรือ Cheque
                        }
                    }
                    else  //for rep office
                    {
                        #region Credit
                        capItem1.DocId         = DocID;
                        capItem1.DocSeq        = "M";
                        capItem1.DocKind       = DocKind;
                        capItem1.ItemnoAcc     = "1";
                        capItem1.VendorNo      = dstPosting.Tables[0].Rows[0]["PBCode"].ToString();
                        capItem1.PmntBlock     = PostingConst.PmntBlock;
                        capItem1.Pmnttrms      = PostingConst.Pmnttrms;
                        capItem1.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                        capItem1.AllocNmbr     = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["ReceiverID"].ToString())).EmployeeName;
                        capItem1.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                        capItem1.PymtMeth      = dstPosting.Tables[0].Rows[0]["PaymentMethod"].ToString();
                        capItem1.ItemText      = dstPosting.Tables[0].Rows[0]["Description"].ToString();
                        capItem1.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                        capItem1.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                        capItem1.TaxCode       = TaxCodeConst.NV;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem1.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                        }

                        capItem1.Active  = true;
                        capItem1.CreBy   = 1;
                        capItem1.CreDate = DateTime.Now;
                        capItem1.UpdBy   = 1;
                        capItem1.UpdDate = DateTime.Now;
                        capItem1.UpdPgm  = "AdvancePosting";

                        accrItem1.DocId     = DocID;
                        accrItem1.DocSeq    = "M";
                        accrItem1.DocKind   = DocKind;
                        accrItem1.ItemnoAcc = "1";

                        accrItem1.Currency  = mainCurrencySymbol;
                        accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[0]["MainCurrencyAmount"].ToString());
                        accrItem1.ExchRate  = decimal.Parse(dstPosting.Tables[0].Rows[0]["ExchangeRateMainToTHB"].ToString());

                        accrItem1.Active  = true;
                        accrItem1.CreBy   = 1;
                        accrItem1.CreDate = DateTime.Now;
                        accrItem1.UpdBy   = 1;
                        accrItem1.UpdDate = DateTime.Now;
                        accrItem1.UpdPgm  = "AdvancePosting";
                        #endregion Credit

                        #region Debit
                        capItem2.DocId         = DocID;
                        capItem2.DocSeq        = "M";
                        capItem2.DocKind       = DocKind;
                        capItem2.ItemnoAcc     = "2";
                        capItem2.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["RequesterID"].ToString())).VendorCode;
                        capItem2.Pmnttrms      = PostingConst.Pmnttrms;
                        capItem2.PymtMeth      = dstPosting.Tables[0].Rows[0]["PaymentMethod"].ToString();
                        capItem2.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                        capItem2.PmntBlock     = PostingConst.PmntBlock;
                        capItem2.AllocNmbr     = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                        capItem2.AllocNmbr     = SAPUIHelper.SubString18(capItem2.AllocNmbr);
                        capItem2.ItemText      = dstPosting.Tables[0].Rows[0]["DueDate"].ToString() + "/" + dstPosting.Tables[0].Rows[0]["Description"].ToString();
                        capItem2.ItemText      = SAPUIHelper.SubString50(capItem2.ItemText);
                        capItem2.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                        capItem2.TaxCode       = TaxCodeConst.NV;
                        capItem2.SpGlInd       = SpGlIndConst.D;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem2.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                        }

                        capItem2.Active  = true;
                        capItem2.CreBy   = 1;
                        capItem2.CreDate = DateTime.Now;
                        capItem2.UpdBy   = 1;
                        capItem2.UpdDate = DateTime.Now;
                        capItem2.UpdPgm  = "AdvancePosting";

                        accrItem2.DocId     = DocID;
                        accrItem2.DocSeq    = "M";
                        accrItem2.DocKind   = DocKind;
                        accrItem2.ItemnoAcc = "2";

                        accrItem2.Currency  = mainCurrencySymbol;
                        accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[0]["MainCurrencyAmount"].ToString());
                        accrItem2.ExchRate  = decimal.Parse(dstPosting.Tables[0].Rows[0]["ExchangeRateMainToTHB"].ToString());

                        accrItem2.Active  = true;
                        accrItem2.CreBy   = 1;
                        accrItem2.CreDate = DateTime.Now;
                        accrItem2.UpdBy   = 1;
                        accrItem2.UpdDate = DateTime.Now;
                        accrItem2.UpdPgm  = "AdvancePosting";
                        #endregion Debit
                    }
                    BapiServiceProvider.Bapiacap09Service.Save(capItem1);
                    BapiServiceProvider.Bapiacap09Service.Save(capItem2);
                    BapiServiceProvider.Bapiaccr09Service.Save(accrItem1);
                    BapiServiceProvider.Bapiaccr09Service.Save(accrItem2);
                    #endregion Domestic
                }
                else if (dstPosting.Tables[0].Rows[0]["AdvanceType"].ToString() == ZoneTypeConst.Foreign)
                {
                    #region Foreign
                    if (!repOffice)
                    {
                        #region HEAD
                        Bapiache09 che09 = new Bapiache09();
                        che09.DocId       = DocID;
                        che09.DocSeq      = "M";
                        che09.DocKind     = DocKind;
                        che09.BusAct      = PostingConst.BusAct;
                        che09.Username    = sap.UserCPIC;//PostingConst.UserCPIC;
                        che09.CompCode    = dstPosting.Tables[0].Rows[0]["COMP_CODE"].ToString().Substring(0, 4);
                        che09.DocDate     = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                        che09.DocKind     = DocKind;
                        che09.DocType     = sap.DocTypeAdvancePostingFR;//DocTypeConst.KZ;
                        che09.PstngDate   = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                        che09.ReverseDate = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                        che09.RefDocNo    = SAPUIHelper.SubString(16, dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString());
                        che09.DocStatus   = "N";
                        che09.DocAppFlag  = "A";

                        che09.Active  = true;
                        che09.CreBy   = 1;
                        che09.CreDate = DateTime.Now;
                        che09.UpdBy   = 1;
                        che09.UpdDate = DateTime.Now;
                        che09.UpdPgm  = "AdvancePosting";
                        BapiServiceProvider.Bapiache09Service.Save(che09);
                        #endregion HEAD

                        #region Foolter
                        Bapiacextc cextc = new Bapiacextc();
                        cextc.DocId   = DocID;
                        cextc.DocSeq  = "M";
                        cextc.DocKind = DocKind;
                        cextc.Field1  = PostingConst.BRNCH;
                        cextc.Field2  = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();

                        cextc.Active  = true;
                        cextc.CreBy   = 1;
                        cextc.CreDate = DateTime.Now;
                        cextc.UpdBy   = 1;
                        cextc.UpdDate = DateTime.Now;
                        cextc.UpdPgm  = "AdvancePosting";
                        BapiServiceProvider.BapiacextcService.Save(cextc);

                        Bapiacextc cextc1 = new Bapiacextc();
                        cextc1.DocId   = DocID;
                        cextc1.DocSeq  = "M";
                        cextc1.DocKind = DocKind;
                        cextc1.Field1  = PostingConst.VAT;
                        cextc1.Field2  = TaxCodeConst.NV;

                        cextc1.Active  = true;
                        cextc1.CreBy   = 1;
                        cextc1.CreDate = DateTime.Now;
                        cextc1.UpdBy   = 1;
                        cextc1.UpdDate = DateTime.Now;
                        cextc1.UpdPgm  = "AdvancePosting";
                        BapiServiceProvider.BapiacextcService.Save(cextc1);
                        #endregion Foolter

                        Bapiacgl09 capItem1  = new Bapiacgl09();
                        Bapiacap09 capItem2  = new Bapiacap09();
                        Bapiaccr09 accrItem1 = new Bapiaccr09();
                        Bapiaccr09 accrItem2 = new Bapiaccr09();

                        #region Credit
                        capItem1.DocId     = DocID;
                        capItem1.DocSeq    = "M";
                        capItem1.DocKind   = DocKind;
                        capItem1.ItemnoAcc = "1";
                        capItem1.GlAccount = dstPosting.Tables[0].Rows[0]["BankAccount"].ToString();
                        capItem1.ValueDate = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                        capItem1.AllocNmbr = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                        capItem1.AllocNmbr = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                        capItem1.ItemText  = dstPosting.Tables[0].Rows[0]["Description"].ToString();
                        capItem1.ItemText  = SAPUIHelper.SubString50(capItem1.ItemText);
                        //capItem1.BusArea        = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem1.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                        }

                        capItem1.Active  = true;
                        capItem1.CreBy   = 1;
                        capItem1.CreDate = DateTime.Now;
                        capItem1.UpdBy   = 1;
                        capItem1.UpdDate = DateTime.Now;
                        capItem1.UpdPgm  = "AdvancePosting";

                        accrItem1.DocId     = DocID;
                        accrItem1.DocSeq    = "M";
                        accrItem1.DocKind   = DocKind;
                        accrItem1.ItemnoAcc = "1";

                        accrItem1.Currency  = PostingConst.Currency;
                        accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[0]["Amount"].ToString());

                        accrItem1.Active  = true;
                        accrItem1.CreBy   = 1;
                        accrItem1.CreDate = DateTime.Now;
                        accrItem1.UpdBy   = 1;
                        accrItem1.UpdDate = DateTime.Now;
                        accrItem1.UpdPgm  = "AdvancePosting";
                        #endregion Credit

                        #region Debit
                        capItem2.DocId         = DocID;
                        capItem2.DocSeq        = "M";
                        capItem2.DocKind       = DocKind;
                        capItem2.ItemnoAcc     = "2";
                        capItem2.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["RequesterID"].ToString())).VendorCode;
                        capItem2.AllocNmbr     = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                        capItem2.AllocNmbr     = SAPUIHelper.SubString18(capItem2.AllocNmbr);
                        capItem2.ItemText      = dstPosting.Tables[0].Rows[0]["DueDate"].ToString() + "/" + dstPosting.Tables[0].Rows[0]["Description"].ToString();
                        capItem2.ItemText      = SAPUIHelper.SubString50(capItem2.ItemText);
                        capItem2.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                        capItem2.TaxCode       = TaxCodeConst.NV;
                        capItem2.SpGlInd       = SpGlIndConst.D;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem2.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                        }

                        capItem2.Active  = true;
                        capItem2.CreBy   = 1;
                        capItem2.CreDate = DateTime.Now;
                        capItem2.UpdBy   = 1;
                        capItem2.UpdDate = DateTime.Now;
                        capItem2.UpdPgm  = "AdvancePosting";

                        accrItem2.DocId     = DocID;
                        accrItem2.DocSeq    = "M";
                        accrItem2.DocKind   = DocKind;
                        accrItem2.ItemnoAcc = "2";

                        accrItem2.Currency  = PostingConst.Currency;
                        accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[0]["Amount"].ToString());

                        accrItem2.Active  = true;
                        accrItem2.CreBy   = 1;
                        accrItem2.CreDate = DateTime.Now;
                        accrItem2.UpdBy   = 1;
                        accrItem2.UpdDate = DateTime.Now;
                        accrItem2.UpdPgm  = "AdvancePosting";
                        #endregion Debit

                        BapiServiceProvider.Bapiacgl09Service.Save(capItem1);
                        BapiServiceProvider.Bapiacap09Service.Save(capItem2);
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem1);
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem2);
                    }
                    else  // post ADF for rep office
                    {
                        #region HEAD
                        Bapiache09 che09 = new Bapiache09();
                        che09.DocId       = DocID;
                        che09.DocSeq      = "M";
                        che09.DocKind     = DocKind;
                        che09.BusAct      = PostingConst.BusAct;
                        che09.Username    = sap.UserCPIC;//PostingConst.UserCPIC;
                        che09.CompCode    = dstPosting.Tables[0].Rows[0]["COMP_CODE"].ToString().Substring(0, 4);
                        che09.DocDate     = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                        che09.DocKind     = DocKind;
                        che09.DocType     = sap.DocTypeAdvancePostingFR;//DocTypeConst.KR;
                        che09.PstngDate   = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                        che09.ReverseDate = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                        che09.RefDocNo    = SAPUIHelper.SubString(16, dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString());
                        che09.DocStatus   = "N";
                        che09.DocAppFlag  = "A";

                        che09.Active  = true;
                        che09.CreBy   = 1;
                        che09.CreDate = DateTime.Now;
                        che09.UpdBy   = 1;
                        che09.UpdDate = DateTime.Now;
                        che09.UpdPgm  = "AdvancePosting";
                        BapiServiceProvider.Bapiache09Service.Save(che09);
                        #endregion HEAD

                        #region Foolter
                        Bapiacextc cextc = new Bapiacextc();
                        cextc.DocId   = DocID;
                        cextc.DocSeq  = "M";
                        cextc.DocKind = DocKind;
                        cextc.Field1  = PostingConst.BRNCH;
                        cextc.Field2  = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();

                        cextc.Active  = true;
                        cextc.CreBy   = 1;
                        cextc.CreDate = DateTime.Now;
                        cextc.UpdBy   = 1;
                        cextc.UpdDate = DateTime.Now;
                        cextc.UpdPgm  = "AdvancePosting";
                        BapiServiceProvider.BapiacextcService.Save(cextc);

                        Bapiacextc cextc1 = new Bapiacextc();
                        cextc1.DocId   = DocID;
                        cextc1.DocSeq  = "M";
                        cextc1.DocKind = DocKind;
                        cextc1.Field1  = PostingConst.VAT;
                        cextc1.Field2  = TaxCodeConst.NV;

                        cextc1.Active  = true;
                        cextc1.CreBy   = 1;
                        cextc1.CreDate = DateTime.Now;
                        cextc1.UpdBy   = 1;
                        cextc1.UpdDate = DateTime.Now;
                        cextc1.UpdPgm  = "AdvancePosting";
                        BapiServiceProvider.BapiacextcService.Save(cextc1);
                        #endregion Foolter

                        Bapiacap09 capItem1  = new Bapiacap09();
                        Bapiacap09 capItem2  = new Bapiacap09();
                        Bapiaccr09 accrItem1 = new Bapiaccr09();
                        Bapiaccr09 accrItem2 = new Bapiaccr09();

                        #region Credit
                        capItem1.DocId         = DocID;
                        capItem1.DocSeq        = "M";
                        capItem1.DocKind       = DocKind;
                        capItem1.ItemnoAcc     = "1";
                        capItem1.VendorNo      = dstPosting.Tables[0].Rows[0]["PBCode"].ToString();
                        capItem1.PmntBlock     = PostingConst.PmntBlock;
                        capItem1.Pmnttrms      = PostingConst.Pmnttrms;
                        capItem1.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                        capItem1.AllocNmbr     = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["ReceiverID"].ToString())).EmployeeName;
                        capItem1.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                        capItem1.ItemText      = dstPosting.Tables[0].Rows[0]["Description"].ToString();
                        capItem1.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                        capItem1.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                        capItem1.TaxCode       = TaxCodeConst.NV;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem1.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                        }

                        capItem1.Active  = true;
                        capItem1.CreBy   = 1;
                        capItem1.CreDate = DateTime.Now;
                        capItem1.UpdBy   = 1;
                        capItem1.UpdDate = DateTime.Now;
                        capItem1.UpdPgm  = "AdvancePosting";

                        accrItem1.DocId     = DocID;
                        accrItem1.DocSeq    = "M";
                        accrItem1.DocKind   = DocKind;
                        accrItem1.ItemnoAcc = "1";

                        accrItem1.Currency  = mainCurrencySymbol;
                        accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[0]["MainCurrencyAmount"].ToString());
                        accrItem1.ExchRate  = decimal.Parse(dstPosting.Tables[0].Rows[0]["ExchangeRateMainToTHB"].ToString());

                        accrItem1.Active  = true;
                        accrItem1.CreBy   = 1;
                        accrItem1.CreDate = DateTime.Now;
                        accrItem1.UpdBy   = 1;
                        accrItem1.UpdDate = DateTime.Now;
                        accrItem1.UpdPgm  = "AdvancePosting";
                        #endregion Credit

                        #region Debit
                        capItem2.DocId         = DocID;
                        capItem2.DocSeq        = "M";
                        capItem2.DocKind       = DocKind;
                        capItem2.ItemnoAcc     = "2";
                        capItem2.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[0]["RequesterID"].ToString())).VendorCode;
                        capItem2.Pmnttrms      = PostingConst.Pmnttrms;
                        capItem2.BlineDate     = dstPosting.Tables[0].Rows[0]["BaseLineDate"].ToString();
                        capItem2.PmntBlock     = PostingConst.PmntBlock;
                        capItem2.AllocNmbr     = dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString();
                        capItem2.AllocNmbr     = SAPUIHelper.SubString18(capItem2.AllocNmbr);
                        capItem2.ItemText      = dstPosting.Tables[0].Rows[0]["DueDate"].ToString() + "/" + dstPosting.Tables[0].Rows[0]["Description"].ToString();
                        capItem2.ItemText      = SAPUIHelper.SubString50(capItem2.ItemText);
                        capItem2.Businessplace = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();
                        capItem2.TaxCode       = TaxCodeConst.NV;
                        capItem2.SpGlInd       = SpGlIndConst.D;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem2.BusArea = dstPosting.Tables[0].Rows[0]["BusinessArea"].ToString();
                        }

                        capItem2.Active  = true;
                        capItem2.CreBy   = 1;
                        capItem2.CreDate = DateTime.Now;
                        capItem2.UpdBy   = 1;
                        capItem2.UpdDate = DateTime.Now;
                        capItem2.UpdPgm  = "AdvancePosting";

                        accrItem2.DocId     = DocID;
                        accrItem2.DocSeq    = "M";
                        accrItem2.DocKind   = DocKind;
                        accrItem2.ItemnoAcc = "2";

                        accrItem2.Currency  = mainCurrencySymbol;
                        accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[0]["MainCurrencyAmount"].ToString());
                        accrItem2.ExchRate  = decimal.Parse(dstPosting.Tables[0].Rows[0]["ExchangeRateMainToTHB"].ToString());

                        accrItem2.Active  = true;
                        accrItem2.CreBy   = 1;
                        accrItem2.CreDate = DateTime.Now;
                        accrItem2.UpdBy   = 1;
                        accrItem2.UpdDate = DateTime.Now;
                        accrItem2.UpdPgm  = "AdvancePosting";
                        #endregion Debit

                        BapiServiceProvider.Bapiacap09Service.Save(capItem1);
                        BapiServiceProvider.Bapiacap09Service.Save(capItem2);
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem1);
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem2);
                    }
                    #endregion Foreign
                }
            }
        }
Esempio n. 18
0
        protected void ctlAdd_Click(object sender, ImageClickEventArgs e)
        {
            DbCurrency currency;

            if (Mode.Equals(FlagEnum.EditFlag))
            {
                currency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(CurrencyID);
            }
            else
            {
                currency = new DbCurrency();
            }

            currency.Symbol         = ctlSymbol.Text;
            currency.Active         = ctlActive.Checked;
            currency.CreBy          = UserAccount.UserID;
            currency.CreDate        = DateTime.Now;
            currency.UpdBy          = UserAccount.UserID;
            currency.UpdDate        = DateTime.Now;
            currency.UpdPgm         = UserAccount.CurrentProgramCode;
            currency.Comment        = ctlComment.Text;
            currency.CurrencySymbol = ctlCurrencySymbol.Text;

            try
            {
                DbCurrencyService.SaveOrUpdate(currency);

                // save or update currencylang
                IList <DbCurrencyLang> list = new List <DbCurrencyLang>();
                foreach (GridViewRow row in ctlCurrencyEditorGrid.Rows)
                {
                    short    languageId     = UIHelper.ParseShort(ctlCurrencyEditorGrid.DataKeys[row.RowIndex]["LanguageID"].ToString());
                    TextBox  ctrDescription = row.FindControl("ctrDescription")         as TextBox;
                    TextBox  ctrComment     = row.FindControl("ctrComment")             as TextBox;
                    CheckBox ctlActiveCl    = row.FindControl("ctlActive")              as CheckBox;
                    TextBox  ctlMainUnit    = row.FindControl("ctlMainUnit")            as TextBox;
                    TextBox  ctlSubUnit     = row.FindControl("ctlSubUnit")             as TextBox;

                    if ((!string.IsNullOrEmpty(ctrDescription.Text)) || (!string.IsNullOrEmpty(ctrComment.Text)))
                    {
                        DbCurrencyLang currencyLang = new DbCurrencyLang();
                        currencyLang.Description = ctrDescription.Text;
                        currencyLang.Comment     = ctrComment.Text;
                        currencyLang.Active      = ctlActiveCl.Checked;
                        currencyLang.Currency    = currency;
                        currencyLang.CreBy       = UserAccount.UserID;
                        currencyLang.CreDate     = DateTime.Now;
                        currencyLang.UpdBy       = UserAccount.UserID;
                        currencyLang.UpdDate     = DateTime.Now;
                        currencyLang.Language    = new DbLanguage(languageId);
                        currencyLang.UpdPgm      = UserAccount.CurrentProgramCode;
                        currencyLang.MainUnit    = ctlMainUnit.Text;
                        currencyLang.SubUnit     = ctlSubUnit.Text;
                        list.Add(currencyLang);
                    }
                }

                if (Mode.Equals(FlagEnum.EditFlag))
                {
                    DbCurrencyLangService.UpdateCurrencyLang(list);
                }
                if (Mode.Equals(FlagEnum.NewFlag))
                {
                    DbCurrencyLangService.AddCurrencyLang(list);
                }

                Notify_Ok(sender, e);
            }
            catch (ServiceValidationException ex)
            {
                this.ValidationErrors.MergeErrors(ex.ValidationErrors);
            }
        }
Esempio n. 19
0
        protected void ctlCurrencyGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "UserEdit")
            {
                int   rowIndex   = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
                short currencyId = Convert.ToInt16(ctlCurrencyGrid.DataKeys[rowIndex].Value);
                ctlCurrencyForm.PageIndex = (ctlCurrencyGrid.PageIndex * ctlCurrencyGrid.PageSize) + rowIndex;
                ctlCurrencyForm.ChangeMode(FormViewMode.Edit);
                IList <DbCurrency> currencyList = new List <DbCurrency>();
                DbCurrency         currency     = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(currencyId);
                currencyList.Add(currency);

                ctlCurrencyForm.DataSource = currencyList;
                ctlCurrencyForm.DataBind();
                ctlCurrencyGrid.DataCountAndBind();
                UpdatePanelCurrencyForm.Update();
                ctlCurrencyModalPopupExtender.Show();
            }
            if (e.CommandName == "UserEdit")
            {
                foreach (GridViewRow row in ctlCurrencyGrid.Rows)
                {
                    if ((row.RowType == DataControlRowType.DataRow) && (((CheckBox)row.FindControl("ctlSelectChk")).Checked))
                    {
                        try
                        {
                            short      currencyId = UIHelper.ParseShort(ctlCurrencyGrid.DataKeys[row.RowIndex].Value.ToString());
                            DbCurrency currency   = SsDbQueryProvider.DbCurrencyQuery.FindProxyByIdentity(currencyId);
                            DbCurrencyService.Delete(currency);
                            ExchangeRateGridViewFinish();
                        }
                        catch (Exception ex)
                        {
                            if (((System.Data.SqlClient.SqlException)(ex.GetBaseException())).Number == 547)
                            {
                                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AlertInUseData",
                                                                        "alert('This data is now in use.');", true);
                                ctlCurrencyGrid.DataCountAndBind();
                                ctlCurrencyUpdatePanel.Update();
                            }
                        }
                    }
                }
            }
            if (e.CommandName == "Select")
            {
                int    rowIndex   = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
                string currencyId = ctlCurrencyGrid.DataKeys[rowIndex].Value.ToString();//UIHelper.ParseShort(ctlCurrencyGrid.DataKeys[rowIndex].Value.ToString());
                ctlCurrencyIdHidden.Value = currencyId;
                ctlExchangeGrid.DataCountAndBind();
                ctlExchangeButton.Visible = true;
                ctlExchangeGrid.Visible   = true;
                ctlExchangeFds.Visible    = true;
                //if (ctlExchangeGrid.Rows.Count <= 0)
                //{
                //    ctlExchangeGrid.EmptyDataText = "$No result.$";
                //    ctlExchangeGrid.DataBind();
                //}
                ctlCurrencyGrid.DataCountAndBind();
                ctlExchangeRateUpdatePanel.Update();
                ctlCurrencyUpdatePanel.Update();
            }
        }
        public override void CreatePostData(long DocID, string DocKind)
        {
            Hashtable paramete = new Hashtable();

            paramete.Add("@DOCUMENT_ID", DocID.ToString());

            DataSet dstPosting         = new DBManage().ExecuteQuery("REMITANCE_POSTING", paramete);
            bool    repOffice          = false;
            string  mainCurrencySymbol = string.Empty;

            SCGDocument doc = SCG.eAccounting.Query.ScgeAccountingQueryProvider.SCGDocumentQuery.FindProxyByIdentity(DocID);

            DbSapInstance sap = SCG.DB.Query.ScgDbQueryProvider.DbCompanyQuery.GetSAPDocTypeForPosting(doc.CompanyID.CompanyCode);

            if (dstPosting.Tables[0].Rows.Count >= 1)
            {
                if (!string.IsNullOrEmpty(dstPosting.Tables[0].Rows[0]["IsRepOffice"].ToString()))
                {
                    repOffice = bool.Parse(dstPosting.Tables[0].Rows[0]["IsRepOffice"].ToString());
                }

                // get main currency symbol
                if (repOffice)
                {
                    DbCurrency mainCurrency = SS.DB.Query.SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(short.Parse(dstPosting.Tables[0].Rows[0]["MainCurrencyID"].ToString()));
                    if (mainCurrency != null)
                    {
                        mainCurrencySymbol = mainCurrency.Symbol;
                    }
                }

                #region HEAD
                Bapiache09 che09 = new Bapiache09();
                che09.DocId     = DocID;
                che09.DocSeq    = "M";
                che09.DocKind   = DocKind;
                che09.DocStatus = "N";

                che09.BusAct      = PostingConst.BusAct;
                che09.Username    = sap.UserCPIC;//PostingConst.UserCPIC;
                che09.CompCode    = dstPosting.Tables[0].Rows[0]["CompanyCode"].ToString();
                che09.DocDate     = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                che09.DocType     = sap.DocTypeRmtPosting;//DocTypeConst.SV;
                che09.PstngDate   = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                che09.ReverseDate = dstPosting.Tables[0].Rows[0]["PostingDate"].ToString();
                che09.RefDocNo    = SAPUIHelper.SubString(16, dstPosting.Tables[0].Rows[0]["DocumentNo"].ToString());

                che09.Active  = true;
                che09.CreBy   = 1;
                che09.CreDate = DateTime.Now;
                che09.UpdBy   = 1;
                che09.UpdDate = DateTime.Now;
                che09.UpdPgm  = "RemetancePosting";
                BapiServiceProvider.Bapiache09Service.Save(che09);
                #endregion HEAD

                #region Foolter
                Bapiacextc cextc = new Bapiacextc();
                cextc.DocId   = DocID;
                cextc.DocSeq  = "M";
                cextc.DocKind = DocKind;
                cextc.Field1  = PostingConst.BRNCH;
                cextc.Field2  = dstPosting.Tables[0].Rows[0]["BranchCode"].ToString();

                cextc.Active  = true;
                cextc.CreBy   = 1;
                cextc.CreDate = DateTime.Now;
                cextc.UpdBy   = 1;
                cextc.UpdDate = DateTime.Now;
                cextc.UpdPgm  = "RemetancePosting";
                BapiServiceProvider.BapiacextcService.Save(cextc);

                Bapiacextc cextc1 = new Bapiacextc();
                cextc1.DocId   = DocID;
                cextc1.DocSeq  = "M";
                cextc1.DocKind = DocKind;
                cextc1.Field1  = PostingConst.VAT;
                cextc1.Field2  = TaxCodeConst.NV;

                cextc1.Active  = true;
                cextc1.CreBy   = 1;
                cextc1.CreDate = DateTime.Now;
                cextc1.UpdBy   = 1;
                cextc1.UpdDate = DateTime.Now;
                cextc1.UpdPgm  = "RemetancePosting";
                BapiServiceProvider.BapiacextcService.Save(cextc1);
                #endregion Foolter

                #region คู่บัญชี


                int intSeq = 0;

                for (int i = 0; i < dstPosting.Tables[0].Rows.Count; i++)
                {
                    if (!repOffice)
                    {
                        #region Credit

                        intSeq++;

                        Bapiacap09 capItem1 = new Bapiacap09();
                        capItem1.DocId         = DocID;
                        capItem1.DocSeq        = "M";
                        capItem1.DocKind       = DocKind;
                        capItem1.ItemnoAcc     = intSeq.ToString();
                        capItem1.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[i]["RequesterID"].ToString())).VendorCode;
                        capItem1.AllocNmbr     = dstPosting.Tables[0].Rows[i]["AdvanceNo"].ToString();
                        capItem1.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                        capItem1.ItemText      = dstPosting.Tables[0].Rows[i]["Description"].ToString();
                        capItem1.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                        capItem1.Businessplace = dstPosting.Tables[0].Rows[i]["BranchCode"].ToString();
                        capItem1.TaxCode       = TaxCodeConst.NV;
                        capItem1.SpGlInd       = SpGlIndConst.D;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem1.BusArea = dstPosting.Tables[0].Rows[i]["BusinessArea"].ToString();
                        }

                        capItem1.Active  = true;
                        capItem1.CreBy   = 1;
                        capItem1.CreDate = DateTime.Now;
                        capItem1.UpdBy   = 1;
                        capItem1.UpdDate = DateTime.Now;
                        capItem1.UpdPgm  = "RemetancePosting";
                        BapiServiceProvider.Bapiacap09Service.Save(capItem1);

                        Bapiaccr09 accrItem1 = new Bapiaccr09();
                        accrItem1.DocId     = DocID;
                        accrItem1.DocSeq    = "M";
                        accrItem1.DocKind   = DocKind;
                        accrItem1.ItemnoAcc = intSeq.ToString();

                        accrItem1.Currency  = PostingConst.Currency;
                        accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[i]["RemittanceAmount"].ToString());

                        accrItem1.Active  = true;
                        accrItem1.CreBy   = 1;
                        accrItem1.CreDate = DateTime.Now;
                        accrItem1.UpdBy   = 1;
                        accrItem1.UpdDate = DateTime.Now;
                        accrItem1.UpdPgm  = "RemetancePosting";
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem1);

                        #endregion Credit

                        #region Debit

                        intSeq++;

                        Bapiacgl09 cglItem2 = new Bapiacgl09();
                        cglItem2.DocId     = DocID;
                        cglItem2.DocSeq    = "M";
                        cglItem2.DocKind   = DocKind;
                        cglItem2.ItemnoAcc = intSeq.ToString();

                        cglItem2.GlAccount = PostingConst.GLAccount;

                        cglItem2.AllocNmbr = dstPosting.Tables[0].Rows[i]["AdvanceNo"].ToString();
                        cglItem2.AllocNmbr = SAPUIHelper.SubString18(cglItem2.AllocNmbr);
                        cglItem2.ItemText  = dstPosting.Tables[0].Rows[i]["Description"].ToString();
                        cglItem2.ItemText  = SAPUIHelper.SubString50(cglItem2.ItemText);

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            cglItem2.BusArea = dstPosting.Tables[0].Rows[i]["BusinessArea"].ToString();
                        }

                        cglItem2.Active  = true;
                        cglItem2.CreBy   = 1;
                        cglItem2.CreDate = DateTime.Now;
                        cglItem2.UpdBy   = 1;
                        cglItem2.UpdDate = DateTime.Now;
                        cglItem2.UpdPgm  = "RemetancePosting";
                        BapiServiceProvider.Bapiacgl09Service.Save(cglItem2);

                        Bapiaccr09 accrItem2 = new Bapiaccr09();
                        accrItem2.DocId     = DocID;
                        accrItem2.DocSeq    = "M";
                        accrItem2.DocKind   = DocKind;
                        accrItem2.ItemnoAcc = intSeq.ToString();

                        accrItem2.Currency  = PostingConst.Currency;
                        accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[i]["RemittanceAmount"].ToString());

                        accrItem2.Active  = true;
                        accrItem2.CreBy   = 1;
                        accrItem2.CreDate = DateTime.Now;
                        accrItem2.UpdBy   = 1;
                        accrItem2.UpdDate = DateTime.Now;
                        accrItem2.UpdPgm  = "RemetancePosting";
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem2);

                        #endregion Debit
                    }
                    else //post RMT for rep office
                    {
                        #region Credit
                        intSeq++;
                        Bapiacap09 capItem1 = new Bapiacap09();
                        capItem1.DocId         = DocID;
                        capItem1.DocSeq        = "M";
                        capItem1.DocKind       = DocKind;
                        capItem1.ItemnoAcc     = intSeq.ToString();
                        capItem1.VendorNo      = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[i]["RequesterID"].ToString())).VendorCode;
                        capItem1.Pmnttrms      = PostingConst.Pmnttrms;
                        capItem1.BlineDate     = dstPosting.Tables[0].Rows[i]["BaseLineDate"].ToString();
                        capItem1.PmntBlock     = PostingConst.PmntBlock;
                        capItem1.AllocNmbr     = dstPosting.Tables[0].Rows[i]["AdvanceNo"].ToString();
                        capItem1.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                        capItem1.ItemText      = dstPosting.Tables[0].Rows[i]["Description"].ToString();
                        capItem1.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                        capItem1.Businessplace = dstPosting.Tables[0].Rows[i]["BranchCode"].ToString();
                        capItem1.TaxCode       = TaxCodeConst.NV;
                        capItem1.SpGlInd       = SpGlIndConst.D;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem1.BusArea = dstPosting.Tables[0].Rows[i]["BusinessArea"].ToString();
                        }

                        capItem1.Active  = true;
                        capItem1.CreBy   = 1;
                        capItem1.CreDate = DateTime.Now;
                        capItem1.UpdBy   = 1;
                        capItem1.UpdDate = DateTime.Now;
                        capItem1.UpdPgm  = "RemittancePosting";
                        BapiServiceProvider.Bapiacap09Service.Save(capItem1);

                        Bapiaccr09 accrItem1 = new Bapiaccr09();
                        accrItem1.DocId     = DocID;
                        accrItem1.DocSeq    = "M";
                        accrItem1.DocKind   = DocKind;
                        accrItem1.ItemnoAcc = intSeq.ToString();

                        accrItem1.Currency  = mainCurrencySymbol;
                        accrItem1.AmtDoccur = 0 - decimal.Parse(dstPosting.Tables[0].Rows[i]["RemittanceAmountMainCurrency"].ToString());
                        accrItem1.ExchRate  = decimal.Parse(dstPosting.Tables[0].Rows[i]["ExchangeRateMainToTHB"].ToString());

                        accrItem1.Active  = true;
                        accrItem1.CreBy   = 1;
                        accrItem1.CreDate = DateTime.Now;
                        accrItem1.UpdBy   = 1;
                        accrItem1.UpdDate = DateTime.Now;
                        accrItem1.UpdPgm  = "RemittancePosting";
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem1);

                        #endregion Credit

                        #region Debit

                        intSeq++;

                        Bapiacap09 capItem2 = new Bapiacap09();
                        capItem2.DocId         = DocID;
                        capItem2.DocSeq        = "M";
                        capItem2.DocKind       = DocKind;
                        capItem2.ItemnoAcc     = intSeq.ToString();
                        capItem2.VendorNo      = dstPosting.Tables[0].Rows[i]["PBCode"].ToString();
                        capItem2.PmntBlock     = PostingConst.PmntBlock;
                        capItem2.Pmnttrms      = PostingConst.Pmnttrms;
                        capItem2.BlineDate     = dstPosting.Tables[0].Rows[i]["BaseLineDate"].ToString();
                        capItem2.AllocNmbr     = SAPUIHelper.GetEmployee(long.Parse(dstPosting.Tables[0].Rows[i]["RequesterID"].ToString())).EmployeeName;
                        capItem2.AllocNmbr     = SAPUIHelper.SubString18(capItem1.AllocNmbr);
                        capItem2.ItemText      = dstPosting.Tables[0].Rows[i]["Description"].ToString();
                        capItem2.ItemText      = SAPUIHelper.SubString50(capItem1.ItemText);
                        capItem2.Businessplace = dstPosting.Tables[0].Rows[i]["BranchCode"].ToString();
                        capItem2.TaxCode       = TaxCodeConst.NV;

                        if (bool.Parse(dstPosting.Tables[0].Rows[0]["RequireBusinessArea"].ToString()))
                        {
                            capItem2.BusArea = dstPosting.Tables[0].Rows[i]["BusinessArea"].ToString();
                        }

                        capItem2.Active  = true;
                        capItem2.CreBy   = 1;
                        capItem2.CreDate = DateTime.Now;
                        capItem2.UpdBy   = 1;
                        capItem2.UpdDate = DateTime.Now;
                        capItem2.UpdPgm  = "RemittancePosting";
                        BapiServiceProvider.Bapiacap09Service.Save(capItem2);

                        Bapiaccr09 accrItem2 = new Bapiaccr09();
                        accrItem2.DocId     = DocID;
                        accrItem2.DocSeq    = "M";
                        accrItem2.DocKind   = DocKind;
                        accrItem2.ItemnoAcc = intSeq.ToString();

                        accrItem2.Currency  = mainCurrencySymbol;
                        accrItem2.AmtDoccur = decimal.Parse(dstPosting.Tables[0].Rows[i]["RemittanceAmountMainCurrency"].ToString());
                        accrItem2.ExchRate  = decimal.Parse(dstPosting.Tables[0].Rows[i]["ExchangeRateMainToTHB"].ToString());

                        accrItem2.Active  = true;
                        accrItem2.CreBy   = 1;
                        accrItem2.CreDate = DateTime.Now;
                        accrItem2.UpdBy   = 1;
                        accrItem2.UpdDate = DateTime.Now;
                        accrItem2.UpdPgm  = "RemittancePosting";
                        BapiServiceProvider.Bapiaccr09Service.Save(accrItem2);
                        #endregion Debit
                    }
                }


                #endregion คู่บัญชี
            }
        }
        public void BindDifferenceAmountSummary()
        {
            FnExpenseDocumentService.CalculateTotalExpense(this.TransactionId, this.ExpDocumentID, IsRepOffice);
            FnExpenseDocumentService.CalculateDifferenceAmount(this.TransactionId, this.ExpDocumentID, IsRepOffice);
            ExpenseDataSet expDS = (ExpenseDataSet)TransactionService.GetDS(this.TransactionId);

            if (expDS != null)
            {
                ExpenseDataSet.FnExpenseDocumentRow expRow = expDS.FnExpenseDocument.FindByExpenseID(this.ExpDocumentID);

                if (expRow != null)
                {
                    if (!IsRepOffice)
                    {
                        DivTotalSummaryForThailand.Style["display"]  = "block";
                        DivTotalSummaryForRepOffice.Style["display"] = "none";

                        ctlTotalExpense.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalExpense.ToString());
                        ctlTotalExpense.ForeColor = expRow.TotalExpense < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                        ctlTotalAdvance.Text      = UIHelper.BindDecimalNumberAccountFormat((-1 * expRow.TotalAdvance).ToString());
                        ctlTotalAdvance.ForeColor = (-1 * expRow.TotalAdvance) < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                        ctlTotalRemitted.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalRemittance.ToString());
                        ctlTotalRemitted.ForeColor = expRow.TotalRemittance < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                        ctlDifferenceAmount.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.DifferenceAmount.ToString());
                        ctlDifferenceAmount.ForeColor = expRow.DifferenceAmount < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;
                    }
                    else
                    {
                        DivTotalSummaryForThailand.Style["display"]  = "none";
                        DivTotalSummaryForRepOffice.Style["display"] = "block";
                        ctlTHBCurrencyTab.Visible  = false;
                        ctlMainCurrencyTab.Visible = false;

                        if (CounterCashierID.HasValue)
                        {
                            Dbpb       pb            = ScgDbQueryProvider.DbPBQuery.FindByIdentity(CounterCashierID.Value);
                            DbCurrency localCurrency = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(LocalCurrencyID.HasValue ? LocalCurrencyID.Value : (short)0);
                            DbCurrency mainCurrency  = SsDbQueryProvider.DbCurrencyQuery.FindByIdentity(pb.MainCurrencyID.HasValue ? pb.MainCurrencyID.Value : (short)0);

                            if (localCurrency != null)
                            {
                                ctlLocalCurrencyTab.HeaderText = localCurrency.Symbol;
                            }

                            if (mainCurrency != null)
                            {
                                ctlMainCurrencyTab.HeaderText = mainCurrency.Symbol;
                            }
                        }
                        #region Amount LocalCurrency Tab
                        ctlLocalCurrencyTab.Visible = true;

                        ctlTotalExpenseLocal.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalExpenseLocalCurrency.ToString());
                        ctlTotalExpenseLocal.ForeColor = expRow.TotalExpenseLocalCurrency < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                        if (!expRow.IsTotalAdvanceLocalCurrencyNull())
                        {
                            ctlTotalAdvanceLocal.Text      = UIHelper.BindDecimalNumberAccountFormat((-1 * expRow.TotalAdvanceLocalCurrency).ToString());
                            ctlTotalAdvanceLocal.ForeColor = (-1 * expRow.TotalAdvanceLocalCurrency) < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;
                        }

                        if (!expRow.IsTotalRemittanceLocalCurrencyNull())
                        {
                            ctlTotalRemittanceLocal.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalRemittanceLocalCurrency.ToString());
                            ctlTotalRemittanceLocal.ForeColor = expRow.TotalRemittanceLocalCurrency < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;
                        }

                        if (!expRow.IsDifferenceAmountLocalCurrencyNull())
                        {
                            ctlDifferenceAmtLocal.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.DifferenceAmountLocalCurrency.ToString());
                            ctlDifferenceAmtLocal.ForeColor = expRow.DifferenceAmountLocalCurrency < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;
                        }
                        #endregion

                        SS.Standard.WorkFlow.DTO.WorkFlow workflow = SS.Standard.WorkFlow.Query.WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(expRow.DocumentID);
                        if (workflow != null && workflow.CurrentState.Ordinal >= 5)
                        {
                            if (UserAccount.IsAccountant || UserAccount.IsPayment)
                            {
                                #region Amount MainCurrency Tab
                                if (expRow.LocalCurrencyID != expRow.MainCurrencyID)
                                {
                                    ctlMainCurrencyTab.Visible = true;
                                }
                                ctlTotalExpenseMainCurrency.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalExpenseMainCurrency.ToString());
                                ctlTotalExpenseMainCurrency.ForeColor = expRow.TotalExpenseMainCurrency < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                                ctlTotalAdvanceMainCurrency.Text      = UIHelper.BindDecimalNumberAccountFormat((-1 * expRow.TotalAdvanceMainCurrency).ToString());
                                ctlTotalAdvanceMainCurrency.ForeColor = (-1 * expRow.TotalAdvanceMainCurrency) < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                                ctlTotalRemittanceMainCurrency.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalRemittanceMainCurrency.ToString());
                                ctlTotalRemittanceMainCurrency.ForeColor = expRow.TotalRemittanceMainCurrency < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                                ctlDifferenceAmtMainCurrency.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.DifferenceAmountMainCurrency.ToString());
                                ctlDifferenceAmtMainCurrency.ForeColor = expRow.DifferenceAmountMainCurrency < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;
                                #endregion

                                #region Amount THB Currency Tab
                                ctlTHBCurrencyTab.Visible    = true;
                                ctlTotalExpenseTHB.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalExpense.ToString());
                                ctlTotalExpenseTHB.ForeColor = expRow.TotalExpense < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                                ctlTotalAdvanceTHB.Text      = UIHelper.BindDecimalNumberAccountFormat((-1 * expRow.TotalAdvance).ToString());
                                ctlTotalAdvanceTHB.ForeColor = (-1 * expRow.TotalAdvance) < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                                ctlTotalRemittanceTHB.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.TotalRemittance.ToString());
                                ctlTotalRemittanceTHB.ForeColor = expRow.TotalRemittance < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;

                                ctlDifferenceAmtTHB.Text      = UIHelper.BindDecimalNumberAccountFormat(expRow.DifferenceAmount.ToString());
                                ctlDifferenceAmtTHB.ForeColor = expRow.DifferenceAmount < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Black;
                                #endregion
                            }
                        }
                    }
                }
            }
        }