diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index 912ed24d9..bd72d8ceb 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -4,6 +4,7 @@ Option Explicit On Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.[Shared].Json +Imports DocumentFormat.OpenXml.Presentation Imports Extensiones Imports Microsoft.Ajax.Utilities Imports Profact.TimbraCFDI40 @@ -2283,7 +2284,9 @@ Public Class ClsRH End Try Return Retorno End Function - Public Function UpdateSalarios(CvePersonal As Integer, Fecha As String, CveUsuario As Integer, CveEmpresa As Integer, SalarioDiario As Double, SDI As Double, SalarioDiarioSS As Double, SalarioDiarioPago As Double, Optional CalcularSDI As Boolean = False) As Boolean + Public Function UpdateSalarios(CvePersonal As Integer, Fecha As String, CveUsuario As Integer, CveEmpresa As Integer, SalarioDiario As Double, SDI As Double, + SalarioDiarioSS As Double, SalarioDiarioPago As Double, Optional CalcularSDI As Boolean = False, Optional ActualizaSalarioV As Boolean = False, + Optional OrigenU As String = "") As Boolean Dim Retorno As Boolean = False SqlDataAdapter("PA_RH_PersonalUpdateSalarios") With SqlAdapter.SelectCommand.Parameters @@ -2296,6 +2299,8 @@ Public Class ClsRH .Add("@SDI", SqlDbType.Money).Value = SDI .Add("@SalarioDiarioSS", SqlDbType.Money).Value = SalarioDiarioSS .Add("@CalcularSDI", SqlDbType.Bit).Value = CalcularSDI + .Add("@ActualizaSalarioV", SqlDbType.Bit).Value = ActualizaSalarioV + .Add("@OrigenU", SqlDbType.Bit).Value = OrigenU End With Try SqlAdapter.Fill(Data) diff --git a/App_Code/ClsTransportes.vb b/App_Code/ClsTransportes.vb index 07e43b962..e861b9e06 100644 --- a/App_Code/ClsTransportes.vb +++ b/App_Code/ClsTransportes.vb @@ -420,5 +420,24 @@ Public Class ClsTransportes Return Retorno End Function + + + Public Function VIA_FormularioTrip(cveTrip As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_VIA_FormularioTrip", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveTrip", SqlDbType.Int).Value = cveTrip + .Add("@CveUsuario", SqlDbType.Int).Value = cveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el importe.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function #End Region End Class diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index cfc3b5882..786b351da 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -3,6 +3,7 @@ Option Explicit On Imports System.Data Imports System.Math Imports ClosedXML.Excel +Imports DocumentFormat.OpenXml.Drawing.Diagrams Imports Extensiones @@ -1549,7 +1550,7 @@ Partial Class General_SaldosIniciales 'P R O V E E D O R E S - F A C T U R A S - ElseIf RblFormato.SelectedValue = "3" Or RblFormato.SelectedValue = "18" Then + ElseIf RblFormato.SelectedValue = "3" Then #Region "P R O V E E D O R E S - F A C T U R A S" @@ -1774,14 +1775,314 @@ Partial Class General_SaldosIniciales End If ObjCompras.Dispose() + ElseIf RblFormato.SelectedValue = "18" Then + + Dim ObjCompras As New ClsCompras + Dim ErrorCompras As Boolean = False + Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL()) + Dim CveCompra As Integer + Dim CvePrePoliza As Integer + 'Dim Contador As Integer = 0 + Dim ExisteCompra As Boolean = False + Dim DtProveedores As New DataTable + Dim NoEncontrados As Integer = 0 + Dim Encontrados As Integer = 0 + Dim RFC As String = "" + + + Try + DtProveedores = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) + + Dim drr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero("") + Dim CvePS As Integer = drr("CvePS").ToString().ToEntero() + Dim CveUnidadMedida As Integer = drr("CveUnidadMedida").ToString().ToEntero() + Dim CveClasificacion As Integer = drr("CveClasificacion").ToString().ToEntero() + Dim dtsubp As DataTable = GlobalDTSubProyectos(UsuarioActual.CveEmpresa) + + Dim CountRow As Integer = 1 + Dim LastSerieFolioTipoDoc As String = String.Empty + Dim EsDetalle As Boolean = False + For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows + Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'") + RFC = Row("RFC").ToString().Trim + Dim Serie As String = Row("Serie").ToString().Trim + Dim Folio As String = Row("Folio").ToString().Trim + Dim Fecha As Date = Row("Fecha").ToString().ToDate + Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim.ToUpper + Dim CveProveedor As Integer = 0 + If UsuarioActual.CveEmpresa = 189 Then + CveProveedor = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RazonSocial = '{RFC}'").ToString().ToEntero() + Else + CveProveedor = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString().ToEntero() + End If + GuardaLog(Sucursal + " - " + Row("Sucursal").ToString()) + Dim Moneda As String = Row("Moneda").ToString() + Dim TipoCambio As String = If(dt.Columns.Contains("Tipo Cambio"), Row("Tipo Cambio").ToString(), "1") + Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate + Dim CveMoneda As Integer = 1 + Dim CveProveedorSucursal As Integer = If(dt.Columns.Contains("CveProveedorSucursal"), Row("CveProveedorSucursal").ToString(), "0").ToEntero + Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Row("PorcentajeIVA").ToString(), "0").ToDecimal.RoundSQL + Dim ImpuestosLocales As Decimal = If(dt.Columns.Contains("ImpuestosLocales"), Row("ImpuestosLocales").ToString(), "0").ToDecimal + Dim RetIVAPorcentaje As Decimal = If(dt.Columns.Contains("RetIVAPorcentaje"), Row("RetIVAPorcentaje").ToString(), "0").ToDecimal + Dim RetISRPorcentaje As Decimal = If(dt.Columns.Contains("RetISRPorcentaje"), Row("RetISRPorcentaje").ToString(), "0").ToDecimal + Dim CveSubProyecto As Integer = GlobalDTSubProyectos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", String.Format("SubProyecto='{0}'", If(dt.Columns.Contains("SubProyecto"), Row("SubProyecto").ToString(), ""))).ToEntero + If CveSubProyecto = 0 Then CveSubProyecto = GlobalDTSubProyectos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto").ToEntero + + If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorCompras = True + If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorCompras = True + If UsuarioActual.CveEmpresa = 189 Then + If Not CveProveedor > 0 Then Alert(String.Format("No se encontró el Proveedor con la razon social: {0}", {RFC}), TipoMensaje.MsgError) : ErrorCompras = True : Exit For + Else + If Not CveProveedor > 0 Then Alert(String.Format("No se encontró el Proveedor con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorCompras = True : Exit For + End If + If Not CveProveedorSucursal > 0 Then CveProveedorSucursal = -1 + + + If LastSerieFolioTipoDoc = $"{Folio}" AndAlso UsuarioActual.CveEmpresa = 189 Then + EsDetalle = True + Else + LastSerieFolioTipoDoc = $"{Folio}" + EsDetalle = False + End If + + + Dim SubTotal As Decimal = 0 + Dim IVA As Decimal = 0 + Dim Total As Decimal = 0 + Dim Saldo As Decimal = 0 + Dim RetIVA As Decimal = 0 + Dim RetISR As Decimal = 0 + Dim IEPS As Decimal = 0 + + + If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then + For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}'").Rows + SubTotal += item("SubTotal").ToString().ToDecimal.RoundSQL + IVA += item("IVA").ToString().ToDecimal.RoundSQL + Total += item("Total").ToString().ToDecimal.RoundSQL + Saldo += item("Saldo").ToString().ToDecimal.RoundSQL + RetIVA += item("Ret IVA").ToString().ToDecimal.RoundSQL + RetISR += item("Ret ISR").ToString().ToDecimal.RoundSQL + IEPS += If(dt.Columns.Contains("IEPS"), Row("IEPS").ToString(), "0").ToDecimal.RoundSQL + Next + Else + SubTotal = Row("SubTotal").ToString().ToDecimal.RoundSQL + IVA = Row("IVA").ToString().ToDecimal.RoundSQL + Total = Row("Total").ToString().ToDecimal.RoundSQL + Saldo = Row("Saldo").ToString().ToDecimal.RoundSQL + RetIVA = Row("Ret IVA").ToString().ToDecimal.RoundSQL + RetISR = Row("Ret ISR").ToString().ToDecimal.RoundSQL + IEPS = If(dt.Columns.Contains("IEPS"), Row("IEPS").ToString(), "0").ToDecimal.RoundSQL + End If + + If PorcentajeIVA > 0 AndAlso IVA = 0 Then PorcentajeIVA = 0 + + Dim RetIVAConcepto As String = If(dt.Columns.Contains("RetIVAConcepto"), Row("RetIVAConcepto").ToString(), "").ToUpper + Dim RetISRConcepto As String = If(dt.Columns.Contains("RetISRConcepto"), Row("RetISRConcepto").ToString(), "").ToUpper + Dim CveRetIVAConcepto As Integer = If(RetIVAConcepto = "HONORARIOS", 1, If(RetIVAConcepto = "FLETES", 2, If(RetIVAConcepto = "ARRENDAMIENTO", 4, -1))) + Dim CveRetISRConcepto As Integer = If(RetISRConcepto = "HONORARIOS", 1, If(RetISRConcepto = "ARRENDAMIENTO", 2, If(RetISRConcepto = "RESICO", 4, -1))) + + TipoDocto = IIf(TipoDocto.Contiene("INGRESOS", "INGRESO", "ING", "FACTURA", "FACTURAS", ""), "Fac", "NC").ToString() + + 'RMF. falta validación de totales. + 'Temporalmente SE BORRARA + Dim Transaccion As String = "" 'Row("Transaccion2").ToString() + Dim Folio2 As String = "" 'Row("Folio2").ToString() + Dim CodProvee As String = "" 'Row("CodProvee2").ToString() + + 'Moneda + If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN", "MONEDA NACIONAL") Then + CveMoneda = 1 + ElseIf Moneda.ToUpper.Contiene("DOLARES", "DOLAR", "USD", "DÓLARES", "DÓLAR") Then + CveMoneda = 2 + End If + + 'Si no se especifica TC, se manda como pesos. + If TipoCambio = "" Then TipoCambio = "1" + If CveMoneda = 2 AndAlso TipoCambio = "1" Then + TipoCambio = GlobalTipoCambio(Fecha).ToString + End If + + + Dim IEPSDetalle As Decimal = 0 + Dim CantidadDetalle As Decimal = 0 + Dim PUDetalle As Decimal = 0 + Dim IVADetalle As Decimal = 0 + + If RblFormato.SelectedValue = "18" Then + + Dim CodigoDetalle As String = Row("Codigo").ToString + If CodigoDetalle.Trim.Length > 0 Then + Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'") + + If DrDetalles IsNot Nothing Then + CvePS = DrDetalles("CvePS").ToString().ToEntero() + CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero() + CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero() + Else + Alert($"El código del producto no se encontro, error en registro {CountRow}") + ErrorCompras = True + End If + + Else + Alert($"El código es requerido, error en registro {CountRow}") + ErrorCompras = True + End If + + + IEPSDetalle = Row("IEPS").ToString.ToDecimal + CantidadDetalle = Row("Cantidad").ToString.ToDecimal + PUDetalle = Row("PU").ToString.ToDecimal + IVADetalle = Row("IVA").ToString.ToDecimal + + If CantidadDetalle = 0 Then + Alert($"No se especifico la cantidad, error en registro {CountRow}") + ErrorCompras = True + End If + + End If + + 'PrePóliza + If Not EsDetalle Then + CvePrePoliza = ObjConta.AddPrePolizas("Compras/SaldoInicial", 1, Total, Total, CveMoneda, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + If Not CvePrePoliza > 0 Then + ErrorCompras = True + Exit For + End If + End If + + If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then + FechaVencimiento = Fecha + End If + + If Not EsDetalle Then + If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, Folio2, CveProveedor.ToEntero(), SubTotal + ImpuestosLocales, 0, 0, IVA, RetIVA, RetISR, IEPS, 0, 0, Total, Fecha, CveMoneda, TipoCambio.ToDecimal, FechaVencimiento, + False, CodProvee, 1, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedorSucursal:=CveProveedorSucursal, + NumeroReembolso:=Transaccion, PorcentajeIVA:=PorcentajeIVA, TotalOriginal:=Total, CveSubProyecto:=CveSubProyecto, CveRetIVAConcepto:=CveRetIVAConcepto, CveRetISRConcepto:=CveRetISRConcepto) Then + ErrorCompras = True + Exit For + End If + CveCompra = ObjCompras.CveCompra + + SubTotal = Row("SubTotal").ToString().ToDecimal + IVA = Row("IVA").ToString().ToDecimal + Total = Row("Total").ToString().ToDecimal + Saldo = Row("Saldo").ToString().ToDecimal + RetIVA = Row("Ret IVA").ToString().ToDecimal + RetISR = Row("Ret ISR").ToString().ToDecimal + IEPS = Row("IEPS").ToString().ToDecimal + End If + + 'Compra Detalle + If RblFormato.SelectedValue = "18" Then + + Dim TotalDetalles As Decimal = SubTotal + If PUDetalle > 0 Then + TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle + End If + + If Math.Abs(TotalDetalles - Total) > 0.01 Then + ErrorCompras = True + Alert($"Registro {CountRow} El total no councide con el calculo de los detalles, total: {Total.ToString("###,###,###.00")} calculo detatalles: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia) + Exit For + End If + + If Not ObjCompras.AddCompraDetalle(CveCompra, CveUnidadMedida, CvePS, CveSubProyecto, -1, 0, CantidadDetalle, PUDetalle, (CantidadDetalle * PUDetalle) * PorcentajeIVA, TotalDetalles, 0, "Carga Inicial", -1, IVAPorcentaje:=PorcentajeIVA, RetIVAPorcentaje:=RetIVAPorcentaje, RetISRPorcentaje:=RetISRPorcentaje, IEPSPS:=IEPSDetalle) Then + ErrorCompras = True + Exit For + End If + Else + If Not ObjCompras.AddCompraDetalle(CveCompra, CveUnidadMedida, CvePS, CveSubProyecto, -1, 0, 1, SubTotal, SubTotal * PorcentajeIVA, SubTotal, 0, "Carga Inicial", -1, IVAPorcentaje:=PorcentajeIVA, RetIVAPorcentaje:=RetIVAPorcentaje, RetISRPorcentaje:=RetISRPorcentaje) Then + ErrorCompras = True + Exit For + End If + End If + + If ImpuestosLocales > 0 Then 'se agrega como parte de la partida, sin iva. + If Not ObjCompras.AddCompraDetalle(CveCompra, CveUnidadMedida, CvePS, CveSubProyecto, -1, 0, 1, ImpuestosLocales, ImpuestosLocales, ImpuestosLocales, 0, "Carga Inicial", -1, IVAPorcentaje:=0, RetIVAPorcentaje:=0, RetISRPorcentaje:=0) Then + ErrorCompras = True + Exit For + End If + End If + Dim ConceptoContablePago As Integer = 17 + If TipoDocto = "NC" Then ConceptoContablePago = 60 + + If Not EsDetalle Then + + SubTotal = 0 + IVA = 0 + Total = 0 + Saldo = 0 + RetIVA = 0 + RetISR = 0 + IEPS = 0 + + For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}'").Rows + SubTotal += item("SubTotal").ToString().ToDecimal.RoundSQL + IVA += item("IVA").ToString().ToDecimal.RoundSQL + Total += item("Total").ToString().ToDecimal.RoundSQL + Saldo += item("Saldo").ToString().ToDecimal.RoundSQL + RetIVA += item("Ret IVA").ToString().ToDecimal.RoundSQL + RetISR += item("Ret ISR").ToString().ToDecimal.RoundSQL + IEPS += If(dt.Columns.Contains("IEPS"), Row("IEPS").ToString(), "0").ToDecimal.RoundSQL + Next + + 'PrePólizaDetalle + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, IIf(TipoDocto = "Fac", 5, 18).ToString().ToEntero(), Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveSubProyecto:=Sucursal.ToEntero(), Contabilizable:=False) Then ErrorCompras = True : Exit For + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, SubTotal, SubTotal, 6, Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), Contabilizable:=False) Then ErrorCompras = True : Exit For + + If IVA > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, IVA, IVA, 14, Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveSubProyecto:=Sucursal.ToEntero(), CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorCompras = True : Exit For + End If + + If IEPS > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, IEPS, IEPS, 25, Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveSubProyecto:=Sucursal.ToEntero(), Contabilizable:=False) Then ErrorCompras = True : Exit For + + If RetIVA > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, RetIVA, RetIVA, 15, Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveSubProyecto:=Sucursal.ToEntero(), Contabilizable:=False) Then ErrorCompras = True : Exit For + If RetISR > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, RetISR, RetISR, 16, Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveSubProyecto:=Sucursal.ToEntero(), Contabilizable:=False) Then ErrorCompras = True : Exit For + 'If ImpuestosLocales > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImpuestosLocales, ImpuestosLocales, 27, Folio, String.Format("{0}-{1}", Serie, Folio), CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveSubProyecto:=Sucursal.ToEntero()) Then ErrorCompras = True : Exit For + + 'Saldo + If Saldo < Total Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveCompra:=CveCompra, CveProveedor:=CveProveedor, Contabilizable:=False) Then ErrorCompras = True : Exit For + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveCompra:=CveCompra, CveProveedor:=CveProveedor, Contabilizable:=False) Then ErrorCompras = True : Exit For + End If + End If + Encontrados = Encontrados + 1 + + CountRow = CountRow + 1 + Next + + Catch ex As Exception + OnError("Ocurrió un error al cargar los datos", ex) + ErrorCompras = True + End Try + + If Not ErrorCompras Then + + 'If Encontrados > 0 Then + ' Alert(String.Format("Se agregaron: {0} Compras correctamente.
Se Omitieron: {1} Compras ya que ya se encuentran registradas.", Encontrados, NumRows - 1 - Encontrados), TipoMensaje.MsgInformacion) + 'Else + ' Alert(String.Format("Se agregaron: {0} Compras correctamente.", Encontrados), TipoMensaje.MsgInformacion) + 'End If + Alert(String.Format("Se agregaron: {0} Compras correctamente.", Encontrados), TipoMensaje.MsgInformacion) + 'Alert(String.Format("Se agregaron: {0} Compras correctamente. RFC:{1} ", Encontrados, RFC), TipoMensaje.MsgInformacion) + + ObjCompras.Commit() + TxtExcel.Text = "" + UpDatos.Update() + Else + Alert(String.Format("NO Se agregaron: {0} Compras.", NumRows), TipoMensaje.MsgError) + ObjCompras.RollBack() + End If + ObjCompras.Dispose() + #End Region 'C L I E N T E S - F A C T U R A S - ElseIf RblFormato.SelectedValue = "4" Or RblFormato.SelectedValue = "17" Then + ElseIf RblFormato.SelectedValue = "4" Then #Region "C L I E N T E S - F A C T U R A S" - Dim NoEncontrados As Integer = 0 Dim Encontrados As Integer = 0 Dim StrRFCNoencontrados As New StringBuilder @@ -2089,11 +2390,397 @@ Partial Class General_SaldosIniciales End If ObjVentas.Dispose() + + + ElseIf RblFormato.SelectedValue = "17" Then + Dim NoEncontrados As Integer = 0 + Dim Encontrados As Integer = 0 + Dim StrRFCNoencontrados As New StringBuilder + Dim drr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero("AplicaParaVenta = 1") + If drr Is Nothing Then + Alert("No existen productos para venta. favor de crear uno e intentar de nuevo", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Dim ObjVentas As New ClsVentas + Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL()) + Dim ObjIE As New ClsBancos(ObjVentas.IniciaTransacSQL()) + Dim ErrorVentas As Boolean = False + Dim CveVenta As Integer + Dim CvePrePoliza As Integer + Dim DtClientes As New DataTable + 'Dim ExisteVenta As Boolean = False + 'Dim Contador As Integer = 0 + DtClientes = GlobalDTCliente(UsuarioActual.CveEmpresa, Estatus:=-1) + Dim CvePS As Integer = drr("CvePS").ToString().ToEntero() + Dim CveUnidadMedida As Integer = drr("CveUnidadMedida").ToString().ToEntero() + Dim CveClasificacion As Integer = drr("CveClasificacion").ToString().ToEntero() + + If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorVentas = True + ' If Not CveSucursal > 0 Then Alert("No se encontró la sucursal.", TipoMensaje.MsgError) : ErrorVentas = True + If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorVentas = True + Dim dtsubp As DataTable = GlobalDTSubProyectos(UsuarioActual.CveEmpresa) + + 'For Each drt As DataRow In dt.FiltraParametros("RFC <> ''", DistinctColumns:={"RFC"}).Rows + ' Dim RFC As String = drt("RFC").ToString().Trim.Replace("-", "").Replace(" ", "") + ' Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero() + ' If CveCliente <= 0 Then + ' Dim OBJ As New ClsClientes + ' OBJ.AgregarClienteNoFrecuente(RFC, RFC, "", "", "", "", "", 26, RFC, "", "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", -1, -1) + ' OBJ.Dispose() + ' End If + 'Next + 'GlobalDTCliente(UsuarioActual.CveEmpresa) = Nothing + 'DtClientes = GlobalDTCliente(UsuarioActual.CveEmpresa, Estatus:=-1) + Dim CountRow As Integer = 1 + Dim LastSerieFolioTipoDoc As String = String.Empty + Dim EsDetalle As Boolean = False + For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows + Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'") + Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim + Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "") + Dim Serie As String = Row("Serie").ToString().Trim + Dim Folio As Integer = Row("Folio").ToString().ToEntero() + Dim Fecha As Date = Row("Fecha").ToString().ToDate + Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate + Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D) + Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0) + Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero() + + If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then + EsDetalle = True + Else + LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" + EsDetalle = False + End If + + + Dim SubTotal As Decimal = 0 + Dim IVA As Decimal = 0 + Dim Total As Decimal = 0 + Dim Saldo As Decimal = 0 + Dim RetIVA As Decimal = 0 + Dim RetISR As Decimal = 0 + Dim IEPS As Decimal = 0 + + If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then + + For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows + SubTotal += item("SubTotal").ToString().ToDecimal + IVA += item("IVA").ToString().ToDecimal + Total += item("Total").ToString().ToDecimal + Saldo += item("Saldo").ToString().ToDecimal + RetIVA += item("Ret IVA").ToString().ToDecimal + RetISR += item("Ret ISR").ToString().ToDecimal + IEPS += item("IEPS").ToString().ToDecimal + Next + Else + SubTotal = Row("SubTotal").ToString().ToDecimal + IVA = Row("IVA").ToString().ToDecimal + Total = Row("Total").ToString().ToDecimal + Saldo = Row("Saldo").ToString().ToDecimal + RetIVA = Row("Ret IVA").ToString().ToDecimal + RetISR = Row("Ret ISR").ToString().ToDecimal + IEPS = Row("IEPS").ToString().ToDecimal + End If + + Dim Moneda As String = Row("Moneda").ToString() + Dim TipoCambio As String = Row("Tipo Cambio").ToString() + Dim CveMoneda As Integer = 1 + Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "") + Dim CveVendedor As Integer = 0 + + Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero() + Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "") + Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0) + Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0) + Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0) + Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "") + + GuardaLog(Sucursal + "-" + Row("Folio").ToString()) + 'Temporalmente SE BORRARA + Dim Transaccion As String = "" ' Row("Transaccion2").ToString() + Dim Folio2 As String = "" ' Row("Folio2").ToString() + Dim CodCliente As String = "" 'Row("CodCliente2").ToString() + + Dim IEPSDetalle As Decimal = 0 + Dim CantidadDetalle As Decimal = 0 + Dim PUDetalle As Decimal = 0 + Dim IVADetalle As Decimal = 0 + Dim PorcentajeIEPS As Decimal = 0 + + If IEPS > 0 Then + PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0) + End If + + If RblFormato.SelectedValue = "17" Then + + Dim CodigoDetalle As String = Row("Codigo").ToString + If CodigoDetalle.Trim.Length > 0 Then + Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'") + + If DrDetalles IsNot Nothing Then + CvePS = DrDetalles("CvePS").ToString().ToEntero() + CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero() + CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero() + Else + Alert($"El código del producto no se encontro, error en registro {CountRow}") + ErrorVentas = True + End If + Else + Alert($"El código es requerido, error en registro {CountRow}") + ErrorVentas = True + End If + + IEPSDetalle = Row("IEPS").ToString.ToDecimal + CantidadDetalle = Row("Cantidad").ToString.ToDecimal + PUDetalle = Row("PU").ToString.ToDecimal + IVADetalle = Row("IVA").ToString.ToDecimal + + If CantidadDetalle = 0 Then + Alert($"No se especifico la cantidad, error en registro {CountRow}") + ErrorVentas = True + End If + + End If + + If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then + + Dim ObjCliente As New ClsClientes + If ObjCliente.GetSucursales(CveCliente) Then + If ObjCliente.DtResultados.Rows.Count > 0 Then + CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero + End If + End If + + ObjCliente.Dispose() + End If + + + 'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For + TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString() + 'PrePóliza + If Not EsDetalle Then + CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + End If + + If Vendedor <> "" Then + CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero() + If Not CveVendedor > 0 Then CveVendedor = 0 + Else + CveVendedor = 0 + End If + + 'Moneda + If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then + CveMoneda = 1 + TipoCambio = "1" + ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then + CveMoneda = 2 + + If TipoCambio.Trim.ToDecimal < 10 Then + + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString() + Else + TipoCambio = GlobalTipoCambio(Fecha).ToString() + End If + + End If + + End If + + 'Si no se especifica TC, se manda como pesos. + If TipoCambio = "" Then TipoCambio = "1" + + If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1 + + If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then + FechaVencimiento = Fecha + End If + + + 'Venta + If CveCliente > 0 Then + + + If TipoDocto.Contiene("Ing", "Egs", "Rem") Then + GuardaLog(Serie & "-" & Folio) + If Not EsDetalle Then + If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDouble, + 0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza, + UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(), + CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal, + PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then + ErrorVentas = True + Exit For + End If + CveVenta = ObjVentas.CveVenta + End If + + If Not EsDetalle Then + SubTotal = Row("SubTotal").ToString().ToDecimal + IVA = Row("IVA").ToString().ToDecimal + Total = Row("Total").ToString().ToDecimal + Saldo = Row("Saldo").ToString().ToDecimal + RetIVA = Row("Ret IVA").ToString().ToDecimal + RetISR = Row("Ret ISR").ToString().ToDecimal + IEPS = Row("IEPS").ToString().ToDecimal + End If + + If RblFormato.SelectedValue = "17" Then + + Dim TotalDetalles As Decimal = SubTotal + If PUDetalle > 0 Then + TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle + End If + + If Math.Abs(TotalDetalles - Total) > 0.01 Then + ErrorVentas = True + Alert($"Registro {CountRow} El total no councide con el calculo de los detalles, total: {Total.ToString("###,###,###.00")} calculo detatalles: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia) + Exit For + End If + + If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, + PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then + ErrorVentas = True + Exit For + End If + + Else + If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then + ErrorVentas = True + Exit For + End If + End If + + + + Dim ConceptoContable As Integer = 1 + Dim ConceptoContablePago As Integer = 2 + If TipoDocto = "Egs" Then + ConceptoContable = 12 + ConceptoContablePago = 91 + End If + + If FolioFiscal <> "" Then + If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then + ErrorVentas = True + Exit For + End If + End If + + Dim UsaComplementaria As Boolean = False + + If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True + + If Not EsDetalle Then + + SubTotal = 0 + IVA = 0 + Total = 0 + Saldo = 0 + RetIVA = 0 + RetISR = 0 + For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows + SubTotal += item("SubTotal").ToString().ToDecimal + IVA += item("IVA").ToString().ToDecimal + Total += item("Total").ToString().ToDecimal + Saldo += item("Saldo").ToString().ToDecimal + RetIVA += item("Ret IVA").ToString().ToDecimal + RetISR += item("Ret ISR").ToString().ToDecimal + IEPS += item("IEPS").ToString().ToDecimal + Next + + 'PrePólizaDetalle + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For + + If IVA > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + + If IEPS > 0 Then + 'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS) + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For + + End If + + If RetIVA > 0 Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + + If RetISR > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + + If ImpuestoLocal > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + + + If UsaComplementaria Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + + 'Saldo + If Saldo < Total Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + End If + + Else + + If Not EsDetalle Then + + SubTotal = 0 + IVA = 0 + Total = 0 + Saldo = 0 + RetIVA = 0 + RetISR = 0 + For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows + SubTotal += item("SubTotal").ToString().ToDecimal + IVA += item("IVA").ToString().ToDecimal + Total += item("Total").ToString().ToDecimal + Saldo += item("Saldo").ToString().ToDecimal + RetIVA += item("Ret IVA").ToString().ToDecimal + RetISR += item("Ret ISR").ToString().ToDecimal + IEPS += item("IEPS").ToString().ToDecimal + Next + + 'ANTICIPOS + Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1, + 1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For + End If + End If + Encontrados = Encontrados + 1 + + Else + NoEncontrados = NoEncontrados + 1 + StrRFCNoencontrados.AppendFormat("{0}
", RFC) + 'ErrorVentas = True + 'Exit For + End If + + CountRow = CountRow + 1 + Next + If Not ErrorVentas Then + Alert(String.Format("Se agregaron: {0} Ventas correctamente. {1} no encontrados
{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion) + ObjVentas.Commit() + TxtExcel.Text = "" + UpDatos.Update() + Else + Alert(String.Format("Error al registrar : {0} Ventas correctamente. {1} no encontrados
{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgError) + ObjVentas.RollBack() + End If + ObjVentas.Dispose() #End Region - - - ' R H - P E R S O N A L ElseIf RblFormato.SelectedValue = "6" Then diff --git a/Imagenes/autobus.png b/Imagenes/autobus.png new file mode 100644 index 000000000..cc13d8aa6 Binary files /dev/null and b/Imagenes/autobus.png differ diff --git a/Imagenes/sprinter.png b/Imagenes/sprinter.png new file mode 100644 index 000000000..c07dcc15e Binary files /dev/null and b/Imagenes/sprinter.png differ diff --git a/Inventarios/RecepcionAlmacen.aspx b/Inventarios/RecepcionAlmacen.aspx index 937f907e0..55ecc0e26 100644 --- a/Inventarios/RecepcionAlmacen.aspx +++ b/Inventarios/RecepcionAlmacen.aspx @@ -19,14 +19,25 @@
  •  
  • -
  • - Cargar Excel -
  • + + <%-- +
  • + Cargar Excel +
  • + --%> + + + +
  • + Cargar Excel +
  • +
    +
  • - Cargar Bitácora + Cargar Bitácora
  • diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index 03e109ac7..48cc6563d 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -7,6 +7,7 @@ Imports System.Text Imports Extensiones Imports GemBox.Spreadsheet Imports Microsoft.Reporting.WebForms +Imports Org.BouncyCastle.Asn1.X509 Partial Class Inventarios_RecepcionAlmacen Inherits ClsPaginas @@ -154,12 +155,21 @@ Partial Class Inventarios_RecepcionAlmacen ViewState("PUSerie") = value End Set End Property - Private Property CveConsecSerie As Integer + 'Private Property CveConsecSerie As Integer + ' Get + ' Return CType(ViewState("CveConsecSerie"), Integer) + ' End Get + ' Set(value As Integer) + ' ViewState("CveConsecSerie") = value + ' End Set + 'End Property + + Private Property CveCompraDetalle As Integer Get - Return CType(ViewState("CveConsecSerie"), Integer) + Return CType(ViewState("CveCompraDetalle"), Integer) End Get Set(value As Integer) - ViewState("CveConsecSerie") = value + ViewState("CveCompraDetalle") = value End Set End Property Private Property TotalGV As Decimal @@ -412,6 +422,11 @@ Partial Class Inventarios_RecepcionAlmacen End Property Private Property ArchivoBitacora As String Get + + If ViewState("ArchivoBitacora") Is Nothing Then + ViewState("ArchivoBitacora") = "" + End If + Return CType(ViewState("ArchivoBitacora"), String) End Get Set(value As String) @@ -420,6 +435,10 @@ Partial Class Inventarios_RecepcionAlmacen End Property Private Property ArchivoBitacoraDetalle As String Get + If ViewState("ArchivoBitacoraDetalle") Is Nothing Then + ViewState("ArchivoBitacoraDetalle") = "" + End If + Return CType(ViewState("ArchivoBitacoraDetalle"), String) End Get Set(value As String) @@ -1461,11 +1480,12 @@ Partial Class Inventarios_RecepcionAlmacen 'If e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then e.Row.FCButton("BtnSerie").Visible = True - e.Row.FCButton("BtnSerie").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec")) + e.Row.FCButton("BtnSerie").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}°{6}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"), e.Row.DBCampo("CveCompraDetalle")) e.Row.FCTextBox("TbCantidadF").Enabled = False e.Row.FCCheckBox("cbInv").Enabled = False - Dim Contador As Integer = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count + 'Dim Contador As Integer = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count + Dim Contador As Integer = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", e.Row.DataKey("CveCompraDetalle"))).Rows.Count e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString '' Empresa Acumuladores @@ -1577,6 +1597,12 @@ Partial Class Inventarios_RecepcionAlmacen TotalGV += (e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal + + + If UsuarioActual.TienePermisoProceso(388) Then + e.Row.FCButton("BtnSerie").Visible = False + End If + End If If e.Row.RowType = DataControlRowType.Footer Then @@ -1617,7 +1643,8 @@ Partial Class Inventarios_RecepcionAlmacen TdSeriePS.Visible = True TxtSeriePS.Focus() - CveConsecSerie = Gvr.DataKey("Consec").ToEntero + 'CveConsecSerie = Gvr.DataKey("Consec").ToEntero + CveCompraDetalle = Gvr.DataKey("CveCompraDetalle").ToEntero CvePSSerie = Gvr.DataKey("CvePS").ToEntero CveUMSerie = Gvr.DataKey("CveUM").ToEntero Exit Sub @@ -1717,7 +1744,8 @@ Partial Class Inventarios_RecepcionAlmacen CvePSSerie = Argumentos(0).ToEntero CveUMSerie = Argumentos(1).ToEntero PUSerie = Argumentos(2).ToDecimal - CveConsecSerie = Argumentos(5).ToEntero + 'CveConsecSerie = Argumentos(5).ToEntero + CveCompraDetalle = Argumentos(6).ToEntero CargaSerie(1) @@ -1732,6 +1760,8 @@ Partial Class Inventarios_RecepcionAlmacen DtDatosDetalle.Columns.Add("PU", GetType(Decimal)) DtDatosDetalle.Columns.Add("Serie", GetType(String)) DtDatosDetalle.Columns.Add("FechaCaducidad", GetType(String)) + DtDatosDetalle.Columns.Add("CveCompraDetalle", GetType(Integer)) + End If End Sub @@ -1747,11 +1777,13 @@ Partial Class Inventarios_RecepcionAlmacen 'RegistraScript("document.getElementById(""TxtSerie"").focus();") RegistraScript("$('#DivSerie').modal();", "ModalLote") - GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC") + 'GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC") + GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle), "Consec DESC") GvSerie.DataBind() 'VALIDA QUE SIGA AGREGANDO - If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < LbCantidad.Text.ToEntero Then + 'If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < LbCantidad.Text.ToEntero Then + If Not DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle)).Rows.Count < LbCantidad.Text.ToEntero Then BtnAgregarPS.Enabled = True If CerrarCompletado Then RegistraScript("$('#DivSerie').modal('hide');") @@ -1764,7 +1796,9 @@ Partial Class Inventarios_RecepcionAlmacen Dim Contador As Integer = 0 For Each Gvr As GridViewRow In GvInv.Rows If Gvr.DataKey("CvePS").ToEntero = CvePSSerie Then - Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))).Rows.Count + 'Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))).Rows.Count + Contador = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", Gvr.DataKey("CveCompraDetalle"))).Rows.Count + Gvr.FCCheckBox("cbInv").Enabled = False Gvr.FCTextBox("TbCantidadF").Enabled = False If DtDatosDetalle IsNot Nothing AndAlso Contador > 0 Then @@ -1776,7 +1810,8 @@ Partial Class Inventarios_RecepcionAlmacen End If End If - Dim Dr As DataRow = DtInv.Select($"Consec = {Gvr.DataKey("Consec")}")(0) + 'Dim Dr As DataRow = DtInv.Select($"Consec = {Gvr.DataKey("Consec")}")(0) + Dim Dr As DataRow = DtInv.Select($"CveCompraDetalle = {Gvr.DataKey("CveCompraDetalle")}")(0) Dr("CantidadSurtidaPantalla") = Gvr.FCTextBox("TbCantidadF").Text.ToDecimal DtInv.AcceptChanges() Next @@ -1810,7 +1845,10 @@ Partial Class Inventarios_RecepcionAlmacen Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltroPrimero("", "PS") For Each Serie In SeriesArreglo - DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Serie = '{Serie}'") + 'DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Serie = '{Serie}'") + DtDuplicado = DtDatosDetalle.FiltraParametros($"CveCompraDetalle = {CveCompraDetalle} AND Serie = '{Serie}'") + + If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then MensajeAlert.Append($"
    El numero de Serie ""{Serie}"" proporcionado ya se encuentra ingresado.") TxtSerie.Text = "" @@ -1836,7 +1874,8 @@ Partial Class Inventarios_RecepcionAlmacen Dim Index As Integer = 0 Dim Cantidad As Integer = LbCantidad.Text.ToEntero - If CargaMasivaSeries Then Cantidad = DtInv.FiltroPrimeroValor("CantidadF", "Consec = " & CveConsecSerie).ToEntero + 'If CargaMasivaSeries Then Cantidad = DtInv.FiltroPrimeroValor("CantidadF", "Consec = " & CveConsecSerie).ToEntero + If CargaMasivaSeries Then Cantidad = DtInv.FiltroPrimeroValor("CantidadF", "CveCompraDetalle = " & CveCompraDetalle).ToEntero 'DtInv For Each Serie In SeriesArreglo @@ -1847,7 +1886,8 @@ Partial Class Inventarios_RecepcionAlmacen If Index > Cantidad Then Exit For 'VALIDA QUE SIGA AGREGANDO - If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < Cantidad Then + 'If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < Cantidad Then + If Not DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle)).Rows.Count < Cantidad Then MensajeAlert.Append("series cargadas en su totalidad") : Exit For End If @@ -1867,7 +1907,8 @@ Partial Class Inventarios_RecepcionAlmacen End If End If - Row("ConsecId") = CveConsecSerie + 'Row("ConsecId") = CveConsecSerie + Row("CveCompraDetalle") = CveCompraDetalle Row("Consec") = DtDatosDetalle.Rows.Count + 1 Row("CvePS") = CvePSSerie Row("CveUM") = CveUMSerie @@ -1922,6 +1963,10 @@ Partial Class Inventarios_RecepcionAlmacen Dim dtt As New DataTable dtt.ReadXml(ArchivoBitacoraDetalle) DtDatosDetalle = dtt + If Not DtDatosDetalle.Columns.Contains("CveCompraDetalle") Then + DtDatosDetalle.Columns.Add("CveCompraDetalle", GetType(Integer)) + DtDatosDetalle.AcceptChanges() + End If Alert("Registro(s) Recuperados", TipoMensaje.ToastInformacion) End If CargaGVInv() @@ -1975,18 +2020,21 @@ Partial Class Inventarios_RecepcionAlmacen CvePSSerie = Argumentos(0).ToEntero CveUMSerie = Argumentos(1).ToEntero PUSerie = Argumentos(2).ToDecimal - CveConsecSerie = Argumentos(5).ToEntero + 'CveConsecSerie = Argumentos(5).ToEntero + CveCompraDetalle = Argumentos(6).ToEntero CargaLote(1) End Sub Private Sub CargaLote(Tipo As Integer, Optional CerrarCompletado As Boolean = False) RegistraScript("$('#DivLote').modal();", "ModalLote") GvLote.Columns(2).HeaderText = UsuarioActual.Empresa.Funcionalidad(147) - GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC") + 'GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC") + GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle), "Consec DESC") GvLote.DataBind() 'VALIDA QUE SIGA AGREGANDO - If Not DtDatosLoteDetalle.SUM("Cantidad", String.Format("ConsecId = {0}", CveConsecSerie)) < LbLoteCantidad2.Text.ToDecimal Then + 'If Not DtDatosLoteDetalle.SUM("Cantidad", String.Format("ConsecId = {0}", CveConsecSerie)) < LbLoteCantidad2.Text.ToDecimal Then + If Not DtDatosLoteDetalle.SUM("Cantidad", String.Format("CveCompraDetalle = {0}", CveCompraDetalle)) < LbLoteCantidad2.Text.ToDecimal Then BtnAddPSLote.Enabled = False If CerrarCompletado Then RegistraScript("$('#DivLote').modal('hide');") @@ -1999,7 +2047,9 @@ Partial Class Inventarios_RecepcionAlmacen Dim Contador As Decimal = 0 For Each Gvr As GridViewRow In GvInv.Rows If Gvr.DataKey("CvePS").ToEntero = CvePSSerie Then - Contador = DtDatosLoteDetalle.SUMD("Cantidad", String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))) + 'Contador = DtDatosLoteDetalle.SUMD("Cantidad", String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))) + Contador = DtDatosLoteDetalle.SUMD("Cantidad", String.Format("CveCompraDetalle = {0}", Gvr.DataKey("CveCompraDetalle"))) + Gvr.FCCheckBox("cbInv").Enabled = False Gvr.FCTextBox("TbCantidadF").Enabled = False If DtDatosLoteDetalle IsNot Nothing AndAlso Contador > 0 Then @@ -2049,7 +2099,8 @@ Partial Class Inventarios_RecepcionAlmacen Dim DtSeriesNuevas As New DataTable DtSeriesNuevas.Columns.Add("Serie", GetType(String)) - DtDuplicado = DtDatosLoteDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Lote = '{Lote}' ") + 'DtDuplicado = DtDatosLoteDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Lote = '{Lote}' ") + DtDuplicado = DtDatosLoteDetalle.FiltraParametros($"CveCompraDetalle = {CveCompraDetalle} AND Lote = '{Lote}' ") If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then Alert($"
    El numero de Lote ""{Lote}"" proporcionado ya se encuentra ingresado.", TipoMensaje.MsgAdvertencia) RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") @@ -2078,7 +2129,8 @@ Partial Class Inventarios_RecepcionAlmacen End If End If - Row("ConsecId") = CveConsecSerie + 'Row("ConsecId") = CveConsecSerie + Row("CveCompraDetalle") = CveCompraDetalle Row("Consec") = DtDatosDetalle.Rows.Count + 1 Row("Cantidad") = CantidadLote Row("CvePS") = CvePSSerie @@ -2716,8 +2768,12 @@ Partial Class Inventarios_RecepcionAlmacen PUExtranjero = DtInv.Rows(gvr.RowIndex)("PUExtranjero").ToString.ToDecimal 'SI FUE POR SERIE LOTE - DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero)) - DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero)) + 'DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero)) + 'DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero)) + + DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", gvr.DataKey("CveCompraDetalle").ToEntero)) + DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", gvr.DataKey("CveCompraDetalle").ToEntero)) + If DtDetalle.Rows.Count > 0 Then Dim ContDt As Integer = 0 ' por redondeo @@ -3655,7 +3711,9 @@ Partial Class Inventarios_RecepcionAlmacen ErrorMovInv = True End Try - + If Not ErrorMovInv Then + RenombrarBitacoras() + End If 'FINAL If Not ErrorMovInv Then @@ -3759,6 +3817,26 @@ Partial Class Inventarios_RecepcionAlmacen If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose() End Sub + Private Sub RenombrarBitacoras() + + + Dim fechaActual As String = DateTime.Now.ToString("yyyyMMddHHmmss") + + Dim fib As New FileInfo(ArchivoBitacora) + Dim fibd As New FileInfo(ArchivoBitacoraDetalle) + + If fib.Exists() Then + Dim nuevoNombre As String = Path.Combine(fib.DirectoryName, Path.GetFileNameWithoutExtension(fib.Name) & "_" & fechaActual & ".xml") + fib.MoveTo(nuevoNombre) + End If + + If fibd.Exists() Then + Dim nuevoNombreDetalle As String = Path.Combine(fibd.DirectoryName, Path.GetFileNameWithoutExtension(fibd.Name) & "_" & fechaActual & ".xml") + fibd.MoveTo(nuevoNombreDetalle) + End If + + End Sub + Private Function GenerarMovimientoAlmacenVenta(CveAlmacen As Integer, CveConceptoAlmacen As Integer, CveVenta As Integer, CveMovimientoRelacionado As Integer, DtDetalle As DataTable, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, EsContabilizable As Boolean, Modulo As String) As MMovimientoAlmacen Dim ErrorMovInv As Boolean = False Dim Retorno As New MMovimientoAlmacen @@ -4816,7 +4894,7 @@ Partial Class Inventarios_RecepcionAlmacen Alert("El nombre de la segunda columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If - If Not dt.Columns(2).ColumnName = "Producto" Then + If Not (dt.Columns(2).ColumnName = "Producto" Or dt.Columns(2).ColumnName = "Producto/Servicio") Then Alert("El nombre de la tercera columna debe ser 'Producto'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If @@ -4851,7 +4929,8 @@ Partial Class Inventarios_RecepcionAlmacen Dim CveProducto As Integer = RowPS("CvePS").ToString().ToEntero() Dim CveUnidadMedida As Integer = RowPS("CveUM").ToString().ToEntero() CvePSSerie = CveProducto - CveConsecSerie = DtInv.FiltroPrimeroValor("Consec", "CvePS=" & CvePSSerie).ToEntero + 'CveConsecSerie = DtInv.FiltroPrimeroValor("Consec", "CvePS=" & CvePSSerie).ToEntero + CveCompraDetalle = DtInv.FiltroPrimeroValor("CveCompraDetalle", "CvePS=" & CvePSSerie).ToEntero Dim Cantidad As Double = RowExcel("Cantidad").ToString().ToDecimal() Dim Serie As String = RowExcel("Serie").ToString() @@ -4875,7 +4954,8 @@ Partial Class Inventarios_RecepcionAlmacen If Valido Then - CveConsecSerie = RowPS("Consec").ToString.ToEntero + 'CveConsecSerie = RowPS("Consec").ToString.ToEntero + CveCompraDetalle = RowPS("CveCompraDetalle").ToString.ToEntero AgregaSerie(RowExcel("Serie").ToString, 1, False) 'AgregarPS(Cantidad, CveProducto, CveUnidadMedida, Observaciones, CveSeccionAlmacen:=DdlSeccionAlmacen.SelectedValue.ToEntero, SeccionAlmacen:=DdlSeccionAlmacen.SelectedItem.Text, Serie:=If(Not String.IsNullOrEmpty(Serie), Serie, ""), Lote:=Lote, FechaCaducidad:=FechaCaducidad, Limpia:=False) @@ -4887,7 +4967,7 @@ Partial Class Inventarios_RecepcionAlmacen Else RowsNoCargados = RowsNoCargados + 1 - ProductosNoCargados.AppendFormat("{0},", RowExcel("Producto").ToString()) + ProductosNoCargados.AppendFormat("{0},", RowExcel("Producto/Servicio").ToString()) End If End If Next @@ -4896,12 +4976,20 @@ Partial Class Inventarios_RecepcionAlmacen Finally Dim MensajeFinal As New StringBuilder() + If RowsNoCargados = 0 AndAlso RowsCargados > 0 Then MensajeFinal.Append("Los productos se cargaron correctamente.

    ") End If + If RowsCargados > 0 Then MensajeFinal.Append("Se cargaron " & RowsCargados & " productos correctamente.") + + TxtExcel.Text = "[]" + UpConcepto.Update() + RegistraScript("$('#DivCargaExcel').modal('hide');") + End If + If RowsNoCargados > 0 Then MensajeFinal.Append("No se pudieron cargar " & RowsNoCargados & " productos.
    Los siguientes productos no se pudieron cargar: " & ProductosNoCargados.ToString()) End If @@ -4922,32 +5010,67 @@ Partial Class Inventarios_RecepcionAlmacen End Sub Public Sub DescargarFormato() - Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoRecepcionAlmacen.xlsx" - Dim dtt As New DataTable - dtt = DtInv.Copy() - dtt.Columns.Remove("Cantidad") - dtt.Columns("CantidadF").ColumnName = "Cantidad" - dtt.Columns("PS").ColumnName = "Producto" - dtt.Columns("Codigo").ColumnName = "Código" + Dim PathArchivo As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoRecepcionAlmacen.xlsx" - Dim existingcol As New List(Of String) '= {"Cantidad", "Producto", "Código"} + If System.IO.File.Exists(PathArchivo) Then - For Each col As DataColumn In dtt.Columns - If Not col.ColumnName.Contiene("Cantidad", "Producto", "Código") Then - existingcol.Add(col.ColumnName) - End If - Next + Response.Clear() + Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + Response.AddHeader("Content-Disposition", "attachment; filename=FormatoRecepcionAlmacen.xlsx") + Response.TransmitFile(Directorio) + Response.End() - For Each colName As String In existingcol - dtt.Columns.Remove(colName) - Next + End If - dtt.Columns("Cantidad").SetOrdinal(0) - dtt.Columns("Código").SetOrdinal(1) - dtt.Columns("Producto").SetOrdinal(2) - dtt.Columns.Add("Serie", GetType(String)) - dtt.ExportToExcel("FormatoRecepcionAlmacen.xlsx") + 'Dim dtt As New DataTable + 'dtt = DtInv.Copy() + + 'If dtt.Columns.Contains("Cantidad") Then + ' dtt.Columns.Remove("Cantidad") + 'End If + + 'If dtt.Columns.Contains("CantidadF") Then + ' dtt.Columns("CantidadF").ColumnName = "Cantidad" + 'End If + + 'If dtt.Columns.Contains("PS") Then + ' dtt.Columns("PS").ColumnName = "Producto" + 'End If + + 'If dtt.Columns.Contains("Codigo") Then + ' dtt.Columns("Codigo").ColumnName = "Código" + 'End If + + + 'Dim existingcol As New List(Of String) '= {"Cantidad", "Producto", "Código"} + + 'For Each col As DataColumn In dtt.Columns + ' If Not col.ColumnName.Contiene("Cantidad", "Producto", "Código") Then + ' existingcol.Add(col.ColumnName) + ' End If + 'Next + + 'For Each colName As String In existingcol + ' dtt.Columns.Remove(colName) + 'Next + + 'Try + ' dtt.Columns("Cantidad").SetOrdinal(0) + ' dtt.Columns("Código").SetOrdinal(1) + ' dtt.Columns("Producto").SetOrdinal(2) + 'Catch ex As Exception + + 'End Try + + + 'If Not dtt.Columns.Contains("PS") Then + ' dtt.Columns.Add("Serie", GetType(String)) + 'End If + + + + 'dtt.ExportToExcel("FormatoRecepcionAlmacen.xlsx") End Sub @@ -4957,7 +5080,7 @@ Partial Class Inventarios_RecepcionAlmacen 'Create a DataTable. Dim dt As New DataTable() - dt.Columns.AddRange(New DataColumn(9) {New DataColumn("CodBarra", GetType(String)), + dt.Columns.AddRange(New DataColumn(10) {New DataColumn("CodBarra", GetType(String)), New DataColumn("OVenta", GetType(String)), New DataColumn("Factura", GetType(String)), New DataColumn("FechaFac", GetType(String)), @@ -4966,7 +5089,8 @@ Partial Class Inventarios_RecepcionAlmacen New DataColumn("Producto", GetType(String)), New DataColumn("Serie", GetType(String)),'CodigoUnico New DataColumn("Cantidad", GetType(Integer)), - New DataColumn("Código", GetType(String))}) + New DataColumn("Código", GetType(String)), + New DataColumn("CveCompraDetalle", GetType(Integer))}) FolioFactura = FolioFactura.Replace("-", "") 'Read the contents of CSV file. @@ -5049,5 +5173,10 @@ Partial Class Inventarios_RecepcionAlmacen End Class + Protected Sub LnkAgregarExcel_Click(sender As Object, e As EventArgs) + TxtExcel.Text = "[]" + UpConcepto.Update() + RegistraScript("$('#DivCargaExcel').modal('show');") + End Sub End Class diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index a7c092926..d89b1c28f 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -555,7 +555,6 @@ public partial class Nomina_Nomina2 : ClsPaginas } private void CargaTiposPeriodo() { - set_GlobalDTTipoPeriodos(UsuarioActual.CveEmpresa, null); DdlTipoPeriodo.DataSource = get_GlobalDTTipoPeriodos(UsuarioActual.CveEmpresa); DdlTipoPeriodoCM.DataSource = DdlTipoPeriodo.DataSource; DdlTipoPeriodoSim.DataSource = DdlTipoPeriodo.DataSource; diff --git a/RH/CalculoSBC.aspx.cs b/RH/CalculoSBC.aspx.cs index 5f0c0dddc..b9800d94b 100644 --- a/RH/CalculoSBC.aspx.cs +++ b/RH/CalculoSBC.aspx.cs @@ -520,7 +520,8 @@ public partial class RH_CalculoSBC : ClsPaginas SDI = Salariodiario * factordeintegracion; SalarioCotizacion = Salariovariable + SDI; if (objpersonal.UpdateSalarios(CvePersonal, txtfechacargamasiva.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, - Salariodiario.ToString().ToDouble(), SDI.ToString().ToDouble(), SalarioCotizacion.ToString().ToDouble(), Salariodiario.ToString().ToDouble())) + Salariodiario.ToString().ToDouble(), SDI.ToString().ToDouble(), SalarioCotizacion.ToString().ToDouble(), Salariodiario.ToString().ToDouble(), + false,true,"C")) { { @@ -753,7 +754,9 @@ public partial class RH_CalculoSBC : ClsPaginas double SalarioVariableNuevo = item.DataKey("SalarioVariableNuevo").ToDouble(); double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2); if (continuar && (item.FCCheckBox("chkUpdate").Checked) &&//SalarioDiarioSSNuevo != SalarioDiarioSS && - (continuar = objrh.UpdateSalarios(CvePersonal, fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, SalarioDiario, SDINuevo, SalarioDiarioSSNuevo, SalarioDiario))) + (continuar = objrh.UpdateSalarios(CvePersonal, fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, SalarioDiario, SDINuevo, SalarioDiarioSSNuevo, SalarioDiario, + false,true,"D" + ))) { } diff --git a/RH/CatTurno.aspx.vb b/RH/CatTurno.aspx.vb index db8defe5d..3f80d2b61 100644 --- a/RH/CatTurno.aspx.vb +++ b/RH/CatTurno.aspx.vb @@ -41,14 +41,26 @@ Partial Class RH_CatTurno End Sub Private Sub BtnAgregarTurno_Click(sender As Object, e As EventArgs) Handles BtnAgregarTurno.Click + + Dim ComidaDe As String = If(TxtComidade.Text.Trim = "", "00:00:00", TxtComidade.Text.Trim) + Dim ComidaA As String = If(TxtComidaA.Text.Trim = "", "00:00:00", TxtComidaA.Text.Trim) + + + Dim horaInicios As String = If(TxtHorarioDe.Text.Trim = "", "00:00:00", TxtHorarioDe.Text.Trim) + Dim horaSalidaS As String = If(TxtHorarioA.Text.Trim = "", "00:00:00", TxtHorarioA.Text.Trim) + + Dim horaInicio As TimeSpan = TimeSpan.Parse(horaInicios) + Dim horaSalida As TimeSpan = TimeSpan.Parse(horaSalidaS) + + If Not validaHorasTurno(horaInicio, horaSalida) Then + Exit Sub + End If + Exit Sub + Using ObjRH As New ClsRH Dim Estatus As Boolean = False Dim comida As Integer = If(chkComida.Checked, 1, 0) - Dim ComidaDe As String = If(TxtComidade.Text.Trim = "", "00:00:00", TxtComidade.Text.Trim) - Dim ComidaA As String = If(TxtComidaA.Text.Trim = "", "00:00:00", TxtComidaA.Text.Trim) - - If ChkEstatus.Checked Then Estatus = True If HdnModalidad.Value = "A" Then If ObjRH.AddTurno(TxtTurno.Text, TxtHorarioDe.Text, TxtHorarioA.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlChecadorHorario.SelectedValue.ToEntero(), @@ -72,6 +84,25 @@ Partial Class RH_CatTurno End Sub + Private Function validaHorasTurno(horaInicio As TimeSpan, horaSalida As TimeSpan) As Boolean + + If horaInicio > horaSalida Then + horaSalida = horaSalida.Add(TimeSpan.FromDays(1)) + End If + + + Dim diferencia As TimeSpan = horaSalida - horaInicio + + If diferencia.TotalHours > 13 Then + Alert("Las horas de entrada y salida no son validas. El rango de horas supera las 13 horas.", TipoMensaje.MsgAdvertencia) + Return False + End If + + + Return True + + End Function + Public Sub Edit_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index f599d9bc6..241a39359 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -7050,7 +7050,9 @@ Partial Class RH_Personal TxtSalarioDiarioIntegrado.Text = TxtFISalarioDiarioIntegrado.Text Using ObjPersonal As ClsRH = New ClsRH() ObjPersonal.IniciaTransacSQL() - If ObjPersonal.UpdateSalarios(CvePersonal, TxtFechamodSalario.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtSalarioDiarioM.Text.ToDecimal(), TxtFISalarioDiarioIntegrado.Text.ToDecimal(), TxtSalarioDiarioImSS.Text.ToDecimal(), TxtSalarioDiarioM.Text.ToDecimal()) Then + If ObjPersonal.UpdateSalarios(CvePersonal, TxtFechamodSalario.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, + TxtSalarioDiarioM.Text.ToDecimal(), TxtFISalarioDiarioIntegrado.Text.ToDecimal(), TxtSalarioDiarioImSS.Text.ToDecimal(), + TxtSalarioDiarioM.Text.ToDecimal(), False, False, "A") Then ObjPersonal.Commit() @@ -7085,7 +7087,7 @@ Partial Class RH_Personal Using ObjPersonal As ClsRH = New ClsRH() ObjPersonal.IniciaTransacSQL() If ObjPersonal.UpdateSalarios(CvePersonal, TxtFechamodIMSSSalario.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, - TxtSalarioDiario.Text.ToDecimal(), TxtMImssSDI.Text.ToDecimal(), TxtMImssSalarioDiarioImSS.Text.ToDecimal(), -1) Then + TxtSalarioDiario.Text.ToDecimal(), TxtMImssSDI.Text.ToDecimal(), TxtMImssSalarioDiarioImSS.Text.ToDecimal(), -1, False, True, "B") Then ObjPersonal.Commit() diff --git a/VIA/TripsChecks.aspx b/VIA/TripsChecks.aspx index 9fdf6fea5..a311cb5c2 100644 --- a/VIA/TripsChecks.aspx +++ b/VIA/TripsChecks.aspx @@ -1,19 +1,323 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="TripsChecks.aspx.cs" Inherits="VYA_TripsChecks" %> - + - + + - + - + - + - + - + + + + + +
    +
    + + + +
    +
    +
    +
    +
    + Paso 1: Seleccione el Tipo de Unidad +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + +

    TRIP AUTOBUS

    + +
    +
    + + +

    TRIP SPRINTER

    +
    +
    +
    + +
    +
    + +
    + + +
    +
    +
    +
    +
    + Paso 2: CHECK PT +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + + + +
    + + +
    +
    +
    +
    + +
    +
    +
    + + + +
    + +
    +
    +
    + +
    + + + +
    +
    + +
    +
    +
    +
    + + +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    + Paso 3: +
    +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    - + + diff --git a/VIA/TripsChecks.aspx.cs b/VIA/TripsChecks.aspx.cs index a8e28c66e..57b77ff75 100644 --- a/VIA/TripsChecks.aspx.cs +++ b/VIA/TripsChecks.aspx.cs @@ -1,13 +1,274 @@ -using System; +using CrystalDecisions.Shared.Json; +using System; +using System.Activities.Expressions; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using Extensiones; -public partial class VYA_TripsChecks : System.Web.UI.Page +public partial class VYA_TripsChecks : ClsPaginas { + + #region "Propiedades" + + private int Paso + { + get + { + return ViewState["Paso"].ToEntero(); + } + + set + { + PnlPaso1.Visible = (value == 1); + PnlPaso2.Visible = (value == 2 || value == 3); + PnlPaso3.Visible = (value == 3 || value == 2); + ViewState["Paso"] = value; + } + } + private int _currentFormIndex + { + get + { + return ViewState["_currentFormIndex"].ToEntero(); + } + + set + { + ViewState["_currentFormIndex"] = value; + } + } + private DataTable _dtPreguntas + { + get + { + if (ViewState["_dtPreguntas"] != null) + return (DataTable)ViewState["_dtPreguntas"]; + else + return null; + } + + set + { + ViewState["_dtPreguntas"] = value; + } + } + #endregion protected void Page_Load(object sender, EventArgs e) + { + + if (!IsPostBack) + { + Paso = (Request["Paso"] != null && Request["Paso"].ToString().ToEntero() > 0) ? Request["Paso"].ToString().ToEntero() : 1; + _currentFormIndex = (Request["FormIndex"] != null && Request["FormIndex"].ToString().ToEntero() > 0) ? Request["FormIndex"].ToString().ToEntero() : 1; + CargaCombos(); + LoadData(); + BindForm(); + } + } + + public void CargaCombos() + { + + DataTable dttipoaf = get_GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("MedidaVehicularClave IN (2,3)"); + DdlTipoUnidad.DataSource = dttipoaf; + DdlTipoUnidad.Items.Insert(0, new ListItem("Todos", "-1")); + DdlTipoUnidad.DataBind(); + + //CvePuesto =702 valor fijo V&A + DataTable dtchofer = get_GlobalDTRHPersonal(UsuarioActual.CveEmpresa).FiltraParametros("CvePuesto = 702 and CveEstatusPersonal = 1", "NombreCompleto"); + DdlChofer.DataSource = dtchofer; + DdlChofer.DataBind(); + DdlChofer.Items.Insert(0, new ListItem("-", "-1")); + } + public void cargaUnidades() + { + DataTable dt = get_GlobalDTActivoFijos(UsuarioActual.CveEmpresa).FiltraParametros(string.Format(" EstadoActivoFijo= 'Activo' ", DdlTipoUnidad.SelectedValue)); + DdlAF.DataSource = dt; + DdlAF.DataBind(); + DdlAF.Items.Insert(0, new ListItem("-", "-1")); + + } + #region "Paso 1" + protected void ImgBtnAutobus_Click(object sender, ImageClickEventArgs e) + { + DdlTipoUnidad.SelectedValue = "181"; + Paso = 2; + cargaUnidades(); + } + + protected void ImgBtnSprinter_Click(object sender, ImageClickEventArgs e) + { + DdlTipoUnidad.SelectedValue = "184"; + Paso = 2; + cargaUnidades(); + } + #endregion + + protected void DdlTipoUnidad_SelectedIndexChanged(object sender, EventArgs e) + { + cargaUnidades(); + + } + + + #region "Formulario" + private void LoadData() + { + _dtPreguntas = new DataTable(); + using(ClsTransportes nom =new ClsTransportes()) + { + if(nom.VIA_FormularioTrip(-1,UsuarioActual.CveUsuario,UsuarioActual.CveEmpresa)) + { + _dtPreguntas =nom.DtResultados; + } + } + //// Para la demostración, aquí va un código para llenar el DataTable con datos ficticios. + //_dtPreguntas.Columns.Add("CveFormulario", typeof(int)); + //_dtPreguntas.Columns.Add("Formulario", typeof(string)); + //_dtPreguntas.Columns.Add("CvePregunta", typeof(int)); + //_dtPreguntas.Columns.Add("Pregunta", typeof(string)); + //_dtPreguntas.Columns.Add("Valor", typeof(int)); + //_dtPreguntas.Columns.Add("OrdenPregunta", typeof(int)); + //_dtPreguntas.Columns.Add("OrdenFormulario", typeof(int)); + + //// Agregar datos de prueba + //_dtPreguntas.Rows.Add(1, "Formulario 1", 1, "Pregunta 1", null, 1, 1); + //_dtPreguntas.Rows.Add(1, "Formulario 1", 2, "Pregunta 2", null, 2, 1); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 3, "Pregunta 3", null, 1, 2); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 4, "Pregunta 4", null, 2, 2); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 5, "Pregunta 5", null, 1, 3); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 6, "Pregunta 6", null, 2, 3); + } + + private void BindForm() + { + var filteredRowsant = _dtPreguntas.FiltraParametros($"OrdenFormulario = {_currentFormIndex - 1}"); + var filteredRowsnext = _dtPreguntas.FiltraParametros($"OrdenFormulario = {_currentFormIndex + 1}"); + btnAnt.Visible = filteredRowsant.Rows.Count > 0; + btnNext.Visible = filteredRowsnext.Rows.Count > 0; + btnGuardar.Visible = !(filteredRowsnext.Rows.Count > 0); + var filteredRows = _dtPreguntas.Select($"OrdenFormulario = {_currentFormIndex}"); + var sortedRows = filteredRows.CopyToDataTable(); + if(sortedRows.Rows.Count > 0) + { + lblFormulario.Text = $"{sortedRows.Rows[0]["Formulario"]}:"; + lblFormularioobserv.Text = $"Observaciones {sortedRows.Rows[0]["Formulario"]}"; + + } + gvPreguntas.DataSource = sortedRows; + gvPreguntas.DataBind(); + UpDatos.Update(); + } + protected void gvPreguntas_RowDataBound(object sender, GridViewRowEventArgs e) + { + if (e.Row.RowType == DataControlRowType.DataRow) + { + string valor = e.Row.DataKey("Valor"); + + // Botón btnOk + Button btnOk = (Button)e.Row.FindControl("btnOk"); + if (btnOk != null) + { + btnOk.CssClass = valor == "1" ? "btn btn-primary" : "btn btn-default"; + } + + // Botón btnDetected + Button btnDetected = (Button)e.Row.FindControl("btnDetected"); + if (btnDetected != null) + { + btnDetected.CssClass = valor == "0" ? "btn btn-primary" : "btn btn-default"; + } + } + } + + private void UpdateValue(int cvePregunta, int newValue) + { + foreach (DataRow row in _dtPreguntas.Rows) + { + if (Convert.ToInt32(row["CvePregunta"]) == cvePregunta) + { + row["Valor"] = newValue; + break; + } + } + } + protected void btnOk_Click(object sender, EventArgs e) + { + Button btnOk = (Button)sender; + GridViewRow row = (GridViewRow)btnOk.NamingContainer; + int cvePregunta = row.DataKey("CvePregunta").ToEntero(); + + UpdateValue(cvePregunta, 1); + BindForm(); + } + + protected void btnDetected_Click(object sender, EventArgs e) + { + Button btnDetected = (Button)sender; + GridViewRow row = (GridViewRow)btnDetected.NamingContainer; + int cvePregunta = row.DataKey("CvePregunta").ToEntero(); + + UpdateValue(cvePregunta, 0); + BindForm(); + } + public bool ValidarGridView() + { + bool ok = true; + + foreach (GridViewRow row in gvPreguntas.Rows) + { + // Obtener el valor del DataKey correspondiente a la fila actual + string valor = row.DataKey("Valor"); + + // Verificar si el valor es diferente de '0' o '1' + if (valor != "0" && valor != "1") + { + ok = false; + + // Marcar lblPregunta como requerido si el valor es diferente + Label lblPregunta = (Label)row.FindControl("lblPregunta"); + if (lblPregunta != null) + { + lblPregunta.CssClass = "requerido"; // Añade tu clase CSS para marcar como requerido + } + } + } + + return ok; + } + + protected void btnNext_Click(object sender, EventArgs e) + { + if (ValidarGridView()) + { + // Incrementar el índice del formulario + _currentFormIndex++; + BindForm(); + } + } + protected void btnAnt_Click(object sender, EventArgs e) + { + _currentFormIndex--; + BindForm(); + } + + protected void BtnCancel_Click(object sender, EventArgs e) + { + Paso = 1; + } + #endregion + + + protected void btnGuardar_Click(object sender, EventArgs e) + { + + } + + protected void btnContinuar_Click(object sender, EventArgs e) { } diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx index 39ccddd6f..dda8acbec 100644 --- a/Ventas/ProductosServicios.aspx +++ b/Ventas/ProductosServicios.aspx @@ -723,6 +723,42 @@ +
    +
    +
    +
    +
    + + Lista de Precios    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + Precio + + + + + + + +
    +
    +
    +
    +
    +
    @@ -2672,7 +2708,19 @@ } //TERMINA: ECOMMERCE - + function onlyNumberKey(evt) { + + // Only ASCII character in that range allowed + var ASCIICode = (evt.which) ? evt.which : evt.keyCode + if (ASCIICode > 31 && (ASCIICode < 48 || ASCIICode > 57)) { + if (ASCIICode == 46) { + return true + } else { + return false; + } + } + return true; + } diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index a1a86883c..d9849191d 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -141,6 +141,15 @@ Partial Class ProductosyServicios ViewState("Imagen") = value End Set End Property + + Private Property DtPreciosMultiple As DataTable + Get + Return If(IsNothing(ViewState("DtPreciosMultiple")), Nothing, CType(ViewState("DtPreciosMultiple"), DataTable)) + End Get + Set(value As DataTable) + ViewState("DtPreciosMultiple") = value + End Set + End Property #End Region Private ReadOnly Property PermiteClasificacion2 As Boolean @@ -273,6 +282,9 @@ Partial Class ProductosyServicios 'CargaFamilia(ViewState("CveSubFamilia").ToString.ToEntero) CargaSucursaless() CargaImpuestosLocales() + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + CargaListaPrecios() + End If If UsuarioActual.TienePermisoProceso(122) Then BtnEliminar.Visible = False @@ -1714,6 +1726,10 @@ Partial Class ProductosyServicios Next End If + If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + GuardarListasPrecios(ObjProductosServicios) + End If + If ObjProductosServicios.CvePS > 0 And Not TieneError Then TieneError = GuardaEcommerce() End If @@ -2967,6 +2983,58 @@ Partial Class ProductosyServicios #End Region +#Region "LISTA PRECIOS" + + Private Sub CargaListaPrecios() + + Dim objPS As New ClsProductosServicios + If objPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, -1, CveClasificacion:=-1, CvePS:=CvePS, + CveProveedor:=-1, Estado:=-1, Marcas:="-1", CveModelo:=-1) Then + DtPreciosMultiple = objPS.DtResultados.Copy() + GvMultiple.DataSource = DtPreciosMultiple + End If + objPS.Dispose() + DivListaPrecios.Visible = True + GvMultiple.DataBind() + End Sub + + Protected Sub GvMultiple_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + + Dim Valor As Decimal = DtPreciosMultiple.Rows(e.Row.RowIndex)(2).ToString().ToDecimal() + + e.Row.FCTextBox("TxtPrecio").Text = Valor.FormatoNumero(2) + + End If + End Sub + + Private Sub GuardarListasPrecios(ObjPS As ClsProductosServicios) + Dim TieneError As Boolean = False + + Try + For Each GvRow As GridViewRow In GvMultiple.Rows + Dim CvePrecioLista As Integer = GvRow.DataKey("CvePrecioLista").ToEntero() + Dim Precio As Decimal = GvRow.FCTextBox("TxtPrecio").Text.ToDecimal() + + TieneError = Not ObjPS.UpdatePSPreciosLista(Precio, CvePrecioLista, 0, CvePS, UsuarioActual.CveUsuario, NowADS(), True) + + If TieneError Then + Exit For + End If + Next + Catch ex As Exception + OnError("Ocurrió un error al actualizar precios", ex) + TieneError = True + End Try + + If TieneError Then + Alert("Ocurrió un error al actualizar precios", TipoMensaje.MsgError) + End If + + End Sub + +#End Region + #Region "EXISTENCIAS" Protected Sub GVExistencias_RowDataBound(sender As Object, e As GridViewRowEventArgs) diff --git a/Ventas/RepVentasUtilidadPadre.aspx b/Ventas/RepVentasUtilidadPadre.aspx index e6bb4b11e..286745018 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx +++ b/Ventas/RepVentasUtilidadPadre.aspx @@ -56,6 +56,9 @@
  • Ver Grafica
  • +
  • + Consultar porcentajes +
  • @@ -275,6 +278,106 @@ + + + + + + + diff --git a/Ventas/RepVentasUtilidadPadre.aspx.vb b/Ventas/RepVentasUtilidadPadre.aspx.vb index 81df03936..9b41dca55 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx.vb +++ b/Ventas/RepVentasUtilidadPadre.aspx.vb @@ -32,19 +32,37 @@ Partial Class Ventas_RepVentasUtilidadPadre Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then - 'If UsuarioActual.Empresa.Funcionalidad(382) <> "1" Then - ' GvDatos.Columns(3).Visible = False - ' GvDatos.Columns(5).Visible = False - 'End If + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + LnkModalPorcentajes.Visible = True + End If CargaCombos() End If End Sub + Private Property SubProyectoConf As String + Get + If ViewState("SubProyectoConf") Is Nothing Then + ViewState("SubProyectoConf") = "" + End If + Return ViewState("SubProyectoConf").ToString + End Get + + Set(value As String) + ViewState("SubProyectoConf") = value + End Set + End Property + + + + #Region " INICIALIZA VALORES " Private Sub CargaCombos() + TxtModalFechaInicio.Text = NowADS().FirstDayOfMonth.ToShortDateString + TxtModalFechaFin.Text = NowADS().LastDayOfMonth.ToShortDateString + txtFechaI.Text = NowADS().FirstDayOfMonth.ToShortDateString txtFechaF.Text = NowADS().LastDayOfMonth.ToShortDateString @@ -108,6 +126,12 @@ Partial Class Ventas_RepVentasUtilidadPadre LblNeto.Text = "0" LblPorNeto.Text = "0" + + + Dim LblSubProyectoConf As New Label + CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoConf) + SubProyectoConf = LblSubProyectoConf.Text + End Sub Protected Sub DdlCategoria_SelectedIndexChanged(sender As Object, e As EventArgs) @@ -315,4 +339,42 @@ Partial Class Ventas_RepVentasUtilidadPadre #End Region + + Protected Sub LnkModalPorcentajes_Click(sender As Object, e As EventArgs) + + GvPorcentajes.DataSource = Nothing + GvPorcentajes.DataBind() + UpModalPorcentajes.Update() + RegistraScript("$('#DivModalPorcetajes').modal(`show`);") + End Sub + + + + Protected Sub BtnModalConsultaPorcentaje_Click(sender As Object, e As EventArgs) + + Dim ObjVentas As New ClsVentas() + Dim FechaI As Date = TxtModalFechaInicio.Text.ToDate + Dim FechaF As Date = TxtModalFechaFin.Text.ToDate + If TxtModalFechaInicio.Text = "" Then FechaI = MinFecha + If TxtModalFechaFin.Text = "" Then FechaF = MaxFecha + + If ObjVentas.GetReporteVentasUtilidad("-1", -1, "-1", FechaI, FechaF, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1) Then + GvPorcentajes.DataSource = ObjVentas.DtResultados.FiltraParametros($" CveVenta > 0 AND PorNeto <= {TxtModalPorcentaje.Text.ToDecimal} AND TipoDocto = 'Ing' AND CveEstatusFactura IN(2,3) ") + End If + + ObjVentas.Dispose() + GvPorcentajes.DataBind() + + ObjVentas.Dispose() + UpModalPorcentajes.Update() + + End Sub + + Protected Sub GvPorcentajes_RowDataBound(sender As Object, e As GridViewRowEventArgs) + + If e.Row.RowType = DataControlRowType.Header Then + e.Row.Cells(0).Text = SubProyectoConf + End If + + End Sub End Class