package com.abm.mainet.common.integration.acccount.dto;

import java.util.Date;
import java.util.List;

/**
 * 
 * @author Vivek.Kumar
 * @since  06 Feb 2017
 */
public class VoucherPostDTO {
// voucherType,voucherSubTypeId, departmentId, voucherReferenceNo these all making surrogate key
	//receipt date/payment entry date
	private Date voucherDate;
	// can be RV,PV,CV,JV
	private String voucherType;
	// from TDP prefix Ex- Demand, Collection, Adjustment etc
	private Long voucherSubTypeId;
	private Long departmentId;
	//like receipt No/bill no etc.// 
	private String voucherReferenceNo;
	private Date voucherReferenceDate;
	private String	narration;
	private String payerOrPayee;
	// set location of logged-in employee from userSession
	private Long fieldId;
	private Long orgId;
	private Long createdBy;
	private Date createdDate;
	private int langId;
	private String lgIpMac;
	
	private String entryType;
	
	/*
	 * Y if authorization required else N
	 * It is used only by Account Department
	 * decision will be taken from AUT Prefix
	 * if any voucher(RV,PV,CV etc) found in AUT
	 * then checker-maker is applicable else not applicable
	 *  
	 */
	private String authFlag;
	
	/**
	 *  set as PN-permanent, FYW-financial year wise
	 *  if templateType is PN then no need to set financialYearId
	 *  but if  templateType is FYW then financialYearId is mandatory to set
	 */
	private String templateType;
	private Long financialYearId;
	
	private List<VoucherPostDetailDTO> voucherDetails;
	
	public Date getVoucherDate() {
		return voucherDate;
	}
	public void setVoucherDate(Date voucherDate) {
		this.voucherDate = voucherDate;
	}
	public String getVoucherType() {
		return voucherType;
	}
	public void setVoucherType(String voucherType) {
		this.voucherType = voucherType;
	}
	public Long getVoucherSubTypeId() {
		return voucherSubTypeId;
	}
	public void setVoucherSubTypeId(Long voucherSubTypeId) {
		this.voucherSubTypeId = voucherSubTypeId;
	}
	public Long getDepartmentId() {
		return departmentId;
	}
	public void setDepartmentId(Long departmentId) {
		this.departmentId = departmentId;
	}
	public String getVoucherReferenceNo() {
		return voucherReferenceNo;
	}
	public void setVoucherReferenceNo(String voucherReferenceNo) {
		this.voucherReferenceNo = voucherReferenceNo;
	}
	public String getNarration() {
		return narration;
	}
	public void setNarration(String narration) {
		this.narration = narration;
	}
	public String getPayerOrPayee() {
		return payerOrPayee;
	}
	public void setPayerOrPayee(String payerOrPayee) {
		this.payerOrPayee = payerOrPayee;
	}
	public Long getFieldId() {
		return fieldId;
	}
	public void setFieldId(Long fieldId) {
		this.fieldId = fieldId;
	}
	public Long getOrgId() {
		return orgId;
	}
	public void setOrgId(Long orgId) {
		this.orgId = orgId;
	}
	public Long getCreatedBy() {
		return createdBy;
	}
	public void setCreatedBy(Long createdBy) {
		this.createdBy = createdBy;
	}
	public Date getCreatedDate() {
		return createdDate;
	}
	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}
	public int getLangId() {
		return langId;
	}
	public void setLangId(int langId) {
		this.langId = langId;
	}
	public String getLgIpMac() {
		return lgIpMac;
	}
	public void setLgIpMac(String lgIpMac) {
		this.lgIpMac = lgIpMac;
	}
	public String getAuthFlag() {
		return authFlag;
	}
	public void setAuthFlag(String authFlag) {
		this.authFlag = authFlag;
	}
	
	public String getTemplateType() {
		return templateType;
	}
	public void setTemplateType(String templateType) {
		this.templateType = templateType;
	}
	public Long getFinancialYearId() {
		return financialYearId;
	}
	public void setFinancialYearId(Long financialYearId) {
		this.financialYearId = financialYearId;
	}
	public List<VoucherPostDetailDTO> getVoucherDetails() {
		return voucherDetails;
	}
	public void setVoucherDetails(List<VoucherPostDetailDTO> voucherDetails) {
		this.voucherDetails = voucherDetails;
	}
	
	public Date getVoucherReferenceDate() {
		return voucherReferenceDate;
	}
	public void setVoucherReferenceDate(Date voucherReferenceDate) {
		this.voucherReferenceDate = voucherReferenceDate;
	}
	public String getEntryType() {
		return entryType;
	}
	public void setEntryType(String entryType) {
		this.entryType = entryType;
	}
	
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("VoucherPostDTO [voucherDate=");
		builder.append(voucherDate);
		builder.append(", voucherType=");
		builder.append(voucherType);
		builder.append(", voucherSubTypeId=");
		builder.append(voucherSubTypeId);
		builder.append(", departmentId=");
		builder.append(departmentId);
		builder.append(", voucherReferenceNo=");
		builder.append(voucherReferenceNo);
		builder.append(", voucherReferenceDate=");
		builder.append(voucherReferenceDate);
		builder.append(", narration=");
		builder.append(narration);
		builder.append(", payerOrPayee=");
		builder.append(payerOrPayee);
		builder.append(", fieldId=");
		builder.append(fieldId);
		builder.append(", orgId=");
		builder.append(orgId);
		builder.append(", createdBy=");
		builder.append(createdBy);
		builder.append(", createdDate=");
		builder.append(createdDate);
		builder.append(", langId=");
		builder.append(langId);
		builder.append(", lgIpMac=");
		builder.append(lgIpMac);
		builder.append(", entryType=");
		builder.append(entryType);
		builder.append(", authFlag=");
		builder.append(authFlag);
		builder.append(", templateType=");
		builder.append(templateType);
		builder.append(", financialYearId=");
		builder.append(financialYearId);
		builder.append(", voucherDetails=");
		builder.append(voucherDetails);
		builder.append("]");
		return builder.toString();
	}
	
	
	
	
}
