Esempio n. 1
0
        public static string FecharComanda(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;
                }
                //Gravar Venda Restaurante
                val.lVenda.ForEach(p =>
                {
                    p.st_restaurante = true;
                    Faturamento.PDV.TCN_VendaRapida.GravarVendaRapida(p,
                                                                      null,
                                                                      null,
                                                                      qtb_orc.Banco_Dados);
                });
                //Mudar status Delivery para fechado
                //todo aqui
                qtb_orc.executarSql("update TB_RES_PreVenda set ST_Delivery = 'F', Dt_Alt = GETDATE() " +
                                    "where cd_empresa = '" + val.Cd_empresa.Trim() + "' " +
                                    "and id_prevenda = " + val.id_prevenda.ToString(), null);

                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();
                }
            }
        }
Esempio n. 2
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();
                }
            }
        }
Esempio n. 3
0
        public static string TransferirMesa(TRegistro_Cartao val, CamadaDados.Restaurante.Cadastro.TRegistro_Cfg cfg, string id_cartao, 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;
                }

                if (cfg.Tp_cartao.Equals("1"))
                {
                    TList_PreVenda futura_mesa = new TList_PreVenda();
                    futura_mesa = TCN_PreVenda.Buscar(val.Cd_empresa, id_cartao, string.Empty, string.Empty, string.Empty, string.Empty, banco);
                    futura_mesa.ForEach(p =>
                    {
                        p.lItens = TCN_PreVenda_Item.Buscar(p.Cd_empresa, p.id_prevenda.ToString(), string.Empty, string.Empty, banco);
                        val.lPreVenda.ForEach(pi =>
                        {
                            int i = p.lItens.Count;
                            pi.lItens.ForEach(o =>
                            {
                                TRegistro_PreVenda_Item item = new TRegistro_PreVenda_Item();
                                item.casasdecimais           = o.casasdecimais;
                                item.cd_condfiscal_produto   = o.cd_condfiscal_produto;
                                item.Cd_empresa  = p.Cd_empresa;
                                item.cd_produto  = o.cd_produto;
                                item.ds_grupo    = o.ds_grupo;
                                item.ds_produto  = o.ds_produto;
                                item.id_cartao   = p.id_cartao;
                                item.id_portaimp = o.id_portaimp;
                                item.id_prevenda = p.id_prevenda;
                                item.obsItem     = o.obsItem;
                                item.porta_imp   = o.porta_imp;
                                item.quantidade  = o.quantidade;
                                item.vl_desconto = o.vl_desconto;
                                item.vl_liquido  = o.vl_liquido;
                                item.vl_subtotal = o.vl_subtotal;
                                item.vl_unitario = o.vl_unitario;
                                item.lSabores    = o.lSabores;
                                //i++;
                                item.id_item = o.id_item + i;
                                if (!string.IsNullOrWhiteSpace(o.id_itemPaiAdic.ToString()))
                                {
                                    item.id_itemPaiAdic = o.id_itemPaiAdic + i;
                                }
                                //item.id_item = i;
                                p.lItens.Add(item);
                            });
                        });
                    });

                    val.St_registro = "C";
                    val.lPreVenda.ForEach(p =>
                    {
                        // p.motivo = "junção de mesa :" + val.Id_mesa + " local " + val.id_local + " com a mesa " + mesa.id_mesa + " local " + mesa.id_local;
                        p.st_ativo = "C";
                    });
                    TCN_Cartao.Gravar(val, banco);
                    futura_mesa.ForEach(p =>
                    {
                        TCN_PreVenda.Gravar(p, banco);
                    });
                }
                else if (cfg.Tp_cartao.Equals("0") && cfg.bool_mesacartao)
                {
                    TCN_Cartao.Gravar(val, banco);
                }

                if (st_transacao)
                {
                    qtb_orc.Banco_Dados.Commit_Tran();
                }
                return(string.Empty);// 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();
                }
            }
        }
Esempio n. 4
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();
                }
            }
        }
Esempio n. 5
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();
                }
            }
        }
Esempio n. 6
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();
                }
            }
        }
Esempio n. 7
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();
                }
            }
        }