
package com.fidufosyga.rules;

import com.fidufosyga.rules.util.ValidarFecha;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
import com.fidufosyga.rules.util.ValidarFecha;
import java.util.Date;
import java.util.Calendar;


public class SecuenciaValidacionAplicaNovedadRetiroRTR  extends AbstractRule {

	String DATE_FORMAT = "dd/MM/yyyy";
	SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        
        /** Creates a new instance of CampoVacio */
	public SecuenciaValidacionAplicaNovedadRetiroRTR() {
	}

       
        
public boolean performValidation(String field, String registro[],
			String nombreArchivo) {


        String FechaComparar = registro[ new Integer( (String) getParams()[2] )];
        String codigoNovedad =  (String) getParams()[1];
        String codigoNovedadComparar =  registro[ new Integer( (String) getParams()[0] )];

    
        if (codigoNovedad.equals(codigoNovedadComparar)) {

                Date date1 = null;
		Date date2 = null;
                Date dateOtra = Calendar.getInstance().getTime();
                
		if (ValidarFecha.esFecha(field) )
                {

			if (!ValidarFecha.esFecha(field))
				return true;
			
			try {
				
				date1 = sdf.parse(field);
				date2 = sdf.parse(FechaComparar);				
				
			} catch (Exception e) {
				System.out.println("Error: " + e);
				return true;
			}
			
			String DATE_FORMAT_COMPAR = "MM/yyyy";
			
			SimpleDateFormat dfc = new SimpleDateFormat(DATE_FORMAT_COMPAR);
						
			if (!dfc.format(date1).equals(dfc.format(date2))) {
				System.out.println("Fecha1: " + dfc.format(date1) + " Fecha2: " + dfc.format(date2));
				return true;
			}

                        if (date1.before(date2)) {
                                return true;
                        }                        

                        if (date2.after(dateOtra)) {
                                return true;
                        }
                        
			return false;
		}                 

		return false;
            }
            
           return false;
            

           }
	     
    
}
