Skip to content

Commit

Permalink
Update CloseInvoiceCandidatesService.java
Browse files Browse the repository at this point in the history
  • Loading branch information
teosarca committed Nov 12, 2019
1 parent 7a033bd commit 1c99962
Showing 1 changed file with 30 additions and 33 deletions.
Expand Up @@ -17,7 +17,6 @@
import de.metas.rest_api.invoicecandidates.response.JsonCloseInvoiceCandidatesResponse;
import de.metas.rest_api.invoicecandidates.response.JsonCloseInvoiceCandidatesResponseItem;
import de.metas.rest_api.utils.InvalidEntityException;
import de.metas.security.permissions.Access;
import de.metas.util.Services;
import de.metas.util.lang.ExternalHeaderIdWithExternalLineIds;
import de.metas.util.lang.ExternalId;
Expand Down Expand Up @@ -51,58 +50,56 @@ public class CloseInvoiceCandidatesService

public JsonCloseInvoiceCandidatesResponse closeInvoiceCandidates(final JsonCloseInvoiceCandidatesRequest request)
{
{
if (request.getInvoiceCandidates().isEmpty())
{
throw new InvalidEntityException(TranslatableStrings.constant("The request's invoiceCandidates array may not be empty"));
}
final List<ExternalHeaderIdWithExternalLineIds> headerAndLineIds = InvoiceJsonConverters.fromJson(request.getInvoiceCandidates());
final InvoiceCandidateMultiQuery multiQuery = toInvoiceCandidateMultiQuery(request);
final List<I_C_Invoice_Candidate> invoiceCandidateRecords = invoiceCandDAO.getByQuery(multiQuery);

final InvoiceCandidateMultiQueryBuilder multiQuery = InvoiceCandidateMultiQuery.builder();
for (final ExternalHeaderIdWithExternalLineIds externalId : headerAndLineIds)
{
final InvoiceCandidateQuery query = InvoiceCandidateQuery.builder()
.externalIds(externalId)
.build();
multiQuery.query(query);
}
final List<I_C_Invoice_Candidate> invoiceCandidateRecords = invoiceCandDAO
.convertToIQuery(multiQuery.build())
.setRequiredAccess(Access.READ)
.list();
return closeInvoiceCandidateRecords(invoiceCandidateRecords);
}

final List<JsonCloseInvoiceCandidatesResponseItem> invoiceCandidates = closeInvoiceCandidateRecords(invoiceCandidateRecords);
private static InvoiceCandidateMultiQuery toInvoiceCandidateMultiQuery(final JsonCloseInvoiceCandidatesRequest request)
{
if (request.getInvoiceCandidates().isEmpty())
{
throw new InvalidEntityException(TranslatableStrings.constant("The request's invoiceCandidates array may not be empty"));
}

final JsonCloseInvoiceCandidatesResponse result = JsonCloseInvoiceCandidatesResponse.builder()
.invoiceCandidates(invoiceCandidates)
.build();
final InvoiceCandidateMultiQueryBuilder multiQuery = InvoiceCandidateMultiQuery.builder();

return result;
final List<ExternalHeaderIdWithExternalLineIds> headerAndLineIds = InvoiceJsonConverters.fromJson(request.getInvoiceCandidates());
for (final ExternalHeaderIdWithExternalLineIds externalId : headerAndLineIds)
{
final InvoiceCandidateQuery query = InvoiceCandidateQuery.builder()
.externalIds(externalId)
.build();
multiQuery.query(query);
}

return multiQuery.build();
}

private List<JsonCloseInvoiceCandidatesResponseItem> closeInvoiceCandidateRecords(final List<I_C_Invoice_Candidate> invoiceCandidateRecords)
private JsonCloseInvoiceCandidatesResponse closeInvoiceCandidateRecords(final List<I_C_Invoice_Candidate> invoiceCandidateRecords)
{
List<JsonCloseInvoiceCandidatesResponseItem> responseItems = new ArrayList<>();
final List<JsonCloseInvoiceCandidatesResponseItem> responseItems = new ArrayList<>();

for (final I_C_Invoice_Candidate invoiceCandidateRecord : invoiceCandidateRecords)
{
invoiceCandBL.closeInvoiceCandidate(invoiceCandidateRecord);
final JsonCloseInvoiceCandidatesResponseItem responseItem = createCloseInvoiceCandidateResponseItem(invoiceCandidateRecord);
final JsonCloseInvoiceCandidatesResponseItem responseItem = toResponseItem(invoiceCandidateRecord);
responseItems.add(responseItem);
}

return responseItems;
return JsonCloseInvoiceCandidatesResponse.builder()
.invoiceCandidates(responseItems)
.build();
}

private JsonCloseInvoiceCandidatesResponseItem createCloseInvoiceCandidateResponseItem(final I_C_Invoice_Candidate invoiceCandidateRecord)
private static JsonCloseInvoiceCandidatesResponseItem toResponseItem(final I_C_Invoice_Candidate record)
{
return JsonCloseInvoiceCandidatesResponseItem.builder()
.externalHeaderId(ExternalId.of(invoiceCandidateRecord.getExternalHeaderId()))
.externalLineId(ExternalId.of(invoiceCandidateRecord.getExternalLineId()))
.metasfreshId(MetasfreshId.of(invoiceCandidateRecord.getC_Invoice_Candidate_ID()))
.externalHeaderId(ExternalId.of(record.getExternalHeaderId()))
.externalLineId(ExternalId.of(record.getExternalLineId()))
.metasfreshId(MetasfreshId.of(record.getC_Invoice_Candidate_ID()))
.build();

}

}

0 comments on commit 1c99962

Please sign in to comment.