• R/O
  • SSH
  • HTTPS

aoiro: Commit


Commit MetaInfo

Revisão10 (tree)
Hora2018-02-21 21:56:53
Autorhirukawa_ryo

Mensagem de Log

* aoiro 0.2.3
家事按分が0円の締切仕訳が作成されてしまうバグを修正しました。

Mudança Sumário

Diff

--- aoiro/trunk/src/main/java/net/osdn/aoiro/AccountSettlement.java (revision 9)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/AccountSettlement.java (revision 10)
@@ -33,8 +33,9 @@
3333 /** メッセージ出力先 */
3434 private PrintStream out;
3535
36- public AccountSettlement(List<AccountTitle> accountTitles) {
36+ public AccountSettlement(List<AccountTitle> accountTitles, boolean isSoloproprietorship) {
3737 this.accountTitles = accountTitles;
38+ this.isSoloProprietorship = isSoloproprietorship;
3839 }
3940
4041 public void setPrintStream(PrintStream out) {
@@ -47,10 +48,8 @@
4748 * @param proportionalDivisions 家事按分リスト
4849 */
4950 public void addClosingEntries(List<JournalEntry> journalEntries, List<ProportionalDivision> proportionalDivisions) {
50- isSoloProprietorship = isSoloProprietorship(journalEntries);
51-
5251 if(date == null) {
53- date = getClosingDate(journalEntries);
52+ date = getClosingDate(journalEntries, isSoloProprietorship);
5453 }
5554 if(date == null) {
5655 throw new IllegalStateException("決算日が指定されていません。");
@@ -84,10 +83,14 @@
8483 }
8584 if(debtorTotal > creditorTotal) {
8685 double total = (debtorTotal - creditorTotal) * (1.0 - proportionalDivision.getBusinessRatio());
87- creditors.add(new Creditor(proportionalDivision.getAccountTitle(), (int)Math.floor(total)));
86+ if(!(-1.0 < total && total < +1.0)) {
87+ creditors.add(new Creditor(proportionalDivision.getAccountTitle(), (int)Math.floor(total)));
88+ }
8889 } else if(creditorTotal > debtorTotal) {
8990 double total = (creditorTotal - debtorTotal) * (1.0 - proportionalDivision.getBusinessRatio());
90- debtors.add(new Debtor(proportionalDivision.getAccountTitle(), (int)Math.floor(total)));
91+ if(!(-1.0 < total && total < +1.0)) {
92+ debtors.add(new Debtor(proportionalDivision.getAccountTitle(), (int)Math.floor(total)));
93+ }
9194 }
9295 }
9396 if(debtors.size() > 0) {
@@ -508,29 +511,12 @@
508511 }
509512 }
510513
511- /** 仕訳リストから個人事業主かどうかを判定します。
512- * 仕訳リストに元入金が含まれていれば個人事業主と判定します。
513- *
514- * @param journalEntries 仕訳リスト
515- * @return 仕訳リストに元入金がある場合は true、そうでなければ false を返します。
516- */
517- public static boolean isSoloProprietorship(List<JournalEntry> journalEntries) {
518- for(JournalEntry entry : journalEntries) {
519- for(Creditor creditor : entry.getCreditors()) {
520- if(creditor.getAccountTitle().getDisplayName().equals("元入金")) {
521- return true;
522- }
523- }
524- }
525- return false;
526- }
527-
528514 /** 仕訳リストから開始日を求めます。
529515 *
530516 * @param journalEntries 仕訳リスト
531517 * @return 開始日
532518 */
533- public static Date getOpeningDate(List<JournalEntry> journalEntries) {
519+ public static Date getOpeningDate(List<JournalEntry> journalEntries, boolean isSoloProprietorship) {
534520 Date date = null;
535521
536522 for(JournalEntry entry : journalEntries) {
@@ -549,10 +535,10 @@
549535 * @param journalEntries 仕訳リスト
550536 * @return 決算日
551537 */
552- public static Date getClosingDate(List<JournalEntry> journalEntries) {
538+ public static Date getClosingDate(List<JournalEntry> journalEntries, boolean isSoloProprietorship) {
553539 Date date = null;
554540
555- if(isSoloProprietorship(journalEntries)) {
541+ if(isSoloProprietorship) {
556542 //個人事業主の場合、仕訳から年を求めて、その年の12/31を決算日とします。
557543 if(journalEntries.size() > 0) {
558544 JournalEntry entry = journalEntries.get(0);
--- aoiro/trunk/src/main/java/net/osdn/aoiro/cui/Main.java (revision 9)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/cui/Main.java (revision 10)
@@ -110,7 +110,7 @@
110110 if(!skipSettlement) {
111111 //決算
112112 System.out.println("決算処理を実行しています . . .");
113- AccountSettlement accountSettlement = new AccountSettlement(accountTitles);
113+ AccountSettlement accountSettlement = new AccountSettlement(accountTitles, isSoloProprietorship);
114114 accountSettlement.setPrintStream(System.out);
115115 accountSettlement.addClosingEntries(journalEntries, proportionalDivisions);
116116 System.out.println("");
@@ -118,8 +118,8 @@
118118
119119 System.out.println("帳簿を作成しています . . .");
120120
121- GeneralJournal generalJournal = new GeneralJournal(journalEntries);
122- GeneralLedger generalLedger = new GeneralLedger(accountTitles, journalEntries);
121+ GeneralJournal generalJournal = new GeneralJournal(journalEntries, isSoloProprietorship);
122+ GeneralLedger generalLedger = new GeneralLedger(accountTitles, journalEntries, isSoloProprietorship);
123123
124124 generalJournal.writeTo(new File("仕訳帳.pdf"));
125125 System.out.println(" 仕訳帳.pdf を出力しました。");
@@ -130,13 +130,13 @@
130130 if(!skipSettlement) {
131131 //損益計算書
132132 Node<List<AccountTitle>, Amount> plRoot = accountTitlesLoader.getProfitAndLossRoot();
133- ProfitAndLoss pl = new ProfitAndLoss(plRoot, journalEntries);
133+ ProfitAndLoss pl = new ProfitAndLoss(plRoot, journalEntries, isSoloProprietorship);
134134 pl.writeTo(new File("損益計算書.pdf"));
135135 System.out.println(" 損益計算書.pdf を出力しました。");
136136
137137 //貸借対照表
138138 Node<List<AccountTitle>, Amount[]> bsRoot = accountTitlesLoader.getBalanceSheetRoot();
139- BalanceSheet bs = new BalanceSheet(bsRoot, journalEntries);
139+ BalanceSheet bs = new BalanceSheet(bsRoot, journalEntries, isSoloProprietorship);
140140 bs.writeTo(new File("貸借対照表.pdf"));
141141 System.out.println(" 貸借対照表.pdf を出力しました。");
142142
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/BalanceSheet.java (revision 9)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/BalanceSheet.java (revision 10)
@@ -53,12 +53,12 @@
5353 private List<String> pageData = new ArrayList<String>();
5454 private List<String> printData;
5555
56- public BalanceSheet(Node<List<AccountTitle>, Amount[]> bsRoot, List<JournalEntry> journalEntries) throws IOException {
56+ public BalanceSheet(Node<List<AccountTitle>, Amount[]> bsRoot, List<JournalEntry> journalEntries, boolean isSoloProprietorship) throws IOException {
5757 this.bsRoot = bsRoot;
5858 this.journalEntries = journalEntries;
5959
60- this.openingDate = AccountSettlement.getOpeningDate(journalEntries);
61- this.closingDate = AccountSettlement.getClosingDate(journalEntries);
60+ this.openingDate = AccountSettlement.getOpeningDate(journalEntries, isSoloProprietorship);
61+ this.closingDate = AccountSettlement.getClosingDate(journalEntries, isSoloProprietorship);
6262
6363 InputStream in = getClass().getResourceAsStream("/templates/貸借対照表.pb");
6464 BufferedReader r = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralJournal.java (revision 9)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralJournal.java (revision 10)
@@ -33,7 +33,7 @@
3333 private List<String> pageData = new ArrayList<String>();
3434 private List<String> printData;
3535
36- public GeneralJournal(List<JournalEntry> journalEntries) throws IOException {
36+ public GeneralJournal(List<JournalEntry> journalEntries, boolean isSoloProprietorship) throws IOException {
3737 this.entries = journalEntries;
3838
3939 InputStream in = getClass().getResourceAsStream("/templates/仕訳帳.pb");
@@ -44,7 +44,7 @@
4444 }
4545 r.close();
4646
47- Date closing = AccountSettlement.getClosingDate(entries);
47+ Date closing = AccountSettlement.getClosingDate(entries, isSoloProprietorship);
4848 Calendar calendar = Calendar.getInstance();
4949 calendar.setTime(closing);
5050 if(calendar.get(Calendar.MONTH) == Calendar.DECEMBER && calendar.get(Calendar.DAY_OF_MONTH) == 31) {
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralLedger.java (revision 9)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralLedger.java (revision 10)
@@ -37,7 +37,7 @@
3737 private List<String> pageData = new ArrayList<String>();
3838 private List<String> printData;
3939
40- public GeneralLedger(List<AccountTitle> accountTitles, List<JournalEntry> journalEntries) throws IOException {
40+ public GeneralLedger(List<AccountTitle> accountTitles, List<JournalEntry> journalEntries, boolean isSoloProprietorship) throws IOException {
4141 this.accountTitles = new ArrayList<AccountTitle>(accountTitles);
4242 this.accountTitles.add(AccountTitle.INCOME_SUMMARY);
4343 this.accountTitles.add(AccountTitle.RETAINED_EARNINGS);
@@ -53,7 +53,7 @@
5353 }
5454 r.close();
5555
56- Date closing = AccountSettlement.getClosingDate(entries);
56+ Date closing = AccountSettlement.getClosingDate(entries, isSoloProprietorship);
5757 Calendar calendar = Calendar.getInstance();
5858 calendar.setTime(closing);
5959 if(calendar.get(Calendar.MONTH) == Calendar.DECEMBER && calendar.get(Calendar.DAY_OF_MONTH) == 31) {
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/ProfitAndLoss.java (revision 9)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/ProfitAndLoss.java (revision 10)
@@ -47,12 +47,12 @@
4747 private List<String> pageData = new ArrayList<String>();
4848 private List<String> printData;
4949
50- public ProfitAndLoss(Node<List<AccountTitle>, Amount> plRoot, List<JournalEntry> journalEntries) throws IOException {
50+ public ProfitAndLoss(Node<List<AccountTitle>, Amount> plRoot, List<JournalEntry> journalEntries, boolean isSoloProprietorship) throws IOException {
5151 this.plRoot = plRoot;
5252 this.journalEntries = journalEntries;
5353
54- this.openingDate = AccountSettlement.getOpeningDate(journalEntries);
55- this.closingDate = AccountSettlement.getClosingDate(journalEntries);
54+ this.openingDate = AccountSettlement.getOpeningDate(journalEntries, isSoloProprietorship);
55+ this.closingDate = AccountSettlement.getClosingDate(journalEntries, isSoloProprietorship);
5656
5757 for(JournalEntry entry : journalEntries) {
5858 if(entry.isIncomeSummary()) {
Show on old repository browser