parroquia 1.1.12 → 1.1.14

Sign up to get free protection for your applications and to get access to all the features.
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 -92
  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 -255
  31. data/lib/parroquia/actualizar_confirmacion.rb +0 -203
  32. data/lib/parroquia/actualizar_matrimonio.rb +0 -243
  33. data/lib/parroquia/bautizo.rb +0 -249
  34. data/lib/parroquia/confirmacion.rb +0 -200
  35. data/lib/parroquia/consultas.rb +0 -147
  36. data/lib/parroquia/matrimonio.rb +0 -241
  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,14 +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
- puts "Error de conexión con la base de datos"
126
- exit
127
- end
119
+ exit if $conn.status != PG::CONNECTION_OK
128
120
 
129
121
  app = FXApp.new
130
- vtnhome = Home.new(app)
122
+ Home.new(app)
131
123
  app.create
132
124
  app.run
133
-
134
-