public class SynchronizationServiceImpl extends java.lang.Object implements SynchronizationService
Modifier and Type | Field and Description |
---|---|
private SageoneConfig |
config |
private ConfigurationService |
configService |
private ContactsService |
contactsService |
private org.joda.time.format.DateTimeFormatter |
datetimeFormatter |
private SalesInvoiceRequestBuilder |
invoiceRequestBuilder |
private SalesInvoiceService |
invoiceService |
private static org.slf4j.Logger |
log |
private OrderRepository |
orderRepository |
private EpagesOrderService |
orderService |
private OrderValidator |
orderValidator |
private SalesInvoiceService |
salesInvoiceService |
private StatusService |
statusService |
Constructor and Description |
---|
SynchronizationServiceImpl(SageoneConfig config,
ConfigurationService configService,
StatusService statusService,
ContactsService contactsService,
SalesInvoiceService invoiceService,
OrderValidator orderValidator,
EpagesOrderService orderService,
SalesInvoiceRequestBuilder builder,
OrderRepository orderRepository,
SalesInvoiceService salesInvoiceService) |
Modifier and Type | Method and Description |
---|---|
void |
deleteSalesInvoiceReference(java.lang.String shopId,
java.lang.String orderId)
delete sage sales invoice to epages order association from database and void sales invoice on sage side.
|
private java.util.List<Order> |
fetchOrdersForSynchronization(java.lang.String shopId) |
private SageContactResponse |
getContact(java.lang.String shopId,
DetailedOrder order) |
private org.joda.time.DateTime |
getStartDatetime(java.lang.String shopId) |
private boolean |
isAlreadyPublished(java.lang.String shopId,
java.lang.String orderId) |
boolean |
isReadyForSynchronization(java.lang.String shopId)
Checks if it is possible to start synchronization and if it is, sets the synchronization status to busy
|
void |
synchronizeOrder(java.lang.String shopId,
java.lang.String orderId,
java.lang.String orderGuid)
Synchronizes a specific order of the shop with the passed identifier.
|
private void |
synchronizeOrderWithSage(java.lang.String shopId,
java.lang.String orderId,
java.lang.String newOrderGuid) |
void |
synchronizeShop(java.lang.String shopId)
Synchronizes all orders of the shop with the passed identifier.
|
private static final org.slf4j.Logger log
private SageoneConfig config
private StatusService statusService
private ConfigurationService configService
private ContactsService contactsService
private SalesInvoiceService invoiceService
private OrderValidator orderValidator
private EpagesOrderService orderService
private SalesInvoiceRequestBuilder invoiceRequestBuilder
private org.joda.time.format.DateTimeFormatter datetimeFormatter
private OrderRepository orderRepository
private SalesInvoiceService salesInvoiceService
@Inject public SynchronizationServiceImpl(SageoneConfig config, ConfigurationService configService, StatusService statusService, ContactsService contactsService, SalesInvoiceService invoiceService, OrderValidator orderValidator, EpagesOrderService orderService, SalesInvoiceRequestBuilder builder, OrderRepository orderRepository, SalesInvoiceService salesInvoiceService)
public boolean isReadyForSynchronization(java.lang.String shopId)
SynchronizationService
isReadyForSynchronization
in interface SynchronizationService
shopId
- Identifier of the shop.public void synchronizeShop(java.lang.String shopId)
SynchronizationService
synchronizeShop
in interface SynchronizationService
shopId
- Identifier of the shop to synchronize.public void synchronizeOrder(java.lang.String shopId, java.lang.String orderId, java.lang.String orderGuid)
SynchronizationService
synchronizeOrder
in interface SynchronizationService
shopId
- Identifier of the shop containing the order.orderId
- Identifier of the order to synchronize.orderGuid
- GUID of the order to synchronize.public void deleteSalesInvoiceReference(java.lang.String shopId, java.lang.String orderId) throws javax.validation.ValidationException, WebserviceException, DeserializationException
SynchronizationService
deleteSalesInvoiceReference
in interface SynchronizationService
orderId
- epages order id to deletejavax.validation.ValidationException
WebserviceException
DeserializationException
private java.util.List<Order> fetchOrdersForSynchronization(java.lang.String shopId)
private void synchronizeOrderWithSage(java.lang.String shopId, java.lang.String orderId, java.lang.String newOrderGuid)
private SageContactResponse getContact(java.lang.String shopId, DetailedOrder order) throws WebserviceException, javax.validation.ValidationException, DeserializationException
WebserviceException
javax.validation.ValidationException
DeserializationException
private boolean isAlreadyPublished(java.lang.String shopId, java.lang.String orderId)
private org.joda.time.DateTime getStartDatetime(java.lang.String shopId)