Compras correciones, no actualiza iva al editar despues de asignar, AF insumos check de AF encontrado mantener activo

This commit is contained in:
rakcsle
2024-10-31 16:10:01 -07:00
parent 956bfe0a4d
commit e24689db22
6 changed files with 224 additions and 37 deletions

View File

@@ -28,6 +28,7 @@ Imports System.Drawing
Imports Microsoft.Owin.Security.Provider
Imports Telerik.Web.UI
Imports Stimulsoft.Base.StiDbType
'Imports Telerik.Web.UI
@@ -1577,9 +1578,6 @@ Partial Class Compras_eFacturas
Dim swTiempo As New StringBuilder
sw.Start()
For Each comprmido As String In ListComprimidos
Dim FiInfo As New FileInfo(comprmido)
@@ -4204,6 +4202,8 @@ Partial Class Compras_eFacturas
Using MR As ReportViewer = New ReportViewer()
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")))
@@ -8966,7 +8966,9 @@ Namespace ADS.eFacturas
Public Sub ImprimirPDF(UsuarioActual As Usuario, NombreArchivo As String, DirectorioEmpresa As String, TipodeComprobante As String)
Dim objxml As XmlSatCFDI = Me
Dim rutaReporte As String = If(TipodeComprobante = "Pag", "Grales\Formatos\CFDIV3Pago.rdlc", "Grales\Formatos\CFDIV3.rdlc")
Dim rutaReporte As String = $"{DirectorioEmpresas}{If(TipodeComprobante = "Pag", "Grales\Formatos\CFDIV3Pago.rdlc", "Grales\Formatos\CFDIV3.rdlc")}"
'Dim rutaReporte As String = If(TipodeComprobante = "Pag", "Grales\Formatos\CFDIV3Pago.rdlc", "Grales\Formatos\CFDIV3.rdlc")
Dim cQr As Byte() = Nothing
@@ -9035,46 +9037,173 @@ Namespace ADS.eFacturas
Dim listaDS As New List(Of ReportDataSource)
Dim rdsTotales As New ReportDataSource()
Dim ltotales As New List(Of utilValores)()
Dim DTTotales As New DataTable
DTTotales.TableName = "DTTotales"
DTTotales.Columns.Add("Nombre")
DTTotales.Columns.Add("Valor")
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
Dim nRow As DataRow = DTTotales.NewRow
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")))
nRow("Nombre") = $"Impuestos {item.Tipo} {item.ImpuestoTexto} {(If(item.TipoFactor = "Tasa", (TasaOCuota * 100).ToString("N4"), item.TasaOCuota))} {(If(item.TipoFactor = "Tasa", "%", ""))}"
nRow("Valor") = item.Importe.ToString("N2")
DTTotales.Rows.Add(nRow)
End If
Next
ltotales.Add(New utilValores("Total", objxml.comprobante.Total.ToString("N2")))
rdsTotales.Name = "dsTotales"
rdsTotales.Value = ltotales
rdsTotales.Value = DTTotales 'ltotales.ToDataTable
listaDS.Add(rdsTotales)
Dim dtByte As New DataTable()
dtByte.Columns.Add("ImagenByte", GetType(Byte()))
dtByte.TableName = "dtImagenes"
Dim nrowByteArray As DataRow = dtByte.NewRow
nrowByteArray("ImagenByte") = cQr
dtByte.Rows.Add(nrowByteArray)
'byteArrayList.Add(cQr)
Dim rds2 As New ReportDataSource()
Dim limagenes As New List(Of utilImage)()
limagenes.Add(New utilImage(cQr))
'Dim limagenes As New List(Of utilImage)()
'limagenes.Add(New utilImage(cQr))
rds2.Name = "dsImagenes"
rds2.Value = limagenes
rds2.Value = dtByte
listaDS.Add(rds2)
Dim dtRelacionados As New DataTable
dtRelacionados.TableName = "dtRelacionados"
dtRelacionados.Columns.Add("TipoRelacion")
dtRelacionados.Columns.Add("TipoRelacionTexto")
dtRelacionados.Columns.Add("UUID")
For Each relaciondo As CFDIRelacionado In objxml.cFDIRelacionados
Dim CFDIRelacionadoRow As DataRow = dtRelacionados.NewRow
CFDIRelacionadoRow("TipoRelacion") = relaciondo.TipoRelacion
CFDIRelacionadoRow("TipoRelacionTexto") = relaciondo.TipoRelacionTexto
CFDIRelacionadoRow("UUID") = relaciondo.UUID
dtRelacionados.Rows.Add(CFDIRelacionadoRow)
Next
Dim rdsrelacionados As New ReportDataSource()
rdsrelacionados.Name = "dsRelacionados"
rdsrelacionados.Value = objxml.cFDIRelacionados
rdsrelacionados.Value = dtRelacionados 'objxml.cFDIRelacionados
listaDS.Add(rdsrelacionados)
Dim dtConceptos As New DataTable
dtConceptos.TableName = "dtConceptos"
dtConceptos.Columns.Add("tipo", GetType(Integer))
dtConceptos.Columns.Add("orden", GetType(Integer))
dtConceptos.Columns.Add("ClaveProdServ", GetType(String))
dtConceptos.Columns.Add("NoIdentificacion", GetType(String))
dtConceptos.Columns.Add("Cantidad", GetType(String)) ' Nota: Se asume que es cadena, cambiar si necesario
dtConceptos.Columns.Add("ClaveUnidad", GetType(String))
dtConceptos.Columns.Add("Unidad", GetType(String))
dtConceptos.Columns.Add("ValorUnitario", GetType(Decimal))
dtConceptos.Columns.Add("Importe", GetType(Decimal))
dtConceptos.Columns.Add("Descuento", GetType(Decimal))
dtConceptos.Columns.Add("NumeroPedimento", GetType(String))
dtConceptos.Columns.Add("CuentaPredial", GetType(String))
dtConceptos.Columns.Add("Descripcion", GetType(String))
dtConceptos.Columns.Add("Impuesto", GetType(String))
dtConceptos.Columns.Add("Impuesto_Tipo", GetType(String))
dtConceptos.Columns.Add("Impuesto_Base", GetType(Decimal))
dtConceptos.Columns.Add("Impuesto_TipoFactor", GetType(String))
dtConceptos.Columns.Add("Impuesto_TasaOCuota", GetType(String))
dtConceptos.Columns.Add("Impuesto_Importe", GetType(Decimal))
For Each concepto As CFDIConcepto_I In objxml.GetConceptosforpdf()
Dim CFDIRelacionadoRow As DataRow = dtConceptos.NewRow
CFDIRelacionadoRow("tipo") = concepto.tipo
CFDIRelacionadoRow("orden") = concepto.orden
CFDIRelacionadoRow("ClaveProdServ") = concepto.ClaveProdServ
CFDIRelacionadoRow("NoIdentificacion") = concepto.NoIdentificacion
CFDIRelacionadoRow("Cantidad") = concepto.Cantidad
CFDIRelacionadoRow("ClaveUnidad") = concepto.ClaveUnidad
CFDIRelacionadoRow("Unidad") = concepto.Unidad
CFDIRelacionadoRow("ValorUnitario") = concepto.ValorUnitario
CFDIRelacionadoRow("Importe") = concepto.Importe
CFDIRelacionadoRow("Descuento") = concepto.Descuento
CFDIRelacionadoRow("NumeroPedimento") = concepto.NumeroPedimento
CFDIRelacionadoRow("CuentaPredial") = concepto.CuentaPredial
CFDIRelacionadoRow("Descripcion") = concepto.Descripcion
CFDIRelacionadoRow("Impuesto") = concepto.Impuesto
CFDIRelacionadoRow("Impuesto_Tipo") = concepto.Impuesto_Tipo
CFDIRelacionadoRow("Impuesto_Base") = concepto.Impuesto_Base
CFDIRelacionadoRow("Impuesto_TipoFactor") = concepto.Impuesto_TipoFactor
CFDIRelacionadoRow("Impuesto_TasaOCuota") = If(concepto.Impuesto_TasaOCuota Is Nothing, "", concepto.Impuesto_TasaOCuota)
CFDIRelacionadoRow("Impuesto_Importe") = If(concepto.Impuesto_Importe > 0, concepto.Impuesto_Importe, 0)
dtConceptos.Rows.Add(CFDIRelacionadoRow)
Next
Dim rds1 As New ReportDataSource()
rds1.Name = "dsConceptos"
rds1.Value = objxml.GetConceptosforpdf()
rds1.Value = dtConceptos 'objxml.GetConceptosforpdf()
listaDS.Add(rds1)
If objxml.complemento.Pagos IsNot Nothing Then
' Crear un nuevo DataTable y agregar las columnas correspondientes
Dim DTdoctosRelacionados As New DataTable()
DTdoctosRelacionados.TableName = "dtDocumentos"
' Agregar todas las columnas respetando los tipos de datos
DTdoctosRelacionados.Columns.Add("IdDocumento", GetType(String))
DTdoctosRelacionados.Columns.Add("Serie", GetType(String))
DTdoctosRelacionados.Columns.Add("Folio", GetType(String))
DTdoctosRelacionados.Columns.Add("MonedaDR", GetType(String))
DTdoctosRelacionados.Columns.Add("MetodoDePagoDR", GetType(String))
DTdoctosRelacionados.Columns.Add("NumParcialidad", GetType(String))
DTdoctosRelacionados.Columns.Add("ImpSaldoAnt", GetType(Decimal))
DTdoctosRelacionados.Columns.Add("ImpPagado", GetType(Decimal))
DTdoctosRelacionados.Columns.Add("ImpSaldoInsoluto", GetType(Decimal))
' Llenar el DataTable con los valores de la lista de documentos
For Each doctosRelacionado As CFDIPagoDoctoRelacionado In objxml.complemento.Pagos.doctosRelacionados
Dim nRowdoctosRelacionados As DataRow = DTdoctosRelacionados.NewRow()
' Asignar valores a cada columna desde las propiedades del objeto documento
nRowdoctosRelacionados("IdDocumento") = doctosRelacionado.IdDocumento
nRowdoctosRelacionados("Serie") = doctosRelacionado.Serie
nRowdoctosRelacionados("Folio") = doctosRelacionado.Folio
nRowdoctosRelacionados("MonedaDR") = doctosRelacionado.MonedaDR
nRowdoctosRelacionados("MetodoDePagoDR") = doctosRelacionado.MetodoDePagoDR
nRowdoctosRelacionados("NumParcialidad") = doctosRelacionado.NumParcialidad
nRowdoctosRelacionados("ImpSaldoAnt") = doctosRelacionado.ImpSaldoAnt
nRowdoctosRelacionados("ImpPagado") = doctosRelacionado.ImpPagado
nRowdoctosRelacionados("ImpSaldoInsoluto") = doctosRelacionado.ImpSaldoInsoluto
' Agregar la fila al DataTable
DTdoctosRelacionados.Rows.Add(nRowdoctosRelacionados)
Next
Dim rdsp As New ReportDataSource()
rdsp.Name = "dsPagos"
rdsp.Value = objxml.complemento.Pagos.doctosRelacionados
rdsp.Value = DTdoctosRelacionados ' objxml.complemento.Pagos.doctosRelacionados
listaDS.Add(rdsp)
End If
@@ -9097,6 +9226,11 @@ Namespace ADS.eFacturas
End Sub
Public Class utilValores
Public Sub New()
' Constructor sin parámetros
End Sub
Public Sub New(nombre As String, valor As String)
Me.Nombre = nombre
Me.Valor = valor