diff --git a/Ventas/CatPS.aspx.vb b/Ventas/CatPS.aspx.vb
index eb24c6069..8a5b17b99 100644
--- a/Ventas/CatPS.aspx.vb
+++ b/Ventas/CatPS.aspx.vb
@@ -290,40 +290,39 @@ Partial Class CatPS
#Region "P R O D U C T O S A D I C I O N A L E S"
- Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, CodigoPS As String, PSAdicional As String, Cantidad As Decimal, Opcion As Integer) As Boolean
+ Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, CodigoPS As String, PSAdicional As String, Cantidad As Decimal, Opcion As Integer) As String
+ Dim Retorno As String = ""
If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then
Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) & "," & UsuarioActual.CveEmpresa ' agregamos la empresa actual
Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x))
For Each Franquicia As Integer In EmpresasFranquicia
- Dim CvePSPagina As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", CodigoPS)).ToEntero
+ Dim CvePSPagina As Integer = GlobalDTPS(Franquicia, Codigo:=CodigoPS).FiltroPrimeroValor("CvePS", "").ToEntero
Dim CvePSAdicional As Integer
- If Opcion = 1 Then CvePSAdicional = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", PSAdicional)).ToEntero
+ If Opcion = 1 Then CvePSAdicional = GlobalDTPS(Franquicia,, Codigo:=PSAdicional).FiltroPrimeroValor("CvePS", "").ToEntero
If CvePSPagina <= 0 Then
- Alert(String.Format("El producto de la página no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia)
- Return False
+ Return String.Format("El producto:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa"))
End If
If CvePSAdicional <= 0 AndAlso Opcion = 1 Then
- Alert(String.Format("El producto adicional no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia)
- Return False
+ Return String.Format("El producto adicional:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa"))
End If
If Opcion = 1 Then
If Not ObjPS.AddPSAdicionales(CvePSPagina, CvePSAdicional, Cantidad) Then
- Return False
+ Return "no se pudo registrar"
End If
End If
If Opcion = 2 Then
If Not ObjPS.RemovePSAdicionales(CvePSPagina, -1) Then
- Return False
+ Return "No se pudo eliminar"
End If
End If
Next
End If
- Return True
+ Return ""
End Function
Private Sub LnkExcelPSAdicional_Click(sender As Object, e As EventArgs) Handles LnkExcelPSAdicional.Click
@@ -391,44 +390,49 @@ Partial Class CatPS
Try
Dim ContadorRegistros As Integer = 0
- Dim ObjPS As New ClsProductosServicios
- ObjPS.IniciaTransacSQL()
+ Dim ObjPS As ClsProductosServicios
+ Dim dtPS As DataTable = dt.FiltraParametros("", DistinctColumns:={"CodigoProducto"})
+ Dim strNoCargados As New StringBuilder
'antes de iniciar la carga se limpiarán los asignados, se filtran por codigops
- For Each Row As DataRow In dt.FiltraParametros("", DistinctColumns:={"CodigoProducto"}).Rows
- If Not GuardarProductosEquivalenteEnFranquicia(ObjPS, Row("CodigoProducto").ToString.Trim, "", 0, 2) Then
+ For Each Row As DataRow In dtPS.Rows
+ ObjPS = New ClsProductosServicios
+ ObjPS.IniciaTransacSQL()
+ ErrorExcel = False
+ Dim msgg As String = GuardarProductosEquivalenteEnFranquicia(ObjPS, Row("CodigoProducto").ToString.Trim, "", 0, 2)
+ If msgg = "" Then ''eliminar los ps
+ For Each dr As DataRow In dt.FiltraParametros($"CodigoProducto='{ Row("CodigoProducto").ToString.Trim}'").Rows
+ Dim CodigoPS As String = dr("CodigoProducto").ToString
+ Dim CodigoPSAdicional As String = dr("CodigoProductoAdicional").ToString
+ Dim Cantidad As Integer = dr("CantidadFija").ToString.ToEntero
+ If GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) <> "" Then
+ ErrorExcel = True
+ strNoCargados.AppendFormat("código:{0} Adicional:{1}", dr("CodigoProducto").ToString, dr("CodigoProductoAdicional").ToString)
+ Exit For
+ End If
+ ContadorRegistros = ContadorRegistros + 1
+ Next
+ Else
ErrorExcel = True
- Exit For
+ strNoCargados.AppendFormat(" {0}
", msgg)
End If
+ If Not ErrorExcel Then
+ ObjPS.Commit()
+ Else
+ ObjPS.RollBack()
+ End If
+ ObjPS.Dispose()
Next
- If Not ErrorExcel Then
- For Each Row As DataRow In dt.Rows
- Dim CodigoPS As String = Row("CodigoProducto").ToString
- Dim CodigoPSAdicional As String = Row("CodigoProductoAdicional").ToString
- Dim Cantidad As Integer = Row("CantidadFija").ToString.ToEntero
- If Not GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) Then
- ErrorExcel = True
- Exit For
- End If
- ContadorRegistros = ContadorRegistros + 1
- Next
- End If
- If Not ErrorExcel Then
- ObjPS.Commit()
+
+ If ContadorRegistros > 1 Then
Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) & "," & UsuarioActual.CveEmpresa ' agregamos la empresa actual
Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x))
'regenerar el global de cada empresa
For Each Franquicia As Integer In EmpresasFranquicia
GlobalDTPSAdicionales(-1, Franquicia) = Nothing
Next
-
- Alert($"{ContadorRegistros} Registros aplicados.")
- Else
- ObjPS.RollBack()
- Alert($"Ocurrió un error al cargar los productos.", TipoMensaje.MsgAdvertencia)
End If
-
-
+ Alert($"{ContadorRegistros} Registros aplicados.
{If(strNoCargados.Length > 0, strNoCargados.ToString, "")}")
Catch ex As Exception
Alert("No se pudo cargar el excel", TipoMensaje.MsgAdvertencia)
GuardaLog(ex.Message)