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);
        }
示例#2
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 execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_repasseData ");

            /// USER [ execute ]

            DateTime t_start = Convert.ToDateTime(input_dt_ini);
            DateTime t_end   = t_start.AddDays(1);

            Hashtable hshLojas = new Hashtable();

            ArrayList lstEmpresas = new ArrayList();

            // ## Busca empresa

            T_Empresa emp      = new T_Empresa(this);
            T_Empresa emp_link = new T_Empresa(this);

            if (!emp.select_rows_empresa(input_cont_header.get_st_empresa()))
            {
                PublishError("Código de empresa inválida");
                return(false);
            }

            if (!emp.fetch())
            {
                return(false);
            }

            lstEmpresas.Add(emp.get_identity());

            if (emp_link.select_fk_admin(emp.get_identity()))
            {
                while (emp_link.fetch())
                {
                    lstEmpresas.Add(emp_link.get_identity());
                }
            }

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            // ## Busca convenios

            if (!loj_emp.select_rows_empresas(ref lstEmpresas))
            {
                PublishError("Nenhuma loja cadastrada");
                return(false);
            }

            T_Loja         loj  = new T_Loja(this);
            T_Cartao       cart = new T_Cartao(this);
            LOG_Transacoes ltr  = new LOG_Transacoes(this);
            T_Parcelas     parc = new T_Parcelas(this);

            StringBuilder sb       = new StringBuilder();
            StringBuilder sb_lojas = new StringBuilder();

            while (loj_emp.fetch())
            {
                if (!loj.selectIdentity(loj_emp.get_fk_loja()))
                {
                    return(false);
                }

                double tx   = loj_emp.get_int_tx_admin();
                long   dias = loj_emp.get_int_nu_dias_repasse();

                long repasse    = 0,
                     total_loja = 0;

                if (parc.select_rows_repasse(loj.get_identity(),
                                             TipoParcela.EM_ABERTO))                      // ainda não pagos
                {
                    while (parc.fetch())
                    {
                        if (ltr.selectIdentity(parc.get_fk_log_transacoes()))
                        {
                            if (ltr.get_tg_confirmada() != TipoConfirmacao.Confirmada)
                            {
                                continue;
                            }
                        }

                        if (!cart.selectIdentity(parc.get_fk_cartao()))
                        {
                            return(false);
                        }

                        DadosRepasse dr = new DadosRepasse();

                        dr.set_st_nsu(parc.get_nu_nsu());
                        dr.set_st_loja(loj.get_st_loja());
                        dr.set_st_cartao(cart.get_st_empresa() + "." +
                                         cart.get_st_matricula() + "." +
                                         cart.get_st_titularidade());

                        DateTime tim = Convert.ToDateTime(parc.get_dt_inclusao());

                        // fora da faixa requerida pelo relatório
                        if (tim > t_end)
                        {
                            continue;
                        }

                        dr.set_dt_trans(parc.get_dt_inclusao());

                        // acerta data correta do repasse
                        dr.set_dt_repasse(GetDataBaseTime(tim.AddDays(dias)));

                        repasse = Convert.ToInt64(parc.get_int_vr_valor() - (parc.get_int_vr_valor() * tx / 10000));

                        dr.set_vr_repasse(repasse.ToString());
                        dr.set_id_parcela(parc.get_identity());

                        DateTime tm_rep = Convert.ToDateTime(dr.get_dt_repasse());

                        dr.set_tg_confirmado(Context.TRUE);

                        if (tm_rep <= t_start)
                        {
                            total_loja += repasse;
                        }
                        else if (tm_rep <= t_end)
                        {
                            total_loja += repasse;
                        }

                        // salva registro do detalhe
                        {
                            DataPortable mem = dr as DataPortable;

                            sb.Append(MemorySave(ref mem));
                            sb.Append(",");
                        }
                    }
                }

                // salva registro da loja
                if (total_loja > 0)
                {
                    DadosSumarioRepasse dsr = new DadosSumarioRepasse();

                    dsr.set_st_loja("(" + loj.get_st_loja() + ") " + loj.get_st_nome() + " - " + loj.get_st_social());
                    dsr.set_st_codLoja(loj.get_st_loja());
                    dsr.set_vr_valor(total_loja.ToString());

                    DataPortable mem = dsr as DataPortable;

                    sb_lojas.Append(MemorySave(ref mem));
                    sb_lojas.Append(",");
                }
            }

            // ## Guarda indexador de grupo dos detalhes
            {
                string list_ids = sb.ToString().TrimEnd(',');

                if (list_ids == "")
                {
                    PublishNote("Nenhum registro encontrado");
                    return(false);
                }

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                output_block_detalhe_loja = MemorySave(ref dp);
            }

            // ## Guarda indexador de grupo de sumario das lojas
            {
                string list_ids = sb_lojas.ToString().TrimEnd(',');

                if (list_ids == "")
                {
                    PublishNote("Nenhum registro encontrado");
                    return(false);
                }

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                output_block_sumario_loja = MemorySave(ref dp);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_repasseData ");

            return(true);
        }
        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);
        }
示例#5
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute schedule_fech_mensal ");

            /// USER [ execute ]

            T_Parcelas parc = new T_Parcelas(this);

            string mes = DateTime.Now.Month.ToString().PadLeft(2, '0');
            string ano = DateTime.Now.Year.ToString();

            T_Cartao cart     = new T_Cartao(this);
            T_Cartao cart_upd = new T_Cartao(this);

            if (parc.select_rows_emp_fechamento(emp.get_identity(), "0"))                  // numero parcela > 0
            {
                T_Parcelas       tmp  = new T_Parcelas(this);
                LOG_Transacoes   ltr  = new LOG_Transacoes(this);
                T_InfoAdicionais info = new T_InfoAdicionais(this);

                while (parc.fetch())
                {
                    if (!tmp.selectIdentity(parc.get_identity()))
                    {
                        continue;
                    }

                    if (!cart.selectIdentity(parc.get_fk_cartao()))
                    {
                        continue;
                    }

                    if (!ltr.selectIdentity(parc.get_fk_log_transacoes()))
                    {
                        continue;
                    }

                    if (ltr.get_tg_confirmada() != TipoConfirmacao.Confirmada)
                    {
                        continue;
                    }

                    if (st_empresaAfiliada != "")
                    {
                        if (!info.selectIdentity(cart.get_fk_infoAdicionais()))
                        {
                            continue;
                        }

                        if (info.get_st_empresaAfiliada().ToUpper().Trim() != st_empresaAfiliada.ToUpper().Trim())
                        {
                            continue;
                        }
                    }

                    if (parc.get_int_nu_parcela() == 1)
                    {
                        LOG_Fechamento log_fech = new LOG_Fechamento(this);

                        log_fech.set_st_mes(mes);
                        log_fech.set_st_ano(ano);
                        log_fech.set_vr_valor(parc.get_vr_valor());
                        log_fech.set_dt_fechamento(GetDataBaseTime());
                        log_fech.set_fk_empresa(parc.get_fk_empresa());
                        log_fech.set_fk_loja(parc.get_fk_loja());
                        log_fech.set_fk_cartao(parc.get_fk_cartao());
                        log_fech.set_fk_parcela(parc.get_identity());
                        log_fech.set_dt_compra(parc.get_dt_inclusao());
                        log_fech.set_nu_parcela(parc.get_nu_parcela());

                        log_fech.set_st_afiliada(st_empresaAfiliada);

                        log_fech.set_st_cartao(cart.get_st_empresa() +
                                               cart.get_st_matricula() +
                                               cart.get_st_titularidade());

                        if (!log_fech.create_LOG_Fechamento())
                        {
                            return(false);
                        }
                    }

                    // decrementa parcela
                    tmp.set_nu_parcela(tmp.get_int_nu_parcela() - 1);

                    tmp.set_tg_pago(Context.TRUE);

                    if (!tmp.synchronize_T_Parcelas())
                    {
                        return(false);
                    }
                }
            }

            //zera cota extra de todo mundo

            if (cart.select_rows_empresa(emp.get_st_empresa()))
            {
                while (cart.fetch())
                {
                    cart_upd.ExclusiveAccess();

                    cart_upd.selectIdentity(cart.get_identity());
                    cart_upd.set_vr_extraCota("0");

                    cart_upd.synchronize_T_Cartao();
                    cart_upd.ReleaseExclusive();
                }
            }


            /// USER [ execute ] END

            Registry("execute done schedule_fech_mensal ");

            return(true);
        }