Caros, Numa aplicação da empresa que estou trabalhando, precisei criar uma Stored Procedure no SQL Server para poder gerar boletos de pagamento.
A SP ficou no próprio SQL Server e eu só a chamei, passando os parâmetros via mssql_bind, para ela. Embora fique amarrada ao banco de dados, como não se cogita a mudança do mesmo, preferi fazer desse jeito. No fim das contas, criei um helper para poder gerar os boletos em qualquer módulo que eu precisasse. Veja como o helper ficou, visitando o gist que criei (https://gist.github.com/2661607). Att., -- Erick Patrick Sent with Sparrow (http://www.sparrowmailapp.com/?sig) On Friday, May 11, 2012 at 3:02 PM, Daniel Passos Martins wrote: > Macho, tu faz assim oh. Pega o model e coloca a instrução direto. > > function recalcular_parcelas($plano_destino, $plano_origem, > $cod_pessoa_contrato, $cod_servico_contrato, $novo_valor) { > $sql = "select cod_lancamento, cod_parcela, case when dias > 0 then > proporcional_antigo + proporcional_novo > else > $novo_valor > end as proporcional, > case when dias > 0 then > historico || '<br>' || mensagem || '<br>' || > (select nome_produto_resumido from produtos_produto where > cod_produto = '" . $plano_destino . "') > || ' ' || dias_novo || ' dias no valor de R$ ' || > proporcional_novo || ' à partir da data ' || > to_char(current_date,'DD/MM/YYYY') > else > competencia || ' - Servico do mes todo R$ ' || (select > round(preco_venda,2) from produtos_produto > where cod_produto = '" . $plano_destino . "') || ' no vencimento ' > || data_vencimento > end as historico, > case when dias > 0 then > historico || '<br>' || mensagem || '<br>' || (select > nome_produto_resumido from produtos_produto > where cod_produto = '" . $plano_destino . "') || ' ' || dias_novo > || ' dias no valor de R$ ' || proporcional_novo || > ' à partir da data ' || to_char(current_date,'DD/MM/YYYY') > else > 'Parcela ' || numero_parcela || ' de ' || vigencia || ' de ' || > (select nome_produto_resumido from produtos_produto where > cod_produto = '" . $plano_destino . "') > end as descricao_lancamento > from ( > select vigencia, numero_parcela, cod_lancamento, historico, competencia, > (data_vencimento - date(now())) as dias_novo, > cp.cod_parcela,round((30 - (data_vencimento - date(now()))) * > round((valor/30),2),2) as proporcional_antigo, > (data_vencimento - date(now())) * (select round(preco_venda/30,2) from > produtos_produto where cod_produto = 3) as proporcional_novo , > 30 - (data_vencimento - date(now())) as dias, > csc.cod_produto,cp.valor,data_vencimento, > nome_produto_resumido || ' ' || 30 - (data_vencimento - date(now())) || ' > dias no valor de R$ ' || > round((30 - (data_vencimento - date(now()))) * round((valor/30),2),2) || ' > valor diario R$ ' || > round((valor/30),2) || ' na data ' || to_char(current_date,'DD/MM/YYYY') as > mensagem, round((valor/30),2) as valor_diario > from contratos_pessoa_contrato cpc > inner join contratos_servicos_contrato csc on (csc.cod_pessoa_contrato = > cpc.cod_pessoa_contrato) > inner join contratos_servicos_ativacao csa on (csa.cod_servico_contrato = > csc.cod_servico_contrato) > inner join contratos_parcelas cp on (cp.cod_servico_contrato = > csa.cod_servico_contrato) > inner join produtos_produto pp on (pp.cod_produto = csc.cod_produto) > inner join contratos_parcelas_lancamento cpl on (cpl.cod_parcela = > cp.cod_parcela) > inner join contratos_contrato cc on (cc.cod_contrato = cpc.cod_contrato) > where cpc.cod_pessoa_contrato = '" . $cod_pessoa_contrato . "' and > data_vencimento > date(now()) > and csc.cod_produto = '" . $plano_origem . "' and > csc.cod_servico_contrato = '" . $cod_servico_contrato . "' > and cod_instalacao_equipamento is null > order by data_vencimento > ) as tabs"; > $query = $this->db->query($sql); > return $query->result(); > } > > Repara ai que todo o select eh uma instrução. > > Daniel > > 2012/5/11 Marcelo Diniz <[email protected] > (mailto:[email protected])> > > > A SP esta no MySQL. > > > > Já tentei execultar de td quanto é forma e nada! > > > > Resumindo, to FFFFFffffffffffffuuuuuuuuuuuuuuuuuuuu > > > > o mais proximo q consegui foi seguindo isso > > http://codeigniter.com/forums/viewthread/71141/#663206 > > > > Mas ainda assim da erro nessa linha if( get_class($result) == 'mysqli_stmt' > > ) > > e fora isso, ainda eu tenho um hook rodando para gravar os logs e da erro > > nessa parte! > > > > > > > > 2012/5/11 Daniel Passos Martins <[email protected] > > (mailto:[email protected])> > > > > > a store tah feita em que? > > > MySql ou Postgres? > > > Caso seja em MySql - call gerar_contrato_parcelas(parametros); > > > Caso seja feito no PostGres - select from procedurte(parametros) > > > > > > Daniel > > > Natal/RN > > > > > > Em 11 de maio de 2012 12:08, Marcelo Diniz <[email protected] > > > (mailto:[email protected]) > > > > escreveu: > > > > > > > > > > Pessoal, > > > > > > > > alguém já conseguiu rodar Sorte Procedure no CI; > > > > > > > > estou tendo serios problemas, da uns erros muito estranhos mesmo !< > > > > > > > > estou tentando achar alguma coisa, mas até agora nada q me ajuda, estou > > > > olhando essa http://codeigniter.com/forums/viewthread/71141 e tbm > > > > > > > > > > > > > > nada! > > > > > > > > Se alguem souber de algo fala ae.... > > > > > > > > Valew > > > > > > > > -- > > > > Marcelo Felipe Santiago Diniz > > > > [image: t_mini-a.png] @marcelo_leo27 < > > > > > > > > > > http://www.twitter.com/marcelo_leo27 > > > > > > > > > > > > > _______________________________________________ > > > > [email protected] (mailto:[email protected]) > > > > http://www.codeigniter.com.br > > > > > > > > > > > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > > > > --------------------------- > > > > Oportunidade de negócio > > > > http://www.franquiasargohost.net > > > > --------------------------- > > > > > > > > > > _______________________________________________ > > > [email protected] (mailto:[email protected]) > > > http://www.codeigniter.com.br > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > > --------------------------- > > > Oportunidade de negócio > > > http://www.franquiasargohost.net > > > --------------------------- > > > > > > > > > > > > > -- > > Marcelo Felipe Santiago Diniz > > [image: t_mini-a.png] @marcelo_leo27 <http://www.twitter.com/marcelo_leo27 > > > > > > > _______________________________________________ > > [email protected] (mailto:[email protected]) > > http://www.codeigniter.com.br > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > --------------------------- > > Oportunidade de negócio > > http://www.franquiasargohost.net > > --------------------------- > > > > _______________________________________________ > [email protected] (mailto:[email protected]) > http://www.codeigniter.com.br > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > --------------------------- > Oportunidade de negócio > http://www.franquiasargohost.net > --------------------------- > > _______________________________________________ [email protected] http://www.codeigniter.com.br http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net ---------------------------

