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); } } }
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); } } } } }