/**
* Terminal.
* @constructor
*/
function TerminalViewModel() {
    "use strict";
    /**
    * internal fields
    */
    var mSelf = this,
        o = arguments[0] || {};

    mSelf.Codigo = ko.observable(o.Codigo);
    mSelf.ChegadaPrevista = ko.observable(o.ChegadaPrevista);
    mSelf.ChegadaRealizada = ko.observable(o.ChegadaRealizada);
    mSelf.SaidaPrevista = ko.observable(o.SaidaPrevista);
    mSelf.SaidaRealizada = ko.observable(o.SaidaRealizada);
    mSelf.ExcluidoOperador = ko.observable(o.ExcluidoOperador);
    mSelf.DescricaoTerminal = ko.observable(o.DescricaoTerminal);
    mSelf.TerminalVigente = ko.observable(o.TerminalVigente);
    mSelf.IdentificadorTerminal = ko.observable(o.IdentificadorTerminal);
    mSelf.IdentificadorProximoTerminal = ko.observable(o.IdentificadorProximoTerminal);
    mSelf.CodigoGrupoEntidade = ko.observable(o.CodigoGrupoEntidade);
    mSelf.IdentificadorItinerario = ko.observable(o.IdentificadorItinerario);
    mSelf.ChegadaAtrasada = ko.observable(o.ChegadaAtrasada);
    mSelf.ChegadaAdiantada = ko.observable(o.ChegadaAdiantada);
    mSelf.SaidaAtrasada = ko.observable(o.SaidaAtrasada);
    mSelf.SaidaAdiantada = ko.observable(o.SaidaAdiantada);
    mSelf.ChegadaAnulada = ko.observable(o.ChegadaAnulada);
    mSelf.SaidaAnulada = ko.observable(o.SaidaAnulada);
    mSelf.CodigoLinhaTabelaOrigem = ko.observable(o.CodigoLinhaTabelaOrigem);
    mSelf.ChegadaVeiculo = ko.observable(o.ChegadaVeiculo);
    mSelf.SaidaVeiculo = ko.observable(o.SaidaVeiculo);
    mSelf.ChegadaReprocesso = ko.observable(o.ChegadaReprocesso);
    mSelf.SaidaReprocesso = ko.observable(o.SaidaReprocesso);
    mSelf.ChegadaSuprimida = ko.observable(o.ChegadaSuprimida);
    mSelf.SaidaSuprimida = ko.observable(o.SaidaSuprimida);
    mSelf.ChegadaQuebraPlanejamento = ko.observable(o.ChegadaQuebraPlanejamento);
    mSelf.SaidaQuebraPlanejamento = ko.observable(o.SaidaQuebraPlanejamento);
    mSelf.ChegadaAtrasoOperacao = ko.observable(o.ChegadaAtrasoOperacao);
    mSelf.SaidaAtrasoOperacao = ko.observable(o.SaidaAtrasoOperacao);
    mSelf.CodigoLinhasTabelas = ko.observable(o.CodigoLinhasTabelas);
    mSelf.LinhasTabelas = ko.observable(o.LinhasTabelas);
    mSelf.LinhaTabelaOrigem = ko.observable(o.LinhaTabelaOrigem);
    mSelf.LinhasTerminaisFormas = ko.observable(o.LinhasTerminaisFormas);
    mSelf.VeiculosAlarmes = ko.observable(o.VeiculosAlarmes);
    mSelf.CodigoLinha = ko.observable(o.CodigoLinha);
    mSelf.Linha = ko.observable(o.Linha);

    mSelf.toJson = function () {
        var json = {};

        for (var i in mSelf) {
            if (i != "toJson" && i != "Linha" && mSelf[i]() != null)
                json[i] = mSelf[i]();
        }

        return json;
    };
}