public void WritePayoutTransaction( UsrShopifyPayoutTransaction transaction) { var transObject = transaction.Json.DeserializeFromJson <PayoutTransaction>(); if (transObject.type == "payout") { _logger.Info( $"Skipping Transaction Payout Id: {transaction.ShopifyPayoutId} - " + $"Transaction Id: {transaction.ShopifyPayoutTransId} " + $"- type = payout"); return; } var receipt = transObject.amount > 0 ? transObject.amount : 0; var disbursment = transObject.amount < 0 ? transObject.amount : 0; // *** Careful about juggling all of this var tranDesc = $"Shopify Payout Id: {transObject.payout_id} - Payout Trans Id: {transObject.id}"; var invoiceNbr = $"Shopify Order Trans Id: {transObject.source_order_transaction_id}"; var extTranID = $"Shopify Order Id: {transObject.source_order_id}"; var extRefNbr = $"Shopify Payout Trans Id: {transObject.id}"; var schema = PX.Soap.Helper.GetSchema <CA306500Content>(_screen); var commands = new List <Command>() .AddCommand(schema.Details.ServiceCommands.NewRow) .AddCommand(schema.Details.ExtTranID, extTranID) .AddCommand(schema.Details.ExtRefNbr, extRefNbr) .AddCommand(schema.Details.TranDesc, tranDesc) .AddCommand(schema.Details.InvoiceNbr, invoiceNbr) .AddCommand(schema.Details.Receipt, receipt.ToString()) .AddCommand(schema.Details.Disbursement, disbursment.ToString()) .AddCommand(schema.Actions.Save); var results = _screen.CA306500Submit(commands.ToArray()); _persistRepository .UpdatePayoutHeaderAcumaticaImport( transaction.ShopifyPayoutId, transaction.ShopifyPayoutTransId, DateTime.UtcNow, extRefNbr); _logger.Info( $"Created Transaction Payout Id: {transaction.ShopifyPayoutId} - " + $"Transaction Id: {transaction.ShopifyPayoutTransId} " + $" in Acumatica"); }
public void PersistPayoutTransactions( PayoutDetail transactions, long shopifyPayoutId) { var filteredTransactions = transactions .transactions .Where(x => x.payout_id == shopifyPayoutId).ToList(); foreach (var transaction in filteredTransactions) { var persistedTransaction = _persistRepository.RetrievePayoutTransaction( transaction.payout_id.Value, transaction.id); if (persistedTransaction != null) { _logger.Info( $"Transaction already exists for " + $"Payout Id: {transaction.payout_id} - " + $"(Transaction) Id {transaction.id}"); continue; } _logger.Info( $"Creating Transcation for " + $"Payout Id: {transaction.payout_id} - " + $"(Transaction) Id {transaction.id}"); var newTransaction = new UsrShopifyPayoutTransaction() { Type = transaction.type, ShopifyPayoutId = transaction.payout_id.Value, ShopifyPayoutTransId = transaction.id, Json = transaction.SerializeToJson(), CreatedDate = DateTime.UtcNow, }; _persistRepository.InsertPayoutTransaction(newTransaction); } }
public void InsertPayoutTransaction( UsrShopifyPayoutTransaction transaction) { Entities.UsrShopifyPayoutTransactions.Add(transaction); Entities.SaveChanges(); }