コード例 #1
0
        public static void Estornar(TRegistro_OrdemCompra val, BancoDados.TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_OrdemCompra qtb_ordem    = new TCD_OrdemCompra();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_ordem.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_ordem.Banco_Dados = banco;
                }
                //Buscar requisicao amarrada a ordem compra
                if (val.Id_requisicao != null)
                {
                    TRegistro_Requisicao rReq = TCN_Requisicao.Buscar(val.Id_requisicao.Value.ToString(),
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      "'E'",
                                                                      false,
                                                                      qtb_ordem.Banco_Dados)[0];
                    rReq.St_requisicao = "AP";
                    TCN_Requisicao.AlterarRequisicao(rReq, qtb_ordem.Banco_Dados);
                }
                //Cancelar Ordem Compra
                val.St_registro = "C";
                Gravar(val, qtb_ordem.Banco_Dados);
                if (st_transacao)
                {
                    qtb_ordem.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_ordem.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro cancelar ordem compra: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_ordem.deletarBanco_Dados();
                }
            }
        }
コード例 #2
0
        public static string AlterarRequisicao(TRegistro_Requisicao val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_Requisicao qtb_req      = new TCD_Requisicao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_req.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_req.Banco_Dados = banco;
                }
                //Gravar requisicao
                string retorno = qtb_req.GravarRequisicao(val);
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro alterar requisição: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_req.deletarBanco_Dados();
                }
            }
        }
コード例 #3
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();
                }
            }
        }
コード例 #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();
                }
            }
        }
コード例 #5
0
        public static void FecharCotacoesRequisicao(TRegistro_Requisicao val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_Requisicao qtb_req      = new TCD_Requisicao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_req.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_req.Banco_Dados = banco;
                }
                //Verificar se existe configuracao de compra para a empresa da requisicao
                CamadaDados.Compra.TList_CFGCompra lCfg =
                    CamadaNegocio.Compra.TCN_CFGCompra.Buscar(val.Cd_empresa,
                                                              string.Empty,
                                                              string.Empty,
                                                              string.Empty,
                                                              string.Empty,
                                                              0,
                                                              string.Empty,
                                                              qtb_req.Banco_Dados);
                //Verificar se existem cotacoes
                if (val.lCotacoes.Count.Equals(0))
                {
                    val.lCotacoes = CamadaNegocio.Compra.Lancamento.TCN_Cotacao.Buscar(string.Empty,
                                                                                       string.Empty,
                                                                                       val.Cd_empresa,
                                                                                       val.Id_requisicao.ToString(),
                                                                                       0,
                                                                                       string.Empty,
                                                                                       string.Empty,
                                                                                       null);
                }
                if (lCfg.Count > 0)
                {
                    if (lCfg[0].Qtd_min_cotacao > 0)
                    {
                        if (lCfg[0].Qtd_min_cotacao > val.lCotacoes.Count)
                        {
                            throw new Exception("Configuração de compras da empresa " + val.Cd_empresa.Trim() + " exige no minimo " + lCfg[0].Qtd_min_cotacao.ToString() + " para fechar cotações.");
                        }
                    }
                }
                //Alterar status da requisicao para AA - Aguardando Aprovacao
                val.St_requisicao = "AA";
                AlterarRequisicao(val, qtb_req.Banco_Dados);
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro fechar cotações requisição: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_req.deletarBanco_Dados();
                }
            }
        }
コード例 #6
0
        public static string DeletarRequisicao(TRegistro_Requisicao val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_Requisicao qtb_req      = new TCD_Requisicao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_req.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_req.Banco_Dados = banco;
                }
                if (val.St_requisicao.Trim().ToUpper().Equals("AC") && val.Id_ordem == null)
                {
                    //Deletar negociacao
                    val.lregnegdel.ForEach(p => TCN_Requisicao_X_Negociacao.DeletarRequisicao_X_Negociacao(p, qtb_req.Banco_Dados));
                    val.lReqneg.ForEach(p =>
                    {
                        p.Id_requisicao = val.Id_requisicao;
                        TCN_Requisicao_X_Negociacao.DeletarRequisicao_X_Negociacao(p, qtb_req.Banco_Dados);
                    });
                    //Verificar se Requisição for originada pelo modulo empreendimento
                    CamadaDados.Empreendimento.TList_CompraEmpreendimento lEmpCompra =
                        CamadaNegocio.Empreendimento.TCN_CompraEmpreendimento.Buscar(val.Cd_empresa,
                                                                                     string.Empty,
                                                                                     string.Empty,
                                                                                     string.Empty,
                                                                                     val.Id_requisicao.ToString(),
                                                                                     qtb_req.Banco_Dados);
                    //Excluir Compra Empreendimento.
                    lEmpCompra.ForEach(p => CamadaNegocio.Empreendimento.TCN_CompraEmpreendimento.Excluir(p, qtb_req.Banco_Dados));
                    //Deletar Cotacao
                    val.lCotacoes.ForEach(p => TCN_Cotacao.DeletarCotacao(p, qtb_req.Banco_Dados));
                    //Gravar requisicao
                    qtb_req.DeletarRequisicao(val);
                }
                else
                {
                    //Altera o status para CA - Cancelada
                    val.St_requisicao = "CA";
                    AlterarRequisicao(val, qtb_req.Banco_Dados);
                }
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir requisição: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_req.deletarBanco_Dados();
                }
            }
        }
コード例 #7
0
        public static string GravarRequisicao(TRegistro_Requisicao val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_Requisicao qtb_req      = new TCD_Requisicao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_req.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_req.Banco_Dados = banco;
                }
                //Gravar requisicao
                string retorno = qtb_req.GravarRequisicao(val);
                val.Id_requisicao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_REQUISICAO"));
                //Gravar Cotação
                val.lCotacoes.ForEach(p =>
                {
                    p.Id_requisicao = val.Id_requisicao;
                    TCN_Cotacao.GravarCotacao(p, qtb_req.Banco_Dados);
                });
                //Gravar negociacao
                val.lReqneg.ForEach(p =>
                {
                    p.Id_requisicao = val.Id_requisicao;
                    p.Cd_empresa    = val.Cd_empresa;
                    TCN_Requisicao_X_Negociacao.GravarRequisicao_X_Negociacao(p, qtb_req.Banco_Dados);
                });
                val.lOrdemProd.ForEach(p =>
                {
                    p.Id_requisicao = val.Id_requisicao;
                    p.Cd_empresa    = val.Cd_empresa;
                    CamadaNegocio.Producao.Producao.TCN_OrdemProducao_X_Requisicao.Gravar(p, qtb_req.Banco_Dados);
                });
                //Deletar Negociacao
                val.lregnegdel.ForEach(p => TCN_Requisicao_X_Negociacao.DeletarRequisicao_X_Negociacao(p, qtb_req.Banco_Dados));
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_req.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar requisição: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_req.deletarBanco_Dados();
                }
            }
        }
コード例 #8
0
        public static void ProcessarPedido(List <TRegistro_OrdemCompra> val,
                                           string Cfg_pedido,
                                           CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata rDup,
                                           byte[] anexo_pedido,
                                           BancoDados.TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_OrdemCompra qtb_oc       = new TCD_OrdemCompra();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_oc.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_oc.Banco_Dados = banco;
                }
                //Verificar se existe configuracao para gerar pedido
                TRegistro_Requisicao rReq = TCN_Requisicao.Buscar(val[0].Id_requisicaostr,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  "'E'",
                                                                  false,
                                                                  qtb_oc.Banco_Dados)[0];
                CamadaDados.Compra.TList_CFGCompra lCfg =
                    TCN_CFGCompra.Buscar(rReq.Cd_empresa,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         0,
                                         string.Empty,
                                         qtb_oc.Banco_Dados);
                if (lCfg.Count < 1)
                {
                    throw new Exception("Não existe configuração do modulo de compras para a empresa " + rReq.Cd_empresa.Trim());
                }
                if ((!lCfg[0].St_utilizarmoedaocbool) && lCfg[0].Cd_moeda.Trim().Equals(string.Empty))
                {
                    throw new Exception("Não existe moeda configurada para gerar o pedido.");
                }
                //Gravar pedido
                string retorno = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(
                    new CamadaDados.Faturamento.Pedido.TRegistro_Pedido()
                {
                    CD_Empresa          = rReq.Cd_empresa,
                    CD_CondPGTO         = val[0].Cd_condpgto,
                    DT_Pedido           = DateTime.Now,
                    TP_Movimento        = "E",
                    CFG_Pedido          = string.IsNullOrEmpty(Cfg_pedido) ? lCfg[0].Cfg_pedidocompra : Cfg_pedido,
                    CD_Clifor           = val[0].Cd_fornecedor,
                    CD_Endereco         = val[0].Cd_endfornecedor,
                    ST_Pedido           = "F",
                    ST_Registro         = "A",
                    Cd_moeda            = lCfg[0].St_utilizarmoedaocbool ? val[0].Cd_moeda : lCfg[0].Cd_moeda,
                    CD_TRANSPORTADORA   = val[0].Cd_transportadora,
                    CD_ENDERECOTRANSP   = val[0].Cd_endtransportadora,
                    Tp_frete            = val[0].Tp_frete,
                    Vl_frete            = val.Sum(p => p.Vl_frete),
                    Cd_clifor_comprador = rReq.Cd_clifor_comprador,
                    Anexo_compra        = anexo_pedido
                }, qtb_oc.Banco_Dados);
                //grava duplicata
                object st_dup = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedido().BuscarEscalar(
                    null, "a.st_gerarfin");
                if (st_dup != null && rDup != null)
                {
                    if (st_dup.Equals("S"))
                    {
                        rDup.Nr_pedido = Convert.ToDecimal(retorno.ToString());

                        rDup.Nr_docto = rDup.Nr_pedido.ToString();
                        string rtn = CamadaNegocio.Financeiro.Duplicata.TCN_LanDuplicata.GravarDuplicata(rDup, false, qtb_oc.Banco_Dados);

                        CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_X_Duplicata reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_X_Duplicata();
                        reg.Cd_empresa = lCfg[0].Cd_empresa;
                        reg.Nr_pedido  = rDup.Nr_pedido;
                        reg.Nr_lancto  = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(rtn, "@P_NR_LANCTO"));
                        CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_X_Duplicata.Gravar(reg, qtb_oc.Banco_Dados);
                    }
                }

                //Gravar itens do pedido
                val.ForEach(p =>
                {
                    //Buscar unidade do produto para gravar no pedido
                    object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_oc.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_produto",
                            vOperador = "=",
                            vVL_Busca = "'" + p.Cd_produto.Trim() + "'"
                        }
                    }, "a.cd_unidade");
                    if (obj == null)
                    {
                        throw new Exception("Não foi possivel localizar produto " + p.Cd_produto.Trim() + " no cadastro de produto.");
                    }
                    if (obj.ToString().Trim().Equals(string.Empty))
                    {
                        throw new Exception("Não existe unidade cadastrada para o produto " + p.Cd_produto.Trim() + ".");
                    }
                    string ret_item = CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_Item.GravaPedido_Item(
                        new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                    {
                        Cd_Empresa        = rReq.Cd_empresa,
                        Cd_local          = !string.IsNullOrEmpty(rReq.Cd_local) ? rReq.Cd_local : lCfg[0].Cd_local,
                        Cd_produto        = p.Cd_produto,
                        Nr_pedido         = Convert.ToDecimal(retorno),
                        Cd_unidade_est    = obj.ToString(),
                        Cd_unidade_valor  = obj.ToString(),
                        Quantidade        = p.Quantidade,
                        Vl_unitario       = p.Vl_unitConvertido,
                        Vl_subtotal       = p.Vl_Convertido,
                        Ds_observacaoitem = p.ObsRequisicao
                    }, qtb_oc.Banco_Dados);
                    //Alterar status da OC para F - Faturada
                    p.St_registro = "F";
                    TCN_OrdemCompra.Gravar(p, qtb_oc.Banco_Dados);
                    //Gravar OC X Pedido
                    TCN_OrdemCompra_X_PedItem.GravarOC_X_PedItem(
                        new TRegistro_OrdemCompra_X_PedItem()
                    {
                        Cd_produto    = p.Cd_produto,
                        Id_oc         = p.Id_oc,
                        Id_pedidoitem = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_item, "@P_ID_PEDIDOITEM")),
                        Nr_pedido     = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_item, "@P_NR_PEDIDO"))
                    }, qtb_oc.Banco_Dados);
                    p.Nr_pedido = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_item, "@P_NR_PEDIDO"));
                });
                if (st_transacao)
                {
                    qtb_oc.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_oc.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro processar pedido: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_oc.deletarBanco_Dados();
                }
            }
        }