This commit is contained in:
Antonio Gonzalez
2020-08-20 18:18:38 -07:00
9 changed files with 555 additions and 414 deletions

View File

@@ -9,6 +9,9 @@ Imports Extensiones
Imports System.IO
Imports Microsoft.Reporting.WebForms
Imports ADSistemaLibrary.SatXml
Imports ADSistemaLibrary.SatXml.XmlSatCFDI
Public Class GenerarPDFFactura : Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
@@ -19,11 +22,12 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
Public ReadOnly Property EsProduccion As Boolean
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
Return False
Else
Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
End If
Return False
'If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
' Return False
'Else
' Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
'End If
End Get
End Property
@@ -46,96 +50,211 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
Dim Formato As String = ""
If datos.API_SALI Then
Formato = ModExtensiones.DirectorioBaseEmpresas + "Empresas/Grales/ReporteAPISali.rdlc"
Else
Formato = ModExtensiones.DirectorioBaseEmpresas + "Empresas/Grales/ReporteAPI.rdlc"
End If
Dim Xml = New System.Xml.XmlDocument()
Xml.LoadXml(datos.XML)
Dim ArchivoXML = $"{context.Server.MapPath("/")}/Temp/{DateTime.UtcNow.Ticks}_{datos.Factura.Serie}-{datos.Factura.Folio}.xml"
Xml.Save(ArchivoXML)
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", datos.Timbrado.SelloCFDI))
Parametros.Add(New ReportParameter("SelloSAT", datos.Timbrado.SelloSAT))
Parametros.Add(New ReportParameter("CadenaOriginal", datos.Timbrado.CadenaOriginal))
Parametros.Add(New ReportParameter("FolioFiscal", datos.Factura.UUID))
Parametros.Add(New ReportParameter("SerieCertificadoSAT", datos.Timbrado.SerieCertificadoSAT))
Parametros.Add(New ReportParameter("FechaCertificado", datos.Timbrado.FechaCertificado))
Parametros.Add(New ReportParameter("CertificadoContribuyente", datos.Timbrado.CertificadoContribuyente))
Parametros.Add(New ReportParameter("UsoCFDI", datos.Factura.UsoCFDI))
Parametros.Add(New ReportParameter("Vencimiento", datos.Factura.FechaVencimiento))
Parametros.Add(New ReportParameter("SubTotal", datos.Factura.SubTotal))
Parametros.Add(New ReportParameter("Descuentos", datos.Factura.Descuentos))
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", datos.Timbrado.QR))
ImprimirbytesPDF(context, GenerarCFDi(context, ArchivoXML, datos), "Factura")
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("Descuento", GetType(Decimal)))
DtDatos.Columns.Add(New DataColumn("Total", GetType(Decimal)))
'If datos.API_SALI Then
' Dim Xml = New System.Xml.XmlDocument()
' Xml.LoadXml(datos.XML)
' Dim ArchivoXML = $"{context.Server.MapPath("/")}/Temp/{DateTime.UtcNow.Ticks}_{datos.Factura.Serie}-{datos.Factura.Folio}.xml"
' Xml.Save(ArchivoXML)
Dim DtImpuestos As New DataTable
DtImpuestos.Columns.Add(New DataColumn("Impuesto", GetType(String)))
DtImpuestos.Columns.Add(New DataColumn("Tipo", GetType(String)))
DtImpuestos.Columns.Add(New DataColumn("Base", GetType(Decimal)))
DtImpuestos.Columns.Add(New DataColumn("TipoFactor", GetType(String)))
DtImpuestos.Columns.Add(New DataColumn("TasaOCuota", GetType(String)))
DtImpuestos.Columns.Add(New DataColumn("Importe", GetType(Decimal)))
' ImprimirbytesPDF(context, GenerarCFDi(context, ArchivoXML, datos), "Factura")
'Else
' Formato = ModExtensiones.DirectorioBaseEmpresas + "Empresas/Grales/ReporteAPI.rdlc"
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("Descuento") = PS.Descuento
Row("Total") = (PS.Cantidad * PS.PU) + PS.IVA + PS.IEPS
' 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", datos.Timbrado.SelloCFDI))
' Parametros.Add(New ReportParameter("SelloSAT", datos.Timbrado.SelloSAT))
' Parametros.Add(New ReportParameter("CadenaOriginal", datos.Timbrado.CadenaOriginal))
' Parametros.Add(New ReportParameter("FolioFiscal", datos.Factura.UUID))
' Parametros.Add(New ReportParameter("SerieCertificadoSAT", datos.Timbrado.SerieCertificadoSAT))
' Parametros.Add(New ReportParameter("FechaCertificado", datos.Timbrado.FechaCertificado))
' Parametros.Add(New ReportParameter("CertificadoContribuyente", datos.Timbrado.CertificadoContribuyente))
' Parametros.Add(New ReportParameter("UsoCFDI", datos.Factura.UsoCFDI))
' Parametros.Add(New ReportParameter("Vencimiento", datos.Factura.FechaVencimiento))
' Parametros.Add(New ReportParameter("SubTotal", datos.Factura.SubTotal))
' Parametros.Add(New ReportParameter("Descuentos", datos.Factura.Descuentos))
' 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", datos.Timbrado.QR))
DtDatos.Rows.Add(Row)
Next
' 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("Descuento", GetType(Decimal)))
' DtDatos.Columns.Add(New DataColumn("Total", GetType(Decimal)))
Dim RowImpuesto = DtImpuestos.NewRow()
RowImpuesto("Impuesto") = "IVA"
RowImpuesto("Tipo") = "Traslado"
RowImpuesto("Base") = datos.Factura.SubTotal
RowImpuesto("TipoFactor") = "Tasa"
RowImpuesto("TasaOCuota") = "16%"
RowImpuesto("Importe") = datos.Factura.IVA
' Dim DtImpuestos As New DataTable
' DtImpuestos.Columns.Add(New DataColumn("Impuesto", GetType(String)))
' DtImpuestos.Columns.Add(New DataColumn("Tipo", GetType(String)))
' DtImpuestos.Columns.Add(New DataColumn("Base", GetType(Decimal)))
' DtImpuestos.Columns.Add(New DataColumn("TipoFactor", GetType(String)))
' DtImpuestos.Columns.Add(New DataColumn("TasaOCuota", GetType(String)))
' DtImpuestos.Columns.Add(New DataColumn("Importe", GetType(Decimal)))
DtImpuestos.Rows.Add(RowImpuesto)
' 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("Descuento") = PS.Descuento
' Row("Total") = (PS.Cantidad * PS.PU) + PS.IVA + PS.IEPS
ListaDS.Add(New ReportDataSource("DsProductos", DtDatos))
ListaDS.Add(New ReportDataSource("DsImpuestos", DtImpuestos))
' DtDatos.Rows.Add(Row)
' Next
ImprimirbytesPDF(context, StreamPDF(context, Formato, ListaDS, Parametros), "Factura")
' Dim RowImpuesto = DtImpuestos.NewRow()
' RowImpuesto("Impuesto") = "IVA"
' RowImpuesto("Tipo") = "Traslado"
' RowImpuesto("Base") = datos.Factura.SubTotal
' RowImpuesto("TipoFactor") = "Tasa"
' RowImpuesto("TasaOCuota") = "16%"
' RowImpuesto("Importe") = datos.Factura.IVA
' DtImpuestos.Rows.Add(RowImpuesto)
' ListaDS.Add(New ReportDataSource("DsProductos", DtDatos))
' ListaDS.Add(New ReportDataSource("DsImpuestos", DtImpuestos))
' ImprimirbytesPDF(context, StreamPDF(context, Formato, ListaDS, Parametros), "Factura")
'End If
Else
retorno = "no hay datossss"
End If
Catch ex As Exception
retorno = ex.ToString()
ex.GuardaLog(ex.ToString())
context.Response.Write(retorno)
End Try
End Sub
Private Function GenerarCFDi(ByVal context As HttpContext, RutaXml As String, datos As ParametroWS) As Byte()
Dim bytes As Byte() = Nothing
Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(RutaXml)
Dim rutaReporte As String = "\Empresas\Grales\Formatos\FacturaSALI.rdlc"
Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar()
Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID)
Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)()
parametros.Add(New ReportParameter("comprobante_Certificado", objxml.comprobante.Certificado))
parametros.Add(New ReportParameter("comprobante_CondicionesDePago", objxml.comprobante.CondicionesDePago))
parametros.Add(New ReportParameter("comprobante_Confirmacion", objxml.comprobante.Confirmacion))
parametros.Add(New ReportParameter("comprobante_Fecha", objxml.comprobante.Fecha))
parametros.Add(New ReportParameter("comprobante_Serie", objxml.comprobante.Serie))
parametros.Add(New ReportParameter("comprobante_Folio", objxml.comprobante.Folio))
parametros.Add(New ReportParameter("comprobante_Descuento", objxml.comprobante.Descuento.ToString("N2")))
parametros.Add(New ReportParameter("comprobante_SubTotal", objxml.comprobante.SubTotal.ToString("N2")))
parametros.Add(New ReportParameter("comprobante_Total", objxml.comprobante.Total.ToString("N2")))
parametros.Add(New ReportParameter("comprobante_Version", objxml.comprobante.Version))
parametros.Add(New ReportParameter("comprobante_TipoDeComprobante", objxml.comprobante.TipoDeComprobanteTexto))
parametros.Add(New ReportParameter("comprobante_FormaPago", objxml.comprobante.FormaPagoTexto))
parametros.Add(New ReportParameter("comprobante_LugarExpedicion", objxml.comprobante.LugarExpedicion))
parametros.Add(New ReportParameter("comprobante_NoCertificado", objxml.comprobante.NoCertificado))
parametros.Add(New ReportParameter("comprobante_Sello", objxml.comprobante.Sello))
parametros.Add(New ReportParameter("comprobante_Moneda", objxml.comprobante.Moneda))
parametros.Add(New ReportParameter("comprobante_TipoCambio", objxml.comprobante.TipoCambio.ToString("N2")))
parametros.Add(New ReportParameter("comprobante_MetodoPago", objxml.comprobante.MetodoPagoTexto))
parametros.Add(New ReportParameter("emisor_Rfc", objxml.emisor.Rfc))
parametros.Add(New ReportParameter("emisor_Nombre", objxml.emisor.Nombre))
parametros.Add(New ReportParameter("emisor_RegimenFiscal", objxml.emisor.RegimenFiscalTexto))
parametros.Add(New ReportParameter("emisor_Direccion", datos.Empresa.DomicilioFiscal))
parametros.Add(New ReportParameter("receptor_Rfc", objxml.receptor.Rfc))
parametros.Add(New ReportParameter("receptor_Nombre", objxml.receptor.Nombre))
parametros.Add(New ReportParameter("receptor_NumRegIdTrib", objxml.receptor.NumRegIdTrib))
parametros.Add(New ReportParameter("receptor_ResidenciaFiscal", objxml.receptor.ResidenciaFiscal))
parametros.Add(New ReportParameter("receptor_UsoCFDI", objxml.receptor.UsoCFDITexto))
parametros.Add(New ReportParameter("complemento_FechaTimbrado", objxml.complemento.FechaTimbrado))
parametros.Add(New ReportParameter("complemento_NoCertificadoSAT", objxml.complemento.NoCertificadoSAT))
parametros.Add(New ReportParameter("complemento_RfcProvCertif", objxml.complemento.RfcProvCertif))
parametros.Add(New ReportParameter("complemento_SelloCFD", objxml.complemento.SelloCFD))
parametros.Add(New ReportParameter("complemento_SelloSAT", objxml.complemento.SelloSAT))
parametros.Add(New ReportParameter("complemento_UUID", objxml.complemento.UUID))
parametros.Add(New ReportParameter("complemento_CadenaOriginal", objxml.complemento.CadenaOriginal))
Dim ds As New List(Of ReportDataSource)
Dim rdsTotales As ReportDataSource = New ReportDataSource()
Dim ltotales As List(Of utilValores) = New List(Of utilValores)()
ltotales.Add(New utilValores("Subtotal", objxml.comprobante.SubTotal.ToString("N2")))
If objxml.comprobante.Descuento > 0 Then
ltotales.Add(New utilValores("Descuento", objxml.comprobante.Descuento.ToString("N2")))
End If
For Each item As CFDIImpuesto In objxml.Impuestos
If item.Importe > 0 Then
Dim TasaOCuota As Decimal = 0
Decimal.TryParse(item.TasaOCuota, TasaOCuota)
ltotales.Add(New utilValores($"Impuestos {item.Tipo} {item.ImpuestoTexto} {(If(item.TipoFactor = "Tasa", (TasaOCuota * 100).ToString("N4"), item.TasaOCuota))} {(If(item.TipoFactor = "Tasa", "%", ""))}", item.Importe.ToString("N2")))
End If
Next
ltotales.Add(New utilValores("Total", objxml.comprobante.Total.ToString("N2")))
rdsTotales.Name = "dsTotales"
rdsTotales.Value = ltotales
ds.Add(rdsTotales)
Dim rds2 As ReportDataSource = New ReportDataSource()
Dim limagenes As List(Of utilImage) = New List(Of utilImage)()
limagenes.Add(New utilImage(cQr))
rds2.Name = "dsImagenes"
rds2.Value = limagenes
ds.Add(rds2)
Dim rdsrelacionados As ReportDataSource = New ReportDataSource()
rdsrelacionados.Name = "dsRelacionados"
rdsrelacionados.Value = objxml.cFDIRelacionados
ds.Add(rdsrelacionados)
Dim rds1 As ReportDataSource = New ReportDataSource()
rds1.Name = "dsConceptos"
rds1.Value = objxml.GetConceptosforpdf()
ds.Add(rds1)
Try
bytes = StreamPDF(context, rutaReporte, ds, parametros)
System.IO.File.Delete(RutaXml)
Catch ex As Exception
End Try
Return bytes
End Function
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()
@@ -150,8 +269,8 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
If EsProduccion Then
Dim CveUsuario As Integer = 0
Dim CveEmpresa As Integer = 0
Dim CveUsuario As Integer = -1
Dim CveEmpresa As Integer = -1
Dim wsreport As New WSRDLC.WebServiceSoapClient
Dim params As New List(Of WSRDLC.ReportParameter)
@@ -175,6 +294,7 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
Bytes = wsreport.StreamPDFBytes(RutaReporte, ds, params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario)
wsreport = Nothing
params = Nothing
Else
If IsNothing(MR) Then MR = New ReportViewer
Try
@@ -364,8 +484,10 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
Public Property Factura As FacturaWS
Public Property Cliente As ClienteWS
Public Property Empresa As EmpresaWS
Public Property Timbrado As DatosSATWS
Public Property API_SALI As Boolean
Public Property Timbrado As DatosSATWS
Public Property XML As String
End Class

View File

@@ -650,7 +650,7 @@
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpReclasificarSubProyecto">
<ContentTemplate>
<div class="row">
<div class="col-md-1" style="width:100%">
<div class="col-md-1" style="width: 100%">
<asp:DropDownList ID="DdlAsignarProyecto" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Proyecto" DataValueField="CveProyecto">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
@@ -658,7 +658,7 @@
<%--<br runat="server" id="brProyectoSubProyecto" style="display:none"/>--%>
</div>
<div class="row">
<div class="col-md-1" style="width:100%">
<div class="col-md-1" style="width: 100%">
<asp:DropDownList ID="DdlAsignaSubProyecto" runat="server" CssClass="form-control input-sm select2me" AutoPostBack="true" OnSelectedIndexChanged="DdlAsignaSubProyecto_SelectedIndexChanged" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
@@ -1232,7 +1232,7 @@
<asp:Literal ID="LtlPS" runat="server" Text='<%# Eval("CodigoPS") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Serie" Visible="false" >
<asp:TemplateField HeaderText="Serie" Visible="false">
<ItemTemplate>
<asp:Literal ID="LtlSerie" Text='<%# Eval("Serie") %>' runat="server" />
<asp:TextBox ID="TxtSerie" AutoPostBack="false" Text='<%# Eval("Serie") %>' Visible="false" runat="server" />
@@ -2559,7 +2559,7 @@
<asp:UpdatePanel ID="UpFacturar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnGuardar" CssClass="btn btn-primary " runat="server" ValidationGroup="GrpGuardar" data-toggle="confirmation" data-popout="true" data-original-title="<b>Verifique los datos para continuar</b>. <br/><br/> <center>¿Seguro de registrar el documento con la información actual?</center>" data-btn-ok-label="si" Text="Registrar Compra" />
<asp:Button ID="BtnGuardar" CssClass="btn btn-primary " runat="server" ValidationGroup="GrpGuardar" data-toggle="confirmation" data-popout="true" data-original-title="<b>Verifique los datos para continuar</b>. <br/><br/> <center>¿Seguro de registrar el documento con la información actual?</center>" data-btn-ok-label="si" Text="Registrar Compra" />
<asp:Button ID="BtnActualizar" CssClass="btn btn-success" runat="server" Text="Actualizar Compra" ValidationGroup="GrpGuardar" Visible="False" />
<br />
<br />
@@ -3895,9 +3895,9 @@
</h4>
</div>
<div class="modal-body">
<div style="border: 1px solid black; width: 85%;">
<div style="border: 1px solid black; width: 85%;margin-left: 7.5%;display:block">
<asp:Panel ID="PnlContado" runat="server" Visible="False">
<asp:RadioButtonList ID="RBLContado" runat="server" RepeatDirection="Horizontal" AutoPostBack="True" RepeatColumns="3">
<asp:RadioButtonList ID="RBLContado" runat="server" RepeatDirection="Horizontal" Style="margin:auto" AutoPostBack="True" RepeatColumns="3">
<asp:ListItem Value="1" Selected="True">Bancos</asp:ListItem>
<asp:ListItem Value="3">Créditos</asp:ListItem>
<asp:ListItem Value="5">Acreedores</asp:ListItem>
@@ -3909,14 +3909,14 @@
</div>
<br />
<div style="text-align:center">
<asp:CheckBox runat="server" ID="ChkCreditoMultiple" AutoPostBack="true" Text="Multiple Crédito" />
</div>
<asp:CheckBox runat="server" ID="ChkCreditoMultiple" AutoPostBack="true" Text="Multiple Crédito" />
<br />
<br />
<div runat="server" id="DivReembolso">
<asp:Panel ID="Panel1" CssClass="chequesie text-small" runat="server" Width="470px" Visible="true">
<asp:Panel ID="Panel1" CssClass="text-small" runat="server" Width="100%" Visible="true" BorderStyle="Solid" BorderColor="#6A92AD" BorderWidth="2px">
<div class="chequesie1">
<div class="row">
<div class="col-md-2" style="width: 90%; margin-left: 5%; margin-right: 5%; text-align: left">
@@ -3926,15 +3926,16 @@
<div class="row">
<div class="col-md-2" style="width: 90%; margin-left: 5%; margin-right: 5%; text-align: left">
<asp:TextBox ID="TxtNumeroReembolso" runat="server" Width="100%" />
<%-- <asp:RequiredFieldValidator ID="RFVNumeroReembolso" runat="server" ControlToValidate="TxtNumeroReembolso" InitialValue="" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Numero de Reembolsoxx''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCENumeroReembolso" runat="server" HighlightCssClass="vco" TargetControlID="RFVNumeroReembolso" Width="300px"></ajax:ValidatorCalloutExtender>--%>
<%-- <asp:RequiredFieldValidator ID="RFVNumeroReembolso" runat="server" ControlToValidate="TxtNumeroReembolso" InitialValue="" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Numero de Reembolsoxx''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCENumeroReembolso" runat="server" HighlightCssClass="vco" TargetControlID="RFVNumeroReembolso" Width="300px"></ajax:ValidatorCalloutExtender>--%>
</div>
</div>
<br />
</div>
<div class="chequesie2">
<div class="row">
<div class="col-md-2" style="width: 90%; margin-left: 4%; margin-right: 5%; text-align: left">
<label>Caja Chica:</label>
<asp:Label runat="server" ID="LblCheq">Caja Chica:</asp:Label>
</div>
</div>
<div id="DivPersonalReembolso" runat="server" visible="false" class="row">
@@ -3952,6 +3953,7 @@
</div>
</div>
<br/>
</div>
</asp:Panel>
<table>
@@ -4204,8 +4206,8 @@
</asp:TemplateField>
</Columns>
<%--<RowStyle CssClass="TextoAlterno" />
<AlternatingRowStyle CssClass="TextoAlterno" />
<HeaderStyle CssClass="Titulos" />--%>
<AlternatingRowStyle CssClass="TextoAlterno" />
<HeaderStyle CssClass="Titulos" />--%>
</asp:GridView>
<asp:HiddenField ID="HiddenField2" runat="server" ClientIDMode="Static" Value="0" />
</ContentTemplate>
@@ -4260,7 +4262,7 @@
<asp:RequiredFieldValidator ID="RFVCreditoDetalle" runat="server" ControlToValidate="DdlCreditoDetalle" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Crédito''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpContado"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RFVCreditoDetalle" runat="server" ControlToValidate="DdlCreditoDetalle" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Crédito''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpContado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECreditoDetalle" runat="server" HighlightCssClass="vco" TargetControlID="RFVCreditoDetalle" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>

View File

@@ -16,9 +16,6 @@
<li>
<asp:LinkButton runat="server" ID="LkbNuevaVersion" OnClick="LkbNuevaVersion_Click" data-toggle="tooltip" data-placement="left" title="Agregar una nueva versión de este documento" Text="<i class='fa fa-plus'></i>Crear Nueva Versión"></asp:LinkButton>
</li>
<li>
<asp:LinkButton runat="server" ID="LbPruebas" OnClick="LbPruebas_Click" data-toggle="tooltip" data-placement="left" title="Agregar una nueva versión de este documento" Text="<i class='fa fa-plus'></i>Pruebas"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>

View File

@@ -192,8 +192,9 @@ public partial class OI_DocumentoDetalle : ClsPaginas
TxtResponsable.Text = UsuarioActual.Nombre;
}
private void CargarDocumentoYaExistente()
private bool CargarDocumentoYaExistente()
{
bool SeCargoInfo = false;
ClsOIEventos ObjOI = new ClsOIEventos();
if (ObjOI.GetDocumento(this.CveDocumento, UsuarioActual.CveEmpresa))
{
@@ -214,9 +215,15 @@ public partial class OI_DocumentoDetalle : ClsPaginas
ArchivoAdjuntoNombre = Documento["ArchivoFisico"].ToString();
LkbDescargarArchivo.Text = ArchivoAdjuntoNombre;
DivDescargarArchivo.Visible = true;
SeCargoInfo = true;
}else
{
this.CveDocumento = -1;
}
}
ObjOI.Dispose();
return SeCargoInfo;
}
private void CargarUsuariosAutorizo()
@@ -320,13 +327,15 @@ public partial class OI_DocumentoDetalle : ClsPaginas
if (this.CveDocumento > 0)
{
EstatusMostrar(true);
CargarDocumentoYaExistente();
CargarUsuariosParticipantes();
CargarUsuariosAutorizo();
ConfiguracionActualizar();
ConfigurarGridUsuariosParticipantes();
ConfigurarCamposDetalleSegunUsuario();
CargarMensajeNuevoEditado();
if (CargarDocumentoYaExistente())
{
CargarUsuariosParticipantes();
CargarUsuariosAutorizo();
ConfiguracionActualizar();
ConfigurarGridUsuariosParticipantes();
ConfigurarCamposDetalleSegunUsuario();
CargarMensajeNuevoEditado();
}
}
ConfigurarSegunEstatus();
}
@@ -766,11 +775,4 @@ public partial class OI_DocumentoDetalle : ClsPaginas
UpCliente.Update();
}
#endregion
protected void LbPruebas_Click(object sender,EventArgs e)
{
Cargar();
UpCliente.Update();
Alert("Documento actualizado");
}
}

View File

@@ -43,17 +43,24 @@ public partial class OI_Documentos : ClsPaginas
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
string ArchivoFisico = GvRow.DataKey("ArchivoFisico");
string NombreArchivo = ArchivoFisico.Split('_')[1];
string CveDocumento = GvRow.DataKey("CveDocumento");
//string NombreArchivo = ArchivoFisico.Split('_')[1];
string Ruta = string.Format("{0}Empresas/{1}/DocumentosRepo/{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, ArchivoFisico);
byte[] archivoBytes = File.ReadAllBytes(Ruta);
string Ruta = string.Format("{0}Empresas/{1}/DocumentosRepo/{2}/{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, CveDocumento, ArchivoFisico);
if (File.Exists(Ruta))
{
byte[] archivoBytes = File.ReadAllBytes(Ruta);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}", NombreArchivo));
HttpContext.Current.Response.AddHeader("Content-Length", archivoBytes.Length.ToString());
HttpContext.Current.Response.OutputStream.Write(archivoBytes, 0, archivoBytes.Length);
HttpContext.Current.Response.End();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}", ArchivoFisico));
HttpContext.Current.Response.AddHeader("Content-Length", archivoBytes.Length.ToString());
HttpContext.Current.Response.OutputStream.Write(archivoBytes, 0, archivoBytes.Length);
HttpContext.Current.Response.End();
}else
{
Alert("No se ha cargado Documento",ModExtensiones.TipoMensaje.MsgAdvertencia);
}
}
}

View File

@@ -151,7 +151,7 @@
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" AutoGenerateColumns="False"
EmptyDataText="No se encontraron registros" data-sort="true" Width="99%"
DataKeyNames="CveCliente,CveMoneda,Saldo,Folio,CveVenta,NombreComercial,CveVentaAmortizacion,SerieFolioAmortizacion,SerieFolio,Total,
Fecha,FechaAmortizacion,SubTotal,SubTotalAmortizacion,ImporteAmortizacion,CveIE,Tipo,SaldoAcumulativo">
Fecha,FechaAmortizacion,SubTotal,SubTotalAmortizacion,ImporteAmortizacion,CveIE,Tipo,SaldoAcumulativo,CveSubProyecto">
<Columns>
<asp:TemplateField>
<ItemTemplate>

View File

@@ -359,16 +359,22 @@ public partial class Ventas_RepAnticipo_NC_IXCDetalle : ClsPaginas
}
}
}
else
{
break;
}
CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, Gv.DataKey("Saldo").ToDouble(), Gv.DataKey("Saldo").ToDouble(), Gv.DataKey("CveMoneda").ToEntero(), TxtFecha.Text.ToDate(), "Saldo de NC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("Folio").ToString(), ConceptoContable2, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteMX: Saldo, CveCuenta: CveCuenta))
{
MsgError = "Ocurrio un error al saldar el movimiento";
break;
}
if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Gv.DataKey("Saldo").ToDecimal(), Gv.DataKey("Folio").ToString(), 78, TxtConcepto.Text, TxtFecha.Text.ToDate(), UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, CveIE, CveVenta, ImporteMX: Gv.DataKey("Saldo").ToDecimal(), CveCuenta: -1))
if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Gv.DataKey("Saldo").ToDecimal(), Gv.DataKey("Folio").ToString(), 78, TxtConcepto.Text, TxtFecha.Text.ToDate(), UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, CveIE, CveVenta, ImporteMX: Gv.DataKey("Saldo").ToDecimal(), CveCuenta: -1, CveSubProyecto: Gv.DataKey("CveSubProyecto").ToEntero()))
{
MsgError = "Ocurrio un error al saldar el movimiento";
break;
}
}

View File

@@ -16656,6 +16656,7 @@ Partial Class Ventas
' End If
'End If
'Creamos el movimiento
Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, ConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1,
CveMovimientoRelacionado:=CveMovimientoRelacionado, Modulo:="Vta/E4")
@@ -16680,7 +16681,7 @@ Partial Class Ventas
Dim Serie As String = MovDet("Serie").ToString()
Dim Lote As String = MovDet("Lote").ToString()
Dim FechaCaducidad As Date = MovDet("FechaCaducidad").ToString.ToDate
Dim CveSeccionAlmacen As Integer = MovDet("CveSeccionAlmacen").ToString.ToEntero
Dim CveSeccionAlmacen As Integer = -3 'SE DEBE CALCULAR LA SECCION EL EN TRIGGER DE INVENTARIOS
Dim Consec As Integer = DtRemisionesTmpDT.FiltroPrimeroValor("Consec", $"CveVentaDetalle = {MovDet("CveVentaDetalle").ToString()}").ToEntero()
'COMIENZA: VENTADETALLE
@@ -22703,7 +22704,6 @@ Partial Class Ventas
End If
End Sub
Private Function CargaDtImpuestosNC(CveVentaNC As Integer, Importe As Decimal, Optional NCDescuento As Boolean = False, Optional AplicaImpuestosLocales As Boolean = True, Optional NivelTotal As Integer = 1) As DataTable
Dim Total As Decimal = 0, SubTotal As Decimal = 0, Saldo As Decimal = 0
@@ -22750,9 +22750,13 @@ Partial Class Ventas
Dim Porcentaje As Decimal = ((Importe * 100) / ImporteReferencia) / 100
Dim FiltroStr As String = ""
Dim importePuTemp As Decimal = 0
Dim TotalImpuestosLocales As Decimal = 0
Dim TotalImpuestosLocalesVentaOriginal As Decimal = 0
Dim TotalImpuestosLocalesRecalculado As Decimal = 0
'CALCULA LO EQUIVALENTE EN IMPUSTOS LOCALES
If TmpDTImpuestos IsNot Nothing AndAlso TmpDTImpuestos.Rows.Count > 0 Then
TotalImpuestosLocales = TmpDTImpuestos.SUM("Importe").ToDecimal()
TotalImpuestosLocalesVentaOriginal = TmpDTImpuestos.SUM("Importe").ToDecimal()
TotalImpuestosLocalesRecalculado = TotalImpuestosLocalesVentaOriginal * Porcentaje
End If
For Each Dr As DataRow In DtImpuestosLocal.Rows
@@ -22760,7 +22764,7 @@ Partial Class Ventas
importePuTemp = (Porcentaje * (TmpDT.SUM("TotalImporte", FiltroStr).ToDecimal() - TmpDT.SUM("Descuento", FiltroStr).ToDecimal()))
If Not AplicaImpuestosLocales Then
importePuTemp = importePuTemp - TotalImpuestosLocales
importePuTemp = importePuTemp - TotalImpuestosLocalesVentaOriginal
End If
Dr("ImporteTotal") = importePuTemp.RoundSQL(2)
@@ -22780,9 +22784,11 @@ Partial Class Ventas
Next
Dim importeNC = (DtImpuestosLocal.SUMD("ImporteTotal") + DtImpuestosLocal.SUMD("ImporteIVA") + DtImpuestosLocal.SUMD("ImporteIEPS") - DtImpuestosLocal.SUMD("ImporteRetIVA") - DtImpuestosLocal.SUMD("ImporteRetISR"))
If AplicaImpuestosLocales Then
Importe = Importe + TotalImpuestosLocales
Importe = Importe + TotalImpuestosLocalesRecalculado
End If
'codigo para ajuste de centavo, si el importe total no cuadra con los totales
Dim difTmp As Decimal = Importe - importeNC
@@ -22800,7 +22806,6 @@ Partial Class Ventas
'CargaNCDT(CveVentaNC, Importe.ToDecimal)
Return DtImpuestosLocal
End Function
Private Sub AgregaTempDT(ByRef TmpDT As DataTable, CvePS As Integer, PS As String, Codigo As String, CodigoPS As String, CveTipoPS As Integer, CveTipoInvPS As Integer, CveUM As Integer, UM As String,
CveClasificacion As Integer, Clasificacion As String, CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String,
Obs As String, Cantidad As Double, PU As Double, PorcentajeIVA As Double, ImporteIVA As Double, PorcentajeRetIVA As Double, ImporteRetIVA As Double,