package it.integry.integrywmsnative.gest.vendita.dto;

import android.os.Parcel;
import android.os.Parcelable;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import it.integry.integrywmsnative.core.utility.UtilityLogger;

public class OrdineVenditaInevasoDTO implements Parcelable {

    private String data;
    private Integer numero;
    private String gestione;
    private String listino;
    private String termCons;
    private String codAuto;
    private String descrizioneAuto;
    private String codVvet;
    private String descrizioneVettore;
    private String dataInizTrasp;
    private String descrizionePaga;
    private String rifOrd;
    private String codAnagOrd;
    private String codJcom;
    private String descrizioneCom;
    private String ragSocCom;
    private String ragSocOrd;
    private String destinatario;
    private String citta;
    private String provincia;
    private String indirizzo;
    private BigDecimal pesoTotale;
    private BigDecimal numCnfdaEvadere;
    private BigDecimal numCnfDisp;
    private String dataCons;
    private String barcode;
    private Integer numRighe;
    private Integer righeInPartenza;
    private BigDecimal saldoContabile;
    private String codVzon;
    private String ragSocOrdV;


    protected OrdineVenditaInevasoDTO(Parcel in) {
        data = in.readString();
        if (in.readByte() == 0) {
            numero = null;
        } else {
            numero = in.readInt();
        }
        gestione = in.readString();
        listino = in.readString();
        termCons = in.readString();
        codAuto = in.readString();
        descrizioneAuto = in.readString();
        codVvet = in.readString();
        descrizioneVettore = in.readString();
        dataInizTrasp = in.readString();
        descrizionePaga = in.readString();
        rifOrd = in.readString();
        codAnagOrd = in.readString();
        codJcom = in.readString();
        descrizioneCom = in.readString();
        ragSocCom = in.readString();
        ragSocOrd = in.readString();
        destinatario = in.readString();
        citta = in.readString();
        provincia = in.readString();
        indirizzo = in.readString();
        dataCons = in.readString();
        barcode = in.readString();
        if (in.readByte() == 0) {
            numRighe = null;
        } else {
            numRighe = in.readInt();
        }
        if (in.readByte() == 0) {
            righeInPartenza = null;
        } else {
            righeInPartenza = in.readInt();
        }
        codVzon = in.readString();
        ragSocOrdV = in.readString();
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(data);
        if (numero == null) {
            dest.writeByte((byte) 0);
        } else {
            dest.writeByte((byte) 1);
            dest.writeInt(numero);
        }
        dest.writeString(gestione);
        dest.writeString(listino);
        dest.writeString(termCons);
        dest.writeString(codAuto);
        dest.writeString(descrizioneAuto);
        dest.writeString(codVvet);
        dest.writeString(descrizioneVettore);
        dest.writeString(dataInizTrasp);
        dest.writeString(descrizionePaga);
        dest.writeString(rifOrd);
        dest.writeString(codAnagOrd);
        dest.writeString(codJcom);
        dest.writeString(descrizioneCom);
        dest.writeString(ragSocCom);
        dest.writeString(ragSocOrd);
        dest.writeString(destinatario);
        dest.writeString(citta);
        dest.writeString(provincia);
        dest.writeString(indirizzo);
        dest.writeString(dataCons);
        dest.writeString(barcode);
        if (numRighe == null) {
            dest.writeByte((byte) 0);
        } else {
            dest.writeByte((byte) 1);
            dest.writeInt(numRighe);
        }
        if (righeInPartenza == null) {
            dest.writeByte((byte) 0);
        } else {
            dest.writeByte((byte) 1);
            dest.writeInt(righeInPartenza);
        }
        dest.writeString(codVzon);
        dest.writeString(ragSocOrdV);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    public static final Creator<OrdineVenditaInevasoDTO> CREATOR = new Creator<OrdineVenditaInevasoDTO>() {
        @Override
        public OrdineVenditaInevasoDTO createFromParcel(Parcel in) {
            return new OrdineVenditaInevasoDTO(in);
        }

        @Override
        public OrdineVenditaInevasoDTO[] newArray(int size) {
            return new OrdineVenditaInevasoDTO[size];
        }
    };

    public String getDataOrdS() {
        return data;
    }

    public Date getDataOrdD() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        return sdf.parse(getDataOrdS());
    }

    public OrdineVenditaInevasoDTO setData(String data) {
        this.data = data;
        return this;
    }

    public Integer getNumOrd() {
        return numero;
    }

    public OrdineVenditaInevasoDTO setNumero(Integer numero) {
        this.numero = numero;
        return this;
    }

    public String getGestione() {
        return gestione;
    }

    public OrdineVenditaInevasoDTO setGestione(String gestione) {
        this.gestione = gestione;
        return this;
    }

    public String getListino() {
        return listino;
    }

    public OrdineVenditaInevasoDTO setListino(String listino) {
        this.listino = listino;
        return this;
    }

    public String getTermCons() {
        return termCons;
    }

    public OrdineVenditaInevasoDTO setTermCons(String termCons) {
        this.termCons = termCons;
        return this;
    }

    public String getCodAuto() {
        return codAuto;
    }

    public OrdineVenditaInevasoDTO setCodAuto(String codAuto) {
        this.codAuto = codAuto;
        return this;
    }

    public String getDescrizioneAuto() {
        return descrizioneAuto;
    }

    public OrdineVenditaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
        this.descrizioneAuto = descrizioneAuto;
        return this;
    }

    public String getCodVvet() {
        return codVvet;
    }

    public OrdineVenditaInevasoDTO setCodVvet(String codVvet) {
        this.codVvet = codVvet;
        return this;
    }

    public String getDescrizioneVettore() {
        return descrizioneVettore;
    }

    public OrdineVenditaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
        this.descrizioneVettore = descrizioneVettore;
        return this;
    }

    public String getDataInizTraspS() {
        return dataInizTrasp;
    }

    public Date getDataInizTraspD() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        return sdf.parse(getDataInizTraspS());
    }

    public OrdineVenditaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
        this.dataInizTrasp = dataInizTrasp;
        return this;
    }

    public String getDescrizionePaga() {
        return descrizionePaga;
    }

    public OrdineVenditaInevasoDTO setDescrizionePaga(String descrizionePaga) {
        this.descrizionePaga = descrizionePaga;
        return this;
    }

    public String getRifOrd() {
        return rifOrd;
    }

    public OrdineVenditaInevasoDTO setRifOrd(String rifOrd) {
        this.rifOrd = rifOrd;
        return this;
    }

    public String getCodAnagOrd() {
        return codAnagOrd;
    }

    public OrdineVenditaInevasoDTO setCodAnagOrd(String codAnagOrd) {
        this.codAnagOrd = codAnagOrd;
        return this;
    }

    public String getCodJcom() {
        return codJcom;
    }

    public OrdineVenditaInevasoDTO setCodJcom(String codJcom) {
        this.codJcom = codJcom;
        return this;
    }

    public String getDescrizioneCom() {
        return descrizioneCom;
    }

    public OrdineVenditaInevasoDTO setDescrizioneCom(String descrizioneCom) {
        this.descrizioneCom = descrizioneCom;
        return this;
    }

    public String getRagSocCom() {
        return ragSocCom;
    }

    public OrdineVenditaInevasoDTO setRagSocCom(String ragSocCom) {
        this.ragSocCom = ragSocCom;
        return this;
    }

    public String getRagSocOrd() {
        return ragSocOrd;
    }

    public OrdineVenditaInevasoDTO setRagSocOrd(String ragSocOrd) {
        this.ragSocOrd = ragSocOrd;
        return this;
    }

    public String getDestinatario() {
        return destinatario;
    }

    public OrdineVenditaInevasoDTO setDestinatario(String destinatario) {
        this.destinatario = destinatario;
        return this;
    }

    public String getCitta() {
        return citta;
    }

    public OrdineVenditaInevasoDTO setCitta(String citta) {
        this.citta = citta;
        return this;
    }

    public String getProvincia() {
        return provincia;
    }

    public OrdineVenditaInevasoDTO setProvincia(String provincia) {
        this.provincia = provincia;
        return this;
    }

    public String getIndirizzo() {
        return indirizzo;
    }

    public OrdineVenditaInevasoDTO setIndirizzo(String indirizzo) {
        this.indirizzo = indirizzo;
        return this;
    }

    public BigDecimal getPesoTotale() {
        return pesoTotale;
    }

    public OrdineVenditaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
        this.pesoTotale = pesoTotale;
        return this;
    }

    public BigDecimal getNumCnfdaEvadere() {
        return numCnfdaEvadere;
    }

    public OrdineVenditaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
        this.numCnfdaEvadere = numCnfdaEvadere;
        return this;
    }

    public BigDecimal getNumCnfDisp() {
        return numCnfDisp;
    }

    public OrdineVenditaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
        this.numCnfDisp = numCnfDisp;
        return this;
    }

    public String getDataConsS() {
        return dataCons;
    }

    public Date getDataConsD() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        try {
            return sdf.parse(getDataConsS());
        } catch (ParseException e) {
            UtilityLogger.errorMe(e);
            return null;
        }
    }

    public OrdineVenditaInevasoDTO setDataCons(String dataCons) {
        this.dataCons = dataCons;
        return this;
    }

    public String getBarcode() {
        return barcode;
    }

    public OrdineVenditaInevasoDTO setBarcode(String barcode) {
        this.barcode = barcode;
        return this;
    }

    public Integer getNumRighe() {
        return numRighe;
    }

    public OrdineVenditaInevasoDTO setNumRighe(Integer numRighe) {
        this.numRighe = numRighe;
        return this;
    }

    public Integer getRigheInPartenza() {
        return righeInPartenza;
    }

    public OrdineVenditaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
        this.righeInPartenza = righeInPartenza;
        return this;
    }

    public BigDecimal getSaldoContabile() {
        return saldoContabile;
    }

    public OrdineVenditaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
        this.saldoContabile = saldoContabile;
        return this;
    }

    public String getCodVzon() {
        return codVzon;
    }

    public OrdineVenditaInevasoDTO setCodVzon(String codVzon) {
        this.codVzon = codVzon;
        return this;
    }

    public String getRagSocOrdV() {
        return ragSocOrdV;
    }

    public OrdineVenditaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
        this.ragSocOrdV = ragSocOrdV;
        return this;
    }
}
