private void BtnImprimirComprobante_Click(object sender, EventArgs e) { try { if (TdgProductosFormulados.RowCount > 0) { Int32 TipoComprobanteID = Convert.ToInt32(this.TdgProductosFormulados.Columns["TipoComprobanteID"].Value); string NumComprobante = this.TdgProductosFormulados.Columns["NumComprobante"].Value.ToString(); string EstadoEnvio = this.TdgProductosFormulados.Columns["EstadoEnvio"].Value.ToString(); string Comprobante = this.TdgProductosFormulados.Columns["Comprobante"].Value.ToString(); string TipoComprobante = this.TdgProductosFormulados.Columns["TipoComprobante"].Value.ToString(); if (MessageBox.Show("¿Seguro que desea generar el pdf del comprobante " + TipoComprobante + " N° " + Comprobante + "?", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { string filepath = fbd.SelectedPath + "\\" + Comprobante; DataSet DS = objCL_Comprobante.GetComprobanteFE(TipoComprobanteID, NumComprobante, c1cboCia.SelectedValue.ToString(), null, ""); CrFE rpt = new CrFE(); DS.Tables[0].TableName = "Cabecera"; DS.Tables[1].TableName = "Detalle"; rpt.SetDataSource(DS); TextFunctions ObjTextFunctions = new TextFunctions(); string TotalPagarLetras = ObjTextFunctions.enletras((DS.Tables[0].Rows[0]["ImporteTotal"]).ToString()); TextObject TxtMontoLetras; TxtMontoLetras = (TextObject)rpt.ReportDefinition.ReportObjects["TxtMontoLetras"]; TxtMontoLetras.Text = TotalPagarLetras + " Soles."; TextObject TxtRespuestaSunat; TxtRespuestaSunat = (TextObject)rpt.ReportDefinition.ReportObjects["TxtRespuestaSunat"]; TxtRespuestaSunat.Text = EstadoEnvio; rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, filepath + ".pdf"); } } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //formato para alinear los nuimeros a la derecha StringFormat formato = new StringFormat(); formato.Alignment = StringAlignment.Far; //formato.LineAlignment = StringAlignment.Far; TextFunctions ObjTextFunctions = new TextFunctions(); //obtener la cadena del total a pagar string TotalPagarLetras = ObjTextFunctions.enletras(dtcabecera.Rows[0]["Monto"].ToString()); string NomEmpresa = dtcabecera.Rows[0]["NomEmpresa"].ToString(); string RUC = dtcabecera.Rows[0]["RUC"].ToString(); string SerieEticketera = ""; string NroAutorizacion = ""; string CodigoTipoComprobante = "03", TipoLetra = "B", TipoDocumentoCliente = "DNI"; int Canticabecera = 31; string[] Formatoticket = new string[2]; if (dtcabecera.Rows[0]["NroDocumentoCliente"].ToString() == "0") { ConCliente = false; } else { ConCliente = true; } if (hojaimpresa == 1) { if (Convert.ToInt16(dtcabecera.Rows[0]["TipoComprobanteID"]) == 4)//es boleta { Formatoticket = objVenta.FormatoTicketFE(NomEmpresa, AppSettings.NomSede, dtcabecera.Rows[0]["NumComprobante"].ToString().Substring(2), "BOLETA ELECTRONICA: ", dtdetalle, RUC, AppSettings.Usuario, Convert.ToDecimal(dtcabecera.Rows[0]["MontoPagado"]), dtcabecera.Rows[0]["NomCaja"].ToString(), SerieEticketera, NroAutorizacion, TotalPagarLetras, dtcabecera.Rows[0]["RazonSocialCliente"].ToString(), dtcabecera.Rows[0]["NroDocumentoCliente"].ToString(), dtcabecera.Rows[0]["DireccionCliente"].ToString(), "", ConCliente, Convert.ToDateTime(dtcabecera.Rows[0]["AudCrea"]), Convert.ToDecimal(dtcabecera.Rows[0]["MontoPagado"]), Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]), "B", DtDatosSede.Rows[0]["TelefonoCelular"].ToString(), DtDatosSede.Rows[0]["TelefonoFijo"].ToString(), Convert.ToDecimal(dtcabecera.Rows[0]["Monto"]), Convert.ToDecimal(dtcabecera.Rows[0]["TotalICBPER"])); e.Graphics.DrawString(Formatoticket[0], TxtFormato.Font, Brushes.Black, 0, 0); //total pagar en letras } else if (Convert.ToInt16(dtcabecera.Rows[0]["TipoComprobanteID"]) == 5) //es factura { CodigoTipoComprobante = "01"; TipoLetra = "F"; TipoDocumentoCliente = "RUC"; Canticabecera = 35; Formatoticket = objVenta.FormatoTicketFE(NomEmpresa, AppSettings.NomSede, dtcabecera.Rows[0]["NumComprobante"].ToString().Substring(2), "FACTURA ELECTRONICA: ", dtdetalle, RUC, AppSettings.Usuario, Convert.ToDecimal(dtcabecera.Rows[0]["MontoPagado"]), dtcabecera.Rows[0]["NomCaja"].ToString(), SerieEticketera, NroAutorizacion, TotalPagarLetras, dtcabecera.Rows[0]["RazonSocialCliente"].ToString(), dtcabecera.Rows[0]["NroDocumentoCliente"].ToString(), dtcabecera.Rows[0]["DireccionCliente"].ToString(), "", ConCliente, Convert.ToDateTime(dtcabecera.Rows[0]["AudCrea"]), Convert.ToDecimal(dtcabecera.Rows[0]["MontoPagado"]), Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]), "F", DtDatosSede.Rows[0]["TelefonoCelular"].ToString(), DtDatosSede.Rows[0]["TelefonoFijo"].ToString(), Convert.ToDecimal(dtcabecera.Rows[0]["Monto"]), Convert.ToDecimal(dtcabecera.Rows[0]["TotalICBPER"])); e.Graphics.DrawString(Formatoticket[0], TxtFormato.Font, Brushes.Black, 0, 0); //total pagar en letras //e.Graphics.DrawString(Convert.ToChar(27) + "i", TxtPrecio.Font, Brushes.Black, 0, 0); //total pagar en letras } /*imprimir el codigo de barras*/ QRCodeEncoder objqrcode = new QRCodeEncoder(); Image imgimage; Bitmap objbitmap; PictureBox Pimage = new PictureBox(); string s; s = RUC + " | " + CodigoTipoComprobante + " | " + TipoLetra + dtcabecera.Rows[0]["NumComprobante"].ToString().Substring(2, 3) + " | " + "0" + dtcabecera.Rows[0]["NumComprobante"].ToString().Substring(6) + " | " + Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]).ToString("N2") + " | " + Convert.ToDecimal(dtcabecera.Rows[0]["Monto"]).ToString("N2") + " | " + Convert.ToDateTime(dtcabecera.Rows[0]["AudCrea"]).ToShortDateString() + " | " + TipoDocumentoCliente + " | " + dtcabecera.Rows[0]["NroDocumentoCliente"].ToString(); objqrcode.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; objqrcode.QRCodeScale = 3; objqrcode.QRCodeVersion = 6; objqrcode.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.L; imgimage = objqrcode.Encode(s); objbitmap = new Bitmap(imgimage); //objbitmap.Save("QRCode.jpg"); //Pimage.ImageLocation = "QRCode.jpg"; //CALCULAMOS AL CANTIDAD DE LINEAS int CantidadLineas = (Canticabecera * 14) + (Convert.ToInt32(Formatoticket[1]) * 14); e.Graphics.DrawImage(imgimage, new Point(70, CantidadLineas)); if (Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]) == 0) { string textofinal = "Bienes transferidos en la Amazonía\nRegión Selva para ser cosumidos en la\nmisma."; e.Graphics.DrawString(textofinal, TxtFormato.Font, Brushes.Black, 0, CantidadLineas + (14 * 11)); } hojaimpresa = 2; e.HasMorePages = true; } else if (hojaimpresa == 2) { decimal total = Convert.ToDecimal(dtcabecera.Rows[0]["Monto"]) + Convert.ToDecimal(dtcabecera.Rows[0]["TotalICBPER"]) + Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]); if (Convert.ToInt16(dtcabecera.Rows[0]["TipoComprobanteID"]) == 4)//es boleta { string[] Formatoticket2 = new string[2]; Formatoticket2 = objVenta.FormatoTicketFEResumido(NomEmpresa, AppSettings.NomSede, dtcabecera.Rows[0]["NumComprobante"].ToString().Substring(2), "BOLETA ELECTRONICA: ", dtdetalle, RUC, AppSettings.Usuario, Convert.ToDecimal(dtcabecera.Rows[0]["MontoPagado"]), dtcabecera.Rows[0]["NomCaja"].ToString(), SerieEticketera, NroAutorizacion, TotalPagarLetras, dtcabecera.Rows[0]["RazonSocialCliente"].ToString(), dtcabecera.Rows[0]["NroDocumentoCliente"].ToString(), dtcabecera.Rows[0]["DireccionCliente"].ToString(), "", ConCliente, Convert.ToDateTime(dtcabecera.Rows[0]["AudCrea"]), Convert.ToDecimal(dtcabecera.Rows[0]["MontoPagado"]), Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]), "B", total, Convert.ToDecimal(dtcabecera.Rows[0]["TotalICBPER"])); e.Graphics.DrawString(Formatoticket2[0], TxtFormato.Font, Brushes.Black, 0, 0); //total pagar en letras } else if (Convert.ToInt16(dtcabecera.Rows[0]["TipoComprobanteID"]) == 5) //es factura { CodigoTipoComprobante = "01"; TipoLetra = "F"; TipoDocumentoCliente = "RUC"; Canticabecera = 35; string[] Formatoticket2 = new string[2]; Formatoticket2 = objVenta.FormatoTicketFEResumido(NomEmpresa, AppSettings.NomSede, dtcabecera.Rows[0]["NumComprobante"].ToString().Substring(2), "FACTURA ELECTRONICA: ", dtdetalle, RUC, AppSettings.Usuario, Convert.ToDecimal(dtcabecera.Rows[0]["Monto"]), dtcabecera.Rows[0]["NomCaja"].ToString(), SerieEticketera, NroAutorizacion, TotalPagarLetras, dtcabecera.Rows[0]["RazonSocialCliente"].ToString(), dtcabecera.Rows[0]["NroDocumentoCliente"].ToString(), dtcabecera.Rows[0]["DireccionCliente"].ToString(), "", ConCliente, Convert.ToDateTime(dtcabecera.Rows[0]["AudCrea"]), Convert.ToDecimal(dtcabecera.Rows[0]["Monto"]), Convert.ToDecimal(dtcabecera.Rows[0]["TotalIGV"]), "F", total, Convert.ToDecimal(dtcabecera.Rows[0]["TotalICBPER"])); e.Graphics.DrawString(Formatoticket2[0], TxtFormato.Font, Brushes.Black, 0, 0); //total pagar en letras //e.Graphics.DrawString(Convert.ToChar(27) + "i", TxtPrecio.Font, Brushes.Black, 0, 0); //total pagar en letras } e.HasMorePages = false; } }
public string GenerarSunat(Int32 TipoComprobanteID, string NumComprobante, string EmpresaID, string Tipo, string TipoNotaCredito, string DescripcionAnulacion) { /* * TipoDocumento = 07 nota de credito * NumComprobante2 para notacredito */ try { DataSet ds = GetComprobanteFE(TipoComprobanteID, NumComprobante, EmpresaID, null, Tipo); DataTable dtc = ds.Tables[0]; DataTable dtd = ds.Tables[1]; if (dtc.Rows[0]["EmiteFE"].ToString() == "S" & (Tipo == "01" | Tipo == "03" | Tipo == "07")) { string RUTA_WS_SUNAT = ConfigurationManager.AppSettings["RUTA_WS_SUNAT"]; ServicioEnviarComprobanteFE.FEServiceClient ServicioFE = new ServicioEnviarComprobanteFE.FEServiceClient(); ServicioEnviarComprobanteFE.Contribuyente emisor = new ServicioEnviarComprobanteFE.Contribuyente(); ServicioEnviarComprobanteFE.Contribuyente receptor = new ServicioEnviarComprobanteFE.Contribuyente(); ServicioEnviarComprobanteFE.DetalleDocumento[] detalle = new ServicioEnviarComprobanteFE.DetalleDocumento[dtd.Rows.Count]; ServicioEnviarComprobanteFE.DatoAdicional[] datosadicionales = new ServicioEnviarComprobanteFE.DatoAdicional[0]; //ServicioEnviarComprobanteFE.DocumentoRelacionado[] relacionados = new ServicioEnviarComprobanteFE.DocumentoRelacionado[0]; receptor.TipoDocumento = dtc.Rows[0]["TipoDocumentoIdentidadCliente"].ToString(); receptor.NroDocumento = dtc.Rows[0]["NumeroDocumentoIdentidadCliente"].ToString(); receptor.NombreLegal = dtc.Rows[0]["RazonSocialCliente"].ToString(); emisor.TipoDocumento = dtc.Rows[0]["TipoDocumentoEmisor"].ToString(); emisor.NroDocumento = dtc.Rows[0]["RUC"].ToString(); emisor.NombreLegal = dtc.Rows[0]["RazonSocial"].ToString(); TextFunctions ObjTextFunctions = new TextFunctions(); string TotalPagarLetras = ObjTextFunctions.enletras(dtc.Rows[0]["ImporteTotal"].ToString()); //ServicioEnviarComprobanteFE.DocumentoRelacionado sss = new ServicioEnviarComprobanteFE.DocumentoRelacionado(); //sss.NroDocumento = ""; //sss.TipoDocumento = ""; //ServicioEnviarComprobanteFE.DatoAdicional dar = new ServicioEnviarComprobanteFE.DatoAdicional(); //dar.Codigo = ""; //dar.Contenido = ""; int id = 0; foreach (DataRow DR in dtd.Rows) { //ServicioEnviarComprobanteFE.DetalleDocumento dd = new ServicioEnviarComprobanteFE.DetalleDocumento(); ServicioEnviarComprobanteFE.DetalleDocumento dd = new ServicioEnviarComprobanteFE.DetalleDocumento(); dd.Cantidad = Convert.ToDecimal(DR["Cantidad"]); dd.CodigoItem = DR["CodigoProducto"].ToString(); dd.Descripcion = DR["DescripcionProducto"].ToString(); dd.Descuento = Convert.ToDecimal(DR["DescuentoItem"]); dd.Id = id + 1; dd.Impuesto = Convert.ToDecimal(DR["MontoIgvItem"]); dd.ImpuestoSelectivo = Convert.ToDecimal(DR["MontoISCItem"]); dd.OtroImpuesto = 0; dd.PrecioReferencial = Convert.ToDecimal(DR["ValorVentaItem"]); dd.PrecioUnitario = Convert.ToDecimal(DR["PrecioVentaItem"]); dd.Suma = Convert.ToDecimal(DR["Suma"]); dd.TipoImpuesto = DR["AfectacionIGVItem"].ToString(); dd.TipoPrecio = "01"; dd.TotalVenta = Convert.ToDecimal(DR["TotalVenta"]); dd.UnidadMedida = DR["CodigoUM"].ToString(); detalle[id] = dd; id = id + 1; } //ServicioEnviarComprobanteFE.DocumentoElectronico _documento = new ServicioEnviarComprobanteFE.DocumentoElectronico() ServicioEnviarComprobanteFE.DocumentoElectronico _documento = new ServicioEnviarComprobanteFE.DocumentoElectronico() { FechaEmision = DateTime.Today.ToShortDateString(), IdDocumento = dtc.Rows[0]["NumComprobante2"].ToString(), TotalIgv = Convert.ToDecimal(dtc.Rows[0]["SumatoriaIGV"]), TotalIsc = Convert.ToDecimal(dtc.Rows[0]["SumatoriaISC"]), TotalOtrosTributos = Convert.ToDecimal(dtc.Rows[0]["SumatoriaOtrosTributos"]), Gravadas = Convert.ToDecimal(dtc.Rows[0]["OperacionesGravadas"]), Exoneradas = Convert.ToDecimal(dtc.Rows[0]["ValorVentaOperacionesExoneradas"]), Inafectas = Convert.ToDecimal(dtc.Rows[0]["OperacionesInafectas"]), Gratuitas = Convert.ToDecimal(dtc.Rows[0]["Gratuitas"]), TotalVenta = Convert.ToDecimal(dtc.Rows[0]["ImporteTotal"]), DescuentoGlobal = Convert.ToDecimal(dtc.Rows[0]["DescuentosGlobales"]), Moneda = dtc.Rows[0]["TipoMoneda"].ToString(), CalculoIgv = Convert.ToDecimal(dtc.Rows[0]["DescuentosGlobales"]), CalculoDetraccion = Convert.ToDecimal(dtc.Rows[0]["DescuentosGlobales"]), CalculoIsc = Convert.ToDecimal(dtc.Rows[0]["DescuentosGlobales"]), MonedaAnticipo = "", TipoDocumento = dtc.Rows[0]["TipoDocumento"].ToString(), TipoOperacion = dtc.Rows[0]["TipoOperacion"].ToString(), TipoDocAnticipo = "", MontoAnticipo = 0, MontoDetraccion = 0, MontoEnLetras = TotalPagarLetras, MontoPercepcion = 0, Emisor = emisor, Receptor = receptor, Items = detalle, //Relacionados = relacionados, DatoAdicionales = datosadicionales, RutaXML = dtc.Rows[0]["RutaXMLFE"].ToString() }; int NotaID = 0; if (Tipo == "07") { ServicioEnviarComprobanteFE.Discrepancia[] discrepancias = new ServicioEnviarComprobanteFE.Discrepancia[1]; ServicioEnviarComprobanteFE.Discrepancia Discre = new ServicioEnviarComprobanteFE.Discrepancia(); Discre.NroReferencia = dtc.Rows[0]["NumComprobante2"].ToString(); Discre.Descripcion = DescripcionAnulacion; Discre.Tipo = TipoNotaCredito; discrepancias[0] = Discre; //obtener nota credito DataTable dtnota = InsertarNotaCreditoFE("07", EmpresaID, dtc.Rows[0]["NumComprobante2"].ToString().Substring(0, 4), Convert.ToInt32(dtc.Rows[0]["NumComprobante2"].ToString().Substring(5, 8)), TipoComprobanteID, Convert.ToDecimal(dtc.Rows[0]["ImporteTotal"]), DescripcionAnulacion, 0, Convert.ToInt32(dtc.Rows[0]["ClienteID"].ToString()), 51, ""); _documento.IdDocumento = dtnota.Rows[0]["NumeroComprobante"].ToString(); _documento.TipoDocumento = Tipo; _documento.Discrepancias = discrepancias; NotaID = Convert.ToInt32(dtnota.Rows[0]["NotaID"]); ServicioEnviarComprobanteFE.DocumentoRelacionado[] Relacionados = new ServicioEnviarComprobanteFE.DocumentoRelacionado[1]; ServicioEnviarComprobanteFE.DocumentoRelacionado relacion = new ServicioEnviarComprobanteFE.DocumentoRelacionado(); relacion.NroDocumento = dtc.Rows[0]["NumComprobante2"].ToString(); relacion.TipoDocumento = dtc.Rows[0]["TipoDocumento"].ToString(); Relacionados[0] = relacion; _documento.Relacionados = Relacionados; } else { ServicioEnviarComprobanteFE.DocumentoRelacionado[] Relacionados = new ServicioEnviarComprobanteFE.DocumentoRelacionado[0]; _documento.Relacionados = Relacionados; } ServicioEnviarComprobanteFE.DocumentoResponse respu = ServicioFE.GenerarXMLFactura(_documento); if (respu.Exito == true) { //solo se envia factura, nota credito a sunat, boleta solo se guarda if (Tipo == "01" | Tipo == "07") { ServicioEnviarComprobanteFE.RespuestaComunConArchivo2 RespuestaSunat = ServicioFE.EnviarSunat(Tipo, dtc.Rows[0]["RutaXMLFE"].ToString(), dtc.Rows[0]["RutaCDRFE"].ToString(), dtc.Rows[0]["RutaCertificado"].ToString(), dtc.Rows[0]["ClaveCertificado"].ToString(), dtc.Rows[0]["RUC"].ToString(), dtc.Rows[0]["UsuarioSOL"].ToString(), dtc.Rows[0]["ClaveSol"].ToString(), _documento.IdDocumento, RUTA_WS_SUNAT, false); if (Tipo == "07") { ActualizarNotaCredito(NotaID, Convert.ToInt64(RespuestaSunat.NroTicket), RespuestaSunat.MensajeError, (RespuestaSunat.Exito == true) ? "S" : "N", Convert.ToInt32(dtc.Rows[0]["ComprobanteId"])); } DataTable dtres; if (Tipo == "01") { dtres = ActualizarComprobanteSunat(Convert.ToInt32(dtc.Rows[0]["ComprobanteId"]), (RespuestaSunat.Exito == true) ? "S" : "N", RespuestaSunat.MensajeRespuesta); } if (RespuestaSunat.Exito == false) { throw new Exception(RespuestaSunat.MensajeError); } else { if (Tipo == "01") { //GENERAR EMISIÓN FISICA if (dtc.Rows[0]["GenerarFisico"].ToString() == "S") { //string mensajeresp = ServicioFE.GenerarPdf(ds, dtc.Rows[0]["RutaXMLFE"].ToString(), dtc.Rows[0]["NumComprobante2"].ToString(), RespuestaSunat.MensajeRespuesta); //if (mensajeresp != "OK") //{ // return respu.MensajeError; //} } } } return("OK"); } } else { return(respu.MensajeError); } } return("OK"); } catch (Exception ex) { return(ex.Message); } }
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //formato para alinear los nuimeros a la derecha StringFormat formato = new StringFormat(); formato.Alignment = StringAlignment.Far; //formato.LineAlignment = StringAlignment.Far; //obtener la cadena del total a pagar string TotalPagarLetras = ObjTextFunctions.enletras(TxtVentaNeta.Text); //validar boleta o factura #region Boleta if (Convert.ToInt16(CboTipoComprobante.SelectedValue) == 1)//es boleta { int sum = 0; sum += 12; e.Graphics.DrawString(CboClientesNombre.Columns["Cliente"].Value.ToString(), TxtValorVenta.Font, Brushes.Black, 70 + AppSettings.BoletaEjeX, 156 + AppSettings.BoletaEjeY); //cliente if (TxtDireccion.Text.Length >= 30) { e.Graphics.DrawString(TxtDireccion.Text.Substring(0, 29), TxtValorVenta.Font, Brushes.Black, 80 + AppSettings.BoletaEjeX, 186 + AppSettings.BoletaEjeY); //direccion larga } else { e.Graphics.DrawString(TxtDireccion.Text, TxtValorVenta.Font, Brushes.Black, 80 + AppSettings.BoletaEjeX, 186 + AppSettings.BoletaEjeY); //direccion corta } e.Graphics.DrawString(TxtCanasta.Text, TxtValorVenta.Font, Brushes.Black, 40 + AppSettings.BoletaEjeX, 166 + AppSettings.BoletaEjeY); //canasta e.Graphics.DrawString(CboClientesNombre.Columns["Codigo"].Value.ToString(), TxtValorVenta.Font, Brushes.Black, 326 + AppSettings.BoletaEjeX, 186 + AppSettings.BoletaEjeY); //ruc o DNI e.Graphics.DrawString(DateTime.Now.Date.ToString().Substring(0, 10), TxtValorVenta.Font, Brushes.Black, 240 + AppSettings.BoletaEjeX, 136 + AppSettings.BoletaEjeY); //dia e.Graphics.DrawString(NumComprobante.Substring(2), TxtValorVenta.Font, Brushes.Black, 260 + AppSettings.BoletaEjeX, 117 + AppSettings.BoletaEjeY); //numero de comprobante int Suma = 238; foreach (DataRow Dr in DtComprobante.Rows) { e.Graphics.DrawString(Convert.ToDecimal(Dr["Cantidad"]).ToString("#,##0.00") + " " + Dr["Simbolo"].ToString(), TxtValorVenta.Font, Brushes.Black, 65 + AppSettings.BoletaEjeX, Suma + AppSettings.BoletaEjeY, formato); //cantidad + UM e.Graphics.DrawString(Dr["Articulo"].ToString(), TxtValorVenta.Font, Brushes.Black, 75 + AppSettings.BoletaEjeX, Suma + AppSettings.BoletaEjeY); //descripcion o producto e.Graphics.DrawString(Convert.ToDecimal(Dr["ValorUnitario"]).ToString("#,##0.00"), TxtValorVenta.Font, Brushes.Black, 320 + AppSettings.BoletaEjeX, Suma + AppSettings.BoletaEjeY, formato); //precio unitario e.Graphics.DrawString(Convert.ToDecimal(Dr["ValorVenta"]).ToString("#,##0.00"), TxtValorVenta.Font, Brushes.Black, 380 + AppSettings.BoletaEjeX, Suma + AppSettings.BoletaEjeY, formato); //valor de venta Suma += 14; } e.Graphics.DrawString(TxtVentaNeta.Text, TxtValorVenta.Font, Brushes.Black, 370 + AppSettings.BoletaEjeX, 450 + AppSettings.BoletaEjeY, formato); //total e.Graphics.DrawString(TotalPagarLetras, TxtValorVenta.Font, Brushes.Black, 45 + AppSettings.BoletaEjeX, 424 + AppSettings.BoletaEjeY); //tatal pagar en letras } #endregion #region Factura else if (Convert.ToInt16(CboTipoComprobante.SelectedValue) == 2)//es factura { int sum = 0; sum += 12; e.Graphics.DrawString(CboClientesNombre.Columns["Cliente"].Value.ToString(), TxtValorVenta.Font, Brushes.Black, 90 + AppSettings.FacturaEjeX, 117 + AppSettings.FacturaEjeY); //cliente //e.Graphics.DrawString(TxtDireccion.Text, TxtValorVenta.Font, Brushes.Black, 90 + AppSettings.FacturaEjeX, 157 + AppSettings.FacturaEjeY); //direccion if (TxtDireccion.Text.Length >= 95) { e.Graphics.DrawString(TxtDireccion.Text.Substring(0, 94), TxtValorVenta.Font, Brushes.Black, 90 + AppSettings.FacturaEjeX, 157 + AppSettings.FacturaEjeY); //direccion } else { e.Graphics.DrawString(TxtDireccion.Text, TxtValorVenta.Font, Brushes.Black, 90 + AppSettings.FacturaEjeX, 157 + AppSettings.FacturaEjeY); //direccion } e.Graphics.DrawString(CboClientesNombre.Columns["Codigo"].Value.ToString(), TxtValorVenta.Font, Brushes.Black, 90 + AppSettings.FacturaEjeX, 182 + AppSettings.FacturaEjeY); //ruc o DNI e.Graphics.DrawString(DateTime.Now.Day.ToString(), TxtValorVenta.Font, Brushes.Black, 570 + AppSettings.FacturaEjeX, 182 + AppSettings.FacturaEjeY); //dia e.Graphics.DrawString(DateTime.Now.ToString("MMMM"), TxtValorVenta.Font, Brushes.Black, 650 + AppSettings.FacturaEjeX, 182 + AppSettings.FacturaEjeY); //mes e.Graphics.DrawString(DateTime.Now.Year.ToString().Substring(2), TxtValorVenta.Font, Brushes.Black, 805 + AppSettings.FacturaEjeX, 182 + AppSettings.FacturaEjeY); //año e.Graphics.DrawString(NumComprobante.Substring(2), TxtValorVenta.Font, Brushes.Black, 690 + AppSettings.FacturaEjeX, 147 + AppSettings.FacturaEjeY); //numero de comprobante int Suma = 230; foreach (DataRow Dr in DtComprobante.Rows) { e.Graphics.DrawString(Convert.ToDecimal(Dr["Cantidad"]).ToString("#,##0.00") + " " + Dr["Simbolo"].ToString(), TxtValorVenta.Font, Brushes.Black, 80 + AppSettings.FacturaEjeX, Suma + AppSettings.FacturaEjeY, formato); //cantidad + UM e.Graphics.DrawString(Dr["Articulo"].ToString(), TxtValorVenta.Font, Brushes.Black, 110 + AppSettings.FacturaEjeX, Suma + AppSettings.FacturaEjeY); //descripcion o producto e.Graphics.DrawString(Convert.ToDecimal(Dr["ValorUnitario"]).ToString("#,##0.00"), TxtValorVenta.Font, Brushes.Black, 665 + AppSettings.FacturaEjeX, Suma + AppSettings.FacturaEjeY, formato); //precio unitario e.Graphics.DrawString(Convert.ToDecimal(Dr["ValorVenta"]).ToString("#,##0.00"), TxtValorVenta.Font, Brushes.Black, 790 + AppSettings.FacturaEjeX, Suma + AppSettings.FacturaEjeY, formato); //valor de venta Suma += 14; } e.Graphics.DrawString(TxtValorVenta.Text, TxtValorVenta.Font, Brushes.Black, 790 + AppSettings.FacturaEjeX, 427 + AppSettings.FacturaEjeY, formato); //subtotal e.Graphics.DrawString(TxtIGV.Text, TxtValorVenta.Font, Brushes.Black, 790 + AppSettings.FacturaEjeX, 447 + AppSettings.FacturaEjeY, formato); //igv e.Graphics.DrawString(TxtVentaNeta.Text, TxtValorVenta.Font, Brushes.Black, 790 + AppSettings.FacturaEjeX, 477 + AppSettings.FacturaEjeY, formato); //total e.Graphics.DrawString(DateTime.Now.Day.ToString(), TxtValorVenta.Font, Brushes.Black, 405 + AppSettings.FacturaEjeX, 457 + AppSettings.FacturaEjeY); //dia pie e.Graphics.DrawString(DateTime.Now.ToString("MMMM"), TxtValorVenta.Font, Brushes.Black, 465 + AppSettings.FacturaEjeX, 457 + AppSettings.FacturaEjeY); //mes pie e.Graphics.DrawString(DateTime.Now.Year.ToString().Substring(2), TxtValorVenta.Font, Brushes.Black, 545 + AppSettings.FacturaEjeX, 457 + AppSettings.FacturaEjeY); //año pie e.Graphics.DrawString(TotalPagarLetras, TxtValorVenta.Font, Brushes.Black, 90 + AppSettings.FacturaEjeX, 407 + AppSettings.FacturaEjeY); //total pagar en letras } #endregion //tamaño del papel //printDocument1.PrinterSettings.PaperSizes = /*//haber * StringBuilder Str = new StringBuilder(); * Str.Append("margen izquierdo: " + printDocument1.DefaultPageSettings.Margins.Left.ToString() + ""); * Str.Append("margen derecho: " + printDocument1.DefaultPageSettings.Margins.Right.ToString() + ", "); * Str.Append("margen superior: " + printDocument1.DefaultPageSettings.Margins.Top.ToString() + ", "); * Str.Append("margen Inferior: " + printDocument1.DefaultPageSettings.Margins.Bottom.ToString() + ", "); * Str.Append("Ancho : " + printDocument1.DefaultPageSettings.PaperSize.Width.ToString() + ", "); * Str.Append("Alto : " + printDocument1.DefaultPageSettings.PaperSize.Height.ToString() + ", "); * MessageBox.Show(Str.ToString());*/ }