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.
- checksums.yaml +4 -4
- data/lib/parroquia/catecismo/actualizar_alumno.rb +181 -0
- data/lib/parroquia/catecismo/alumno.rb +179 -0
- data/lib/parroquia/catecismo/catecismo.rb +119 -0
- data/lib/parroquia/catecismo/consulta.rb +177 -0
- data/lib/parroquia/catecismo/resultado.rb +230 -0
- data/lib/parroquia/main.rb +82 -91
- data/lib/parroquia/sacramentos/actualizar_bautismo.rb +313 -0
- data/lib/parroquia/sacramentos/actualizar_certificado_prebautismal.rb +184 -0
- data/lib/parroquia/sacramentos/actualizar_comunion.rb +239 -0
- data/lib/parroquia/sacramentos/actualizar_confirmacion.rb +239 -0
- data/lib/parroquia/sacramentos/actualizar_matrimonio.rb +298 -0
- data/lib/parroquia/sacramentos/actualizar_misa.rb +170 -0
- data/lib/parroquia/sacramentos/actualizar_permiso_prebautismal.rb +200 -0
- data/lib/parroquia/sacramentos/actualizar_permiso_prematrimonial.rb +205 -0
- data/lib/parroquia/sacramentos/actualizar_supletoria.rb +313 -0
- data/lib/parroquia/sacramentos/bautizo.rb +310 -0
- data/lib/parroquia/sacramentos/certificado_prebautismal.rb +195 -0
- data/lib/parroquia/sacramentos/comunion.rb +234 -0
- data/lib/parroquia/sacramentos/confirmacion.rb +239 -0
- data/lib/parroquia/sacramentos/consultas.rb +162 -0
- data/lib/parroquia/sacramentos/matrimonio.rb +297 -0
- data/lib/parroquia/sacramentos/misa.rb +171 -0
- data/lib/parroquia/sacramentos/permiso_bautismo.rb +207 -0
- data/lib/parroquia/sacramentos/permiso_prematrimonial.rb +219 -0
- data/lib/parroquia/sacramentos/resultados.rb +931 -0
- data/lib/parroquia/sacramentos/sacramentos.rb +182 -0
- data/lib/parroquia/sacramentos/supletoria.rb +309 -0
- metadata +30 -11
- data/lib/parroquia/actualizar_bautismo.rb +0 -245
- data/lib/parroquia/actualizar_confirmacion.rb +0 -194
- data/lib/parroquia/actualizar_matrimonio.rb +0 -235
- data/lib/parroquia/bautizo.rb +0 -239
- data/lib/parroquia/confirmacion.rb +0 -191
- data/lib/parroquia/consultas.rb +0 -144
- data/lib/parroquia/matrimonio.rb +0 -232
- 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
|
data/lib/parroquia/main.rb
CHANGED
@@ -4,114 +4,109 @@ include Fox
|
|
4
4
|
|
5
5
|
class Home < FXMainWindow
|
6
6
|
def initialize(app)
|
7
|
-
super(app,
|
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,
|
12
|
+
@font = FXFont.new(app, 'Geneva', 12, FONTWEIGHT_BOLD)
|
13
13
|
|
14
14
|
# Inserar imagen del logo
|
15
|
-
@image = File.join(File.dirname(__FILE__),
|
16
|
-
@image = File.open(@image,
|
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, :
|
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,
|
26
|
-
|
27
|
-
@lbltitle.
|
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,
|
30
|
-
|
31
|
-
@lblsubtitle.
|
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(
|
34
|
-
@lbldate = FXLabel.new(self, "Fecha: #{cambiar_formato_fecha(@date)}", :
|
35
|
-
|
36
|
-
@lbldate.
|
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
|
-
@
|
40
|
-
|
41
|
-
@
|
42
|
-
|
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
|
-
|
45
|
-
@lblfooter = FXLabel.new(self,
|
46
|
-
|
47
|
-
@lblfooter.
|
48
|
-
@
|
49
|
-
@lblauthor
|
50
|
-
|
51
|
-
@
|
52
|
-
@
|
53
|
-
@lblweb
|
54
|
-
|
55
|
-
@
|
56
|
-
@
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
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
|
-
@
|
65
|
-
require_relative '
|
66
|
-
|
67
|
-
|
68
|
-
|
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
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
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
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
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
|
-
|
122
|
+
Home.new(app)
|
130
123
|
app.create
|
131
124
|
app.run
|
132
|
-
|
133
|
-
|