parroquia 1.1.13 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/parroquia/catecismo/actualizar_alumno.rb +181 -0
  3. data/lib/parroquia/catecismo/alumno.rb +179 -0
  4. data/lib/parroquia/catecismo/catecismo.rb +119 -0
  5. data/lib/parroquia/catecismo/consulta.rb +177 -0
  6. data/lib/parroquia/catecismo/resultado.rb +230 -0
  7. data/lib/parroquia/main.rb +82 -91
  8. data/lib/parroquia/sacramentos/actualizar_bautismo.rb +313 -0
  9. data/lib/parroquia/sacramentos/actualizar_certificado_prebautismal.rb +184 -0
  10. data/lib/parroquia/sacramentos/actualizar_comunion.rb +239 -0
  11. data/lib/parroquia/sacramentos/actualizar_confirmacion.rb +239 -0
  12. data/lib/parroquia/sacramentos/actualizar_matrimonio.rb +298 -0
  13. data/lib/parroquia/sacramentos/actualizar_misa.rb +170 -0
  14. data/lib/parroquia/sacramentos/actualizar_permiso_prebautismal.rb +200 -0
  15. data/lib/parroquia/sacramentos/actualizar_permiso_prematrimonial.rb +205 -0
  16. data/lib/parroquia/sacramentos/actualizar_supletoria.rb +313 -0
  17. data/lib/parroquia/sacramentos/bautizo.rb +310 -0
  18. data/lib/parroquia/sacramentos/certificado_prebautismal.rb +195 -0
  19. data/lib/parroquia/sacramentos/comunion.rb +234 -0
  20. data/lib/parroquia/sacramentos/confirmacion.rb +239 -0
  21. data/lib/parroquia/sacramentos/consultas.rb +162 -0
  22. data/lib/parroquia/sacramentos/matrimonio.rb +297 -0
  23. data/lib/parroquia/sacramentos/misa.rb +171 -0
  24. data/lib/parroquia/sacramentos/permiso_bautismo.rb +207 -0
  25. data/lib/parroquia/sacramentos/permiso_prematrimonial.rb +219 -0
  26. data/lib/parroquia/sacramentos/resultados.rb +931 -0
  27. data/lib/parroquia/sacramentos/sacramentos.rb +182 -0
  28. data/lib/parroquia/sacramentos/supletoria.rb +309 -0
  29. metadata +30 -11
  30. data/lib/parroquia/actualizar_bautismo.rb +0 -245
  31. data/lib/parroquia/actualizar_confirmacion.rb +0 -194
  32. data/lib/parroquia/actualizar_matrimonio.rb +0 -235
  33. data/lib/parroquia/bautizo.rb +0 -239
  34. data/lib/parroquia/confirmacion.rb +0 -191
  35. data/lib/parroquia/consultas.rb +0 -144
  36. data/lib/parroquia/matrimonio.rb +0 -232
  37. data/lib/parroquia/resultados.rb +0 -414
@@ -0,0 +1,230 @@
1
+ require 'pg'
2
+ require 'prawn'
3
+ require 'fox16'
4
+ include Fox
5
+
6
+ class ResultadosConsulta < FXMainWindow
7
+ def initialize(app, result_data)
8
+ super(app, 'Resultados de la Consulta', width: 800, height: 480)
9
+ @app = app
10
+
11
+ @result_data = result_data # Los datos de resultados que se pasan a esta clase
12
+
13
+ # Crea una tabla para mostrar los resultados
14
+ @tabla = FXTable.new(self, opts: LAYOUT_EXPLICIT | TABLE_COL_SIZABLE | TABLE_ROW_SIZABLE, width: 800,
15
+ height: 400, x: 0, y: 0)
16
+ @tabla.visibleRows = 10
17
+ @tabla.visibleColumns = 10
18
+ # El tamaño de la tabla depende del número de columnas nombrada en poner nombre a las columnas y las filas al numero de registros encontrados
19
+ @tabla.setTableSize(@result_data.length, 13)
20
+
21
+
22
+ # Llena la tabla con los datos de resultados
23
+ @result_data.each_with_index do |row, i|
24
+ row.each_with_index do |col, j|
25
+ @tabla.setItemText(i, j, col.to_s)
26
+ end
27
+ end
28
+
29
+ # Poner nombre a las columnas
30
+ @tabla.setColumnText(0, 'ID Alumnos')
31
+ @tabla.setColumnText(1, 'Nombres')
32
+ @tabla.setColumnText(2, 'Apellidos')
33
+ @tabla.setColumnText(3, 'Lugar_nacimiento')
34
+ @tabla.setColumnText(4, 'Fecha_nacimiento')
35
+ @tabla.setColumnText(5, 'Cédula')
36
+ @tabla.setColumnText(6, 'ID Niveles')
37
+ @tabla.setColumnText(7, 'Nivel')
38
+ @tabla.setColumnText(8, 'Sector')
39
+ @tabla.setColumnText(9, 'Año lectivo')
40
+ @tabla.setColumnText(10, 'ID Catequistas')
41
+ @tabla.setColumnText(11, 'Nombres')
42
+ @tabla.setColumnText(12, 'Apellidos')
43
+
44
+
45
+ # Al hacer clic en una fila, se selecciona la fila completa para imprimir los datos
46
+ def seleccionar_fila
47
+ @tabla.each_row do |i|
48
+ @tabla.selectRow(i.index) if @tabla.isRowSelected(i.index)
49
+ end
50
+ end
51
+
52
+ def registros_seleccionados
53
+ registros = []
54
+ (0...@tabla.numRows).each do |i|
55
+ registros << @result_data[i] if @tabla.isRowSelected(i)
56
+ end
57
+ registros
58
+ end
59
+
60
+ def seleccionar_columna
61
+ selected_columns = []
62
+
63
+ (0...@tabla.numColumns).each do |i|
64
+ selected_columns << i if @tabla.isColumnSelected(i)
65
+ end
66
+
67
+ selected_columns
68
+ end
69
+
70
+ # Cambiar el formato de la fecha de YYYY-MM-DD a DD de nombre_mes de YYYY
71
+ def cambiar_formato_fecha(fecha)
72
+ # split "-" or "/"
73
+ fecha = fecha.split(%r{-|/})
74
+ # si el formato de fecha es YYYY-MM-DD o YYYY/MM/DD, sino si es DD-MM-YYYY o DD/MM/YYYY
75
+ if fecha[0].length == 4
76
+ "#{fecha[2]} de #{nombre_mes(fecha[1])} de #{fecha[0]}"
77
+ else
78
+ "#{fecha[0]} de #{nombre_mes(fecha[1])} de #{fecha[2]}"
79
+ end
80
+ end
81
+
82
+ # Nombre del mes
83
+ def nombre_mes(mes)
84
+ meses = {
85
+ '01' => 'enero',
86
+ '02' => 'febrero',
87
+ '03' => 'marzo',
88
+ '04' => 'abril',
89
+ '05' => 'mayo',
90
+ '06' => 'junio',
91
+ '07' => 'julio',
92
+ '08' => 'agosto',
93
+ '09' => 'septiembre',
94
+ '10' => 'octubre',
95
+ '11' => 'noviembre',
96
+ '12' => 'diciembre'
97
+ }
98
+ meses[mes]
99
+ end
100
+
101
+ # Nombre de las filas
102
+ @result_data.each_with_index do |_row, i|
103
+ @tabla.setRowText(i, "Registro #{i + 1}")
104
+ end
105
+
106
+ # create buttons
107
+ @btnlists = FXButton.new(self, 'Listar', opts: LAYOUT_EXPLICIT | BUTTON_NORMAL, width: 100, height: 30,
108
+ x: 350, y: 430)
109
+ @btnprint = FXButton.new(self, 'Exportar PDF', opts: LAYOUT_EXPLICIT | BUTTON_NORMAL, width: 100,
110
+ height: 30, x: 460, y: 430)
111
+ @btnedit = FXButton.new(self, 'Editar', opts: LAYOUT_EXPLICIT | BUTTON_NORMAL, width: 100, height: 30,
112
+ x: 570, y: 430)
113
+ @btndelete = FXButton.new(self, 'Eliminar', opts: LAYOUT_EXPLICIT | BUTTON_NORMAL, width: 100, height: 30,
114
+ x: 680, y: 430)
115
+
116
+ # connect buttons
117
+ @btnprint.connect(SEL_COMMAND) do
118
+ seleccionar_directorio
119
+ imprimir_pdf
120
+ end
121
+
122
+ @btnlists.connect(SEL_COMMAND) do
123
+ seleccionar_directorio
124
+ listar_pdf
125
+ end
126
+
127
+ def listar_pdf
128
+ selected_columns = seleccionar_columna
129
+ registros_seleccionados = registros_seleccionados() # Obtén los registros seleccionados
130
+
131
+ if selected_columns.empty? || registros_seleccionados.empty?
132
+ FXMessageBox.warning(self, MBOX_OK, 'Advertencia', 'Debe seleccionar al menos una columna y registros')
133
+ else
134
+ # Genera el archivo PDF
135
+ Prawn::Document.generate(@archivo_pdf, margin: [150, 100, 100, 100]) do |pdf|
136
+ pdf.font 'Helvetica'
137
+ pdf.font_size 12
138
+ pdf.image File.join(File.dirname(__FILE__), '../assets/images/arquidiocesisquito.png'), height: 100,
139
+ position: :absolute, at: [-60, 680]
140
+ pdf.text_box 'Arquidiócesis de Quito', align: :center, size: 16, style: :bold, at: [10, 670],
141
+ width: pdf.bounds.width
142
+ pdf.text_box 'Parroquia Eclesiástica "San Judas Tadeo"', align: :center, size: 14, style: :bold,
143
+ at: [10, 650], width: pdf.bounds.width
144
+ pdf.text_box "Jaime Roldós Aguilera, calle Oe13A y N82\nEl Condado, Quito - Ecuador\nTeléfono: 02496446",
145
+ align: :center, size: 10, at: [10, 630], width: pdf.bounds.width
146
+ pdf.image File.join(File.dirname(__FILE__), '../assets/images/sanjudastadeo.png'), height: 100,
147
+ position: :absolute, at: [430, 680]
148
+ # Título del certificado en color rojo
149
+ pdf.text 'Lista de alumnos', align: :center, size: 20, style: :bold, color: 'FF0000'
150
+ pdf.move_down 20
151
+
152
+ # Recorre todos los registros seleccionados y agrega sus horarios de misas
153
+ pdf.text "Año Lectivo #{registros_seleccionados[0][9]}"
154
+ pdf.move_down 10
155
+ pdf.text "Catequista #{registros_seleccionados[0][11]} #{registros_seleccionados[0][12]}"
156
+ pdf.move_down 10
157
+ pdf.text 'Número | Apellidos | Nombres | Nivel | Sector'
158
+ pdf.move_down 10
159
+ contador = 1
160
+ registros_seleccionados.each do |registro|
161
+ # Listar con numeros
162
+ pdf.text "#{contador} | #{registro[selected_columns[2]]} #{registro[selected_columns[1]]} | #{registro[selected_columns[7]]} | #{registro[selected_columns[8]]}"
163
+ pdf.move_down 10
164
+ contador += 1
165
+ end
166
+ end
167
+ # Abre el archivo PDF con el visor de PDF predeterminado del sistema
168
+ system("xdg-open '#{@archivo_pdf}'")
169
+ end
170
+ # Mensaje de confirmación
171
+ FXMessageBox.information(self, MBOX_OK, 'Información', 'El archivo PDF se ha generado correctamente')
172
+ end
173
+
174
+ def seleccionar_directorio
175
+ dialog = FXDirDialog.new(self, 'Seleccionar directorio para guardar PDF')
176
+ return unless dialog.execute != 0
177
+
178
+ directorio = dialog.getDirectory
179
+
180
+ if registros_seleccionados.nil? || registros_seleccionados.empty?
181
+ FXMessageBox.warning(self, MBOX_OK, 'Advertencia', 'No hay registros seleccionados')
182
+ else
183
+ @archivo_pdf = "#{directorio}/#{registros_seleccionados[0][19]} #{registros_seleccionados[0][20]} - #{registros_seleccionados[0][1]}.pdf"
184
+ end
185
+ end
186
+
187
+
188
+ @btnedit.connect(SEL_COMMAND) do
189
+ # Editar registros seleccionados y actualizar la basee de datos
190
+ registros_seleccionados.each do |registro|
191
+ sql = "SELECT * FROM alumnos INNER JOIN catequistas ON alumnos.id = catequistas.id INNER JOIN niveles ON alumnos.id = niveles.id WHERE alumnos.id = #{registro[0]}"
192
+ $conn.exec(sql) do |result|
193
+ @registros = result.values[0]
194
+ require_relative 'actualizar_alumno'
195
+ vtnactualizar_alumno = ActualizarAlumno.new(@app, @registros)
196
+ vtnactualizar_alumno.create
197
+ vtnactualizar_alumno.show(PLACEMENT_SCREEN)
198
+ end
199
+ end
200
+ end
201
+
202
+ @btndelete.connect(SEL_COMMAND) do
203
+ # eliminar registros seleccionados
204
+ if registros_seleccionados.empty?
205
+ FXMessageBox.warning(self, MBOX_OK, 'Advertencia', 'Debe seleccionar al menos un registro')
206
+ elsif FXMessageBox.question(self, MBOX_YES_NO, 'Confirmación',
207
+ '¿Está seguro de eliminar los registros seleccionados?') == MBOX_CLICKED_YES
208
+ # Mensaje de confirmación
209
+ registros_seleccionados.each do |registro|
210
+ # Eliminar registros de todas las tablas
211
+ sql = 'DELETE FROM alumnos WHERE id = $1'
212
+ $conn.exec_params(sql, [registro[0]])
213
+ sql = 'DELETE FROM catequistas WHERE id = $1'
214
+ $conn.exec_params(sql, [registro[10]])
215
+ sql = 'DELETE FROM niveles WHERE id = $1'
216
+ $conn.exec_params(sql, [registro[6]])
217
+ # Mensaje de confirmación
218
+ FXMessageBox.information(self, MBOX_OK, 'Información',
219
+ 'Los registros seleccionados se han eliminado correctamente')
220
+ end
221
+ end
222
+ end
223
+ Prawn::Fonts::AFM.hide_m17n_warning = true
224
+ end
225
+
226
+ def create
227
+ super
228
+ show(PLACEMENT_SCREEN)
229
+ end
230
+ end
@@ -4,114 +4,109 @@ include Fox
4
4
 
5
5
  class Home < FXMainWindow
6
6
  def initialize(app)
7
- super(app, "Parroquia San Judas Tadeo", :width => 700, :height => 500)
7
+ super(app, 'Parroquia San Judas Tadeo', width: 700, height: 500)
8
8
  @app = app
9
- self.backColor = FXRGB(3,187,133)
9
+ self.backColor = FXRGB(3, 187, 133)
10
10
 
11
11
  # Font
12
- @font = FXFont.new(app, "Geneva", 12, FONTWEIGHT_BOLD)
12
+ @font = FXFont.new(app, 'Geneva', 12, FONTWEIGHT_BOLD)
13
13
 
14
14
  # Inserar imagen del logo
15
- @image = File.join(File.dirname(__FILE__), "assets/images/Logo-SJT.png")
16
- @image = File.open(@image, "rb")
15
+ @image = File.join(File.dirname(__FILE__), 'assets/images/Logo-SJT.png')
16
+ @image = File.open(@image, 'rb')
17
17
  @image = FXPNGIcon.new(app, @image.read)
18
- @logo = FXImageFrame.new(self, @image, :opts => LAYOUT_EXPLICIT|LAYOUT_CENTER_X|LAYOUT_CENTER_Y, :width => 400, :height => 250, :x => 10, :y => 100)
18
+ @logo = FXImageFrame.new(self, @image, opts: LAYOUT_EXPLICIT | LAYOUT_CENTER_X | LAYOUT_CENTER_Y, width: 400,
19
+ height: 250, x: 10, y: 100)
19
20
  # Color de fondo de image frame es el mismo que el de la ventana
20
- @logo.backColor = FXRGB(3,187,133)
21
+ @logo.backColor = FXRGB(3, 187, 133)
21
22
  # Escalar imagen
22
23
  @image.scale(400, 250)
23
24
 
24
25
  # Title
25
- @lbltitle = FXLabel.new(self, "Bienvenido a la Parroquia San Judas Tadeo", :opts => LAYOUT_EXPLICIT|JUSTIFY_CENTER_X, :width => 700, :height => 20, :x => 0, :y => 20)
26
- @lbltitle.font = FXFont.new(app, "Geneva", 16, FONTWEIGHT_BOLD)
27
- @lbltitle.backColor = FXRGB(3,187,133)
26
+ @lbltitle = FXLabel.new(self, 'Bienvenido a la Parroquia San Judas Tadeo',
27
+ opts: LAYOUT_EXPLICIT | JUSTIFY_CENTER_X, width: 700, height: 20, x: 0, y: 20)
28
+ @lbltitle.font = FXFont.new(app, 'Geneva', 16, FONTWEIGHT_BOLD)
29
+ @lbltitle.backColor = FXRGB(3, 187, 133)
28
30
  # Subtitle
29
- @lblsubtitle = FXLabel.new(self, "ARQUIDIOSESIS DE QUITO - SERVICIO PARROQUIAL DE SAN JUDAS TADEO", :opts => LAYOUT_EXPLICIT|JUSTIFY_CENTER_X, :width => 700, :height => 20, :x => 0, :y => 40)
30
- @lblsubtitle.font = FXFont.new(app, "Geneva", 10, FONTWEIGHT_BOLD)
31
- @lblsubtitle.backColor = FXRGB(3,187,133)
31
+ @lblsubtitle = FXLabel.new(self, 'ARQUIDIOSESIS DE QUITO - SERVICIO PARROQUIAL DE SAN JUDAS TADEO',
32
+ opts: LAYOUT_EXPLICIT | JUSTIFY_CENTER_X, width: 700, height: 20, x: 0, y: 40)
33
+ @lblsubtitle.font = FXFont.new(app, 'Geneva', 10, FONTWEIGHT_BOLD)
34
+ @lblsubtitle.backColor = FXRGB(3, 187, 133)
32
35
  # Date
33
- @date = Time.now.strftime("%d/%m/%Y")
34
- @lbldate = FXLabel.new(self, "Fecha: #{cambiar_formato_fecha(@date)}", :opts => LAYOUT_EXPLICIT|JUSTIFY_RIGHT, :width => 700, :height => 20, :x => 0, :y => 60, :padRight => 20)
35
- @lbldate.font = FXFont.new(app, "Geneva", 12, FONTWEIGHT_BOLD)
36
- @lbldate.backColor = FXRGB(3,187,133)
36
+ @date = Time.now.strftime('%d/%m/%Y')
37
+ @lbldate = FXLabel.new(self, "Fecha: #{cambiar_formato_fecha(@date)}", opts: LAYOUT_EXPLICIT | JUSTIFY_RIGHT,
38
+ width: 700, height: 20, x: 0, y: 60, padRight: 20)
39
+ @lbldate.font = FXFont.new(app, 'Geneva', 12, FONTWEIGHT_BOLD)
40
+ @lbldate.backColor = FXRGB(3, 187, 133)
37
41
 
38
- #section lista
39
- @btnbautizo = FXButton.new(self, "Ingresar Bautismo", :opts => LAYOUT_EXPLICIT|BUTTON_NORMAL, :width => 150,:height => 30, :x => 460, :y => 150)
40
- @btnconfirmacion = FXButton.new(self, "Ingresar Confirmación", :opts => LAYOUT_EXPLICIT|BUTTON_NORMAL, :width => 150,:height => 30, :x => 460, :y => 190)
41
- @btnmatrimonio = FXButton.new(self, "Ingresar Matrimonio", :opts => LAYOUT_EXPLICIT|BUTTON_NORMAL, :width => 150,:height => 30, :x => 460, :y => 230)
42
- @btnconsulta = FXButton.new(self, "Consultar", :opts => LAYOUT_EXPLICIT|BUTTON_NORMAL, :width => 150,:height => 30, :x => 460, :y => 270)
42
+ # section lista
43
+ @btnsacramentos = FXButton.new(self, 'Sacramentos', opts: LAYOUT_EXPLICIT | BUTTON_NORMAL, width: 150,
44
+ height: 30, x: 460, y: 150)
45
+ @btncatecismo = FXButton.new(self, 'Catecismo', opts: LAYOUT_EXPLICIT | BUTTON_NORMAL, width: 150,
46
+ height: 30, x: 460, y: 190)
43
47
 
44
- # Footer
45
- @lblfooter = FXLabel.new(self, "WebMinds Studio - 2023", :opts => LAYOUT_EXPLICIT|JUSTIFY_CENTER_X, :width =>700, :height => 20, :x => 0, :y => 400)
46
- @lblfooter.font = FXFont.new(app, "Geneva", 10)
47
- @lblfooter.backColor = FXRGB(3,187,133)
48
- @lblauthor = FXLabel.new(self, "Desarrollado por Ing. Francisco J. Borja L.", :opts => LAYOUT_EXPLICIT|JUSTIFY_CENTER_X, :width =>700, :height => 20, :x => 0, :y => 420)
49
- @lblauthor.font = FXFont.new(app, "Geneva", 10)
50
- @lblauthor.backColor = FXRGB(3,187,133)
51
- @lblweb = FXLabel.new(self, "www.webmindsstudio.com", :opts => LAYOUT_EXPLICIT|JUSTIFY_CENTER_X, :width =>700, :height => 20, :x => 0, :y => 440)
52
- @lblweb.font = FXFont.new(app, "Geneva", 10)
53
- @lblweb.backColor = FXRGB(3,187,133)
54
- @lbllicence = FXLabel.new(self, "MIT License", :opts => LAYOUT_EXPLICIT|JUSTIFY_CENTER_X, :width =>700, :height => 20, :x => 0, :y => 460)
55
- @lbllicence.font = FXFont.new(app, "Geneva", 10)
56
- @lbllicence.backColor = FXRGB(3,187,133)
57
- #section buttons executions
58
- @btnbautizo.connect(SEL_COMMAND) do
59
- require_relative 'bautizo.rb'
60
- vtnbautizo = Bautizo.new(@app)
61
- vtnbautizo.create
62
- vtnbautizo.show(PLACEMENT_SCREEN)
48
+ # Footer
49
+ @lblfooter = FXLabel.new(self, 'WebMinds Studio - 2023', opts: LAYOUT_EXPLICIT | JUSTIFY_CENTER_X, width: 700,
50
+ height: 20, x: 0, y: 400)
51
+ @lblfooter.font = FXFont.new(app, 'Geneva', 10)
52
+ @lblfooter.backColor = FXRGB(3, 187, 133)
53
+ @lblauthor = FXLabel.new(self, 'Desarrollado por Ing. Francisco J. Borja L.',
54
+ opts: LAYOUT_EXPLICIT | JUSTIFY_CENTER_X, width: 700, height: 20, x: 0, y: 420)
55
+ @lblauthor.font = FXFont.new(app, 'Geneva', 10)
56
+ @lblauthor.backColor = FXRGB(3, 187, 133)
57
+ @lblweb = FXLabel.new(self, 'www.webmindsstudio.com', opts: LAYOUT_EXPLICIT | JUSTIFY_CENTER_X, width: 700,
58
+ height: 20, x: 0, y: 440)
59
+ @lblweb.font = FXFont.new(app, 'Geneva', 10)
60
+ @lblweb.backColor = FXRGB(3, 187, 133)
61
+ @lbllicence = FXLabel.new(self, 'MIT License', opts: LAYOUT_EXPLICIT | JUSTIFY_CENTER_X, width: 700,
62
+ height: 20, x: 0, y: 460)
63
+ @lbllicence.font = FXFont.new(app, 'Geneva', 10)
64
+ @lbllicence.backColor = FXRGB(3, 187, 133)
65
+ # section buttons executions
66
+ @btnsacramentos.connect(SEL_COMMAND) do
67
+ require_relative 'sacramentos/sacramentos'
68
+ vtnsacramentos = Sacramentos.new(@app)
69
+ vtnsacramentos.create
70
+ vtnsacramentos.show(PLACEMENT_SCREEN)
63
71
  end
64
- @btnconfirmacion.connect(SEL_COMMAND) do
65
- require_relative 'confirmacion.rb'
66
- vtnconfirmacion = Confirmacion.new(@app)
67
- vtnconfirmacion.create
68
- vtnconfirmacion.show(PLACEMENT_SCREEN)
69
- end
70
- @btnmatrimonio.connect(SEL_COMMAND) do
71
- require_relative 'matrimonio.rb'
72
- vtnmatrimonio = Matrimonio.new(@app)
73
- vtnmatrimonio.create
74
- vtnmatrimonio.show(PLACEMENT_SCREEN)
75
- end
76
- @btnconsulta.connect(SEL_COMMAND) do
77
- require_relative 'consultas.rb'
78
- vtnconsulta = Consulta.new(@app)
79
- vtnconsulta.create
80
- vtnconsulta.show(PLACEMENT_SCREEN)
72
+ @btncatecismo.connect(SEL_COMMAND) do
73
+ require_relative 'catecismo/catecismo'
74
+ vtncatecismo = Catecismo.new(@app)
75
+ vtncatecismo.create
76
+ vtncatecismo.show(PLACEMENT_SCREEN)
81
77
  end
82
78
  end
83
79
 
84
80
  # Nombre del mes
85
- def nombre_mes(mes)
86
- meses = {
87
- "01" => "enero",
88
- "02" => "febrero",
89
- "03" => "marzo",
90
- "04" => "abril",
91
- "05" => "mayo",
92
- "06" => "junio",
93
- "07" => "julio",
94
- "08" => "agosto",
95
- "09" => "septiembre",
96
- "10" => "octubre",
97
- "11" => "noviembre",
98
- "12" => "diciembre"
99
- }
100
- meses[mes]
101
- end
102
-
81
+ def nombre_mes(mes)
82
+ meses = {
83
+ '01' => 'enero',
84
+ '02' => 'febrero',
85
+ '03' => 'marzo',
86
+ '04' => 'abril',
87
+ '05' => 'mayo',
88
+ '06' => 'junio',
89
+ '07' => 'julio',
90
+ '08' => 'agosto',
91
+ '09' => 'septiembre',
92
+ '10' => 'octubre',
93
+ '11' => 'noviembre',
94
+ '12' => 'diciembre'
95
+ }
96
+ meses[mes]
97
+ end
103
98
 
104
99
  # Cambiar el formato de la fecha de YYYY-MM-DD a DD de nombre_mes de YYYY
105
- def cambiar_formato_fecha(fecha)
106
- # split "-" or "/"
107
- fecha = fecha.split(/-|\//)
108
- # si el formato de fecha es YYYY-MM-DD o YYYY/MM/DD, sino si es DD-MM-YYYY o DD/MM/YYYY
109
- if fecha[0].length == 4
110
- "#{fecha[2]} de #{nombre_mes(fecha[1])} de #{fecha[0]}"
111
- else
112
- "#{fecha[0]} de #{nombre_mes(fecha[1])} de #{fecha[2]}"
113
- end
100
+ def cambiar_formato_fecha(fecha)
101
+ # split "-" or "/"
102
+ fecha = fecha.split(%r{-|/})
103
+ # si el formato de fecha es YYYY-MM-DD o YYYY/MM/DD, sino si es DD-MM-YYYY o DD/MM/YYYY
104
+ if fecha[0].length == 4
105
+ "#{fecha[2]} de #{nombre_mes(fecha[1])} de #{fecha[0]}"
106
+ else
107
+ "#{fecha[0]} de #{nombre_mes(fecha[1])} de #{fecha[2]}"
114
108
  end
109
+ end
115
110
 
116
111
  def create
117
112
  super
@@ -121,13 +116,9 @@ end
121
116
 
122
117
  $conn = PG.connect(host: 'localhost', port: '5432', dbname: 'sacramentos', user: 'postgres', password: 'postgres')
123
118
  # Comprobar conexión con la base de datos
124
- if $conn.status != PG::CONNECTION_OK
125
- exit
126
- end
119
+ exit if $conn.status != PG::CONNECTION_OK
127
120
 
128
121
  app = FXApp.new
129
- vtnhome = Home.new(app)
122
+ Home.new(app)
130
123
  app.create
131
124
  app.run
132
-
133
-