public static bool GetSupplierCurrency(long APartnerKey, out string ACurrency) { Boolean Result = false; ACurrency = ""; string Currency = ""; TDBTransaction Transaction = null; DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.ReadCommitted, ref Transaction, delegate { AApSupplierTable Table = AApSupplierAccess.LoadByPrimaryKey(APartnerKey, Transaction); if (Table.Rows.Count != 0) { Currency = ((AApSupplierRow)Table.Rows[0]).CurrencyCode; Result = true; } }); ACurrency = Currency; return(Result); }
public static bool GetSupplierCurrency(long APartnerKey, out string ACurrency) { ACurrency = ""; TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted); try { AApSupplierTable Table = AApSupplierAccess.LoadByPrimaryKey(APartnerKey, Transaction); if (Table.Rows.Count != 0) { ACurrency = ((AApSupplierRow)Table.Rows[0]).CurrencyCode; return(true); } } catch (Exception e) { TLogging.Log(e.ToString()); } finally { DBAccess.GDBAccessObj.RollbackTransaction(); TLogging.LogAtLevel(7, "TMergePartnersWebConnector.GetSupplierCurrency: rollback own transaction."); } return(false); }
/// <summary> /// Creates a AP document for the supplier specified with APartnerKey. /// </summary> /// <param name="APartnerKey"></param> /// <param name="AAmount"></param> /// <param name="AExchangeRatePosting"></param> /// <param name="ADocumentCode"></param> /// <param name="ANarrative"></param> /// <param name="AMainDS"></param> /// <param name="ADataBase"></param> /// <returns></returns> private TVerificationResultCollection CreateAPDocument(Int64 APartnerKey, decimal AAmount, decimal?AExchangeRatePosting, string ADocumentCode, string ANarrative, out AccountsPayableTDS AMainDS, TDataBase ADataBase) { string AssertFailMessage = "Problems saving AP document: "; TSubmitChangesResult SubmRes; TVerificationResultCollection VerificationResult; TDataBase db = DBAccess.Connect("CreateAPDocument", ADataBase); AMainDS = TAPTransactionWebConnector.CreateAApDocument(FLedgerNumber, APartnerKey, false, db); AccountsPayableTDS MainDS = AMainDS; TDBTransaction Transaction = new TDBTransaction(); db.ReadTransaction( ref Transaction, delegate { AApSupplierAccess.LoadByPrimaryKey(MainDS, APartnerKey, Transaction); }); AMainDS.AApDocument[0].DocumentCode = ADocumentCode + DateTime.Now.Ticks.ToString(); AMainDS.Merge(TAPTransactionWebConnector.CreateAApDocumentDetail( FLedgerNumber, AMainDS.AApDocument[0].ApDocumentId, AMainDS.AApSupplier[0].DefaultExpAccount, AMainDS.AApSupplier[0].DefaultCostCentre, AAmount, AMainDS.AApDocument[0].LastDetailNumber + 1)); AMainDS.AApDocument[0].LastDetailNumber++; AMainDS.AApDocument[0].TotalAmount = AAmount; AMainDS.AApDocument[0].DocumentStatus = MFinanceConstants.AP_DOCUMENT_APPROVED; AMainDS.AApDocumentDetail[0].Narrative = ANarrative; if (AExchangeRatePosting.HasValue) { AMainDS.AApDocument[0].ExchangeRateToBase = AExchangeRatePosting.Value; } SubmRes = TAPTransactionWebConnector.SaveAApDocument(ref AMainDS, out VerificationResult, db); if (SubmRes != TSubmitChangesResult.scrOK) { Assert.Fail(AssertFailMessage + String.Format(" - (SaveAApDocument return value: {0}) - ", SubmRes) + VerificationResult.BuildVerificationResultString()); } CommonNUnitFunctions.EnsureNullOrEmptyVerificationResult(VerificationResult, AssertFailMessage); // Guard Assert return(VerificationResult); }
/// <summary> /// Passes data as a Typed DataSet to the Supplier Edit Screen /// </summary> public AccountsPayableTDS GetData(Int64 APartnerKey) { TDBTransaction ReadTransaction; // create the DataSet that will later be passed to the Client AccountsPayableTDS MainDS = new AccountsPayableTDS(); ReadTransaction = FDataBase.BeginTransaction(IsolationLevel.RepeatableRead, 5); try { try { // Supplier AApSupplierAccess.LoadByPrimaryKey(MainDS, APartnerKey, ReadTransaction); if (MainDS.AApSupplier.Rows.Count == 0) { // Supplier does not exist throw new Exception("supplier does not exist"); } } catch (Exception Exp) { ReadTransaction.Rollback(); ReadTransaction = new TDBTransaction(); TLogging.Log("TSupplierEditUIConnector.LoadData exception: " + Exp.ToString(), TLoggingType.ToLogfile); TLogging.Log(Exp.StackTrace, TLoggingType.ToLogfile); throw; } } finally { if (ReadTransaction != null) { ReadTransaction.Commit(); } } // Accept row changes here so that the Client gets 'unmodified' rows MainDS.AcceptChanges(); // Remove all Tables that were not filled with data before remoting them. MainDS.RemoveEmptyTables(); return(MainDS); }