fdis 0.1.28 → 0.1.30

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6238221172fd3b759ab60befa06a8b81a39c49cebafc7e77195a686ceb7a7ddb
4
- data.tar.gz: 7b8b2c5abcfa6018300a824886458c5077e910136b8efdb3e812bc58e7be2f7b
3
+ metadata.gz: 88161488a906ac16b9914d459300008ed8bc56207989f5b2e8a615aba0d87fa3
4
+ data.tar.gz: '096ee4758f686039603501c35a15f572d2691d43aac7f08e827f2beb510d2d2f'
5
5
  SHA512:
6
- metadata.gz: 284a887271647e25ae70aa7af19e4e0000b5e5b8631bd25955abc5441f697ecd462c9eef036be6849f34c82db41c42937fe66bad504dbfa219ea19b1c057f974
7
- data.tar.gz: 5149e230918f2a282f67f694e11fc5181b19eac31408474a479990314e1a127e414423d0f5a0c8634ad25a838aeb97b35ba171688783ea02d3d129d7ad2f08ef
6
+ metadata.gz: 71686ce4ef75aef6916d31046e99bf6f9d69d32c11f6dcd70510f9f1141728e7891b9f15cb3a3fd22f397b32f5fce4dccc79e9ed8c2044bcfebfb9278b1ffac3
7
+ data.tar.gz: 8050f0d0517a5dc7db4615171dcdd7ec2f98e388a520e1cd3f191dcfe7c2e787245bf5dc0771db16253100fb0405959983112f2c29582de3a9bedd0bb503c14a
@@ -12,7 +12,7 @@ module Fdis
12
12
  # receptor_rfc: 'XAXX010101000',
13
13
  # receptor_cp: '47180',
14
14
  # receptor_regimen: '616',
15
- # iva_id: 16,8,0,
15
+ # tasa_iva: 0, 16, se toma tasa iva de factura madre
16
16
  # forma_pago: '01',
17
17
  # total: 100.00,
18
18
  # monto_pago: 50.0,
@@ -117,7 +117,7 @@ module Fdis
117
117
 
118
118
  # totales
119
119
  total = params[:monto_pago].to_f
120
- iva_id = params.fetch(:iva_id, 16)
120
+ iva_id = params.fetch(:tasa_iva, 16)
121
121
 
122
122
  pago_totales = xml.at_xpath("//pago20:Totales")
123
123
  pago_totales['MontoTotalPagos'] = total.round(2).to_s # total
@@ -132,12 +132,6 @@ module Fdis
132
132
  pago_totales['TotalTrasladosBaseIVA0'] = subtotal.round(2).to_s # subtotal
133
133
  pago_totales['TotalTrasladosImpuestoIVA0'] = iva.round(2).to_s # iva
134
134
 
135
- elsif iva_id == 8
136
- subtotal = total / 1.08
137
- iva = total - subtotal
138
-
139
- pago_totales['TotalTrasladosBaseIVA8'] = subtotal.round(2).to_s # subtotal
140
- pago_totales['TotalTrasladosImpuestoIVA8'] = iva.round(2).to_s # iva
141
135
  else
142
136
  subtotal = total / 1.16
143
137
  iva = total - subtotal
@@ -173,7 +167,7 @@ module Fdis
173
167
  child_pago_relacionado['ImpPagado'] = total.round(2).to_s
174
168
  child_pago_relacionado['ImpSaldoInsoluto'] = (saldo_anterior - total).round(2).to_s
175
169
 
176
- if iva_id == 16 or iva_id == 8
170
+ if iva_id == 16
177
171
  child_pago_relacionado['ObjetoImpDR'] = '02'
178
172
 
179
173
  impuestos_dr = Nokogiri::XML::Node.new "pago20:ImpuestosDR", xml
@@ -185,19 +179,11 @@ module Fdis
185
179
  traslado_p = Nokogiri::XML::Node.new "pago20:TrasladoP", xml
186
180
 
187
181
 
188
- if iva_id == 16
189
- traslado['TasaOCuotaDR'] = '0.160000'
190
- # t_subtotal = total / 1.16
191
- # t_tax = total - t_subtotal
192
-
193
- traslado_p['TasaOCuotaP'] = '0.160000'
194
- else
195
- traslado['TasaOCuotaDR'] = '0.080000'
196
- # t_subtotal = total / 1.08
197
- # t_tax = total - t_subtotal
182
+ traslado['TasaOCuotaDR'] = '0.160000'
183
+ # t_subtotal = total / 1.16
184
+ # t_tax = total - t_subtotal
198
185
 
199
- traslado_p['TasaOCuotaP'] = '0.080000'
200
- end
186
+ traslado_p['TasaOCuotaP'] = '0.160000'
201
187
 
202
188
  traslado['TipoFactorDR'] = 'Tasa'
203
189
  traslado['ImpuestoDR'] = '002'
@@ -205,7 +191,6 @@ module Fdis
205
191
  traslado['BaseDR'] = subtotal.round(4).to_s #subtotal
206
192
  traslado['ImporteDR'] = iva.round(4).to_s # tax
207
193
 
208
-
209
194
 
210
195
  traslado_p['BaseP'] = subtotal.round(4).to_s
211
196
  traslado_p['ImpuestoP'] = '002'
@@ -213,7 +198,6 @@ module Fdis
213
198
  traslado_p['ImporteP'] = iva.round(4).to_s # tax
214
199
 
215
200
 
216
-
217
201
  traslados_dr.add_child(traslado)
218
202
  impuestos_dr.add_child(traslados_dr)
219
203
  child_pago_relacionado.add_child(impuestos_dr)
@@ -433,6 +417,7 @@ module Fdis
433
417
  # receptor_rfc: '',
434
418
  # receptor_regimen: '',
435
419
  # uso_cfdi: 'G03',
420
+ # tasa_iva: 0, 16,
436
421
  # time: "%Y-%m-%dT%H:%M:%S",
437
422
  # line_items: [
438
423
  # {
@@ -530,34 +515,35 @@ module Fdis
530
515
  suma_iva = 0.00
531
516
  suma_ret = 0.00
532
517
 
518
+ iva_id = params.fetch(:tasa_iva, 16)
519
+
533
520
  line_items.each do |line|
534
521
  ret_iva = line.fetch(:retencion_iva, 0)
535
- puts ret_iva
536
-
537
-
538
- ## revisando si la linea tiene iva 0
539
- if line[:tax_included] == true
540
- # if line[:tipo_impuesto] == '004'
541
- # valor_unitario = (line[:valor_unitario].to_f)
542
- # else
543
- # end
544
- valor_unitario = ((line[:valor_unitario]).to_f) / 1.16
545
- else
546
- valor_unitario = (line[:valor_unitario].to_f)
547
- end
548
522
 
549
523
  cantidad = line[:cantidad].to_f
550
- total_line = cantidad * valor_unitario
524
+
525
+
551
526
 
552
527
  # if line[:tipo_impuesto] == '004'
553
528
  # total_acumulator = cantidad * valor_unitario
554
529
  # else
555
530
  # total_acumulator = cantidad * valor_unitario * 1.16
556
531
  # end
532
+
533
+ ## TODO: ajustar todo a facturacion con iva cero
557
534
 
558
- total_acumulator = cantidad * valor_unitario * 1.16
535
+ total_acumulator = cantidad * line[:valor_unitario].to_f
536
+
537
+ if iva_id == 16
538
+ valor_unitario = (line[:valor_unitario].to_f) / 1.16
539
+ else
540
+ valor_unitario = line[:valor_unitario].to_f
541
+ end
542
+
543
+ total_line = cantidad * valor_unitario
559
544
 
560
545
  importe_iva = total_acumulator - total_line
546
+
561
547
  subtotal += total_line
562
548
  suma_iva += importe_iva
563
549
  suma_total += total_acumulator
@@ -595,20 +581,23 @@ module Fdis
595
581
 
596
582
  ## Creando cfdi:Traslados para cada linea
597
583
  child_traslados = Nokogiri::XML::Node.new "cfdi:Traslados", xml
584
+
585
+
598
586
  child_traslado = Nokogiri::XML::Node.new "cfdi:Traslado", xml
599
- child_traslado['Base'] = total_line.round(4).to_s
600
- child_traslado['Importe'] = importe_iva.round(4).to_s
601
587
  child_traslado['Impuesto'] = '002'
602
- child_traslado['TasaOCuota'] = '0.160000'
603
588
  child_traslado['TipoFactor'] = "Tasa"
589
+ child_traslado['Base'] = total_line.round(4).to_s
604
590
 
605
- # if line[:tipo_impuesto] == '004'
606
- # child_traslado['TasaOCuota'] = '0.000000'
607
- # else
608
- # end
591
+ if iva_id == 0
592
+ child_traslado['Importe'] = "0.00"
593
+ child_traslado['TasaOCuota'] = '0.000000'
594
+ else
595
+ child_traslado['Importe'] = importe_iva.round(4).to_s
596
+ child_traslado['TasaOCuota'] = '0.160000'
597
+ end
609
598
 
610
599
 
611
- # Joining all up
600
+ # Mezclando todo lo anterios
612
601
  child_traslados.add_child(child_traslado)
613
602
  child_impuestos.add_child(child_traslados)
614
603
  child_concepto.add_child(child_impuestos)
@@ -649,7 +638,13 @@ module Fdis
649
638
 
650
639
  ## Poblanco cfdi:Impuestos
651
640
  impuestos['TotalImpuestosRetenidos'] = suma_ret.round(2).to_s if suma_ret > 0
652
- impuestos['TotalImpuestosTrasladados'] = suma_iva.round(2).to_s
641
+
642
+ if iva_id == 0
643
+ impuestos['TotalImpuestosTrasladados'] = "0.00"
644
+ else
645
+ impuestos['TotalImpuestosTrasladados'] = suma_iva.round(2).to_s
646
+ end
647
+
653
648
 
654
649
  ## filling default retencion info
655
650
  if suma_ret > 0
@@ -669,22 +664,20 @@ module Fdis
669
664
 
670
665
  ## filling traslado info
671
666
  traslado_child = Nokogiri::XML::Node.new "cfdi:Traslado", xml
672
- traslado_child['Base'] = subtotal.round(2)
673
667
  traslado_child['Impuesto'] = '002'
674
- traslado_child['Importe'] = suma_iva.round(2).to_s
675
668
  traslado_child['TipoFactor'] = 'Tasa'
676
- traslado_child['TasaOCuota'] = '0.160000'
677
- traslados.add_child(traslado_child)
678
- impuestos.add_child(traslados)
679
-
680
-
669
+ traslado_child['Base'] = subtotal.round(2)
681
670
 
682
- # puts '------ Totales -----'
683
- # puts "Total suma = #{comprobante['Total']}"
684
- # puts "SubTotal suma = #{subtotal}"
685
- # puts "Suma iva = #{suma_iva}"
686
- # puts "Suma retenciones = #{impuestos['TotalImpuestosRetenidos']}" if suma_ret > 0
671
+ if iva_id == 0
672
+ traslado_child['Importe'] = "0.00"
673
+ traslado_child['TasaOCuota'] = '0.000000'
674
+ else
675
+ traslado_child['Importe'] = suma_iva.round(2).to_s
676
+ traslado_child['TasaOCuota'] = '0.160000'
677
+ end
687
678
 
679
+ traslados.add_child(traslado_child)
680
+ impuestos.add_child(traslados)
688
681
 
689
682
 
690
683
  path = File.join(File.dirname(__FILE__), *%w[.. tmp])
data/lib/fdis/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fdis
2
- VERSION = "0.1.28"
2
+ VERSION = "0.1.30"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fdis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.28
4
+ version: 0.1.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angel Padilla
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-06 00:00:00.000000000 Z
11
+ date: 2022-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler