private TabelaPrecoB2B SaveItem(TabelaPrecoB2B tabelaPreco, ItemTabelaPrecoB2B item)
        {
            // Não foi passado nenhum item... não é necessário persistir
            if (String.IsNullOrEmpty(item.CodigoItemPreco))
            {
                return(tabelaPreco);
            }

            // find no item
            ItemTabelaPrecoB2B itemAtual = RepositoryService.ItemTabelaPrecoB2B.ObterPor(tabelaPreco.ID, item.CodigoItemPreco);

            // Novo item
            if (itemAtual == null)
            {
                item.TabelaPreco = new Lookup(tabelaPreco.ID.Value, "");
                RepositoryService.ItemTabelaPrecoB2B.Create(item);

                return(tabelaPreco);
            }

            // Atualiza item
            item.ID = itemAtual.ID;

            RepositoryService.ItemTabelaPrecoB2B.Update(item);
            if (item.Status != null && !itemAtual.Status.Equals(item.Status))
            {
                MudarStatusItem(item.ID.Value, item.Status.Value);
            }

            return(tabelaPreco);
        }
        public TabelaPrecoB2B Persistir(TabelaPrecoB2B tabelaPreco, ItemTabelaPrecoB2B item)
        {
            TabelaPrecoB2B tabelaPrecoAtual = RepositoryService.TabelaPrecoB2B.ObterPor(tabelaPreco.CodigoTabelaPrecoEMS);

            if (tabelaPrecoAtual == null)
            {
                tabelaPreco.ID = RepositoryService.TabelaPrecoB2B.Create(tabelaPreco);
                return(this.SaveItem(tabelaPreco, item));
            }

            tabelaPreco.ID = tabelaPrecoAtual.ID;

            RepositoryService.TabelaPrecoB2B.Update(tabelaPreco);
            if (tabelaPreco.Status != null && !tabelaPrecoAtual.Status.Equals(tabelaPreco.Status))
            {
                MudarStatus(tabelaPreco.ID.Value, tabelaPreco.Status.Value);
            }

            return(this.SaveItem(tabelaPreco, item));
        }
Exemple #3
0
        public ItemTabelaPrecoB2B DefinirPropriedadesItem(Pollux.MSG0195 xml)
        {
            // Propriedade do item da tabela
            var crm = new ItemTabelaPrecoB2B(this.Organizacao, this.IsOffline);

            #region Propriedades Crm->Xml
            if (String.IsNullOrEmpty(xml.CodigoProduto))
            {
                return(crm);
            }

            if (!String.IsNullOrEmpty(xml.CodigoProduto))
            {
                Product produto = new ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(xml.CodigoProduto);
                if (produto == null)
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "(CRM) Não foi possível recuperar o produto informado.";
                    return(crm);
                }
                crm.Produto = new Lookup(produto.ID.Value, "");
            }

            if (!String.IsNullOrEmpty(xml.CodigoItemPreco))
            {
                crm.CodigoItemPreco = xml.CodigoItemPreco;
            }
            else
            {
                crm.AddNullProperty("CodigoItemPreco");
            }

            if (xml.PMA.HasValue)
            {
                crm.ValorPMA = xml.PMA;
            }

            if (xml.PMD.HasValue)
            {
                crm.ValorPMD = xml.PMD;
            }

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

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

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

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

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

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

            if (xml.SituacaoItem.HasValue)
            {
                crm.Status = xml.SituacaoItem;
            }
            #endregion

            return(crm);
        }