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/ClsClientes.vb b/App_Code/ClsClientes.vb
index 40d862b7f..b1400d88a 100644
--- a/App_Code/ClsClientes.vb
+++ b/App_Code/ClsClientes.vb
@@ -1794,10 +1794,91 @@ Public Class ClsClientes
End Try
Return Retorno
- End Function
-
+ End Function
+
+ Public Function GetClientePagare(CveCliente As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_ClientePagareGet")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveCliente", SqlDbType.Int).Value = CveCliente
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrio un error al obtener el registro de pagaré del cliente", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
+ Public Function AddClientePagare(CveCliente As Integer, CveEmpresa As Integer, AvalNombre As String, Direccion As String) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_ClientePagareAdd")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveCliente", SqlDbType.Int).Value = CveCliente
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@AvalNombre", SqlDbType.VarChar).Value = AvalNombre
+ .Add("@Direccion", SqlDbType.VarChar).Value = Direccion
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrio un error al ingresar el registro de pagaré del cliente", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
+ Public Function UpdateClientePagare(CveClienteAval As Integer, Optional CveCliente As Integer = -1, Optional CveEmpresa As Integer = -1, Optional AvalNombre As String = "-1",
+ Optional Direccion As String = "-1") As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_ClientePagareUpdate")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveClienteAval", SqlDbType.Int).Value = CveClienteAval
+ .Add("@CveCliente", SqlDbType.Int).Value = CveCliente
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@AvalNombre", SqlDbType.VarChar).Value = AvalNombre
+ .Add("@Direccion", SqlDbType.VarChar).Value = Direccion
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrio un error al actualizar el registro de pagaré del cliente", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
+ Public Function DeleteClientePagare(CveClienteAval As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_ClientePagareDelete")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveClienteAval", SqlDbType.Int).Value = CveClienteAval
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrio un error al eliminar el registro de pagaré del cliente", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
+
#End Region
-
+
#Region "GRAFICAS"
Public Function GetRotacionCartera(CveCliente As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean
Dim Retorno As Boolean = False
diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb
index 39578f6b3..c42ee329b 100644
--- a/App_Code/ClsContabilidad.vb
+++ b/App_Code/ClsContabilidad.vb
@@ -4609,26 +4609,10 @@ Public Class ClsContabilidad
Return Retorno
End Function
- Public Function GetMonedas() As Boolean
+ Public Function GetAgrupadoresSAT() As Boolean
Dim Retorno As Boolean = False
- DataAdapter(" SELECT * FROM Monedas ".ToString, CommandType.Text)
-
- Try
- SqlAdapter.Fill(Data)
- Retorno = True
- Catch ex As Exception
- OnError("Ocurrió un error al consultar las Monedas.", ex)
- End Try
-
- Return Retorno
- End Function
-
- Public Function GetAgrupadoresSAT(CveEmpresa As Integer) As Boolean
- Dim Retorno As Boolean = False
-
- DataAdapter(" SELECT CveAgrupadorSAT, Codigo + REPLICATE(' ', 10 - len(Codigo)) + ' - ' + Nombre AS CodigoNombre FROM AgrupadoresSAT where CveEmpresa= '" & CveEmpresa & "'", CommandType.Text)
-
+ DataAdapter("PA_Conta_AgrupadoresSATGet")
Try
SqlAdapter.Fill(Data)
Retorno = True
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/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 569d3c0fe..251ad2993 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -1175,7 +1175,7 @@ Public Class ClsPaginas
ObjPS.Dispose()
End Get
End Property
- Public Property GlobalDTPSSimplificado(CveEmpresa As Integer, Optional CveClasificacion As Integer = -1, Optional PSCodigo As String = "-1", Optional Estatus As Integer = 1, Optional AplicaParaVenta As Integer = -1) As DataTable
+ Public Property GlobalDTPSSimplificado(CveEmpresa As Integer, Optional CveClasificacion As Integer = -1, Optional PSCodigo As String = "-1", Optional Estatus As Integer = 1, Optional AplicaParaVenta As Integer = -1, Optional CvePS As Integer = -1) As DataTable
Get
Dim AppNombre As String = String.Format("GlobalDTPSSimplificado{0}", CveEmpresa)
If CveEmpresa <> -1 Then
@@ -1195,6 +1195,7 @@ Public Class ClsPaginas
If PSCodigo <> "-1" Then Cons = Cons.Where((Function(a) Convert.ToString(a!PSCodigo) = PSCodigo))
If Estatus >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!CveEstado) = Estatus))
If AplicaParaVenta >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!AplicaParaVenta) = AplicaParaVenta))
+ If CvePS >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!CvePS) = CvePS))
Try
GlobalDTPSSimplificado = Cons.OrderBy(Function(a) a!PSCodigo).CopyToDataTable
@@ -1727,19 +1728,16 @@ Public Class ClsPaginas
End Property
Property GlobalDTAlmacen(CveEmpresa As Integer, Optional CveTipoAlmacen As Integer = -1, Optional CveEstatus As Integer = 1) As DataTable
Get
- If CveEmpresa <> -1 Then
- Dim Str As New StringBuilder
- Str.AppendFormat(" CveEmpresa = {0} ", CveEmpresa)
- If CveTipoAlmacen > 0 Then Str.AppendFormat("AND CveTipoAlmacen = {0}", CveTipoAlmacen)
- If CveEstatus > 0 Then Str.AppendFormat("AND CveEstatus = {0}", CveEstatus)
+ Dim Str As New StringBuilder
+ Str.Append("1=1 AND ")
+ If CveEmpresa <> -1 Then Str.AppendFormat(" CveEmpresa = {0} ", CveEmpresa)
+ If CveTipoAlmacen > 0 Then Str.AppendFormat("AND CveTipoAlmacen = {0}", CveTipoAlmacen)
+ If CveEstatus > 0 Then Str.AppendFormat("AND CveEstatus = {0}", CveEstatus)
- Dim Dv As New DataView(DirectCast(Application("GlobalDTAlmacen"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
- GlobalDTAlmacen = Dv.ToTable
- Dv.Dispose()
- Else
- GlobalDTAlmacen = DirectCast(Application("GlobalDTAlmacen"), DataTable)
- End If
+ Dim Dv As New DataView(DirectCast(Application("GlobalDTAlmacen"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
+ GlobalDTAlmacen = Dv.ToTable
+ Dv.Dispose()
End Get
Set(value As DataTable)
@@ -1748,18 +1746,16 @@ Public Class ClsPaginas
End Property
Property GlobalDTAlmacenUsuarios(CveUsuario As Integer, CveEmpresa As Integer, Optional CveTipoAlmacen As Integer = 1, Optional CveEstatus As Integer = 1) As DataTable
Get
- If CveEmpresa <> -1 Then
- Dim Str As New StringBuilder
- Str.AppendFormat("CveUsuario = {0} AND CveEmpresa = {1} ", CveUsuario, CveEmpresa)
- If CveTipoAlmacen > 0 Then Str.AppendFormat("AND CveTipoAlmacen = {0}", CveTipoAlmacen)
- If CveEstatus > 0 Then Str.AppendFormat("AND CveEstatus = {0}", CveEstatus)
- Dim Dv As New DataView(DirectCast(Application("GlobalDTAlmacenUsuarios"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
+ Dim Str As New StringBuilder
+ If CveEmpresa <> -1 Then Str.AppendFormat("CveUsuario = {0} AND CveEmpresa = {1} ", CveUsuario, CveEmpresa)
+ If CveTipoAlmacen > 0 Then Str.AppendFormat("AND CveTipoAlmacen = {0}", CveTipoAlmacen)
+ If CveEstatus > 0 Then Str.AppendFormat("AND CveEstatus = {0}", CveEstatus)
+
+ Dim Dv As New DataView(DirectCast(Application("GlobalDTAlmacenUsuarios"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
GlobalDTAlmacenUsuarios = Dv.ToTable
- Dv.Dispose()
- Else
- GlobalDTAlmacenUsuarios = DirectCast(Application("GlobalDTAlmacenUsuarios"), DataTable)
- End If
+ Dv.Dispose()
+
End Get
Set(value As DataTable)
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index ce6cb92d0..480201076 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -529,6 +529,42 @@ Public Class ClsVentas
Return Retorno
End Function
+ Public Function GetPagos(CveVenta As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_VentasPagosGet")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener el Pago de la Venta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+ Public Function CancelarPagos(CveVenta As Integer, CvePrePoliza As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_CancelarPagosVenta")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al cancelar los pagos de la venta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
Public Function RemoveVta_VentaPago(CveVenta As Integer, CveMetodoPago As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_VentasPagoRemove")
@@ -2786,7 +2822,7 @@ Public Class ClsVentas
Try
Dim objServicio As Cancelacion.CancelacionSoapClient = New Cancelacion.CancelacionSoapClient()
- Dim resp As Cancelacion.StructCancel = objServicio.ObtienePendientes(RFC, "UserTest", "1234567890")
+ Dim resp As Cancelacion.StructCancel = objServicio.ObtienePendientes(RFC, "UserTest", "1234567890")
If resp.Estado = 0 Then
Dim XmlPendientes As String = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(resp.Xml))
Dim theReader As IO.StringReader = New IO.StringReader(XmlPendientes)
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 045b59ec5..f6ab19071 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -4001,7 +4001,7 @@ Namespace Modelos
Dim TieneAlmacen As Boolean = False
'VALIDA QUE LA FACTURA NO TENGA PAGOS
- If ObjFactura.TipoDocto.Contiene("Ing", "Rem") AndAlso ObjFactura.Pagado > 0 Then
+ If Not EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Rem") AndAlso ObjFactura.Pagado > 0 Then
Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene pagos vinculados."
Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia
@@ -4033,7 +4033,7 @@ Namespace Modelos
End If
If ObjFactura.TipoDocto = "Ant" AndAlso ObjFactura.SaldoAmortizado > 0 Then
- Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene pagos vinculados."
+ Retorno.Mensaje = "La factura no se puede cancelar debido a que el anticipo ha sido amortizado."
Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia
Return Retorno
@@ -4285,7 +4285,7 @@ Namespace Modelos
End If
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
- If (((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20)) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20)) Then
+ If Not EsRefacturacion AndAlso ((((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20)) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20))) Then
'CUANDO SE CANCELA, LA PÓLIZA DEBE DE SER DE DIARIO
CvePrePoliza = ObjConta.AddPrePolizas("Modelos/CancelarDocumento", CvePlantillaPoliza, ObjFactura.Total, ObjFactura.Total, ObjFactura.CveMoneda, Now, ObjFactura.Cliente.Nombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
@@ -4296,8 +4296,16 @@ Namespace Modelos
MensajeError = "Ocurrió un error al generar la prepoliza de cancelación."
End If
+ ''CANCELAR PAGOS
+ 'If EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Rem", "Ant") AndAlso ObjFactura.Pagado > 0 Then
+ ' If Not ObjVentas.CancelarPagos(ObjFactura.CveVenta, CvePrePoliza) Then
+ ' ErrorCancelar = True
+ ' MensajeError = "Ocurrió un error al generar la cancelación de pagos."
+ ' End If
+ 'End If
+
'CANCELAR PAGOS
- If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
+ If Not EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
If Not ErrorCancelar Then
If Not ObjConta.PrePolizasCancelarPagos(ObjFactura.CveDevolucion, CvePrePoliza) Then
ErrorCancelar = True
@@ -4306,6 +4314,7 @@ Namespace Modelos
End If
End If
+
'CANCELA PREPOLIZA
If Not ErrorCancelar Then
ErrorCancelar = ProcesoPrepolizas(ObjFactura, ObjConta, -1, ObjFactura.DtDetalle, ObjAC, -1, ObjBancos, ObjVentas, ObjEventos, DtRemisionesRelacionadas:=DtRemisionesRelacionadas, SeCancelaRemisionProceso:=SeCancelaRemisionProceso,
diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx
index 986094a69..890fd766c 100644
--- a/Ashx/SIGWeb.ashx
+++ b/Ashx/SIGWeb.ashx
@@ -380,7 +380,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState
End If
- If usuario.Empresa.Funcionalidad(558) = "1" Then
+ If usuario.Empresa.Funcionalidad(558) = "1" AndAlso DtPSRetorno IsNot Nothing Then
Try
Dim NombreFiltroColumna As String = DtPSRetorno.Columns(3).ColumnName
DtPSRetorno = DtPSRetorno.FiltraParametros("", String.Format("{0} DESC,PSCodigo", NombreFiltroColumna))
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
")
+ 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("
Proveedor
Cuenta
Error
")
- 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("
{0}
{1}
CLABE NO PERTENECE A BANCOMER
", 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("
{0}
{1}
CLABE ES OBLIGATORIA
", 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("
{0}
{1}
NUMERO DE CUENTA CON FORMATO INCORRECTO
", 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("
{0}
{1}
CLABE CON FORMATO INCORRECTO
", 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("
{0}
{1}
CIE CON FORMATO INCORRECTO
", 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("
{0}
{1}
CUENTA BANCOMER SIN CUENTA O CIE
", 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("
")
-
-
- If TotalDetalles > 0 Then
- FormarTexto(TotalDetalles)
- CreaArchivo(2)
-
- Dim Descargas As New StringBuilder()
- Descargas.AppendFormat("
", 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}
", IDPoliza)
- Dim Mensaje As String = String.Format(" El Documento se generó correctamente.
Descargas:
{0}
", Msg.ToString)
- Alert(Mensaje.ToString, TipoMensaje.MsgInformacion, If(ChkSeguirRegistrando.Checked, "location.href =""#""", "location.href =""RepProveedoresPagos.aspx"""))
-
- 'LIMPIA
+ Dim Mensaje As String = String.Format(" El Documento se generó correctamente.
Descargas:
{0}
", Msg.ToString)
+
+
+ 'LIMPIA
TxtFolio.Text = ""
TxtObservaciones.Text = ""
TxtImporte.Text = ""
@@ -2317,6 +2317,9 @@ Partial Class Bancos_ProveedoresAbonar
'upanexo.Update()
CargaDatos() '(CveProveedor, CveMoneda, FechaI, FechaF, CveUsuarioRegistro, CveUsuarioProgramo, Serie)
+
+ Alert(Mensaje.ToString, TipoMensaje.MsgInformacion, If(ChkSeguirRegistrando.Checked And GvCxP.Rows.Count > 0, "location.href =""#""", "location.href =""RepProveedoresPagos.aspx"""))
+
'Notificación de Pago
If TxtNotificarA.Text.Trim <> "" AndAlso ChkEnviarCorreo.Checked Then
NotificacionPago(CveIE, TxtNotificarA.Text.Trim)
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index de7d61293..1ed19772f 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
@@ -16717,7 +16723,7 @@ Partial Class Compras_Compras
Dim DiferenciaPermitida = 0.6
If Math.Abs(DifTotales) > DiferenciaPermitida Then
- Alert("Los importes de los conceptos (Productos/Servicios) no cuadran con el total. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
+ Alert(String.Format("Los importes de los conceptos (Productos/Servicios) no cuadran con el total. Por favor verifique y vuelva a intentar.[{0}]", Math.Abs(DifTotales) - DiferenciaPermitida), TipoMensaje.MsgAdvertencia)
EsValido = False
ElseIf DifTotales <> 0 Then
TxtSubTotal2.Text = (TxtSubTotal2.Text.ToDouble + DifTotales).ToString
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 @@