diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 6a8fe4e01..60795a215 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -3197,6 +3197,27 @@ Public Class ClsContratos OnError("Ocurrió un error al obtener el reporte de presupuestos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try + Return Retorno + End Function + + + Public Function GetPresupuestosResumen(CveEmpresa As Integer, CveSubProyecto As Integer, Opcion As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Con_PresupuestosResumenGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@Opcion", SqlDbType.Int).Value = Opcion + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el resumen de presupuestos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno End Function Public Function GetPresupuestosMensualRep(CvePresupuesto As Integer, CveTipoGasto As Integer, Agrupador As Integer, FechaI As Date, FechaF As Date, CveEmpresa As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveUsuarioConsulta As Integer, CveAgrupador As Integer) As Boolean diff --git a/App_Code/ClsMovimientos.vb b/App_Code/ClsMovimientos.vb index 45e272faa..90f9a5b12 100644 --- a/App_Code/ClsMovimientos.vb +++ b/App_Code/ClsMovimientos.vb @@ -274,6 +274,7 @@ Public Class ClsMovimientos End With Try + SqlAdapter.SelectCommand.CommandTimeout = 0 SqlAdapter.Fill(Data) Retorno = True Catch ex As Exception diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index b433d440c..7e31f8a07 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -19,6 +19,8 @@ Imports Newtonsoft.Json.Linq Public Class ClsPaginas Inherits System.Web.UI.Page Public Const CveUsuarioAsistencia As Integer = 100 + Public Const LigaVerificacionSAT As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx" + Public Const LigaVerificacionSATCCP As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx" Public Const ContraseñaPredeterminada As String = "-acceso-" Public Const ContraseñaPredeterminadaEncriptada As String = "aQDyjiv2NgoTct4c84VnLQ==" ' "-acceso-" Private Shared EncryptKey() As Byte = {} @@ -111,6 +113,18 @@ Public Class ClsPaginas Return If(tHora <> 0, Now.ToUniversalTime.AddMinutes(tHora), Now) End Function + Public Shared Function GeneraQRSAT(RFCEmisor As String, RFCReceptor As String, Total As Decimal, UUID As String, Optional Sellocfdi As String = "", Optional RutaGuardado As String = "") As Byte() + + 'Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" + Dim qrCode As New GoFac.QrCode() + Dim Cadena As String = $"{LigaVerificacionSAT}?re={RFCEmisor}&rr={RFCReceptor}&tt={String.Format("{0,12:F6}", Total).Trim()}&id={UUID}" + If Sellocfdi <> "" Then Cadena = Cadena & $"&fe={Sellocfdi.Substring(Sellocfdi.Length - 8, 8)}" + Dim bCBB As Byte() = qrCode.GenerarQrCode(Cadena) + If RutaGuardado <> "" Then File.WriteAllBytes(RutaGuardado, bCBB) + Return bCBB + End Function + + #End Region @@ -6300,31 +6314,15 @@ Public Class ClsPaginas CadenaOriginal = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||" End If - If Not ImagenCBB.Exists Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ClienteRFC, Total, FolioFiscal, RutaCBB) - End If - - + If Not ImagenCBB.Exists Then GeneraQRSAT(UsuarioActual.Empresa.RFC, ClienteRFC, Total, FolioFiscal, RutaGuardado:=RutaCBB) ImagenCBB = New System.IO.FileInfo(RutaCBB) - If ImagenCBB.Exists Then ImgCBB = String.Format("file://{0}", ImagenCBB.FullName) Else ImgCBB = "" End If - - - 'FIXME OICCHECAR DESPUES DE SINCRONIZAR TIMBRADO - 'If Not ImagenCCP.Exists Then - ' Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - ' CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ClienteRFC, Total, FolioFiscal, RutaCBB) - 'End If - - ImagenCCP = New System.IO.FileInfo(RutaCCP) - If ImagenCCP.Exists Then ImgCCP = String.Format("file://{0}", ImagenCCP.FullName) Else @@ -6751,9 +6749,6 @@ Public Class ClsPaginas End If 'Si no tiene CBB, SE GENERA If (Not ImagenCBB.Exists OrElse RegenerarQR) AndAlso Vta.FolioFiscal <> "" Then - 'Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - 'CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total, Vta.FolioFiscal, RutaCBB) - Dim LigaVerificacionSAT As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx" Try Dim qrCode As New GoFac.QrCode() Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={RFCReceptor}&tt={String.Format("{0,12:F6}", Vta.Total).Trim()}&id={Vta.FolioFiscal}&fe={Vta.SelloCFDi.Substring(Vta.SelloCFDi.Length - 8, 8)}") @@ -8245,9 +8240,8 @@ Public Class ClsPaginas End If 'Si no tiene CBB, SE GENERA If Not ImagenCBB.Exists Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaCBB) + GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaGuardado:=RutaCBB) End If End If ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio) @@ -8329,10 +8323,9 @@ Public Class ClsPaginas RptParametro.Add(New ReportParameter("Unidad", "ACT")) RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA")) RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString())) - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - cQr = CBB.GenerarCBBBytes(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal) RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDecimal.Texto2Letras)) RptParametro.Add(New ReportParameter("Clave", "84111505")) + cQr = GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal) Else TieneError = True End If @@ -8739,8 +8732,7 @@ Public Class ClsPaginas End If Dim CadenaOriginal As String = $"||1.0| {FolioFiscal} | {FechaCertificacion.ToDate.ToShortDateString} T {FechaCertificacion.ToDateTime.ToShortTimeString} | {SelloCFDi} | {NoSerieCertificado} ||" If Not File.Exists(ImagenCBB) AndAlso FolioFiscal <> "" Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCOrdenante, 1, FolioFiscal, ImagenCBB) + GeneraQRSAT(UsuarioActual.Empresa.RFC, RFCOrdenante, 1, FolioFiscal, RutaGuardado:=ImagenCBB) End If ' PARAMETROS DEL REPORTE @@ -10770,6 +10762,9 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/CatProcedimientoDetalle.aspx".ToUpper(), 1344) PaginaDict.Add("/Ventas/CatEspecialidadesSubEspecialidades.aspx".ToUpper(), 1346) PaginaDict.Add("/Ventas/FacturacionGlobal.aspx".ToUpper(), 546) + PaginaDict.Add("/Ventas/RepComisionesSMS.aspx".ToUpper(), 1347) + + diff --git a/App_Code/ClsPuntoVenta.vb b/App_Code/ClsPuntoVenta.vb index bae4421c5..d84033315 100644 --- a/App_Code/ClsPuntoVenta.vb +++ b/App_Code/ClsPuntoVenta.vb @@ -267,15 +267,15 @@ Public Class ClsPuntoVenta End Function - Public Function GetVta_ReporteCortes(CveEmpresa As Integer, FechaI As Date, FechaF As Date, Optional CveSubProyecto As Integer = -1) As Boolean + Public Function GetVta_ReporteCortes(CveEmpresa As Integer, FechaI As Date, FechaF As Date, Optional CveSubProyecto As Integer = -1, Optional CveCorte As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_ReporteCortesGet") SqlAdapter.SelectCommand.Parameters.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa SqlAdapter.SelectCommand.Parameters.Add("@FechaInicio", SqlDbType.Date).Value = FechaI SqlAdapter.SelectCommand.Parameters.Add("@FechaFin", SqlDbType.Date).Value = FechaF - SqlAdapter.SelectCommand.Parameters.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto - + SqlAdapter.SelectCommand.Parameters.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + SqlAdapter.SelectCommand.Parameters.Add("@CveCorte", SqlDbType.Int).Value = CveCorte Try SqlAdapter.Fill(Data) Retorno = True diff --git a/App_Code/ClsSisEmpresas.vb b/App_Code/ClsSisEmpresas.vb index ada1fd59f..c92c3b19a 100644 --- a/App_Code/ClsSisEmpresas.vb +++ b/App_Code/ClsSisEmpresas.vb @@ -382,7 +382,7 @@ Public Class ClsSisEmpresas _Empresa.FechaIng = Data.Rows(0)("Fecha").ToString.ToDate _Empresa.Usuario = Data.Rows(0)("Usuario").ToString _Empresa.FacturaProduccion = If(Data.Rows(0)("FacturaProduccion").ToString = "", False, CBool(Data.Rows(0)("FacturaProduccion").ToString)) - _Empresa.EstatusFacturacion = Data.Rows(0)("EstatusFacturacion").ToString <> "No" + '_Empresa.EstatusFacturacion = Data.Rows(0)("EstatusFacturacion").ToString <> "No" _Empresa.UsaContabilidad = Data.Rows(0)("UsaContabilidad").ToString <> "No" _Empresa.UsaBancos = Data.Rows(0)("UsaBancos").ToString <> "No" _Empresa.UsaVentas = Data.Rows(0)("UsaVentas").ToString <> "No" @@ -459,7 +459,7 @@ Public Class ClsSisEmpresas End Function Public Function AddEmpresa(CveEmpresa As Integer, Empresa As String, Direccion As String, NoExt As String, NoInt As String, Colonia As String, Ciudad As String, Estado As String, RFC As String, CP As String, Telefono As String, Contacto As String, Mail As String, TipoFacturacion As String, BIUsuario As String, BIContraseña As String, ContraseñaKey As String, ArchivoKey As String, - ArchivoCer As String, ArchivoPfx As String, Banner As String, CveUsuario As Integer, FacturaProduccion As Boolean, MostrarRetIVA As Boolean, MostrarRetISR As Boolean, Regimen As String, EstatusFacturacion As Boolean, + ArchivoCer As String, ArchivoPfx As String, Banner As String, CveUsuario As Integer, FacturaProduccion As Boolean, MostrarRetIVA As Boolean, MostrarRetISR As Boolean, Regimen As String, SendMail As String, SendMailPassword As String, SendMailServer As String, SendMailPuerto As Integer, SendMailSSL As Boolean, UsaContabilidad As Boolean, UsaBancos As Boolean, UsaVentas As Boolean, UsaCxC As Boolean, UsaCompras As Boolean, UsaInventarios As Boolean, UsaRH As Boolean, UsaNomina As Boolean, UsaOS As Boolean, BDContPAQi As String, ServerContPAQi As String, UsrContPAQi As String, PwdContPAQi As String, Buzon_Mail As String, Buzon_Server As String, Buzon_Puerto As Integer, Buzon_SSL As Boolean, Buzon_USR As String, Buzon_PWD As String, Buzon_Tipo As String, Soporte_Mail As String, @@ -504,7 +504,7 @@ Public Class ClsSisEmpresas .Add("@MostrarRetIVA", SqlDbType.Bit).Value = MostrarRetIVA .Add("@MostrarRetISR", SqlDbType.Bit).Value = MostrarRetISR .Add("@Regimen", SqlDbType.VarChar).Value = Regimen - .Add("@EstatusFacturacion", SqlDbType.Int).Value = EstatusFacturacion + '.Add("@EstatusFacturacion", SqlDbType.Int).Value = EstatusFacturacion .Add("@SendMail", SqlDbType.VarChar).Value = SendMail .Add("@SendMailPassword", SqlDbType.VarChar).Value = SendMailPassword .Add("@SendMailServer", SqlDbType.VarChar).Value = SendMailServer @@ -589,7 +589,7 @@ Public Class ClsSisEmpresas Public Function UpdateEmpresa(Empresa As String, Direccion As String, NoExt As String, NoInt As String, Colonia As String, Ciudad As String, Estado As String, RFC As String, CP As String, Telefono As String, Contacto As String, Mail As String, TipoFacturacion As String, BIUsuario As String, BIContraseña As String, ContraseñaKey As String, ArchivoKey As String, - ArchivoCer As String, ArchivoPfx As String, Banner As String, Estatus As Boolean, FacturaProduccion As Boolean, MostrarRetIVA As Boolean, MostrarRetISR As Boolean, Regimen As String, EstatusFacturacion As Boolean, + ArchivoCer As String, ArchivoPfx As String, Banner As String, Estatus As Boolean, FacturaProduccion As Boolean, MostrarRetIVA As Boolean, MostrarRetISR As Boolean, Regimen As String, SendMail As String, SendMailPassword As String, SendMailServer As String, SendMailPuerto As Integer, SendMailSSL As Boolean, UsaContabilidad As Boolean, UsaBancos As Boolean, UsaVentas As Boolean, UsaCxC As Boolean, UsaCompras As Boolean, UsaInventarios As Boolean, UsaRH As Boolean, UsaNomina As Boolean, UsaOS As Boolean, BDContPAQi As String, ServerContPAQi As String, UsrContPAQi As String, PwdContPAQi As String, Buzon_Mail As String, Buzon_Server As String, Buzon_Puerto As Integer, Buzon_SSL As Boolean, Buzon_USR As String, Buzon_PWD As String, CveEmpresa As Integer, Buzon_Tipo As String, Soporte_Mail As String, @@ -628,7 +628,6 @@ Public Class ClsSisEmpresas .Add("@MostrarRetIVA", SqlDbType.Bit).Value = MostrarRetIVA .Add("@MostrarRetISR", SqlDbType.Bit).Value = MostrarRetISR .Add("@Regimen", SqlDbType.VarChar).Value = Regimen - .Add("@EstatusFacturacion", SqlDbType.Int).Value = EstatusFacturacion .Add("@SendMail", SqlDbType.VarChar).Value = SendMail .Add("@SendMailPassword", SqlDbType.VarChar).Value = SendMailPassword .Add("@SendMailServer", SqlDbType.VarChar).Value = SendMailServer diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 8234a17ad..a89fb0dbc 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -6117,25 +6117,25 @@ Public Class ClsVentas End Function - - - - Public Function AddMedico(Medico As String, CedulaProfesional As String, FechaNacimiento As Date, Notas As String, DiasAtencion As String, Horario As String, Lugar As String, Estatus As Boolean, CveUsuario As Integer, - CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Consultorio As String, Optional CveMedicoSubEspecialidad As Integer = -1, - Optional Torre As String = "-1") As Integer + Public Function AddMedico(Nombre As String, APaterno As String, AMaterno As String, CedulaProfesional As String, FechaNacimiento As Date, Notas As String, Estatus As Boolean, CveUsuario As Integer, + CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Optional CveMedicoSubEspecialidad As Integer = -1, Optional CveVendedor As Integer = -1) As Integer Dim Retorno As Boolean = False CveMedicoNuevo = -1 DataAdapter("PA_Vta_MedicosAdd") With SqlAdapter.SelectCommand.Parameters + .Add("@Nombre", SqlDbType.VarChar).Value = Nombre + .Add("@APaterno", SqlDbType.VarChar).Value = APaterno + .Add("@AMaterno", SqlDbType.VarChar).Value = AMaterno + '.Add("@Medico", SqlDbType.VarChar).Value = Medico .Add("@CedulaProfesional", SqlDbType.VarChar).Value = CedulaProfesional - .Add("@Medico", SqlDbType.VarChar).Value = Medico + '.Add("@Medico", SqlDbType.VarChar).Value = Medico .Add("@FechaNacimiento", SqlDbType.Date).Value = FechaNacimiento .Add("@Notas", SqlDbType.VarChar).Value = Notas - .Add("@DiasAtencion", SqlDbType.VarChar).Value = DiasAtencion - .Add("@Horario", SqlDbType.VarChar).Value = Horario - .Add("@Lugar", SqlDbType.VarChar).Value = Lugar + '.Add("@DiasAtencion", SqlDbType.VarChar).Value = DiasAtencion + '.Add("@Horario", SqlDbType.VarChar).Value = Horario + '.Add("@Lugar", SqlDbType.VarChar).Value = Lugar .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa @@ -6143,9 +6143,10 @@ Public Class ClsVentas .Add("@Mail", SqlDbType.VarChar).Value = Mail .Add("@CveMedicoEspecialidad", SqlDbType.Int).Value = CveMedicoEspecialidad .Add("@Celular", SqlDbType.VarChar).Value = Celular - .Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio + '.Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad - .Add("@Torre", SqlDbType.VarChar).Value = Torre + .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor + '.Add("@Torre", SqlDbType.VarChar).Value = Torre .Add("@CveMedicoNuevo", SqlDbType.Int).Direction = ParameterDirection.Output @@ -6163,21 +6164,23 @@ Public Class ClsVentas End Function - Public Function UpdateMedico(CveMedico As Integer, Medico As String, CedulaProfesional As String, FechaNacimiento As Date, Notas As String, DiasAtencion As String, Horario As String, Lugar As String, Estatus As Boolean, CveUsuario As Integer, - CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Consultorio As String, Optional CveMedicoSubEspecialidad As Integer = -1, - Optional Torre As String = "-1") As Boolean + Public Function UpdateMedico(CveMedico As Integer, Nombre As String, APaterno As String, AMaterno As String, CedulaProfesional As String, FechaNacimiento As Date, Notas As String, Estatus As Boolean, CveUsuario As Integer, + CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Optional CveMedicoSubEspecialidad As Integer = -1, Optional CveVendedor As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_MedicosUpdate") With SqlAdapter.SelectCommand.Parameters .Add("@CveMedico", SqlDbType.Int).Value = CveMedico - .Add("@Medico", SqlDbType.VarChar).Value = Medico + .Add("@Nombre", SqlDbType.VarChar).Value = Nombre + .Add("@APaterno", SqlDbType.VarChar).Value = APaterno + .Add("@AMaterno", SqlDbType.VarChar).Value = AMaterno + '.Add("@Medico", SqlDbType.VarChar).Value = Medico .Add("@CedulaProfesional", SqlDbType.VarChar).Value = CedulaProfesional .Add("@FechaNacimiento", SqlDbType.Date).Value = FechaNacimiento .Add("@Notas", SqlDbType.VarChar).Value = Notas - .Add("@DiasAtencion", SqlDbType.VarChar).Value = DiasAtencion - .Add("@Horario", SqlDbType.VarChar).Value = Horario - .Add("@Lugar", SqlDbType.VarChar).Value = Lugar + '.Add("@DiasAtencion", SqlDbType.VarChar).Value = DiasAtencion + '.Add("@Horario", SqlDbType.VarChar).Value = Horario + '.Add("@Lugar", SqlDbType.VarChar).Value = Lugar .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa @@ -6185,9 +6188,10 @@ Public Class ClsVentas .Add("@Mail", SqlDbType.VarChar).Value = Mail .Add("@CveMedicoEspecialidad", SqlDbType.Int).Value = CveMedicoEspecialidad .Add("@Celular", SqlDbType.VarChar).Value = Celular - .Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio + '.Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad - .Add("@Torre", SqlDbType.VarChar).Value = Torre + .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor + '.Add("@Torre", SqlDbType.VarChar).Value = Torre End With @@ -6310,9 +6314,6 @@ Public Class ClsVentas #End Region - - - #Region "S U B E S P E C I A L I D A D E S" Public Function GetMedicosSubEspecialidades(CveMedicoSubEspecialidad As Integer, CveEmpresa As Integer, Estatus As Integer) As Boolean @@ -6405,6 +6406,111 @@ Public Class ClsVentas #End Region +#Region "MEDICO CLIENTE SUCURALES" + + + + Public Function GetMedicosClientesSucursales(CveMedico As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosClientesSucursalesGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedico", SqlDbType.Int).Value = CveMedico + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los detalles.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function AddMedicosClientesSucursales(CveMedico As Integer, CveCliente As Integer, CveClienteSucursal As Integer, DiasAtencion As String, Horario As String, Consultorio As String, Torre As String, AsistenteNombre As String, + CveUsuario As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + + DataAdapter("PA_Vta_MedicosClientesSucursalesAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedico", SqlDbType.Int).Value = CveMedico + .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveClienteSucursal", SqlDbType.Int).Value = CveClienteSucursal + .Add("@DiasAtencion", SqlDbType.VarChar).Value = DiasAtencion + .Add("@Horario", SqlDbType.VarChar).Value = Horario + .Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio + .Add("@Torre", SqlDbType.VarChar).Value = Torre + .Add("@AsistenteNombre", SqlDbType.VarChar).Value = AsistenteNombre + .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 guardar el detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function UpdateMedicosClientesSucursales(CveMedicoClienteSucursal As Integer, CveMedico As Integer, CveCliente As Integer, CveClienteSucursal As Integer, DiasAtencion As String, Horario As String, Consultorio As String, Torre As String, + AsistenteNombre As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosClientesSucursalesUpdate") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedicoClienteSucursal", SqlDbType.Int).Value = CveMedicoClienteSucursal + .Add("@CveMedico", SqlDbType.Int).Value = CveMedico + .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveClienteSucursal", SqlDbType.Int).Value = CveClienteSucursal + .Add("@DiasAtencion", SqlDbType.VarChar).Value = DiasAtencion + .Add("@Horario", SqlDbType.VarChar).Value = Horario + .Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio + .Add("@Torre", SqlDbType.VarChar).Value = Torre + .Add("@AsistenteNombre", SqlDbType.VarChar).Value = AsistenteNombre + .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 actualizar el Medico.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + Public Function RemoveMedicosClientesSucursales(CveMedicoClienteSucursal As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosClientesSucursalesRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedicoClienteSucursal", SqlDbType.Int).Value = CveMedicoClienteSucursal + .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 detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + +#End Region + #Region "PRODEDIMIENTOS" Public Function GetProcedimientos(CveProcedimiento As Integer, CveEmpresa As Integer, Estatus As Integer) As Boolean @@ -6631,6 +6737,80 @@ Public Class ClsVentas #End Region +#Region "VENTAS MEDICAS COMISIONES" + + Public Function GetComisionesMedicas(CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_ComisionesMedicasGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las comisiones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function AddUpdateComisionesMedicas(CvePS As Integer, CveEmpresa As Integer, ComisionMedico As Decimal, ComisionVendedor As Decimal, ComisionTecnico As Decimal) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_ComisionesMedicasAddUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@ComisionMedico", SqlDbType.Money).Value = ComisionMedico + .Add("@ComisionVendedor", SqlDbType.Money).Value = ComisionVendedor + .Add("@ComisionTecnico", SqlDbType.Money).Value = ComisionTecnico + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar las comisiones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function GetComisionesMedicasRep(FechaInicio As Date, FechaFin As Date, CveEmpresa As Integer, CveSubProyecto As Integer, CveProcedimiento As Integer, CveMedico As Integer, CveVendedor As Integer, CveUsuario As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_ComisionesMedicasRepGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio + .Add("@FechaFin", SqlDbType.Date).Value = FechaFin + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@CveMedico", SqlDbType.Int).Value = CveMedico + .Add("@CveProcedimiento", SqlDbType.Int).Value = CveProcedimiento + .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el reporte comisiones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + +#End Region #Region "DEVOLUICON" diff --git a/App_Code/Empresa.vb b/App_Code/Empresa.vb index 9125fe0bd..2b0d41c6f 100644 --- a/App_Code/Empresa.vb +++ b/App_Code/Empresa.vb @@ -62,8 +62,7 @@ Public Class Empresa Public Property Importe As Decimal Public Property CveMetodoPago As Integer Public Property CodigoRegimenFiscal As String - Public Property RegimenFiscal As String - Public Property EstatusFacturacion As Boolean + Public Property RegimenFiscal As String Public Property Estatus As Boolean Public Property UsaContabilidad As Boolean Public Property UsaBancos As Boolean diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 916eac813..4a7b56be4 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -3248,31 +3248,40 @@ Namespace Modelos Dim TipoMovto68 As Boolean = TipoMovimiento 'SI ES CANCELACION DEBE GENERAR EL MOVIMIENTO DE SALIDA DE USADOS If ValorMultiplicador = -1 Then - CveMovimientoReferencia = CancelarInventarioUsado(ObjFactura, CveAlmacen, CveMovimiento, ObjInventario, ObjConta, GenerarPrePoliza:=False) + Dim CveMovCancelacion = CancelarInventarioUsado(ObjFactura, CveAlmacen, CveMovimiento, ObjInventario, ObjConta, GenerarPrePoliza:=False) + If CveMovCancelacion > 0 Then + CveMovimientoReferencia = CveMovCancelacion + Else + ErrorPrepoliza = True + End If Else CveMovimientoReferencia = CveMovimiento End If ' If ObjFactura.EsGarantia Then, el valor viene en cero ya - If ObjInventario.GetMovimientosDetalle(CveMovimientoReferencia, UsuarioActual.CveEmpresa) Then - Dim Importe68 As Decimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL * ValorMultiplicador - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto68, Importe68, Importe68, 68, Referencia, Concepto, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimientoReferencia, Contabilizable:=False) Then + If Not ErrorPrepoliza Then + If ObjInventario.GetMovimientosDetalle(CveMovimientoReferencia, UsuarioActual.CveEmpresa) Then + Dim Importe68 As Decimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL * ValorMultiplicador + + If Not ErrorPrepoliza AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto68, Importe68, Importe68, 68, Referencia, Concepto, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimientoReferencia, Contabilizable:=False) Then + ErrorPrepoliza = True + End If + + If Not ErrorPrepoliza AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto68, importeMovimiento, importeMX, 277, Referencia, Concepto, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + End If + + Dim Importe318 As Decimal = (Math.Abs(importeMovimiento) - Math.Abs(Importe68)) * ValorMultiplicador + + If Not ErrorPrepoliza AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto68, Importe318, Importe318, 318, Referencia, Concepto, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + End If + + Else ErrorPrepoliza = True End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto68, importeMovimiento, importeMX, 277, Referencia, Concepto, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - End If - - Dim Importe318 As Decimal = (Math.Abs(importeMovimiento) - Math.Abs(Importe68)) * ValorMultiplicador - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto68, Importe318, Importe318, 318, Referencia, Concepto, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - End If - - Else - ErrorPrepoliza = True End If + 'Else ' If ObjInventario.GetMovimientosDetalle(CveMovimientoReferencia, UsuarioActual.CveEmpresa) Then ' Dim Importe68 As Decimal = ObjInventario.DtResultados.SUMD("") diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 2b10e9997..1374feb13 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -9,7 +9,6 @@ Imports System.Reflection Imports System.Xml Imports System.Xml.Serialization Imports Extensiones -Imports External.Office Imports Newtonsoft.Json.Linq Imports Profact.TimbraCFDI33.Complementos Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte30 @@ -29,8 +28,7 @@ Public Class Timbrado Public Property CancelacionState As Integer Public Property CancelacionMensaje As String Public Property CancelacionFecha As Date - Public Const LigaVerificacionSAT As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx" - Public Const LigaVerificacionSATCCP As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx" + Public Class AcuseCancelacionSAT Public Property CodigoEstatus As String Public Property EsCancelable As String @@ -3075,7 +3073,7 @@ concep.DescripcionesEspecificas.NumeroSerie) Try Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" Dim qrCode As New GoFac.QrCode() - Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={UUID}&fe={SelloCfdi.Substring(SelloCfdi.Length - 8, 8)}") + Dim bCBB As Byte() = qrCode.GenerarQrCode($"{ClsPaginas.LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={UUID}&fe={SelloCfdi.Substring(SelloCfdi.Length - 8, 8)}") File.WriteAllBytes(RutaCBB, bCBB) bCBB = Nothing Catch ex As Exception @@ -3091,7 +3089,7 @@ concep.DescripcionesEspecificas.NumeroSerie) Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}_CCP.jpg" Dim qrCode As New GoFac.QrCode() - Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSATCCP}?IdCCP={cfdi.CfdiInfo.IdCCP}&FechaOrig={Carta.Ubicaciones(0).FechaHoraSalidaLlegada}&FechaTimb={cfdi.CfdiInfo.FechaTimbrado}") + Dim bCBB As Byte() = qrCode.GenerarQrCode($"{ClsPaginas.LigaVerificacionSATCCP}?IdCCP={cfdi.CfdiInfo.IdCCP}&FechaOrig={Carta.Ubicaciones(0).FechaHoraSalidaLlegada}&FechaTimb={cfdi.CfdiInfo.FechaTimbrado}") File.WriteAllBytes(RutaCBB, bCBB) bCBB = Nothing Catch ex As Exception @@ -3274,7 +3272,8 @@ concep.DescripcionesEspecificas.NumeroSerie) If result IsNot Nothing Then If result.timbradoOk Then - + Dim SelloCfdi As String + SelloCfdi = "" UUID = result.UUID 'GUARDA EL XML RETORNADO POR EL PAC @@ -3354,9 +3353,10 @@ concep.DescripcionesEspecificas.NumeroSerie) Try Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Comprobante.Total, UUID, RutaCBB) - CBB = Nothing + Dim qrCode As New GoFac.QrCode() + Dim bCBB As Byte() = qrCode.GenerarQrCode($"{ClsPaginas.LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={UUID}&fe={SelloCfdi.Substring(SelloCfdi.Length - 8, 8)}") + File.WriteAllBytes(RutaCBB, bCBB) + bCBB = Nothing Catch ex As Exception OnError("Ocurrió un error al generar el QR", ex) End Try diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index 47a330307..854ab6997 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -1195,6 +1195,24 @@ Namespace Extensiones End If Return TmpDt + End Function + + + Public Function GroupByDt(dtt As DataTable, ByVal RowFilter As String, ByVal Orderby As String, ByVal GroupByColumns As String(), ByVal AggregateColumn As String) As DataTable + Dim dv As DataView = New DataView(dtt, RowFilter, Orderby, DataViewRowState.CurrentRows) + Dim dtGroup As DataTable = dv.ToTable(True, GroupByColumns) + dtGroup.Columns.Add("TotalCount", GetType(Integer)) + dtGroup.Columns.Add("TotalSum", GetType(Decimal)) + Dim filtros As New List(Of String) + For Each dr As DataRow In dtGroup.Rows + For Each col As String In GroupByColumns + filtros.Add($"{col}='{dr(col)}'") + Next + dr("TotalCount") = dtt.Compute($"Count({AggregateColumn})", String.Join(" AND ", filtros)) + dr("TotalSum") = dtt.Compute($" SUM({AggregateColumn})", String.Join(" AND ", filtros)) + Next + + Return dtGroup End Function diff --git a/Ashx/GenerarPDFFactura.ashx b/Ashx/GenerarPDFFactura.ashx index c6d59baaf..0ccfd7b5e 100644 --- a/Ashx/GenerarPDFFactura.ashx +++ b/Ashx/GenerarPDFFactura.ashx @@ -161,8 +161,8 @@ Public Class GenerarPDFFactura : Implements IHttpHandler Dim rutaReporte As String = "Empresas\Grales\Formatos\FacturaSALI.rdlc" - Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar() - Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID) + Dim cQr As Byte() = ClsPaginas.GeneraQRSAT(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID) + Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() parametros.Add(New ReportParameter("comprobante_Certificado", objxml.comprobante.Certificado)) parametros.Add(New ReportParameter("comprobante_CondicionesDePago", objxml.comprobante.CondicionesDePago)) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 7fcdf4e14..10cfe41fd 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -4816,7 +4816,7 @@
+ DataKeyNames="CveCompra,TipoCambio,CveTipoConcepto,UUID,Saldo,SerieFolio,Fecha,CveMoneda,Total,CveProveedor,SubTotal" runat="server" AutoGenerateColumns="false" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD"> diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 3855b52f3..be4a3e3bf 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -10,7 +10,9 @@ Imports System.Threading.Tasks Imports Newtonsoft.Json Imports Extensiones Imports MoreLinq -Imports ClbNegBICFDv3_3 + + + Partial Class Compras_Compras Inherits ClsPaginas @@ -3991,6 +3993,10 @@ Partial Class Compras_Compras + If Not ValidaPresupuesto(2) Then + Exit Sub + End If + '------------------ INICIA VALIDACIONES ------------------ If MetodoPagoOC = 0 AndAlso RBLPago.SelectedValue.ToEntero <> 2 Then @@ -6507,15 +6513,25 @@ Partial Class Compras_Compras ErrorPrepoliza = True End If Else - For Each Gvr As GridViewRow In GvFacturaNC.Rows - If Gvr.FCCheckBox("ChkFacturaNC").Checked Then ' recorro la seleccion y tomo el TC de cada aplicación - Dim timporteMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal - Dim TCNC As Decimal = Gvr.DataKey("TipoCambio").ToDecimal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, timporteMovimientoNC.RoundSQL, timporteMovimientoNC * TCNC * Multiplicador, ConceptoContabilizacionNC, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=TCNC, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True + Dim AplicadoenFactura As Boolean = False + If UsuarioActual.CveEmpresa = 119 Then + For Each Gvr As GridViewRow In GvFacturaNC.Rows + If Gvr.FCCheckBox("ChkFacturaNC").Checked Then ' recorro la seleccion y tomo el TC de cada aplicación + AplicadoenFactura = True + Dim timporteMovimientoNC As Decimal = (Gvr.FCTextBox("TxtImporte").Text.ToDecimal * Gvr.DataKey("SubTotal").ToDecimal / Gvr.DataKey("Saldo").ToDecimal).RoundSQL + Dim TCNC As Decimal = Gvr.DataKey("TipoCambio").ToDecimal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, timporteMovimientoNC, (timporteMovimientoNC * TCNC * Multiplicador).RoundSQL, ConceptoContabilizacionNC, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=TCNC, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If End If + Next + End If + + If Not AplicadoenFactura Then ' se aplica el subtotal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento.RoundSQL, importeMovimiento * tipoCambioActual * Multiplicador, ConceptoContabilizacionNC, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True End If - Next + End If End If End If End If @@ -7035,7 +7051,7 @@ Partial Class Compras_Compras 'EMPIEZA REFACTURACION If Not ErrorPrepoliza AndAlso CveCompraRefacturacion > 0 Then - ErrorBitacora = GuardaRefacturacion(ObjCompras, ObjEventos, CvePrePoliza) + ErrorBitacora = GuardaRefacturacion(ObjCompras, ObjEventos, CvePrePoliza, ObjConta, CompraActual) If ErrorBitacora Then Alert("Ocurrió un error al hacer la Refacturación", TipoMensaje.MsgError) End If @@ -13098,7 +13114,7 @@ Partial Class Compras_Compras RegistraScript(String.Format("$('#{0}').modal('hide')", DivRefacturacion.ClientID)) End Sub - Private Function GuardaRefacturacion(ByRef ObjCompra As ClsCompras, ByRef ObjEventos As ClsOIEventos, CvePrePoliza As Integer) As Boolean + Private Function GuardaRefacturacion(ByRef ObjCompra As ClsCompras, ByRef ObjEventos As ClsOIEventos, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad, ByRef CompraActual As Compra) As Boolean Dim dr As DataRow = Nothing Dim ErrorBitacora As Boolean = False Dim IdPolizaAnterior As Integer = -1 @@ -13118,8 +13134,28 @@ Partial Class Compras_Compras If ChkRefacNC.Checked Then Tipo = 2 'CONTABILIZA REFACTURACION - If Not ObjCompra.Refacturacion(CveCompraRefacturacion, CveCompra, UsuarioActual.CveEmpresa, Tipo) Then + If ObjCompra.Refacturacion(CveCompraRefacturacion, CveCompra, UsuarioActual.CveEmpresa, Tipo) Then + Dim dttpagos As DataTable + If ObjCompra.GetComprasPagos(CveCompraRefacturacion, UsuarioActual.CveEmpresa) Then + dttpagos = ObjCompra.DtResultados + + For Each drp As DataRow In dttpagos.Rows + Dim Pago As New CompraPago + Pago.ImportePago = drp("ImporteMN").ToString.ToDecimal + Pago.CveIE = drp("CveIE").ToString.ToEntero + Pago.CveMonedaPago = 1 + Pago.CveCompraAmortizacion = -1 + Pago.TipoPago = If(drp("CveIE").ToString.ToEntero > 0, "B", "NC") + + Dim ErrorMovtosCxP As Boolean = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + Next + + End If + + Else + ErrorBitacora = True + End If @@ -16570,6 +16606,12 @@ Partial Class Compras_Compras End Sub Protected Sub LbAgregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LbAgregar.Click + + Dim ValImporte As Decimal = (TxtCantidad.Text.ToDecimal * TxtPrecio.Text.ToDecimal).RoundSQL(2) + If Not ValidaPresupuesto(1, DdlSubProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlTipoGasto.SelectedValue.ToEntero, DdlTipoGasto.SelectedItem.Text, ValImporte) Then + Exit Sub + End If + 'VALIDACIONES If Not DdlPS.SelectedValue.ToEntero > 0 Then Alert("Es necesario seleccionar un Producto o Servicio registrado en el sistema.", TipoMensaje.MsgAdvertencia) @@ -16616,39 +16658,43 @@ Partial Class Compras_Compras Dim Total As Decimal = (TxtCantidad.Text.ToDecimal * TxtPrecio.Text.ToDecimal) - TxtDescuentoModal.Text.ToDecimal - If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then - Dim ObjCon As New ClsContratos - Dim CvePresupuesto As Integer = 0 - Dim Autorizado As Double = 0 - Dim Ejercido As Double = 0 - If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero - If CvePresupuesto > 0 Then - If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND CveTipoGasto = {DdlTipoGasto.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then - Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND CveTipoGasto = {DdlTipoGasto.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble - End If - End If - If ObjCon.GetPresupuestosRep(CvePresupuesto, DdlTipoGasto.SelectedValue.ToEntero, 1, $"01/09/{NowADS().Year - 1}".ToDate, NowADS(), UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, - DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble - End If - End If - End If - End If - End If - ObjCon.Dispose() + 'If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + ' Dim ObjCon As New ClsContratos + ' Dim CvePresupuesto As Integer = 0 + ' Dim Autorizado As Double = 0 + ' Dim Ejercido As Double = 0 + ' If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then + ' If ObjCon.DtResultados.Rows.Count > 0 Then + ' CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero + ' If CvePresupuesto > 0 Then - If CvePresupuesto > 0 And Autorizado > 0 Then - Dim Diferencia As Double = (Ejercido + Total) - Autorizado - If Diferencia > 0 Then - Alert($"No hay presupuesto disponible en el subproyecto {DdlSubProyecto.SelectedItem.Text} con la clasificación {DdlClasificacion.SelectedItem.Text} y el tipo de gasto {DdlTipoGasto.SelectedItem.Text}. Se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - End If + ' If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then + ' If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND CveTipoGasto = {DdlTipoGasto.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then + ' Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND CveTipoGasto = {DdlTipoGasto.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble + ' End If + ' End If + + ' If ObjCon.GetPresupuestosRep(CvePresupuesto, DdlTipoGasto.SelectedValue.ToEntero, 1, $"01/09/{NowADS().Year - 1}".ToDate, NowADS(), UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, + ' DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then + ' If ObjCon.DtResultados.Rows.Count > 0 Then + ' Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble + ' End If + ' End If + + ' End If + ' End If + ' End If + ' ObjCon.Dispose() + + ' If CvePresupuesto > 0 And Autorizado > 0 Then + ' Dim Diferencia As Double = (Ejercido + Total) - Autorizado + ' If Diferencia > 0 Then + ' Alert($"No hay presupuesto disponible en el subproyecto {DdlSubProyecto.SelectedItem.Text} con la clasificación {DdlClasificacion.SelectedItem.Text} y el tipo de gasto {DdlTipoGasto.SelectedItem.Text}. Se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + ' End If + + 'End If ActualizaTotales = True @@ -20208,6 +20254,168 @@ Partial Class Compras_Compras Protected Sub BtnRecolecciónAplicar_Click(sender As Object, e As EventArgs) End Sub + +#Region "PRESUPUESTOS" + + ''' + ''' Valida si hay presupuesto, Se valida con base en CveSubProyecto, CveClasificacion y CveTipoGasto + ''' + ''' Int 1 Indica que es una valiadcion al agregar el Producto o servicio 2 Indica validacion General antes de guardae . + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Verdadero si hay presupuesto, Falso si no hay presupuesto. + Public Function ValidaPresupuesto(Opcion As Integer, Optional ValCveSubProyecto As Integer = -1, Optional ValSubProyecto As String = "", Optional ValCveClasificacion As Integer = -1, Optional ValClasificacion As String = "", + Optional ValCveTipoGasto As Integer = -1, Optional ValTipoGasto As String = "", Optional ValImporte As Decimal = 0) As Boolean + + Dim respuesta As Boolean = False + + If DdlTipoComprobante.SelectedValue <> "Fac" Then + Return True + End If + + + + If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + + Dim ObjCon As New ClsContratos + Dim CvePresupuesto As Integer = 0 + Dim Autorizado As Double = 0 + Dim Ejercido As Double = 0 + + If ObjCon.GetPresupuestosResumen(UsuarioActual.CveEmpresa, -1, 1) Then + + Dim FechaCompra As Date = TxtFecha.Text.ToDate + + Dim resultadosFiltrados = From row In ObjCon.DtResultados.AsEnumerable() + Where FechaCompra >= row.Field(Of Date)("FechaInicio") AndAlso + FechaCompra <= row.Field(Of Date)("FechaFin") + Select row + + + If resultadosFiltrados.Count > 0 Then + + Dim EnumAgrupado = (From row In TmpDT.AsEnumerable() + Group row By + SubProyecto = row.Field(Of String)("SubProyecto"), + CveSubProyecto = row.Field(Of Integer)("CveSubProyecto"), + Clasificacion = row.Field(Of String)("Clasificacion"), + CveClasificacion = row.Field(Of Integer)("CveClasificacion"), + TipoGasto = row.Field(Of String)("TipoGasto"), + CveTipoGasto = row.Field(Of Integer)("CveTipoGasto") + Into Group + Select New With { + .SubProyecto = SubProyecto, + .CveSubProyecto = CveSubProyecto, + .Clasificacion = Clasificacion, + .CveClasificacion = CveClasificacion, + .CveTipoGasto = CveTipoGasto, + .TipoGasto = TipoGasto, + .TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total")))) + }).ToList() + + ''.TotalSum = Group.Sum(Function(r) r.Field(Of Decimal)("Total")) + If Opcion = 1 Then + + + Dim tieneRegistrosConCveSubProyecto As Boolean = resultadosFiltrados.Any(Function(row) CType(row("CveSubProyecto"), Integer) = ValCveSubProyecto) + + If tieneRegistrosConCveSubProyecto Then + Dim saldoTotal As Decimal = (From row In resultadosFiltrados + Where row.Field(Of Integer)("CveSubProyecto") = ValCveSubProyecto AndAlso + row.Field(Of Integer)("CveClasificacion") = ValCveClasificacion AndAlso + row.Field(Of Integer)("CveTipoGasto") = ValCveTipoGasto + Select row.Field(Of Decimal)("Saldo")).Sum() + If saldoTotal > 0 Then + + Dim TotalAcumuladoTabla As Decimal = (TmpDT.SUM("Total", $" CveSubProyecto = {ValCveSubProyecto} AND CveClasificacion = {ValCveClasificacion} AND CveTipoGasto = {ValCveTipoGasto} ")) + Dim Diferencia As Decimal = saldoTotal - TotalAcumuladoTabla - ValImporte + + If (Diferencia) < 0 Then + Alert($"No hay presupuesto disponible en el subproyecto {ValSubProyecto} con la clasificación {ValClasificacion}, Tipo de gasto {ValTipoGasto}. Se excede por {Math.Abs(Diferencia).FormatoNumero}", TipoMensaje.MsgAdvertencia) + respuesta = False + + Else + respuesta = True + End If + + Else + Alert($"No hay presupuesto disponible en el subproyecto {ValSubProyecto} con la clasificación {ValClasificacion}, Tipo de gasto {ValTipoGasto} ", TipoMensaje.MsgAdvertencia) + respuesta = False + End If + Else + respuesta = True + End If + + + Else + For Each item In EnumAgrupado + + + Dim tieneRegistrosConCveSubProyecto As Boolean = resultadosFiltrados.Any(Function(row) CType(row("CveSubProyecto"), Integer) = item.CveSubProyecto) + + If tieneRegistrosConCveSubProyecto Then + Dim saldoTotal As Decimal = (From row In resultadosFiltrados + Where row.Field(Of Integer)("CveSubProyecto") = item.CveSubProyecto AndAlso + row.Field(Of Integer)("CveClasificacion") = item.CveClasificacion + Select row.Field(Of Decimal)("Saldo")).Sum() + If saldoTotal > 0 Then + + Dim Diferencia As Decimal = saldoTotal - item.TotalSum + + If (Diferencia) < 0 Then + Alert($"No hay presupuesto disponible en el subproyecto {item.SubProyecto} con la clasificación {item.Clasificacion}, Tipo de gasto {item.TipoGasto}. Se excede por {Math.Abs(Diferencia).FormatoNumero}", TipoMensaje.MsgAdvertencia) + respuesta = False + Exit For + Else + respuesta = True + End If + + Else + Alert($"No hay presupuesto disponible en el subproyecto {item.SubProyecto} con la clasificación {item.Clasificacion}, Tipo de gasto {item.TipoGasto}", TipoMensaje.MsgAdvertencia) + respuesta = False + Exit For + End If + Else + respuesta = True + End If + Next + End If + + + + + Else + 'Alert("No hay presupuestos.", TipoMensaje.MsgAdvertencia) + respuesta = True + End If + + + Else + 'Alert("No hay presupuestos.", TipoMensaje.MsgAdvertencia) + respuesta = False + End If + + ObjCon.Dispose() + + + + Else + respuesta = True + End If + + + Return respuesta + + End Function + + +#End Region + End Class diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index fd3c9db42..facb2a11a 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1566,13 +1566,15 @@ Partial Class PopUpVerFactura Dim ObjPuntoVenta As New ClsPuntoVenta Dim DtCortesVentasResumen As DataTable = Nothing Dim DtCortesVentas As DataTable = Nothing + Dim DtReporteCorte As DataTable = Nothing + Dim Fecha As String = "", Nombre As String = "" If ObjVenta.GetCortesDetalleVentasResumen(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa) Then - DtCortesVentasResumen = ObjVenta.DtResultados + DtCortesVentasResumen = ObjVenta.DtResultados.Copy() End If If ObjPuntoVenta.GetCortesDetalleVentas(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa) Then - DtCortesVentas = ObjPuntoVenta.DtResultados + DtCortesVentas = ObjPuntoVenta.DtResultados.Copy() If DtCortesVentas.Rows.Count > 0 Then Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0") @@ -1581,27 +1583,142 @@ Partial Class PopUpVerFactura End If End If + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + If ObjPuntoVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, CveSubProyecto, CveCorte:=CveCorte) Then + DtReporteCorte = ObjPuntoVenta.DtResultados.FiltraParametros("CveCorte > 0") + End If + End If + ObjVenta.Dispose() ObjPuntoVenta.Dispose() + Dim FechaCorte As String = $" Fecha fin: {Fecha}" Dim Usuario As String = $" Usuario: {Nombre}" If DtCortesVentas.Rows.Count > 0 Or DtCortesVentasResumen.Rows.Count > 0 Then + Dim lrds As New List(Of ReportDataSource) + + Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DtCortesVentasResumen} + lrds.Add(rds) + Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas} + lrds.Add(rds2) + + Dim DirFormato As String = "Empresas/Grales/Formatos/RepCortes.rdlc" + If File.Exists(UsuarioActual.Empresa.Ruta + "\Formatos\RepCortes.rdlc") Then + DirFormato = UsuarioActual.Empresa.Ruta + "\Formatos\RepCortes.rdlc" + End If + Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupoPor", $"{FechaCorte}{Usuario}")) params.Add(New ReportParameter("LogoPath", RutaImagenLogo)) - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DtCortesVentasResumen} - lrds.Add(rds) - Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas} - lrds.Add(rds2) - ImprimirPDF("Empresas/Grales/Formatos/RepCortes.rdlc", lrds, params, "ReporteCortes", Formato) + + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + If DtReporteCorte IsNot Nothing Then + Dim DtTT = GenerateTransposedTable(DtReporteCorte) + Dim DtDatosResumen As New DataTable() + DtDatosResumen.Columns.Add(New DataColumn("Orden", GetType(Integer))) + DtDatosResumen.Columns.Add(New DataColumn("Columna", GetType(String))) + DtDatosResumen.Columns.Add(New DataColumn("Importe", GetType(Decimal))) + + For Each row As DataRow In DtTT.Rows + Dim Total = row(1).ToString() + If IsNumeric(Total) Then + Dim Orden As Integer = 0 + Dim rowData = DtDatosResumen.NewRow() + Select Case row(0).ToString() + Case "ImporteInicial" + rowData("Columna") = "Importe Inicial" + Orden = 1 + Case "VentasCorte" + rowData("Columna") = "Total Ventas" + Orden = 2 + Case "NotasCredito" + rowData("Columna") = "N.C." + Orden = 3 + Case "VentasCredito" + rowData("Columna") = "Ventas Crédito" + Orden = 4 + 'Case "TotalEfectivo" + ' rowData("Columna") = "Total Efectivo" + 'Case "TotalCheque" + ' rowData("Columna") = "Total Cheque" + 'Case "TarjDebito" + ' rowData("Columna") = "Tarj. Débito" + 'Case "TarjCredito" + ' rowData("Columna") = "Tarj. Crédito" + 'Case "VentasTransferencia" + ' rowData("Columna") = "Total Transf." + Case "TotalRetiros" + rowData("Columna") = "Total Retiro" + Orden = 6 + Case "TotalIngresos" + rowData("Columna") = "Total Ingreso" + Orden = 5 + Case "Devoluciones" + rowData("Columna") = "Devoluciones" + Orden = 7 + Case "TotalCaja" + rowData("Columna") = "Total Caja" + Orden = 8 + 'Case "TotalCorte" + ' rowData("Columna") = "Total Corte" + Case Else + rowData("Columna") = row(0).ToString() + Orden = 0 + End Select + + rowData("Importe") = Total.ToDecimal() + rowData("Orden") = Orden + DtDatosResumen.Rows.Add(rowData) + End If + Next + + Dim rds3 As New ReportDataSource With {.Name = "DataSet3", .Value = DtDatosResumen.FiltraParametros("Orden > 0", "Orden")} + lrds.Add(rds3) + + 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) + 'params.Add(New ReportParameter("NotasCredito", RowCorte("NotasCredito").ToString())) + 'params.Add(New ReportParameter("NotasCredito", RowCorte("NotasCredito").ToString())) + 'params.Add(New ReportParameter("VentasCredito", RowCorte("VentasCorte").ToString())) + 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) + 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) + End If + End If + + + + + ImprimirPDF(DirFormato, lrds, params, "ReporteCortes", Formato) End If End Sub + Private Function GenerateTransposedTable(ByVal inputTable As DataTable) As DataTable + Dim outputTable As DataTable = New DataTable() + outputTable.Columns.Add(inputTable.Columns(0).ColumnName.ToString()) + + For Each inRow As DataRow In inputTable.Rows + Dim newColName As String = inRow(0).ToString() + outputTable.Columns.Add(newColName) + Next + + For rCount As Integer = 1 To inputTable.Columns.Count - 1 + Dim newRow As DataRow = outputTable.NewRow() + newRow(0) = inputTable.Columns(rCount).ColumnName.ToString() + + For cCount As Integer = 0 To inputTable.Rows.Count - 1 + Dim colValue As String = inputTable.Rows(cCount)(rCount).ToString() + newRow(cCount + 1) = colValue + Next + + outputTable.Rows.Add(newRow) + Next + + Return outputTable + End Function + #End Region #Region " OP = FACTURA - IMPRIME COMPRA" @@ -2043,17 +2160,10 @@ Partial Class PopUpVerFactura Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{SerieFolio}.jpg" Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) - - - If Not ImagenCBB.Exists Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ReceptorRFC, 1, FolioFiscal, RutaCBB) - End If - + If Not ImagenCBB.Exists Then GeneraQRSAT(UsuarioActual.Empresa.RFC, ReceptorRFC, 1, FolioFiscal, RutaGuardado:=RutaCBB) Dim ImgCBB As String = $"file://{ImagenCBB.FullName}" - params.Add(New ReportParameter("FolioFiscal", FolioFiscal)) params.Add(New ReportParameter("CertificadoSAT", NoSerieCertificado)) params.Add(New ReportParameter("FechaCertificacion", FechaCertificacion.ToString)) @@ -2891,7 +3001,7 @@ Partial Class PopUpVerFactura End If - Case 3, 16, 37, 40, 45 ' S A L I D A S + Case 3, 16, 37, 40, 45, 47 ' S A L I D A S 'Dim Archivo As New System.IO.FileInfo(String.Format("Empresas/{0}/Formatos/Salidas.rdlc", 72)) 'Dim Imagen As New System.IO.FileInfo(String.Format("Empresas/{0}/Logo.png", 72)) Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Salidas.rdlc", UsuarioActual.Empresa.Ruta)) @@ -2904,6 +3014,8 @@ Partial Class PopUpVerFactura concepto = "SALIDA VIRTUAL" ElseIf CveConcepto = 45 Then concepto = "SALIDA DE USADOS" + ElseIf CveConcepto = 47 Then + concepto = "SALIDA POR CAMBIO DE VIGENCIA" Else concepto = "SALIDA DE ALMACÉN POR RECONSTRUCCIÓN" End If diff --git a/Compras/RepCxP.aspx b/Compras/RepCxP.aspx index 1d1e25ff5..c9371d679 100644 --- a/Compras/RepCxP.aspx +++ b/Compras/RepCxP.aspx @@ -476,66 +476,64 @@ - + - SubTotal Pend + SubTotal - + - IVA Pend + IVA - + - IEPS Pend + IEPS - - - - Ret IVA Pend - - - - - - - - - Ret ISR Pend - - - - - - - + + + - + - + - + + + + + + + + + + + + + + + + diff --git a/Compras/RepCxP.aspx.vb b/Compras/RepCxP.aspx.vb index c5782cf3e..0c06daa35 100644 --- a/Compras/RepCxP.aspx.vb +++ b/Compras/RepCxP.aspx.vb @@ -656,7 +656,6 @@ Partial Class Compras_RepCxP If e.Row.FCHyperLink("HplColumna14").Text.ToDouble = 0 Then e.Row.FCHyperLink("HplColumna14").Text = "-" If e.Row.FCHyperLink("HplColumna15").Text.ToDouble = 0 Then e.Row.FCHyperLink("HplColumna15").Text = "-" - If e.Row.FCHyperLink("LtlPorVencer").Text = "0.00" Then e.Row.FCHyperLink("LtlPorVencer").Text = "-" If e.Row.FCHyperLink("LtlVentas").Text = "0.00" Then e.Row.FCHyperLink("LtlVentas").Text = "-" If e.Row.FCHyperLink("LtlSaldo1").Text = "0.00" Then e.Row.FCHyperLink("LtlSaldo1").Text = "-" @@ -1009,6 +1008,16 @@ Partial Class Compras_RepCxP If e.Row.FCHyperLink("LtlVentas").Text = "0.00" Then e.Row.FCHyperLink("LtlVentas").Text = "-" If e.Row.FCHyperLink("LtlSaldo1").Text = "0.00" Then e.Row.FCHyperLink("LtlSaldo1").Text = "-" + If e.Row.FCLabel("LtlSubtotalP").Text = "0.00" Then e.Row.FCLabel("LtlSubtotalP").Text = "-" + If e.Row.FCLabel("LtlIVAP").Text = "0.00" Then e.Row.FCLabel("LtlIVAP").Text = "-" + If e.Row.FCLabel("LtlIEPSP").Text = "0.00" Then e.Row.FCLabel("LtlIEPSP").Text = "-" + If e.Row.FCLabel("LtlRETIVASerProf").Text = "0.00" Then e.Row.FCLabel("LtlRETIVASerProf").Text = "-" + If e.Row.FCLabel("LtlRETIVAFletes").Text = "0.00" Then e.Row.FCLabel("LtlRETIVAFletes").Text = "-" + If e.Row.FCLabel("LtlRETIVAArrend").Text = "0.00" Then e.Row.FCLabel("LtlRETIVAArrend").Text = "-" + If e.Row.FCLabel("LtlRETISRSerProf").Text = "0.00" Then e.Row.FCLabel("LtlRETISRSerProf").Text = "-" + If e.Row.FCLabel("LtlRETISRArrend").Text = "0.00" Then e.Row.FCLabel("LtlRETISRArrend").Text = "-" + If e.Row.FCLabel("LtlRETISRResico").Text = "0.00" Then e.Row.FCLabel("LtlRETISRResico").Text = "-" + e.Row.Cells(2).Width = Unit.Pixel(75) e.Row.Cells(3).Width = Unit.Pixel(75) e.Row.Cells(4).Width = Unit.Pixel(75) @@ -1895,7 +1904,13 @@ Partial Class Compras_RepCxP ActivaColumna(24, ChkIVAP.Checked) ActivaColumna(25, ChkIEPSP.Checked) ActivaColumna(26, ChkRetIVAPendiente.Checked) - ActivaColumna(27, ChkRetISRPendiente.Checked) + ActivaColumna(27, ChkRetIVAPendiente.Checked) + ActivaColumna(28, ChkRetIVAPendiente.Checked) + 'ActivaColumna(29, ChkRetIVAPendiente.Checked) + ActivaColumna(29, ChkRetISRPendiente.Checked) + ActivaColumna(30, ChkRetISRPendiente.Checked) + ActivaColumna(31, ChkRetISRPendiente.Checked) + 'ActivaColumna(33, ChkRetISRPendiente.Checked) If SePersonalizo = 1 Then ImgExcelPersonalizado.Visible = True diff --git a/Compras/RepCxPDetalle.aspx b/Compras/RepCxPDetalle.aspx index eb8f03b10..a7d940773 100644 --- a/Compras/RepCxPDetalle.aspx +++ b/Compras/RepCxPDetalle.aspx @@ -13,6 +13,9 @@ .tooltip-inner { max-width: 350px !important; } + .TextoGris { + color:gray; + } @@ -436,7 +439,7 @@ - SubTotal Pend + SubTotal @@ -445,7 +448,7 @@ - IVA Pend + IVA @@ -454,31 +457,43 @@ - IEPS Pend + IEPS - - - Ret IVA Pend - + - - - + + - - - Ret ISR Pend - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compras/RepCxPDetalle.aspx.vb b/Compras/RepCxPDetalle.aspx.vb index bb867e3dd..7cea6cea1 100644 --- a/Compras/RepCxPDetalle.aspx.vb +++ b/Compras/RepCxPDetalle.aspx.vb @@ -566,7 +566,11 @@ Partial Class RepCxPDetalle ActivaColumna(18, ChkIVAPend.Checked) ActivaColumna(19, ChkIEPSPend.Checked) ActivaColumna(20, ChkRetIVAPendiente.Checked) - ActivaColumna(21, ChkRetISRPendiente.Checked) + ActivaColumna(21, ChkRetIVAPendiente.Checked) + ActivaColumna(22, ChkRetIVAPendiente.Checked) + ActivaColumna(23, ChkRetISRPendiente.Checked) + ActivaColumna(24, ChkRetISRPendiente.Checked) + ActivaColumna(25, ChkRetISRPendiente.Checked) If SePersonalizo = 1 Then ImgExcelPersonalizado.Visible = True diff --git a/Compras/eFacturas.aspx b/Compras/eFacturas.aspx index 6f6a0f7e4..061e4ba57 100644 --- a/Compras/eFacturas.aspx +++ b/Compras/eFacturas.aspx @@ -1473,6 +1473,13 @@ + +<%-- + + --%> + +
@@ -1487,6 +1494,12 @@ + + + + + diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 99bdde358..9563c4d45 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -2249,10 +2249,8 @@ Partial Class Compras_eFacturas CargaImpuestosXML(XMLDoc) CargaTFD(XMLDoc) - Dim QR As New ClbNegBICFDv3_2.ClsNegCBBGenerar() Dim dtotal As Decimal = (If(total.ToDecimal() <= 0.0D, 0.0001D, total.ToDecimal())) - QR.GenerarCBB(EmiRFC, RecRfc, dtotal, TFDUUID, TmpArchivoQR) - + ClsPaginas.GeneraQRSAT(EmiRFC, RecRfc, dtotal, TFDUUID, RutaGuardado:=TmpArchivoQR) If System.IO.File.Exists(TmpArchivoQR) Then 'Dim ArchivoBaseXLS As String = String.Format("{0}FacturaPDF.xlsm", Ruta.Replace("Temp", "Compras")) @@ -2652,6 +2650,9 @@ Partial Class Compras_eFacturas 'End Sub Protected Sub LnkSolicitarSat_Click(ByVal sender As Object, ByVal e As EventArgs) + + Exit Sub + Dim sbResultado As StringBuilder = New StringBuilder() Dim idSolicitudCFDI As Integer = 0 Dim idSolicitudMetadata As Integer = 0 @@ -4038,8 +4039,7 @@ Partial Class Compras_eFacturas Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(rutaxml) Dim rutaReporte As String = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\Grales\Formatos\CFDIV3.rdlc") - Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar() - Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID) + Dim cQr As Byte() = ClsPaginas.GeneraQRSAT(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID) Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() parametros.Add(New ReportParameter("comprobante_Certificado", objxml.comprobante.Certificado)) parametros.Add(New ReportParameter("comprobante_CondicionesDePago", objxml.comprobante.CondicionesDePago)) diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 51bc19045..dd3da1c97 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -448,264 +448,336 @@ Partial Class General_SaldosIniciales If Not validaRHPersonal(dt) Then Exit Sub End If - End If - ElseIf RblFormato.SelectedValue = "7" Then - If Not dt.Columns(0).ColumnName = "Código" Then - Alert("El nombre de la primera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - - If Not dt.Columns(1).ColumnName = "Descripcion" Then - Alert("El nombre de la segunda columna debe ser 'Descripción'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - - If Not dt.Columns(2).ColumnName = "Tipo" Then - Alert("El nombre de la tercera columna debe ser 'Tipo'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - - If Not dt.Columns(3).ColumnName = "Linea" Then - Alert("El nombre de la cuarta columna debe ser 'Linea'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(4).ColumnName = "Codigo Barras" Then - Alert("El nombre de la sexta columna debe ser 'Codigo Barras'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + ElseIf RblFormato.SelectedValue = "7" Then + If Not dt.Columns(0).ColumnName = "Código" Then + Alert("El nombre de la primera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(5).ColumnName = "Clasificacion" Then - Alert("El nombre de la séptima columna debe ser 'Clasificacion'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(1).ColumnName = "Descripción" Then + Alert("El nombre de la segunda columna debe ser 'Descripción'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(6).ColumnName = "Marca" Then - Alert("El nombre de la octava columna debe ser 'Marca'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(2).ColumnName = "Tipo" Then + Alert("El nombre de la tercera columna debe ser 'Tipo'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(7).ColumnName = "Modelo" Then - Alert("El nombre de la novena columna debe ser 'Modelo'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(3).ColumnName = "SubTipo" Then + Alert("El nombre de la tercera columna debe ser 'SubTipo'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(8).ColumnName = "Medida" Then - Alert("El nombre de la décima columna debe ser 'Medida'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(4).ColumnName = "Valor" Then + Alert("El nombre de la tercera columna debe ser 'Valor'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(9).ColumnName = "Tamaño de Rin" Then - Alert("El nombre de la onceava columna debe ser 'Tamaño de Rin'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(10).ColumnName = "CODIGO SAT" Then - Alert("El nombre de la diesciseisava columna debe ser 'CODIGO SAT'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(5).ColumnName = "Fecha" Then + Alert("El nombre de la tercera columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(11).ColumnName = "Clave Unidad" Then - Alert("El nombre de la diescisieteava columna debe ser 'Clave Unidad'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(6).ColumnName = "No. Serie" Then + Alert("El nombre de la tercera columna debe ser 'No. Serie'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - ElseIf RblFormato.SelectedValue = "9" Then + If Not dt.Columns(7).ColumnName = "Año" Then + Alert("El nombre de la tercera columna debe ser 'Año'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(0).ColumnName = "Cuenta" Then - Alert("El nombre de la primera columna debe ser 'Cuenta'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(8).ColumnName = "Cuenta Contable" Then + Alert("El nombre de la tercera columna debe ser 'Cuenta Contable'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(1).ColumnName = "NombreCuenta" Then - Alert("El nombre de la segunda columna debe ser 'NombreCuenta'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(9).ColumnName = "Estado" Then + Alert("El nombre de la tercera columna debe ser 'Estado'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(2).ColumnName = "TipoCuenta" Then - Alert("El nombre de la tercera columna debe ser 'TipoCuenta'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(10).ColumnName = "Proyecto" Then + Alert("El nombre de la tercera columna debe ser 'Proyecto'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(3).ColumnName = "CuentaPadre" Then - Alert("El nombre de la cuarta columna debe ser 'CuentaPadre'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(11).ColumnName = "SubProyecto" Then + Alert("El nombre de la tercera columna debe ser 'SubProyecto'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(5).ColumnName = "AgrupadorSAT" Then - Alert("El nombre de la quinta columna debe ser 'AgrupadorSAT'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(12).ColumnName = "Cliente" Then + Alert("El nombre de la tercera columna debe ser 'Cliente'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - ElseIf RblFormato.SelectedValue = "12" Then - If Not dt.Columns(0).ColumnName = "CodigoPS" Then - Alert("El nombre de la primera columna debe ser 'CodigoPS'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(13).ColumnName = "Observaciones" Then + Alert("El nombre de la tercera columna debe ser 'Observaciones'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(1).ColumnName = "Almacen" Then - Alert("El nombre de la segunda columna debe ser 'Almacen'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(14).ColumnName = "Cuenta Depreciación" Then + Alert("El nombre de la tercera columna debe ser 'Cuenta Depreciación'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(2).ColumnName = "Existencia" Then - Alert("El nombre de la tercera columna debe ser 'Existencia'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(15).ColumnName = "% Depreciación" Then + Alert("El nombre de la tercera columna debe ser '% Depreciación'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(3).ColumnName = "Valor" Then - Alert("El nombre de la cuarta columna debe ser 'Valor'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(16).ColumnName = "Cuenta Depreciación Acumulada" Then + Alert("El nombre de la tercera columna debe ser 'Cuenta Depreciación Acumulada'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + 'If Not dt.Columns(3).ColumnName = "Linea" Then + ' Alert("El nombre de la cuarta columna debe ser 'Linea'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - ElseIf RblFormato.SelectedValue = "13" Then 'ANTICIPO PROVEEDORES - If Not dt.Columns(0).ColumnName = "RFC" Then - Alert("El nombre de la primera columna debe ser 'RFC'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(4).ColumnName = "Codigo Barras" Then + ' Alert("El nombre de la sexta columna debe ser 'Codigo Barras'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(1).ColumnName = "Descripcion" Then - Alert("El nombre de la segunda columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(5).ColumnName = "Clasificacion" Then + ' Alert("El nombre de la séptima columna debe ser 'Clasificacion'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(2).ColumnName = "Fecha" Then - Alert("El nombre de la tercera columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(6).ColumnName = "Marca" Then + ' Alert("El nombre de la octava columna debe ser 'Marca'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(3).ColumnName = "Importe" Then - Alert("El nombre de la cuarta columna debe ser 'Importe'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(7).ColumnName = "Modelo" Then + ' Alert("El nombre de la novena columna debe ser 'Modelo'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(4).ColumnName = "Moneda" Then - Alert("El nombre de la cuarta columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(8).ColumnName = "Medida" Then + ' Alert("El nombre de la décima columna debe ser 'Medida'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(5).ColumnName = "TipoCambio" Then - Alert("El nombre de la cuarta columna debe ser 'TipoCambio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(9).ColumnName = "Tamaño de Rin" Then + ' Alert("El nombre de la onceava columna debe ser 'Tamaño de Rin'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(6).ColumnName = "CuentaContable" Then - Alert("El nombre de la cuarta columna debe ser 'CuentaContable'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + 'If Not dt.Columns(10).ColumnName = "CODIGO SAT" Then + ' Alert("El nombre de la diesciseisava columna debe ser 'CODIGO SAT'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - ElseIf RblFormato.SelectedValue = "14" Then 'ANTICIPO CLIENTES + 'If Not dt.Columns(11).ColumnName = "Clave Unidad" Then + ' Alert("El nombre de la diescisieteava columna debe ser 'Clave Unidad'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If - If Not dt.Columns(0).ColumnName = "RFC" Then - Alert("El nombre de la primera columna debe ser 'RFC'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + ElseIf RblFormato.SelectedValue = "9" Then - If Not dt.Columns(1).ColumnName = "Descripcion" Then - Alert("El nombre de la segunda columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(0).ColumnName = "Cuenta" Then + Alert("El nombre de la primera columna debe ser 'Cuenta'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(2).ColumnName = "Fecha" Then - Alert("El nombre de la tercera columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(1).ColumnName = "NombreCuenta" Then + Alert("El nombre de la segunda columna debe ser 'NombreCuenta'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(3).ColumnName = "Importe" Then - Alert("El nombre de la cuarta columna debe ser 'Importe'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(2).ColumnName = "TipoCuenta" Then + Alert("El nombre de la tercera columna debe ser 'TipoCuenta'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(4).ColumnName = "Moneda" Then - Alert("El nombre de la cuarta columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(3).ColumnName = "CuentaPadre" Then + Alert("El nombre de la cuarta columna debe ser 'CuentaPadre'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(5).ColumnName = "TipoCambio" Then - Alert("El nombre de la cuarta columna debe ser 'TipoCambio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(5).ColumnName = "AgrupadorSAT" Then + Alert("El nombre de la quinta columna debe ser 'AgrupadorSAT'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(6).ColumnName = "CuentaContable" Then - Alert("El nombre de la cuarta columna debe ser 'CuentaContable'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + ElseIf RblFormato.SelectedValue = "12" Then + If Not dt.Columns(0).ColumnName = "CodigoPS" Then + Alert("El nombre de la primera columna debe ser 'CodigoPS'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - ElseIf RblFormato.SelectedValue = "15" Then 'BANCOS + If Not dt.Columns(1).ColumnName = "Almacen" Then + Alert("El nombre de la segunda columna debe ser 'Almacen'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(0).ColumnName = "CuentaBancaria" Then - Alert("El nombre de la primera columna debe ser 'CuentaBancaria'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(1).ColumnName = "Banco" Then - Alert("El nombre de la primera columna debe ser 'Banco'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(2).ColumnName = "Importe" Then - Alert("El nombre de la segunda columna debe ser 'Importe'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(2).ColumnName = "Existencia" Then + Alert("El nombre de la tercera columna debe ser 'Existencia'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(3).ColumnName = "Moneda" Then - Alert("El nombre de la segunda columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(3).ColumnName = "Valor" Then + Alert("El nombre de la cuarta columna debe ser 'Valor'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(4).ColumnName = "TipoCambio" Then - Alert("El nombre de la segunda columna debe ser 'TipoCambio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + ElseIf RblFormato.SelectedValue = "13" Then 'ANTICIPO PROVEEDORES - If Not dt.Columns(5).ColumnName = "Fecha" Then - Alert("El nombre de la cuarta columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(0).ColumnName = "RFC" Then + Alert("El nombre de la primera columna debe ser 'RFC'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(6).ColumnName = "Descripcion" Then - Alert("El nombre de la cuarta columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(1).ColumnName = "Descripcion" Then + Alert("El nombre de la segunda columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(7).ColumnName = "CuentaContable" Then - Alert("El nombre de la tercera columna debe ser 'CuentaContable'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(2).ColumnName = "Fecha" Then + Alert("El nombre de la tercera columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - ElseIf RblFormato.SelectedValue = "16" Then 'CLASIFICACIONES + If Not dt.Columns(3).ColumnName = "Importe" Then + Alert("El nombre de la cuarta columna debe ser 'Importe'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(0).ColumnName = "Clasificacion" Then - Alert("El nombre de la primera columna debe ser 'Clasificacion'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(4).ColumnName = "Moneda" Then + Alert("El nombre de la cuarta columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(1).ColumnName = "Categoria" Then - Alert("El nombre de la segunda columna debe ser 'Categoria'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(5).ColumnName = "TipoCambio" Then + Alert("El nombre de la cuarta columna debe ser 'TipoCambio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(2).ColumnName = "UsoClasificacion" Then - Alert("El nombre de la segunda columna debe ser 'UsoClasificacion'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + If Not dt.Columns(6).ColumnName = "CuentaContable" Then + Alert("El nombre de la cuarta columna debe ser 'CuentaContable'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(3).ColumnName = "CuentaContableIngreso" Then - Alert("El nombre de la segunda columna debe ser 'CuentaContableIngreso'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If + ElseIf RblFormato.SelectedValue = "14" Then 'ANTICIPO CLIENTES + + If Not dt.Columns(0).ColumnName = "RFC" Then + Alert("El nombre de la primera columna debe ser 'RFC'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(1).ColumnName = "Descripcion" Then + Alert("El nombre de la segunda columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(2).ColumnName = "Fecha" Then + Alert("El nombre de la tercera columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(3).ColumnName = "Importe" Then + Alert("El nombre de la cuarta columna debe ser 'Importe'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(4).ColumnName = "Moneda" Then + Alert("El nombre de la cuarta columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(5).ColumnName = "TipoCambio" Then + Alert("El nombre de la cuarta columna debe ser 'TipoCambio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(6).ColumnName = "CuentaContable" Then + Alert("El nombre de la cuarta columna debe ser 'CuentaContable'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + ElseIf RblFormato.SelectedValue = "15" Then 'BANCOS + + If Not dt.Columns(0).ColumnName = "CuentaBancaria" Then + Alert("El nombre de la primera columna debe ser 'CuentaBancaria'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(1).ColumnName = "Banco" Then + Alert("El nombre de la primera columna debe ser 'Banco'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(2).ColumnName = "Importe" Then + Alert("El nombre de la segunda columna debe ser 'Importe'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(3).ColumnName = "Moneda" Then + Alert("El nombre de la segunda columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(4).ColumnName = "TipoCambio" Then + Alert("El nombre de la segunda columna debe ser 'TipoCambio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(5).ColumnName = "Fecha" Then + Alert("El nombre de la cuarta columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(6).ColumnName = "Descripcion" Then + Alert("El nombre de la cuarta columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(7).ColumnName = "CuentaContable" Then + Alert("El nombre de la tercera columna debe ser 'CuentaContable'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + ElseIf RblFormato.SelectedValue = "16" Then 'CLASIFICACIONES + + If Not dt.Columns(0).ColumnName = "Clasificacion" Then + Alert("El nombre de la primera columna debe ser 'Clasificacion'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(1).ColumnName = "Categoria" Then + Alert("El nombre de la segunda columna debe ser 'Categoria'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(2).ColumnName = "UsoClasificacion" Then + Alert("El nombre de la segunda columna debe ser 'UsoClasificacion'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(3).ColumnName = "CuentaContableIngreso" Then + Alert("El nombre de la segunda columna debe ser 'CuentaContableIngreso'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(4).ColumnName = "CuentaContableGasto" Then + Alert("El nombre de la cuarta columna debe ser 'CuentaContableGasto'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If - If Not dt.Columns(4).ColumnName = "CuentaContableGasto" Then - Alert("El nombre de la cuarta columna debe ser 'CuentaContableGasto'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub End If End If - dt.TableName = "Datos" Dim NumRows As Integer = dt.Rows.Count @@ -1482,7 +1554,7 @@ Partial Class General_SaldosIniciales Dim ErrorCompras As Boolean = False Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL()) Dim CveCompra As Integer - Dim Contador As Integer = 0 + 'Dim Contador As Integer = 0 Dim ExisteCompra As Boolean = False Dim DtProveedores As New DataTable Dim NoEncontrados As Integer = 0 @@ -1681,12 +1753,15 @@ Partial Class General_SaldosIniciales End Try If Not ErrorCompras Then - If Contador > 0 Then - Alert(String.Format("Se agregaron: {0} Compras correctamente.
Se Omitieron: {1} Compras ya que ya se encuentran registradas.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion) - Else - Alert(String.Format("Se agregaron: {0} Compras correctamente.", NumRows), TipoMensaje.MsgInformacion) - End If - Alert(String.Format("Se agregaron: {0} Compras correctamente. RFC:{1} ", Encontrados, RFC), TipoMensaje.MsgInformacion) + + '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() @@ -1756,7 +1831,13 @@ Partial Class General_SaldosIniciales Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "") Dim CveVendedor As Integer = 0 - Dim IEPS As Decimal = 0 'Row("IEPS").ToString().ToDecimal + Dim IEPS As Decimal = 0 + + If RblFormato.SelectedValue = "17" Then + IEPS = Row("IEPS").ToString().ToDecimal + End If + + Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero() Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "") @@ -1777,6 +1858,11 @@ Partial Class General_SaldosIniciales 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 @@ -1895,8 +1981,8 @@ Partial Class General_SaldosIniciales Exit For End If - If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle * CantidadDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, - PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR) Then + 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 @@ -1935,10 +2021,16 @@ Partial Class General_SaldosIniciales 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 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio.ToString(), 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS) Then ErrorVentas = True : Exit For + + 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, RetIVA, RetIVA, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For + + 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 diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx index 787910cdd..39ebbe52f 100644 --- a/Inventarios/EntregaAlmacen.aspx +++ b/Inventarios/EntregaAlmacen.aspx @@ -1150,6 +1150,17 @@ } + function fncCantidad(checkbox, numeroMax, idTbCantidadF) { + + var $textbox = $('#' + idTbCantidadF); + + if ($(checkbox).is(':checked')) { + $textbox.val(numeroMax); + } else { + $textbox.val(0); + } + } + diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 7e9b55a25..56cf378a4 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -5,6 +5,7 @@ Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports System.Web.Management +Imports DocumentFormat.OpenXml.InkML Imports Extensiones Imports Microsoft.Reporting.WebForms Imports MoreLinq @@ -519,11 +520,11 @@ Partial Class Inventarios_EntregaAlmacen If UsuarioActual.TienePermisoProceso(266) AndAlso UsuarioActual.TienePermisoProceso(267) Then - DtPendientes = ObjInventarios.DtResultados.FiltraParametros("TipoDocto IN ('Ing','Dev','Rem','Traspaso','Ped','PDev','DPe','Ant')") + DtPendientes = ObjInventarios.DtResultados.FiltraParametros("TipoDocto IN ('Ing','Dev','Rem','Traspaso','Ped','PDev','DPe','Ant','RNC')") ElseIf UsuarioActual.TienePermisoProceso(266) AndAlso Not UsuarioActual.TienePermisoProceso(267) Then - DtPendientes = ObjInventarios.DtResultados.FiltraParametros("TipoDocto IN ('Ing','Dev','Rem','Traspaso','Ant')") + DtPendientes = ObjInventarios.DtResultados.FiltraParametros("TipoDocto IN ('Ing','Dev','Rem','Traspaso','Ant','RNC')") ElseIf UsuarioActual.TienePermisoProceso(267) AndAlso Not UsuarioActual.TienePermisoProceso(266) Then - DtPendientes = ObjInventarios.DtResultados.FiltraParametros("TipoDocto IN ('Ped','PDev','DPe')") + DtPendientes = ObjInventarios.DtResultados.FiltraParametros("TipoDocto IN ('Ped','PDev','DPe','RNC')") Else DtPendientes = ObjInventarios.DtResultados End If @@ -1237,13 +1238,13 @@ Partial Class Inventarios_EntregaAlmacen If BloqueCantidad Then e.Row.FCTextBox("TbCantidadF").Enabled = False + Else + e.Row.FCCheckBox("cbInv").Attributes.Add("onclick", $"fncCantidad(this,{e.Row.DBCampo("CantidadF")},'{e.Row.FCTextBox("TbCantidadF").ClientID}')") End If If Boolean.Parse(e.Row.DataKey("AplicaLote")) Or Boolean.Parse(e.Row.DataKey("AplicaCaducidad")) Then - CargarCaducidadProducto(e.Row.DataKey("CvePS").ToEntero, e.Row.FCDropDownList("DdlCaducidadProducto")) - End If @@ -1816,7 +1817,7 @@ Partial Class Inventarios_EntregaAlmacen If Gvr.DataKey("CantidadF").ToDecimal - TxtCantidad.Text.ToDecimal - 1 >= 0 Then ''VALIDA EXISTENCIA - If Not TipoDocto.Contiene("Dev") Then + If Not TipoDocto.Contiene("Dev", "RNC") Then If TipoMovimiento = 1 Then Dim ObjInventario As New ClsInventarios Dim Existencia As Decimal = ObjInventario.GetExistenciasPS(Gvr.DataKey("CvePS").ToString().ToEntero(), Gvr.DataKey("CveUM").ToString().ToEntero(), UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero(), FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=If(TipoEntrega = 2, 1, -1)) @@ -3057,6 +3058,14 @@ Partial Class Inventarios_EntregaAlmacen ErrorMovInv = True End If End If + + If Not ErrorMovInv And EsDevolucionVenta = 0 AndAlso TipoDocto = "RNC" Then + If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveVentaSurtir) Then + TextoError.AppendFormat("Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar.") + ErrorMovInv = True + End If + End If + Dim TotalVirtual As Decimal = 0 ' COMIENZA: VIRTUAL diff --git a/Inventarios/Kardex.aspx.vb b/Inventarios/Kardex.aspx.vb index 76051dd19..514f2022a 100644 --- a/Inventarios/Kardex.aspx.vb +++ b/Inventarios/Kardex.aspx.vb @@ -178,8 +178,7 @@ Partial Class Inventarios_Kardex DdlUnidadMedida.DataBind() DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1")) - - If UsuarioActual.CveUsuario = 100 Then + If UsuarioActual.CveRol = 1 Then LblPS.ToolTip = ddlProducto2.SelectedValue lblAlm.InnerText = ddlProducto2.SelectedValue End If diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index f26610ca8..2b0692add 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -1906,11 +1906,11 @@ Partial Class Inventarios_TraspasoAlmacen Public Property FolioSalidaTransitorio As Integer = 0 End Class - Private Function CancelarTraspaso(ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad, CveAlmacenDestino As Integer, Fecha As DateTime) As MCancelacionTraspaso + Private Function CancelarTraspaso(ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad, CveAlmacenOrigen As Integer, CveAlmacenDestino As Integer, Fecha As DateTime) As MCancelacionTraspaso Dim Retorno As New MCancelacionTraspaso() Dim ErrorMovInv As Boolean = False Try - Dim CveMovimientoEntrada As Integer = ObjInventario.AddMovimiento(CveAlmacenDestino, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, + Dim CveMovimientoEntrada As Integer = ObjInventario.AddMovimiento(CveAlmacenOrigen, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, Recibio:=TxtRecibio.Text, CveAlmacenDestino:=CveAlmacenDestino, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/C") If CveMovimientoEntrada <= 0 Then @@ -2181,7 +2181,7 @@ Partial Class Inventarios_TraspasoAlmacen 'AGREGAMOS LA SALIDA CveMovimientoSalidaTransitorio = ObjInventario.AddMovimiento(CveAlmacenSalida, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, - Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoEntrada, Modulo:="TA/G11") + Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=CveAlmacenEntrada, CveMovimientoRelacionado:=CveMovimientoEntrada, Modulo:="TA/G11") If CveMovimientoSalidaTransitorio <= 0 Then TextoError = "No se pudo generar el movimiento de salida correctamente" @@ -2361,7 +2361,7 @@ Partial Class Inventarios_TraspasoAlmacen Dim CancelacionTraspaso As MCancelacionTraspaso = Nothing If UsuarioActual.Empresa.Funcionalidad(162) = "1" AndAlso ChkRealizarDevolucion.Checked AndAlso Not ErrorMovInv Then - CancelacionTraspaso = CancelarTraspaso(ObjInventario, ObjConta, GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, TxtFechaRecepcion.Text.ToDateTime()) + CancelacionTraspaso = CancelarTraspaso(ObjInventario, ObjConta, GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, TxtFechaRecepcion.Text.ToDateTime()) If CancelacionTraspaso IsNot Nothing Then ErrorMovInv = CancelacionTraspaso.TieneError End If diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 38415f4f5..c00d99534 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -753,14 +753,11 @@ Partial Class OC_OC 'ASIGNA ESTATUS OC CboE_SelectedIndexChanged(New Object, New EventArgs) - If Request("CveOrdenTrabajo") IsNot Nothing AndAlso Request("CveOrdenTrabajo").ToString.ToEntero > 0 Then CveOrdenTrabajo = Request("CveOrdenTrabajo").ToEntero CargaOT() End If - - End If @@ -823,6 +820,8 @@ Partial Class OC_OC divtxtprioridad.Visible = False End If + DdlProyecto.Items.Clear() + DdlSubProyectoContrato.Items.Clear() CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, TtituloProyecto, TituloSubProyecto) CargarCentrosDeCosto(Nothing, DdlSubProyectoContrato, LblProyecto, LblSubProyecto) DivProyecto.Visible = DdlProyecto.Visible @@ -1961,7 +1960,7 @@ Partial Class OC_OC End Sub Private Sub CargaProyectos() DdlProyecto.Items.Clear() - DdlProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) + DdlProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "Proyecto", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) DdlProyecto.DataBind() DdlProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -2211,40 +2210,50 @@ Partial Class OC_OC Exit Sub End If - If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then - Dim ObjCon As New ClsContratos - Dim CvePresupuesto As Integer = 0 - Dim Autorizado As Decimal = 0 - Dim Ejercido As Decimal = 0 - If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero - If CvePresupuesto > 0 Then - If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then - Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDecimal - End If - End If - If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{NowADS().Year - 1}".ToDate, NowADS(), UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, - DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDecimal - End If - End If - End If - End If - End If - ObjCon.Dispose() - If CvePresupuesto > 0 And Autorizado > 0 Then - Dim Diferencia As Decimal = (Ejercido + If(txtPrecioUnitario.Text.ToDecimal > 0, (txtPrecioUnitario.Text.ToDecimal * TxtCant.Text.ToDecimal) - TxtDescuentoAdd.Text.ToDecimal, 0)) - Autorizado - If Diferencia > 0 Then - Alert($"No hay presupuesto disponible en el subproyecto {DdlSubProyecto.SelectedItem.Text} y la clasificación {DdlClasificacion.SelectedItem.Text} se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If + + Dim ValImporte As Decimal = (TxtCant.Text.ToDecimal * txtPrecioUnitario.Text.ToDecimal).RoundSQL(2) + If Not ValidaPresupuesto(1, DdlSubProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, ValImporte) Then + Exit Sub End If + 'If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + + 'Dim ObjCon As New ClsContratos + 'Dim CvePresupuesto As Integer = 0 + 'Dim Autorizado As Decimal = 0 + 'Dim Ejercido As Decimal = 0 + 'If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then + ' If ObjCon.DtResultados.Rows.Count > 0 Then + ' CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero + ' If CvePresupuesto > 0 Then + ' If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then + ' If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then + ' Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDecimal + ' End If + ' End If + ' If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{NowADS().Year - 1}".ToDate, NowADS(), UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, + ' DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then + ' If ObjCon.DtResultados.Rows.Count > 0 Then + ' Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDecimal + ' End If + ' End If + ' End If + ' End If + 'End If + 'ObjCon.Dispose() + + 'If CvePresupuesto > 0 And Autorizado > 0 Then + ' Dim Diferencia As Decimal = (Ejercido + If(txtPrecioUnitario.Text.ToDecimal > 0, (txtPrecioUnitario.Text.ToDecimal * TxtCant.Text.ToDecimal) - TxtDescuentoAdd.Text.ToDecimal, 0)) - Autorizado + ' If Diferencia > 0 Then + ' Alert($"No hay presupuesto disponible en el subproyecto {DdlSubProyecto.SelectedItem.Text} y la clasificación {DdlClasificacion.SelectedItem.Text} se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + 'End If + 'End If + + + Dim RetISR As Decimal = DrPS("RetISR").ToString.ToDecimal Dim RetIVA As Decimal = DrPS("RetIVA").ToString.ToDecimal @@ -2624,6 +2633,10 @@ Partial Class OC_OC 'VALIDACIONES PARA GUARDAR If ValidaGuardar() Then Exit Sub + If Not ValidaPresupuesto(2) Then + Exit Sub + End If + Dim MsgError As String = "Hubo un error al registrar" 'VARIABLES Dim CveProveedorSucursal As Integer = -1 @@ -8952,6 +8965,147 @@ Partial Class OC_OC End Function +#Region "PRESUPUESTOS" + + ''' + ''' Valida si hay presupuesto, Se valida con base en CveSubProyecto, CveClasificacion y CveTipoGasto + ''' + ''' Int 1 Indica que es una valiadcion al agregar el Producto o servicio 2 Indica validacion General antes de guardae . + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Usado al validar Presupuesto cuando se agrega un producto o servicio + ''' Verdadero si hay presupuesto, Falso si no hay presupuesto. + Public Function ValidaPresupuesto(Opcion As Integer, Optional ValCveSubProyecto As Integer = -1, Optional ValSubProyecto As String = "", Optional ValCveClasificacion As Integer = -1, Optional ValClasificacion As String = "", + Optional ValImporte As Decimal = 0) As Boolean + + Dim respuesta As Boolean = False + + If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + + Dim ObjCon As New ClsContratos + Dim CvePresupuesto As Integer = 0 + Dim Autorizado As Double = 0 + Dim Ejercido As Double = 0 + + If ObjCon.GetPresupuestosResumen(UsuarioActual.CveEmpresa, -1, 2) Then + + Dim FechaCompra As Date = TxtFecha.Text.ToDate + + Dim resultadosFiltrados = From row In ObjCon.DtResultados.AsEnumerable() + Where FechaCompra >= row.Field(Of Date)("FechaInicio") AndAlso + FechaCompra <= row.Field(Of Date)("FechaFin") + Select row + + + If resultadosFiltrados.Count > 0 Then + + Dim EnumAgrupado = (From row In DtDetalle.AsEnumerable() + Group row By + SubProyecto = row.Field(Of String)("SubProyecto"), + CveSubProyecto = row.Field(Of Integer)("CveSubProyecto"), + Clasificacion = row.Field(Of String)("Clasificacion"), + CveClasificacion = row.Field(Of Integer)("CveClasificacion") + Into Group + Select New With { + .SubProyecto = SubProyecto, + .CveSubProyecto = CveSubProyecto, + .Clasificacion = Clasificacion, + .CveClasificacion = CveClasificacion, + .TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total")))) + }).ToList() + + + If Opcion = 1 Then + + + Dim tieneRegistrosConCveSubProyecto As Boolean = resultadosFiltrados.Any(Function(row) CType(row("CveSubProyecto"), Integer) = ValCveSubProyecto) + + If tieneRegistrosConCveSubProyecto Then + Dim saldoTotal As Decimal = (From row In resultadosFiltrados + Where row.Field(Of Integer)("CveSubProyecto") = ValCveSubProyecto AndAlso + row.Field(Of Integer)("CveClasificacion") = ValCveClasificacion + Select row.Field(Of Decimal)("Saldo")).Sum() + If saldoTotal > 0 Then + + Dim TotalAcumuladoTabla As Decimal = (DtDetalle.SUM("Total", $" CveSubProyecto = {ValCveSubProyecto} AND CveClasificacion = {ValCveClasificacion} ")) + Dim Diferencia As Decimal = saldoTotal - TotalAcumuladoTabla - ValImporte + + If (Diferencia) < 0 Then + Alert($"No hay presupuesto disponible en el subproyecto {ValSubProyecto} con la clasificación {ValClasificacion}. Se excede por { Math.Abs(Diferencia).FormatoNumero}", TipoMensaje.MsgAdvertencia) + respuesta = False + + Else + respuesta = True + End If + + Else + Alert($"No hay presupuesto disponible en el subproyecto {ValSubProyecto} con la clasificación {ValClasificacion}.", TipoMensaje.MsgAdvertencia) + respuesta = False + End If + Else + respuesta = True + End If + + Else + For Each item In EnumAgrupado + + Dim tieneRegistrosConCveSubProyecto As Boolean = resultadosFiltrados.Any(Function(row) CType(row("CveSubProyecto"), Integer) = item.CveSubProyecto) + If tieneRegistrosConCveSubProyecto Then + + Dim saldoTotal As Decimal = (From row In resultadosFiltrados + Where row.Field(Of Integer)("CveSubProyecto") = item.CveSubProyecto AndAlso + row.Field(Of Integer)("CveClasificacion") = item.CveClasificacion + Select row.Field(Of Decimal)("Saldo")).Sum() + If saldoTotal > 0 Then + + Dim Diferencia As Decimal = saldoTotal - item.TotalSum + + If (Diferencia) < 0 Then + Alert($"No hay presupuesto disponible en el subproyecto {item.SubProyecto} con la clasificación {item.Clasificacion}. Se excede por {Math.Abs(Diferencia).FormatoNumero}", TipoMensaje.MsgAdvertencia) + respuesta = False + Exit For + Else + respuesta = True + End If + + Else + Alert($"No hay presupuesto disponible en el subproyecto {item.SubProyecto} con la clasificación {item.Clasificacion}.", TipoMensaje.MsgAdvertencia) + respuesta = False + Exit For + End If + Else + respuesta = True + End If + Next + End If + + Else + ' Alert("No hay presupuestos.", TipoMensaje.MsgAdvertencia) + respuesta = True + End If + Else + 'Alert("No hay presupuestos.", TipoMensaje.MsgAdvertencia) + respuesta = False + End If + + ObjCon.Dispose() + + + + Else + respuesta = True + End If + + + Return respuesta + + End Function + + +#End Region + diff --git a/Sistemas/DefinicionEmpresa.aspx.vb b/Sistemas/DefinicionEmpresa.aspx.vb index 45c598cc7..358cd34a8 100644 --- a/Sistemas/DefinicionEmpresa.aspx.vb +++ b/Sistemas/DefinicionEmpresa.aspx.vb @@ -460,7 +460,6 @@ Partial Class Sistemas_DefinicionEmpresa ChkMostrarRetIVA.Checked = .MostrarRetIVA ChkMostrarRetISR.Checked = .MostrarRetISR 'TxtRegimen.Text = .Regimen - EstatusFacturacion = .EstatusFacturacion 'TxtTimbres.Text = .Timbres.ToString UsaContabilidad = .UsaContabilidad UsaBancos = .UsaBancos @@ -780,7 +779,7 @@ Partial Class Sistemas_DefinicionEmpresa If ObjEmpresas.UpdateEmpresa(TxtEmpresa.Text.Trim, TxtDireccion.Text.Trim, TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtCiudad.Text.Trim, TxtEstado.Text.Trim, TxtRFC.Text.Trim, TxtCP.Text.Trim, TxtTelefono.Text.Trim, TxtContacto.Text.Trim, TxtMail.Text.Trim, "CFDi", "-1", "-1", TxtContraseñaKey.Text.Trim, TxtArchivoKey.Text.Trim, TxtArchivoCer.Text.Trim, TxtArchivoPfx.Text.Trim, "", Estatus, - FacturaProduccion, ChkMostrarRetIVA.Checked, ChkMostrarRetISR.Checked, "", EstatusFacturacion, TxtSendMail.Text.Trim, + FacturaProduccion, ChkMostrarRetIVA.Checked, ChkMostrarRetISR.Checked, "", TxtSendMail.Text.Trim, TxtSendMailPassword.Text.Trim, TxtSendMailServer.Text.Trim, TxtSendMailPort.Text.Trim.ToEntero, ChkSendMailSSL.Checked, UsaContabilidad, UsaBancos, UsaVentas, UsaCxC, UsaCompras, UsaInventarios, UsaRH, UsaNomina, UsaOS, "-1", "-1", "-1", "-1", TxtBuzon_Mail.Text.Trim, TxtBuzon_Server.Text.Trim, TxtBuzon_Puerto.Text.Trim.ToEntero, diff --git a/Sistemas/Empresa.aspx b/Sistemas/Empresa.aspx index 97f0d7354..ce05e39b7 100644 --- a/Sistemas/Empresa.aspx +++ b/Sistemas/Empresa.aspx @@ -1036,12 +1036,7 @@ Factura Producción: - - - Estatus Facturación: - - - + Timbres: diff --git a/Sistemas/Empresa.aspx.vb b/Sistemas/Empresa.aspx.vb index 9c40b1774..47d2d5645 100644 --- a/Sistemas/Empresa.aspx.vb +++ b/Sistemas/Empresa.aspx.vb @@ -252,8 +252,7 @@ Partial Class Sistemas_Empresa ChkSendMailSSL.Checked = .SendMailSSL ChkMostrarRetIVA.Checked = .MostrarRetIVA ChkMostrarRetISR.Checked = .MostrarRetISR - 'TxtRegimen.Text = .Regimen - ChkEstatusFacturacion.Checked = .EstatusFacturacion + 'TxtRegimen.Text = .Regimen TxtTimbres.Text = .Timbres.ToString ChkUsaContabilidad.Checked = .UsaContabilidad ChkUsaBancos.Checked = .UsaBancos @@ -388,7 +387,7 @@ Partial Class Sistemas_Empresa TxtCiudad.Text.Trim, TxtEstado.Text.Trim, TxtRFC.Text.Trim, TxtCP.Text.Trim, TxtTelefono.Text.Trim, TxtContacto.Text.Trim, TxtMail.Text.Trim, DdlTipoFacturacion.SelectedValue, TxtBIUsuario.Text.Trim, TxtBIContraseña.Text.Trim, TxtContraseñaKey.Text.Trim, TxtArchivoKey.Text.Trim, TxtArchivoCer.Text.Trim, TxtArchivoPfx.Text.Trim, "", UsuarioActual.CveUsuario, ChkFacturaProduccion.Checked, ChkMostrarRetIVA.Checked, - ChkMostrarRetISR.Checked, "-1", ChkEstatusFacturacion.Checked, TxtSendMail.Text.Trim, TxtSendMailPassword.Text.Trim, TxtSendMailServer.Text.Trim, + ChkMostrarRetISR.Checked, "-1", TxtSendMail.Text.Trim, TxtSendMailPassword.Text.Trim, TxtSendMailServer.Text.Trim, TxtSendMailPort.Text.Trim.ToEntero, ChkSendMailSSL.Checked, ChkUsaContabilidad.Checked, ChkUsaBancos.Checked, ChkUsaVentas.Checked, ChkUsaCxC.Checked, ChkUsaCompras.Checked, ChkUsaInventarios.Checked, ChkUsaRH.Checked, ChkUsaNomina.Checked, ChkUsaOS.Checked, TxtBDContPAQi.Text.Trim, TxtServerContPAQi.Text.Trim, TxtUsrContPAQi.Text.Trim, TxtPwdContPAQi.Text.Trim, TxtBuzon_Mail.Text.Trim, TxtBuzon_Server.Text.Trim, TxtBuzon_Puerto.Text.Trim.ToEntero, ChkBuzon_SSL.Checked, @@ -434,7 +433,7 @@ Partial Class Sistemas_Empresa If ObjEmpresas.UpdateEmpresa(TxtEmpresa.Text.Trim, TxtDireccion.Text.Trim, TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtCiudad.Text.Trim, TxtEstado.Text.Trim, TxtRFC.Text.Trim, TxtCP.Text.Trim, TxtTelefono.Text.Trim, TxtContacto.Text.Trim, TxtMail.Text.Trim, DdlTipoFacturacion.SelectedItem.ToString, TxtBIUsuario.Text.Trim, TxtBIContraseña.Text.Trim, TxtContraseñaKey.Text.Trim, TxtArchivoKey.Text.Trim, TxtArchivoCer.Text.Trim, TxtArchivoPfx.Text.Trim, "", ChkEstatus.Checked, - ChkFacturaProduccion.Checked, ChkMostrarRetIVA.Checked, ChkMostrarRetISR.Checked, "", ChkEstatusFacturacion.Checked, TxtSendMail.Text.Trim, + ChkFacturaProduccion.Checked, ChkMostrarRetIVA.Checked, ChkMostrarRetISR.Checked, "", TxtSendMail.Text.Trim, TxtSendMailPassword.Text.Trim, TxtSendMailServer.Text.Trim, TxtSendMailPort.Text.Trim.ToEntero, ChkSendMailSSL.Checked, ChkUsaContabilidad.Checked, ChkUsaBancos.Checked, ChkUsaVentas.Checked, ChkUsaCxC.Checked, ChkUsaCompras.Checked, ChkUsaInventarios.Checked, ChkUsaRH.Checked, ChkUsaNomina.Checked, ChkUsaOS.Checked, TxtBDContPAQi.Text.Trim, TxtServerContPAQi.Text.Trim, TxtUsrContPAQi.Text.Trim, TxtPwdContPAQi.Text.Trim, TxtBuzon_Mail.Text.Trim, TxtBuzon_Server.Text.Trim, TxtBuzon_Puerto.Text.Trim.ToEntero, diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb index 0e1379e8c..d46b13d25 100644 --- a/Transportes/Boletos.aspx.vb +++ b/Transportes/Boletos.aspx.vb @@ -65,9 +65,11 @@ Partial Class Boletos Response.Redirect("/Transportes/RepViajes.aspx") End If AsientoSeleccionado = "" - CveViaje = Request.QueryString("CveViaje").ToEntero + CveViaje = IfNull(Request("CveViaje"), "0").ToString.ToEntero If CveViaje > 0 Then CargaDatos() + Else + Alert("Viaje no definido") End If End If diff --git a/Transportes/RepContratoDetalle.aspx.vb b/Transportes/RepContratoDetalle.aspx.vb index 63702d640..ab2c8e5b9 100644 --- a/Transportes/RepContratoDetalle.aspx.vb +++ b/Transportes/RepContratoDetalle.aspx.vb @@ -108,7 +108,7 @@ Partial Class RepContratoDetalle End Sub Private Sub InicializaCombos() 'Lista Tipo AF - DdlTipoAF.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa) + DdlTipoAF.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("MedidaVehicularClave IN (2,3)") DdlTipoAF.DataBind() DdlTipoAF.Items.Insert(0, New ListItem("-", "")) End Sub @@ -318,7 +318,7 @@ Partial Class RepContratoDetalle Try ObjTransportes.IniciaTransacSQL() - If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, DdlRuta.SelectedValue.ToEntero, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, TxtEstatus.Text.ToBool, UsuarioActual.CveUsuario, RblSexo.SelectedValue.ToBool) Then + If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, DdlRuta.SelectedValue.ToEntero, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, CBool(TxtEstatus.Text), UsuarioActual.CveUsuario, CBool(RblSexo.SelectedValue)) Then ObjTransportes.Commit() End If Catch ex As ArgumentException @@ -339,7 +339,7 @@ Partial Class RepContratoDetalle If ObjTransportes.GetViajesPasajeros(DdlRuta.SelectedValue.ToEntero) Then BusquedaSeleccionada(ObjTransportes.DtResultados) End If - + ObjTransportes.Dispose() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub BusquedaSeleccionada(dt As DataTable) @@ -414,11 +414,11 @@ Partial Class RepContratoDetalle TxtNombre.Text = GvRow.DataKey("Nombre").ToString() TxtVisa.Text = GvRow.DataKey("Visa").ToString() TxtCelular.Text = GvRow.DataKey("Celular").ToString() - RblSexo.SelectedValue = If(GvRow.DataKey("Sexo").ToString.ToBool, "1", "0") + RblSexo.SelectedValue = If(CBool(GvRow.DataKey("Sexo").ToString), "1", "0") TxtObservacion.Text = GvRow.DataKey("Observacion").ToString() - LbEstatus.Text = If(GvRow.DataKey("Estatus").ToString.ToBool, "Activo", "Cancelado") + LbEstatus.Text = If(CBool(GvRow.DataKey("Estatus").ToString), "Activo", "Cancelado") TxtEstatus.Text = GvRow.DataKey("Estatus").ToString - LbEstatus.CssClass = If(GvRow.DataKey("Estatus").ToString.ToBool, "text-success bold", "text-danger bold") + LbEstatus.CssClass = If(CBool(GvRow.DataKey("Estatus").ToString), "text-success bold", "text-danger bold") TxtAsiento.Text = GvRow.DataKey("Asiento").ToString() UpTabContainer.Update() @@ -440,7 +440,7 @@ Partial Class RepContratoDetalle TxtNombre.Text = GvRow.DataKey("Nombre").ToString() TxtVisa.Text = GvRow.DataKey("Visa").ToString() TxtCelular.Text = GvRow.DataKey("Celular").ToString() - RblSexo.SelectedValue = If(GvRow.DataKey("Sexo").ToString.ToBool, "1", "0") + RblSexo.SelectedValue = If(CBool(GvRow.DataKey("Sexo").ToString), "1", "0") TxtObservacion.Text = GvRow.DataKey("Observacion").ToString() LbEstatus.Text = GvRow.DataKey("Estatus").ToString() LbCreado.Text = GvRow.DataKey("FechaIng").ToString() @@ -472,17 +472,17 @@ Partial Class RepContratoDetalle TxtNombre.Text = GvRow.DataKey("Nombre").ToString() TxtVisa.Text = GvRow.DataKey("Visa").ToString() TxtCelular.Text = GvRow.DataKey("Celular").ToString() - RblSexo.SelectedValue = If(GvRow.DataKey("Sexo").ToString.ToBool, "1", "0") + RblSexo.SelectedValue = If(CBool(GvRow.DataKey("Sexo").ToString), "1", "0") TxtObservacion.Text = GvRow.DataKey("Observacion").ToString() TxtEstatus.Text = GvRow.DataKey("Estatus").ToString() LbCreado.Text = GvRow.DataKey("FechaIng").ToString() TxtAsiento.Text = GvRow.DataKey("Asiento").ToString() - Dim Estatus As Boolean = Not TxtEstatus.Text.ToBool + Dim Estatus As Boolean = Not CBool(TxtEstatus.Text) Dim ObjTransportes As New ClsTransportes Try ObjTransportes.IniciaTransacSQL() - If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, CveContrato, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, Estatus, UsuarioActual.CveUsuario, RblSexo.SelectedValue.ToBool) Then + If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, CveContrato, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, Estatus, UsuarioActual.CveUsuario, CBool(RblSexo.SelectedValue)) Then Alert("Se ha modificado el estatus de su boleto correctamente.") ObjTransportes.Commit() diff --git a/Transportes/RepContratos.aspx.vb b/Transportes/RepContratos.aspx.vb index 3a840531b..a56d3dd91 100644 --- a/Transportes/RepContratos.aspx.vb +++ b/Transportes/RepContratos.aspx.vb @@ -145,9 +145,10 @@ Partial Class ListadoContratos If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, DdlCliente.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, CveSubProyecto:=DdlCentroCostos.SelectedValue.ToEntero, CveTipoAF:=DdlTipoUnidad.SelectedValue.ToEntero, CveChofer:=DdlChofer.SelectedValue.ToEntero) Then GvContratos.DataSource = ObjContratos.DtResultados - GvContratos.DataBind() + End If ObjContratos.Dispose() + GvContratos.DataBind() UpTitulos.Update() End Sub diff --git a/Transportes/RepContratosCalendario.aspx.vb b/Transportes/RepContratosCalendario.aspx.vb index 56f473f1a..e6d9bd88d 100644 --- a/Transportes/RepContratosCalendario.aspx.vb +++ b/Transportes/RepContratosCalendario.aspx.vb @@ -182,6 +182,7 @@ Partial Class RepContratosCalendario Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If + ObjContratos.Dispose() End Sub End Class diff --git a/UserControl/AddMedico.ascx b/UserControl/AddMedico.ascx index 754c018de..80bdcd6e0 100644 --- a/UserControl/AddMedico.ascx +++ b/UserControl/AddMedico.ascx @@ -1,7 +1,19 @@ <%@ Control Language="VB" AutoEventWireup="false" CodeFile="AddMedico.ascx.vb" Inherits="UserControl_AddMedico" %> +<%----%> + +
+