예제 #1
0
 /**
  * Called after the response to a
  * {@link net.robotmedia.billing.request.CheckBillingSupported} request is
  * received.
  *
  * @param supported
  */
 public static void onBillingChecked(bool supported)
 {
     status = supported ? BillingStatus.SUPPORTED : BillingStatus.UNSUPPORTED;
     foreach (IBillingObserver o in observers)
     {
         o.onBillingChecked(supported);
     }
 }
        public IndexModel CalculateIndexes()
        {
            List <SuggestorB2b> plansList = _currentPlans;
            var           defPlansList    = _curretDefinitvePlans;
            BillingStatus billingStatus   = BillingStatus.None;

            decimal fixedGap       = 0; //Gap fijo
            decimal billingGap     = 0; //Gap de facturacion
            decimal arpuProm       = 0; // ARPUPROM
            decimal tmmSumatory    = 0; // TMM+Prestacion
            decimal defTmmSumatory = 0; //TMM de planes sugeridos
            decimal tmmSinIva      = 0; //TMM sin iva info actual

            //   decimal billingDifference = 0; //diferencia entre el tmm de info actual y el tmm de sugerido

            foreach (var plan in plansList)
            {
                arpuProm    += plan.ArpuProm != null ? (decimal)plan.ArpuProm : 0;
                tmmSumatory += plan.TmmPrestacion != null ? (decimal)plan.TmmPrestacion : 0;
                tmmSinIva   += plan.TmmSinIva != null ? (decimal)plan.TmmSinIva : 0;
            }

            foreach (var defPlan in defPlansList)
            {
                defTmmSumatory += defPlan.TMM_s_iva;
            }

            billingGap = defTmmSumatory - arpuProm;
            fixedGap   = defTmmSumatory - tmmSumatory;

            if (plansList.Count > 0)
            {
                if (billingGap > 0)
                {
                    billingStatus = BillingStatus.Higher;
                }
                else if (billingGap < 0)
                {
                    billingStatus = BillingStatus.Lower;
                }
                else if (billingGap == 0)
                {
                    billingStatus = BillingStatus.Equal;
                }
            }


            var gapModel = new IndexModel
            {
                BillingGap    = billingGap,
                FixedGap      = fixedGap,
                BillingStatus = billingStatus,
                TmmPrestacion = tmmSumatory
            };

            return(gapModel);
        }
예제 #3
0
        /// <inheritdoc/>
        public string ToDelimitedString()
        {
            CultureInfo culture = CultureInfo.CurrentCulture;

            return(string.Format(
                       culture,
                       StringHelper.StringFormatSequence(0, 56, Configuration.FieldSeparator),
                       Id,
                       SetIdIn1.HasValue ? SetIdIn1.Value.ToString(culture) : null,
                       HealthPlanId?.ToDelimitedString(),
                       InsuranceCompanyId != null ? string.Join(Configuration.FieldRepeatSeparator, InsuranceCompanyId.Select(x => x.ToDelimitedString())) : null,
                       InsuranceCompanyName != null ? string.Join(Configuration.FieldRepeatSeparator, InsuranceCompanyName.Select(x => x.ToDelimitedString())) : null,
                       InsuranceCompanyAddress != null ? string.Join(Configuration.FieldRepeatSeparator, InsuranceCompanyAddress.Select(x => x.ToDelimitedString())) : null,
                       InsuranceCoContactPerson != null ? string.Join(Configuration.FieldRepeatSeparator, InsuranceCoContactPerson.Select(x => x.ToDelimitedString())) : null,
                       InsuranceCoPhoneNumber != null ? string.Join(Configuration.FieldRepeatSeparator, InsuranceCoPhoneNumber.Select(x => x.ToDelimitedString())) : null,
                       GroupNumber,
                       GroupName != null ? string.Join(Configuration.FieldRepeatSeparator, GroupName.Select(x => x.ToDelimitedString())) : null,
                       InsuredsGroupEmpId != null ? string.Join(Configuration.FieldRepeatSeparator, InsuredsGroupEmpId.Select(x => x.ToDelimitedString())) : null,
                       InsuredsGroupEmpName != null ? string.Join(Configuration.FieldRepeatSeparator, InsuredsGroupEmpName.Select(x => x.ToDelimitedString())) : null,
                       PlanEffectiveDate.HasValue ? PlanEffectiveDate.Value.ToString(Consts.DateFormatPrecisionDay, culture) : null,
                       PlanExpirationDate.HasValue ? PlanExpirationDate.Value.ToString(Consts.DateFormatPrecisionDay, culture) : null,
                       AuthorizationInformation?.ToDelimitedString(),
                       PlanType?.ToDelimitedString(),
                       NameOfInsured != null ? string.Join(Configuration.FieldRepeatSeparator, NameOfInsured.Select(x => x.ToDelimitedString())) : null,
                       InsuredsRelationshipToPatient?.ToDelimitedString(),
                       InsuredsDateOfBirth.HasValue ? InsuredsDateOfBirth.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       InsuredsAddress != null ? string.Join(Configuration.FieldRepeatSeparator, InsuredsAddress.Select(x => x.ToDelimitedString())) : null,
                       AssignmentOfBenefits?.ToDelimitedString(),
                       CoordinationOfBenefits?.ToDelimitedString(),
                       CoordOfBenPriority,
                       NoticeOfAdmissionFlag,
                       NoticeOfAdmissionDate.HasValue ? NoticeOfAdmissionDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ReportOfEligibilityFlag,
                       ReportOfEligibilityDate.HasValue ? ReportOfEligibilityDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ReleaseInformationCode?.ToDelimitedString(),
                       PreAdmitCertPac,
                       VerificationDateTime.HasValue ? VerificationDateTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       VerificationBy != null ? string.Join(Configuration.FieldRepeatSeparator, VerificationBy.Select(x => x.ToDelimitedString())) : null,
                       TypeOfAgreementCode?.ToDelimitedString(),
                       BillingStatus?.ToDelimitedString(),
                       LifetimeReserveDays.HasValue ? LifetimeReserveDays.Value.ToString(Consts.NumericFormat, culture) : null,
                       DelayBeforeLRDay.HasValue ? DelayBeforeLRDay.Value.ToString(Consts.NumericFormat, culture) : null,
                       CompanyPlanCode?.ToDelimitedString(),
                       PolicyNumber,
                       PolicyDeductible?.ToDelimitedString(),
                       PolicyLimitAmount,
                       PolicyLimitDays.HasValue ? PolicyLimitDays.Value.ToString(Consts.NumericFormat, culture) : null,
                       RoomRateSemiPrivate,
                       RoomRatePrivate,
                       InsuredsEmploymentStatus?.ToDelimitedString(),
                       InsuredsAdministrativeSex?.ToDelimitedString(),
                       InsuredsEmployersAddress != null ? string.Join(Configuration.FieldRepeatSeparator, InsuredsEmployersAddress.Select(x => x.ToDelimitedString())) : null,
                       VerificationStatus,
                       PriorInsurancePlanId?.ToDelimitedString(),
                       CoverageType?.ToDelimitedString(),
                       Handicap?.ToDelimitedString(),
                       InsuredsIdNumber != null ? string.Join(Configuration.FieldRepeatSeparator, InsuredsIdNumber.Select(x => x.ToDelimitedString())) : null,
                       SignatureCode?.ToDelimitedString(),
                       SignatureCodeDate.HasValue ? SignatureCodeDate.Value.ToString(Consts.DateFormatPrecisionDay, culture) : null,
                       InsuredsBirthPlace,
                       VipIndicator?.ToDelimitedString(),
                       ExternalHealthPlanIdentifiers != null ? string.Join(Configuration.FieldRepeatSeparator, ExternalHealthPlanIdentifiers.Select(x => x.ToDelimitedString())) : null,
                       InsuranceActionCode
                       ).TrimEnd(Configuration.FieldSeparator.ToCharArray()));
        }
예제 #4
0
        /// <summary>
        /// Get a list of recent bills
        /// </summary>
        /// <returns>List of BillInfo (short)</returns>
        public async Task <AtomicPayResponse <BillingList <BillInfo> > > GetBillsAsync(DateTimeOffset startDate, DateTimeOffset endDate, BillingStatus billingStatus = BillingStatus.All)
        {
            VerifyAuthentication();

            var request = new HttpRequestMessage()
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(Constants.GetEp_Billing(_apiVersion).
                                     AddParameterToUrl(Constants.PARAM_DateStart, startDate.ToUnixTimeSeconds()).
                                     AddParameterToUrl(Constants.PARAM_DateEnd, endDate.ToUnixTimeSeconds()).
                                     AddParameterToUrl(Constants.PARAM_Status, billingStatus.ToString().ToLowerInvariant()))
            };

            var response = await _client.SendAsync(request).ConfigureAwait(false);

            var json = await response.Content.ReadAsStringAsync();

            return(new AtomicPayResponse <BillingList <BillInfo> >(response, false, new List <Newtonsoft.Json.JsonConverter> {
                StringToBillingStatusConverter.Instance
            }));
        }
예제 #5
0
 public void StatusTest()
 {
     SubscriptionInfo target = new SubscriptionInfo(); // TODO: Initialize to an appropriate value
     BillingStatus expected = new BillingStatus(); // TODO: Initialize to an appropriate value
     BillingStatus actual;
     target.Status = expected;
     actual = target.Status;
     Assert.AreEqual(expected, actual);
     Assert.Inconclusive("Verify the correctness of this test method.");
 }