From b6b8936144a4a7afe9ba4e1429f2270deae3d976 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 20 Mar 2020 10:41:35 -0700 Subject: [PATCH 1/8] Efacturas Error agregar complemento fechas 1/1/1 --- Compras/eFacturas.aspx.vb | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 9b8cfecce..e89aec644 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -2842,16 +2842,24 @@ Partial Class Compras_eFacturas Dim FechaDocumento As Date = GvRowF.DataKey("FechaPago").ToString.ToDate Dim FechaDoRecibo As Date = GvRowF.DataKey("Fecha").ToString.ToDate + Dim CveIEDocumento As Integer = GvRowF.DataKey("CveIE").ToEntero - Dim FT1 As Date = FechaDocumento.AddDays(-6) - Dim FT2 As Date = FechaDocumento.AddDays(7) + If CveIEDocumento > 0 And FechaDocumento > New Date(1, 1, 1) Then + Dim FT1 As Date = FechaDocumento - If Not (FechaDoRecibo >= FT1 And FechaDoRecibo < FT2) Then + If FechaDocumento <> New Date(1, 1, 1) Then + FT1 = FechaDocumento.AddDays(-6) + End If - BtnVincularPago.Visible = False - MSGComplemento = MSGComplemento & " Existen mas de 3 días de diferencia entre la fecha del documento y la fecha de complemento. " + Dim FT2 As Date = FechaDocumento.AddDays(7) - Exit For + If Not (FechaDoRecibo >= FT1 And FechaDoRecibo < FT2) Then + + BtnVincularPago.Visible = False + MSGComplemento = MSGComplemento & " Existen mas de 3 días de diferencia entre la fecha del documento y la fecha de complemento. " + + Exit For + End If End If Next From eaeb9e9eef83c3b89b0f2539b195e1b1167c5d0e Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Mar 2020 18:53:03 -0700 Subject: [PATCH 2/8] . --- Empresas/Grales/Formatos/RepProductosServicios.rdlc | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Empresas/Grales/Formatos/RepProductosServicios.rdlc b/Empresas/Grales/Formatos/RepProductosServicios.rdlc index f3e1f32c1..1a7711280 100644 --- a/Empresas/Grales/Formatos/RepProductosServicios.rdlc +++ b/Empresas/Grales/Formatos/RepProductosServicios.rdlc @@ -65,7 +65,7 @@ - 0.6cm + 0.49417cm @@ -79,7 +79,6 @@ =Fields!Cantidad.Value @@ -116,7 +115,6 @@ =Fields!SubTotal.Value @@ -153,7 +151,6 @@ =Fields!Descuento.Value @@ -190,7 +187,6 @@ =Fields!IVA.Value @@ -227,7 +223,6 @@ =Fields!Total.Value @@ -461,7 +456,6 @@ =Fields!GPO.Value @@ -488,7 +482,7 @@ DataSet1 0.06614cm - 1.2cm + 1.09417cm 18.9786cm - 0.47244in + 0.43077in - - true - true - - - - - Fecha Inicio: - - - - - - - - - =IIF(Parameters!FechaInicio.Value = "-1","",Parameters!FechaInicio.Value) - - - - - - - - - - - - - - - Fecha Fin: - - - - - - - - - =IIF(Parameters!FechaFin.Value = "-1","",Parameters!FechaFin.Value) - - - - Textbox13 - 0.0259cm - 15.579cm - 2.18834cm - 3.53188cm - 2 - - - 2pt - 2pt - 2pt - 2pt - - External =Parameters!LogoPath.Value @@ -673,7 +588,7 @@ 0.06614cm 2.22362cm 2.33715cm - 3 + 2 @@ -700,7 +615,7 @@ 0.06614cm 0.6cm 18.9786cm - 4 + 3 From 58e74bfbf27686cb7477336a9bc93ca6f2a73892 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Tue, 24 Mar 2020 10:52:21 -0700 Subject: [PATCH 4/8] Pago Grupos Liberacion General --- App_Code/ClsBancos.vb | 9 +- App_Code/ClsGenerales.vb | 14 +- Bancos/PagoElectronicoGrupos.aspx.vb | 623 +- Bancos/PolizaCheque.aspx | 2 +- Bancos/PolizaCheque.aspx.vb | 41 +- Compras/Compras.aspx.vb | 8 +- Compras/Proveedores.aspx | 13 +- Compras/Proveedores.aspx.vb | 14 +- Compras/ReembolsosComprobaciones.aspx.vb | 16 + Empresas/7/Formatos/Factura.rdlc | 10221 +++++++++++---------- RH/Personal.aspx | 34 +- RH/Personal.aspx.vb | 15 +- vwd.webinfo | 6 + 13 files changed, 5587 insertions(+), 5429 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index b94097442..fb92a81d1 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -2864,7 +2864,7 @@ Public Class ClsBancos Return Retorno End Function - Public Function GetLayoutPagosEnviados(CveCuenta As Integer, Estatus As Integer, Tipo As String, FechaI As String, FechaF As String) As Boolean + Public Function GetLayoutPagosEnviados(CveCuenta As Integer, Estatus As Integer, Tipo As String, FechaI As String, FechaF As String, Optional PorGrupos As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Banc_LayoutPagosEnviados") @@ -2875,6 +2875,7 @@ Public Class ClsBancos .Add("@Tipo", SqlDbType.VarChar).Value = Tipo .Add("@FechaI", SqlDbType.VarChar).Value = FechaI .Add("@FechaF", SqlDbType.VarChar).Value = FechaF + .Add("@PorGrupos", SqlDbType.Bit).Value = PorGrupos End With Try @@ -2906,7 +2907,7 @@ Public Class ClsBancos Return Retorno End Function - Public Function AddLayoutEnvios(Archivo As String, Fecha As Date, CveCuenta As Integer) As Integer + Public Function AddLayoutEnvios(Archivo As String, Fecha As Date, CveCuenta As Integer, Optional PorGrupos As Boolean = False) As Integer Dim Retorno = -1 DataAdapter("PA_Banc_LayoutEnviosAdd") @@ -2915,6 +2916,7 @@ Public Class ClsBancos .Add("@Archivo", SqlDbType.VarChar).Value = Archivo .Add("@Fecha", SqlDbType.DateTime).Value = Fecha .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta + .Add("@PorGrupos", SqlDbType.Bit).Value = PorGrupos .Add("@CveLayoutEnvio", SqlDbType.Int).Direction = ParameterDirection.Output End With @@ -3113,7 +3115,7 @@ Public Class ClsBancos Return Retorno End Function - Public Function GetLayoutProveedores(CveCuenta As Integer, CveEmpresa As Integer) As Boolean + Public Function GetLayoutProveedores(CveCuenta As Integer, CveEmpresa As Integer, Optional PorGrupos As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Banc_LayoutProveedores") @@ -3121,6 +3123,7 @@ Public Class ClsBancos With SqlAdapter.SelectCommand.Parameters .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@PorGrupos", SqlDbType.Bit).Value = PorGrupos End With Try diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 8121ebca4..60e55b897 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -1388,7 +1388,7 @@ Public Class ClsGenerales End Function Public Function AddCuentasDepositos(BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, RefCrediProveedor As String, CveUsuario As Integer, CveMoneda As Integer, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveColectiva As Integer = -1, Optional CveUsuarioModifico As Integer = -1, - Optional Correo As String = "") As Boolean + Optional Correo As String = "", Optional BBVAAlias As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_CuentasDepositosAdd") @@ -1410,7 +1410,8 @@ Public Class ClsGenerales .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@RefCrediProveedor", SqlDbType.VarChar).Value = RefCrediProveedor .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico - .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@BBVAAlias", SqlDbType.VarChar).Value = BBVAAlias End With @@ -1453,7 +1454,7 @@ Public Class ClsGenerales Return Retorno End Function - Public Function UpdateCuentasDepositos(CveCuentaDeposito As Integer, BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, RefCrediProveedor As String, Predeterminada As Boolean, Estatus As Boolean, CveMoneda As Integer, Optional CveUsuarioModifico As Integer = -1, Optional Correo As String = "") As Boolean + Public Function UpdateCuentasDepositos(CveCuentaDeposito As Integer, BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, RefCrediProveedor As String, Predeterminada As Boolean, Estatus As Boolean, CveMoneda As Integer, Optional CveUsuarioModifico As Integer = -1, Optional Correo As String = "", Optional BBVAAlias As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_CuentasDepositosUpdate") @@ -1475,6 +1476,7 @@ Public Class ClsGenerales .Add("@RefCrediProveedor", SqlDbType.VarChar).Value = RefCrediProveedor .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@BBVAAlias", SqlDbType.VarChar).Value = BBVAAlias End With @@ -1492,10 +1494,10 @@ Public Class ClsGenerales End Try Return Retorno - End Function - + End Function + #End Region - + #Region "T I P O - C A M B I O" Public Function AddTipoCambio(TipoCambio As Double, Fecha As Date, Optional TipoCambioEuro As Double = 0, Optional TipoCambioFIX As Double = 0) As Boolean Dim Retorno As Boolean = False diff --git a/Bancos/PagoElectronicoGrupos.aspx.vb b/Bancos/PagoElectronicoGrupos.aspx.vb index 1bbca81d9..01a4a3521 100644 --- a/Bancos/PagoElectronicoGrupos.aspx.vb +++ b/Bancos/PagoElectronicoGrupos.aspx.vb @@ -60,6 +60,7 @@ Partial Class Bancos_PagoElectronicoGrupos ViewState("NombreArchivo") = value End Set End Property + Private Property DTPendientes As DataTable Get Return CType(ViewState("DTPendientes"), DataTable) @@ -67,7 +68,17 @@ Partial Class Bancos_PagoElectronicoGrupos Set(value As DataTable) ViewState("DTPendientes") = value End Set + End Property + + Private Property DTAltasPendientes As DataTable + Get + Return CType(ViewState("DTAltasPendientes"), DataTable) + End Get + Set(value As DataTable) + ViewState("DTAltasPendientes") = value + End Set End Property + Private Property DTProveedores As DataTable Get Return CType(ViewState("DTProveedores"), DataTable) @@ -214,7 +225,7 @@ Partial Class Bancos_PagoElectronicoGrupos DTPendientes = Nothing End If - If ObjBancos.GetLayoutPagosEnviados(CveCuenta, 1, DdlTipoGeneracion.SelectedValue, "-1", "-1") Then + If ObjBancos.GetLayoutPagosEnviados(CveCuenta, 1, DdlTipoGeneracion.SelectedValue, "-1", "-1", PorGrupos:=True) Then DTEnviadas = ObjBancos.DtResultados Else DTEnviadas = Nothing @@ -237,7 +248,13 @@ Partial Class Bancos_PagoElectronicoGrupos UpGVDatos.Update() If DTPendientes IsNot Nothing AndAlso DTPendientes.Rows.Count > 0 Then - CargaDatosInformativos() + CargaDatosInformativos() + Else + + LbNumeroMovimientos.Text = "0" + LbImporteMovimientos.Text = "0" + + UpComandosGeneracion.Update() End If End Sub @@ -331,13 +348,23 @@ Partial Class Bancos_PagoElectronicoGrupos Response.ContentType = "application/zip" Response.End() End Sub - Private Function CreaArchivo(Tipo As Integer) As Boolean + Private Function CreaArchivo(Tipo As Integer, Optional MismoBanco As Boolean = True) As Boolean + System.Threading.Thread.Sleep(1000) 'Un segundo de diferencia Para doferentes tipos de bancos + DirectoryExistsCreate(String.Format("{0}Layout", UsuarioActual.Empresa.Ruta)) - NombreArchivo = String.Format("{2}{1}{0}.txt", UsuarioActual.CveUsuario, Date.Now.ToString("yyyyMMdd-HH-mm"), If(Tipo = 1, "LAYOUTPAGO", "LAYOUTALTA")) - + NombreArchivo = String.Format("{2}{1}{0}.txt", UsuarioActual.CveUsuario, Date.Now.ToString("yyyyMMdd-HH-mm-ss"), If(Tipo = 1, "LAYOUTPAGO", "LAYOUTALTA")) + + If Tipo = 1 Then + NombreArchivo = String.Format("{2}{1}{0}.txt", UsuarioActual.CveUsuario, Date.Now.ToString("yyyyMMdd-HH-mm-ss"), "LAYOUTPAGO") + Else + NombreArchivo = String.Format("{2}{1}{0}{3}.txt", UsuarioActual.CveUsuario, Date.Now.ToString("yyyyMMdd-HH-mm-ss"), "LAYOUTALTA", If(MismoBanco, "BANCOMER", "INTERBANCARIO")) + End If + + + Dim path As String = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim fs As FileStream = File.Create(path) @@ -442,7 +469,7 @@ Partial Class Bancos_PagoElectronicoGrupos Dim DtRegenerar As New DataTable Dim ObjBancos As New ClsBancos - If ObjBancos.GetLayoutPagos(CveCuenta, CveBLE, "-1") Then + If ObjBancos.GetLayoutPagos(CveCuenta, CveBLE, "-1", PorGrupos:=True) Then DtRegenerar = ObjBancos.DtResultados Else DtRegenerar = Nothing @@ -450,7 +477,7 @@ Partial Class Bancos_PagoElectronicoGrupos ObjBancos.Dispose() If DtRegenerar IsNot Nothing Then - GeneraPago(DtRegenerar) + GeneraPago(DtRegenerar, False) Else Alert("Ocurrió un error al obtener los datos para generar el archivo. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If @@ -492,13 +519,14 @@ Partial Class Bancos_PagoElectronicoGrupos AltaProveedores(1) End Sub - Private Sub AltaProveedores(TipoAlta As Integer) + Private Sub AltaProveedores(TipoAlta As Integer, Optional DtCuentasPendientesTemp As DataTable = Nothing) NombreArchivo = "" Dim RegistrosAltaBancomer As New StringBuilder Dim RegistrosAltaInterbancario As New StringBuilder + Dim SBErrores As New StringBuilder Dim NombreArchivoBancomer As String = "" Dim NombreArchivoInterbancario As String = "" @@ -508,46 +536,72 @@ Partial Class Bancos_PagoElectronicoGrupos Dim ErrorLayout = False - Dim DtCuentasPendientesTemp As DataTable = DTPendientes.Copy + If DtCuentasPendientesTemp Is Nothing Then + DtCuentasPendientesTemp = DTPendientes.Copy + End If + + + DtCuentasPendientesTemp.CaseSensitive = False - Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (CuentaPago like '%BBVA%' OR CuentaPago like '%BANCOMER%' ) ", "", {"CuentaPago", "NumCuenta", "AbreviaturaMon", "RazonSocial", "CveProveedor", "CveBanco"}) - Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND NOT (CuentaPago like '%BBVA%' OR CuentaPago like '%BANCOMER%' ) ", "", {"CuentaPago", "NumCuenta", "AbreviaturaMon", "RazonSocial", "CveProveedor", "CveBanco"}) - + Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"}) + Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"}) + 'CLABEDestino If DtCuentasPendientesBancomer.Rows.Count > 0 Then For Each dRow As DataRow In DtCuentasPendientesBancomer.Rows + Dim SBTmpBancomer As New StringBuilder + Dim SBErroresBancomer As New StringBuilder + Dim ErrorLineaBancomer As Boolean = False - If dRow("NumCuenta").ToString.Length < 19 Then 'Tamaño maximo 18 - RegistrosAltaBancomer.Append(dRow("NumCuenta").ToString.PadLeft(18, CeroRelleno)) + SBErroresBancomer.Append($"{dRow("RazonSocial").ToString } ") + SBErroresBancomer.Append($"Cuenta: {dRow("Cuenta").ToString } ") + If dRow("CLABEDestino").ToString.Length <= 18 Then 'Tamaño maximo 18 + SBTmpBancomer.Append(dRow("CLABEDestino").ToString.PadLeft(18, CeroRelleno)) + Else + SBErroresBancomer.Append("La cuenta beneficiaria no puede ser mayor a 18 caracteres, ") + ErrorLineaBancomer = True End If - If dRow("AbreviaturaMon").ToString.Length = 3 AndAlso dRow("AbreviaturaMon").ToString.Contiene("MXN", "USD", "EUR") Then - RegistrosAltaBancomer.Append(dRow("AbreviaturaMon")) + If dRow("Abreviatura").ToString.Length = 3 Then + SBTmpBancomer.Append(dRow("Abreviatura")) + Else + SBErroresBancomer.Append("El tamaño de la divisa es incorrecto, ") + ErrorLineaBancomer = True End If - RegistrosAltaBancomer.Append("0999999999999.99") + SBTmpBancomer.Append("0999999999999.99") If dRow("RazonSocial").ToString.Trim.Length < 31 Then 'Tamaño maximo 30 - RegistrosAltaBancomer.Append(dRow("RazonSocial").ToString.PadLeft(30, EspacioRelleno)) + SBTmpBancomer.Append(dRow("RazonSocial").ToString.PadRight(30, EspacioRelleno)) Else - RegistrosAltaBancomer.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) + SBTmpBancomer.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) End If 'ALIAS DE LA CUENTA PENDIENTE TAMAÑO MAXIMO 30 - RegistrosAltaBancomer.Append(dRow("CveProveedor").ToString.PadLeft(30, EspacioRelleno)) + SBTmpBancomer.Append(dRow("BBVAAlias").ToString.PadRight(30, EspacioRelleno)) 'CORREO OPCIONAL TAMAÑO MAXIMO 80 'RegistrosAlta.Append("".ToString.PadLeft(80, EspacioRelleno)) - RegistrosAltaBancomer.Append(vbCrLf) + SBTmpBancomer.Append(vbCrLf) + + + If Not ErrorLineaBancomer Then + RegistrosAltaBancomer.Append(SBTmpBancomer.ToString) + Else + SBErroresBancomer.Append("
") + SBErrores.AppendLine(SBErroresBancomer.ToString) + End If + + Next TextoCompleto = RegistrosAltaBancomer.ToString - If CreaArchivo(2) Then + If CreaArchivo(2, True) Then NombreArchivoBancomer = NombreArchivo End If @@ -561,53 +615,70 @@ Partial Class Bancos_PagoElectronicoGrupos For Each dRow As DataRow In DtCuentasPendientesInterbancarias.Rows - If Not (dRow("CuentaPago").ToString.ToUpper.Contains("BBVA") Or dRow("CuentaPago").ToString.ToUpper.Contains("BANCOMER")) Then + Dim SBTmpInterbancarias As New StringBuilder + Dim SBErroresInterBancario As New StringBuilder + Dim ErrorLineaInterbancaria As Boolean = False - If dRow("CveBanco").ToString = "" Then - RegistrosAltaInterbancario.Append(dRow("CveBanco").ToString) - Else - Alert("La cuenta deposito no tiene clave ABM(Clave SAT) asignada", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + SBErroresInterBancario.Append($"{dRow("RazonSocial").ToString } ") + SBErroresInterBancario.Append($"Cuenta: {dRow("Cuenta").ToString } ") - End If - - - - If dRow("NumCuenta").ToString.Length < 19 Then 'Tamaño maximo 18 - RegistrosAltaInterbancario.Append(dRow("NumCuenta").ToString.PadLeft(18, CeroRelleno)) - End If - - If dRow("AbreviaturaMon").ToString.Length = 3 AndAlso dRow("AbreviaturaMon").ToString.Contiene("MXN", "USD", "EUR") Then - RegistrosAltaInterbancario.Append(dRow("AbreviaturaMon")) - End If - - RegistrosAltaInterbancario.Append("0999999999999.99") - - If dRow("RazonSocial").ToString.Trim.Length < 31 Then 'Tamaño maximo 30 - RegistrosAltaInterbancario.Append(dRow("RazonSocial").ToString.PadLeft(30, EspacioRelleno)) + If dRow("CveBanco").ToString.Trim.Length = 3 Then + SBTmpInterbancarias.Append(dRow("CveBanco").ToString.Trim) Else - RegistrosAltaInterbancario.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) + SBErroresInterBancario.Append("clave ABM(Clave SAT) incorrecta, ") + ErrorLineaInterbancaria = True End If - 'ALIAS DE LA CUENTA PENDIENTE TAMAÑO MAXIMO 30 - RegistrosAltaInterbancario.Append(dRow("CveProveedor").ToString.PadLeft(30, EspacioRelleno)) + + If dRow("CLABEDestino").ToString.Length <= 18 Then 'Tamaño maximo 18 + SBTmpInterbancarias.Append(dRow("CLABEDestino").ToString.PadLeft(18, CeroRelleno)) + Else + SBErroresInterBancario.Append("La cuenta beneficiaria no puede ser mayor a 18 caracteres, ") + ErrorLineaInterbancaria = True + End If + + If dRow("Abreviatura").ToString.Length = 3 Then + SBTmpInterbancarias.Append(dRow("Abreviatura").ToString.Trim) + Else + SBErroresInterBancario.Append("El tamaño de la divisa es incorrecto, ") + ErrorLineaInterbancaria = True + End If + + SBTmpInterbancarias.Append("0999999999999.99") + + If dRow("RazonSocial").ToString.Trim.Length <31 Then 'Tamaño maximo 30 + SBTmpInterbancarias.Append(dRow("RazonSocial").ToString.PadRight(30, EspacioRelleno)) + Else + SBTmpInterbancarias.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) + End If + + ' ALIAS DE LA CUENTA PENDIENTE TAMAÑO MAXIMO 30 + SBTmpInterbancarias.Append(dRow("BBVAAlias").ToString.PadRight(30, EspacioRelleno)) 'CORREO OPCIONAL TAMAÑO MAXIMO 80 'RegistrosAlta.Append("".ToString.PadLeft(80, EspacioRelleno)) - If Not (dRow("CuentaPago").ToString.ToUpper.Contains("BBVA") Or dRow("CuentaPago").ToString.ToUpper.Contains("BANCOMER")) Then - RegistrosAltaInterbancario.Append("40") - End If - RegistrosAltaInterbancario.Append(vbCrLf) + 'Tipo de cuenta + SBTmpInterbancarias.Append("40") + + SBTmpInterbancarias.Append(vbCrLf) + + + If Not ErrorLineaInterbancaria Then + RegistrosAltaInterbancario.Append(SBTmpInterbancarias.ToString) + Else + SBErroresInterBancario.Append("
") + SBErrores.AppendLine(SBErroresInterBancario.ToString) + End If Next - - TextoCompleto = RegistrosAltaInterbancario.ToString - If CreaArchivo(2) Then - NombreArchivoInterbancario = NombreArchivo + If RegistrosAltaInterbancario.Length > 0 Then + TextoCompleto = RegistrosAltaInterbancario.ToString + If CreaArchivo(2, False) Then + NombreArchivoInterbancario = NombreArchivo + End If End If End If @@ -616,15 +687,23 @@ Partial Class Bancos_PagoElectronicoGrupos Dim Mensaje As New StringBuilder - Mensaje.Append("Descarga Layouts
") + Mensaje.Append("Descarga Layouts

") If NombreArchivoBancomer.Trim.Length > 0 Then - Mensaje.Append($"Cuentas Bancomer Descarga Archivo cuentas Bancomer

") + Mensaje.Append($"Cuentas Bancomer
Descarga Archivo cuentas Bancomer

") End If If NombreArchivoInterbancario.Trim.Length > 0 Then - Mensaje.Append($"Cuentas Interbancarias Descarga Archivo cuentas Bancomer") + Mensaje.Append($"Cuentas Interbancarias Descarga Archivo cuentas Bancomer

") + End If + + + If SBErrores.ToString.Length > 0 Then + Mensaje.Append("Errores Cuentas
") + Mensaje.Append("
") End If If NombreArchivoBancomer.Length > 0 Or NombreArchivoInterbancario.Length > 0 Then @@ -637,239 +716,86 @@ Partial Class Bancos_PagoElectronicoGrupos - Private Sub AltaProveedoresViejo(TipoAlta As Integer) - Dim DtTemp As DataTable = Nothing - CreaDtAlta() - - 'TIPO ALTA - '1 = Alta comun - '2 = Alta masiva - If TipoAlta = 1 Then - If DTPendientes Is Nothing OrElse DTPendientes.FiltraParametros("EstatusCtaDeposito = 'True'").Rows.Count <= 0 Then - Alert("No hay registros para generar", TipoMensaje.MsgAdvertencia) - Exit Sub - Else - DtTemp = DTPendientes.FiltraParametros("EstatusCtaDeposito = 'True'").Copy - End If - ElseIf TipoAlta = 2 Then - If DTProveedores Is Nothing OrElse DTProveedores.Rows.Count <= 0 Then - Alert("No hay registros para generar", TipoMensaje.MsgAdvertencia) - Exit Sub - Else - DtTemp = DTProveedores.Copy - End If - ElseIf TipoAlta = 3 Then - If DTFyE Is Nothing OrElse DTFyE.Rows.Count <= 0 Then - Alert("No hay registros para generar", TipoMensaje.MsgAdvertencia) - Exit Sub - Else - DtTemp = DTProveedores.Copy - End If - End If - - 'REINICIA PROPIEDAS - HeaderTexto = "" - DetalleTexto = "" - TrailerTexto = "" - TotalAcumulado = 0 - - ''VALIDA CUENTAS DEPOSITOS - Dim ErrorCuenta = False - Dim ProveedoresError As StringBuilder = New StringBuilder - ProveedoresError.AppendFormat("") - Dim TotalDetalles As Integer = 0 - Dim EsBancomer = False - For Each gvr As DataRow In DtTemp.Rows - If gvr("CveCuentaDeposito").ToString <> "" AndAlso gvr("EstatusPagoElectronico").ToString <> "True" AndAlso gvr("AltaCuenta").ToString = "1" Then - DTPendienteActual = DtTemp.FiltraParametros(String.Format("CveCuentaDeposito = {0}", gvr("CveCuentaDeposito").ToString)) - ErrorCuenta = False - EsBancomer = False - - If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or (DTPendienteActual(0)("CLABE").ToString.Length = 18 AndAlso DTPendienteActual(0)("CLABE").ToString.Substring(0, 3) = "012") Then - EsBancomer = True - End If - - ''COMENTADO PARA PERMITIR ENTRADA DE UNA CUENTA A PROVEEDOR, 22 DE SEPTIEMBRE, ISRAEL PIÑA - 'If Not ErrorCuenta Then - ' If EsBancomer AndAlso (DTPendienteActual(0)("CLABE").ToString.Length = 18 AndAlso Not DTPendienteActual(0)("CLABE").ToString.Substring(0, 3) = "012") Then - ' ProveedoresError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ' ErrorCuenta = True - ' End If - 'End If - - ''CLABE SIEMPRE OBLIGATORIA CUANDO NO ES BANCOMER CON CIE - 'If (DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 And Not EsBancomer) Or (EsBancomer And TxtConvenioCIE.Text.Trim.Length <> 6 And DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18) Then - ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - - 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER - If Not ErrorCuenta Then - If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 And DTPendienteActual(0)("CLABE").ToString.Trim.Length = 0 And Not EsBancomer Then - ProveedoresError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 - If Not ErrorCuenta Then - If DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 10 AndAlso EsBancomer Then - ProveedoresError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 - If Not ErrorCuenta Then - If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 Then - ProveedoresError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'SI CIE TIENE ALGO DEBE TENER REFERENCIA OBLIGATORIA - If Not ErrorCuenta Then - If DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0 And DTPendienteActual(0)("Referencia").ToString.Trim.Length < 3 Then - ProveedoresError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" - If Not ErrorCuenta Then - If EsBancomer AndAlso Not (DTPendienteActual(0)("Cuenta").ToString.Trim.Length = 10 Or DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0) Then - ProveedoresError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - - 'DTPendienteActual(0)("").ToString - - 'VALDIACION ANTIGUA - 'If Not (DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER")) Then - ' If Not DTPendienteActual(0)("CLABE").ToString.Length = 18 Then - ' ProveedoresError.AppendFormat("Proveedor: {0}", DTPendienteActual(0)("RazonSocial").ToString) - ' ErrorCuenta = True - ' End If - 'End If - - If Not ErrorCuenta Then - If TotalDetalles > 0 Then - DetalleTexto &= vbCrLf - End If - CrearDetalle() - TotalDetalles += 1 - End If - - End If - Next - ProveedoresError.AppendFormat("
ProveedorCuentaError
{0}{1}CLABE NO PERTENECE A BANCOMER
{0}{1}CLABE ES OBLIGATORIA
{0}{1}NUMERO DE CUENTA CON FORMATO INCORRECTO
{0}{1}CLABE CON FORMATO INCORRECTO
{0}{1}CIE CON FORMATO INCORRECTO
{0}{1}CUENTA BANCOMER SIN CUENTA O CIE
") - - - If TotalDetalles > 0 Then - FormarTexto(TotalDetalles) - CreaArchivo(2) - - Dim Descargas As New StringBuilder() - Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) - 'Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) - Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) - - - Dim TextoErrorProveedores = "" - If ProveedoresError.Length > 160 Then TextoErrorProveedores = String.Format("


    Proveedores con Error:

    ------------------------------------------------------------------
    {0}

    ", ProveedoresError.ToString) - - Alert(String.Format("
    El Layout fue creado satisfactoriamente.{1}
    Descargas:
      {0}
    ", Descargas, TextoErrorProveedores), TipoMensaje.MsgInformacion) - - 'NombreArchivo = "LayoutAltaProveedores" - 'DescargarArchivo() - Else - Alert("No hay proveedores que dar de alta", TipoMensaje.MsgInformacion) - End If - - End Sub - - Protected Sub CrearDetalle() - Dim Resultado = True - Dim CuentaDeposito As String = "" - Dim TipoCuentaDeposito As String = "" - Dim TipoCuenta As String = "" + 'Protected Sub CrearDetalle() + ' Dim Resultado = True + ' Dim CuentaDeposito As String = "" + ' Dim TipoCuentaDeposito As String = "" + ' Dim TipoCuenta As String = "" - ''''' LLENADO DE DETALLE - 'Campos #1-4 del Detalle - DetalleTexto &= String.Format("DA{0}N ", DTPendienteActual(0)("CveCuentaDeposito").ToString.ToUpper.PadLeft(30, PadCeros)) + ' ''''' LLENADO DE DETALLE + ' 'Campos #1-4 del Detalle + ' DetalleTexto &= String.Format("DA{0}N ", DTPendienteActual(0)("CveCuentaDeposito").ToString.ToUpper.PadLeft(30, PadCeros)) - 'Banco BBVA - If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Then - 'Llenamos datos de BBVA - 'Campo #5-7 del detalle + ' 'Banco BBVA + ' If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Then + ' 'Llenamos datos de BBVA + ' 'Campo #5-7 del detalle - 'Busca que cuenta sera la asignada para el proveedor - If DTPendienteActual(0)("CIE").ToString <> "" Then - CuentaDeposito = String.Format("02{0}", DTPendienteActual(0)("CIE").ToString.PadLeft(8, PadCeros)) - TipoCuenta = "50" - TipoCuentaDeposito = "CIE" - ElseIf DTPendienteActual(0)("Cuenta").ToString.Length = 10 Then - CuentaDeposito = DTPendienteActual(0)("Cuenta").ToString - TipoCuenta = "99" - TipoCuentaDeposito = "Cuenta" - ElseIf DTPendienteActual(0)("CLABE").ToString.Length = 18 Then - CuentaDeposito = DTPendienteActual(0)("CLABE").ToString - TipoCuenta = "40" - TipoCuentaDeposito = "CLABE" - End If + ' 'Busca que cuenta sera la asignada para el proveedor + ' If DTPendienteActual(0)("CIE").ToString <> "" Then + ' CuentaDeposito = String.Format("02{0}", DTPendienteActual(0)("CIE").ToString.PadLeft(8, PadCeros)) + ' TipoCuenta = "50" + ' TipoCuentaDeposito = "CIE" + ' ElseIf DTPendienteActual(0)("Cuenta").ToString.Length = 10 Then + ' CuentaDeposito = DTPendienteActual(0)("Cuenta").ToString + ' TipoCuenta = "99" + ' TipoCuentaDeposito = "Cuenta" + ' ElseIf DTPendienteActual(0)("CLABE").ToString.Length = 18 Then + ' CuentaDeposito = DTPendienteActual(0)("CLABE").ToString + ' TipoCuenta = "40" + ' TipoCuentaDeposito = "CLABE" + ' End If - DetalleTexto &= String.Format("{0}{1}{2}", DTPendienteActual(0)("Abreviatura").ToString, TipoCuenta, CuentaDeposito.PadLeft(35, PadCeros)) + ' DetalleTexto &= String.Format("{0}{1}{2}", DTPendienteActual(0)("Abreviatura").ToString, TipoCuenta, CuentaDeposito.PadLeft(35, PadCeros)) - 'Llenamos en blanco datos de otros bancos - 'Campos 8-17 del detalle --- 64 de otros bancos y 45 para FILLER --- Fecha de Alta - DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(109), DateTime.Now().ToString("yyyy-MM-dd")) + ' 'Llenamos en blanco datos de otros bancos + ' 'Campos 8-17 del detalle --- 64 de otros bancos y 45 para FILLER --- Fecha de Alta + ' DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(109), DateTime.Now().ToString("yyyy-MM-dd")) - 'Otros Bancos NACIONAL!! - Else + ' 'Otros Bancos NACIONAL!! + ' Else - CuentaDeposito = DTPendienteActual(0)("CLABE").ToString - TipoCuentaDeposito = "CLABE" + ' CuentaDeposito = DTPendienteActual(0)("CLABE").ToString + ' TipoCuentaDeposito = "CLABE" - 'Llenamos en blanco datos de BBVA - DetalleTexto &= Vacio.PadRight(40) + ' 'Llenamos en blanco datos de BBVA + ' DetalleTexto &= Vacio.PadRight(40) - 'Llenamos datos de otros bancos - 'Campos 8- 17 del detalle --- 44 de otros bancos --- 20 de internacional --- 45 Filler -- Fecha de Alta - DetalleTexto &= String.Format("{0}40{1}{2}{3}{4}{5}", DTPendienteActual(0)("Abreviatura").ToString, DTPendienteActual(0)("CLABE").ToString.PadLeft(35, PadCeros), DTPendienteActual(0)("CLABE").ToString.Substring(0, 3).PadLeft(4, PadCeros), Vacio.PadRight(20), Vacio.PadRight(45), DateTime.Now().ToString("yyyy-MM-dd")) - End If + ' 'Llenamos datos de otros bancos + ' 'Campos 8- 17 del detalle --- 44 de otros bancos --- 20 de internacional --- 45 Filler -- Fecha de Alta + ' DetalleTexto &= String.Format("{0}40{1}{2}{3}{4}{5}", DTPendienteActual(0)("Abreviatura").ToString, DTPendienteActual(0)("CLABE").ToString.PadLeft(35, PadCeros), DTPendienteActual(0)("CLABE").ToString.Substring(0, 3).PadLeft(4, PadCeros), Vacio.PadRight(20), Vacio.PadRight(45), DateTime.Now().ToString("yyyy-MM-dd")) + ' End If - 'Llenamos datos de Tipo de Persona - Fisica o Moral - TipoPersona() + ' 'Llenamos datos de Tipo de Persona - Fisica o Moral + ' TipoPersona() - 'Campos 27-32 --- Fillers --- datos de otros bancos (internacional) - DetalleTexto &= Vacio.PadLeft(153) + ' 'Campos 27-32 --- Fillers --- datos de otros bancos (internacional) + ' DetalleTexto &= Vacio.PadLeft(153) - 'Campos 33-36 --- Datos de confirmacion - DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), CorreoNotificacionesEmpresa.ToUpper.PadRight(50)) + ' 'Campos 33-36 --- Datos de confirmacion + ' DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), CorreoNotificacionesEmpresa.ToUpper.PadRight(50)) - 'If DTPendienteActual(0)("ContactoMail").ToString.Length > 0 Then - ' 'DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), DTPendienteActual(0)("ContactoMail").ToString.ToUpper.PadRight(50)) - 'ElseIf DTPendienteActual(0)("ContactoMail").ToString.Length <= 0 Then - ' DetalleTexto &= String.Format("{0}00{1}", Vacio.PadRight(40), Vacio.PadRight(50)) - 'End If + ' 'If DTPendienteActual(0)("ContactoMail").ToString.Length > 0 Then + ' ' 'DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), DTPendienteActual(0)("ContactoMail").ToString.ToUpper.PadRight(50)) + ' 'ElseIf DTPendienteActual(0)("ContactoMail").ToString.Length <= 0 Then + ' ' DetalleTexto &= String.Format("{0}00{1}", Vacio.PadRight(40), Vacio.PadRight(50)) + ' 'End If - 'Campos 37-39 -- FILLER - DetalleTexto &= String.Format("00{0}", Vacio.PadRight(38)) + ' 'Campos 37-39 -- FILLER + ' DetalleTexto &= String.Format("00{0}", Vacio.PadRight(38)) - ''LLENA DT PARA REPORTE - Dim Row = DtAlta.NewRow() - Row("Proveedor") = DTPendienteActual(0)("RazonSocial").ToString - Row("Banco") = DTPendienteActual(0)("BancoNombre").ToString - Row("TipoCuenta") = TipoCuentaDeposito - Row("Cuenta") = String.Format("{0}", CuentaDeposito) - DtAlta.Rows.Add(Row) - End Sub + ' ''LLENA DT PARA REPORTE + ' Dim Row = DtAlta.NewRow() + ' Row("Proveedor") = DTPendienteActual(0)("RazonSocial").ToString + ' Row("Banco") = DTPendienteActual(0)("BancoNombre").ToString + ' Row("TipoCuenta") = TipoCuentaDeposito + ' Row("Cuenta") = String.Format("{0}", CuentaDeposito) + ' DtAlta.Rows.Add(Row) + 'End Sub Protected Sub TipoPersona() 'Persona Moral @@ -985,7 +911,7 @@ Partial Class Bancos_PagoElectronicoGrupos If DTPendientes.FiltraParametros("EstatusPagoElectronicoGrupos = 'True' AND EstatusCtaDeposito = 'True'") IsNot Nothing Then - GeneraPago(DTPendientes.FiltraParametros("EstatusPagoElectronico > 0 AND EstatusCtaDeposito > 0")) + GeneraPago(DTPendientes.FiltraParametros("EstatusPagoElectronicoGrupos = 'True' AND EstatusCtaDeposito > 0")) Else @@ -994,10 +920,10 @@ Partial Class Bancos_PagoElectronicoGrupos End If End Sub - Private Sub GeneraPago(DTPendientesTemp As DataTable) + Private Sub GeneraPago(DTPendientesTemp As DataTable, Optional InsertaEnDB As Boolean = True) Dim RegistrosPago As New StringBuilder - Dim MENSAJE As New StringBuilder + Dim MENSAJEError As New StringBuilder Dim CeroRelleno As Char = "0"c @@ -1008,6 +934,12 @@ Partial Class Bancos_PagoElectronicoGrupos For Each drow As DataRow In DTPendientesTemp.Rows + MENSAJEError.Clear() + + MENSAJEError.AppendLine($"Error al generar pago
    ") + MENSAJEError.AppendLine($" Proveedor: {drow("RazonSocial").ToString} detalle: { drow("Observaciones").ToString}
    ") + + If drow("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or drow("BancoNombre").ToString.ToUpper.Contains("BBVA") Then RegistrosPago.Append("PTC") Else @@ -1018,31 +950,144 @@ Partial Class Bancos_PagoElectronicoGrupos RegistrosPago.Append(drow("CLABEOrigen").ToString) Else ErrorLayout = True - MENSAJE.AppendLine("ERROR EN CLABE") + MENSAJEError.AppendLine("ERROR EN CLABE cuenta origen") Exit For End If - If drow("CLABEDestino").ToString.Trim.Length <> 18 Then + If drow("CLABEDestino").ToString.Trim.Length = 18 Then RegistrosPago.Append(drow("CLABEDestino").ToString) Else ErrorLayout = True - MENSAJE.AppendLine("ERROR EN CLABE") + MENSAJEError.AppendLine("ERROR EN CLABE cuenta destino") Exit For End If - RegistrosPago.Append("Abreviatura") - + RegistrosPago.Append(drow("Abreviatura").ToString) RegistrosPago.Append(drow("Abonado").ToString.ToDecimal.ToString("0000000000000.00")) - RegistrosPago.Append(drow("CveIE").ToString.PadRight(30, EspacioRelleno)) + + If drow("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or drow("BancoNombre").ToString.ToUpper.Contains("BBVA") Then + + If drow("Observaciones").ToString.Trim.Length > 30 Then + RegistrosPago.Append(drow("Observaciones").ToString.Substring(0, 30)) + Else + RegistrosPago.Append(drow("Observaciones").ToString.PadRight(30, EspacioRelleno)) + End If + + Else + + If drow("RazonSocial").ToString.Length <= 30 Then + RegistrosPago.Append(drow("RazonSocial").ToString.PadRight(30, EspacioRelleno)) + Else + RegistrosPago.Append(drow("RazonSocial").ToString.Substring(0, 30)) + End If + + RegistrosPago.Append("40") '03 tarjeta debito 40 Clabe + + If drow("CveBanco").ToString.Trim.Length = 3 Then + RegistrosPago.Append(drow("CveBanco").ToString.Trim) + Else + ErrorLayout = True + MENSAJEError.AppendLine("Error tamaño clave banco") + End If + + 'Motivo de pago + If drow("Observaciones").ToString.Trim.Length > 30 Then + RegistrosPago.Append(drow("Observaciones").ToString.Substring(0, 30)) + Else + RegistrosPago.Append(drow("Observaciones").ToString.PadRight(30, EspacioRelleno)) + End If + + If drow("Referencia").ToString.Trim.Length > 7 Then + RegistrosPago.Append(drow("Referencia").ToString.Substring(0, 7)) + Else + RegistrosPago.Append(drow("Referencia").ToString.PadRight(7, EspacioRelleno)) + End If + + RegistrosPago.Append("H") + + End If + + If ErrorLayout Then + Alert(MENSAJEError.ToString(), TipoMensaje.MsgAdvertencia) + Exit For + End If RegistrosPago.Append(vbCrLf) - 'CveIE - Next + If Not ErrorLayout Then + + Dim NombreArchivoPago As String = "" + + TextoCompleto = RegistrosPago.ToString + If CreaArchivo(1) Then + NombreArchivoPago = NombreArchivo + End If + + + If InsertaEnDB Then + + Dim ObjBancos As New ClsBancos + ObjBancos.IniciaTransacSQL() + + + Dim CveLayoutEnvio = ObjBancos.AddLayoutEnvios(NombreArchivo, Date.Now, CveCuenta, PorGrupos:=True) + + If CveLayoutEnvio > 0 Then + For Each dr As DataRow In DTPendientesTemp.Rows + If dr("CveProveedor").ToString <> "" Or dr("CvePersonal").ToString <> "" Then + If Not ObjBancos.AddLayoutEnviosDetalle(CveLayoutEnvio, dr("CveIE").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, 1, "Observaciones") Then + ErrorLayout = True + Exit For + End If + End If + Next + Else + ErrorLayout = True + End If + + If ErrorLayout Then + ObjBancos.RollBack() + ObjBancos.Dispose() + Else + ObjBancos.Commit() + ObjBancos.Dispose() + End If + + End If + + + + + + If ErrorLayout = False And RegistrosPago.Length > 0 Then + + Dim Mensaje As New StringBuilder + + Mensaje.Append("Descarga Layout
    ") + + If NombreArchivoPago.Trim.Length > 0 Then + Mensaje.Append($"Pagos Descarga {NombreArchivoPago}

    ") + End If + + If NombreArchivoPago.Length > 0 Then + Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) + End If + + CargaDatos() + + End If + + + + + + End If + + End Sub @@ -1263,6 +1308,7 @@ Partial Class Bancos_PagoElectronicoGrupos TextoCompleto = String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, HeaderTexto, DetalleTexto, TrailerTexto) End Sub + #End Region #Region "CARGA ALTA PROVEEDORES" @@ -2082,12 +2128,13 @@ Partial Class Bancos_PagoElectronicoGrupos CargaReporte() End Sub - Private Sub CargaReporte() + Private Sub CargaReporte() + Dim ObjBancos As New ClsBancos Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") - If ObjBancos.GetLayoutPagosEnviados(DdlCuentaReportes.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, DdlTipoReportes.SelectedValue, FechaI, DateAdd(DateInterval.Day, 1, FechaF.ToDate).ToShortDateString) Then + If ObjBancos.GetLayoutPagosEnviados(DdlCuentaReportes.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, DdlTipoReportes.SelectedValue, FechaI, DateAdd(DateInterval.Day, 1, FechaF.ToDate).ToShortDateString, PorGrupos:=True) Then DTReportes = ObjBancos.DtResultados Else DTReportes = Nothing @@ -2141,7 +2188,7 @@ Partial Class Bancos_PagoElectronicoGrupos End If If TipoMasiva = 1 Then - AltaProveedores(2) + AltaProveedores(2, DTProveedores) Else GeneraAltaFyE() End If @@ -2150,7 +2197,7 @@ Partial Class Bancos_PagoElectronicoGrupos Private Sub CargaProveedores() Dim ObjBancos As New ClsBancos - If ObjBancos.GetLayoutProveedores(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjBancos.GetLayoutProveedores(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, PorGrupos:=True) Then DTProveedores = ObjBancos.DtResultados.FiltraParametros("LEN(RFC) IN (12,13)") Else DTProveedores = Nothing diff --git a/Bancos/PolizaCheque.aspx b/Bancos/PolizaCheque.aspx index 11b1e7e2f..b364d1dbd 100644 --- a/Bancos/PolizaCheque.aspx +++ b/Bancos/PolizaCheque.aspx @@ -32,7 +32,7 @@
    - + diff --git a/Bancos/PolizaCheque.aspx.vb b/Bancos/PolizaCheque.aspx.vb index a1c46d03d..91ae90038 100644 --- a/Bancos/PolizaCheque.aspx.vb +++ b/Bancos/PolizaCheque.aspx.vb @@ -211,10 +211,37 @@ Partial Class Bancos_PolizaCheque End Sub Private Sub CargaCuenta() - DdlCuenta.Items.Clear() - DdlCuenta.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario) + DdlCuenta.Items.Clear() + + Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario) + + + + + If DdlTipoTransaccion.SelectedValue.ToEntero = 3 Then + dt = dt.FiltraParametros("CveTipoCuenta = 7") + End If + + 'cuando es layout + If DdlTipoTransaccion.SelectedValue.ToEntero = 9 Then + dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) + dt = dt.FiltraParametros("UsaLayout = 1") + End If + + 'cuando es layout Por Grupos + If DdlTipoTransaccion.SelectedValue.ToEntero = 17 Then + dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) + dt = dt.FiltraParametros("UsaLayoutGrupos = 1") + End If + + + + + DdlCuenta.DataSource = dt 'GlobalDTBancosCuentas(UsuarioActual.CveUsuario) DdlCuenta.DataBind() DdlCuenta.Items.Insert(0, New ListItem("Seleccione", "-1")) + + UPPDocumento.Update() End Sub Private Sub CargaTipoTransaccion(TipoPlantilla As Integer) @@ -240,7 +267,8 @@ Partial Class Bancos_PolizaCheque 'End Sub Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged - CargaFolio() + 'CargaFolio() + CargaCuenta() End Sub Private Sub CargaFolio() @@ -1184,8 +1212,9 @@ Partial Class Bancos_PolizaCheque End If End If Return Retorno - End Function - - + End Function + + + End Class diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index de7d61293..30fc9c4a3 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3624,6 +3624,7 @@ Partial Class Compras_Compras 'OBTENER TRASLADOS POR DETALLES Dim ContadorTraslado = 0 Dim nodosConceptosTraslado As XmlNodeList = node.SelectNodes(String.Format("//{0}:Impuestos/{0}:Traslados/{0}:Traslado", Prefijo), namespaces) + For Each nodeTraslado As XmlNode In nodosConceptosTraslado If Not DtTemporalGuardados.FiltraParametros($"Contador = {ContadorTraslado} AND Tipo = 1").Rows.Count > 0 Then @@ -3637,7 +3638,12 @@ Partial Class Compras_Compras Dr("Tipo") = 1 DtTemporalGuardados.Rows.Add(Dr) DtTemporalGuardados.AcceptChanges() - Exit For + + If PorcentajeIVA > 0 Then + Exit For + End If + + ElseIf ValorXML(nodeTraslado, "Impuesto") = "003" Then IEPS = ValorXML(nodeTraslado, "Importe").Trim.ToDecimal PorcentajeIEPS = ValorXML(nodeTraslado, "TasaOCuota").Trim.ToDecimal diff --git a/Compras/Proveedores.aspx b/Compras/Proveedores.aspx index 234b68236..00a9727eb 100644 --- a/Compras/Proveedores.aspx +++ b/Compras/Proveedores.aspx @@ -1943,7 +1943,10 @@
    - + + @@ -3575,6 +3578,7 @@
    + + +
    + + + +
    +
    diff --git a/Compras/Proveedores.aspx.vb b/Compras/Proveedores.aspx.vb index b419978cb..144f2ada6 100644 --- a/Compras/Proveedores.aspx.vb +++ b/Compras/Proveedores.aspx.vb @@ -1640,7 +1640,7 @@ Partial Class Compras_Proveedores ''Agregar Cuentas Bancarias If TempDTCuentasBancos.Rows.Count > 0 Then For Each row As DataRow In TempDTCuentasBancos.Rows - If Not ObjCuentasDeposito.AddCuentasDepositos(row("BancoNombre").ToString, row("Plaza").ToString, row("Sucursal").ToString, row("Cuenta").ToString, row("CLABE").ToString, row("CIE").ToString, row("SWIFT").ToString, row("Referencia").ToString, row("RefCrediProveedor").ToString, UsuarioActual.CveUsuario, row("CveMoneda").ToString.ToEntero, CveProveedor:=NuevoCveProveedor, Correo:=row("Correo").ToString) Then + If Not ObjCuentasDeposito.AddCuentasDepositos(row("BancoNombre").ToString, row("Plaza").ToString, row("Sucursal").ToString, row("Cuenta").ToString, row("CLABE").ToString, row("CIE").ToString, row("SWIFT").ToString, row("Referencia").ToString, row("RefCrediProveedor").ToString, UsuarioActual.CveUsuario, row("CveMoneda").ToString.ToEntero, CveProveedor:=NuevoCveProveedor, Correo:=row("Correo").ToString, BBVAAlias:=row("BBVAAlias").ToString) Then ErrorBancos = True End If Next @@ -3038,6 +3038,7 @@ Partial Class Compras_Proveedores RecargaGlobalCuentasBancarias() End Sub Protected Sub LbAgregarCuentaBanco_Click(sender As Object, e As EventArgs) + Dim EsBancomer = False If TxtNombreBanco.Text.ToUpper.Contains("BBVA") Or TxtNombreBanco.Text.ToUpper.Contains("BANCOMER") Or (TxtCLABE.Text.Length = 18 AndAlso TxtCLABE.Text.Substring(0, 3) = "012") Then @@ -3110,15 +3111,15 @@ Partial Class Compras_Proveedores Dim Estatus As Boolean If ChkEstatus.Checked = True Then Estatus = True Else Estatus = False - AgregarCuentaBanco(TxtNombreBanco.Text.Trim, TxtNumeroSucursal.Text.Trim, TxtCLABE.Text.Trim, TxtSWIFT.Text.Trim, TxtPlaza.Text.Trim, TxtNumeroCuenta.Text.Trim, TxtConvenioCIE.Text.Trim, TxtReferencia.Text.Trim, TxtRefCrediProveedor.Text.Trim, DdlMoneda.SelectedValue.ToEntero, DdlMoneda.SelectedItem.Text, Estatus, TxtCorreoCuenta.Text.Trim) + AgregarCuentaBanco(TxtNombreBanco.Text.Trim, TxtNumeroSucursal.Text.Trim, TxtCLABE.Text.Trim, TxtSWIFT.Text.Trim, TxtPlaza.Text.Trim, TxtNumeroCuenta.Text.Trim, TxtConvenioCIE.Text.Trim, TxtReferencia.Text.Trim, TxtRefCrediProveedor.Text.Trim, DdlMoneda.SelectedValue.ToEntero, DdlMoneda.SelectedItem.Text, Estatus, TxtCorreoCuenta.Text.Trim, TxtBBVAAlias.Text) End Sub - Private Sub AgregarCuentaBanco(NombreBanco As String, NumeroSucursal As String, CLABE As String, SWIFT As String, Plaza As String, NumeroCuenta As String, ConvenioCIE As String, Referencia As String, RefCrediProveedor As String, CveMoneda As Integer, Moneda As String, Estatus As Boolean, Correo As String) + Private Sub AgregarCuentaBanco(NombreBanco As String, NumeroSucursal As String, CLABE As String, SWIFT As String, Plaza As String, NumeroCuenta As String, ConvenioCIE As String, Referencia As String, RefCrediProveedor As String, CveMoneda As Integer, Moneda As String, Estatus As Boolean, Correo As String, BBVAAlias As String) Dim ObjCuentasBancos As New ClsGenerales If Modalidad = "A" Then If CveProveedor > 0 Then - If ObjCuentasBancos.AddCuentasDepositos(NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, UsuarioActual.CveUsuario, CveMoneda, CveProveedor:=CveProveedor, Correo:=Correo) Then + If ObjCuentasBancos.AddCuentasDepositos(NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, UsuarioActual.CveUsuario, CveMoneda, CveProveedor:=CveProveedor, Correo:=Correo, BBVAAlias:=BBVAAlias) Then DTCuentasBancos.Clear() DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) Alert("Cuenta Bancaria agregada con éxito.", TipoMensaje.MsgInformacion) @@ -3156,7 +3157,7 @@ Partial Class Compras_Proveedores If CveProveedor > 0 Then - If ObjCuentasBancos.UpdateCuentasDepositos(GvBancosCuentas.DataKeys(CveCuentaBancaria)("CveCuentaDeposito").ToString.ToEntero, NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, False, Estatus, CveMoneda, Correo:=Correo) Then + If ObjCuentasBancos.UpdateCuentasDepositos(GvBancosCuentas.DataKeys(CveCuentaBancaria)("CveCuentaDeposito").ToString.ToEntero, NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, False, Estatus, CveMoneda, Correo:=Correo, BBVAAlias:=BBVAAlias) Then DTCuentasBancos.Clear() DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) @@ -3204,6 +3205,7 @@ Partial Class Compras_Proveedores TxtReferencia.Text = "" TxtRefCrediProveedor.Text = "" TxtCorreoCuenta.Text = "" + TxtBBVAAlias.Text = "" End Sub #Region "GRIDVIEW - CUENTAS BANCARIAS" @@ -4668,6 +4670,7 @@ Partial Class Compras_Proveedores TxtRefCrediProveedor.Text = "" DdlMoneda.SelectedIndex = 0 TxtCorreoCuenta.Text = "" + TxtBBVAAlias.Text = "" ChkEstatus.Checked = True divestatus.Visible = False UpAddBancos.Update() @@ -4689,6 +4692,7 @@ Partial Class Compras_Proveedores TxtReferencia.Text = GvRow.DataKey("Referencia") TxtRefCrediProveedor.Text = GvRow.DataKey("RefCrediProveedor") TxtCorreoCuenta.Text = GvRow.DataKey("Correo") + TxtBBVAAlias.Text = GvRow.DataKey("BBVAAlias") DdlMoneda.SelectedValueExist(GvRow.DataKey("CveMoneda")) ChkEstatus.Checked = CBool(GvRow.DataKey("Estatus")) divestatus.Visible = True diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index 359041716..518d6a1aa 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -239,6 +239,22 @@ Partial Class Compras_ReembolsosComprobaciones Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario) dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) + + + If DdlTipoTransaccion.SelectedValue.ToEntero = 3 Then + dt = dt.FiltraParametros("CveTipoCuenta = 7") + End If + + 'cuando es layout + If DdlTipoTransaccion.SelectedValue.ToEntero = 9 Then + dt = dt.FiltraParametros("UsaLayout = 1") + End If + + + If DdlTipoTransaccion.SelectedValue.ToEntero = 17 Then + dt = dt.FiltraParametros("UsaLayoutGrupos = 1") + End If + DdlCuenta.DataSource = dt DdlCuenta.DataBind() DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1")) diff --git a/Empresas/7/Formatos/Factura.rdlc b/Empresas/7/Formatos/Factura.rdlc index e8ca1dd64..71d4ec8b7 100644 --- a/Empresas/7/Formatos/Factura.rdlc +++ b/Empresas/7/Formatos/Factura.rdlc @@ -1,5111 +1,5112 @@ - - - - - - true - - - - - Tipo - - - - - - - Textbox3 - 0.90692in - 5.662in - 0.5cm - 2.24597in - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Fecha y hora de emisión - - - - - - - - - - - - - - - - Textbox3 - 0.46414in - 5.662in - 0.5cm - 2.24597in - 1 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) - - - - - - - Textbox3 - 0.22455in - 5.662in - 0.60856cm - 2.24597in - 2 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Folio - - - - - - - Textbox3 - 0.0412cm - 5.662in - 0.5cm - 2.24597in - 3 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - VSH VIGILANCIA Y PROTECCION SA DE CV - - - - - - - - - R.F.C. VVP091222RF5|Reg. Fed. DGSP/122-10/1558|Reg. Est. - - - - =IIF(UCase(Parameters!Sucursal.Value.ToString) ="TIJUANA" or UCase(Parameters!Sucursal.Value.ToString) = "MEXICALI" , "SSP-01PM20120309140", "LSP-R-2010-M-271" ) - - - - - - - - - |www.vsh-seguridad.com|ventas@vsh-seguridad.com| - - - - 0cm - 0cm - - - - Textbox4 - 1.93416in - 0.66099in - 3.62386in - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - Logo - FitProportional - 0.30578cm - 0.03093cm - 2.88998cm - 4.56434cm - 5 - - - - - - true - - - - - =Parameters!Fecha.Value - - - - - - - Textbox3 - 0.66099in - 5.662in - 0.25114in - 2.24597in - 6 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!Tipo.Value & Parameters!Ref.Value - - - - - - - Textbox3 - 1.10364in - 5.662in - 0.25635in - 2.24597in - 7 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Domicilio Fiscal - - - - - - - - - Calle Benito Juarez #32, Local 3, Col.: Hermosillo Centro C.P 83000 Hermosillo, Sonora, México Tel.:(662)210-64-00 - - - - - - - Textbox10 - 0.51102in - 1.93416in - 0.65513in - 1.79619in - 8 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Lugar de Expedición - - - - - - - - - =Parameters!DomicilioSucursal.Value - - - - - - - Textbox10 - 0.51102in - 3.77202in - 0.65513in - 1.786in - 9 - - - Top - - - - true - true - - - - - Nombre - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteNombre.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Dirección - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteDireccion.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Ciudad - - - - - - - #4f81bd - - 1.25pt - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteLugar.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - true - true - - - - - P A G A R E con Folio - - - - =Parameters!Serie.Value - - - - - - - - - =Parameters!Folio.Value - - - - Por éste pagare prometo (emos) pagar incondicionalmente a la orden de VSH Vigilancia y Proteccion, S.A de C.V, a su vencimiento el - - - - =Parameters!Vencimiento.Value - - - - , en Hermosillo, Sonora o en el domicilio señalado a elección del acreedor o tenedor la cantidad de $ - - - - =Parameters!Total.Value - - - - SON: ( - - - - =Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) - - - - ). Valor recibido a mi (nuestra) entera satisfacción. la falta de pago de éste documento a su vencimiento dará derecho a VSH Vigilancia y Proteccion, S.A de C.V o tenedor, desde el día siguiente a cobrar el 10% mensual de interes moratorios hasta su total liquidación y los gastos judiciales que se ocasionen. Lugar y Fecha de Suscripción: Hermosillo, Sonora a - - - - =CDATE(Parameters!Fecha.Value).ToString("dd/MM/yyyy") - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Nombre: - - - - =Parameters!ClienteNombre.Value - - - - - - - =Parameters!ClienteDireccion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Acepto de conformidad - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - 1.25pt - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Area de Sello y Fecha Recepción - - - - - - - Textbox69 - 1.1706in - 2.94478in - 0.25in - 1.971in - 5 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Éste documento es una representación impresa de un CFDi - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - 20.98246cm - 0.01861cm - 7.22972cm - 20.05706cm - 16 - - = (Parameters!AplicaPagare.Value="0" ORelse Parameters!AplicaPagare.Value="") - - - - - - - - - - 1.50708cm - - - 1.81634cm - - - 1.63629cm - - - 11.11681cm - - - 1.8977cm - - - 2.0429cm - - - - - 0.52063cm - - - - - true - - - - - Cantidad - - - - - - - Textbox34 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - UM - - - - - - - Textbox14 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Codigo - - - - - - - Textbox15 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - - - - - Descripción - - - - - - - Textbox79 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - - - - - P. Unitario - - - - - - - Textbox84 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - - - - - Importe - - - - - - - - - - - - - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.4148cm - - - - - true - true - - - - - =Fields!Cantidad.Value - - - - - - - Cantidad1 - - - - - - - - - - #4f81bd - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!UM.Value - - - - - - - - - - - - - =Fields!SATClaveUM.Value - - - - - - - UM - - - - - - - - - - - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!SATClaveProdServ.Value - - - - - - - SATClaveProdServ - - - - - - - - - - - - - #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!Cantidad.Value*Fields!PU.Value - - - - - - - Textbox88 - - - - - - - - - - #4f81bd - - - #4f81bd - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.08406cm - - - - - true - true - - - - - - - - - #4f81bd - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - #4f81bd - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - #4f81bd - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - #4f81bd - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - #4f81bd - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - #4f81bd - - - - #4f81bd - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - - After - - - - - - Before - - - - DsOC - 4.66273cm - 0.11469cm - 1.01949cm - 20.01712cm - 17 - - - - - - true - - - - - RFC: - - - - =Parameters!ClienteRFC.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - External - =Parameters!QR.Value - FitProportional - 0.06275in - 0.02693in - 1.31152in - 1.73765in - - - - - - true - true - - - - - Regímen: Regímen General de Ley Personas Morales; Condiciones de pago: - - - - =IIF(Parameters!CondicionPago.Value.ToString="","No Identificado",Parameters!CondicionPago.Value) - - - - ; Método de Pago: - - - - =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) - - - - ; Num. Cta Pago: - - - - =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 9.32053cm - - - 5.68277cm - - - - - 0.4721cm - - - - - true - true - - - - - Folio Fiscal: - - - - - - - Textbox9 - - - - White - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.52062cm - - - - - true - true - - - - - No. Serie del Certificado del SAT: - - - - - - - Textbox24 - - - - White - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!SerieCertificadoSAT.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.49417cm - - - - - true - true - - - - - Fecha y Hora de certificación: - - - - - - - Textbox26 - - - - White - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!FechaCertificacion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.49417cm - - - - - true - true - - - - - Certificado del Contribuyente: - - - - - - - Textbox28 - - - - White - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!CertificadoContribuyente.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.46771cm - - - - - true - true - - - - - CFC - - - - CFDI RELACIONADOS - - - - - - - Textbox35 - - - White - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - 0.41479cm - - - - - true - true - - - - - Tipo Relación: - - - - - - - Textbox37 - - - - White - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!TipoRelacionTexto.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.46771cm - - - - - true - true - - - - - Folio Fiscal - - - - - - - Textbox39 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!FolioFiscalRelacionado.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - - - =IIF(Parameters!TipoRelacionTexto.Value = "" OR Parameters!FolioFiscalRelacionado.Value = "", True,False) - - - - - =IIF(Parameters!TipoRelacionTexto.Value = "" OR Parameters!FolioFiscalRelacionado.Value = "", True,False) - - - - - =IIF(Parameters!TipoRelacionTexto.Value = "" OR Parameters!FolioFiscalRelacionado.Value = "", True,False) - - - - - DataSet1 - 0.15938cm - 5.04053cm - 3.33127cm - 15.0033cm - 2 - - - - - - true - 13.17821cm - 0.04629cm - 4.44266cm - 20.04383cm - 19 - - - - - - true - true - - - - - =Parameters!ClienteDatoExtra1.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 3.15414cm - - - - - 0.6cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!Moneda.Value - - - - - - - Textbox47 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.52863cm - - - true - true - - - - - =Fields!ImpuestoLocal.Value - - - - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - 2.52863cm - - - true - true - - - - - Moneda - - - - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - Before - - - - DataSet1 - 5.84097cm - 14.47429cm - 1.2cm - 5.68277cm - 21 - - - - - - - - - 3.33075cm - - - 10.99712cm - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!Observaciones.Value - - - - - - - Textbox128 - - - - - - - - - - - - - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - 0.6cm - - - - - true - true - - - - - Importe con letra: - - - - - - - Textbox126 - - - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) - - - - - - - Textbox127 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - Método de pago: - - - - - - - Textbox130 - - - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) - - - - - - - Textbox131 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - Forma de pago: - - - - - - - Textbox23 - - - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!FormaPago.Value - - - - - - - - - - - Textbox41 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.66668cm - - - - - true - true - - - - - Uso CFDI: - - - - - - - Textbox43 - - - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!UsoCFDI.Value - - - - - - - Textbox44 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 1.8cm - - - - - true - true - - - - - Sello digital del CFDI: - - - - - - - Textbox132 - - - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!SelloCFDI.Value - - - - - - - Textbox133 - - - Top - 2pt - 2pt - 2pt - 2pt - - - - - - - - 1.2cm - - - - - true - true - - - - - Sello del SAT: - - - - - - - Textbox134 - - - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!SelloSAT.Value - - - - - - - Textbox135 - - - Top - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - Cadena original del complemento de certificación digital del SAT: - - - - - - - Textbox136 - - - - - - - - - - - - - - 1pt - - #4f81bd - Middle - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!CadenaOriginal.Value - - - - - - - Textbox6 - - - - - - - - - - - - - - 1pt - - Middle - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - DsOC - 5.84097cm - 0.10736cm - 7.26668cm - 14.32787cm - 22 - - - - - - - - true - true - - - - - CFDI Relacionados - - - - - - - Textbox5 - 0.11382cm - 0.05336cm - 0.54004cm - 20.00281cm - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Tipo Relación: - - - - - - - Textbox29 - 0.83025cm - 4.33636cm - 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 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Fecha - - - - - - - Textbox12 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox21 - - - #4f81bd - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Folio Fiscal - - - - - - - Textbox11 - - - #4f81bd - 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 - 2.83462cm - 0.85604cm - 15.30142cm - 3 - - - - - - true - true - - - - - VERSION 3.3 - - - - - - - Textbox5 - 2.28775cm - 17.08931cm - 0.6cm - 3.06609cm - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - 17.79725cm - 0.05538cm - 2.97096cm - 20.1554cm - 23 - - =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) - - - - - - - 28.21218cm - - - - - - - Textbox3 - 0.10583cm - 16.30721cm - 0.6cm - 3.95896cm - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0.5cm - 0.5cm - 1cm - 0.5cm - 1.27cm - + + + + + + Textbox3 + 0.90692in + 5.662in + 0.5cm + 2.24597in + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.662in + 0.5cm + 2.24597in + 1 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.662in + 0.60856cm + 2.24597in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Folio + + + + + + + Textbox3 + 0.0412cm + 5.662in + 0.5cm + 2.24597in + 3 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + VSH VIGILANCIA Y PROTECCION SA DE CV + + + + + + + + + R.F.C. VVP091222RF5|Reg. Fed. DGSP/122-10/1558|Reg. Est. + + + + =IIF(UCase(Parameters!Sucursal.Value.ToString) ="TIJUANA" or UCase(Parameters!Sucursal.Value.ToString) = "MEXICALI" , "SSP-01PM20120309140", "LSP-R-2010-M-271" ) + + + + + + + + + |www.vsh-seguridad.com|ventas@vsh-seguridad.com| + + + + 0cm + 0cm + + + + Textbox4 + 1.93416in + 0.66099in + 3.62386in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo + FitProportional + 0.30578cm + 0.03093cm + 2.88998cm + 4.56434cm + 5 + + + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.662in + 0.25114in + 2.24597in + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.662in + 0.25635in + 2.24597in + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Domicilio Fiscal + + + + + + + + + Calle Benito Juarez #32, Local 3, Col.: Hermosillo Centro C.P 83000 Hermosillo, Sonora, México Tel.:(662)210-64-00 + + + + + + + Textbox10 + 0.51102in + 1.93416in + 0.65513in + 1.79619in + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Lugar de Expedición + + + + + + + + + =Parameters!DomicilioSucursal.Value + + + + + + + Textbox10 + 0.51102in + 3.77202in + 0.65513in + 1.786in + 9 + + + Top + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + P A G A R E con Folio + + + + =Parameters!Serie.Value + + + + - + + + + =Parameters!Folio.Value + + + + Por éste pagare prometo (emos) pagar incondicionalmente a la orden de VSH Vigilancia y Proteccion, S.A de C.V, a su vencimiento el + + + + =Parameters!Vencimiento.Value + + + + , en Hermosillo, Sonora o en el domicilio señalado a elección del acreedor o tenedor la cantidad de $ + + + + =Parameters!Total.Value + + + + SON: ( + + + + =Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + ). Valor recibido a mi (nuestra) entera satisfacción. la falta de pago de éste documento a su vencimiento dará derecho a VSH Vigilancia y Proteccion, S.A de C.V o tenedor, desde el día siguiente a cobrar el 10% mensual de interes moratorios hasta su total liquidación y los gastos judiciales que se ocasionen. Lugar y Fecha de Suscripción: Hermosillo, Sonora a + + + + =CDATE(Parameters!Fecha.Value).ToString("dd/MM/yyyy") + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre: + + + + =Parameters!ClienteNombre.Value + + + + + + + =Parameters!ClienteDireccion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Acepto de conformidad + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Area de Sello y Fecha Recepción + + + + + + + Textbox69 + 1.1706in + 2.94478in + 0.25in + 1.971in + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Éste documento es una representación impresa de un CFDi + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + 20.98246cm + 0.01861cm + 7.22972cm + 20.05706cm + 16 + + = (Parameters!AplicaPagare.Value="0" ORelse Parameters!AplicaPagare.Value="") + + + + + + + + + + 1.50708cm + + + 1.81634cm + + + 1.63629cm + + + 11.11681cm + + + 1.8977cm + + + 2.0429cm + + + + + 0.52063cm + + + + + true + + + + + Cantidad + + + + + + + Textbox34 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + UM + + + + + + + Textbox14 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Codigo + + + + + + + Textbox15 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Descripción + + + + + + + Textbox79 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + P. Unitario + + + + + + + Textbox84 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Importe + + + + + + + + + + + + + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.4148cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad1 + + + + + + + + + + #4f81bd + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + + + + + + + =Fields!SATClaveUM.Value + + + + + + + UM + + + + + + + + + + + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!SATClaveProdServ.Value + + + + + + + SATClaveProdServ + + + + + + + + + + + + + #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!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + #4f81bd + + + #4f81bd + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.08406cm + + + + + true + true + + + + + + + + + #4f81bd + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + #4f81bd + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + #4f81bd + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + #4f81bd + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + #4f81bd + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + #4f81bd + + + + #4f81bd + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.66273cm + 0.11469cm + 1.01949cm + 20.01712cm + 17 + + + + + + true + + + + + RFC: + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + External + =Parameters!QR.Value + FitProportional + 0.06275in + 0.02693in + 1.31152in + 1.73765in + + + + + + true + true + + + + + Regímen: Regímen General de Ley Personas Morales; Condiciones de pago: + + + + =IIF(Parameters!CondicionPago.Value.ToString="","No Identificado",Parameters!CondicionPago.Value) + + + + ; Método de Pago: + + + + =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) + + + + ; Num. Cta Pago: + + + + =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 9.32053cm + + + 5.68277cm + + + + + 0.4721cm + + + + + true + true + + + + + Folio Fiscal: + + + + + + + Textbox9 + + + + White + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.52062cm + + + + + true + true + + + + + No. Serie del Certificado del SAT: + + + + + + + Textbox24 + + + + White + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + Fecha y Hora de certificación: + + + + + + + Textbox26 + + + + White + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FechaCertificacion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + Certificado del Contribuyente: + + + + + + + Textbox28 + + + + White + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!CertificadoContribuyente.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.46771cm + + + + + true + true + + + + + CFC + + + + CFDI RELACIONADOS + + + + + + + Textbox35 + + + White + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.41479cm + + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox37 + + + + White + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!TipoRelacionTexto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.46771cm + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox39 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FolioFiscalRelacionado.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + =IIF(Parameters!TipoRelacionTexto.Value = "" OR Parameters!FolioFiscalRelacionado.Value = "", True,False) + + + + + =IIF(Parameters!TipoRelacionTexto.Value = "" OR Parameters!FolioFiscalRelacionado.Value = "", True,False) + + + + + =IIF(Parameters!TipoRelacionTexto.Value = "" OR Parameters!FolioFiscalRelacionado.Value = "", True,False) + + + + + DataSet1 + 0.15938cm + 5.04053cm + 3.33127cm + 15.0033cm + 2 + + + + + + true + 13.17821cm + 0.04629cm + 4.44266cm + 20.04383cm + 19 + + + + + + true + true + + + + + =Parameters!ClienteDatoExtra1.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 3.15414cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.6cm + + + + + true + true + + + + + =Replace(Parameters!Moneda.Value,"Pesos","Peso mexicano") + + + + + + + Textbox47 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.52863cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + 2.52863cm + + + true + true + + + + + Moneda + + + + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + Before + + + + DataSet1 + 5.84097cm + 14.47429cm + 1.2cm + 5.68277cm + 21 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + + + + + + + + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + + + 1pt + + + + 1pt + + + + 1pt + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Replace(Parameters!ImporteLetra.Value,"M.N.","MXN")) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + true + + + + + + 0.6cm + + + + + true + true + + + + + Método de pago: + + + + + + + Textbox130 + + + + + 1pt + + + + 1pt + + + + 1pt + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) + + + + + + + Textbox131 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + Forma de pago: + + + + + + + Textbox23 + + + + + 1pt + + + + 1pt + + + + 1pt + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FormaPago.Value + + + + + + + + + + + Textbox41 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.66668cm + + + + + true + true + + + + + Uso CFDI: + + + + + + + Textbox43 + + + + + 1pt + + + + 1pt + + + + 1pt + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!UsoCFDI.Value + + + + + + + Textbox44 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.8cm + + + + + true + true + + + + + Sello digital del CFDI: + + + + + + + Textbox132 + + + + + 1pt + + + + 1pt + + + + 1pt + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SelloCFDI.Value + + + + + + + Textbox133 + + + Top + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.2cm + + + + + true + true + + + + + Sello del SAT: + + + + + + + Textbox134 + + + + + 1pt + + + + 1pt + + + + 1pt + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SelloSAT.Value + + + + + + + Textbox135 + + + Top + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + Cadena original del complemento de certificación digital del SAT: + + + + + + + Textbox136 + + + + + + + + + + + + + + 1pt + + #4f81bd + Middle + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!CadenaOriginal.Value + + + + + + + Textbox6 + + + + + + + + + + + + + + 1pt + + Middle + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84097cm + 0.10736cm + 7.26668cm + 14.32787cm + 22 + + + + + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 0.11382cm + 0.05336cm + 0.54004cm + 20.00281cm + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox29 + 0.83025cm + 4.33636cm + 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 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox21 + + + #4f81bd + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox11 + + + #4f81bd + 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 + 2.83462cm + 0.85604cm + 15.30142cm + 3 + + + + + + true + true + + + + + VERSION 3.3 + + + + + + + Textbox5 + 2.28775cm + 17.08931cm + 0.6cm + 3.06609cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + 17.79725cm + 0.05538cm + 2.97096cm + 20.1554cm + 23 + + =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) + + + + + + + 28.21218cm + + + + + + + Textbox3 + 0.10583cm + 16.30721cm + 0.6cm + 3.95896cm + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm +