private void txtOrcamento_MouseDoubleClick(object sender, MouseEventArgs e) { if (index > -1) { int numOrcamento = faturamentos[index].numOrcamento; int numFaturamento = faturamentos[index].id; String cliente = faturamentos[index].cliente.nome; if (numOrcamento > 0) { // Cria o menu de contexto ContextMenuStrip contextMenuStrip = new ContextMenuStrip(); ToolStripMenuItem toolStripMenuItem; toolStripMenuItem = new ToolStripMenuItem(String.Format("Desvicular orçamento {0} do faturamento {1}", numOrcamento, numFaturamento)); toolStripMenuItem.Click += (_sender, _e) => { // desviculaOrcamentoDoFaturamento faturamentos[index].numOrcamento = 0; FaturamentoServicos.update(faturamentos[index]); btnAtualizar_Click(null, null); }; contextMenuStrip.Items.Add(toolStripMenuItem); // Exibe o menu de contexto contextMenuStrip.Show(this, this.PointToClient(MousePosition)); } else { // Cria o menu de contexto ContextMenuStrip contextMenuStrip = new ContextMenuStrip(); ToolStripMenuItem toolStripMenuItem; toolStripMenuItem = new ToolStripMenuItem(String.Format("Vincular faturamento {0} com orçamento do cliente {1}", numFaturamento, cliente)); toolStripMenuItem.Click += (_sender, _e) => { // vincularOrcamentoAoFaturamento consultaOrcamentoForm = new ConsultaOrcamento(Util.TipoConsulta.Selecao, true, faturamentos[index].cliente.id); consultaOrcamentoForm.FormClosing += (__sender, __e) => { Orcamento orcamentoSelecionado = consultaOrcamentoForm.orcamentoSelecionado; if (orcamentoSelecionado != null) { faturamentos[index].numOrcamento = orcamentoSelecionado.id; FaturamentoServicos.update(faturamentos[index]); btnAtualizar_Click(null, null); } }; consultaOrcamentoForm.Show(); }; contextMenuStrip.Items.Add(toolStripMenuItem); // Exibe o menu de contexto contextMenuStrip.Show(this, this.PointToClient(MousePosition)); } } }
// Salva as alterações do orçamento private void btnGravar_Click(object sender, EventArgs e) { // Cria um novo orçamento Faturamento newFaturamento; // Cria os dados básicos do orçamento int idCliente = -1; int.TryParse(txtCdCliente.Text, out idCliente); if (txtCdCliente.Text.Trim().Length == 0) { MessageBox.Show("Não foi possível salvar o faturamento.\n\nDeve ser selecionado um cliente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } else { Cliente cliente = ClienteServicos.Instance.read(idCliente); Veiculo veiculo = (Veiculo)cboVeiculo.SelectedItem; newFaturamento = new Faturamento(cliente, veiculo); FormaPagamento formaPagamento = null; if (cboFormasPagamento.SelectedIndex > -1) { formaPagamento = (FormaPagamento)cboFormasPagamento.SelectedItem; } newFaturamento.formaPagamento = formaPagamento; newFaturamento._idFormaPagamento = formaPagamento != null ? formaPagamento.id : 0; // Verifica se vai inserir um novo registro ou então salvá-lo if (windowMode == Util.WindowMode.ModoDeInsercao) { // Cria novo orçameto if (FaturamentoServicos.create(ref newFaturamento)) { getFromRepositorio(); btnUltimo_Click(null, null); } else { clearFields(); } } else if (windowMode == Util.WindowMode.ModoDeEdicao) { // Grava orçamento já existente newFaturamento.id = faturamentos[index].id; newFaturamento.servicos = faturamentos[index].servicos; newFaturamento.custosAdicionais = faturamentos[index].custosAdicionais; newFaturamento.dataCriacao = faturamentos[index].dataCriacao; newFaturamento.numOrcamento = faturamentos[index].numOrcamento; if (cliente != null) { newFaturamento._idCliente = cliente.id; } if (veiculo != null) { newFaturamento._idVeiculo = veiculo.id; } if (FaturamentoServicos.update(newFaturamento)) { getFromRepositorio(); } fillFields(); } windowMode = Util.WindowMode.ModoNormal; windowModeChanged(); } }