示例#1
0
 private void dgdTabela_DoubleClick(object sender, EventArgs e)
 {
     if (tpOperacao == Enumeradores.TipoOperacao.Select)
     {
         Selecionar();
     }
     else
     {
         if (btnEditar.Enabled)
         {
             OrcamentoDTO orcamentoDTO = (OrcamentoDTO)OrcamentoBindingSource.Current;
             if (orcamentoDTO != null)
             {
                 if (orcamentoDTO.PosicaoOrcamentoDescricao.Equals("Pedido Finalizado"))
                 {
                     MessageBox.Show("Não é possível alterar um orçamento já finalizado!", "Impossível prosseguir!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     Cursor = Cursors.Default;
                     return;
                 }
             }
             Cursor = Cursors.WaitCursor;
             frmUpdateOrcamento frmUpdate = new frmUpdateOrcamento(this, Enumeradores.TipoOperacao.Update, OrcamentoBindingSource);
             frmUpdate.Show();
             Cursor = Cursors.Default;
         }
     }
 }
示例#2
0
        public frmUpdateOrcamento(Form frm, Enumeradores.TipoOperacao tpo, BindingSource bnd)
        {
            InitializeComponent();

            try
            {
                frmGrid          = frm;
                tpOperacao       = tpo;
                bndOrcamentoGrid = bnd;
                MdiParent        = frmGrid.MdiParent;

                if (tpOperacao.Equals(Enumeradores.TipoOperacao.Insert))
                {
                    OrcamentoDTOBindingSource.AddNew();
                }
                else
                {
                    orcamentoDTO = orcamentoGL.GetOrcamento(((OrcamentoDTO)bndOrcamentoGrid.Current).Id);
                    OrcamentoDTOBindingSource.DataSource = orcamentoDTO;
                    orcamentoDTO.Cliente = clienteGL.GetCliente(orcamentoDTO.Cliente.Id);
                    Recalcula();
                }

                orcamentoDTO = (OrcamentoDTO)OrcamentoDTOBindingSource.Current;
                orcamentoDTOVersaoOriginal = new OrcamentoDTO(orcamentoDTO);
            }
            catch
            {
                throw;
            }
        }
示例#3
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string desc = txtSitua.Text;
                desc = desc.Trim();
                int qtd = desc.Count();

                if (qtd > 200)
                {
                    throw new Exception("O campo 'Situação' não pode passar de 200 caracteres");
                }

                FuncionarioDTO funcionario = cboFuncio.SelectedItem as FuncionarioDTO;
                AutoDTO        auto        = cboAuto.SelectedItem as AutoDTO;
                PecasDTO       pecas       = cboPeca.SelectedItem as PecasDTO;

                OrcamentoDTO dto = new OrcamentoDTO();
                dto.FuncionarioId = funcionario.Id;
                dto.AutoId        = auto.Id;
                dto.PecaId        = pecas.Id;
                dto.Situacao      = txtSitua.Text;
                dto.Valor         = nudValor.Value;

                OrcamentoBusiness buss = new OrcamentoBusiness();
                buss.Salvar(dto);

                MessageBox.Show("Orcamento efetuado com sucesso.", "SIGMA", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "SIGMA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#4
0
        private DataTable RelOrcamentoToDataTable(OrcamentoDTO orcamentoDTO, bool ehPorClasse)
        {
            DataTable  dta = new DataTable();
            DataColumn numeroNomeEmpresa   = new DataColumn("numeroNomeEmpresa");
            DataColumn numeroDescricaoObra = new DataColumn("numeroDescricaoObra");
            DataColumn orcamento           = new DataColumn("orcamento");
            DataColumn descricaoOrcamento  = new DataColumn("descricaoOrcamento");
            DataColumn composicao          = new DataColumn("composicao");
            DataColumn descricaoComposicao = new DataColumn("descricaoComposicao");
            DataColumn unidadeMedida       = new DataColumn("unidadeMedida");
            DataColumn classe                = new DataColumn("classe");
            DataColumn quantidade            = new DataColumn("quantidade", System.Type.GetType("System.Decimal"));
            DataColumn preco                 = new DataColumn("preco", System.Type.GetType("System.Decimal"));
            DataColumn girErro               = new DataColumn("girErro");
            DataColumn descricaoClasse       = new DataColumn("descricaoClasse");
            DataColumn codigoDescricaoClasse = new DataColumn("codigoDescricaoClasse");

            dta.Columns.Add(numeroNomeEmpresa);
            dta.Columns.Add(numeroDescricaoObra);
            dta.Columns.Add(orcamento);
            dta.Columns.Add(descricaoOrcamento);
            dta.Columns.Add(composicao);
            dta.Columns.Add(descricaoComposicao);
            dta.Columns.Add(unidadeMedida);
            dta.Columns.Add(classe);
            dta.Columns.Add(quantidade);
            dta.Columns.Add(preco);
            dta.Columns.Add(girErro);
            if (ehPorClasse)
            {
                dta.Columns.Add(descricaoClasse);
                dta.Columns.Add(codigoDescricaoClasse);
            }

            foreach (OrcamentoComposicaoDTO orcamentoComposicao in orcamentoDTO.ListaOrcamentoComposicao)
            {
                DataRow row = dta.NewRow();
                row[numeroNomeEmpresa]   = orcamentoDTO.Empresa.NumeroNomeEmpresa;
                row[numeroDescricaoObra] = orcamentoDTO.Obra.NumeroDescricao;
                row[orcamento]           = orcamentoDTO.Id;
                row[descricaoOrcamento]  = orcamentoDTO.Descricao;
                row[composicao]          = orcamentoComposicao.Composicao.Id;
                row[descricaoComposicao] = orcamentoComposicao.Composicao.Descricao;
                row[unidadeMedida]       = orcamentoComposicao.Composicao.UnidadeMedidaSigla;
                row[classe]     = orcamentoComposicao.codigoClasse;
                row[quantidade] = orcamentoComposicao.Quantidade.Value;
                row[preco]      = orcamentoComposicao.Preco.Value;
                row[girErro]    = "";

                if (ehPorClasse)
                {
                    row[descricaoClasse]       = orcamentoComposicao.Classe.Descricao;
                    row[codigoDescricaoClasse] = orcamentoComposicao.codigoClasse + " - " + orcamentoComposicao.Classe.Descricao;
                }

                dta.Rows.Add(row);
            }

            return(dta);
        }
示例#5
0
        private void Navegar(int id_orcamento)
        {
            Cursor = Cursors.WaitCursor;
            try
            {
                orcamentoDTO = orcamentoGL.GetOrcamento(id_orcamento);
                OrcamentoDTOBindingSource.DataSource            = orcamentoDTO;
                OrcamentoProdutoServicoBindingSource.DataSource = orcamentoDTO.Produtoservico;
                orcamentoDTO.Cliente       = clienteGL.GetCliente(orcamentoDTO.Cliente.Id);
                orcamentoDTOVersaoOriginal = new OrcamentoDTO(orcamentoDTO);
                if (orcamentoDTO.PosicaoOrcamento.Equals(15))
                {
                    acesso.Validate(this);
                    acesso.Validate(barManager);
                }

                Recalcula();
                xtraTabControlDetalhesOrcamento.SelectedTabPageIndex = 0;
                txtCodOrcamento.Focus();
                xtraTabPageItensOrcamento.Refresh();
            }
            catch
            { }
            Cursor = Cursors.Default;
        }
示例#6
0
        public async Task <IActionResult> Put(int id, [FromBody] OrcamentoDTO orcamentoDTO)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (id != orcamentoDTO.OrcamentoId)
                {
                    return(BadRequest());
                }


                var retorno = await _orcamentoServiceApplication.Update(orcamentoDTO);

                return(Ok(retorno));
            }

            catch (Exception e)
            {
                return(BadRequest("Falha ao alterar orçamento."));
            }
        }
示例#7
0
        public void Run()
        {
            var orcamento = new OrcamentoDTO();

            orcamento.AdicionarItem(new ItemDTO {
                Nome = "CANETA", Valor = 250.0
            });
            orcamento.AdicionarItem(new ItemDTO {
                Nome = "LAPIS", Valor = 250.0
            });
            orcamento.AdicionarItem(new ItemDTO {
                Nome = "Fogao", Valor = 250.0
            });
            orcamento.AdicionarItem(new ItemDTO {
                Nome = "Geladeira", Valor = 250.0
            });
            orcamento.AdicionarItem(new ItemDTO {
                Nome = "Sofa", Valor = 250.0
            });
            orcamento.AdicionarItem(new ItemDTO {
                Nome = "Compiuter", Valor = 250.0
            });
            orcamento.AdicionarItem(new ItemDTO {
                Nome = "Teste", Valor = 250.0
            });

            var CalculadorDescontos = new CalculadoraDescontos(orcamento);

            orcamento = CalculadorDescontos.CalcularDescontos();

            Console.WriteLine("Valor Compra: R$" + orcamento.Valor);
            Console.WriteLine("Descontos: R$" + orcamento.Descontos);
            Console.WriteLine("Total: R$" + (orcamento.Valor - orcamento.Descontos));
        }
示例#8
0
        public OrcamentoDTO saveOrcamento(OrcamentoDTO orcamento)
        {
            try
            {
                using (ISession session = NHibernateHelper.getItemConfiguracao().OpenSession())
                {
                    NHibernateDAL <OrcamentoDTO> orcamentoDAL          = new NHibernateDAL <OrcamentoDTO>(session);
                    IList <OrcamentoDetalheDTO>  listaOrcamentoDetalhe = orcamento.listaOrcamentoDetalhe;

                    orcamentoDAL.saveOrUpdate(orcamento);

                    foreach (OrcamentoDetalheDTO orcamentoDetalhe in listaOrcamentoDetalhe)
                    {
                        orcamentoDetalhe.orcamento = orcamento;
                        NHibernateDAL <OrcamentoDetalheDTO> orcamentoDetDAL = new NHibernateDAL <OrcamentoDetalheDTO>(session);
                        orcamentoDetDAL.saveOrUpdate(orcamentoDetalhe);
                    }

                    session.Flush();
                }
                return(orcamento);
            }
            catch (Exception ex)
            {
                FaultException fault = new FaultException(ex.Message);
                throw fault;
            }
        }
示例#9
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            var valorOrcamento = txtValor.Text;

            if (valorOrcamento == string.Empty)
            {
                valorOrcamento = Convert.ToString(0);
            }

            var novoOrcamento = new OrcamentoDTO
            {
                Competencia        = dtpData.Value,
                ValorOrcamento     = Convert.ToDecimal(valorOrcamento),
                DescricaoOrcamento = txtDescricao.Text
            };


            if (ValidarNovoOrcamento(novoOrcamento))
            {
                Controler.AdicionarOrcamento(novoOrcamento);
                AtualizarGrid();
            }


            dtpData.Value     = DateTime.Now;
            txtDescricao.Text = null;
            txtValor.Text     = null;
        }
示例#10
0
        /// <summary>
        /// Retorna um objeto OrcamentoDTO caso a instrução seja bem sucedida.
        /// </summary>
        /// <param name="todoseventos">true = Todos os eventos inclusive os não disponíveis para visualização, caso contrário, todos os eventos exceto os não disponíveis para visualização</param>
        /// <returns></returns>
        public OrcamentoDTO GetOrcamento(int id_funcionario, int processamento, DateTime mesano, bool todoseventos)
        {
            try
            {
                dbCommand = db.GetStoredProcCommand(MechTech.Util.Global.EmpresaAtiva + ".GetOrcamento");
                db.AddInParameter(dbCommand, "@id_funcionario", DbType.Int32, id_funcionario);
                db.AddInParameter(dbCommand, "@mesano", DbType.Date, mesano);

                using (IDataReader DR = db.ExecuteReader(dbCommand))
                {
                    DR.Read();
                    OrcamentoDTO tab = new OrcamentoDTO();
                    tab.Id = int.Parse(DR["id"].ToString());
                    //tab.Id_funcionario = int.Parse(DR["id_funcionario"].ToString());
                    //if (Convert.IsDBNull(DR["mesano"]))
                    //    tab.Mesano = null;
                    //else
                    //    tab.Mesano = (DateTime)DR["mesano"];

                    //if (Convert.IsDBNull(DR["envioemail"]))
                    //    tab.EnvioEmail = null;
                    //else
                    //    tab.EnvioEmail = (DateTime)DR["envioemail"];

                    //tab.Orcamentoevento = new OrcamentoEventoDAO().GetOrcamentoeventoOrcamento(tab.Id, processamento, todoseventos);

                    return(tab);
                }
            }
            catch
            {
                throw;
            }
        }
示例#11
0
        /// <summary>
        /// Retorna um objeto OrcamentoDTO caso a instrução seja bem sucedida.
        /// </summary>
        /// <param name="mesano">null = Mês anterior em relação ao mês/ano ativo, caso contrário, mês anterior em relação a data informada</param>
        /// <returns></returns>
        public OrcamentoDTO GetOrcamentoMesanterior(int id_funcionario, int processamento, DateTime?mesano)
        {
            DateTime?mesanoanterior = null;

            if (!mesano.HasValue)
            {
                mesanoanterior = MechTech.Util.Global.MesanoAtivo.AddDays(-1);
            }
            else
            {
                mesanoanterior = mesano;
            }

            try
            {
                dbCommand = db.GetStoredProcCommand(MechTech.Util.Global.EmpresaAtiva + ".GetOrcamento");
                db.AddInParameter(dbCommand, "@id_funcionario", DbType.Int32, id_funcionario);
                db.AddInParameter(dbCommand, "@mesano", DbType.Date, Convert.ToDateTime("01/" + mesanoanterior.Value.Month.ToString() + "/" + mesanoanterior.Value.Year.ToString()));

                using (IDataReader DR = (Transaction == null ? db.ExecuteReader(dbCommand) : db.ExecuteReader(dbCommand, Transaction)))
                {
                    DR.Read();
                    OrcamentoDTO tab = new OrcamentoDTO();
                    tab.Id = int.Parse(DR["id"].ToString());

                    return(tab);
                }
            }
            catch
            {
                throw;
            }
        }
示例#12
0
        /// <summary>
        /// Transferência de Funcionários.
        /// </summary>
        public void InsertTotal(OrcamentoDTO orcamento)
        {
            try
            {
                //dbCommand = db.GetSqlStringCommand(" INSERT INTO " + MechTech.Util.Global.EmpresaAtiva + ".orcamento(" +
                //                                   "    id_funcionario," +
                //                                   "    mesano" +
                //                                   ") VALUES (" +
                //                                   "    @id_funcionario," +
                //                                   "    @mesano);" +
                //                                   " SELECT currval('" + MechTech.Util.Global.EmpresaAtiva + ".orcamento_id_seq');");
                //db.AddInParameter(dbCommand, "@id_funcionario", DbType.Int32, orcamento.Id_funcionario);
                //db.AddInParameter(dbCommand, "@mesano", DbType.Date, (DateTime?)orcamento.Mesano);
                //int id = Convert.ToInt32(db.ExecuteScalar(dbCommand, Transaction.DBTransaction));

                //OrcamentoEventoDAO orcamentoeventodata = new OrcamentoEventoDAO();
                //foreach (OrcamentoEventoDTO itemorcamento in orcamento.Orcamentoevento)
                //{
                //    itemorcamento.Id_orcamento = id;
                //    orcamentoeventodata.Insert(itemorcamento);
                //}
            }
            catch
            {
                throw;
            }
        }
示例#13
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                string desc = txtDesc.Text;
                desc = desc.Trim();
                int qtd = desc.Count();

                if (qtd > 200)
                {
                    throw new Exception("O campo 'Descrição' não pode passar de 200 caracteres");
                }


                ClienteDTO   cliente   = cboCliente.SelectedItem as ClienteDTO;
                OrcamentoDTO orcamento = cboOrcamento.SelectedItem as OrcamentoDTO;

                ServicoDTO dto = new ServicoDTO();
                dto.ClienteId   = cliente.Id;
                dto.OrcamentoId = orcamento.Id;
                dto.Data        = mkbData.Text;
                dto.Descricao   = txtDesc.Text;

                ServicoBusiness buss = new ServicoBusiness();
                buss.Salvar(dto);

                MessageBox.Show("Serviço salvo com sucesso!", "SIGMA", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "SIGMA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#14
0
        public ActionResult Imprimir(FormatoExportacaoArquivo formato)
        {
            var model = Session["Filtro"] as RelOrcamentoListaViewModel;

            if (model == null)
            {
                messageQueue.Add(Application.Resource.Sigim.ErrorMessages.NaoExistemRegistros, TypeMessage.Error);
                return(PartialView("_NotificationMessagesPartial"));
            }

            model.Filtro.ListaClasse = Newtonsoft.Json.JsonConvert.DeserializeObject <List <ClasseDTO> >(model.JsonItensClasse);

            OrcamentoDTO orcamentoDTO = TempData["orcamentoDTO"] as OrcamentoDTO;

            if (orcamentoDTO == null)
            {
                orcamentoDTO             = orcamentoAppService.GerarRelatorioOrcamento(model.Filtro);
                TempData["orcamentoDTO"] = orcamentoDTO;
            }

            var arquivo = orcamentoAppService.ExportarRelOrcamento(model.Filtro, orcamentoDTO, formato);

            if (arquivo != null)
            {
                Response.Buffer = false;
                Response.ClearContent();
                Response.ClearHeaders();
                return(File(arquivo.Stream, arquivo.ContentType, arquivo.NomeComExtensao));
            }

            return(PartialView("_NotificationMessagesPartial"));
        }
示例#15
0
        public OrcamentoDTO selectOrcamentoCompleto(OrcamentoDTO orcamento)
        {
            try
            {
                OrcamentoDTO resultado = null;

                if (orcamento != null && orcamento.id > 0)
                {
                    using (ISession session = NHibernateHelper.getItemConfiguracao().OpenSession())
                    {
                        NHibernateDAL <OrcamentoDTO> orcamentoDAL = new NHibernateDAL <OrcamentoDTO>(session);
                        resultado = orcamentoDAL.selectId <OrcamentoDTO>((int)orcamento.id);

                        OrcamentoDetalheDTO orcamentoDetalhe = new OrcamentoDetalheDTO();
                        orcamentoDetalhe.orcamento = resultado;
                        OrcamentoDetalheDAL orcamentoDetDAL = new OrcamentoDetalheDAL(session);
                        resultado.listaOrcamentoDetalhe = orcamentoDetDAL.select(orcamentoDetalhe);
                    }
                }
                else
                {
                    throw new Exception("Orçamento nulo/inexistente.");
                }
                return(resultado);
            }
            catch (Exception ex)
            {
                FaultException fault = new FaultException(ex.Message);
                throw fault;
            }
        }
示例#16
0
        public void carregaViewOrcamentoDetalhe()
        {
            try
            {
                if (orcamentoSelected == null)
                {
                    orcamentoSelected = new OrcamentoDTO();
                    orcamentoSelected.listaOrcamentoDetalhe = new List <OrcamentoDetalheDTO>();
                }
                else
                {
                    using (ServiceClient servico = new ServiceClient())
                    {
                        orcamentoSelected = servico.selectOrcamentoCompleto(orcamentoSelected);
                    }
                }

                OrcamentoDetalhe oDetalhe = new OrcamentoDetalhe();
                oDetalhe.DataContext = this;

                notifyPropertyChanged("orcamentoSelected");

                contentPresenter.Content = oDetalhe;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#17
0
 private bool ValidarNovoOrcamento(OrcamentoDTO orcamento)
 {
     if (Convert.ToString(orcamento.ValorOrcamento) == string.Empty)
     {
         return(true);
     }
     MessageBox.Show("valor Informado não aceito");
     return(false);
 }
示例#18
0
        private void gridView_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
        {
            OrcamentoDTO orcamento = (OrcamentoDTO)OrcamentoBindingSource[e.ListSourceRowIndex];

            if (e.Column.FieldName.Equals("Codigo") && e.ListSourceRowIndex >= 0 && e.IsGetData)
            {
                e.Value = orcamento.Codigo;
            }
        }
        public async Task <OrcamentoDTO> Add(OrcamentoDTO objeto)
        {
            var map = _mapper.Map <OrcamentoDTO, Orcamento>(objeto);
            await _orcamentoService.Add(map);

            var retorno = List().Result.OrderByDescending(o => o.OrcamentoId).FirstOrDefault();

            return(retorno);
        }
        public async Task <OrcamentoDTO> Update(OrcamentoDTO objeto)
        {
            var map = _mapper.Map <OrcamentoDTO, Orcamento>(objeto);
            await _orcamentoService.Update(map);

            var retorno = GetEntityById(objeto.OrcamentoId).Result;

            return(retorno);
        }
示例#21
0
        private void CarregarFuncionarios()
        {
            OrcamentoBusiness business = new OrcamentoBusiness();
            OrcamentoDTO      dto      = new OrcamentoDTO();

            cboFunc.DisplayMember = nameof(OrcamentoDTO.Nome);
            cboFunc.ValueMember   = nameof(OrcamentoDTO.funcionario_id_funcionario);
            cboFunc.DataSource    = business.ConsultarFuncionarios();
        }
示例#22
0
 public Orcamento(OrcamentoDTO dto)
 {
     this.Tipo        = dto.Tipo;
     this.Mes         = dto.Mes;
     this.Ano         = dto.Ano;
     this.Valor       = dto.Valor;
     this.CategoriaId = dto.CategoriaId;
     this.UsuarioId   = dto.UsuarioId;
 }
        public static OrcamentoDTO DescontoAcimaDeDoisMilReais(OrcamentoDTO orcamento)
        {
            Console.WriteLine("Desconto de 40% sobre Venda Acima de R$ 2000 aplicado sobre: " + orcamento.Valor);
            if (orcamento.Valor > 2000.0)
            {
                orcamento.Descontos += (double)(orcamento.GetValorTotal() * (decimal)0.4);
            }

            return(orcamento);
        }
        public void CadastrarOrcamento(OrcamentoDTO dto)
        {
            Orcamento orcamento = Orcamento.Cadastrar(dto, orcamentoValidator);

            unitOfWork.BeginTransaction();

            orcamentoRepository.Add(orcamento);

            unitOfWork.Commit();
        }
示例#25
0
        public override OrcamentoDTO Execute(OrcamentoDTO orcamento)
        {
            if (orcamento.listItens.Count > 5)
            {
                orcamento.Descontos += (double)(orcamento.GetValorTotal() * (decimal)0.1);
                orcamento.AdicionarDesconto("Desconto de 10% sobre 5 itens Aplicada " + orcamento.GetValorTotal());
            }

            return(Next.Execute(orcamento));
        }
示例#26
0
        void CarregarCboOrcamento()
        {
            OrcamentoDTO        dto   = new OrcamentoDTO();
            OrcamentoBusiness   buss  = new OrcamentoBusiness();
            List <OrcamentoDTO> lista = buss.Listar();

            cboOrcamento.ValueMember   = nameof(dto.Id);
            cboOrcamento.DisplayMember = nameof(dto.Id);
            cboOrcamento.DataSource    = lista;
        }
        public static OrcamentoDTO DescontoAcimaDeMilReais(OrcamentoDTO orcamento)
        {
            Console.WriteLine("Desconto de 20% sobre Venda Acima de R$ 1000 aplicado sobre: " + orcamento.Valor);
            if (orcamento.Valor > 1000.0)
            {
                orcamento.Descontos += orcamento.Valor * 0.2;
            }

            return(orcamento);
        }
        public override OrcamentoDTO Execute(OrcamentoDTO orcamento)
        {
            if (Existe("LAPIS", orcamento) && Existe("CANETA", orcamento))
            {
                orcamento.Descontos += (double)(orcamento.GetValorTotal() * (decimal)0.05);
                Console.WriteLine("Desconto de 5% sobre Venda casada com LAPIS e CANETA aplicado sobre: " + orcamento.Valor);
            }

            return(Next.Execute(orcamento));
        }
示例#29
0
        public void Excluir(OrcamentoValidator validator)
        {
            OrcamentoDTO dto = new OrcamentoDTO
            {
                Id        = this.Id,
                UsuarioId = this.UsuarioId
            };

            validator.ValidarExclusao(dto);
        }
        public override OrcamentoDTO Execute(OrcamentoDTO contracted)
        {
            if (contracted.listItens.Count > 5)
            {
                contracted.Descontos += (double)(contracted.GetValorTotal() * (decimal)0.10);
                contracted.AdicionarDesconto("Desconto de 10% com mais de 5 Itens Aplicado sobre: " + contracted.GetValorTotal());
            }

            return(Next.Execute(contracted));
        }