public PedidoLocacaoViewModel(PedidoLocacao PedidoLocacao)
        {
            Id                     = PedidoLocacao.Id;
            Unidade                = new UnidadeViewModel(PedidoLocacao.Unidade);
            Cliente                = new ClienteViewModel(PedidoLocacao.Cliente);
            TipoLocacao            = new TipoLocacaoViewModel(PedidoLocacao.TipoLocacao);
            Valor                  = PedidoLocacao.Valor.ToString("N2");
            ValorTotal             = PedidoLocacao.ValorTotal.ToString("N2");
            Desconto               = PedidoLocacao.Desconto == null || PedidoLocacao.Desconto.Id <= 0 ? null : new DescontoViewModel(PedidoLocacao.Desconto);
            IdDesconto             = PedidoLocacao.Desconto == null || PedidoLocacao.Desconto.Id <= 0 ? 0 : PedidoLocacao.Desconto.Id;
            PossuiFiador           = PedidoLocacao.PossuiFiador;
            NomeFiador             = PedidoLocacao.NomeFiador;
            DataReajuste           = PedidoLocacao.DataReajuste;
            FormaGarantia          = PedidoLocacao.FormaGarantia;
            TipoReajuste           = PedidoLocacao.TipoReajuste;
            ValorReajuste          = PedidoLocacao.ValorReajuste.ToString("N2");
            PrazoReajuste          = PedidoLocacao.PrazoReajuste;
            FormaPagamento         = PedidoLocacao.FormaPagamento;
            DataPrimeiroPagamento  = PedidoLocacao.DataPrimeiroPagamento;
            ValorPrimeiroPagamento = PedidoLocacao.ValorPrimeiroPagamento.ToString("N2");
            DataDemaisPagamentos   = PedidoLocacao.DataDemaisPagamentos;
            CicloPagamentos        = PedidoLocacao.CicloPagamentos;
            DataVigenciaInicio     = PedidoLocacao.DataVigenciaInicio;
            DataVigenciaFim        = PedidoLocacao.DataVigenciaFim;
            Status                 = PedidoLocacao.Status;
            Ativo                  = PedidoLocacao.Ativo;
            PossuiCicloMensal      = PedidoLocacao.PossuiCicloMensal;

            Antecipado               = PedidoLocacao.Antecipado;
            RamoAtividade            = PedidoLocacao.RamoAtividade;
            PrazoContratoDeterminado = PedidoLocacao.PrazoContratoDeterminado;
            ValorDeposito            = PedidoLocacao.ValorDeposito;

            PedidoLocacaoLancamentosAdicionais = PedidoLocacao?.PedidoLocacaoLancamentosAdicionais?.Select(x => new PedidoLocacaoLancamentoAdicionalViewModel(x))?.ToList() ?? new List <PedidoLocacaoLancamentoAdicionalViewModel>();
        }
        public PedidoLocacao ToEntity()
        {
            var entidade = new PedidoLocacao
            {
                Id = Id,

                Unidade     = Unidade.ToEntity(),
                Cliente     = Cliente.ToEntity(),
                TipoLocacao = TipoLocacao.ToEntity(),
                Valor       = Convert.ToDecimal(Valor),
                ValorTotal  = Convert.ToDecimal(ValorTotal),
                Desconto    = IdDesconto > 0 ? new Desconto {
                    Id = IdDesconto
                } : null,
                PossuiFiador           = PossuiFiador,
                NomeFiador             = NomeFiador,
                FormaGarantia          = FormaGarantia,
                DataReajuste           = DataReajuste,
                TipoReajuste           = TipoReajuste,
                ValorReajuste          = Convert.ToDecimal(ValorReajuste),
                PrazoReajuste          = PrazoReajuste,
                FormaPagamento         = FormaPagamento,
                DataPrimeiroPagamento  = DataPrimeiroPagamento,
                ValorPrimeiroPagamento = Convert.ToDecimal(ValorPrimeiroPagamento),
                DataDemaisPagamentos   = DataDemaisPagamentos,
                CicloPagamentos        = CicloPagamentos,
                DataVigenciaInicio     = DataVigenciaInicio,
                DataVigenciaFim        = DataVigenciaFim,
                Status            = Status,
                Ativo             = Ativo,
                PossuiCicloMensal = PossuiCicloMensal,

                Antecipado               = Antecipado,
                RamoAtividade            = RamoAtividade,
                PrazoContratoDeterminado = PrazoContratoDeterminado,
                ValorDeposito            = ValorDeposito,

                PedidoLocacaoLancamentosAdicionais = PedidoLocacaoLancamentosAdicionais?.Select(x => x.ToEntity())?.ToList() ?? new List <PedidoLocacaoLancamentoAdicional>(),
            };

            return(entidade);
        }