private List<ItemEntradaEstoqueInsumoVO> ConvertToItemEntradaEstoqueInsumo(List<ItemPedidoCompraVO> itemPedidoCompraVos) { List<ItemEntradaEstoqueInsumoVO> itemEntradaEstoqueVos = new List<ItemEntradaEstoqueInsumoVO>(); foreach (var itemPedidoCompraVo in itemPedidoCompraVos) { var itemEntradaEstoque = new ItemEntradaEstoqueInsumoVO(); itemEntradaEstoque.ProdutoInsumoVo = new ProdutoInsumoVO() { CodProdutoInsumo = itemPedidoCompraVo.MateriaPrimaVo.CodMateriaPrima, Descricao = itemPedidoCompraVo.MateriaPrimaVo.Descricao }; itemEntradaEstoque.QtdPedidoCompra = itemPedidoCompraVo.Saldo; itemEntradaEstoque.Valor = itemPedidoCompraVo.Valor; itemEntradaEstoque.Especificacao = itemPedidoCompraVo.Especificacao; itemEntradaEstoque.UnidadeVo.CodUnidade = itemPedidoCompraVo.UnidadeVo.CodUnidade; itemEntradaEstoque.UnidadeVo.TipoUnidade = itemPedidoCompraVo.UnidadeVo.TipoUnidade; itemEntradaEstoque.Ipi = itemPedidoCompraVo.Ipi; itemEntradaEstoque.CertificadoScanneado = new byte[0]; itemEntradaEstoqueVos.Add(itemEntradaEstoque); } NissiSession.ItemEntradaEstoqueInsumos = itemEntradaEstoqueVos; return itemEntradaEstoqueVos; }
protected void btnSalvarInsumo_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 //armazena em viewstate a linha selecionada para posterior atualização List<ItemEntradaEstoqueInsumoVO> newlstItemEntradaEstoqueInsumo = NissiSession.ItemEntradaEstoqueInsumos; int codProdutoInsumo = 0; try { codProdutoInsumo = int.Parse(ddlProdutoInsumo.SelectedValue); } catch (Exception) { MensagemCliente(updItensInsumo, "Escolha um valor na lista para o Produto!"); return; } int codUnidade = 0; try { codUnidade = int.Parse(ddlUnidadeInsumo.SelectedValue); } catch (Exception) { MensagemCliente(updItensInsumo, "Escolha um valor na lista para a Unidade!"); return; } int lote = !string.IsNullOrEmpty(txtLoteInsumo.Text) ? int.Parse(txtLoteInsumo.Text) : 0; decimal qtde = !string.IsNullOrEmpty(txtQtdEntregueInsumo.Text) ? decimal.Parse(txtQtdEntregueInsumo.Text) : 0; decimal valor = !string.IsNullOrEmpty(txtValorInsumo.Text) ? decimal.Parse(txtValorInsumo.Text) : 0; string descricao = ddlProdutoInsumo.SelectedItem.Text; string unidade = ddlUnidadeInsumo.SelectedItem.Text; decimal Ipi = !string.IsNullOrEmpty(txtIpiInsumo.Text) ? decimal.Parse(txtIpiInsumo.Text) : 0; //se for edição de ICMS, atualizar o list if (hdfTipoAcaoItemPedidoCompraInsumo.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 /***********************************************************************/ ItemEntradaEstoqueInsumoVO result = newlstItemEntradaEstoqueInsumo.Find( delegate(ItemEntradaEstoqueInsumoVO bk) { return bk.ProdutoInsumoVo.CodProdutoInsumo == codProdutoInsumo; } ); if (result != null) { MensagemCliente(updItensInsumo, "Produto já cadastrada!"); return; } /************************************************************************/ /************************************************************************/ //senão, incluir novo ítem no list ItemEntradaEstoqueInsumoVO lstItemItemEntradaEstoqueInsumoAux = new ItemEntradaEstoqueInsumoVO(); lstItemItemEntradaEstoqueInsumoAux.ProdutoInsumoVo.CodProdutoInsumo = codProdutoInsumo; lstItemItemEntradaEstoqueInsumoAux.Lote = lote; lstItemItemEntradaEstoqueInsumoAux.ProdutoInsumoVo.Descricao = descricao; lstItemItemEntradaEstoqueInsumoAux.UnidadeVo.CodUnidade = codUnidade; lstItemItemEntradaEstoqueInsumoAux.UnidadeVo.TipoUnidade = unidade; lstItemItemEntradaEstoqueInsumoAux.Ipi = Ipi; lstItemItemEntradaEstoqueInsumoAux.Qtd = qtde; lstItemItemEntradaEstoqueInsumoAux.Valor = valor; lstItemItemEntradaEstoqueInsumoAux.CertificadoScanneado = new byte[0]; newlstItemEntradaEstoqueInsumo.Add(lstItemItemEntradaEstoqueInsumoAux); } 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["LinhaSelecionadaItemEntradaEstoqueInsumo"]); if (linha != codProdutoInsumo) { var item1 = newlstItemEntradaEstoqueInsumo.Where(r => r.ProdutoInsumoVo.CodProdutoInsumo == codProdutoInsumo).Select(r => r). FirstOrDefault(); if (item1 != null) { MensagemCliente(updItensInsumo, "Produto já cadastrada!"); return; } } /************************************************************************ Atualiza o item do grid /***********************************************************************/ var item = newlstItemEntradaEstoqueInsumo.Where(r => r.ProdutoInsumoVo.CodProdutoInsumo == linha).Select(r => r). FirstOrDefault(); item.ProdutoInsumoVo.CodProdutoInsumo = codProdutoInsumo; item.Lote = lote; item.ProdutoInsumoVo.Descricao = descricao; item.UnidadeVo.CodUnidade = codUnidade; item.UnidadeVo.TipoUnidade = unidade; item.Ipi = Ipi; item.Qtd = qtde; item.Valor = valor; item.CertificadoScanneado = new byte[0]; //sai do for } grdProdutoInsumo.DataSource = newlstItemEntradaEstoqueInsumo; grdProdutoInsumo.DataBind(); //atualiza viewstate NissiSession.ItemEntradaEstoqueInsumos = newlstItemEntradaEstoqueInsumo; LimparCamposItemPedidoCompraInsumo(); Master.PosicionarFoco(ddlProdutoInsumo); ExecutarScript(updItensInsumo, new StringBuilder("showItensInsumo();")); }