My initial doubt was, if it was right to use using
within using
, I managed to cure it in this response:
Is it correct to use a using block within another using block?
But I was wondering, is there a maximum quantity?
That is, I wrote the following code:
private void clickMovimentoEstoque()
{
GridView viewMat = null;
TextBox codigo = null;
TextBox qntBaixa = null;
TextBox lote = null;
if (xtraTabControl1.SelectedTabPage == xtraTabPage2)
{
//componentes
viewMat = gridView2;
codigo = textBox9;
qntBaixa = textBox7;
lote = textBox4;
}
else if (xtraTabControl1.SelectedTabPage == xtraTabPage5)
{
//mp
viewMat = gridView10;
codigo = textBox14;
qntBaixa = textBox13;
lote = textBox12;
}
using (viewMat)
{
using (codigo)
{
using (qntBaixa)
{
using (lote)
{
qntBaixa.ForeColor = Color.Black;
//para garantir que a quantidade informada nunca vai ser maior que a quantidade pendente para baixa.
decimal qnt = 0, qntInformada = 0;
decimal.TryParse(viewMat.GetRowCellValue(viewMat.FocusedRowHandle, "QNT").ToString(), out qnt);
decimal.TryParse(qntBaixa.Text, out qntInformada);
int tipoMaterial = 0;
int.TryParse(viewMat.GetRowCellValue(viewMat.FocusedRowHandle, "tipoMaterial").ToString(), out tipoMaterial);
string un = viewMat.GetRowCellValue(viewMat.FocusedRowHandle, "UN").ToString();
//talvez iremos precisar comparar a unidade, pois no modelo atual, se for materia prima (tipomaterial = 0) pode dar baixa em quantidade maior que a planejada
//mas temos como mp mpbr, entre outros que tem sua unidade de medida como pç, nao podendo dar baixa maior que o solicidado
if (!string.IsNullOrEmpty(codigo.Text) && !string.IsNullOrEmpty(qntBaixa.Text) && !string.IsNullOrEmpty(lote.Text) && qntInformada <= qnt && tipoMaterial != 0 ||
!string.IsNullOrEmpty(codigo.Text) && !string.IsNullOrEmpty(qntBaixa.Text) && !string.IsNullOrEmpty(lote.Text) && tipoMaterial == 0)
{
confirmaMovimento();
}
else if (!string.IsNullOrEmpty(codigo.Text) && !string.IsNullOrEmpty(qntBaixa.Text) && string.IsNullOrEmpty(lote.Text) && qntInformada <= qnt)
{
MessageBox.Show("Selecione um lote, para continuar!", "Movimentos", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (string.IsNullOrEmpty(codigo.Text) && string.IsNullOrEmpty(qntBaixa.Text) && string.IsNullOrEmpty(lote.Text) && qntInformada <= qnt)
{
MessageBox.Show("Selecione um item, para continuar!", "Movimentos", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (qntInformada > qnt)
{
MessageBox.Show("Quantidade informada é maior que a quantidade pendente para baixa!", "Movimento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
}
}