예제 #1
0
 private void bb_imprimir_Click(object sender, EventArgs e)
 {
     if (bsValeResgate.Current != null)
     {
         if ((bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).St_impressobool)
         {
             MessageBox.Show("Não é permitido reimprimir vale.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         try
         {
             //Imprimir Vale
             List <string> Texto = new List <string>();
             Texto.Add("                RESGATE PONTOS                 ");
             Texto.Add("PLACA: " + (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).Placa +
                       "          VALE: " + (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).Id_valestr);
             Texto.Add("DATA EMISSAO: " + CamadaDados.UtilData.Data_Servidor().ToString("dd/MM/yyyy HH:mm:ss"));
             //Buscar Convenio e clifor
             CamadaDados.PostoCombustivel.TList_VendaCombustivel lVenda =
                 new CamadaDados.PostoCombustivel.TCD_VendaCombustivel().Select(
                     new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = "exists",
                     vVL_Busca = "(select 1 from VTB_FAT_PONTOSFIDELIDADE x " +
                                 "inner join TB_FAT_ResgatePontos y " +
                                 "on x.CD_Empresa = y.CD_Empresa " +
                                 "and x.ID_Ponto = y.ID_Ponto " +
                                 "where x.cd_empresa = a.CD_Empresa " +
                                 "and x.Id_Cupom = a.Id_Cupom " +
                                 "and y.ID_Vale = " + (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).Id_valestr + ")"
                 }
             }, 1, string.Empty, string.Empty);
             //Buscar Nº Dias Validade
             if (rCfgPosto.diasValidadeVale > decimal.Zero)
             {
                 Texto.Add("DT.VALIDADE: " + CamadaDados.UtilData.Data_Servidor().AddDays(int.Parse(rCfgPosto.diasValidadeVale.ToString())).ToString("dd/MM/yyyy"));
             }
             Texto.Add(string.Empty);
             Texto.Add(string.Empty);
             //Verificar se existe msg especifica para clifor do convenio
             //Buscar msg
             if (!string.IsNullOrEmpty(lVenda[0].Nm_clifor))
             {
                 Texto.Add(lVenda[0].Nm_clifor);
                 Texto.Add(string.Empty);
                 Texto.Add(string.Empty);
             }
             string Ds_msgVale_Clifor =
                 new CamadaDados.PostoCombustivel.TCD_Convenio_Clifor().BuscarEscalar(
                     new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.cd_clifor",
                     vOperador = "=",
                     vVL_Busca = "'" + lVenda[0].Cd_clifor.Trim() + "'"
                 },
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.id_convenio",
                     vOperador = "=",
                     vVL_Busca = lVenda[0].Id_conveniostr
                 }
             }, "a.ds_msgvale").ToString();
             if (string.IsNullOrEmpty(Ds_msgVale_Clifor))
             {
                 Texto.Add(rCfgPosto.Ds_msgvale.Trim().ToUpper());
             }
             else
             {
                 Texto.Add(Ds_msgVale_Clifor);
             }
             Texto.Add(string.Empty);
             Texto.Add(string.Empty);
             object obj = new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade().BuscarEscalar(
                 new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.cd_empresa",
                     vOperador = "=",
                     vVL_Busca = "'" + rCfgPosto.Cd_empresa.Trim() + "'"
                 },
                 new Utils.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 Utils.TpBusca()
                 {
                     vNM_Campo = "replace(a.placa, '-', '')",
                     vOperador = "=",
                     vVL_Busca = "'" + placa.Text.Replace("-", string.Empty) + "'"
                 }
             }, "isnull(sum(isnull(a.qt_pontos, 0) - isnull(a.pontos_res, 0)), 0)");
             Texto.Add("PONTOS RESGATAR: " + (obj == null ? "0" : obj.ToString()));
             ImprimirVale(Texto);
             //Marcar vale como impresso
             try
             {
                 (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).St_impresso = "S";
                 CamadaNegocio.Faturamento.Fidelizacao.TCN_ValeResgate.Gravar(bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate, null);
                 afterBusca();
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
         catch { }
     }
 }
예제 #2
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();
                }
            }
        }