internal Guid UnidadeMedida(string nomeUnidadeMedida, ref Pollux.Entities.Resultado resultadoPersistencia) { Model.Unidade unidadeMedida = new Intelbras.CRM2013.Domain.Servicos.UnidadeService(this.Organizacao, this.IsOffline).BuscaUnidadePorNome(nomeUnidadeMedida); if (unidadeMedida != null && unidadeMedida.ID.HasValue) { //crm.Segmento = new Lookup(segmento.ID.Value, ""); return((Guid)unidadeMedida.ID); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Unidade de Medida não encontrada!"; return(Guid.Empty); } }
public ItemListaPreco DefinirPropriedades(Intelbras.Message.Helper.MSG0082 xml) { var crm = new ItemListaPreco(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml if (!String.IsNullOrEmpty(xml.CodigoItemListaPreco)) { crm.ID = new Guid(xml.CodigoItemListaPreco); } if (!String.IsNullOrEmpty(xml.Produto)) { Product produto = new Product(this.Organizacao, this.IsOffline); produto = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(xml.Produto); if (produto != null) { crm.ProdutoID = new Lookup(produto.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto não encontrado."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.ListaPreco)) { Model.ListaPreco listaPreco = new Model.ListaPreco(this.Organizacao, this.IsOffline); listaPreco = new Intelbras.CRM2013.Domain.Servicos.ListaPrecoService(this.Organizacao, this.IsOffline).BuscaListaPreco(xml.ListaPreco); if (listaPreco != null && listaPreco.ID.HasValue) { crm.ListaPrecos = new Lookup(listaPreco.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "ListaPreco não encontrado."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "ListaPreco não enviada."; return(crm); } crm.Valor = xml.Valor; crm.Porcentual = xml.Porcentagem; if (!String.IsNullOrEmpty(xml.ListaDesconto)) { ListaDesconto listaDesconto = new ListaDesconto(this.Organizacao, this.IsOffline); listaDesconto = new Intelbras.CRM2013.Domain.Servicos.ListaDescontoService(this.Organizacao, this.IsOffline).BuscaListaDesconto(xml.ListaDesconto); if (listaDesconto != null) { crm.ListaDesconto = new Lookup(listaDesconto.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Lista Desconto não encontrada."; return(crm); } } else { crm.AddNullProperty("ListaDesconto"); } crm.MetodoPrecificacao = xml.MetodoPrecificacao; crm.OpcaoVendaParcial = xml.OpcaoVendaParcial; crm.ValorArredondamento = xml.ValorArredondamento; crm.OpcaoArredondamento = xml.OpcaoArredondamento; crm.PoliticaArredondamento = xml.PoliticaArredondamento; if (!String.IsNullOrEmpty(xml.Moeda)) { Model.Moeda moeda = new Model.Moeda(this.Organizacao, this.IsOffline); moeda = new Intelbras.CRM2013.Domain.Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorNome(xml.Moeda); if (moeda != null && moeda.ID.HasValue) { crm.Moeda = new Lookup(moeda.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda não encontrada!"; return(crm); } } if (!String.IsNullOrEmpty(xml.UnidadeMedida)) { Unidade unidade = new Unidade(this.Organizacao, this.IsOffline); unidade = new Intelbras.CRM2013.Domain.Servicos.UnidadeService(this.Organizacao, this.IsOffline).BuscaUnidadePorNome(xml.UnidadeMedida); if (unidade != null) { crm.Unidade = new Lookup(unidade.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeMedida não encontrada."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeMedida não enviada."; return(crm); } //Entidade não tem ownerid //crm.Proprietario = new SDKore.DomainModel.Lookup((Guid)usuarioIntegracao.ID, "systemuser"); //crm.IntegradoEm = DateTime.Now; //crm.IntegradoPor = usuarioIntegracao.NomeCompleto; //crm.UsuarioIntegracao = xml.LoginUsuario; #endregion return(crm); }
private void DefinirPropriedadesProdutoFatura(Intelbras.Message.Helper.MSG0094 xml, Guid FaturaID) { ProdutoFatura crmProdFatura = null; foreach (Pollux.Entities.NotaFiscalItem item in xml.NotaFiscalItens) { crmProdFatura = new ProdutoFatura(this.Organizacao, this.IsOffline); crmProdFatura.ChaveIntegracao = item.ChaveIntegracao; crmProdFatura.Fatura = new Lookup(FaturaID, ""); if (!String.IsNullOrEmpty(item.CodigoProduto)) { Model.Product ObjProduto = new Product(this.Organizacao, this.IsOffline); ObjProduto = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(item.CodigoProduto); if (ObjProduto != null && ObjProduto.ID.HasValue) { crmProdFatura.ProdutoId = new Lookup(ObjProduto.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador do Produto não encontrado."; return; } } if (!String.IsNullOrEmpty(item.Descricao)) { crmProdFatura.Descricao = item.Descricao; } else { crmProdFatura.AddNullProperty("Descricao"); } crmProdFatura.PrecoOriginal = item.PrecoOriginal; crmProdFatura.ValorLiquido = item.PrecoUnitario; crmProdFatura.PrecoLiquido = item.PrecoLiquido; crmProdFatura.ValorMercadoriaTabela = item.ValorMercadoriaTabela; crmProdFatura.ValorMercadoriaOriginal = item.ValorMercadoriaOriginal; crmProdFatura.ValorMercadoriaLiquida = item.ValorMercadoriaLiquido; crmProdFatura.Precificacao = item.PermiteSubstituirPreco; //Service Natureza Operação NaturezaOperacao ObjNaturezaOperacao = new Intelbras.CRM2013.Domain.Servicos.NaturezaOperacaoService(this.Organizacao, this.IsOffline).BuscaNaturezaOperacaoPorCodigo(item.CodigoNaturezaOperacao); if (ObjNaturezaOperacao != null) { crmProdFatura.NaturezaOperacao = new Lookup((Guid)ObjNaturezaOperacao.ID, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador da Natureza de Operação não encontrado."; return; } crmProdFatura.SelecionarProduto = item.ProdutoForaCatalogo; if (!String.IsNullOrEmpty(item.DescricaoProdutoForaCatalogo)) { crmProdFatura.DescricaoProdutoSemCatalogo = item.DescricaoProdutoForaCatalogo; } else { crmProdFatura.AddNullProperty("DescricaoProdutoSemCatalogo"); } crmProdFatura.Precificacao = item.PermiteSubstituirPreco; //Service Unidade Medida Unidade ObjUnidadeMedida = new Intelbras.CRM2013.Domain.Servicos.UnidadeService(this.Organizacao, this.IsOffline).BuscaUnidadePorNome(item.UnidadeMedida); if (ObjUnidadeMedida != null) { crmProdFatura.Unidade = new Lookup((Guid)ObjUnidadeMedida.ID, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador da Unidade de Medida não encontrado."; return; } if (item.ValorBaseICMS.HasValue) { crmProdFatura.ValorBaseICMS = item.ValorBaseICMS; } else { crmProdFatura.AddNullProperty("ValorBaseICMS"); } if (item.ValorBaseICMSSubstituicao.HasValue) { crmProdFatura.ValorSubstTributaria = item.ValorBaseICMSSubstituicao; } else { crmProdFatura.AddNullProperty("ValorSubstTributaria"); } if (item.ValorICMS.HasValue) { crmProdFatura.ValorICMSItem = item.ValorICMS; } else { crmProdFatura.AddNullProperty("ValorICMSItem"); } if (item.ValorICMSSubstituicao.HasValue) { crmProdFatura.ValorICMSSubstTributaria = item.ValorICMSSubstituicao; } else { crmProdFatura.AddNullProperty("ValorICMSSubstTributaria"); } if (item.ValorICMSNaoTributado.HasValue) { crmProdFatura.ValorICMSNaoTributado = item.ValorICMSNaoTributado; } else { crmProdFatura.AddNullProperty("ValorICMSNaoTributado"); } if (item.ValorICMSOutras.HasValue) { crmProdFatura.ValorICMSOutras = item.ValorICMSOutras; } else { crmProdFatura.AddNullProperty("ValorICMSOutras"); } crmProdFatura.CodigoTributarioICMS = item.CodigoTributarioICMS; if (!String.IsNullOrEmpty(item.CodigoTributarioISS)) { crmProdFatura.CodigoTributarioISS = item.CodigoTributarioISS; } else { crmProdFatura.AddNullProperty("CodigoTributarioISS"); } crmProdFatura.CodigoTributarioIPI = item.CodigoTributarioIPI; if (item.ValorBaseIPI.HasValue) { crmProdFatura.ValorBaseIPI = item.ValorBaseIPI; } else { crmProdFatura.AddNullProperty("ValorBaseIPI"); } if (item.AliquotaISS.HasValue) { crmProdFatura.AliquotaISS = (double)item.AliquotaISS; } else { crmProdFatura.AddNullProperty("AliquotaISS"); } crmProdFatura.CodigoTributarioIPI = item.CodigoTributarioIPI; crmProdFatura.ValorBaseISS = item.ValorBaseISS; crmProdFatura.AliquotaIPI = (double)item.AliquotaIPI; crmProdFatura.AliquotaICMS = (double)item.AliquotaICMS; crmProdFatura.ValorISSItem = item.ValorISS; crmProdFatura.ValorISSNaoTributado = item.ValorISSNaoTributado; crmProdFatura.ValorISSOutras = item.ValorISSOutras; crmProdFatura.CalcularRebate = item.CalcularRebate; if (item.ValorIPI.HasValue) { crmProdFatura.ValorIPIItem = item.ValorIPI; } else { crmProdFatura.AddNullProperty("ValorIPIItem"); } if (item.ValorIPINaoTributado.HasValue) { crmProdFatura.ValorIPINaoTributado = item.ValorIPINaoTributado; } else { crmProdFatura.AddNullProperty("ValorIPINaoTributado"); } if (item.ValorIPIOutras.HasValue) { crmProdFatura.ValorIPIOutras = item.ValorIPIOutras; } else { crmProdFatura.AddNullProperty("ValorIPIOutras"); } if (item.PrecoConsumidor.HasValue) { crmProdFatura.PrecoConsumidor = item.PrecoConsumidor; } else { crmProdFatura.AddNullProperty("PrecoConsumidor"); } if (item.QuantidadeCancelada.HasValue) { crmProdFatura.QtdeCancelada = item.QuantidadeCancelada; } else { crmProdFatura.AddNullProperty("QtdeCancelada"); } if (item.QuantidadePendente.HasValue) { crmProdFatura.QtdePedidoPendente = item.QuantidadePendente; } else { crmProdFatura.AddNullProperty("QtdePedidoPendente"); } if (item.DataEntrega.HasValue) { crmProdFatura.Entregueem = item.DataEntrega; } else { crmProdFatura.AddNullProperty("Entregueem"); } if (item.CondicaoFrete.HasValue) { crmProdFatura.CondicoesFrete = item.CondicaoFrete; } else { crmProdFatura.AddNullProperty("CondicoesFrete"); } if (item.CalcularRebate.HasValue) { //TODO: Registrar valor de CalcularRebate no Item da nota } if (item.ValorOriginal.HasValue) { crmProdFatura.ValorOriginal = item.ValorOriginal; } else { crmProdFatura.AddNullProperty("ValorOriginal"); } crmProdFatura.TotalImpostos = item.ValorTotalImposto; crmProdFatura.DescontoManual = item.ValorDescontoManual; crmProdFatura.Quantidade = item.Quantidade; crmProdFatura.Remessa = item.RetiraNoLocal; if (item.QuantidadeEntregue.HasValue) { crmProdFatura.QtdeEntregue = item.QuantidadeEntregue; } else { crmProdFatura.AddNullProperty("QtdeEntregue"); } if (item.NumeroSequencia.HasValue) { crmProdFatura.NumeroSequencia = item.NumeroSequencia; } else { crmProdFatura.AddNullProperty("NumeroSequencia"); } //Service Unidade Negócio UnidadeNegocio ObjUnidadeNegocio = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(item.CodigoUnidadeNegocio); if (ObjUnidadeNegocio != null) { crmProdFatura.UnidadeNegocio = new Lookup((Guid)ObjUnidadeNegocio.ID, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador da Unidade de Negócio não encontrado."; return; } #region Representante crmProdFatura.IntegradoRepresentanteComErro = false; crmProdFatura.RepresentanteOriginal = item.CodigoRepresentante.ToString(); Contato ObjRepresentante = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline) .BuscaContatoPorCodigoRepresentante(item.CodigoRepresentante.ToString()); if (ObjRepresentante != null) { crmProdFatura.Representante = new Lookup(ObjRepresentante.ID.Value, ""); } else { crmProdFatura.IntegradoRepresentanteComErro = true; crmProdFatura.Representante = new Lookup(ObterRepresentatePadrao(), string.Empty); } #endregion //Service Moeda Moeda ObjMoeda = new Intelbras.CRM2013.Domain.Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorCodigo(xml.Moeda); if (ObjMoeda != null) { crmProdFatura.Moeda = new Lookup((Guid)ObjMoeda.ID, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador da Moeda não encontrado."; return; } crmProdFatura.RazaoStatus = 1; string acaoItemFatura = item.Acao; if (!string.IsNullOrEmpty(item.EnderecoEntrega.NomeEndereco)) { crmProdFatura.NomeEntrega = item.EnderecoEntrega.NomeEndereco; } else { crmProdFatura.AddNullProperty("NomeEntrega"); } crmProdFatura.CEPEntrega = item.EnderecoEntrega.CEP; crmProdFatura.Rua1Entrega = item.EnderecoEntrega.Logradouro; if (!string.IsNullOrEmpty(item.EnderecoEntrega.Complemento)) { crmProdFatura.Rua2Entrega = item.EnderecoEntrega.Complemento; } else { crmProdFatura.AddNullProperty("Rua2Entrega"); } crmProdFatura.Rua3Entrega = item.EnderecoEntrega.Bairro; crmProdFatura.CidadeEntrega = item.EnderecoEntrega.NomeCidade; if (!String.IsNullOrEmpty(item.EnderecoEntrega.Estado)) { crmProdFatura.EstadoEntrega = item.EnderecoEntrega.Estado; } if (!String.IsNullOrEmpty(item.EnderecoEntrega.Pais)) { crmProdFatura.PaisEntrega = item.EnderecoEntrega.Pais; } if (!String.IsNullOrEmpty(item.EnderecoEntrega.Telefone)) { crmProdFatura.TelefoneEntrega = item.EnderecoEntrega.Telefone; } else { crmProdFatura.AddNullProperty("TelefoneEntrega"); } if (!String.IsNullOrEmpty(item.EnderecoEntrega.Fax)) { crmProdFatura.FAXEntrega = item.EnderecoEntrega.Fax; } else { crmProdFatura.AddNullProperty("FAXEntrega"); } if (acaoItemFatura == "A" || acaoItemFatura == "I") { lstProdutoFaturaUpdate.Add(crmProdFatura); } if (acaoItemFatura == "E") { lstProdutoFaturaDelete.Add(crmProdFatura); } } }