コード例 #1
0
        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");
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 public void InsertPayoutTransaction(
     UsrShopifyPayoutTransaction transaction)
 {
     Entities.UsrShopifyPayoutTransactions.Add(transaction);
     Entities.SaveChanges();
 }