private void mitVerFormato_Click(object sender, EventArgs e) { MenuItem mitControl = (MenuItem)sender; int codigoNotaCredito = (int)mitControl.Tag; FormatoBe.NotaCredito dsCabecera = formatoBl.ObtenerFormatoNotaCredito(codigoNotaCredito); dsCabecera.QR = ObtenerQR(dsCabecera); List <ReportDataSource> rpd = new List <ReportDataSource>(); rpd.Add(new ReportDataSource("dsCabecera", new List <FormatoBe.NotaCredito>() { dsCabecera })); rpd.Add(new ReportDataSource("dsDetalle", dsCabecera.ListaDetalle)); string nombreArchivo = dsCabecera.Serie + " - " + dsCabecera.Correlativo.ToString("00000000"); FrmFormatoCompartido frm = new FrmFormatoCompartido(rpd.ToArray(), "rptFormatoNotaCredito", nombreArchivo); frm.ShowInTaskbar = false; frm.BringToFront(); frm.ShowDialog(); //DialogResult dr = frm.ShowDialog(); //if (dr == DialogResult.OK) BuscarLetras(); }
public FormatoBe.NotaCredito ObtenerFormatoNotaCredito(int codigoNotaCredito, SqlConnection cn) { FormatoBe.NotaCredito item = null; try { using (SqlCommand cmd = new SqlCommand("dbo.usp_formato_notacredito", cn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@codigoNotaCredito", codigoNotaCredito.GetNullable()); using (SqlDataReader dr = cmd.ExecuteReader()) { if (dr.HasRows) { item = new FormatoBe.NotaCredito(); if (dr.Read()) { item.Serie = dr.GetData <string>("Serie"); item.Correlativo = dr.GetData <int>("Correlativo"); item.FechaEmision = dr.GetData <DateTime>("FechaEmision"); item.CodigoTipoDocumentoIdentidadCliente = dr.GetData <int>("CodigoTipoDocumentoIdentidadCliente"); item.NombresCompletoCliente = dr.GetData <string>("NombresCompletoCliente"); item.NroDocumentoIdentidadCliente = dr.GetData <string>("NroDocumentoIdentidadCliente"); item.DireccionCliente = dr.GetData <string>("DireccionCliente"); item.TipoComprobanteRef = dr.GetData <string>("TipoComprobanteRef"); item.SerieRef = dr.GetData <string>("SerieRef"); item.CorrelativoRef = dr.GetData <int>("CorrelativoRef"); item.FechaEmisionRef = dr.GetData <DateTime>("FechaEmisionRef"); item.NombreMoneda = dr.GetData <string>("NombreMoneda"); item.SimboloMoneda = dr.GetData <string>("SimboloMoneda"); item.Motivo = dr.GetData <string>("Motivo"); item.TotalGravada = dr.GetData <decimal>("TotalGravada"); item.TotalIGV = dr.GetData <decimal>("TotalIGV"); item.TotalImporte = dr.GetData <decimal>("TotalImporte"); item.TotalPagar = dr.GetData <decimal>("TotalPagar"); item.TotalEnLetras = dr.GetData <string>("TotalEnLetras"); item.Hash = dr.GetData <string>("Hash"); } } } } } catch (Exception ex) { log.Error(ex.Message); } return(item); }
public FormatoBe.NotaCredito ObtenerFormatoNotaCredito(int codigoNotaCredito) { FormatoBe.NotaCredito item = null; try { cn.Open(); item = formatoDa.ObtenerFormatoNotaCredito(codigoNotaCredito, cn); if (item != null) { item.ListaDetalle = formatoDa.ListarFormatoNotaCreditoDetalle(codigoNotaCredito, cn); } } catch (Exception ex) { log.Error(ex); } finally { if (cn.State == ConnectionState.Open) { cn.Close(); } } return(item); }
byte[] ObtenerQR(FormatoBe.NotaCredito item) { byte[] imagen = null; QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H); QrCode qrCode = new QrCode(); string rucEmpresa = AppSettings.Get <string>("empresa.ruc"); string codigoSunatTipoComprobante = TipoComprobante.Factura.GetAttributeOfType <CategoryAttribute>().Category; string codigoSunatTipoDocumentoIdentidad = ((TipoDocumentoIdentidad)item.CodigoTipoDocumentoIdentidadCliente).GetAttributeOfType <CategoryAttribute>().Category; qrEncoder.TryEncode($"{rucEmpresa}|{codigoSunatTipoComprobante}|{item.Serie}-{item.Correlativo.ToString("00000000")}|{item.TotalIGV}|{item.TotalImporte}|{item.FechaEmision.ToString("dd/MM/yyyy")}|{codigoSunatTipoDocumentoIdentidad}|{item.NroDocumentoIdentidadCliente}|{item.Hash}", out qrCode); GraphicsRenderer renderer = new GraphicsRenderer(new FixedCodeSize(400, QuietZoneModules.Zero), Brushes.Black, Brushes.White); MemoryStream ms = new MemoryStream(); renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms); imagen = ms.ToArray(); return(imagen); }