package com.bankaudit.process.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

@Entity
@Table(name="audit_schedule_status")
public class AuditScheduleStatus implements Serializable{
	
	private static final long serialVersionUID = -4007853604538198485L;

	@Id
	@Column(name="legal_entity_code")
	private Integer legalEntityCode;
	
	@Id
	@Column(name="audit_type_code")
	private String auditTypeCode;
	 		
	@Id
	@Column(name="audit_id")
	private String auditId;
	
	@Column(name="unit_id")
	private String unitId; 
		
	@Column(name="total_observations")
	private Integer totalObservations;
	
	@Column(name="compliance_observations")
	private Integer complianceObservations;
	
	@Column(name="non_compliance_observations")
	private Integer nonComplianceObservations;
	
	@Column(name="non_compliance_major_observations")
	private Integer nonComplianceMajorObservations;
	
	@Column(name="non_compliance_minor_observations")
	private Integer nonComplianceMinorObservations;
	
	@Column(name="non_compliance_prsistence_observations")
	private Integer nonCompliancePersistenceObservations;
	
	@Column(name="na_observations_exclude_others")
	private Integer naObservationsExcludeOthers;
	
	@Column(name="na_observations_include_others")
	private Integer naObservationsIncludeOthers;	
	
	@Column(name="accepted_on_scrutiny_submit")
	private Integer acceptedOnScrutinySubmit;
	
	@Column(name="further_compliance_on_scrutiny_submit")
	private Integer furtherComplianceOnScrutinySubmit;
	
	@Column(name="carry_forward_on_scrutiny_submit")
	private Integer carryForwardOnScrutinySubmit;  
	
	@Column(name="scrutiny_accepted_as_on")
	private Integer scrutinyAcceptedAsOn;
	
	@Column(name="scrutiny_further_compliance_as_on")
	private Integer scrutinyfurtherComplianceAsOn;
	
	@Column(name="scrutiny_carry_forward_as_on")
	private Integer scrutinyCarryForwardAsOn; 
	
	@Column(name="pending_with_scrutiniser")
	private Integer pendingWithScrutiniser;
	
	@Column(name="pending_with_bank")
	private Integer pendingWithBank;   	
			
	@Column(name="grading_status")
	private String gradingStatus;
	
	@Column(name="grading_status_ro")
	private String gradingStatusRO;
	
	@Column(name="grading_status_ho")
	private String gradingStatusHO;
	
	@Column(name="grading_ro_compliance_status")
	private String gradingROComplianceStatus;
	
	@Column(name="grading_ho_compliance_status")
	private String gradingHOComplianceStatus;
	
	@Column(name="grading_maker_ro")
	private String gradingMakerRO;
	
	@Column(name="grading_checker_ro")
	private String gradingCheckerRO;
	
	@Column(name="grading_maker_ho")
	private String gradingMakerHO;
	
	@Column(name="grading_checker_ho")
	private String gradingCheckerHO;		
	
	@Column(name="grading_ro_compliance_maker")
	private String gradingROComplianceMaker;
	
	@Column(name="grading_ro_compliance_checker")
	private String gradingROComplianceChecker;
	
	@Column(name="grading_ho_compliance_maker")
	private String gradingHOComplianceMaker;
	
	@Column(name="grading_ho_compliance_checker")
	private String gradingHOComplianceChecker;
		 	
	@Column(name="grading_maker_timestamp_ro")
	private Date gradingMakerTimestampRO;
	
	@Column(name="grading_checker_timestamp_ro")
	private Date gradingCheckerTimestampRO;
	
	@Column(name="grading_maker_timestamp_ho")
	private Date gradingMakerTimestampHO;
	
	@Column(name="grading_checker_timestamp_ho")
	private Date gradingCheckerTimestampHO;
	
	@Column(name="grading_ro_compliance_maker_timestamp")
	private Date gradingROComplianceMakerTimestamp;
	
	@Column(name="grading_ro_compliance_checker_timestamp")
	private Date gradingROComplianceCheckerTimestamp;
	
	@Column(name="grading_ho_compliance_maker_timestamp")
	private Date gradingHOComplianceMakerTimestamp;
	
	@Column(name="grading_ho_compliance_checker_timestamp")
	private Date gradingHOComplianceCheckerTimestamp;
	
	@Column(name="grading_score_ro")
	private Double gradingScoreRO;
	
	@Column(name="grading_category_ro")
	private String gradingCategoryRO;
	
	@Column(name="grading_score_ho")
	private Double gradingScoreHO;
	
	@Column(name="grading_category_ho")
	private String gradingCategoryHO;	
	 
	private transient String gradingAssignedUser;

	public Integer getLegalEntityCode() {
		return legalEntityCode;
	}

	public void setLegalEntityCode(Integer legalEntityCode) {
		this.legalEntityCode = legalEntityCode;
	}

	public String getAuditTypeCode() {
		return auditTypeCode;
	}

	public void setAuditTypeCode(String auditTypeCode) {
		this.auditTypeCode = auditTypeCode;
	}

	public String getAuditId() {
		return auditId;
	}

	public void setAuditId(String auditId) {
		this.auditId = auditId;
	}

	public String getUnitId() {
		return unitId;
	}

	public void setUnitId(String unitId) {
		this.unitId = unitId;
	}

	public Integer getTotalObservations() {
		return totalObservations;
	}

	public void setTotalObservations(Integer totalObservations) {
		this.totalObservations = totalObservations;
	}

	public Integer getComplianceObservations() {
		return complianceObservations;
	}

	public void setComplianceObservations(Integer complianceObservations) {
		this.complianceObservations = complianceObservations;
	}

	public Integer getNonComplianceObservations() {
		return nonComplianceObservations;
	}

	public void setNonComplianceObservations(Integer nonComplianceObservations) {
		this.nonComplianceObservations = nonComplianceObservations;
	}

	public Integer getNonComplianceMajorObservations() {
		return nonComplianceMajorObservations;
	}

	public void setNonComplianceMajorObservations(Integer nonComplianceMajorObservations) {
		this.nonComplianceMajorObservations = nonComplianceMajorObservations;
	}

	public Integer getNonComplianceMinorObservations() {
		return nonComplianceMinorObservations;
	}

	public void setNonComplianceMinorObservations(Integer nonComplianceMinorObservations) {
		this.nonComplianceMinorObservations = nonComplianceMinorObservations;
	}

	public Integer getNonCompliancePersistenceObservations() {
		return nonCompliancePersistenceObservations;
	}

	public void setNonCompliancePersistenceObservations(Integer nonCompliancePersistenceObservations) {
		this.nonCompliancePersistenceObservations = nonCompliancePersistenceObservations;
	}

	public Integer getNaObservationsExcludeOthers() {
		return naObservationsExcludeOthers;
	}

	public void setNaObservationsExcludeOthers(Integer naObservationsExcludeOthers) {
		this.naObservationsExcludeOthers = naObservationsExcludeOthers;
	}

	public Integer getNaObservationsIncludeOthers() {
		return naObservationsIncludeOthers;
	}

	public void setNaObservationsIncludeOthers(Integer naObservationsIncludeOthers) {
		this.naObservationsIncludeOthers = naObservationsIncludeOthers;
	}

	public Integer getAcceptedOnScrutinySubmit() {
		return acceptedOnScrutinySubmit;
	}

	public void setAcceptedOnScrutinySubmit(Integer acceptedOnScrutinySubmit) {
		this.acceptedOnScrutinySubmit = acceptedOnScrutinySubmit;
	}

	public Integer getFurtherComplianceOnScrutinySubmit() {
		return furtherComplianceOnScrutinySubmit;
	}

	public void setFurtherComplianceOnScrutinySubmit(Integer furtherComplianceOnScrutinySubmit) {
		this.furtherComplianceOnScrutinySubmit = furtherComplianceOnScrutinySubmit;
	}

	public Integer getCarryForwardOnScrutinySubmit() {
		return carryForwardOnScrutinySubmit;
	}

	public void setCarryForwardOnScrutinySubmit(Integer carryForwardOnScrutinySubmit) {
		this.carryForwardOnScrutinySubmit = carryForwardOnScrutinySubmit;
	}

	public Integer getScrutinyAcceptedAsOn() {
		return scrutinyAcceptedAsOn;
	}

	public void setScrutinyAcceptedAsOn(Integer scrutinyAcceptedAsOn) {
		this.scrutinyAcceptedAsOn = scrutinyAcceptedAsOn;
	}

	public Integer getScrutinyfurtherComplianceAsOn() {
		return scrutinyfurtherComplianceAsOn;
	}

	public void setScrutinyfurtherComplianceAsOn(Integer scrutinyfurtherComplianceAsOn) {
		this.scrutinyfurtherComplianceAsOn = scrutinyfurtherComplianceAsOn;
	}

	public Integer getScrutinyCarryForwardAsOn() {
		return scrutinyCarryForwardAsOn;
	}

	public void setScrutinyCarryForwardAsOn(Integer scrutinyCarryForwardAsOn) {
		this.scrutinyCarryForwardAsOn = scrutinyCarryForwardAsOn;
	}

	public Integer getPendingWithScrutiniser() {
		return pendingWithScrutiniser;
	}

	public void setPendingWithScrutiniser(Integer pendingWithScrutiniser) {
		this.pendingWithScrutiniser = pendingWithScrutiniser;
	}

	public Integer getPendingWithBank() {
		return pendingWithBank;
	}

	public void setPendingWithBank(Integer pendingWithBank) {
		this.pendingWithBank = pendingWithBank;
	}

	public String getGradingStatus() {
		return gradingStatus;
	}

	public void setGradingStatus(String gradingStatus) {
		this.gradingStatus = gradingStatus;
	}

	public String getGradingStatusRO() {
		return gradingStatusRO;
	}

	public void setGradingStatusRO(String gradingStatusRO) {
		this.gradingStatusRO = gradingStatusRO;
	}

	public String getGradingStatusHO() {
		return gradingStatusHO;
	}

	public void setGradingStatusHO(String gradingStatusHO) {
		this.gradingStatusHO = gradingStatusHO;
	}

	public String getGradingROComplianceStatus() {
		return gradingROComplianceStatus;
	}

	public void setGradingROComplianceStatus(String gradingROComplianceStatus) {
		this.gradingROComplianceStatus = gradingROComplianceStatus;
	}

	public String getGradingHOComplianceStatus() {
		return gradingHOComplianceStatus;
	}

	public void setGradingHOComplianceStatus(String gradingHOComplianceStatus) {
		this.gradingHOComplianceStatus = gradingHOComplianceStatus;
	}

	public String getGradingMakerRO() {
		return gradingMakerRO;
	}

	public void setGradingMakerRO(String gradingMakerRO) {
		this.gradingMakerRO = gradingMakerRO;
	}

	public String getGradingCheckerRO() {
		return gradingCheckerRO;
	}

	public void setGradingCheckerRO(String gradingCheckerRO) {
		this.gradingCheckerRO = gradingCheckerRO;
	}

	public String getGradingMakerHO() {
		return gradingMakerHO;
	}

	public void setGradingMakerHO(String gradingMakerHO) {
		this.gradingMakerHO = gradingMakerHO;
	}

	public String getGradingCheckerHO() {
		return gradingCheckerHO;
	}

	public void setGradingCheckerHO(String gradingCheckerHO) {
		this.gradingCheckerHO = gradingCheckerHO;
	}

	public String getGradingROComplianceMaker() {
		return gradingROComplianceMaker;
	}

	public void setGradingROComplianceMaker(String gradingROComplianceMaker) {
		this.gradingROComplianceMaker = gradingROComplianceMaker;
	}

	public String getGradingROComplianceChecker() {
		return gradingROComplianceChecker;
	}

	public void setGradingROComplianceChecker(String gradingROComplianceChecker) {
		this.gradingROComplianceChecker = gradingROComplianceChecker;
	}

	public String getGradingHOComplianceMaker() {
		return gradingHOComplianceMaker;
	}

	public void setGradingHOComplianceMaker(String gradingHOComplianceMaker) {
		this.gradingHOComplianceMaker = gradingHOComplianceMaker;
	}

	public String getGradingHOComplianceChecker() {
		return gradingHOComplianceChecker;
	}

	public void setGradingHOComplianceChecker(String gradingHOComplianceChecker) {
		this.gradingHOComplianceChecker = gradingHOComplianceChecker;
	}

	public Date getGradingMakerTimestampRO() {
		return gradingMakerTimestampRO;
	}

	public void setGradingMakerTimestampRO(Date gradingMakerTimestampRO) {
		this.gradingMakerTimestampRO = gradingMakerTimestampRO;
	}

	public Date getGradingCheckerTimestampRO() {
		return gradingCheckerTimestampRO;
	}

	public void setGradingCheckerTimestampRO(Date gradingCheckerTimestampRO) {
		this.gradingCheckerTimestampRO = gradingCheckerTimestampRO;
	}

	public Date getGradingMakerTimestampHO() {
		return gradingMakerTimestampHO;
	}

	public void setGradingMakerTimestampHO(Date gradingMakerTimestampHO) {
		this.gradingMakerTimestampHO = gradingMakerTimestampHO;
	}

	public Date getGradingCheckerTimestampHO() {
		return gradingCheckerTimestampHO;
	}

	public void setGradingCheckerTimestampHO(Date gradingCheckerTimestampHO) {
		this.gradingCheckerTimestampHO = gradingCheckerTimestampHO;
	}

	public Date getGradingROComplianceMakerTimestamp() {
		return gradingROComplianceMakerTimestamp;
	}

	public void setGradingROComplianceMakerTimestamp(Date gradingROComplianceMakerTimestamp) {
		this.gradingROComplianceMakerTimestamp = gradingROComplianceMakerTimestamp;
	}

	public Date getGradingROComplianceCheckerTimestamp() {
		return gradingROComplianceCheckerTimestamp;
	}

	public void setGradingROComplianceCheckerTimestamp(Date gradingROComplianceCheckerTimestamp) {
		this.gradingROComplianceCheckerTimestamp = gradingROComplianceCheckerTimestamp;
	}

	public Date getGradingHOComplianceMakerTimestamp() {
		return gradingHOComplianceMakerTimestamp;
	}

	public void setGradingHOComplianceMakerTimestamp(Date gradingHOComplianceMakerTimestamp) {
		this.gradingHOComplianceMakerTimestamp = gradingHOComplianceMakerTimestamp;
	}

	public Date getGradingHOComplianceCheckerTimestamp() {
		return gradingHOComplianceCheckerTimestamp;
	}

	public void setGradingHOComplianceCheckerTimestamp(Date gradingHOComplianceCheckerTimestamp) {
		this.gradingHOComplianceCheckerTimestamp = gradingHOComplianceCheckerTimestamp;
	}

	public Double getGradingScoreRO() {
		return gradingScoreRO;
	}

	public void setGradingScoreRO(Double gradingScoreRO) {
		this.gradingScoreRO = gradingScoreRO;
	}

	public String getGradingCategoryRO() {
		return gradingCategoryRO;
	}

	public void setGradingCategoryRO(String gradingCategoryRO) {
		this.gradingCategoryRO = gradingCategoryRO;
	}

	public Double getGradingScoreHO() {
		return gradingScoreHO;
	}

	public void setGradingScoreHO(Double gradingScoreHO) {
		this.gradingScoreHO = gradingScoreHO;
	}

	public String getGradingCategoryHO() {
		return gradingCategoryHO;
	}

	public void setGradingCategoryHO(String gradingCategoryHO) {
		this.gradingCategoryHO = gradingCategoryHO;
	}

	public String getGradingAssignedUser() {
		return gradingAssignedUser;
	}

	public void setGradingAssignedUser(String gradingAssignedUser) {
		this.gradingAssignedUser = gradingAssignedUser;
	} 
	 
}
