-
-
Save lucastex/949115 to your computer and use it in GitHub Desktop.
def boleto = new BoletoBuilder() | |
boleto.build(100.00, "itau") { | |
datas { | |
vencimento xxx | |
documento xxx | |
processamento xxx | |
} | |
cedente { | |
nome xxx | |
agencia xxx, x | |
conta xxx, x | |
convenio xxx | |
carteira xxx | |
nossoNumero xxx, x | |
operacao xxx | |
} | |
sacado { | |
nome xxx | |
cpf xxx | |
cnpj xxx | |
endereco xxx | |
bairo xxx | |
cep xxx | |
cidade xxx, xx | |
} | |
documento xxx | |
pagamento local1, local2 | |
instrucoes linha1, linha2, linha3 | |
informacoes info1, info2, info3, info4, info5 | |
} | |
boleto.render "PNG", response | |
//boleto.render "PDF", response |
Felipe, ficou assim:
def boleto = new BoletoBuilder(1500, "itau")
boleto.build {
datas {
vencimento (new Date() + 5)
documento new Date()
processamento new Date()
}
cedente {
cedente "Loja de ferramentas"
agencia 1001, 'x'
conta 1002, 3
convenio 10
carteira 20
operacao 30
nossoNumero 15000, 1
}
sacado {
nome "Nome do cliente"
cpf "000.000.000-00"
endereco "Rua sem nome, 1200 - apto 1001"
bairro "Centro"
cep "00000-000"
cidade "São Paulo", "SP"
}
aceite false
documento numero: "12345", especie: "XXX"
moeda valor: 1, quantidade: 1500
pagamento "Pagar até o vencimento",
"Não receber após a data de vencimento"
instrucoes "Não cobrar juros antes do vencimento",
"Pagamento referente ao uso do sistema",
"Mensalidade de julho",
"Código do cliente: 12345"
informacoes "Caro cliente, não se esqueca de pagar esta conta",
"Lembre-se que após 20 dias, seu acesso ao sistema irá ser restringido",
"e após 60 dias, seu sistema será totalmente desligado"
}
def bytes = boleto.pdf()
response.setContentType("application/pdf")
response.outputStream << bytes
Maneiro.
Só mais uma coisa, da pra omitir o .build do começo e ficar boleto { direto? :)
boleto {
....
}
Tem que chamar o método build do objeto builder, o metodo pode ter outro nome, mas mesmo assim fica obj.methodo.
Não queria injetar esse metodo automaticamente nos controllers por achar que pra esse caso acaba ficando demais... diferente de um e-mail
mail {
...
}
Acho que o boleto é muito negócio pra estuprar os controllers e injetar isso a força via MOP :)
Tem outra coisa tb, o BoletoBuilder guarda estado (o boleto), pra poder chamar o .pdf() dps e o .png() sem ter que reconstruir o boleto denovo, :)
Ah ta. Foi mais uma super preocupação com aparência hehehe
Ta maneiro assim.
:) valeu pela ajuda!
Tou finalizando já. Tá aqui o src: https://github.com/blanq/grails-stella/blob/master/src/groovy/br/com/caelum/grails/stella/builder/BoletoBuilder.groovy
Isso me faz ter vontade de ter um Groovy for iOS :)
haha :)
Poxa estava procurando aqui uma coisa parecida com isso.
Uma pergunta funciona com as versoes atuais do GRAILS?
é, tem que ser :)