Beispiel #1
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            usuarioIntegracao = usuario;
            var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0034>(mensagem));

            if (!resultadoPersistencia.Sucesso)
            {
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0034R1>(numeroMensagem, retorno));
            }

            objeto = new Servicos.FamiliaMaterialService(this.Organizacao, this.IsOffline).Persistir(objeto);

            if (objeto == null)
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Erro de persistência!";
            }
            else
            {
                resultadoPersistencia.Sucesso  = true;
                resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso";
            }
            retorno.Add("Resultado", resultadoPersistencia);

            return(CriarMensagemRetorno <Pollux.MSG0034R1>(numeroMensagem, retorno));
        }
Beispiel #2
0
        private Intelbras.Message.Helper.MSG0088 DefinirPropriedades(Product crm)
        {
            Intelbras.Message.Helper.MSG0088 xml = new Pollux.MSG0088(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40));

            if (crm.Codigo != null)
            {
                xml.CodigoProduto = crm.Codigo;
            }

            if (crm.DataUltAlteracaoPVC.HasValue)
            {
                xml.DataAlteracaoPrecoVenda = crm.DataUltAlteracaoPVC.Value.ToLocalTime();
            }

            if (crm.Showroom.HasValue)
            {
                xml.ShowRoom = crm.Showroom;
            }

            if (crm.Nome != null)
            {
                xml.Nome = crm.Nome;
            }

            if (crm.Descricao != null)
            {
                xml.Descricao = crm.Descricao;
            }

            if (crm.PesoEstoque != null)
            {
                xml.PesoEstoque = crm.PesoEstoque;
            }

            xml.Situacao = (crm.Status.HasValue ? crm.Status.Value : (int)Enum.Produto.StateCode.ativo);

            if (crm.TipoProdutoid.HasValue)
            {
                xml.TipoProduto = crm.TipoProdutoid.Value;
            }

            if (crm.GrupoEstoque != null)
            {
                GrupoEstoque grpEstoq = new Servicos.GrupoEstoqueService(this.Organizacao, this.IsOffline).ObterPor(crm.GrupoEstoque.Id);
                if (grpEstoq != null && grpEstoq.Codigo.HasValue)
                {
                    xml.GrupoEstoque = grpEstoq.Codigo.Value;
                }
            }

            if (crm.UnidadeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    xml.UnidadeNegocio     = unidadeNegocio.ChaveIntegracao;
                    xml.NomeUnidadeNegocio = unidadeNegocio.Nome;
                }
            }

            if (crm.Segmento != null)
            {
                Model.Segmento segmento = new Servicos.SegmentoService(this.Organizacao, this.IsOffline).ObterPor(crm.Segmento.Id);
                if (segmento != null && !String.IsNullOrEmpty(segmento.CodigoSegmento))
                {
                    xml.Segmento     = segmento.CodigoSegmento;
                    xml.NomeSegmento = segmento.Nome;
                }
            }

            if (crm.FamiliaProduto != null)
            {
                Model.FamiliaProduto familiaProduto = new Servicos.FamiliaProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaProduto.Id);
                if (familiaProduto != null && !String.IsNullOrEmpty(familiaProduto.Codigo))
                {
                    xml.Familia = familiaProduto.Codigo;
                }
            }

            if (crm.SubfamiliaProduto != null)
            {
                SubfamiliaProduto subFamiliaProduto = new Servicos.SubFamiliaProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.SubfamiliaProduto.Id);
                if (subFamiliaProduto != null && !String.IsNullOrEmpty(subFamiliaProduto.Codigo))
                {
                    xml.SubFamilia = subFamiliaProduto.Codigo;
                }
            }


            if (crm.Origem != null)
            {
                Origem Origem = new Servicos.OrigemService(this.Organizacao, this.IsOffline).ObterPor(crm.Origem.Id);
                if (Origem != null && !String.IsNullOrEmpty(Origem.Codigo))
                {
                    xml.Origem = Origem.Codigo;
                }
            }


            if (crm.UnidadePadrao != null)
            {
                Unidade unidade = new Servicos.UnidadeService(this.Organizacao, this.IsOffline).BuscaPor(crm.UnidadePadrao.Id);
                if (unidade != null && !String.IsNullOrEmpty(unidade.Nome))
                {
                    xml.UnidadeMedida = unidade.Nome;
                }
            }

            if (crm.GrupoUnidades != null)
            {
                GrupoUnidade grupoUnidade = new Servicos.GrupoUnidadeMedidaService(this.Organizacao, this.IsOffline).ObterPor(crm.GrupoUnidades.Id);
                if (grupoUnidade != null)
                {
                    xml.GrupoUnidadeMedida = grupoUnidade.Nome;
                }
            }

            if (crm.FamiliaComercial != null)
            {
                FamiliaComercial familiaComercial = new Servicos.FamiliaComercialService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaComercial.Id);
                if (familiaComercial != null && !String.IsNullOrEmpty(familiaComercial.Codigo))
                {
                    xml.FamiliaComercial = familiaComercial.Codigo;
                }
            }

            if (crm.QuantidadeMultiplaProduto.HasValue)
            {
                xml.QuantidadeMultipla = crm.QuantidadeMultiplaProduto.Value;
            }

            if (crm.NaturezaProduto != null)
            {
                xml.NaturezaProduto = crm.NaturezaProduto.Value;
            }


            if (crm.FamiliaMaterial != null)
            {
                FamiliaMaterial familiaMaterial = new Servicos.FamiliaMaterialService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaMaterial.Id);
                if (familiaMaterial != null && !String.IsNullOrEmpty(familiaMaterial.Codigo))
                {
                    xml.FamiliaMaterial = familiaMaterial.Codigo;
                }
            }

            if (crm.FamiliaMaterial != null)
            {
                FamiliaMaterial familiaMaterial = new Servicos.FamiliaMaterialService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaMaterial.Id);
                if (familiaMaterial != null && !String.IsNullOrEmpty(familiaMaterial.Codigo))
                {
                    xml.FamiliaMaterial = familiaMaterial.Codigo;
                }
            }


            if (crm.ListaPrecoPadrao != null)
            {
                xml.ListaPreco = crm.ListaPrecoPadrao.Name;
            }

            if (crm.Moeda != null)
            {
                xml.Moeda = crm.Moeda.Name;
            }

            if (crm.QuantidadeDecimal.HasValue)
            {
                xml.QuantidadeDecimal = crm.QuantidadeDecimal.Value;
            }

            if (crm.ExigeTreinamento.HasValue)
            {
                xml.ExigeTreinamento = crm.ExigeTreinamento.Value;
            }

            if (crm.RebatePosVendaAtivado.HasValue)
            {
                xml.RebateAtivado = crm.RebatePosVendaAtivado.Value;
            }

            if (crm.NomeFornecedor != null)
            {
                xml.Fabricante = crm.NomeFornecedor;
            }

            if (crm.NumeroPecaFabricante != null)
            {
                xml.NumeroPecaFabricante = crm.NumeroPecaFabricante;
            }

            if (crm.VolumeEstoque != null)
            {
                xml.VolumeEstoque = crm.VolumeEstoque;
            }

            if (crm.Complemento != null)
            {
                xml.ComplementoProduto = crm.Complemento;
            }

            if (crm.Url != null)
            {
                xml.URL = crm.Url;
            }

            if (crm.QuantidadeDisponivel.HasValue)
            {
                xml.QuantidadeDisponivel = crm.QuantidadeDisponivel.Value;
            }

            if (crm.Fornecedor != null)
            {
                xml.Fornecedor = crm.Fornecedor;
            }

            if (crm.ConsideraOrcamentoMeta.HasValue)
            {
                xml.ConsiderarOrcamentoMeta = crm.ConsideraOrcamentoMeta.Value;
            }

            if (crm.FaturamentoOutroProduto.HasValue)
            {
                xml.FaturamentoOutroProduto = crm.FaturamentoOutroProduto.Value;
            }

            xml.TemMensagem = crm.TemMensagem;
            if (crm.TemMensagem == true)
            {
                if (crm.Mensagem != null && crm.Mensagem != String.Empty)
                {
                    xml.DescricaoMensagem = crm.Mensagem;
                }
            }
            else
            {
                xml.TemMensagem = false;
            }

            xml.AliquotaIPI = crm.PercentualIPI;

            xml.EAN = crm.EAN;
            xml.NCM = crm.NCM;

            xml.CustoPadrao             = (crm.CustoAtual.HasValue) ? crm.CustoAtual.Value : 0;
            xml.CustoAtual              = crm.CustoAtual;
            xml.BloquearComercializacao = crm.BloquearComercializacao;
            xml.ComercializadoForaKit   = crm.ComercializadoForaKit;
            xml.PoliticaPosVendas       = crm.PoliticaPosVenda;

            if (crm.PoliticaPosVenda != null)
            {
                xml.DescricaoPoliticaPosVendas = DescricaoPoliticaPosVenda(crm.PoliticaPosVenda.Value);
            }

            xml.TempoGarantia                = crm.TempoGarantia;
            xml.EKit                         = crm.EKit;
            xml.PossuiSubstituto             = crm.PossuiSubstituto;
            xml.PassivelSolicitacaoBeneficio = crm.PermitirEmSolBenef;

            xml.Backup           = crm.BackupDistribuidor;
            xml.BackupRevendas   = crm.BackupRevenda;
            xml.ShowRoomRevendas = crm.ShowroomRevenda;


            if (!String.IsNullOrEmpty(crm.DepositoPadrao))
            {
                xml.DepositoPadrao = crm.DepositoPadrao;
            }

            if (crm.CodigoTipoDespesa.HasValue)
            {
                xml.CodigoTipoDespesa = crm.CodigoTipoDespesa;
            }

            if (crm.DestaqueNCM.HasValue)
            {
                xml.DestaqueNCM = crm.DestaqueNCM;
            }

            if (!String.IsNullOrEmpty(crm.NVE))
            {
                xml.NVE = crm.NVE;
            }

            if (!String.IsNullOrEmpty(crm.CodigoUnidadeFamilia))
            {
                xml.CodigoUnidadeFamilia = crm.CodigoUnidadeFamilia;
            }

            if (crm.ProdutoSubstituto != null)
            {
                var produtoSubstituto = RepositoryService.Produto.Retrieve(crm.ProdutoSubstituto.Id, "productnumber");

                if (produtoSubstituto == null)
                {
                    throw new ArgumentException("(CRM) Produto substituto não encontrado!");
                }

                xml.CodigoProdutoSubstituto = produtoSubstituto.Codigo;
            }

            xml.TipoItem = crm.TipoItem;

            if (crm.LinhaProduto != null)
            {
                LinhaComercial linhaProduto = (new CRM2013.Domain.Servicos.RepositoryService()).LinhaComercial.Retrieve(crm.LinhaProduto.Id);
                if (linhaProduto != null)
                {
                    xml.LinhaProduto     = linhaProduto.Id.ToString();
                    xml.NomeLinhaProduto = linhaProduto.Nome;
                }
            }

            return(xml);
        }