///<summary> ///Método para Listar as Duplicatas da Nota Fiscal ///</summary> /// <returns></returns> private void ListarDuplicata(ref NotaFiscalVO identNotaFiscal, int? codNF) { OpenCommand("pr_selecionar_duplicata"); if (codNF > 0) { AddInParameter("CodNF", DbType.Int32, codNF); } IDataReader dr = ExecuteReader(); try { while (dr.Read()) { DuplicataVO tempDuplicata = new DuplicataVO(); tempDuplicata.CodDuplicata = GetReaderValue<int?>(dr, "CodDuplicata"); tempDuplicata.Dias = GetReaderValue<int?>(dr, "Dias"); tempDuplicata.Vencimento = GetReaderValue<DateTime?>(dr, "Vencimento"); tempDuplicata.Numero = GetReaderValue<string>(dr, "Numero"); tempDuplicata.Valor = GetReaderValue<decimal?>(dr,"Valor"); identNotaFiscal.Duplicatas.Add(tempDuplicata); } } finally { dr.Close(); } }
protected void btnIncluirFatura_Click(object sender, EventArgs e) { if (!txtNumeroFatura.Text.Equals("00000000")) { //será incluido no grid de ICMS manualmente (não incluirá no banco ainda) //pois só deverá ser incluido no banco quando salvar o produto DuplicataVO[] lstDuplicata = (DuplicataVO[])ViewState["lstDuplicata"]; List<DuplicataVO> newlstDuplicata = new List<DuplicataVO>(lstDuplicata); decimal valor = decimal.Parse(txtValorLiquido.Text); //se for edição de ICMS, atualizar o list if (hdfTipoAcaoFatura.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 /***********************************************************************/ DuplicataVO result = newlstDuplicata.Find( delegate(DuplicataVO bk) { return bk.Dias == int.Parse(txtDias.Text); } ); if (result != null) { MensagemCliente("Dias Já cadastrado!"); return; } /************************************************************************/ /************************************************************************/ //senão, incluir novo ítem no list DuplicataVO lstDuplicataAux = new DuplicataVO(); if (!txtDias.Text.Trim().Equals("")) lstDuplicataAux.Dias = int.Parse(txtDias.Text); lstDuplicataAux.Vencimento = DateTime.Now.Date.AddDays(Convert.ToDouble(lstDuplicataAux.Dias)); newlstDuplicata.Add(lstDuplicataAux); int i = 1; foreach (DuplicataVO item in newlstDuplicata) { if (!txtNumeroFatura.Text.Trim().Equals("")) item.Numero = txtNumeroFatura.Text + "-" + Letra(i).ToString(); item.Valor = valor / newlstDuplicata.Count(); i++; } } else { int linha = Convert.ToInt32(ViewState["LinhaSelecionadaDuplicata"]); int iLinhaFor = 0; int i = 1; foreach (DuplicataVO item in newlstDuplicata) { if (iLinhaFor == linha) { /************************************************************************ 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 iLinhaSelecionada = 0; foreach (DuplicataVO item2 in newlstDuplicata) { if ((item2.Dias == int.Parse(txtDias.Text)) && (iLinhaSelecionada != linha)) { MensagemCliente("Dias Já cadastrado!"); return; } iLinhaSelecionada++; } /************************************************************************ /***********************************************************************/ item.Dias = int.Parse(txtDias.Text); item.Vencimento = DateTime.Now.Date.AddDays(Convert.ToDouble(item.Dias)); //sai do for } if (!txtNumeroFatura.Text.Trim().Equals("")) item.Numero = txtNumeroFatura.Text + "-" + Letra(i).ToString(); item.Valor = valor / newlstDuplicata.Count; iLinhaFor++; i++; } } grdFatura.DataSource = newlstDuplicata; grdFatura.DataBind(); //atualiza viewstate ViewState["lstDuplicata"] = newlstDuplicata.ToArray(); txtDias.Text = string.Empty; Master.PosicionarFoco(txtDias); hdfTipoAcaoFatura.Value = "Incluir"; //LimparCamposICMS(); } else MensagemCliente("O número da fatura não pode ser 00000000"); }