.
This commit is contained in:
@@ -4002,7 +4002,7 @@ Namespace Modelos
|
|||||||
'1 NORMAL, 2 CON PAGOS
|
'1 NORMAL, 2 CON PAGOS
|
||||||
Dim ModalidadRefacturacion As Integer = UsuarioActual.Empresa.Funcionalidad(586).ToEntero()
|
Dim ModalidadRefacturacion As Integer = UsuarioActual.Empresa.Funcionalidad(586).ToEntero()
|
||||||
|
|
||||||
If ModalidadRefacturacion <= 0 Then
|
If EsRefacturacion AndAlso ModalidadRefacturacion <= 0 Then
|
||||||
Retorno.Mensaje = "La factura no se puede refacturar debido a que la empresa no tiene asignada una modalidad de refacturación."
|
Retorno.Mensaje = "La factura no se puede refacturar debido a que la empresa no tiene asignada una modalidad de refacturación."
|
||||||
Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia
|
Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia
|
||||||
|
|
||||||
|
|||||||
281
Ashx/GenerarPDFFactura.ashx
Normal file
281
Ashx/GenerarPDFFactura.ashx
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
<%@ WebHandler Language="VB" Class="GenerarPDFFactura" %>
|
||||||
|
|
||||||
|
Imports System
|
||||||
|
Imports System.Web
|
||||||
|
Imports System.Data
|
||||||
|
Imports Newtonsoft.Json
|
||||||
|
Imports Newtonsoft.Json.Linq
|
||||||
|
Imports Extensiones
|
||||||
|
Imports System.IO
|
||||||
|
Imports Microsoft.Reporting.WebForms
|
||||||
|
|
||||||
|
Public Class GenerarPDFFactura : Implements IHttpHandler
|
||||||
|
|
||||||
|
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
|
||||||
|
Get
|
||||||
|
Return False
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
|
||||||
|
Dim retorno As String = "no se encontro la variable"
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim datos As ParametroWS = Nothing
|
||||||
|
If context.Request.Headers("Content-Type") IsNot Nothing AndAlso context.Request.Headers("Content-Type").Contains("json") AndAlso context.Request.InputStream IsNot Nothing Then
|
||||||
|
context.Response.ContentType = "application/json"
|
||||||
|
Using reader As New StreamReader(context.Request.InputStream)
|
||||||
|
Dim json = reader.ReadToEnd()
|
||||||
|
datos = JsonConvert.DeserializeObject(Of ParametroWS)(json)
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
|
||||||
|
If datos IsNot Nothing Then
|
||||||
|
Dim ListaDS = New List(Of ReportDataSource)
|
||||||
|
Dim Parametros As New List(Of ReportParameter)
|
||||||
|
|
||||||
|
Dim Formato = context.Server.MapPath("/") + "Empresas/1/Report.rdlc"
|
||||||
|
|
||||||
|
Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa))
|
||||||
|
Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC))
|
||||||
|
Parametros.Add(New ReportParameter("DomicilioExpedicion", datos.Empresa.DomicilioFiscal))
|
||||||
|
Parametros.Add(New ReportParameter("Serie", datos.Factura.Serie))
|
||||||
|
Parametros.Add(New ReportParameter("Folio", datos.Factura.Folio))
|
||||||
|
Parametros.Add(New ReportParameter("Fecha", datos.Factura.Fecha))
|
||||||
|
Parametros.Add(New ReportParameter("ClienteNombre", datos.Cliente.NombreComercial))
|
||||||
|
Parametros.Add(New ReportParameter("ClienteDireccion", datos.Cliente.Calle + " Colonia " + datos.Cliente.Colonia + " " + datos.Cliente.Ciudad + ", " + datos.Cliente.Estado))
|
||||||
|
Parametros.Add(New ReportParameter("ClienteLugar", datos.Cliente.Ciudad))
|
||||||
|
Parametros.Add(New ReportParameter("ClienteRFC", datos.Cliente.RFC))
|
||||||
|
Parametros.Add(New ReportParameter("ImporteLetra", datos.Factura.Total.Texto2Letras()))
|
||||||
|
Parametros.Add(New ReportParameter("FormaPago", datos.Factura.FormaPago))
|
||||||
|
Parametros.Add(New ReportParameter("MetodoPago", datos.Factura.MetodoPago))
|
||||||
|
Parametros.Add(New ReportParameter("SelloCFDI", ""))
|
||||||
|
Parametros.Add(New ReportParameter("SelloSAT", ""))
|
||||||
|
Parametros.Add(New ReportParameter("CadenaOriginal", ""))
|
||||||
|
Parametros.Add(New ReportParameter("FolioFiscal", datos.Factura.UUID))
|
||||||
|
Parametros.Add(New ReportParameter("SerieCertificadoSAT", ""))
|
||||||
|
Parametros.Add(New ReportParameter("FechaCertificado", ""))
|
||||||
|
Parametros.Add(New ReportParameter("CertificadoContribuyente", ""))
|
||||||
|
Parametros.Add(New ReportParameter("UsoCFDI", datos.Factura.UsoCFDI))
|
||||||
|
Parametros.Add(New ReportParameter("Vencimiento", Now.AddDays(30)))
|
||||||
|
Parametros.Add(New ReportParameter("SubTotal", datos.Factura.SubTotal))
|
||||||
|
Parametros.Add(New ReportParameter("IVA", datos.Factura.IVA))
|
||||||
|
Parametros.Add(New ReportParameter("IEPS", datos.Factura.IEPS))
|
||||||
|
Parametros.Add(New ReportParameter("Total", datos.Factura.Total))
|
||||||
|
Parametros.Add(New ReportParameter("QR", ""))
|
||||||
|
|
||||||
|
Dim DtDatos As New DataTable
|
||||||
|
DtDatos.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
|
||||||
|
DtDatos.Columns.Add(New DataColumn("UnidadMedida", GetType(String)))
|
||||||
|
DtDatos.Columns.Add(New DataColumn("PS", GetType(String)))
|
||||||
|
DtDatos.Columns.Add(New DataColumn("PU", GetType(Decimal)))
|
||||||
|
DtDatos.Columns.Add(New DataColumn("IVA", GetType(Decimal)))
|
||||||
|
DtDatos.Columns.Add(New DataColumn("IEPS", GetType(Decimal)))
|
||||||
|
DtDatos.Columns.Add(New DataColumn("Total", GetType(Decimal)))
|
||||||
|
|
||||||
|
For Each PS In datos.Factura.ListaProductos
|
||||||
|
Dim Row = DtDatos.NewRow()
|
||||||
|
Row("Cantidad") = PS.Cantidad
|
||||||
|
Row("UnidadMedida") = PS.UnidadMedida
|
||||||
|
Row("PS") = PS.CodigoPS
|
||||||
|
Row("PU") = PS.PU
|
||||||
|
Row("IVA") = PS.IVA
|
||||||
|
Row("IEPS") = PS.IEPS
|
||||||
|
Row("Total") = (PS.Cantidad * PS.PU) + PS.IVA + PS.IEPS
|
||||||
|
|
||||||
|
DtDatos.Rows.Add(Row)
|
||||||
|
Next
|
||||||
|
ListaDS.Add(New ReportDataSource("DsProductos", DtDatos))
|
||||||
|
|
||||||
|
ImprimirbytesPDF(context, StreamPDF(context, Formato, ListaDS, Parametros), "test")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
ex.GuardaLog(ex.ToString())
|
||||||
|
context.Response.Write(retorno)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Function StreamPDF(ByVal context As HttpContext, RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte()
|
||||||
|
'limpio ReportViwer
|
||||||
|
Dim sw As New System.Diagnostics.Stopwatch()
|
||||||
|
sw.Start()
|
||||||
|
|
||||||
|
If IsNothing(MR) Then MR = New ReportViewer
|
||||||
|
Dim Bytes As Byte() = Nothing
|
||||||
|
Try
|
||||||
|
' MasterReporteador.LocalReport.DataSources.Clear()
|
||||||
|
For Each RDS As ReportDataSource In DataSource
|
||||||
|
MR.LocalReport.DataSources.Add(RDS)
|
||||||
|
Next
|
||||||
|
|
||||||
|
MR.LocalReport.ReportPath = RutaReporte
|
||||||
|
MR.ProcessingMode = ProcessingMode.Local
|
||||||
|
MR.LocalReport.EnableExternalImages = True
|
||||||
|
MR.LocalReport.SetParameters(Parametros)
|
||||||
|
MR.LocalReport.Refresh()
|
||||||
|
Dim Warnings As Warning() = Nothing
|
||||||
|
Dim StreamIds As String() = Nothing
|
||||||
|
Dim MimeType As String = Nothing
|
||||||
|
Dim Encoding As String = Nothing
|
||||||
|
Dim Extension As String = Nothing
|
||||||
|
Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings)
|
||||||
|
Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException
|
||||||
|
GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}")
|
||||||
|
'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017
|
||||||
|
'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}")
|
||||||
|
Catch ex As Exception
|
||||||
|
GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}")
|
||||||
|
'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017
|
||||||
|
'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}")
|
||||||
|
End Try
|
||||||
|
|
||||||
|
sw.Stop()
|
||||||
|
If sw.Elapsed.TotalSeconds > 10 Then
|
||||||
|
GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Bytes
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Sub ImprimirbytesPDF(ByVal context As HttpContext, bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False)
|
||||||
|
'limpio ReportViwer
|
||||||
|
Dim mimeType As String = Nothing
|
||||||
|
Dim extension As String = Nothing
|
||||||
|
|
||||||
|
'If Descarga Then
|
||||||
|
' Try
|
||||||
|
' bytes = bytes
|
||||||
|
' File.WriteAllBytes(String.Format("{0}PDF/whatever.gif", UsuarioActual.Empresa.Ruta), img)
|
||||||
|
' Catch ex As Exception
|
||||||
|
' If UsuarioActual.CveRol = 1 Then
|
||||||
|
' Alert(ex.Message, TipoMensaje.MsgAdvertencia)
|
||||||
|
' Else
|
||||||
|
' Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod'IMPDFclspag'", TipoMensaje.MsgAdvertencia)
|
||||||
|
' End If
|
||||||
|
' End Try
|
||||||
|
'End If
|
||||||
|
|
||||||
|
Try
|
||||||
|
|
||||||
|
bytes = bytes
|
||||||
|
context.Response.Buffer = True
|
||||||
|
context.Response.Clear()
|
||||||
|
context.Response.ContentType = mimeType
|
||||||
|
context.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}.{1}", NombreArchivo, If(Formato = "PDF", "pdf", "xls")))
|
||||||
|
context.Response.BinaryWrite(bytes) ' create the file
|
||||||
|
context.Response.Flush() ' send it to the client to download
|
||||||
|
context.Response.SuppressContent = True
|
||||||
|
context.ApplicationInstance.CompleteRequest()
|
||||||
|
context.Response.End()
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Public Class FacturaWS
|
||||||
|
Public Property Id As Integer
|
||||||
|
Public Property CveVenta As Integer
|
||||||
|
Public Property CveCliente As Integer
|
||||||
|
Public Property NombreCliente As String
|
||||||
|
Public Property Fecha As DateTime
|
||||||
|
Public Property CveSubCentroCosto As Integer
|
||||||
|
Public Property CveTipoDocumento As Integer
|
||||||
|
Public Property TipoDocumento As String
|
||||||
|
Public Property Serie As String
|
||||||
|
Public Property Folio As Integer
|
||||||
|
Public Property CveVendedor As Integer
|
||||||
|
Public Property CveUsuario As Integer
|
||||||
|
Public Property CveEstatusVenta As Integer
|
||||||
|
Public Property EstatusVenta As String
|
||||||
|
Public Property UUID As String
|
||||||
|
Public Property ListaProductos As List(Of ProductoWS)
|
||||||
|
Public Property CveUsoCFDI As Integer
|
||||||
|
Public Property UsoCFDI As String
|
||||||
|
Public Property CveMetodoPago As Integer
|
||||||
|
Public Property MetodoPago As String
|
||||||
|
Public Property ClaveMetodoPagoSAT As String
|
||||||
|
Public Property CveFormaPago As Integer
|
||||||
|
Public Property FormaPago As String
|
||||||
|
Public Property ClaveFormaPagoSAT As String
|
||||||
|
Public Property Observaciones As String
|
||||||
|
Public Property CveMoneda As Integer
|
||||||
|
Public Property TipoCambio As Double
|
||||||
|
Public Property FechaIng As DateTime
|
||||||
|
Public Property CveEmpresa As Integer
|
||||||
|
Public Property SubTotal As Double
|
||||||
|
Public Property Descuentos As Double
|
||||||
|
Public Property IVA As Double
|
||||||
|
Public Property IEPS As Double
|
||||||
|
Public Property Total As Double
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class ProductoWS
|
||||||
|
Public Property Id As Integer
|
||||||
|
Public Property CveVentaDetalle As Integer
|
||||||
|
Public Property CveVenta As Integer
|
||||||
|
Public Property CveProductoServicio As Integer
|
||||||
|
Public Property CodigoPS As String
|
||||||
|
Public Property CveUnidadMedida As Integer
|
||||||
|
Public Property UnidadMedida As String
|
||||||
|
Public Property Cantidad As Double
|
||||||
|
Public Property Observacion As String
|
||||||
|
Public Property PU As Double
|
||||||
|
Public Property Descuento As Double
|
||||||
|
Public Property IVA As Double
|
||||||
|
Public Property IEPS As Double
|
||||||
|
Public Property IVAPorcentaje As Double
|
||||||
|
Public Property IEPSPorcentaje As Double
|
||||||
|
Public Property CveSubCentroCosto As Integer
|
||||||
|
Public Property SubCentroCosto As String
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class ClienteWS
|
||||||
|
Public Property Id As Integer
|
||||||
|
Public Property CveCliente As Integer
|
||||||
|
Public Property RazonSocial As String
|
||||||
|
Public Property NombreComercial As String
|
||||||
|
Public Property RFC As String
|
||||||
|
Public Property Codigo As String
|
||||||
|
Public Property Calle As String
|
||||||
|
Public Property NoExterior As String
|
||||||
|
Public Property Colonia As String
|
||||||
|
Public Property Ciudad As String
|
||||||
|
Public Property Municipio As String
|
||||||
|
Public Property Estado As String
|
||||||
|
Public Property CodigoPostal As Integer
|
||||||
|
Public Property Contacto As String
|
||||||
|
Public Property ContactoTelefono As String
|
||||||
|
Public Property Correo As String
|
||||||
|
Public Property CveVendedor As Integer
|
||||||
|
Public Property Estatus As Boolean
|
||||||
|
Public Property CveUsuario As Integer
|
||||||
|
Public Property CveEmpresa As Integer
|
||||||
|
Public Property CveRegimenFiscal As Integer
|
||||||
|
Public Property RegimenFiscal As String
|
||||||
|
Public Property CodigoRegimenFiscal As String
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class EmpresaWS
|
||||||
|
Public Property Id As Integer
|
||||||
|
Public Property CveEmpresa As Integer
|
||||||
|
Public Property Empresa As String
|
||||||
|
Public Property RFC As String
|
||||||
|
Public Property DomicilioFiscal As String
|
||||||
|
Public Property ArchivoCER As String
|
||||||
|
Public Property ArchivoKEY As String
|
||||||
|
Public Property FieldPassword As String
|
||||||
|
Public Property CveRegimenFiscal As Integer
|
||||||
|
Public Property RegimenFiscal As String
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class ParametroWS
|
||||||
|
Public Property Factura As FacturaWS
|
||||||
|
Public Property Cliente As ClienteWS
|
||||||
|
Public Property Empresa As EmpresaWS
|
||||||
|
End Class
|
||||||
|
|
||||||
|
|
||||||
|
End Class
|
||||||
51
CRM/Report.rdlc
Normal file
51
CRM/Report.rdlc
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
|
||||||
|
<Body>
|
||||||
|
<ReportItems>
|
||||||
|
<Textbox Name="Textbox1">
|
||||||
|
<CanGrow>true</CanGrow>
|
||||||
|
<KeepTogether>true</KeepTogether>
|
||||||
|
<Paragraphs>
|
||||||
|
<Paragraph>
|
||||||
|
<TextRuns>
|
||||||
|
<TextRun>
|
||||||
|
<Value>test reporte</Value>
|
||||||
|
<Style />
|
||||||
|
</TextRun>
|
||||||
|
</TextRuns>
|
||||||
|
<Style>
|
||||||
|
<TextAlign>Center</TextAlign>
|
||||||
|
</Style>
|
||||||
|
</Paragraph>
|
||||||
|
</Paragraphs>
|
||||||
|
<rd:DefaultName>Textbox1</rd:DefaultName>
|
||||||
|
<Top>0.69667in</Top>
|
||||||
|
<Left>1.88417in</Left>
|
||||||
|
<Height>0.25in</Height>
|
||||||
|
<Width>2.55208in</Width>
|
||||||
|
<Style>
|
||||||
|
<Border>
|
||||||
|
<Style>None</Style>
|
||||||
|
</Border>
|
||||||
|
<PaddingLeft>2pt</PaddingLeft>
|
||||||
|
<PaddingRight>2pt</PaddingRight>
|
||||||
|
<PaddingTop>2pt</PaddingTop>
|
||||||
|
<PaddingBottom>2pt</PaddingBottom>
|
||||||
|
</Style>
|
||||||
|
</Textbox>
|
||||||
|
</ReportItems>
|
||||||
|
<Height>2in</Height>
|
||||||
|
<Style />
|
||||||
|
</Body>
|
||||||
|
<Width>6.5in</Width>
|
||||||
|
<Page>
|
||||||
|
<LeftMargin>1in</LeftMargin>
|
||||||
|
<RightMargin>1in</RightMargin>
|
||||||
|
<TopMargin>1in</TopMargin>
|
||||||
|
<BottomMargin>1in</BottomMargin>
|
||||||
|
<Style />
|
||||||
|
</Page>
|
||||||
|
<AutoRefresh>0</AutoRefresh>
|
||||||
|
<rd:ReportUnitType>Inch</rd:ReportUnitType>
|
||||||
|
<rd:ReportID>efa9f51c-a3da-48bc-be7d-74f8599c6070</rd:ReportID>
|
||||||
|
</Report>
|
||||||
Reference in New Issue
Block a user