Exemplo n.º 1
0
        public static string Gravar(TRegistro_CadProduto val, TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_CadProduto qtb_produto  = new TCD_CadProduto();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_produto.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_produto.Banco_Dados = banco;
                }
                TList_CFG cfg = TCN_CFG.Buscar(string.Empty, qtb_produto.Banco_Dados);


                val.CD_Produto = CamadaDados.TDataQuery.getPubVariavel(qtb_produto.Grava(val), "@P_CD_PRODUTO");

                //monta objeto
                CamadaDados.Estoque.TRegistro_LanPrecoItem preco = new CamadaDados.Estoque.TRegistro_LanPrecoItem();
                preco.CD_Empresa     = cfg[0].cd_empresa;
                preco.CD_TabelaPreco = cfg[0].cd_tabelapreco;
                preco.CD_Produto     = val.CD_Produto;
                preco.VL_PrecoVenda  = val.Vl_precovenda;
                CamadaDados.Estoque.TList_LanPrecoItem lista = new CamadaDados.Estoque.TList_LanPrecoItem();
                lista.Add(preco);

                TCN_LanPrecoItem.Grava_LanPrecoItem(lista, qtb_produto.Banco_Dados);

                if (st_transacao)
                {
                    qtb_produto.Banco_Dados.Commit_Tran();
                }
                return(val.CD_Produto);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_produto.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar produto: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_produto.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 2
0
 private void afterGrava()
 {
     if (cbEmpresa.SelectedItem == null)
     {
         MessageBox.Show("Obrigatório selecionar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         cbEmpresa.Focus();
         return;
     }
     if (cbTabPreco.SelectedItem == null)
     {
         MessageBox.Show("Obrigatório selecionar tabela preço.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         cbTabPreco.Focus();
         return;
     }
     if ((bsItens.List as CamadaDados.Estoque.TList_ProdutoPreco).Count(p => p.St_processar) > 0)
     {
         if (string.IsNullOrWhiteSpace(dt_inivigencia.Text.SoNumero()))
         {
             MessageBox.Show("Obrigatório informar data inicial da vigência do preço.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             dt_inivigencia.Focus();
             return;
         }
         if ((bsItens.List as CamadaDados.Estoque.TList_ProdutoPreco).Count(p => p.St_processar) > 1)
         {
             if (pc_ajuste.Value.Equals(decimal.Zero) &&
                 pc_markup.Value.Equals(decimal.Zero))
             {
                 MessageBox.Show("Obrigatorio informar percentual de ajuste ou percentual markup para processar itens.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 pc_ajuste.Focus();
                 return;
             }
             bool st = (bsItens.List as CamadaDados.Estoque.TList_ProdutoPreco).Exists(p => p.Dt_ultimavigencia.HasValue ? p.Dt_ultimavigencia.Value >= Convert.ToDateTime(dt_inivigencia.Text) : false);
             if (MessageBox.Show((st ? "Existe item com data inicial de vigência maior que a data inicial que esta sendo lançado, os mesmos não serão alterados.\r\n" : string.Empty) +
                                 "Confirma processamento dos itens?", "Pergunta",
                                 MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
                 == DialogResult.Yes)
             {
                 //Montar lista com os itens para atualizar preco
                 CamadaDados.Estoque.TList_LanPrecoItem lPreco = new CamadaDados.Estoque.TList_LanPrecoItem();
                 (bsItens.List as CamadaDados.Estoque.TList_ProdutoPreco).Where(p => p.St_processar &&
                                                                                (p.Dt_ultimavigencia.HasValue ? p.Dt_ultimavigencia.Value < Convert.ToDateTime(dt_inivigencia.Text) : true)).ToList().ForEach(p =>
                 {
                     if (st_percultcompra.Checked ? p.Vl_ultimacompra > decimal.Zero : p.Vl_ultimopreco > 0)
                     {
                         lPreco.Add(new CamadaDados.Estoque.TRegistro_LanPrecoItem()
                         {
                             CD_Empresa     = cbEmpresa.SelectedValue.ToString(),
                             CD_TabelaPreco = cbTabPreco.SelectedValue.ToString(),
                             CD_Produto     = p.Cd_produto,
                             Dt_preco       = Convert.ToDateTime(dt_inivigencia.Text),
                             Vl_NovoPreco   = pc_ajuste.Value > decimal.Zero ?
                                              Math.Round(st_percultcompra.Checked ? p.Vl_ultimacompra : p.Vl_ultimopreco, 3) +
                                              Math.Round(((Math.Round(st_percultcompra.Checked ? p.Vl_ultimacompra : p.Vl_ultimopreco, 3) * pc_ajuste.Value) / 100), 3) :
                                              tp_markup.Text.Trim().ToUpper().Equals("D") ?
                                              (st_percultcompra.Checked ? p.Vl_ultimacompra : p.Vl_custoreal) / pc_markup.Value :
                                              (st_percultcompra.Checked ? p.Vl_ultimacompra : p.Vl_custoreal) * pc_markup.Value
                         });
                     }
                 });
                 CamadaNegocio.Estoque.Cadastros.TCN_LanPrecoItem.Grava_LanPrecoItem(lPreco, null);
                 pc_ajuste.Value = pc_ajuste.Minimum;
                 BuscarProdutos();
             }
         }
         else
         {
             if (vl_precovenda.Value.Equals(decimal.Zero) &&
                 pc_ajuste.Value.Equals(decimal.Zero) &&
                 pc_markup.Value.Equals(decimal.Zero))
             {
                 MessageBox.Show("Obrigatorio informar valor ou indice para gravar preço venda.",
                                 "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 vl_precovenda.Focus();
                 return;
             }
             if (vl_precovenda.Value.Equals(decimal.Zero) &&
                 ((pc_ajuste.Value != decimal.Zero) || (pc_markup.Value != decimal.Zero)))
             {
                 if ((bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Vl_custoreal.Equals(decimal.Zero))
                 {
                     MessageBox.Show("Permitido gravar preço utilizando indice somente se produto tiver valor de estoque.",
                                     "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     return;
                 }
             }
             if ((bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Dt_ultimavigencia.HasValue ?
                 (bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Dt_ultimavigencia.Value >= Convert.ToDateTime(dt_inivigencia.Text) : false)
             {
                 MessageBox.Show("Item possui preço com vigência inicial maior que a data de vigência atual.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
             try
             {
                 CamadaNegocio.Estoque.Cadastros.TCN_LanPrecoItem.Grava_LanPrecoItem(
                     new CamadaDados.Estoque.TRegistro_LanPrecoItem()
                 {
                     CD_Empresa     = cbEmpresa.SelectedValue.ToString(),
                     CD_TabelaPreco = cbTabPreco.SelectedValue.ToString(),
                     CD_Produto     = (bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Cd_produto,
                     Dt_preco       = Convert.ToDateTime(dt_inivigencia.Text),
                     Vl_NovoPreco   = vl_precovenda.Value > decimal.Zero ?
                                      vl_precovenda.Value :
                                      pc_ajuste.Value > 0 ?
                                      st_percultcompra.Checked ?
                                      Math.Round(vl_ultimacompra.Value > decimal.Zero ? vl_ultimacompra.Value : vl_custo.Value, 3) +
                                      Math.Round(((Math.Round(vl_ultimacompra.Value > decimal.Zero ? vl_ultimacompra.Value : vl_custo.Value, 3) * pc_ajuste.Value) / 100), 3) :
                                      Math.Round((bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Vl_ultimopreco, 3) +
                                      Math.Round(((Math.Round((bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Vl_ultimopreco, 3) * pc_ajuste.Value) / 100), 3) :
                                      tp_markup.Text.Trim().ToUpper().Equals("D") ? vl_custo.Value / pc_markup.Value :
                                      vl_custo.Value * pc_markup.Value
                 }, null);
                 if ((new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto((bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Cd_produto)))
                 {
                     if (MessageBox.Show("Deseja atualizar os preços de venda dos itens da ficha técnica?",
                                         "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                     {
                         using (Cadastros.TFAlterarPrecoFichaTec fAltera = new Cadastros.TFAlterarPrecoFichaTec())
                         {
                             fAltera.pCd_tabelapreco = cbTabPreco.SelectedValue.ToString();
                             fAltera.pCd_produto     = (bsItens.Current as CamadaDados.Estoque.TRegistro_ProdutoPreco).Cd_produto;
                             fAltera.St_atualizar    = true;
                             if (fAltera.ShowDialog() == DialogResult.OK)
                             {
                                 if (fAltera.lFicha != null)
                                 {
                                     try
                                     {
                                         CamadaNegocio.Estoque.Cadastros.TCN_PrecoItemFicha.GravarLista(fAltera.lFicha, null);
                                         MessageBox.Show("Itens alterados com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                     }
                                     catch (Exception ex)
                                     { MessageBox.Show(ex.Message.Trim(), "erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                 }
                             }
                         }
                     }
                 }
                 BuscarProdutos();
                 vl_precovenda.Value = vl_precovenda.Minimum;
                 pc_ajuste.Value     = pc_ajuste.Minimum;
                 pc_markup.Value     = pc_markup.Minimum;
                 vl_precovenda.Focus();
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }