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 { } } }
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(); } } }