Example #1
0
        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();
        }
Example #2
0
        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();
                }
            }
        }
Example #3
0
        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();
                }
            }
        }
Example #4
0
        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();
                }
            }
        }