public MainViewModel() { _categoryProvier = new DataProvider <Category>(_categoryFilename); _participantProvier = new DataProvider <Participant>(_participantsFilename); _transactionDataProvider = new TransactionDataProvider(); Transactions = new ObservableCollection <Transaction>(); }
public virtual decimal?GetVendorPreparedBalance(APAdjust adjustment) { FinDocumentExtKey actualDocLineKey = InvoiceDataProvider.GetSourceEntityKeyByRetainage(Graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr); decimal?fullAmount; if (adjustment.AdjdLineNbr == 0) { APInvoice bill = InvoiceDataProvider.GetInvoice(Graph, actualDocLineKey.Type, actualDocLineKey.RefNbr); fullAmount = bill.CuryOrigDocAmt + bill.CuryRetainageTotal; } else { APTran tran = TransactionDataProvider.GetTransaction(Graph, actualDocLineKey.Type, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr); fullAmount = tran.CuryOrigTranAmt + tran.CuryRetainageAmt; } var totalJointAmountOwed = JointPayeeDataProvider.GetJointPayees(Graph, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr) .Sum(jp => jp.JointAmountOwed.GetValueOrDefault()); var totalVendorPaymentAmount = GetTotalVendorPaymentAmount(adjustment, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr); var currentVendorPaymentAmount = GetVendorPaymentAmount(adjustment); var reversedRetainageAmount = GetReversedRetainageAmount(actualDocLineKey.RefNbr, actualDocLineKey.LineNbr); return(fullAmount + reversedRetainageAmount - totalJointAmountOwed - (totalVendorPaymentAmount - currentVendorPaymentAmount)); }
public static IEnumerable <int?> GetProjectIds(PXGraph graph, IEnumerable <APAdjust> adjustments) { return(adjustments.Select(adjustment => InvoiceDataProvider.GetOriginalInvoice(graph, adjustment.AdjdRefNbr, adjustment.AdjdDocType)) .SelectMany(inv => TransactionDataProvider .GetTransactions(graph, inv.DocType, inv.RefNbr).Select(t => t.ProjectID)).Distinct().ToList()); }
private APTran GetTransaction(APAdjust adjustment) { return(adjustment.AdjdLineNbr == 0 ? GetTransactionIfAdjustmentIsRelatedToSingleCommitment(adjustment) : TransactionDataProvider.GetTransaction(graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr)); }
private static IEnumerable <APTran> GetTransactions(PXGraph graph, IDocumentAdjustment adjustment) { var originalBill = InvoiceDataProvider.GetOriginalInvoice(graph, adjustment.AdjdRefNbr, adjustment.AdjdDocType); return(TransactionDataProvider.GetTransactions(graph, originalBill.DocType, originalBill.RefNbr)); }
public override decimal?GetInvoiceBalance(APAdjust adjustment) { var transaction = TransactionDataProvider.GetTransaction(Graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr); return(transaction.CuryTranAmt); }
private static APTran GetTransaction(PXGraph graph, JointPayee jointPayee, IDocumentAdjustment adjustment) { var originalBill = InvoiceDataProvider.GetOriginalInvoice(graph, adjustment.AdjdRefNbr, adjustment.AdjdDocType); return(TransactionDataProvider.GetTransaction(graph, originalBill.DocType, originalBill.RefNbr, jointPayee.BillLineNumber)); }
protected override decimal GetAllowableCashDiscountConsiderBillBalance(APAdjust apAdjust) { var billLineBalance = TransactionDataProvider .GetTransaction(Graph, apAdjust.AdjdDocType, apAdjust.AdjdRefNbr, apAdjust.AdjdLineNbr).CuryTranBal; var cashDiscount = billLineBalance - apAdjust.CuryAdjgPPDAmt; return(Math.Max(cashDiscount.GetValueOrDefault(), 0)); }
private bool IsRelatedToCommitment(APTran transaction, int?projectId, string commitmentNumber) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(graph, transaction); var subcontractNumber = GetSubcontractNumber(originalTransaction); return(originalTransaction.ProjectID == projectId && commitmentNumber.IsIn(originalTransaction.PONbr, subcontractNumber)); }
private int?GetProjectId(JointPayee jointPayee) { var transaction = jointPayee.BillLineNumber != 0 ? TransactionDataProvider.GetTransaction(Graph, jointPayee) : Transactions.Select(tran => tran).Distinct().SingleOrNull(); return(TransactionDataProvider.GetOriginalTransaction(Graph, transaction).ProjectID); }
private void SetCashDiscountBalance(APAdjust adjustment) { var invoice = InvoiceDataProvider.GetInvoice(Base, adjustment.AdjdDocType, adjustment.AdjdRefNbr); adjustment.CuryDiscBal = invoice.PaymentsByLinesAllowed == true ? TransactionDataProvider.GetTransaction(Base, invoice.DocType, invoice.RefNbr, adjustment.AdjdLineNbr) .CuryCashDiscBal : invoice.CuryOrigDiscAmt; }
private decimal?GeReleasedAmountFromRetainageGroup(APInvoice invoice, IEnumerable <int?> billLineNumbers) { var allReleasedBillsFromRetainageGroup = InvoiceDataProvider .GetAllBillsFromRetainageGroup(Graph, invoice.RefNbr, invoice.DocType) .Except(invoice).Where(bill => bill.Released == true); return(allReleasedBillsFromRetainageGroup.SelectMany(bill => TransactionDataProvider .GetTransactions(Graph, bill.DocType, bill.RefNbr, billLineNumbers)) .Sum(transaction => transaction.CuryTranBal)); }
public static IEnumerable <int?> GetProjectIds(APAdjust adjustment, PXGraph graph) { FinDocumentExtKey actualDocLineKey = InvoiceDataProvider.GetSourceEntityKeyByRetainage(graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr); var transactions = adjustment.AdjdLineNbr == 0 ? TransactionDataProvider.GetTransactions(graph, actualDocLineKey.Type, actualDocLineKey.RefNbr) : TransactionDataProvider.GetTransaction(graph, actualDocLineKey.Type, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr).SingleToList(); return(transactions.Select(tran => tran.ProjectID)); }
public decimal GetVendorBalancePerLine(APAdjust adjustment) { var jointPayeesTotalBalanceForLine = JointPayees .Where(jp => jp.BillLineNumber == adjustment.AdjdLineNbr) .Sum(jp => jp.JointBalance); var transactionBalance = TransactionDataProvider.GetTransaction( Graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr).CuryTranBal; var openBalancePerLine = GetOpenBalanceByAllBillsFromRetainageGroupPerLine(adjustment, transactionBalance); var vendorBalancePerLine = openBalancePerLine - jointPayeesTotalBalanceForLine; return(Math.Min(transactionBalance.GetValueOrDefault(), vendorBalancePerLine.GetValueOrDefault())); }
protected POOrder GetCommitment(APTran transaction) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(Graph, transaction); var transactionExtension = PXCache <APTran> .GetExtension <ApTranExt>(originalTransaction); return(transactionExtension.SubcontractNbr != null ? CommitmentDataProvider.GetCommitment(Graph, transactionExtension.SubcontractNbr, POOrderType.RegularSubcontract) : originalTransaction.PONbr != null ? CommitmentDataProvider.GetCommitment(Graph, originalTransaction.PONbr, POOrderType.RegularOrder) : null); }
public void TransactionOKTest() { BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionOkResponse()); TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransaction()); Assert.AreNotEqual(null, response); Assert.AreEqual(false, String.IsNullOrEmpty(response.GetPublicRequestKey())); Assert.AreEqual(false, String.IsNullOrEmpty(response.GetMerchantID())); Assert.AreEqual(false, String.IsNullOrEmpty(response.GetChannel())); }
private LienWaiverGenerationKey GetLienWaiverGroupingKey(APTran transaction, int?jointPayeeVendorId, APRegister payment) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(Graph, transaction); return(new LienWaiverGenerationKey { ProjectId = originalTransaction.ProjectID, VendorId = payment.VendorID, JointPayeeVendorId = jointPayeeVendorId, OrderNumber = GetCommitment(originalTransaction).OrderNbr }); }
public override void RecalculateTotalJointAmount() { var jointPayeesByLineGroups = JointPayees.SelectMain().GroupBy(jp => jp.BillLineNumber) .Where(jp => jp.Key != null); foreach (var jointPayeesByLine in jointPayeesByLineGroups) { var transaction = TransactionDataProvider.GetTransaction(Graph, CurrentBill.DocType, CurrentBill.RefNbr, jointPayeesByLine.Key); transactionExtension = PXCache <APTran> .GetExtension <ApTranExt>(transaction); transactionExtension.TotalJointAmountPerLine = jointPayeesByLine.Sum(jp => jp.JointAmountOwed); } }
public override void ValidateAmountOwed(JointPayee jointPayee) { if (jointPayee.BillLineNumber == null) { return; } var transaction = TransactionDataProvider.GetTransaction(Graph, CurrentBill.DocType, CurrentBill.RefNbr, jointPayee.BillLineNumber); transactionExtension = PXCache <APTran> .GetExtension <ApTranExt>(transaction); ValidateJointAmountOwedPerLine(jointPayee); base.ValidateAmountOwed(jointPayee); }
private decimal?GetAdjustmentAmountPerLine(APAdjust adjustment) { var jointPayeePaymentsTotalAmountToPayForLine = InvoiceJointPayeePayments .Where(jpp => jpp.BillLineNumber == adjustment.AdjdLineNbr) .Sum(jpp => jpp.JointAmountToPay); var vendorBalancePerLine = vendorBalancePerLineCalculationService.GetVendorBalancePerLine(adjustment); var transactionBalance = TransactionDataProvider.GetTransaction( PaymentEntry, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr).CuryTranBal; var minimumJointAmountToPay = transactionBalance - vendorBalancePerLine; return(jointPayeePaymentsTotalAmountToPayForLine > minimumJointAmountToPay ? transactionBalance - jointPayeePaymentsTotalAmountToPayForLine : vendorBalancePerLine); }
public static IEnumerable <int?> GetProjectIds(APInvoiceEntry graph, JointPayee jointPayee) { var originalBill = InvoiceDataProvider.GetOriginalInvoice(graph, graph.Document.Current); var transactions = TransactionDataProvider.GetTransactions(graph, originalBill.DocType, originalBill.RefNbr) .ToList(); if (IsSingleProjectPerDocumentContext(graph.APSetup.Current, transactions)) { return(graph.Document.Current.ProjectID.AsSingleEnumerable()); } if (jointPayee != null && graph.Document.Current.PaymentsByLinesAllowed == true) { transactions = transactions.Where(tran => tran.LineNbr == jointPayee.BillLineNumber).ToList(); } return(transactions.Select(tran => tran.ProjectID).Distinct()); }
GetOriginalBillTransactionsWithRetainageKey(IDocumentAdjustment adjustment) { var billTransactions = TransactionDataProvider .GetTransactions(graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr).ToList(); var singleTransaction = billTransactions.SingleOrNull(); if (singleTransaction?.OrigLineNbr != 0) { return(null, billTransactions); } var originalInvoice = InvoiceDataProvider .GetOriginalInvoice(graph, singleTransaction.RefNbr, singleTransaction.TranType); var originalTransactions = TransactionDataProvider.GetTransactions(graph, originalInvoice.DocType, originalInvoice.RefNbr).ToList(); return(singleTransaction, originalTransactions); }
static void Main(string[] args) { try { // Инициализируем DI и конфигурируем логгер var serviceProvider = new ServiceCollection() .AddLogging(cfg => cfg.AddConsole()) .Configure <LoggerFilterOptions>(cfg => cfg.MinLevel = LogLevel.Information) .AddTransient <TransactionDataProvider>() .BuildServiceProvider(); // Получаем экземпляр логгера и присваиваем _logger = serviceProvider.GetService <ILogger <TransactionDataProvider> >(); // Инициализируем класс провайдера данных _dataProvider = serviceProvider.GetRequiredService <TransactionDataProvider>(); Console.WriteLine(WelcomeStr); string userInput; do { userInput = UserInputData(); if (userInput.Equals(_addStr)) { Add(userInput); } if (userInput.Equals(_getStr)) { Find(userInput); } } while (!userInput.Equals(_exitStr)); if (userInput.Equals(_exitStr)) { ExitApp(); } Console.ReadLine(); } catch (Exception exc) { _logger.LogError($"{exc}"); } }
public void TransactionFailValidationTest() { BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionOkResponse()); TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransactionWrongField()); }
public void TransactionFailValidationRequiredTest() { BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionFailVendedorResponse()); TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransactionWithoutField()); }
public void TransactionFailVendedorTest() { BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionFailVendedorResponse()); TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransaction()); }
public void TransactionWithoutFieldTest() { BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionFailResponse()); TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransaction()); }
public static int?GetProjectId(APPaymentEntry graph, APTran transaction) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(graph, transaction); return(originalTransaction.ProjectID); }
protected override decimal?GetCashDiscountBalance(APAdjust adjustment) { return(TransactionDataProvider .GetTransaction(Graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr) .CuryCashDiscBal); }
private decimal?GetUnreleasedRetainageAmount(APInvoice originalInvoice, IEnumerable <int?> billLineNumbers) { return(TransactionDataProvider .GetTransactions(Graph, originalInvoice.DocType, originalInvoice.RefNbr, billLineNumbers) .Sum(t => t.CuryRetainageBal)); }