public override bool execute( ) { Registry("execute exec_pos_vendaEmpresarialSITEF "); /// USER [ execute ] #region - atualizar senhas - cart.ExclusiveAccess(); if (!cart.selectIdentity(cart.get_identity())) { output_st_msg = "Erro aplicativo"; return(false); } if (!prot.selectIdentity(cart.get_fk_dadosProprietario())) { output_st_msg = "Erro aplicativo"; return(false); } if (cart.get_st_titularidade() != "01") { T_Dependente dep = new T_Dependente(this); if (!dep.select_rows_prop_tit(cart.get_fk_dadosProprietario(), cart.get_st_titularidade())) { output_st_msg = "Erro aplicativo"; return(false); } if (!dep.fetch()) { output_st_msg = "Erro aplicativo"; return(false); } var_nomeCliente = dep.get_st_nome(); } else { var_nomeCliente = prot.get_st_nome(); } if (IsDigitado) { string cod_acesso = new ApplicationUtil().calculaCodigoAcesso(cart.get_st_empresa(), cart.get_st_matricula(), cart.get_st_titularidade(), cart.get_nu_viaCartao(), prot.get_st_cpf()); Trace(cod_acesso); if (cod_acesso != input_cont_pe.get_st_senha()) { output_st_msg = "Senha inválida"; var_codResp = "4343"; return(false); } } else { if (cart.get_st_senha() != input_cont_pe.get_st_senha()) { long senhasErradas = cart.get_int_nu_senhaErrada() + 1; cart.set_nu_senhaErrada(senhasErradas.ToString()); if (senhasErradas > 4) { cart.set_tg_status(CartaoStatus.Bloqueado); cart.set_tg_motivoBloqueio(MotivoBloqueio.SENHA_ERRADA); cart.set_dt_bloqueio(GetDataBaseTime()); } if (!cart.synchronize_T_Cartao()) { output_st_msg = "Erro aplicativo"; return(false); } output_st_msg = "Senha inválida"; var_codResp = "4343"; return(false); } else { cart.set_nu_senhaErrada(Context.NONE); } } if (cart.get_tg_tipoCartao() == TipoCartao.presente) { cart.set_vr_limiteTotal(cart.get_int_vr_limiteTotal() - vr_valor); if (!cart.synchronize_T_Cartao()) { output_st_msg = "Erro aplicativo"; return(false); } } cart.ReleaseExclusive(); #endregion #region - busca informações extras - if (!info.selectIdentity(cart.get_fk_infoAdicionais())) { output_st_msg = "Erro aplicativo"; return(false); } #endregion #region - Faz efetivamente a venda - int tmp_nu_parc = Convert.ToInt32(input_cont_pe.get_nu_parcelas()); int index_pos = 0; string tmp_variavel = input_cont_pe.get_st_valores(); if (tmp_variavel.Length < tmp_nu_parc * 12) { output_st_msg = "formato incorreto"; return(false); } if (cart.get_tg_tipoCartao() != TipoCartao.presente) { if (tmp_nu_parc > emp.get_int_nu_parcelas()) { output_st_msg = "excede max. parcelas"; var_codResp = "1212"; return(false); } } #region - obtem nsu - l_nsu.set_dt_log(GetDataBaseTime()); if (!l_nsu.create_LOG_NSU()) { output_st_msg = "Erro aplicativo"; return(false); } #endregion var_nu_nsuAtual = l_nsu.get_identity(); var_nu_nsuEntidade = var_nu_nsuAtual; var_dt_transacao = GetDataBaseTime(); // ## Criar parcelas for (int t = 1; t <= tmp_nu_parc; ++t) { T_Parcelas parc = new T_Parcelas(this); string valor_unit_parc = tmp_variavel.Substring(index_pos, 12); index_pos += 12; #region - atribui valores e links à parcela - parc.set_nu_nsu(l_nsu.get_identity()); parc.set_fk_empresa(emp.get_identity()); parc.set_fk_cartao(cart.get_identity()); parc.set_dt_inclusao(var_dt_transacao); parc.set_nu_parcela(t.ToString()); parc.set_vr_valor(valor_unit_parc); parc.set_nu_indice(t.ToString()); parc.set_tg_pago(TipoParcela.EM_ABERTO); parc.set_fk_loja(loj.get_identity()); parc.set_nu_tot_parcelas(tmp_nu_parc.ToString()); parc.set_fk_terminal(term.get_identity()); #endregion if (!parc.create_T_Parcelas()) { output_st_msg = "erro aplicativo"; return(false); } lstParcs.Add(parc.get_identity()); } #endregion var_codResp = "0000"; /// USER [ execute ] END Registry("execute done exec_pos_vendaEmpresarialSITEF "); return(true); }
public override bool execute( ) { if (base.execute() == false) { return(false); } Registry("execute exec_pf_autorizaVendaPendente "); /// USER [ execute ] // ## Busco pendência de acordo com NSU pendPayFone = new T_PendPayFone(this); /*DateTime tim = new DateTime ( DateTime.Now.Year, * DateTime.Now.Month, * DateTime.Now.Day ); */ if (!pendPayFone.select_rows_nsu(input_st_nsu /*GetDataBaseTime ( tim ) , * GetDataBaseTime ( tim.AddDays(1) )*/)) { output_st_codResp = "01"; output_st_msg = "Nenhuma pendência (" + input_st_nsu.TrimStart('0') + ")"; return(false); } if (!pendPayFone.fetch()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Busco terminal de acordo com FK da pendência if (!term.selectIdentity(pendPayFone.get_fk_terminal())) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } var_valorTotal = pendPayFone.get_vr_valor(); Trace(pendPayFone.get_en_situacao()); // ## Se sit. já foi confirmada, sair if (pendPayFone.get_en_situacao() == TipoPendPayFone.CONFIRMADO) { output_st_codResp = "03"; output_st_msg = "NSU Prev. Confirmado (" + input_st_nsu.TrimStart('0') + ")"; return(false); } // ## Se esta pendência já foi cancelada ou negada, sair if (pendPayFone.get_en_situacao() == TipoPendPayFone.NEGADO || pendPayFone.get_en_situacao() == TipoPendPayFone.CANCELADO) { output_st_codResp = "04"; output_st_msg = "NSU Prev. Cancelado (" + input_st_nsu.TrimStart('0') + ")"; return(false); } // ## Atualizar senhas cart.ExclusiveAccess(); // ## Busco o mesmo registro para atualização if (!cart.selectIdentity(cart.get_identity())) { return(false); } // ## Verifico senhas if (cart.get_st_senha() != input_st_senha) { long senhasErradas = cart.get_int_nu_senhaErrada() + 1; cart.set_nu_senhaErrada(senhasErradas.ToString()); // ## Cinco senhas erradas, bloqueia cartão vinculado ao payfone if (senhasErradas > 4) { cart.set_tg_status(CartaoStatus.Bloqueado); } // ## Atualiza if (!cart.synchronize_T_Cartao()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } output_st_codResp = "02"; output_st_msg = "Senha Errada"; return(false); } else { // ## Zera senhas cart.set_nu_senhaErrada(Context.NONE); if (!cart.synchronize_T_Cartao()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } } // ## Verifica disponivel mensal nas parcelas T_Parcelas parc = new T_Parcelas(this); vr_limMes = cart.get_int_vr_limiteMensal(); vr_limTot = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota(); new ApplicationUtil().GetSaldoDisponivel(ref cart, ref vr_limMes, ref vr_limTot); // ## Conferir limite mensal if (pendPayFone.get_int_vr_valor() > vr_limMes) { output_st_codResp = "03"; output_st_msg = "limite mês excedido"; return(false); } // ## Conferir limite total if (pendPayFone.get_int_vr_valor() > vr_limTot) { output_st_codResp = "04"; output_st_msg = "limite total excedido"; return(false); } // ## Criar as parcelas T_Parcelas new_parc = new T_Parcelas(this); #region - atribuição - new_parc.set_nu_nsu(input_st_nsu); new_parc.set_fk_empresa(emp.get_identity()); new_parc.set_fk_cartao(cart.get_identity()); new_parc.set_dt_inclusao(GetDataBaseTime()); new_parc.set_nu_parcela("1"); new_parc.set_nu_tot_parcelas("1"); new_parc.set_nu_indice("1"); new_parc.set_vr_valor(pendPayFone.get_vr_valor()); new_parc.set_tg_pago(TipoParcela.EM_ABERTO); #endregion // ## Buscar terminal term = new T_Terminal(this); if (!term.selectIdentity(pendPayFone.get_fk_terminal())) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Atribuir os links corretamente new_parc.set_fk_loja(term.get_fk_loja()); new_parc.set_fk_terminal(term.get_identity()); // ## Confirmo a pendência pendPayFone.set_en_situacao(TipoPendPayFone.CONFIRMADO); // ## Atualizar tabela if (!pendPayFone.synchronize_T_PendPayFone()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Busco transação de gravação de pendência do payfone LOG_Transacoes l_tr = new LOG_Transacoes(this); l_tr.ExclusiveAccess(); if (!l_tr.select_rows_nsu_oper(input_st_nsu, OperacaoCartao.PAY_FONE_GRAVA_PEND, GetTodayStartTime(), GetTodayEndTime())) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } if (!l_tr.fetch()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } output_st_nsu_autorizado = input_st_nsu; // ## Confirmo esta transação l_tr.set_tg_contabil(Context.TRUE); l_tr.set_tg_confirmada(TipoConfirmacao.Confirmada); // ## Atualizo if (!l_tr.synchronize_LOG_Transacoes()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Atribuo a minha transação para a parcela criada com payfone new_parc.set_fk_log_transacoes(l_tr.get_identity()); // ## Crio o registro na tabela de parcelas (somente a vista!) if (!new_parc.create_T_Parcelas()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } output_st_codResp = "00"; output_st_msg = "NSU: " + input_st_nsu.TrimStart('0'); /// USER [ execute ] END Registry("execute done exec_pf_autorizaVendaPendente "); return(true); }