diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 85ebb9a3a..9285ca71e 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -2519,7 +2519,14 @@ public partial class Nomina_Nomina2 : ClsPaginas if (dconr != null) { CveConcepto = dconr["CveConcepto"].ToString(); - dtxz.Columns[i].ColumnName = CveConcepto; + if (dtxz.Columns.Contains(CveConcepto)) + { + stringError = string.Format("Ocurrio un Error al procesar el excel código duplicado '{0}'({1}).", conceptocodigo, i); + } + else + { + dtxz.Columns[i].ColumnName = CveConcepto; + } } else { diff --git a/RH/RepChecadorPreAsistencia.aspx b/RH/RepChecadorPreAsistencia.aspx index 4e5443f3d..e20f1db0b 100644 --- a/RH/RepChecadorPreAsistencia.aspx +++ b/RH/RepChecadorPreAsistencia.aspx @@ -91,7 +91,6 @@
-
@@ -106,9 +105,9 @@ - + - + diff --git a/RH/RepChecadorPreAsistencia.aspx.vb b/RH/RepChecadorPreAsistencia.aspx.vb index a4d324905..685d93bec 100644 --- a/RH/RepChecadorPreAsistencia.aspx.vb +++ b/RH/RepChecadorPreAsistencia.aspx.vb @@ -327,7 +327,7 @@ Partial Class RH_RepChecadorPreAsistencia Resultados.Columns.Add("CvePersonal") Resultados.Columns.Add("NombreCompleto") - 'Resultados.Columns.Add("Codigo") + Resultados.Columns.Add("Codigo") Resultados.Columns.Add("CveSubProyecto") Resultados.Columns.Add("SalarioDiario") Resultados.Columns.Add("CveAsistenciasInasistencias") @@ -349,7 +349,7 @@ Partial Class RH_RepChecadorPreAsistencia Resultados.Columns.Add("TipoCorto") Resultados.Columns.Add("Sancion") - If DdlTurno.SelectedValue.ToEntero > 0 And DdlTipoPeriodo.SelectedValue.ToEntero > 0 And DdlRango.SelectedValue.ToEntero > 0 Then + If DdlTipoPeriodo.SelectedValue.ToEntero > 0 And DdlRango.SelectedValue.ToEntero > 0 Then Dim FiltroSubProyecto As String = "" Dim filtroturno = If(DdlTurno.SelectedValue = "-1", "", $"AND CveTurno = { DdlTurno.SelectedValue}") @@ -422,6 +422,10 @@ Partial Class RH_RepChecadorPreAsistencia Dim ContadorFaltas As Integer = 0 Dim registrosPersonal As DataTable = DTChecadorRegistros.FiltraParametros(" CvePersonal = " & dRow(0).ToString()) + Dim CveTurno As Integer = dRow("CveTurno").ToString.ToEntero + Dim DiaDescanso As Integer = GlobalDTTurno(UsuarioActual.CveEmpresa).FiltroPrimeroValor("DiaDescanso", $" CveTurno = {CveTurno} ").ToEntero - 1 'El -1 es por que en .net el domingo empieza 0 y en la sql en 1 + Dim Codigo As String = dRow("Codigo").ToString + If registrosPersonal.Rows.Count > 0 Then DTHorarioPersonal = DTHorarios.FiltraParametros(" CveChecadorHorario = " & registrosPersonal(0)("CveHorario").ToString() & "") Retardos = 0 @@ -431,7 +435,7 @@ Partial Class RH_RepChecadorPreAsistencia Dim ReRow As DataRow = Resultados.NewRow ReRow("CvePersonal") = dRow(0).ToString() ReRow("NombreCompleto") = dRow("NombreCompleto").ToString() - 'ReRow("Codigo") = dRow("Codigo").ToString() + ReRow("Codigo") = Codigo ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString() ReRow("SalarioDiario") = dRow("SalarioDiario").ToString() ReRow("CveAsistenciasInasistencias") = "-1" @@ -458,7 +462,7 @@ Partial Class RH_RepChecadorPreAsistencia Dim diaSemana As Integer = Fecha.DayOfWeek Dim Asistencia As Boolean = True - Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal) + Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal, DiaDescanso) Dim DiaLaboral As Boolean = Boolean.Parse(Horario(0)(0).ToString()) Dim HorarioEntrada As TimeSpan = TimeSpan.Parse(Horario(0)(1).ToString()) @@ -615,7 +619,7 @@ Partial Class RH_RepChecadorPreAsistencia ReRow("CvePersonal") = dRow(0).ToString() ReRow("NombreCompleto") = dRow("NombreCompleto").ToString() - 'ReRow("Codigo") = dRow("Codigo").ToString() + ReRow("Codigo") = Codigo ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString() ReRow("SalarioDiario") = dRow("SalarioDiario").ToString() @@ -651,7 +655,7 @@ Partial Class RH_RepChecadorPreAsistencia ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta End If - Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal) + Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal, DiaDescanso) Dim DiaLaboral As Boolean = Boolean.Parse(Horario(0)(0).ToString()) If Not DiaLaboral Then @@ -705,6 +709,8 @@ Partial Class RH_RepChecadorPreAsistencia Dim ContadorFaltas As Integer = 0 Dim registrosPersonal As DataTable = DTAsistenciasInasistenciasReg.FiltraParametros(" CvePersonal = " & dRow(0).ToString()) + + Dim Codigo As String = dRow("Codigo").ToString If registrosPersonal.Rows.Count > 0 Then For x As Integer = 1 To (DiasPeriodo) @@ -712,7 +718,7 @@ Partial Class RH_RepChecadorPreAsistencia Dim ReRow As DataRow = Resultados.NewRow ReRow("CvePersonal") = dRow(0).ToString() ReRow("NombreCompleto") = dRow("NombreCompleto").ToString() - 'ReRow("Codigo") = dRow("Codigo").ToString() + ReRow("Codigo") = Codigo ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString() ReRow("SalarioDiario") = dRow("SalarioDiario").ToString() @@ -765,7 +771,7 @@ Partial Class RH_RepChecadorPreAsistencia ReRow("NombreCompleto") = dRow("NombreCompleto").ToString() ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString() ReRow("SalarioDiario") = dRow("SalarioDiario").ToString() - 'ReRow("Codigo") = dRow("Codigo").ToString() + ReRow("Codigo") = Codigo ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta ReRow("PorcentajePago") = "0" ReRow("Asistio") = "False" @@ -802,8 +808,8 @@ Partial Class RH_RepChecadorPreAsistencia DtResultados = Resultados dt.Columns.Add("CvePersonal") + dt.Columns.Add("Codigo") dt.Columns.Add("NombreCompleto") - 'dt.Columns.Add("Codigo") dt.Columns.Add("Fecha1") dt.Columns.Add("Fecha2") dt.Columns.Add("Fecha3") @@ -836,6 +842,7 @@ Partial Class RH_RepChecadorPreAsistencia dt.Columns.Add("Fecha30") dt.Columns.Add("Fecha31") + Dim DTFechas As DataTable Dim DTUPersonal As DataTable @@ -845,7 +852,7 @@ Partial Class RH_RepChecadorPreAsistencia Dim ColumN As Integer = (dt.Columns.Count) - 2 - For x As Integer = 3 To dt.Columns.Count + For x As Integer = 3 To dt.Columns.Count-1 GVRegDatos.Columns(x).HeaderText = "" GVRegDatos.Columns(x).Visible = False Next @@ -866,9 +873,9 @@ Partial Class RH_RepChecadorPreAsistencia Dim RRow As DataRow = dt.NewRow RRow("CvePersonal") = pRow("CvePersonal") RRow("NombreCompleto") = pRow("NombreCompleto") - 'RRow("Codigo") = pRow("Codigo") + RRow("Codigo") = pRow("Codigo") - ColumN = 2 + ColumN = 3 Dim ResumenDia As New DataTable Dim DTTempAsistencias As New DataTable @@ -970,170 +977,219 @@ Partial Class RH_RepChecadorPreAsistencia End Sub Private Sub ReprocesarTabla() - Dim dt As New DataTable - Dim DtPersonal As New DataTable - Dim DTAsistenciasInasistencias As New DataTable - Dim objRH As New ClsRH + If DdlTipoPeriodo.SelectedValue.ToEntero > 0 And DdlRango.SelectedValue.ToEntero > 0 Then - If objRH.GetPersonalAsistenciaRegistros(FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa) Then - DTAsistenciasInasistencias = objRH.DtResultados - End If + Dim dt As New DataTable + Dim DtPersonal As New DataTable + Dim DTAsistenciasInasistencias As New DataTable - DtPersonal = GlobalDTRHPersonal(UsuarioActual.Empresa.CveEmpresa).FiltraParametros($" CveTipoPeriodo = { DdlTipoPeriodo.SelectedValue} AND CveEstado = 1 " & If(DdlTurno.SelectedValue = "-1", "", $" AND CveTurno = {DdlTurno.SelectedValue}")) - dt.Columns.Add("CvePersonal") - dt.Columns.Add("NombreCompleto") - 'dt.Columns.Add("Codigo") - dt.Columns.Add("Fecha1") - dt.Columns.Add("Fecha2") - dt.Columns.Add("Fecha3") - dt.Columns.Add("Fecha4") - dt.Columns.Add("Fecha5") - dt.Columns.Add("Fecha6") - dt.Columns.Add("Fecha7") - dt.Columns.Add("Fecha8") - dt.Columns.Add("Fecha9") - dt.Columns.Add("Fecha10") - dt.Columns.Add("Fecha11") - dt.Columns.Add("Fecha12") - dt.Columns.Add("Fecha13") - dt.Columns.Add("Fecha14") - dt.Columns.Add("Fecha15") - dt.Columns.Add("Fecha16") - dt.Columns.Add("Fecha17") - dt.Columns.Add("Fecha18") - dt.Columns.Add("Fecha19") - dt.Columns.Add("Fecha20") - dt.Columns.Add("Fecha21") - dt.Columns.Add("Fecha22") - dt.Columns.Add("Fecha23") - dt.Columns.Add("Fecha24") - dt.Columns.Add("Fecha25") - dt.Columns.Add("Fecha26") - dt.Columns.Add("Fecha27") - dt.Columns.Add("Fecha28") - dt.Columns.Add("Fecha29") - dt.Columns.Add("Fecha30") - dt.Columns.Add("Fecha31") + Dim objRH As New ClsRH - Dim DTFechas As DataTable - Dim DTUPersonal As DataTable - Dim DTVFechas As New DataView(DtResultados) - DTFechas = DTVFechas.ToTable(True, "Fecha") - DTUPersonal = DTVFechas.ToTable(True, {"CvePersonal", "NombreCompleto"}) + If objRH.GetPersonalAsistenciaRegistros(FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa) Then + DTAsistenciasInasistencias = objRH.DtResultados + End If - Dim ColumN As Integer = (dt.Columns.Count) - 2 + DtPersonal = GlobalDTRHPersonal(UsuarioActual.Empresa.CveEmpresa).FiltraParametros($" CveTipoPeriodo = { DdlTipoPeriodo.SelectedValue} AND CveEstado = 1 " & If(DdlTurno.SelectedValue = "-1", "", $" AND CveTurno = {DdlTurno.SelectedValue}")) - For x As Integer = 3 To ColumN - 1 - GVRegDatos.Columns(x).HeaderText = "" - GVRegDatos.Columns(x).Visible = False - Next + dt.Columns.Add("CvePersonal") + dt.Columns.Add("NombreCompleto") + 'dt.Columns.Add("Codigo") + dt.Columns.Add("Fecha1") + dt.Columns.Add("Fecha2") + dt.Columns.Add("Fecha3") + dt.Columns.Add("Fecha4") + dt.Columns.Add("Fecha5") + dt.Columns.Add("Fecha6") + dt.Columns.Add("Fecha7") + dt.Columns.Add("Fecha8") + dt.Columns.Add("Fecha9") + dt.Columns.Add("Fecha10") + dt.Columns.Add("Fecha11") + dt.Columns.Add("Fecha12") + dt.Columns.Add("Fecha13") + dt.Columns.Add("Fecha14") + dt.Columns.Add("Fecha15") + dt.Columns.Add("Fecha16") + dt.Columns.Add("Fecha17") + dt.Columns.Add("Fecha18") + dt.Columns.Add("Fecha19") + dt.Columns.Add("Fecha20") + dt.Columns.Add("Fecha21") + dt.Columns.Add("Fecha22") + dt.Columns.Add("Fecha23") + dt.Columns.Add("Fecha24") + dt.Columns.Add("Fecha25") + dt.Columns.Add("Fecha26") + dt.Columns.Add("Fecha27") + dt.Columns.Add("Fecha28") + dt.Columns.Add("Fecha29") + dt.Columns.Add("Fecha30") + dt.Columns.Add("Fecha31") - ColumN = 3 - For Each drow As DataRow In DTFechas.Rows - GVRegDatos.Columns(ColumN).HeaderText = String.Format("
{1}
{0}
", drow(0).ToString().ToDate.ToString("dd/MM/yyyy"), ObtenerDiaSemana(drow(0).ToString().ToDate)) - GVRegDatos.Columns(ColumN).Visible = True - ColumN = ColumN + 1 - Next + Dim DTFechas As DataTable + Dim DTUPersonal As DataTable + Dim DTVFechas As New DataView(DtResultados) + DTFechas = DTVFechas.ToTable(True, "Fecha") + DTUPersonal = DTVFechas.ToTable(True, {"CvePersonal", "NombreCompleto"}) - For Each pRow As DataRow In DtPersonal.Rows + Dim ColumN As Integer = (dt.Columns.Count) - 2 - Dim RRow As DataRow = dt.NewRow - RRow("CvePersonal") = pRow("CvePersonal") - RRow("NombreCompleto") = pRow("NombreCompleto") - 'RRow("Codigo") = pRow("Codigo") + For x As Integer = 3 To ColumN - 1 + GVRegDatos.Columns(x).HeaderText = "" + GVRegDatos.Columns(x).Visible = False + Next - ColumN = 2 + ColumN = 3 For Each drow As DataRow In DTFechas.Rows + GVRegDatos.Columns(ColumN).HeaderText = String.Format("
{1}
{0}
", drow(0).ToString().ToDate.ToString("dd/MM/yyyy"), ObtenerDiaSemana(drow(0).ToString().ToDate)) + GVRegDatos.Columns(ColumN).Visible = True + ColumN = ColumN + 1 + Next - Dim filtro As String = " CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' " - Dim ResumenDia As DataTable = DtResultados.FiltraParametros(" CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' ") + For Each pRow As DataRow In DtPersonal.Rows - Dim DTTempAsistencias As DataTable = DTAsistenciasInasistencias.FiltraParametros(" CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' ") - Dim TipoCorto As String = "" + Dim RRow As DataRow = dt.NewRow + RRow("CvePersonal") = pRow("CvePersonal") + RRow("NombreCompleto") = pRow("NombreCompleto") + 'RRow("Codigo") = pRow("Codigo") - If DTTempAsistencias.Rows.Count > 1 Then - TipoCorto = DTTempAsistencias(0)("TipoCorto").ToString() - End If + ColumN = 2 + For Each drow As DataRow In DTFechas.Rows - If TipoCorto <> "" Then + Dim filtro As String = " CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' " + Dim ResumenDia As DataTable = DtResultados.FiltraParametros(" CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' ") - If TipoCorto = "F" Then - RRow(ColumN) = "F" & "|" & filtro + Dim DTTempAsistencias As DataTable = DTAsistenciasInasistencias.FiltraParametros(" CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' ") + Dim TipoCorto As String = "" + + If DTTempAsistencias.Rows.Count > 1 Then + TipoCorto = DTTempAsistencias(0)("TipoCorto").ToString() End If - If TipoCorto = "R" Then - RRow(ColumN) = "R" & "|" & filtro - Else - If TipoCorto = "A" Then - RRow(ColumN) = "A" & "|" & filtro + If TipoCorto <> "" Then + + If TipoCorto = "F" Then + RRow(ColumN) = "F" & "|" & filtro + End If + + If TipoCorto = "R" Then + RRow(ColumN) = "R" & "|" & filtro Else - If TipoCorto = "D" Then - RRow(ColumN) = "D" & "|" & filtro + If TipoCorto = "A" Then + RRow(ColumN) = "A" & "|" & filtro Else - - If TipoCorto = "V" Then - RRow(ColumN) = "V" & "|" & filtro + If TipoCorto = "D" Then + RRow(ColumN) = "D" & "|" & filtro Else - If TipoCorto = "I" Then - RRow(ColumN) = "I" & "|" & filtro - Else - If TipoCorto = "S" Then - RRow(ColumN) = "S" & "|" & filtro - End If + If TipoCorto = "V" Then + RRow(ColumN) = "V" & "|" & filtro + Else + If TipoCorto = "I" Then + RRow(ColumN) = "I" & "|" & filtro + Else + If TipoCorto = "S" Then + RRow(ColumN) = "S" & "|" & filtro + End If + + End If End If End If End If End If - End If - Else + Else - RRow(ColumN) = "-" + RRow(ColumN) = "-" - If ResumenDia(0)("TipoCorto").ToString() = "" Then + If ResumenDia(0)("TipoCorto").ToString() = "" Then - If ResumenDia(0)("Asistio").ToString() = "True" Then - RRow(ColumN) = "A|" & filtro - End If + If ResumenDia(0)("Asistio").ToString() = "True" Then + RRow(ColumN) = "A|" & filtro + End If - If ResumenDia(0)("DiaVacacion").ToString() = "True" Then - RRow(ColumN) = "V" & "|" & filtro - Else - If ResumenDia(0)("Asistio").ToString() = "False" Then - RRow(ColumN) = "F" & "|" & filtro + If ResumenDia(0)("DiaVacacion").ToString() = "True" Then + RRow(ColumN) = "V" & "|" & filtro Else - If ResumenDia(0)("Retraso").ToString() = "True" Then - RRow(ColumN) = "R" & "|" & filtro + If ResumenDia(0)("Asistio").ToString() = "False" Then + RRow(ColumN) = "F" & "|" & filtro Else - If ResumenDia(0)("FaltaRetraso").ToString() = "True" Then - RRow(ColumN) = "FR" & "|" & filtro - lblModalMensaje.Text = "Falta por retardo" + If ResumenDia(0)("Retraso").ToString() = "True" Then + RRow(ColumN) = "R" & "|" & filtro Else - If ResumenDia(0)("Descanso").ToString() = "True" Then - RRow(ColumN) = "D" & "|" & filtro + If ResumenDia(0)("FaltaRetraso").ToString() = "True" Then + RRow(ColumN) = "FR" & "|" & filtro + lblModalMensaje.Text = "Falta por retardo" Else - If ResumenDia(0)("Inconsistencia").ToString() = "True" Then - RRow(ColumN) = "IN" & "|" & filtro + If ResumenDia(0)("Descanso").ToString() = "True" Then + RRow(ColumN) = "D" & "|" & filtro + Else + If ResumenDia(0)("Inconsistencia").ToString() = "True" Then + RRow(ColumN) = "IN" & "|" & filtro - If ResumenDia(0)("Descanso").ToString() = "True" Then - RRow(ColumN) = "IND" & "|" & filtro + If ResumenDia(0)("Descanso").ToString() = "True" Then + RRow(ColumN) = "IND" & "|" & filtro + Else + + If ResumenDia(0)("TipoCorto").ToString() = "S" Then + RRow(ColumN) = "S" & "|" & filtro + + Else + If ResumenDia(0)("TipoCorto").ToString() = "M" Then + RRow(ColumN) = "M" & "|" & filtro + + End If + End If + + + End If + End If + End If + End If + End If + End If + End If + Else + + If ResumenDia(0)("TipoCorto").ToString() = "A" Then + RRow(ColumN) = "A" & "|" & filtro + End If + + If ResumenDia(0)("TipoCorto").ToString() = "V" Then + RRow(ColumN) = "V" & "|" & filtro + Else + If ResumenDia(0)("TipoCorto").ToString() = "F" Then + RRow(ColumN) = "F" & "|" & filtro + Else + + If ResumenDia(0)("TipoCorto").ToString() = "R" Then + RRow(ColumN) = "R" & "|" & filtro + Else + If TipoCorto = "FR" Then + RRow(ColumN) = "FR" & "|" & filtro + lblModalMensaje.Text = "Falta por retardo" + Else + If ResumenDia(0)("TipoCorto").ToString() = "D" Then + RRow(ColumN) = "D" & "|" & filtro + + End If + If ResumenDia(0)("TipoCorto").ToString() = "I" Then + RRow(ColumN) = "I" & "|" & filtro + Else + If ResumenDia(0)("TipoCorto").ToString() = "C" Then + RRow(ColumN) = "C" & "|" & filtro Else - If ResumenDia(0)("TipoCorto").ToString() = "S" Then RRow(ColumN) = "S" & "|" & filtro - Else If ResumenDia(0)("TipoCorto").ToString() = "M" Then RRow(ColumN) = "M" & "|" & filtro - End If End If - End If End If End If @@ -1141,62 +1197,21 @@ Partial Class RH_RepChecadorPreAsistencia End If End If End If - Else - If ResumenDia(0)("TipoCorto").ToString() = "A" Then - RRow(ColumN) = "A" & "|" & filtro - End If - - If ResumenDia(0)("TipoCorto").ToString() = "V" Then - RRow(ColumN) = "V" & "|" & filtro - Else - If ResumenDia(0)("TipoCorto").ToString() = "F" Then - RRow(ColumN) = "F" & "|" & filtro - Else - - If ResumenDia(0)("TipoCorto").ToString() = "R" Then - RRow(ColumN) = "R" & "|" & filtro - Else - If TipoCorto = "FR" Then - RRow(ColumN) = "FR" & "|" & filtro - lblModalMensaje.Text = "Falta por retardo" - Else - If ResumenDia(0)("TipoCorto").ToString() = "D" Then - RRow(ColumN) = "D" & "|" & filtro - - End If - If ResumenDia(0)("TipoCorto").ToString() = "I" Then - RRow(ColumN) = "I" & "|" & filtro - Else - If ResumenDia(0)("TipoCorto").ToString() = "C" Then - RRow(ColumN) = "C" & "|" & filtro - Else - If ResumenDia(0)("TipoCorto").ToString() = "S" Then - RRow(ColumN) = "S" & "|" & filtro - Else - If ResumenDia(0)("TipoCorto").ToString() = "M" Then - RRow(ColumN) = "M" & "|" & filtro - End If - End If - - End If - End If - End If - End If - End If - End If End If - - End If - ColumN = ColumN + 1 + ColumN = ColumN + 1 + Next + dt.Rows.Add(RRow) Next - dt.Rows.Add(RRow) - Next - Dim stopp As Integer = 0 - DtDatosTabla = dt + Dim stopp As Integer = 0 + DtDatosTabla = dt + + End If + + End Sub - Private Function HorarioDiario(Fecha As Date, DTHorarioPersonal As DataTable) As DataTable + Private Function HorarioDiario(Fecha As Date, DTHorarioPersonal As DataTable, DiaDescanso As Integer) As DataTable Dim respuesta As New DataTable respuesta.Columns.Add("TRABAJO", System.Type.GetType("System.Boolean")) @@ -1212,9 +1227,12 @@ Partial Class RH_RepChecadorPreAsistencia Dim diaSemana As Integer = Fecha.DayOfWeek + DiaDescanso = If(DiaDescanso > -1, DiaDescanso, 0) + Select Case diaSemana Case 0 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Domingo").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Domingo").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Domingo").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("DomingoEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("DomingoSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("DomingoEntradaComida").ToString())) @@ -1222,42 +1240,48 @@ Partial Class RH_RepChecadorPreAsistencia Exit Select Case 1 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Lunes").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Lunes").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Lunes").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("LunesEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("LunesSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("LunesEntradaComida").ToString())) Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("LunesSalida").ToString())) Exit Select Case 2 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Martes").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Martes").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Martes").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MartesEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MartesSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MartesEntradaComida").ToString())) Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("MartesSalida").ToString())) Exit Select Case 3 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Miercoles").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Miercoles").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Miercoles").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MiercolesEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MiercolesSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MiercolesEntradaComida").ToString())) Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("MiercolesSalida").ToString())) Exit Select Case 4 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Jueves").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Jueves").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Jueves").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("JuevesEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("JuevesSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("JuevesEntradaComida").ToString())) Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("JuevesSalida").ToString())) Exit Select Case 5 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Viernes").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Viernes").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Viernes").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("ViernesEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("ViernesSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("ViernesEntradaComida").ToString())) Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("ViernesSalida").ToString())) Exit Select Case 6 - Drow(0) = Boolean.Parse(If(IsNothing(drp), "False", drp("Sabado").ToString())) + Drow(0) = Boolean.Parse(If(IsNothing(drp), $"{(DiaDescanso <> diaSemana).ToString}", drp("Sabado").ToString())) + 'Drow(0) = Boolean.Parse(If(IsNothing(drp), "False", drp("Sabado").ToString())) Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("SabadoEntrada").ToString())) Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("SabadoSalidaComida").ToString())) Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("SabadoEntradaComida").ToString())) diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb index de07ebba7..a280a08e7 100644 --- a/Ventas/ActualizarPrecios.aspx.vb +++ b/Ventas/ActualizarPrecios.aspx.vb @@ -91,7 +91,7 @@ Partial Class Ventas_ActualizarPrecios LblModalidad.Visible = True DivModalidad.Visible = True End If - If UsuarioActual.CveEmpresa = 189 Then + If UsuarioActual.CveEmpresa.Contiene(189, 190, 192) Then LblModalidad.Visible = True DivModalidad.Visible = True End If diff --git a/Ventas/CatPreciosLista.aspx b/Ventas/CatPreciosLista.aspx index 15b3eb16f..d694e50f9 100644 --- a/Ventas/CatPreciosLista.aspx +++ b/Ventas/CatPreciosLista.aspx @@ -30,11 +30,16 @@ - + + + + + + diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx index 596dacc42..e7eeed0e6 100644 --- a/Ventas/ProductosServicios.aspx +++ b/Ventas/ProductosServicios.aspx @@ -64,6 +64,9 @@ + + +
  • @@ -74,6 +77,9 @@
  • Bitacora Ecommerce
  • +
  • + +
  • diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index 4b87baa9e..8294ff03c 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -5,6 +5,7 @@ Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports Extensiones +Imports Microsoft.Reporting.WebForms Imports ZXing Partial Class ProductosyServicios @@ -1083,6 +1084,10 @@ Partial Class ProductosyServicios LnkUnificar.Visible = True ChkPrecioLibre.Checked = ObjProductosServicios.PrecioLibre + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + LnkGenerarEtiqueta.Visible = True + End If + If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then TxtRegistroRSCO.Text = ObjProductosServicios.DtResultados.Rows(0)("RegistroRSCO").ToString @@ -3542,12 +3547,12 @@ Partial Class ProductosyServicios 'If DdlMaterialPeligroso.SelectedValue.ToEntero > 0 And DdlEmbalaje.SelectedValue.ToEntero > 0 And DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero > 0 And CamposStringCCP.Length > 0 Then Dim ObjPS As New ClsProductosServicios(transaccionSQL) - If Not ObjPS.AddUpdateProductosServiciosComplementos(CvePS, TxtPesoKg.Text.ToDecimal, DdlMaterialPeligroso.SelectedValue.ToEntero, DdlEmbalaje.SelectedValue.ToEntero, TxtDimensiones.Text, DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero, - TxtNombreIngredienteActivo.Text.Trim, TxtNomQuimico.Text.Trim, TxtDenominacionGenerica.Text.Trim, TxtDenominacionDistintiva.Text.Trim, TxtFabricante.Text.Trim, DdlClaveFormaFarmaceutica.SelectedValue.ToEntero, DdlCondicionesEspTransporte.SelectedValue.ToEntero, - TxtRegistroSanitarioAutorizacion.Text.Trim, TxtPermisoImportacion.Text.Trim, TxtFolioImportacionVUCEM.Text.Trim, TxtNumCAS.Text.Trim, TxtRazonSocialEmpImportacion.Text, TxtNumRegistroPlagCOFEPRIS.Text.Trim, TxtDatosFabricante.Text.Trim, - TxtDatosFormulador.Text.Trim, TxtDatosMaquilador.Text.Trim, TxtUsoAutorizado.Text, DdlTipoMateria.SelectedValue.ToEntero) Then - Respuesta = False - End If + If Not ObjPS.AddUpdateProductosServiciosComplementos(CvePS, TxtPesoKg.Text.ToDecimal, DdlMaterialPeligroso.SelectedValue.ToEntero, DdlEmbalaje.SelectedValue.ToEntero, TxtDimensiones.Text, DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero, + TxtNombreIngredienteActivo.Text.Trim, TxtNomQuimico.Text.Trim, TxtDenominacionGenerica.Text.Trim, TxtDenominacionDistintiva.Text.Trim, TxtFabricante.Text.Trim, DdlClaveFormaFarmaceutica.SelectedValue.ToEntero, DdlCondicionesEspTransporte.SelectedValue.ToEntero, + TxtRegistroSanitarioAutorizacion.Text.Trim, TxtPermisoImportacion.Text.Trim, TxtFolioImportacionVUCEM.Text.Trim, TxtNumCAS.Text.Trim, TxtRazonSocialEmpImportacion.Text, TxtNumRegistroPlagCOFEPRIS.Text.Trim, TxtDatosFabricante.Text.Trim, + TxtDatosFormulador.Text.Trim, TxtDatosMaquilador.Text.Trim, TxtUsoAutorizado.Text, DdlTipoMateria.SelectedValue.ToEntero) Then + Respuesta = False + End If ' End If 'End If @@ -3566,4 +3571,25 @@ Partial Class ProductosyServicios + Protected Sub LnkGenerarEtiqueta_Click(sender As Object, e As EventArgs) + Dim CvePrecioListaPredeterminada = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "Predeterminada = True").ToEntero() + Dim DtPrecios As DataTable = Nothing + + Dim ObjVentas As New ClsProductosServicios + If ObjVentas.GetPSPrecios(CvePrecioListaPredeterminada, Me.CvePS.ToString()) AndAlso ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then + DtPrecios = ObjVentas.DtResultados.Copy() + End If + ObjVentas.Dispose() + + If DtPrecios IsNot Nothing Then + Dim DirectorioArchivo As String = "Empresas/Grales/Formatos/Etiqueta.mrt" + If System.IO.File.Exists(UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt") Then + DirectorioArchivo = UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt" + End If + Dim params As New List(Of ReportParameter) + + ImprimirPDFStimul(DirectorioArchivo, DtPrecios, params, "Precios") + End If + + End Sub End Class diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index cd845a3a1..8b9c9039a 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3436,7 +3436,7 @@ Partial Class Ventas HlAgregarExcel.Visible = True End If - If DdlTipoComprobante.SelectedValue.Contiene("Rem") Then + If DdlTipoComprobante.SelectedValue.Contiene("Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(109) <> "1" Then ' IPP 15 Julio 2017 - ERA FALSE ImgAntiPend.Visible = False UpPS.Update() @@ -3584,7 +3584,7 @@ Partial Class Ventas DivBloqueoAcceso.Visible = False End If Else - DivBloqueoacceso.Visible = False + DivBloqueoAcceso.Visible = False End If End Sub @@ -3656,7 +3656,7 @@ Partial Class Ventas End If - UsuarioActual.Empresa = ObjEmpresa.Empresa + Usuario.Empresa = ObjEmpresa.Empresa ADSSession.ADSSessionConfig.sessionUser.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, ObjEmpresa.Empresa.CveEmpresa) @@ -5061,6 +5061,10 @@ Partial Class Ventas Select Case DbRowVenta("TipoDocto").ToString() Case "Ing" + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + TxtAtencionA.Text = DbRowVenta("AtencionA").ToString() + End If + Trsaldo.Visible = True HplSaldoAuxiliar.NavigateUrl = String.Format("/Contabilidad/PopUpAuxiliar.aspx?Tipo=CxCClientes&CveCliente={0}&CveVenta={1}&TB_iframe=true&height=550&width=920", DbRowVenta("CveCliente"), DbRowVenta("CveVenta")) HplPagado.NavigateUrl = String.Format("/Contabilidad/PopUpAuxiliar.aspx?Tipo=CxCClientes&CveCliente={0}&CveVenta={1}&TB_iframe=true&height=550&width=920", DbRowVenta("CveCliente"), DbRowVenta("CveVenta")) @@ -7164,6 +7168,12 @@ Partial Class Ventas CalculaLineasAdicionales() HabilitaRemisionPublicoGeneral = 0 HabilitarRemisionesPublicoGeneral() + + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + If Not String.IsNullOrEmpty(UsuarioActual.CveTipoDocumento) Then + DdlTipoComprobante.SelectedValueExist(UsuarioActual.CveTipoDocumento) + End If + End If End If @@ -7172,6 +7182,8 @@ Partial Class Ventas End If + + 'If UsuarioActual.Empresa.Funcionalidad(705) = "1" Then ' Using ObjVentas As New ClsVentas ' If ObjVentas.GetLineasAdicionales(-1, CveCliente, -1, -1, DdlMoneda.SelectedValue.ToEntero(), MinFecha, MaxFecha, 0, UsuarioActual.CveEmpresa) Then @@ -17330,6 +17342,15 @@ Partial Class Ventas Alert("No hay una lista de precios predeterminada", TipoMensaje.MsgAdvertencia) End If + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + If RBLPago.SelectedValue = "1" Then + Dim CvePrecioListaCredito = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "ISNULL(Credito,False) = True").ToEntero() + If CvePrecioListaCredito > 0 Then + CvePrecioListaPS = CvePrecioListaCredito + End If + End If + End If + If CvePrecioListaPS > 0 Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then @@ -17584,6 +17605,10 @@ Partial Class Ventas ImgAntiPend.Visible = False End If + If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem") Then + ImgAntiPend.Visible = True + End If + TxtFechaPago.Text = NowADS().AddDays(PlazoCobranza).ToShortDateString @@ -17615,6 +17640,10 @@ Partial Class Ventas ImgAntiPend.Visible = True End If + If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem") Then + ImgAntiPend.Visible = True + End If + MostrarOpcionesPaqueteria() TrAtencionA.Visible = True @@ -18099,15 +18128,30 @@ Partial Class Ventas End If ' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR - If Not UsuarioActual.TienePermisoProceso(169) Then + If Not UsuarioActual.TienePermisoProceso(169) AndAlso RBLTipoVenta.SelectedValue.ToEntero <> 5 Then 'SOLO VALIDA EXISTENCIAS Y COSTO: SI USA INVENTARIOS, SOLO PRODUCTOS TIPO PRODUCTO, SOLO REMISIONES E INGRESOS If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") OrElse ((DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119)) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ped") And UsuarioActual.CveEmpresa.Contiene(186)))) Then Dim ObjInventarios As New ClsInventarios Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False) - Dim Existencia As Decimal = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), - CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, - RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) + + + Dim Existencia As Decimal = 0D + ''CveAlamcenFiltroDdl + + If RBLTipoVenta.SelectedValue.ToEntero = 6 Then + Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, CveAlamcenFiltroDdl, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=-1, + CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=0, PendientePorSurtir:=1, + RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) + Else + Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), + CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, + RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) + End If + + + + Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal @@ -23237,6 +23281,9 @@ Partial Class Ventas End Sub Private Sub RBLPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLPago.SelectedIndexChanged LimpiaEscondeContado() + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + RecalculaPrecios() + End If End Sub Private Function ValidaPagosContado(Optional MostrarAlertas As Boolean = True, Optional TipoDoctoViejo As String = "") As Boolean Dim Retorno As Boolean = False @@ -30638,7 +30685,7 @@ Partial Class Ventas divAnticipoMsg.Visible = False If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then - If DdlTipoComprobante.SelectedValue = "Ing" AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "4" Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "4" Then Dim DtMovtos As DataTable = Me.TmpDTAnticiposNCIxCCliente.FiltraParametros($"Saldo > 0 And SaldoSubtotal > 0 {If(CveVenta < 0, $"AND Tipo = 'NC' ", "")}") divAmortizacionTipoRelacion.Visible = False GVAnticipos.DataSource = DtMovtos @@ -37374,11 +37421,64 @@ Partial Class Ventas DdlTipoAmortizacionAnticipo_SelectedIndexChanged(DdlTipoAmortizacionAnticipo, EventArgs.Empty) divAmortizacionTipoRelacion.Visible = False + + If DdlTipoComprobante.SelectedValue = "Rem" Then + If DdlTipoAmortizacionAnticipo.Items.FindByValue("1") IsNot Nothing Then + DdlTipoAmortizacionAnticipo.Items.Remove(DdlTipoAmortizacionAnticipo.Items.FindByValue("1")) + End If + If DdlTipoAmortizacionAnticipo.Items.FindByValue("2") IsNot Nothing Then + DdlTipoAmortizacionAnticipo.Items.Remove(DdlTipoAmortizacionAnticipo.Items.FindByValue("2")) + End If + Else + If DdlTipoAmortizacionAnticipo.Items.FindByValue("1") Is Nothing Then + DdlTipoAmortizacionAnticipo.Items.Add(New ListItem("Amortización anticipo en descuento", "1")) + End If + If DdlTipoAmortizacionAnticipo.Items.FindByValue("2") Is Nothing Then + DdlTipoAmortizacionAnticipo.Items.Add(New ListItem("Amortización anticipo con nota de crédito", "2")) + End If + End If + End If UpAnticipos.Update() RegistraScript("MuestraAnticipos();", "AE") End Sub + + Private Sub RecalculaPrecios() + If TmpDT IsNot Nothing Then + For Each Row As DataRow In TmpDT.Rows + Dim Cantidad As Decimal = Row("Cantidad").ToString().ToDecimal() + Dim CveClasificacion As Integer = Row("CveClasificacion").ToString().ToEntero + Dim CvePS As Integer = Row("CvePS").ToString().ToEntero + + Dim ObjPrecioSugerido As Modelos.MPrecioSugerido = CalculaPrecioSugerido(CvePS, CveClasificacion) + If ObjPrecioSugerido.PrecioSugerido > 0 Then + Dim PU As Decimal = ObjPrecioSugerido.PrecioSugerido.RoundSQL(6) + + Dim ObjDescuento As Modelos.VentaDescuentos = CalcularDescuentos(CvePS, Cantidad, PU) + If ObjDescuento.EsPUModificado Then + PU = ObjDescuento.PU + End If + + Row("PU") = PU + + Dim TotalCalculableImpuestos As Decimal = ((Cantidad * PU) - (ObjDescuento.ImporteDescuento)) + Dim TotalCalculableImpuestosIVA As Decimal = 0 + TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + Row("PorcentajeIEPS").ToString().ToDecimal) + + Row("ImporteIVA") = (Row("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestosIVA).RoundSQL(NumeroDecimales) + + Row("Descuento") = (ObjDescuento.ImporteDescuento).RoundSQL(NumeroDecimales) + Row("Total") = (Cantidad * PU) + Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales) + End If + Next + + Me.CalculaTotalesVenta() + End If + + End Sub + End Class