public ResistenciaTracaoVO ListarPorCodigoBitola(int codMateriaPrima, int codBitola)
 {
     var query = (from r in _repositorioDataContext.ResistenciaTracaos
                 join b in _repositorioDataContext.Bitolas
                 on r.CodBitola equals b.CodBitola
                 where r.CodMateriaPrima == codMateriaPrima
                 && r.CodBitola == codBitola
                 select new ResistenciaTracaoVO()
                 {
                     CodResistenciaTracao = r.CodResistenciaTracao,
                     CodMateriaPrima = r.CodMateriaPrima,
                     Bitola = new BitolaVO() { CodBitola = b.CodBitola, Bitola = b.Bitola1 },
                     Tolerancia = r.Tolerancia,
                     Minimo = r.Minimo,
                     Maximo = r.Maximo,
                     DataCadastro = r.DataCadastro,
                     DataAlteracao = r.DataCadastro,
                     UsuarioInc = r.UsuarioInc,
                     UsuarioAlt = r.UsuarioAlt
                 }).FirstOrDefault();
     var resistenciaTracao = new ResistenciaTracaoVO();
     if (query != null)
         resistenciaTracao = query;
     return resistenciaTracao;
 }
 protected void ddlBitola_SelectedIndexChanged(object sender, EventArgs e)
 {
     string mensagem = string.Empty;
     decimal value = 0;
     if (!string.IsNullOrEmpty(ddlBitola.SelectedValue))
     {
         if (NissiSession.ComposicaoMateriaPrima != null)
         {
             value = decimal.Parse(ddlBitola.SelectedItem.Text);
             //armazena em viewstate a linha selecionada para posterior atualização
             List<ComposicaoMateriaPrimaVO> newlstComposicaoMateriaPrimaVos = NissiSession.ComposicaoMateriaPrima;
             bool verificado = false;
             foreach (var newlstComposicaoMateriaPrimaVo in newlstComposicaoMateriaPrimaVos)
             {
                 if (0 != newlstComposicaoMateriaPrimaVo.BitolaMaxima && value < newlstComposicaoMateriaPrimaVo.BitolaMinima)
                 {
                     if (verificado == false)
                     {
                         mensagem = newlstComposicaoMateriaPrimaVo.BitolaMinima + " - " + newlstComposicaoMateriaPrimaVo.BitolaMaxima;
                         verificado = true;
                     }
                 }
                 else
                 {
                     if (value > newlstComposicaoMateriaPrimaVo.BitolaMaxima && verificado == false)
                     {
                         mensagem = newlstComposicaoMateriaPrimaVo.BitolaMinima + " - " + newlstComposicaoMateriaPrimaVo.BitolaMaxima;
                     }
                     else
                     {
                         verificado = true;
                         mensagem = string.Empty;
                     }
                 }
             }
             if (!string.IsNullOrEmpty(mensagem))
             {
                 spanBi.Attributes.Add("title", mensagem);
                 spanBi.Style.Add("display", "inline");
                 ddlBitola.BackColor = Color.Yellow;
             }
             else
             {
                 spanBi.Style.Add("display", "none");
                 ddlBitola.BackColor = Color.White;
             }
         }
         if (!string.IsNullOrEmpty(ddlMateriaPrima.SelectedValue))
         {
             var resistenciaTracao = new ResistenciaTracaoVO();
             if (!string.IsNullOrEmpty(ddlMateriaPrima.SelectedValue) && !string.IsNullOrEmpty(ddlBitola.SelectedValue))
                 resistenciaTracao =
                     new MateriaPrima().ListarResistenciaTracao(int.Parse(ddlMateriaPrima.SelectedValue),
                                                                int.Parse(ddlBitola.SelectedValue));
             NissiSession.ResistenciaTracao = resistenciaTracao;
         }
     }
 }
 protected void ddlBitola_SelectedIndexChanged(object sender, EventArgs e)
 {
     ResistenciaTracaoVO resistenciaTracao = new ResistenciaTracaoVO();
     if (!string.IsNullOrEmpty(ddlMateriaPrima.SelectedValue) && !string.IsNullOrEmpty(ddlBitola.SelectedValue))
     {  resistenciaTracao = new MateriaPrima().ListarResistenciaTracao(int.Parse(ddlMateriaPrima.SelectedValue),
                                                                            int.Parse(ddlBitola.SelectedValue));
         if (resistenciaTracao.Minimo != 0)
         {
             txtResistenciaTracao.Text = resistenciaTracao.Minimo + " à " + resistenciaTracao.Maximo;
         }
     }
     hdfShowItem.Value = "hiddenNo";
 }
    protected void grdProduto_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (!e.CommandName.Equals("Page"))
        {
            //forma de pegar o index do datagrid
            GridViewRow row = (GridViewRow) (((ImageButton) e.CommandSource).NamingContainer);
            int linha = row.RowIndex;
            string[] codigos = e.CommandArgument.ToString().Split('|');
            int codMateriaPrima = Convert.ToInt32(codigos[0]);
            //armazena em viewstate a linha selecionada para posterior atualização
            ViewState["LinhaSelecionadaItemEntradaEstoque"] = codMateriaPrima;
            List<ItemEntradaEstoqueVO> newlstItemEntradaEstoque = NissiSession.ItemEntradaEstoques;

            if (e.CommandName == "Editar")
            {
                hdfTipoAcaoItem.Value = "Editar";


                var item =
                    newlstItemEntradaEstoque.Where(
                        r =>
                        r.MateriaPrimaVo.CodMateriaPrima == codMateriaPrima).Select(r => r)
                        .FirstOrDefault();
                //busca no vo os valores para a linha selecionada
                CarregarCombos();
                //atribui aos campos da tela para alteração
                ddlProduto.SelectedValue = item.MateriaPrimaVo.CodMateriaPrima.ToString();
                //ddlMateriaPrima.SelectedValue = item.MateriaPrimaVo.CodMateriaPrima.ToString();
                if (item.BitolaVo != null)
                    ddlBitola.SelectedValue = item.BitolaVo.CodBitola.ToString();
                ddlUnidade.SelectedValue = item.UnidadeVo.CodUnidade.ToString();
                txtEspecificacao.Text = item.Especificacao;
                txtQtdePedidoCompra.Text = item.QtdPedidoCompra.ToString();
                txtQtde.Text = item.Qtd.ToString();
                txtValorUnit.Text = item.Valor.ToString();
                txtLote.Text = item.Lote.ToString();
                txtCertificado.Text = item.Certificado;
                txtCorrida.Text = item.Corrida;
                txtC.Text = item.C.ToString();
                txtSi.Text = item.Si.ToString();
                txtMn.Text = item.Mn.ToString();
                txtP.Text = item.P.ToString();
                txtS.Text = item.S.ToString();
                txtCr.Text = item.Cr.ToString();
                txtNi.Text = item.Ni.ToString();
                txtMo.Text = item.Mo.ToString();
                txtCu.Text = item.Cu.ToString();
                txtTi.Text = item.Ti.ToString();
                txtN2.Text = item.N2.ToString();
                txtCo.Text = item.Co.ToString();
                txtAl.Text = item.Al.ToString();
                txtResistenciaTracao.Text = item.Resistencia.ToString();
                txtDureza.Text = item.Dureza.ToString();
                txtNota.Text = item.Nota.ToString();
                txtPedidoCompraItem.Text = txtPedidoCompra.Text;
                txtFornecedor.Text = txtRazaoSocial.Text;
                txtData.Text = txtEmissao.Text;
                txtNotaFiscalItem.Text = txtNotaFiscal.Text;
                txtDataNotaFiscalItem.Text = txtDataNotaFiscal.Text;
                txtIPI.Text = item.Ipi.ToString();
                Master.PosicionarFoco(txtLote);
                NissiSession.ArquivoPdf = item.CertificadoScanneado;
                var lstComposicaoMateriaPrima = new List<ComposicaoMateriaPrimaVO>();
                if (!string.IsNullOrEmpty(ddlMateriaPrima.SelectedValue))
                    lstComposicaoMateriaPrima =
                        new MateriaPrima().ListarComposicaoMateriaPrima(item.MateriaPrimaVo.CodMateriaPrima);
                NissiSession.ComposicaoMateriaPrima = lstComposicaoMateriaPrima;
                var resistenciaTracao = new ResistenciaTracaoVO();
                if (!string.IsNullOrEmpty(ddlMateriaPrima.SelectedValue) && !string.IsNullOrEmpty(ddlBitola.SelectedValue))
                    resistenciaTracao =
                        new MateriaPrima().ListarResistenciaTracao(item.MateriaPrimaVo.CodMateriaPrima,
                                                                   item.BitolaVo.CodBitola);
                NissiSession.ResistenciaTracao = resistenciaTracao;
                mpeIncluirItem.Show();
            }
            else if (e.CommandName == "Excluir")
            {
                newlstItemEntradaEstoque.RemoveAt(linha);
                grdProduto.DataSource = newlstItemEntradaEstoque;
                grdProduto.DataBind();
                updProduto.Update();
                //atualiza lstItemEntradaEstoque
                NissiSession.ItemEntradaEstoques = newlstItemEntradaEstoque;
            }
        }

    }
        protected void btnIncluirResistenciaTracao_Click(object sender, EventArgs e)
        {
            //será incluido no grid de ICMS manualmente (não incluirá no banco ainda)
            //pois só deverá ser incluido no banco quando salvar o produto

            ResistenciaTracaoVO[] lstResistenciaTracao = (ResistenciaTracaoVO[])ViewState["lstResistenciaTracao"];
            List<ResistenciaTracaoVO> newlstResistenciaTracao = new List<ResistenciaTracaoVO>(lstResistenciaTracao);
            decimal tolerancia = !string.IsNullOrEmpty(txtTolerancia.Text)? decimal.Parse(txtTolerancia.Text):0;
            decimal minimo = !string.IsNullOrEmpty(txtMinimo.Text) ? decimal.Parse(txtMinimo.Text) : 0;
            decimal maximo = !string.IsNullOrEmpty(txtMaximo.Text) ? decimal.Parse(txtMaximo.Text) : 0;

            //se for edição de ICMS, atualizar o list
            if (hdfTipoAcaoResistenciaTracao.Value.Equals("Incluir"))
            {
                /************************************************************************
                Se a ação for inclusão, simplesmente verifica se o ítem já foi cadastrado
                se já for, exibe mensagem e não inclui o ítem
                /***********************************************************************/
                ResistenciaTracaoVO result = newlstResistenciaTracao.Find(
                delegate(ResistenciaTracaoVO bk)
                {
                    return bk.Bitola.CodBitola == int.Parse(ddlBitola.SelectedValue);
                }
                );
                if (result != null)
                {

                    MensagemCliente("Bitola já cadastrada!");
                    return;
                }
                /************************************************************************/
                /************************************************************************/

                //senão, incluir novo ítem no list
                ResistenciaTracaoVO lstResistenciaTracaoAux = new ResistenciaTracaoVO();
                if (!ddlBitola.SelectedValue.Trim().Equals(""))
                {
                    lstResistenciaTracaoAux.Bitola.CodBitola = int.Parse(ddlBitola.SelectedValue);
                    lstResistenciaTracaoAux.Bitola.Bitola = decimal.Parse(ddlBitola.SelectedItem.Text);
                }
                lstResistenciaTracaoAux.Tolerancia = tolerancia;
                lstResistenciaTracaoAux.Minimo = minimo;
                lstResistenciaTracaoAux.Maximo = maximo;
                newlstResistenciaTracao.Add(lstResistenciaTracaoAux);
            }
            else
            {
                /************************************************************************
                Se a ação for alteração, verifica se o ítem já está cadastrado, se já estiver
                será impedido, desde que não seja ele mesmo
                /***********************************************************************/
                int linha = Convert.ToInt32(ViewState["LinhaSelecionadaResistenciaTracao"]);
                if (linha != int.Parse(ddlBitola.SelectedValue))
                {
                    var item1 =
                        newlstResistenciaTracao.Where(r => r.Bitola.CodBitola == int.Parse(ddlBitola.SelectedValue)).Select(r => r).
                            FirstOrDefault();
                    if (item1 != null)
                    {
                        MensagemCliente("Bitola já cadastrada!");
                        return;
                    }
                }

                /************************************************************************
                Atualiza o item do grid        
                /***********************************************************************/
                var item =
                    newlstResistenciaTracao.Where(r => r.Bitola.CodBitola == linha).Select(r => r).
                        FirstOrDefault();
                item.Bitola.CodBitola = int.Parse(ddlBitola.SelectedValue);
                item.Bitola.Bitola = decimal.Parse(ddlBitola.SelectedItem.Text);
                item.Tolerancia = tolerancia;
                item.Minimo = minimo;
                item.Maximo = maximo;
                //sai do for
            }
            grdResistenciaTracao.DataSource = newlstResistenciaTracao;
            grdResistenciaTracao.DataBind();
            //atualiza viewstate
            ViewState["lstResistenciaTracao"] = newlstResistenciaTracao.ToArray();
            LimparCamposResistenciaTracao();
            Master.PosicionarFoco(ddlBitola);
            btnIncluir.Text = "Incluir";
        }