Class: DtefacilXmlBuilder::FacturaElectronica

Inherits:
Object
  • Object
show all
Defined in:
lib/dtefacil_xml_builder/factura_electronica.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#actividades_economicasObject

Returns the value of attribute actividades_economicas.



7
8
9
# File 'lib/dtefacil_xml_builder/factura_electronica.rb', line 7

def actividades_economicas
  @actividades_economicas
end

#descuentoObject

Returns the value of attribute descuento.



7
8
9
# File 'lib/dtefacil_xml_builder/factura_electronica.rb', line 7

def descuento
  @descuento
end

#detallesObject

Returns the value of attribute detalles.



7
8
9
# File 'lib/dtefacil_xml_builder/factura_electronica.rb', line 7

def detalles
  @detalles
end

#receptorObject

Returns the value of attribute receptor.



7
8
9
# File 'lib/dtefacil_xml_builder/factura_electronica.rb', line 7

def receptor
  @receptor
end

Instance Method Details

#render_xmlObject



24
25
26
27
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
# File 'lib/dtefacil_xml_builder/factura_electronica.rb', line 24

def render_xml
        dtebuilder = DteBuilder.new

        xml = Builder::XmlMarkup.new
        xml.instruct!(:xml, version: "1.0", encoding: "ISO-8859-1")
        xml.facturaElectronica(xmlns: "http://dtefacil.cl/1.2"){
            |f|
            actividades_economicas.each do |act|
                f.actividadEconomica act
            end

            f.receptor {
                |r|
                r.rut receptor.rut
                r.razonSocial receptor.razon_social
                r.giro receptor.giro
                r.ubicacion{
                    |u|
                    u.direccion receptor.direccion
                    u.comuna receptor.comuna
                    u.ciudad receptor.ciudad
                }
            }

            f.detalles {
                |d|
                if descuento
                    d.descuento{
                        |desc|
                        desc.porcentaje(descuento)
                    }
                end

                detalles.each do |detalle|                  
                    d.detalle{
                        |det|
                        det.nombre(detalle.nombre)
                        det.cantidad(detalle.cantidad)
                        det.precioUnitario(detalle.precio_unitario)

                        if detalle.unidad
                            det.unidad(detalle.unidad)
                        end

                        if detalle.descuento
                            det.descuento{
                                |desc_det|
                                desc_det.porcentaje(detalle.descuento)
                            }
                        end

                        if detalle.exento
                            det.observaciones{
                                |obs|
                                obs.exento
                            }   
                        end
                    }
                end 
            }
        }
end

#set_invoice(actividades_economicas, receptor, detalles) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/dtefacil_xml_builder/factura_electronica.rb', line 9

def set_invoice actividades_economicas, receptor, detalles
    @actividades_economicas=actividades_economicas
    @r= Receptor.new
    @r.set_receptor receptor
    @receptor= @r
    @detalles = []

    detalles.each do |detalle|
        @d = Detalle.new
        @d.set_detalle detalle
        @detalles[@detalles.length]=@d
    end
end