예제 #1
0
        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);
            }
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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());*/
        }