diff --git a/app/uk/gov/hmrc/epayeapi/models/in/EpayeAnnualStatement.scala b/app/uk/gov/hmrc/epayeapi/models/in/EpayeAnnualStatement.scala index e1ff07e..7dcdafc 100644 --- a/app/uk/gov/hmrc/epayeapi/models/in/EpayeAnnualStatement.scala +++ b/app/uk/gov/hmrc/epayeapi/models/in/EpayeAnnualStatement.scala @@ -19,22 +19,13 @@ package uk.gov.hmrc.epayeapi.models.in import org.joda.time.LocalDate import uk.gov.hmrc.epayeapi.models.TaxYear -case class DebitAndCredit( - debit: BigDecimal = 0, - credit: BigDecimal = 0 -) - -case class Cleared( - payment: BigDecimal = 0, - credit: BigDecimal = 0 -) - case class LineItem( taxYear: TaxYear, taxMonth: Option[EpayeTaxMonth], - charges: DebitAndCredit, - cleared: Cleared, - balance: DebitAndCredit, + charges: BigDecimal, + payments: BigDecimal, + credits: BigDecimal, + balance: BigDecimal, dueDate: LocalDate, isSpecified: Boolean = false, codeText: Option[String] = None, @@ -42,9 +33,10 @@ case class LineItem( ) case class AnnualTotal( - charges: DebitAndCredit, - cleared: Cleared, - balance: DebitAndCredit + charges: BigDecimal, + payments: BigDecimal, + credits: BigDecimal, + balance: BigDecimal ) case class AnnualStatementTable(lineItems: Seq[LineItem], totals: AnnualTotal) diff --git a/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala b/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala index 7d05f9f..1565808 100644 --- a/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala +++ b/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala @@ -24,8 +24,6 @@ trait EpayeReads { implicit lazy val taxYearReads: Reads[TaxYear] = reads[TaxYear] implicit lazy val epayeTaxMonthReads: Reads[EpayeTaxMonth] = reads[EpayeTaxMonth] - implicit lazy val debitAndCreditReads: Reads[DebitAndCredit] = reads[DebitAndCredit] - implicit lazy val clearedReads: Reads[Cleared] = reads[Cleared] implicit lazy val annualTotalReads: Reads[AnnualTotal] = reads[AnnualTotal] implicit lazy val lineItemReads: Reads[LineItem] = reads[LineItem] diff --git a/app/uk/gov/hmrc/epayeapi/models/in/EpayeTotalsResponse.scala b/app/uk/gov/hmrc/epayeapi/models/in/EpayeTotalsResponse.scala index 2a9da12..3c3e630 100644 --- a/app/uk/gov/hmrc/epayeapi/models/in/EpayeTotalsResponse.scala +++ b/app/uk/gov/hmrc/epayeapi/models/in/EpayeTotalsResponse.scala @@ -16,8 +16,8 @@ package uk.gov.hmrc.epayeapi.models.in -case class EpayeTotals(balance: DebitAndCredit) +case class EpayeTotals(balance: BigDecimal) case class EpayeTotalsItem(totals: EpayeTotals) case class EpayeTotalsResponse(rti: EpayeTotalsItem, nonRti: EpayeTotalsItem) { - def overall: BigDecimal = rti.totals.balance.debit + nonRti.totals.balance.debit + def overall: BigDecimal = rti.totals.balance + nonRti.totals.balance } \ No newline at end of file diff --git a/app/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJson.scala b/app/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJson.scala index 49c6a97..25c0492 100644 --- a/app/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJson.scala +++ b/app/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJson.scala @@ -38,10 +38,10 @@ object NonRtiChargesJson { code <- lineItem.codeText } yield NonRtiChargesJson( code = code, - amount = lineItem.charges.debit, - clearedByCredits = lineItem.cleared.credit, - clearedByPayments = lineItem.cleared.payment, - balance = lineItem.balance.debit, + amount = lineItem.charges, + clearedByCredits = lineItem.credits, + clearedByPayments = lineItem.payments, + balance = lineItem.balance, dueDate = lineItem.dueDate ) } @@ -66,10 +66,10 @@ object EarlierYearUpdateJson { .find(_.itemType.contains("eyu")) .map { lineItem => EarlierYearUpdateJson( - lineItem.charges.debit, - lineItem.cleared.credit, - lineItem.cleared.payment, - lineItem.balance.debit, + lineItem.charges, + lineItem.credits, + lineItem.payments, + lineItem.balance, lineItem.dueDate ) } @@ -100,10 +100,10 @@ object MonthlyChargesJson { taxMonth = TaxMonth(taxYear, epayeTaxMonth.month) } yield MonthlyChargesJson( taxMonth = taxMonth, - amount = lineItem.charges.debit, - clearedByCredits = lineItem.cleared.credit, - clearedByPayments = lineItem.cleared.payment, - balance = lineItem.balance.debit, + amount = lineItem.charges, + clearedByCredits = lineItem.credits, + clearedByPayments = lineItem.payments, + balance = lineItem.balance, dueDate = lineItem.dueDate, isSpecified = lineItem.isSpecified, _links = SelfLink(Link.monthlyStatementLink(apiBaseUrl, empRef, taxYear, taxMonth)) diff --git a/app/uk/gov/hmrc/epayeapi/models/out/SummaryJson.scala b/app/uk/gov/hmrc/epayeapi/models/out/SummaryJson.scala index 250b37f..6575fc1 100644 --- a/app/uk/gov/hmrc/epayeapi/models/out/SummaryJson.scala +++ b/app/uk/gov/hmrc/epayeapi/models/out/SummaryJson.scala @@ -40,8 +40,8 @@ object SummaryJson { OutstandingCharges( total.overall, Breakdown( - rti = total.rti.totals.balance.debit, - nonRti = total.nonRti.totals.balance.debit + rti = total.rti.totals.balance, + nonRti = total.nonRti.totals.balance ) ), SummaryLinks(apiBaseUrl, empRef) diff --git a/test/common/Fixtures.scala b/test/common/Fixtures.scala index 9fb6b4d..2ffc397 100644 --- a/test/common/Fixtures.scala +++ b/test/common/Fixtures.scala @@ -33,19 +33,10 @@ object Fixtures { | "taxMonth": { | "month": 7 | }, - | "charges": { - | "debit": 1200, - | "credit": 0 - | }, - | "cleared": { - | "cleared": 0, - | "payment": 0, - | "credit": 0 - | }, - | "balance": { - | "debit": 1200, - | "credit": 0 - | }, + | "charges":1200, + | "payments": 0, + | "credits": 0, + | "balance": 1200, | "dueDate": "2017-11-22", | "isSpecified": false, | "itemType": "month" @@ -54,19 +45,10 @@ object Fixtures { | "taxYear": { | "yearFrom": 2017 | }, - | "charges": { - | "debit": 700, - | "credit": 0 - | }, - | "cleared": { - | "cleared": 0, - | "payment": 300, - | "credit": 200 - | }, - | "balance": { - | "debit": 200, - | "credit": 0 - | }, + | "charges":700, + | "payments": 300, + | "credits": 200, + | "balance": 200, | "dueDate": "2017-04-22", | "isSpecified": false, | "itemType": "eyu" @@ -78,37 +60,19 @@ object Fixtures { | "taxMonth": { | "month": 3 | }, - | "charges": { - | "debit": 700, - | "credit": 0 - | }, - | "cleared": { - | "cleared": 0, - | "payment": 300, - | "credit": 200 - | }, - | "balance": { - | "debit": 200, - | "credit": 0 - | }, + | "charges":700, + | "payments": 300, + | "credits": 200, + | "balance": 200, | "dueDate": "2017-07-22", | "isSpecified": true | } | ], | "totals": { - | "charges": { - | "debit": 1900, - | "credit": 0 - | }, - | "cleared": { - | "cleared": 0, - | "payment": 300, - | "credit": 200 - | }, - | "balance": { - | "debit": 1400, - | "credit": 0 - | } + | "charges":1900, + | "payments": 300, + | "credits": 200, + | "balance": 1400 | } | }, | "nonRti": { @@ -117,19 +81,10 @@ object Fixtures { | "taxYear": { | "yearFrom": 2017 | }, - | "charges": { - | "debit": 300, - | "credit": 0 - | }, - | "cleared": { - | "cleared": 100, - | "payment": 30, - | "credit": 70 - | }, - | "balance": { - | "debit": 200, - | "credit": 0 - | }, + | "charges":300, + | "payments": 30, + | "credits": 70, + | "balance": 200, | "dueDate": "2017-07-22", | "isSpecified": false, | "itemType": "1481", @@ -137,19 +92,10 @@ object Fixtures { | } | ], | "totals": { - | "charges": { - | "debit": 0, - | "credit": 0 - | }, - | "cleared": { - | "cleared": 0, - | "payment": 0, - | "credit": 0 - | }, - | "balance": { - | "debit": 0, - | "credit": 0 - | } + | "charges":0, + | "payments": 0, + | "credits": 0, + | "balance": 0 | } | }, | "unallocated": 2000 diff --git a/test/resources/epaye/annual-statement/annual-statement.json b/test/resources/epaye/annual-statement/annual-statement.json index 05317b6..a3746fd 100644 --- a/test/resources/epaye/annual-statement/annual-statement.json +++ b/test/resources/epaye/annual-statement/annual-statement.json @@ -8,35 +8,19 @@ "taxMonth": { "month": 1 }, - "charges": { - "debit": 100.2, - "credit": 0 - }, - "cleared": { - "payment": 0, - "credit": 0 - }, - "balance": { - "debit": 100.2, - "credit": 0 - }, + "charges": 100.2, + "payments": 0, + "credits": 0, + "balance": 100.2, "dueDate": "2017-05-22", "isSpecified": false } ], "totals": { - "charges": { - "debit": 100.2, - "credit": 0 - }, - "cleared": { - "payment": 0, - "credit": 0 - }, - "balance": { - "debit": 100.2, - "credit": 0 - } + "charges": 100.2, + "payments": 0, + "credits": 0, + "balance": 100.2 } }, "nonRti": { @@ -45,36 +29,20 @@ "taxYear": { "yearFrom": 2017 }, - "charges": { - "debit": 20.0, - "credit": 0 - }, - "cleared": { - "payment": 0, - "credit": 0 - }, - "balance": { - "debit": 20.0, - "credit": 0 - }, + "charges": 20.0, + "payments": 0, + "credits": 0, + "balance": 20.0, "dueDate": "2018-02-22", "isSpecified": false, "codeText": "P11D_CLASS_1A_CHARGE" } ], "totals": { - "charges": { - "debit": 20.0, - "credit": 0 - }, - "cleared": { - "payment": 0, - "credit": 0 - }, - "balance": { - "debit": 20.0, - "credit": 0 - } + "charges": 20.0, + "payments": 0, + "credits": 0, + "balance": 20.0 } } } diff --git a/test/uk/gov/hmrc/epayeapi/connectors/EpayeConnectorSpec.scala b/test/uk/gov/hmrc/epayeapi/connectors/EpayeConnectorSpec.scala index c5065ce..3895422 100644 --- a/test/uk/gov/hmrc/epayeapi/connectors/EpayeConnectorSpec.scala +++ b/test/uk/gov/hmrc/epayeapi/connectors/EpayeConnectorSpec.scala @@ -57,18 +57,12 @@ class EpayeConnectorSpec extends UnitSpec with MockitoSugar with ScalaFutures { |{ | "rti": { | "totals": { - | "balance": { - | "debit": 100, - | "credit": 0 - | } + | "balance": 100 | } | }, | "nonRti": { | "totals": { - | "balance": { - | "debit": 23, - | "credit": 0 - | } + | "balance": 23 | } | } |} @@ -80,8 +74,8 @@ class EpayeConnectorSpec extends UnitSpec with MockitoSugar with ScalaFutures { Await.result(connector.getTotal(empRef, hc), 2.seconds) shouldBe EpayeSuccess( EpayeTotalsResponse( - EpayeTotalsItem(EpayeTotals(DebitAndCredit(100, 0))), - EpayeTotalsItem(EpayeTotals(DebitAndCredit(23, 0))) + EpayeTotalsItem(EpayeTotals(100)), + EpayeTotalsItem(EpayeTotals(23)) ) ) } @@ -99,12 +93,12 @@ class EpayeConnectorSpec extends UnitSpec with MockitoSugar with ScalaFutures { EpayeSuccess( EpayeAnnualStatement( rti = AnnualStatementTable( - List(LineItem(TaxYear(2017), Some(EpayeTaxMonth(1)), DebitAndCredit(100.2, 0), Cleared(0, 0), DebitAndCredit(100.2, 0), new LocalDate(2017, 5, 22), isSpecified = false, codeText = None)), - AnnualTotal(DebitAndCredit(100.2, 0), Cleared(0, 0), DebitAndCredit(100.2, 0)) + List(LineItem(TaxYear(2017), Some(EpayeTaxMonth(1)), 100.2, 0, 0, 100.2, new LocalDate(2017, 5, 22), isSpecified = false, codeText = None)), + AnnualTotal(100.2, 0, 0, 100.2) ), nonRti = AnnualStatementTable( - List(LineItem(TaxYear(2017), None, DebitAndCredit(20.0, 0), Cleared(0, 0), DebitAndCredit(20.0, 0), new LocalDate(2018, 2, 22), false, Some("P11D_CLASS_1A_CHARGE"))), - AnnualTotal(DebitAndCredit(20.0, 0), Cleared(0, 0), DebitAndCredit(20.0, 0)) + List(LineItem(TaxYear(2017), None, 20.0, 0, 0, 20.0, new LocalDate(2018, 2, 22), false, Some("P11D_CLASS_1A_CHARGE"))), + AnnualTotal(20.0, 0, 0, 20.0) ), unallocated = None ) diff --git a/test/uk/gov/hmrc/epayeapi/controllers/GetSummarySpec.scala b/test/uk/gov/hmrc/epayeapi/controllers/GetSummarySpec.scala index 30844f7..c62a3d2 100644 --- a/test/uk/gov/hmrc/epayeapi/controllers/GetSummarySpec.scala +++ b/test/uk/gov/hmrc/epayeapi/controllers/GetSummarySpec.scala @@ -82,18 +82,12 @@ class GetSummarySpec extends AppSpec with BeforeAndAfterEach { |{ | "rti": { | "totals": { - | "balance": { - | "debit": 100, - | "credit": 0 - | } + | "balance": 100 | } | }, | "nonRti": { | "totals": { - | "balance": { - | "debit": 23, - | "credit": 0 - | } + | "balance": 23 | } | } |} diff --git a/test/uk/gov/hmrc/epayeapi/models/JsonFixtures.scala b/test/uk/gov/hmrc/epayeapi/models/JsonFixtures.scala index 1e219ef..97efbd6 100644 --- a/test/uk/gov/hmrc/epayeapi/models/JsonFixtures.scala +++ b/test/uk/gov/hmrc/epayeapi/models/JsonFixtures.scala @@ -34,17 +34,19 @@ object JsonFixtures { rti = AnnualStatementTable( lineItems = Seq(), totals = AnnualTotal( - charges = DebitAndCredit(0, 0), - cleared = Cleared(0, 0), - balance = DebitAndCredit(0, 0) + charges = 0, + payments = 0, + credits = 0, + balance = 0 ) ), nonRti = AnnualStatementTable( lineItems = Seq(), totals = AnnualTotal( - charges = DebitAndCredit(0, 0), - cleared = Cleared(0), - balance = DebitAndCredit(0, 0) + charges = 0, + payments = 0, + credits = 0, + balance = 0 ) ), unallocated = None diff --git a/test/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJsonSpec.scala b/test/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJsonSpec.scala index d712c98..5265371 100644 --- a/test/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJsonSpec.scala +++ b/test/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJsonSpec.scala @@ -46,9 +46,10 @@ class AnnualStatementJsonSpec extends WordSpec with Matchers { "AnnualStatementJson.apply._embedded.earlierYearUpdate" should { "contain the earlier year update if it is present" in { val emptyTotals = AnnualTotal( - charges = DebitAndCredit(), - cleared = Cleared(), - balance = DebitAndCredit() + charges = 0, + payments = 0, + credits = 0, + balance = 0 ) val epayeAnnualStatement = @@ -60,9 +61,10 @@ class AnnualStatementJsonSpec extends WordSpec with Matchers { LineItem( taxYear, None, - DebitAndCredit(100), - Cleared(10, 20), - DebitAndCredit(100 - 20 - 10), + 100, + 10, + 20, + 100 - 20 - 10, dueDate, codeText = None, itemType = Some("eyu") @@ -94,9 +96,10 @@ class AnnualStatementJsonSpec extends WordSpec with Matchers { LineItem( taxYear = taxYear, taxMonth = Some(EpayeTaxMonth(taxMonth.month)), - charges = DebitAndCredit(100, 0), - cleared = Cleared(payment = 10, credit = 20), - balance = DebitAndCredit(100 - 30, 0), + charges = 100, + payments = 10, + credits = 20, + balance = 100 - 30, dueDate = dueDate, isSpecified = true, codeText = None @@ -120,9 +123,10 @@ class AnnualStatementJsonSpec extends WordSpec with Matchers { LineItem( taxYear = taxYear, taxMonth = None, - charges = DebitAndCredit(100, 0), - cleared = Cleared(payment = 10, credit = 20), - balance = DebitAndCredit(100 - 30, 0), + charges = 100, + payments = 10, + credits = 20, + balance = 100 - 30, dueDate = dueDate, codeText = None ) @@ -139,9 +143,10 @@ class AnnualStatementJsonSpec extends WordSpec with Matchers { LineItem( taxYear = taxYear, taxMonth = None, - charges = DebitAndCredit(100, 0), - cleared = Cleared(payment = 10, credit = 20), - balance = DebitAndCredit(100 - 30, 0), + charges = 100, + payments = 10, + credits = 20, + balance = 100 - 30, dueDate = dueDate, codeText = Some(code) )