diff --git a/App_Code/CFDITimbre.vb b/App_Code/CFDITimbre.vb index 5dc887e7c..c1f2e0bf7 100644 --- a/App_Code/CFDITimbre.vb +++ b/App_Code/CFDITimbre.vb @@ -13,7 +13,8 @@ Public Class CFDITimbre Public Property RetencionesLocales As List(Of CFDIRetencionesLocales) Public Property TrasladosLocales As List(Of CFDITrasladosLocales) Public Property Nomina As CFDINomina - Public Property ComplementoPagos As CFDIComplementoPagos + Public Property ComplementoPagos As CFDIComplementoPago + Public Property ComplementoPagos20 As CFDIComplementoPagos20 Public Property Complementos As CFDIComplementos Public Property Timbrado As Boolean Public Property IStimbreFiniquito As Boolean @@ -115,7 +116,8 @@ Public Class CFDITimbre Receptor = New CFDIReceptor RetencionesLocales = New List(Of CFDIRetencionesLocales) TrasladosLocales = New List(Of CFDITrasladosLocales) - ComplementoPagos = New CFDIComplementoPagos + ComplementoPagos = New CFDIComplementoPago + ComplementoPagos20 = New CFDIComplementoPagos20 Complementos = New CFDIComplementos End Sub @@ -437,7 +439,111 @@ End Class -Public Class CFDIComplementoPagos +Public Class CFDIComplementoPagos20 + + Public Property TotalTrasladosBaseExento As Decimal = 0 + Public Property TotalRetencionesIVA As Decimal = 0 + Public Property TotalRetencionesISR As Decimal = 0 + Public Property ComplementoPagos As List(Of CFDIComplementoPago) + + Public ReadOnly Property MontoTotalPagos As Decimal + Get + Return (From c In ComplementoPagos Select c.Monto * c.TipoCambioP).Sum() + End Get + End Property + Public ReadOnly Property TotalTrasladosBaseIVA0 As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.0 Select c.BaseMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + Public ReadOnly Property TotalTrasladosImpuestoIVA0 As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.0 Select c.ImporteMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + Public ReadOnly Property TotalTrasladosBaseIVA8 As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + Public ReadOnly Property TotalTrasladosImpuestoIVA8 As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + Public ReadOnly Property TotalTrasladosBaseIVA16 As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + Public ReadOnly Property TotalTrasladosImpuestoIVA16 As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + Public ReadOnly Property TotalRetencionesIEPS As Decimal + Get + Dim Ret As Decimal = 0 + For Each cfd As CFDIComplementoPago In ComplementoPagos + Ret = Ret + ((From c In cfd.Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum() * cfd.TipoCambioP) + Next + Return Ret.RoundSQL() + End Get + End Property + + Sub New() + + ComplementoPagos = New List(Of CFDIComplementoPago) + + End Sub + + 'Public ReadOnly Property Totales As CFDIComplementoPagosTotales + ' Get + ' Dim tRetorno As New CFDIComplementoPagosTotales + ' tRetorno.MontoTotalPagos = (From c In DocumentosRelacionados Select c.ImpPagadoMN).Sum() + + ' tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.BaseMN).Sum() + ' tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum() + ' tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum() + + ' tRetorno.TotalTrasladosImpuestoIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Importe).Sum() + ' tRetorno.TotalTrasladosImpuestoIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum() + ' tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum() + + ' tRetorno.TotalRetencionesIEPS = (From c In Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum() + + ' Return tRetorno + ' End Get + 'End Property +End Class + + + +Public Class CFDIComplementoPago Public Property FechaPago As Date Public Property FormaDePagoP As String = "" Public Property MonedaP As String = "" @@ -455,24 +561,24 @@ Public Class CFDIComplementoPagos Public Property SelloPago As String = "" Public Property DocumentosRelacionados As List(Of CFDIComplementoPagosDocsRelacionados) Public Property Impuestos As List(Of CFDIConceptosImpuestos) - Public ReadOnly Property Totales As CFDIComplementoPagosTotales - Get - Dim tRetorno As New CFDIComplementoPagosTotales - tRetorno.MontoTotalPagos = (From c In DocumentosRelacionados Select c.ImpPagadoMN).Sum() + 'Public ReadOnly Property Totales As CFDIComplementoPagosTotales + ' Get + ' Dim tRetorno As New CFDIComplementoPagosTotales + ' tRetorno.MontoTotalPagos = (From c In DocumentosRelacionados Select c.ImpPagadoMN).Sum() - tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.BaseMN).Sum() - tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum() - tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum() + ' tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.BaseMN).Sum() + ' tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum() + ' tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum() - tRetorno.TotalTrasladosImpuestoIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Importe).Sum() - tRetorno.TotalTrasladosImpuestoIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum() - tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum() + ' tRetorno.TotalTrasladosImpuestoIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Importe).Sum() + ' tRetorno.TotalTrasladosImpuestoIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum() + ' tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum() - tRetorno.TotalRetencionesIEPS = (From c In Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum() + ' tRetorno.TotalRetencionesIEPS = (From c In Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum() - Return tRetorno - End Get - End Property + ' Return tRetorno + ' End Get + 'End Property Public ReadOnly Property TotalImpuestosRetenidos As Decimal Get diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 3550ba3bb..73df9a9aa 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -3921,7 +3921,7 @@ Public Class ClsGenerales Public Function UpdateInvEntregaAlmacenRuta(CveEntregaAlmacen As Integer, CveDireccionOrigen As Integer, CveDireccionDestino As Integer, CveChofer As Integer, CveCamion As Integer, FechaEntrega As Date, CveEmpresa As Integer, Optional FechaLlegada As DateTime = MinFecha, Optional CveCamionRemolque1 As Integer = -1, Optional CveCamionRemolque2 As Integer = -1, Optional Distancia As Integer = -1, - Optional CveConfigAutoTransporte As Integer = -1) As Boolean + Optional CveConfigAutoTransporte As Integer = -1, Optional FolioReferencia As String = "-1", Optional Referencia As String = "-1", Optional CveSubProyecto As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_EntregaAlmacenRutaUpdate") @@ -3941,6 +3941,9 @@ Public Class ClsGenerales .Add("@CveCamionRemolque2", SqlDbType.Int).Value = CveCamionRemolque2 .Add("@Distancia", SqlDbType.Int).Value = Distancia .Add("@CveConfigAutoTransporte", SqlDbType.Int).Value = CveConfigAutoTransporte + .Add("@FolioReferencia", SqlDbType.VarChar).Value = FolioReferencia + .Add("@Referencia", SqlDbType.VarChar).Value = Referencia + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto End With diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 318ff16ff..03c1b3216 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -5875,6 +5875,27 @@ Public Class ClsInventarios End Function #End Region +#Region "JAM - POG" + Public Function GetJAM_BASF_POG(Fecha As Date) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_JAM_BASF_POG") + With SqlAdapter.SelectCommand.Parameters + .Add("@Fecha", SqlDbType.Date).Value = Fecha + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las existencias.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + + End Function +#End Region + #Region " IDisposable Support " ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index 552e8a6e6..97b0491bc 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -859,7 +859,6 @@ Public Class ClsNominas DataAdapter("PA_Nom_NominasDetallesRemove") SqlAdapter.SelectCommand.Parameters.Add("@CveNominaDetalle", SqlDbType.Int).Value = CveNominaDetalle - Try SqlAdapter.Fill(Data) Retorno = True @@ -1063,12 +1062,15 @@ Public Class ClsNominas End Function - Public Function RemoveNom_Nominas(CveNomina As Integer) As Boolean + Public Function RemoveNom_Nominas(CveNomina As Integer, EliminarTodo As Boolean, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Nom_NominasRemove") SqlAdapter.SelectCommand.Parameters.Add("@CveNomina", SqlDbType.Int).Value = CveNomina + ' + SqlAdapter.SelectCommand.Parameters.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + SqlAdapter.SelectCommand.Parameters.Add("@EliminarTodo", SqlDbType.Int).Value = If(EliminarTodo, 1, 0) Try SqlAdapter.Fill(Data) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index d46e13536..a39e1e10f 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -3826,9 +3826,9 @@ Namespace Modelos End If If factura.TipoDocto = "Rem" AndAlso factura.ServicioDomicilio Then - Dim CveMovimientoSalida As Integer = GenerarMovimientoAlmacenServicioDomicilio(ObjInventario, factura, DtInventario, factura.CveAlmacenServicioDomicilio, 8, factura.CveMoneda, factura.CveVenta, "Modelos/SD1") + Dim CveMovimientoSalida As Integer = GenerarMovimientoAlmacenServicioDomicilio(ObjInventario, factura, DtInventario, factura.CveAlmacenServicioDomicilio, 8, factura.CveMoneda, factura.CveVenta, "Modelos/SD1", True, ObjConta) If CveMovimientoSalida > 0 Then - If Not (GenerarMovimientoAlmacenServicioDomicilio(ObjInventario, factura, DtInventario, factura.CveAlmacenTraspasoDestino, 9, factura.CveMoneda, factura.CveVenta, "Modelos/SD2", CveMovimientoRelacionado:=CveMovimientoSalida) > 0) Then + If Not (GenerarMovimientoAlmacenServicioDomicilio(ObjInventario, factura, DtInventario, factura.CveAlmacenTraspasoDestino, 9, factura.CveMoneda, factura.CveVenta, "Modelos/SD2", True, ObjConta, CveMovimientoRelacionado:=CveMovimientoSalida) > 0) Then OcurrioError = True End If @@ -6211,7 +6211,7 @@ Namespace Modelos Return Not ErrorCancelar End Function - Private Function CancelarMovimientosRemision(CveRemision As Integer, CveAlmacen As Integer, CveAlmacenDestino As Integer, DtMovDetalle As DataTable, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios) As Boolean + Private Function CancelarMovimientosRemision(CveRemision As Integer, CveAlmacen As Integer, CveAlmacenDestino As Integer, DtMovDetalle As DataTable, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad) As Boolean Dim ErrorCancelar As Boolean = False Dim CveMovimientoSalidaDevRem As Integer = 0 @@ -6219,13 +6219,14 @@ Namespace Modelos Dim CveMovimientoEntradaDevRem As Integer = 0 Dim FolioMovimientoEntradaDevRem As Integer = 0 + Dim Fecha As DateTime = Now 'SALIDA DE (ENTREGA POR ADELANTADO) - CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacen, 8, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR1") + CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacen, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR1") FolioMovimientoSalidaDevRem = ObjInventario.Folio 'ENTRADA A (ALMACEN GENERAL) - CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR2") + CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR2") FolioMovimientoEntradaDevRem = ObjInventario.Folio If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then @@ -6271,11 +6272,29 @@ Namespace Modelos Exit For End If Next + + Dim ValorInventario As Decimal = DtEntradaDetalle.SUMD("Total") + Dim EsContabilizable As Boolean = False + Dim Concepto As String = "Cancelación" + Dim CvePrePoliza = ObjConta.AddPrePolizas("Mod/CancExAR1", 74, DtEntradaDetalle.SUMD("Total"), DtEntradaDetalle.SUMD("Total"), 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + Dim tCveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveSubProyecto").ToEntero + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorInventario, Concepto, 68, Concepto, Fecha, 0, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimientoSalidaDevRem, ImporteMX:=ValorInventario, CveSubProyecto:=tCveSubProyecto, Contabilizable:=EsContabilizable) Then + ErrorCancelar = True + End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorInventario, Concepto, 68, Concepto, Fecha, 0, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimientoEntradaDevRem, ImporteMX:=ValorInventario, Contabilizable:=EsContabilizable) Then + ErrorCancelar = True + End If + + Else ErrorCancelar = True End If End If + + If Not ErrorCancelar Then If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveRemision) Then ErrorCancelar = True @@ -10355,6 +10374,7 @@ Namespace Modelos Public Property CveCliente As Integer Public Property Nombre As String Public Property NombreComercial As String + Public Property RegimenSociedad As String Public Property Codigo As String Public Property Direccion As String Public Property NoExt As String diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 4c8169ca6..cf660b490 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -1097,19 +1097,23 @@ Public Class Timbrado 'como registra un peso por cada fatura que se cancele, se tiene que multiplicar por el numero de facturas, para que se pueda emitir el timbre If dttpagos IsNot Nothing AndAlso dttpagos.Rows.Count > 0 Then ImporteCancelacion = ImporteCancelacion * dttpagos.Rows.Count - Timbre.ComplementoPagos.CtaOrdenante = CuentaPago - Timbre.ComplementoPagos.CtaBeneficiario = CuentaBeneficiario - Timbre.ComplementoPagos.FechaPago = FechaPago - Timbre.ComplementoPagos.FormaDePagoP = FormaPago - Timbre.ComplementoPagos.MonedaP = MonedaPago - Timbre.ComplementoPagos.Monto = Monto.RoundSQL - Timbre.ComplementoPagos.TipoCambioP = TipoCambioP + + Dim docPago As New CFDIComplementoPago + + docPago.CtaOrdenante = CuentaPago + docPago.CtaBeneficiario = CuentaBeneficiario + docPago.FechaPago = FechaPago + docPago.FormaDePagoP = FormaPago + docPago.MonedaP = MonedaPago + docPago.Monto = Monto.RoundSQL + docPago.TipoCambioP = TipoCambioP Dim VentaFolioFiscal, VentaSerie, VentaFolio, VentaAbreviaturaSAT, VentaMetodoPago, ObjetoImpuesto As String - Dim VentaImportePago, VentaImportePagoMN, VentaImporteSaldoInsoluto, VentaImporteSaldoAnterior, VentaTipoCambio, VentaTipoCambioMN, PorcentajeIVA, PorcentajeIEPS As Decimal + Dim VentaImportePago, VentaImportePagoMN, VentaImporteSaldoInsoluto, VentaImporteSaldoAnterior, VentaTipoCambio, PorcentajeIVA, PorcentajeIEPS, Equivalencia As Decimal Dim VentaNumParcialidad As Integer + If dttpagos IsNot Nothing AndAlso dttpagos.Rows.Count > 0 Then For Each dr As Data.DataRow In dttpagos.Rows @@ -1131,11 +1135,14 @@ Public Class Timbrado '' si la moneda es igual, se omite el tipo de cambio de la venta If MonedaPago = VentaAbreviaturaSAT Then VentaTipoCambio = 1 - VentaTipoCambioMN = 1 + Equivalencia = 1 'condiciones especiales para el pago en pesos, facturas en moneda extranjera ElseIf MonedaPago = "MXN" AndAlso VentaAbreviaturaSAT <> "MXN" Then - VentaTipoCambioMN = VentaTipoCambio - VentaTipoCambio = (1 / VentaTipoCambio).RoundSQL(6) + VentaTipoCambio = VentaTipoCambio.RoundSQL(6) + Equivalencia = (1 / VentaTipoCambio).RoundSQL(6) + ElseIf MonedaPago = "USD" AndAlso VentaAbreviaturaSAT <> "USD" Then + VentaTipoCambio = VentaTipoCambio.RoundSQL(6) + Equivalencia = VentaTipoCambio End If ' For Each drr As Data.DataRow In DtFacturasPagadas.Rows @@ -1145,11 +1152,11 @@ Public Class Timbrado .MonedaDR = VentaAbreviaturaSAT, .MetodoDePagoDR = VentaMetodoPago, .ImpPagado = VentaImportePago, - .ImpPagadoMN = (VentaImportePago / VentaTipoCambio).RoundSQL, + .ImpPagadoMN = (VentaImportePago * TipoCambioP).RoundSQL, .ImpSaldoInsoluto = VentaImporteSaldoInsoluto, .ImpSaldoAnt = VentaImporteSaldoAnterior, .TipoCambioDR = VentaTipoCambio, - .EquivalenciaDR = VentaTipoCambio, + .EquivalenciaDR = Equivalencia, .NumParcialidad = VentaNumParcialidad, .ObjetoImpuesto = ObjetoImpuesto} 'If(drr("MetodoPago").ToString = "PUE", 0, drr("NumParcialidad").ToString.ToEntero)} @@ -1160,17 +1167,18 @@ Public Class Timbrado .TasaOCuota = drp("PorcentajeImpuesto").ToString().ToDecimal, .Impuesto = drp("TipoImpuesto").ToString, .Importe = drp("Importe").ToString().ToDecimal.RoundSQL, - .BaseMN = (drp("Base").ToString.ToDecimal / VentaTipoCambio).RoundSQL(6), - .ImporteMN = (drp("Importe").ToString.ToDecimal * VentaTipoCambio).RoundSQL(6) + .BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(2), + .ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(2) } ) Next - Timbre.ComplementoPagos.DocumentosRelacionados.Add(doc) + docPago.DocumentosRelacionados.Add(doc) Next + Timbre.ComplementoPagos20.ComplementoPagos.Add(docPago) End If 'If drr("IVA").ToString.ToDouble > 0 Then @@ -4113,24 +4121,24 @@ Public Class Timbrado Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales() 'Totales Generales - Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos.Totales.MontoTotalPagos.RoundSQL + Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos20.MontoTotalPagos.RoundSQL - Totales.TotalTrasladosBaseIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA16.RoundSQL + Totales.TotalTrasladosBaseIVA16 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA16.RoundSQL Totales.TotalTrasladosBaseIVA16Specified = Totales.TotalTrasladosBaseIVA16 > 0 - Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA16.RoundSQL + Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA16.RoundSQL Totales.TotalTrasladosImpuestoIVA16Specified = Totales.TotalTrasladosImpuestoIVA16 > 0 - Totales.TotalTrasladosBaseIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8.RoundSQL + Totales.TotalTrasladosBaseIVA8 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA8.RoundSQL Totales.TotalTrasladosBaseIVA8Specified = Totales.TotalTrasladosBaseIVA8 > 0 - Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA8.RoundSQL + Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA8.RoundSQL Totales.TotalTrasladosImpuestoIVA8Specified = Totales.TotalTrasladosImpuestoIVA8 > 0 - Totales.TotalTrasladosBaseIVA0 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA0.RoundSQL + Totales.TotalTrasladosBaseIVA0 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA0.RoundSQL Totales.TotalTrasladosBaseIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0 Totales.TotalTrasladosImpuestoIVA0 = 0 Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0 ' si hay base > 0, debe de ponerse aunque sea en cero - If ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIEPS > 0 Then - Totales.TotalRetencionesIEPS = ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIEPS.RoundSQL + If ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS > 0 Then + Totales.TotalRetencionesIEPS = ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS.RoundSQL Totales.TotalRetencionesIEPSSpecified = True Else Totales.TotalRetencionesIEPSSpecified = False @@ -4214,7 +4222,7 @@ Public Class Timbrado For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones ComPag.Pago(0).ImpuestosP(0).RetencionesP(x) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPRetencionP() ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImpuestoP = Ret.Impuesto - ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImporteP = Ret.Importe + ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImporteP = Ret.ImporteMN x += 1 Next End If @@ -5066,88 +5074,92 @@ Public Class Timbrado If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then - cfdi.Pago20Totales(ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIVA, - ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesISR, - ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIEPS, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA16, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA16, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA8, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA0, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA0, - ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseExento, - ObjCFDITimbre.ComplementoPagos.Totales.MontoTotalPagos) - cfdi.Pago20(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) + cfdi.Pago20Totales(ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIVA, + ObjCFDITimbre.ComplementoPagos20.TotalRetencionesISR, + ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA16, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA16, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA8, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA8, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA0, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA0, + ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseExento, + ObjCFDITimbre.ComplementoPagos20.MontoTotalPagos) + + For Each docp As CFDIComplementoPago In ObjCFDITimbre.ComplementoPagos20.ComplementoPagos + + cfdi.Pago20(docp.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"), + docp.FormaDePagoP, + docp.MonedaP, + docp.TipoCambioP, + docp.Monto, + docp.NumOperacion, + docp.RfcEmisorCtaOrd, + docp.NomBancoOrdExt, + docp.CtaOrdenante, + docp.RfcEmisorCtaBen, + docp.CtaBeneficiario, + docp.TipoCadPago, + docp.CertPago, + docp.CadPago, + docp.SelloPago) - If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then + If docp.DocumentosRelacionados.Count > 0 Then - For Each doc As CFDIComplementoPagosDocsRelacionados In ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados - cfdi.Pago20DoctoRelacionado(doc.IdDocumento, - doc.Serie, - doc.Folio, - doc.MonedaDR, - doc.EquivalenciaDR, - doc.NumParcialidad, - doc.ImpSaldoAnt, - doc.ImpPagado, - doc.ImpSaldoInsoluto, - doc.ObjetoImpuesto) - If doc.Impuestos IsNot Nothing Then + For Each doc As CFDIComplementoPagosDocsRelacionados In docp.DocumentosRelacionados + cfdi.Pago20DoctoRelacionado(doc.IdDocumento, + doc.Serie, + doc.Folio, + doc.MonedaDR, + doc.EquivalenciaDR, + doc.NumParcialidad, + doc.ImpSaldoAnt, + doc.ImpPagado, + doc.ImpSaldoInsoluto, + doc.ObjetoImpuesto) + If doc.Impuestos IsNot Nothing Then - ''retenciones - If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then - Dim j As Integer = 0 - For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R") - If docimp.TrasladooRetencion = "R" Then - cfdi.Pago20RetencionDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe) - End If - j += 1 - Next + ''retenciones + If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then + Dim j As Integer = 0 + For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R") + If docimp.TrasladooRetencion = "R" Then + cfdi.Pago20RetencionDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe) + End If + j += 1 + Next + End If + + ''traslados + If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then + Dim j As Integer = 0 + For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T") + If docimp.TrasladooRetencion = "T" Then + cfdi.Pago20TrasladoDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe) + End If + j += 1 + Next + End If End If - ''traslados - If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then - Dim j As Integer = 0 - For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T") - If docimp.TrasladooRetencion = "T" Then - cfdi.Pago20TrasladoDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe) - End If - j += 1 - Next - End If + Next + + If (docp.Retenciones).Count > 0 Then + For Each Ret As CFDIRetenciones In docp.Retenciones + cfdi.Pago20RetencionP(Ret.Impuesto, Ret.ImporteMN) + Next End If - Next - - If (ObjCFDITimbre.ComplementoPagos.Retenciones).Count > 0 Then - For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones - cfdi.Pago20RetencionP(Ret.Impuesto, Ret.ImporteMN) - Next + If docp.Traslados.Count > 0 Then + For Each Tra As CFDITraslados In (docp.Traslados) + cfdi.Pago20TrasladoP(Tra.BaseMN, Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.ImporteMN) + Next + End If End If + Next - If ObjCFDITimbre.ComplementoPagos.Traslados.Count > 0 Then - - For Each Tra As CFDITraslados In (ObjCFDITimbre.ComplementoPagos.Traslados) - cfdi.Pago20TrasladoP(Tra.BaseMN, Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.ImporteMN) - Next - End If - End If End If #End Region diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 60152d3f9..1d54b6c32 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -2205,7 +2205,7 @@ Partial Class Compras_Compras If DIOTCveTipoOperacion.Contiene(0, 3) Then ' 85 - Otros DdlRetIVAConcepto.Items.Insert(0, New ListItem("Honorarios/Serv. Prof.", "1")) DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) - DdlRetIVAConcepto.Items.Insert(0, New ListItem("Fletes P.F.", "2")) + DdlRetIVAConcepto.Items.Insert(0, New ListItem("Fletes P.M.", "3")) DdlRetIVAConcepto.Items.Add(New ListItem("General", "6")) End If diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 3f8712f7d..052b64ca0 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1865,6 +1865,11 @@ Partial Class PopUpVerFactura Dim SelloCFDi As String = "" Dim SelloSAT As String = "" Dim TipoDocto As String = "" + Dim PermisoSCTR1 As String = "" + Dim PermisoSCTR2 As String = "" + Dim ConfATR1 As String = "" + Dim ConfATR2 As String = "" + Dim ObjInv As New ClsGenerales @@ -1875,6 +1880,14 @@ Partial Class PopUpVerFactura SerieFolio = Dr("SerieFolio").ToString Telefono = Dr("FiguraTelefono").ToString TipoDocto = Dr("TipoDocto").ToString + + If UsuarioActual.CveEmpresa = 13 Then + PermisoSCTR1 = Dr("PermisoSCTR1").ToString + PermisoSCTR2 = Dr("PermisoSCTR2").ToString + ConfATR1 = Dr("ConfATR1").ToString + ConfATR2 = Dr("ConfATR2").ToString + End If + End If End If End If @@ -2244,9 +2257,18 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("RemolquePlaca1", RemolquePlaca1)) params.Add(New ReportParameter("RemolqueSubtimo1", RemolqueSubtimo1)) + params.Add(New ReportParameter("RemolquePlaca2", RemolquePlaca2)) params.Add(New ReportParameter("RemolqueSubtimo2", RemolqueSubtimo2)) + If UsuarioActual.CveEmpresa = 13 Then + params.Add(New ReportParameter("PermisoSCTRemolque1", PermisoSCTR1)) + params.Add(New ReportParameter("PermisoSCTRemolque2", PermisoSCTR2)) + params.Add(New ReportParameter("ConfATR1", ConfATR1)) + params.Add(New ReportParameter("ConfATR2", ConfATR2)) + End If + + ' [@CertificadoContribuyente] '[@CadenaOriginal] diff --git a/Empresas/1/Formatos/Factura.rdlc b/Empresas/1/Formatos/Factura.rdlc index 4b7164339..677f609ca 100644 --- a/Empresas/1/Formatos/Factura.rdlc +++ b/Empresas/1/Formatos/Factura.rdlc @@ -1,4478 +1,4490 @@ - - - - - - true - - - - - EXPLORACIONES MINERAS DEL DESIERTO S.A. - - - - - - - - - DE C.V. RFC: EMD950206SRA - - - - - - - - - Tipo de Comprobante: I - Ingreso - - - - - - - - - Del Cobre No. 95 Col. Parque Industrial Hermosillo, Sonora. México, C.P. 83299 - - - - - - - - - Tel. 6622510249 - - - - - - - - - Régimen Fiscal: 601 - General de Ley Personas Morales - - - - - - - Textbox4 - 1.83923in - 1.10377in - 6.21276in - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - Logo1 - FitProportional - 0.65302cm - 2.88998cm - 3.84225cm - 1 - - - - - - true - true - - - - - Nombre: - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteNombre.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 1.50708cm - - - 1.63629cm - - - 1.29788cm - - - 1.66402cm - - - 8.32569cm - - - 1.42482cm - - - 1.73271cm - - - 2.4815cm - - - - - 0.74994cm - - - - - true - - - - - Cantidad - - - - - - - Textbox34 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Codigo - - - - - - - Textbox15 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - C.U. SAT - - - - - - - Textbox75 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Clave - - - - - - - - - Producto - - - - - - - Textbox82 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - - - - - Descripción - - - - - - - Textbox79 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - - - - - P.U. - - - - - - - Textbox84 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Impuestos - - - - - - - Textbox91 - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - - - - - Importe - - - - - - - - - - - - - - - - Black - - - - Black - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.48536cm - - - - - true - true - - - - - =Fields!Cantidad.Value - - - - - - - Cantidad1 - - - - #4f81bd - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!SATClaveProdServ.Value - - - - - - - SATClaveProdServ - - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!SATClaveUM.Value - - - - - - - SATClaveUM - - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Codigo.Value - - - - - - - Codigo - - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PS.Value & " " & Fields!Obs.Value - - - - - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PU.Value - - - - - - - PU1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!ImporteIVA.Value - - - - - - - ImporteIVA - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Cantidad.Value*Fields!PU.Value - - - - - - - Textbox88 - - - - #4f81bd - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - - - - - - - - - - - - - - - - - After - - - - - - - DsOC - 6.28717cm - 0.44641cm - 1.2353cm - 20.06999cm - 4 - - - - - - true - true - - - - - =Parameters!ClienteDatoExtra1.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 3.15414cm - - - - - 0.27059cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.38492cm - - - - - true - true - - - - - =Replace(Parameters!Moneda.Value,"Pesos","Peso mexicano") - - - - - - - Textbox47 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.52863cm - - - true - true - - - - - =Fields!ImpuestoLocal.Value - - - - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - 2.52863cm - - - true - true - - - - - Moneda - - - - - - White - 2pt - 2pt - 2pt - 2pt - - - - - Before - - - - DataSet1 - 7.71422cm - 14.83363cm - 0.65551cm - 5.68277cm - 6 - - - - - - true - true - - - - - Folio Factura - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) - - - - - - - Textbox3 - 2.79612cm - 17.39754cm - 0.41303cm - 3.066cm - 8 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!Fecha.Value - - - - - - - Textbox12 - 3.22326cm - 17.39754cm - 0.42714cm - 3.066cm - 10 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Lugar de Expedición - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - 83299 - - - - - - - Textbox55 - 3.75976cm - 17.39754cm - 0.46681cm - 3.05452cm - 12 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Forma de Pago - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FormaPago.Value - - - - - - - Textbox3 - 3.0229cm - 4.48098cm - 0.42944cm - 6.76133cm - 14 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Método de Pago - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) - - - - - - - Textbox3 - 3.46998cm - 4.48098cm - 0.40122cm - 6.76133cm - 16 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Moneda - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!Moneda.Value - - - - - - - - Tipo de Cambio - - - - - - - - =Parameters!TipoCambio.Value - - - - - - - - - - - Textbox3 - 3.95234cm - 4.48098cm - 0.43297cm - 6.76133cm - 18 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Datos del Cliente - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - R.F.C.: - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteRFC.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Uso CFDI: - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!UsoCFDI.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Domicilio: - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteDireccion.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - OBSERVACIONES GENERALES: - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!Observaciones.Value - - - - - - - Textbox3 - 7.54478cm - 5.057cm - 0.44003cm - 9.60024cm - 27 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ImporteLetra.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Importe Con Letra: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - External - =Parameters!QR.Value - FitProportional - 3.40943in - 0.22897in - 1.14694in - 1.34784in - 30 - - - - - - true - true - - - - - Serie del Certificado del Emisor - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Folio Fiscal - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - No. de Serie del Certificado de l SAT - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha y Hora de Certificación - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!CertificadoContribuyente.Value - - - - - - - Textbox2 - 9.29495cm - 14.82657cm - 0.35889cm - 5.62289cm - 35 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FolioFiscal.Value - - - - - - - Textbox2 - 9.67148cm - 14.82657cm - 0.40122cm - 5.62289cm - 36 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!SerieCertificadoSAT.Value - - - - - - - Textbox2 - 10.05859cm - 14.82657cm - 0.3536cm - 5.62289cm - 37 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FechaCertificacion.Value - - - - - - - Textbox2 - 10.41395cm - 14.82657cm - 0.31479cm - 5.62289cm - 38 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Este documento es una representación impresa de un CFDI - - - - - - - - - Version 3.3 - - - - - - - Textbox19 - 4.27878in - 9.81667cm - 0.34009in - 4.18614in - 39 - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!SelloCFDI.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Sello Digital del CFDI - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!SelloSAT.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Sello SAT - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!CadenaSAT.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Cadena Original del Complemento del Certificación Digital del SAT - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - true - true - - - - - CFDI Relacionados - - - - - - - Textbox5 - 0.14926cm - 0.9525cm - 0.46066cm - 18.98926cm - - - White - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Tipo Relación: - - - - - - - Textbox29 - 0.735cm - 4.71624cm - 0.41981cm - 5.31841cm - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!TipoRelacionTexto.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.42456cm - - - 2.05585cm - - - 3.03631cm - - - 7.7847cm - - - - - 0.44125cm - - - - - true - true - - - - - Folio - - - - - - - Textbox10 - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Fecha - - - - - - - Textbox12 - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox21 - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Folio Fiscal - - - - - - - Textbox11 - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.41479cm - - - - - true - true - - - - - =Fields!SerieFolio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Fecha.Value - - - - - - - Fecha - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet4 - 1.39643cm - 3.2145cm - 0.85604cm - 15.30142cm - 3 - - - - - - true - 14.54249cm - 0.07193cm - 2.25247cm - 20.37753cm - 46 - - =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) - - - - - - - 16.79496cm - - - - - - - Textbox3 - 0.04232cm - 16.34905cm - 0.6cm - 3.95896cm - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha Impresión: - - - - - - - - =Today - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0.5cm - 0.5cm - 1cm - 0.5cm - 1.27cm - + + + + + + + + DE C.V. RFC: EMD950206SRA + + + + + + + + + Tipo de Comprobante: I - Ingreso + + + + + + + + + Del Cobre No. 95 Col. Parque Industrial Hermosillo, Sonora. México, C.P. 83299 + + + + + + + + + Tel. 6622510249 + + + + + + + + + Régimen Fiscal: 601 - General de Ley Personas Morales + + + + + + + Textbox4 + 1.83923in + 1.10377in + 6.21276in + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo1 + FitProportional + 0.65302cm + 2.88998cm + 3.84225cm + 1 + + + + + + true + true + + + + + Nombre: + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 1.50708cm + + + 1.63629cm + + + 1.29788cm + + + 1.66402cm + + + 8.32569cm + + + 1.42482cm + + + 1.73271cm + + + 2.4815cm + + + + + 0.74994cm + + + + + true + + + + + Cantidad + + + + + + + Textbox34 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Codigo + + + + + + + Textbox15 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + C.U. SAT + + + + + + + Textbox75 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Clave + + + + + + + + + Producto + + + + + + + Textbox82 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Descripción + + + + + + + Textbox79 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + P.U. + + + + + + + Textbox84 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Impuestos + + + + + + + Textbox91 + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Importe + + + + + + + + + + + + + + + + Black + + + + Black + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.48536cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad1 + + + + #4f81bd + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!SATClaveProdServ.Value + + + + + + + SATClaveProdServ + + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!SATClaveUM.Value + + + + + + + SATClaveUM + + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " & Fields!Obs.Value + + + + + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!ImporteIVA.Value + + + + + + + ImporteIVA + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + #4f81bd + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsOC + 6.28717cm + 0.44641cm + 1.2353cm + 20.06999cm + 4 + + + + + + true + true + + + + + =Parameters!ClienteDatoExtra1.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 3.15414cm + + + + + 0.27059cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.38492cm + + + + + true + true + + + + + =Replace(Parameters!Moneda.Value,"Pesos","Peso mexicano") + + + + + + + Textbox47 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.52863cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + 2.52863cm + + + true + true + + + + + Moneda + + + + + + White + 2pt + 2pt + 2pt + 2pt + + + + + Before + + + + DataSet1 + 7.71422cm + 14.83363cm + 0.65551cm + 5.68277cm + 6 + + + + + + true + true + + + + + Folio Factura + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 2.79612cm + 17.39754cm + 0.41303cm + 3.066cm + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox12 + 3.22326cm + 17.39754cm + 0.42714cm + 3.066cm + 10 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Lugar de Expedición + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + 83299 + + + + + + + Textbox55 + 3.75976cm + 17.39754cm + 0.46681cm + 3.05452cm + 12 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Forma de Pago + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FormaPago.Value + + + + + + + Textbox3 + 3.0229cm + 4.48098cm + 0.42944cm + 6.76133cm + 14 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Método de Pago + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) + + + + + + + Textbox3 + 3.46998cm + 4.48098cm + 0.40122cm + 6.76133cm + 16 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Moneda + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Moneda.Value + + + + + + + + Tipo de Cambio + + + + + + + + =Parameters!TipoCambio.Value + + + + + + + + + + + Textbox3 + 3.95234cm + 4.48098cm + 0.43297cm + 6.76133cm + 18 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Datos del Cliente + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + R.F.C.: + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Uso CFDI: + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!UsoCFDI.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Domicilio: + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + OBSERVACIONES GENERALES: + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox3 + 7.54478cm + 5.057cm + 0.44003cm + 9.60024cm + 27 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ImporteLetra.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Importe Con Letra: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!QR.Value + FitProportional + 3.40943in + 0.22897in + 1.14694in + 1.34784in + 30 + + + + + + true + true + + + + + Serie del Certificado del Emisor + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio Fiscal + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + No. de Serie del Certificado de l SAT + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha y Hora de Certificación + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!CertificadoContribuyente.Value + + + + + + + Textbox2 + 9.29495cm + 14.82657cm + 0.35889cm + 5.62289cm + 35 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FolioFiscal.Value + + + + + + + Textbox2 + 9.67148cm + 14.82657cm + 0.40122cm + 5.62289cm + 36 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + + Textbox2 + 10.05859cm + 14.82657cm + 0.3536cm + 5.62289cm + 37 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FechaCertificacion.Value + + + + + + + Textbox2 + 10.41395cm + 14.82657cm + 0.31479cm + 5.62289cm + 38 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Este documento es una representación impresa de un CFDI + + + + + + + + + Version 3.3 + + + + + + + Textbox19 + 4.27878in + 9.81667cm + 0.34009in + 4.18614in + 39 + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SelloCFDI.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Sello Digital del CFDI + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SelloSAT.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Sello SAT + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!CadenaSAT.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Cadena Original del Complemento del Certificación Digital del SAT + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 0.14926cm + 0.9525cm + 0.46066cm + 18.98926cm + + + White + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox29 + 0.735cm + 4.71624cm + 0.41981cm + 5.31841cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!TipoRelacionTexto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.42456cm + + + 2.05585cm + + + 3.03631cm + + + 7.7847cm + + + + + 0.44125cm + + + + + true + true + + + + + Folio + + + + + + + Textbox10 + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox21 + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox11 + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.41479cm + + + + + true + true + + + + + =Fields!SerieFolio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Fecha.Value + + + + + + + Fecha + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet4 + 1.39643cm + 3.2145cm + 0.85604cm + 15.30142cm + 3 + + + + + + true + 14.54249cm + 0.07193cm + 2.25247cm + 20.37753cm + 46 + + =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) + + + + + + + 16.79496cm + + + + + + + Textbox3 + 0.04232cm + 16.34905cm + 0.6cm + 3.95896cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + + + + + =Today + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + @@ -1744,9 +1744,51 @@ + + + =Parameters!PermisoSCTRemolque1.Value + + + + + + + =Parameters!ConfATR1.Value + + + + + + + =Parameters!PermisoSCTRemolque2.Value + + + + + + + =Parameters!ConfATR2.Value + + + +