private void TFLanRequisicao_Load(object sender, EventArgs e) { Utils.ShapeGrid.RestoreShape(this, gRequisicao); Utils.ShapeGrid.RestoreShape(this, gItens); panelDados6.BackColor = Utils.SettingsUtils.Default.COLOR_1; pFiltros.BackColor = Utils.SettingsUtils.Default.COLOR_3; pFiltro.set_FormatZero(); if (!string.IsNullOrEmpty(Utils.Parametros.pubCultura)) { Idioma.TIdioma.AjustaCultura(this); } Icon = Utils.ResourcesUtils.TecnoAliance_ICO; St_visualizartodas = CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR VISUALIZAR TODAS REQUISICOES", null); //Verificar se o Usuário tem permissão para aprovar compra lUser = new CamadaDados.Compra.TCD_CadUsuarioCompra().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.login", vOperador = "=", vVL_Busca = "'" + Utils.Parametros.pubLogin.Trim() + "'" } }, 1, string.Empty); if (lUser.Count > 0) { St_aprovar = lUser[0].St_aprovarbool; St_comprar = lUser[0].St_comprarbool; } if (!St_aprovar) { bb_aprovarCompra.Visible = false; tsdCotacao.Visible = false; } if (!St_comprar) { bb_gerarPedido.Visible = false; bb_gerarOrdem.Visible = false; } if (Properties.Settings.Default.tempo.Equals(0)) { tempoNotificacao.Value = 1; } else { tempoNotificacao.Value = Properties.Settings.Default.tempo; } //Buscar Total Requisicões object obj = null; if (lUser.Count > 0) { obj = new CamadaDados.Compra.Lancamento.TCD_Requisicao().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_requisicao, 'AC')", vOperador = "<>", vVL_Busca = "'CA'" }, new Utils.TpBusca() { vNM_Campo = "cd_clifor_requisitante", vOperador = "<>", vVL_Busca = "'" + lUser[0].Cd_clifor_cmp.Trim() + "'" } }, "count(*)"); } Tot_req = obj == null ? 0 : int.Parse(obj.ToString()); tlpDetRequisicao.ColumnStyles[0].Width = 0; thNovaReq = new System.Threading.Thread(NovaThread); thNovaReq.Start(); }
public static void EstornarProcessamentoRequisicao(TRegistro_Requisicao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Requisicao qtb_requisicao = new TCD_Requisicao(); try { if (banco == null) { st_transacao = qtb_requisicao.CriarBanco_Dados(true); } else { qtb_requisicao.Banco_Dados = banco; } //Verificar se o usuario que realizou o processamento e o mesmo que esta tentando estornar CamadaDados.Compra.TList_CadUsuarioCompra lUser = CamadaNegocio.Compra.TCN_CadUsuarioCompra.Busca(val.Cd_clifor_aprovador, Utils.Parametros.pubLogin, false, false, true, false, 1, string.Empty, qtb_requisicao.Banco_Dados); if (lUser.Count.Equals(0)) { throw new Exception("Só é permitido estornar processamento realizado pelo usuario atual logado no sistema.\r\n" + "Login: "******"."); } //Alterar registro requisicao val.Qtd_aprovada = decimal.Zero; val.St_requisicao = "AA"; AlterarRequisicao(val, qtb_requisicao.Banco_Dados); //Alterar status das negociacoes val.lReqneg.ForEach(p => { p.St_NegReq = "S"; //StandBy TCN_Requisicao_X_Negociacao.GravarRequisicao_X_Negociacao(p, qtb_requisicao.Banco_Dados); }); //Alterar status das cotacoes val.lCotacoes.ForEach(p => { p.St_registro = "A"; //Aberta TCN_Cotacao.GravarCotacao(p, qtb_requisicao.Banco_Dados); }); if (st_transacao) { qtb_requisicao.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_requisicao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro estornar processamento requisição: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_requisicao.deletarBanco_Dados(); } } }
public static void ProcessarOrdemCompra(List <TRegistro_Requisicao> val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Requisicao qtb_requisicao = new TCD_Requisicao(); try { if (banco == null) { st_transacao = qtb_requisicao.CriarBanco_Dados(true); } else { qtb_requisicao.Banco_Dados = banco; } //Verificar se existe usuario de compra para o login corrente CamadaDados.Compra.TList_CadUsuarioCompra lUser = TCN_CadUsuarioCompra.Busca(string.Empty, Utils.Parametros.pubLogin, false, false, false, true, 1, string.Empty, qtb_requisicao.Banco_Dados); if (lUser.Count < 1) { throw new Exception("Não existe usuario de compra configurado para o login " + Utils.Parametros.pubLogin.Trim()); } val.ForEach(p => { //Para cada requisicao criar um objeto ordem compra TRegistro_OrdemCompra rOc = new TRegistro_OrdemCompra(); rOc.Id_oc = null; rOc.Id_requisicao = p.Id_requisicao; if (p.lCotacoes.Count > 0) { TRegistro_Cotacao rCot = p.lCotacoes.Find(v => v.St_registro.Trim().ToUpper().Equals("P")); if (rCot != null) { rOc.Cd_empresa = rCot.Cd_empresa; rOc.Cd_fornecedor = rCot.Cd_fornecedor; rOc.Cd_endfornecedor = rCot.Cd_endfornecedor; rOc.Cd_condpgto = rCot.Cd_condpgto; rOc.Cd_moeda = rCot.Cd_moeda; rOc.Cd_portador = rCot.Cd_portador; rOc.Cd_transportadora = rCot.Cd_transportadora; rOc.Cd_endtransportadora = rCot.Cd_endtransportadora; rOc.Tp_frete = rCot.Tp_frete; rOc.Vl_frete = rCot.Vl_frete; rOc.Prazo_entrega = rCot.Prazo_entrega; rOc.Quantidade = p.Qtd_aprovada; rOc.Vl_unitario = rCot.Vl_unitario_cotado; rOc.Dt_oc = DateTime.Now; rOc.St_registro = "A"; } } else if (p.lReqneg.Count > 0) { TRegistro_Requisicao_X_Negociacao rReqNeg = p.lReqneg.Find(v => v.St_registro.Trim().ToUpper().Equals("A")); if (rReqNeg != null) { rOc.Cd_empresa = rReqNeg.Cd_empresa; rOc.Cd_fornecedor = rReqNeg.Cd_fornecedor; rOc.Cd_endfornecedor = rReqNeg.Cd_endfornecedor; rOc.Cd_condpgto = rReqNeg.Cd_condpgto; rOc.Cd_moeda = rReqNeg.Cd_moeda; rOc.Cd_portador = rReqNeg.Cd_portador; TRegistro_PrazoEntrega rEntrega = rReqNeg.lPrazoEntrega.Find(x => x.Cd_empresa.Trim().Equals(p.Cd_empresa.Trim())); if (rEntrega != null) { rOc.Cd_transportadora = rEntrega.Cd_transportadora; rOc.Cd_endtransportadora = rEntrega.Cd_endtransportadora; rOc.Tp_frete = rEntrega.Tp_frete; rOc.Prazo_entrega = rEntrega.Prazo_entrega; } rOc.Quantidade = p.Qtd_aprovada; rOc.Vl_unitario = rReqNeg.Vl_unitario_negociado; rOc.Dt_oc = DateTime.Now; rOc.St_registro = "A"; } } TCN_OrdemCompra.Gravar(rOc, qtb_requisicao.Banco_Dados); //Alterar status da requisicao para ordem compra p.St_requisicao = "OC"; p.Cd_clifor_comprador = lUser[0].Cd_clifor_cmp; AlterarRequisicao(p, qtb_requisicao.Banco_Dados); }); if (st_transacao) { qtb_requisicao.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_requisicao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar ordem compra: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_requisicao.deletarBanco_Dados(); } } }
public static void ProcessarRequisicao(TRegistro_Requisicao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Requisicao qtb_requisicao = new TCD_Requisicao(); try { if (banco == null) { st_transacao = qtb_requisicao.CriarBanco_Dados(true); } else { qtb_requisicao.Banco_Dados = banco; } if (val.St_requisicao.Trim().ToUpper().Equals("AP")) { //Aprovar requisicao val.lReqneg.ForEach(p => { if (p.St_processar) { p.St_NegReq = "A"; //Negociacao aprovada para a compra TCN_Requisicao_X_Negociacao.GravarRequisicao_X_Negociacao(p, qtb_requisicao.Banco_Dados); } else { p.St_NegReq = "R"; //Negociacao reprovada para a compra TCN_Requisicao_X_Negociacao.GravarRequisicao_X_Negociacao(p, qtb_requisicao.Banco_Dados); } }); val.lCotacoes.ForEach(p => { if (p.St_integrar) { p.St_registro = "P"; //Aprovada TCN_Cotacao.GravarCotacao(p, qtb_requisicao.Banco_Dados); } else { p.St_registro = "R"; //Reprovada TCN_Cotacao.GravarCotacao(p, qtb_requisicao.Banco_Dados); } }); } else if (val.St_requisicao.Trim().ToUpper().Equals("RE")) { //Reprovar requisicao val.lReqneg.ForEach(p => { p.St_NegReq = "R"; //Negociacao reprovada para a compra TCN_Requisicao_X_Negociacao.GravarRequisicao_X_Negociacao(p, qtb_requisicao.Banco_Dados); }); //Reprovar cotacoes val.lCotacoes.ForEach(p => { p.St_registro = "R"; //Reprovada TCN_Cotacao.GravarCotacao(p, qtb_requisicao.Banco_Dados); }); } //Alterar requisicao //Buscar usuario que esta aprovando a requisicao CamadaDados.Compra.TList_CadUsuarioCompra lUser = CamadaNegocio.Compra.TCN_CadUsuarioCompra.Busca(string.Empty, Utils.Parametros.pubLogin, false, false, true, false, 0, string.Empty, qtb_requisicao.Banco_Dados); if (lUser.Count < 1) { throw new Exception("Não existe usuario para APROVAR configurado para o login " + Utils.Parametros.pubLogin.Trim().ToUpper() + "."); } val.Cd_clifor_aprovador = lUser[0].Cd_clifor_cmp; AlterarRequisicao(val, qtb_requisicao.Banco_Dados); if (st_transacao) { qtb_requisicao.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_requisicao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar requisição: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_requisicao.deletarBanco_Dados(); } } }