This commit is contained in:
rakcsle
2022-01-31 16:03:06 -07:00
24 changed files with 7762 additions and 6858 deletions

View File

@@ -33,6 +33,13 @@ Public Class CFDITimbre
End Get
End Property
Public ReadOnly Property AplicaImpuestosTraslados As Boolean 'detecte si va la etiqueta de impuestos, aunque sea en cero
Get
Return (From c In Conceptos
Select c.Impuestos.Where(Function(tra) tra.TrasladooRetencion = "T" And tra.TipoFactor = "Tasa")).Count() > 0
End Get
End Property
Public ReadOnly Property Retenciones As List(Of CFDIRetenciones)
Get
Dim tRetorno As New List(Of CFDIRetenciones)
@@ -72,7 +79,7 @@ Public Class CFDITimbre
For Each c As CFDIConceptos In Conceptos
For Each imp As CFDIConceptosImpuestos In c.Impuestos
If imp.TrasladooRetencion = "T" Then
tRetorno.Add(New CFDITraslados With {.Impuesto = imp.Impuesto, .Importe = imp.Importe, .TasaOCuota = imp.TasaOCuota, .TipoFactor = imp.TipoFactor})
tRetorno.Add(New CFDITraslados With {.Impuesto = imp.Impuesto, .Base = imp.Base, .Importe = imp.Importe, .TasaOCuota = imp.TasaOCuota, .TipoFactor = imp.TipoFactor})
End If
Next
Next
@@ -82,6 +89,7 @@ Public Class CFDITimbre
.Select(Function(t) New CFDITraslados With {.Impuesto = t.Key.Impuesto,
.TipoFactor = t.Key.TipoFactor,
.TasaOCuota = t.Key.TasaOCuota,
.Base = t.Sum(Function(tt) tt.Base),
.Importe = t.Sum(Function(tt) tt.Importe)}) _
.OrderBy(Function(x) x.Impuesto).ToList
@@ -228,6 +236,7 @@ Public Class CFDIComprobante
Public Property Moneda As String = ""
Public Property TipoComprobante As String = ""
Public Property MetodoPago As String = ""
Public Property Exportacion As String = "01" '01-No Aplica
Public Property LugarExpedicion As String = ""
Public Property NumCuentaPago As String = ""
Public Property Confirmacion As String = ""
@@ -270,6 +279,8 @@ End Class
Public Class CFDIReceptor
Public Property RFC As String
Public Property Nombre As String
Public Property RegimenFiscalReceptor As String = ""
Public Property DomicilioFiscalReceptor As String = ""
Public Property ResidenciaFiscal As String = ""
Public Property NumeroRegistroTributario As String = ""
Public Property UsoCFDI As String
@@ -314,6 +325,7 @@ Public Class CFDIConceptos
Public Property ClaveUnidad As String = ""
Public Property Impuestos As List(Of CFDIConceptosImpuestos)
Public Property Descuento As Decimal = 0.00D
Public Property ObjetoImpuesto As String = "02"
Public Property ImporteGravaIVAAdicional As Decimal = 0.00D 'caso IEPS
Sub New()
@@ -408,6 +420,7 @@ Public Class CFDITraslados
Public Property TipoFactor As String
Public Property TasaOCuota As Decimal
Public Property Importe As Decimal
Public Property Base As Decimal
End Class

View File

@@ -125,6 +125,7 @@ Public Class ClsClientes
Public Property Celular As String
Public Property ExtOtros As String
Public Property CveUsoCFDI As Integer
Public Property CveRegimenFiscal As Integer
Public Property CveFormaPago33 As Integer
Public Property CveMetodoPago33 As Integer
Public Property CveClienteCorporativo As String
@@ -384,6 +385,8 @@ Public Class ClsClientes
_CveFormaPago33 = Data(0)("CveFormaPago33").ToString.ToEntero
_CveMetodoPago33 = Data(0)("CveMetodoPago33").ToString.ToEntero
_CveRegimenFiscal = Data(0)("CveRegimenFiscal").ToString.ToEntero
_CveClienteCorporativo = Data(0)("CveClienteCorporativo").ToString
_DesglosaIEPS = CType(Data(0)("DesglosaIEPS"), Boolean)
_NoDesglosaIVA = CType(Data(0)("NoDesglosaIVA"), Boolean)
@@ -573,7 +576,7 @@ Public Class ClsClientes
Optional AplicaComercioExterior As Boolean = False, Optional CveTipoOperacion As Integer = -1, Optional CvePedimento As Integer = -1, Optional CveIncoterm As Integer = -1, Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveColonia As Integer = -1,
Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional RequiereOC As Boolean = False,
Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0,
Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1) As Boolean
Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional CveRegimenFiscal As Integer = 0) As Boolean
Dim Retorno As Boolean = False
@@ -714,7 +717,7 @@ Public Class ClsClientes
.Add("@CveSATEstado", SqlDbType.Int).Value = CveSATEstado
.Add("@CveAdminTrayecto", SqlDbType.TinyInt).Value = CveAdminTrayecto
.Add("@CveRegimenFiscal", SqlDbType.TinyInt).Value = CveRegimenFiscal
End With
Try
@@ -763,7 +766,7 @@ Public Class ClsClientes
Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "-1", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1",
Optional ApellidoPaternoPF As String = "-1", Optional ApellidoMaternoPF As String = "-1", Optional NombresPF As String = "-1", Optional RequiereOC As Boolean = False,
Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1",
Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False) As Boolean
Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False, Optional CveRegimenFiscal As Integer = 0) As Boolean
Dim Retorno As Boolean = False
@@ -920,6 +923,7 @@ Public Class ClsClientes
.Add("@CveSATEstado", SqlDbType.Int).Value = CveSATEstado
.Add("@CveAdminTrayecto", SqlDbType.TinyInt).Value = CveAdminTrayecto
.Add("@CveRegimenFiscal", SqlDbType.TinyInt).Value = CveRegimenFiscal
End With
Try

View File

@@ -716,6 +716,23 @@ Public Class ClsPaginas
Application("GlobalDTNomSatRegimenContratacion") = value
End Set
End Property
Property GlobalDTRegimenesFiscales() As DataTable
Get
Dim AppNombre As String = String.Format("GlobalDTRegimenesFiscales")
'sino existe, recarga los datos
If Application(AppNombre) Is Nothing Then
Dim ObjGral As New ClsSisEmpresas
If ObjGral.GetRegimenFiscal(-1) Then Application(AppNombre) = ObjGral.DtResultados
ObjGral.Dispose()
End If
GlobalDTRegimenesFiscales = DirectCast(Application(AppNombre), DataTable)
End Get
Set(value As DataTable)
Dim AppNombre As String = String.Format("GlobalDTRegimenesFiscales")
Application(AppNombre) = value
End Set
End Property
Property GlobalDTNomSatRiesgoPuesto() As DataTable
Get
GlobalDTNomSatRiesgoPuesto = DirectCast(Application("GlobalDTNomSatRiesgoPuesto"), DataTable)
@@ -6933,7 +6950,7 @@ Public Class ClsPaginas
Dim TC As Decimal = ValorNodoXML(XmlDoc.DocumentElement, "TC").ToDecimal
If TC <= 0 Then TC = 1
If ValorNodoXML(XmlDoc.DocumentElement, "version") = "3.3" Then
If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then
Vta.FechaEmision = ValorNodoXML(XmlDoc.DocumentElement, "fecha").ToDate
Vta.NoSerieCertificadoContribuyente = ValorNodoXML(XmlDoc.DocumentElement, "NoCertificado")
@@ -7039,7 +7056,7 @@ Public Class ClsPaginas
'Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||"
Dim CadenaOriginals As String = String.Format("||{0}|{1}|{2}T{3}|{4}|{5}||", If(Vta.Version = "3.3", "1.1", "1.0"), Vta.FolioFiscal, Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"), Vta.SelloCFDi, Vta.NoSerieCertificado)
Dim CadenaOriginals As String = String.Format("||{0}|{1}|{2}T{3}|{4}|{5}||", If(Vta.Version.Contiene("3.3", "4.0"), "1.1", "1.0"), Vta.FolioFiscal, Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"), Vta.SelloCFDi, Vta.NoSerieCertificado)
If Not ImagenCBB.Exists Then ImgCBB = ""
Dim RutaFormato As String = ""
Dim RutaFormatoDefault As String = ""
@@ -7162,7 +7179,7 @@ Public Class ClsPaginas
params.Add(New ReportParameter("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString))
End If
If Vta.Version = "3.3" Then
If Vta.Version.Contiene("3.3", "4.0") Then
params.Add(New ReportParameter("FormaPago", Vta.FormaPago33.ToString))
params.Add(New ReportParameter("MetodoPago", Vta.MetodoPago33.ToString))
params.Add(New ReportParameter("UsoCFDI", Vta.UsoCFDI))
@@ -8342,7 +8359,7 @@ Public Class ClsPaginas
'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml")
XmlDoc.Load(PathXML)
If ValorNodoXML(XmlDoc.DocumentElement, "version") = "3.3" Then
If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then
FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate
NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText

View File

@@ -2125,7 +2125,8 @@ Namespace Modelos
If factura.TipoDocto = "RNC" AndAlso factura.Num1 = 1 AndAlso factura.DtMovimientosUsados IsNot Nothing AndAlso ObjAcum IsNot Nothing Then
'Dim Mensaje As String = ""
Dim CveMovimiento = ObjInventario.AddMovimiento(factura.CveAlmacen, factura.CveConceptoMovimiento, 1, factura.Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, factura.CveVenta,
CveSubProyecto, CveActivoFijo:=-1, Guia:="", Observaciones:=factura.ObservacionesMovimiento, CvePersonal:=-1, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, Modulo:="RU/G")
CveSubProyecto, CveActivoFijo:=-1,
Observaciones:=factura.MovimientoObservaciones, Recibio:=factura.MovimientoRecibio, CvePersonal:=-1, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, Modulo:="RU/GModel")
If CveMovimiento <= 0 Then
'Mensaje = "Error al guardar los movimientos"
Resultado = False
@@ -6303,7 +6304,8 @@ Namespace Modelos
Public Property CveAlmacen As Integer
Public Property GenerarSalidaAlmacen As Boolean = False
Public Property CveConceptoMovimiento As Integer
Public Property ObservacionesMovimiento As String
Public Property MovimientoObservaciones As String
Public Property MovimientoRecibio As String
Public Property DtMovimientosUsados As DataTable
Public Property CveAlmacenDevolucion As Integer
Public Property CveVenta As Integer
@@ -10009,6 +10011,8 @@ Namespace Modelos
Public Property Pais As String
Public Property RFC As String
Public Property CP As String
Public Property CveRegimenFiscal As Integer
Public Property CodigoRegimenFiscal As String
Public Property Telefono As String
Public Property Contacto As String
Public Property Mail As String

View File

@@ -868,7 +868,7 @@ Public Class Timbrado
Timbre.Comprobante.FormadePago = ""
Timbre.Comprobante.CondicionesdePago = ""
Timbre.Comprobante.MetodoPago = ""
Timbre.Comprobante.Subtotal = 0
Timbre.Comprobante.SubTotal = 0
Timbre.Comprobante.Descuentos = 0
Timbre.Comprobante.Moneda = "XXX"
Timbre.Comprobante.TipoCambio = ""
@@ -1016,10 +1016,16 @@ Public Class Timbrado
Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas)
'Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas, TmpDTConceptos, TmpDTImpuestos, TmpDTComplementos, Ruta, LstFordASN, FordGSDBM, ObjV)
Case 4
If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial)
If Ret <> "" Then MensajeErrorCFDI = Ret
Retorno = If(Ret = "", True, False)
Else
Dim Ret As String = TimbrarFacturaGoCFDIv33(Ventas, UsuarioActual, CvePACEspecial)
If Ret <> "" Then MensajeErrorCFDI = Ret
Retorno = If(Ret = "", True, False)
End If
Dim Ret As String = TimbrarFacturaGoCFDIv33(Ventas, UsuarioActual, CvePACEspecial)
If Ret <> "" Then MensajeErrorCFDI = Ret
Retorno = If(Ret = "", True, False)
Case 5
@@ -1088,7 +1094,7 @@ Public Class Timbrado
ObjCFDITimbre.Comprobante.Fecha,
ObjCFDITimbre.Comprobante.FormadePago,
ObjCFDITimbre.Comprobante.CondicionesdePago,
ObjCFDITimbre.Comprobante.Subtotal,
ObjCFDITimbre.Comprobante.SubTotal,
ObjCFDITimbre.Comprobante.Descuentos,
ObjCFDITimbre.Comprobante.TipoCambio.ToDecimal,
ObjCFDITimbre.Comprobante.Moneda,
@@ -1507,7 +1513,7 @@ Public Class Timbrado
ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"),
ObjCFDITimbre.Comprobante.FormadePago,
ObjCFDITimbre.Comprobante.CondicionesdePago,
ObjCFDITimbre.Comprobante.Subtotal,
ObjCFDITimbre.Comprobante.SubTotal,
ObjCFDITimbre.Comprobante.Descuentos,
ObjCFDITimbre.Comprobante.Moneda,
ObjCFDITimbre.Comprobante.TipoCambio.ToString,
@@ -2100,7 +2106,7 @@ Public Class Timbrado
ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"),
ObjCFDITimbre.Comprobante.FormadePago,
ObjCFDITimbre.Comprobante.CondicionesdePago,
ObjCFDITimbre.Comprobante.Subtotal,
ObjCFDITimbre.Comprobante.SubTotal,
ObjCFDITimbre.Comprobante.Descuentos,
ObjCFDITimbre.Comprobante.Moneda,
ObjCFDITimbre.Comprobante.TipoCambio.ToString,
@@ -2155,7 +2161,7 @@ Public Class Timbrado
#Region "Impuestos"
'SI NO ES FACTURA EN 0 AGREGA LOS IMPUESTOS
If Ventas.Total <> 0 And (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then
If Ventas.Total <> 0 And (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.AplicaImpuestosTraslados) Then
cfdi.Impuestos(ObjCFDITimbre.TotalImpuestosRetenidos, ObjCFDITimbre.TotalImpuestosTrasladados)
End If
#End Region
@@ -2169,8 +2175,8 @@ Public Class Timbrado
Next
End If
If ObjCFDITimbre.Traslados.Sum(Function(x) x.Importe) > 0 Then
'' si el importe de impuestos es mayor a cero o si es tasa con importe = 0, debe de ir el atributo
If ObjCFDITimbre.AplicaImpuestosTraslados Then
''se acumulan los importes
For Each Tras In ObjCFDITimbre.Traslados
cfdi.Traslado(Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe)
@@ -2183,45 +2189,45 @@ Public Class Timbrado
If ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe) > 0 OrElse ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe) > 0 Then
cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe))
cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe))
For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales
If ret.Importe > 0 Then
cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe)
End If
Next
For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales
If ret.Importe > 0 Then
cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe)
End If
Next
For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales
If ret.Importe > 0 Then
cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe)
End If
Next
End If
For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales
If ret.Importe > 0 Then
cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe)
End If
Next
End If
If Ventas.CveComplementoTimbrado > 0 Then
If Ventas.CveComplementoTimbrado > 0 Then
Select Case Ventas.CveComplementoTimbrado
Case 5 'INE Proceso Ordinario Directivo Estatal"
cfdi.Ine11("Ordinario", "Directivo Estatal", "0")
Select Case Ventas.CveComplementoTimbrado
Case 5 'INE Proceso Ordinario Directivo Estatal"
cfdi.Ine11("Ordinario", "Directivo Estatal", "0")
cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
Case 6 'INE Proceso Ordinario Ejecutivo Estatal"
cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0")
cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
Case 6 'INE Proceso Ordinario Ejecutivo Estatal"
cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0")
cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
Case 7 'INE Proceso Ordinario Ejecutivo Nacional"
cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
Case 7 'INE Proceso Ordinario Ejecutivo Nacional"
cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString)
Case 8 'INE PreCampaña
cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0")
cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString)
Case 8 'INE PreCampaña
cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0")
cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite)
cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
End Select
cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite)
cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
End Select
End If
End If
@@ -2230,11 +2236,11 @@ Public Class Timbrado
#Region "Comercio Exterior"
If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then
If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then
If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then
If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then
'DATOS GENERALES
cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado,
'DATOS GENERALES
cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado,
ObjCFDITimbre.Complementos.ComercioExterior11.TipoOperacion,
ObjCFDITimbre.Complementos.ComercioExterior11.ClavedePedimento,
ObjCFDITimbre.Complementos.ComercioExterior11.CertificadoOrigen,
@@ -2245,9 +2251,9 @@ Public Class Timbrado
ObjCFDITimbre.Complementos.ComercioExterior11.Observaciones,
ObjCFDITimbre.Complementos.ComercioExterior11.TipoCambioUSD,
ObjCFDITimbre.Complementos.ComercioExterior11.TotalUSD)
'EMISOR
cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP))
cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle,
'EMISOR
cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP))
cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle,
ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroExterior,
ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroInterior,
ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Colonia,
@@ -2257,9 +2263,9 @@ Public Class Timbrado
ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Estado,
ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Pais,
ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CP)
'RECEPTOR
cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib)
cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle,
'RECEPTOR
cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib)
cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle,
ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroExterior,
ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroInterior,
ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Colonia,
@@ -2269,7 +2275,7 @@ Public Class Timbrado
ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Estado,
ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Pais,
ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.CP)
cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib,
cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib,
ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Nombre,
ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Calle,
ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroExterior,
@@ -2281,35 +2287,35 @@ Public Class Timbrado
ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Estado,
ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Pais,
ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.CP)
'MERCANCIAS
If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then
For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias
cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares)
If concep.DescripcionesEspecificas.Marca <> "" Then
cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca,
'MERCANCIAS
If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then
For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias
cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares)
If concep.DescripcionesEspecificas.Marca <> "" Then
cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca,
concep.DescripcionesEspecificas.Modelo,
concep.DescripcionesEspecificas.SubModelo,
concep.DescripcionesEspecificas.NumeroSerie)
End If
Next
End If
End If
Next
End If
End If
End If
#End Region
End If
End If
#Region "C O M P L E M E N T O C A R T A P O R T E"
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte
@@ -3337,6 +3343,700 @@ Public Class Timbrado
Return Retorno
End Function
#Region "T i m b r a d o v. 4. 0"
Public Function TimbrarFacturaGoCFDIv40(Ventas As Modelos.Factura, UsuarioActual As Usuario, Optional CvePACEspecial As Integer = -1) As String
If CvePACEspecial = -1 Then
CvePACEspecial = UsuarioActual.Empresa.CvePAC
End If
Dim sw As New Diagnostics.Stopwatch
Dim swmili As Long = 0
Dim swTiempo As New StringBuilder
sw.Start()
Dim Retorno As String = ""
Dim ObjCFDITimbre As CFDITimbre = Ventas.Timbre
Dim ArchivoLLave As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoKey)
Dim ArchivoCertificado As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoCer)
Dim UsuarioServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC, "rene.molina@adsistemas.mx")
Dim ClaveServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC.ToLower, "rene2018")
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
Dim UrlServicio As String = "" ' Produccion
Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, Ventas.TipoDocto)
Dim NombreArchivoXML As String = ObjCFDITimbre.Comprobante.SerieFolio
Dim SubTotal As Decimal = 0
Dim TimbraProduccion As Boolean = True
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL"
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
EmisorRFC = "EKU9003173C9"
UsuarioActual.Empresa.Empresa = "ESCUELA KEMPER URGATE SA DE CV"
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\EKU9003173C9.key"
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\EKU9003173C9.cer"
Clave = "12345678a"
TimbraProduccion = False
UsuarioServicio = "UserTest"
ClaveServicio = "1234567890"
End If
#Region "Valida"
If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
Return "El archivo de certificado no existe"
End If
If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
Return "El archivo de llave privada no existe"
End If
If UsuarioActual.Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
Return "La clave no puede ser vacía"
End If
#End Region
#Region "Variables"
Dim llaveByte As Byte(), certByte As Byte()
Dim llaveBase64 As String, certBase64 As String
Dim cfdi As New GoFac.Cfdi4
Dim complemento As String = ""
Dim complementoConcepto As String = ""
#End Region
#Region "Verifica"
Try
llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave)
llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
Return "Error al leer la llave privada"
End Try
Try
certByte = System.IO.File.ReadAllBytes(ArchivoCertificado)
certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
Return "Error al leer el certificado"
End Try
#End Region
sw.Stop()
swTiempo.AppendFormat("Verificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
'cfdi.QuitarCerosDecimalDerecha = True ' no limita a 2 decimales, el atributo, de cantidad y precio unitario
#Region "Certificado"
cfdi.CertArchivo(ArchivoCertificado)
#End Region
sw.Stop()
swTiempo.AppendFormat("Certificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
#Region "Comprobante"
cfdi.Comprobante(
ObjCFDITimbre.Comprobante.Serie,
ObjCFDITimbre.Comprobante.Folio,
ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"),
ObjCFDITimbre.Comprobante.FormadePago,
ObjCFDITimbre.Comprobante.CondicionesdePago,
ObjCFDITimbre.Comprobante.SubTotal,
ObjCFDITimbre.Comprobante.Descuentos,
ObjCFDITimbre.Comprobante.Moneda,
ObjCFDITimbre.Comprobante.TipoCambio.ToString,
ObjCFDITimbre.Comprobante.Total,
ObjCFDITimbre.Comprobante.TipoComprobante,
ObjCFDITimbre.Comprobante.Exportacion,
ObjCFDITimbre.Comprobante.MetodoPago,
ObjCFDITimbre.Comprobante.LugarExpedicion,
ObjCFDITimbre.Comprobante.Confirmacion)
If ObjCFDITimbre.CFDIRelacionados.TipoRelacion <> "" Then
cfdi.CfdiRelacionados(ObjCFDITimbre.CFDIRelacionados.TipoRelacion)
For Each uid As String In ObjCFDITimbre.CFDIRelacionados.UUID
cfdi.CfdiRelacionado(uid)
Next
End If
#Region "Emisor"
' cfdi.agregarCfdiRelacionados()
cfdi.Emisor(EmisorRFC, UsuarioActual.Empresa.Empresa, UsuarioActual.Empresa.CodigoRegimenFiscal, "")
#End Region
#Region "Receptor"
cfdi.Receptor(ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Receptor.Nombre, ObjCFDITimbre.Receptor.DomicilioFiscalReceptor, ObjCFDITimbre.Receptor.ResidenciaFiscal, ObjCFDITimbre.Receptor.NumeroRegistroTributario, ObjCFDITimbre.Receptor.RegimenFiscalReceptor, ObjCFDITimbre.Receptor.UsoCFDI)
#End Region
#End Region
#Region "Conceptos"
'Nodo conceptos, se agregan los PS
If ObjCFDITimbre.Conceptos IsNot Nothing AndAlso ObjCFDITimbre.Conceptos.Count > 0 Then
For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos
cfdi.Concepto(concep.ClaveProdServ, concep.Noidentificacion, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Descripcion, concep.ValorUnitario, concep.Importe, concep.Descuento, concep.ObjetoImpuesto)
For Each imp As CFDIConceptosImpuestos In concep.Impuestos
If imp.TrasladooRetencion = "T" Then
cfdi.ConceptoTraslado(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe)
Else
cfdi.ConceptoRetencion(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe)
End If
Next
If concep.CuentaPredial <> "" Then cfdi.CuentaPredial(concep.CuentaPredial)
If concep.NumeroPedimento <> "" Then cfdi.InformacionAduanera(concep.NumeroPedimento)
Next
End If
#End Region
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E") Then
#Region "Impuestos"
'SI NO ES FACTURA EN 0 AGREGA LOS IMPUESTOS
If Ventas.Total <> 0 OrElse (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then
cfdi.Impuestos(ObjCFDITimbre.TotalImpuestosRetenidos, ObjCFDITimbre.TotalImpuestosTrasladados)
End If
#End Region
#Region " Traslados y Retenciones"
If ObjCFDITimbre.Retenciones.Sum(Function(x) x.Importe) > 0 Then
''se acumulan los importes
For Each Ret In ObjCFDITimbre.Retenciones
cfdi.Retencion(Ret.Impuesto, Ret.Importe)
Next
End If
''se acumulan los importes
For Each Tras In ObjCFDITimbre.Traslados
cfdi.Traslado(Tras.Base, Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe)
Next
#End Region
#Region "Impuestos Locales"
If ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe) > 0 OrElse ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe) > 0 Then
cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe))
For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales
If ret.Importe > 0 Then
cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe)
End If
Next
For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales
If ret.Importe > 0 Then
cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe)
End If
Next
End If
'If Ventas.CveComplementoTimbrado > 0 Then
' Select Case Ventas.CveComplementoTimbrado
' Case 5 'INE Proceso Ordinario Directivo Estatal"
' cfdi.Ine11("Ordinario", "Directivo Estatal", "0")
' cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
' cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
' Case 6 'INE Proceso Ordinario Ejecutivo Estatal"
' cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0")
' cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
' cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
' Case 7 'INE Proceso Ordinario Ejecutivo Nacional"
' cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString)
' Case 8 'INE PreCampaña
' cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0")
' cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite)
' cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
' End Select
'End If
#End Region
#Region "Comercio Exterior"
'If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then
' If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then
' 'DATOS GENERALES
' cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado,
' ObjCFDITimbre.Complementos.ComercioExterior11.TipoOperacion,
' ObjCFDITimbre.Complementos.ComercioExterior11.ClavedePedimento,
' ObjCFDITimbre.Complementos.ComercioExterior11.CertificadoOrigen,
' ObjCFDITimbre.Complementos.ComercioExterior11.NumCertificadoOrigen,
' ObjCFDITimbre.Complementos.ComercioExterior11.NumeroExportadorConfiable,
' ObjCFDITimbre.Complementos.ComercioExterior11.Incoterm,
' ObjCFDITimbre.Complementos.ComercioExterior11.Subdivision,
' ObjCFDITimbre.Complementos.ComercioExterior11.Observaciones,
' ObjCFDITimbre.Complementos.ComercioExterior11.TipoCambioUSD,
' ObjCFDITimbre.Complementos.ComercioExterior11.TotalUSD)
' 'EMISOR
' cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP))
' cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroExterior,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroInterior,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Colonia,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Localidad,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Referencia,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Municipio,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Estado,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Pais,
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CP)
' 'RECEPTOR
' cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib)
' cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroExterior,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroInterior,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Colonia,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Localidad,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Referencia,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Municipio,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Estado,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Pais,
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.CP)
' cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Nombre,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Calle,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroExterior,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroInterior,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Colonia,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Localidad,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Referencia,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Municipio,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Estado,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Pais,
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.CP)
' 'MERCANCIAS
' If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then
' For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias
' cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares)
' If concep.DescripcionesEspecificas.Marca <> "" Then
' cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca,
' concep.DescripcionesEspecificas.Modelo,
' concep.DescripcionesEspecificas.SubModelo,
' concep.DescripcionesEspecificas.NumeroSerie)
' End If
' Next
' End If
' End If
'End If
#End Region
End If
#Region "C O M P L E M E N T O C A R T A P O R T E"
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte
''DATOS GENERALES
cfdi.CartaPorte(Carta.TranspInternac, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida)
'UBICACIONES
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones
'origen
cfdi.CartaPorteUbicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida)
'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
cfdi.CartaPorteDomicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP)
Next
End If
'MERCANCIAS
If Carta.Mercancias IsNot Nothing Then
cfdi.CartaPorteMercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion)
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias
cfdi.CartaPorteMercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), concep.DescripEmbalaje, concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt)
For Each transp In concep.MercanciasCantidadTransporta
cfdi.CartaPorteCantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes)
Next
Next
End If
End If
'
If Carta.FiguraTransporte IsNot Nothing Then
If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then
cfdi.CartaPorteAutotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT)
cfdi.CartaPorteIdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM)
cfdi.CartaPorteSeguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil,
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente,
Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga,
Carta.FiguraTransporte.AutoTransporte.PrimaSeguro)
If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then
For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques
cfdi.CartaPorteRemolque(concep.SubTipoRemolque, concep.Placa)
Next
End If
End If
If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then
For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores
cfdi.CartaPorteTiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, ""))
If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador
cfdi.CartaPortePartesTransporte("PT01")
cfdi.CartaPortePartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP)
End If
Next
End If
End If
End If
#End Region
#Region "Complemento Pago"
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
cfdi.Pago(ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"),
ObjCFDITimbre.ComplementoPagos.FormaDePagoP,
ObjCFDITimbre.ComplementoPagos.MonedaP,
ObjCFDITimbre.ComplementoPagos.TipoCambioP,
ObjCFDITimbre.ComplementoPagos.Monto,
ObjCFDITimbre.ComplementoPagos.NumOperacion,
ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaOrd,
ObjCFDITimbre.ComplementoPagos.NomBancoOrdExt,
ObjCFDITimbre.ComplementoPagos.CtaOrdenante,
ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaBen,
ObjCFDITimbre.ComplementoPagos.CtaBeneficiario,
ObjCFDITimbre.ComplementoPagos.TipoCadPago,
ObjCFDITimbre.ComplementoPagos.CertPago,
ObjCFDITimbre.ComplementoPagos.CadPago,
ObjCFDITimbre.ComplementoPagos.SelloPago)
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
For Each doc As CFDIComplementoPagosDocsRelacionados In ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados
cfdi.PagoDoctoRelacionado(doc.IdDocumento,
doc.Serie,
doc.Folio,
doc.MonedaDR,
doc.TipoCambioDR,
doc.MetodoDePagoDR,
doc.NumParcialidad,
doc.ImpSaldoAnt,
doc.ImpPagado,
doc.ImpSaldoInsoluto)
Next
'Estos impuestos aplicarían para anticipos
If ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados > 0 Then
cfdi.PagoImpuestos(ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos, ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados)
If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
For Each Ret As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R")
cfdi.PagoRetencion(Ret.Impuesto, Ret.Importe)
Next
End If
If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then
For Each Tra As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T")
cfdi.PagoTraslado(Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.Importe)
Next
End If
End If
End If
End If
#End Region
#Region "Nomina12"
If ObjCFDITimbre.Comprobante.TipoComprobante = "N" Then
'cfdi.Esquema.AgregarEsquema("http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd")
cfdi.Nomina12(ObjCFDITimbre.Nomina.TipoNomina, ObjCFDITimbre.Nomina.FechaPago.ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.FechaInicio.ToDate().ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.FechaFin.ToDate().ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.NumDiasPagados, If(ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0, ObjCFDITimbre.Nomina.TotalPercepciones, 0), If(ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0, ObjCFDITimbre.Nomina.TotalDeducciones, 0), If(ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0, ObjCFDITimbre.Nomina.TotalOtrosPagos, 0))
cfdi.Nomina12Emisor(ObjCFDITimbre.Emisor.CURP, If(ObjCFDITimbre.Nomina.Receptor.TipoContrato.Contiene("09", "10", "99"), "", ObjCFDITimbre.Emisor.RegistroPatronal), ObjCFDITimbre.Emisor.RFC)
If UsuarioActual.Empresa.UsaAC Then cfdi.Nomina12EntidadSNCF("IF", 90)
#Region "Receptor"
cfdi.Nomina12Receptor(ObjCFDITimbre.Nomina.Receptor.CURP,
ObjCFDITimbre.Nomina.Receptor.NSS,
ObjCFDITimbre.Nomina.Receptor.FechaInicioContrato.ToDate().ToString("yyyy-MM-dd"),
ObjCFDITimbre.Nomina.Receptor.Antiguedad,
ObjCFDITimbre.Nomina.Receptor.TipoContrato,
ObjCFDITimbre.Nomina.Receptor.Sindicalizado,
ObjCFDITimbre.Nomina.Receptor.CodigoTipoJornada,
ObjCFDITimbre.Nomina.Receptor.CodigoRegimenContratacion,
ObjCFDITimbre.Nomina.Receptor.CodigoEmpleado,
ObjCFDITimbre.Nomina.Receptor.Departamento,
ObjCFDITimbre.Nomina.Receptor.Puesto,
ObjCFDITimbre.Nomina.Receptor.CodigoRiesgoPuesto,
If(ObjCFDITimbre.Nomina.TipoNomina = "E", "99", ObjCFDITimbre.Nomina.Receptor.TipoPeriodo),
ObjCFDITimbre.Nomina.Receptor.CodigoBanco,
ObjCFDITimbre.Nomina.Receptor.NumeroCuenta,
ObjCFDITimbre.Nomina.Receptor.SBC,
ObjCFDITimbre.Nomina.Receptor.SDI,
ObjCFDITimbre.Nomina.Receptor.CodigoEntidadFederativa)
'cfdi.Nomina12SubContratacion("", "0")
'cfdi.agregarNominaPercepcionesPercepcionAccionesOTitulos12("100", "200");
'cfdi.agregarNominaPercepcionesSeparacionIndemnizacion12("100", "10", "1000", "100", "50");
'cfdi.agregarNominaPercepcionesJubilacionPensionRetiro12("50", "100", "10", "100", "0");
End If
#End Region
If ObjCFDITimbre.Nomina IsNot Nothing Then
'If cfdi.Nomina12SeparacionIndemnizacion Then
If ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0 Then
cfdi.Nomina12Percepciones(ObjCFDITimbre.Nomina.TotalSueldos, ObjCFDITimbre.Nomina.TotalIndemnizacion, ObjCFDITimbre.Nomina.TotalJubilacion, ObjCFDITimbre.Nomina.TotalPercepcionesGravado, ObjCFDITimbre.Nomina.TotalPercepcionesExento)
For Each percep As CFDINominaPercepciones In ObjCFDITimbre.Nomina.Percepciones
cfdi.Nomina12Percepcion(percep.TipoPercepcion, percep.Clave, percep.Concepto, Math.Round(percep.ImporteGravado, 2), Math.Round(percep.ImporteExento, 2))
If percep.TipoPercepcion.ToEntero() = 19 Then
If ObjCFDITimbre.Nomina.HorasExtras IsNot Nothing AndAlso ObjCFDITimbre.Nomina.HorasExtras.Count > 0 Then
For Each HoraExtra As CFDINominaHorasExtras In ObjCFDITimbre.Nomina.HorasExtras
cfdi.Nomina12HorasExtra(HoraExtra.Dias.ToEntero, HoraExtra.TipoHoras, HoraExtra.HorasExtra, HoraExtra.ImportePagado)
Next
End If
End If
Next
End If
If ObjCFDITimbre.IStimbreFiniquito Then
'ObjCFDITimbre.Nomina.
Dim UltimoSueldoOrdinario As Double = ObjCFDITimbre.Nomina.UltimoSueldoOrdinario.ToString().ToDouble()
Dim TotalIndemnizacion As Double = ObjCFDITimbre.Nomina.TotalIndemnizacion
Dim t1 As Double = If(UltimoSueldoOrdinario < TotalIndemnizacion, UltimoSueldoOrdinario, TotalIndemnizacion)
Dim t2 As Double = If(UltimoSueldoOrdinario < TotalIndemnizacion, TotalIndemnizacion, UltimoSueldoOrdinario)
cfdi.Nomina12SeparacionIndemnizacion(TotalIndemnizacion, ObjCFDITimbre.Nomina.Antiguedad, UltimoSueldoOrdinario, t1, t2 - t1)
End If
'deducciones al final
If ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0 Then
cfdi.Nomina12Deducciones(ObjCFDITimbre.Nomina.TotalDeduccionesOtras, Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos, 2))
For Each deduc As CFDINominaDeducciones In ObjCFDITimbre.Nomina.Deducciones
cfdi.Nomina12Deduccion(deduc.TipoDeduccion, deduc.Clave, deduc.Concepto, Math.Round(deduc.Importe, 2))
Next
End If
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing Then
' cfdi.agregarNominaOtrosPagosOtroPago12("002", "002", "Subsidio", "10.00");
' cfdi.agregarNominaOtrosPagosOtroPagoSubsidioAlEmpleo12("10.00");
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0 Then
For Each otpag As CFDINominaOtrosPagos In ObjCFDITimbre.Nomina.OtrosPagos
cfdi.Nomina12OtroPago(otpag.TipoOtroPago, otpag.Clave, otpag.Concepto, otpag.Importe)
If otpag.TipoOtroPago = "002" Then
cfdi.Nomina12SubsidioAlEmpleo(otpag.Subsidiocausado)
End If
If otpag.TipoOtroPago = "004" AndAlso otpag.Importe > 0 Then
If otpag.ejercicio > 0 Then
cfdi.CompensacionSaldosAFavor(otpag.SaldoAFavor, otpag.ejercicio, otpag.RemanenteSalFav) 'otpag.SaldoAFavor
End If
End If
Next
End If
End If
If ObjCFDITimbre.Nomina.Incapacidades IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Incapacidades.Count > 0 Then
For Each Incap As CFDINominaIncapacidades In ObjCFDITimbre.Nomina.Incapacidades
cfdi.Nomina12Incapacidad(Incap.DiasIncapacidad.ToEntero, Incap.TipoIncapacidad, Incap.Importe)
Next
End If
End If
#End Region
sw.Stop()
swTiempo.AppendFormat("Armado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
#Region "Genera XML"
Dim ArchivoGenerado As Boolean = False
Try
cfdi.GenerarXMLB64(llaveBase64, Clave)
ArchivoGenerado = True
Catch ex As Exception
Retorno = cfdi.Mensaje
If Retorno = "" OrElse IsNothing(Retorno) Then
Retorno = $"llaveBase64 ={llaveBase64} <br/>Clave ={Clave} <br/> {ex.ToString()}"
End If
MensajeErrorCFDI = Retorno
End Try
#End Region
sw.Stop()
swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
#Region "Timbra"
If ArchivoGenerado Then
cfdi.TimbrarCfdi(UsuarioServicio, ClaveServicio, UrlServicio, TimbraProduccion)
sw.Stop()
swTiempo.AppendFormat("Timbrado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
'Verifica el error
If cfdi.Mensaje = "" Then
Dim FolioFiscal As String
UUID = cfdi.CfdiInfo.UUID
FolioFiscal = cfdi.CfdiInfo.UUID 'obtenerAtributo(cfdi.XmlTimbrado, "TimbreFiscalDigital", "UUID") 'XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText
If FolioFiscal <> "" Then
cfdi.EscribirXml(RutaArchivo & NombreArchivoXML & ".xml")
sw.Stop()
swTiempo.AppendFormat("Guardado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
Select Case ObjCFDITimbre.Comprobante.TipoComprobante
Case "N"
Using ObjNomina2 As New ClsNominas()
If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, ("01/01/2000").ToDate, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0, isFiniquito:=Ventas.Timbre.IStimbreFiniquito) Then
Retorno = ""
Else
Retorno = "Error"
End If
End Using
Case "T"
Dim objGrales As New ClsGenerales
If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC) Then
Retorno = ""
Else
Retorno = "Error"
End If
objGrales.Dispose()
Using ObjInv As New ClsInventarios()
If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then
Retorno = ""
Else
Retorno = "Error"
End If
End Using
Case Else
'Actualiza Estatus Factura
If Ventas.CveVenta > 0 Then
Using ObjVentas As New ClsVentas()
If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC) Then
Retorno = ""
Else
Retorno = "Error"
End If
End Using
'Genero la addenda Ford
If Ventas.Cliente.Ford_GSDB <> "" Then
Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio))
Dim FolioFactura As String = ""
If UsuarioActual.CveEmpresa = 8 Then FolioFactura = Ventas.Folio.ToString ' sogo, pordefault manda el folio de la factura
GeneraAddendaFord(RutaCadena, FolioFactura, Ventas.FordASN, Ventas.FordGSDB)
End If
End If
End Select
If Not IO.Directory.Exists($"{UsuarioActual.Empresa.Ruta}CBB\") Then IO.Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}CBB\")
Try
Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg"
'temp
'Dim b As Byte() = cfdi. .QrCode($"?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={FolioFiscal}")
'File.WriteAllBytes(RutaCBB, b)
Catch ex As Exception
OnError("Ocurrió un error al generar el QR", ex)
End Try
Retorno = ""
Else
Retorno = "No se pudo timbrar ante el SAT. UUID no generado."
End If
sw.Stop()
swTiempo.AppendFormat("Actualizado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
swmili = sw.ElapsedMilliseconds
sw.Start()
Else
Retorno = cfdi.Mensaje
MensajeErrorCFDI = cfdi.Mensaje
If cfdi.Xml <> "" Then cfdi.EscribirXml(RutaArchivo & NombreArchivoXML & ".xml")
End If
End If
#End Region
GuardaLogTimbrado(swTiempo.ToString, CvePACEspecial)
Return Retorno
End Function
#End Region
<Serializable(), XmlRoot("servicioTimbrado")>
Public Class PADEServicioTimbradoResp
<XmlElement("id")>

View File

@@ -167,7 +167,8 @@
<asp:Repeater ID="RptDatos" runat="server" OnItemDataBound="RptDatos_ItemDataBound">
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "NombreComercial") %></td>
<td><%# string.Format("<a href='/Ventas/Clientes.aspx?CveCliente={0}' target='_blank'>{1}</a>",DataBinder.Eval(Container.DataItem, "CveCliente"),DataBinder.Eval(Container.DataItem, "NombreComercial")) %></td>
<asp:Repeater ID="rptdocumentacion" runat="server">
<ItemTemplate>
<td><%#

File diff suppressed because it is too large Load Diff

View File

@@ -585,7 +585,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>Regimen General de Ley Personas Morales</Value>
<Value>Régimen Simplificado de Confianza</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>9.16pt</FontSize>

View File

@@ -1586,10 +1586,10 @@ KM12 HERMOSILLO, SONORA</Value>
<Page>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<LeftMargin>2cm</LeftMargin>
<RightMargin>2cm</RightMargin>
<TopMargin>2cm</TopMargin>
<BottomMargin>2cm</BottomMargin>
<LeftMargin>0cm</LeftMargin>
<RightMargin>0cm</RightMargin>
<TopMargin>0cm</TopMargin>
<BottomMargin>0cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>

View File

@@ -2914,6 +2914,10 @@ Partial Class Inventarios_EntregaAlmacen
If RbEntregaInterna.Checked Then
Msg.AppendFormat("<br/><br/>Se agregó una guía de paquetería interna")
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso TipoDocto = "Rem" Then
Msg.AppendFormat("<br/><br/>Recibir Usado: <b><a href=""/Inventarios/RecepcionUsados.aspx?CveRemision={0}"" target=""_blank"">Ir a Recepción de Usados</a></b>", CveVentaSurtir)
End If
Alert(Msg.ToString(), TipoMensaje.MsgInformacion)

View File

@@ -109,7 +109,12 @@ Partial Class Inventarios_Kardex
If ddlProducto2.UsaWebService Then
ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1")
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then '' se cambio la página para que puedan filtrar "servicios" como los usados.
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Kardex")
Else
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
End If
ddlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
'DdlClasificacion.AutoPostBack = False

View File

@@ -236,7 +236,8 @@
<label class="col-md-1" style="width: 110px">Recibe:</label>
<div class="col-md-3">
<asp:TextBox runat="server" Text="" ID="TxtResponsable" Width="100%" />
<%--<asp:DropDownList ID="DdlResponsable" runat="server" DataTextField="Nombre" DataValueField="CveUsuario" CssClass="form-control input-sm" Style="width: 200px !important;"></asp:DropDownList>--%>
<asp:RequiredFieldValidator ID="RFVResponsable" runat="server" ControlToValidate="TxtResponsable" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Recibe''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEResponsable" runat="server" HighlightCssClass="vco" TargetControlID="RFVResponsable"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
@@ -280,6 +281,12 @@
<asp:TextBox ID="TxtRemision" runat="server" Enabled="false" />
</div>
</div>
<div class="row" id="DivRemisionRecibida" runat="server" visible="false">
<label class="col-md-1 truncate" style="width: 110px">Remision:</label>
<div class="col-md-2">
<asp:TextBox ID="TxtRemisionRecibida" runat="server" Enabled="false" />
</div>
</div>
</div>
</div>
</div>

View File

@@ -349,6 +349,7 @@ Partial Class Inventarios_RecepcionUsados
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaInicial()
CargaRemisionFromURL()
GeneraRNCFromURL()
End If
End Sub
@@ -424,6 +425,17 @@ Partial Class Inventarios_RecepcionUsados
'DdlProducto2.setEsWebService(True)
'DdlProducto2.Attributes.Add("data-metodo", "getpsusados")
End Sub
Private Sub CargaRemisionFromURL()
Me.CveRemisionRecibida = -1
Dim CveRemision As Integer = IfNull(Request("CveRemision"), "-1").ToString().ToEntero()
If CveRemision > 0 Then
Me.CveRemisionRecibida = CveRemision
RecibirRemision()
End If
End Sub
Private Sub GeneraRNCFromURL()
Dim RFC As String = IfNull(Request("RFC"), "").ToString()
Dim CveAlmacen As Integer = IfNull(Request("CveAlmacen"), "-1").ToString().ToEntero()
@@ -1497,7 +1509,7 @@ Partial Class Inventarios_RecepcionUsados
If CveMovimiento <= 0 Then
CveMovimiento = ObjInv.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, TxtFecha.Text.ToDate, TxtFolio.Text.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
-1, -1, -1, -1, Modulo:="RU/G")
-1, -1, -1, -1, Recibio:=TxtResponsable.Text.Trim, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="RU/G2")
End If
ObjInv.AddMovimientoDetalle(CveMovimiento, Cantidad, CveUM, CvePS, CostoPromedio, -1, Serie:=Serie)
@@ -2185,11 +2197,15 @@ Partial Class Inventarios_RecepcionUsados
UpGenerales.Update()
End Sub
Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
DtMovimientos.Rows.Clear()
Me.CveRemisionRecibida = -1
Me.CveRemisionRecibida = CType(CType(sender, LinkButton).NamingContainer, GridViewRow).DataKey("CveVenta").ToEntero()
RecibirRemision()
End Sub
Private Sub RecibirRemision()
DtMovimientos.Rows.Clear()
Dim DtUsados As DataTable = Nothing
Dim CveCliente As Integer = -1
@@ -2210,6 +2226,8 @@ Partial Class Inventarios_RecepcionUsados
Me.ObjFactura = New Modelos.Factura(UsuarioActual, CveRemisionRecibida, UsuarioActual.CveEmpresa, DirectorioServidor:=ModExtensiones.DirectorioBaseEmpresas)
TxtRemisionRecibida.Text = Me.ObjFactura.SerieFolio
DivRemisionRecibida.Visible = True
'SI ES DISTRIBUIDOR VAMOS A GENERAR LA REMISION DE NOTA DE CREDITO
If EsDistribuidor Then
@@ -2419,7 +2437,7 @@ Partial Class Inventarios_RecepcionUsados
Me.ObjRemisionNC.OrdenCompra = ""
Me.ObjRemisionNC.PedidoContrato = ""
Me.ObjRemisionNC.ObservacionesAlmacen = ""
Me.ObjRemisionNC.Recibio = TxtResponsable.Text.Trim
'If TmpDTPolizaVirtual IsNot Nothing Then
' Me.ObjRemisionNC.DtPolizasVirtuales = TmpDTPolizaVirtual
'End If
@@ -2762,7 +2780,8 @@ Partial Class Inventarios_RecepcionUsados
ObjRemisionNC.DtMovimientosUsados = DtMovimientos
ObjRemisionNC.CveAlmacen = DdlAlmacen.SelectedValue.ToEntero()
ObjRemisionNC.ObservacionesMovimiento = TxtObservaciones.Text
ObjRemisionNC.MovimientoObservaciones = TxtObservaciones.Text
ObjRemisionNC.MovimientoRecibio = TxtResponsable.Text
ObjRemisionNC.CveConceptoMovimiento = CveConcepto
End Sub

View File

@@ -131,18 +131,16 @@
ShowHeaderWhenEmpty="false" CssClass="table table-advance table-GvM Widthall" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Fecha" ItemStyle-Width="75px" DataTextField="FechaMovto" ItemStyle-CssClass="Texto" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" />
<asp:BoundField HeaderText="Almacen" ItemStyle-Width="150px" DataField="Almacen" />
<asp:HyperLinkField HeaderText="Folio" ItemStyle-Width="50px" DataTextField="Folio" ItemStyle-CssClass="Texto" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" />
<asp:BoundField HeaderText="Almacen" DataField="Almacen" />
<asp:HyperLinkField HeaderText="Folio" ItemStyle-Width="100px" DataTextField="Folio" ItemStyle-CssClass="Texto" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" />
<asp:BoundField HeaderText="Activo Fijo" DataField="CodigoAF" ItemStyle-HorizontalAlign="Left" Visible="false" />
<asp:BoundField HeaderText="SubProyecto" DataField="SubProyecto" ItemStyle-HorizontalAlign="Left" Visible="false" />
<asp:BoundField HeaderText="Entradas" ItemStyle-Width="75px" DataField="Entradas" DataFormatString="{0:#,###.####}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Costo" ItemStyle-Width="75px" DataField="CostoE" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Importe" ItemStyle-Width="75px" DataField="ImporteE" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Salidas" ItemStyle-Width="75px" DataField="Salidas" DataFormatString="{0:#,###.####}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Costo" ItemStyle-Width="75px" DataField="CostoS" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Importe" ItemStyle-Width="75px" DataField="ImporteS" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Existencia" ItemStyle-Width="75px" DataField="ExistenciaAcum" DataFormatString="{0:#,###.####}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Valor" ItemStyle-Width="75px" DataField="ValorAcum" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Entradas" ItemStyle-Width="75px" DataField="Entradas" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Costo" ItemStyle-Width="100px" DataField="CostoE" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Salidas" ItemStyle-Width="75px" DataField="Salidas" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Costo" ItemStyle-Width="100px" DataField="CostoS" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Existencia" ItemStyle-Width="75px" DataField="ExistenciaAcum" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Valor" ItemStyle-Width="100px" DataField="ValorAcum" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right"/>
</Columns>
</asp:GridView>
</div>

View File

@@ -85,13 +85,9 @@ Partial Class Inventarios_RepExistenciasCostos
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
GvM.Columns(6).Visible = TienePermisoImportes
GvM.Columns(7).Visible = TienePermisoImportes
GvM.Columns(9).Visible = TienePermisoImportes
GvM.Columns(8).Visible = TienePermisoImportes
GvM.Columns(10).Visible = TienePermisoImportes
GvM.Columns(12).Visible = TienePermisoImportes
End Sub
Public Sub CargaCombos()
@@ -130,7 +126,6 @@ Partial Class Inventarios_RepExistenciasCostos
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
@@ -202,11 +197,8 @@ Partial Class Inventarios_RepExistenciasCostos
Dim TienePermisoImportes = UsuarioActual.TienePermisoProceso(201)
e.Row.Cells(6).Visible = TienePermisoImportes
e.Row.Cells(7).Visible = TienePermisoImportes
e.Row.Cells(9).Visible = TienePermisoImportes
e.Row.Cells(8).Visible = TienePermisoImportes
e.Row.Cells(10).Visible = TienePermisoImportes
e.Row.Cells(12).Visible = TienePermisoImportes
Select Case e.Row.DBCampo("Orden").ToEntero
Case 10
@@ -224,8 +216,6 @@ Partial Class Inventarios_RepExistenciasCostos
e.Row.Cells(8).Text = ""
e.Row.Cells(9).Text = ""
e.Row.Cells(10).Text = ""
e.Row.Cells(11).Text = ""
e.Row.Cells(12).Text = ""
Case 15
If e.Row.DBCampo("CveMovimiento").ToString.ToEntero <= 0 Then
e.Row.Cells(0).Text = e.Row.DBCampo("FechaMovto")
@@ -240,8 +230,8 @@ Partial Class Inventarios_RepExistenciasCostos
e.Row.Cells(1).Visible = False
e.Row.Cells(2).Visible = False
e.Row.Cells(11).Text = e.Row.DBCampo("ExistenciaTotal").ToDouble().ToString("#,####.####")
e.Row.Cells(12).Text = e.Row.DBCampo("ValorTotal").FormatoNumero
e.Row.Cells(9).Text = e.Row.DBCampo("ExistenciaTotal").ToDouble().ToString("#,####.####")
e.Row.Cells(10).Text = e.Row.DBCampo("ValorTotal").FormatoNumero
End Select

File diff suppressed because it is too large Load Diff

View File

@@ -52,6 +52,18 @@ Partial Class RH_Personal
ViewState("DTDocumentacion") = value
End Set
End Property
Private Property DTDocumentacionFiscal As DataTable
Get
If ViewState("DTDocumentacionFiscal") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTDocumentacionFiscal"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTDocumentacionFiscal") = value
End Set
End Property
Property NombreCompleto As String
Get
If ViewState("NombreCompleto") Is Nothing Then
@@ -3749,8 +3761,18 @@ Partial Class RH_Personal
Else
GvDocumentosFirma.DataSource = Nothing
End If
If DTDocumentacion.FiltraParametros(" Modulo = 7 ").Rows.Count > 0 Then
GVMaterialidad.DataSource = DTDocumentacion.FiltraParametros(" Modulo = 7 ")
Else
GVMaterialidad.DataSource = Nothing
End If
GVMaterialidad.DataBind()
GvDocumentosFirma.DataBind()
UpMaterialidad.Update()
UPGvDocumentosFirma.Update()
UpGvDocumentosFirma2.Update()
End If

View File

@@ -104,15 +104,20 @@
EmptyDataText="No se encontraron autorizaciones" ToolTip=""
CssClass="table table-striped table-advance table-hover ScrollAD mysmallbtn" data-sort="true" Width="100%" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Tipo " ItemStyle-Width="5%">
<ItemTemplate>
<asp:Label ID="LblTipo" Text='<%# Eval("TipoDocumento") %>' runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TipoAutorizacionTexto" HeaderText="Tipo" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="10%" />
<asp:HyperLinkField DataTextField="NombreComercial" Target="_blank" HeaderText="Cliente" DataNavigateUrlFields="CveCliente" DataNavigateUrlFormatString="/Ventas/Clientes.aspx?CveCliente={0}" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="20%" />
<asp:BoundField DataField="Vendedor" HeaderText="Vendedor" ItemStyle-Width="15%" />
<asp:BoundField DataField="Importe" ItemStyle-Width="15%" HeaderText="Importe" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField DataField="LimiteCredito" ItemStyle-Width="10%" HeaderText="Limite Credito" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField DataField="LimiteCredito" ItemStyle-Width="10%" HeaderText="Limite Crédito" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField DataField="Saldo" ItemStyle-Width="10%" HeaderText="Saldo" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField DataField="FechaIng" ItemStyle-Width="10%" HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField DataField="TipoAutorizacionTexto" HeaderText="Tipo" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="10%" />
<asp:BoundField DataField="DiasVencidos" ItemStyle-Width="5%" HeaderText="Dias Vencidos" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:N0}" />
<asp:BoundField DataField="TipoDocumento" HeaderText="Tipo" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="5%" />
<asp:BoundField DataField="DiasVencidos" ItemStyle-Width="5%" HeaderText="D.Venc" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:N0}" />
<asp:HyperLinkField DataTextField="FacturaAplicada" Target="_blank" HeaderText="Factura" DataNavigateUrlFields="CveVentaAplicada" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Usuario" HeaderText="Usuario" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Estatus" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%">

View File

@@ -158,6 +158,12 @@ Partial Class Ventas_CatAutorizacionLimites
If e.Row.DBCampo("CveEstatus") = "0" Then
e.Row.FCLabel("LblEstatus").CssClass = "badge badge-secondary"
e.Row.FCLinkButton("LnkAutorizar").Visible = True
e.Row.FCLinkButton("LnkRechazar").Visible = True
ElseIf e.Row.DBCampo("CveEstatus") = "1" Then
e.Row.FCLabel("LblEstatus").CssClass = "badge badge-success"
e.Row.FCLinkButton("LnkAutorizar").Visible = False
e.Row.FCLinkButton("LnkRechazar").Visible = True
ElseIf e.Row.DBCampo("CveEstatus") = "2" Then
e.Row.FCLabel("LblEstatus").CssClass = "badge badge-primary"
e.Row.FCLinkButton("LnkAutorizar").Visible = False
e.Row.FCLinkButton("LnkRechazar").Visible = False

View File

@@ -501,6 +501,19 @@
</div>
</div>
<div class="row" id="divRegimen" runat="server" visible="false" >
<div class="col-md-12">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlRegimenFiscal" DataTextField="CodigoRegimenFiscalTexto" Width="100%" DataValueField="CveRegimenFiscal" runat="server" CssClass="form-control input-sm select2me">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVRegimenFiscal" runat="server" InitialValue="-1" ControlToValidate="DdlRegimenFiscal" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Regimen Fiscal''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<label for="<%= DdlRegimenFiscal.ClientID.ToString()%>">Régimen Fiscal:</label>
<i></i>
</div>
</div>
</div>
</div>

View File

@@ -753,6 +753,10 @@ Partial Class Clientes
DivRetIVA.Visible = False
End If
If UsuarioActual.CveUsuario = 100 Then
divRegimen.Visible = True
End If
If Request("CveCliente") IsNot Nothing AndAlso IsNumeric(Request("CveCliente")) AndAlso Request("CveCliente").ToEntero() > 0 Then
'If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 77 AndAlso Not Request("CveCliente").Contiene("10450", "10460", "10458") Then
' BtnGuardar.Enabled = False : BtnEliminar.Enabled = False : LbAgregarSucursal.Enabled = False : LbEnviarActivacionPortal.Enabled = False
@@ -1246,10 +1250,9 @@ Partial Class Clientes
CargaClasificaciones()
If UsuarioActual.Empresa.UsaContabilidad Then
'CargaCuentasContables()
End If
DdlRegimenFiscal.DataSource = GlobalDTRegimenesFiscales
DdlRegimenFiscal.DataBind()
CargaCombosComercioExterior()
@@ -1574,6 +1577,7 @@ Partial Class Clientes
DdlUsoCFDI.SelectedValueExist(ObjClientes.CveUsoCFDI.ToString())
DdlMetodoPago33.SelectedValueExist(ObjClientes.CveMetodoPago33.ToString())
DdlFormaPago33.SelectedValueExist(ObjClientes.CveFormaPago33.ToString())
DdlRegimenFiscal.SelectedValueExist(ObjClientes.CveRegimenFiscal)
ChkDesglosarIEPS.Checked = ObjClientes.DesglosaIEPS
ChkNoDesglosaIVA.Checked = ObjClientes.NoDesglosaIVA
@@ -2613,7 +2617,8 @@ Partial Class Clientes
CveFormaPago33:=DdlFormaPago33.SelectedValue.ToEntero(), CveMetodoPago33:=DdlMetodoPago33.SelectedValue.ToEntero(), DesglosaIEPS:=ChkDesglosarIEPS.Checked, AplicaComercioExterior:=ChkAplicaComercioExterior.Checked, CveTipoOperacion:=DdlTipoOperacion.SelectedValue.ToEntero(), CvePedimento:=DdlClavePedimento.SelectedValue.ToEntero(), CveIncoterm:=DdlIncoterm.SelectedValue.ToEntero(),
CvePais:=DdlPais.SelectedValue.ToEntero(), CveEstado:=DdlEstado.SelectedValue.ToEntero(), CveMunicipio:=DdlMunicipio.SelectedValue.ToEntero(), CveColonia:=DdlColonia.SelectedValue.ToEntero(), CveMotivoTraslado:=IIf(DdlMotivoTraslado.SelectedValue = "-1", "0", DdlMotivoTraslado.SelectedValue).ToString().ToEntero(), NumRegIdTrib:=IIf(TxtNumRegIdTrib.Text = "", "-1", TxtNumRegIdTrib.Text).ToString(),
ComExtEstado:=IIf(TxtComExtEstado.Text = "", "-1", TxtComExtEstado.Text).ToString(), ComExtMunicipio:=IIf(TxtComExtMunicipio.Text = "", "-1", TxtComExtMunicipio.Text).ToString(), ComExtColonia:=IIf(TxtComExtColonia.Text = "", "-1", TxtComExtColonia.Text).ToString(), RequiereOC:=ChkRequiereOC.Checked, LT:=LT, LG:=LG, EsDistribuidor:=ChkEsDistribuidor.Checked,
TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero(), CargoUsado:=ChkCargoUsado.Checked, BonificacionUsado:=ChkBonificacionUsado.Checked, CveTipoRetencion:=DdlTipoRetencion.SelectedValue.ToEntero(), CorreoEntregaCompras:=TxtCorreoEntregaCompras.Text, CorreoEntregaAlmacen:=TxtCorreoEntregaAlmacen.Text, CveSATEstado:=DdlEstadoSAT.SelectedValue.ToEntero(), CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero())) Then
TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero(), CargoUsado:=ChkCargoUsado.Checked, BonificacionUsado:=ChkBonificacionUsado.Checked, CveTipoRetencion:=DdlTipoRetencion.SelectedValue.ToEntero(), CorreoEntregaCompras:=TxtCorreoEntregaCompras.Text, CorreoEntregaAlmacen:=TxtCorreoEntregaAlmacen.Text, CveSATEstado:=DdlEstadoSAT.SelectedValue.ToEntero(), CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero()),
CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero) Then
ViewState("CveCliente") = ObjClientes.CveCliente
@@ -2710,7 +2715,7 @@ Partial Class Clientes
ApellidoPaternoPF:=IIf(TxtApellidoPaterno.Text = "", "-1", TxtApellidoPaterno.Text).ToString(), ApellidoMaternoPF:=IIf(TxtApellidoMaterno.Text = "", "-1", TxtApellidoMaterno.Text).ToString(), NombresPF:=IIf(TxtNombres.Text = "", "-1", TxtNombres.Text).ToString(),
RequiereOC:=ChkRequiereOC.Checked, LT:=LT, LG:=LG, EsDistribuidor:=ChkEsDistribuidor.Checked, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero(), CargoUsado:=ChkCargoUsado.Checked, BonificacionUsado:=ChkBonificacionUsado.Checked, CveTipoRetencion:=DdlTipoRetencion.SelectedValue.ToEntero(), CorreoEntregaCompras:=TxtCorreoEntregaCompras.Text, CorreoEntregaAlmacen:=TxtCorreoEntregaAlmacen.Text, CveSATEstado:=DdlEstadoSAT.SelectedValue.ToEntero(),
CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero()),
NoDesglosaIVA:=ChkNoDesglosaIVA.Checked) Then
NoDesglosaIVA:=ChkNoDesglosaIVA.Checked, CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero) Then
ObjClientes.LimpiaImpuestosLocales(CveCliente)

View File

@@ -70,7 +70,7 @@
<asp:BoundField HeaderText="Motivo" DataField="MotivoCancelacion" ItemStyle-Width="25%" />
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="BtnValidar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
<asp:LinkButton runat="server" OnClick="BtnValidar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>

View File

@@ -281,11 +281,11 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
}
if (respCancelacion.CveEstatus.Contiene(4, 5) && EsRefacturacion)
{
retorno.IrARefacturar = true;
retorno.LigaRefacturacion = string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta);
}
//if (respCancelacion.CveEstatus.Contiene(4, 5) && EsRefacturacion)
//{
// retorno.IrARefacturar = true;
// retorno.LigaRefacturacion = string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta);
//}
}
else
{
@@ -333,11 +333,11 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
if (respCancelacion.CveEstatus.Contiene(4, 5) && EsRefacturacion)
{
retorno.IrARefacturar = true;
retorno.LigaRefacturacion = string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta);
}
//if (respCancelacion.CveEstatus.Contiene(4, 5) && EsRefacturacion)
//{
// retorno.IrARefacturar = true;
// retorno.LigaRefacturacion = string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta);
//}
}
else if (resp.EstatusCancelacion.ToUpper() == "SOLICITUD RECHAZADA")
{
@@ -390,12 +390,18 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
retorno.Mensaje = sb.ToString();
return retorno;
}
private Modelos.Factura.MCancelacionVentaMensaje CancelarDocumento(int CveVenta, int CveEstatus, int CveCliente, string Folio, string FolioFiscal, string CancelacionAcuse, DateTime CancelacionFecha, string TipoComprobante, double Total, int CvePACCancelacion, bool EsRefacturacion = false, string FolioSustitucion = "", int CveEstatusRefacturacion = -1)
private Modelos.Factura.MCancelacionVentaMensaje CancelarDocumento(int CveVenta, int CveEstatus, int CveCliente, string Folio, string FolioFiscal, string CancelacionAcuse, DateTime CancelacionFecha, string TipoComprobante, double Total, int CvePACCancelacion, bool EsRefacturacion = false, string FolioSustitucion = "", int CveEstatusRefacturacion = 0)
{
Modelos.Factura.MCancelacionVentaMensaje retorno = null;
var factura = new Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion: true);
if (EsRefacturacion)
{
//SI YA FUE REFACTURADA MARCALA COMO REFACTURADA
if (!string.IsNullOrEmpty(FolioSustitucion))
{
CveEstatusRefacturacion = 2;
}
if (CveEstatusRefacturacion > 0)
{
factura.CveEstatusRefacturacion = CveEstatusRefacturacion;
@@ -616,6 +622,41 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
}
//protected void BtnAcuse_Click(object sender, EventArgs e)
//{
// GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
// string UsuarioServicio = "rene.molina@adsistemas.mx";
// string ClaveServicio = "rene2018";
// string UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL";
// this.CveVenta = GvRow.DataKey("CveVenta").ToEntero();
// string Uuid = GvRow.DataKey("FolioFiscal");
// decimal Total = GvRow.DataKey("Total").ToDecimal();
// string RFCCliente = GvRow.DataKey("RFCCliente");
// string FolioFiscalSustitucion = GvRow.DataKey("FolioFiscalSustitucion");
// Cancelacion2022.AcuseSat resp = new Cancelacion2022.AcuseSat();
// GoFac.GoCfdi a = new GoFac.GoCfdi();
// a.ObtenerAcuse(UrlServicio, UsuarioActual.Empresa.RFC, UsuarioServicio, ClaveServicio, Uuid);
// if (a.CodigoError != 0)
// {
// //no se pudo obtener, la mandamos cancelar
// Timbrado ObjCancelacion = new Timbrado();
// if (ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, Uuid, Total, RFCCliente, UsuarioActual.Empresa.RFC, 4, ValidaFactura:false, CveSATMotivoCancelacion: 1, FolioSustitucion: FolioFiscalSustitucion ))
// {
// string b = ObjCancelacion.CancelacionAcuse;
// //falta actualizar
// Alert("Se regeneró la solicitud de cancelación");
// }
// }
//}
}
public class MRespuestaSAT
{

View File

@@ -7691,10 +7691,10 @@ Partial Class Ventas
If e.Row.DBCampo("CveTipoInvPS").ToEntero() = 5 And CveVenta <= 0 Then
e.Row.FCTextBox("TxtSerie").Visible = True
e.Row.FCTextBox("TxtSerie").Attributes.Remove("onkeypress")
e.Row.FCTextBox("TxtSerie").Attributes.Add("onkeypress", String.Format("SeriePS(event,{0},this,{1});", e.Row.FCButton("BtnSerie").ClientID, e.Row.FCHiddenField("HdnSerie").ClientID))
e.Row.FCTextBox("TxtSerie").Attributes.Remove("onblur")
e.Row.FCTextBox("TxtSerie").Attributes.Add("onblur", String.Format("SeriePSBlur({0},this,{1});", e.Row.FCButton("BtnSerie").ClientID, e.Row.FCHiddenField("HdnSerie").ClientID))
e.Row.FCTextBox("TxtSerie").Attributes.Remove("onkeypress")
e.Row.FCTextBox("TxtSerie").Attributes.Add("onkeypress", String.Format("SeriePS(event,{0},this,{1});", e.Row.FCButton("BtnSerie").ClientID, e.Row.FCHiddenField("HdnSerie").ClientID))
e.Row.FCTextBox("TxtSerie").Attributes.Remove("onblur")
e.Row.FCTextBox("TxtSerie").Attributes.Add("onblur", String.Format("SeriePSBlur({0},this,{1});", e.Row.FCButton("BtnSerie").ClientID, e.Row.FCHiddenField("HdnSerie").ClientID))
'e.Row.FCTextBox("TxtSerie").Attributes.Add("onkeyup", String.Format("LimpiaAF(1, '{0}'); EnterAFEdit(event,this,{1},{2});", e.Row.FCHiddenField("HdnCveConcepto").Value, e.Row.FCHiddenField("HdnCveAF").ClientID, e.Row.FCHiddenField("HdnCodAF").ClientID))
@@ -10973,11 +10973,15 @@ Partial Class Ventas
If Obj.FacturarSucursal Then
Timbre.Receptor.RFC = Obj.ClienteSucursal.RFC
Timbre.Receptor.Nombre = Obj.ClienteSucursal.Nombre
Timbre.Receptor.DomicilioFiscalReceptor = Obj.ClienteSucursal.CP
Else
Timbre.Receptor.RFC = Obj.Cliente.RFC
Timbre.Receptor.Nombre = Obj.Cliente.Nombre
Timbre.Receptor.DomicilioFiscalReceptor = Obj.Cliente.CP
End If
Timbre.Receptor.RegimenFiscalReceptor = Obj.Cliente.CodigoRegimenFiscal
Timbre.Receptor.ResidenciaFiscal = ""
Timbre.Receptor.NumeroRegistroTributario = ""
Timbre.Receptor.UsoCFDI = Obj.ClaveUsoCFDI
@@ -11117,7 +11121,8 @@ Partial Class Ventas
.ClaveProdServ = drr("SATClaveProdServ").ToString(),
.Noidentificacion = drr("Noidentificacion").ToString(),
.CuentaPredial = drr("CuentaPredial").ToString(),
.ImporteGravaIVAAdicional = drr("ImporteIEPS").ToString().ToDecimal}
.ImporteGravaIVAAdicional = drr("ImporteIEPS").ToString().ToDecimal,
.ObjetoImpuesto = drr("CodigoObjetoImpuesto").ToString()}
'verifica suma subtotales
If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal.RoundSQL(2) <> concepto.Importe.RoundSQL(2) AndAlso Math.Abs(totSubTotal.RoundSQL(2) - concepto.Importe.RoundSQL(2)) <= 0.01 Then 'proceso de ajusta de decimales
concepto.Importe = totSubTotal
@@ -17730,6 +17735,7 @@ Partial Class Ventas
Row("CveTipoPS") = DrPS("CveTipoPS")
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
Row("CveTamaño") = DrPS("CveTamaño")
Row("ObjetoImpuesto") = DrPS("CodigoObjetoImpuesto")
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
@@ -18279,6 +18285,7 @@ Partial Class Ventas
TmpDT.Columns.Add("TieneProntoPago", GetType(String))
TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
TmpDT.Columns.Add("ObjetoImpuesto", GetType(String))
TmpDT.Columns("EsOutSourcing").DefaultValue = False
TmpDT.Columns("EsCargo").DefaultValue = False
@@ -18286,6 +18293,7 @@ Partial Class Ventas
TmpDT.Columns("TieneProntoPago").DefaultValue = "No"
TmpDT.Columns("ImporteProntoPago").DefaultValue = 0
End Sub
Private Sub CreaDTmpC()
DTmpC = New DataTable
@@ -26984,9 +26992,7 @@ Partial Class Ventas
Protected Sub BtnAplicarNC_Click(sender As Object, e As EventArgs)
'SOLO APLICA SI NO HAY DOCUMENTOS QUE SELECCIONAR
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim Verificacion As Boolean = False
If ListaRemisionesNC IsNot Nothing AndAlso ListaRemisionesNC.Count > 0 Then ' si hay opciones seleccionadas, se activa el generar las NCs
Verificacion = True
Else
@@ -26999,7 +27005,7 @@ Partial Class Ventas
Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL ", Orderby:="TipoAutorizacion")
If RowAutorizacion IsNot Nothing Then
Dim ImporteAutorizacion As Decimal = RowAutorizacion("Importe").ToString().ToDecimal()
If ImporteAutorizacion > TxtTotalGv.Text.ToDecimal Then
If ImporteAutorizacion > TxtNCImporte.Text.ToDecimal Then
Verificacion = True
End If
End If