
com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultSupplierInvoiceIntegrationService Maven / Gradle / Ivy
/*
* Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved.
*/
package com.sap.cloud.sdk.s4hana.datamodel.odata.services;
import java.time.LocalDateTime;
import javax.annotation.Nonnull;
import javax.inject.Named;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.CancelFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.ReleaseFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcHeaderWhldgTax;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcHeaderWhldgTaxByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcHeaderWhldgTaxCreateFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcHeaderWhldgTaxFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcItemPurOrdRef;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcItemPurOrdRefByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcItemPurOrdRefCreateFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SuplrInvcItemPurOrdRefFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoice;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceCreateFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceItemGLAcct;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceItemGLAcctByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceItemGLAcctCreateFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceItemGLAcctFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceTax;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceTaxByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceTaxCreateFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.SupplierInvoiceTaxFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.supplierinvoiceintegration.batch.DefaultSupplierInvoiceIntegrationServiceBatch;
/**
*
* This service enables you to create supplier invoices through an API call from a source system outside SAP S/4HANA
* Cloud. Furthermore the service enables you to read, release and reverse existing supplier invoices from the SAP
* S/4HANA Cloud system.
*
*
*
* Reference: SAP
* API Business Hub
*
* Details:
*
*
* OData Service:
* API_SUPPLIERINVOICE_PROCESS_SRV
*
*
* API Version:
* 1
*
*
* Communication Scenario:
* Supplier Invoice Integration (SAP_COM_0057)
*
*
* Scope Items:
* Consumable Purchasing (BNX),
* Service and Material Procurement - Project-Based Services
* (J13), Procurement of Direct Materials (J45)
*
*
* Authentication Methods:
* Basic, x509
*
*
*
*/
@Named( "com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultSupplierInvoiceIntegrationService" )
public class DefaultSupplierInvoiceIntegrationService implements SupplierInvoiceIntegrationService
{
@Nonnull
private final String servicePath;
/**
* Creates a service using {@link SupplierInvoiceIntegrationService#DEFAULT_SERVICE_PATH} to send the requests.
*
*/
public DefaultSupplierInvoiceIntegrationService()
{
servicePath = SupplierInvoiceIntegrationService.DEFAULT_SERVICE_PATH;
}
/**
* Creates a service using the provided service path to send the requests.
*
* Used by the fluent {@link #withServicePath(String)} method.
*
*/
private DefaultSupplierInvoiceIntegrationService( @Nonnull final String servicePath )
{
this.servicePath = servicePath;
}
@Override
@Nonnull
public DefaultSupplierInvoiceIntegrationService withServicePath( @Nonnull final String servicePath )
{
return new DefaultSupplierInvoiceIntegrationService(servicePath);
}
/**
* {@inheritDoc}
*
*/
@Override
@Nonnull
public DefaultSupplierInvoiceIntegrationServiceBatch batch()
{
return new DefaultSupplierInvoiceIntegrationServiceBatch(this);
}
@Override
@Nonnull
public SuplrInvcHeaderWhldgTaxFluentHelper getAllSuplrInvcHeaderWhldgTax()
{
return new SuplrInvcHeaderWhldgTaxFluentHelper(servicePath);
}
@Override
@Nonnull
public SuplrInvcHeaderWhldgTaxByKeyFluentHelper getSuplrInvcHeaderWhldgTaxByKey(
final String supplierInvoice,
final String fiscalYear,
final String withholdingTaxType )
{
return new SuplrInvcHeaderWhldgTaxByKeyFluentHelper(
servicePath,
supplierInvoice,
fiscalYear,
withholdingTaxType);
}
@Override
@Nonnull
public SuplrInvcHeaderWhldgTaxCreateFluentHelper createSuplrInvcHeaderWhldgTax(
@Nonnull final SuplrInvcHeaderWhldgTax suplrInvcHeaderWhldgTax )
{
return new SuplrInvcHeaderWhldgTaxCreateFluentHelper(servicePath, suplrInvcHeaderWhldgTax);
}
@Override
@Nonnull
public SuplrInvcItemPurOrdRefFluentHelper getAllSuplrInvcItemPurOrdRef()
{
return new SuplrInvcItemPurOrdRefFluentHelper(servicePath);
}
@Override
@Nonnull
public SuplrInvcItemPurOrdRefByKeyFluentHelper getSuplrInvcItemPurOrdRefByKey(
final String supplierInvoice,
final String fiscalYear,
final String supplierInvoiceItem )
{
return new SuplrInvcItemPurOrdRefByKeyFluentHelper(
servicePath,
supplierInvoice,
fiscalYear,
supplierInvoiceItem);
}
@Override
@Nonnull
public SuplrInvcItemPurOrdRefCreateFluentHelper createSuplrInvcItemPurOrdRef(
@Nonnull final SuplrInvcItemPurOrdRef suplrInvcItemPurOrdRef )
{
return new SuplrInvcItemPurOrdRefCreateFluentHelper(servicePath, suplrInvcItemPurOrdRef);
}
@Override
@Nonnull
public SupplierInvoiceFluentHelper getAllSupplierInvoice()
{
return new SupplierInvoiceFluentHelper(servicePath);
}
@Override
@Nonnull
public
SupplierInvoiceByKeyFluentHelper
getSupplierInvoiceByKey( final String supplierInvoice, final String fiscalYear )
{
return new SupplierInvoiceByKeyFluentHelper(servicePath, supplierInvoice, fiscalYear);
}
@Override
@Nonnull
public SupplierInvoiceCreateFluentHelper createSupplierInvoice( @Nonnull final SupplierInvoice supplierInvoice )
{
return new SupplierInvoiceCreateFluentHelper(servicePath, supplierInvoice);
}
@Override
@Nonnull
public SupplierInvoiceItemGLAcctFluentHelper getAllSupplierInvoiceItemGLAcct()
{
return new SupplierInvoiceItemGLAcctFluentHelper(servicePath);
}
@Override
@Nonnull
public SupplierInvoiceItemGLAcctByKeyFluentHelper getSupplierInvoiceItemGLAcctByKey(
final String supplierInvoice,
final String fiscalYear,
final String supplierInvoiceItem )
{
return new SupplierInvoiceItemGLAcctByKeyFluentHelper(
servicePath,
supplierInvoice,
fiscalYear,
supplierInvoiceItem);
}
@Override
@Nonnull
public SupplierInvoiceItemGLAcctCreateFluentHelper createSupplierInvoiceItemGLAcct(
@Nonnull final SupplierInvoiceItemGLAcct supplierInvoiceItemGLAcct )
{
return new SupplierInvoiceItemGLAcctCreateFluentHelper(servicePath, supplierInvoiceItemGLAcct);
}
@Override
@Nonnull
public SupplierInvoiceTaxFluentHelper getAllSupplierInvoiceTax()
{
return new SupplierInvoiceTaxFluentHelper(servicePath);
}
@Override
@Nonnull
public SupplierInvoiceTaxByKeyFluentHelper getSupplierInvoiceTaxByKey(
final String supplierInvoice,
final String fiscalYear,
final String taxCode,
final String supplierInvoiceTaxCounter )
{
return new SupplierInvoiceTaxByKeyFluentHelper(
servicePath,
supplierInvoice,
fiscalYear,
taxCode,
supplierInvoiceTaxCounter);
}
@Override
@Nonnull
public SupplierInvoiceTaxCreateFluentHelper createSupplierInvoiceTax(
@Nonnull final SupplierInvoiceTax supplierInvoiceTax )
{
return new SupplierInvoiceTaxCreateFluentHelper(servicePath, supplierInvoiceTax);
}
@Override
@Nonnull
public
ReleaseFluentHelper
release( final String supplierInvoice, final String fiscalYear, final Boolean discountDaysHaveToBeShifted )
{
return new ReleaseFluentHelper(servicePath, supplierInvoice, fiscalYear, discountDaysHaveToBeShifted);
}
@Override
@Nonnull
public CancelFluentHelper cancel(
final LocalDateTime postingDate,
final String reversalReason,
final String fiscalYear,
final String supplierInvoice )
{
return new CancelFluentHelper(servicePath, postingDate, reversalReason, fiscalYear, supplierInvoice);
}
}