protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
 {
     if (base.ReturnFormStatus == ReturnFormStatus.Complete)
     {
         //Need change ExchangeOrder from AvaitingCompletition to InProgress
         var exchangeOrder = ReturnExchangeManager.GetExchangeOrderForReturnForm(base.ReturnOrderForm);
         if (exchangeOrder != null && OrderStatusManager.GetOrderGroupStatus(exchangeOrder) == OrderStatus.AwaitingExchange)
         {
             OrderStatusManager.ProcessOrder(exchangeOrder);
             exchangeOrder.AcceptChanges();
         }
     }
     // Retun the closed status indicating that this activity is complete.
     return(ActivityExecutionStatus.Closed);
 }
コード例 #2
0
        public void CreateExchangePayments()
        {
            var origPurchaseOrder = ReturnOrderForm.Parent as PurchaseOrder;
            var origOrderForm     = origPurchaseOrder.OrderForms[0];
            var exchangeOrder     = ReturnExchangeManager.GetExchangeOrderForReturnForm(ReturnOrderForm);

            if (exchangeOrder != null)
            {
                var exchangeOrderForm = exchangeOrder.OrderForms[0];
                //Exchange payments
                //Credit exchange payment to original order
                decimal         paymentTotal          = Math.Min(ReturnOrderForm.Total, exchangeOrder.Total);
                ExchangePayment creditExchangePayment = CreateExchangePayment(TransactionType.Credit, paymentTotal);
                origOrderForm.Payments.Add(creditExchangePayment);

                //Debit exchange payment to exchange order
                ExchangePayment debitExchangePayment = CreateExchangePayment(TransactionType.Capture, paymentTotal);
                exchangeOrderForm.Payments.Add(debitExchangePayment);

                OrderStatusManager.RecalculatePurchaseOrder(exchangeOrder);
                exchangeOrder.AcceptChanges();
            }
        }
コード例 #3
0
 protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
 {
     try
     {
         if (base.ReturnFormStatus == ReturnFormStatus.Complete)
         {
             //Need change ExchangeOrder from AvaitingCompletition to InProgress
             var exchangeOrder = ReturnExchangeManager.GetExchangeOrderForReturnForm(base.ReturnOrderForm);
             if (exchangeOrder != null && OrderStatusManager.GetOrderGroupStatus(exchangeOrder) == OrderStatus.AwaitingExchange)
             {
                 OrderStatusManager.ProcessOrder(exchangeOrder);
                 exchangeOrder.AcceptChanges();
             }
         }
         // Retun the closed status indicating that this activity is complete.
         return(ActivityExecutionStatus.Closed);
     }
     catch (Exception ex)
     {
         Logger.Error(GetType().Name + ": " + ex.Message, ex);
         // An unhandled exception occured.  Throw it back to the WorkflowRuntime.
         throw;
     }
 }