public HttpResponseMessage getDeviceinAgreementDetailByCustId(int id, String username_ad, String password_ad) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader ah = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var agreementManagementService = AsmRepository.GetServiceProxyCachedOrDefault <IAgreementManagementService>(ah); var viewService = AsmRepository.GetServiceProxy <IViewFacadeService>(ah); var viewD = viewService.GetCustomerDeviceView(new BaseQueryRequest() { FilterCriteria = Op.Eq("CustomerId", id), PageCriteria = new PageCriteria() { Page = 0, PageSize = 100 }, DeepLoad = true }); if (viewD != null) { return(Request.CreateResponse(HttpStatusCode.OK, viewD)); } else { var message = string.Format("error"); HttpError err = new HttpError(message); return(Request.CreateResponse(HttpStatusCode.OK, message)); } }
public CategoryProductPriceExCollection GetCommercialProductByCustomerId(String username_ad, String password_ad, int id) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader ah = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var agService = AsmRepository.AllServices.GetAgreementManagementService(ah); try { var agreements = agService.GetAgreements(new BaseQueryRequest() { FilterCriteria = Op.Eq("CustomerId", id) }); var map = agService.GetManageAgreementProductReference(agreements.Items[0].Id.Value); return(map.CategoryProductPriceExCollection); //foreach (var cp in map.CategoryProductPriceExCollection) //{ // Console.WriteLine("Allowed Product Category : " + cp.CommercialProductCategoryName + " | Product Name : " + cp.CommercialProductName + " Price : " + cp.ListPriceAmount); //} //Console.WriteLine("total product : {0}", map.CategoryProductPriceExCollection.Count()); } catch (Exception ex) { return(null); //Console.WriteLine("Errors : " + ex.Message); //Console.WriteLine("Stack : " + ex.StackTrace); } }
public ReinforceMul(int N = 7) { this.N = N; int dim0 = N, dim1 = N * N, dim2 = N; var a = Op.Scalar <int>("a"); var b = Op.Scalar <int>("b"); var c_gold = Op.Scalar <int>("c_gold"); var L = Op.Shared(NN.Random.Uniform(-1f, 1f, N, dim0), "L"); var xa = Blocks.Linear("Wa", L[a], dim1); var xb = Blocks.Linear("Wb", L[b], dim1); var xab = Blocks.Linear("Wab", L[a] * L[b], dim1); var x = Blocks.Linear("Wc", Op.Tanh(xa + xb + xab), dim2); var y = Op.Softmax(x); var c = Operators.Scalars.ReinforceCategorical.Create(y, "baseline"); c.Name = nameof(c); var eq = Op.Eq(c_gold, c); c.Reward = eq.As <float>(); c.Reward.Name = "reward"; this.baseline = c.Baseline; var loss = -c.As <float>(); var weights = loss.FindAll <Tensor <float> .Shared>(); foreach (var W in weights) { loss += 0.001f * Op.Norm2(W); } loss.Name = nameof(loss); var grad = Op.Grad(loss); // reward isn't differentiable but Reinforce will still backpropagate gradients var lr = Op.Scalar <float>("lr"); var updates = new OrderedDictionary(); foreach (var W in grad.Keys) { updates[W] = W - lr * grad[W]; } //var dB = (Scalar<float>)loss.Backpropagation.ScalarDerivatives[c.Baseline]; //updates[c.Baseline] = c.Baseline - lr * dB; updates[c.Baseline] = c.Baseline * 0.9f + 0.1f * c.Reward; var train_ = Op.Function(new IVar[] { a, b, c_gold, lr }, c.Reward, updates); Train = lr_ => { var sample = NextSample(); return((int)train_(sample.Item1, sample.Item2, sample.Item3, lr_)); }; Mul = Op.Function(input: (a, b), output: Op.Argmax(x)); }
// Get Shipping Order by Hardware Product Agreeemntdetail ID public int getShippingOrderByHardware(String username_ad, String password_ad, int hw_agreementdetail_id) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); //var docmService = AsmRepository.GetServiceProxy<IDocumentManagementService>(authHeader); var soService = AsmRepository.AllServices.GetOrderManagementService(authHeader); var faService = AsmRepository.AllServices.GetFinanceService(authHeader); var sbService = AsmRepository.AllServices.GetSandBoxManagerService(authHeader); var agService = AsmRepository.AllServices.GetAgreementManagementService(authHeader); var deviceService = AsmRepository.AllServices.GetDevicesService(authHeader); var viewfService = AsmRepository.AllServices.GetViewFacadeService(authHeader); int so = 0; try { var sol = soService.FindShippingOrderLines(new BaseQueryRequest() { FilterCriteria = Op.Eq("AgreementDetailId", hw_agreementdetail_id), PageCriteria = new PageCriteria() { Page = 0, PageSize = 100 } }); if (sol.Items.Count > 0) { so = sol.Items[0].ShippingOrderId.Value; } else { return(0); } return(so); } catch (Exception ex) { //msg = "Errors : " + ex.Message + " ------ Exception Stack : " + ex.StackTrace; //Console.WriteLine("Errors : " + ex.Message); //Console.WriteLine("Stack : " + ex.StackTrace); //logger.Error(msg); return(0); } }
public HttpResponseMessage GetTotalAmountQuoteByCustomerId(String username_ad, String password_ad, int id) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var billService = AsmRepository.GetServiceProxy <IBillingEngineService>(authHeader); var finService = AsmRepository.AllServices.GetFinanceService(authHeader); decimal totalamount = 0; var fa = finService.GetFinancialAccountsForCustomer(id, new CriteriaCollection() { new Criteria() { Key = "TypeId", Operator = Operator.Equal, Value = "1" } }, 0).Items[0]; //Console.WriteLine("Financial Account Id : " + fa.Id.Value); var quoteinvoice = billService.FindQuoteInvoices(new BaseQueryRequest() { FilterCriteria = Op.Eq("FinancialAccountId", fa.Id.Value) & Op.Eq("QuoteStatusId", "1") }); foreach (var quote in quoteinvoice) { string quote_type = ""; //Console.WriteLine("Find quote Id : " + quote.Id.Value); if (quote.QuoteGenerationMethod == QuoteGenerationMethod.EventBased) { quote_type = "Immediate Quote"; } else if (quote.QuoteGenerationMethod == QuoteGenerationMethod.ServiceRetention) { quote_type = "Regular Quote"; } //Console.WriteLine("Quote Type" + quote_type); totalamount = quote.TotalAmount.Value + totalamount; } return(Request.CreateResponse(HttpStatusCode.OK, "TotalAmount = " + totalamount)); }
public ReinforceConst(int N = 5) { this.N = N; gold = N / 2; var a = Op.Scalar <int>("a"); var c_gold = Op.Scalar <int>("c_gold"); var L = Op.Shared(NN.Random.Uniform(-1f, 1f, N, N), "L"); var x = L[a]; var y = Op.Softmax(x); var c = Operators.Scalars.ReinforceCategorical.Create(y, "baseline"); c.Name = nameof(c); var eq = Op.Eq(c_gold, c); c.Reward = eq.As <float>(); c.Reward.Name = "reward"; var loss = -c.As <float>() + 0.001f * Op.Norm2(L); var grad = Op.Grad(loss); // c isn't differentiable but Reinforce will still backpropagate gradients var lr = Op.Scalar <float>("lr"); var updates = new OrderedDictionary(); foreach (var W in grad.Keys) { updates[W] = W - lr * grad[W]; } var dB = (Scalar <float>)loss.Backpropagation.ScalarDerivatives[c.Baseline]; updates[c.Baseline] = c.Baseline - lr * dB; var train_ = Op.Function(new IVar[] { a, c_gold, lr }, c.Reward, updates); Train = lr_ => { var sample = NextSample(); return((int)train_(sample.Item1, sample.Item2, lr_)); }; Const = Op.Function(a, c); }
public void getAgreementDetail() { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthentication_header(); AsmRepository.SetServiceLocationUrl("http://mncsvasm.mskydev1.local/asm/all/servicelocation.svc"); var m_IAgreementManagementService = AsmRepository.GetServiceProxyCachedOrDefault <IAgreementManagementService>(authHeader); var viewService = AsmRepository.GetServiceProxy <IViewFacadeService>(authHeader); AgreementDetailCollection adc = m_IAgreementManagementService.GetAgreementDetailsForCustomer(500016733, 1); if (adc != null && adc.Items.Count > 0) { foreach (AgreementDetail a in adc.Items) { Console.WriteLine("Found product ID {0}: Status ID = {1}", a.CommercialProductId, a.Status); } } else { Console.WriteLine("I found nothing."); } var viewD = viewService.GetCustomerDeviceView(new BaseQueryRequest() { FilterCriteria = Op.Eq("CustomerId", 500016733), PageCriteria = new PageCriteria() { Page = 0, PageSize = 100 }, DeepLoad = true }); foreach (var device in viewD.Items) { // here you can call GetDeviceView to get more info, parameters are the same like above GetCustomerDeviceView , just change Op.Eq("CustomerId", customer_id) to Op,Eq("Id",device.Id.Value) Console.WriteLine("Device ID : " + device.DeviceId.Value + " Serial Number : " + device.SerialNumber + " Status : " + device.DeviceStatusName + " Model:" + device.ModelDescription); } var viewAg = viewService.GetAgreementDetailView(new BaseQueryRequest() { FilterCriteria = Op.Eq("CustomerId", 500016733), PageCriteria = new PageCriteria() { Page = 0, PageSize = 100 } }); foreach (var product in viewAg.Items) { Console.WriteLine("Agreement Detail ID : " + product.Id.Value + " Product Name :" + product.CommercialProductName + " Charge Until Date : " + product.ChargeUntilDate + " Charge Period : " + product.ChargePeriodName + " Finance Option : " + product.FinanceOptionName + " Recurring Price : " + product.RecurringListPrice + " Status :" + product.StatusName); } Console.ReadLine(); }
public YangProductPriceResponse YangProductPriceByProductId(String username_ad, String password_ad, int id) { YangProductPriceResponse db = new YangProductPriceResponse(); var cc = new List <YangProductPriceItems>(); List <int> CustomerClassIds_local = null; List <int> CountryIds_local = null; List <int> CustomerTypeIds_local = null; List <int> FinanceOptionIds_local = null; List <int> FinancialAccountTypeIds_local = null; List <string> PostalCodes_local = null; List <int> ProvinceIds_local = null; List <ListPriceCondition> ListPriceCondition_local = null; IAgreementManagementService agService = null; IAgreementManagementConfigurationService agcService = null; IProductCatalogService productService = null; IProductCatalogConfigurationService productcService = null; ICustomersConfigurationService custcService = null; IFinanceConfigurationService fincService = null; Authentication_class var_auth = new Authentication_class(); AuthenticationHeader ah = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); agService = AsmRepository.AllServices.GetAgreementManagementService(ah); agcService = AsmRepository.AllServices.GetAgreementManagementConfigurationService(ah); productService = AsmRepository.AllServices.GetProductCatalogService(ah); productcService = AsmRepository.AllServices.GetProductCatalogConfigurationService(ah); custcService = AsmRepository.AllServices.GetCustomersConfigurationService(ah); fincService = AsmRepository.AllServices.GetFinanceConfigurationService(ah); BaseQueryRequest request = new BaseQueryRequest(); CriteriaCollection criteria = new CriteriaCollection(); //request.FilterCriteria.Add(new Criteria("ExternalId", 92591)); request.FilterCriteria.Add(new Criteria("Id", id)); //Call the method and display the results. CommercialProductCollection pl = productcService.GetCommercialProducts(request); //CommercialProductCollection pl = productcService.GetCommercialProducts(new BaseQueryRequest() //{ // //FilterCriteria = Op.Le("SellFrom", DateTime.Now) && Op.Ge("SellTo", DateTime.Now), // FilterCriteria = Op.Equals("Id", id), // DeepLoad = true, // PageCriteria = new PageCriteria() // { // Page = 0 // } //}); //Console.WriteLine("Total Commercial Product Count : " + pl.TotalCount); db.the_TotalCount = pl.TotalCount; foreach (var pr in pl.Items) { int commercial_product_id = pr.Id.Value; var prices = productcService.GetListPrices(new BaseQueryRequest() { FilterCriteria = Op.Eq("UsedBy", 0) && Op.Eq("Active", true) && Op.Eq("ApplyToId", commercial_product_id), DeepLoad = true, PageCriteria = new PageCriteria() { Page = 0 } }); //Console.WriteLine("Product Name : " + pr.Name + "\n"); foreach (var ccc in pr.CommercialProductIds) { //Console.WriteLine("value = {0}" + ccc.ToString()); } //Console.WriteLine("Start to search all prices for commecial products : " + pr.Name + "\n"); if (prices == null) { continue; } foreach (var listprice in prices.Items) { string msg = ""; if (listprice.PriceConditions == null) { continue; } foreach (var pricecondition in listprice.PriceConditions.Items) { msg = ""; if (pricecondition.Active == false) { continue; } // Type - OnceOff, Recurrence msg = " Price Type : " + pricecondition.Type + "\n"; // Charge Period if (pricecondition.ChargePeriodId != 0) { msg = msg + " Charge Period " + pricecondition.ChargePeriodId + " Month" + "\n"; } // The price amount if (pricecondition.PriceAmounts != null) { string priceamount = ""; foreach (var pa in pricecondition.PriceAmounts) { priceamount += " Amount : " + pa.Amount + " From " + pa.FromDate + ","; } if (priceamount != "") { msg = msg + " " + priceamount + "\n"; } priceamount = ""; } // Allowed Agreement Type conditions if (pricecondition.AgreementTypeIds != null) { string agreement_type_list = ""; foreach (var agtid in pricecondition.AgreementTypeIds) { agreement_type_list += agcService.GetAgreementType(agtid).Description + ","; } if (agreement_type_list != "") { msg = msg + "Allowed Agreement Types : " + agreement_type_list + "\n"; } agreement_type_list = ""; } // Allowed Business Unit Attributes if (pricecondition.BusinessUnitAttributeValues != null) { string business_unit_attribute = ""; foreach (var bu in pricecondition.BusinessUnitAttributeValues) { business_unit_attribute += bu + ","; } if (business_unit_attribute != "") { msg = msg + " Allowed Business Unit Attribute : " + business_unit_attribute + "\n"; } business_unit_attribute = ""; } // Allowed Charge Period if (pricecondition.ChargePeriodId != null) { string charge_period = ""; if (pricecondition.ChargePeriodId == 1) { charge_period = "Monthly"; } if (pricecondition.ChargePeriodId == 3) { charge_period = "Quauterly"; } if (pricecondition.ChargePeriodId == 6) { charge_period = "HalfYearly"; } if (pricecondition.ChargePeriodId == 12) { charge_period = "Yearly"; } if (charge_period != "") { msg = msg + " Allowed Charge Period : " + charge_period + "\n"; } charge_period = ""; } // Allowed Country if (pricecondition.CountryIds != null) { string country_list = ""; foreach (var c in pricecondition.CountryIds) { country_list += custcService.GetCountry(c).Description + ","; } if (country_list != "") { msg = msg + " Allowed Country : " + country_list + "\n"; } country_list = ""; CountryIds_local = pricecondition.CountryIds; } // Allowed Currency if (pricecondition.CurrencyId != null) { string currency = ""; currency = fincService.GetCurrency(pricecondition.CurrencyId.Value).Description; if (currency != "") { msg = msg + " Allowed Currency : " + currency + "\n"; } currency = ""; } // Allowed Customer Class if (pricecondition.CustomerClassIds != null) { string customer_class = ""; foreach (var ci in pricecondition.CustomerClassIds) { customer_class += custcService.GetCustomerClass(ci).Description + ","; } if (customer_class != "") { msg = msg + " Allowed Customer Class : " + customer_class + "\n"; } customer_class = ""; CustomerClassIds_local = pricecondition.CustomerClassIds; } // Allowed Customer Type if (pricecondition.CustomerTypeIds != null) { string customer_type = ""; foreach (var ct in pricecondition.CustomerTypeIds) { customer_type += custcService.GetCustomerType(ct).Name + ","; } if (customer_type != null) { msg = msg + " Allowed Customer Type : " + customer_type + "\n"; } customer_type = ""; CustomerTypeIds_local = pricecondition.CustomerTypeIds; } // Allowed Finance Options if (pricecondition.FinanceOptionIds != null) { string financeoption = ""; foreach (var fo in pricecondition.FinanceOptionIds) { financeoption += productcService.GetFinanceOption(fo).Description + ","; } if (financeoption != "") { msg = msg + " Allowed Finance Options : " + financeoption + "\n"; } FinanceOptionIds_local = pricecondition.FinanceOptionIds; } // Allowed Finance Account Type if (pricecondition.FinancialAccountTypeIds != null) { string fatype = ""; foreach (var fatypeid in pricecondition.FinancialAccountTypeIds) { fatype += fincService.GetFinancialAccountType((fatypeid)).Description + ","; } if (fatype != "") { msg = msg + " Allowed Financial Account Type : " + fatype + "\n"; } } // Allowed Postal Codes if (pricecondition.PostalCodes != null) { string postcode = ""; foreach (var pcode in pricecondition.PostalCodes) { postcode += pcode + ","; } if (postcode != "") { msg = msg + " Allowed Postal Code : " + postcode + "\n"; } PostalCodes_local = pricecondition.PostalCodes; } // Allowed Province if (pricecondition.ProvinceIds != null) { string province = ""; foreach (var pro in pricecondition.ProvinceIds) { province += custcService.GetProvince(pro).Description + ","; } if (province != "") { msg = msg + " Allowed Province : " + province + "\n"; } ProvinceIds_local = pricecondition.ProvinceIds; } ListPriceCondition_local = listprice.PriceConditions.Items; } } cc.Add(new YangProductPriceItems { the_Name = pr.Name, the_CommercialProductIds = pr.CommercialProductIds, the_ListPriceCollection = prices.Items, the_CustomerClassIds = CustomerClassIds_local, the_CountryIds = CountryIds_local, the_CustomerTypeIds = CustomerTypeIds_local, the_ListPriceConditions = ListPriceCondition_local }); } db.the_items = cc; return(db); }
public List <QuoteInvoiceCollection> GetPendingQuote(String username_ad, String password_ad) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader ah = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var billService = AsmRepository.GetServiceProxy <IBillingEngineService>(ah); var finService = AsmRepository.AllServices.GetFinanceService(ah); QuoteInvoiceCollection quotes = null; decimal total_amount = 0; ArrayList falist = new ArrayList(); long new_max_quote_id = 1; int total_record = 0; List <QuoteInvoiceCollection> the_items = new List <QuoteInvoiceCollection>(); for (int i = 1; i < 10000; i++) { quotes = billService.FindQuoteInvoices(new BaseQueryRequest() { FilterCriteria = Op.Eq("QuoteStatusId", "1") & Op.Gt("Id", 1), PageCriteria = new PageCriteria() { Page = i, PageSize = 300 }, SortCriteria = new SortCriteriaCollection() { new SortCriteria() { SortDirection = SortDirections.Ascending, Key = "Id" } }, DeepLoad = true }); //Console.WriteLine("Loop " + i + " Times!"); if (quotes.TotalCount == 0) { //Console.WriteLine("End Loop ...... "); break; } // set the new max quote id for next run int count = quotes.TotalCount - 1; new_max_quote_id = quotes.Items[count].Id.Value; foreach (var quote in quotes.Items) { // Avoid duplicate records if (falist.Contains(quote.FinancialAccountId)) { continue; } else { falist.Add(quote.FinancialAccountId); } total_amount = 0; total_amount = quote.TotalAmount.Value; var fa = finService.GetFinancialAccount(quote.FinancialAccountId.Value); // search all pending quote for same financial account and count total // Why : Customer may have multiple pending quote if he request more products or upgrade in different time, so you need count all of them. foreach (var quotet in quotes.Items) { if (quotet.FinancialAccountId == quote.FinancialAccountId && quote.Id != quotet.Id) { total_amount = total_amount + quotet.TotalAmount.Value; total_record++; //Console.WriteLine("quotet.TotalAmount.Value " + quotet.TotalAmount.Value); } } // Add the account debit like payment fee, downgrade fee...etc. so you need to add account balance total_amount = total_amount + fa.Balance.Value; //Console.WriteLine("Customer Id : " + quote.CustomerId.Value + " FA ID : " + fa.Id.Value + " , unpaid quote amount : " + total_amount); //if (quote.LineItems.TotalCount > 0) //{ // Console.WriteLine("From " + quote.LineItems.Items[0].StartDate + " To " + quote.LineItems.Items[0].EndDate); //} total_record++; } the_items.Add(new QuoteInvoiceCollection(quotes)); quotes = null; } //Console.WriteLine("Total " + total_record + " pending quotes"); //Console.Read(); //return new_max_quote_id; return(the_items); }
public ShippingOrder ShipShippingOrder_ver1(string username_ad, string password_ad, int custid, string decoder_serial_number, string smartcard_serial_number, bool isInternet = false) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var soService = AsmRepository.AllServices.GetOrderManagementService(authHeader); var faService = AsmRepository.AllServices.GetFinanceService(authHeader); var sbService = AsmRepository.AllServices.GetSandBoxManagerService(authHeader); var agService = AsmRepository.AllServices.GetAgreementManagementService(authHeader); var deviceService = AsmRepository.AllServices.GetDevicesService(authHeader); var viewfService = AsmRepository.AllServices.GetViewFacadeService(authHeader); //msg = "Ship the shipping order..."; //Console.WriteLine(msg); //Console.WriteLine("decoder sn : " + decoder_serial_number); //Console.WriteLine("smartcard sn : " + smartcard_serial_number); //logger.Info(msg); int d_tp = 0; int s_tp = 0; int d_model = 0; int s_model = 0; if (isInternet) { d_tp = internet_router_tp_id; s_tp = xl_sim_tp_id; d_model = router_model_id; s_model = xl_sim_model_id; } else { d_tp = DECODER_TP_ID; s_tp = SCTPID; d_model = DECODER_MODEL_ID; s_model = SC_MODEL_ID; } try { // get the pending shipping order and shipping order line ShippingOrder soc = soService.GetShippedOrders(custid, 0).Items.Find(t => t.StatusId == SOMAYSHIP); if (soc == null) { Console.WriteLine("No Shipping Order with status May Ship, please check customer id : " + custid); return(null); } // Get the hardware agreement detail of customer AgreementDetailView hardwaread = null; var hardwareads = viewfService.GetAgreementDetailView(new BaseQueryRequest() { FilterCriteria = Op.Eq("DeviceIncluded", true) & Op.Eq("CustomerId", custid) & Op.Gt("Id", 0) & Op.IsNull("ProvisionedDevices"), PageCriteria = new PageCriteria(1), SortCriteria = new SortCriteriaCollection() { new SortCriteria() { Key = "Id", SortDirection = SortDirections.Descending } } }); if (hardwareads.TotalCount == 0) { //Console.WriteLine("Hardware product is not captured, can't ship the shipping order for customer id : " + custid); return(null); } else { hardwaread = hardwareads.Items[0]; } // Find the shipping order lines for decoder and smartcard var decodersoline = soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == d_tp); var scsoline = soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp); // Get random decoder and smartcard which are in stock, you should not use this since you have real device information. if (decoder_serial_number == "") { decoder_serial_number = deviceService.GetDevices( new BaseQueryRequest() { FilterCriteria = new CriteriaCollection() { new Criteria() { Key = "ModelId", Operator = Operator.Equal, Value = d_model.ToString() }, new Criteria() { Key = "StatusId", Operator = Operator.Equal, Value = DEVICE_STATUS_STOCK } } }).Items[0].SerialNumber; } else { d_model = deviceService.GetDeviceBySerialNumber(decoder_serial_number).ModelId.Value; } if (smartcard_serial_number == "") { smartcard_serial_number = deviceService.GetDevices(new BaseQueryRequest() { FilterCriteria = new CriteriaCollection() { new Criteria() { Key = "ModelId", Operator = Operator.Equal, Value = s_model.ToString() }, new Criteria() { Key = "StatusId", Operator = Operator.Equal, Value = DEVICE_STATUS_STOCK } } }).Items[0].SerialNumber; } else { s_model = deviceService.GetDeviceBySerialNumber(smartcard_serial_number).ModelId.Value; } // Identify device info to the shipping order lines BuildList buildListdecoder = new BuildList { OrderLineId = decodersoline.Id, OrderId = soc.Id, ModelId = decodersoline.HardwareModelId.GetValueOrDefault(), StockHandlerId = soc.ShipFromStockHandlerId, TransactionType = BuildListTransactionType.ShippingSerializedProducts }; BuildList bldecoder = deviceService.CreateBuildList(buildListdecoder); BuildList buildListsc = new BuildList { OrderLineId = scsoline.Id, OrderId = soc.Id, ModelId = scsoline.HardwareModelId.GetValueOrDefault(), StockHandlerId = soc.ShipFromStockHandlerId, TransactionType = BuildListTransactionType.ShippingSerializedProducts }; BuildList blsc = deviceService.CreateBuildList(buildListsc); deviceService.AddDeviceToBuildListManually(bldecoder.Id.Value, decoder_serial_number); deviceService.AddDeviceToBuildListManually(blsc.Id.Value, smartcard_serial_number); //msg = "Starting perform build list"; //Console.WriteLine(msg); //logger.Debug(msg); deviceService.PerformBuildListAction(bldecoder.Id.Value); deviceService.PerformBuildListAction(blsc.Id.Value); // Ship the Shipping Order //msg = "Starting link the device to customer"; //Console.WriteLine(msg); //logger.Debug(msg); // Fill the agreement detail id on the shipping order line to link the device to customer soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == d_tp).AgreementDetailId = hardwaread.Id.Value; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp).AgreementDetailId = hardwaread.Id.Value; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == d_tp).ReceivedQuantity = 1; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp).ReceivedQuantity = 1; soService.ShipOrder(soc, shipso_reason, null); //msg = "Shipping Order :" + soc.Id.Value + " has been shipped!"; //logger.Info(msg); return(soc); } catch (Exception ex) { //Console.WriteLine("Inner Exception : " + ex.InnerException.Message); //msg = "Errors : " + ex.Message + " ------ Exception Stack : " + ex.StackTrace; //Console.WriteLine("Errors : " + ex.Message); //Console.WriteLine("Stack : " + ex.StackTrace); //logger.Error(msg); return(null); } }
public ShippingOrder ShipShippingOrder_ver2(String username_ad, String password_ad, int custid, string decoder_serial_number, string smartcard_serial_number, bool isInternet, string lnb_sn, string antenna_sn, int shippingorder_id, bool isHD) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); //var docmService = AsmRepository.GetServiceProxy<IDocumentManagementService>(authHeader); var soService = AsmRepository.AllServices.GetOrderManagementService(authHeader); var faService = AsmRepository.AllServices.GetFinanceService(authHeader); var sbService = AsmRepository.AllServices.GetSandBoxManagerService(authHeader); var agService = AsmRepository.AllServices.GetAgreementManagementService(authHeader); var deviceService = AsmRepository.AllServices.GetDevicesService(authHeader); var viewfService = AsmRepository.AllServices.GetViewFacadeService(authHeader); //msg = "Ship the shipping order..."; //Console.WriteLine(msg); //logger.Info(msg); int d_tp = 0; int s_tp = 0; int d_model = 0; int s_model = 0; int lnb_model = 0; int antenna_model = 0; if (isInternet) { d_tp = internet_router_tp_id; s_tp = xl_sim_tp_id; d_model = router_model_id; s_model = xl_sim_model_id; } else { d_tp = DECODER_TP_ID; s_tp = SCTPID; d_model = DECODER_MODEL_ID; s_model = SC_MODEL_ID; } if (isHD) { //d_model = DECODER_HD_TP_ID; d_tp = DECODER_HD_TP_ID; d_model = DECODER_HD_MODEL_ID; } try { // Get the hardware agreement detail of customer AgreementDetailView hardwaread = null; var hardwareads = viewfService.GetAgreementDetailView(new BaseQueryRequest() { FilterCriteria = Op.Eq("DeviceIncluded", true) & Op.Eq("CustomerId", custid) & Op.Gt("Id", 0) & Op.IsNull("ProvisionedDevices"), PageCriteria = new PageCriteria(1), SortCriteria = new SortCriteriaCollection() { new SortCriteria() { Key = "Id", SortDirection = SortDirections.Descending } } }); if (hardwareads.TotalCount == 0) { //Console.WriteLine("Hardware product is not captured, can't ship the shipping order for customer id : " + custid); return(null); } else { hardwaread = hardwareads.Items[0]; } // If not input the shipping order id then find the shipping order id by the random hardware product which don't assign device info yet. if (shippingorder_id == 0) { shippingorder_id = getShippingOrderByHardware(username_ad, password_ad, hardwaread.Id.Value); //Console.WriteLine("Ship the Shipping Order Id is : " + shippingorder_id); } // get the May shipping order and shipping order line( with smartcard or Sim card in it). var soc = soService.GetShippedOrders(custid, 0).Items.Find(t => (t.StatusId == SOMAYSHIP && t.Id.Value == shippingorder_id)); if (soc == null) { //Console.WriteLine("No Shipping Order with status May Ship, please check customer id : " + custid); return(null); } // Find the shipping order lines for decoder and smartcard var scsoline = soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp); // Get random decoder and smartcard which are in stock, you should not use this since you have real device information. Device decoder = null; Device smartcard = null; if (decoder_serial_number == "") { var decoders = deviceService.GetDevices( new BaseQueryRequest() { FilterCriteria = new CriteriaCollection() { new Criteria() { Key = "ModelId", Operator = Operator.Equal, Value = d_model.ToString() }, new Criteria() { Key = "StatusId", Operator = Operator.Equal, Value = DEVICE_STATUS_STOCK } } }); if (decoders.Items.Count == 0) { //Console.WriteLine("There are no decoder avaiable to use!"); return(null); } else { decoder_serial_number = decoders.Items[0].SerialNumber; } } else { decoder = deviceService.GetDeviceBySerialNumber(decoder_serial_number); if (decoder.StatusId.Value == Int32.Parse(DEVICE_STATUS_STOCK) || decoder.StatusId.Value == Int32.Parse(DEVICE_STATUS_REFURSTOCK) || decoder.StatusId.Value == Int32.Parse(DEVICE_STATUS_REPAIREDSTOCK) ) { } else { //Console.WriteLine(" Decoder with serial number " + decoder_serial_number + " is not in allowed capture status!"); return(null); } } if (smartcard_serial_number == "") { var smartcards = deviceService.GetDevices(new BaseQueryRequest() { FilterCriteria = new CriteriaCollection() { new Criteria() { Key = "ModelId", Operator = Operator.Equal, Value = s_model.ToString() }, new Criteria() { Key = "StatusId", Operator = Operator.Equal, Value = DEVICE_STATUS_STOCK } } }); if (smartcards.Items.Count == 0) { //Console.WriteLine("There are no smartcard avaiable to use!"); return(null); } else { smartcard_serial_number = smartcards.Items[0].SerialNumber; } } else { smartcard = deviceService.GetDeviceBySerialNumber(smartcard_serial_number); if (smartcard.StatusId.Value == Int32.Parse(DEVICE_STATUS_STOCK) || smartcard.StatusId.Value == Int32.Parse(DEVICE_STATUS_REFURSTOCK) || smartcard.StatusId.Value == Int32.Parse(DEVICE_STATUS_REPAIREDSTOCK) ) { } else { //Console.WriteLine(" Smartcard with serial number " + smartcard_serial_number + " is not in allowed capture status!"); return(null); } } // Identify device info to the shipping order lines var dd = identifyDevice(username_ad, password_ad, soc, decoder_serial_number, d_tp, d_model); var sc = identifyDevice(username_ad, password_ad, soc, smartcard_serial_number, s_tp, s_model); if (lnb_sn.Length > 0) { var lnb = deviceService.GetDeviceBySerialNumber(lnb_sn); if (lnb.StatusId.Value == Int32.Parse(DEVICE_STATUS_STOCK) || lnb.StatusId.Value == Int32.Parse(DEVICE_STATUS_REFURSTOCK) || lnb.StatusId.Value == Int32.Parse(DEVICE_STATUS_REPAIREDSTOCK) ) { lnb_model = lnb.ModelId.Value; } else { //Console.WriteLine(" LNB with serial number " + lnb_sn + " is not in allowed capture status!"); //return null; } identifyDevice(username_ad, password_ad, soc, lnb_sn, lnb_tp_id, lnb.ModelId.Value); } if (antenna_sn.Length > 0) { var antenna = deviceService.GetDeviceBySerialNumber(lnb_sn); if (antenna.StatusId.Value == Int32.Parse(DEVICE_STATUS_STOCK) || antenna.StatusId.Value == Int32.Parse(DEVICE_STATUS_REFURSTOCK) || antenna.StatusId.Value == Int32.Parse(DEVICE_STATUS_REPAIREDSTOCK) ) { antenna_model = antenna.ModelId.Value; } else { //Console.WriteLine(" Antenna with serial number " + antenna_sn + " is not in allowed capture status!"); //return null; } identifyDevice(username_ad, password_ad, soc, antenna_sn, antenna_tp_id, antenna.ModelId.Value); } if (dd == null || sc == null) { return(null); } //msg = "Starting perform build list"; //Console.WriteLine(msg); //logger.Debug(msg); // Ship the Shipping Order //msg = "Starting link the device to customer"; //Console.WriteLine(msg); //logger.Debug(msg); // Fill the agreement detail id on the shipping order line to link the device to customer //soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == d_tp).AgreementDetailId = hardwaread.Id.Value; //soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp).AgreementDetailId = hardwaread.Id.Value; // Fill the correct model id soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == d_tp).HardwareModelId = d_model; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp).HardwareModelId = s_model; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == lnb_tp_id).HardwareModelId = lnb_model; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == antenna_tp_id).HardwareModelId = antenna_model; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == d_tp).ReceivedQuantity = 1; soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == s_tp).ReceivedQuantity = 1; soService.ShipOrder(soc, shipso_reason, null); //msg = "Shipping Order :" + soc.Id.Value + " has been shipped!"; //logger.Info(msg); return(soc); } catch (Exception ex) { //Console.WriteLine("Inner Exception : " + ex.InnerException.Message); //msg = "Errors : " + ex.Message + " ------ Exception Stack : " + ex.StackTrace; //Console.WriteLine("Errors : " + ex.Message); //Console.WriteLine("Stack : " + ex.StackTrace); //logger.Error(msg); return(null); } }
public List <Hardware_list> GetSerialNumberDevices_shippingordersByCustomerId(String username_ad, String password_ad, int cust_id) { List <Hardware_list> list1 = new List <Hardware_list>(); Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var soService = AsmRepository.AllServices.GetOrderManagementService(authHeader); var faService = AsmRepository.AllServices.GetFinanceService(authHeader); var sbService = AsmRepository.AllServices.GetSandBoxManagerService(authHeader); var agService = AsmRepository.AllServices.GetAgreementManagementService(authHeader); var deviceService = AsmRepository.AllServices.GetDevicesService(authHeader); var viewfService = AsmRepository.AllServices.GetViewFacadeService(authHeader); var prodcService = AsmRepository.AllServices.GetProductCatalogConfigurationService(authHeader); try { int so_shipped = 3; int so_pending = 1; int so_mayship = 21; int so_reject = 5; int so_approved = 2; string sn = ""; var sos = soService.GetShippedOrders(cust_id, 0); List <ShippingOrder> shipped_so = sos.Items.FindAll(T => T.StatusId == so_shipped); List <ShippingOrder> pending_so = sos.Items.FindAll(T => T.StatusId == so_pending); List <ShippingOrder> mayship_so = sos.Items.FindAll(T => T.StatusId == so_mayship); List <ShippingOrder> mayship_pending = null; // get shipped ship order info. foreach (var so in shipped_so) { //Console.WriteLine("Shipped Shipping Order ID : " + so.Id.Value); foreach (var item in so.ShippingOrderLines.Items) { var tp = prodcService.GetTechnicalProduct(item.TechnicalProductId.Value); var device = viewfService.GetDeviceView(new BaseQueryRequest() { FilterCriteria = Op.Eq("ShipOrderId", so.Id.Value) && Op.Eq("TechnicalProductName", tp.Name), PageCriteria = new PageCriteria() { Page = 0, PageSize = 5 } }); if (device.TotalCount > 0) { sn = device.Items[0].SerialNumber; } list1.Add(new Hardware_list() { description = tp.Description, serial_number = sn, hardware_model_id = item.HardwareModelId.Value }); //Console.WriteLine("Item Hardware Model ID : " + item.HardwareModelId.Value + " Serial Number : " + sn); sn = ""; } } return(list1); } catch (Exception ex) { return(null); //msg = "Errors : " + ex.Message + " ------ Exception Stack : " + ex.StackTrace; //Console.WriteLine("Errors : " + ex.Message); //Console.WriteLine("Stack : " + ex.StackTrace); //logger.Error(msg); } }
public List <OfferDefinition> YangOfferDefinition(String username_ad, String password_ad) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); IOfferManagementConfigurationService offercService = null; IOfferManagementService offerService = null; IPriceAdjustmentService priceadService = null; IPriceAdjustmentConfigurationService priceadcService = null; ICustomersConfigurationService custcService = null; IProductCatalogConfigurationService productcService = null; IAgreementManagementService agService = null; offercService = AsmRepository.AllServices.GetOfferManagementConfigurationService(authHeader); offerService = AsmRepository.AllServices.GetOfferManagementService(authHeader); priceadService = AsmRepository.AllServices.GetPriceAdjustmentService(authHeader); priceadcService = AsmRepository.AllServices.GetPriceAdjustmentConfigurationService(authHeader); custcService = AsmRepository.AllServices.GetCustomersConfigurationService(authHeader); productcService = AsmRepository.AllServices.GetProductCatalogConfigurationService(authHeader); agService = AsmRepository.AllServices.GetAgreementManagementService(authHeader); try { var offers = offercService.GetOfferDefinitions(new BaseQueryRequest() { FilterCriteria = Op.Eq("Active", true), DeepLoad = true, PageCriteria = new PageCriteria() { Page = 0, } }); //Console.WriteLine("Find " + offers.TotalCount + " Promo defenitions..."); return(offers.Items); //foreach (var offer in offers.Items) //{ // Console.WriteLine("-----------------------------------------------------------------------"); // Console.WriteLine("Promo Name : " + offer.Description); // var offer_adjustments = priceadcService.GetPriceAdjustmentDefinitionsForOffer(offer.Id.Value, 0); // Console.WriteLine(" Find total price adjustment : " + offer_adjustments.TotalCount); // foreach (var offer_adjust in offer_adjustments.Items) // { // string condition = ""; // //string apply_level = ""; // string price = ""; // string charge_type = ""; // string apply_to_customer_class = ""; // string apply_to_customer_type = ""; // string apply_to_product = ""; // foreach (var cust_class in offer_adjust.ApplicableCustomerClasses) // { // apply_to_customer_class += custcService.GetCustomerClass(cust_class).Description + ","; // } // foreach (var cust_type in offer_adjust.ApplicableCustomerTypes) // { // apply_to_customer_type += custcService.GetCustomerType(cust_type).LongDescription + ","; // } // if (offer_adjust.ApplicableProducts != 0) // { // apply_to_product = productcService.GetCommercialProduct(offer_adjust.ApplicableProducts.Value).Name; // } // if (apply_to_customer_class != "") // { // condition += " apply to customer class : " + apply_to_customer_class; // } // if (apply_to_customer_type != "") // { // condition += " apply to customer type : " + apply_to_customer_type; // } // if (apply_to_product != "") // { // condition += " apply to product : " + apply_to_product; // } // if (offer_adjust.Type == PriceAdjustmentTypes.PercentOff) // { // price = " discount is percent :" + offer_adjust.Value; // } // if (offer_adjust.Type == PriceAdjustmentTypes.FixedPrice) // { // price = " discount is fixed price : " + offer_adjust.Value; // } // if (offer_adjust.Type == PriceAdjustmentTypes.AmountOff) // { // price = " discount is off amount " + offer_adjust.Value; // } // if (offer_adjust.ChargeType == ChargeTypes.OnceOff) // { // charge_type = " charge type is Once-Off"; // } // else if (offer_adjust.ChargeType == ChargeTypes.Recurring) // { // charge_type = " charge type is Recurring"; // } // Console.WriteLine("Apply level : 0 - ListPrice, 1 - Settlement 2 - OrderableEventDiscount 3 - PrepaidFAPayment 4 - QuoteProduct"); // Console.WriteLine("Adjustment " + offer_adjust.Description + " apply level : " + offer_adjust.ApplyToType.ToString() + " | " + condition + " Price : " + price + " " + charge_type); // } // Console.WriteLine("########################################################################"); //} //Console.WriteLine("End"); } catch (Exception ex) { return(null); //Console.WriteLine("Errors : " + ex.Message); //Console.WriteLine("Exception Stack : " + ex.StackTrace); } }
// import devices to stock handler public void importDevices(string username_ad, string password_ad) { Authentication_class var_auth = new Authentication_class(); AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad); AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url); var whService = AsmRepository.AllServices.GetLogisticsService(authHeader); var prodcService = AsmRepository.AllServices.GetProductCatalogConfigurationService(authHeader); var deviceService = AsmRepository.AllServices.GetDevicesService(authHeader); try { var stockhandlers = whService.GetStockHandlers(new BaseQueryRequest() { FilterCriteria = Op.Eq("Active", true), PageCriteria = new PageCriteria() { Page = 1, PageSize = 100 } }); var models = prodcService.GetHardwareModels(new BaseQueryRequest() { FilterCriteria = Op.Like("Description", "%Decoder%"), PageCriteria = new PageCriteria() { Page = 1, PageSize = 100 } }); //models.Items.Sort(); foreach (var model in models.Items) { string start_sn = "ID" + model.Id.Value + "YY"; int count = 100; StockReceiveDetails stockReceiveDetails = new StockReceiveDetails(); stockReceiveDetails.FromStockHanderId = 1; stockReceiveDetails.ToStockHanderId = 1; stockReceiveDetails.Reason = 71197; stockReceiveDetails = deviceService.CreateStockReceiveDetails(stockReceiveDetails); BuildList bl = new BuildList(); bl.TransactionType = BuildListTransactionType.ReceiveNewStock; bl.Reason = 71197; bl.ModelId = model.Id.Value; bl.StockReceiveDetailsId = stockReceiveDetails.Id.Value; // Create build list var nbl = deviceService.CreateBuildList(bl); // Add device to build list for (int i = 0; i < 300; i++) { string sn = start_sn + count.ToString().PadLeft(model.HardwareNumberLength.Value - start_sn.Length, '0'); Console.WriteLine(sn); count++; deviceService.AddDeviceToBuildListManually(nbl.Id.Value, sn); } // Perform build list var bl1 = deviceService.PerformBuildListAction(nbl.Id.Value); } } catch (Exception ex) { Console.WriteLine("Errors : " + ex.Message); Console.WriteLine("Stack : " + ex.StackTrace); } }