예제 #1
0
파일: MSG0101.cs 프로젝트: ertprs/crm_fonte
        public List <PrecoProduto> DefinirPropriedadesLista(Intelbras.Message.Helper.MSG0101 xml)
        {
            List <PrecoProduto> lstPrecoProduto = new List <PrecoProduto>();

            List <String> lstCodProd = new List <String>();

            foreach (var item in xml.ProdutosItens)
            {
                lstCodProd.Add(item.CodigoProduto);
            }

            List <Product> lstProduto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ListarProdutosPorCodigo(lstCodProd);

            Guid contaProduto = new Guid();

            if (!String.IsNullOrEmpty(xml.Conta) && xml.Conta.Length == 36)
            {
                contaProduto = new Guid(xml.Conta);
            }
            else if (!String.IsNullOrEmpty(xml.Conta) && xml.Conta.Length < 36)
            {
                Conta conta = new Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaContaPorCpfCnpj(xml.Conta);

                if (conta != null)
                {
                    contaProduto = conta.ID.Value;
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Canal não encontrado.";
                    lstPrecoProduto = null;
                    return(lstPrecoProduto);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador do Canal não enviado.";
                lstPrecoProduto = null;
                return(lstPrecoProduto);
            }

            foreach (var item in xml.ProdutosItens)
            {
                PrecoProduto precoProduto = new PrecoProduto(this.Organizacao, this.IsOffline);

                if (!String.IsNullOrEmpty(item.CodigoProduto))
                {
                    precoProduto.CodigoProduto = item.CodigoProduto;

                    Product produto = new Product(this.Organizacao, this.IsOffline);
                    produto = lstProduto.Where(x => x.Codigo == item.CodigoProduto).FirstOrDefault <Product>();
                    if (produto != null)
                    {
                        precoProduto.ProdutoId = produto.ID.Value;
                        precoProduto.Produto   = produto;

                        if (item.TipoPortfolio == (int)Domain.Enum.Portfolio.Tipo.CrossSelling)
                        {
                            precoProduto.TipoCrossSelling = true;
                        }
                        else
                        {
                            precoProduto.TipoCrossSelling = false;
                        }

                        precoProduto.codEstabelecimento = item.CodigoEstabelecimento.Value;
                        precoProduto.codUnidade         = item.CodigoUnidadeNegocio;
                        precoProduto.codFamiliaComl     = item.CodigoFamiliaComercial;
                        precoProduto.tipoPortofolio     = item.TipoPortfolio.Value;
                    }
                    else
                    {
                        precoProduto.Produto      = null;
                        precoProduto.ProdutoId    = Guid.Empty;
                        precoProduto.ValorProduto = 0;
                        precoProduto.MensagemErro = "Produto não cadastrado no Crm.";
                    }
                }
                else
                {
                    precoProduto.Produto      = null;
                    precoProduto.ProdutoId    = Guid.Empty;
                    precoProduto.ValorProduto = 0;
                    precoProduto.MensagemErro = "Identificador do Produto não enviado.";
                }

                if (!String.IsNullOrEmpty(item.Moeda))
                {
                    precoProduto.Moeda = item.Moeda;
                }
                else
                {
                    precoProduto.Produto      = null;
                    precoProduto.ProdutoId    = Guid.Empty;
                    precoProduto.ValorProduto = 0;
                    precoProduto.MensagemErro = "Moeda não enviada.";
                }

                precoProduto.ContaId = contaProduto;
                decimal qtd = 0;

                if (Decimal.TryParse(item.Quantidade.ToString(), out qtd))
                {
                    try
                    {
                        precoProduto.Quantidade = (int)qtd;
                    }
                    catch
                    {
                        precoProduto.Produto      = null;
                        precoProduto.ProdutoId    = Guid.Empty;
                        precoProduto.ValorProduto = 0;
                        precoProduto.MensagemErro = "Produto com 'Quantidade' fora do padrão.";
                    }
                }
                else
                {
                    precoProduto.Produto      = null;
                    precoProduto.ProdutoId    = Guid.Empty;
                    precoProduto.ValorProduto = 0;
                    precoProduto.MensagemErro = "Produto com 'Quantidade' fora do padrão ou não enviado.";
                }
                precoProduto.ValorProduto = 0;
                lstPrecoProduto.Add(precoProduto);
            }
            return(lstPrecoProduto);
        }
예제 #2
0
파일: MSG0101.cs 프로젝트: ertprs/crm_fonte
 public PrecoProduto DefinirPropriedades(Intelbras.Message.Helper.MSG0101 xml)
 {
     throw new NotImplementedException();
 }