public static void ProcessarPontosFid(TRegistro_Convenio_Clifor rConv, TRegistro_VendaCombustivel rVenda, string Placa, string Cpf_motorista, BancoDados.TObjetoBanco banco) { if ((rConv.Base_calc_fid > decimal.Zero) && (!string.IsNullOrEmpty(rConv.Tp_qt_vl)) && (rConv.Qt_pontos_fid > decimal.Zero) && !string.IsNullOrWhiteSpace(Placa)) { rVenda.rPontosFid = new CamadaDados.Faturamento.Fidelizacao.TRegistro_PontosFidelidade(); rVenda.rPontosFid.Cd_empresa = rVenda.Cd_empresa; if (rConv.Tp_pontos_fid.Trim().ToUpper().Equals("M")) { rVenda.rPontosFid.Cpf_cliente = Cpf_motorista; } else if (rConv.Tp_pontos_fid.Trim().ToUpper().Equals("P")) { rVenda.rPontosFid.Placa = Placa; } else { rVenda.rPontosFid.Cd_clifor = rConv.Cd_clifor; } rVenda.rPontosFid.Dt_registro = CamadaDados.UtilData.Data_Servidor(banco); if (rConv.Nr_diasvalidade_fid > decimal.Zero) { rVenda.rPontosFid.Dt_validade = rVenda.rPontosFid.Dt_registro.Value.AddDays(Convert.ToDouble(rConv.Nr_diasvalidade_fid)); } if (rConv.Tp_qt_vl.Trim().Equals("Q"))//Quantidade { int resto = 0; rVenda.rPontosFid.Qt_pontos = Math.DivRem(Convert.ToInt32(rVenda.Volumeabastecido), Convert.ToInt32(rConv.Base_calc_fid), out resto) * rConv.Qt_pontos_fid; } else//Valor { int resto = 0; rVenda.rPontosFid.Qt_pontos = Math.DivRem(Convert.ToInt32(rVenda.Vl_subtotal), Convert.ToInt32(rConv.Base_calc_fid), out resto) * rConv.Base_calc_fid; } //buscar se placa é bloqueada if (new TCD_PlacaBloqPontos().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.placa", vOperador = "=", vVL_Busca = "'" + rVenda.Placaveiculo + "'" } }, "a.placa") != null) { rVenda.rPontosFid.St_registro = "C"; } } }
public static string Excluir(TRegistro_Convenio_Clifor val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Convenio_Clifor qtb_conv = new TCD_Convenio_Clifor(); try { if (st_transacao) { st_transacao = qtb_conv.CriarBanco_Dados(true); } else { qtb_conv.Banco_Dados = banco; } //Excluir placa val.lPlaca.ForEach(p => TCN_Convenio_Placa.Excluir(p, qtb_conv.Banco_Dados)); val.lPlacaDel.ForEach(p => TCN_Convenio_Placa.Excluir(p, qtb_conv.Banco_Dados)); //Excluir motorista val.lMotorista.ForEach(p => TCN_Motorista_Convenio.Excluir(p, qtb_conv.Banco_Dados)); val.lMotDel.ForEach(p => TCN_Motorista_Convenio.Excluir(p, qtb_conv.Banco_Dados)); //Verificar se o convenio possui movimentacao if (new TCD_VendaCombustivel(qtb_conv.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_convenio", vOperador = "=", vVL_Busca = val.Id_conveniostr }, new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim( ) + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + val.Cd_produto.Trim() + "'" } }, "1") != null) { val.St_registro = "C"; Gravar(val, qtb_conv.Banco_Dados); } else { qtb_conv.Excluir(val); } if (st_transacao) { qtb_conv.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_conv.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir clifor: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_conv.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_Convenio_Clifor val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Convenio_Clifor qtb_conv = new TCD_Convenio_Clifor(); try { if (st_transacao) { st_transacao = qtb_conv.CriarBanco_Dados(true); } else { qtb_conv.Banco_Dados = banco; } if (!val.St_registro.Trim().ToUpper().Equals("C")) { //Verificar se nao e permitido ter mais de um convenio por cliente if (!CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlBool("ST_CLIFOR_MULTIPLOS_CONV", qtb_conv.Banco_Dados)) { //Verificar se o clifor ja possui convenio amarrado TList_Convenio_Clifor lConvCli = new TCD_Convenio_Clifor(qtb_conv.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + val.Cd_endereco.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + val.Cd_produto.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_convenio", vOperador = "<>", vVL_Busca = val.Id_conveniostr } }, 0, string.Empty); lConvCli.ForEach(p => { p.lMotorista = TCN_Motorista_Convenio.Buscar(p.Id_conveniostr, p.Cd_empresa, p.Cd_clifor, p.Cd_endereco, p.Cd_produto, string.Empty, string.Empty, string.Empty, qtb_conv.Banco_Dados); p.lPlaca = TCN_Convenio_Placa.Buscar(p.Id_conveniostr, p.Cd_empresa, p.Cd_clifor, p.Cd_endereco, p.Cd_produto, qtb_conv.Banco_Dados); Excluir(p, qtb_conv.Banco_Dados); }); } } string retorno = qtb_conv.Gravar(val); //Gravar placa val.lPlacaDel.ForEach(p => TCN_Convenio_Placa.Excluir(p, qtb_conv.Banco_Dados)); val.lPlaca.ForEach(p => { p.Id_convenio = val.Id_convenio; p.Cd_empresa = val.Cd_empresa; p.Cd_clifor = val.Cd_clifor; p.Cd_endereco = val.Cd_endereco; p.Cd_produto = val.Cd_produto; TCN_Convenio_Placa.Gravar(p, qtb_conv.Banco_Dados); }); //Gravar motorista val.lMotDel.ForEach(p => TCN_Motorista_Convenio.Excluir(p, qtb_conv.Banco_Dados)); val.lMotorista.ForEach(p => { p.Id_convenio = val.Id_convenio; p.Cd_empresa = val.Cd_empresa; p.Cd_clifor = val.Cd_clifor; p.Cd_endereco = val.Cd_endereco; p.Cd_produto = val.Cd_produto; TCN_Motorista_Convenio.Gravar(p, qtb_conv.Banco_Dados); }); if (st_transacao) { qtb_conv.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_conv.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar clifor: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_conv.deletarBanco_Dados(); } } }