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)