package com.fp.person.rules.save;

import com.fp.dto.save.SaveBean;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.commondb.helper.FormatDates;
import com.fp.persistence.pcustomer.gene.TgeneActivity;
import java.sql.Timestamp;
import java.util.List;

/**
 * Clase que se encarga de de incluir la fecha en que un registro fue modificado
 * @author scastillo
 */
public class CompleteHistoryActivity extends CompletePersonAndCompany {

    /**
     * Metodo que verifica si existe o no una fecha de modificacion
     * @param pSaveRequest
     * @return
     * @throws Exception 
     */
    @Override
    public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
        SaveBean test = (SaveBean) pSaveRequest.get("com.fp.persistence.pcustomer.gene.TgeneActivity");
        List<Object> data = test.getModifiedRecords();
        Timestamp modifyDate = FormatDates.getInstance().getDataBaseTimestamp();
        for (int i = 0; i < data.size(); i++) {
            TgeneActivity tgeneActivity = (TgeneActivity) data.get(i);
            tgeneActivity.setModifyuser(pSaveRequest.getUser());
            tgeneActivity.setModifydate(modifyDate);
        }
        return pSaveRequest;
    }

    /**
     * Metodo que se ejecuta en modo reverso
     * @param pSaveRequest
     * @return
     * @throws Exception 
     */
    @Override
    public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
