public override bool execute( ) { Registry("execute web_fetch_edu_virtual "); /// USER [ execute ] input_st_cartao = input_st_cartao.PadLeft(14, '0'); input_dt_mov = input_dt_mov.Substring(0, 11) + "00:00:00"; T_Cartao cart = new T_Cartao(this); 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); } output_cont_dce.set_st_aluno(cart.get_st_aluno()); output_cont_dce.set_vr_diario(cart.get_vr_edu_diario()); output_cont_dce.set_vr_disp(cart.get_vr_disp_educacional()); output_cont_dce.set_vr_depot(cart.get_vr_educacional()); output_cont_dce.set_vr_disp_virtual(cart.get_vr_edu_disp_virtual()); output_cont_dce.set_nu_vrRank(cart.get_nu_rankVirtual()); long invest_virtual = 0; LINK_Edu_FundoEmpresa lnk = new LINK_Edu_FundoEmpresa(this); T_Edu_EmpresaVirtual emp = new T_Edu_EmpresaVirtual(this); LOG_Edu_RendimentoEmpresa log_rend = new LOG_Edu_RendimentoEmpresa(this); T_Edu_AplicacaoVirtual app = new T_Edu_AplicacaoVirtual(this); if (lnk.select_fk_cart(cart.get_identity())) { while (lnk.fetch()) { DadosMovEmpresaVirtual dMovAtual = new DadosMovEmpresaVirtual(); if (!emp.selectIdentity(lnk.get_fk_empresa())) { return(false); } dMovAtual.set_st_nome(emp.get_st_nome()); dMovAtual.set_vr_acoes(lnk.get_vr_fundo()); dMovAtual.set_vr_dia(emp.get_vr_valorAcao()); invest_virtual += lnk.get_int_vr_fundo() * emp.get_int_vr_valorAcao(); if (log_rend.select_rows_date(GetDataBaseTime(), emp.get_identity())) { if (!log_rend.fetch()) { return(false); } if (log_rend.get_tg_neg() == Context.TRUE) { dMovAtual.set_vr_osc("-" + log_rend.get_vr_pct()); } else { dMovAtual.set_vr_osc(log_rend.get_vr_pct()); } } // busca preço médio long preco_medio = 0; if (app.select_rows_cart_emp(cart.get_identity(), emp.get_identity())) { while (app.fetch()) { preco_medio += app.get_int_vr_preco_fundo(); } preco_medio = preco_medio / app.RowCount(); app.Reset(); } dMovAtual.set_vr_preco_medio(preco_medio.ToString()); output_array_generic_lstEmp.Add(dMovAtual); } } if (lnk.select_fk_cart(cart.get_identity())) { while (lnk.fetch()) { if (!emp.selectIdentity(lnk.get_fk_empresa())) { return(false); } long aplic = 0; if (app.select_rows_date(input_dt_mov, cart.get_identity())) { while (app.fetch()) { if (app.get_fk_empresaVirtual() != lnk.get_fk_empresa()) { continue; } DadosMovEmpresaVirtual dMov = new DadosMovEmpresaVirtual(); dMov.set_st_nome(emp.get_st_nome()); if (app.get_tg_neg() == Context.TRUE) { dMov.set_vr_mov_fundo("-" + app.get_vr_aplicado()); aplic -= app.get_int_vr_aplicado(); dMov.set_vr_total((Convert.ToInt64(app.get_vr_fundo_hora()) - Convert.ToInt64(app.get_vr_aplicado())).ToString()); } else { dMov.set_vr_mov_fundo(app.get_vr_aplicado()); aplic += app.get_int_vr_aplicado(); dMov.set_vr_total((Convert.ToInt64(app.get_vr_fundo_hora()) + Convert.ToInt64(app.get_vr_aplicado())).ToString()); } output_array_generic_lst.Add(dMov); } } } } output_cont_dce.set_vr_invest_virtual(invest_virtual.ToString()); /// USER [ execute ] END Registry("execute done web_fetch_edu_virtual "); return(true); }
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); }