作業履歴 2017-04-08¶
概要¶
2017-04-08の作業内容をまとめています。
コミット: 1eeba72¶
メッセージ¶
時間給の従業員の給与
・testPaySingleCommissionedEmployeeSpanMultiplePayPeriods
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit 1eeba729e860fb187b35341f83f10d195deb382e
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 18:05:53 2017 +0900
時間給の従業員の給与
・testPaySingleCommissionedEmployeeSpanMultiplePayPeriods
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index b83e077..a7192f2 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -431,6 +431,30 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId, payDate, 2500.0 + .032 * 13000 + .032 * 24000);
}
+ public void testPaySingleCommissionedEmployeeSpanMultiplePayPeriods() {
+ System.err.println("testPaySingleCommissionedEmployeeSpanMultiplePayPeriods");
+ int empId = 3;
+ AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500, .032);
+ t.Execute();
+ Calendar earlyDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9); // Previous
+ // pay
+ // period
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 23); // Biweekly
+ // Friday
+ Calendar lateDate = new GregorianCalendar(2001, Calendar.DECEMBER, 7); // Next
+ // pay
+ // period
+ SalesReceiptTransaction srt = new SalesReceiptTransaction(payDate, 13000, empId);
+ srt.Execute();
+ SalesReceiptTransaction srt2 = new SalesReceiptTransaction(earlyDate, 24000, empId);
+ srt2.Execute();
+ SalesReceiptTransaction srt3 = new SalesReceiptTransaction(lateDate, 15000, empId);
+ srt3.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId, payDate, 2500.0 + .032 * 13000);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: 8cc386c¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleCommissionedEmployeeTwoSalesReceipts
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit 8cc386c5f7573089107f01ff0b4662eb903c84f8
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 17:39:06 2017 +0900
時間給の従業員の給与
・TestPaySingleCommissionedEmployeeTwoSalesReceipts
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 9e87749..b83e077 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -416,6 +416,21 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId, payDate, 2500.0 + .032 * 13000);
}
+ public void testPaySingleCommissionedEmployeeTwoSalesReceipts() {
+ System.err.println("TestPaySingleCommissionedEmployeeTwoSalesReceipts");
+ int empId = 3;
+ AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500, .032);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ SalesReceiptTransaction srt = new SalesReceiptTransaction(payDate, 13000.0, empId);
+ srt.Execute();
+ SalesReceiptTransaction srt2 = new SalesReceiptTransaction(new GregorianCalendar(2001, Calendar.NOVEMBER, 8), 24000, empId);
+ srt2.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId, payDate, 2500.0 + .032 * 13000 + .032 * 24000);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: fbc7c25¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleCommissionedEmployeeOneSalesReceipt
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit fbc7c25c3c816644caf18490352aff217f6ba43b
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 17:32:46 2017 +0900
時間給の従業員の給与
・TestPaySingleCommissionedEmployeeOneSalesReceipt
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 3d39be9..9e87749 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -403,6 +403,19 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId, payDate, 2500.00);
}
+ public void testPaySingleCommissionedEmployeeOneSalesReceipt() {
+ System.err.println("TestPaySingleCommissionedEmployeeOneSalesReceipt");
+ int empId = 3;
+ AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500, .032);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ SalesReceiptTransaction srt = new SalesReceiptTransaction(payDate, 13000.0, empId);
+ srt.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId, payDate, 2500.0 + .032 * 13000);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: 05926e0¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleCommissionedEmployeeNoSalesReceipts
変更されたファイル¶
- M src/main/java/BiweeklySchedule.java
- M src/main/java/CommissionedClassification.java
- M src/main/java/SalesReceipt.java
- M src/main/java/SalesReceiptTransaction.java
- M src/test/java/TestPayroll.java
変更内容¶
commit 05926e06a06090808823863e0bdbdf276bc4a18e
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 17:27:24 2017 +0900
時間給の従業員の給与
・TestPaySingleCommissionedEmployeeNoSalesReceipts
diff --git a/src/main/java/BiweeklySchedule.java b/src/main/java/BiweeklySchedule.java
index eaaa644..cbcab18 100644
--- a/src/main/java/BiweeklySchedule.java
+++ b/src/main/java/BiweeklySchedule.java
@@ -1,14 +1,30 @@
import java.util.Calendar;
+import java.util.GregorianCalendar;
/**
* Created by k2works on 2017/04/06.
*/
public class BiweeklySchedule implements PaymentSchedule {
+ private final Calendar FIRST_PAYBALE_FRIDAY = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+
public boolean IsPayDate(Calendar payDate) {
+ Calendar cal = Calendar.getInstance();
+ if ((payDate.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY)) {
+ cal.setTime(FIRST_PAYBALE_FRIDAY.getTime());
+ while (cal.compareTo(payDate) <= 0) {
+ if (cal.equals(payDate)) {
+ return true;
+ }
+ cal.add(Calendar.DATE, 14);
+ }
+ }
return false;
}
public Calendar GetPayPeriodStartDate(Calendar payDate) {
- return null;
+ Calendar payPeriodStartDate = Calendar.getInstance();
+ payPeriodStartDate.setTime(payDate.getTime());
+ payPeriodStartDate.add(Calendar.DATE, -13);
+ return payPeriodStartDate;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/CommissionedClassification.java b/src/main/java/CommissionedClassification.java
index 081c1a3..774abd6 100644
--- a/src/main/java/CommissionedClassification.java
+++ b/src/main/java/CommissionedClassification.java
@@ -1,3 +1,4 @@
+import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
@@ -7,12 +8,12 @@ import java.util.Map;
public class CommissionedClassification implements PaymentClassification {
private double itsSalary;
private double itsCommissionRate;
- private Map<Long, SalesReceipt> itsReceipts;
+ private Map<Calendar, SalesReceipt> itsReceipts;
public CommissionedClassification(double salary, double commissionRate) {
itsSalary = salary;
itsCommissionRate = commissionRate;
- itsReceipts = new HashMap<Long, SalesReceipt>();
+ itsReceipts = new HashMap<Calendar, SalesReceipt>();
}
public double GetSalary() {
@@ -27,11 +28,17 @@ public class CommissionedClassification implements PaymentClassification {
itsReceipts.put(sr.GetSaleDate(),sr);
}
- public SalesReceipt GetReceipt(long date) {
+ public SalesReceipt GetReceipt(Calendar date) {
return itsReceipts.get(date);
}
public double CalculatePay(Paycheck pc) {
- return 0;
+ double commission = 0.0;
+ for (SalesReceipt receipt : itsReceipts.values()) {
+ if (Date.IsBetween(receipt.GetSaleDate(), pc.GetPayPeriodStartDate(),pc.GetPayPeriodEndDate())) {
+ commission += receipt.GetAmount() * itsCommissionRate;
+ }
+ }
+ return itsSalary + commission;
}
}
diff --git a/src/main/java/SalesReceipt.java b/src/main/java/SalesReceipt.java
index 84bb661..b62a8f3 100644
--- a/src/main/java/SalesReceipt.java
+++ b/src/main/java/SalesReceipt.java
@@ -1,16 +1,18 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public class SalesReceipt {
- private long itsSaleDate;
+ private Calendar itsSaleDate;
private double itsAmount;
- public SalesReceipt(long saleDate, double amount) {
+ public SalesReceipt(Calendar saleDate, double amount) {
itsSaleDate = saleDate;
itsAmount = amount;
}
- public long GetSaleDate() {
+ public Calendar GetSaleDate() {
return itsSaleDate;
}
diff --git a/src/main/java/SalesReceiptTransaction.java b/src/main/java/SalesReceiptTransaction.java
index f69596f..d747197 100644
--- a/src/main/java/SalesReceiptTransaction.java
+++ b/src/main/java/SalesReceiptTransaction.java
@@ -1,12 +1,14 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public class SalesReceiptTransaction implements Transaction {
- private long itsSaleDate;
+ private Calendar itsSaleDate;
private double itsAmount;
private int itsEmpId;
- public SalesReceiptTransaction(long saleDate, double amount, int empId) {
+ public SalesReceiptTransaction(Calendar saleDate, double amount, int empId) {
itsSaleDate = saleDate;
itsAmount = amount;
itsEmpId = empId;
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index ee33092..3d39be9 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -104,14 +104,15 @@ public class TestPayroll extends TestCase{
int empId = 3;
AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500, 3.2);
t.Execute();
- SalesReceiptTransaction srt = new SalesReceiptTransaction(20011112, 25000, empId);
+ Calendar date = new GregorianCalendar(2001, Calendar.NOVEMBER, 12);
+ SalesReceiptTransaction srt = new SalesReceiptTransaction(date, 25000, empId);
srt.Execute();
Employee e = PayrollDatabase.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
CommissionedClassification cc = (CommissionedClassification) pc;
assertNotNull(cc);
- SalesReceipt receipt = cc.GetReceipt(20011112);
+ SalesReceipt receipt = cc.GetReceipt(date);
assertNotNull(receipt);
assertEquals(25000.0, receipt.GetAmount());
}
@@ -391,6 +392,16 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId, payDate, 2 * 15.25);
}
+ public void testPaySingleCommissionedEmployeeNoSalesReceipts() {
+ System.err.println("TestPaySingleCommissionedEmployeeNoSalesReceipts");
+ int empId = 3;
+ AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500, 3.2);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId, payDate, 2500.00);
+ }
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
コミット: c765f96¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleHourlyEmployeeWithTimeCardsSpanningTwoPayPeriods
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit c765f96a5ee79ada518344b948b0e0e749955e1b
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 16:31:47 2017 +0900
時間給の従業員の給与
・TestPaySingleHourlyEmployeeWithTimeCardsSpanningTwoPayPeriods
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 83842da..ee33092 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -375,6 +375,22 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId,payDate,7 * 15.25);
}
+ public void testPaySingleHourlyEmployeeWithTimeCardsSpanningTwoPayPeriods() {
+ System.err.println("TestPaySingleHourlyEmployeeWithTimeCardsSpanningTwoPayPeriods");
+ int empId = 2;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill","Home",15.25);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ Calendar dateInPreviousPayPeriod = new GregorianCalendar(2001, Calendar.NOVEMBER, 2);
+ TimeCardTransaction tc = new TimeCardTransaction(payDate, 2.0 ,empId);
+ tc.Execute();
+ TimeCardTransaction tc2 = new TimeCardTransaction(dateInPreviousPayPeriod,5.0, empId);
+ tc2.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId, payDate, 2 * 15.25);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
コミット: 6f1f55b¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleHourlyEmployeeTwoTimeCards
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit 6f1f55b10f363b646b7ce100bf1a5d56f1978ae2
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 16:21:09 2017 +0900
時間給の従業員の給与
・TestPaySingleHourlyEmployeeTwoTimeCards
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index daa4dd8..83842da 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -360,6 +360,22 @@ public class TestPayroll extends TestCase{
assertNull(pc);
}
+ public void testPaySingleHourlyEmployeeTwoTimeCards() {
+ System.err.println("TestPaySingleHourlyEmployeeTwoTimeCards");
+ int empId = 2;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ TimeCardTransaction tc = new TimeCardTransaction(payDate, 2.0, empId);
+ tc.Execute();
+ TimeCardTransaction tc2 = new TimeCardTransaction(new GregorianCalendar(2001, Calendar.NOVEMBER,8), 5.0, empId);
+ tc2.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId,payDate,7 * 15.25);
+ }
+
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: b19e7a7¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleHourlyEmployeeOnWrongDate
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit b19e7a75d701e826ac8fa3bd4489382899780ff2
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 15:49:02 2017 +0900
時間給の従業員の給与
・TestPaySingleHourlyEmployeeOnWrongDate
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index b32d176..daa4dd8 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -346,6 +346,20 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt,empId,payDate,(8 + 1.5) * 15.25);
}
+ public void testPaySingleHourlyEmployeeOnWrongDate() {
+ System.err.println("TestPaySingleHourlyEmployeeOnWrongDate");
+ int empId = 2;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home",15.25);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 8);
+ TimeCardTransaction tc = new TimeCardTransaction(payDate, 9.0, empId);
+ tc.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ Paycheck pc = pt.GetPaycheck(empId);
+ assertNull(pc);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: 8fff22a¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleHourlyEmployeeOvertimeOneTimeCard
変更されたファイル¶
- M src/test/java/TestPayroll.java
変更内容¶
commit 8fff22a60bae4f4881bf9629e571b1937c518f26
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 15:39:20 2017 +0900
時間給の従業員の給与
・TestPaySingleHourlyEmployeeOvertimeOneTimeCard
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 651d354..b32d176 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -333,6 +333,19 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt,empId,payDate,30.5);
}
+ public void testPaySingleHourlyEmployeeOvertimeOneTimeCard() {
+ System.err.println("TestPaySingleHourlyEmployeeOvertimeOneTimeCard");
+ int empId = 2;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId,"Bill","Home",15.25);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ TimeCardTransaction tc = new TimeCardTransaction(payDate,9.0, empId);
+ tc.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt,empId,payDate,(8 + 1.5) * 15.25);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: f7b50bf¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleHourlyEmployeeOneTimeCard
変更されたファイル¶
- A src/main/java/Date.java
- M src/main/java/HourlyClassification.java
- M src/main/java/Paycheck.java
- M src/main/java/TimeCard.java
- M src/main/java/TimeCardTransaction.java
- M src/test/java/TestPayroll.java
変更内容¶
commit f7b50bffed658f082505af8f8ddb4bd8a6b76a1c
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 15:22:03 2017 +0900
時間給の従業員の給与
・TestPaySingleHourlyEmployeeOneTimeCard
diff --git a/src/main/java/Date.java b/src/main/java/Date.java
new file mode 100644
index 0000000..51f2774
--- /dev/null
+++ b/src/main/java/Date.java
@@ -0,0 +1,16 @@
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+ * Created by k2works on 2017/04/08.
+ */
+public class Date extends GregorianCalendar {
+ private static final long serialVersionUID = 2317114430827648749L;
+
+ public static boolean IsBetween(Calendar theDate, Calendar startDate, Calendar endDate) {
+ if (0 <= theDate.compareTo(startDate) && theDate.compareTo(endDate) <= 0) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/HourlyClassification.java b/src/main/java/HourlyClassification.java
index a2e0678..3df6f8d 100644
--- a/src/main/java/HourlyClassification.java
+++ b/src/main/java/HourlyClassification.java
@@ -1,3 +1,4 @@
+import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
@@ -5,11 +6,11 @@ import java.util.Map;
* Created by k2works on 2017/04/06.
*/
public class HourlyClassification implements PaymentClassification {
- private Map<Long, TimeCard> itsTimeCards;
+ private Map<Calendar, TimeCard> itsTimeCards;
private double itsHourlyRate;
public HourlyClassification(double hourlyRate) {
- itsTimeCards = new HashMap<Long, TimeCard>();
+ itsTimeCards = new HashMap<Calendar, TimeCard>();
itsHourlyRate = hourlyRate;
}
@@ -17,7 +18,7 @@ public class HourlyClassification implements PaymentClassification {
return itsHourlyRate;
}
- public TimeCard GetTimeCard(long date) {
+ public TimeCard GetTimeCard(Calendar date) {
return itsTimeCards.get(date);
}
@@ -26,6 +27,16 @@ public class HourlyClassification implements PaymentClassification {
}
public double CalculatePay(Paycheck pc) {
- return 0;
+ double totalPay = 0;
+ for (TimeCard tc : itsTimeCards.values()) {
+ if (Date.IsBetween(tc.GetDate(), pc.GetPayPeriodStartDate(),pc.GetPayPeriodEndDate())) {
+ if(8 < tc.GetHours()) {
+ totalPay += itsHourlyRate * 8 + itsHourlyRate * (tc.GetHours() - 8) * 1.5;
+ } else {
+ totalPay += itsHourlyRate * tc.GetHours();
+ }
+ }
+ }
+ return totalPay;
}
}
diff --git a/src/main/java/Paycheck.java b/src/main/java/Paycheck.java
index c59838d..4681770 100644
--- a/src/main/java/Paycheck.java
+++ b/src/main/java/Paycheck.java
@@ -27,6 +27,10 @@ public class Paycheck {
itsNetPay = netPay;
}
+ public Calendar GetPayPeriodStartDate() {
+ return itsPayPeriodStartDate;
+ }
+
public Calendar GetPayPeriodEndDate() {
return itsPayPeriodEndDate;
}
diff --git a/src/main/java/TimeCard.java b/src/main/java/TimeCard.java
index b95b0ed..3ed238c 100644
--- a/src/main/java/TimeCard.java
+++ b/src/main/java/TimeCard.java
@@ -1,16 +1,18 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public class TimeCard {
- private long itsDate;
+ private Calendar itsDate;
private double itsHours;
- public TimeCard(long date, double hours) {
+ public TimeCard(Calendar date, double hours) {
itsDate = date;
itsHours = hours;
}
- public long GetDate() {
+ public Calendar GetDate() {
return itsDate;
}
diff --git a/src/main/java/TimeCardTransaction.java b/src/main/java/TimeCardTransaction.java
index 268d20d..81e5568 100644
--- a/src/main/java/TimeCardTransaction.java
+++ b/src/main/java/TimeCardTransaction.java
@@ -1,12 +1,14 @@
+import java.util.Calendar;
+
/**
* Created by k2works on 2017/04/06.
*/
public class TimeCardTransaction implements Transaction {
- private long itsDate;
+ private Calendar itsDate;
private double itsHours;
private int itsEmpId;
- public TimeCardTransaction(long date, double hours, int empId) {
+ public TimeCardTransaction(Calendar date, double hours, int empId) {
itsDate = date;
itsHours = hours;
itsEmpId = empId;
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 2c02c29..651d354 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -86,14 +86,15 @@ public class TestPayroll extends TestCase{
int empId = 2;
AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
t.Execute();
- TimeCardTransaction tct = new TimeCardTransaction(20011031,8.0,empId);
+ Calendar date = new GregorianCalendar(2001, Calendar.OCTOBER, 31);
+ TimeCardTransaction tct = new TimeCardTransaction(date,8.0,empId);
tct.Execute();
Employee e = PayrollDatabase.GetEmployee(empId);
assertNotNull(e);
PaymentClassification pc = e.GetClassification();
HourlyClassification hc = (HourlyClassification) pc;
assertNotNull(hc);
- TimeCard tc = hc.GetTimeCard(20011031);
+ TimeCard tc = hc.GetTimeCard(date);
assertNotNull(tc);
assertEquals(8.0, tc.GetHours());
}
@@ -120,7 +121,8 @@ public class TestPayroll extends TestCase{
int empId = 2;
AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill","Home",15.25);
t.Execute();
- TimeCardTransaction tct = new TimeCardTransaction(20011031,8.0, empId);
+ Calendar date = new GregorianCalendar(2001, Calendar.OCTOBER, 31);
+ TimeCardTransaction tct = new TimeCardTransaction(date,8.0, empId);
tct.Execute();
Employee e = PayrollDatabase.GetEmployee(empId);
assertNotNull(e);
@@ -318,6 +320,19 @@ public class TestPayroll extends TestCase{
ValidatePaycheck(pt, empId, payDate, 0.0);
}
+ public void testPaySingleHourlyEmployeeOneTimeCard() {
+ System.err.println("TestPaySingleHourlyEmployeeOneTimeCard");
+ int empId = 2;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId,"Bill","Home",15.25);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ TimeCardTransaction tc = new TimeCardTransaction(payDate, 2.0, empId);
+ tc.Execute();
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt,empId,payDate,30.5);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);
コミット: 0978601¶
メッセージ¶
時間給の従業員の給与
・TestPaySingleHourlyEmployeeNoTimeCards
変更されたファイル¶
- M src/main/java/WeeklySchedule.java
- M src/test/java/TestPayroll.java
変更内容¶
commit 09786018ce4ffb04a1ac9f3ce3b0e966ab2cef73
Author: k2works <kakimomokuri@gmail.com>
Date: Sat Apr 8 14:36:07 2017 +0900
時間給の従業員の給与
・TestPaySingleHourlyEmployeeNoTimeCards
diff --git a/src/main/java/WeeklySchedule.java b/src/main/java/WeeklySchedule.java
index 26bec68..64e19f2 100644
--- a/src/main/java/WeeklySchedule.java
+++ b/src/main/java/WeeklySchedule.java
@@ -5,10 +5,13 @@ import java.util.Calendar;
*/
public class WeeklySchedule implements PaymentSchedule {
public boolean IsPayDate(Calendar payDate) {
- return false;
+ return (payDate.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY);
}
public Calendar GetPayPeriodStartDate(Calendar payDate) {
- return null;
+ Calendar payPeriodStartDate = Calendar.getInstance();
+ payPeriodStartDate.setTime(payDate.getTime());
+ payPeriodStartDate.add(Calendar.DATE, -6);
+ return payPeriodStartDate;
}
}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 1885821..2c02c29 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -307,6 +307,17 @@ public class TestPayroll extends TestCase{
assertNull(pc);
}
+ public void testPaySingleHourlyEmployeeNoTimeCards() {
+ System.err.println("TestPaySingleHourlyEmployeeNoTimeCards");
+ int empId = 2;
+ AddHourlyEmployee t = new AddHourlyEmployee(empId,"Bill","Home",15.25);
+ t.Execute();
+ Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER, 9);
+ PaydayTransaction pt = new PaydayTransaction(payDate);
+ pt.Execute();
+ ValidatePaycheck(pt, empId, payDate, 0.0);
+ }
+
private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
Paycheck pc = pt.GetPaycheck(empId);
assertNotNull(pc);