Documentado el controlador de egresos

This commit is contained in:
Daniel Cortes
2018-12-30 17:57:49 -03:00
parent aa7876563f
commit b9f4c4ccd9
2 changed files with 320 additions and 50 deletions

240
.idea/workspace.xml generated
View File

@@ -7,13 +7,8 @@
</component>
<component name="ChangeListManager">
<list default="true" id="a633d35a-56a6-4479-b4c4-f97198052fb7" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/artifacts/caja_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/artifacts/caja_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/caja.iml" beforeDir="false" afterPath="$PROJECT_DIR$/caja.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/Main.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/controllers/ArqueoController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/controllers/ArqueoController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/views/ArqueoView.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/views/ArqueoView.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/views/IngresosView.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/views/IngresosView.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/controllers/EgresosController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/controllers/EgresosController.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/target/" />
<ignored path=".idea/" />
@@ -69,7 +64,122 @@
<favorites_list name="caja" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/controllers/EgresosController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="282">
<caret line="375" column="7" lean-forward="true" selection-start-line="369" selection-end-line="383" selection-end-column="5" />
<folding>
<element signature="docComment;method#EgresosController#0;class#EgresosController#0" />
<element signature="method#EgresosController#0;class#EgresosController#0" />
<element signature="docComment;method#getEgresoDAO#0;class#EgresosController#0" />
<element signature="docComment;method#getTipoEgresoDAO#0;class#EgresosController#0" />
<element signature="docComment;method#updateCaja#0;class#EgresosController#0" />
<element signature="method#updateCaja#0;class#EgresosController#0" />
<element signature="docComment;method#fillTipoEgresoCombo#0;class#EgresosController#0" />
<element signature="method#fillTipoEgresoCombo#0;class#EgresosController#0" />
<element signature="e#3337#3391#1" />
<element signature="docComment;method#fillEgresosTable#0;class#EgresosController#0" />
<element signature="method#fillEgresosTable#0;class#EgresosController#0" />
<element signature="e#3726#3783#1" />
<element signature="docComment;method#setUpViewEvents#0;class#EgresosController#0" />
<element signature="method#setUpViewEvents#0;class#EgresosController#0" />
<element signature="e#5089#5153#1" />
<element signature="e#5465#5551#1" />
<element signature="docComment;method#guardarActionListener#0;class#EgresosController#0" />
<element signature="method#guardarActionListener#0;class#EgresosController#0" />
<element signature="e#6307#6391#1" />
<element signature="e#6396#6481#1" />
<element signature="docComment;method#eliminarActionListener#0;class#EgresosController#0" />
<element signature="method#eliminarActionListener#0;class#EgresosController#0" />
<element signature="e#6877#7169#1" />
<element signature="docComment;method#editarActionListener#0;class#EgresosController#0" />
<element signature="method#editarActionListener#0;class#EgresosController#0" />
<element signature="e#7403#7915#1" />
<element signature="docComment;method#updateTotalEgresos#0;class#EgresosController#0" />
<element signature="method#updateTotalEgresos#0;class#EgresosController#0" />
<element signature="docComment;method#updateButtonsEnabled#0;class#EgresosController#0" />
<element signature="method#updateButtonsEnabled#0;class#EgresosController#0" />
<element signature="e#8373#8502#1" />
<element signature="e#8508#8639#1" />
<element signature="docComment;method#guardarEgreso#0;class#EgresosController#0" />
<element signature="method#guardarEgreso#0;class#EgresosController#0" />
<element signature="e#8823#9259#1" />
<element signature="docComment;method#editarEgreso#0;class#EgresosController#0" />
<element signature="method#editarEgreso#0;class#EgresosController#0" />
<element signature="e#9442#9927#1" />
<element signature="docComment;method#validateInput#0;class#EgresosController#0" />
<element signature="method#validateInput#0;class#EgresosController#0" />
<element signature="method#validateNro#0;class#EgresosController#0" />
<element signature="e#10592#10768#1" />
<element signature="e#10823#10988#1" />
<element signature="e#11113#11299#1" />
<element signature="e#11659#11833#1" />
<element signature="e#11894#12057#1" />
<element signature="e#12116#12277#1" />
<element signature="e#12312#12494#1" />
<element signature="method#hideErrorMessages#0;class#EgresosController#0" />
<element signature="method#clearInputs#0;class#EgresosController#0" />
<element signature="method#normalizeInputs#0;class#EgresosController#0" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/controllers/ArqueoController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="644">
<caret line="68" selection-start-line="68" selection-end-line="68" />
<folding>
<element signature="method#ArqueoController#0;class#ArqueoController#0" />
<element signature="method#updateCaja#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumen#0;class#ArqueoController#0" />
<element signature="docComment;method#fillEfectivo#0;class#ArqueoController#0" />
<element signature="method#fillEfectivo#0;class#ArqueoController#0" />
<element signature="docComment;method#fillDocumentos#0;class#ArqueoController#0" />
<element signature="method#fillDocumentos#0;class#ArqueoController#0" />
<element signature="docComment;method#fillResumen#0;class#ArqueoController#0" />
<element signature="method#fillResumen#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumenEfectivo#0;class#ArqueoController#0" />
<element signature="method#updateResumenEfectivo#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumenDocumentos#0;class#ArqueoController#0" />
<element signature="method#updateResumenDocumentos#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumenIngresos#0;class#ArqueoController#0" />
<element signature="method#updateResumenIngresos#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumenEgresos#0;class#ArqueoController#0" />
<element signature="method#updateResumenEgresos#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumenArqueo#0;class#ArqueoController#0" />
<element signature="method#updateResumenArqueo#0;class#ArqueoController#0" />
<element signature="docComment;method#setUpViewEvents#0;class#ArqueoController#0" />
<element signature="method#setUpViewEvents#0;class#ArqueoController#0" />
<element signature="docComment;method#guardarEfectivo#0;class#ArqueoController#0" />
<element signature="method#guardarEfectivo#0;class#ArqueoController#0" />
<element signature="docComment;method#guardarDocumentos#0;class#ArqueoController#0" />
<element signature="method#guardarDocumentos#0;class#ArqueoController#0" />
<element signature="docComment;method#validateEfectivoInput#0;class#ArqueoController#0" />
<element signature="method#validateEfectivoInput#0;class#ArqueoController#0" />
<element signature="docComment;method#validateDocumentosInput#0;class#ArqueoController#0" />
<element signature="method#validateDocumentosInput#0;class#ArqueoController#0" />
<element signature="docComment;method#validateEfectivoMoneda#0;class#ArqueoController#0" />
<element signature="method#validateEfectivoMoneda#0;class#ArqueoController#0" />
<element signature="docComment;method#validateDocumentosValor#0;class#ArqueoController#0" />
<element signature="method#validateDocumentosValor#0;class#ArqueoController#0" />
<element signature="docComment;method#hiddeEfectivoErrorMessages#0;class#ArqueoController#0" />
<element signature="method#hiddeEfectivoErrorMessages#0;class#ArqueoController#0" />
<element signature="docComment;method#hiddeDocumentosErrorMessages#0;class#ArqueoController#0" />
<element signature="method#hiddeDocumentosErrorMessages#0;class#ArqueoController#0" />
<element signature="docComment;method#normalizeEfectivoInput#0;class#ArqueoController#0" />
<element signature="method#normalizeEfectivoInput#0;class#ArqueoController#0" />
<element signature="docComment;method#normalizeDocumentosInput#0;class#ArqueoController#0" />
<element signature="method#normalizeDocumentosInput#0;class#ArqueoController#0" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
@@ -129,7 +239,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/danielcortes/xyz/models/documentos/Documentos.java" />
<option value="$PROJECT_DIR$/database/create.sql" />
<option value="$PROJECT_DIR$/src/main/java/danielcortes/xyz/models/ingreso/Ingreso.java" />
<option value="$PROJECT_DIR$/src/main/java/danielcortes/xyz/views/IngresosView.form" />
@@ -180,6 +289,7 @@
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/IngresosView.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/ManagerView.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/controllers/ArqueoController.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/controllers/EgresosController.java" />
</list>
</option>
</component>
@@ -234,7 +344,6 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@@ -265,6 +374,7 @@
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -274,7 +384,7 @@
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.STATE" value="ToolWindow" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1546059668578" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1546117715919" />
<property name="com.intellij.ide.scratch.LRUPopupBuilder$1/Change SQL Dialect" value="SQLite" />
<property name="database.console.LAST_STATE" value="false" />
<property name="extract.method.default.visibility" value="private" />
@@ -438,7 +548,9 @@
<workItem from="1546055337313" duration="51000" />
<workItem from="1546056688278" duration="4000" />
<workItem from="1546056706584" duration="30000" />
<workItem from="1546056798270" duration="2649000" />
<workItem from="1546056798270" duration="2879000" />
<workItem from="1546115694757" duration="3182000" />
<workItem from="1546202000368" duration="1353000" />
</task>
<task id="LOCAL-00001" summary="First!! :3 Existe una pequeña base de proyecto por ahora">
<created>1545280618093</created>
@@ -580,11 +692,18 @@
<option name="project" value="LOCAL" />
<updated>1546045462880</updated>
</task>
<option name="localTasksCounter" value="21" />
<task id="LOCAL-00021" summary="Creando documentacion basica">
<created>1546059689157</created>
<option name="number" value="00021" />
<option name="presentableId" value="LOCAL-00021" />
<option name="project" value="LOCAL" />
<updated>1546059689157</updated>
</task>
<option name="localTasksCounter" value="22" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="169136000" />
<option name="totallyTimeSpent" value="173901000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@@ -597,8 +716,9 @@
</component>
<component name="ToolWindowManager">
<frame x="0" y="-18" width="1366" height="765" extended-state="6" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49438202" visible="true" weight="0.17199391" />
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.49438202" weight="0.17503805" />
<window_info id="Image Layers" order="1" />
<window_info id="Designer" order="2" />
<window_info x="458" y="95" width="450" height="453" id="UI Designer" order="3" weight="0.32952815" />
@@ -705,14 +825,14 @@
<MESSAGE value="Agregadas clases para compatibilidad con sqlite" />
<MESSAGE value="Corregido problemas .w." />
<MESSAGE value="Separando un poco las clases de los modelos" />
<option name="LAST_COMMIT_MESSAGE" value="Separando un poco las clases de los modelos" />
<MESSAGE value="Creando documentacion basica" />
<option name="LAST_COMMIT_MESSAGE" value="Creando documentacion basica" />
</component>
<component name="antWorkspaceConfiguration">
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/views/ArqueoView.form" />
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/data/MysqlConnectionHolder.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/data/Properties.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/data/ConnectionHolder.java" />
@@ -839,13 +959,7 @@
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/models/tipo_ingreso/SQLiteTipoIngresoDAO.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/models/tipo_ingreso/TipoIngresoDAO.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/danielcortes/xyz/models/tipo_ingreso/MysqlTipoIngresoDAO.java" />
<entry file="file://$PROJECT_DIR$/caja-intellij.iml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="138">
<caret line="6" column="10" selection-start-line="6" selection-start-column="10" selection-end-line="6" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/caja-intellij.iml" />
<entry file="file://$PROJECT_DIR$/conf.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="529">
@@ -989,14 +1103,72 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/controllers/EgresosController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="282">
<caret line="375" column="7" lean-forward="true" selection-start-line="369" selection-end-line="383" selection-end-column="5" />
<folding>
<element signature="docComment;method#EgresosController#0;class#EgresosController#0" />
<element signature="method#EgresosController#0;class#EgresosController#0" />
<element signature="docComment;method#getEgresoDAO#0;class#EgresosController#0" />
<element signature="docComment;method#getTipoEgresoDAO#0;class#EgresosController#0" />
<element signature="docComment;method#updateCaja#0;class#EgresosController#0" />
<element signature="method#updateCaja#0;class#EgresosController#0" />
<element signature="docComment;method#fillTipoEgresoCombo#0;class#EgresosController#0" />
<element signature="method#fillTipoEgresoCombo#0;class#EgresosController#0" />
<element signature="e#3337#3391#1" />
<element signature="docComment;method#fillEgresosTable#0;class#EgresosController#0" />
<element signature="method#fillEgresosTable#0;class#EgresosController#0" />
<element signature="e#3726#3783#1" />
<element signature="docComment;method#setUpViewEvents#0;class#EgresosController#0" />
<element signature="method#setUpViewEvents#0;class#EgresosController#0" />
<element signature="e#5089#5153#1" />
<element signature="e#5465#5551#1" />
<element signature="docComment;method#guardarActionListener#0;class#EgresosController#0" />
<element signature="method#guardarActionListener#0;class#EgresosController#0" />
<element signature="e#6307#6391#1" />
<element signature="e#6396#6481#1" />
<element signature="docComment;method#eliminarActionListener#0;class#EgresosController#0" />
<element signature="method#eliminarActionListener#0;class#EgresosController#0" />
<element signature="e#6877#7169#1" />
<element signature="docComment;method#editarActionListener#0;class#EgresosController#0" />
<element signature="method#editarActionListener#0;class#EgresosController#0" />
<element signature="e#7403#7915#1" />
<element signature="docComment;method#updateTotalEgresos#0;class#EgresosController#0" />
<element signature="method#updateTotalEgresos#0;class#EgresosController#0" />
<element signature="docComment;method#updateButtonsEnabled#0;class#EgresosController#0" />
<element signature="method#updateButtonsEnabled#0;class#EgresosController#0" />
<element signature="e#8373#8502#1" />
<element signature="e#8508#8639#1" />
<element signature="docComment;method#guardarEgreso#0;class#EgresosController#0" />
<element signature="method#guardarEgreso#0;class#EgresosController#0" />
<element signature="e#8823#9259#1" />
<element signature="docComment;method#editarEgreso#0;class#EgresosController#0" />
<element signature="method#editarEgreso#0;class#EgresosController#0" />
<element signature="e#9442#9927#1" />
<element signature="docComment;method#validateInput#0;class#EgresosController#0" />
<element signature="method#validateInput#0;class#EgresosController#0" />
<element signature="method#validateNro#0;class#EgresosController#0" />
<element signature="e#10592#10768#1" />
<element signature="e#10823#10988#1" />
<element signature="e#11113#11299#1" />
<element signature="e#11659#11833#1" />
<element signature="e#11894#12057#1" />
<element signature="e#12116#12277#1" />
<element signature="e#12312#12494#1" />
<element signature="method#hideErrorMessages#0;class#EgresosController#0" />
<element signature="method#clearInputs#0;class#EgresosController#0" />
<element signature="method#normalizeInputs#0;class#EgresosController#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/controllers/ArqueoController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="807">
<caret line="403" column="4" selection-start-line="403" selection-start-column="4" selection-end-line="403" selection-end-column="4" />
<state relative-caret-position="644">
<caret line="68" selection-start-line="68" selection-end-line="68" />
<folding>
<element signature="docComment;method#ArqueoController#0;class#ArqueoController#0" />
<element signature="method#ArqueoController#0;class#ArqueoController#0" />
<element signature="docComment;method#updateCaja#0;class#ArqueoController#0" />
<element signature="method#updateCaja#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumen#0;class#ArqueoController#0" />
<element signature="docComment;method#fillEfectivo#0;class#ArqueoController#0" />
@@ -1015,34 +1187,20 @@
<element signature="method#updateResumenEgresos#0;class#ArqueoController#0" />
<element signature="docComment;method#updateResumenArqueo#0;class#ArqueoController#0" />
<element signature="method#updateResumenArqueo#0;class#ArqueoController#0" />
<element signature="e#5856#5941#1" />
<element signature="e#5945#6028#1" />
<element signature="docComment;method#setUpViewEvents#0;class#ArqueoController#0" />
<element signature="method#setUpViewEvents#0;class#ArqueoController#0" />
<element signature="e#6137#6232#0" />
<element signature="e#6300#6399#0" />
<element signature="docComment;method#guardarEfectivo#0;class#ArqueoController#0" />
<element signature="method#guardarEfectivo#0;class#ArqueoController#0" />
<element signature="e#7135#7854#1" />
<element signature="docComment;method#guardarDocumentos#0;class#ArqueoController#0" />
<element signature="method#guardarDocumentos#0;class#ArqueoController#0" />
<element signature="e#8093#8384#1" />
<element signature="docComment;method#validateEfectivoInput#0;class#ArqueoController#0" />
<element signature="method#validateEfectivoInput#0;class#ArqueoController#0" />
<element signature="docComment;method#validateDocumentosInput#0;class#ArqueoController#0" />
<element signature="method#validateDocumentosInput#0;class#ArqueoController#0" />
<element signature="docComment;method#validateEfectivoMoneda#0;class#ArqueoController#0" />
<element signature="method#validateEfectivoMoneda#0;class#ArqueoController#0" />
<element signature="e#10196#10340#1" />
<element signature="e#10371#10504#1" />
<element signature="e#10563#10694#1" />
<element signature="e#10729#10881#1" />
<element signature="docComment;method#validateDocumentosValor#0;class#ArqueoController#0" />
<element signature="method#validateDocumentosValor#0;class#ArqueoController#0" />
<element signature="e#11018#11162#1" />
<element signature="e#11193#11326#1" />
<element signature="e#11385#11516#1" />
<element signature="e#11551#11703#1" />
<element signature="docComment;method#hiddeEfectivoErrorMessages#0;class#ArqueoController#0" />
<element signature="method#hiddeEfectivoErrorMessages#0;class#ArqueoController#0" />
<element signature="docComment;method#hiddeDocumentosErrorMessages#0;class#ArqueoController#0" />

View File

@@ -48,6 +48,15 @@ public class EgresosController {
private boolean editing;
private Egreso editingEgreso;
/**
* Crea el controlador para la vista de egresos y ejecuta:
* - Metodo que genera los eventos para la vista.
* - Metodo que llena los tipos de egresos en la vista.
* - Actualiza el estado de los botones.
* @param view
* @param egresoDAO
* @param tipoEgresoDAO
*/
public EgresosController(EgresosView view, EgresoDAO egresoDAO, TipoEgresoDAO tipoEgresoDAO) {
this.view = view;
this.egresoDAO = egresoDAO;
@@ -57,20 +66,35 @@ public class EgresosController {
this.updateButtonsEnabled();
}
/**
* Getter!
* @return
*/
public EgresoDAO getEgresoDAO() {
return egresoDAO;
}
/**
* Getter
* @return
*/
public TipoEgresoDAO getTipoEgresoDAO() {
return tipoEgresoDAO;
}
/**
* Actualiza los datos de la tabla de egresos y actualiza el field con el total de egresos.
* @param caja
*/
public void updateCaja(Caja caja){
this.caja = caja;
this.fillEgresosTable();
this.updateTotalEgresos();
}
/**
* Rellena el ComboBox con los tipos de egresos disponibles
*/
private void fillTipoEgresoCombo() {
JComboBox<TipoEgreso> tipoCombo = view.getTipoCombo();
for (TipoEgreso tipoEgreso : this.tipoEgresoDAO.findAll()) {
@@ -78,6 +102,9 @@ public class EgresosController {
}
}
/**
* Rellena la tabla de egresos con los egresos correspondientes a la caja seleccionada
*/
private void fillEgresosTable() {
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
egresosTableModel.removeRows();
@@ -86,8 +113,15 @@ public class EgresosController {
}
}
/**
* Asigna todos los eventos para la vista de egresos.
* - Cuando se apreta el boton de guardar o se apreta enter en los fields de descripcion, nro, valor y tipo
* Se llama al metodo guardarActionListener.
* - Cuando se apreta el boton de eliminar se llama al metodos eliminarActionListener
* - Cuando se presuiona editar o se realizan 2 clicks en la tabla de egresos se llama al metodo editar.
*/
private void setUpViewEvents() {
this.view.getEgresosTable().getSelectionModel().addListSelectionListener(e -> onSelectTableRowListener());
this.view.getEgresosTable().getSelectionModel().addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
@@ -112,8 +146,16 @@ public class EgresosController {
});
}
/**
* Realiza las actiones necesarias para guardar un egreso
* Primero llama a normalizar los inputs y a ocultar los mensajes de error
* Luego si es que esta colocada la flag de editing se llama al metodo editarEgreso y si no, se llama a guardarEgreso
* Al terminar esto, se llama a resetear el focus en los inputs y a actualizar el total de egresos
*
*/
private void guardarActionListener() {
this.normalizeInputs();
this.hideErrorMessages();
String nro = this.view.getNroField().getText();
String descripcion = this.view.getDescripcionField().getText();
@@ -128,6 +170,10 @@ public class EgresosController {
this.resetFocus();
}
/**
* Realiza las acciones necesarias para eliminar un egreso
* Obtiene el egreso seleccionado y lo elimina, luego llama a actualizar el total de egresos y a actualizar el estado de los botones.
*/
private void eliminarActionListener() {
int selectedID = this.view.getEgresosTable().getSelectedRow();
if (selectedID >= 0) {
@@ -139,7 +185,16 @@ public class EgresosController {
}
}
/**
* Realiza lo necesario para comenzar a editar un egreso
* Llama a esconder los mensajes de error y a normalizar los inputs
* Guarda globalmente en la clase el egreso que se esta editando, su id y una flag indicando que se esta en modo editar.
* Ademas rellena los campos de input con los valores del egreso que se esta editando.
*/
private void editarActionListener() {
this.normalizeInputs();
this.hideErrorMessages();
int selectedID = this.view.getEgresosTable().getSelectedRow();
if (selectedID >= 0) {
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedID);
@@ -155,16 +210,18 @@ public class EgresosController {
}
}
private void onSelectTableRowListener() {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
}
/**
* Obtiene el total de egresos y los coloca en el campo de totalEgresosField.
*/
private void updateTotalEgresos() {
int total = this.egresoDAO.getTotalEgreso(this.caja);
this.view.getTotalEgresosField().setText(String.valueOf(total));
}
/**
* Cuando se tiene seleccionada una fila de la tabla activa los botones de eliminar y editar
* Si no esta seleccionada los desactiva
*/
private void updateButtonsEnabled() {
if (this.view.getEgresosTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
@@ -175,6 +232,10 @@ public class EgresosController {
}
}
/**
* Guarda un egreso tras llamar a validar su input
* Luego de guardar, agrega el egreso a la tabla, llama a actualizar el total de egresos y llama a limpiar a los inputs
*/
private void guardarEgreso(String nro, String descripcion, String valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, valor, tipo, caja)) {
Egreso egreso = new Egreso();
@@ -190,6 +251,11 @@ public class EgresosController {
}
}
/**
* Actualiza un egreso tras llamar a validar su input
* Tras esto actualiza el egreso en la tabla, llama a actualizar el total de egresos y a limpiar los inputs
* Finalmente setea la flag editing a false
*/
private void editarEgreso(String nro, String descripcion, String valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, valor, tipo, caja)) {
this.editingEgreso.setValor(Integer.valueOf(valor));
@@ -204,8 +270,10 @@ public class EgresosController {
}
}
/**
* llama a los metodos necesarios para validar los inputs entregados
*/
private boolean validateInput(String nro, String descripcion, String valor, TipoEgreso tipoEgreso, Caja caja) {
this.hideErrorMessages();
boolean nroValidation = this.validateNro(nro);
boolean descripcionValidation = this.validateDescripcion(descripcion);
@@ -216,6 +284,13 @@ public class EgresosController {
return nroValidation && descripcionValidation && valorValidation && tipoEgresoValidation;
}
/**
* Valida la variable nro contra los casos
* - Es null
* - Esta vacio
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNro(String nro) {
if (nro == null) {
this.view.getErrorNumero().setText("Hubo un problema con los datos");
@@ -233,6 +308,13 @@ public class EgresosController {
}
/**
* Valida la variable descripcion contra los casos
* - Es null
* - Esta vacio
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateDescripcion(String descripcion) {
if (descripcion == null) {
this.view.getErrorDescripcion().setText("Hubo un problema con los datos");
@@ -240,7 +322,6 @@ public class EgresosController {
return false;
}
descripcion = descripcion.trim();
if (descripcion.isEmpty()) {
this.view.getErrorDescripcion().setText("El campo esta vacio");
this.view.getErrorDescripcion().setVisible(true);
@@ -249,6 +330,15 @@ public class EgresosController {
return true;
}
/**
* Valida la variable valor contra los casos
* - Es null
* - Esta vacio
* - Los caracteres no son todos digitos
* - El largo del string es mayot a 10
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateValor(String valor) {
if (valor == null) {
this.view.getErrorValor().setText("Hubo un problema con los datos");
@@ -256,7 +346,6 @@ public class EgresosController {
return false;
}
valor = valor.trim();
if (valor.isEmpty()) {
this.view.getErrorValor().setText("El campo esta vacio");
this.view.getErrorValor().setVisible(true);
@@ -279,6 +368,12 @@ public class EgresosController {
}
/**
* Valida la variable tipoEgreso contra los casos
* - Es null
* Cuando este caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateTipoEgreso(TipoEgreso tipoEgreso) {
if (tipoEgreso == null) {
this.view.getErrorTipoEgreso().setText("Hubo un problema con los datos");
@@ -288,10 +383,18 @@ public class EgresosController {
return true;
}
/**
* Valida la variable caja contra los casos
* - Es null
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateCaja(Caja caja){
return caja != null;
}
/**
* Esconde los mensajes de error en la ventana de egresos
*/
private void hideErrorMessages() {
this.view.getErrorTipoEgreso().setVisible(false);
this.view.getErrorValor().setVisible(false);
@@ -299,6 +402,9 @@ public class EgresosController {
this.view.getErrorNumero().setVisible(false);
}
/**
* Vacia los campos de texto y selecciona la primera opcion en el jcombobox
*/
private void clearInputs() {
this.view.getTipoCombo().setSelectedIndex(0);
this.view.getNroField().setText("");
@@ -306,6 +412,9 @@ public class EgresosController {
this.view.getDescripcionField().setText("");
}
/**
* Ejecuta trim sobre todos los campos de texto
*/
private void normalizeInputs(){
this.view.getValorField().setText(this.view.getValorField().getText().trim());
this.view.getNroField().setText(this.view.getNroField().getText().trim());
@@ -313,6 +422,9 @@ public class EgresosController {
}
/**
* Setea el focus en el campo nroField
*/
private void resetFocus() {
this.view.getNroField().requestFocus();
}