public Intelbras.Message.Helper.MSG0138 DefinirPropriedades(List <Product> lstProd, List <ProdutosdaSolicitacao> prodSolicLst, List <PrecoProduto> precoProdutoLst, SolicitacaoBeneficio solicBenef) { Intelbras.Message.Helper.MSG0138 msg0138 = new Intelbras.Message.Helper.MSG0138(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), solicBenef.ID.ToString()); var estabService = new EstabelecimentoService(this.Organizacao, this.IsOffline); var parametroGlobalCondPagamento = new ParametroGlobalService(this.Organizacao, this.IsOffline).ObterPor((int)Enum.TipoParametroGlobal.CondicaoPagamentoTabelaPreco); if (parametroGlobalCondPagamento == null) { throw new ArgumentException("(CRM) Parâmetro global de Condição de Pagamento não localizado [Código: " + (int)Enum.TipoParametroGlobal.CondicaoPagamentoTabelaPreco + "]"); } int codigoCondicaoPagamento; if (!int.TryParse(parametroGlobalCondPagamento.Valor, out codigoCondicaoPagamento)) { throw new ArgumentException("(CRM) Parâmetro global de Condição de Pagamento não é um número inteiro [Código: " + (int)Enum.TipoParametroGlobal.CondicaoPagamentoTabelaPreco + "]"); } msg0138.CondicaoPagamento = codigoCondicaoPagamento; msg0138.Conta = solicBenef.Canal.Id.ToString(); msg0138.ProdutosItens = new List <Pollux.Entities.ProdutoValorIcmsItem>(); foreach (var prodSolicObj in prodSolicLst) { var estabObj = estabService.BuscaEstabelecimento(prodSolicObj.Estabelecimento.Id); var prodObj = lstProd.Find(x => x.ID == prodSolicObj.Produto.Id); var precoProdObj = precoProdutoLst.Find(x => x.Produto.ID == prodSolicObj.Produto.Id); var tmpPolluxObj = new Pollux.Entities.ProdutoValorIcmsItem(); tmpPolluxObj.Estabelecimento = estabObj.Codigo; tmpPolluxObj.CodigoProduto = prodObj.Codigo; tmpPolluxObj.PrecoUnitario = precoProdObj.ValorBase; msg0138.ProdutosItens.Add(tmpPolluxObj); } return(msg0138); }
public List <ValorProdutoICMSViewModel> Enviar(List <Product> objModel, List <ProdutosdaSolicitacao> prodSolicLst, List <PrecoProduto> precoProdutoLst, SolicitacaoBeneficio solicBenef) { List <ValorProdutoICMSViewModel> valProdICMSLst = null; string retMsg = String.Empty; Intelbras.Message.Helper.MSG0138 mensagem = this.DefinirPropriedades(objModel, prodSolicLst, precoProdutoLst, solicBenef); Domain.Servicos.Integracao integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline); if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out retMsg)) { Intelbras.Message.Helper.MSG0138R1 retorno = CarregarMensagem <Pollux.MSG0138R1>(retMsg); if (!retorno.Resultado.Sucesso) { throw new Exception(retorno.Resultado.Mensagem); } else { valProdICMSLst = new List <ValorProdutoICMSViewModel>(); foreach (var retornoObj in retorno.ProdutosItens) { var valProd = new ValorProdutoICMSViewModel(); valProd.AliquotaICMS = retornoObj.AliquotaICMS; valProd.PrecoLiquido = retornoObj.PrecoLiquido; valProd.CodigoProduto = retornoObj.CodigoProduto; valProdICMSLst.Add(valProd); } } } else { Intelbras.Message.Helper.ERR0001 erro001 = CarregarMensagem <Pollux.ERR0001>(retMsg); throw new Exception(erro001.GenerateMessage(false)); } return(valProdICMSLst); }