public ActionResult Configure(CorreiosShippingModel model) { if (!ModelState.IsValid) { return(Configure()); } //save settings _correiosSettings.Url = model.Url; _correiosSettings.CodigoEmpresa = model.CodigoEmpresa; _correiosSettings.Senha = model.Senha; _correiosSettings.CustoAdicionalEnvio = model.CustoAdicionalEnvio; _correiosSettings.IncluirAvisoRecebimento = model.IncluirAvisoRecebimento; _correiosSettings.IncluirMaoPropria = model.IncluirMaoPropria; _correiosSettings.IncluirValorDeclarado = model.IncluirValorDeclarado; _correiosSettings.DiasUteisAdicionais = model.DiasUteisAdicionais; _correiosSettings.CEPRestito = model.CEPRestito; _correiosSettings.CategoriasRetritras = model.CategoriasRetritras; // Save selected services var carrierServicesOfferedDomestic = new StringBuilder(); int carrierServicesDomesticSelectedCount = 0; if (model.CheckedCarrierServices != null) { foreach (var cs in model.CheckedCarrierServices) { carrierServicesDomesticSelectedCount++; string serviceId = CorreiosServices.GetServiceId(cs); if (!String.IsNullOrEmpty(serviceId)) { carrierServicesOfferedDomestic.AppendFormat("{0},", serviceId); } } } if (carrierServicesDomesticSelectedCount == 0) { _correiosSettings.CarrierServicesOffered = "41106,40010,40215"; } else { _correiosSettings.CarrierServicesOffered = carrierServicesOfferedDomestic.ToString().TrimEnd(','); } _settingService.SaveSetting(_correiosSettings); ViewData["sucesso"] = this._localizationService.GetResource("Admin.Configuration.Updated"); return(Configure()); }
public ActionResult Configure() { var model = new CorreiosShippingModel(); model.Url = _correiosSettings.Url; model.CodigoEmpresa = _correiosSettings.CodigoEmpresa; model.Senha = _correiosSettings.Senha; model.CustoAdicionalEnvio = _correiosSettings.CustoAdicionalEnvio; model.IncluirAvisoRecebimento = _correiosSettings.IncluirAvisoRecebimento; model.IncluirMaoPropria = _correiosSettings.IncluirMaoPropria; model.IncluirValorDeclarado = _correiosSettings.IncluirValorDeclarado; model.DiasUteisAdicionais = _correiosSettings.DiasUteisAdicionais; model.CEPRestito = _correiosSettings.CEPRestito; model.CategoriasRetritras = _correiosSettings.CategoriasRetritras; var services = new CorreiosServices(); // Load service names string carrierServicesOfferedDomestic = _correiosSettings.CarrierServicesOffered; foreach (string service in services.Services) { model.AvailableCarrierServices.Add(service); } if (!String.IsNullOrEmpty(carrierServicesOfferedDomestic)) { foreach (string service in services.Services) { string serviceId = CorreiosServices.GetServiceId(service); if (!String.IsNullOrEmpty(serviceId) && !String.IsNullOrEmpty(carrierServicesOfferedDomestic)) { if (carrierServicesOfferedDomestic.Contains(serviceId)) { model.CarrierServicesOffered.Add(service); } } } } return(View("~/Plugins/Shipping.Correios/Views/ShippingCorreios/Configure.cshtml", model)); }
/// <summary> /// Gets available shipping options /// </summary> /// <param name="getShippingOptionRequest">A request for getting shipping options</param> /// <returns>Represents a response of getting shipping rate options</returns> public GetShippingOptionResponse GetShippingOptions(GetShippingOptionRequest getShippingOptionRequest) { if (getShippingOptionRequest == null) { throw new ArgumentNullException("getShippingOptionRequest"); } var response = new GetShippingOptionResponse(); if (getShippingOptionRequest.Items == null) { response.AddError("Sem items para enviar"); return(response); } if (getShippingOptionRequest.ShippingAddress == null) { response.AddError("Endereço de envio em branco"); return(response); } if (getShippingOptionRequest.ShippingAddress.ZipPostalCode == null) { response.AddError("CEP de envio em branco"); return(response); } var result = ProcessShipping(getShippingOptionRequest, response); if (result == null) { response.AddError("Não há serviços disponíveis no momento"); return(response); } else { List <string> group = new List <string>(); foreach (cServico servico in result.Servicos.OrderBy(s => s.Valor)) { Debug.WriteLine("Plugin.Shipping.Correios: Retorno WS"); Debug.WriteLine("Codigo: " + servico.Codigo); Debug.WriteLine("Valor: " + servico.Valor); Debug.WriteLine("Valor Mão Própria: " + servico.ValorMaoPropria); Debug.WriteLine("Valor Aviso Recebimento: " + servico.ValorAvisoRecebimento); Debug.WriteLine("Valor Declarado: " + servico.ValorValorDeclarado); Debug.WriteLine("Prazo Entrega: " + servico.PrazoEntrega); Debug.WriteLine("Entrega Domiciliar: " + servico.EntregaDomiciliar); Debug.WriteLine("Entrega Sabado: " + servico.EntregaSabado); Debug.WriteLine("Erro: " + servico.Erro); Debug.WriteLine("Msg Erro: " + servico.MsgErro); if (servico.Erro == "0") { string name = CorreiosServices.GetServicePublicNameById(servico.Codigo.ToString()); if (!group.Contains(name)) { ShippingOption option = new ShippingOption(); option.Name = name; option.Description = "Prazo médio de entrega " + (servico.PrazoEntrega + _correiosSettings.DiasUteisAdicionais) + " dias úteis"; option.Rate = decimal.Parse(servico.Valor, CultureInfo.GetCultureInfo("pt-BR")) + _orderTotalCalculationService.GetShoppingCartAdditionalShippingCharge(getShippingOptionRequest.Items) + _correiosSettings.CustoAdicionalEnvio; response.ShippingOptions.Add(option); group.Add(name); } } else { _logger.Error("Plugin.Shipping.Correios: erro ao calcular frete: (" + CorreiosServices.GetServiceName(servico.Codigo.ToString()) + ")( " + servico.Erro + ") " + servico.MsgErro); } } return(response); } }