private void btnIncluirTransferenciaSaida_Click(object sender, EventArgs e) { Point posicaoForm = new Point(100, 100); posicaoForm = this.Location; Form formIncluirTransferenciaSaida = new IncluirTransferenciaSaida(this, posicaoForm.X, posicaoForm.Y, permissaoUsuario); this.Hide(); formIncluirTransferenciaSaida.Show(); }
private void btnIncluirRequisicaoSaida_Click(object sender, EventArgs e) { int codigoLocalOrigem = int.Parse(cmbLocalOrigem.SelectedValue.ToString()); int codigoLocalDestino = int.Parse(cmbLocalDestino.SelectedValue.ToString()); if (cmbTipoTransferencia.SelectedIndex != -1) { int codigoTipoTransferencia = int.Parse(cmbTipoTransferencia.SelectedValue.ToString()); //Verificando se a lstbox está vazia if (lstboxMateriais.Items.Count > 0) { string dataSaida = mskDataTransferencia.Text.ToString(); Boolean statusData = validar.Data(dataSaida); if (statusData == true) { int codigoMaterial; int quantidadeMaterial; Boolean statusInsercaoMaterial = true; //Criando a requisição e obtendo o código da mesma - Caso retorne 0, indica que não foi possível criar a requisição int codigoTransferecia = camadaNegocios.InserirTransferencia(codigoLocalOrigem, codigoLocalDestino, codigoTipoTransferencia, dataSaida); if (codigoTransferecia != 0) { //Inserindo todos os materiais, um a um for (int index = (lstboxMateriais.Items.Count) - 1; index >= 0; index--) { var array = ((lstboxMateriais.Items[index]).ToString()).Split('-'); codigoMaterial = int.Parse(array[0]); quantidadeMaterial = int.Parse(array[2]); statusInsercaoMaterial = camadaNegocios.InserirMateriaisTransferenciaSaida(codigoTransferecia, codigoMaterial, quantidadeMaterial); if (statusInsercaoMaterial == false) { MessageBox.Show("Erro inesperado ao inserir a transferencia. Contate o suporte"); break; } } if (statusInsercaoMaterial == true) { //Retirando do estoque DataSet oDsMateriais = new DataSet(); oDsMateriais = camadaNegocios.ConsultaCodigoMateriaisTransferencia(codigoTransferecia); int tamanhoDataSet = 0; //Obtendo o tamanho do dataset para alocar o vetor foreach (DataRow rows in oDsMateriais.Tables[0].Rows) { tamanhoDataSet++; } //Vetores onde ficarão os ids de material e a quantidade int[] codigoMateriais = new int[tamanhoDataSet + 1]; int[] codigoQuantidades = new int[tamanhoDataSet + 1]; int contador = 0; foreach (DataRow rows in oDsMateriais.Tables[0].Rows) { codigoMateriais[contador] = int.Parse((rows["Material"]).ToString()); codigoQuantidades[contador] = int.Parse((rows["Quantidade"]).ToString()); contador++; } Boolean statusAtualizarEstoque = true; //Diminuindo o estoque do local de origem for (int i = 0; i < tamanhoDataSet; i++) { statusAtualizarEstoque = camadaNegocios.DiminuiEstoque(codigoMateriais[i], codigoLocalOrigem, codigoQuantidades[i]); if (statusAtualizarEstoque == false) { break; } } if (statusAtualizarEstoque == true) { if (int.Parse(cmbTipoTransferencia.SelectedValue.ToString()) == 1) { //Caso a transferência seja de um local para uma obra, é necessário levar o estoque para esta obra DataSet oDsMateriaisDestino = new DataSet(); oDsMateriaisDestino = camadaNegocios.ConsultaCodigoMateriaisTransferencia(codigoTransferecia); int tamanhoDataSetDestino = 0; //Obtendo o tamanho do dataset para alocar o vetor foreach (DataRow rows in oDsMateriaisDestino.Tables[0].Rows) { tamanhoDataSetDestino++; } //Vetores onde ficarão os ids de material e a quantidade int[] codigoMateriaisDestino = new int[tamanhoDataSetDestino + 1]; int[] codigoQuantidadesDestino = new int[tamanhoDataSetDestino + 1]; int contadorDestino = 0; foreach (DataRow rows in oDsMateriaisDestino.Tables[0].Rows) { codigoMateriaisDestino[contadorDestino] = int.Parse((rows["Material"]).ToString()); codigoQuantidadesDestino[contadorDestino] = int.Parse((rows["Quantidade"]).ToString()); contadorDestino++; } Boolean statusAtualizarEstoqueDestino = true; //Aumentando o estoque do local de origem for (int i = 0; i < tamanhoDataSetDestino; i++) { statusAtualizarEstoque = camadaNegocios.AumentaEstoque(codigoMateriaisDestino[i], codigoLocalDestino, codigoQuantidadesDestino[i]); if (statusAtualizarEstoqueDestino == false) { break; } } if (statusAtualizarEstoqueDestino == true) { Boolean statusValidarObra = camadaNegocios.ValidarObra(codigoLocalDestino); if (statusValidarObra == true) { MessageBox.Show("Transferência incluída com sucesso"); } else { MessageBox.Show("Transferência incluída com sucesso. No entanto, não foi possível atualizar o status da obra"); } //Recarregando a página Point posicaoForm = new Point(100, 100); posicaoForm = this.Location; Form formIncluirTransferenciaSaida = new IncluirTransferenciaSaida(formAnterior, posicaoForm.X, posicaoForm.Y, permissaoUsuario); xClicked = false; this.Close(); formIncluirTransferenciaSaida.Show(); } else { MessageBox.Show("Erro ao incluir a transferência"); } } else { MessageBox.Show("Transferência incluída com sucesso"); //Recarregando a página Point posicaoForm = new Point(100, 100); posicaoForm = this.Location; Form formIncluirRequisicaoSaida = new IncluirTransferenciaSaida(formAnterior, posicaoForm.X, posicaoForm.Y, permissaoUsuario); xClicked = false; this.Close(); formIncluirRequisicaoSaida.Show(); } } else { MessageBox.Show("Erro ao incluir a transferência"); } } } else { MessageBox.Show("Não foi possível criar a transferência"); } } else { MessageBox.Show("Data de saída inválida"); } } else { MessageBox.Show("Insira pelo menos um material"); } } else { MessageBox.Show("Informe o tipo de saída"); } }