package eu.dnetlib.goldoa.domain;

import com.google.gwt.user.client.rpc.IsSerializable;

import java.util.Date;

/**
 * Created by antleb on 4/6/15.
 */
public class BudgetInfo implements IsSerializable {

    private String id;
    private Date date;
    private Date startDate;
    private Date endDate;
    private float amountRequested;
    private float amountGranted;
    private Currency currency;
    private float remaining;
    private Person user;
    private Organization organisation;
    private int statusCode;
    private Budget.Status status;
    private String comment;
    private BankAccount bankAccount;

    public BudgetInfo() {
    }

    public BudgetInfo(String id, Date date, Date startDate, Date endDate, float amountRequested, float amountGranted, Currency currency, float remaining, Person user, Organization organisation, int statusCode, Budget.Status status, String comment, BankAccount bankAccount) {
        this.id = id;
        this.date = date;
        this.startDate = startDate;
        this.endDate = endDate;
        this.amountRequested = amountRequested;
        this.amountGranted = amountGranted;
        this.currency = currency;
        this.remaining = remaining;
        this.user = user;
        this.organisation = organisation;
        this.statusCode = statusCode;
        this.status = status;
        this.comment = comment;
        this.bankAccount = bankAccount;
    }

    public Budget getBudget() {
       return  new Budget(this.id, this.date, this.startDate, this.endDate, this.amountRequested, this.amountGranted, this.currency, this.remaining, this.statusCode, this.user.getId(), this.organisation.getId(), this.bankAccount);
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public float getAmountRequested() {
        return amountRequested;
    }

    public void setAmountRequested(float amountRequested) {
        this.amountRequested = amountRequested;
    }

    public float getAmountGranted() {
        return amountGranted;
    }

    public void setAmountGranted(float amountGranted) {
        this.amountGranted = amountGranted;
    }

    public Currency getCurrency() {
        return currency;
    }

    public void setCurrency(Currency currency) {
        this.currency = currency;
    }

    public BankAccount getBankAccount() {
        return bankAccount;
    }

    public void setBankAccount(BankAccount bankAccount) {
        this.bankAccount = bankAccount;
    }

    public float getRemaining() {
        return remaining;
    }

    public void setRemaining(float remaining) {
        this.remaining = remaining;
    }

    public int getStatusCode() {
        return statusCode;
    }

    public void setStatusCode(int statusCode) {
        this.statusCode = statusCode;
    }

    public Person getUser() {
        return user;
    }

    public void setUser(Person user) {
        this.user = user;
    }

    public Organization getOrganisation() {
        return organisation;
    }

    public void setOrganisation(Organization organisation) {
        this.organisation = organisation;
    }

    public Budget.Status getStatus() {
        return status;
    }

    public void setStatus(Budget.Status status) {
        this.status = status;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }
}
