Informes mejorados, pensado para transcribirlo a un informe de ventas

This commit is contained in:
Daniel Cortes
2019-01-09 22:12:09 -03:00
parent 6c2cf1ce5d
commit 0024ed1376
9 changed files with 736 additions and 511 deletions

510
.idea/workspace.xml generated
View File

@@ -12,9 +12,13 @@
<component name="ChangeListManager">
<list default="true" id="a633d35a-56a6-4479-b4c4-f97198052fb7" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/sqlite.sql" beforeDir="false" afterPath="$PROJECT_DIR$/database/sqlite.sql" afterDir="false" />
<change beforePath="$PROJECT_DIR$/dist/caja.jar" beforeDir="false" afterPath="$PROJECT_DIR$/dist/caja.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/dist/database.sqlite" beforeDir="false" afterPath="$PROJECT_DIR$/dist/database.sqlite" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/models/caja/SQLiteCajaDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/models/caja/SQLiteCajaDAO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/Demo.java" beforeDir="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/informes/InformeMensual.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/informes/InformeMensual.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContent.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContent.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/SQLiteInformeMensualContentDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/SQLiteInformeMensualContentDAO.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/target/" />
@@ -25,6 +29,12 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/caja$Launch_Jar.ic" NAME="Launch Jar Coverage Results" MODIFIED="1547076697105" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
</component>
<component name="CoverageViewManager">
<option name="myElementSize" value="201" />
</component>
<component name="DatabaseView">
<option name="SHOW_INTERMEDIATE" value="true" />
<option name="GROUP_DATA_SOURCES" value="true" />
@@ -64,12 +74,36 @@
<favorites_list name="caja" />
</component>
<component name="FileEditorManager">
<leaf>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/caja/SQLiteCajaDAO.java">
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/informes/InformeMensual.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="94">
<caret line="162" column="19" lean-forward="true" selection-start-line="162" selection-start-column="19" selection-end-line="162" selection-end-column="19" />
<state relative-caret-position="191">
<caret line="278" column="76" selection-start-line="278" selection-start-column="76" selection-end-line="278" selection-end-column="76" />
<folding>
<element signature="method#InformeMensual#0;class#InformeMensual#0" />
<element signature="method#fillHeaders#0;class#InformeMensual#0" />
<element signature="e#3207#3281#1" />
<element signature="e#3339#3419#1" />
<element signature="method#fillData#0;class#InformeMensual#0" />
<element signature="e#3509#5501#1" />
<element signature="e#5445#5529#1" />
<element signature="e#5533#5633#1" />
<element signature="method#fillTotales#0;class#InformeMensual#0" />
<element signature="method#joinCells#0;class#InformeMensual#0" />
<element signature="method#addBorders#0;class#InformeMensual#0" />
<element signature="e#9057#9100#1" />
<element signature="e#9285#9399#1" />
<element signature="e#9442#10062#1" />
<element signature="e#11422#11564#1" />
<element signature="e#12003#12070#1" />
<element signature="e#12575#12623#1" />
<element signature="method#generarInforme#0;class#InformeMensual#0" />
<element signature="e#10089#10165#0" />
<element signature="e#10188#10232#0" />
<element signature="method#generateStyles#0;class#InformeMensual#0" />
<marker date="1547082507124" expanded="false" signature="12828:13057" ph="..." />
</folding>
</state>
</provider>
</entry>
@@ -87,8 +121,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>tipo_id</find>
<find>getEliminarB</find>
<find>onSelec</find>
<find>timezone</find>
<find>efect</find>
@@ -117,6 +149,8 @@
<find>formula</find>
<find>setS</find>
<find>or</find>
<find>s</find>
<find>getSub</find>
</findStrings>
<replaceStrings>
<replace>2018 Daniel Cortes</replace>
@@ -137,13 +171,11 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/danielcortes/xyz/data/Properties.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/data/SQLiteConnectionHolder.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/caja/Caja.java" />
<option value="$PROJECT_DIR$/database/mysql.sql" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/ingreso/Ingreso.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/ingreso/IngresoDAO.java" />
<option value="$PROJECT_DIR$/database/sqlite.sql" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/ingreso/SQLiteIngresoDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/components/JNumberFormatedTextField.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/ArqueoView.java" />
@@ -164,13 +196,10 @@
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/documentos/MysqlDocumentosDAO.java" />
<option value="$USER_HOME$/Downloads/TimesheetDemo.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/Demo.java" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console_1.sql" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informes/Informe.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeContent.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContentDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/controllers/IngresosController.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContent.java" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console.sql" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/caja/CajaDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/caja/MysqlCajaDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/controllers/InformeController.java" />
@@ -181,13 +210,18 @@
<option value="$PROJECT_DIR$/src/danielcortes/xyz/controllers/ManagerController.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/components/YearSpinnerModel.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/InformeMensualDialog.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/Main.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/InformeMensualDialog.form" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/views/InformesView.form" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/informes/InformeMensual.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/controllers/InformesController.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/SQLiteInformeMensualContentDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/caja/SQLiteCajaDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/File.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/Main.java" />
<option value="$PROJECT_DIR$/database/sqlite.sql" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console_1.sql" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console.sql" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContent.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/models/informe/SQLiteInformeMensualContentDAO.java" />
<option value="$PROJECT_DIR$/src/danielcortes/xyz/informes/InformeMensual.java" />
</list>
</option>
</component>
@@ -232,7 +266,6 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
@@ -252,6 +285,13 @@
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="xyz" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="caja" type="b2602c69:ProjectViewProjectNode" />
<item name="caja" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="xyz" type="462c0819:PsiDirectoryNode" />
<item name="informes" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="caja" type="b2602c69:ProjectViewProjectNode" />
<item name="caja" type="462c0819:PsiDirectoryNode" />
@@ -265,27 +305,18 @@
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="xyz" type="462c0819:PsiDirectoryNode" />
<item name="models" type="462c0819:PsiDirectoryNode" />
<item name="informe" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="caja" type="b2602c69:ProjectViewProjectNode" />
<item name="caja" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="caja" type="b2602c69:ProjectViewProjectNode" />
<item name="Scratches and Consoles" type="1a2a3e82:ScratchProjectViewPane$MyProjectNode" />
</path>
<path>
<item name="caja" type="b2602c69:ProjectViewProjectNode" />
<item name="Scratches and Consoles" type="1a2a3e82:ScratchProjectViewPane$MyProjectNode" />
<item name="Database Consoles" type="d62648e6:ScratchProjectViewPane$MyRootNode" />
</path>
<path>
<item name="caja" type="b2602c69:ProjectViewProjectNode" />
<item name="Scratches and Consoles" type="1a2a3e82:ScratchProjectViewPane$MyProjectNode" />
<item name="Database Consoles" type="d62648e6:ScratchProjectViewPane$MyRootNode" />
<item name="6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50" type="1e004dc1:ScratchProjectViewPane$MyRootNode$1$1" />
<item name="database" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -299,7 +330,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="1547057852492" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1547082701714" />
<property name="com.intellij.ide.scratch.LRUPopupBuilder$1/Change SQL Dialect" value="SQLite" />
<property name="database.console.LAST_STATE" value="false" />
<property name="database.data.extractors.current.id" value="Tab-separated (TSV)_id" />
@@ -316,16 +347,19 @@
<property name="settings.editor.selected.configurable" value="database.data.views" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/dist" />
<recent name="$PROJECT_DIR$/src/main/resources" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="danielcortes.xyz.model" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/dist" />
</key>
<key name="CreateClassDialog.RecentsKey">
<recent name="danielcortes.xyz" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/dist" />
<recent name="$PROJECT_DIR$/src/main/resources" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
@@ -508,7 +542,8 @@
<workItem from="1546968089184" duration="170000" />
<workItem from="1546968296762" duration="9932000" />
<workItem from="1546982620530" duration="468000" />
<workItem from="1547056862751" duration="901000" />
<workItem from="1547056862751" duration="4209000" />
<workItem from="1547073548038" duration="8948000" />
</task>
<task id="LOCAL-00001" summary="First!! :3 Existe una pequeña base de proyecto por ahora">
<created>1545280618093</created>
@@ -790,11 +825,18 @@
<option name="project" value="LOCAL" />
<updated>1546983008762</updated>
</task>
<option name="localTasksCounter" value="41" />
<task id="LOCAL-00041" summary="Solucionado bug que no generaba el ultimo dia del mes :3">
<created>1547057968640</created>
<option name="number" value="00041" />
<option name="presentableId" value="LOCAL-00041" />
<option name="project" value="LOCAL" />
<updated>1547057968640</updated>
</task>
<option name="localTasksCounter" value="42" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="267617000" />
<option name="totallyTimeSpent" value="279873000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@@ -807,8 +849,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.2260274" />
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.49438202" weight="0.2283105" />
<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.20243531" />
@@ -817,17 +860,17 @@
<window_info id="simpleUML" order="6" weight="0.329429" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32744783" />
<window_info anchor="bottom" x="4" y="0" width="902" height="488" id="Run" order="2" sideWeight="0.49923897" weight="0.30658105" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39967898" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" show_stripe_button="false" weight="0.32744783" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" weight="0.32744783" />
<window_info anchor="bottom" id="Terminal" order="9" show_stripe_button="false" weight="0.32744783" />
<window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.50076103" side_tool="true" weight="0.24077046" />
<window_info anchor="bottom" id="Messages" order="11" weight="0.32744783" />
<window_info anchor="bottom" id="Database Console" order="12" weight="0.5072231" />
<window_info anchor="bottom" id="Debug" order="2" weight="0.39967898" />
<window_info anchor="bottom" id="Cvs" order="3" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="4" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="5" show_stripe_button="false" weight="0.32744783" />
<window_info anchor="bottom" id="Docker" order="6" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" weight="0.32744783" />
<window_info anchor="bottom" id="Terminal" order="8" show_stripe_button="false" weight="0.32744783" />
<window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.50076103" side_tool="true" weight="0.24077046" />
<window_info anchor="bottom" id="Messages" order="10" weight="0.32744783" />
<window_info anchor="bottom" id="Database Console" order="11" weight="0.5072231" />
<window_info anchor="right" id="Coverage" sideWeight="0.5024077" side_tool="true" weight="0.3500761" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" show_stripe_button="false" weight="0.24961948" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -836,10 +879,11 @@
<window_info anchor="right" id="Maven" order="5" show_stripe_button="false" weight="0.32876712" />
<window_info anchor="right" id="Capture Analysis" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Database" order="8" sideWeight="0.4988067" weight="0.43987823" />
<window_info anchor="right" id="Version Control" order="9" weight="0.7435312" />
<window_info anchor="right" id="Structure" order="10" sideWeight="0.5008026" weight="0.2283105" />
<window_info anchor="right" x="0" y="0" width="291" height="565" id="Documentation" order="11" sideWeight="0.50119334" side_tool="true" weight="0.32648402" />
<window_info anchor="right" id="Database" order="8" sideWeight="0.4988067" weight="0.32115677" />
<window_info anchor="right" x="4" y="0" width="902" height="488" id="Run" order="9" sideWeight="0.4975923" weight="0.39497718" />
<window_info anchor="right" id="Version Control" order="10" weight="0.7435312" />
<window_info anchor="right" id="Structure" order="11" sideWeight="0.5008026" weight="0.2283105" />
<window_info anchor="right" x="0" y="0" width="291" height="565" id="Documentation" order="12" sideWeight="0.50119334" side_tool="true" weight="0.32648402" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -898,7 +942,6 @@
<component name="VcsManagerConfiguration">
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" />
<MESSAGE value="Calculo de Arqueo done!!! &#10;Siguiente paso deben ser los informes, o tal vez mejorar el codigo Q_Q" />
<MESSAGE value="Tecnicamente esta terminada la funcionalidad basica" />
<MESSAGE value="Agregadas clases para compatibilidad con sqlite" />
<MESSAGE value="Corregido problemas .w." />
@@ -923,48 +966,14 @@
<MESSAGE value="Eliminados botones innesesarios en la vista de informes" />
<MESSAGE value="Correccion con bug sobre seleccion de mes" />
<MESSAGE value="Mensaje de confirmacion al generarse el informe" />
<option name="LAST_COMMIT_MESSAGE" value="Mensaje de confirmacion al generarse el informe" />
<MESSAGE value="Solucionado bug que no generaba el ultimo dia del mes :3" />
<option name="LAST_COMMIT_MESSAGE" value="Solucionado bug que no generaba el ultimo dia del mes :3" />
</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/danielcortes/xyz/models/efectivo/EfectivoDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="138">
<caret line="49" column="28" selection-start-line="49" selection-start-column="28" selection-end-line="49" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/documentos/DocumentosDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="49" column="54" selection-start-line="49" selection-start-column="54" selection-end-line="49" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/ingreso/SQLiteIngresoDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="208" lean-forward="true" selection-start-line="208" selection-end-line="208" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/documentos/SQLiteDocumentosDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="204" lean-forward="true" selection-start-line="204" selection-end-line="224" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/documentos/MysqlDocumentosDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="508">
<caret line="224" column="5" selection-start-line="224" selection-start-column="5" selection-end-line="224" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/efectivo/MysqlEfectivoDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="439">
@@ -973,7 +982,6 @@
</provider>
</entry>
<entry file="file://$USER_HOME$/Downloads/TimesheetDemo.java" />
<entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console_1.sql" />
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/informes/Informe.java" />
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/egreso/SQLiteEgresoDAO.java">
<provider selected="true" editor-type-id="text-editor">
@@ -1044,40 +1052,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/Demo.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2852">
<caret line="173" column="59" selection-start-line="173" selection-start-column="59" selection-end-line="173" selection-end-column="59" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContent.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="368">
<caret line="38" column="24" selection-start-line="38" selection-start-column="24" selection-end-line="38" selection-end-column="24" />
<folding>
<element signature="e#1449#1450#0" expanded="true" />
<element signature="e#1475#1476#0" expanded="true" />
<element signature="e#1545#1546#0" expanded="true" />
<element signature="e#1608#1609#0" expanded="true" />
<element signature="e#1687#1688#0" expanded="true" />
<element signature="e#1750#1751#0" expanded="true" />
<element signature="e#1835#1836#0" expanded="true" />
<element signature="e#1898#1899#0" expanded="true" />
<element signature="e#1983#1984#0" expanded="true" />
<element signature="e#2046#2047#0" expanded="true" />
<element signature="e#2131#2132#0" expanded="true" />
<element signature="e#2188#2189#0" expanded="true" />
<element signature="e#2261#2262#0" expanded="true" />
<element signature="e#2318#2319#0" expanded="true" />
<element signature="e#2391#2392#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/caja/CajaDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="232">
@@ -1239,13 +1213,6 @@
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/ingresos">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/sqlite_master">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
@@ -1253,20 +1220,6 @@
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/tipos_ingreso">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/tipos_egreso">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/efectivo/SQLiteEfectivoDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
@@ -1418,63 +1371,12 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="114" selection-start-line="114" selection-end-line="114" />
<folding>
<element signature="method#run#0;class#Main#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/views/InformeMensualDialog.form">
<provider selected="true" editor-type-id="ui-designer" />
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/views/InformesView.form">
<provider selected="true" editor-type-id="ui-designer" />
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/controllers/InformesController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="258">
<caret line="64" column="53" lean-forward="true" selection-start-line="64" selection-start-column="53" selection-end-line="64" selection-end-column="53" />
<folding>
<element signature="method#InformesController#0;class#InformesController#0" />
<element signature="method#setupViewEvents#0;class#InformesController#0" />
<element signature="e#1991#2022#1" />
<element signature="e#2351#2382#1" />
<element signature="method#askForMonth#0;class#InformesController#0" />
<element signature="e#2768#2831#1" />
<element signature="e#2837#2873#1" />
<element signature="method#askForFile#0;class#InformesController#0" />
<element signature="e#3284#3483#1" />
<element signature="e#3489#3525#1" />
<element signature="method#showConfirmation#0;class#InformesController#0" />
<element signature="e#3920#4063#1" />
<element signature="e#3945#4001#0" />
<element signature="e#4024#4068#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console.sql">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="138">
<caret line="6" column="75" selection-start-line="6" selection-start-column="11" selection-end-line="6" selection-end-column="75" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/informes/InformeMensual.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="66" column="68" selection-start-line="66" selection-start-column="68" selection-end-line="66" selection-end-column="68" />
<folding>
<element signature="imports" expanded="true" />
<element signature="method#generateStyles#0;class#InformeMensual#0" />
</folding>
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/caja">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
@@ -1482,20 +1384,220 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/caja/SQLiteCajaDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1957">
<caret line="162" column="19" lean-forward="true" selection-start-line="162" selection-start-column="19" selection-end-line="162" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/Demo.java" />
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/File.java" />
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/ingresos">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/controllers/InformesController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="64" column="49" selection-start-line="64" selection-start-column="49" selection-end-line="64" selection-end-column="49" />
<folding>
<element signature="method#InformesController#0;class#InformesController#0" />
<element signature="method#setupViewEvents#0;class#InformesController#0" />
<element signature="e#1991#2022#1" />
<element signature="method#askForMonth#0;class#InformesController#0" />
<element signature="method#askForFile#0;class#InformesController#0" />
<element signature="method#showConfirmation#0;class#InformesController#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console_1.sql">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="40" selection-start-column="40" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/sqlite.sql">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="443">
<caret line="130" lean-forward="true" selection-start-line="130" selection-end-line="130" />
<folding>
<element signature="e#0#1102#0" />
<element signature="e#1355#1427#0" />
<element signature="e#1430#1512#0" />
<element signature="n#egresos#0" />
<element signature="n#tipos_ingreso#0" />
<element signature="n#ingresos#0" />
<element signature="n#efectivos#0" />
<element signature="n#documentos#0" />
<element signature="e#3181#3560#0" />
<element signature="e#3215#3560#0" />
</folding>
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/tipos_egreso">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/schema/main/table/tipos_ingreso">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/informe/InformeMensualContent.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="155" column="21" selection-start-line="155" selection-start-column="15" selection-end-line="155" selection-end-column="21" />
<folding>
<element signature="e#1915#1916#0" expanded="true" />
<element signature="e#1941#1942#0" expanded="true" />
<element signature="e#1976#1977#0" expanded="true" />
<element signature="e#2006#2007#0" expanded="true" />
<element signature="e#2041#2042#0" expanded="true" />
<element signature="e#2069#2070#0" expanded="true" />
<element signature="e#2114#2115#0" expanded="true" />
<element signature="e#2148#2149#0" expanded="true" />
<element signature="e#2190#2191#0" expanded="true" />
<element signature="e#2228#2229#0" expanded="true" />
<element signature="e#2290#2291#0" expanded="true" />
<element signature="e#2344#2345#0" expanded="true" />
<element signature="e#2384#2385#0" expanded="true" />
<element signature="e#2420#2421#0" expanded="true" />
<element signature="e#2478#2479#0" expanded="true" />
<element signature="e#2528#2529#0" expanded="true" />
<element signature="e#2560#2561#0" expanded="true" />
<element signature="e#2591#2592#0" expanded="true" />
<element signature="e#2636#2637#0" expanded="true" />
<element signature="e#2676#2677#0" expanded="true" />
<element signature="e#2719#2720#0" expanded="true" />
<element signature="e#2758#2759#0" expanded="true" />
<element signature="e#2822#2823#0" expanded="true" />
<element signature="e#2878#2879#0" expanded="true" />
<element signature="e#2919#2920#0" expanded="true" />
<element signature="e#2956#2957#0" expanded="true" />
<element signature="e#3016#3017#0" expanded="true" />
<element signature="e#3068#3069#0" expanded="true" />
<element signature="e#3110#3111#0" expanded="true" />
<element signature="e#3148#3149#0" expanded="true" />
<element signature="e#3210#3211#0" expanded="true" />
<element signature="e#3264#3265#0" expanded="true" />
<element signature="e#3304#3305#0" expanded="true" />
<element signature="e#3340#3341#0" expanded="true" />
<element signature="e#3398#3399#0" expanded="true" />
<element signature="e#3448#3449#0" expanded="true" />
<element signature="e#3480#3481#0" expanded="true" />
<element signature="e#3511#3512#0" expanded="true" />
<element signature="e#3556#3557#0" expanded="true" />
<element signature="e#3596#3597#0" expanded="true" />
<element signature="e#3637#3638#0" expanded="true" />
<element signature="e#3674#3675#0" expanded="true" />
<element signature="e#3734#3735#0" expanded="true" />
<element signature="e#3786#3787#0" expanded="true" />
<element signature="e#3825#3826#0" expanded="true" />
<element signature="e#3860#3861#0" expanded="true" />
<element signature="e#3916#3917#0" expanded="true" />
<element signature="e#3964#3965#0" expanded="true" />
<element signature="e#3995#3996#0" expanded="true" />
<element signature="e#4025#4026#0" expanded="true" />
<element signature="e#4068#4069#0" expanded="true" />
<element signature="e#4106#4107#0" expanded="true" />
<element signature="e#4139#4140#0" expanded="true" />
<element signature="e#4171#4172#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50/console.sql">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="322">
<caret line="14" column="100" selection-end-line="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="61" column="5" lean-forward="true" selection-start-line="61" selection-start-column="5" selection-end-line="61" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
<element signature="method#run#0;class#Main#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/informe/SQLiteInformeMensualContentDAO.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="673">
<caret line="58" column="83" selection-start-line="58" selection-start-column="83" selection-end-line="58" selection-end-column="83" />
<state relative-caret-position="460">
<caret line="67" column="64" selection-start-line="67" selection-start-column="64" selection-end-line="67" selection-end-column="64" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/models/caja/SQLiteCajaDAO.java">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/4.0.1/poi-4.0.1-sources.jar!/org/apache/poi/hssf/usermodel/HSSFRow.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="94">
<caret line="162" column="19" lean-forward="true" selection-start-line="162" selection-start-column="19" selection-end-line="162" selection-end-column="19" />
<state relative-caret-position="253">
<caret line="38" selection-start-line="38" selection-end-line="38" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/4.0.1/poi-4.0.1-sources.jar!/org/apache/poi/hssf/usermodel/HSSFCell.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="912" selection-start-line="912" selection-end-line="912" />
<folding>
<element signature="e#34037#34038#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/4.0.1/poi-4.0.1-sources.jar!/org/apache/poi/ss/usermodel/VerticalAlignment.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="22" column="3" lean-forward="true" selection-start-line="22" selection-start-column="3" selection-end-line="22" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/danielcortes/xyz/informes/InformeMensual.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191">
<caret line="278" column="76" selection-start-line="278" selection-start-column="76" selection-end-line="278" selection-end-column="76" />
<folding>
<element signature="method#InformeMensual#0;class#InformeMensual#0" />
<element signature="method#fillHeaders#0;class#InformeMensual#0" />
<element signature="e#3207#3281#1" />
<element signature="e#3339#3419#1" />
<element signature="method#fillData#0;class#InformeMensual#0" />
<element signature="e#3509#5501#1" />
<element signature="e#5445#5529#1" />
<element signature="e#5533#5633#1" />
<element signature="method#fillTotales#0;class#InformeMensual#0" />
<element signature="method#joinCells#0;class#InformeMensual#0" />
<element signature="method#addBorders#0;class#InformeMensual#0" />
<element signature="e#9057#9100#1" />
<element signature="e#9285#9399#1" />
<element signature="e#9442#10062#1" />
<element signature="e#11422#11564#1" />
<element signature="e#12003#12070#1" />
<element signature="e#12575#12623#1" />
<element signature="method#generarInforme#0;class#InformeMensual#0" />
<element signature="e#10089#10165#0" />
<element signature="e#10188#10232#0" />
<element signature="method#generateStyles#0;class#InformeMensual#0" />
<marker date="1547082507124" expanded="false" signature="12828:13057" ph="..." />
</folding>
</state>
</provider>
</entry>

View File

@@ -124,3 +124,7 @@ values ('Boletas Fiscales'),
alter table ingresos add column nro_z_inicial text;
alter table ingresos add column nro_z_final text;
/**
Segunda migracion, se necesita un tipo de ingresos de boleta exenta
*/
insert into tipos_ingreso (nombre) values ('Boleta Exenta')

BIN
dist/caja.jar vendored

Binary file not shown.

BIN
dist/database.sqlite vendored

Binary file not shown.

View File

@@ -1,215 +0,0 @@
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
package danielcortes.xyz;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.util.Map;
import java.util.HashMap;
import java.io.FileOutputStream;
/**
* A weekly timesheet created using Apache POI.
* Usage:
* TimesheetDemo -xls|xlsx
*
* @author Yegor Kozlov
*/
public class Demo {
private static final String[] titles = {
"Person", "ID", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun",
"Total\nHrs", "Overtime\nHrs", "Regular\nHrs"
};
private static Object[][] sample_data = {
{"Yegor Kozlov", "YK", 5.0, 8.0, 10.0, 5.0, 5.0, 7.0, 6.0},
{"Gisella Bronzetti", "GB", 4.0, 3.0, 1.0, 3.5, null, null, 4.0},
};
public static void main(String[] args) throws Exception {
Workbook wb = new HSSFWorkbook();
Map<String, CellStyle> styles = createStyles(wb);
Sheet sheet = wb.createSheet("Timesheet");
PrintSetup printSetup = sheet.getPrintSetup();
printSetup.setLandscape(true);
sheet.setFitToPage(true);
sheet.setHorizontallyCenter(true);
//title row
Row titleRow = sheet.createRow(0);
titleRow.setHeightInPoints(45);
Cell titleCell = titleRow.createCell(0);
titleCell.setCellValue("Weekly Timesheet");
titleCell.setCellStyle(styles.get("title"));
sheet.addMergedRegion(CellRangeAddress.valueOf("$A$1:$L$1"));
//header row
Row headerRow = sheet.createRow(1);
headerRow.setHeightInPoints(40);
Cell headerCell;
for (int i = 0; i < titles.length; i++) {
headerCell = headerRow.createCell(i);
headerCell.setCellValue(titles[i]);
headerCell.setCellStyle(styles.get("header"));
}
int rownum = 2;
for (int i = 0; i < 10; i++) {
Row row = sheet.createRow(rownum++);
for (int j = 0; j < titles.length; j++) {
Cell cell = row.createCell(j);
if(j == 9){
//the 10th cell contains sum over week days, e.g. SUM(C3:I3)
String ref = "C" +rownum+ ":I" + rownum;
cell.setCellFormula("SUM("+ref+")");
cell.setCellStyle(styles.get("formula"));
} else if (j == 11){
cell.setCellFormula("J" +rownum+ "-K" + rownum);
cell.setCellStyle(styles.get("formula"));
} else {
cell.setCellStyle(styles.get("cell"));
}
}
}
//row with totals below
Row sumRow = sheet.createRow(rownum++);
sumRow.setHeightInPoints(35);
Cell cell;
cell = sumRow.createCell(0);
cell.setCellStyle(styles.get("formula"));
cell = sumRow.createCell(1);
cell.setCellValue("Total Hrs:");
cell.setCellStyle(styles.get("formula"));
for (int j = 2; j < 12; j++) {
cell = sumRow.createCell(j);
String ref = (char)('A' + j) + "3:" + (char)('A' + j) + "12";
cell.setCellFormula("SUM(" + ref + ")");
if(j >= 9) cell.setCellStyle(styles.get("formula_2"));
else cell.setCellStyle(styles.get("formula"));
}
rownum++;
sumRow = sheet.createRow(rownum++);
sumRow.setHeightInPoints(25);
cell = sumRow.createCell(0);
cell.setCellValue("Total Regular Hours");
cell.setCellStyle(styles.get("formula"));
cell = sumRow.createCell(1);
cell.setCellFormula("L13");
cell.setCellStyle(styles.get("formula_2"));
sumRow = sheet.createRow(rownum++);
sumRow.setHeightInPoints(25);
cell = sumRow.createCell(0);
cell.setCellValue("Total Overtime Hours");
cell.setCellStyle(styles.get("formula"));
cell = sumRow.createCell(1);
cell.setCellFormula("K13");
cell.setCellStyle(styles.get("formula_2"));
//set sample data
for (int i = 0; i < sample_data.length; i++) {
Row row = sheet.getRow(2 + i);
for (int j = 0; j < sample_data[i].length; j++) {
if(sample_data[i][j] == null) continue;
if(sample_data[i][j] instanceof String) {
row.getCell(j).setCellValue((String)sample_data[i][j]);
} else {
row.getCell(j).setCellValue((Double)sample_data[i][j]);
}
}
}
//finally set column widths, the width is measured in units of 1/256th of a character width
sheet.setColumnWidth(0, 30*256); //30 characters wide
for (int i = 2; i < 9; i++) {
sheet.setColumnWidth(i, 6*256); //6 characters wide
}
sheet.setColumnWidth(10, 10*256); //10 characters wide
// Write the output to a file
String file = "timesheet.xls";
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
out.close();
}
/**
* Create a library of cell styles
*/
private static Map<String, CellStyle> createStyles(Workbook wb){
Map<String, CellStyle> styles = new HashMap<>();
CellStyle style;
Font titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short)18);
titleFont.setBold(true);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setFont(titleFont);
styles.put("title", style);
Font monthFont = wb.createFont();
monthFont.setFontHeightInPoints((short)11);
monthFont.setColor(IndexedColors.WHITE.getIndex());
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setFont(monthFont);
style.setWrapText(true);
styles.put("header", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setWrapText(true);
style.setBorderRight(BorderStyle.THIN);
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
style.setBorderLeft(BorderStyle.THIN);
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
style.setBorderTop(BorderStyle.THIN);
style.setTopBorderColor(IndexedColors.BLACK.getIndex());
style.setBorderBottom(BorderStyle.THIN);
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
styles.put("cell", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setDataFormat(wb.createDataFormat().getFormat("0.00"));
styles.put("formula", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setDataFormat(wb.createDataFormat().getFormat("0.00"));
styles.put("formula_2", style);
return styles;
}
}

View File

@@ -26,7 +26,6 @@ package danielcortes.xyz;
import danielcortes.xyz.controllers.ManagerController;
import danielcortes.xyz.data.Properties;
import danielcortes.xyz.informes.InformeMensual;
import danielcortes.xyz.models.caja.CajaDAO;
import danielcortes.xyz.models.caja.MysqlCajaDAO;
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
@@ -39,8 +38,6 @@ import danielcortes.xyz.models.efectivo.SQLiteEfectivoDAO;
import danielcortes.xyz.models.egreso.EgresoDAO;
import danielcortes.xyz.models.egreso.MysqlEgresoDAO;
import danielcortes.xyz.models.egreso.SQLiteEgresoDAO;
import danielcortes.xyz.models.informe.InformeMensualContent;
import danielcortes.xyz.models.informe.SQLiteInformeMensualContentDAO;
import danielcortes.xyz.models.ingreso.IngresoDAO;
import danielcortes.xyz.models.ingreso.MysqlIngresoDAO;
import danielcortes.xyz.models.ingreso.SQLiteIngresoDAO;
@@ -52,8 +49,6 @@ import danielcortes.xyz.models.tipo_ingreso.SQLiteTipoIngresoDAO;
import danielcortes.xyz.models.tipo_ingreso.TipoIngresoDAO;
import danielcortes.xyz.views.ManagerView;
import javax.swing.*;
import java.time.LocalDate;
import java.util.List;
import java.util.Locale;
public class Main {
@@ -112,5 +107,4 @@ public class Main {
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}

View File

@@ -24,14 +24,13 @@
package danielcortes.xyz.informes;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import danielcortes.xyz.models.documentos.Documentos;
import danielcortes.xyz.models.efectivo.Efectivo;
import danielcortes.xyz.models.informe.InformeMensualContent;
import danielcortes.xyz.models.informe.SQLiteInformeMensualContentDAO;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
import java.io.File;
import java.io.FileOutputStream;
@@ -41,10 +40,32 @@ import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
public class InformeMensual {
private final String[] titles = {"DIA", "FECHA", "FISCALES", "MANUALES", "FACTURAS", "GUIAS", "TOTAL", "ACUMULADO"};
private final String[] titles = {
"", "",
"BOLETA MANUAL", "", "",
"BOLETA FISCAL", "", "", "", "",
"BOLETAS EXENTAS", "", "",
"SUB",
"FACTURA", "", "",
"GUIAS", "", "",
"ESTADISTICAS"
};
private final String[] subtitles = {
"DIA", "FECHA",
"INICIAL", "FINAL", "VALOR",
"Z DEL", "Z AL", "INCIAL", "FINAL", "VALOR",
"INICIAL", "FINAL", "VALOR",
"TOTAL",
"INICIAL", "FINAL", "VALOR",
"INICIAL", "FINAL", "VALOR",
"TOTAL", "ACUMULADO", ""
};
private final String[] dias = {"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"};
private List<InformeMensualContent> informe;
@@ -55,12 +76,6 @@ public class InformeMensual {
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
private int headerStartRow;
private int dataStartRow;
private int columnStart;
private int totalColumns;
public InformeMensual(LocalDate date, File saveFile) {
new SQLiteCajaDAO().createCajasForMonth(date);
@@ -70,65 +85,210 @@ public class InformeMensual {
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.styles = this.generateStyles();
this.headerStartRow = 1;
this.columnStart = 1;
this.dataStartRow = 2;
this.totalColumns = 7;
this.styles = this.generateStyles();
}
private void fillHeaders() {
Row headers = sheet.createRow(this.headerStartRow);
for (int x = this.columnStart; x < titles.length + this.columnStart; x++) {
headers.createCell(x).setCellValue(titles[x - this.columnStart]);
Row titles = sheet.createRow(0);
Row subtitles = sheet.createRow(1);
for (int x = 0; x < this.titles.length; x++) {
titles.createCell(x).setCellValue(this.titles[x]);
}
for (int x = 0; x < this.subtitles.length; x++) {
subtitles.createCell(x).setCellValue(this.subtitles[x]);
}
}
private void fillData() {
for (int x = this.dataStartRow; x < this.dataStartRow + informe.size(); x++) {
for (int x = 2; x < 2 + informe.size(); x++) {
int y = 0;
Row dataRow = sheet.createRow(x);
InformeMensualContent data = informe.get(x-this.dataStartRow);
InformeMensualContent data = informe.get(x - 2);
Date fecha = Date.from(data.getFecha().atStartOfDay(ZoneId.systemDefault()).toInstant());
dataRow.createCell(this.columnStart).setCellValue(this.dias[data.getDia()]);
dataRow.createCell(this.columnStart + 1).setCellValue(fecha);
dataRow.createCell(this.columnStart + 2).setCellValue(data.getFiscales());
dataRow.createCell(this.columnStart + 3).setCellValue(data.getManuales());
dataRow.createCell(this.columnStart + 4).setCellValue(data.getFacturas());
dataRow.createCell(this.columnStart + 5).setCellValue(data.getGuias());
dataRow.createCell(this.columnStart + 6).setCellValue(data.getTotal());
dataRow.createCell(y++).setCellValue(this.dias[data.getDia()]);
dataRow.createCell(y++).setCellValue(fecha);
if(x==this.dataStartRow){
dataRow.createCell(this.columnStart + 7).setCellFormula(("H"+(x+1)));
dataRow.createCell(y++).setCellValue(data.getManualesInicial());
dataRow.createCell(y++).setCellValue(data.getManualesFinal());
dataRow.createCell(y++).setCellValue(data.getManuales());
dataRow.createCell(y++).setCellValue(data.getFiscalesZInicial());
dataRow.createCell(y++).setCellValue(data.getFiscalesZFinal());
dataRow.createCell(y++).setCellValue(data.getFiscalesInicial());
dataRow.createCell(y++).setCellValue(data.getFiscalesFinal());
dataRow.createCell(y++).setCellValue(data.getFiscales());
dataRow.createCell(y++).setCellValue(data.getExentasInicial());
dataRow.createCell(y++).setCellValue(data.getExentasFinal());
dataRow.createCell(y++).setCellValue(data.getExentas());
dataRow.createCell(y++).setCellValue(data.getSubTotal());
dataRow.createCell(y++).setCellValue(data.getFacturasInicial());
dataRow.createCell(y++).setCellValue(data.getFacturasFinal());
dataRow.createCell(y++).setCellValue(data.getFacturas());
dataRow.createCell(y++).setCellValue(data.getGuiasInicial());
dataRow.createCell(y++).setCellValue(data.getGuiasFinal());
dataRow.createCell(y++).setCellValue(data.getGuias());
dataRow.createCell(y++).setCellValue(data.getTotal());
if (x == 2) {
dataRow.createCell(y).setCellFormula(("U" + (x + 1)));
} else {
dataRow.createCell(this.columnStart + 7).setCellFormula(("I"+(x))+("+")+("H"+(x+1)));
dataRow.createCell(y).setCellFormula(("U" + (x + 1)) + ("+") + ("V" + (x)));
}
}
}
private void fillTotales() {
int row = 2 + informe.size();
Row totalesRow = sheet.createRow(row);
totalesRow.createCell(0).setCellValue("TOTALES");
totalesRow.createCell(4).setCellFormula("SUM(E" + 3 + ":E" + row + ")");
totalesRow.createCell(9).setCellFormula("SUM(J" + 3 + ":J" + row + ")");
totalesRow.createCell(12).setCellFormula("SUM(M" + 3 + ":M" + row + ")");
totalesRow.createCell(16).setCellFormula("SUM(Q" + 3 + ":Q" + row + ")");
totalesRow.createCell(19).setCellFormula("SUM(T" + 3 + ":T" + row + ")");
}
private void joinCells() {
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 4));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 9));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 10, 12));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 14, 16));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 17, 19));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 20, 22));
}
private void freezeCells() {
this.sheet.createFreezePane(2,2);
}
private void addBorders() {
int row = 2 + informe.size();
PropertyTemplate pt = new PropertyTemplate();
//Bordes internos
pt.drawBorders(new CellRangeAddress(2, row - 1, 0, 22), BorderStyle.THIN, BorderExtent.ALL);
//Bordes de los headers
pt.drawBorders(new CellRangeAddress(0, 1, 0, 1), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 2, 4), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 5, 9), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 10, 12), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 13, 13), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 14, 16), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 17, 19), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 20, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
//Bordes que agrupan
pt.drawBorders(new CellRangeAddress(2, row, 0, 1), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 2, 4), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 5, 9), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 10, 12), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 13, 13), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 14, 16), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 17, 19), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 20, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
//Bordes del total
pt.drawBorders(new CellRangeAddress(row, row, 0, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.applyBorders(this.sheet);
}
private void setStyles() {
this.sheet.getRow(this.headerStartRow).setHeightInPoints(30);
for(int x = this.columnStart; x <= this.totalColumns + this.columnStart; x++){
this.sheet.getRow(this.headerStartRow).getCell(x).setCellStyle(this.styles.get("header"));
sheet.autoSizeColumn(x);
//Estilos para los 2 filas de titulos
Iterator<Cell> cellIterator = this.sheet.getRow(0).cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
cell.setCellStyle(this.styles.get("header"));
}
cellIterator = this.sheet.getRow(1).cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
cell.setCellStyle(this.styles.get("header"));
}
for(int x = this.dataStartRow; x < informe.size() + this.dataStartRow; x++){
//Estilos para las celdas de los datos
for (int x = 2; x < informe.size() + 2; x++) {
Row row = this.sheet.getRow(x);
row.getCell(this.columnStart).setCellStyle(this.styles.get("borders"));
row.getCell(this.columnStart + 1).setCellStyle(this.styles.get("date"));
row.getCell(this.columnStart + 2).setCellStyle(this.styles.get("money"));
row.getCell(this.columnStart + 3).setCellStyle(this.styles.get("money"));
row.getCell(this.columnStart + 4).setCellStyle(this.styles.get("money"));
row.getCell(this.columnStart + 5).setCellStyle(this.styles.get("money"));
row.getCell(this.columnStart + 6).setCellStyle(this.styles.get("money"));
row.getCell(this.columnStart + 7).setCellStyle(this.styles.get("money"));
int y = 0;
//Primeras Celdas
row.getCell(y++).setCellStyle(this.styles.get("dia"));
row.getCell(y++).setCellStyle(this.styles.get("date"));
//Boletas Manuales
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Boletas Fiscales
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Boletas Exentas
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Sub Total
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Facturas
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Guias
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Estadisticas
row.getCell(y++).setCellStyle(this.styles.get("money"));
row.getCell(y).setCellStyle(this.styles.get("money"));
}
for(int x = this.columnStart; x <= this.totalColumns + this.columnStart; x++){
//Estilos para los totales del footer
Row footerRow = this.sheet.getRow(33);
for (int x = 0; x < 23; x++) {
footerRow.getCell(x, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("footer"));
}
footerRow.getCell(4).setCellStyle(this.styles.get("footer_money"));
footerRow.getCell(9).setCellStyle(this.styles.get("footer_money"));
footerRow.getCell(12).setCellStyle(this.styles.get("footer_money"));
footerRow.getCell(16).setCellStyle(this.styles.get("footer_money"));
footerRow.getCell(19).setCellStyle(this.styles.get("footer_money"));
//Setea la altura para todas las filas
this.sheet.getRow(0).setHeightInPoints(20);
this.sheet.getRow(1).setHeightInPoints(30);
this.sheet.getRow(33).setHeightInPoints(20);
for (int x = 2; x < 32; x++) {
this.sheet.getRow(x).setHeightInPoints(15);
}
//Coloca el ancho como automatico en todas las columnas
for (int x = 0; x <= 23; x++) {
sheet.autoSizeColumn(x);
}
}
@@ -136,7 +296,11 @@ public class InformeMensual {
public File generarInforme() {
fillData();
fillHeaders();
fillTotales();
joinCells();
freezeCells();
setStyles();
addBorders();
try (OutputStream fileOut = new FileOutputStream(this.saveFile)) {
wb.write(fileOut);
@@ -147,40 +311,50 @@ public class InformeMensual {
return null;
}
private HashMap<String, CellStyle> generateStyles() {
CellStyle bordersStyle = this.wb.createCellStyle();
bordersStyle.setBorderBottom(BorderStyle.THIN);
bordersStyle.setBorderTop(BorderStyle.THIN);
bordersStyle.setBorderLeft(BorderStyle.THIN);
bordersStyle.setBorderRight(BorderStyle.THIN);
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
CellStyle regularStyle = this.wb.createCellStyle();
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
CellStyle diaStyle = this.wb.createCellStyle();
diaStyle.cloneStyleFrom(grayStyle);
CellStyle dateStyle = this.wb.createCellStyle();
dateStyle.cloneStyleFrom(bordersStyle);
dateStyle.cloneStyleFrom(grayStyle);
dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle.cloneStyleFrom(bordersStyle);
moneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
Font headerFont = this.wb.createFont();
headerFont.setColor(IndexedColors.WHITE.getIndex());
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(bordersStyle);
headerStyle.setFont(headerFont);
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
headerStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
CellStyle footerStyle = this.wb.createCellStyle();
footerStyle.cloneStyleFrom(grayStyle);
footerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
CellStyle footerMoneyStyle = this.wb.createCellStyle();
footerMoneyStyle.cloneStyleFrom(footerStyle);
footerMoneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("date", dateStyle);
styles.put("dia", diaStyle);
styles.put("money", moneyStyle);
styles.put("header", headerStyle);
styles.put("borders", bordersStyle);
styles.put("footer", footerStyle);
styles.put("footer_money", footerMoneyStyle);
return styles;
}
}

View File

@@ -29,14 +29,28 @@ import java.time.LocalDate;
public class InformeMensualContent {
private int dia;
private LocalDate fecha;
private int fiscales;
private String manualesInicial;
private String manualesFinal;
private int manuales;
private String fiscalesZInicial;
private String fiscalesZFinal;
private String fiscalesInicial;
private String fiscalesFinal;
private int fiscales;
private String exentasInicial;
private String exentasFinal;
private int exentas;
private int subTotal;
private String facturasInicial;
private String facturasFinal;
private int facturas;
private String guiasInicial;
private String guiasFinal;
private int guias;
private int total;
public int getDia() {
return this.dia;
return dia;
}
public void setDia(int dia) {
@@ -51,12 +65,20 @@ public class InformeMensualContent {
this.fecha = fecha;
}
public int getFiscales() {
return fiscales;
public String getManualesInicial() {
return manualesInicial;
}
public void setFiscales(int fiscales) {
this.fiscales = fiscales;
public void setManualesInicial(String manualesInicial) {
this.manualesInicial = manualesInicial;
}
public String getManualesFinal() {
return manualesFinal;
}
public void setManualesFinal(String manualesFinal) {
this.manualesFinal = manualesFinal;
}
public int getManuales() {
@@ -67,6 +89,94 @@ public class InformeMensualContent {
this.manuales = manuales;
}
public String getFiscalesZInicial() {
return fiscalesZInicial;
}
public void setFiscalesZInicial(String fiscalesZInicial) {
this.fiscalesZInicial = fiscalesZInicial;
}
public String getFiscalesZFinal() {
return fiscalesZFinal;
}
public void setFiscalesZFinal(String fiscalesZFinal) {
this.fiscalesZFinal = fiscalesZFinal;
}
public String getFiscalesInicial() {
return fiscalesInicial;
}
public void setFiscalesInicial(String fiscalesInicial) {
this.fiscalesInicial = fiscalesInicial;
}
public String getFiscalesFinal() {
return fiscalesFinal;
}
public void setFiscalesFinal(String fiscalesFinal) {
this.fiscalesFinal = fiscalesFinal;
}
public int getFiscales() {
return fiscales;
}
public void setFiscales(int fiscales) {
this.fiscales = fiscales;
}
public String getExentasInicial() {
return exentasInicial;
}
public void setExentasInicial(String exentasInicial) {
this.exentasInicial = exentasInicial;
}
public String getExentasFinal() {
return exentasFinal;
}
public void setExentasFinal(String exentasFinal) {
this.exentasFinal = exentasFinal;
}
public int getExentas() {
return exentas;
}
public void setExentas(int exentas) {
this.exentas = exentas;
}
public int getSubTotal() {
return subTotal;
}
public void setSubTotal(int sub_total) {
this.subTotal = sub_total;
}
public String getFacturasInicial() {
return facturasInicial;
}
public void setFacturasInicial(String facturasInicial) {
this.facturasInicial = facturasInicial;
}
public String getFacturasFinal() {
return facturasFinal;
}
public void setFacturasFinal(String facturasFinal) {
this.facturasFinal = facturasFinal;
}
public int getFacturas() {
return facturas;
}
@@ -75,6 +185,22 @@ public class InformeMensualContent {
this.facturas = facturas;
}
public String getGuiasInicial() {
return guiasInicial;
}
public void setGuiasInicial(String guiasInicial) {
this.guiasInicial = guiasInicial;
}
public String getGuiasFinal() {
return guiasFinal;
}
public void setGuiasFinal(String guiasFinal) {
this.guiasFinal = guiasFinal;
}
public int getGuias() {
return guias;
}
@@ -96,9 +222,17 @@ public class InformeMensualContent {
return "InformeMensualContent{" +
"dia=" + dia +
", fecha=" + fecha +
", fiscalesInicial='" + fiscalesInicial + '\'' +
", fiscalesFinal='" + fiscalesFinal + '\'' +
", fiscales=" + fiscales +
", manualesInicial='" + manualesInicial + '\'' +
", manualesFinal='" + manualesFinal + '\'' +
", manuales=" + manuales +
", facturasInicial='" + facturasInicial + '\'' +
", facturasFinal='" + facturasFinal + '\'' +
", facturas=" + facturas +
", guiasInicial='" + guiasInicial + '\'' +
", guiasFinal='" + guiasFinal + '\'' +
", guias=" + guias +
", total=" + total +
'}';

View File

@@ -40,17 +40,34 @@ public class SQLiteInformeMensualContentDAO extends InformeMensualContentDAO {
ArrayList<InformeMensualContent> list = new ArrayList<>();
try {
Connection conn = new SQLiteConnectionHolder().getConnection();
String query = "select strftime(\"%w\", caja.fecha) \"dia\"," +
"caja.fecha \"fecha\"," +
"sum(case when ingresos.tipo_ingreso_id = 1 then ingresos.valor else 0 end) as \"fiscales\"," +
"sum(case when ingresos.tipo_ingreso_id = 2 then ingresos.valor else 0 end) as \"manuales\"," +
"sum(case when ingresos.tipo_ingreso_id = 3 then ingresos.valor else 0 end) as \"facturas\"," +
"sum(case when ingresos.tipo_ingreso_id = 4 then ingresos.valor else 0 end) as \"guias\"," +
"sum(case when ingresos.valor not null then ingresos.valor else 0 end) \"total\" " +
"from caja left join ingresos on (caja.id = ingresos.caja_id) " +
"where caja.fecha between date(?) and date(?) " +
"group by caja.fecha " +
"order by caja.fecha ";
String query =
"select\n" +
"strftime(\"%w\", caja.fecha) as \"dia\",\n" +
"caja.fecha as \"fecha\",\n" +
"min(case when ingresos.tipo_ingreso_id = 2 and ingresos.valor > 0 then ingresos.nro_inicial else 0 end) as \"manuales_inicial\",\n" +
"max(case when ingresos.tipo_ingreso_id = 2 and ingresos.valor > 0 then ingresos.nro_final else 0 end) as \"manuales_final\",\n" +
"sum(case when ingresos.tipo_ingreso_id = 2 then ingresos.valor else 0 end) as \"manuales\",\n" +
"min(case when ingresos.tipo_ingreso_id = 1 and ingresos.valor > 0 then ingresos.nro_inicial else 0 end) as \"fiscales_inicial\",\n" +
"max(case when ingresos.tipo_ingreso_id = 1 and ingresos.valor > 0 then ingresos.nro_final else 0 end) as \"fiscales_final\",\n" +
"min(case when ingresos.tipo_ingreso_id = 1 and ingresos.valor > 0 then ingresos.nro_z_inicial else 0 end) as \"fiscales_z_inicial\",\n" +
"max(case when ingresos.tipo_ingreso_id = 1 and ingresos.valor > 0 then ingresos.nro_z_final else 0 end) as \"fiscales_z_final\",\n" +
"sum(case when ingresos.tipo_ingreso_id = 1 then ingresos.valor else 0 end) as \"fiscales\",\n" +
"min(case when ingresos.tipo_ingreso_id = 5 and ingresos.valor > 0 then ingresos.nro_inicial else 0 end) as \"exentas_inicial\",\n" +
"max(case when ingresos.tipo_ingreso_id = 5 and ingresos.valor > 0 then ingresos.nro_final else 0 end) as \"exentas_final\",\n" +
"sum(case when ingresos.tipo_ingreso_id = 5 then ingresos.valor else 0 end) as \"exentas\",\n" +
"sum(case when ingresos.tipo_ingreso_id in (2, 1, 5) then ingresos.valor else 0 end ) as \"sub_total\",\n" +
"min(case when ingresos.tipo_ingreso_id = 3 and ingresos.valor > 0 then ingresos.nro_inicial else 0 end) as \"facturas_inicial\",\n" +
"max(case when ingresos.tipo_ingreso_id = 3 and ingresos.valor > 0 then ingresos.nro_final else 0 end) as \"facturas_final\",\n" +
"sum(case when ingresos.tipo_ingreso_id = 3 then ingresos.valor else 0 end) as \"facturas\",\n" +
"min(case when ingresos.tipo_ingreso_id = 4 and ingresos.valor > 0 then ingresos.nro_inicial else 0 end) as \"guias_inicial\",\n" +
"max(case when ingresos.tipo_ingreso_id = 4 and ingresos.valor > 0 then ingresos.nro_final else 0 end) as \"guias_final\",\n" +
"sum(case when ingresos.tipo_ingreso_id = 4 then ingresos.valor else 0 end) as \"guias\",\n" +
"sum(case when ingresos.valor not null then ingresos.valor else 0 end) as \"total\"\n" +
"from caja\n" +
"left join ingresos on (caja.id = ingresos.caja_id)\n" +
"where caja.fecha between date(?) and date(?)\n" +
"group by caja.fecha\n" +
"order by caja.fecha\n";
PreparedStatement ps = conn.prepareStatement(query);
@@ -63,9 +80,24 @@ public class SQLiteInformeMensualContentDAO extends InformeMensualContentDAO {
InformeMensualContent informeMensualContent = new InformeMensualContent();
informeMensualContent.setDia(rs.getInt("dia"));
informeMensualContent.setFecha(LocalDate.parse(rs.getString("fecha")));
informeMensualContent.setFiscales(rs.getInt("fiscales"));
informeMensualContent.setManualesInicial(rs.getString("manuales_inicial"));
informeMensualContent.setManualesFinal(rs.getString("manuales_final"));
informeMensualContent.setManuales(rs.getInt("manuales"));
informeMensualContent.setFiscalesZInicial(rs.getString("fiscales_z_inicial"));
informeMensualContent.setFiscalesZFinal(rs.getString("fiscales_z_final"));
informeMensualContent.setFiscalesInicial(rs.getString("fiscales_inicial"));
informeMensualContent.setFiscalesFinal(rs.getString("fiscales_final"));
informeMensualContent.setFiscales(rs.getInt("fiscales"));
informeMensualContent.setExentasInicial(rs.getString("exentas_inicial"));
informeMensualContent.setExentasFinal(rs.getString("exentas_final"));
informeMensualContent.setExentas(rs.getInt("exentas"));
informeMensualContent.setSubTotal(rs.getInt("sub_total"));
informeMensualContent.setFiscales(rs.getInt("fiscales"));
informeMensualContent.setFacturasInicial(rs.getString("facturas_inicial"));
informeMensualContent.setFacturasFinal(rs.getString("facturas_final"));
informeMensualContent.setFacturas(rs.getInt("facturas"));
informeMensualContent.setGuiasInicial(rs.getString("guias_inicial"));
informeMensualContent.setGuiasFinal(rs.getString("guias_final"));
informeMensualContent.setGuias(rs.getInt("guias"));
informeMensualContent.setTotal(rs.getInt("total"));