diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index 11082be1a..a29f07cc5 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -4298,8 +4298,8 @@
-
-
+
+
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index a783af20a..ced6650d3 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -5025,6 +5025,7 @@ Partial Class Ventas
BtnArchivoAdjunto.Visible = True
BtnEliminarAdjunto.Visible = False
BtnAdjuntar.Visible = False
+ BtnReemplazarAdjunto.Visible = True
End If
ViewState("CveSubProyectoVenta") = DbRowVenta("CveSubProyecto").ToString().ToEntero()
@@ -16839,6 +16840,11 @@ Partial Class Ventas
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
DtMovtos = DtMovtos.FiltraParametros($"{If(CveVenta < 0, $"Tipo = 'Ant'{If(DdlTipoComprobante.SelectedValue = "Ing", $" AND CveMoneda ={DdlMoneda.SelectedValue.ToEntero()}", "")} ", "")}")
End If
+
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ DtMovtos = Me.TmpDTAnticiposNCIxCCliente.FiltraParametros($"Saldo > 0 And SaldoSubtotal > 0 {If(CveVenta < 0, $"AND Tipo IN('RNC','IxC','Ant') {If(DdlTipoComprobante.SelectedValue = "Ant", "AND Tipo = 'NC'", "")} ", "")}")
+ End If
+
GVAnticipos.DataSource = DtMovtos
If ObjMovtos.DtResultados.SUM("Saldo", "Saldo > 0 AND SaldoSubtotal > 0 AND Tipo = 'Ant'") > 0 Then
@@ -36271,6 +36277,10 @@ Partial Class Ventas
End Sub
Protected Sub btnGuardarAdjunto_Click(sender As Object, e As System.EventArgs) Handles btnGuardarAdjunto.Click
+ GuardarArchivoAdjunto()
+ End Sub
+
+ Private Sub GuardarArchivoAdjunto()
If Not txtAdjuntar.getfiles().Archivos.Count > 0 Then
Alert("Tiene que cargar un archivo.", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -36287,7 +36297,7 @@ Partial Class Ventas
Try
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Adjunto = String.Format("{0}-{1}.{2}", LblSerie.Text, TxtFolio.Text, FileExtension)
- Dim objVentas As New ClsVentas
+
Dim Path As String
Path = String.Format("{0}Ventas", UsuarioActual.Empresa.Ruta)
If Not Directory.Exists(Path) Then
@@ -36298,17 +36308,24 @@ Partial Class Ventas
File.Delete(Path)
End If
My.Computer.FileSystem.MoveFile(fileItem.FileUrl, Path)
+
+ If File.Exists(Path) AndAlso Me.CveVenta > 0 Then
+ Using ObjVta As New ClsVentasTemp
+ If ObjVta.UpdateVentaAdjunto(Me.CveVenta, Adjunto, UsuarioActual.CveEmpresa) Then
+ Alert("Documento cargado", TipoMensaje.MsgInformacion)
+ End If
+ End Using
+ End If
+
BtnAdjuntar.Visible = False
BtnArchivoAdjunto.Text = Adjunto
BtnArchivoAdjunto.Visible = True
BtnEliminarAdjunto.Visible = True
- Alert("Documento cargado", TipoMensaje.MsgInformacion)
- objVentas.Dispose()
+ BtnReemplazarAdjunto.Visible = False
Catch ex As Exception
OnError("Error al cargar archivo", ex)
End Try
-
End Sub
Protected Sub BtnArchivoAdjunto_Click(sender As Object, e As System.EventArgs) Handles BtnArchivoAdjunto.Click
@@ -38911,5 +38928,184 @@ Partial Class Ventas
DdlGiro.Items.Insert(0, New ListItem("Seleccione", "-1"))
UpAgregarCliente.Update()
End Sub
+
+
+ Public Class ClsVentasTemp
+ Implements IDisposable
+
+#Region "Campos"
+
+ 'SQL
+ Private SqlConexion As SqlClient.SqlConnection
+ Private SqlAdapter As SqlClient.SqlDataAdapter
+ Private SqlCommand As SqlClient.SqlCommand
+ Private SqlTransacc As SqlClient.SqlTransaction
+ Private Data As DataTable
+ Private Dataset As DataSet
+
+ 'Atributos de la clase
+ Private disposedValue As Boolean = False ' Para detectar llamadas redundantes
+ Private CveConexion As Integer = 0
+ Private EsTransaccionCompartida As Boolean = False
+
+#End Region
+
+#Region "Propiedades"
+ Public ReadOnly Property DtResultados() As DataTable
+ Get
+ DtResultados = Data
+ End Get
+ End Property
+
+#End Region
+
+ Public Function IniciaTransacSQL() As SqlClient.SqlTransaction
+ If SqlTransacc Is Nothing Then SqlTransacc = SqlConexion.BeginTransaction()
+ Return SqlTransacc
+ End Function
+
+ Public Sub Commit()
+ SqlTransacc.Commit()
+ End Sub
+ Public Sub RollBack()
+ SqlTransacc.Rollback()
+ End Sub
+
+ Sub New(Optional TransaccionCompartida As SqlClient.SqlTransaction = Nothing, Optional UsuarioActual As Usuario = Nothing)
+
+ If TransaccionCompartida Is Nothing Then
+ SqlConexion = New SqlClient.SqlConnection
+ SqlConexion.ConnectionString = If(UsuarioActual IsNot Nothing, UsuarioActual.RutaDB, ClsPaginas.UsuarioActualRutaDB)
+
+ Try
+ SqlConexion.Open()
+ Catch ex As Exception
+ OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex)
+ End Try
+ Else
+ SqlConexion = TransaccionCompartida.Connection
+ SqlTransacc = TransaccionCompartida
+ EsTransaccionCompartida = True
+ End If
+ SqlAdapter = New SqlClient.SqlDataAdapter("", SqlConexion)
+ ConexionAdd()
+
+ End Sub
+ Private Sub DataAdapter(ByVal pStrSQL As String, Optional ByVal TipoComando As CommandType = CommandType.StoredProcedure)
+ With SqlAdapter.SelectCommand
+ .Parameters.Clear()
+ .CommandText = pStrSQL
+ .CommandType = TipoComando
+ End With
+ If Not SqlTransacc Is Nothing Then SqlAdapter.SelectCommand.Transaction = SqlTransacc
+ Data = New DataTable
+ End Sub
+
+#Region "Conexiones"
+
+ Private Sub ConexionAdd()
+ If Not EsTransaccionCompartida AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
+ Try
+ DataAdapter("PA_Sis_RegistrarConexion")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@Clase", SqlDbType.VarChar).Value = Me.GetType().Name
+ .Add("@Modulo", SqlDbType.VarChar).Value = String.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString, HttpContext.Current.Request.QueryString.ToString)
+ .Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output
+ End With
+ SqlAdapter.Fill(Data)
+ CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero
+ Catch ex As Exception
+ OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ End If
+ End Sub
+
+ Private Sub ConexionClose()
+ If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
+
+ DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text)
+
+ Try
+ SqlAdapter.Fill(Data)
+
+ Catch ex As Exception
+ OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+ CveConexion = 0
+ End If
+
+ End Sub
+#End Region
+
+
+ Public Function UpdateVentaAdjunto(CveVenta As Integer, Adjunto As String, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_VentaAdjuntoUpdate")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@Adjunto", SqlDbType.VarChar).Value = Adjunto
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al actualizar el adjunto de la venta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
+
+#Region "IDisposable Support"
+
+
+ ' IDisposable
+ Protected Overridable Sub Dispose(disposing As Boolean)
+ If Not Me.disposedValue Then
+ If disposing Then
+ ' TODO: dispose managed state (managed objects).
+
+
+
+ If Not Data Is Nothing Then Data.Dispose() : Data = Nothing
+ If Not Dataset Is Nothing Then Dataset.Dispose() : Dataset = Nothing
+ If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing
+ If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing
+ If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing
+ If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close()
+ If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing
+
+
+
+ End If
+
+ ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below.
+ ' TODO: set large fields to null.
+ End If
+ Me.disposedValue = True
+ End Sub
+
+ ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources.
+ 'Protected Overrides Sub Finalize()
+ ' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above.
+ ' Dispose(False)
+ ' MyBase.Finalize()
+ 'End Sub
+
+ ' This code added by Visual Basic to correctly implement the disposable pattern.
+ Public Sub Dispose() Implements IDisposable.Dispose
+ ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above.
+ ConexionClose()
+ Dispose(True)
+ GC.SuppressFinalize(Me)
+ End Sub
+#End Region
+ End Class
+
+
End Class