public override bool execute( ) { Registry("execute exec_pos_cancelaVendaEmpresarial "); /// USER [ execute ] // ## Buscar parcelas com NSU e data de hoje // ## pois somente pode-se cancelar transações no mesmo dia T_Parcelas parc = new T_Parcelas(this); if (!parc.select_rows_nsu(input_st_nsu_cancel, GetTodayStartTime(), GetTodayEndTime())) { output_st_msg = "erro aplicativo"; return(false); } T_Parcelas tmp = new T_Parcelas(this); while (parc.fetch()) { // ## Atualizar parcela tmp.ExclusiveAccess(); if (!tmp.selectIdentity(parc.get_identity())) { output_st_msg = "erro aplicativo"; return(false); } // ## Se parcela já foi cancelada, sair if (tmp.get_tg_pago() == TipoParcela.CANCELADA) { output_st_msg = "prev. cancel"; return(false); } // ## Se for cartão edu, estornar imediatamente no disponivel if (cart.get_tg_tipoCartao() == TipoCartao.educacional) { long disp = Convert.ToInt64(cart.get_vr_disp_educacional()) + Convert.ToInt64(tmp.get_vr_valor()); cart.set_vr_disp_educacional(disp.ToString()); } else if (cart.get_tg_tipoCartao() == TipoCartao.presente) { cart.set_vr_limiteTotal(cart.get_int_vr_limiteTotal() + tmp.get_int_vr_valor()); } // ## Atualizar if (!tmp.synchronize_T_Parcelas()) { output_st_msg = "erro aplicativo"; return(false); } } // ## Atualiza cartão if (!cart.synchronize_T_Cartao()) { output_st_msg = "erro aplicativo"; return(false); } output_st_msg = "NSU: " + input_st_nsu_cancel.TrimStart('0'); var_codResp = "0000"; /// USER [ execute ] END Registry("execute done exec_pos_cancelaVendaEmpresarial "); return(true); }
public override bool finish( ) { Registry("finish exec_pos_vendaEmpresarialSITEF "); /// USER [ finish ] if (IsFail) { // ## Nsu não foi criado! l_nsu.set_dt_log(GetDataBaseTime()); if (!l_nsu.create_LOG_NSU()) { output_st_msg = "Erro aplicativo"; return(false); } var_nu_nsuAtual = l_nsu.get_identity(); var_operacaoCartao = var_operacaoCartaoFail; } // ## Copiar dados para saída output_cont_pr.set_st_codResp(var_codResp); output_cont_pr.set_st_nsuRcb(var_nu_nsuAtual.PadLeft(6, '0')); output_cont_pr.set_st_nsuBanco(new StringBuilder().Append(DateTime.Now.Year.ToString()) .Append(DateTime.Now.Month.ToString("00")) .Append(DateTime.Now.Day.ToString("00")) .Append(var_nu_nsuAtual.PadLeft(6, '0')).ToString()); output_cont_pr.set_st_PAN(cart.get_st_empresa() + cart.get_st_matricula()); output_cont_pr.set_st_mesPri(Context.EMPTY); output_cont_pr.set_st_loja(loj.get_st_loja()); output_cont_pr.set_st_nomeCliente(var_nomeCliente); output_cont_pr.set_st_variavel(info.get_st_empresaAfiliada()); LOG_Transacoes l_tr = new LOG_Transacoes(this); #region - registra a transação - l_tr.set_fk_terminal(term.get_identity()); l_tr.set_fk_empresa(emp.get_identity()); l_tr.set_fk_cartao(cart.get_identity()); l_tr.set_vr_total(var_vr_total); l_tr.set_nu_parcelas(var_nu_parcelas); l_tr.set_nu_nsu(var_nu_nsuAtual); l_tr.set_dt_transacao(GetDataBaseTime()); l_tr.set_nu_cod_erro(output_cont_pr.get_st_codResp()); l_tr.set_nu_nsuOrig(input_cont_pe.get_st_nsuOrigemSITEF()); l_tr.set_en_operacao(var_operacaoCartao); l_tr.set_st_msg_transacao("TERMINAL SITEF: " + input_cont_pe.get_st_terminalSITEF()); l_tr.set_fk_loja(term.get_fk_loja()); l_tr.set_st_doc(st_doc); if (IsFail) { l_tr.set_tg_confirmada(TipoConfirmacao.Erro); l_tr.set_tg_contabil(Context.FALSE); } else { l_tr.set_tg_confirmada(TipoConfirmacao.Pendente); l_tr.set_tg_contabil(Context.TRUE); } if (cart.get_tg_tipoCartao() == TipoCartao.educacional) { l_tr.set_vr_saldo_disp(cart.get_vr_disp_educacional()); l_tr.set_vr_saldo_disp_tot(cart.get_vr_educacional()); } else { l_tr.set_vr_saldo_disp(vr_dispMes.ToString()); l_tr.set_vr_saldo_disp_tot(vr_dispTot.ToString()); } #endregion //alterado output_cont_pr.set_st_variavel("Saldo disponível no mês: " + new money().setMoneyFormat(vr_dispMes) + " * " + "Saldo disponível parcelado: " + new money().setMoneyFormat(vr_dispTot)); l_tr.create_LOG_Transacoes(); #region - vincula parcelas com a transação - T_Parcelas parc_upd = new T_Parcelas(this); // ## Como o registro da transação é feito depois, // ## vincular as parcelas com este mesmo registro. for (int t = 0; t < lstParcs.Count; ++t) { parc_upd.ExclusiveAccess(); if (parc_upd.selectIdentity(lstParcs[t].ToString())) { parc_upd.set_fk_log_transacoes(l_tr.get_identity()); parc_upd.synchronize_T_Parcelas(); } parc_upd.ReleaseExclusive(); } #endregion /// USER [ finish ] END Registry("finish done exec_pos_vendaEmpresarialSITEF "); if (remoteTransaction == true) { return(true); } DataPortable dp_out = new DataPortable(); dp_out.MapTagValue(COMM_OUT_EXEC_POS_VENDAEMPRESARIAL.st_msg, output_st_msg); var_Comm.AddExitPortable(ref dp_out); DataPortable dp_cont_1 = new DataPortable(); dp_cont_1.MapTagContainer(COMM_OUT_EXEC_POS_VENDAEMPRESARIAL.pr, output_cont_pr as DataPortable); var_Comm.AddExitPortable(ref dp_cont_1); return(true); }
public override bool execute( ) { if (base.execute() == false) { return(false); } Registry("execute exec_repasseLoja "); /// USER [ execute ] loj = new T_Loja(this); if (!loj.select_rows_loja(input_st_codLoja)) { return(false); } if (!loj.fetch()) { return(false); } T_RepasseLoja rl = new T_RepasseLoja(this); rl.set_dt_efetiva(GetDataBaseTime()); rl.set_fk_loja(loj.get_identity()); rl.set_st_ident(input_st_ident); rl.set_tg_opcao(input_tg_opcao); rl.set_vr_valor(input_vr_valor); if (!rl.create_T_RepasseLoja()) { return(false); } output_id_confRepasse = rl.get_identity(); LINK_RepasseParcela lrp = new LINK_RepasseParcela(this); T_Parcelas parc = new T_Parcelas(this); for (int t = 0; t < input_array_generic_lstPar.Count; ++t) { DadosRepasse dr = new DadosRepasse(input_array_generic_lstPar[t] as DataPortable); if (dr.get_tg_confirmado() == Context.FALSE) { continue; } parc.ExclusiveAccess(); if (!parc.selectIdentity(dr.get_id_parcela())) { return(false); } // esta parcela foi repassada parc.set_tg_pago(Context.TRUE); if (!parc.synchronize_T_Parcelas()) { return(false); } parc.ReleaseExclusive(); lrp.set_fk_parcela(parc.get_identity()); lrp.set_fk_repasseLoja(rl.get_identity()); if (!lrp.create_LINK_RepasseParcela()) { return(false); } } PublishNote("Repasse feito com sucesso"); /// USER [ execute ] END Registry("execute done exec_repasseLoja "); return(true); }
public override bool execute( ) { if (base.execute() == false) { return(false); } Registry("execute exec_pf_cancelaVenda "); /// USER [ execute ] // ## Buscar pendência (já confirmada) para cancelamento T_PendPayFone pend = new T_PendPayFone(this); pend.ExclusiveAccess(); if (!pend.select_rows_nsu(input_st_nsu_cancelado)) { output_st_codResp = "01"; output_st_msg = "NSU inválido (" + input_st_nsu_cancelado.TrimStart('0') + ")"; return(false); } if (!pend.fetch()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Buscar terminal vinculado term = new T_Terminal(this); if (!term.selectIdentity(pend.get_fk_terminal())) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } var_valorTotal = pend.get_vr_valor(); // ## Buscar lojista pelo terminal usado na pendência T_PayFone pf_lojista = new T_PayFone(this); if (!pf_lojista.select_fk_term(pend.get_fk_terminal())) { output_st_codResp = "05"; output_st_msg = "Lojista invalido"; return(false); } // ## Confere se telefones batem if (pf_lojista.get_st_telefone() != input_st_tel_lojista) { output_st_codResp = "06"; output_st_msg = "Lojista invalido"; } // ## Se não estiver confirmado, não pode cancelar if (pend.get_en_situacao() != TipoPendPayFone.CONFIRMADO) { output_st_codResp = "02"; output_st_msg = "NSU não confirmado " + input_st_nsu_cancelado.TrimStart('0'); return(false); } // ## Se já estiver cancelado, não pode cancelar if (pend.get_en_situacao() == TipoPendPayFone.CANCELADO) { output_st_codResp = "02"; output_st_msg = "NSU prev. cancelado " + input_st_nsu_cancelado.TrimStart('0'); return(false); } // ## Atribui como cancelado pend.set_en_situacao(TipoPendPayFone.CANCELADO); // ## Atualizar if (!pend.synchronize_T_PendPayFone()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Buscar parcelas de hoje para determinado NSU T_Parcelas parc = new T_Parcelas(this); parc.ExclusiveAccess(); if (!parc.select_rows_nsu(pend.get_nu_nsu(), GetTodayStartTime(), GetTodayEndTime())) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } if (!parc.fetch()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Buscar cartão envolvido T_Cartao cart = new T_Cartao(this); cart.ExclusiveAccess(); if (!cart.selectIdentity(parc.get_fk_cartao())) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Se for edu, disponibilizar imediatamente (estorno) if (cart.get_tg_tipoCartao() == TipoCartao.educacional) { long disp = Convert.ToInt64(cart.get_vr_disp_educacional()) + Convert.ToInt64(parc.get_vr_valor()); cart.set_vr_disp_educacional(disp.ToString()); } // ## Atualiza cartão if (!cart.synchronize_T_Cartao()) { output_st_codResp = "80"; output_st_msg = "Erro de aplicativo"; return(false); } // ## Atualizar transação original LOG_Transacoes tmp_l_tr = new LOG_Transacoes(this); tmp_l_tr.ExclusiveAccess(); if (!tmp_l_tr.select_rows_nsu_oper(input_st_nsu_cancelado, OperacaoCartao.PAY_FONE_GRAVA_PEND, GetTodayStartTime(), GetTodayEndTime())) { output_st_msg = "NSU inválido (" + input_st_nsu_cancelado.TrimStart('0') + ")"; return(false); } if (!tmp_l_tr.fetch()) { output_st_msg = "Erro aplicativo"; return(false); } // ## Confirma cancelamento tmp_l_tr.set_tg_contabil(Context.TRUE); tmp_l_tr.set_tg_confirmada(TipoConfirmacao.Cancelada); // ## Atualiza transação if (!tmp_l_tr.synchronize_LOG_Transacoes()) { output_st_msg = "Erro aplicativo"; return(false); } output_st_codResp = "00"; output_st_msg = "NSU: " + input_st_nsu_cancelado.TrimStart('0'); /// USER [ execute ] END Registry("execute done exec_pf_cancelaVenda "); return(true); }