Exemplo n.º 1
0
        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 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);
        }