예제 #1
0
 private void afterAltera()
 {
     if (bsRequisicao.Current != null)
     {
         if ((bsRequisicao.Current as CamadaDados.Compra.Lancamento.TRegistro_Requisicao).St_requisicao.Trim().ToUpper().Equals("AC"))
         {
             if ((new CamadaDados.Compra.TCD_CadUsuarioCompra().BuscarEscalar(
                      new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.cd_clifor_cmp",
                     vOperador = "=",
                     vVL_Busca = (!string.IsNullOrEmpty((bsRequisicao.Current as CamadaDados.Compra.Lancamento.TRegistro_Requisicao).Cd_clifor_requisitante) ?
                                  "'" + (bsRequisicao.Current as CamadaDados.Compra.Lancamento.TRegistro_Requisicao).Cd_clifor_requisitante.Trim() + "'" : "a.cd_clifor_cmp")
                 }
             }, "a.login").ToString() != Utils.Parametros.pubLogin) &&
                 (!CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR ALTERAR REQUISICAO OUTRO USUARIO", null)))
             {
                 MessageBox.Show("Usuário não tem permissão para alterar requisição de outro comprador.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
             using (TFRequisicao fReq = new TFRequisicao())
             {
                 fReq.rReq = (bsRequisicao.Current as CamadaDados.Compra.Lancamento.TRegistro_Requisicao);
                 if (fReq.ShowDialog() == DialogResult.OK)
                 {
                     if (fReq.rReq != null)
                     {
                         try
                         {
                             CamadaNegocio.Compra.Lancamento.TCN_Requisicao.AlterarRequisicao(fReq.rReq, null);
                             MessageBox.Show("Requisição alterada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                             afterBusca();
                         }
                         catch (Exception ex)
                         {
                             MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         }
                     }
                 }
             }
         }
         else
         {
             MessageBox.Show("Permitido alterar somente requisição com status <AGUARDANDO COTACAO>.",
                             "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
 }
예제 #2
0
 private void afterNovo()
 {
     using (TFRequisicao fReq = new TFRequisicao())
     {
         if (fReq.ShowDialog() == DialogResult.OK)
         {
             if (fReq.rReq != null)
             {
                 try
                 {
                     if (fReq.rReq.Tp_requisicao.Trim().ToUpper().Equals("E"))
                     {
                         //Verificar se existe alguma negociacao aprovada para este produto
                         CamadaDados.Compra.Lancamento.TList_NegociacaoItem lNegociacao =
                             new CamadaDados.Compra.Lancamento.TCD_NegociacaoItem().Select(
                                 new Utils.TpBusca[]
                         {
                             new Utils.TpBusca()
                             {
                                 vNM_Campo = "isnull(d.st_registro, 'A')",
                                 vOperador = "=",
                                 vVL_Busca = "'P'"
                             },
                             new Utils.TpBusca()
                             {
                                 vNM_Campo = "isnull(a.st_registro, 'A')",
                                 vOperador = "=",
                                 vVL_Busca = "'V'"
                             },
                             //Dentro do prazo de vigencia
                             new Utils.TpBusca()
                             {
                                 vNM_Campo = string.Empty,
                                 vOperador = string.Empty,
                                 vVL_Busca = "(case when a.NR_DiasVigencia = 0 then CONVERT(DATETIME,FLOOR(CONVERT(NUMERIC(30,10), GETDATE()))) else " +
                                             "CONVERT(DATETIME,FLOOR(CONVERT(NUMERIC(30,10), d.dt_fechnegociacao)) + a.NR_DiasVigencia) end " +
                                             ") >= " +
                                             "CONVERT(DATETIME,FLOOR(CONVERT(NUMERIC(30,10), GETDATE()))) "
                             },
                             new Utils.TpBusca()
                             {
                                 vNM_Campo = string.Empty,
                                 vOperador = string.Empty,
                                 vVL_Busca = "((d.cd_produto = '" + fReq.rReq.Cd_produto.Trim() + "') or (" +
                                             "exists(select 1 from tb_est_produto x " +
                                             "where x.cd_grupo = d.cd_grupo " +
                                             "and x.cd_produto = '" + fReq.rReq.Cd_produto.Trim() + "' " +
                                             "and isnull(d.cd_produto, '') = '')))"
                             }
                         }, 0, string.Empty, string.Empty);
                         if (lNegociacao.Count > 0)
                         {
                             //Chamar tela de negociacao
                             using (TFListaFornecedor fFornec = new TFListaFornecedor())
                             {
                                 CamadaDados.Compra.TList_CFGCompra lCfg =
                                     CamadaNegocio.Compra.TCN_CFGCompra.Buscar(cd_empresa.Text,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               0,
                                                                               string.Empty,
                                                                               null);
                                 if (lCfg.Count > 0)
                                 {
                                     fFornec.Qtd_negociacao = lCfg[0].Qtd_min_negociacao;
                                 }
                                 fFornec.lItens        = lNegociacao;
                                 fFornec.St_requisicao = true;
                                 fFornec.Text          = "Lista de Negociação em vigencia do produto " + cd_produto.Text.Trim();
                                 if (fFornec.ShowDialog() == DialogResult.OK)
                                 {
                                     //Montar lista de negociacao selecionada
                                     fFornec.lItens.ForEach(p =>
                                     {
                                         if (p.St_processar)
                                         {
                                             fReq.rReq.lReqneg.Add(
                                                 new CamadaDados.Compra.Lancamento.TRegistro_Requisicao_X_Negociacao()
                                             {
                                                 Id_negociacao = p.Id_negociacao,
                                                 Id_item       = p.Id_item
                                             });
                                         }
                                     });
                                     //Mudar status da ordem para Aguardando Aprovacao
                                     fReq.rReq.St_requisicao = "AA";
                                     lNegociacao.ForEach(p =>
                                     {
                                         fReq.rReq.lCotacoes.Add(new CamadaDados.Compra.Lancamento.TRegistro_Cotacao()
                                         {
                                             Cd_empresa         = fReq.rReq.Cd_empresa,
                                             Cd_fornecedor      = p.Cd_fornecedor,
                                             Cd_endfornecedor   = p.Cd_endfornecedor,
                                             Cd_condpgto        = p.Cd_condpgto,
                                             Cd_moeda           = p.Cd_moeda,
                                             Cd_portador        = p.Cd_portador,
                                             Nm_vendedor        = p.Nm_vendedor,
                                             Emailvendedor      = p.Email_vendedor,
                                             Fonefax            = p.FoneFax,
                                             Qtd_atendida       = fReq.rReq.Quantidade,
                                             Vl_unitario_cotado = p.Vl_unitario_negociado,
                                             Dt_cotacao         = CamadaDados.UtilData.Data_Servidor(),
                                             Ds_observacao      = p.Ds_observacao,
                                             Nr_diasvigencia    = p.Nr_diasvigencia,
                                             St_registro        = "A"
                                         });
                                     });
                                 }
                             }
                         }
                     }
                     else
                     {
                         fReq.rReq.St_requisicao = "AP";//Requisicao INTERNA ja entra como APROVADA
                         fReq.rReq.Qtd_aprovada  = fReq.rReq.Quantidade;
                     }
                     //Verificar se existe requisicao com o mesmo o produto sem cotacoes lancadas
                     CamadaDados.Compra.Lancamento.TList_Requisicao lReq =
                         new CamadaDados.Compra.Lancamento.TCD_Requisicao().Select(
                             new Utils.TpBusca[]
                     {
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "a.cd_empresa",
                             vOperador = "=",
                             vVL_Busca = "'" + fReq.rReq.Cd_empresa.Trim() + "'"
                         },
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "a.cd_produto",
                             vOperador = "=",
                             vVL_Busca = "'" + fReq.rReq.Cd_produto.Trim() + "'"
                         },
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "a.CD_Clifor_Requisitante",
                             vOperador = "=",
                             vVL_Busca = "'" + fReq.rReq.Cd_clifor_requisitante.Trim() + "'"
                         },
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "a.id_tprequisicao",
                             vOperador = "=",
                             vVL_Busca = fReq.rReq.Id_tprequisicaostr
                         },
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "a.cd_local",
                             vOperador = "=",
                             vVL_Busca = "'" + fReq.rReq.Cd_local + "'"
                         },
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "isnull(a.ST_Requisicao, 'AC')",
                             vOperador = "=",
                             vVL_Busca = "'AC'"
                         },
                         new Utils.TpBusca()
                         {
                             vNM_Campo = string.Empty,
                             vOperador = "not exists",
                             vVL_Busca = "(select 1 from tb_cmp_cotacao x " +
                                         "where a.cd_empresa = x.cd_empresa " +
                                         "and a.id_requisicao = x.id_requisicao) "
                         }
                     }, 1, string.Empty, string.Empty);
                     if (lReq.Count > 0)
                     {
                         if (MessageBox.Show("A requisição Nº" + lReq[0].Id_requisicao.ToString() + " com data " + lReq[0].Dt_requisicaostr + ".\r\n" +
                                             "Ainda não possui cotações lançadas.\r\n" +
                                             "Deseja adicionar a QTD lançada para esta requisição?", "Pergunta",
                                             MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                         {
                             fReq.rReq.Id_requisicao = lReq[0].Id_requisicao;
                             fReq.rReq.Quantidade    = fReq.rReq.Quantidade + lReq[0].Quantidade;
                             fReq.rReq.Ds_observacao = lReq[0].Ds_observacao + "\r\n" + fReq.rReq.Ds_observacao;
                         }
                     }
                     CamadaNegocio.Compra.Lancamento.TCN_Requisicao.GravarRequisicao(fReq.rReq, null);
                     MessageBox.Show("Requisição gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     afterBusca();
                 }
                 catch (Exception ex)
                 {
                     MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
         }
     }
 }