Beispiel #1
0
        public void inserirProduto(ProdutoPesquisa produto, int idPedido)
        {
            try
            {
                this.command = new MySqlCommand(INSERT_PRODUTO, this.conn);

                this.command.Parameters.Add(new MySqlParameter("@id_produto", produto.Id));
                this.command.Parameters.Add(new MySqlParameter("@id_pedido", idPedido));
                this.command.Parameters.Add(new MySqlParameter("@qtd", produto.Quantidade));
                this.command.Parameters.Add(new MySqlParameter("@obs", produto.Observacao));

                if (this.conn.State != System.Data.ConnectionState.Open)
                {
                    this.conn.Open();
                }

                this.command.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                ConnectDAO.CloseConnection(this.conn);
            }
        }
Beispiel #2
0
 private void InserirEntradaProduto(object sender, EventArgs e)
 {
     if (entradaProduto != null)
     {
         IEnumerable <ProdutoPesquisa> listaProdutosPesquisa = new List <ProdutoPesquisa>();
         if (!string.IsNullOrWhiteSpace(entradaProduto.CodigoBarra))
         {
             GerenciadorProduto.GetInstance().ObterPorCodigoBarraExato(entradaProduto.CodigoBarra);
         }
         if (listaProdutosPesquisa.Count() > 0)
         {
             ProdutoPesquisa _produto = listaProdutosPesquisa.ElementAtOrDefault(0);
             produtoBindingSource.Position = produtoBindingSource.List.IndexOf(new Produto()
             {
                 CodProduto = _produto.CodProduto
             });
         }
         else
         {
             btnNovo_Click(sender, e);
             Produto produto = (Produto)produtoBindingSource.Current;
             GerenciadorEntradaProduto.GetInstance(null).Atribuir(entradaProduto, produto);
             produtoBindingSource.ResumeBinding();
             nomeTextBox.Text = entradaProduto.NomeProduto;
             nomeTextBox.Focus();
             nomeTextBox.SelectAll();
         }
     }
 }
        private void FrmProdutoPesquisaPreco_Load(object sender, EventArgs e)
        {
            cmbBusca.SelectedIndex = 0;
            produtoBindingSource.SuspendBinding();

            if ((filtroNome != null) && (filtroNome.Length > 0))
            {
                textoAtual    = filtroNome;
                txtTexto.Text = filtroNome;
                txtTexto.Select(filtroNome.Length + 1, filtroNome.Length + 1);
                if (ExibirTodos)
                {
                    produtoBindingSource.DataSource = GerenciadorProduto.GetInstance().ObterPorNome(txtTexto.Text);
                }
                else
                {
                    produtoBindingSource.DataSource = GerenciadorProduto.GetInstance().ObterPorNomeExibiveis(txtTexto.Text);
                }
                if (produtoBindingSource.Count > 0)
                {
                    ProdutoPesquisa produto = (ProdutoPesquisa)produtoBindingSource.Current;
                    produtoLojaBindingSource.DataSource = GerenciadorProdutoLoja.GetInstance(null).ObterPorProduto(produto.CodProduto);
                    listaProdutoBuffer = (IEnumerable <ProdutoPesquisa>)produtoBindingSource.DataSource;
                }
            }
            else
            {
                textoAtual = "";
            }
        }
Beispiel #4
0
 public FrmProdutoPesquisaPreco(String nome, bool exibirTodos)
 {
     InitializeComponent();
     ProdutoPesquisa = null;
     filtroNome      = nome;
     ExibirTodos     = exibirTodos;
 }
Beispiel #5
0
 private void FrmProduto_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (!codProdutoTextBox.Text.Equals(""))
     {
         ProdutoPesquisa = (Produto)produtoBindingSource.Current;
     }
 }
 public FrmProdutoPesquisaCSON(bool exibirTodos)
 {
     InitializeComponent();
     ProdutoPesquisa = null;
     filtroNome      = null;
     ExibirTodos     = exibirTodos;
 }
Beispiel #7
0
        private void MudarSituacaoProduto(object sender, EventArgs e, ProdutoPesquisa produto)
        {
            SolicitacoesCompra solicitacao = new SolicitacoesCompra();

            solicitacao.CodProduto         = produto.CodProduto;
            solicitacao.CodSituacaoProduto = produto.CodSituacaoProduto;

            string mensagem = "";

            if (produto.CodSituacaoProduto == SituacaoProduto.COMPRA_NECESSARIA)
            {
                mensagem = "Confirma SOLICITAÇÃO DE COMPRA do produto?";
                solicitacao.DataSolicitacaoCompra = DateTime.Now;
            }
            else if (produto.CodSituacaoProduto == SituacaoProduto.COMPRA_URGENTE)
            {
                mensagem = "Confirma SOLICITAÇÃO DE COMPRA URGENTE do produto?";
                solicitacao.DataSolicitacaoCompra = DateTime.Now;
            }
            else
            {
                mensagem = "Confirma que o produto possui DISPONIBILIDADE no estoque?";
            }
            if (MessageBox.Show(mensagem, "Confirmar Mudança Situação", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                GerenciadorProduto.GetInstance().AtualizarSituacaoProduto(solicitacao);
                txtTexto_TextChanged(sender, e);
            }
        }
 private static IQueryable <Produto> Filtrar(ProdutoPesquisa pesquisa, IQueryable <Produto> query)
 {
     if (string.IsNullOrWhiteSpace(pesquisa.Descricao) == false)
     {
         query = query.Where(p => p.Descricao.StartsWith(pesquisa.Descricao));
     }
     return(query);
 }
Beispiel #9
0
 private void tb_produtoDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (tb_produtoDataGridView.RowCount > 0)
     {
         ProdutoPesquisa = (ProdutoPesquisa)produtoBindingSource.Current;
     }
     this.Close();
 }
Beispiel #10
0
 public FrmProdutoPesquisaPreco(bool exibirTodos)
 {
     InitializeComponent();
     ProdutoPesquisa    = null;
     filtroNome         = null;
     horarioUltimaBusca = DateTime.Now;
     ExibirTodos        = exibirTodos;
 }
        /// <summary>
        /// Atualiza os dados do produto
        /// </summary>
        /// <param name="produto"></param>
        public void Atualizar(Produto produto)
        {
            var          repProduto = new RepositorioGenerico <ProdutoE>();
            SaceEntities contexto   = (SaceEntities)repProduto.ObterContexto();

            if (produto.CodProduto == 1)
            {
                throw new NegocioException("Esse produto não pode ser alterado ou removido.");
            }
            else if (produto.Nome.Trim().Equals(""))
            {
                throw new NegocioException("O nome do produto não pode ficar em branco.");
            }
            else if (produto.QuantidadeEmbalagem <= 0)
            {
                throw new NegocioException("A quantidade de produtos na embalagem deve ser maior que zero.");
            }
            else if (!produto.CodigoBarra.Trim().Equals("") && !produto.CodigoBarra.Trim().Equals("SEM GTIN"))
            {
                ProdutoPesquisa produtoPesquisa = ObterPorCodigoBarraExato(produto.CodigoBarra).ElementAtOrDefault(0);
                if ((produtoPesquisa != null) && (produtoPesquisa.CodProduto != produto.CodProduto))
                {
                    throw new NegocioException("Já existe um produto cadastrado com esse código de barra. Favor verificar a possibilidade de ser o mesmo produto.");
                }
            }

            try
            {
                var query = from produtoSet in contexto.ProdutoSet
                            where produtoSet.codProduto == produto.CodProduto
                            select produtoSet;
                foreach (ProdutoE _produtoE in query)
                {
                    // Atualiza data da ultima atualizacao
                    if ((produto.PrecoVendaVarejo != _produtoE.precoVendaVarejo) || (produto.PrecoVendaAtacado != _produtoE.precoVendaAtacado) ||
                        (produto.PrecoRevenda != _produtoE.precoRevenda))
                    {
                        produto.UltimaDataAtualizacao  = DateTime.Now;
                        produto.DataUltimaMudancaPreco = DateTime.Now;
                    }

                    // Atualiza data para mudança da pasta e das etiquetas
                    if (produto.PrecoVendaVarejo != _produtoE.precoVendaVarejo)
                    {
                        produto.DataUltimaMudancaPreco = DateTime.Now;
                    }

                    // Atualiza dados do produto
                    Atribuir(produto, _produtoE);
                }
                repProduto.SaveChanges();
            }
            catch (Exception e)
            {
                throw new DadosException("Produto", e.Message, e);
            }
        }
Beispiel #12
0
 private void FrmProdutoPesquisaPreco_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Enter)
     {
         tb_produtoDataGridView_CellClick(sender, null);
     }
     if (e.KeyCode == Keys.Escape)
     {
         this.Close();
     }
     else if ((e.KeyCode == Keys.Down) && (txtTexto.Focused))
     {
         produtoBindingSource.MoveNext();
     }
     else if ((e.KeyCode == Keys.Up) && (txtTexto.Focused))
     {
         produtoBindingSource.MovePrevious();
     }
     else if ((e.KeyCode == Keys.PageDown) && (txtTexto.Focused))
     {
         produtoBindingSource.Position += 15;
     }
     else if ((e.KeyCode == Keys.PageUp) && (txtTexto.Focused))
     {
         produtoBindingSource.Position -= 15;
     }
     else if (e.KeyCode == Keys.F7)
     {
         if (tb_produtoDataGridView.RowCount > 0)
         {
             ProdutoPesquisa         _produto  = (ProdutoPesquisa)produtoBindingSource.Current;
             FrmProdutoAjusteEstoque frmAjuste = new FrmProdutoAjusteEstoque(_produto);
             frmAjuste.ShowDialog();
             frmAjuste.Dispose();
             produtoLojaBindingSource.DataSource = GerenciadorProdutoLoja.GetInstance(null).ObterPorProduto(_produto.CodProduto);
         }
     }
     //else if (e.KeyCode == Keys.F9)
     //{
     //    ProdutoPesquisa _produto = (ProdutoPesquisa)produtoBindingSource.Current;
     //    _produto.CodSituacaoProduto = SituacaoProduto.DISPONIVEL;
     //    MudarSituacaoProduto(sender, e, _produto);
     //}
     //else if (e.KeyCode == Keys.F10)
     //{
     //    ProdutoPesquisa _produto = (ProdutoPesquisa)produtoBindingSource.Current;
     //    _produto.CodSituacaoProduto = SituacaoProduto.COMPRA_NECESSARIA;
     //    MudarSituacaoProduto(sender, e, _produto);
     //}
     //else if (e.KeyCode == Keys.F11)
     //{
     //    ProdutoPesquisa _produto = (ProdutoPesquisa)produtoBindingSource.Current;
     //    _produto.CodSituacaoProduto = SituacaoProduto.COMPRA_URGENTE;
     //    MudarSituacaoProduto(sender, e, _produto);
     //}
 }
 private void btnEstatistica_Click(object sender, EventArgs e)
 {
     if (tb_produtoDataGridView.RowCount > 0)
     {
         ProdutoPesquisa       _produto       = (ProdutoPesquisa)produtoBindingSource.Current;
         FrmProdutoEstatistica frmEstatistica = new FrmProdutoEstatistica(_produto.CodProduto);
         frmEstatistica.ShowDialog();
         frmEstatistica.Dispose();
     }
 }
Beispiel #14
0
        /// <summary>
        /// Obtém a data do lote de produtos disponíveis mais antigo do estoque
        /// </summary>
        /// <param name="produto"></param>
        /// <returns></returns>
        public DateTime GetDataProdutoMaisAntigoEstoque(ProdutoPesquisa produto)
        {
            List <EntradaProduto> entradaProdutos = (List <EntradaProduto>)ObterDisponiveisPorEntrada(produto.CodProduto);

            if (entradaProdutos.Count > 0)
            {
                return(entradaProdutos[0].DataValidade);
            }
            return(DateTime.Now);
        }
Beispiel #15
0
 private void FrmPontaEstoque_Load(object sender, EventArgs e)
 {
     GerenciadorSeguranca.getInstance().verificaPermissao(this, Global.BANCOS, Principal.Autenticacao.CodUsuario);
     produtoBindingSource.DataSource = GerenciadorProduto.GetInstance().ObterTodos();
     produtoBindingSource.Position   = produtoBindingSource.List.IndexOf(new Produto()
     {
         CodProduto = ProdutoSelected.CodProduto
     });
     produtoBindingSource.ResumeBinding();
     ProdutoSelected = (ProdutoPesquisa)produtoBindingSource.Current;
     habilitaBotoes(true);
 }
Beispiel #16
0
        private void codProdutoComboBox_Leave(object sender, EventArgs e)
        {
            EstadoFormulario estado           = EstadoFormulario.INSERIR;
            ProdutoPesquisa  _produtoPesquisa = ComponentesLeave.ProdutoComboBox_Leave(sender, e, codProdutoComboBox, estado, produtoBindingSource, true);

            if (_produtoPesquisa != null)
            {
                preencherDadosEstatisticos(_produtoPesquisa);
                codProdutoComboBox.Focus();
                codProdutoComboBox.SelectAll();
            }
        }
Beispiel #17
0
        private ProdutoPesquisa populaProduto(MySqlDataReader dataReader)
        {
            ProdutoPesquisa produto = new ProdutoPesquisa();

            produto.Id         = int.Parse(dataReader["id"].ToString());
            produto.Nome       = dataReader["nome"].ToString();
            produto.Preco      = double.Parse(dataReader["preco"].ToString());
            produto.Quantidade = int.Parse(dataReader["quantidade"].ToString());
            produto.Observacao = dataReader["observacao"].ToString();

            return(produto);
        }
        private IQueryable <Produto> CriarQuery(ProdutoPesquisa pesquisa)
        {
            var query = _lojaContext
                        .Set <Produto>()
                        .AsNoTracking()
                        .AsQueryable();

            query = Filtrar(pesquisa, query);

            query = Ordenar(pesquisa, query);

            return(query);
        }
 private void solicitacoesCompraDataGridView_CurrentCellChanged(object sender, EventArgs e)
 {
     if (solicitacoesCompraBindingSource.Count > 0)
     {
         SolicitacoesCompra solicitacao = (SolicitacoesCompra)solicitacoesCompraBindingSource.Current;
         ProdutoPesquisa    produto     = GerenciadorProduto.GetInstance().Obter(new ProdutoPesquisa()
         {
             CodProduto = solicitacao.CodProduto
         });
         produtoBindingSource.DataSource = produto;
         preencherDadosEstatisticos(produto);
     }
 }
        private void btn_addProd_Click_1(object sender, EventArgs e)
        {
            try
            {
                int cont = 0;

                validaProduto();

                Produto         p       = (Produto)cb_produtos.SelectedItem;
                ProdutoPesquisa produto = new ProdutoPesquisa();

                produto.Id         = p.Id;
                produto.Nome       = p.Nome;
                produto.Preco      = p.Preco;
                produto.Quantidade = int.Parse(txt_quantidade.Value.ToString());
                produto.Observacao = txt_obs.Text;

                foreach (ProdutoPesquisa pr in this.produtos)
                {
                    if (pr.Id == produto.Id)
                    {
                        pr.Quantidade += produto.Quantidade;
                        cont           = 1;
                    }
                }

                if (cont != 1)
                {
                    this.produtos.Add(produto);
                }

                db_produtos.DataSource = null;
                db_produtos.DataSource = this.produtos;
                dataGridview(db_produtos);

                atualizaValorTotal();

                cb_produtos.SelectedItem = null;

                txt_quantidade.Value = 0;
                txt_obs.Clear();

                btn_addProd.Visible = false;
                btn_limpar.Visible  = false;
            }
            catch (Exception e1)
            {
                enviaMsg(e1.Message, "erro");
            }
        }
        public async Task <IActionResult> ProdutoSimples(ProdutoPesquisa pesquisa)
        {
            IQueryable <Produto> query = CriarQuery(pesquisa);

            var resultado = await query
                            .Select(p => new
            {
                p.Id,
                p.Descricao,
            })
                            .ToArrayAsync();

            return(Json(resultado));
        }
Beispiel #22
0
 private void btnBuscar_Click(object sender, EventArgs e)
 {
     Telas.FrmProdutoPesquisaPreco frmProdutoPesquisa = new Telas.FrmProdutoPesquisaPreco(true);
     frmProdutoPesquisa.ShowDialog();
     if (frmProdutoPesquisa.ProdutoPesquisa != null)
     {
         nomeProdutoTextBox.Text             = frmProdutoPesquisa.ProdutoPesquisa.Nome;
         codProdutoTextBox.Text              = frmProdutoPesquisa.ProdutoPesquisa.CodProduto.ToString();
         produtoLojaBindingSource.DataSource = GerenciadorProdutoLoja.GetInstance(null).ObterPorProduto(frmProdutoPesquisa.ProdutoPesquisa.CodProduto);
         ProdutoSelected = frmProdutoPesquisa.ProdutoPesquisa;
         habilitaBotoes(true);
     }
     frmProdutoPesquisa.Dispose();
     btnEditar.Focus();
 }
Beispiel #23
0
 private void codProdutoComboBox_Leave(object sender, EventArgs e)
 {
     if (estado.Equals(EstadoFormulario.INSERIR_DETALHE))
     {
         ProdutoPesquisa _produtoPesquisa = ComponentesLeave.ProdutoComboBox_Leave(sender, e, codProdutoComboBox, estado, produtoBindingSource, ref ultimoCodigoBarraLido, true);
         if (_produtoPesquisa != null)
         {
             quantidadeTextBox.Text = "0";
             codCSTComboBox_SelectedIndexChanged(sender, e);
             preencherDadosEstatisticos((Produto)produtoBindingSource.Current);
             atualizaValores();
         }
     }
     codEntradaTextBox_Leave(sender, e);
 }
        private static IQueryable <Produto> Ordenar(ProdutoPesquisa pesquisa, IQueryable <Produto> query)
        {
            switch (pesquisa.Ordenacao)
            {
            case ProdutoPequisaOrdenacaoEnum.Descricao:
                query = query.OrderBy(p => p.Descricao);
                break;

            case ProdutoPequisaOrdenacaoEnum.Valor:
                query = query.OrderBy(p => p.Valor);
                break;
            }

            return(query);
        }
Beispiel #25
0
        private void btnPontaEstoque_Click(object sender, EventArgs e)
        {
            ProdutoPesquisa _produtoPesquisa = (ProdutoPesquisa)produtoBindingSource.Current;
            FrmPontaEstoque frmPontaEstoque  = new FrmPontaEstoque(_produtoPesquisa);

            frmPontaEstoque.ShowDialog();
            frmPontaEstoque.Dispose();
            if (frmPontaEstoque.ProdutoSelected != null)
            {
                produtoBindingSource.Position = produtoBindingSource.List.IndexOf(new Produto()
                {
                    CodProduto = frmPontaEstoque.ProdutoSelected.CodProduto
                });
            }
            codProdutoTextBox_TextChanged(sender, e);
        }
        public async Task <IActionResult> ProdutoCompleto(ProdutoPesquisa pesquisa)
        {
            IQueryable <Produto> query = CriarQuery(pesquisa);

            var resultado = await query
                            .Select(p => new
            {
                p.Id,
                p.Descricao,
                p.QuantidadeNoEstoque,
                p.Valor
            })
                            .ToArrayAsync();

            return(Json(resultado));
        }
Beispiel #27
0
 private void btnBuscar_Click(object sender, EventArgs e)
 {
     Telas.FrmProdutoPesquisaPreco frmProdutoPesquisa = new Telas.FrmProdutoPesquisaPreco(true);
     frmProdutoPesquisa.ShowDialog();
     if (frmProdutoPesquisa.ProdutoPesquisa != null)
     {
         produtoBindingSource.Position = produtoBindingSource.List.IndexOf(new Produto()
         {
             CodProduto = frmProdutoPesquisa.ProdutoPesquisa.CodProduto
         });
         produtoBindingSource.ResumeBinding();
         ProdutoSelected = (ProdutoPesquisa)produtoBindingSource.Current;
         habilitaBotoes(true);
     }
     frmProdutoPesquisa.Dispose();
     btnNovo.Focus();
 }
Beispiel #28
0
        private void codProdutoComboBox_Leave(object sender, EventArgs e)
        {
            ProdutoPesquisa produtoPesquisa = ComponentesLeave.ProdutoComboBox_Leave(sender, e, codProdutoComboBox, EstadoFormulario.INSERIR_DETALHE, produtoBindingSource, true);
            EntradaProduto  entradaProduto  = (EntradaProduto)entradaProdutoBindingSource.Current;

            if (produtoPesquisa.CodProduto != 1)
            {
                entradaProduto.QuantidadeEmbalagem    = produtoPesquisa.QuantidadeEmbalagem;
                entradaProduto.QtdProdutoAtacado      = produtoPesquisa.QtdProdutoAtacado;
                entradaProduto.LucroPrecoRevenda      = produtoPesquisa.LucroPrecoRevenda;
                entradaProduto.LucroPrecoVendaAtacado = produtoPesquisa.LucroPrecoVendaAtacado;
                entradaProduto.LucroPrecoVendaVarejo  = produtoPesquisa.LucroPrecoVendaVarejo;
                entradaProduto.PrecoVendaVarejo       = produtoPesquisa.PrecoVendaVarejo;
                entradaProduto.PrecoVendaAtacado      = produtoPesquisa.PrecoVendaAtacado;
                entradaProduto.PrecoRevenda           = produtoPesquisa.PrecoRevenda;
                entradaProdutoBindingSource.ResumeBinding();
            }
        }
Beispiel #29
0
        private void codProdutoComboBox_Leave(object sender, EventArgs e)
        {
            if (estado.Equals(EstadoFormulario.INSERIR_DETALHE))
            {
                produtoPesquisa = ComponentesLeave.ProdutoComboBox_Leave(sender, e, codProdutoComboBox, estado, produtoBindingSource, true);

                EntradaProduto entradaProduto = (EntradaProduto)entradaProdutoBindingSource.Current;
                if (produtoPesquisa != null)
                {
                    data_validadeDateTimePicker.Enabled = produtoPesquisa.TemVencimento;
                    entradaProduto.NomeProduto          = produtoPesquisa.Nome;
                    if (produtoPesquisa.QuantidadeEmbalagem <= 0)
                    {
                        quantidadeEmbalagemTextBox.Text = "1";
                    }
                    if (entradaProduto.Quantidade <= 0)
                    {
                        quantidadeTextBox.Text = "1";
                    }
                    if (entradaProduto.ValorUnitario <= 0)
                    {
                        entradaProduto.ValorUnitario = produtoPesquisa.UltimoPrecoCompra;
                    }
                    if (!produtoPesquisa.EhTributacaoIntegral)
                    {
                        produtoPesquisa = (ProdutoPesquisa)produtoBindingSource.Current;
                        entrada         = (Entrada)entradaBindingSource.Current;
                        if (entrada.TotalProdutosST > 0)
                        {
                            produtoPesquisa.IcmsSubstituto = Math.Round(entrada.TotalSubstituicao / entrada.TotalProdutosST * 100, 2);
                        }
                        else
                        {
                            produtoPesquisa.IcmsSubstituto = 0;
                        }
                    }
                    cfopComboBox.SelectedIndex = 0;
                    codCSTComboBox_SelectedIndexChanged(sender, e);
                    codEntradaTextBox_Leave(sender, e);
                }
            }
        }
Beispiel #30
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ListaDto"/>.
        /// </summary>
        /// <param name="produto">A model de produtos.</param>
        internal ListaDto(ProdutoPesquisa produto)
        {
            this.Id = produto.IdProd;
            this.Nome = produto.Descricao;
            this.Codigo = produto.CodInterno;
            this.DescricaoBeneficiamentos = produto.DescricaoBeneficiamentos;
            this.DescricaoGrupo = produto.Grupo;
            this.DescricaoSubgrupo = produto.Subgrupo;
            this.Altura = produto.Altura;
            this.Largura = produto.Largura;
            this.Custos = new CustosDto()
            {
                Fornecedor = produto.Custofabbase,
                ComImpostos = produto.CustoCompra,
            };

            this.ValoresVenda = new ValoresVendaDto()
            {
                Atacado = produto.ValorAtacado,
                Balcao = produto.ValorBalcao,
                Obra = produto.ValorObra,
                Reposicao = produto.ValorReposicao,
            };

            this.Estoque = new EstoqueDto()
            {
                Reserva = (decimal)produto.Reserva,
                Liberacao = (decimal)produto.Liberacao,
                Real = (decimal)produto.QtdeEstoque,
                Disponivel = (decimal)produto.Disponivel,
                Unidade = Colosoft.Translator.Translate(produto.TipoCalculo, true).Format(),
            };

            this.UrlImagemProduto = Global.UI.Web.Process.ProdutoRepositorioImagens.Instance.ObtemUrl(produto.IdProd);
            this.Permissoes = new PermissoesDto
            {
                ExibirLinkReserva = produto.TipoCalculo != Data.Model.TipoCalculoGrupoProd.M2 && produto.TipoCalculo != Data.Model.TipoCalculoGrupoProd.M2Direto,
                ExibirLinkLiberacao = produto.TipoCalculo != Data.Model.TipoCalculoGrupoProd.M2 && produto.TipoCalculo != Data.Model.TipoCalculoGrupoProd.M2Direto,
                LogAlteracoes = LogAlteracaoDAO.Instance.TemRegistro(Data.Model.LogAlteracao.TabelaAlteracao.Produto, (uint)produto.IdProd, null),
            };
        }