Exemple #1
0
        protected void AddNewPlan(object sender, EventArgs e)
        {
            // Add new
            var plan = new Plan
            {
                Name = NewPlanDetail.Name,
                Duration = NewPlanDetail.Duration,
                FlagFall = NewPlanDetail.Flagfall,
                FreeCallAmount = NewPlanDetail.FreeCallAmount,
                NetworkId = NetworkId,
                PlanAmount = NewPlanDetail.PlanAmount,
                UnitOfTime = NewPlanDetail.UnitOfTime
            };

            var request = new InsertPlanRequest
            {
                Plan = plan,
                DefaultNetworkTariffId = NewPlanDetail.DefaultNetworkTariffId,
                User = Users.Current
            };

            var response = PlanService.InsertPlan(request);
            if (response.IsSuccessful)
            {
                UserMessage.MessageType = "Success";
                UserMessage.Message = "New Plan has been added.";
                NewPlanButton.Visible = false;
            }
            else
            {
                UserMessage.MessageType = "Failure";
                UserMessage.Message = response.Message;
            }
        }
 public static InvoiceLine GetFreeCallComponent(this Invoice invoice, Contract contract, Plan plan, IInvoiceSettings settings)
 {
     return new InvoiceLine
     {
         ContractId = contract.Id.Value,
         Call = null,
         Description = settings.FreeCallComponentDescription,
         Invoice = invoice,
         GstAmount = -plan.FreeCallAmount / 11M,
         LineAmount = -plan.FreeCallAmount
     };
 }
Exemple #3
0
        public CanDeletePlanResponse CanDelete(Plan plan)
        {
            var response = new CanDeletePlanResponse();

            if (plan == null) {
                response.IsSuccessful = false;
                response.Message = "No plan supplied";
                return response;
            }

            try {
                var contracts = _contractRepository.FindByPlanId(plan.Id.Value);
                response.OpenContractCount = contracts.Count(c => c.ContractStatus != ContractStatus.Closed);
                response.IsSuccessful = true;
            } catch (Exception) {
                response.IsSuccessful = false;
                response.Message = Constants.Messages.INTERNAL_ERROR;
            }

            return response;
        }
Exemple #4
0
 public static Contract CreateActiveContract(Account account, Plan plan, DateTime orderReceivedDate)
 {
     return new Contract(1, orderReceivedDate)
     {
         AccountId = account != null ? account.Id.Value : 0,
         ActivationDate = DateTime.Parse("2008-10-01"),
         ContractNumber = "LW00001",
         AgentId = null,
         ContractStatus = ContractStatus.Active,
         Data = false,
         MessageBank = false,
         EndDate = DateTime.Parse("2010-10-01"),
         IMEINumber = "1234556",
         SimCard = "1234523",
         PhoneNumber1 = "0411331273",
         Pin = "1234",
         Puk = "1234",
         PlanId = plan != null ? plan.Id.Value : 0,
         UsedBy = "Test"
     };
 }
Exemple #5
0
        /// <summary>
        /// Validates a new plan for entry.        
        /// </summary>        
        /// <returns>Returns a string List of all validation error messages</returns>
        private IList<string> ValidateNewPlan(Plan plan)
        {
            IList<string> messages = new List<string>();
            if (plan == null)
            {
                messages.Add("No Plan was supplied.");
                return messages;
            }

            if (plan.Id != null) messages.Add("Please supply a new plan.");

            if (plan.NetworkId > 0)
            {
                var network = _networkRepository.GetNetwork(plan.NetworkId);
                if (network == null) messages.Add("No Network was found.");
            }
            else
            {
                messages.Add("No Network was found.");
            }

            if (string.IsNullOrEmpty(plan.Name))
            {
                messages.Add("A plan name was not supplied.");
            }

            if (plan.FlagFall < 0)
            {
                messages.Add("Plan flag fall is negative.");
            }

            if (plan.FreeCallAmount < 0)
            {
                messages.Add("Plan free call amount is negative.");
            }

            if (plan.PlanAmount < 0)
            {
                messages.Add("Plan amount is negative.");
            }

            if (plan.FreeCallAmount > plan.PlanAmount)
            {
                messages.Add("Plan free call amount is greater than the plan amount.");
            }

            if (plan.Duration < 0)
            {
                messages.Add("Plan duration is negative.");
            }

            return messages;
        }
Exemple #6
0
        public bool UpdatePlan(Plan plan)
        {
            // When a plan is updated we may need to update the units of time on uninvoiced calls.
            var existingPlan = _planRepository.GetPlan(plan.Id.Value);
            if (existingPlan != null) {
                if (existingPlan.UnitOfTime != plan.UnitOfTime) {
                    // Recalculate unit of time on calls for this plan.
                    var calls = _planRepository.GetCallsForPlan(plan.Id.Value);
                    foreach (var call in calls) {

                        call.UnitsOfTime = new UnitsOfTimeCalculator(call.CallType).Calculate(plan.UnitOfTime,
                                                                                              (double)call.ActualVolume);

                        _contractRepository.UpdateCall(call);
                    }
                }
            }

            return _planRepository.UpdatePlan(plan);
        }
Exemple #7
0
 public static Contract CreateActiveContract(Account account, Plan plan)
 {
     return CreateActiveContract(account, plan, DateTime.Parse("2008-10-01"));
 }
Exemple #8
0
 public static Contract CreateContractOnSubAccount(SubAccount _subAccount, Plan plan)
 {
     return new Contract(2, DateTime.Now)
     {
         AccountId = _subAccount.Id.Value,
         ActivationDate = DateTime.Today.AddMonths(-9),
         EndDate = DateTime.Today.AddMonths(2),
         AgentId = null,
         ContractNumber = "LW00002",
         ContractStatus = ContractStatus.Active,
         Data = true,
         MessageBank = true,
         IMEINumber = "42932323123",
         SimCard = "12312312313",
         PhoneNumber1 = "0410000000",
         Pin = "1234",
         Puk = "1234",
         UsedBy = "Test",
         PlanId = plan.Id.Value
     };
 }
        private static Plan GetPlan()
        {
            var plan = new Plan(1)
            {
                DefaultTariffId = 1,
                Duration = 12,
                FlagFall = 0.5M,
                FreeCallAmount = 30M,
                Name = "Test Plan",
                NetworkId = 1,
                PlanAmount = 50,
                UnitOfTime = 30
            };

            return plan;
        }
Exemple #10
0
 private AirtimeBilling.Core.Entities.Plan PopulatePlanEntityFromPlan(Plan plan)
 {
     AirtimeBilling.Core.Entities.Plan entity = null;
     if (plan != null)
     {
         entity = new AirtimeBilling.Core.Entities.Plan(plan.PlanId)
         {
             Duration = plan.Duration,
             FlagFall = plan.Flagfall,
             FreeCallAmount = plan.FreeCallAmount,
             Name = plan.Name,
             PlanAmount = plan.PlanAmount,
             NetworkId = plan.NetworkId,
             DefaultTariffId = plan.DefaultTariffId.Value,
             UnitOfTime = plan.UnitOfTime
         };
     }
     return entity;
 }
 public static InvoiceLine GetNetworkAccessLine(this Invoice invoice, Contract contract, Plan plan, IInvoiceSettings settings)
 {
     return new InvoiceLine
     {
         Call = null,
         Description = settings.NetworkAccessFeeDescription,
         Invoice = invoice,
         Quantity = 1.0,
         ContractId = contract.Id.Value,
         LineAmount = plan.PlanAmount,
         GstAmount = plan.PlanAmount / 11
     };
 }