From 6f40a0536f2050818d7ab306c40269039f7b8c95 Mon Sep 17 00:00:00 2001 From: Logan Cunningham <148146808+loganwc@users.noreply.github.com> Date: Tue, 11 Jun 2024 13:28:55 -0500 Subject: [PATCH] INT-B-20198 (#12953) * 858 now displays emplid instead of dodid for coasties * updated test label * fixed test --------- Co-authored-by: Paul Stonebraker <147535220+paulstonebraker@users.noreply.github.com> --- pkg/edi/invoice/generator.go | 4 +-- pkg/edi/invoice/generator_test.go | 2 +- .../ghc_payment_request_invoice_generator.go | 27 +++++++++++++------ ..._payment_request_invoice_generator_test.go | 3 ++- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/pkg/edi/invoice/generator.go b/pkg/edi/invoice/generator.go index acc65ea864f..d3a24534bd2 100644 --- a/pkg/edi/invoice/generator.go +++ b/pkg/edi/invoice/generator.go @@ -42,7 +42,7 @@ type InvoiceHeader struct { ServiceMemberName edisegment.N9 OrderPayGrade edisegment.N9 ServiceMemberBranch edisegment.N9 - ServiceMemberDodID edisegment.N9 + ServiceMemberID edisegment.N9 MoveCode edisegment.N9 Currency edisegment.C3 RequestedPickupDate *edisegment.G62 @@ -94,7 +94,7 @@ func (ih *InvoiceHeader) NonEmptySegments() []edisegment.Segment { &ih.ServiceMemberName, &ih.OrderPayGrade, &ih.ServiceMemberBranch, - &ih.ServiceMemberDodID, + &ih.ServiceMemberID, &ih.MoveCode, &ih.Currency, ih.RequestedPickupDate, diff --git a/pkg/edi/invoice/generator_test.go b/pkg/edi/invoice/generator_test.go index c68825dc211..74cadf6d57f 100644 --- a/pkg/edi/invoice/generator_test.go +++ b/pkg/edi/invoice/generator_test.go @@ -132,7 +132,7 @@ func MakeValidEdi() Invoice858C { ReferenceIdentificationQualifier: "3L", ReferenceIdentification: "ARMY", }, - ServiceMemberDodID: edisegment.N9{ + ServiceMemberID: edisegment.N9{ ReferenceIdentificationQualifier: "4A", ReferenceIdentification: "7562672421", }, diff --git a/pkg/services/invoice/ghc_payment_request_invoice_generator.go b/pkg/services/invoice/ghc_payment_request_invoice_generator.go index 2db50895463..6a0b5547ef0 100644 --- a/pkg/services/invoice/ghc_payment_request_invoice_generator.go +++ b/pkg/services/invoice/ghc_payment_request_invoice_generator.go @@ -326,14 +326,25 @@ func (g ghcPaymentRequestInvoiceGenerator) createServiceMemberDetailSegments(pay ReferenceIdentification: string(*branch), } - // dod id - dodID := serviceMember.Edipi - if dodID == nil { - return apperror.NewConflictError(serviceMember.ID, fmt.Sprintf("no dod id found for ServiceMember ID: %s Payment Request ID: %s", serviceMember.ID, paymentRequestID)) - } - header.ServiceMemberDodID = edisegment.N9{ - ReferenceIdentificationQualifier: "4A", - ReferenceIdentification: string(*dodID), + // dod id or emplid + if branch.String() == models.AffiliationCOASTGUARD.String() { + emplid := serviceMember.Emplid + if emplid == nil { + return apperror.NewConflictError(serviceMember.ID, fmt.Sprintf("no employee id found for ServiceMember ID: %s Payment Request ID: %s", serviceMember.ID, paymentRequestID)) + } + header.ServiceMemberID = edisegment.N9{ + ReferenceIdentificationQualifier: "4A", + ReferenceIdentification: string(*emplid), + } + } else { + dodID := serviceMember.Edipi + if dodID == nil { + return apperror.NewConflictError(serviceMember.ID, fmt.Sprintf("no dod id found for ServiceMember ID: %s Payment Request ID: %s", serviceMember.ID, paymentRequestID)) + } + header.ServiceMemberID = edisegment.N9{ + ReferenceIdentificationQualifier: "4A", + ReferenceIdentification: string(*dodID), + } } return nil diff --git a/pkg/services/invoice/ghc_payment_request_invoice_generator_test.go b/pkg/services/invoice/ghc_payment_request_invoice_generator_test.go index 316f576b93b..415e11f28c9 100644 --- a/pkg/services/invoice/ghc_payment_request_invoice_generator_test.go +++ b/pkg/services/invoice/ghc_payment_request_invoice_generator_test.go @@ -441,7 +441,7 @@ func (suite *GHCInvoiceSuite) TestAllGenerateEdi() { {TestName: "service member name", Qualifier: "1W", ExpectedValue: serviceMember.ReverseNameLineFormat(), ActualValue: &result.Header.ServiceMemberName}, {TestName: "order pay grade", Qualifier: "ML", ExpectedValue: string(grade), ActualValue: &result.Header.OrderPayGrade}, {TestName: "service member branch", Qualifier: "3L", ExpectedValue: string(*serviceMember.Affiliation), ActualValue: &result.Header.ServiceMemberBranch}, - {TestName: "service member dod id", Qualifier: "4A", ExpectedValue: string(*serviceMember.Edipi), ActualValue: &result.Header.ServiceMemberDodID}, + {TestName: "service member id", Qualifier: "4A", ExpectedValue: string(*serviceMember.Edipi), ActualValue: &result.Header.ServiceMemberID}, {TestName: "move code", Qualifier: "CMN", ExpectedValue: mto.Locator, ActualValue: &result.Header.MoveCode}, } for _, data := range testData { @@ -2489,6 +2489,7 @@ func (suite *GHCInvoiceSuite) TestUseTacToFindLoa() { testCaseAffiliation := models.AffiliationCOASTGUARD move.Orders.ServiceMember.Affiliation = &testCaseAffiliation paymentRequest.MoveTaskOrder.Orders.ServiceMember.Affiliation = &testCaseAffiliation + paymentRequest.MoveTaskOrder.Orders.ServiceMember.Emplid = models.StringPointer("1234567") err := suite.DB().Save(&move.Orders.ServiceMember) suite.NoError(err)