示例#1
0
        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();
        }
示例#2
0
        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");
            }
        }