diff --git a/pom.xml b/pom.xml index 333e4de..7f464df 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ ru.dmitriymx corrector-1s jar - 1.0-SNAPSHOT + 1.0.1-SNAPSHOT @@ -144,12 +144,12 @@ ./jre - 1.0.0.0 - 1.0 + 1.0.1.0 + 1.0.1 Corrector 1S DmitriyMX, 2018 - 1.0.0.0 - 1.0 + 1.0.1.0 + 1.0.1 Corrector 1S corrector-1s ${project.artifactId}-${project.version}.exe @@ -175,12 +175,12 @@ ./jre - 1.0.0.0 - 1.0 + 1.0.1.0 + 1.0.1 Corrector 1S DmitriyMX, 2018 - 1.0.0.0 - 1.0 + 1.0.1.0 + 1.0.1 Corrector 1S corrector-1s ${project.artifactId}-${project.version}-cli.exe diff --git a/src/main/java/ru/dmitriymx/corrector1s/Corrector1S.java b/src/main/java/ru/dmitriymx/corrector1s/Corrector1S.java index 4c59ad1..9596dcd 100644 --- a/src/main/java/ru/dmitriymx/corrector1s/Corrector1S.java +++ b/src/main/java/ru/dmitriymx/corrector1s/Corrector1S.java @@ -35,6 +35,7 @@ public class Corrector1S { private Workbook workbook; private Sheet sheet; private int cellNumSum = 0; + private int cellBol = 0; private int lastColumn = 0; private CellStyle cellStyle1, cellStyle2; @@ -60,16 +61,10 @@ public class Corrector1S { Workbook workbook = WorkbookFactory.create(sourceFile); Sheet sheet = workbook.getSheetAt(0); try { - Cell cell = sheet.getRow(6).getCell(9); - if (!cell.getStringCellValue().equals("Больничный за счет работодателя")) { - throw new FormatFileException(); - } - - sheet.getRow(7).getCell(9); - sheet.getRow(8).getCell(9); - sheet.getRow(9).getCell(9); - } catch (FormatFileException e) { - throw e; + sheet.getRow(6).getCell(8); + sheet.getRow(7).getCell(8); + sheet.getRow(8).getCell(8); + sheet.getRow(9).getCell(8); } catch (Exception e) { throw new FormatFileException(e); } @@ -82,7 +77,7 @@ public class Corrector1S { Cell cell; loop: - for (int c = 10; true; c++) { + for (int c = 8; true; c++) { ExcelRecord record = new ExcelRecord(); for (int r = 6; r < 9; r++) { @@ -109,7 +104,7 @@ public class Corrector1S { while (sheet.getNumMergedRegions() > 5) { for(int m = 0; m < sheet.getNumMergedRegions(); m++) { CellRangeAddress cellRangeAddress = sheet.getMergedRegion(m); - if (cellRangeAddress.getFirstColumn() >= 10) { + if (cellRangeAddress.getFirstColumn() >= 8) { sheet.removeMergedRegion(m); break; } @@ -148,31 +143,36 @@ public class Corrector1S { } public void replaceData() { - int c = 10; - setCellRecord(mapRecords.remove("Дневные"), c++); - setCellRecord(mapRecords.remove("Ночные"), c++); - setCellRecord(mapRecords.remove("Ночные_123"), c++); - setCellRecord(mapRecords.remove("питание_124"), c++); - setCellRecord(mapRecords.remove("Выходные"), c++); - setCellRecord(mapRecords.remove("выходные_135"), c++); - setCellRecord(mapRecords.remove("пересчет за прошлый месяц _141"), c++); - setCellRecord(mapRecords.remove("вредность_145"), c++); - setCellRecord(mapRecords.remove("Материальная помощь при рождении ребенка_148"), c++); - setCellRecord(mapRecords.remove("компенсация за задержку зарплаты_169"), c++); - setCellRecord(mapRecords.remove("Оплата по среднему (донорство, посещение врача)_174"), c++); - setCellRecord(mapRecords.remove("Компенсация проезда при использовании личного транспорта_176"), c++); - setCellRecord(mapRecords.remove("Сверхурочные 1.5 ставки"), c++); - setCellRecord(mapRecords.remove("сверхурочные 1,5_180"), c++); - setCellRecord(mapRecords.remove("Сверхурочные 2 ставки"), c++); - setCellRecord(mapRecords.remove("сверхурочные 2_181"), c++); - setCellRecord(mapRecords.remove("Компенсация за неиспользованный отпуск (с декабря 2017)_184"), c++); - setCellRecord(mapRecords.remove("Месячная премия 2018_186"), c++); - setCellRecord(mapRecords.remove("Итого начислено"), c++); + int c = 8; + ExcelRecord record; + if ((record = mapRecords.remove("Больничный за счет работодателя_105")) != null) { + setCellRecord(record, c++); + this.cellBol = c-1; + } + if ((record = mapRecords.remove("Дневные")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Ночные")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Ночные_123")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("питание_124")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Выходные")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("выходные_135")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("пересчет за прошлый месяц _141")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("вредность_145")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Материальная помощь при рождении ребенка_148")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("компенсация за задержку зарплаты_169")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Оплата по среднему (донорство, посещение врача)_174")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Компенсация проезда при использовании личного транспорта_176")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Сверхурочные 1.5 ставки")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("сверхурочные 1,5_180")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Сверхурочные 2 ставки")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("сверхурочные 2_181")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Компенсация за неиспользованный отпуск (с декабря 2017)_184")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Месячная премия 2018_186")) != null) setCellRecord(record, c++); + if ((record = mapRecords.remove("Итого начислено")) != null) setCellRecord(record, c++); cellNumSum = c-1; if (mapRecords.size() > 0) { - for (ExcelRecord record : mapRecords.values()) { - setCellRecord(record, c++); + for (ExcelRecord rec : mapRecords.values()) { + setCellRecord(rec, c++); } } @@ -228,11 +228,23 @@ public class Corrector1S { initStyle(); int column = lastColumn; + String form1, form2; + if (cellBol == 0) { + form1 = String.format("(%s9)*31%%", CellReference.convertNumToColString(cellNumSum)); + form2 = String.format("(%s10)*31%%", CellReference.convertNumToColString(cellNumSum)); + } else { + form1 = String.format("(%s9-%s9)*31%%", + CellReference.convertNumToColString(cellNumSum), + CellReference.convertNumToColString(cellBol)); + form2 = String.format("(%s10-%s10)*31%%", + CellReference.convertNumToColString(cellNumSum), + CellReference.convertNumToColString(cellBol)); + } insertCell( "Страховые взносы + ФСС НС (31%)", "Начислено", - String.format("(%s9-J9)*31%%", CellReference.convertNumToColString(cellNumSum)), - String.format("(%s10-J10)*31%%", CellReference.convertNumToColString(cellNumSum)), + form1, + form2, column++ ); insertCell( diff --git a/src/main/java/ru/dmitriymx/corrector1s/Main.java b/src/main/java/ru/dmitriymx/corrector1s/Main.java index 19536c8..c8074f3 100644 --- a/src/main/java/ru/dmitriymx/corrector1s/Main.java +++ b/src/main/java/ru/dmitriymx/corrector1s/Main.java @@ -12,7 +12,7 @@ import java.util.List; @Slf4j public class Main { - public static final String VERSION = "1.0"; + public static final String VERSION = "1.0.1"; private static OptionParser buildOptionParser() { final OptionParser optionParser = new OptionParser(); diff --git a/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java b/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java index 2351197..9b7bca8 100644 --- a/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java +++ b/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java @@ -5,6 +5,7 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; +import ru.dmitriymx.corrector1s.Main; import java.io.IOException; @@ -16,7 +17,7 @@ public class MainApp extends Application { @Override public void start(Stage primaryStage) throws Exception { - primaryStage.setTitle("1С корректор (v1.0)"); + primaryStage.setTitle(String.format("1С корректор (v%s)", Main.VERSION)); primaryStage.setResizable(false); primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("excel.png"))); primaryStage.setScene(loadScene(primaryStage));