作業履歴 2017-04-10¶
概要¶
2017-04-10の作業内容をまとめています。
コミット: 7206779¶
メッセージ¶
Payrollパッケージ1
変更されたファイル¶
- M META-INF/ServiceCharge.txt
- A src/main/java/PayrollDomain/Paycheck.java
- M src/test/java/Main.java
- M src/test/java/TestPayroll.java
変更内容¶
commit 7206779337e45c0f45906676f65684471e0fd6fb
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 17:43:37 2017 +0900
Payrollパッケージ1
diff --git a/META-INF/ServiceCharge.txt b/META-INF/ServiceCharge.txt
index 88e1c7a..8278b65 100644
--- a/META-INF/ServiceCharge.txt
+++ b/META-INF/ServiceCharge.txt
@@ -1 +1 @@
-ServiceCharge 86 2001/10/31 12.95
\ No newline at end of file
+Affiliations.ServiceCharge 86 2001/10/31 12.95
\ No newline at end of file
diff --git a/src/main/java/ChangeAffiliationTransaction.java b/src/main/java/AffiliationTransactions/ChangeAffiliationTransaction.java
similarity index 67%
rename from src/main/java/ChangeAffiliationTransaction.java
rename to src/main/java/AffiliationTransactions/ChangeAffiliationTransaction.java
index b62169b..49c71f7 100644
--- a/src/main/java/ChangeAffiliationTransaction.java
+++ b/src/main/java/AffiliationTransactions/ChangeAffiliationTransaction.java
@@ -1,3 +1,9 @@
+package AffiliationTransactions;
+
+import GeneralTransactions.ChangeEmployeeTransaction;
+import PayrollDomain.Affiliation;
+import PayrollDomain.Employee;
+
/**
* Created by k2works on 2017/04/07.
*/
@@ -6,7 +12,7 @@ public abstract class ChangeAffiliationTransaction extends ChangeEmployeeTransac
super(empId);
}
- void Change(Employee e) {
+ public void Change(Employee e) {
RecordMembership(e);
e.SetAffiliation(GetAffiliation());
}
diff --git a/src/main/java/ChangeMemberTransaction.java b/src/main/java/AffiliationTransactions/ChangeMemberTransaction.java
similarity index 56%
rename from src/main/java/ChangeMemberTransaction.java
rename to src/main/java/AffiliationTransactions/ChangeMemberTransaction.java
index 4e6d6b5..07e1a5b 100644
--- a/src/main/java/ChangeMemberTransaction.java
+++ b/src/main/java/AffiliationTransactions/ChangeMemberTransaction.java
@@ -1,3 +1,10 @@
+package AffiliationTransactions;
+
+import Affiliations.UnionAffiliation;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Affiliation;
+import PayrollDomain.Employee;
+
/**
* Created by k2works on 2017/04/07.
*/
@@ -11,11 +18,11 @@ public class ChangeMemberTransaction extends ChangeAffiliationTransaction {
itsDues = dues;
}
- Affiliation GetAffiliation() {
- return new UnionAffiliation(itsMemberId,itsDues);
+ public Affiliation GetAffiliation() {
+ return new UnionAffiliation(itsMemberId, itsDues);
}
- void RecordMembership(Employee e) {
+ public void RecordMembership(Employee e) {
GlobalDatabase.payrollDB.AddUnionMember(itsMemberId, e);
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ChangeUnaffiliatedTransaction.java b/src/main/java/AffiliationTransactions/ChangeUnaffiliatedTransaction.java
similarity index 74%
rename from src/main/java/ChangeUnaffiliatedTransaction.java
rename to src/main/java/AffiliationTransactions/ChangeUnaffiliatedTransaction.java
index bcecdfd..926e4bd 100644
--- a/src/main/java/ChangeUnaffiliatedTransaction.java
+++ b/src/main/java/AffiliationTransactions/ChangeUnaffiliatedTransaction.java
@@ -1,3 +1,11 @@
+package AffiliationTransactions;
+
+import Affiliations.UnionAffiliation;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Affiliation;
+import PayrollDomain.Employee;
+import PayrollDomain.NoAffiliation;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ServiceChargeTransaction.java b/src/main/java/AffiliationTransactions/ServiceChargeTransaction.java
similarity index 76%
rename from src/main/java/ServiceChargeTransaction.java
rename to src/main/java/AffiliationTransactions/ServiceChargeTransaction.java
index 8b0bfe4..e436a7c 100644
--- a/src/main/java/ServiceChargeTransaction.java
+++ b/src/main/java/AffiliationTransactions/ServiceChargeTransaction.java
@@ -1,3 +1,11 @@
+package AffiliationTransactions;
+
+import Affiliations.UnionAffiliation;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Affiliation;
+import PayrollDomain.Employee;
+import TransactionApplication.Transaction;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/Paycheck.java b/src/main/java/Affiliations/PaycheckImplementation.java
similarity index 72%
rename from src/main/java/Paycheck.java
rename to src/main/java/Affiliations/PaycheckImplementation.java
index 4681770..d207fb1 100644
--- a/src/main/java/Paycheck.java
+++ b/src/main/java/Affiliations/PaycheckImplementation.java
@@ -1,31 +1,23 @@
+package Affiliations;
+
import java.util.Calendar;
+import PayrollDomain.Paycheck;
+
/**
- * Created by k2works on 2017/04/07.
+ * Created by k2works on 2017/04/10.
*/
-public class Paycheck {
+public class PaycheckImplementation implements Paycheck {
private Calendar itsPayPeriodStartDate;
private Calendar itsPayPeriodEndDate;
private double itsGrossPay;
- private double itsDeducations;
+ private double itsDeductions;
private double itsNetPay;
- public Paycheck(Calendar payPeriodStartDate, Calendar payPeriodEndDate) {
+ public PaycheckImplementation(Calendar payPeriodStartDate, Calendar payPeriodEndDate) {
itsPayPeriodStartDate = payPeriodStartDate;
itsPayPeriodEndDate = payPeriodEndDate;
}
-
- public void SetGrossPay(double grossPay) {
- itsGrossPay = grossPay;
- }
-
- public void SetDeductions(double deductions) {
- itsDeducations = deductions;
- }
-
- public void SetNetPay(double netPay) {
- itsNetPay = netPay;
- }
public Calendar GetPayPeriodStartDate() {
return itsPayPeriodStartDate;
@@ -39,6 +31,10 @@ public class Paycheck {
return itsGrossPay;
}
+ public void SetGrossPay(double grossPay) {
+ itsGrossPay = grossPay;
+ }
+
public String GetField(String string) {
if (string.equals("Disposition")) {
return "Hold";
@@ -46,11 +42,20 @@ public class Paycheck {
return null;
}
- public double GetDeducations() {
- return itsDeducations;
+ public double GetDeductions() {
+ return itsDeductions;
+ }
+
+ public void SetDeductions(double deductions) {
+ itsDeductions = deductions;
}
public double GetNetPay() {
return itsNetPay;
}
+
+ public void SetNetPay(double netPay) {
+ itsNetPay = netPay;
+ }
}
+
diff --git a/src/main/java/ServiceCharge.java b/src/main/java/Affiliations/ServiceCharge.java
similarity index 94%
rename from src/main/java/ServiceCharge.java
rename to src/main/java/Affiliations/ServiceCharge.java
index 57bd559..dde8671 100644
--- a/src/main/java/ServiceCharge.java
+++ b/src/main/java/Affiliations/ServiceCharge.java
@@ -1,3 +1,5 @@
+package Affiliations;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/UnionAffiliation.java b/src/main/java/Affiliations/UnionAffiliation.java
similarity index 94%
rename from src/main/java/UnionAffiliation.java
rename to src/main/java/Affiliations/UnionAffiliation.java
index 4a633a3..71165b6 100644
--- a/src/main/java/UnionAffiliation.java
+++ b/src/main/java/Affiliations/UnionAffiliation.java
@@ -1,7 +1,13 @@
+package Affiliations;
+
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
+import PayrollDomain.Affiliation;
+import PayrollDomain.Paycheck;
+import PayrollUtil.Date;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/Application.java b/src/main/java/Application/Application.java
similarity index 85%
rename from src/main/java/Application.java
rename to src/main/java/Application/Application.java
index a0695ef..042aa6d 100644
--- a/src/main/java/Application.java
+++ b/src/main/java/Application/Application.java
@@ -1,3 +1,5 @@
+package Application;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/main/java/ChangeClassificationTransaction.java b/src/main/java/ClassificationTransactions/ChangeClassificationTransaction.java
similarity index 68%
rename from src/main/java/ChangeClassificationTransaction.java
rename to src/main/java/ClassificationTransactions/ChangeClassificationTransaction.java
index 8167f53..a79b3ee 100644
--- a/src/main/java/ChangeClassificationTransaction.java
+++ b/src/main/java/ClassificationTransactions/ChangeClassificationTransaction.java
@@ -1,3 +1,10 @@
+package ClassificationTransactions;
+
+import GeneralTransactions.ChangeEmployeeTransaction;
+import PayrollDomain.Employee;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ChangeCommissionedTransaction.java b/src/main/java/ClassificationTransactions/ChangeCommissionedTransaction.java
similarity index 74%
rename from src/main/java/ChangeCommissionedTransaction.java
rename to src/main/java/ClassificationTransactions/ChangeCommissionedTransaction.java
index d6861d1..f2bc752 100644
--- a/src/main/java/ChangeCommissionedTransaction.java
+++ b/src/main/java/ClassificationTransactions/ChangeCommissionedTransaction.java
@@ -1,3 +1,10 @@
+package ClassificationTransactions;
+
+import Classifications.CommissionedClassification;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+import Schedules.BiweeklySchedule;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ChangeHourlyTransaction.java b/src/main/java/ClassificationTransactions/ChangeHourlyTransaction.java
similarity index 69%
rename from src/main/java/ChangeHourlyTransaction.java
rename to src/main/java/ClassificationTransactions/ChangeHourlyTransaction.java
index c3b5fb3..4843576 100644
--- a/src/main/java/ChangeHourlyTransaction.java
+++ b/src/main/java/ClassificationTransactions/ChangeHourlyTransaction.java
@@ -1,3 +1,10 @@
+package ClassificationTransactions;
+
+import Classifications.HourlyClassification;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+import Schedules.WeeklySchedule;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ChangeSalariedTransaction.java b/src/main/java/ClassificationTransactions/ChangeSalariedTransaction.java
similarity index 70%
rename from src/main/java/ChangeSalariedTransaction.java
rename to src/main/java/ClassificationTransactions/ChangeSalariedTransaction.java
index b773c18..77d6cb6 100644
--- a/src/main/java/ChangeSalariedTransaction.java
+++ b/src/main/java/ClassificationTransactions/ChangeSalariedTransaction.java
@@ -1,3 +1,10 @@
+package ClassificationTransactions;
+
+import Classifications.SalariedClassification;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+import Schedules.MonthlySchedule;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/SalesReceiptTransaction.java b/src/main/java/ClassificationTransactions/SalesReceiptTransaction.java
similarity index 75%
rename from src/main/java/SalesReceiptTransaction.java
rename to src/main/java/ClassificationTransactions/SalesReceiptTransaction.java
index 0eae104..e04aada 100644
--- a/src/main/java/SalesReceiptTransaction.java
+++ b/src/main/java/ClassificationTransactions/SalesReceiptTransaction.java
@@ -1,5 +1,13 @@
+package ClassificationTransactions;
+
import java.util.Calendar;
+import Classifications.CommissionedClassification;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Employee;
+import PayrollDomain.PaymentClassification;
+import TransactionApplication.Transaction;
+
/**
* Created by k2works on 2017/04/06.
*/
@@ -20,7 +28,7 @@ public class SalesReceiptTransaction implements Transaction {
PaymentClassification pc = e.GetClassification();
if (pc instanceof CommissionedClassification) {
CommissionedClassification cc = (CommissionedClassification) pc;
- cc.AddReceipt(new SalesReceipt(itsSaleDate, itsAmount));
+ cc.AddReceipt(itsSaleDate, itsAmount);
} else {
System.err.println("Tried to add sales receipt to non-commissioned employee");
}
diff --git a/src/main/java/TimeCardTransaction.java b/src/main/java/ClassificationTransactions/TimeCardTransaction.java
similarity index 75%
rename from src/main/java/TimeCardTransaction.java
rename to src/main/java/ClassificationTransactions/TimeCardTransaction.java
index 6823042..b591366 100644
--- a/src/main/java/TimeCardTransaction.java
+++ b/src/main/java/ClassificationTransactions/TimeCardTransaction.java
@@ -1,5 +1,13 @@
+package ClassificationTransactions;
+
import java.util.Calendar;
+import Classifications.HourlyClassification;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Employee;
+import PayrollDomain.PaymentClassification;
+import TransactionApplication.Transaction;
+
/**
* Created by k2works on 2017/04/06.
*/
@@ -20,7 +28,7 @@ public class TimeCardTransaction implements Transaction {
PaymentClassification pc = e.GetClassification();
if (pc instanceof HourlyClassification) {
HourlyClassification hc = (HourlyClassification) pc;
- hc.AddTimeCard(new TimeCard(itsDate, itsHours));
+ hc.AddTimeCard(itsDate, itsHours);
} else {
throw new RuntimeException("Tried to add timecard to non-hourly employee.");
}
diff --git a/src/main/java/CommissionedClassification.java b/src/main/java/Classifications/CommissionedClassification.java
similarity index 81%
rename from src/main/java/CommissionedClassification.java
rename to src/main/java/Classifications/CommissionedClassification.java
index 774abd6..33a3863 100644
--- a/src/main/java/CommissionedClassification.java
+++ b/src/main/java/Classifications/CommissionedClassification.java
@@ -1,7 +1,13 @@
+package Classifications;
+
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
+import PayrollDomain.Paycheck;
+import PayrollDomain.PaymentClassification;
+import PayrollUtil.Date;
+
/**
* Created by k2works on 2017/04/06.
*/
@@ -24,8 +30,8 @@ public class CommissionedClassification implements PaymentClassification {
return itsCommissionRate;
}
- public void AddReceipt(SalesReceipt sr) {
- itsReceipts.put(sr.GetSaleDate(),sr);
+ public void AddReceipt(Calendar saleDate, double amount) {
+ itsReceipts.put(saleDate ,new SalesReceipt(saleDate,amount));
}
public SalesReceipt GetReceipt(Calendar date) {
diff --git a/src/main/java/HourlyClassification.java b/src/main/java/Classifications/HourlyClassification.java
similarity index 81%
rename from src/main/java/HourlyClassification.java
rename to src/main/java/Classifications/HourlyClassification.java
index 3df6f8d..8316231 100644
--- a/src/main/java/HourlyClassification.java
+++ b/src/main/java/Classifications/HourlyClassification.java
@@ -1,7 +1,13 @@
+package Classifications;
+
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
+import PayrollDomain.Paycheck;
+import PayrollDomain.PaymentClassification;
+import PayrollUtil.Date;
+
/**
* Created by k2works on 2017/04/06.
*/
@@ -22,8 +28,8 @@ public class HourlyClassification implements PaymentClassification {
return itsTimeCards.get(date);
}
- public void AddTimeCard(TimeCard tc) {
- itsTimeCards.put(tc.GetDate(), tc);
+ public void AddTimeCard(Calendar date, double amount) {
+ itsTimeCards.put(date, new TimeCard(date, amount));
}
public double CalculatePay(Paycheck pc) {
diff --git a/src/main/java/SalariedClassification.java b/src/main/java/Classifications/SalariedClassification.java
similarity index 78%
rename from src/main/java/SalariedClassification.java
rename to src/main/java/Classifications/SalariedClassification.java
index 81a2bbd..032437d 100644
--- a/src/main/java/SalariedClassification.java
+++ b/src/main/java/Classifications/SalariedClassification.java
@@ -1,3 +1,8 @@
+package Classifications;
+
+import PayrollDomain.Paycheck;
+import PayrollDomain.PaymentClassification;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/SalesReceipt.java b/src/main/java/Classifications/SalesReceipt.java
similarity index 94%
rename from src/main/java/SalesReceipt.java
rename to src/main/java/Classifications/SalesReceipt.java
index b62a8f3..94a6395 100644
--- a/src/main/java/SalesReceipt.java
+++ b/src/main/java/Classifications/SalesReceipt.java
@@ -1,3 +1,5 @@
+package Classifications;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/TimeCard.java b/src/main/java/Classifications/TimeCard.java
similarity index 93%
rename from src/main/java/TimeCard.java
rename to src/main/java/Classifications/TimeCard.java
index 3ed238c..17a82d9 100644
--- a/src/main/java/TimeCard.java
+++ b/src/main/java/Classifications/TimeCard.java
@@ -1,3 +1,5 @@
+package Classifications;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/AddCommissionedEmployee.java b/src/main/java/GeneralTransactions/AddCommissionedEmployee.java
similarity index 75%
rename from src/main/java/AddCommissionedEmployee.java
rename to src/main/java/GeneralTransactions/AddCommissionedEmployee.java
index 3f1a790..47716e5 100644
--- a/src/main/java/AddCommissionedEmployee.java
+++ b/src/main/java/GeneralTransactions/AddCommissionedEmployee.java
@@ -1,3 +1,10 @@
+package GeneralTransactions;
+
+import Classifications.CommissionedClassification;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+import Schedules.BiweeklySchedule;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/AddEmployeeTransaction.java b/src/main/java/GeneralTransactions/AddEmployeeTransaction.java
similarity index 74%
rename from src/main/java/AddEmployeeTransaction.java
rename to src/main/java/GeneralTransactions/AddEmployeeTransaction.java
index fea788b..f595bdf 100644
--- a/src/main/java/AddEmployeeTransaction.java
+++ b/src/main/java/GeneralTransactions/AddEmployeeTransaction.java
@@ -1,3 +1,13 @@
+package GeneralTransactions;
+
+import Methods.HoldMethod;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Employee;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentMethod;
+import PayrollDomain.PaymentSchedule;
+import TransactionApplication.Transaction;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/AddHourlyEmployee.java b/src/main/java/GeneralTransactions/AddHourlyEmployee.java
similarity index 72%
rename from src/main/java/AddHourlyEmployee.java
rename to src/main/java/GeneralTransactions/AddHourlyEmployee.java
index b5bdb47..134c52e 100644
--- a/src/main/java/AddHourlyEmployee.java
+++ b/src/main/java/GeneralTransactions/AddHourlyEmployee.java
@@ -1,3 +1,10 @@
+package GeneralTransactions;
+
+import Classifications.HourlyClassification;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+import Schedules.WeeklySchedule;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/AddSalariedEmployee.java b/src/main/java/GeneralTransactions/AddSalariedEmployee.java
similarity index 62%
rename from src/main/java/AddSalariedEmployee.java
rename to src/main/java/GeneralTransactions/AddSalariedEmployee.java
index f09e9e8..079c6e2 100644
--- a/src/main/java/AddSalariedEmployee.java
+++ b/src/main/java/GeneralTransactions/AddSalariedEmployee.java
@@ -1,7 +1,14 @@
+package GeneralTransactions;
+
+import Classifications.SalariedClassification;
+import PayrollDomain.PaymentClassification;
+import PayrollDomain.PaymentSchedule;
+import Schedules.MonthlySchedule;
+
/**
* Created by k2works on 2017/04/06.
*/
-class AddSalariedEmployee extends AddEmployeeTransaction {
+public class AddSalariedEmployee extends AddEmployeeTransaction {
private double itsSalary;
public AddSalariedEmployee(int empId, String name, String address, double salary) {
diff --git a/src/main/java/ChangeAddressTransaction.java b/src/main/java/GeneralTransactions/ChangeAddressTransaction.java
similarity index 76%
rename from src/main/java/ChangeAddressTransaction.java
rename to src/main/java/GeneralTransactions/ChangeAddressTransaction.java
index 8ecf16c..391d035 100644
--- a/src/main/java/ChangeAddressTransaction.java
+++ b/src/main/java/GeneralTransactions/ChangeAddressTransaction.java
@@ -1,3 +1,7 @@
+package GeneralTransactions;
+
+import PayrollDomain.Employee;
+
/**
* Created by k2works on 2017/04/07.
*/
@@ -9,7 +13,7 @@ public class ChangeAddressTransaction extends ChangeEmployeeTransaction {
itsAddress = address;
}
- void Change(Employee e) {
+ public void Change(Employee e) {
e.SetAddress(itsAddress);
}
}
diff --git a/src/main/java/ChangeEmployeeTransaction.java b/src/main/java/GeneralTransactions/ChangeEmployeeTransaction.java
similarity index 67%
rename from src/main/java/ChangeEmployeeTransaction.java
rename to src/main/java/GeneralTransactions/ChangeEmployeeTransaction.java
index ce881bc..d7b5884 100644
--- a/src/main/java/ChangeEmployeeTransaction.java
+++ b/src/main/java/GeneralTransactions/ChangeEmployeeTransaction.java
@@ -1,3 +1,9 @@
+package GeneralTransactions;
+
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Employee;
+import TransactionApplication.Transaction;
+
/**
* Created by k2works on 2017/04/07.
*/
@@ -15,6 +21,6 @@ public abstract class ChangeEmployeeTransaction implements Transaction {
}
}
- abstract void Change(Employee e);
+ public abstract void Change(Employee e);
}
diff --git a/src/main/java/ChangeNameTransaction.java b/src/main/java/GeneralTransactions/ChangeNameTransaction.java
similarity index 84%
rename from src/main/java/ChangeNameTransaction.java
rename to src/main/java/GeneralTransactions/ChangeNameTransaction.java
index dc207d3..fc40bb0 100644
--- a/src/main/java/ChangeNameTransaction.java
+++ b/src/main/java/GeneralTransactions/ChangeNameTransaction.java
@@ -1,3 +1,7 @@
+package GeneralTransactions;
+
+import PayrollDomain.Employee;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/DeleteEmployeeTransaction.java b/src/main/java/GeneralTransactions/DeleteEmployeeTransaction.java
similarity index 73%
rename from src/main/java/DeleteEmployeeTransaction.java
rename to src/main/java/GeneralTransactions/DeleteEmployeeTransaction.java
index d117d32..43eb184 100644
--- a/src/main/java/DeleteEmployeeTransaction.java
+++ b/src/main/java/GeneralTransactions/DeleteEmployeeTransaction.java
@@ -1,3 +1,8 @@
+package GeneralTransactions;
+
+import PayrollDatabase.GlobalDatabase;
+import TransactionApplication.Transaction;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/PaydayTransaction.java b/src/main/java/GeneralTransactions/PaydayTransaction.java
similarity index 72%
rename from src/main/java/PaydayTransaction.java
rename to src/main/java/GeneralTransactions/PaydayTransaction.java
index d7b5b77..22d506e 100644
--- a/src/main/java/PaydayTransaction.java
+++ b/src/main/java/GeneralTransactions/PaydayTransaction.java
@@ -1,8 +1,16 @@
+package GeneralTransactions;
+
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import Affiliations.PaycheckImplementation;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDomain.Employee;
+import PayrollDomain.Paycheck;
+import TransactionApplication.Transaction;
+
/**
* Created by k2works on 2017/04/07.
*/
@@ -19,7 +27,7 @@ public class PaydayTransaction implements Transaction {
for(int empId : empIds) {
Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
if(e.IsPayDate(itsPayDate)) {
- Paycheck pc = new Paycheck(e.GetPayPeriodStartDate(itsPayDate),itsPayDate);
+ Paycheck pc = new PaycheckImplementation(e.GetPayPeriodStartDate(itsPayDate),itsPayDate);
itsPaychecks.put(empId, pc);
e.Payday(pc);
}
diff --git a/src/main/java/ChangeDirectTransaction.java b/src/main/java/MethodTransactions/ChangeDirectTransaction.java
similarity index 81%
rename from src/main/java/ChangeDirectTransaction.java
rename to src/main/java/MethodTransactions/ChangeDirectTransaction.java
index b53f17e..c30a8b5 100644
--- a/src/main/java/ChangeDirectTransaction.java
+++ b/src/main/java/MethodTransactions/ChangeDirectTransaction.java
@@ -1,3 +1,8 @@
+package MethodTransactions;
+
+import Methods.DirectMethod;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ChangeHoldTransaction.java b/src/main/java/MethodTransactions/ChangeHoldTransaction.java
similarity index 73%
rename from src/main/java/ChangeHoldTransaction.java
rename to src/main/java/MethodTransactions/ChangeHoldTransaction.java
index e8e23f3..c4d615a 100644
--- a/src/main/java/ChangeHoldTransaction.java
+++ b/src/main/java/MethodTransactions/ChangeHoldTransaction.java
@@ -1,3 +1,8 @@
+package MethodTransactions;
+
+import Methods.HoldMethod;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ChangeMailTransaction.java b/src/main/java/MethodTransactions/ChangeMailTransaction.java
similarity index 79%
rename from src/main/java/ChangeMailTransaction.java
rename to src/main/java/MethodTransactions/ChangeMailTransaction.java
index 79d835a..343b48e 100644
--- a/src/main/java/ChangeMailTransaction.java
+++ b/src/main/java/MethodTransactions/ChangeMailTransaction.java
@@ -1,3 +1,8 @@
+package MethodTransactions;
+
+import Methods.MailMethod;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/ChangeMethodTransaction.java b/src/main/java/MethodTransactions/ChangeMethodTransaction.java
similarity index 68%
rename from src/main/java/ChangeMethodTransaction.java
rename to src/main/java/MethodTransactions/ChangeMethodTransaction.java
index 49875d5..fbd62bb 100644
--- a/src/main/java/ChangeMethodTransaction.java
+++ b/src/main/java/MethodTransactions/ChangeMethodTransaction.java
@@ -1,3 +1,9 @@
+package MethodTransactions;
+
+import GeneralTransactions.ChangeEmployeeTransaction;
+import PayrollDomain.Employee;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/DirectMethod.java b/src/main/java/Methods/DirectMethod.java
similarity index 83%
rename from src/main/java/DirectMethod.java
rename to src/main/java/Methods/DirectMethod.java
index 7fba14a..ce89efe 100644
--- a/src/main/java/DirectMethod.java
+++ b/src/main/java/Methods/DirectMethod.java
@@ -1,3 +1,8 @@
+package Methods;
+
+import PayrollDomain.Paycheck;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/HoldMethod.java b/src/main/java/Methods/HoldMethod.java
similarity index 61%
rename from src/main/java/HoldMethod.java
rename to src/main/java/Methods/HoldMethod.java
index 9bfadc9..062caf4 100644
--- a/src/main/java/HoldMethod.java
+++ b/src/main/java/Methods/HoldMethod.java
@@ -1,3 +1,8 @@
+package Methods;
+
+import PayrollDomain.Paycheck;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/MailMethod.java b/src/main/java/Methods/MailMethod.java
similarity index 78%
rename from src/main/java/MailMethod.java
rename to src/main/java/Methods/MailMethod.java
index 842a9a0..bd38045 100644
--- a/src/main/java/MailMethod.java
+++ b/src/main/java/Methods/MailMethod.java
@@ -1,3 +1,8 @@
+package Methods;
+
+import PayrollDomain.Paycheck;
+import PayrollDomain.PaymentMethod;
+
/**
* Created by k2works on 2017/04/07.
*/
diff --git a/src/main/java/PayrollApplication.java b/src/main/java/PayrollApplication/PayrollApplication.java
similarity index 66%
rename from src/main/java/PayrollApplication.java
rename to src/main/java/PayrollApplication/PayrollApplication.java
index 531460f..0a2f1a6 100644
--- a/src/main/java/PayrollApplication.java
+++ b/src/main/java/PayrollApplication/PayrollApplication.java
@@ -1,3 +1,9 @@
+package PayrollApplication;
+
+import TextParserTransactionSource.TextParserTransactionSource;
+import TransactionApplication.TransactionApplication;
+import TransactionApplication.TransactionSource;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/main/java/GlobalDatabase.java b/src/main/java/PayrollDatabase/GlobalDatabase.java
similarity index 82%
rename from src/main/java/GlobalDatabase.java
rename to src/main/java/PayrollDatabase/GlobalDatabase.java
index a932039..dd5deec 100644
--- a/src/main/java/GlobalDatabase.java
+++ b/src/main/java/PayrollDatabase/GlobalDatabase.java
@@ -1,3 +1,5 @@
+package PayrollDatabase;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/main/java/PayrollDatabase.java b/src/main/java/PayrollDatabase/PayrollDatabase.java
similarity index 86%
rename from src/main/java/PayrollDatabase.java
rename to src/main/java/PayrollDatabase/PayrollDatabase.java
index 52574c1..9c846d7 100644
--- a/src/main/java/PayrollDatabase.java
+++ b/src/main/java/PayrollDatabase/PayrollDatabase.java
@@ -1,8 +1,8 @@
-import java.util.ArrayList;
-import java.util.HashMap;
+package PayrollDatabase;
+
import java.util.List;
-import java.util.Map;
+import PayrollDomain.Employee;
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/PayrollDatabaseImplementation.java b/src/main/java/PayrollDatabaseImplementation/PayrollDatabaseImplementation.java
similarity index 91%
rename from src/main/java/PayrollDatabaseImplementation.java
rename to src/main/java/PayrollDatabaseImplementation/PayrollDatabaseImplementation.java
index 47e451e..96498ed 100644
--- a/src/main/java/PayrollDatabaseImplementation.java
+++ b/src/main/java/PayrollDatabaseImplementation/PayrollDatabaseImplementation.java
@@ -1,8 +1,13 @@
+package PayrollDatabaseImplementation;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import PayrollDatabase.PayrollDatabase;
+import PayrollDomain.Employee;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/main/java/Affiliation.java b/src/main/java/PayrollDomain/Affiliation.java
similarity index 89%
rename from src/main/java/Affiliation.java
rename to src/main/java/PayrollDomain/Affiliation.java
index eccbbd8..13e52a1 100644
--- a/src/main/java/Affiliation.java
+++ b/src/main/java/PayrollDomain/Affiliation.java
@@ -1,3 +1,5 @@
+package PayrollDomain;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/Employee.java b/src/main/java/PayrollDomain/Employee.java
similarity index 97%
rename from src/main/java/Employee.java
rename to src/main/java/PayrollDomain/Employee.java
index f15b6e4..c31d7f5 100644
--- a/src/main/java/Employee.java
+++ b/src/main/java/PayrollDomain/Employee.java
@@ -1,9 +1,11 @@
+package PayrollDomain;
+
import java.util.Calendar;
/**
* Created by k2works on 2017/04/06.
*/
-class Employee {
+public class Employee {
private int itsEmpId;
private String itsName;
private String itsAddress;
diff --git a/src/main/java/NoAffiliation.java b/src/main/java/PayrollDomain/NoAffiliation.java
similarity index 92%
rename from src/main/java/NoAffiliation.java
rename to src/main/java/PayrollDomain/NoAffiliation.java
index 6edc76f..8d4a2b2 100644
--- a/src/main/java/NoAffiliation.java
+++ b/src/main/java/PayrollDomain/NoAffiliation.java
@@ -1,3 +1,5 @@
+package PayrollDomain;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/PayrollDomain/Paycheck.java b/src/main/java/PayrollDomain/Paycheck.java
new file mode 100644
index 0000000..3fd1375
--- /dev/null
+++ b/src/main/java/PayrollDomain/Paycheck.java
@@ -0,0 +1,26 @@
+package PayrollDomain;
+
+import java.util.Calendar;
+
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public interface Paycheck {
+ public Calendar GetPayPeriodStartDate();
+
+ public Calendar GetPayPeriodEndDate();
+
+ public double GetGrossPay();
+
+ public void SetGrossPay(double grossPay);
+
+ public String GetField(String string);
+
+ public double GetDeductions();
+
+ public void SetDeductions(double deductions);
+
+ public double GetNetPay();
+
+ public void SetNetPay(double netPay);
+}
diff --git a/src/main/java/PaymentClassification.java b/src/main/java/PayrollDomain/PaymentClassification.java
similarity index 84%
rename from src/main/java/PaymentClassification.java
rename to src/main/java/PayrollDomain/PaymentClassification.java
index 116a7cb..02cfc3b 100644
--- a/src/main/java/PaymentClassification.java
+++ b/src/main/java/PayrollDomain/PaymentClassification.java
@@ -1,3 +1,5 @@
+package PayrollDomain;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/PaymentMethod.java b/src/main/java/PayrollDomain/PaymentMethod.java
similarity index 81%
rename from src/main/java/PaymentMethod.java
rename to src/main/java/PayrollDomain/PaymentMethod.java
index eccd52e..a27a559 100644
--- a/src/main/java/PaymentMethod.java
+++ b/src/main/java/PayrollDomain/PaymentMethod.java
@@ -1,3 +1,5 @@
+package PayrollDomain;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/PaymentSchedule.java b/src/main/java/PayrollDomain/PaymentSchedule.java
similarity index 89%
rename from src/main/java/PaymentSchedule.java
rename to src/main/java/PayrollDomain/PaymentSchedule.java
index 278232e..7a66ef0 100644
--- a/src/main/java/PaymentSchedule.java
+++ b/src/main/java/PayrollDomain/PaymentSchedule.java
@@ -1,3 +1,5 @@
+package PayrollDomain;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/Date.java b/src/main/java/PayrollUtil/Date.java
similarity index 95%
rename from src/main/java/Date.java
rename to src/main/java/PayrollUtil/Date.java
index 51f2774..3c52a35 100644
--- a/src/main/java/Date.java
+++ b/src/main/java/PayrollUtil/Date.java
@@ -1,3 +1,5 @@
+package PayrollUtil;
+
import java.util.Calendar;
import java.util.GregorianCalendar;
diff --git a/src/main/java/BiweeklySchedule.java b/src/main/java/Schedules/BiweeklySchedule.java
similarity index 94%
rename from src/main/java/BiweeklySchedule.java
rename to src/main/java/Schedules/BiweeklySchedule.java
index cbcab18..1376b0b 100644
--- a/src/main/java/BiweeklySchedule.java
+++ b/src/main/java/Schedules/BiweeklySchedule.java
@@ -1,6 +1,10 @@
+package Schedules;
+
import java.util.Calendar;
import java.util.GregorianCalendar;
+import PayrollDomain.PaymentSchedule;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/MonthlySchedule.java b/src/main/java/Schedules/MonthlySchedule.java
similarity index 92%
rename from src/main/java/MonthlySchedule.java
rename to src/main/java/Schedules/MonthlySchedule.java
index f0c3446..2a82c93 100644
--- a/src/main/java/MonthlySchedule.java
+++ b/src/main/java/Schedules/MonthlySchedule.java
@@ -1,3 +1,7 @@
+package Schedules;
+
+import PayrollDomain.PaymentSchedule;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/WeeklySchedule.java b/src/main/java/Schedules/WeeklySchedule.java
similarity index 89%
rename from src/main/java/WeeklySchedule.java
rename to src/main/java/Schedules/WeeklySchedule.java
index 64e19f2..d2d1f93 100644
--- a/src/main/java/WeeklySchedule.java
+++ b/src/main/java/Schedules/WeeklySchedule.java
@@ -1,3 +1,7 @@
+package Schedules;
+
+import PayrollDomain.PaymentSchedule;
+
import java.util.Calendar;
/**
diff --git a/src/main/java/TextParserTransactionSource.java b/src/main/java/TextParserTransactionSource/TextParserTransactionSource.java
similarity index 84%
rename from src/main/java/TextParserTransactionSource.java
rename to src/main/java/TextParserTransactionSource/TextParserTransactionSource.java
index 92e43f9..dcf923c 100644
--- a/src/main/java/TextParserTransactionSource.java
+++ b/src/main/java/TextParserTransactionSource/TextParserTransactionSource.java
@@ -1,3 +1,5 @@
+package TextParserTransactionSource;
+
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
@@ -8,6 +10,27 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
+import AffiliationTransactions.ChangeMemberTransaction;
+import AffiliationTransactions.ChangeUnaffiliatedTransaction;
+import AffiliationTransactions.ServiceChargeTransaction;
+import ClassificationTransactions.ChangeCommissionedTransaction;
+import ClassificationTransactions.ChangeHourlyTransaction;
+import ClassificationTransactions.ChangeSalariedTransaction;
+import ClassificationTransactions.SalesReceiptTransaction;
+import ClassificationTransactions.TimeCardTransaction;
+import GeneralTransactions.AddCommissionedEmployee;
+import GeneralTransactions.AddHourlyEmployee;
+import GeneralTransactions.AddSalariedEmployee;
+import GeneralTransactions.ChangeAddressTransaction;
+import GeneralTransactions.ChangeNameTransaction;
+import GeneralTransactions.DeleteEmployeeTransaction;
+import GeneralTransactions.PaydayTransaction;
+import MethodTransactions.ChangeDirectTransaction;
+import MethodTransactions.ChangeHoldTransaction;
+import MethodTransactions.ChangeMailTransaction;
+import TransactionApplication.Transaction;
+import TransactionApplication.TransactionSource;
+
/**
* Created by k2works on 2017/04/10.
*/
@@ -32,7 +55,7 @@ public class TextParserTransactionSource extends TransactionSource {
} else if (transactionName.equals("DelEmp")) {
int empId = Integer.parseInt(line.get(1));
t = new DeleteEmployeeTransaction(empId);
- } else if (transactionName.equals("ServiceCharge")) {
+ } else if (transactionName.equals("Affiliations.ServiceCharge")) {
int memberId = Integer.parseInt(line.get(1));
Calendar date = Calendar.getInstance();
date.setTime(new SimpleDateFormat("yyyy/MM/dd").parse(line.get(2)));
@@ -122,8 +145,8 @@ public class TextParserTransactionSource extends TransactionSource {
t = new AddSalariedEmployee(empId, line.get(2), line.get(3), salary);
} else if (line.get(4).equals("C")) {
double salary = Double.parseDouble(line.get(5));
- double commisionRate = Double.parseDouble(line.get(6));
- t = new AddCommissionedEmployee(empId, line.get(2), line.get(3), salary, commisionRate);
+ double commissionRate = Double.parseDouble(line.get(6));
+ t = new AddCommissionedEmployee(empId, line.get(2), line.get(3), salary, commissionRate);
}
return t;
}
diff --git a/src/main/java/Transaction.java b/src/main/java/TransactionApplication/Transaction.java
similarity index 74%
rename from src/main/java/Transaction.java
rename to src/main/java/TransactionApplication/Transaction.java
index c8b1c7c..67b6aa6 100644
--- a/src/main/java/Transaction.java
+++ b/src/main/java/TransactionApplication/Transaction.java
@@ -1,3 +1,5 @@
+package TransactionApplication;
+
/**
* Created by k2works on 2017/04/06.
*/
diff --git a/src/main/java/TransactionApplication.java b/src/main/java/TransactionApplication/TransactionApplication.java
similarity index 63%
rename from src/main/java/TransactionApplication.java
rename to src/main/java/TransactionApplication/TransactionApplication.java
index 2908221..0002121 100644
--- a/src/main/java/TransactionApplication.java
+++ b/src/main/java/TransactionApplication/TransactionApplication.java
@@ -1,3 +1,7 @@
+package TransactionApplication;
+
+import Application.Application;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/main/java/TransactionSource.java b/src/main/java/TransactionApplication/TransactionSource.java
similarity index 83%
rename from src/main/java/TransactionSource.java
rename to src/main/java/TransactionApplication/TransactionSource.java
index bc34478..b181050 100644
--- a/src/main/java/TransactionSource.java
+++ b/src/main/java/TransactionApplication/TransactionSource.java
@@ -1,3 +1,5 @@
+package TransactionApplication;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/test/java/Main.java b/src/test/java/Main.java
index 9594267..e839b85 100644
--- a/src/test/java/Main.java
+++ b/src/test/java/Main.java
@@ -1,6 +1,15 @@
import java.util.Calendar;
import java.util.GregorianCalendar;
+import Application.Application;
+import Classifications.HourlyClassification;
+import Classifications.TimeCard;
+import PayrollApplication.PayrollApplication;
+import PayrollDatabase.GlobalDatabase;
+import PayrollDatabaseImplementation.PayrollDatabaseImplementation;
+import PayrollDomain.Employee;
+import PayrollDomain.PaymentClassification;
+
/**
* Created by k2works on 2017/04/10.
*/
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 93cb08b..6cfc00f 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -3,6 +3,19 @@ import junit.framework.TestCase;
import java.util.Calendar;
import java.util.GregorianCalendar;
+import AffiliationTransactions.*;
+import Affiliations.*;
+import ClassificationTransactions.*;
+import Classifications.*;
+import GeneralTransactions.*;
+import MethodTransactions.*;
+import Methods.*;
+import PayrollDatabase.*;
+import PayrollDatabaseImplementation.*;
+import PayrollDomain.*;
+import Schedules.*;
+
+
/**
* Created by k2works on 2017/04/06.
*/
@@ -472,7 +485,7 @@ public class TestPayroll extends TestCase{
assertEquals(pc.GetPayPeriodEndDate(), payDate);
assertEquals(1000.0,pc.GetGrossPay());
assertEquals("Hold", pc.GetField("Disposition"));
- assertEquals(fridays * 9.42, pc.GetDeducations());
+ assertEquals(fridays * 9.42, pc.GetDeductions());
assertEquals(1000.0 - fridays * 9.42, pc.GetNetPay());
}
@@ -494,7 +507,7 @@ public class TestPayroll extends TestCase{
assertEquals(pc.GetPayPeriodEndDate(),payDate);
assertEquals(8 * 15.24, pc.GetGrossPay());
assertEquals("Hold", pc.GetField("Disposition"));
- assertEquals(9.42, pc.GetDeducations());
+ assertEquals(9.42, pc.GetDeductions());
assertEquals(8 * 15.24 - 9.42, pc.GetNetPay());
}
@@ -514,7 +527,7 @@ public class TestPayroll extends TestCase{
assertEquals(pc.GetPayPeriodEndDate(),payDate);
assertEquals(2500.0, pc.GetGrossPay());
assertEquals("Hold", pc.GetField("Disposition"));
- assertEquals(2 * 9.42, pc.GetDeducations());
+ assertEquals(2 * 9.42, pc.GetDeductions());
assertEquals(2500.0 - 2 * 9.42, pc.GetNetPay());
}
@@ -538,7 +551,7 @@ public class TestPayroll extends TestCase{
assertEquals(pc.GetPayPeriodEndDate(), payDate);
assertEquals(8 * 15.24, pc.GetGrossPay());
assertEquals("Hold", pc.GetField("Disposition"));
- assertEquals(9.42 + 19.42, pc.GetDeducations());
+ assertEquals(9.42 + 19.42, pc.GetDeductions());
assertEquals(8 * 15.24 - (9.42 + 19.42), pc.GetNetPay());
}
@@ -570,7 +583,7 @@ public class TestPayroll extends TestCase{
assertEquals(pc.GetPayPeriodEndDate(), payDate);
assertEquals(8 * 15.24, pc.GetGrossPay());
assertEquals("Hold", pc.GetField("Disposition"));
- assertEquals(9.42 + 19.42, pc.GetDeducations());
+ assertEquals(9.42 + 19.42, pc.GetDeductions());
assertEquals(8 * 15.24 - (9.42 + 19.42), pc.GetNetPay());
}
@@ -580,7 +593,7 @@ public class TestPayroll extends TestCase{
assertEquals(pc.GetPayPeriodEndDate(), payDate);
assertEquals(pay, pc.GetGrossPay());
assertEquals("Hold", pc.GetField("Disposition"));
- assertEquals(0.0, pc.GetDeducations());
+ assertEquals(0.0, pc.GetDeductions());
assertEquals(pay, pc.GetNetPay());
}
}
\ No newline at end of file
コミット: 7332a49¶
メッセージ¶
メインプログラムとデータベース
変更されたファイル¶
- A META-INF/AddEmp.txt
- A META-INF/ChgEmp.txt
- A META-INF/DelEmp.txt
- A META-INF/Main.txt
- A META-INF/SalesRecipt.txt
- A META-INF/ServiceCharge.txt
- A META-INF/TimeCard.txt
- M src/main/java/AddEmployeeTransaction.java
- A src/main/java/Application.java
- M src/main/java/ChangeEmployeeTransaction.java
- M src/main/java/ChangeMemberTransaction.java
- M src/main/java/ChangeUnaffiliatedTransaction.java
- M src/main/java/DeleteEmployeeTransaction.java
- A src/main/java/GlobalDatabase.java
- M src/main/java/PaydayTransaction.java
- A src/main/java/PayrollApplication.java
- M src/main/java/PayrollDatabase.java
- A src/main/java/PayrollDatabaseImplementation.java
- M src/main/java/SalesReceiptTransaction.java
- M src/main/java/ServiceChargeTransaction.java
- A src/main/java/TextParserTransactionSource.java
- M src/main/java/TimeCardTransaction.java
- A src/main/java/TransactionApplication.java
- A src/main/java/TransactionSource.java
- A src/test/java/Main.java
- M src/test/java/TestPayroll.java
変更内容¶
commit 7332a4999ef32b1e96f06537ad68dfa5be923b7d
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 15:20:59 2017 +0900
メインプログラムとデータベース
diff --git a/META-INF/AddEmp.txt b/META-INF/AddEmp.txt
new file mode 100644
index 0000000..0e8ab1b
--- /dev/null
+++ b/META-INF/AddEmp.txt
@@ -0,0 +1,3 @@
+AddEmp 1 "Bob" "Home" S 1000.00
+AddEmp 2 "Bill" "Home" H 15.25
+AddEmp 3 "Lance" "Home" C 2500.0 3.2
\ No newline at end of file
diff --git a/META-INF/ChgEmp.txt b/META-INF/ChgEmp.txt
new file mode 100644
index 0000000..36e146f
--- /dev/null
+++ b/META-INF/ChgEmp.txt
@@ -0,0 +1,2 @@
+ChgEmp 2 Name "Lance"
+ChgEmp 3 Address "Second Home"
\ No newline at end of file
diff --git a/META-INF/DelEmp.txt b/META-INF/DelEmp.txt
new file mode 100644
index 0000000..a04f7ee
--- /dev/null
+++ b/META-INF/DelEmp.txt
@@ -0,0 +1 @@
+DelEmp 1
\ No newline at end of file
diff --git a/META-INF/Main.txt b/META-INF/Main.txt
new file mode 100644
index 0000000..5104442
--- /dev/null
+++ b/META-INF/Main.txt
@@ -0,0 +1,2 @@
+AddEmp 2 "Bill" "Home" H 15.25
+TimeCard 2 2001/10/31 8.0
\ No newline at end of file
diff --git a/META-INF/SalesRecipt.txt b/META-INF/SalesRecipt.txt
new file mode 100644
index 0000000..5bd5fab
--- /dev/null
+++ b/META-INF/SalesRecipt.txt
@@ -0,0 +1 @@
+SalesReceipt 3 2001/11/12 25000
\ No newline at end of file
diff --git a/META-INF/ServiceCharge.txt b/META-INF/ServiceCharge.txt
new file mode 100644
index 0000000..88e1c7a
--- /dev/null
+++ b/META-INF/ServiceCharge.txt
@@ -0,0 +1 @@
+ServiceCharge 86 2001/10/31 12.95
\ No newline at end of file
diff --git a/META-INF/TimeCard.txt b/META-INF/TimeCard.txt
new file mode 100644
index 0000000..a24d6ab
--- /dev/null
+++ b/META-INF/TimeCard.txt
@@ -0,0 +1 @@
+TimeCard 2 2001/10/31 8.0
\ No newline at end of file
diff --git a/src/main/java/AddEmployeeTransaction.java b/src/main/java/AddEmployeeTransaction.java
index 33b5ecf..fea788b 100644
--- a/src/main/java/AddEmployeeTransaction.java
+++ b/src/main/java/AddEmployeeTransaction.java
@@ -20,7 +20,7 @@ public abstract class AddEmployeeTransaction implements Transaction {
e.SetClassification(pc);
e.SetSchedule(ps);
e.SetMethod(pm);
- PayrollDatabase.AddEmployee(itsEmpId, e);
+ GlobalDatabase.payrollDB.AddEmployee(itsEmpId, e);
}
abstract PaymentSchedule GetSchedule();
diff --git a/src/main/java/Application.java b/src/main/java/Application.java
new file mode 100644
index 0000000..a0695ef
--- /dev/null
+++ b/src/main/java/Application.java
@@ -0,0 +1,6 @@
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public abstract class Application {
+ public abstract void SetSource(String source);
+}
diff --git a/src/main/java/ChangeEmployeeTransaction.java b/src/main/java/ChangeEmployeeTransaction.java
index 37ece54..ce881bc 100644
--- a/src/main/java/ChangeEmployeeTransaction.java
+++ b/src/main/java/ChangeEmployeeTransaction.java
@@ -9,7 +9,7 @@ public abstract class ChangeEmployeeTransaction implements Transaction {
}
public void Execute() {
- Employee e = PayrollDatabase.GetEmployee(itsEmpId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(itsEmpId);
if (e != null) {
Change(e);
}
diff --git a/src/main/java/ChangeMemberTransaction.java b/src/main/java/ChangeMemberTransaction.java
index 3229e24..4e6d6b5 100644
--- a/src/main/java/ChangeMemberTransaction.java
+++ b/src/main/java/ChangeMemberTransaction.java
@@ -16,6 +16,6 @@ public class ChangeMemberTransaction extends ChangeAffiliationTransaction {
}
void RecordMembership(Employee e) {
- PayrollDatabase.AddUnionMember(itsMemberId, e);
+ GlobalDatabase.payrollDB.AddUnionMember(itsMemberId, e);
}
}
diff --git a/src/main/java/ChangeUnaffiliatedTransaction.java b/src/main/java/ChangeUnaffiliatedTransaction.java
index b7f81ea..bcecdfd 100644
--- a/src/main/java/ChangeUnaffiliatedTransaction.java
+++ b/src/main/java/ChangeUnaffiliatedTransaction.java
@@ -15,7 +15,7 @@ public class ChangeUnaffiliatedTransaction extends ChangeAffiliationTransaction
if (af instanceof UnionAffiliation) {
UnionAffiliation uf = (UnionAffiliation) af;
int memberId = uf.GetMemberId();
- PayrollDatabase.RemoveUnionMember(memberId);
+ GlobalDatabase.payrollDB.RemoveUnionMember(memberId);
}
}
}
diff --git a/src/main/java/DeleteEmployeeTransaction.java b/src/main/java/DeleteEmployeeTransaction.java
index da66810..d117d32 100644
--- a/src/main/java/DeleteEmployeeTransaction.java
+++ b/src/main/java/DeleteEmployeeTransaction.java
@@ -8,6 +8,6 @@ public class DeleteEmployeeTransaction implements Transaction {
}
public void Execute() {
- PayrollDatabase.DeleteEmployee(itsEmpId);
+ GlobalDatabase.payrollDB.DeleteEmployee(itsEmpId);
}
}
diff --git a/src/main/java/GlobalDatabase.java b/src/main/java/GlobalDatabase.java
new file mode 100644
index 0000000..a932039
--- /dev/null
+++ b/src/main/java/GlobalDatabase.java
@@ -0,0 +1,6 @@
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public class GlobalDatabase {
+ public static PayrollDatabase payrollDB;
+}
diff --git a/src/main/java/PaydayTransaction.java b/src/main/java/PaydayTransaction.java
index 1d6c03a..d7b5b77 100644
--- a/src/main/java/PaydayTransaction.java
+++ b/src/main/java/PaydayTransaction.java
@@ -15,9 +15,9 @@ public class PaydayTransaction implements Transaction {
}
public void Execute() {
- List<Integer> empIds = PayrollDatabase.GetAllEmployeeIds();
+ List<Integer> empIds = GlobalDatabase.payrollDB.GetAllEmployeeIds();
for(int empId : empIds) {
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
if(e.IsPayDate(itsPayDate)) {
Paycheck pc = new Paycheck(e.GetPayPeriodStartDate(itsPayDate),itsPayDate);
itsPaychecks.put(empId, pc);
diff --git a/src/main/java/PayrollApplication.java b/src/main/java/PayrollApplication.java
new file mode 100644
index 0000000..531460f
--- /dev/null
+++ b/src/main/java/PayrollApplication.java
@@ -0,0 +1,15 @@
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public class PayrollApplication extends TransactionApplication {
+ private TransactionSource transactionSource;
+
+ public PayrollApplication() {
+ transactionSource = new TextParserTransactionSource();
+ }
+
+ public void SetSource(String source) {
+ transactionSource.SetSource(source);
+ transactionSource.Execute();
+ }
+}
diff --git a/src/main/java/PayrollDatabase.java b/src/main/java/PayrollDatabase.java
index 24f3a66..52574c1 100644
--- a/src/main/java/PayrollDatabase.java
+++ b/src/main/java/PayrollDatabase.java
@@ -6,35 +6,20 @@ import java.util.Map;
/**
* Created by k2works on 2017/04/06.
*/
-class PayrollDatabase {
- private static Map<Integer, Employee> itsEmployees = new HashMap<Integer, Employee>();
- private static Map<Integer, Employee> itsUnionMembers = new HashMap<Integer, Employee>();
+public interface PayrollDatabase {
+ public void AddEmployee(int empId, Employee e);
- public static void AddEmployee(int empId, Employee e) {
- itsEmployees.put(empId, e);
- }
+ public Employee GetEmployee(int empId);
- public static Employee GetEmployee(int empId) {
- return itsEmployees.get(empId);
- }
+ public void Clear();
- public static void DeleteEmployee(int empId) {
- itsEmployees.remove(empId);
- }
+ public void DeleteEmployee(int empId);
- public static void AddUnionMember(int memberId, Employee e) {
- itsUnionMembers.put(memberId, e);
- }
+ public void AddUnionMember(int memberId, Employee e);
- public static Employee GetUnionMbember(int memberId) {
- return itsUnionMembers.get(memberId);
- }
+ public Employee GetUnionMember(int memberId);
- public static void RemoveUnionMember(int memberId) {
- itsUnionMembers.remove(memberId);
- }
+ public void RemoveUnionMember(int memberId);
- public static List<Integer> GetAllEmployeeIds() {
- return new ArrayList<Integer>(itsEmployees.keySet());
- }
+ public List<Integer> GetAllEmployeeIds();
}
diff --git a/src/main/java/PayrollDatabaseImplementation.java b/src/main/java/PayrollDatabaseImplementation.java
new file mode 100644
index 0000000..47e451e
--- /dev/null
+++ b/src/main/java/PayrollDatabaseImplementation.java
@@ -0,0 +1,45 @@
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public class PayrollDatabaseImplementation implements PayrollDatabase {
+ private static Map<Integer, Employee> itsEmployees = new HashMap<Integer, Employee>();
+ private static Map<Integer, Employee> itsUnionMembers = new HashMap<Integer, Employee>();
+
+ public void AddEmployee(int empId, Employee e) {
+ itsEmployees.put(empId, e);
+ }
+
+ public Employee GetEmployee(int empId) {
+ return itsEmployees.get(empId);
+ }
+
+ public void Clear() {
+ itsEmployees.clear();
+ itsUnionMembers.clear();
+ }
+
+ public void DeleteEmployee(int empId) {
+ itsEmployees.remove(empId);
+ }
+
+ public void AddUnionMember(int memberId, Employee e) {
+ itsUnionMembers.put(memberId, e);
+ }
+
+ public Employee GetUnionMember(int memberId) {
+ return itsUnionMembers.get(memberId);
+ }
+
+ public void RemoveUnionMember(int memberId) {
+ itsUnionMembers.remove(memberId);
+ }
+
+ public List<Integer> GetAllEmployeeIds() {
+ return new ArrayList<Integer>(itsEmployees.keySet());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/SalesReceiptTransaction.java b/src/main/java/SalesReceiptTransaction.java
index d747197..0eae104 100644
--- a/src/main/java/SalesReceiptTransaction.java
+++ b/src/main/java/SalesReceiptTransaction.java
@@ -15,7 +15,7 @@ public class SalesReceiptTransaction implements Transaction {
}
public void Execute() {
- Employee e = PayrollDatabase.GetEmployee(itsEmpId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(itsEmpId);
if (e != null) {
PaymentClassification pc = e.GetClassification();
if (pc instanceof CommissionedClassification) {
diff --git a/src/main/java/ServiceChargeTransaction.java b/src/main/java/ServiceChargeTransaction.java
index 8612128..8b0bfe4 100644
--- a/src/main/java/ServiceChargeTransaction.java
+++ b/src/main/java/ServiceChargeTransaction.java
@@ -15,7 +15,7 @@ public class ServiceChargeTransaction implements Transaction {
}
public void Execute() {
- Employee e = PayrollDatabase.GetUnionMbember(itsMemberId);
+ Employee e = GlobalDatabase.payrollDB.GetUnionMember(itsMemberId);
Affiliation af = e.GetAffiliation();
if (af instanceof UnionAffiliation) {
UnionAffiliation uaf = (UnionAffiliation) af;
diff --git a/src/main/java/TextParserTransactionSource.java b/src/main/java/TextParserTransactionSource.java
new file mode 100644
index 0000000..92e43f9
--- /dev/null
+++ b/src/main/java/TextParserTransactionSource.java
@@ -0,0 +1,169 @@
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public class TextParserTransactionSource extends TransactionSource {
+ public String itsSource;
+
+ public void Execute() {
+ parse();
+ }
+
+ private void lineExecute(List<String> line) throws ParseException {
+ if (line.size() < 1) {
+ System.err.println("Read Line Error");
+ return;
+ }
+ Transaction t = null;
+ String transactionName = line.get(0);
+ if (transactionName.equals("AddEmp")) {
+ t = AddEmp(line);
+ } else if (transactionName.equals("ChgEmp")) {
+ t = ChgEmp(line);
+ } else if (transactionName.equals("DelEmp")) {
+ int empId = Integer.parseInt(line.get(1));
+ t = new DeleteEmployeeTransaction(empId);
+ } else if (transactionName.equals("ServiceCharge")) {
+ int memberId = Integer.parseInt(line.get(1));
+ Calendar date = Calendar.getInstance();
+ date.setTime(new SimpleDateFormat("yyyy/MM/dd").parse(line.get(2)));
+ double amount = Double.parseDouble(line.get(2));
+ t = new ServiceChargeTransaction(memberId, date, amount);
+ } else if (transactionName.equals("SalesReceipt")) {
+ int empId = Integer.parseInt(line.get(1));
+ Calendar date = Calendar.getInstance();
+ date.setTime(new SimpleDateFormat("yyyy/MM/dd").parse(line.get(2)));
+ double amount = Double.parseDouble(line.get(3));
+ t = new SalesReceiptTransaction(date, amount, empId);
+ } else if (transactionName.equals("TimeCard")) {
+ int empId = Integer.parseInt(line.get(1));
+ Calendar date = Calendar.getInstance();
+ date.setTime(new SimpleDateFormat("yyyy/MM/dd").parse(line.get(2)));
+ double hours = Double.parseDouble(line.get(3));
+ t = new TimeCardTransaction(date, hours, empId);
+ } else if (transactionName.equals("Payday")) {
+ Calendar payDate = Calendar.getInstance();
+ payDate.setTime(new SimpleDateFormat("yyyy/MM/dd").parse(line.get(1)));
+ t = new PaydayTransaction(payDate);
+ }
+ if (t != null) {
+ t.Execute();
+ }
+ }
+
+ public void SetSource(String source) {
+ itsSource = source;
+ }
+
+
+ private void parse() {
+ if (itsSource == null) {
+ System.err.println("Not set Source File");
+ } else {
+ try {
+ BufferedReader br = new BufferedReader(new FileReader(itsSource));
+ String line = null;
+ while((line = br.readLine()) != null) {
+ String[] lineStrs = line.split(" ");
+ List<String> lineList = new ArrayList<String>();
+ boolean doublequoteFlag = false;
+ StringBuilder sb = null;
+ for(String str : lineStrs) {
+ if(doublequoteFlag) {
+ sb.append(" " + str);
+ if(str.endsWith("\"")) {
+ lineList.add(sb.toString());
+ doublequoteFlag = false;
+ }
+ } else {
+ if(str.startsWith("\"") && str.endsWith("\"") == false) {
+ sb = new StringBuilder(str);
+ doublequoteFlag = true;
+ } else {
+ lineList.add(str);
+ }
+ }
+ }
+ //System.out.println(lineList);
+ lineExecute(lineList);
+ }
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+ }
+
+
+ public Transaction AddEmp(List<String> line) {
+ Transaction t = null;
+ int empId = Integer.parseInt(line.get(1));
+ if (line.get(4).equals("H")) {
+ double hourlyRate = Double.parseDouble(line.get(5));
+ t = new AddHourlyEmployee(empId, line.get(2), line.get(3), hourlyRate);
+ } else if (line.get(4).equals("S")) {
+ double salary = Double.parseDouble(line.get(5));
+ t = new AddSalariedEmployee(empId, line.get(2), line.get(3), salary);
+ } else if (line.get(4).equals("C")) {
+ double salary = Double.parseDouble(line.get(5));
+ double commisionRate = Double.parseDouble(line.get(6));
+ t = new AddCommissionedEmployee(empId, line.get(2), line.get(3), salary, commisionRate);
+ }
+ return t;
+ }
+
+ public Transaction ChgEmp(List<String> line) {
+ Transaction t = null;
+ int empId = Integer.parseInt(line.get(1));
+ String changeInfo = line.get(2);
+ if (changeInfo.equals("Name")) {
+ String name = line.get(3);
+ t = new ChangeNameTransaction(empId, name);
+ } else if (changeInfo.equals("Address")) {
+ String address = line.get(3);
+ t = new ChangeAddressTransaction(empId, address);
+ } else if (changeInfo.equals("Hourly")) {
+ double hourly = Double.parseDouble(line.get(3));
+ t = new ChangeHourlyTransaction(empId, hourly);
+ } else if (changeInfo.equals("Salaried")) {
+ double salary = Double.parseDouble(line.get(3));
+ t = new ChangeSalariedTransaction(empId, salary);
+ } else if (changeInfo.equals("Commissioned")) {
+ double salary = Double.parseDouble(line.get(3));
+ double rate = Double.parseDouble(line.get(4));
+ t = new ChangeCommissionedTransaction(empId, salary, rate);
+ } else if (changeInfo.equals("Hold")) {
+ t = new ChangeHoldTransaction(empId);
+ } else if (changeInfo.equals("Direct")) {
+ String bank = line.get(3);
+ String account = line.get(4);
+ t = new ChangeDirectTransaction(empId, bank, account);
+ } else if (changeInfo.equals("Mail")) {
+ String address = line.get(3);
+ t = new ChangeMailTransaction(0, address);
+ } else if (changeInfo.equals("Member")) {
+ int memberId = Integer.parseInt(line.get(3));
+ double dues = Double.parseDouble(line.get(5));
+ t = new ChangeMemberTransaction(empId, memberId, dues);
+ } else if (changeInfo.equals("NoMember")) {
+ t = new ChangeUnaffiliatedTransaction(empId);
+ }
+ return t;
+ }
+}
diff --git a/src/main/java/TimeCardTransaction.java b/src/main/java/TimeCardTransaction.java
index 81e5568..6823042 100644
--- a/src/main/java/TimeCardTransaction.java
+++ b/src/main/java/TimeCardTransaction.java
@@ -15,7 +15,7 @@ public class TimeCardTransaction implements Transaction {
}
public void Execute() {
- Employee e = PayrollDatabase.GetEmployee(itsEmpId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(itsEmpId);
if (e != null) {
PaymentClassification pc = e.GetClassification();
if (pc instanceof HourlyClassification) {
diff --git a/src/main/java/TransactionApplication.java b/src/main/java/TransactionApplication.java
new file mode 100644
index 0000000..2908221
--- /dev/null
+++ b/src/main/java/TransactionApplication.java
@@ -0,0 +1,5 @@
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public abstract class TransactionApplication extends Application {
+}
diff --git a/src/main/java/TransactionSource.java b/src/main/java/TransactionSource.java
new file mode 100644
index 0000000..bc34478
--- /dev/null
+++ b/src/main/java/TransactionSource.java
@@ -0,0 +1,6 @@
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public abstract class TransactionSource implements Transaction {
+ public abstract void SetSource(String source);
+}
diff --git a/src/test/java/Main.java b/src/test/java/Main.java
new file mode 100644
index 0000000..9594267
--- /dev/null
+++ b/src/test/java/Main.java
@@ -0,0 +1,20 @@
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+ * Created by k2works on 2017/04/10.
+ */
+public class Main {
+ public static void main(String[] args) {
+ GlobalDatabase.payrollDB = new PayrollDatabaseImplementation();
+ Application application = new PayrollApplication();
+ application.SetSource("META-INF/Main.txt");
+ Calendar date = new GregorianCalendar(2001, Calendar.OCTOBER, 31);
+ int empId = 2;
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
+ PaymentClassification pc = e.GetClassification();
+ HourlyClassification hc = (HourlyClassification) pc;
+ TimeCard tc = hc.GetTimeCard(date);
+ System.out.println(tc.GetHours());
+ }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 268e7b6..93cb08b 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -12,7 +12,7 @@ public class TestPayroll extends TestCase{
int empId = 1;
AddSalariedEmployee t = new AddSalariedEmployee(empId, "Bob", "Home", 1000.00);
t.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
assertEquals("Bob", e.GetName());
PaymentClassification pc = e.GetClassification();
@@ -32,7 +32,7 @@ public class TestPayroll extends TestCase{
int empId = 2;
AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
t.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
assertEquals("Bill", e.GetName());
PaymentClassification pc = e.GetClassification();
@@ -52,7 +52,7 @@ public class TestPayroll extends TestCase{
int empId = 1;
AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500.0, 3.2);
t.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
assertEquals("Lance", e.GetName());
PaymentClassification pc = e.GetClassification();
@@ -73,11 +73,11 @@ public class TestPayroll extends TestCase{
int empId = 3;
AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance","Home",2500,3.2);
t.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
DeleteEmployeeTransaction dt = new DeleteEmployeeTransaction(empId);
dt.Execute();
- e = PayrollDatabase.GetEmployee(empId);
+ e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNull(e);
}
@@ -89,7 +89,7 @@ public class TestPayroll extends TestCase{
Calendar date = new GregorianCalendar(2001, Calendar.OCTOBER, 31);
TimeCardTransaction tct = new TimeCardTransaction(date,8.0,empId);
tct.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
HourlyClassification hc = (HourlyClassification) pc;
@@ -107,7 +107,7 @@ public class TestPayroll extends TestCase{
Calendar date = new GregorianCalendar(2001, Calendar.NOVEMBER, 12);
SalesReceiptTransaction srt = new SalesReceiptTransaction(date, 25000, empId);
srt.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
CommissionedClassification cc = (CommissionedClassification) pc;
@@ -125,12 +125,12 @@ public class TestPayroll extends TestCase{
Calendar date = new GregorianCalendar(2001, Calendar.OCTOBER, 31);
TimeCardTransaction tct = new TimeCardTransaction(date,8.0, empId);
tct.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
Affiliation af = new UnionAffiliation(12.5);
e.SetAffiliation(af);
int memberId = 86;
- PayrollDatabase.AddUnionMember(memberId,e);
+ GlobalDatabase.payrollDB.AddUnionMember(memberId,e);
ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, date, 12.95);
sct.Execute();
double sc = af.GetServiceCharge(date);
@@ -144,7 +144,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeNameTransaction cnt = new ChangeNameTransaction(empId, "Bob");
cnt.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
assertEquals("Bob", e.GetName());
}
@@ -156,7 +156,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeAddressTransaction cat = new ChangeAddressTransaction(empId, "Second Home");
cat.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
assertEquals("Second Home", e.GetAddress());
}
@@ -168,7 +168,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeHourlyTransaction cht = new ChangeHourlyTransaction(empId, 27.52);
cht.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
assertNotNull(pc);
@@ -187,7 +187,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeSalariedTransaction cst = new ChangeSalariedTransaction(empId, 25000);
cst.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
assertNotNull(pc);
@@ -206,7 +206,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeCommissionedTransaction cct = new ChangeCommissionedTransaction(empId, 25000, 4.5);
cct.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
assertNotNull(pc);
@@ -226,7 +226,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeMailTransaction cmt = new ChangeMailTransaction(empId, "4080 El Cerrito Road");
cmt.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentMethod pm = e.GetMethod();
assertNotNull(pm);
@@ -242,7 +242,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeDirectTransaction cdt = new ChangeDirectTransaction(empId, "FirstNational", "1058209");
cdt.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentMethod pm = e.GetMethod();
assertNotNull(pm);
@@ -259,7 +259,7 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeHoldTransaction cht = new ChangeHoldTransaction(empId);
cht.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
PaymentMethod pm = e.GetMethod();
assertNotNull(pm);
@@ -275,14 +275,14 @@ public class TestPayroll extends TestCase{
t.Execute();
ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 99.42);
cmt.Execute();
- Employee e = PayrollDatabase.GetEmployee(empId);
+ Employee e = GlobalDatabase.payrollDB.GetEmployee(empId);
assertNotNull(e);
Affiliation af = e.GetAffiliation();
assertNotNull(af);
UnionAffiliation uf = (UnionAffiliation) af;
assertNotNull(uf);
assertEquals(99.42, uf.GetDues());
- Employee member = PayrollDatabase.GetUnionMbember(memberId);
+ Employee member = GlobalDatabase.payrollDB.GetUnionMember(memberId);
assertNotNull(member);
assertEquals(e,member);
}
コミット: ca7a48f¶
メッセージ¶
給与対象期間:設計上の問題
・TestServiceChargesSpanningMultiplePayPeriods
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit ca7a48fec2fe0517d3293b3b1b0204743202410e
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 13:19:19 2017 +0900
給与対象期間:設計上の問題
・TestServiceChargesSpanningMultiplePayPeriods
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 29610d1..268e7b6 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -542,6 +542,38 @@ public class TestPayroll extends TestCase{
assertEquals(8 * 15.24 - (9.42 + 19.42), pc.GetNetPay());
}
+ public void testServiceChargesSpanningMultiplePayPeriods() {
+ System.err.println("TestServiceChargesSpanningMultiplePayPeriods");
+ int empId = 1;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.24);
+ t.Execute();
+ int memberId = 7734;
+ ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 9.42);
+ cmt.Execute();
+ Calendar earlyDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 2); // Previous
+ // Friday
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ Calendar lateDate = new GregorianCalendar(2001, Calendar.DECEMBER, 16); // Next
+ // Friday
+ ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, payDate, 19.42);
+ sct.Execute();
+ ServiceChargeTransaction sctEarly = new ServiceChargeTransaction(memberId, earlyDate, 100.00);
+ sctEarly.Execute();
+ ServiceChargeTransaction sctLate = new ServiceChargeTransaction(memberId, lateDate, 200.00);
+ sctLate.Execute();
+ TimeCardTransaction tct = new TimeCardTransaction(payDate, 8.0, empId);
+ tct.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ Paycheck pc = pt.GetPaycheck(empId);
+ assertNotNull(pc);
+ assertEquals(pc.GetPayPeriodEndDate(), payDate);
+ assertEquals(8 * 15.24, pc.GetGrossPay());
+ assertEquals("Hold", pc.GetField("Disposition"));
+ assertEquals(9.42 + 19.42, pc.GetDeducations());
+ assertEquals(8 * 15.24 - (9.42 + 19.42), pc.GetNetPay());
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: f74da67¶
メッセージ¶
給与対象期間:設計上の問題
・TestHourlyUnionMemberServiceCharge
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit f74da67f1f603d44ad60dcb27aecfb083b1dd5bd
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 13:03:20 2017 +0900
給与対象期間:設計上の問題
・TestHourlyUnionMemberServiceCharge
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 9281adb..29610d1 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -518,6 +518,30 @@ public class TestPayroll extends TestCase{
assertEquals(2500.0 - 2 * 9.42, pc.GetNetPay());
}
+ public void testHourlyUnionMemberServiceCharge() {
+ System.err.println("TestHourlyUnionMemberServiceCharge");
+ int empId = 1;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.24);
+ t.Execute();
+ int memberId = 7734;
+ ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 9.42);
+ cmt.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER,9);
+ ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, payDate, 19.42);
+ sct.Execute();
+ TimeCardTransaction tct = new TimeCardTransaction(payDate,8.0,empId);
+ tct.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ Paycheck pc = pt.GetPaycheck(empId);
+ assertNotNull(pc);
+ assertEquals(pc.GetPayPeriodEndDate(), payDate);
+ assertEquals(8 * 15.24, pc.GetGrossPay());
+ assertEquals("Hold", pc.GetField("Disposition"));
+ assertEquals(9.42 + 19.42, pc.GetDeducations());
+ assertEquals(8 * 15.24 - (9.42 + 19.42), pc.GetNetPay());
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: 2019ea6¶
メッセージ¶
給与対象期間:設計上の問題
・TestCommissionedUnionMemberDues
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit 2019ea67d66a2ffaba69fa564f61dc08aad4908f
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 12:36:07 2017 +0900
給与対象期間:設計上の問題
・TestCommissionedUnionMemberDues
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index a133e0f..9281adb 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -498,6 +498,26 @@ public class TestPayroll extends TestCase{
assertEquals(8 * 15.24 - 9.42, pc.GetNetPay());
}
+ public void testCommissionedUnionMemberDues() {
+ System.err.println("TestCommissionedUnionMemberDues");
+ int empId = 3;
+ AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500,.032);
+ t.Execute();
+ int memberId = 7734;
+ ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 9.42);
+ cmt.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ Paycheck pc = pt.GetPaycheck(empId);
+ assertNotNull(pc);
+ assertEquals(pc.GetPayPeriodEndDate(),payDate);
+ assertEquals(2500.0, pc.GetGrossPay());
+ assertEquals("Hold", pc.GetField("Disposition"));
+ assertEquals(2 * 9.42, pc.GetDeducations());
+ assertEquals(2500.0 - 2 * 9.42, pc.GetNetPay());
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: b5f1d97¶
メッセージ¶
給与対象期間:設計上の問題
・TestHourlyUnionMemberDues
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit b5f1d97d2ac939707c32c035cc3b636d00b7f78f
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 12:26:13 2017 +0900
給与対象期間:設計上の問題
・TestHourlyUnionMemberDues
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index a1722ff..a133e0f 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -476,6 +476,28 @@ public class TestPayroll extends TestCase{
assertEquals(1000.0 - fridays * 9.42, pc.GetNetPay());
}
+ public void testHourlyUnionMemberDues() {
+ System.err.println("TestHourlyUnionMemberDues");
+ int empId = 1;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill","Home",15.24);
+ t.Execute();
+ int memberId = 7734;
+ ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId,memberId,9.42);
+ cmt.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ TimeCardTransaction tct = new TimeCardTransaction(payDate, 8.0, empId);
+ tct.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ Paycheck pc = pt.GetPaycheck(empId);
+ assertNotNull(pc);
+ assertEquals(pc.GetPayPeriodEndDate(),payDate);
+ assertEquals(8 * 15.24, pc.GetGrossPay());
+ assertEquals("Hold", pc.GetField("Disposition"));
+ assertEquals(9.42, pc.GetDeducations());
+ assertEquals(8 * 15.24 - 9.42, pc.GetNetPay());
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: 0898e36¶
メッセージ¶
給与対象期間:設計上の問題
・TestSalariedUnionMemberDues
変更されたファイル¶
- M src/main/java/Affiliation.java
- M src/main/java/NoAffiliation.java
- M src/main/java/ServiceCharge.java
- M src/main/java/ServiceChargeTransaction.java
- M src/main/java/UnionAffiliation.java
- M src/test/java/TestPayroll.java
変更内容¶
commit 0898e3637a612cc0dfd31658c17cd5dd19460305
Author: k2works <kakimomokuri@gmail.com>
Date: Mon Apr 10 12:01:40 2017 +0900
給与対象期間:設計上の問題
・TestSalariedUnionMemberDues
diff --git a/src/main/java/Affiliation.java b/src/main/java/Affiliation.java
index 10834b3..eccbbd8 100644
--- a/src/main/java/Affiliation.java
+++ b/src/main/java/Affiliation.java
@@ -1,8 +1,10 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public interface Affiliation {
- double GetServiceCharge(long date);
+ double GetServiceCharge(Calendar date);
double CalculateDeductions(Paycheck pc);
}
diff --git a/src/main/java/NoAffiliation.java b/src/main/java/NoAffiliation.java
index c6263b3..6edc76f 100644
--- a/src/main/java/NoAffiliation.java
+++ b/src/main/java/NoAffiliation.java
@@ -1,8 +1,10 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/07.
*/
public class NoAffiliation implements Affiliation {
- public double GetServiceCharge(long date) {
+ public double GetServiceCharge(Calendar date) {
return 0;
}
diff --git a/src/main/java/ServiceCharge.java b/src/main/java/ServiceCharge.java
index 313a8c1..57bd559 100644
--- a/src/main/java/ServiceCharge.java
+++ b/src/main/java/ServiceCharge.java
@@ -1,16 +1,18 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public class ServiceCharge {
- private long itsDate;
+ private Calendar itsDate;
private double itsAmount;
- public ServiceCharge(long date, double amount) {
+ public ServiceCharge(Calendar date, double amount) {
itsDate = date;
itsAmount = amount;
}
- public long GetDate() {
+ public Calendar GetDate() {
return itsDate;
}
diff --git a/src/main/java/ServiceChargeTransaction.java b/src/main/java/ServiceChargeTransaction.java
index 058d09d..8612128 100644
--- a/src/main/java/ServiceChargeTransaction.java
+++ b/src/main/java/ServiceChargeTransaction.java
@@ -1,12 +1,14 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public class ServiceChargeTransaction implements Transaction {
private int itsMemberId;
- private long itsDate;
+ private Calendar itsDate;
private double itsAmount;
- public ServiceChargeTransaction(int memberId, long date, double amount) {
+ public ServiceChargeTransaction(int memberId, Calendar date, double amount) {
itsMemberId = memberId;
itsDate = date;
itsAmount = amount;
diff --git a/src/main/java/UnionAffiliation.java b/src/main/java/UnionAffiliation.java
index f3d5de1..4a633a3 100644
--- a/src/main/java/UnionAffiliation.java
+++ b/src/main/java/UnionAffiliation.java
@@ -1,3 +1,4 @@
+import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
@@ -5,7 +6,7 @@ import java.util.Map;
* Created by k2works on 2017/04/06.
*/
public class UnionAffiliation implements Affiliation {
- private Map<Long, ServiceCharge> itsServiceCharges = new HashMap<Long, ServiceCharge>();
+ private Map<Calendar, ServiceCharge> itsServiceCharges = new HashMap<Calendar, ServiceCharge>();
private int itsMemberId;
private double itsDues;
@@ -18,7 +19,7 @@ public class UnionAffiliation implements Affiliation {
itsDues = dues;
}
- public double GetServiceCharge(long date) {
+ public double GetServiceCharge(Calendar date) {
if (itsServiceCharges.get(date) == null) {
return 0;
}
@@ -26,10 +27,32 @@ public class UnionAffiliation implements Affiliation {
}
public double CalculateDeductions(Paycheck pc) {
- return 0;
+ double totalServiceCharge = 0;
+ double totalDues = 0;
+ for (ServiceCharge sc : itsServiceCharges.values()) {
+ if (Date.IsBetween(sc.GetDate(), pc.GetPayPeriodStartDate(),pc.GetPayPeriodEndDate())) {
+ totalServiceCharge += sc.GetAmount();
+ }
+ }
+ int fridays = NumberOfFridaysInPayPeriod(pc.GetPayPeriodStartDate(),pc.GetPayPeriodEndDate());
+ totalDues = itsDues * fridays;
+ return totalDues + totalServiceCharge;
+ }
+
+ private int NumberOfFridaysInPayPeriod(Calendar payPeriodStart, Calendar payPeriodEnd) {
+ int fridays = 0;
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(payPeriodStart.getTime());
+ while (cal.compareTo(payPeriodEnd) <= 0) {
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
+ fridays++;
+ }
+ cal.add(Calendar.DATE,1);
+ }
+ return fridays;
}
- public void AddServiceCharge(long date, double amount) {
+ public void AddServiceCharge(Calendar date, double amount) {
itsServiceCharges.put(date, new ServiceCharge(date, amount));
}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index a7192f2..a1722ff 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -131,9 +131,9 @@ public class TestPayroll extends TestCase{
e.SetAffiliation(af);
int memberId = 86;
PayrollDatabase.AddUnionMember(memberId,e);
- ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, 20011031, 12.95);
+ ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, date, 12.95);
sct.Execute();
- double sc = af.GetServiceCharge(20011031);
+ double sc = af.GetServiceCharge(date);
assertEquals(12.95, sc, .001);
}
@@ -455,6 +455,27 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId, payDate, 2500.0 + .032 * 13000);
}
+ public void testSalariedUnionMemberDues() {
+ System.err.println("TestSalariedUnionMemberDues");
+ int empId = 1;
+ AddSalariedEmployee t = new AddSalariedEmployee(empId, "Bob","Home",1000.0);
+ t.Execute();
+ int memberId = 7734;
+ ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId,9.42);
+ cmt.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 30);
+ int fridays = 5; // Fridays in Nov, 2001.
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ Paycheck pc = pt.GetPaycheck(empId);
+ assertNotNull(pc);
+ assertEquals(pc.GetPayPeriodEndDate(), payDate);
+ assertEquals(1000.0,pc.GetGrossPay());
+ assertEquals("Hold", pc.GetField("Disposition"));
+ assertEquals(fridays * 9.42, pc.GetDeducations());
+ assertEquals(1000.0 - fridays * 9.42, pc.GetNetPay());
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);