28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/f2b/cobranca.rb', line 28
def submit!
response = invoke("wsb:F2bCobranca") do |message|
message.add "mensagem" do |m|
m.set_attr "data", Date.today.to_s
m.set_attr "numero", @numero unless @numero.nil?
m.set_attr "tipo_ws", "WebService"
end
message.add "sacador" do |s|
s.set_attr "conta", @sacador.fetch(:conta)
s.set_attr "senha", @sacador.fetch(:senha)
s.set_value @sacador.fetch(:nome)
end
if @cobranca
message.add "cobranca" do |c|
c.set_attr "valor", @cobranca.fetch(:valor)
c.set_attr "tipo_cobranca", @cobranca.fetch(:tipo_cobranca) if @cobranca.has_key? :tipo_cobranca
c.set_attr "num_document", @cobranca.fetch(:num_document) if @cobranca.has_key? :num_document
c.set_attr "cod_banco", @cobranca.fetch(:cod_banco) if @cobranca.has_key? :cod_banco
@demonstrativo.each do |value|
c.add "demonstrativo", value
end
if @desconto
c.add "desconto" do |d|
d.set_attr "valor", @desconto.fetch(:valor)
d.set_attr "tipo_desconto", @desconto.fetch(:tipo_desconto)
d.set_attr "antecedencia", @desconto.fetch(:antecedencia)
end
end
if @multa
c.add "multa" do |m|
m.set_attr "valor", @multa.fetch(:valor)
m.set_attr "tipo_multa", @multa.fetch(:tipo_multa)
m.set_attr "valor_dia", @multa.fetch(:valor_dia)
m.set_attr "tipo_multa_dia", @multa.fetch(:tipo_multa_dia)
m.set_attr "atraso", @multa.fetch(:atraso)
end
end
end
message.add "agendamento" do |a|
a.set_attr "vencimento", @agendamento.fetch(:vencimento)
a.set_attr "ultimo_dia", @agendamento.fetch(:ultimo_dia) if @agendamento.has_key? :ultimo_dia
a.set_attr "antecedencia", @agendamento.fetch(:antecedencia) if @agendamento.has_key? :antecedencia
a.set_attr "periodicidade", @agendamento.fetch(:periodicidade) if @agendamento.has_key? :periodicidade
a.set_attr "periodos", @agendamento.fetch(:periodos) if @agendamento.has_key? :periodos
a.set_attr "sem_vencimento", @agendamento.fetch(:sem_vencimento) if @agendamento.has_key? :sem_vencimento
a.set_value @agendamento.fetch(:titulo) if @agendamento.has_key? :titulo
end
end
@sacados.each do |sacado|
message.add "sacado" do |s|
s.set_attr "grupo", sacado.fetch(:grupo) if sacado.has_key? :grupo
s.set_attr "codigo", sacado.fetch(:codigo) if sacado.has_key? :codigo
s.set_attr "envio", sacado.fetch(:envio) if sacado.has_key? :envio
s.set_attr "atualizar", sacado.fetch(:atualizar) if sacado.has_key? :atualizar
s.add "nome", sacado.fetch(:nome)
s.add "email", sacado.fetch(:email)
build_address!(s, sacado[:endereco]) if sacado.has_key? :endereco
build_phones!(s, sacado)
s.add "cpf", sacado.fetch(:cpf) if sacado.has_key? :cpf
s.add "cnpj", sacado.fetch(:cnpj) if sacado.has_key? :cnpj
s.add "observacao", sacado.fetch(:observacao) if sacado.has_key? :observacao
end
end
end
parse_response(response)
end
|