From 93dd13bbae65c3fad57863519763748b687bb255 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 27 Jan 2022 10:07:41 -0700 Subject: [PATCH 01/11] Marcar como refacturadas si ya tienen el folio sustituto --- Ventas/RepCancelacionesPorRespuesta.aspx.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index 70d70c8d8..427e4c691 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -396,6 +396,12 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas 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; From 2e269d87365f3d13553f9cc36ec45ab1553417c8 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 27 Jan 2022 10:09:51 -0700 Subject: [PATCH 02/11] Liga para recibir usados desde entrega almacen hacia recepcion de usados --- Inventarios/EntregaAlmacen.aspx.vb | 4 ++++ Inventarios/RecepcionUsados.aspx | 9 ++++++++- Inventarios/RecepcionUsados.aspx.vb | 24 +++++++++++++++++++++--- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 5e13576bb..8a609ffe0 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -2914,6 +2914,10 @@ Partial Class Inventarios_EntregaAlmacen If RbEntregaInterna.Checked Then Msg.AppendFormat("

Se agregó una guía de paquetería interna") + End If + + If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso TipoDocto = "Rem" Then + Msg.AppendFormat("

Recibir Usado: Ir a Recepción de Usados", CveVentaSurtir) End If Alert(Msg.ToString(), TipoMensaje.MsgInformacion) diff --git a/Inventarios/RecepcionUsados.aspx b/Inventarios/RecepcionUsados.aspx index f555b67ce..3bb74e59c 100644 --- a/Inventarios/RecepcionUsados.aspx +++ b/Inventarios/RecepcionUsados.aspx @@ -236,7 +236,8 @@
- <%----%> + +
@@ -280,6 +281,12 @@
+
+ +
+ +
+
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index 437cee0c5..9ee842ed5 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -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() @@ -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 From b6b5b4f2df323638d68434b0753533ba9e442a70 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jan 2022 13:17:04 -0700 Subject: [PATCH 03/11] mejora en timbrado con impuestos a tasa cero --- App_Code/CFDITimbre.vb | 7 +++ App_Code/Timbrado.vb | 122 ++++++++++++++++++++--------------------- 2 files changed, 68 insertions(+), 61 deletions(-) diff --git a/App_Code/CFDITimbre.vb b/App_Code/CFDITimbre.vb index 4a747409e..0b2a1280b 100644 --- a/App_Code/CFDITimbre.vb +++ b/App_Code/CFDITimbre.vb @@ -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) diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 2af43a2fd..c659db691 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -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 = "" @@ -1094,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, @@ -1513,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, @@ -2106,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, @@ -2161,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 @@ -2175,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) @@ -2189,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 @@ -2236,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, @@ -2251,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, @@ -2263,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, @@ -2275,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, @@ -2287,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 From 5f4dc2cb37f58d37423388cc5b06692ea466d982 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jan 2022 13:17:30 -0700 Subject: [PATCH 04/11] cambio en regimen fiscal --- Empresas/80/Formatos/Factura.rdlc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Empresas/80/Formatos/Factura.rdlc b/Empresas/80/Formatos/Factura.rdlc index 7e6f9b2e0..a969b31c5 100644 --- a/Empresas/80/Formatos/Factura.rdlc +++ b/Empresas/80/Formatos/Factura.rdlc @@ -585,7 +585,7 @@ - Regimen General de Ley Personas Morales + Régimen Simplificado de Confianza