Ejemplo 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();
                }
            }
        }
Ejemplo 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();
                }
            }
        }
Ejemplo n.º 3
0
        private void bsCartoesAbertos_PositionChanged(object sender, EventArgs e)
        {
            if (bsCartoesAbertos.Current == null || string.IsNullOrEmpty((bsCartoesAbertos.Current as TRegistro_Cartao).id_cartao.ToString()))
            {
                return;
            }

            //Buscar prevenda
            TpBusca[] tpBuscas = new TpBusca[0];
            Estruturas.CriarParametro(ref tpBuscas, "a.id_prevenda", (bsCartoesAbertos.Current as TRegistro_Cartao).id_cartao.ToString());
            object id_prevenda = new TCD_PreVenda().BuscarEscalar(tpBuscas, "a.id_prevenda");

            //Buscar itens prevenda
            if (id_prevenda != null && !string.IsNullOrEmpty(id_prevenda.ToString()))
            {
                BsItensPrevenda.DataSource = TCN_PreVenda_Item.Buscar((bsCartoesAbertos.Current as TRegistro_Cartao).Cd_empresa, id_prevenda.ToString(), string.Empty, string.Empty, null);
            }
        }
Ejemplo n.º 4
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();
                }
            }
        }
Ejemplo n.º 5
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();
                }
            }
        }
Ejemplo n.º 6
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();
                }
            }
        }
Ejemplo n.º 7
0
        private void fecharPista(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (!e.IsSelected)
            {
                return;
            }
            modo = TTpModo.tm_Edit;

            //Busca caixa aberto
            CamadaDados.Faturamento.PDV.TList_CaixaPDV lCaixa =
                new CamadaDados.Faturamento.PDV.TCD_CaixaPDV().Select(
                    new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.login",
                    vOperador = "=",
                    vVL_Busca = "'" + Utils.Parametros.pubLogin + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "isnull(a.st_registro, 'A')",
                    vOperador = "=",
                    vVL_Busca = "'A'"
                }
            }, 1, string.Empty);
            if (lCaixa.Count > 0)
            {
                rCaixa = lCaixa[0];
            }
            else
            {
                MessageBox.Show("Não existe caixa aberto para finalizar a movimentação!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //Controlar tempo minimo para fechamento
            try
            {
                string[] minTime = e.Item.Text.ToString().Split(new string[] { " \n", " Tempo: " }, 0);
                if (Convert.ToDateTime(minTime[2]).TimeOfDay <= new TimeSpan(0, 0, 5))
                {
                    MessageBox.Show("Tempo mínimo para fechamento é de 5 segundos.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            catch { }

            //Busca Movimentação boliche pela ID
            DataRow rMov = new TCD_MovBoliche().Buscar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.id_pista",
                    vOperador = "=",
                    vVL_Busca = "'" + e.Item.SubItems[1].Text.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.DT_Fechamento",
                    vOperador = "",
                    vVL_Busca = "is null"
                }
            }, 1).Rows[0];

            if (rMov == null)
            {
                return;
            }

            //Valida existencia de prevenda
            DataRow rPreVenda = new TCD_PreVenda().Buscar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + rMov[0].ToString().Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.id_cartao",
                    vOperador = "=",
                    vVL_Busca = "'" + rMov[1].ToString().Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.st_registro",
                    vOperador = "=",
                    vVL_Busca = "'A'"
                }
            }, 1).Rows[0];

            if (rPreVenda == null)
            {
                MessageBox.Show("Não existe lançamento de pré-venda para o cartão informado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //Obtém valor por hora
            rMov[7] = CamadaDados.UtilData.Data_Servidor();
            object            rValorhora = null;
            TList_HoraBoliche lHora      = null;

            //Buscar tipo servico pela pista
            object tp_servico = new TCD_PistaBoliche().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                                     {
                                                                                         vNM_Campo = "a.id_pista", vOperador = "=", vVL_Busca = "'" + e.Item.SubItems[1].Text.Trim() + "'"
                                                                                     } }, "a.tp_servico");

            if (tp_servico == null || string.IsNullOrEmpty(tp_servico.ToString()))
            {
                MessageBox.Show("Não foi possível obter o tipo de serviço, para o item selecionado.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }

            switch (tp_servico.ToString())
            {
            case "B":
                lHora = new TCD_HoraBoliche().Select(new TpBusca[] { new TpBusca()
                                                                     {
                                                                         vNM_Campo = "a.tp_servico", vOperador = "=", vVL_Busca = "'B'"
                                                                     } }, 0, string.Empty, " dia, hora asc");
                break;

            case "S":
                lHora = new TCD_HoraBoliche().Select(new TpBusca[] { new TpBusca()
                                                                     {
                                                                         vNM_Campo = "a.tp_servico", vOperador = "=", vVL_Busca = "'S'"
                                                                     } }, 0, string.Empty, " dia, hora asc");
                break;
            }

            calcularVlPorServico(ref rValorhora, lHora, Convert.ToDateTime(rMov[6].ToString()));

            if (lHora == null || lHora.Count.Equals(0))
            {
                MessageBox.Show("Não foi possível obter o valor por hora, para a pista de boliche.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (rValorhora == null)
            {
                MessageBox.Show("Não foi possível obter o valor por hora, para a pista de boliche.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //Lança item na prevenda
            TRegistro_PreVenda_Item rItem = new TRegistro_PreVenda_Item()
            {
                Cd_empresa = rMov[0].ToString(),
                cd_produto = tp_servico.ToString().Equals("B")
                    ? (string)new TCD_CFG().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                          {
                                                                              vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rMov[0].ToString().Trim() + "'"
                                                                          } }, "a.cd_horaboliche")
                    : (string)new TCD_CFG().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                          {
                                                                              vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rMov[0].ToString().Trim() + "'"
                                                                          } }, "a.cd_horasinuca"),
                id_prevenda = decimal.Parse(rPreVenda[17].ToString().Trim()),
                quantidade  = (decimal)Convert.ToDateTime(rMov[7].ToString()).Subtract(Convert.ToDateTime(rMov[6].ToString())).TotalMinutes / 60,
                vl_unitario = decimal.Parse(rValorhora.ToString()),
                vl_desconto = 0,
                obsItem     = "Tempo: " + (Convert.ToDateTime(rMov[7].ToString()) - Convert.ToDateTime(rMov[6].ToString())),
                st_registro = "A",
                St_impresso = "N"
            };

            TCN_PreVenda_Item.Gravar(rItem, null);

            //Atualiza prevenda e itemprevenda na movimentacao
            TCN_MovBoliche.Gravar(new TRegistro_MovBoliche()
            {
                Cd_Empresa    = rItem.Cd_empresa,
                Id_Cartao     = decimal.Parse(rMov[1].ToString().Trim()),
                Id_Pista      = decimal.Parse(e.Item.SubItems[1].Text.Trim()),
                Id_Mov        = decimal.Parse(rMov[3].ToString().Trim()),
                Id_PreVenda   = rItem.id_prevenda,
                Id_Item       = rItem.id_item,
                Dt_abertura   = Convert.ToDateTime(rMov[6].ToString().Trim()),
                Dt_fechamento = Convert.ToDateTime(rMov[7].ToString().Trim())
            }, null);

            //Reatualiza listagem de pistas
            atualizaListagem();
        }
Ejemplo n.º 8
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();
                }
            }
        }
Ejemplo n.º 9
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();
                }
            }
        }