Author: vsalaun Date: 2011-07-13 15:28:51 +0200 (Wed, 13 Jul 2011) New Revision: 3224 Url: http://chorem.org/repositories/revision/lima/3224 Log: #347 add possibility (checkbox) to create an empty vat document Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/DocumentServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/HttpServerServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/DocumentService.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/DocumentServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/DocumentServiceImpl.java 2011-07-13 12:00:44 UTC (rev 3223) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/DocumentServiceImpl.java 2011-07-13 13:28:51 UTC (rev 3224) @@ -1458,7 +1458,9 @@ //############## VAT ############## @Override - public void createVatDocuments(Date beginDate, Date endDate, FormatsEnum format) throws LimaException, IOException, COSVisitorException { + public void createVatDocuments(Date beginDate, Date endDate, FormatsEnum format, String autocomplete) + throws LimaException, IOException, COSVisitorException { + try { String filePath = @@ -1469,15 +1471,17 @@ DocumentServiceImpl.class.getResourceAsStream("/reports/vat_form_fr.pdf"); // load the document doc = PDDocument.load(reportsStream); + + if (autocomplete.equals("true")) { - SetField fields = new SetField(); + SetField fields = new SetField(); - Identity identity = identityService.getIdentity(); + Identity identity = identityService.getIdentity(); - //page one + //page one - //sets names for each TextField - String periodTextField = "a1.a1", + //sets names for each TextField + String periodTextField = "a1.a1", serviceAddressTextField = "a2.a2", companyAlternativeAddressTextField = "a3.a3", companyAddressTextField = "a4.a4", @@ -1496,16 +1500,16 @@ finalDateTextField = "date1.date1", // dd/mm/yyyy payementDateTextField = "date2.date2"; // dd/mm/yyyy; - //fills in Period TextField - Calendar beginDateCal = Calendar.getInstance(); - beginDateCal.setTime(beginDate); + //fills in Period TextField + Calendar beginDateCal = Calendar.getInstance(); + beginDateCal.setTime(beginDate); - Calendar endDateCal = Calendar.getInstance(); - endDateCal.setTime(endDate); + Calendar endDateCal = Calendar.getInstance(); + endDateCal.setTime(endDate); - Locale locale = new Locale("fr","FR",""); + Locale locale = new Locale("fr","FR",""); - fields.setField(doc, periodTextField, + fields.setField(doc, periodTextField, beginDateCal.get(Calendar.DAY_OF_WEEK) + " " + beginDateCal.getDisplayName(Calendar.MONTH, Calendar.LONG, locale) + " " + beginDateCal.get(Calendar.YEAR) + " - " @@ -1513,140 +1517,141 @@ + endDateCal.getDisplayName(Calendar.MONTH, Calendar.LONG, locale) + " " + endDateCal.get(Calendar.YEAR)); - //fills in address TextField - String address = ""; - if (identity.getName() != null) { - address = identity.getName() + "\n"; - } - if (identity.getAddress() != null) { - address += identity.getAddress() + "\n"; - } - if (identity.getAddress2() != null) { + //fills in address TextField + String address = ""; + if (identity.getName() != null) { + address = identity.getName() + "\n"; + } + if (identity.getAddress() != null) { + address += identity.getAddress() + "\n"; + } + if (identity.getAddress2() != null) { address += identity.getAddress2() + "\n"; - } - if (identity.getZipCode() != null) { - address += identity.getZipCode() + " "; - } - if (identity.getCity() != null) { - address += identity.getCity(); - } - fields.setField(doc, companyAddressTextField, address); + } + if (identity.getZipCode() != null) { + address += identity.getZipCode() + " "; + } + if (identity.getCity() != null) { + address += identity.getCity(); + } + fields.setField(doc, companyAddressTextField, address); - //fills in SIRET TextField - if (identity.getVatNumber() != null) { - String VATNumber = ""; - for (int i=0; i<identity.getVatNumber().length(); i++) { - //add spaces to suit cells width - VATNumber += identity.getVatNumber().substring(i, i+1) + " "; + //fills in SIRET TextField + if (identity.getVatNumber() != null) { + String VATNumber = ""; + for (int i=0; i<identity.getVatNumber().length(); i++) { + //add spaces to suit cells width + VATNumber += identity.getVatNumber().substring(i, i+1) + " "; + } + fields.setField(doc, VATNumberTextField, VATNumber); } - fields.setField(doc, VATNumberTextField, VATNumber); - } - //fills in phone number TextField - if (identity.getPhoneNumber() != null) { - fields.setField(doc, phoneNumberTextField, identity.getPhoneNumber()); - } + //fills in phone number TextField + if (identity.getPhoneNumber() != null) { + fields.setField(doc, phoneNumberTextField, identity.getPhoneNumber()); + } - //end of page one - //page two + //end of page one + //page two - //sets parameters to use for each TextField - ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>(); + //sets parameters to use for each TextField + ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>(); - listOfLists.add(new ArrayList<String>(Arrays.asList("b1.b1", "Ventes, prestations de services"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b2.b2", "Autres opérations imposables"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b3.b3", "Achats de prestations de services intracommunautaires"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b4.b4", "Acquisitions intracommunautaires"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b5.b5", "Livraisons de gaz naturel ou d'électricité imposables en France"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b6.b6", "Achats de biens ou de prestations de services réalisées auprès d'un assujetti non établi en France"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b7.b7", "Régularisations (imposables)"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b8.b8", "Exportations hors CE"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b9.b9", "Autres opérations non imposables"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b10.b10", "Livraisons intracommunautaires"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b11.b11", "Livraisons de gaz naturel ou d'électricité non imposables en France"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b12.b12", "Achats de franchise"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b13.b13", "Ventes de biens ou prestations de services réalisées aurpès d'un assujetti non établi en France"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b14.b14", "Régularisations (non imposables)"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b15.b15", "Taux normal 19,6%", "0.196", "b23.b23"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b16.b16", "Taux réduit 5,5%", "0.055", "b24.b24"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b17.b17", "Taux normal 8,5%", "0.085", "b25.b25"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b18.b18", "Taux réduit 2,1%", "0.021", "b26.b26"))); - //unknown tax % - //listOfLists.add(new ArrayList<String>(Arrays.asList("b19.b19", "Opérations imposables à un autre taux (France métropolitaine ou DOM)", "", "b27.b27"))); - //listOfLists.add(new ArrayList<String>(Arrays.asList("b20.b20", "Ancien taux", "", "b27.b27"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b35.b35", "Biens constituant des immobilisations"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b36.b36", "Autres biens et services"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b37.b37", "Autre TVA à déduire"))); - listOfLists.add(new ArrayList<String>(Arrays.asList("b38.b38", "Report du crédit apparaissant ligne 27 de la précédente déclaration"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b1.b1", "Ventes, prestations de services"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b2.b2", "Autres opérations imposables"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b3.b3", "Achats de prestations de services intracommunautaires"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b4.b4", "Acquisitions intracommunautaires"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b5.b5", "Livraisons de gaz naturel ou d'électricité imposables en France"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b6.b6", "Achats de biens ou de prestations de services réalisées auprès d'un assujetti non établi en France"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b7.b7", "Régularisations (imposables)"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b8.b8", "Exportations hors CE"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b9.b9", "Autres opérations non imposables"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b10.b10", "Livraisons intracommunautaires"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b11.b11", "Livraisons de gaz naturel ou d'électricité non imposables en France"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b12.b12", "Achats de franchise"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b13.b13", "Ventes de biens ou prestations de services réalisées aurpès d'un assujetti non établi en France"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b14.b14", "Régularisations (non imposables)"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b15.b15", "Taux normal 19,6%", "0.196", "b23.b23"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b16.b16", "Taux réduit 5,5%", "0.055", "b24.b24"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b17.b17", "Taux normal 8,5%", "0.085", "b25.b25"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b18.b18", "Taux réduit 2,1%", "0.021", "b26.b26"))); + //unknown tax % + //listOfLists.add(new ArrayList<String>(Arrays.asList("b19.b19", "Opérations imposables à un autre taux (France métropolitaine ou DOM)", "", "b27.b27"))); + //listOfLists.add(new ArrayList<String>(Arrays.asList("b20.b20", "Ancien taux", "", "b27.b27"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b35.b35", "Biens constituant des immobilisations"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b36.b36", "Autres biens et services"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b37.b37", "Autre TVA à déduire"))); + listOfLists.add(new ArrayList<String>(Arrays.asList("b38.b38", "Report du crédit apparaissant ligne 27 de la précédente déclaration"))); - BigDecimal amount; - //A MONTANT DES OPÉRATIONS RÉALISÉES - for (int i = 0; i < 13; i++) { - amount = vatStatementService.vatStatementAmounts( - vatStatementService.findVatStatementByString(listOfLists.get(i).get(1)), - beginDate, endDate); - if (!amount.equals(BigDecimal.ZERO)) { - fields.setField(doc, listOfLists.get(i).get(0), amount.toString()); + BigDecimal amount; + //A MONTANT DES OPÉRATIONS RÉALISÉES + for (int i = 0; i < 13; i++) { + amount = vatStatementService.vatStatementAmounts( + vatStatementService.findVatStatementByString(listOfLists.get(i).get(1)), + beginDate, endDate); + if (!amount.equals(BigDecimal.ZERO)) { + fields.setField(doc, listOfLists.get(i).get(0), amount.toString()); + } } - } - BigDecimal sommeTVABruteDue = new BigDecimal(0); - //B DÉCOMPTE DE LA TVA À PAYER - for (int i = 13; i < 19; i++) { - amount = vatStatementService.vatStatementAmounts( - vatStatementService.findVatStatementByString(listOfLists.get(i).get(1)), - beginDate, endDate); - if (!amount.equals(BigDecimal.ZERO)) { - sommeTVABruteDue = sommeTVABruteDue.add(amount.multiply(BigDecimal.valueOf(Double.valueOf(listOfLists.get(i).get(2))))); - fields.setField(doc, listOfLists.get(i).get(0), amount.toString()); - fields.setField(doc, listOfLists.get(i).get(3), - amount.multiply(BigDecimal.valueOf(Double.valueOf(listOfLists.get(i).get(2)))).toString()); + BigDecimal sommeTVABruteDue = new BigDecimal(0); + //B DÉCOMPTE DE LA TVA À PAYER + for (int i = 13; i < 19; i++) { + amount = vatStatementService.vatStatementAmounts( + vatStatementService.findVatStatementByString(listOfLists.get(i).get(1)), + beginDate, endDate); + if (!amount.equals(BigDecimal.ZERO)) { + sommeTVABruteDue = sommeTVABruteDue.add(amount.multiply(BigDecimal.valueOf(Double.valueOf(listOfLists.get(i).get(2))))); + fields.setField(doc, listOfLists.get(i).get(0), amount.toString()); + fields.setField(doc, listOfLists.get(i).get(3), + amount.multiply(BigDecimal.valueOf(Double.valueOf(listOfLists.get(i).get(2)))).toString()); + } } - } - // TVA antérieurement déduite à reverser - BigDecimal tvaAReverser = vatStatementService.vatStatementAmounts( - vatStatementService.findVatStatementByString("TVA antérieurement déduite à reverser"), - beginDate, endDate); - sommeTVABruteDue = sommeTVABruteDue.add(tvaAReverser); + // TVA antérieurement déduite à reverser + BigDecimal tvaAReverser = vatStatementService.vatStatementAmounts( + vatStatementService.findVatStatementByString("TVA antérieurement déduite à reverser"), + beginDate, endDate); + sommeTVABruteDue = sommeTVABruteDue.add(tvaAReverser); - if (!tvaAReverser.equals(BigDecimal.ZERO)) { - fields.setField(doc, "b31.b31" , tvaAReverser.toString()); - } + if (!tvaAReverser.equals(BigDecimal.ZERO)) { + fields.setField(doc, "b31.b31" , tvaAReverser.toString()); + } - //Total de la TVA brute due - fields.setField(doc, "b32.b32" , sommeTVABruteDue.toString()); + //Total de la TVA brute due + fields.setField(doc, "b32.b32" , sommeTVABruteDue.toString()); - BigDecimal sommeTVADeductible = new BigDecimal(0); - //TVA DÉDUCTIBLE - for (int i = 19; i < 22; i++) { - amount = vatStatementService.vatStatementAmounts( - vatStatementService.findVatStatementByString(listOfLists.get(i).get(1)), - beginDate, endDate); - if (!amount.equals(BigDecimal.ZERO)) { - sommeTVADeductible = sommeTVADeductible.add(amount); - fields.setField(doc, listOfLists.get(i).get(0), amount.toString()); + BigDecimal sommeTVADeductible = new BigDecimal(0); + //TVA DÉDUCTIBLE + for (int i = 19; i < 22; i++) { + amount = vatStatementService.vatStatementAmounts( + vatStatementService.findVatStatementByString(listOfLists.get(i).get(1)), + beginDate, endDate); + if (!amount.equals(BigDecimal.ZERO)) { + sommeTVADeductible = sommeTVADeductible.add(amount); + fields.setField(doc, listOfLists.get(i).get(0), amount.toString()); + } } - } - //Total de la TVA déductible - fields.setField(doc, "total1.total1" , sommeTVADeductible.toString()); + //Total de la TVA déductible + fields.setField(doc, "total1.total1" , sommeTVADeductible.toString()); - //Crédit de TVA - BigDecimal creditDeTva = sommeTVADeductible.subtract(sommeTVABruteDue); - if (creditDeTva.compareTo(BigDecimal.ZERO) == 1) { - fields.setField(doc, "b40.b40" , creditDeTva.abs().toString()); - fields.setField(doc, "b42.b42" , creditDeTva.abs().toString()); - } else { - fields.setField(doc, "b43.b43" , creditDeTva.abs().toString()); - fields.setField(doc, "b47.b47" , creditDeTva.abs().toString()); - } + //Crédit de TVA + BigDecimal creditDeTva = sommeTVADeductible.subtract(sommeTVABruteDue); + if (creditDeTva.compareTo(BigDecimal.ZERO) == 1) { + fields.setField(doc, "b40.b40" , creditDeTva.abs().toString()); + fields.setField(doc, "b42.b42" , creditDeTva.abs().toString()); + } else { + fields.setField(doc, "b43.b43" , creditDeTva.abs().toString()); + fields.setField(doc, "b47.b47" , creditDeTva.abs().toString()); + } - //end of page two + //end of page two + } // save the updated document to the new file and close doc.save(filePath); doc.close(); Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/HttpServerServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/HttpServerServiceImpl.java 2011-07-13 12:00:44 UTC (rev 3223) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/HttpServerServiceImpl.java 2011-07-13 13:28:51 UTC (rev 3224) @@ -127,6 +127,7 @@ String format = req.getParameter("format"); String beginDate = req.getParameter("beginDate"); String endDate = req.getParameter("endDate"); + String autocomplete = req.getParameter("autocomplete"); //if image if (imageParam != null){ @@ -171,7 +172,8 @@ break; case VAT: documentService.createVatDocuments( - beginDateFormat, endDateFormat, formatsEnum); + beginDateFormat, endDateFormat, formatsEnum, + autocomplete); break; } } catch (LimaException eeeLE) { Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/DocumentService.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/DocumentService.java 2011-07-13 12:00:44 UTC (rev 3223) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/DocumentService.java 2011-07-13 13:28:51 UTC (rev 3224) @@ -47,6 +47,6 @@ void createEntryBooksDocuments(Date beginDate, Date endDate, FormatsEnum format) throws LimaException; void createBalanceDocuments(Date beginDate, Date endDate, FormatsEnum format) throws LimaException; void createGeneralEntryBooksDocuments(Date beginDate, Date endDate, FormatsEnum format) throws LimaException; - void createVatDocuments(Date beginDate, Date endDate, FormatsEnum format) throws LimaException, IOException, COSVisitorException;; + void createVatDocuments(Date beginDate, Date endDate, FormatsEnum format, String autocomplete) throws LimaException, IOException, COSVisitorException;; } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java 2011-07-13 12:00:44 UTC (rev 3223) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java 2011-07-13 13:28:51 UTC (rev 3224) @@ -68,11 +68,14 @@ /** data cache */ protected List<Object> cacheDataList; + protected String autocomplete; + public VatReportTableModel() { reportService = LimaServiceFactory.getInstance().getService( ReportServiceMonitorable.class); + autocomplete = "true"; } protected List<Object> getDataList() throws TopiaException { @@ -329,6 +332,18 @@ selectedFiscalPeriod = fiscalPeriod; refresh(); } + + public String getAutocomplete() { + return autocomplete; + } + + public void setAutocomplete() { + if (getAutocomplete().equals("true")) { + autocomplete = "false"; + } else { + autocomplete = "true"; + } + } @Override public void notifyMethod(String serviceName, String methodeName) { Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx 2011-07-13 12:00:44 UTC (rev 3223) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx 2011-07-13 13:28:51 UTC (rev 3224) @@ -57,13 +57,10 @@ editable="false"/> </cell> <cell> - <EnumEditor id='DocumentEditor' - constructorParams='org.chorem.lima.business.utils.FormatsEnum.class'/> + <JCheckBox id='autocomplete' text='lima.common.autocomplete' selected='true' + onActionPerformed="getVatReportTableModel().setAutocomplete()"/> </cell> <cell> - <JCheckBox id='autocomplete' text='lima.common.autocomplete' selected='true'/> - </cell> - <cell> <JButton id="editVatButton" text="lima.reports.vat" onActionPerformed="getHandler().editVat()"/> </cell> Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java 2011-07-13 12:00:44 UTC (rev 3223) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java 2011-07-13 13:28:51 UTC (rev 3224) @@ -84,9 +84,9 @@ try { String url = "http://"+address+":"+port+"/?beginDate=" + dateFormat.format(tableModel.getFiscalPeriod().getBeginDate()) - + "&endDate="+dateFormat.format(tableModel.getFiscalPeriod().getEndDate()) - + "&format=.pdf&model=" - + DocumentsEnum.VAT.getFileName(); + + "&endDate=" + dateFormat.format(tableModel.getFiscalPeriod().getEndDate()) + + "&format=.pdf&model=" + DocumentsEnum.VAT.getFileName() + + "&autocomplete=" + tableModel.getAutocomplete(); Desktop.getDesktop().browse(new URI(url)); } catch (IOException e) { log.error("Can't open browser", e);