/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.essar.mes.services.inventory;

import com.essar.mes.service.framework.Service;
import com.essar.mes.service.framework.ServiceTemplate;
import com.essar.mes.service.framework.ValidationError;
import com.essar.mes.service.framework.annotations.ErrorResult;
import com.essar.mes.service.framework.annotations.Validators;
import com.essar.mes.services.InventoryService;
import java.util.Date;
import java.util.List;

/**
 *
 * @author dhaval
 */
public class InventoryServiceImpl extends ServiceTemplate implements InventoryService{

    @Validators({"inventoryBeanValidator"})
    public SAPInventoryResult saveInventory(SAPInventory inventory) {
        System.out.println("[SERVICE] Executing saveInventory of InventoryService");
        
        SAPInventoryResult result = new SAPInventoryResult();
        result.setId(inventory.getId());
        result.setSuccess(true);
        result.setMessage("ALL WELL");
        result.setReplyDate(new Date().toString());
        result.setReplyTime(new Date().toString());

        return result;
    }

    @ErrorResult(service="saveInventory")
    public SAPInventoryResult errorResult(Service service){
        SAPInventory inventory = (SAPInventory) service.getArgument()[0];

        SAPInventoryResult result = new SAPInventoryResult();
        result.setId(inventory.getId());
        result.setSuccess(false);
        result.setReplyDate(new Date().toString());
        result.setReplyTime(new Date().toString());
        
        List<ValidationError> errors = service.getValidationErrors();
        String errorMessage = "";
        for (ValidationError error : errors) {
            errorMessage += error.getMessage();
        }
        
        result.setMessage(errorMessage);
        return result;
    }
}
