public override bool execute( )
        {
            Registry("execute web_fetch_edu_emp_hist ");

            /// USER [ execute ]

            StringBuilder sb = new StringBuilder();

            LOG_Edu_RendimentoEmpresa rend_emp = new LOG_Edu_RendimentoEmpresa(this);
            T_Edu_EmpresaVirtual      emp      = new T_Edu_EmpresaVirtual(this);

            if (!emp.select_rows_codigo(input_st_codigo))
            {
                PublishError("Código inválido");
                return(false);
            }

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

            for (int t = 0; t < 31; ++t)
            {
                DateTime tim = DateTime.Now.AddDays(-t);

                string dt_dia = tim.Year.ToString() + "-" +
                                tim.Month.ToString().PadLeft(2, '0') + "-" +
                                tim.Day.ToString().PadLeft(2, '0') + " 00:00:00";

                if (rend_emp.select_rows_date(dt_dia, emp.get_identity()))
                {
                    if (!rend_emp.fetch())
                    {
                        return(false);
                    }

                    DadosMovEmpresaVirtual mov = new DadosMovEmpresaVirtual();

                    if (rend_emp.get_tg_neg() == Context.TRUE)
                    {
                        mov.set_vr_osc("-" + rend_emp.get_vr_pct());
                    }
                    else
                    {
                        mov.set_vr_osc(rend_emp.get_vr_pct());
                    }

                    mov.set_dt_dia(dt_dia);
                    mov.set_st_nome(emp.get_st_nome());

                    DataPortable mem = mov as DataPortable;

                    string index = MemorySave(ref mem);

                    sb.Append(index);
                    sb.Append(",");
                }
            }

            output_st_csv = sb.ToString().TrimEnd(',');

            /// USER [ execute ] END

            Registry("execute done web_fetch_edu_emp_hist ");

            return(true);
        }
Exemplo n.º 2
0
        public override bool execute( )
        {
            Registry("execute web_exec_edu_aplic_fundo ");

            /// USER [ execute ]

            #region - busca cartao e empresa -

            input_st_cartao = input_st_cartao.PadLeft(14, '0');

            T_Cartao cart = new T_Cartao(this);

            cart.ExclusiveAccess();

            if (!cart.select_rows_tudo(input_st_cartao.Substring(0, 6),
                                       input_st_cartao.Substring(6, 6),
                                       input_st_cartao.Substring(12, 2)))
            {
                PublishError("Cartão inválido");
                return(false);
            }

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

            if (cart.get_st_senha() != input_st_senha)
            {
                PublishError("Senha aluno inválida");
                return(false);
            }

            T_Edu_EmpresaVirtual emp = new T_Edu_EmpresaVirtual(this);

            if (!emp.select_rows_codigo(input_st_codigo))
            {
                PublishError("Código inválido");
                return(false);
            }

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

            #endregion

            long val       = Convert.ToInt64(input_st_valor);                           // valor requerido
            long val_emp   = emp.get_int_vr_valorAcao();                                // valor da empresa
            long val_acoes = Convert.ToInt64(val / val_emp);                            // arrendonda para numro de acoes
            long val_din   = val_acoes * emp.get_int_vr_valorAcao();                    // valor real de compra
            long val_max   = (val_acoes - 1) * emp.get_int_vr_valorAcao();
            long virt_calc = cart.get_int_vr_edu_disp_virtual() - val_din - 25;

            if (val_acoes == 0)
            {
                PublishError("Valor mínimo de compra: " + new money().setMoneyFormat(val_emp));
                return(false);
            }

            if (virt_calc < 0)
            {
                // pegar maximo valor possível

                long max_virt_calc = cart.get_int_vr_edu_disp_virtual() - 25;
                long max_val_acoes = Convert.ToInt64(max_virt_calc / val_emp);
                long max_val_din   = max_val_acoes * emp.get_int_vr_valorAcao();

                PublishError("Valor máximo " + new money().setMoneyFormat(max_val_din) + " excedido");
                return(false);
            }

            T_Edu_AplicacaoVirtual app = new T_Edu_AplicacaoVirtual(this);

            app.set_vr_preco_fundo(emp.get_vr_valorAcao());

            app.set_dt_aplic(DateTime.Now.Year.ToString() + "-" +
                             DateTime.Now.Month.ToString().PadLeft(2, '0') + "-" +
                             DateTime.Now.Day.ToString().PadLeft(2, '0') +
                             " 00:00:00");

            app.set_fk_cartao(cart.get_identity());
            app.set_fk_empresaVirtual(emp.get_identity());

            if (val < 0)
            {
                app.set_tg_neg(Context.TRUE);
            }
            else
            {
                app.set_tg_neg(Context.FALSE);
            }

            app.set_vr_aplicado(val_acoes.ToString().Replace("-", ""));

            LINK_Edu_FundoEmpresa lnk_fundo = new LINK_Edu_FundoEmpresa(this);

            lnk_fundo.ExclusiveAccess();

            if (!lnk_fundo.select_fk_cart_emp(cart.get_identity(), emp.get_identity()))
            {
                app.set_vr_fundo_hora("0");

                if (val <= 0)
                {
                    PublishError("Sem fundos disponíveis para venda");
                    return(false);
                }

                lnk_fundo.set_fk_cartao(cart.get_identity());
                lnk_fundo.set_fk_empresa(emp.get_identity());
                lnk_fundo.set_vr_fundo(val_acoes.ToString());

                if (!lnk_fundo.create_LINK_Edu_FundoEmpresa())
                {
                    return(false);
                }
            }
            else
            {
                if (!lnk_fundo.fetch())
                {
                    return(false);
                }

                long val_final = lnk_fundo.get_int_vr_fundo() + val_acoes;

                app.set_vr_fundo_hora(lnk_fundo.get_vr_fundo());

                if (val_final < 0)
                {
                    PublishError("Valor de resgate superior ao fundo");
                    return(false);
                }

                lnk_fundo.set_vr_fundo(val_final.ToString());

                if (!lnk_fundo.synchronize_LINK_Edu_FundoEmpresa())
                {
                    return(false);
                }
            }

            if (!app.create_T_Edu_AplicacaoVirtual())
            {
                return(false);
            }

            cart.set_vr_edu_disp_virtual(virt_calc.ToString());

            if (!cart.synchronize_T_Cartao())
            {
                return(false);
            }

            /// USER [ execute ] END

            Registry("execute done web_exec_edu_aplic_fundo ");

            return(true);
        }