Beispiel #1
0
        public static PaymentDTO Entity2PaymentDto(this vw_SALE_OrderLinePayments entity)
        {
            var type = Utils.ParseEnum <BillingEnums.ePaymentTypes>(entity.PaymentTypeId.ToString());

            return(new PaymentDTO
            {
                OrderId = entity.OrderId
                , OrderNumber = entity.OrderNumber
                , ItemName = entity.ItemName
                , LineId = entity.OrderLineId
                , PaymentId = entity.PaymentId
                , Number = entity.PaymentNumber
                , Amount = entity.Amount
                , Fee = entity.Fee
                , Status = Utils.ParseEnum <BillingEnums.ePaymentStatuses>(entity.StatusId.ToString())
                , Currency = entity.Entity2BaseCurrencyDto()
                , Type = type
                , TypeName = Utils.GetEnumDescription(type)
                , ScheduledDate = entity.ScheduledDate
                , CompletedDate = entity.PaymentDate
                , IsRefundable = entity.IsPaymentRefundAllowed()
                , TotalRefunded = entity.TotalRefunded
                , AffiliateCommission = entity.AffiliateCommission
            });
        }
Beispiel #2
0
 public static BaseCurrencyDTO Entity2BaseCurrencyDto(this vw_SALE_OrderLinePayments entity)
 {
     return(new BaseCurrencyDTO
     {
         CurrencyId = entity.CurrencyId
         , CurrencyName = entity.CurrencyName ?? string.Empty
         , ISO = entity.ISO ?? string.Empty
         , Symbol = entity.Symbol ?? string.Empty
     });
 }
Beispiel #3
0
        private static bool IsPaymentRefundAllowed(this vw_SALE_OrderLinePayments entity)
        {
            var lineType = Utils.ParseEnum <BillingEnums.eOrderLineTypes>(entity.LineTypeId);
            var status   = Utils.ParseEnum <BillingEnums.ePaymentStatuses>(entity.StatusId.ToString());

            if (entity.Amount == entity.TotalRefunded || status != BillingEnums.ePaymentStatuses.COMPLETED || entity.PaymentDate == null || lineType == BillingEnums.eOrderLineTypes.SUBSCRIPTION)
            {
                return(false);
            }

            return((DateTime)entity.PaymentDate >= DateTime.Now.AddMonths(-1)); //(lineType==BillingEnums.eOrderLineTypes.SALE) &&
        }
Beispiel #4
0
        public static CustomTrxDTO Entity2CustomTrxDto(this vw_SALE_OrderLinePayments entity)
        {
            var type = Utils.ParseEnum <BillingEnums.ePaymentTypes>(entity.PaymentTypeId.ToString());

            return(new CustomTrxDTO
            {
                LineId = entity.OrderLineId
                , PaymentId = entity.PaymentId
                , Amount = entity.Amount
                , Status = Utils.ParseEnum <BillingEnums.ePaymentStatuses>(entity.StatusId.ToString())
                , Currency = entity.Entity2BaseCurrencyDto()
                , Type = type
                , ScheduledDate = entity.ScheduledDate
            });
        }
Beispiel #5
0
        public static PaymentViewDTO Entity2PaymentViewDto(this vw_SALE_OrderLinePayments entity)
        {
            var type = Utils.ParseEnum <BillingEnums.ePaymentTypes>(entity.PaymentTypeId.ToString());

            var token = new PaymentViewDTO
            {
                OrderId               = entity.OrderId
                , OrderNumber         = entity.OrderNumber
                , ItemName            = entity.ItemName
                , LineId              = entity.OrderLineId
                , PaymentId           = entity.PaymentId
                , Number              = entity.PaymentNumber
                , Amount              = entity.Amount
                , Fee                 = entity.Fee
                , Status              = Utils.ParseEnum <BillingEnums.ePaymentStatuses>(entity.StatusId.ToString())
                , Currency            = entity.Entity2BaseCurrencyDto()
                , Type                = type
                , TypeName            = Utils.GetEnumDescription(type)
                , ScheduledDate       = entity.ScheduledDate
                , CompletedDate       = entity.PaymentDate
                , OrderDate           = entity.OrderDate
                , IsRefundable        = entity.IsPaymentRefundAllowed()
                , TotalRefunded       = entity.TotalRefunded
                , TrxId               = entity.ExternalTransactionID
                , AffiliateCommission = entity.AffiliateCommission
                , Buyer               = new BaseUserInfoDTO
                {
                    UserId     = entity.BuyerUserId
                    , Email    = entity.BuyerEmail
                    , FullName = entity.Entity2BuyerFullName()
                }
                , Seller = new BaseUserInfoDTO
                {
                    UserId     = entity.SellerUserId
                    , Email    = entity.SellerEmail
                    , FullName = entity.Entity2SellerFullName()
                }
                , StoreOwner = entity.StoreOwnerUserId != null ? new BaseUserInfoDTO {
                    UserId = (int)entity.StoreOwnerUserId, FullName = entity.Entity2StoreOwnerFullName()
                } : new BaseUserInfoDTO {
                    FullName = string.Empty, UserId = -1
                }
            };

            token.Commission = token.Amount.ToLfeCommission(token.Fee ?? 0, token.TotalRefunded);
            token.Payout     = token.Amount.ToPayout(token.Fee ?? 0, (decimal)token.Commission, token.TotalRefunded);
            return(token);
        }
Beispiel #6
0
        private static bool IsCustomTrxAllowed(this vw_SALE_OrderLinePayments entity)
        {
            var status   = Utils.ParseEnum <BillingEnums.ePaymentStatuses>(entity.StatusId.ToString());
            var lineType = Utils.ParseEnum <BillingEnums.ePaymentTypes>(entity.PaymentTypeId);

            if (lineType != BillingEnums.ePaymentTypes.INTIAL_SUBSCRIPTION && lineType != BillingEnums.ePaymentTypes.PERIOD_SUBSCRIPTION)
            {
                return(false);
            }

            if (status == BillingEnums.ePaymentStatuses.COMPLETED)
            {
                return(false);
            }

            return(entity.ScheduledDate < DateTime.Now);
        }
Beispiel #7
0
 public static string Entity2StoreOwnerFullName(this vw_SALE_OrderLinePayments entity)
 {
     return(CombineFullName(entity.StoreOwnerFirstName, entity.StoreOwnerLastName, entity.StoreOwnerNickname));
 }
Beispiel #8
0
        public static RefundOrderLinePaymentDTO PaymentEntity2RefundOrderLinePaymentDto(this vw_SALE_OrderLinePayments entity)
        {
            if (entity == null)
            {
                return(new RefundOrderLinePaymentDTO
                {
                    IsValid = false
                    , Message = "payment Entity not found"
                });
            }

            return(new RefundOrderLinePaymentDTO
            {
                LineId = entity.OrderLineId
                , PaymentId = entity.PaymentId
                , TransactionId = entity.TransactionId
                , ExternalTransactionId = entity.ExternalTransactionID
                , Amount = entity.Amount - entity.TotalRefunded
                , IsValid = entity.TransactionId != null
                , Message = entity.TransactionId != null ? string.Empty : "related transaction not found"
            });
        }
Beispiel #9
0
 public static ScheduledPaymentSummaryToken PaymentEntity2ScheduledPaymentSummaryToken(this vw_SALE_OrderLinePayments entity)
 {
     try
     {
         var pm = Utils.ParseEnum <BillingEnums.ePaymentMethods>(entity.PaymentMethodId);
         return(new ScheduledPaymentSummaryToken
         {
             LineId = entity.OrderLineId
             , PaymentId = entity.PaymentId
             , OrderNumber = entity.OrderNumber
             , OrderId = entity.OrderId
             , ItemName = entity.ItemName
             , Amount = entity.Amount
             , Number = entity.PaymentNumber
             , Status = Utils.ParseEnum <BillingEnums.ePaymentStatuses>(entity.StatusId.ToString())
             , Currency = entity.Entity2BaseCurrencyDto()
             , ScheduledDate = entity.ScheduledDate
             , PaymentMethod = pm
             , PaymentMethodName = Utils.GetEnumDescription(pm)
             , PaypalProfileID = entity.PaypalProfileID
             , PaymentInstrumentName = entity.DisplayName
             , AutoBill = !String.IsNullOrEmpty(entity.PaypalProfileID)
             , Buyer = new BaseUserInfoDTO
             {
                 UserId = entity.BuyerUserId
                 , FullName = entity.Entity2BuyerFullName()
                 , Email = entity.BuyerEmail
             }
             , Seller = new BaseUserInfoDTO
             {
                 UserId = entity.SellerUserId
                 , FullName = entity.Entity2SellerFullName()
                 , Email = entity.SellerEmail
             }
             , WebStore = entity.WebStoreId != null ? new BaseWebStoreDTO
             {
                 StoreId = (int)entity.WebStoreId
                 , TrackingID = entity.TrackingID
                 , Name = entity.StoreName
             } : new BaseWebStoreDTO()
         });
     }
     catch (Exception)
     {
         return(new ScheduledPaymentSummaryToken());
     }
 }
Beispiel #10
0
 public static SubscriptionWithSavedCardDTO PaymentEntity2SubscriptionWithSavedCardDto(this vw_SALE_OrderLinePayments token, string description, Guid instrumentId)
 {
     return(new SubscriptionWithSavedCardDTO
     {
         UserId = token.BuyerUserId
         , BillingAmount = token.Amount
         , amount = token.Amount
         , currency = token.ISO ?? "USD"
         , courseId = token.CourseId
         , bundleId = token.BundleId
         , PaymentInstrumentId = instrumentId
         , trackingId = token.TrackingID
         , ProfileDescription = token.ItemName
         , description = description
     });
 }