Exemplo n.º 1
0
        public static string CancelarPreVenda(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco)
        {
            bool         st_transacao = false;
            TCD_PreVenda qtb_orc      = new TCD_PreVenda();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_orc.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_orc.Banco_Dados = banco;
                }

                val.lItens.ForEach(p =>
                {
                    p.st_registro = "C";
                    TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados);
                });
                val.st_ativo = "C";
                qtb_orc.Gravar(val);
                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir pre venda: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_orc.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 2
0
        public static string Excluir(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco)
        {
            bool         st_transacao = false;
            TCD_PreVenda qtb_orc      = new TCD_PreVenda();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_orc.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_orc.Banco_Dados = banco;
                }
                //Verificar se venda possui cupom emitido pelo delivery
                if (new TCD_ItensPreVenda_X_ItensCupom(qtb_orc.Banco_Dados).BuscarEscalar(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.CD_Empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.ID_PreVenda",
                        vOperador = "=",
                        vVL_Busca = val.id_prevenda.ToString()
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from TB_PDV_NFCe x " +
                                    "where x.cd_empresa = a.cd_empresa " +
                                    "and x.id_nfce = a.id_cupom) "
                    }
                }, "1") == null)
                {
                    //Se não tiver excluir venda rápida
                    CamadaDados.Faturamento.PDV.TList_VendaRapida lVendaRapida =
                        new CamadaDados.Faturamento.PDV.TCD_VendaRapida(qtb_orc.Banco_Dados).Select(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from TB_RES_ItensPreVenda_X_ItensCupom x " +
                                        "where x.cd_empresa = a.cd_empresa " +
                                        "and x.id_vendarapida = a.id_vendarapida " +
                                        "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "' " +
                                        "and x.id_prevenda = " + val.id_prevenda.ToString() + ") "
                        }
                    }, 0, string.Empty, string.Empty);
                    //Exclui Venda Rápida
                    if (lVendaRapida.Count > 0)
                    {
                        Faturamento.PDV.TCN_VendaRapida.ExcluirVendaRapida(lVendaRapida, qtb_orc.Banco_Dados);
                    }
                }
                else
                {
                    throw new Exception("Não é permitido cancelar venda que possui cupom fiscal!\r\n" +
                                        "Para excluir cupom fiscal acesse:\r\n" +
                                        "Faturamento>>Frente Caixa>>>Consulta - Venda Frente Caixa.");
                }
                val.lDelItens.ForEach(p =>
                {
                    p.st_registro = "C";
                    TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados);
                });
                val.lItens.ForEach(p =>
                {
                    p.st_registro = "C";
                    TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados);
                });
                //St_registro
                val.st_ativo = "C";

                //Cancelamento do cartao
                qtb_orc.executarEscalar("update TB_RES_Cartao " +
                                        "set ST_Registro = 'C' " +
                                        "where ID_Cartao = " + val.id_cartao + " " +
                                        "update TB_RES_Cartao " +
                                        "set dt_fechamento = GETDATE() " +
                                        "where ID_Cartao = " + val.id_cartao + " ", null);


                qtb_orc.Gravar(val);
                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir pre venda: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_orc.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 3
0
        public static string Gravar(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco)
        {
            bool         st_transacao = false;
            TCD_PreVenda qtb_pre      = new TCD_PreVenda();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pre.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pre.Banco_Dados = banco;
                }
                val.Id_prevendastr = CamadaDados.TDataQuery.getPubVariavel(qtb_pre.Gravar(val), "@P_ID_PREVENDA");
                //Gravar itens venda
                val.lItensDel.ForEach(p => TCN_ItensPreVenda.Excluir(p, qtb_pre.Banco_Dados));
                val.lItens.ForEach(p =>
                {
                    p.Cd_empresa  = val.Cd_empresa;
                    p.Id_prevenda = val.Id_prevenda;
                    TCN_ItensPreVenda.Gravar(p, qtb_pre.Banco_Dados);
                });
                //Excluir financeiro
                TList_PreVenda_DT_Vencto lParc = TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr, val.Cd_empresa, qtb_pre.Banco_Dados);
                lParc.ForEach(p => TCN_PreVenda_DT_Vencto.Excluir(p, qtb_pre.Banco_Dados));
                //Gravar financeiro
                val.DT_Vencto.ForEach(p =>
                {
                    p.Cd_empresa  = val.Cd_empresa;
                    p.Id_prevenda = val.Id_prevenda;
                    TCN_PreVenda_DT_Vencto.Gravar(p, qtb_pre.Banco_Dados);
                });
                //Resgatar Pontos Fidelidade
                if (val.lItens.Exists(p => p.Qtd_pontosutilizados > decimal.Zero))
                {
                    //Buscar listagem de pontos com saldo a recuperar
                    CamadaDados.Faturamento.Fidelizacao.TList_PontosFidelidade lPontos =
                        new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade(qtb_pre.Banco_Dados).Select(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_clifor",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_clifor.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = string.Empty,
                            vVL_Busca = "a.dt_validade is null or convert(datetime, floor(convert(decimal(30,10), a.dt_validade))) >= convert(datetime, floor(convert(decimal(30,10), getdate())))"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "isnull(a.st_registro, 'A')",
                            vOperador = "<>",
                            vVL_Busca = "'C'"
                        }
                    }, 0, string.Empty, string.Empty);
                    val.lItens.Where(p => p.Qtd_pontosutilizados > decimal.Zero).ToList().ForEach(p =>
                    {
                        decimal pontos_resgatar = p.Qtd_pontosutilizados;
                        decimal pontos          = decimal.Zero;
                        DateTime dt_atual       = CamadaDados.UtilData.Data_Servidor(qtb_pre.Banco_Dados);
                        foreach (CamadaDados.Faturamento.Fidelizacao.TRegistro_PontosFidelidade rPonto in lPontos.OrderBy(v => v.Dt_registro).ToList())
                        {
                            if (pontos_resgatar > decimal.Zero)
                            {
                                pontos = pontos_resgatar < rPonto.SD_Pontos ? pontos_resgatar : rPonto.SD_Pontos;
                                CamadaNegocio.Faturamento.Fidelizacao.TCN_ResgatePontos.Gravar(
                                    new CamadaDados.Faturamento.Fidelizacao.TRegistro_ResgatePontos()
                                {
                                    Cd_empresa      = rPonto.Cd_empresa,
                                    Id_ponto        = rPonto.Id_ponto,
                                    Login           = Utils.Parametros.pubLogin,
                                    Qt_pontos       = pontos,
                                    Dt_resgate      = dt_atual,
                                    Id_prevenda     = val.Id_prevenda,
                                    Id_itemprevenda = p.Id_itemprevenda,
                                    St_registro     = "A"
                                }, qtb_pre.Banco_Dados);
                                pontos_resgatar   -= pontos;
                                rPonto.Pontos_res += pontos;
                            }
                            else
                            {
                                break;
                            }
                        }
                    });
                }
                if (st_transacao)
                {
                    qtb_pre.Banco_Dados.Commit_Tran();
                }
                return(val.Id_prevendastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pre.deletarBanco_Dados();
                }
                throw new Exception("Erro gravar venda: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pre.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 4
0
        public static string Gravar(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco)
        {
            bool         st_transacao = false;
            TCD_PreVenda qtb_orc      = new TCD_PreVenda();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_orc.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_orc.Banco_Dados = banco;
                }
                string ret = qtb_orc.Gravar(val);
                val.id_prevenda = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret, "@P_ID_PREVENDA"));

                //Comentado pos item já esta sendo cancelado pela tela de pre-venda do restaurante,
                //Código poderá ser reaproveitado quando item não for gravado na hora do lançamento.
                //val.lDelItens.ForEach(p =>
                //{
                //    p.id_prevenda = val.id_prevenda;
                //    TCN_PreVenda_Item.Excluir(p, qtb_orc.Banco_Dados);
                //});

                val.lItens.ForEach(p =>
                {
                    p.id_prevenda = val.id_prevenda;
                    TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados);
                    p.lSabores.ForEach(o =>
                    {
                        o.Id_PreVenda = val.id_prevenda;
                        o.Cd_Empresa  = val.Cd_empresa;
                        if (!string.IsNullOrEmpty(o.Id_ItemStr))
                        {
                            TCN_SaboresItens.Gravar(o, qtb_orc.Banco_Dados);
                        }
                    });
                });

                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.Commit_Tran();
                }
                return(val.id_prevenda.ToString());
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar pre venda: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_orc.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 5
0
        public static void Excluir(List <TRegistro_PreVenda> val, BancoDados.TObjetoBanco banco)
        {
            bool         st_transacao = false;
            TCD_PreVenda qtb_pre      = new TCD_PreVenda();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pre.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pre.Banco_Dados = banco;
                }
                val.ForEach(p =>
                {
                    //Verificar se prevenda possui faturamento
                    object obj = new TCD_VendaRapida(qtb_pre.Banco_Dados).BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca
                        {
                            vNM_Campo = "isnull(a.st_registro, 'A')",
                            vOperador = "<>",
                            vVL_Busca = "'C'"
                        },
                        new TpBusca
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_pdv_prevenda_x_vendarapida x " +
                                        "where x.cd_empresa = a.cd_empresa " +
                                        "and x.id_cupom = a.id_vendarapida " +
                                        "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                        "and x.id_prevenda = " + p.Id_prevendastr + ")"
                        }
                    }, "a.Id_Cupom");
                    if (obj != null)
                    {
                        throw new Exception("Item Pre Venda Nº" + p.Id_prevendastr + " esta faturado.\r\n" +
                                            "Para excluir o item, necessario estornar venda Nº" + obj.ToString() + ".");
                    }
                    //Verificar se prevenda tem item com origem locacao
                    if (new TCD_ItensPreVenda(qtb_pre.Banco_Dados).BuscarEscalar(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = string.Empty,
                            vVL_Busca = "(exists(select 1 from tb_fat_locacao_x_prevenda x " +
                                        "            where x.cd_empresa = '" + p.Cd_empresa.Trim() + "'" +
                                        "           and x.id_prevenda = " + p.Id_prevendastr + ") or " +
                                        "exists(select 1 from tb_fat_itenslocacao_x_prevenda x " +
                                        "           where x.cd_empresa = " + p.Cd_empresa.Trim() + "'" +
                                        "           and x.id_prevenda = " + p.Id_prevendastr + "))"
                        }
                    }, "1") != null)
                    {
                        throw new Exception("Item Pre Venda Nº" + p.Id_prevendastr + " teve origem Locação.\r\n" +
                                            "Para excluir o item, necessario estornar processamento locação.");
                    }
                    //Verificar se prevenda possui romaneio entrega
                    new CamadaDados.Faturamento.Entrega.TCD_RomaneioEntrega(qtb_pre.Banco_Dados).Select(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_fat_itensromaneio x " +
                                        "where x.cd_empresa = a.cd_empresa " +
                                        "and x.id_romaneio = a.id_romaneio " +
                                        "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                        "and x.id_prevenda = " + p.Id_prevendastr + ")"
                        }
                    }, 0, string.Empty).ForEach(v => Entrega.TCN_RomaneioEntrega.Excluir(v, qtb_pre.Banco_Dados));
                    //Verificar se Pré-venda possui OS
                    new CamadaDados.Servicos.TCD_Pecas_X_PreVenda(qtb_pre.Banco_Dados).Select(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from VTB_PDV_ITENSPREVENDA x " +
                                        "where a.id_itemprevenda = x.id_itemprevenda " +
                                        "and a.cd_empresa = '" + p.Cd_empresa.Trim() + "'" +
                                        "and a.id_prevenda = " + p.Id_prevendastr + ")"
                        }
                    }, 0, string.Empty).ForEach(x => Servicos.TCN_Pecas_X_PreVenda.Excluir(x, qtb_pre.Banco_Dados));
                    //Verificar se Pré-venda possui Locação - Modulo Locação
                    new CamadaDados.Locacao.TCD_Itens_X_PreVenda(qtb_pre.Banco_Dados).Select(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from VTB_PDV_ITENSPREVENDA x " +
                                        "where a.id_itemprevenda = x.id_itemprevenda " +
                                        "and a.cd_empresa = '" + p.Cd_empresa.Trim() + "'" +
                                        "and a.id_prevenda = " + p.Id_prevendastr + ")"
                        }
                    }, 0, string.Empty).ForEach(x => CamadaNegocio.Locacao.TCN_Itens_X_PreVenda.Excluir(x, qtb_pre.Banco_Dados));
                    //Cancelar Resgate Pontos
                    Fidelizacao.TCN_ResgatePontos.Buscar(p.Cd_empresa,
                                                         string.Empty,
                                                         string.Empty,
                                                         string.Empty,
                                                         p.Id_prevendastr,
                                                         string.Empty,
                                                         string.Empty,
                                                         string.Empty,
                                                         qtb_pre.Banco_Dados).ForEach(v =>
                    {
                        v.St_registro = "C";
                        v.Logincanc   = Parametros.pubLogin;
                        Fidelizacao.TCN_ResgatePontos.Gravar(v, qtb_pre.Banco_Dados);
                    });
                    p.St_registro = "C";
                    qtb_pre.Gravar(p);
                });
                if (st_transacao)
                {
                    qtb_pre.Banco_Dados.Commit_Tran();
                }
            }catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pre.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir venda: " + ex.Message.Trim());
            }finally
            {
                if (st_transacao)
                {
                    qtb_pre.deletarBanco_Dados();
                }
            }
        }