Ejemplo n.º 1
0
        internal static void AddService(Rbr_Db pDb, ServiceDto pService, int[] pSelectedBaseRouteIds)
        {
            //TODO: NEW DAL - VirtualSwitch
            pService.VirtualSwitchId = AppConstants.DefaultVirtualSwitchId;

            if (pService.RetailType == RetailType.PhoneCard)
            {
                if (pService.PayphoneSurcharge != null)
                {
                    pService.PayphoneSurcharge.PayphoneSurchargeId = RetailAccountManager.AddPayphoneSurcharge(pDb, pService.PayphoneSurcharge);
                }
            }
            else
            {
                pService.PayphoneSurcharge = null;
            }

            ServiceRow _serviceRow = mapToServiceRow(pService);

            Add(pDb, _serviceRow);
            pService.ServiceId = _serviceRow.Service_id;

            //Create Default WholesaleRoute
            int _defaultWholesaleRouteId;

            CustomerRouteManager.AddDefault(pDb, pService, out _defaultWholesaleRouteId);
            pService.DefaultRoute.RatedRouteId = _defaultWholesaleRouteId;

            CustomerRouteManager.Add(pDb, pService.ServiceId, pSelectedBaseRouteIds);
        }
Ejemplo n.º 2
0
        internal static void UpdateService(Rbr_Db pDb, ServiceDto pService)
        {
            if (pService.IsRatingEnabled)
            {
                //Update Service's Default RatingInfo
                //NOTE: DefaultRatingInfo is always created on Add, no metter is RatingEnabled or not
                RatingManager.UpdateRatingInfo(pDb, pService.DefaultRatingInfo);

                //check RatingInfo for all others WholesaleRoutes, if they have no RatingInfo - create it
                //if WholesaleRoute already have Rates, just leave it as is
                WholesaleRouteRow[] _wholesaleRouteRows = pDb.WholesaleRouteCollection.GetByService_id(pService.ServiceId);
                foreach (WholesaleRouteRow _wholesaleRouteRow in _wholesaleRouteRows)
                {
                    WholesaleRateHistoryRow[] _wholesaleRateHistoryRows = pDb.WholesaleRateHistoryCollection.GetByWholesale_route_id(_wholesaleRouteRow.Wholesale_route_id);
                    if (_wholesaleRateHistoryRows.Length == 0)
                    {
                        //route has no rates, create them using Default
                        RatingManager.AddDefaultRatingInfo(pDb, _wholesaleRouteRow.Wholesale_route_id, pService.DefaultRatingInfo, RouteType.Wholesale);
                    }
                }

                if (pService.PayphoneSurcharge != null)
                {
                    if (pService.PayphoneSurcharge.PayphoneSurchargeId == 0)
                    {
                        pService.PayphoneSurcharge.PayphoneSurchargeId = RetailAccountManager.AddPayphoneSurcharge(pDb, pService.PayphoneSurcharge);
                    }
                    else
                    {
                        RetailAccountManager.UpdatePayphoneSurcharge(pDb, pService);
                    }
                }
            }
            CustomerRouteManager.Update(pDb, pService.DefaultRoute);

            ServiceRow _serviceRow = mapToServiceRow(pService);

            Update(pDb, _serviceRow);
            //pDb.AddChangedObject(new ServiceKey(TxType.Delete, pService.ServiceId));

            ServiceRow _originalServiceRow = Get(pDb, pService.ServiceId);

            if (pService.PayphoneSurcharge == null && !_originalServiceRow.IsPayphone_surcharge_idNull)
            {
                pDb.PayphoneSurchargeCollection.DeleteByPrimaryKey(_originalServiceRow.Payphone_surcharge_id);
            }
        }