-- cambios de seccionesAlmace,Serie,Lote,Caducidad

This commit is contained in:
rrene
2020-05-13 12:52:33 -07:00
192 changed files with 26788 additions and 34102 deletions

1
.gitignore vendored
View File

@@ -272,3 +272,4 @@ __pycache__/
/Default.aspx /Default.aspx
/Default.aspx.cs /Default.aspx.cs
/App_WebReferences/WSRDLC /App_WebReferences/WSRDLC
/wwwSIGGIT.rar

View File

@@ -818,7 +818,7 @@ Partial Class AF_AF
Filename = fileItem.filename Filename = fileItem.filename
Next Next
Dim Archivo As New System.IO.FileInfo(String.Format("{0}AF\Licencias\{1}", AppDomain.CurrentDomain.BaseDirectory, Filename)) Dim Archivo As New System.IO.FileInfo(String.Format("{0}AF\Licencias\{1}", ModExtensiones.DirectorioBaseEmpresas, Filename))
If Archivo.Exists() Then If Archivo.Exists() Then
Archivo.Delete() Archivo.Delete()
End If End If
@@ -1743,102 +1743,102 @@ Partial Class AF_AF
End If End If
End If End If
End Sub End Sub
'Protected Sub GvResguardos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvResguardos.RowCancelingEdit 'Protected Sub GvResguardos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvResguardos.RowCancelingEdit
' GvResguardos.EditIndex = -1 ' GvResguardos.EditIndex = -1
' GvResguardos.DataBind() ' GvResguardos.DataBind()
' CargaResguardos() ' CargaResguardos()
'End Sub 'End Sub
'Protected Sub GvResguardos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvResguardos.RowEditing 'Protected Sub GvResguardos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvResguardos.RowEditing
' GvResguardos.EditIndex = e.NewEditIndex ' GvResguardos.EditIndex = e.NewEditIndex
' CargaResguardos() ' CargaResguardos()
'End Sub 'End Sub
'Protected Sub GvResguardos_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvResguardos.RowUpdating 'Protected Sub GvResguardos_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvResguardos.RowUpdating
' Dim ObjResguardos As New ClsAF ' Dim ObjResguardos As New ClsAF
' ' Dim FechaFin As String = DirectCast(GvResguardos.Rows(e.RowIndex).FindControl("TxtFechaFin"), TextBox).Text ' ' Dim FechaFin As String = DirectCast(GvResguardos.Rows(e.RowIndex).FindControl("TxtFechaFin"), TextBox).Text
' ' FechaFin = If(IsDate(FechaFin), FechaFin, "-1") ' ' FechaFin = If(IsDate(FechaFin), FechaFin, "-1")
' Dim Observaciones As String = DirectCast(GvResguardos.Rows(e.RowIndex).FindControl("TxtObservaciones"), TextBox).Text.Trim ' Dim Observaciones As String = DirectCast(GvResguardos.Rows(e.RowIndex).FindControl("TxtObservaciones"), TextBox).Text.Trim
' Dim URL As String = "-1" ' Dim URL As String = "-1"
' Dim URL2 As String = "-1" ' Dim URL2 As String = "-1"
' Dim RutaGuardar = "" ' Dim RutaGuardar = ""
' Dim RutaArchivo = "" ' Dim RutaArchivo = ""
' Dim RutaArchivo2 = "" ' Dim RutaArchivo2 = ""
' Dim Archivo As String = "" ' Dim Archivo As String = ""
' Dim Archivo2 As String = "" ' Dim Archivo2 As String = ""
' Dim CveActivoFijoResguardo As Integer = GvResguardos.DataKeys(e.RowIndex).Value.ToString.ToEntero ' Dim CveActivoFijoResguardo As Integer = GvResguardos.DataKeys(e.RowIndex).Value.ToString.ToEntero
' 'If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(String.Format("{0}Temp\{1}", UsuarioActual.Empresa.Ruta, Session("FileUpload").ToString)) Then ' 'If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(String.Format("{0}Temp\{1}", UsuarioActual.Empresa.Ruta, Session("FileUpload").ToString)) Then
' ' Dim TmpArchivo As String = String.Format("{0}Temp\{1}", UsuarioActual.Empresa.Ruta, Session("FileUpload").ToString) ' ' Dim TmpArchivo As String = String.Format("{0}Temp\{1}", UsuarioActual.Empresa.Ruta, Session("FileUpload").ToString)
' ' Dim TmpRuta As String = String.Format("{0}ActivosFijos\Resguardos\", UsuarioActual.Empresa.Ruta) ' ' Dim TmpRuta As String = String.Format("{0}ActivosFijos\Resguardos\", UsuarioActual.Empresa.Ruta)
' ' Dim Extension As String = Path.GetExtension(TmpArchivo) ' ' Dim Extension As String = Path.GetExtension(TmpArchivo)
' ' TmpRuta.DirectoryExistsCreate() ' ' TmpRuta.DirectoryExistsCreate()
' ' 'If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\") Then Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\") ' ' 'If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\")
' ' TmpRuta = String.Format("{0}{1}{2}", TmpRuta, CveActivoFijoResguardo, Extension) ' ' TmpRuta = String.Format("{0}{1}{2}", TmpRuta, CveActivoFijoResguardo, Extension)
' ' File.Move(TmpArchivo, TmpRuta) ' ' File.Move(TmpArchivo, TmpRuta)
' ' Session("FileUpload") = "" ' ' Session("FileUpload") = ""
' ' If File.Exists(TmpRuta) Then ' ' If File.Exists(TmpRuta) Then
' ' URL = URL & Extension ' ' URL = URL & Extension
' ' Else ' ' Else
' ' URL = "" ' ' URL = ""
' ' End If ' ' End If
' 'Else ' 'Else
' ' URL = URLOld ' ' URL = URLOld
' 'End If ' 'End If
' 'RutaGuardar = String.Format("{0}OI\", UsuarioActual.Empresa.Ruta) ' 'RutaGuardar = String.Format("{0}OI\", UsuarioActual.Empresa.Ruta)
' 'If A2.HRef <> "" Then RutaArchivo = String.Format("{0}{1}", Request.PhysicalApplicationPath, A2.HRef.Substring(1)) ' 'If A2.HRef <> "" Then RutaArchivo = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, A2.HRef.Substring(1))
' 'End If ' 'End If
' 'If UsuarioActual.CveRol = 1037 Then ' 'If UsuarioActual.CveRol = 1037 Then
' ' RutaGuardar = String.Format("{0}Empresas\70\OI\", Request.PhysicalApplicationPath) ' ' RutaGuardar = String.Format("{0}Empresas\70\OI\", ModExtensiones.DirectorioBaseEmpresas)
' ' RutaGuardar.DirectoryExistsCreate() ' ' RutaGuardar.DirectoryExistsCreate()
' 'End If ' 'End If
' 'Else ' 'Else
' RutaGuardar = String.Format("{0}AF\Resguardos\", UsuarioActual.Empresa.Ruta) ' RutaGuardar = String.Format("{0}AF\Resguardos\", UsuarioActual.Empresa.Ruta)
' RutaArchivo = String.Format("{0}AF\Resguardos\Temp\{1}", UsuarioActual.Empresa.Ruta, Session("AF")) ' RutaArchivo = String.Format("{0}AF\Resguardos\Temp\{1}", UsuarioActual.Empresa.Ruta, Session("AF"))
' RutaArchivo2 = (String.Format("{0}AF\Resguardos\Temp\{1}", UsuarioActual.Empresa.Ruta, Session("AF1"))) ' RutaArchivo2 = (String.Format("{0}AF\Resguardos\Temp\{1}", UsuarioActual.Empresa.Ruta, Session("AF1")))
' If Session("AF") IsNot Nothing AndAlso File.Exists(RutaArchivo) Then ' If Session("AF") IsNot Nothing AndAlso File.Exists(RutaArchivo) Then
' If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar) ' If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar)
' Archivo = Path.GetExtension(Session("AF").ToString) ' Archivo = Path.GetExtension(Session("AF").ToString)
' File.Move(RutaArchivo, String.Format("{0}{1}", RutaGuardar, CveActivoFijoResguardo.ToString + "_1" + Archivo)) ' File.Move(RutaArchivo, String.Format("{0}{1}", RutaGuardar, CveActivoFijoResguardo.ToString + "_1" + Archivo))
' Session("AF") = "" ' Session("AF") = ""
' URL = CveActivoFijoResguardo.ToString + "_1" + Archivo ' URL = CveActivoFijoResguardo.ToString + "_1" + Archivo
' End If ' End If
' If Session("AF1") IsNot Nothing AndAlso File.Exists(RutaArchivo2) Then ' If Session("AF1") IsNot Nothing AndAlso File.Exists(RutaArchivo2) Then
' If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar) ' If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar)
' Archivo2 = Path.GetExtension(Session("AF1").ToString) ' Archivo2 = Path.GetExtension(Session("AF1").ToString)
' File.Move(RutaArchivo2, String.Format("{0}{1}", RutaGuardar, CveActivoFijoResguardo.ToString + "_2" + Archivo2)) ' File.Move(RutaArchivo2, String.Format("{0}{1}", RutaGuardar, CveActivoFijoResguardo.ToString + "_2" + Archivo2))
' Session("AF1") = "" ' Session("AF1") = ""
' URL2 = CveActivoFijoResguardo.ToString + "_2" + Archivo2 ' URL2 = CveActivoFijoResguardo.ToString + "_2" + Archivo2
' End If ' End If
' If ObjResguardos.UpdateActivosFijosResguardos("-1", Observaciones, URL, CveActivoFijoResguardo, -1, URL2) Then ' If ObjResguardos.UpdateActivosFijosResguardos("-1", Observaciones, URL, CveActivoFijoResguardo, -1, URL2) Then
' GvResguardos.EditIndex = -1 ' GvResguardos.EditIndex = -1
' ViewState("DTResguardos") = ObjResguardos.DtResultados ' ViewState("DTResguardos") = ObjResguardos.DtResultados
' GvResguardos.DataSource = ObjResguardos.DtResultados ' GvResguardos.DataSource = ObjResguardos.DtResultados
' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) ' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
' 'If FechaFin <> "-1" Then DdlResponsable.Enabled = True : DdlResponsable.SelectedValue = "-1" ' 'If FechaFin <> "-1" Then DdlResponsable.Enabled = True : DdlResponsable.SelectedValue = "-1"
' UPEstatus.Update() ' UPEstatus.Update()
' End If ' End If
' ObjResguardos.Dispose() ' ObjResguardos.Dispose()
' GvResguardos.DataBind() ' GvResguardos.DataBind()
'End Sub 'End Sub
#Region " ARCHIVO " #Region " ARCHIVO "
Protected Sub ImgArchivo_Click(sender As Object, e As ImageClickEventArgs) Protected Sub ImgArchivo_Click(sender As Object, e As ImageClickEventArgs)
CveResguardoPadre = CType(sender, ImageButton).CommandArgument.ToEntero CveResguardoPadre = CType(sender, ImageButton).CommandArgument.ToEntero
@@ -1920,35 +1920,35 @@ Partial Class AF_AF
nombreArchivoFormateado = nombreArchivoFormateado.Replace("~", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("~", "_")
nombreArchivoFormateado = nombreArchivoFormateado.Replace("^", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("^", "_")
Return nombreArchivoFormateado Return nombreArchivoFormateado
End Function End Function
#End Region #End Region
#End Region #End Region
#Region "GALERIA DE IMAGENES" #Region "GALERIA DE IMAGENES"
'Protected Sub BtnCargarArchivo_Click(sender As Object, e As System.EventArgs) Handles BtnCargarArchivo.Click 'Protected Sub BtnCargarArchivo_Click(sender As Object, e As System.EventArgs) Handles BtnCargarArchivo.Click
' If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString) Then ' If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString) Then
' Dim Extension As String = Path.GetExtension(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString) ' Dim Extension As String = Path.GetExtension(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString)
' If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes") Then Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes") ' If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes")
' File.Move(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString, Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\" & CveActivoFijo & "_" & ImgConsecutivo & Extension) ' File.Move(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString, ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\" & CveActivoFijo & "_" & ImgConsecutivo & Extension)
' Session("FileUpload") = "" ' Session("FileUpload") = ""
' If File.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension) Then ' If File.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension) Then
' Dim ObjActivosFijos As New ClsAF ' Dim ObjActivosFijos As New ClsAF
' If ObjActivosFijos.AddActivosFijosImagenes(CveActivoFijo, CveActivoFijo & "_" & ImgConsecutivo & Extension, UsuarioActual.CveUsuario) Then ' If ObjActivosFijos.AddActivosFijosImagenes(CveActivoFijo, CveActivoFijo & "_" & ImgConsecutivo & Extension, UsuarioActual.CveUsuario) Then
' CargarArchivo() ' CargarArchivo()
' Else ' Else
' File.Delete(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension) ' File.Delete(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension)
' End If ' End If
' ObjActivosFijos.Dispose() ' ObjActivosFijos.Dispose()
' End If ' End If
' End If ' End If
'End Sub 'End Sub
Private Sub BtnUpFotos_Click(sender As Object, e As EventArgs) Handles BtnUpFotos.Click Private Sub BtnUpFotos_Click(sender As Object, e As EventArgs) Handles BtnUpFotos.Click
Dim FilesGral As List(Of Archivo) = TxtUpFotos.getfiles().Archivos Dim FilesGral As List(Of Archivo) = TxtUpFotos.getfiles().Archivos
@@ -1963,7 +1963,7 @@ Partial Class AF_AF
Dim DirectorioOld As New StringBuilder Dim DirectorioOld As New StringBuilder
Dim DirectorioNew As New StringBuilder Dim DirectorioNew As New StringBuilder
DirectorioOld.AppendFormat("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, FileMove) DirectorioOld.AppendFormat("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, FileMove)
DirectorioNew.AppendFormat("{0}Empresas\{1}\AF\", AppDomain.CurrentDomain.BaseDirectory, CveEmpresaActual) DirectorioNew.AppendFormat("{0}Empresas\{1}\AF\", ModExtensiones.DirectorioBaseEmpresas, CveEmpresaActual)
If Not Directory.Exists(DirectorioNew.ToString) Then If Not Directory.Exists(DirectorioNew.ToString) Then
Directory.CreateDirectory(DirectorioNew.ToString) Directory.CreateDirectory(DirectorioNew.ToString)
End If End If
@@ -1995,7 +1995,7 @@ Partial Class AF_AF
If (CveImagenActivoFijo > 0) Then If (CveImagenActivoFijo > 0) Then
Dim ObjActivoFijo As New ClsAF Dim ObjActivoFijo As New ClsAF
If ObjActivoFijo.RemoveActivosFijosImagenes(CveImagenActivoFijo) Then If ObjActivoFijo.RemoveActivosFijosImagenes(CveImagenActivoFijo) Then
File.Delete(String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, CveEmpresaActual, ObjActivoFijo.DtResultados.Rows(0)("URL"))) File.Delete(String.Format("{0}Empresas\{1}\{2}", ModExtensiones.DirectorioBaseEmpresas, CveEmpresaActual, ObjActivoFijo.DtResultados.Rows(0)("URL")))
CargarArchivo() CargarArchivo()
RegistraScript("initcarusel();") RegistraScript("initcarusel();")
End If End If
@@ -2407,7 +2407,7 @@ Partial Class AF_AF
Dim filemove As String = "" Dim filemove As String = ""
For Each fileItem As Archivo In filesgral For Each fileItem As Archivo In filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
filemove = fileItem.filename filemove = fileItem.filename
Next Next

View File

@@ -542,8 +542,8 @@ Partial Class AF_ResguardoAF
If EsLiberacion Then If EsLiberacion Then
If objAF.UpdateActivosFijosResguardosURL($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then If objAF.UpdateActivosFijosResguardosURL($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then
If filemove <> "" Then If filemove <> "" Then
If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) Then If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension)) Then
File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension))
End If End If
If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then
HuboError = False HuboError = False
@@ -558,8 +558,8 @@ Partial Class AF_ResguardoAF
If EsURL2 Then If EsURL2 Then
If objAF.UpdateActivosFijosResguardosURLGpo("-1", $"AFT{CveResguardoPadre}.{FileExtension}", CveResguardoPadre) Then If objAF.UpdateActivosFijosResguardosURLGpo("-1", $"AFT{CveResguardoPadre}.{FileExtension}", CveResguardoPadre) Then
If filemove <> "" Then If filemove <> "" Then
If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) Then If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension)) Then
File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension))
End If End If
If filemove.FilesMove(String.Format("AFT{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then If filemove.FilesMove(String.Format("AFT{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then
HuboError = False HuboError = False
@@ -575,8 +575,8 @@ Partial Class AF_ResguardoAF
If objAF.UpdateActivosFijosResguardosURLGpo($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then If objAF.UpdateActivosFijosResguardosURLGpo($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then
If filemove <> "" Then If filemove <> "" Then
If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) Then If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension)) Then
File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension))
End If End If
If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then
HuboError = False HuboError = False

View File

@@ -323,7 +323,7 @@ Partial Class AIMMGM_ConsultaCliente
'Excel.DisplayAlerts = True 'Excel.DisplayAlerts = True
'Dim pdfFileOut As String 'Dim pdfFileOut As String
'Dim xlsxFileOut As String 'Dim xlsxFileOut As String
'Dim Ruta As String = String.Format("{0}\AIMMGM\Gafetes\", AppDomain.CurrentDomain.BaseDirectory) 'Dim Ruta As String = String.Format("{0}\AIMMGM\Gafetes\", ModExtensiones.DirectorioBaseEmpresas)
'If IO.File.Exists(Ruta & "FormatoAIMMGM.xlsx") Then 'If IO.File.Exists(Ruta & "FormatoAIMMGM.xlsx") Then
@@ -648,14 +648,14 @@ Partial Class AIMMGM_ConsultaCliente
End If End If
Dim AIM As New ClsAIMMGM Dim AIM As New ClsAIMMGM
If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
End If End If
Dim Cve As Integer = AIM.AddPago(CveCliente, CveVentaDetalle, TxtImporte.Text.ToDouble, 1, TxtFecha.Text.ToDate, IO.Path.GetExtension(FUComprobante.FileName), TxtObservaciones.Text.Trim, 9999, TxtAprobacion.Text.ToEntero) Dim Cve As Integer = AIM.AddPago(CveCliente, CveVentaDetalle, TxtImporte.Text.ToDouble, 1, TxtFecha.Text.ToDate, IO.Path.GetExtension(FUComprobante.FileName), TxtObservaciones.Text.Trim, 9999, TxtAprobacion.Text.ToEntero)
If Cve > 0 Then If Cve > 0 Then
FUComprobante.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Cve, IO.Path.GetExtension(FUComprobante.FileName))) FUComprobante.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Cve, IO.Path.GetExtension(FUComprobante.FileName)))
Alert("Pago ingresado correctamente", TipoMensaje.MsgInformacion) Alert("Pago ingresado correctamente", TipoMensaje.MsgInformacion)
End If End If
AIM.Dispose() AIM.Dispose()
@@ -669,8 +669,8 @@ Partial Class AIMMGM_ConsultaCliente
Exit Sub Exit Sub
End If End If
'obtengo la clave de la publicidad 'obtengo la clave de la publicidad
If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
End If End If
Dim Logo As String Dim Logo As String
@@ -680,7 +680,7 @@ Partial Class AIMMGM_ConsultaCliente
If AIM.DtResultados.Rows.Count > 0 Then If AIM.DtResultados.Rows.Count > 0 Then
CvePublicidad = AIM.DtResultados.Rows(0)("CvePublicidad").ToString.ToEntero CvePublicidad = AIM.DtResultados.Rows(0)("CvePublicidad").ToString.ToEntero
Logo = String.Format("Logo{0}{1}", CvePublicidad, IO.Path.GetExtension(FULogo.FileName)) Logo = String.Format("Logo{0}{1}", CvePublicidad, IO.Path.GetExtension(FULogo.FileName))
FULogo.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Logo)) FULogo.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Logo))
AIM.UpdateLogo(CvePublicidad, Logo) AIM.UpdateLogo(CvePublicidad, Logo)
ImgLogo.ImageUrl = String.Format("/Empresas/{0}/Documentos/{1}", UsuarioActual.CveEmpresa, Logo) ImgLogo.ImageUrl = String.Format("/Empresas/{0}/Documentos/{1}", UsuarioActual.CveEmpresa, Logo)

View File

@@ -161,7 +161,7 @@ Partial Class AIMMGM_Pagos
Next Next
Next Next
Dim Archivoxlsx As String = String.Format("{0}/Empresas/{1}/Documentos/{2}.xlsx", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, NombreArchivoXLSX) Dim Archivoxlsx As String = String.Format("{0}/Empresas/{1}/Documentos/{2}.xlsx", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, NombreArchivoXLSX)
Using wb As New XLWorkbook() Using wb As New XLWorkbook()
wb.Worksheets.Add(dtt) wb.Worksheets.Add(dtt)
wb.SaveAs(Archivoxlsx) wb.SaveAs(Archivoxlsx)

View File

@@ -125,7 +125,7 @@ Partial Class AIMMGM_Registro
Private Sub CargaReCompra(ClavePago As String, CveCliente As Integer) Private Sub CargaReCompra(ClavePago As String, CveCliente As Integer)
Dim tmp As New DataTable Dim tmp As New DataTable
Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", AppDomain.CurrentDomain.BaseDirectory) Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", ModExtensiones.DirectorioBaseEmpresas)
Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago) Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago)
Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago) Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago)

View File

@@ -90,7 +90,7 @@ Partial Class AIMMGM_ePagos
Private Sub CargaCompra() Private Sub CargaCompra()
Dim tmp As New DataTable Dim tmp As New DataTable
Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", AppDomain.CurrentDomain.BaseDirectory) Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", ModExtensiones.DirectorioBaseEmpresas)
Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago) Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago)
Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago) Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago)

View File

@@ -33,6 +33,28 @@ Public Class BundleConfig
"~/Scripts/exporting.js" "~/Scripts/exporting.js"
)) ))
bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JSNoCustom").Include(
"~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js",
"~/Metronic/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
"~/Metronic/assets/global/plugins/jquery.blockui.min.js",
"~/Metronic/assets/global/plugins/jquery.cokie.min.js",
"~/Metronic/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
"~/Metronic/assets/global/plugins/select2/select2.full.min.js",
"~/Metronic/assets/global/plugins/select2/i18n/es.js",
"~/Metronic/assets/global/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js",
"~/Metronic/assets/global/plugins/bootbox/bootbox.min.js",
"~/Metronic/assets/global/plugins/bootstrap-toastr/toastr.min.js",
"~/Metronic/assets/global/scripts/metronic.js",
"~/Metronic/assets/admin/layout/scripts/layout.js",
"~/Metronic/assets/admin/layout/scripts/quick-sidebar.js",
"~/Metronic/assets/admin/layout/scripts/demo.js",
"~/Metronic/assets/admin/pages/scripts/table-advanced.js",
"~/Metronic/assets/admin/pages/scripts/ui-alert-dialog-api.js",
"~/Metronic/assets/global/plugins/icheck/icheck.min.js",
"~/Metronic/assets/global/plugins/dropzone/dropzone.js",
"~/Metronic/assets/layouts/layout3/scripts/jquery.datetimepicker.full.js"
))
bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JS").Include( bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JS").Include(
"~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js", "~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js", "~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js",

View File

@@ -391,7 +391,7 @@ Public Class ClsAcarreos
Dim CveAcarreo As Integer = Data(0)(0).ToString.ToEntero Dim CveAcarreo As Integer = Data(0)(0).ToString.ToEntero
Dim AcarreoFolio As Integer = Data(0)(1).ToString.ToEntero Dim AcarreoFolio As Integer = Data(0)(1).ToString.ToEntero
Dim Raiz As String = String.Format("{0}Empresas\{1}\Acarreos\", HttpContext.Current.Server.MapPath("~/"), CveEmpresa) Dim Raiz As String = String.Format("{0}Empresas\{1}\Acarreos\", ModExtensiones.DirectorioBaseEmpresas, CveEmpresa)
If Not Directory.Exists(Raiz) Then If Not Directory.Exists(Raiz) Then
Directory.CreateDirectory(Raiz) Directory.CreateDirectory(Raiz)

View File

@@ -797,6 +797,21 @@ Public Class ClsAcumuladores
Return Retorno Return Retorno
End Function End Function
Public Function EliminarGarantiasDetalle(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
SqlDataAdapter("PA_Acum_GarantiasDetallePolizaRemove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException
OnError("Ocurrió un error a eliminar de garantia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#End Region #End Region
@@ -863,6 +878,21 @@ Public Class ClsAcumuladores
End Try End Try
Return Retorno Return Retorno
End Function End Function
Public Function EliminarPolizaVirtual(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
SqlDataAdapter("PA_Vta_PolizaVirtualRemove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException
OnError("Ocurrió un al eliminar poliza virtual. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#End Region #End Region
Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer, Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,

View File

@@ -614,7 +614,7 @@ Public Class ClsDG
strLineaTMP = String.Format("{0} {1}:{2} {3} {0}", Chr(13), DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString, pTexto) strLineaTMP = String.Format("{0} {1}:{2} {3} {0}", Chr(13), DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString, pTexto)
Try Try
ArchivoW = New StreamWriter(String.Format("{0}\LogDG.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) ArchivoW = New StreamWriter(String.Format("{0}\LogDG.txt", AppDomain.CurrentDomain), True, System.Text.Encoding.UTF8)
Catch ex As Exception Catch ex As Exception
Exit Sub Exit Sub
End Try End Try

View File

@@ -1232,7 +1232,14 @@ Public Class ClsInventarios
Return Retorno Return Retorno
End Function End Function
''' <summary>
''' Obtiene los valores para asignar a los movimientos virtuales
''' </summary>
''' <param name="CveMovimiento">Debe ser un movimiento de Salida o Entrada de almacen (2,3,18)</param>
''' <param name="CveEmpresa"></param>
''' <param name="CveCompra"></param>
''' <param name="CveMovimientoRelacionado">Cuando sea cancelacion/devolucion hay que mandar este dato que seria la salida de almacen</param>
''' <returns></returns>
Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Inv_MovimientosDetalleVirtualGet") DataAdapter("PA_Inv_MovimientosDetalleVirtualGet")

View File

@@ -15,6 +15,7 @@ Public Enum OITipoEventos
ISO = 8 ISO = 8
Soporte = 9 Soporte = 9
Gastos_Mes = 10 Gastos_Mes = 10
Convocatorias = 11
End Enum End Enum
Public Class ObjEventosCorreo Public Class ObjEventosCorreo
@@ -218,9 +219,220 @@ Public Class ClsOIEventos
Public Property objCorreo As ObjEventosCorreo Public Property objCorreo As ObjEventosCorreo
#End Region #End Region
#Region "Trello"
Public Function GetTablero(cveTablero As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_GetTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
.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 obtener el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function AddTablero(tablero As String, cveUsuario As Int32, cveUsuarioIng As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_AddTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@Tablero", SqlDbType.VarChar).Value = (tablero)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveUsuarioIng", SqlDbType.Int).Value = (cveUsuarioIng)
.Add("@CveEmpresa", SqlDbType.Int).Value = (cveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al agregar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function UpTablero(cveTablero As Int32, tablero As String, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_UpTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
.Add("@Tablero", SqlDbType.VarChar).Value = (tablero)
.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 Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function RemoveTablero(cveTablero As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_RemoveTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveEmpresa", SqlDbType.Int).Value = (cveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function UpEventoLista(cveTableroLista As Int32, CveEvento As Integer) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_EventoLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
.Add("@CveEvento", SqlDbType.Int).Value = (CveEvento)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetTableroListaTrello(cveTablero As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_GetTableroListaTrello", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetTableroLista(cveTableroLista As Int32, cveTablero As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_GetTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function AddTableroLista(cveTablero As Int32, lista As String, cveUsuarioIng As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_AddTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = cveTablero
.Add("@Lista", SqlDbType.VarChar).Value = (lista)
.Add("@CveUsuarioIng", SqlDbType.Int).Value = (cveUsuarioIng)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al agregar la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function UpTableroLista(cveTableroLista As Int32, lista As String) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_UpTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
.Add("@Lista", SqlDbType.VarChar).Value = (lista)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function RemoveTableroLista(cveTableroLista As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_RemoveTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
#End Region
#Region "oieventos2.0" #Region "oieventos2.0"
Public Function UpEventosVinculos(cveEvento As Int32, cveActivoFijo As Int32, cveIE As Int32, cveProspecto As Int32, cveCliente As Int32, cveOS As Int32, cveOC As Int32, cvePersonal As Int32,
cveProveedor As Int32, cveCompra As Int32, cveVenta As Int32, cveContrato As Int32, cveSubProyecto As Int32, cveMovimientoAlmacen As Int32,
cveEmpresaCRM As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_EventosVinculosUp", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = (cveEvento)
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveActivoFijo", SqlDbType.Int).Value = (cveActivoFijo)
.Add("@CveIE", SqlDbType.Int).Value = (cveIE)
.Add("@CveProspecto", SqlDbType.Int).Value = (cveProspecto)
.Add("@CveCliente", SqlDbType.Int).Value = (cveCliente)
.Add("@CveOS", SqlDbType.Int).Value = (cveOS)
.Add("@CveOC", SqlDbType.Int).Value = (cveOC)
.Add("@CvePersonal", SqlDbType.Int).Value = (cvePersonal)
.Add("@CveProveedor", SqlDbType.Int).Value = (cveProveedor)
.Add("@CveCompra", SqlDbType.Int).Value = (cveCompra)
.Add("@CveVenta", SqlDbType.Int).Value = (cveVenta)
.Add("@CveContrato", SqlDbType.Int).Value = (cveContrato)
.Add("@CveSubProyecto", SqlDbType.Int).Value = (cveSubProyecto)
.Add("@CveMovimientoAlmacen", SqlDbType.Int).Value = (cveMovimientoAlmacen)
.Add("@CveEmpresaCRM", SqlDbType.Int).Value = (cveEmpresaCRM)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el Evento .", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function RemoveEvento2(cveEvento As Integer, CveEmpresa As Integer, cveUsuario As Integer) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_EventosRemove2", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = cveEvento
.Add("@cveUsuario", SqlDbType.Int).Value = cveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar el Evento .", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetEventosUsuario2(CveEvento As Integer, CveEmpresa As Integer) As Boolean Public Function GetEventosUsuario2(CveEvento As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_OI_EventosUsuarios2Get") DataAdapter("PA_OI_EventosUsuarios2Get")
@@ -238,13 +450,32 @@ Public Class ClsOIEventos
Return Retorno Return Retorno
End Function End Function
Public Function UpUsuarioseventosVisto(CveEvento As Integer, CveUsuario As Integer) As Boolean Public Function GetEventosVinculos(CveEvento As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("UPDATE OI_EventosUsuarios SET Visto=1 WHERE CveEvento =@CveEvento AND CveUsuario=@CveUsuario", CommandType.Text) DataAdapter("PA_OI_EventosVinculosGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = CveEvento
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener el Catálogo de Evento Usuario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function UpUsuarioseventosVisto(CveEvento As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
'DataAdapter("UPDATE OI_EventosUsuarios SET Visto=1 WHERE CveEvento =@CveEvento AND CveUsuario=@CveUsuario;IF @@ROWCOUNT >0 BEGIN INSERT INTO OI_EventosComentarios (CveEvento, EventoComentario, CveUsuario) VALUES ( @CveEvento, CONCAT('El Usuario ""',(SELECT Nombre FROM Usuarios WHERE CveUsuario=@CveUsuario),'"" a visto la tarea'), @CveUsuario); END", CommandType.Text)
DataAdapter("PA_OI_EventosUpVisto")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = CveEvento .Add("@CveEvento", SqlDbType.Int).Value = CveEvento
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With
Try Try
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)
@@ -286,17 +517,21 @@ Public Class ClsOIEventos
Return retorno Return retorno
End Function End Function
Public Function AddEventoMinuta2(Asunto As String, Descripcion As String, Acuerdos As String, CveUsuarioDe As Integer, CveUsuarioPara As Integer, FechaInicio As DateTime, Archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String), CveUsuarioIng As Integer, CveEmpresa As Integer) As Boolean Public Function AddEventoMinuta2(Asunto As String, Descripcion As String, Acuerdos As String, CveUsuarioDe As Integer, CveUsuarioPara As Integer, FechaInicio As DateTime, Archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String), CveUsuarioIng As Integer, CveEmpresa As Integer, CorreoExterno As String) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
Retorno = AddOI_Eventos2(OITipoEventos.Minuta, Asunto, Descripcion, 3, -1, -1, String.Format("{0:yyyy/MM/dd HH:mm}", FechaInicio), "1900/01/01 00:00", -1, Archivo, Lmiembros, chkList, CveUsuarioIng, CveEmpresa, -1, Acuerdos) Retorno = AddOI_Eventos2(OITipoEventos.Minuta, Asunto, Descripcion, 3, -1, -1, String.Format("{0:yyyy/MM/dd HH:mm}", FechaInicio), "1900/01/01 00:00", -1, Archivo, Lmiembros, chkList, CveUsuarioIng, CveEmpresa, -1, Acuerdos, CorreoExterno:=CorreoExterno)
'Retorno = AddEvento(5, -1, Asunto, Descripcion, 1, -1, -1, FechaInicio, ("01/01/1799").ToDate, -1, -1, "-1", CveUsuarioIng, CveEmpresa, -1, -1, -1, -1, -1, -1, -1, -1) 'Retorno = AddEvento(5, -1, Asunto, Descripcion, 1, -1, -1, FechaInicio, ("01/01/1799").ToDate, -1, -1, "-1", CveUsuarioIng, CveEmpresa, -1, -1, -1, -1, -1, -1, -1, -1)
Return Retorno Return Retorno
End Function End Function
Public Function AddOI_Eventos2(cveTipoEvento As OITipoEventos, asunto As String, descripcion As String, prioridad As Int32, cveUsuarioDe As Int32, cveUsuarioPara As Int32, Public Function AddOI_Eventos2(cveTipoEvento As OITipoEventos, asunto As String, descripcion As String, prioridad As Int32, cveUsuarioDe As Int32, cveUsuarioPara As Int32,
fechaInicio As String, fechaFin As String, cveRevision As Int32, archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String), fechaInicio As String, fechaFin As String, cveRevision As Int32, archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String),
cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveEventoPadre As Integer = -1, Optional Acuerdos As String = Nothing, Optional CveAgendaTipo As Integer = -1) As Boolean cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveEventoPadre As Integer = -1, Optional Acuerdos As String = Nothing, Optional CveAgendaTipo As Integer = -1,
Optional CveActivoFijo As Integer = -1, Optional CveIE As Integer = -1, Optional CveProspecto As Integer = -1, Optional CveCliente As Integer = -1,
Optional CveOS As Integer = -1, Optional CveOC As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveProveedor As Integer = -1,
Optional CveCompra As Integer = -1, Optional CveVenta As Integer = -1, Optional CveContrato As Integer = -1, Optional CveSubProyecto As Integer = -1,
Optional CveMovimientoAlmacen As Integer = -1, Optional CorreoExterno As String = "", Optional CveTableroLista As Integer = -1, Optional Lugar As String = "") As Boolean
Dim retorno As Boolean = False Dim retorno As Boolean = False
Dim xmlMiembros As System.Xml.Linq.XDocument = Nothing Dim xmlMiembros As System.Xml.Linq.XDocument = Nothing
@@ -339,6 +574,24 @@ Public Class ClsOIEventos
.Add("@CveEventoPadre", SqlDbType.Int).Value = CveEventoPadre .Add("@CveEventoPadre", SqlDbType.Int).Value = CveEventoPadre
.Add("@Acuerdos", SqlDbType.VarChar).Value = If(Acuerdos Is Nothing, DBNull.Value, DirectCast(Acuerdos, Object)) .Add("@Acuerdos", SqlDbType.VarChar).Value = If(Acuerdos Is Nothing, DBNull.Value, DirectCast(Acuerdos, Object))
.Add("@CveAgendaTipo", SqlDbType.Int).Value = CveAgendaTipo .Add("@CveAgendaTipo", SqlDbType.Int).Value = CveAgendaTipo
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
.Add("@CveIE", SqlDbType.Int).Value = CveIE
.Add("@CveProspecto", SqlDbType.Int).Value = CveProspecto
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
.Add("@CveOS", SqlDbType.Int).Value = CveOS
.Add("@CveOC", SqlDbType.Int).Value = CveOC
.Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal
.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
.Add("@CveCompra", SqlDbType.Int).Value = CveCompra
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveMovimientoAlmacen", SqlDbType.Int).Value = CveMovimientoAlmacen
.Add("@CorreoExterno", SqlDbType.VarChar).Value = CorreoExterno
.Add("@Lugar", SqlDbType.VarChar).Value = Lugar
.Add("@CveTableroLista", SqlDbType.VarChar).Value = CveTableroLista
'.Add("@mailPara", SqlDbType.VarChar).Direction = ParameterDirection.Output '.Add("@mailPara", SqlDbType.VarChar).Direction = ParameterDirection.Output
'.Add("@mailBody", SqlDbType.Xml).Direction = ParameterDirection.Output '.Add("@mailBody", SqlDbType.Xml).Direction = ParameterDirection.Output
End With End With
@@ -1561,8 +1814,10 @@ Public Class ClsOIEventos
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)
Retorno = True Retorno = True
Catch ex As SqlException
OnError("Ocurrió un error al guardar Tema.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception Catch ex As Exception
OnError("Ocurrió un error al guardar la Revision de Eventos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) OnError("Ocurrió un error al guardar Tema.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try End Try
Return Retorno Return Retorno

View File

@@ -70,7 +70,11 @@ Public Class ClsPaginas
Get Get
Try Try
'UsuarioActual = DirectCast(Session("UsuarioSIG"), Usuario) 'UsuarioActual = DirectCast(Session("UsuarioSIG"), Usuario)
UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario) If Context.Session("UsuarioSIG") Is Nothing Then
Usuario.CerrarSession()
Else
UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario)
End If
Catch ex As Exception Catch ex As Exception
Usuario.CerrarSession() Usuario.CerrarSession()
Return Nothing Return Nothing
@@ -3579,6 +3583,10 @@ Public Class ClsPaginas
PaginaDict.Add("/OI/Tareas.aspx".ToUpper(), -1) PaginaDict.Add("/OI/Tareas.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepProyectos.aspx".ToUpper(), -1) PaginaDict.Add("/OI/RepProyectos.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Proyecto.aspx".ToUpper(), -1) PaginaDict.Add("/OI/Proyecto.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Tablero.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/TableroDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/ConvocatoriaDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepReuniones.aspx".ToUpper(), -1)
PaginaDict.Add("/AdSistemasTeam/ProcedimientosAlmacenados.aspx".ToUpper(), -1) PaginaDict.Add("/AdSistemasTeam/ProcedimientosAlmacenados.aspx".ToUpper(), -1)
PaginaDict.Add("/OS/CatOrdenesServiciosCaracteristicas.aspx".ToUpper(), -1) PaginaDict.Add("/OS/CatOrdenesServiciosCaracteristicas.aspx".ToUpper(), -1)
PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), -1) PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), -1)
@@ -5182,13 +5190,15 @@ Public Class ClsPaginas
Dim sw As New System.Diagnostics.Stopwatch() Dim sw As New System.Diagnostics.Stopwatch()
sw.Start() sw.Start()
Dim Bytes As Byte() = Nothing Dim Bytes As Byte() = Nothing
Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory)
RutaReporte.Replace("/", "\")
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
If EsProduccion Then If EsProduccion Then
Dim bdir As String = AppDomain.CurrentDomain.BaseDirectory
RutaReporte.Replace("/", "\")
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
Dim CveUsuario As Integer = 0 Dim CveUsuario As Integer = 0
Dim CveEmpresa As Integer = 0 Dim CveEmpresa As Integer = 0
If Context.Session("UsuarioSIG") IsNot Nothing Then If Context.Session("UsuarioSIG") IsNot Nothing Then
@@ -5580,7 +5590,7 @@ Public Class ClsPaginas
Dim retorno As Byte() = Nothing Dim retorno As Byte() = Nothing
'DATOS GENERALES 'DATOS GENERALES
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml"
Dim NombreArchivo As String = "" Dim NombreArchivo As String = ""
Dim NombreArchivoDescarga As String = "" Dim NombreArchivoDescarga As String = ""
@@ -6093,7 +6103,7 @@ Public Class ClsPaginas
' Dim ObjVentas As New ClsVentas ' Dim ObjVentas As New ClsVentas
'DATOS GENERALES 'DATOS GENERALES
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml"
Dim NombreArchivo As String = "" Dim NombreArchivo As String = ""
Dim NombreArchivoDescarga As String = "" Dim NombreArchivoDescarga As String = ""
@@ -6797,7 +6807,7 @@ Public Class ClsPaginas
Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte
lrds.Add(rds5) lrds.Add(rds5)
If UsuarioActual.CveEmpresa = 141 AndAlso RutaFormato.Contains("Factura") Then If UsuarioActual.CveEmpresa = 141 AndAlso (RutaFormato.Contains("Factura") Or RutaFormato.Contains("Cotizacion")) Then
params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString)) params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString))
End If End If
'Imprime los parametros 'Imprime los parametros
@@ -7195,10 +7205,15 @@ Public Class ClsPaginas
End If End If
'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString)) 'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString))
Dim RutaFisicaSol As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioSol)
Dim RutaVirtuaSol As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={0}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaSol))
Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioSol)) Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioSol))
params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", EmpresaActual.CveEmpresa, CveUsuarioSol))).AbsoluteUri, ""))) params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, RutaVirtuaSol, "")))
Dim RutaFisicaAut As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioAut)
Dim RutaVirtuaAut As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaAut))
Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioAut)) Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioAut))
params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", EmpresaActual.CveEmpresa, CveUsuarioAut))).AbsoluteUri, ""))) params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, RutaVirtuaAut, "")))
If Archivo.Exists Then If Archivo.Exists Then
bytes = StreamPDF(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta), DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) bytes = StreamPDF(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta), DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR)
@@ -7445,7 +7460,7 @@ Public Class ClsPaginas
Dim DTPercepciones As Data.DataTable Dim DTPercepciones As Data.DataTable
Dim DTDeducciones As Data.DataTable Dim DTDeducciones As Data.DataTable
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.SerieFolio}.xml" Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.SerieFolio}.xml"
Dim FechaEmision, FechaCertificacion As DateTime Dim FechaEmision, FechaCertificacion As DateTime
Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String
@@ -7750,7 +7765,7 @@ Public Class ClsPaginas
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
'DATOS GENERALES 'DATOS GENERALES
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\Pag\{Serie}-{Folio}.xml" Dim PathXML As String = $"{Ruta}XML\Pag\{Serie}-{Folio}.xml"
Dim PathPDF As String = $"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf" Dim PathPDF As String = $"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf"
SerieFolio = $"{Serie}-{Folio}" SerieFolio = $"{Serie}-{Folio}"

View File

@@ -676,7 +676,7 @@ End Class
' dtMenu.TableName = "ModulosUsuarios" ' dtMenu.TableName = "ModulosUsuarios"
' Try ' Try
' dtMenu.WriteXml(AppDomain.CurrentDomain.BaseDirectory & "\Menu\" & _Usuario & ".xml", XmlWriteMode.WriteSchema) ' dtMenu.WriteXml(ModExtensiones.DirectorioBaseEmpresas & "\Menu\" & _Usuario & ".xml", XmlWriteMode.WriteSchema)
' Retorno = True ' Retorno = True
' Catch ex As Exception ' Catch ex As Exception
' OnError("Ocurrió un error al generar el menú del usuario.", ex) ' OnError("Ocurrió un error al generar el menú del usuario.", ex)

View File

@@ -445,7 +445,7 @@ Public Class ClsSisEmpresas
_Empresa.Buzon_Tipo = Data.Rows(0)("Buzon_Tipo").ToString _Empresa.Buzon_Tipo = Data.Rows(0)("Buzon_Tipo").ToString
_Empresa.ContaContabilizacionNC = Data.Rows(0)("Conta_ContabilizacionNC").ToString.ToEntero _Empresa.ContaContabilizacionNC = Data.Rows(0)("Conta_ContabilizacionNC").ToString.ToEntero
_Empresa.Ruta = String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, _Empresa.CveEmpresa) '_Empresa.Ruta = String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, _Empresa.CveEmpresa)
_Empresa.PV_TerminalTipo = Data.Rows(0)("PV_TerminalTipo").ToString.ToEntero _Empresa.PV_TerminalTipo = Data.Rows(0)("PV_TerminalTipo").ToString.ToEntero
_Empresa.EjercicioActual = Data.Rows(0)("EjercicioActual").ToString.ToEntero _Empresa.EjercicioActual = Data.Rows(0)("EjercicioActual").ToString.ToEntero
_Empresa.PeriodoActual = Data.Rows(0)("PeriodoActual").ToString.ToEntero _Empresa.PeriodoActual = Data.Rows(0)("PeriodoActual").ToString.ToEntero

View File

@@ -320,7 +320,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTUltimaPosicion.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTUltimaPosicion.rdlc"
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
If Formato = "Excel" Then If Formato = "Excel" Then
Dim Dispositivos As New StringBuilder Dim Dispositivos As New StringBuilder
@@ -369,7 +369,7 @@ Public Class ClsSisNotificaciones
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTHistorico.rpt" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTHistorico.rpt"
Dim ObjMail As New ClsSisMail() Dim ObjMail As New ClsSisMail()
Dim ResultadoMail As Integer = 0 Dim ResultadoMail As Integer = 0
Dim Archivos As New List(Of ClsSisMail.ArchivoMail) Dim Archivos As New List(Of ClsSisMail.ArchivoMail)
@@ -429,7 +429,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTiempoMuerto.rpt" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTiempoMuerto.rpt"
Dim DataSource As DataSet = Nothing Dim DataSource As DataSet = Nothing
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
If Formato = "Excel" Then If Formato = "Excel" Then
@@ -478,7 +478,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTEventos.rpt" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTEventos.rpt"
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
Dim Dispositivos As New StringBuilder Dim Dispositivos As New StringBuilder
For Each Row As DataRow In DtDispositivos.Rows For Each Row As DataRow In DtDispositivos.Rows
@@ -520,7 +520,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTRalenti.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTRalenti.rdlc"
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
If Formato = "Excel" Then If Formato = "Excel" Then
Dim Dispositivos As New StringBuilder Dim Dispositivos As New StringBuilder
@@ -565,7 +565,7 @@ Public Class ClsSisNotificaciones
End Try End Try
ObjGPS.Dispose() ObjGPS.Dispose()
Case 6 'Geocercas Case 6 'Geocercas
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPGeocercas.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPGeocercas.rdlc"
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
@@ -604,7 +604,7 @@ Public Class ClsSisNotificaciones
End Try End Try
ObjGPS.Dispose() ObjGPS.Dispose()
Case 7 'Puntos de Interes Case 7 'Puntos de Interes
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPPuntosDeInteres.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPPuntosDeInteres.rdlc"
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try

View File

@@ -4496,6 +4496,25 @@ Public Class ClsVentas
Return Retorno Return Retorno
End Function End Function
Public Function EliminarUsados(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_VentasUsadosRemove", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar los usados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function GetVentasUsados(CveVenta As Integer, CveSubProyecto As Integer, Fecha As DateTime, CveEmpresa As Integer) As Boolean Public Function GetVentasUsados(CveVenta As Integer, CveSubProyecto As Integer, Fecha As DateTime, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False

View File

@@ -101,7 +101,11 @@ Public Class Empresa
Public Property Soporte_PWD As String Public Property Soporte_PWD As String
Public Property Soporte_Tipo As String Public Property Soporte_Tipo As String
Public Property Timbres As Integer Public Property Timbres As Integer
Public Property Ruta As String Public ReadOnly Property Ruta As String
Get
Return String.Format("{0}\{1}\", Extensiones.ModExtensiones.DirectorioEmpresas, Me.CveEmpresa)
End Get
End Property
Public Property IdCuentaIVAxTrasladar As Integer Public Property IdCuentaIVAxTrasladar As Integer
Public Property IdCuentaIVATrasladado As Integer Public Property IdCuentaIVATrasladado As Integer
Public Property IdCuentaPerdidaCambiaria As Integer Public Property IdCuentaPerdidaCambiaria As Integer

View File

@@ -328,7 +328,7 @@ Namespace Modelos
End If End If
SetMetodoPago(ObjsClsPaginas) SetMetodoPago(ObjsClsPaginas)
Timbre = New CFDITimbre Timbre = New CFDITimbre
DirectorioServidor = ObjsClsPaginas.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End Sub End Sub
Public Sub New(ObjsClsPaginas As ClsPaginas, CveVenta As Integer, CveEmpresa As Integer) Public Sub New(ObjsClsPaginas As ClsPaginas, CveVenta As Integer, CveEmpresa As Integer)
@@ -342,7 +342,7 @@ Namespace Modelos
End If End If
End If End If
ObjVentas.Dispose() ObjVentas.Dispose()
DirectorioServidor = ObjsClsPaginas.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End Sub End Sub
Public Sub New(ObjsClsPaginas As ClsPaginas, UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing) Public Sub New(ObjsClsPaginas As ClsPaginas, UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing)
Me.UsuarioActual = UsuarioActual Me.UsuarioActual = UsuarioActual
@@ -359,7 +359,7 @@ Namespace Modelos
SetSubProyecto(ObjsClsPaginas) SetSubProyecto(ObjsClsPaginas)
SetSubProyectoMatriz(ObjsClsPaginas) SetSubProyectoMatriz(ObjsClsPaginas)
Timbre = New CFDITimbre Timbre = New CFDITimbre
DirectorioServidor = ObjsClsPaginas.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End Sub End Sub
Public Sub New(UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing) Public Sub New(UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing)
Me.UsuarioActual = UsuarioActual Me.UsuarioActual = UsuarioActual
@@ -400,7 +400,7 @@ Namespace Modelos
ObjVentas.Dispose() ObjVentas.Dispose()
IniciaValoresVentas(EsCancelacion) IniciaValoresVentas(EsCancelacion)
If String.IsNullOrEmpty(DirectorioServidor) Then If String.IsNullOrEmpty(DirectorioServidor) Then
DirectorioServidor = HttpContext.Current.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End If End If
Me.DirectorioServidor = DirectorioServidor Me.DirectorioServidor = DirectorioServidor
Timbre = New CFDITimbre Timbre = New CFDITimbre
@@ -878,9 +878,9 @@ Namespace Modelos
Try Try
If Not String.IsNullOrEmpty(DirectorioServidor) Then If Not String.IsNullOrEmpty(DirectorioServidor) Then
Dim DirectoriArchivoXML As String = System.IO.Path.Combine(DirectorioServidor, "Empresas", UsuarioActual.CveEmpresa.ToString, Me.TipoDocto) Dim DirectorioArchivoXML As String = System.IO.Path.Combine(UsuarioActual.Empresa.Ruta, "XML", Me.TipoDocto)
If Not Directory.Exists(DirectoriArchivoXML) Then If Not Directory.Exists(DirectorioArchivoXML) Then
Directory.CreateDirectory(DirectoriArchivoXML) Directory.CreateDirectory(DirectorioArchivoXML)
End If End If
End If End If
@@ -4537,6 +4537,13 @@ Namespace Modelos
End If End If
End If End If
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, CveMovimientoDevolucion, RowMovimiento("CveMovimiento").ToString().ToEntero(), ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
'AGREGA BITACORA A VENTA 'AGREGA BITACORA A VENTA
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then
Dim MensajeBitacora = "Devuelta" Dim MensajeBitacora = "Devuelta"
@@ -4580,12 +4587,6 @@ Namespace Modelos
Next Next
End If End If
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
'VERIFICAR MOVIMIENTOS DE APARTADOS 'VERIFICAR MOVIMIENTOS DE APARTADOS
If Not ErrorCancelar Then If Not ErrorCancelar Then
If Not GeneraMovimientosApartados(ObjInventario) Then If Not GeneraMovimientosApartados(ObjInventario) Then
@@ -4809,41 +4810,36 @@ Namespace Modelos
Return Retorno Return Retorno
End Function End Function
Private Function GeneraMovimientosVirtuales(CveVenta As Integer, ByRef ObjInventario As ClsInventarios) As Boolean Private Function GeneraMovimientosVirtuales(CveVenta As Integer, CveMovimiento As Integer, CveMovimientoRelacionado As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False Dim ErrorCancelar As Boolean = False
Try Try
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
Dim CveMovimientoSalida As Integer = -1 Dim CveMovimientoVirtual As Integer = -1
Dim CveAlmacenVirutal As Integer = -1 Dim ValidaVirtual = True
Dim DtPSVirtual As New DataTable("DtTamanios")
Dim DtMovtosDev As DataTable = Nothing If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoRelacionado) Then
DtPSVirtual = ObjInventario.DtResultados
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 3 AND CveVenta > 0")
CveMovimientoSalida = RowMovimiento("CveMovimiento").ToString().ToEntero()
CveAlmacenVirutal = RowMovimiento("CveAlmacen").ToString().ToEntero()
Else
ErrorCancelar = True
End If End If
If CveMovimientoSalida > 0 Then Dim CveConceptoMovimientoVirtual As Integer = 36
'CARGA CONCEPTOS DEVUELTOS EN LA VENTA Dim CveAlmacenVirtual As Integer = -1
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then Dim CveMovimientoRelacionadoVirtual As Integer = CveMovimiento
DtMovtosDev = ObjInventario.DtResultados.Copy()
Else
ErrorCancelar = True
End If
If DtMovtosDev IsNot Nothing AndAlso DtMovtosDev.Rows.Count > 0 Then CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
Dim CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenVirutal, 18, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
For Each RowUsado As DataRow In DtMovtosDev.Rows If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1,
Observaciones:="", Guia:="", CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="Modelos/CancelarVirtual")
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero() Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble() Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal() Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero() Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
ErrorCancelar = True ErrorCancelar = True
Exit For Exit For
End If End If
@@ -4851,7 +4847,14 @@ Namespace Modelos
Else Else
ErrorCancelar = True ErrorCancelar = True
End If End If
Else
If ValidaVirtual Then
ErrorCancelar = True
End If
End If
If DtPSVirtual.Rows.Count = 0 AndAlso ValidaVirtual = True Then
ErrorCancelar = True
End If End If
End If End If
Catch ex As Exception Catch ex As Exception
@@ -4861,6 +4864,7 @@ Namespace Modelos
Return Not ErrorCancelar Return Not ErrorCancelar
End Function End Function
Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean
Dim ErrorCancelar As Boolean = False Dim ErrorCancelar As Boolean = False

View File

@@ -18,7 +18,7 @@ Public Class WSApiController
Public ReadOnly Property RutaEmpresa As String Public ReadOnly Property RutaEmpresa As String
Get Get
Return String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(4)) Return String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(4))
End Get End Get
End Property End Property
' '

View File

@@ -108,7 +108,7 @@ Namespace SIG
If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then
'verifico si existe la carpeta de la empresa, sino la crea 'verifico si existe la carpeta de la empresa, sino la crea
For Each dr As Data.DataRow In ObjEmpresas.DtResultados.Rows For Each dr As Data.DataRow In ObjEmpresas.DtResultados.Rows
Dim Ruta As String = String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, dr("CveEmpresa")) Dim Ruta As String = String.Format("{0}Empresas\{1}", ModExtensiones.DirectorioBaseEmpresas, dr("CveEmpresa"))
If Not IO.Directory.Exists(Ruta) Then IO.Directory.CreateDirectory(Ruta) If Not IO.Directory.Exists(Ruta) Then IO.Directory.CreateDirectory(Ruta)
If Not System.IO.Directory.Exists(String.Format("{0}\XML\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\XML\", Ruta)) If Not System.IO.Directory.Exists(String.Format("{0}\XML\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\XML\", Ruta))
If Not System.IO.Directory.Exists(String.Format("{0}\PDF\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\PDF\", Ruta)) If Not System.IO.Directory.Exists(String.Format("{0}\PDF\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\PDF\", Ruta))

View File

@@ -1467,7 +1467,7 @@ Public Class WS_PuntoVenta
Dim ObjEmpresa As New ClsSisEmpresas() Dim ObjEmpresa As New ClsSisEmpresas()
If ObjEmpresa.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then If ObjEmpresa.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then
Empresa = ObjEmpresa.Empresa Empresa = ObjEmpresa.Empresa
Empresa.Ruta = String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, CveEmpresa) 'Empresa.Ruta = String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, CveEmpresa)
End If End If
ObjEmpresa.Dispose() ObjEmpresa.Dispose()

View File

@@ -29,16 +29,36 @@ Imports System.Web.Http.Controllers
Imports System.Net.Http Imports System.Net.Http
Imports System.Net Imports System.Net
Namespace Extensiones Namespace Extensiones
#Region "E X T E N S I O N E S" #Region "E X T E N S I O N E S"
Public Module ModExtensiones Public Module ModExtensiones
Public ReadOnly Property DirectorioBaseEmpresas As String
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("DirectorioBaseEmpresas")) Then
Return AppDomain.CurrentDomain.BaseDirectory
Else
Return System.Configuration.ConfigurationManager.AppSettings("DirectorioBaseEmpresas").ToString()
End If
End Get
End Property
Public ReadOnly DirectorioEmpresas As String = String.Format("{0}Empresas\", DirectorioBaseEmpresas)
Public ReadOnly Property GOOGLE_MAPS_API_KEY As String
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("GOOGLE_MAPS_API_KEY")) Then
Return ""
Else
Return System.Configuration.ConfigurationManager.AppSettings("GOOGLE_MAPS_API_KEY").ToString()
End If
End Get
End Property
Public Const IMEI As String = "IMEISISTEMAGERENCIAL" Public Const IMEI As String = "IMEISISTEMAGERENCIAL"
Public Const MinFecha As Date = #1/1/1900# Public Const MinFecha As Date = #1/1/1900#
Public Const MaxFecha As Date = #1/1/9999# Public Const MaxFecha As Date = #1/1/9999#
Public Const GlobalRowVersion As Integer = 555555 Public Const GlobalRowVersion As Integer = 555555
#Region "PropiedadesEncriptación" #Region "PropiedadesEncriptación"
Private _Key() As Byte = {} Private _Key() As Byte = {}
Private ReadOnly _IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF} Private ReadOnly _IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
@@ -78,10 +98,10 @@ Namespace Extensiones
Else Else
Return Valor Return Valor
End If End If
End Function End Function
#Region "Log" #Region "Log"
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Sub GuardaLog(Str As String) Public Sub GuardaLog(Str As String)
Dim ArchivoW As StreamWriter Dim ArchivoW As StreamWriter
@@ -227,11 +247,11 @@ Namespace Extensiones
End Try End Try
ArchivoW.Close() ArchivoW.Close()
ArchivoW.Dispose() ArchivoW.Dispose()
End Sub End Sub
#End Region #End Region
#Region "Alertas y notificaciones" #Region "Alertas y notificaciones"
Public Enum TipoMensaje As Integer Public Enum TipoMensaje As Integer
MsgError = 1 MsgError = 1
MsgInformacion = 2 MsgInformacion = 2
@@ -317,7 +337,7 @@ Namespace Extensiones
script = String.Format("alertatoast({3},'{0}',function(){{{1}}},{2});", Mensaje, JSBtnAceptar, TimeoutToast, DirectCast(pOpcion, Integer)) script = String.Format("alertatoast({3},'{0}',function(){{{1}}},{2});", Mensaje, JSBtnAceptar, TimeoutToast, DirectCast(pOpcion, Integer))
End If End If
ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), String.Format("Alert{0}", (DateTime.Now.Ticks + 1).ToString()), Script, True) ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), String.Format("Alert{0}", (DateTime.Now.Ticks + 1).ToString()), script, True)
Pag = Nothing Pag = Nothing
Catch ex As Exception Catch ex As Exception
Mensaje.GuardaLog(String.Format("Error Alert : {0}", Mensaje)) Mensaje.GuardaLog(String.Format("Error Alert : {0}", Mensaje))
@@ -400,35 +420,35 @@ Namespace Extensiones
Dim Time As String = "" Dim Time As String = ""
If Fecha <> "" Then Time = String.Format("<span class=""time"">{0}</span>", Fecha) If Fecha <> "" Then Time = String.Format("<span class=""time"">{0}</span>", Fecha)
Return String.Format("<li><a href=""{4}"" target=""_blank"">{0}<span class=""details""><span class=""label label-sm label-icon label-{1}""><i class=""{2}""></i></span>{3}</span></a></li>", Time, Tipo, Ico, Mensaje, Link) Return String.Format("<li><a href=""{4}"" target=""_blank"">{0}<span class=""details""><span class=""label label-sm label-icon label-{1}""><i class=""{2}""></i></span>{3}</span></a></li>", Time, Tipo, Ico, Mensaje, Link)
End Function End Function
'<Runtime.CompilerServices.Extension()> '<Runtime.CompilerServices.Extension()>
'Public Function addindicador(Obj As Object, color As String, icono As String, titulo As String, comentario As String, link As String) As String 'Public Function addindicador(Obj As Object, color As String, icono As String, titulo As String, comentario As String, link As String) As String
' Try ' Try
' Dim htmlobj = DirectCast(Obj, HtmlGenericControl) ' Dim htmlobj = DirectCast(Obj, HtmlGenericControl)
' color = color.Replace("'", "\'") ' color = color.Replace("'", "\'")
' icono = icono.Replace("'", "\'") ' icono = icono.Replace("'", "\'")
' titulo = titulo.Replace("'", "\'") ' titulo = titulo.Replace("'", "\'")
' comentario = comentario.Replace("'", "\'") ' comentario = comentario.Replace("'", "\'")
' link = link.Replace("'", "\'") ' link = link.Replace("'", "\'")
' Dim script As String = " addindicadortext('" & color & "','" & icono & "','" & titulo & "','" & comentario & "','" & link & "',$('#" & htmlobj.ClientID.ToString & "')); " ' Dim script As String = " addindicadortext('" & color & "','" & icono & "','" & titulo & "','" & comentario & "','" & link & "',$('#" & htmlobj.ClientID.ToString & "')); "
' Return script ' Return script
' Catch ex As Exception ' Catch ex As Exception
' Return "" ' Return ""
' End Try ' End Try
'End Function 'End Function
'<Runtime.CompilerServices.Extension()> '<Runtime.CompilerServices.Extension()>
'Public Sub updateindicador(Obj As Object, script As String) 'Public Sub updateindicador(Obj As Object, script As String)
' Dim Pag As Page = DirectCast(System.Web.HttpContext.Current.Handler, Page) ' Dim Pag As Page = DirectCast(System.Web.HttpContext.Current.Handler, Page)
' ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), (DateTime.Now.Ticks + 1).ToString(), script, True) ' ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), (DateTime.Now.Ticks + 1).ToString(), script, True)
' Pag = Nothing ' Pag = Nothing
'End Sub 'End Sub
#End Region #End Region
#Region "files dropzone" #Region "files dropzone"
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Function getfiles(txt As TextBox) As Files Public Function getfiles(txt As TextBox) As Files
Dim retorno As New Files Dim retorno As New Files
@@ -458,7 +478,14 @@ Namespace Extensiones
Else Else
newName = String.Format("{0}{1}", newName, IO.Path.GetExtension(directorioOld.ToString())) newName = String.Format("{0}{1}", newName, IO.Path.GetExtension(directorioOld.ToString()))
End If End If
directorioNew.AppendFormat("{0}{1}\", AppDomain.CurrentDomain.BaseDirectory, newDirectorio)
'SI VA A LA CARPETA DE EMPRESAS TIENE QUE TOMAR LA RUTA DE EMPRESAS
If newDirectorio.Contains("Empresas") Then
directorioNew.AppendFormat("{0}{1}\", ModExtensiones.DirectorioBaseEmpresas, newDirectorio)
Else
directorioNew.AppendFormat("{0}{1}\", AppDomain.CurrentDomain.BaseDirectory, newDirectorio)
End If
If Not Directory.Exists(directorioNew.ToString) Then If Not Directory.Exists(directorioNew.ToString) Then
Directory.CreateDirectory(directorioNew.ToString) Directory.CreateDirectory(directorioNew.ToString)
End If End If
@@ -478,9 +505,9 @@ Namespace Extensiones
'Verifico que no exista el directory y que se halla creado, si se creo el directorio regresa true 'Verifico que no exista el directory y que se halla creado, si se creo el directorio regresa true
Return Not Directory.Exists(NombreDirectorio) AndAlso Directory.CreateDirectory(NombreDirectorio) IsNot Nothing Return Not Directory.Exists(NombreDirectorio) AndAlso Directory.CreateDirectory(NombreDirectorio) IsNot Nothing
End Function End Function
#End Region #End Region
#Region " obj to entero date, double, etc. formato numero" #Region " obj to entero date, double, etc. formato numero"
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Function ToEnterodb(Obj As SqlClient.SqlDataReader, key As String) As Integer Public Function ToEnterodb(Obj As SqlClient.SqlDataReader, key As String) As Integer
@@ -914,13 +941,13 @@ Namespace Extensiones
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Function Abs(Valor As Decimal) As Decimal Public Function Abs(Valor As Decimal) As Decimal
Return Math.Abs(Valor) Return Math.Abs(Valor)
End Function End Function
#End Region #End Region
#Region "DataTable operation" #Region "DataTable operation"
'Dejar el parametro 'dt' en ByVal, para que no se autoasigne el valor, en el caso de filtrar lo GlobalDT(ByRef, pierde los valores y solo deja los filtrados) 'Dejar el parametro 'dt' en ByVal, para que no se autoasigne el valor, en el caso de filtrar lo GlobalDT(ByRef, pierde los valores y solo deja los filtrados)
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Function FiltraParametros(dt As DataTable, RowFilter As String, Optional Orderby As String = "", Optional DistinctColumns() As String = Nothing) As DataTable Public Function FiltraParametros(dt As DataTable, RowFilter As String, Optional Orderby As String = "", Optional DistinctColumns() As String = Nothing) As DataTable
Dim TmpDt As New DataTable Dim TmpDt As New DataTable
@@ -1351,12 +1378,12 @@ Namespace Extensiones
names.Add(column.ColumnName) names.Add(column.ColumnName)
Next Next
Return names Return names
End Function End Function
#End Region #End Region
#Region "gridview operations" #Region "gridview operations"
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Function FCHyperLink(ByVal Row As GridViewRow, ByVal Control As String) As HyperLink Public Function FCHyperLink(ByVal Row As GridViewRow, ByVal Control As String) As HyperLink
Return DirectCast(Row.FindControl(Control), HyperLink) Return DirectCast(Row.FindControl(Control), HyperLink)
@@ -1475,9 +1502,9 @@ Namespace Extensiones
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Function FCRangeValidator(ByVal Row As GridViewRow, ByVal Control As String) As RangeValidator Public Function FCRangeValidator(ByVal Row As GridViewRow, ByVal Control As String) As RangeValidator
Return DirectCast(Row.FindControl(Control), RangeValidator) Return DirectCast(Row.FindControl(Control), RangeValidator)
End Function End Function
#End Region #End Region
#Region "Excel PDF" #Region "Excel PDF"
Public Sub GeneraChequePDF(pCveIE As Integer, tEmpresa As Empresa, Optional IDPoliza As Integer = -1, Optional MuestraAlert As Boolean = True) Public Sub GeneraChequePDF(pCveIE As Integer, tEmpresa As Empresa, Optional IDPoliza As Integer = -1, Optional MuestraAlert As Boolean = True)
@@ -1540,7 +1567,7 @@ Namespace Extensiones
' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta)) ' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta))
' If Not IO.File.Exists(Ruta & FormatoCheque) Then ' If Not IO.File.Exists(Ruta & FormatoCheque) Then
' IO.File.Copy(String.Format("{0}Empresas\Grales\Cheque.xlsm", AppDomain.CurrentDomain.BaseDirectory), Ruta & FormatoCheque, False) ' IO.File.Copy(String.Format("{0}Empresas\Grales\Cheque.xlsm", ModExtensiones.DirectorioBaseEmpresas), Ruta & FormatoCheque, False)
' End If ' End If
' Dim ArchivoBase As New System.IO.FileInfo(Ruta & FormatoCheque) ' Dim ArchivoBase As New System.IO.FileInfo(Ruta & FormatoCheque)
@@ -1770,7 +1797,7 @@ Namespace Extensiones
' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta)) ' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta))
' If Not IO.File.Exists(String.Format("{0}{1}", Ruta, FormatoCheque)) Then ' If Not IO.File.Exists(String.Format("{0}{1}", Ruta, FormatoCheque)) Then
' IO.File.Copy(String.Format("{0}Empresas\Grales\Transferencia.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", Ruta, FormatoCheque), False) ' IO.File.Copy(String.Format("{0}Empresas\Grales\Transferencia.xlsm", ModExtensiones.DirectorioBaseEmpresas), String.Format("{0}{1}", Ruta, FormatoCheque), False)
' End If ' End If
' Dim ArchivoBase As New System.IO.FileInfo(String.Format("{0}{1}", Ruta, FormatoCheque)) ' Dim ArchivoBase As New System.IO.FileInfo(String.Format("{0}{1}", Ruta, FormatoCheque))
@@ -2164,16 +2191,15 @@ Namespace Extensiones
worksheet.Rows(IndexEndTable).Cells(6).Value = "Fecha Impresión" worksheet.Rows(IndexEndTable).Cells(6).Value = "Fecha Impresión"
worksheet.Rows(IndexEndTable + 1).Cells(6).Value = DateTime.Now.ToString("dd/MM/yyyy") worksheet.Rows(IndexEndTable + 1).Cells(6).Value = DateTime.Now.ToString("dd/MM/yyyy")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
If Imagen.Exists Then If Imagen.Exists Then
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, Usuario.CveEmpresa) Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
Using webClient As New Net.WebClient() Using sr As New StreamReader(Ruta)
Dim imageBytes = webClient.DownloadData(logouri) Dim ms As New MemoryStream()
Dim stream As New MemoryStream(imageBytes) sr.BaseStream.CopyTo(ms)
worksheet.Pictures.Add(stream, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
'worksheet.Pictures.Add(stream, GemBox.Spreadsheet.ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, GemBox.Document.LengthUnit.Pixel) End Using
End Using
End If End If
End If End If
@@ -2353,164 +2379,164 @@ Namespace Extensiones
Gv.Controls(0).Controls.AddAt(0, row) Gv.Controls(0).Controls.AddAt(0, row)
End If End If
End Sub End Sub
'Public Function GeneraBytesOC(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte() 'Public Function GeneraBytesOC(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte()
' Dim bytes As Byte() = Nothing ' Dim bytes As Byte() = Nothing
' Try ' Try
' Dim DtDetalle As DataTable = Nothing ' Dim DtDetalle As DataTable = Nothing
' Dim ObjOC As New ClsOC ' Dim ObjOC As New ClsOC
' If ObjOC.GetOC(tCveOrdenCompra, ObjClsPaginas.UsuarioActual.CveEmpresa) Then ' If ObjOC.GetOC(tCveOrdenCompra, ObjClsPaginas.UsuarioActual.CveEmpresa) Then
' Dim dtOC As DataTable = ObjOC.DtResultados ' Dim dtOC As DataTable = ObjOC.DtResultados
' If ObjOC.GetOrdenesDetalle(ObjOC.CveOrdenCompra) Then 'Obtenemos el Detalle de la Oorden de Compra ' If ObjOC.GetOrdenesDetalle(ObjOC.CveOrdenCompra) Then 'Obtenemos el Detalle de la Oorden de Compra
' DtDetalle = ObjOC.DtResultados ' DtDetalle = ObjOC.DtResultados
' End If ' End If
' Dim CveUsuarioSol As Integer = dtOC(0)("CveUsuarioSolicito").ToString.ToEntero ' Dim CveUsuarioSol As Integer = dtOC(0)("CveUsuarioSolicito").ToString.ToEntero
' Dim CveUsuarioAut As Integer = dtOC(0)("CveUsuarioAutorizo").ToString.ToEntero ' Dim CveUsuarioAut As Integer = dtOC(0)("CveUsuarioAutorizo").ToString.ToEntero
' Dim drSol As DataRow = ObjClsPaginas.GlobalDTUsuarios(CveUsuarioSol, ObjClsPaginas.UsuarioActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien SOLICITÓ la OC) ' Dim drSol As DataRow = ObjClsPaginas.GlobalDTUsuarios(CveUsuarioSol, ObjClsPaginas.UsuarioActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien SOLICITÓ la OC)
' Dim drAut As DataRow = ObjClsPaginas.GlobalDTUsuarios(CveUsuarioAut, ObjClsPaginas.UsuarioActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien AUTORIZÓ la OC) ' Dim drAut As DataRow = ObjClsPaginas.GlobalDTUsuarios(CveUsuarioAut, ObjClsPaginas.UsuarioActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien AUTORIZÓ la OC)
' Dim CvePersonalSol, CvePersonalAut As Integer ' Dim CvePersonalSol, CvePersonalAut As Integer
' Dim PuestoSol As String = "" ' Dim PuestoSol As String = ""
' Dim PuestoAut As String = "" ' Dim PuestoAut As String = ""
' If drSol IsNot Nothing AndAlso drSol("CvePersonal").ToString.ToEntero > 0 Then CvePersonalSol = drSol("CvePersonal").ToString.ToEntero ' If drSol IsNot Nothing AndAlso drSol("CvePersonal").ToString.ToEntero > 0 Then CvePersonalSol = drSol("CvePersonal").ToString.ToEntero
' If drAut IsNot Nothing AndAlso drAut("CvePersonal").ToString.ToEntero > 0 Then CvePersonalAut = drAut("CvePersonal").ToString.ToEntero ' If drAut IsNot Nothing AndAlso drAut("CvePersonal").ToString.ToEntero > 0 Then CvePersonalAut = drAut("CvePersonal").ToString.ToEntero
' Dim ObjRH As New ClsRH() ' Dim ObjRH As New ClsRH()
' If ObjRH.GetPersonal(CvePersonalSol, ObjClsPaginas.UsuarioActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then ' If ObjRH.GetPersonal(CvePersonalSol, ObjClsPaginas.UsuarioActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then
' PuestoSol = ObjRH.DtResultados(0)("Puesto").ToString ' PuestoSol = ObjRH.DtResultados(0)("Puesto").ToString
' End If ' End If
' If ObjRH.GetPersonal(CvePersonalAut, ObjClsPaginas.UsuarioActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then ' If ObjRH.GetPersonal(CvePersonalAut, ObjClsPaginas.UsuarioActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then
' PuestoAut = ObjRH.DtResultados(0)("Puesto").ToString ' PuestoAut = ObjRH.DtResultados(0)("Puesto").ToString
' End If ' End If
' ObjRH.Dispose() ' ObjRH.Dispose()
' Dim TipoCambio As String ' Dim TipoCambio As String
' If ObjOC.CveMoneda = 1 Then ' If ObjOC.CveMoneda = 1 Then
' TipoCambio = "1.00" ' TipoCambio = "1.00"
' Else ' Else
' TipoCambio = ObjClsPaginas.GlobalTipoCambio.ToString() ' TipoCambio = ObjClsPaginas.GlobalTipoCambio.ToString()
' End If ' End If
' Dim params As New List(Of ReportParameter) ' Dim params As New List(Of ReportParameter)
' Dim nombreautorizo As String = dtOC(0)("UsuarioAutorizo").ToString ' Dim nombreautorizo As String = dtOC(0)("UsuarioAutorizo").ToString
' 'If ObjClsPaginas.UsuarioActual.CveEmpresa = 48 Then ' 'If ObjClsPaginas.UsuarioActual.CveEmpresa = 48 Then
' ' nombreautorizo = "Lic. LUIS JORGE CONTRERAS LANDGRAVE" ' ' nombreautorizo = "Lic. LUIS JORGE CONTRERAS LANDGRAVE"
' 'End If ' 'End If
' If ObjClsPaginas.UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12) Then ' If ObjClsPaginas.UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12) Then
' params.Add(New ReportParameter("ReferenciaBancaria", dtOC(0)("BancoCuenta").ToString)) ' params.Add(New ReportParameter("ReferenciaBancaria", dtOC(0)("BancoCuenta").ToString))
' params.Add(New ReportParameter("ReferenciaBanco", dtOC(0)("BancoNombre").ToString)) ' params.Add(New ReportParameter("ReferenciaBanco", dtOC(0)("BancoNombre").ToString))
' params.Add(New ReportParameter("Justificacion", dtOC(0)("Justificacion").ToString)) ' params.Add(New ReportParameter("Justificacion", dtOC(0)("Justificacion").ToString))
' params.Add(New ReportParameter("TipoTermino", ObjOC.TipoTermino.ToString)) ' params.Add(New ReportParameter("TipoTermino", ObjOC.TipoTermino.ToString))
' params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("SubProyecto").ToString, ""))) ' params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("SubProyecto").ToString, "")))
' params.Add(New ReportParameter("Descuento", DtDetalle.SUM("Descuento").ToString.FormatoNumero(2))) ' params.Add(New ReportParameter("Descuento", DtDetalle.SUM("Descuento").ToString.FormatoNumero(2)))
' params.Add(New ReportParameter("SubTotal", DtDetalle.SUM("Total").ToString)) ' params.Add(New ReportParameter("SubTotal", DtDetalle.SUM("Total").ToString))
' Else ' Else
' params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) ' params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, "")))
' params.Add(New ReportParameter("SubTotal", ObjOC.SubTotal.ToString)) ' params.Add(New ReportParameter("SubTotal", ObjOC.SubTotal.ToString))
' End If ' End If
' params.Add(New ReportParameter("CentroCostos", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) ' params.Add(New ReportParameter("CentroCostos", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, "")))
' params.Add(New ReportParameter("FechaSolicitud", ObjOC.Fecha.ToShortDateString)) ' params.Add(New ReportParameter("FechaSolicitud", ObjOC.Fecha.ToShortDateString))
' params.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) ' params.Add(New ReportParameter("Folio", ObjOC.Folio.ToString))
' params.Add(New ReportParameter("ProveedorNombre", ObjOC.RazonSocial)) ' params.Add(New ReportParameter("ProveedorNombre", ObjOC.RazonSocial))
' params.Add(New ReportParameter("ProveedorDireccion", ObjOC.Direccion)) ' params.Add(New ReportParameter("ProveedorDireccion", ObjOC.Direccion))
' params.Add(New ReportParameter("ProveedorLugar", ObjOC.LugarEntrega)) ' params.Add(New ReportParameter("ProveedorLugar", ObjOC.LugarEntrega))
' params.Add(New ReportParameter("ProveedorTel", ObjOC.Telefono)) ' params.Add(New ReportParameter("ProveedorTel", ObjOC.Telefono))
' params.Add(New ReportParameter("ProveedorRFC", ObjOC.RFC)) ' params.Add(New ReportParameter("ProveedorRFC", ObjOC.RFC))
' params.Add(New ReportParameter("Asunto", ObjOC.Justificacion)) ' params.Add(New ReportParameter("Asunto", ObjOC.Justificacion))
' params.Add(New ReportParameter("IVA", ObjOC.IVA.ToString)) ' params.Add(New ReportParameter("IVA", ObjOC.IVA.ToString))
' params.Add(New ReportParameter("RetIVA", ObjOC.RetIVA.ToString.FormatoNumero(2))) ' params.Add(New ReportParameter("RetIVA", ObjOC.RetIVA.ToString.FormatoNumero(2)))
' params.Add(New ReportParameter("RetISR", ObjOC.RetISR.ToString.FormatoNumero(2))) ' params.Add(New ReportParameter("RetISR", ObjOC.RetISR.ToString.FormatoNumero(2)))
' params.Add(New ReportParameter("Total", ObjOC.Total.ToString)) ' params.Add(New ReportParameter("Total", ObjOC.Total.ToString))
' params.Add(New ReportParameter("ImporteLetra", (ObjOC.Total).ToString.ToDouble.Texto2Letras(ObjOC.CveMoneda))) ' params.Add(New ReportParameter("ImporteLetra", (ObjOC.Total).ToString.ToDouble.Texto2Letras(ObjOC.CveMoneda)))
' params.Add(New ReportParameter("CorreoControl", If(drAut IsNot Nothing, drAut("Correo").ToString, ""))) ' params.Add(New ReportParameter("CorreoControl", If(drAut IsNot Nothing, drAut("Correo").ToString, "")))
' params.Add(New ReportParameter("Moneda", ObjOC.Moneda)) ' params.Add(New ReportParameter("Moneda", ObjOC.Moneda))
' params.Add(New ReportParameter("TipoCambio", TipoCambio)) ' params.Add(New ReportParameter("TipoCambio", TipoCambio))
' params.Add(New ReportParameter("NombreSolicito", dtOC(0)("UsuarioSolicito").ToString)) 'drSol("Nombre").ToString)) ' params.Add(New ReportParameter("NombreSolicito", dtOC(0)("UsuarioSolicito").ToString)) 'drSol("Nombre").ToString))
' params.Add(New ReportParameter("PuestoSolicito", PuestoSol)) 'drPuestoSol("Puesto").ToString ' params.Add(New ReportParameter("PuestoSolicito", PuestoSol)) 'drPuestoSol("Puesto").ToString
' params.Add(New ReportParameter("NombreAutorizo", nombreautorizo)) ' params.Add(New ReportParameter("NombreAutorizo", nombreautorizo))
' params.Add(New ReportParameter("PuestoAutorizo", PuestoAut)) 'drPuestoAut("Puesto").ToString ' params.Add(New ReportParameter("PuestoAutorizo", PuestoAut)) 'drPuestoAut("Puesto").ToString
' params.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición"))) ' params.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición")))
' params.Add(New ReportParameter("Estatus", ObjOC.Estatus)) ' params.Add(New ReportParameter("Estatus", ObjOC.Estatus))
' params.Add(New ReportParameter("Descripcion", ObjOC.Descripcion)) ' params.Add(New ReportParameter("Descripcion", ObjOC.Descripcion))
' params.Add(New ReportParameter("FechaEstimadaEntrega", ObjOC.FechaEstimadaEntrega.ToShortDateString)) ' params.Add(New ReportParameter("FechaEstimadaEntrega", ObjOC.FechaEstimadaEntrega.ToShortDateString))
' 'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString)) ' 'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString))
' Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", ObjClsPaginas.UsuarioActual.Empresa.Ruta, CveUsuarioSol)) ' Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", ObjClsPaginas.UsuarioActual.Empresa.Ruta, CveUsuarioSol))
' params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, New Uri(ObjClsPaginas.Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", ObjClsPaginas.UsuarioActual.CveEmpresa, CveUsuarioSol))).AbsoluteUri, ""))) ' params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, New Uri(ObjClsPaginas.Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", ObjClsPaginas.UsuarioActual.CveEmpresa, CveUsuarioSol))).AbsoluteUri, "")))
' Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", ObjClsPaginas.UsuarioActual.Empresa.Ruta, CveUsuarioAut)) ' Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", ObjClsPaginas.UsuarioActual.Empresa.Ruta, CveUsuarioAut))
' params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, New Uri(ObjClsPaginas.Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", ObjClsPaginas.UsuarioActual.CveEmpresa, CveUsuarioAut))).AbsoluteUri, ""))) ' params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, New Uri(ObjClsPaginas.Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", ObjClsPaginas.UsuarioActual.CveEmpresa, CveUsuarioAut))).AbsoluteUri, "")))
' Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\OC.rdlc", ObjClsPaginas.UsuarioActual.Empresa.Ruta)) ' Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\OC.rdlc", ObjClsPaginas.UsuarioActual.Empresa.Ruta))
' If Archivo.Exists Then ' If Archivo.Exists Then
' bytes = ObjClsPaginas.StreamPDF(String.Format("{0}Formatos\OC.rdlc", ObjClsPaginas.UsuarioActual.Empresa.Ruta), DtDetalle, params, "OrdenCompra", RDSName:="DsOC", MR:=MR) ' bytes = ObjClsPaginas.StreamPDF(String.Format("{0}Formatos\OC.rdlc", ObjClsPaginas.UsuarioActual.Empresa.Ruta), DtDetalle, params, "OrdenCompra", RDSName:="DsOC", MR:=MR)
' Else ' Else
' params.Add(New ReportParameter("Empresa", ObjClsPaginas.UsuarioActual.Empresa.Empresa)) ' params.Add(New ReportParameter("Empresa", ObjClsPaginas.UsuarioActual.Empresa.Empresa))
' bytes = ObjClsPaginas.StreamPDF("Empresas\Grales\Formatos\OC.rdlc", DtDetalle, params, "OrdenCompra", RDSName:="DsOC", MR:=MR) ' bytes = ObjClsPaginas.StreamPDF("Empresas\Grales\Formatos\OC.rdlc", DtDetalle, params, "OrdenCompra", RDSName:="DsOC", MR:=MR)
' End If ' End If
' If ConBitacora Then ' If ConBitacora Then
' Dim dttemp As New DataTable ' Dim dttemp As New DataTable
' Dim ObjEventoBitacora As New ClsOIEventos() ' Dim ObjEventoBitacora As New ClsOIEventos()
' If ObjEventoBitacora.GetAgendaBitacora(ObjClsPaginas.UsuarioActual.CveUsuario, ObjClsPaginas.UsuarioActual.CveEmpresa, CveOC:=tCveOrdenCompra) Then ' If ObjEventoBitacora.GetAgendaBitacora(ObjClsPaginas.UsuarioActual.CveUsuario, ObjClsPaginas.UsuarioActual.CveEmpresa, CveOC:=tCveOrdenCompra) Then
' dttemp = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") ' dttemp = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2")
' End If ' End If
' ObjEventoBitacora.Dispose() ' ObjEventoBitacora.Dispose()
' If Not IsNothing(dttemp) AndAlso dttemp.Rows.Count > 0 Then ' If Not IsNothing(dttemp) AndAlso dttemp.Rows.Count > 0 Then
' Dim paramsest As New List(Of ReportParameter) ' Dim paramsest As New List(Of ReportParameter)
' paramsest.Add(New ReportParameter("Empresa", ObjClsPaginas.UsuarioActual.Empresa.Empresa)) ' paramsest.Add(New ReportParameter("Empresa", ObjClsPaginas.UsuarioActual.Empresa.Empresa))
' paramsest.Add(New ReportParameter("Titulo", "Bitácora de órdenes de compra")) ' paramsest.Add(New ReportParameter("Titulo", "Bitácora de órdenes de compra"))
' paramsest.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) ' paramsest.Add(New ReportParameter("Folio", ObjOC.Folio.ToString))
' paramsest.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición"))) ' paramsest.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición")))
' Dim bytes2 As Byte() ' Dim bytes2 As Byte()
' bytes2 = ObjClsPaginas.StreamPDF("Empresas\Grales\Formatos\Bitacora.rdlc", dttemp, paramsest, "OrdenCompra", MR:=MR) ' bytes2 = ObjClsPaginas.StreamPDF("Empresas\Grales\Formatos\Bitacora.rdlc", dttemp, paramsest, "OrdenCompra", MR:=MR)
' Using ms As New MemoryStream() ' Using ms As New MemoryStream()
' Using document As New iTextSharp.text.Document() ' Using document As New iTextSharp.text.Document()
' Using copy As New PdfCopy(document, ms) ' Using copy As New PdfCopy(document, ms)
' document.Open() ' document.Open()
' Dim reader As New PdfReader(bytes) ' Dim reader As New PdfReader(bytes)
' ' loop over the pages in that document ' ' loop over the pages in that document
' Dim n As Integer = reader.NumberOfPages ' Dim n As Integer = reader.NumberOfPages
' Dim page As Integer = 0 ' Dim page As Integer = 0
' While page < n ' While page < n
' page = page + 1 ' page = page + 1
' copy.AddPage(copy.GetImportedPage(reader, page)) ' copy.AddPage(copy.GetImportedPage(reader, page))
' End While ' End While
' reader = New PdfReader(bytes2) ' reader = New PdfReader(bytes2)
' ' loop over the pages in that document ' ' loop over the pages in that document
' n = reader.NumberOfPages ' n = reader.NumberOfPages
' page = 0 ' page = 0
' While page < n ' While page < n
' page = page + 1 ' page = page + 1
' copy.AddPage(copy.GetImportedPage(reader, page)) ' copy.AddPage(copy.GetImportedPage(reader, page))
' End While ' End While
' End Using ' End Using
' End Using ' End Using
' bytes = ms.ToArray() ' bytes = ms.ToArray()
' End Using ' End Using
' End If ' End If
' dttemp.Dispose() ' dttemp.Dispose()
' End If ' End If
' End If ' End If
' ObjOC.Dispose() ' ObjOC.Dispose()
' DtDetalle.Dispose() ' DtDetalle.Dispose()
' Catch ex As Exception ' Catch ex As Exception
' GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", tCveOrdenCompra, ex.Message)) ' GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", tCveOrdenCompra, ex.Message))
' End Try ' End Try
' Return bytes ' Return bytes
'End Function 'End Function
#End Region #End Region
Public Function IsFileLocked(path As String, Optional access As FileAccess = FileAccess.Write) As Boolean Public Function IsFileLocked(path As String, Optional access As FileAccess = FileAccess.Write) As Boolean
Try Try
@@ -2665,8 +2691,8 @@ Namespace Extensiones
Return Retorno Return Retorno
End Function End Function
#Region "Contabilidad" #Region "Contabilidad"
Public Function ObtenerCuentaDobleConta(IdCtaContable As Integer, CveEmpresa As Integer) As Integer Public Function ObtenerCuentaDobleConta(IdCtaContable As Integer, CveEmpresa As Integer) As Integer
Dim Retorno As Integer = -1 Dim Retorno As Integer = -1
@@ -2678,9 +2704,9 @@ Namespace Extensiones
ObjContabilidad.Dispose() ObjContabilidad.Dispose()
Return Retorno Return Retorno
End Function End Function
#End Region #End Region
#Region "GPS" #Region "GPS"
Public Function InfoWindow(Header As String, ExtraBody As String, CveDispositivo As Integer, row As DataRow, Optional PermisoComandos As Boolean = True) As String Public Function InfoWindow(Header As String, ExtraBody As String, CveDispositivo As Integer, row As DataRow, Optional PermisoComandos As Boolean = True) As String
Dim SBuilder As New StringBuilder Dim SBuilder As New StringBuilder
@@ -2794,8 +2820,8 @@ Namespace Extensiones
End If End If
Next Next
Return Str.ToString Return Str.ToString
End Function End Function
#End Region #End Region
Private Function GeneraCadenaDinamica(Optional Longitud As Integer = 8) As String Private Function GeneraCadenaDinamica(Optional Longitud As Integer = 8) As String
@@ -2823,9 +2849,9 @@ Namespace Extensiones
Return Array.IndexOf(Valores, Valor) >= 0 Return Array.IndexOf(Valores, Valor) >= 0
End Function End Function
#Region "selected" #Region "selected"
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>
Public Sub SelectedValueExist(Obj As DropDownList, Valor As Object) Public Sub SelectedValueExist(Obj As DropDownList, Valor As Object)
@@ -2931,7 +2957,7 @@ Namespace Extensiones
End If End If
Next Next
Return retorno.ToString() Return retorno.ToString()
End Function End Function
#End Region #End Region
Public Enum TipoContaReferencia As Integer Public Enum TipoContaReferencia As Integer
Compra = 1 Compra = 1
@@ -3147,9 +3173,9 @@ Namespace Extensiones
Return fecha >= FechaI AndAlso fecha <= FechaF Return fecha >= FechaI AndAlso fecha <= FechaF
End Function End Function
End Module End Module
#End Region #End Region
#Region "C L A S E S" #Region "C L A S E S"
Public Class Archivo Public Class Archivo
Public Sub New() Public Sub New()
@@ -3163,7 +3189,7 @@ Namespace Extensiones
Public Property descripcion As String Public Property descripcion As String
Public ReadOnly Property Extencion As String Public ReadOnly Property Extencion As String
Get Get
Return IO.Path.GetExtension(String.Format("{0}{1}{2}", AppDomain.CurrentDomain.BaseDirectory, patch, filename)).Replace(".", "") Return IO.Path.GetExtension(String.Format("{0}{1}{2}", If(patch.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), patch, filename)).Replace(".", "")
End Get End Get
End Property End Property
Public ReadOnly Property filenameO As String Public ReadOnly Property filenameO As String
@@ -3173,7 +3199,7 @@ Namespace Extensiones
End Property End Property
Public ReadOnly Property FileUrl As String Public ReadOnly Property FileUrl As String
Get Get
Return String.Format("{0}{1}{2}", AppDomain.CurrentDomain.BaseDirectory, patch, filename) Return String.Format("{0}{1}{2}", If(patch.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), patch, filename)
End Get End Get
End Property End Property
End Class End Class

View File

@@ -291,7 +291,7 @@ Public Class wsSIG
Fecha = ArrCadena(6).ToString.ToDate Fecha = ArrCadena(6).ToString.ToDate
Fecha.ToShortDateString().GuardaLog() Fecha.ToShortDateString().GuardaLog()
If Fecha > Now.AddSeconds(TiempoValido) Then If Fecha > Now.AddSeconds(TiempoValido) Then
Dim Dir As String = String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, pCveEmpresa) Dim Dir As String = String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, pCveEmpresa)
Dim Ruta As String = "" Dim Ruta As String = ""
Dim RutaDB3 As String = "" Dim RutaDB3 As String = ""
Dim RutaThumb As String = "" Dim RutaThumb As String = ""

View File

@@ -34,7 +34,7 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
Dim ListaDS = New List(Of ReportDataSource) Dim ListaDS = New List(Of ReportDataSource)
Dim Parametros As New List(Of ReportParameter) Dim Parametros As New List(Of ReportParameter)
Dim Formato = context.Server.MapPath("/") + "Empresas/1/Report.rdlc" Dim Formato = context.ModExtensiones.DirectorioBaseEmpresas + "Empresas/1/Report.rdlc"
Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa)) Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa))
Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC)) Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC))

View File

@@ -56,7 +56,7 @@ Public Class SIGCRM : Implements IHttpHandler, IRequiresSessionState
Dim Usuario As Usuario = UsuarioActual(context) Dim Usuario As Usuario = UsuarioActual(context)
If Not IsNothing(Usuario) Then If Not IsNothing(Usuario) Then
Dim Url = String.Format("{0}\Empresas\{1}\Acercamientos\{2}\Imagenes\{3}", AppDomain.CurrentDomain.BaseDirectory, Usuario.CveEmpresa, CveAcercamiento, Archivo) Dim Url = String.Format("{0}\Empresas\{1}\Acercamientos\{2}\Imagenes\{3}", ModExtensiones.DirectorioBaseEmpresas, Usuario.CveEmpresa, CveAcercamiento, Archivo)
If File.Exists(Url) Then If File.Exists(Url) Then
context.Response.ContentType = String.Format("image/{0}", Extension) context.Response.ContentType = String.Format("image/{0}", Extension)

View File

@@ -60,7 +60,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState
Dim Usuario = ValidaUsuarioSistema(CveEmpresa) Dim Usuario = ValidaUsuarioSistema(CveEmpresa)
Dim FechaI, FechaF As DateTime Dim FechaI, FechaF As DateTime
'EnviarCorreoFactura(New Modelos.Factura(Usuario, 844966, 1, context.Server.MapPath("/")), Usuario) 'EnviarCorreoFactura(New Modelos.Factura(Usuario, 844966, 1, context.ModExtensiones.DirectorioBaseEmpresas), Usuario)
If String.IsNullOrEmpty(pFechaI) AndAlso String.IsNullOrEmpty(pFechaF) Then If String.IsNullOrEmpty(pFechaI) AndAlso String.IsNullOrEmpty(pFechaF) Then
Dim FechaReferencia = Now Dim FechaReferencia = Now
@@ -904,7 +904,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState
' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10) ' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10)
strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString) strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString)
Try Try
ArchivoW = New StreamWriter(String.Format("{0}\LogFacturacion.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) ArchivoW = New StreamWriter(String.Format("{0}\LogFacturacion.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8)
Catch ex As UnauthorizedAccessException Catch ex As UnauthorizedAccessException
'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError) 'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError)
Exit Sub Exit Sub

View File

@@ -1,13 +1,13 @@
<%@ WebHandler Language="VB" Class="SIGGPS" %> <%@ WebHandler Language="VB" Class="SIGGPS" %>
'Option Explicit On 'Option Explicit On
'Option Strict On 'Option Strict On
Imports System Imports System
Imports System.Web Imports System.Web
Imports System.Data Imports System.Data
Imports Newtonsoft.Json.Linq Imports Newtonsoft.Json.Linq
Imports Extensiones Imports Extensiones
Imports System.IO Imports System.IO
Imports Microsoft.AspNet.SignalR Imports Microsoft.AspNet.SignalR
Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
@@ -17,10 +17,10 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
If context.Request("metodo") IsNot Nothing Then If context.Request("metodo") IsNot Nothing Then
Select Case context.Request("metodo") Select Case context.Request("metodo")
Case "getimginstalacion" Case "getimginstalacion"
GetImgInstalacion(context) GetImgInstalacion(context)
Case "EjecutarNotificaciones" Case "EjecutarNotificaciones"
EjecutarNotificaciones(context) EjecutarNotificaciones(context)
Case "EjecutaTrayectos" Case "EjecutaTrayectos"
EnviarCorreoTrayectos(context, context.Request("CveTrayecto").ToString().ToEntero()) EnviarCorreoTrayectos(context, context.Request("CveTrayecto").ToString().ToEntero())
End Select End Select
ElseIf context.Request.InputStream IsNot Nothing Then ElseIf context.Request.InputStream IsNot Nothing Then
@@ -69,19 +69,19 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
Return URLParametros Return URLParametros
End Function End Function
Private Sub EjecutarNotificaciones(ByVal context As HttpContext) Private Sub EjecutarNotificaciones(ByVal context As HttpContext)
Dim Retorno As String = "[]" Dim Retorno As String = "[]"
'Dim contextc = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext(Of MyGPSHub)() 'Dim contextc = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext(Of MyGPSHub)()
'SendNotificacionGPS(contextc, 5, 1727, "Encabezado", "Mensaje", 2, "{""timeOut"":15000, ""extendedTimeOut"":16000}", "142608__autistic-lucario__error.wav", 0, SQLToGmapsJArray("POINT (-99.211688 19.717715)", "POINT").ToString()) 'SendNotificacionGPS(contextc, 5, 1727, "Encabezado", "Mensaje", 2, "{""timeOut"":15000, ""extendedTimeOut"":16000}", "142608__autistic-lucario__error.wav", 0, SQLToGmapsJArray("POINT (-99.211688 19.717715)", "POINT").ToString())
Using ObjGPS As New ClsSisNotificaciones Using ObjGPS As New ClsSisNotificaciones
ObjGPS.ObtenerNotificaciones() ObjGPS.ObtenerNotificaciones()
End Using End Using
context.Response.Write(Retorno) context.Response.Write(Retorno)
End Sub End Sub
Public Sub SendNotificacionGPS(context As Microsoft.AspNet.SignalR.IHubContext, CveNotificacionBitacora As Integer, CveUsuario As Integer, Encabezado As String, Mensaje As String, TipoNotificacion As Integer, Pie As String, Sonido As String, Persistencia As Boolean, Coords As String) Public Sub SendNotificacionGPS(context As Microsoft.AspNet.SignalR.IHubContext, CveNotificacionBitacora As Integer, CveUsuario As Integer, Encabezado As String, Mensaje As String, TipoNotificacion As Integer, Pie As String, Sonido As String, Persistencia As Boolean, Coords As String)
context.Clients.All.addLatestNotification(Mensaje, CveUsuario, Encabezado, TipoNotificacion, Pie, Sonido, CveNotificacionBitacora, Persistencia, Coords) context.Clients.All.addLatestNotification(Mensaje, CveUsuario, Encabezado, TipoNotificacion, Pie, Sonido, CveNotificacionBitacora, Persistencia, Coords)
End Sub End Sub
Private Sub GetImgInstalacion(ByVal context As HttpContext) Private Sub GetImgInstalacion(ByVal context As HttpContext)
Dim params As String = Decripta(context.Request("r").ToString) Dim params As String = Decripta(context.Request("r").ToString)
Dim Parametros = Me.Parametros(params) Dim Parametros = Me.Parametros(params)
@@ -91,7 +91,7 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
Dim Usuario As Usuario = UsuarioActual(context) Dim Usuario As Usuario = UsuarioActual(context)
If Not IsNothing(Usuario) Then If Not IsNothing(Usuario) Then
Dim Url = String.Format("{0}\Empresas\{1}\Dispositivos\{2}\Imagenes\{3}", AppDomain.CurrentDomain.BaseDirectory, Usuario.CveEmpresa, CveDispositivo, Archivo) Dim Url = String.Format("{0}\Empresas\{1}\Dispositivos\{2}\Imagenes\{3}", ModExtensiones.DirectorioBaseEmpresas, Usuario.CveEmpresa, CveDispositivo, Archivo)
If File.Exists(Url) Then If File.Exists(Url) Then
context.Response.ContentType = String.Format("image/{0}", Extension) context.Response.ContentType = String.Format("image/{0}", Extension)
@@ -232,158 +232,158 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
) )
Return Json Return Json
End Function End Function
#Region "N O T F I C A C I O N - T R A Y E C T O S" #Region "N O T F I C A C I O N - T R A Y E C T O S"
Private Sub EnviarCorreoTrayectos(ByVal context As HttpContext, CveTrayecto As Integer) Private Sub EnviarCorreoTrayectos(ByVal context As HttpContext, CveTrayecto As Integer)
Dim Retorno As JObject = New JObject(New JProperty("EnvioCorreo", False), New JProperty("Mensaje", "")) Dim Retorno As JObject = New JObject(New JProperty("EnvioCorreo", False), New JProperty("Mensaje", ""))
Try Try
Dim DtInfoTrayecto As DataTable = Nothing Dim DtInfoTrayecto As DataTable = Nothing
Dim DtTrayecto As DataTable = Nothing Dim DtTrayecto As DataTable = Nothing
Using ObjGPS As New ClsGPS Using ObjGPS As New ClsGPS
If ObjGPS.GetTrayectos(CveTrayecto, -1, -1) AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then If ObjGPS.GetTrayectos(CveTrayecto, -1, -1) AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then
DtTrayecto = ObjGPS.DtResultados.Copy() DtTrayecto = ObjGPS.DtResultados.Copy()
End If End If
If ObjGPS.GetTrayectosDatos(CveTrayecto) Then If ObjGPS.GetTrayectosDatos(CveTrayecto) Then
DtInfoTrayecto = ObjGPS.DtSetResultados.Tables(0).Copy() DtInfoTrayecto = ObjGPS.DtSetResultados.Tables(0).Copy()
End If End If
End Using End Using
If DtTrayecto IsNot Nothing AndAlso DtInfoTrayecto IsNot Nothing AndAlso DtInfoTrayecto.Rows.Count > 0 Then If DtTrayecto IsNot Nothing AndAlso DtInfoTrayecto IsNot Nothing AndAlso DtInfoTrayecto.Rows.Count > 0 Then
Dim RowTrayecto As DataRow = DtTrayecto.Rows(0) Dim RowTrayecto As DataRow = DtTrayecto.Rows(0)
Dim RowInfo As DataRow = DtInfoTrayecto.Rows(0) Dim RowInfo As DataRow = DtInfoTrayecto.Rows(0)
Dim EnviarLiga As Boolean = CBool(RowTrayecto("EnviarLiga").ToString()) Dim EnviarLiga As Boolean = CBool(RowTrayecto("EnviarLiga").ToString())
Dim Asunto As String = "Estatus de Trayecto" Dim Asunto As String = "Estatus de Trayecto"
Dim Cuerpo As String = GeneraCorreo(CveTrayecto, EnviarLiga, RowInfo) Dim Cuerpo As String = GeneraCorreo(CveTrayecto, EnviarLiga, RowInfo)
Dim Correos As String = RowTrayecto("CorreosNotificacion").ToString() Dim Correos As String = RowTrayecto("CorreosNotificacion").ToString()
Dim ObjMail As New ClsSisMail Dim ObjMail As New ClsSisMail
If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, Correos, Asunto, Cuerpo) Then If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, Correos, Asunto, Cuerpo) Then
Retorno("EnvioCorreo") = True Retorno("EnvioCorreo") = True
Retorno("Mensaje") = "El correo fue enviado correctamente" Retorno("Mensaje") = "El correo fue enviado correctamente"
Else Else
Retorno("EnvioCorreo") = False Retorno("EnvioCorreo") = False
Retorno("Mensaje") = "Ocurrió un error al enviar el correo" Retorno("Mensaje") = "Ocurrió un error al enviar el correo"
End If End If
End If End If
Catch ex As Exception Catch ex As Exception
OnError("Ocurrió un error al enviar el correo", ex) OnError("Ocurrió un error al enviar el correo", ex)
End Try End Try
context.Response.Write(Retorno.ToString()) context.Response.Write(Retorno.ToString())
End Sub End Sub
Protected Function GeneraCorreo(CveTrayecto As Integer, EnviarLiga As Boolean, Row As DataRow) As String Protected Function GeneraCorreo(CveTrayecto As Integer, EnviarLiga As Boolean, Row As DataRow) As String
Dim strBody As New StringBuilder Dim strBody As New StringBuilder
Try Try
strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ") strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ")
strBody.Append("<head> ") strBody.Append("<head> ")
strBody.Append(" <style type=""text/css""> ") strBody.Append(" <style type=""text/css""> ")
strBody.Append(" body ") strBody.Append(" body ")
strBody.Append(" { ") strBody.Append(" { ")
strBody.Append(" margin:0px; ") strBody.Append(" margin:0px; ")
strBody.Append(" padding:0px 0px 0px 0px; ") strBody.Append(" padding:0px 0px 0px 0px; ")
strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ") strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ")
strBody.Append(" font-size: 10px; ") strBody.Append(" font-size: 10px; ")
strBody.Append(" background-color:#F0F0F0; ") strBody.Append(" background-color:#F0F0F0; ")
strBody.Append(" } ") strBody.Append(" } ")
strBody.Append(" a.Texto ") strBody.Append(" a.Texto ")
strBody.Append(" { ") strBody.Append(" { ")
strBody.Append(" font-size:11px; ") strBody.Append(" font-size:11px; ")
strBody.Append(" background-color:#F7F6F3; ") strBody.Append(" background-color:#F7F6F3; ")
strBody.Append(" text-decoration:none; ") strBody.Append(" text-decoration:none; ")
strBody.Append(" font-weight:bold; ") strBody.Append(" font-weight:bold; ")
strBody.Append(" } ") strBody.Append(" } ")
strBody.Append(" .Texto ") strBody.Append(" .Texto ")
strBody.Append(" { ") strBody.Append(" { ")
strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:center; vertical-align:middle; height:20px;") strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:center; vertical-align:middle; height:20px;")
strBody.Append(" } ") strBody.Append(" } ")
strBody.Append(" .TextoAlterno ") strBody.Append(" .TextoAlterno ")
strBody.Append(" { ") strBody.Append(" { ")
strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:center; ") strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:center; ")
strBody.Append(" vertical-align:middle; height:20px;") strBody.Append(" vertical-align:middle; height:20px;")
strBody.Append(" } ") strBody.Append(" } ")
strBody.Append(" .BarraIdentidad ") strBody.Append(" .BarraIdentidad ")
strBody.Append(" { ") strBody.Append(" { ")
strBody.Append(" color:#FFFFFF; ") strBody.Append(" color:#FFFFFF; ")
strBody.Append(" background:#F0F0F0; ") strBody.Append(" background:#F0F0F0; ")
strBody.Append(" font-weight:bold; ") strBody.Append(" font-weight:bold; ")
strBody.Append(" font-size:19px; ") strBody.Append(" font-size:19px; ")
strBody.Append(" font-style:oblique; ") strBody.Append(" font-style:oblique; ")
strBody.Append(" } ") strBody.Append(" } ")
strBody.Append(" .Titulos ") strBody.Append(" .Titulos ")
strBody.Append(" { ") strBody.Append(" { ")
strBody.Append(" background-color: Gray;") strBody.Append(" background-color: Gray;")
strBody.Append(" color:White; ") strBody.Append(" color:White; ")
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ") strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ") strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
strBody.Append(" text-decoration:none; ") strBody.Append(" text-decoration:none; ")
strBody.Append(" } ") strBody.Append(" } ")
strBody.Append(" .Verde {color: #00CC00;} ") strBody.Append(" .Verde {color: #00CC00;} ")
strBody.Append(" .Negro {color: #000000;} ") strBody.Append(" .Negro {color: #000000;} ")
strBody.Append(" .Rojo {color: #FF0000;} ") strBody.Append(" .Rojo {color: #FF0000;} ")
strBody.Append(" </style> ") strBody.Append(" </style> ")
strBody.Append("</head> ") strBody.Append("</head> ")
strBody.Append("<body> ") strBody.Append("<body> ")
strBody.Append(" <h5> ") strBody.Append(" <h5> ")
strBody.Append(" ") strBody.Append(" ")
strBody.Append(" </h5> ") strBody.Append(" </h5> ")
strBody.Append(" <div id=""C_divOC"" > ") strBody.Append(" <div id=""C_divOC"" > ")
strBody.Append("<div><fieldset><legend><strong> Datos del Trayecto</strong></legend>") strBody.Append("<div><fieldset><legend><strong> Datos del Trayecto</strong></legend>")
strBody.Append("<table style=""width: 726.5px;"" border=""0"" cellspacing=""0"" cellpadding=""0"">") strBody.Append("<table style=""width: 726.5px;"" border=""0"" cellspacing=""0"" cellpadding=""0"">")
strBody.Append("<tbody>") strBody.Append("<tbody>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Trayecto:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Trayecto:</td>")
strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("Trayecto")) strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("Trayecto"))
strBody.Append("</tr>") strBody.Append("</tr>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Vehículo:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Vehículo:</td>")
strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}strong></td>", Row("Vehiculo")) strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}strong></td>", Row("Vehiculo"))
strBody.Append("</tr>") strBody.Append("</tr>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Estatus:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Estatus:</td>")
strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("Estatus")) strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("Estatus"))
strBody.Append("</tr>") strBody.Append("</tr>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Latitud:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Latitud:</td>")
strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("LatitudActual")) strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("LatitudActual"))
strBody.Append("</tr>") strBody.Append("</tr>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Longitud:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Longitud:</td>")
strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("LongitudActual")) strBody.AppendFormat("<td style=""width: 167px;"" colspan=""3""><strong>&nbsp;{0}</strong></td>", Row("LongitudActual"))
strBody.Append("</tr>") strBody.Append("</tr>")
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Posición:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Posición:</td>")
strBody.AppendFormat("<td style=""width: 187px;"" colspan=""3""><strong>&nbsp;<a href=""https://www.google.com/maps/search/{0},{1}/\"" target=""_blank"" rel=""noopener"">Ver en google maps</a></strong></td>", Row("LatitudActual"), Row("LongitudActual")) strBody.AppendFormat("<td style=""width: 187px;"" colspan=""3""><strong>&nbsp;<a href=""https://www.google.com/maps/search/{0},{1}/\"" target=""_blank"" rel=""noopener"">Ver en google maps</a></strong></td>", Row("LatitudActual"), Row("LongitudActual"))
strBody.Append("</tr>") strBody.Append("</tr>")
If EnviarLiga Then If EnviarLiga Then
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.Append("<td style=""width: 36.5px;"">&nbsp;Rastreo:</td>") strBody.Append("<td style=""width: 36.5px;"">&nbsp;Rastreo:</td>")
strBody.AppendFormat("<td style=""width: 187px;"" colspan=""3""><strong>&nbsp;<a href=""http://gps.signalsgps.com/GPS/RastreoTrayectos.aspx?P={0}"" target=""_blank"" rel=""noopener"">Rastrear Vehículo</a></strong></td>", Encripta($"CveTrayecto={Row("CveTrayecto").ToString()}")) strBody.AppendFormat("<td style=""width: 187px;"" colspan=""3""><strong>&nbsp;<a href=""http://gps.signalsgps.com/GPS/RastreoTrayectos.aspx?P={0}"" target=""_blank"" rel=""noopener"">Rastrear Vehículo</a></strong></td>", Encripta($"CveTrayecto={Row("CveTrayecto").ToString()}"))
strBody.Append("</tr>") strBody.Append("</tr>")
End If End If
strBody.Append("<tr>") strBody.Append("<tr>")
strBody.AppendFormat("<td style=""width: 187px;"" colspan=""3""><img src=""{0}"" /></td>", Row("Liga")) strBody.AppendFormat("<td style=""width: 187px;"" colspan=""3""><img src=""{0}"" /></td>", Row("Liga"))
strBody.Append("</tr>") strBody.Append("</tr>")
strBody.Append("</tbody>") strBody.Append("</tbody>")
strBody.Append("</table>") strBody.Append("</table>")
strBody.Append("</fieldset></div>") strBody.Append("</fieldset></div>")
strBody.Append(" <h5> ") strBody.Append(" <h5> ")
strBody.Append(" ") strBody.Append(" ")
strBody.Append(" </h5> ") strBody.Append(" </h5> ")
strBody.Append(" </div> ") strBody.Append(" </div> ")
strBody.Append("</body></html>") strBody.Append("</body></html>")
Catch ex As Exception Catch ex As Exception
OnError("Ocurrio un error al general el correo.", ex) OnError("Ocurrio un error al general el correo.", ex)
End Try End Try
Return strBody.ToString() Return strBody.ToString()
End Function End Function
#End Region #End Region
End Class End Class

View File

@@ -106,7 +106,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState
Dim usuario As Usuario = UsuarioActual(context) Dim usuario As Usuario = UsuarioActual(context)
If Not IsNothing(usuario) Then If Not IsNothing(usuario) Then
Url = String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, usuario.CveEmpresa, Url) Url = String.Format("{0}Empresas\{1}\{2}", ModExtensiones.DirectorioBaseEmpresas, usuario.CveEmpresa, Url)
Dim FileInfo As FileInfo = New FileInfo(Url) Dim FileInfo As FileInfo = New FileInfo(Url)
If FileInfo.Exists Then If FileInfo.Exists Then
context.Response.ContentType = "image/png" context.Response.ContentType = "image/png"

64
Ashx/SigFiles.ashx Normal file
View File

@@ -0,0 +1,64 @@
<%@ WebHandler Language="C#" Class="SigFiles" %>
using System;
using System.Web;
using Extensiones;
public class SigFiles : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string path = "";
if (context.Request["FileUrl"] != null)
{
path = string.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, context.Request["FileUrl"]);
}
if (context.Request["P"] != null)
{
path = string.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas,ModExtensiones.Decripta( context.Request["P"]));
}
if (path != null && path.Length>0)
{
try
{
if (System.IO.File.Exists(path))
{
System.IO.FileInfo file = new System.IO.FileInfo(path);
string mimeType = "text/plain";
try
{
mimeType = MimeMapping.GetMimeMapping(path);
}
catch (Exception) { }//si truena no existe el arhivo
context.Response.Clear();
context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.AddHeader("Content-Disposition", $"attachment; filename= {Uri.EscapeDataString(file.Name)}");
context.Response.AddHeader("Content-Length", file.Length.ToString());
context.Response.ContentType = mimeType;
context.Response.Flush();
context.Response.TransmitFile(file.FullName);
}
}
catch (Exception ex)
{
this.GuardaLog(ex.ToString());
}
}
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}

View File

@@ -77,7 +77,7 @@ Partial Class Bancos_CargarConciliacionesBancarias
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs)
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargaExcel(Directorio, file.filename, Tipo) CargaExcel(Directorio, file.filename, Tipo)
Else Else

View File

@@ -216,7 +216,7 @@ Partial Class Bancos_CreditosPagoMultiple
Dim filemove As String = "" Dim filemove As String = ""
Dim Comprobante As String = "" Dim Comprobante As String = ""
For Each fileItem As Archivo In filesgral For Each fileItem As Archivo In filesgral
Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
filemove = fileItem.filename filemove = fileItem.filename
Next Next

View File

@@ -510,7 +510,7 @@ public partial class Bancos_Devoluciones : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransanccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransanccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -930,7 +930,7 @@ Partial Class Bancos_IE
If ObjIE.Comprobante <> "" Then If ObjIE.Comprobante <> "" Then
HplComprobante.Visible = True HplComprobante.Visible = True
HplComprobante.NavigateUrl = String.Format("/Empresas/{0}/IE/{1}", UsuarioActual.CveEmpresa, ObjIE.Comprobante) HplComprobante.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta($"OP=IEComprobante&Comprobante={ObjIE.Comprobante}"))
End If End If
If CveIEDeposito > 0 Then If CveIEDeposito > 0 Then
@@ -2471,7 +2471,7 @@ Partial Class Bancos_IE
If CveIE > 0 Then If CveIE > 0 Then
If DdlTipoTransaccion.SelectedValue = "1" AndAlso usuarioactual.cveempresa <> 119 Then FolioFijo = ObjIE.Folio.ToEntero 'cheque If DdlTipoTransaccion.SelectedValue = "1" AndAlso UsuarioActual.CveEmpresa <> 119 Then FolioFijo = ObjIE.Folio.ToEntero 'cheque
CvePrePoliza = ObjMov.AddPrePolizas("Bancos/IE " + If(Request("Opcion") IsNot Nothing, Request("Opcion").ToString, "") + " " + RBL.SelectedValue, CvePlantillaPoliza, TxtImporte.Text.Trim.ToDouble, TxtImporte.Text.Trim.ToDouble, tCveMoneda, TxtFechaDocumento.Text.ToDate, PagueseA, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjComp.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, Nothing, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)) CvePrePoliza = ObjMov.AddPrePolizas("Bancos/IE " + If(Request("Opcion") IsNot Nothing, Request("Opcion").ToString, "") + " " + RBL.SelectedValue, CvePlantillaPoliza, TxtImporte.Text.Trim.ToDouble, TxtImporte.Text.Trim.ToDouble, tCveMoneda, TxtFechaDocumento.Text.ToDate, PagueseA, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjComp.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, Nothing, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa))
'valida prepoliza 'valida prepoliza
@@ -2728,6 +2728,7 @@ Partial Class Bancos_IE
Dim TipoMovtoAplicar = False Dim TipoMovtoAplicar = False
For Each Dr As DataRow In ObjMov.DtResultados.FiltraParametros("CveConceptoContable IN (13,8,9,38)").Rows For Each Dr As DataRow In ObjMov.DtResultados.FiltraParametros("CveConceptoContable IN (13,8,9,38)").Rows
Dim PorcentajeImpuesto As Decimal = Dr("PorcentajeImpuesto").ToString.ToDecimal()
CveConceptoContableAplciar = Dr("CveConceptoContable").ToString.ToEntero CveConceptoContableAplciar = Dr("CveConceptoContable").ToString.ToEntero
TipoMovtoAplicar = Not CBool(Dr("TipoMovto").ToString) TipoMovtoAplicar = Not CBool(Dr("TipoMovto").ToString)
ImporteAplicar = (Dr("Importe").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL() ImporteAplicar = (Dr("Importe").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL()
@@ -2735,7 +2736,7 @@ Partial Class Bancos_IE
ImporteAplicarME = (Dr("ImporteME").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL() ImporteAplicarME = (Dr("ImporteME").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL()
IdCtaContableAplicar = Dr("IdCtaContable").ToString.ToEntero IdCtaContableAplicar = Dr("IdCtaContable").ToString.ToEntero
If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME) Then If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME, PorcentajeImpuesto:=PorcentajeImpuesto) Then
Select Case CveConceptoContableAplciar Select Case CveConceptoContableAplciar
Case 13 Case 13
CveConceptoContableAplciar = 61 CveConceptoContableAplciar = 61
@@ -2747,7 +2748,7 @@ Partial Class Bancos_IE
CveConceptoContableAplciar = 39 CveConceptoContableAplciar = 39
End Select End Select
TipoMovtoAplicar = Not TipoMovtoAplicar TipoMovtoAplicar = Not TipoMovtoAplicar
If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME) Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME, PorcentajeImpuesto:=PorcentajeImpuesto) Then
MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución" MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución"
Exit Select Exit Select
End If End If
@@ -3276,7 +3277,7 @@ Partial Class Bancos_IE
ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(1) Then ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(1) Then
Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/CHQ-{1}.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero)) Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/CHQ-{1}.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero))
If Not Archivo.Exists Then If Not Archivo.Exists Then
Archivo = New System.IO.FileInfo(String.Format("{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)) Archivo = New System.IO.FileInfo(String.Format("{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas))
End If End If
ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(6) And UsuarioActual.CveEmpresa = 72 Then ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(6) And UsuarioActual.CveEmpresa = 72 Then
Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/ComprobanteEgreso.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero)) Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/ComprobanteEgreso.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero))
@@ -4442,8 +4443,8 @@ Partial Class Bancos_IE
#Region " CARGAR - COMPROBANTE " #Region " CARGAR - COMPROBANTE "
Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs) Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs)
Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa) Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa, Session("FileUpload").ToString) Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Session("FileUpload").ToString)
If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then
Dim Extension As String = Path.GetExtension(ArchivoTemporal) Dim Extension As String = Path.GetExtension(ArchivoTemporal)

View File

@@ -1598,8 +1598,8 @@ Partial Class Bancos_IE
#Region " CARGAR - COMPROBANTE " #Region " CARGAR - COMPROBANTE "
Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs) Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs)
Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa) Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa, Session("FileUpload").ToString) Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Session("FileUpload").ToString)
If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then
Dim Extension As String = Path.GetExtension(ArchivoTemporal) Dim Extension As String = Path.GetExtension(ArchivoTemporal)

View File

@@ -571,7 +571,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)
@@ -845,7 +845,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -506,7 +506,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)
@@ -908,7 +908,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -211,25 +211,25 @@ Partial Class Bancos_PolizaCheque
End Sub End Sub
Private Sub CargaCuenta() Private Sub CargaCuenta()
DdlCuenta.Items.Clear() DdlCuenta.Items.Clear()
Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario) Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario)
If DdlTipoTransaccion.SelectedValue.ToEntero = 3 Then If DdlTipoTransaccion.SelectedValue.ToEntero = 3 Then
dt = dt.FiltraParametros("CveTipoCuenta = 7") dt = dt.FiltraParametros("CveTipoCuenta = 7")
End If End If
'cuando es layout 'cuando es layout
If DdlTipoTransaccion.SelectedValue.ToEntero = 9 Then If DdlTipoTransaccion.SelectedValue.ToEntero = 9 Then
dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1))
dt = dt.FiltraParametros("UsaLayout = 1") dt = dt.FiltraParametros("UsaLayout = 1")
End If End If
'cuando es layout Por Grupos 'cuando es layout Por Grupos
If DdlTipoTransaccion.SelectedValue.ToEntero = 17 Then If DdlTipoTransaccion.SelectedValue.ToEntero = 17 Then
dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1))
dt = dt.FiltraParametros("UsaLayoutGrupos = 1") dt = dt.FiltraParametros("UsaLayoutGrupos = 1")
End If End If
@@ -1212,9 +1212,9 @@ Partial Class Bancos_PolizaCheque
End If End If
End If End If
Return Retorno Return Retorno
End Function End Function
End Class End Class

View File

@@ -410,7 +410,7 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)
@@ -670,7 +670,7 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -134,7 +134,7 @@ Partial Class Ventas_RepRecuperacion
If DdlCuentaBancaria.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cuenta Bancaria</b>: {0}", DdlCuentaBancaria.SelectedItem.Text) If DdlCuentaBancaria.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cuenta Bancaria</b>: {0}", DdlCuentaBancaria.SelectedItem.Text)
Dim RutaPDF As String Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepRecuperacion.rdlc" RutaPDF = $"{Ruta}\Formatos\RepRecuperacion.rdlc"
If Not File.Exists(RutaPDF) Then If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas/Grales/Formatos/RepRecuperacion.rdlc" RutaPDF = "Empresas/Grales/Formatos/RepRecuperacion.rdlc"

View File

@@ -193,7 +193,7 @@ Partial Class Ventas_RepRecuperacionDetalle
If DdlProveedorSucursal.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Proveedor Sucursal</b>: {0}", DdlProveedorSucursal.SelectedItem.Text) If DdlProveedorSucursal.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Proveedor Sucursal</b>: {0}", DdlProveedorSucursal.SelectedItem.Text)
Dim RutaPDF As String Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepRecuperacionDetalle.rdlc" RutaPDF = $"{Ruta}\Formatos\RepRecuperacionDetalle.rdlc"
If Not File.Exists(RutaPDF) Then If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas/Grales/Formatos/RepRecuperacionDetalle.rdlc" RutaPDF = "Empresas/Grales/Formatos/RepRecuperacionDetalle.rdlc"

View File

@@ -141,7 +141,7 @@ Partial Class Bancos_Reportes
rv.LocalReport.DataSources.Clear() rv.LocalReport.DataSources.Clear()
rv.LocalReport.DataSources.Add(rds) rv.LocalReport.DataSources.Add(rds)
rv.LocalReport.DataSources.Add(rds2) rv.LocalReport.DataSources.Add(rds2)
rv.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory & "Bancos\Reportes\rptChequeMovimientos.rdlc" rv.LocalReport.ReportPath = ModExtensiones.DirectorioBaseEmpresas & "Bancos\Reportes\rptChequeMovimientos.rdlc"
rv.LocalReport.Refresh() rv.LocalReport.Refresh()
Dim paramList As New List(Of ReportParameter) Dim paramList As New List(Of ReportParameter)

View File

@@ -64,7 +64,7 @@ Partial Class Bancos_Reportes
rv.LocalReport.DataSources.Clear() rv.LocalReport.DataSources.Clear()
rv.LocalReport.DataSources.Add(rds) rv.LocalReport.DataSources.Add(rds)
rv.LocalReport.DataSources.Add(rds2) rv.LocalReport.DataSources.Add(rds2)
rv.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory & "Bancos\Reportes\rptChequeMovimientos.rdlc" rv.LocalReport.ReportPath = ModExtensiones.DirectorioBaseEmpresas & "Bancos\Reportes\rptChequeMovimientos.rdlc"
rv.LocalReport.Refresh() rv.LocalReport.Refresh()
Dim paramList As New List(Of ReportParameter) Dim paramList As New List(Of ReportParameter)

Binary file not shown.

Binary file not shown.

View File

@@ -1407,7 +1407,7 @@ public partial class CRM_Acercamiento : ClsPaginas
if ((CveArchivo > 0)) if ((CveArchivo > 0))
{ {
string NombreNuevo = string.Format("{0}{1}", CveArchivo, FileExtension); string NombreNuevo = string.Format("{0}{1}", CveArchivo, FileExtension);
string DirectorioNuevo = string.Format("{0}\\Empresas\\{1}\\Acercamientos\\{2}\\Imagenes\\", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, CveAcercamiento); string DirectorioNuevo = string.Format("{0}\\Empresas\\{1}\\Acercamientos\\{2}\\Imagenes\\", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, CveAcercamiento);
if (!Directory.Exists(DirectorioNuevo)) if (!Directory.Exists(DirectorioNuevo))
{ {
Directory.CreateDirectory(DirectorioNuevo); Directory.CreateDirectory(DirectorioNuevo);

View File

@@ -28,6 +28,11 @@
<div class="titlefiltros caption"> <div class="titlefiltros caption">
<div class="row" style="margin-left: 10px;"> <div class="row" style="margin-left: 10px;">
<label class="col-md-1" id="Label1" runat="server" style="width: 120px; margin-top: 5px;">Tipo de proceso:</label>
<div class="col-md-2" id="Div1" runat="server">
<asp:DropDownList ID="DdlTipoProceso" runat="server" Width="100%" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me" OnSelectedIndexChanged="DdlTipoProcesos_Change" AutoPostBack="true">
</asp:DropDownList>
</div>
<label class="col-md-1" id="LblDdlMedioCaptacion" runat="server" style="width: 120px; margin-top: 5px;">Medio Captación:</label> <label class="col-md-1" id="LblDdlMedioCaptacion" runat="server" style="width: 120px; margin-top: 5px;">Medio Captación:</label>
<div class="col-md-2" id="DivDdlMedioCaptacion" runat="server"> <div class="col-md-2" id="DivDdlMedioCaptacion" runat="server">
<asp:DropDownList ID="DdlMedioCaptacion" runat="server" Width="100%" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me"> <asp:DropDownList ID="DdlMedioCaptacion" runat="server" Width="100%" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me">

View File

@@ -29,6 +29,7 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
CargaTipoProcesos();
CargaMediosCaptacion(); CargaMediosCaptacion();
CargaDatos(); CargaDatos();
} }
@@ -60,12 +61,22 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1)) if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{ {
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados; DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue));
DdlMedioCaptacion.DataBind(); DdlMedioCaptacion.DataBind();
DdlMedioCaptacion.Items.Insert(0, new ListItem("Todos ", "-1"));
} }
ObjCRM.Dispose(); ObjCRM.Dispose();
} }
protected void CargaTipoProcesos()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
{
DdlTipoProceso.DataSource = ObjCRM.DtResultados;
}
DdlTipoProceso.DataBind();
}
#endregion #endregion
#region "ACCIONES - GRIEDVIEW" #region "ACCIONES - GRIEDVIEW"
@@ -106,4 +117,11 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
} }
} }
#endregion #endregion
protected void DdlTipoProcesos_Change(Object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
CargaMediosCaptacion();
UPFiltros.Update();
}
} }

View File

@@ -23,8 +23,8 @@
</li> </li>
</ContentTemplate> </ContentTemplate>
<Triggers> <Triggers>
<asp:PostBackTrigger ControlID="LnkImprimir"/> <asp:PostBackTrigger ControlID="LnkImprimir" />
<asp:PostBackTrigger ControlID="LnkImprimirExcel"/> <asp:PostBackTrigger ControlID="LnkImprimirExcel" />
</Triggers> </Triggers>
</asp:UpdatePanel> </asp:UpdatePanel>
</asp:Content> </asp:Content>
@@ -130,22 +130,24 @@
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoProceso" Width="100%" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlTipoProceso" Width="100%" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" CssClass="form-control input-sm select2me" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="True"></asp:DropDownList>
<label for="<%=DdlTipoProceso.ClientID.ToString()%>">Tipo de Proceso:</label> <label for="<%=DdlTipoProceso.ClientID.ToString()%>">Tipo de Proceso:</label>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvTipoProceso" Display="None" ValidationGroup="VGGuardar" runat="server" ControlToValidate="DdlTipoProceso" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Proceso''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceTipoProceso" runat="server" HighlightCssClass="vco" TargetControlID="RfvTipoProceso" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoEtapa" Width="100%" runat="server" CssClass="form-control input-sm select2me"> <asp:DropDownList ID="DdlTipoEtapa" Width="100%" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveTipoEtapa" DataTextField="TipoEtapa">
<asp:ListItem Value="1" Text="Inicial"></asp:ListItem> <%--<asp:ListItem Value="1" Text="Inicial"></asp:ListItem>
<asp:ListItem Value="2" Text="Proceso"></asp:ListItem> <asp:ListItem Value="2" Text="Proceso"></asp:ListItem>
<asp:ListItem Value="3" Text="Terminado"></asp:ListItem> <asp:ListItem Value="3" Text="Terminado"></asp:ListItem>
<asp:ListItem Value="4" Text="Cancelado"></asp:ListItem> <asp:ListItem Value="4" Text="Cancelado"></asp:ListItem>--%>
</asp:DropDownList> </asp:DropDownList>
<label for="<%=DdlTipoEtapa.ClientID.ToString()%>">Tipo de Etapa:</label> <label for="<%=DdlTipoEtapa.ClientID.ToString()%>">Tipo de Etapa:</label>
</div> </div>
<div runat="server" id="DivOrden" class="form-group col-md-6 form-md-line-input input-iconright"> <div runat="server" id="DivOrden" class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlOrden" Width="100%" runat="server" DataTextField="Orden" DataValueField="Orden" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlOrden" Width="100%" runat="server" DataTextField="Orden" DataValueField="Orden" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%=DdlOrden.ClientID.ToString()%>">Orden:</label> <label for="<%=DdlOrden.ClientID.ToString()%>">Orden:</label>
</div> </div>

View File

@@ -87,7 +87,18 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
ViewState["CveTipoEtapaSeleccionada"] = value; ViewState["CveTipoEtapaSeleccionada"] = value;
} }
} }
private DataTable DTEtapas
{
get
{
return (DataTable)ViewState["DTEtapas"];
}
set
{
ViewState["DTEtapas"] = value;
}
}
#endregion #endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
@@ -96,6 +107,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
{ {
CveTipoProcesoSeleccionado = -1; CveTipoProcesoSeleccionado = -1;
CveTipoEtapaSeleccionada = -1; CveTipoEtapaSeleccionada = -1;
cargaEtapas();
CargaTiposProceso(); CargaTiposProceso();
CargaDatos(-1); CargaDatos(-1);
} }
@@ -164,6 +176,23 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
UPFiltros.Update(); UPFiltros.Update();
} }
protected void cargaEtapas()
{
DataTable Etapas = new DataTable();
Etapas.Columns.Add("CveTipoEtapa",typeof(int));
Etapas.Columns.Add("TipoEtapa", typeof(string));
Etapas.Rows.Add(1,"Inicial");
Etapas.Rows.Add(2, "Proceso");
Etapas.Rows.Add(3, "Terminado");
Etapas.Rows.Add(4, "Cancelado");
DTEtapas = Etapas;
DdlTipoEtapa.DataSource = Etapas;
DdlTipoEtapa.DataBind();
}
#endregion #endregion
#region "ACCIONES" #region "ACCIONES"
@@ -172,6 +201,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
EsEditar = 0; EsEditar = 0;
limpiarCamposModal(); limpiarCamposModal();
DivOrden.Visible = false; DivOrden.Visible = false;
bloquearEtapasAnteriores(-1);
DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado); DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado);
DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada); DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada);
@@ -189,6 +219,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
bloquearEtapasAnteriores(GvRow.DataKey("CveTipoEtapa").ToEntero());
CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero(); CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero();
DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso")); DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso"));
DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa")); DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa"));
@@ -206,6 +237,28 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
this.RegistraScript("$('#DivModal').modal();"); this.RegistraScript("$('#DivModal').modal();");
} }
private void bloquearEtapasAnteriores(int CveTipoEtapa)
{
DataTable EtapasAux = DTEtapas.Copy();
int indice = 0;
for(int i = 1;i < CveTipoEtapa; i++)
{
DataRow TipoEtapaRow = EtapasAux.Rows[indice];
int CveTipoEtapaAux = TipoEtapaRow["CveTipoEtapa"].ToEntero();
if(CveTipoEtapaAux == 2)
{
indice++;
}else
{
EtapasAux.Rows.Remove(TipoEtapaRow);
}
}
EtapasAux.AcceptChanges();
DdlTipoEtapa.DataSource = EtapasAux;
DdlTipoEtapa.DataBind();
}
private bool validarInicialTerminadoCancelado(int CveTipoEtapa) private bool validarInicialTerminadoCancelado(int CveTipoEtapa)
{ {
if (CveTipoEtapa == 2) if (CveTipoEtapa == 2)
@@ -230,10 +283,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
int Orden = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveEstatus = 1", CveTipoProceso)).Rows.Count + 1; int Orden = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveEstatus = 1", CveTipoProceso)).Rows.Count + 1;
Boolean Estatus = ChkEstatus.Checked; Boolean Estatus = ChkEstatus.Checked;
int CveUsuarioIng = UsuarioActual.CveUsuario; int CveUsuarioIng = UsuarioActual.CveUsuario;
if (validarInicialTerminadoCancelado(CveTipoEtapa))
{
if (EsEditar == 0) if (EsEditar == 0)
{ {
if (ObjCRM.AddEtapaProceso(EtapaProceso, Descripcion, CveTipoEtapa, Orden, CveTipoProceso, UsuarioActual.CveEmpresa, CveUsuarioIng)) if (ObjCRM.AddEtapaProceso(EtapaProceso, Descripcion, CveTipoEtapa, Orden, CveTipoProceso, UsuarioActual.CveEmpresa, CveUsuarioIng))
@@ -250,10 +300,12 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
Alert("La Etapa fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); Alert("La Etapa fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
} }
} }
}else //if (validarInicialTerminadoCancelado(CveTipoEtapa))
{ //{
Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia); //}else
} //{
// Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia);
//}
// PRECARGAMOS LA SIGUIENTE ETAPA A AGREGAR CON LOS MISMA DATOS DE LA ETAPA QUE SE INSERTO // PRECARGAMOS LA SIGUIENTE ETAPA A AGREGAR CON LOS MISMA DATOS DE LA ETAPA QUE SE INSERTO
CveTipoProcesoSeleccionado = CveTipoProceso; CveTipoProcesoSeleccionado = CveTipoProceso;
@@ -366,4 +418,47 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
ImprimirPDF("Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato); ImprimirPDF("Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato);
} }
protected void DdlTipoProceso_Change(Object sender,EventArgs e)
{
DataTable EtapasIterable = DTEtapas.Copy();
DataTable EtapasAux = DTEtapas.Copy();
int indice = 0;
foreach (DataRow EtapaRow in EtapasIterable.Rows)
{
int CveTipoEtapa = EtapaRow["CveTipoEtapa"].ToEntero();
if (CveTipoEtapa != 2)
{
int CantidadEtapas = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveTipoEtapa = {1}",DdlTipoProceso.SelectedValue,EtapaRow["CveTipoEtapa"])).Rows.Count;
if(CantidadEtapas > 0)
{
EtapasAux.Rows.RemoveAt(indice);
}
}else
{
indice++;
}
}
//for (int i = 1; i < CveTipoEtapa; i++)
//{
// DataRow TipoEtapaRow = EtapasAux.Rows[indice];
// int CveTipoEtapaAux = TipoEtapaRow["CveTipoEtapa"].ToEntero();
// if (CveTipoEtapaAux == 2)
// {
// indice++;
// }
// else
// {
// EtapasAux.Rows.Remove(TipoEtapaRow);
// }
//}
EtapasAux.AcceptChanges();
DdlTipoEtapa.DataSource = EtapasAux;
DdlTipoEtapa.DataBind();
UPModal.Update();
}
} }

View File

@@ -95,6 +95,8 @@
<div class="form-group form-md-line-input input-iconright" id="DivTipoProceso" runat="server"> <div class="form-group form-md-line-input input-iconright" id="DivTipoProceso" runat="server">
<label runat="server" id="LblTipoProceso" for="<%= DdlTipoProceso.ClientID.ToString()%>">Tipo Proceso:</label><br /> <label runat="server" id="LblTipoProceso" for="<%= DdlTipoProceso.ClientID.ToString()%>">Tipo Proceso:</label><br />
<asp:DropDownList runat="server" ID="DdlTipoProceso" CssClass="form-control input-sm select2me" Width="50%" DataValueField="CveTipoProceso" DataTextField="TipoProceso"/> <asp:DropDownList runat="server" ID="DdlTipoProceso" CssClass="form-control input-sm select2me" Width="50%" DataValueField="CveTipoProceso" DataTextField="TipoProceso"/>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvTipoProceso" Display="None" ValidationGroup="VGGuardar" runat="server" ControlToValidate="DdlTipoProceso" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Proceso''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceTipoProceso" runat="server" HighlightCssClass="vco" TargetControlID="RfvTipoProceso" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">

View File

@@ -254,6 +254,6 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
param.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)); param.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
param.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString())); param.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
ImprimirPDF("Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato); ImprimirPDF("Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc", TmpDT, param, "Report Cat Probabilidad Acercamiento", formato);
} }
} }

View File

@@ -72,6 +72,7 @@
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtRFC" CssClass="form-control " runat="server" MaxLength="13"></asp:TextBox> <asp:TextBox ID="TxtRFC" CssClass="form-control " runat="server" MaxLength="13"></asp:TextBox>
<asp:RegularExpressionValidator ID="REVRFC" runat="server" CssClass="help-block errorimput" ValidationExpression="^([A-Z\d]){12,13}$" ControlToValidate="TxtRFC" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''RFC''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardar"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="RFVRFC" runat="server" ControlToValidate="TxtRFC" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''RFC''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVRFC" runat="server" ControlToValidate="TxtRFC" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''RFC''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<label for="<%= TxtRFC.ClientID.ToString()%>">RFC:</label> <label for="<%= TxtRFC.ClientID.ToString()%>">RFC:</label>
<i></i> <i></i>
@@ -86,6 +87,11 @@
<i></i> <i></i>
</div> </div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoPrceso2" runat="server" Width="50%" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me" OnSelectedIndexChanged="DdlTipoProcesos_Change" AutoPostBack="true"/>
<label for="<%=DdlTipoPrceso2.ClientID.ToString()%>">Tipo Proceso:</label>
</div>
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMedioCaptacion" Width="50%" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlMedioCaptacion" Width="50%" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%=DdlMedioCaptacion.ClientID.ToString()%>">Medio de Captación:</label> <label for="<%=DdlMedioCaptacion.ClientID.ToString()%>">Medio de Captación:</label>
@@ -600,7 +606,7 @@
<asp:RequiredFieldValidator ID="RFVContacto" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlContactoPrincipal" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Contacto''</b> es necesario." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVContacto" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlContactoPrincipal" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Contacto''</b> es necesario." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator>
</div> </div>
</div> </div>
<br />
<div class="row"> <div class="row">
<%--<div class="form-group col-md-6 form-md-line-input input-iconright"> <%--<div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlVendedor" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Class="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlVendedor" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Class="form-control input-sm select2me"></asp:DropDownList>
@@ -615,8 +621,10 @@
</div> </div>
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMedioCaptacionAcercamiento" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" Class="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlMedioCaptacionAcercamiento" CausesValidation="true" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlMedioCaptacionAcercamiento.ClientID.ToString()%>">Medio de Captación:</label> <label for="<%= DdlMedioCaptacionAcercamiento.ClientID.ToString()%>" ><span style="color: #F3565D">*</span>Medio de Captación(depende de 'Proceso'):</label>
<asp:RequiredFieldValidator ID="RfvMedioCaptacionAcercamiento" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlMedioCaptacionAcercamiento" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Medio Captación''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator>
<%--<ajax:ValidatorCalloutExtender ID="VceMedioCaptacionAcercamiento" runat="server" HighlightCssClass="vco" TargetControlID="RfvMedioCaptacionAcercamiento" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</div> </div>
</div> </div>

View File

@@ -225,6 +225,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
{ {
CreoCliente = false; CreoCliente = false;
RecuperaCve(); RecuperaCve();
CargaTipoProceso();
CargaMetodosCaptacion(); CargaMetodosCaptacion();
CargaVendedores(); CargaVendedores();
CargaSucursales(); CargaSucursales();
@@ -548,12 +549,22 @@ public partial class CRM_EmpresaCRM : ClsPaginas
CveContactoEditado = -1; CveContactoEditado = -1;
} }
protected void CargaTipoProceso()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
{
DdlTipoPrceso2.DataSource = ObjCRM.DtResultados;
}
DdlTipoPrceso2.DataBind();
}
protected void CargaMetodosCaptacion() protected void CargaMetodosCaptacion()
{ {
ClsCRM ObjCRM = new ClsCRM(); ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1)) if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{ {
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados; DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoPrceso2.SelectedValue));
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1")); DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacionAcercamiento.Items.Clear(); DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = ObjCRM.DtResultados; DdlMedioCaptacionAcercamiento.DataSource = ObjCRM.DtResultados;
@@ -673,7 +684,14 @@ public partial class CRM_EmpresaCRM : ClsPaginas
DdlMedioCaptacionAcercamiento.Items.Clear(); DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue.ToEntero())); DdlMedioCaptacionAcercamiento.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue.ToEntero()));
DdlMedioCaptacionAcercamiento.DataBind(); DdlMedioCaptacionAcercamiento.DataBind();
DdlMedioCaptacionAcercamiento.Items.Insert(0,new ListItem("Seleccione","-1")); if (DdlTipoProceso.SelectedValue != "-1")
{
DdlMedioCaptacionAcercamiento.Enabled = true;
}else
{
DdlMedioCaptacionAcercamiento.Items.Insert(0,new ListItem("Seleccione","-1"));
DdlMedioCaptacionAcercamiento.Enabled = false;
}
DdlProbabilidadAcercamiento.Items.Clear(); DdlProbabilidadAcercamiento.Items.Clear();
DdlProbabilidadAcercamiento.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero())); DdlProbabilidadAcercamiento.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
@@ -1299,7 +1317,11 @@ public partial class CRM_EmpresaCRM : ClsPaginas
DdlTipoProceso.DataSource = ObjCRM.DtResultados; DdlTipoProceso.DataSource = ObjCRM.DtResultados;
if (ObjCRM.DtResultados.Rows.Count > 0) if (ObjCRM.DtResultados.Rows.Count > 0)
{
DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione ", "-1")); DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacionAcercamiento.Enabled = false;
}
DdlTipoProceso.DataBind(); DdlTipoProceso.DataBind();
} }
@@ -1402,8 +1424,14 @@ public partial class CRM_EmpresaCRM : ClsPaginas
int CveAcercamiento = -1; int CveAcercamiento = -1;
CveAcercamiento = ObjCRM.AddAcercamiento(CveEmpresaCRM, CveContactoPrincipal, CveTipoProceso, CveEtapaProcesoActual, CveVendedor, CveMedioCaptacion, CveRechazoMotivo, CveProbabilidadAcercamiento, if (ObjCRM.DtResultados.Rows.Count > 0)
FechaApertura, NombreAcercamiento, Descripcion, Importe, Comision, Prioridad, UsuarioActual.CveEmpresa, CveUsuarioIng); {
CveAcercamiento = ObjCRM.AddAcercamiento(CveEmpresaCRM, CveContactoPrincipal, CveTipoProceso, CveEtapaProcesoActual, CveVendedor, CveMedioCaptacion, CveRechazoMotivo, CveProbabilidadAcercamiento,
FechaApertura, NombreAcercamiento, Descripcion, Importe, Comision, Prioridad, UsuarioActual.CveEmpresa, CveUsuarioIng);
}else
{
Alert("No tiene Etapa Proceso con el Tipo Proceso seleccionado",ModExtensiones.TipoMensaje.MsgAdvertencia);
}
if (CveAcercamiento > 0) if (CveAcercamiento > 0)
{ {
@@ -1450,6 +1478,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
#region "PERMISOS" #region "PERMISOS"
protected void VerificaPermisos() protected void VerificaPermisos()
{ {
if (CveEmpresaCRM > 0) if (CveEmpresaCRM > 0)
{ {
if (!UsuarioActual.TienePermisoProceso(250)) if (!UsuarioActual.TienePermisoProceso(250))
@@ -1507,4 +1536,11 @@ public partial class CRM_EmpresaCRM : ClsPaginas
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, correoVendedor, Asunto,body); Mail.SendMail(ClsPaginas.EmpresaNotificaciones, correoVendedor, Asunto,body);
} }
} }
protected void DdlTipoProcesos_Change(Object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
CargaMetodosCaptacion();
UpDatos.Update();
}
} }

View File

@@ -16,11 +16,13 @@
.form-group.form-md-line-input .form-control { .form-group.form-md-line-input .form-control {
background-color: #fff; background-color: #fff;
}
.GVRep tr td a{
display:block;
text-align:center;
} }
.GVRep tr td a {
display: block;
text-align: center;
}
#chartdiv { #chartdiv {
width: 100%; width: 100%;
height: 500px; height: 500px;
@@ -46,90 +48,96 @@
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server"> <asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="upDatosRepA" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="upDatosRepA" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="Filtros"> <div class="Filtros portlet solid grey-cascade portlet-filter">
<div class="row"> <div class="row">
<div class="col-sm-3"> <div class="col-md-2" style="width: 85%">
<div class="form-group form-md-line-input input-iconright" > <div class="row">
<asp:DropDownList ID="DdlTipoProceso" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" CssClass="form-control input-sm select2me Widthall" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true" Width="100%"></asp:DropDownList> <div class="col-sm-3" style="width: 25%">
<asp:Label runat="server" Text="Proceso:" AssociatedControlID="DdlTipoProceso"></asp:Label> <div class="form-group form-md-line-input input-iconright">
</div> <asp:DropDownList ID="DdlTipoProceso" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" CssClass="form-control input-sm select2me Widthall" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true" Width="100%"></asp:DropDownList>
</div> <asp:Label runat="server" Text="Proceso:" AssociatedControlID="DdlTipoProceso"></asp:Label>
<div class="col-sm-3"> </div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlVendedor" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Vendedor:" AssociatedControlID="DdlVendedor"></asp:Label>
</div>
</div>
<div class="col-sm-3">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMedioCaptacion" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Medio de Captación:" AssociatedControlID="DdlMedioCaptacion"></asp:Label>
</div>
</div>
<div class="col-md-2">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlProbabilidad" runat="server" DataTextField="ProbabilidadAcercamiento" DataValueField="CveProbabilidadAcercamiento" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Probabilidad:" AssociatedControlID="DdlProbabilidad"></asp:Label>
</div>
</div>
<div class="col-sm-1 text-right">
<br />
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" CssClass="btn btn-default">Consultar</asp:LinkButton>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright" style="width:100%">
<asp:DropDownList ID="DdlGrupo1" runat="server" CssClass="form-control input-sm select2me Widthall" Width="100%">
<asp:ListItem Value="1" Text="Vendedor" Selected="true"></asp:ListItem>
<asp:ListItem Value="2" Text="Medio de Captación"></asp:ListItem>
<asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" Text="Agrupado Por:" AssociatedControlID="DdlGrupo1"></asp:Label>
</div>
</div>
<div class="col-md-3" style="display:none;">
<div class="form-group form-md-line-input input-iconright" style="width:100%">
<asp:DropDownList ID="DdlGrupo2" runat="server" CssClass="form-control input-sm select2me Widthall" style="width:100%">
<asp:ListItem Value="-1" Text="Ninguno" Selected="True"></asp:ListItem>
<asp:ListItem Value="1" Text="Vendedor"></asp:ListItem>
<asp:ListItem Value="2" Text="Medio Captacion"></asp:ListItem>
<asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" Text="Agrupado Por(2):" AssociatedControlID="DdlGrupo2"></asp:Label>
</div>
</div>
<div class="col-md-2">
<div class="">
<asp:Label runat="server" Text="Fecha Inicio:" AssociatedControlID="TxtFechaInicio"></asp:Label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;">
<asp:TextBox ID="TxtFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div> </div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudI" runat="server" TargetControlID="TxtFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender> <div class="col-sm-3" style="width: 25%">
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudI" TargetControlID="TxtFechaInicio" PopupButtonID="imgFechaInicio" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender> <div class="form-group form-md-line-input input-iconright">
</div> <asp:DropDownList ID="DdlVendedor" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
</div> <asp:Label runat="server" Text="Vendedor:" AssociatedControlID="DdlVendedor"></asp:Label>
<div class="col-md-2"> </div>
<div class=""> </div>
<asp:Label runat="server" Text="Fecha Fin:" AssociatedControlID="TxtFechaFin"></asp:Label> <div class="col-sm-3" style="width: 25%">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;"> <div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtFechaFin" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox> <asp:DropDownList ID="DdlMedioCaptacion" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<span class="input-group-btn "> <asp:Label runat="server" Text="Medio de Captación:" AssociatedControlID="DdlMedioCaptacion"></asp:Label>
<asp:LinkButton ID="imgFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton> </div>
</span> </div>
<div class="col-md-2" style="width: 25%">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlProbabilidad" runat="server" DataTextField="ProbabilidadAcercamiento" DataValueField="CveProbabilidadAcercamiento" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Probabilidad:" AssociatedControlID="DdlProbabilidad"></asp:Label>
</div>
</div> </div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudF" runat="server" TargetControlID="TxtFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudF" TargetControlID="TxtFechaFin" PopupButtonID="imgFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div> </div>
<div class="row">
<div class="col-md-2" style="padding-left: 15px; width: 25%">
<div class="form-group form-md-line-input input-iconright" style="width: 100%">
<asp:DropDownList ID="DdlGrupo1" runat="server" CssClass="form-control input-sm select2me Widthall" Width="100%">
<asp:ListItem Value="1" Text="Vendedor" Selected="true"></asp:ListItem>
<asp:ListItem Value="2" Text="Medio de Captación"></asp:ListItem>
<asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" Text="Agrupado Por:" AssociatedControlID="DdlGrupo1"></asp:Label>
</div>
</div>
<div class="col-md-3" style="display: none; width: 25%">
<div class="form-group form-md-line-input input-iconright" style="width: 100%">
<asp:DropDownList ID="DdlGrupo2" runat="server" CssClass="form-control input-sm select2me Widthall" Style="width: 100%">
<asp:ListItem Value="-1" Text="Ninguno" Selected="True"></asp:ListItem>
<asp:ListItem Value="1" Text="Vendedor"></asp:ListItem>
<asp:ListItem Value="2" Text="Medio Captacion"></asp:ListItem>
<asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" Text="Agrupado Por(2):" AssociatedControlID="DdlGrupo2"></asp:Label>
</div>
</div>
<div class="col-md-2" style="width: 25%">
<div class="">
<asp:Label runat="server" Text="Fecha Inicio:" AssociatedControlID="TxtFechaInicio"></asp:Label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;">
<asp:TextBox ID="TxtFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudI" runat="server" TargetControlID="TxtFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudI" TargetControlID="TxtFechaInicio" PopupButtonID="imgFechaInicio" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="col-md-2" style="width: 25%">
<div class="">
<asp:Label runat="server" Text="Fecha Fin:" AssociatedControlID="TxtFechaFin"></asp:Label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;">
<asp:TextBox ID="TxtFechaFin" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudF" runat="server" TargetControlID="TxtFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudF" TargetControlID="TxtFechaFin" PopupButtonID="imgFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
<div class="col-md-2" style="width: 138px">
<div class="col-sm-1 text-right" style="width: 138px">
<br />
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" CssClass="btn btn-default">Consultar</asp:LinkButton>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -185,13 +193,14 @@
</div> </div>
</asp:Content> </asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script> <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script> <script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/pie.js"></script> <script src="https://www.amcharts.com/lib/3/pie.js"></script>
<script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script> <script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script>
<link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" /> <link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script> <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script> <script>
function CargaGraficaBarras(data) { function CargaGraficaBarras(data) {

View File

@@ -5,7 +5,7 @@
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server"> <asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
</asp:Content> </asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server"> <asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Reporte Detaller de los Acercamientos Procesos Reporte Detalle de los Acercamientos Procesos
</asp:Content> </asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content> </asp:Content>

View File

@@ -467,7 +467,7 @@
<asp:ListItem Text="Flete" Value="4"></asp:ListItem> <asp:ListItem Text="Flete" Value="4"></asp:ListItem>
<asp:ListItem Text="Importación" Value="5"></asp:ListItem> <asp:ListItem Text="Importación" Value="5"></asp:ListItem>
<asp:ListItem Text="NC Con Productos" Value="6"></asp:ListItem> <asp:ListItem Text="NC Con Productos" Value="6"></asp:ListItem>
<asp:ListItem Text="Apoyo Logístico" Value="9"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
</div> </div>
</div> </div>
@@ -2952,7 +2952,9 @@
<span class="caption-subject bold">Agregar</span> <span class="caption-subject bold">Agregar</span>
</div>--%> </div>--%>
<asp:HyperLink ID="ImgAddObs" CssClass="caption-subject bold" data-toggle="modal" data-target="#ModalBitacora" runat="server" Text=" <i class='fa fa-commenting font-green' style='font-weight: 700 !important;' ><span class='caption-subject bold'>Agregar</span></i>" Style="cursor: pointer;" ToolTip="Observaciones"></asp:HyperLink><br /> <asp:HyperLink ID="ImgAddObs" CssClass="caption-subject bold" data-toggle="modal" data-target="#ModalBitacora" runat="server" Text=" <i class='fa fa-commenting font-green' style='font-weight: 700 !important;' ><span class='caption-subject bold'>Agregar</span></i>" Style="cursor: pointer;" ToolTip="Observaciones"></asp:HyperLink><br />
<asp:HyperLink ID="HlEvento" CssClass="thickbox caption-subject bold" runat="server" Text=" <i class='fa fa-calendar-plus-o font-green' style='font-weight: 700 !important;' >Agendar</i>" Visible="false" Style="cursor: pointer;" ToolTip="Agendar"></asp:HyperLink> <asp:HyperLink ID="HlEvento" CssClass="thickbox caption-subject bold" runat="server" Text=" <i class='fa fa-calendar-plus-o font-green' style='font-weight: 700 !important;' >Agendar</i>" Visible="false" Style="cursor: pointer;" ToolTip="Agendar"></asp:HyperLink><br />
<asp:Literal ID="LtlTareaNueva" runat="server"></asp:Literal>
<UserControl:TareaNueva runat="server" id="TareaNueva" />
</div> </div>
</div> </div>

View File

@@ -1624,7 +1624,7 @@ Partial Class Compras_Compras
'LtlTareaNueva.Text = String.Format("<a class=""caption-subject bold font-green"" onclick=""OpenModalNewTareaUserControl(1,-1,{{CveCompra:{0}}});""> <i class=""fa fa-plus""'></i> Tarea</a>", CveCompra) LtlTareaNueva.Text = String.Format("<a class=""caption-subject bold font-green"" onclick=""OpenModalNewTareaUserControl(1,-1,{{CveCompra:{0}}});""> <i class=""fa fa-plus""'></i> Tarea</a>", CveCompra)
End If End If

View File

@@ -10,26 +10,46 @@ Imports System.Linq
Partial Class Compras_EvaluacionProveedor Partial Class Compras_EvaluacionProveedor
Inherits ClsPaginas Inherits ClsPaginas
#Region "P R O P I E D A D E S" #Region "P R O P I E D A D E S"
Private Property CveEvaluacionProveedor() As Integer Private Property CveEvaluacionProveedor() As Integer
Get
Return If(IsNothing(ViewState("CveEvaluacionProveedor")), -1, CInt(ViewState("CveEvaluacionProveedor"))) Return If(IsNothing(ViewState("CveEvaluacionProveedor")), -1, CInt(ViewState("CveEvaluacionProveedor")))
Return If(IsNothing(ViewState("CveEvaluacionProveedor")), -1, CInt(ViewState("CveEvaluacionProveedor"))) End Get
End Get Set
Set ViewState("CveEvaluacionProveedor") = Value
End Set
End Property
Private Property CveProveedor() As Integer
Get
Return If(IsNothing(ViewState("CveProveedor")), -1, CInt(ViewState("CveProveedor"))) Return If(IsNothing(ViewState("CveProveedor")), -1, CInt(ViewState("CveProveedor")))
End Set End Get
End Property Set
Private Property CveProveedor() As Integer ViewState("CveProveedor") = Value
End Set
End Property
Private Property CveCompra() As Integer
Get
Return If(IsNothing(ViewState("CveCompra")), -1, CInt(ViewState("CveCompra"))) Return If(IsNothing(ViewState("CveCompra")), -1, CInt(ViewState("CveCompra")))
Return If(IsNothing(ViewState("CveProveedor")), -1, CInt(ViewState("CveProveedor"))) End Get
End Get Set
Set ViewState("CveCompra") = Value
End Set
End Property
Private Property DtPreguntas() As DataTable
Get
Return If(IsNothing(ViewState("DtPreguntas")), New DataTable(), DirectCast(ViewState("DtPreguntas"), DataTable)) Return If(IsNothing(ViewState("DtPreguntas")), New DataTable(), DirectCast(ViewState("DtPreguntas"), DataTable))
End Set End Get
End Property Set
Private Property CveCompra() As Integer ViewState("DtPreguntas") = Value
End Set
End Property
Private Property CorreoEnvio() As String
Get
Return If(IsNothing(ViewState("CorreoEnvio")), "", ViewState("CorreoEnvio").ToString()) Return If(IsNothing(ViewState("CorreoEnvio")), "", ViewState("CorreoEnvio").ToString())
Return If(IsNothing(ViewState("CveCompra")), -1, CInt(ViewState("CveCompra"))) End Get
End Get Set
ViewState("CorreoEnvio") = Value
End Set
End Property
#End Region #End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then If Not IsPostBack Then
@@ -264,7 +284,7 @@ Partial Class Compras_EvaluacionProveedor
Dim archivoCarta As New ClsSisMail.ArchivoMail() Dim archivoCarta As New ClsSisMail.ArchivoMail()
archivoCarta.NombreArchivo = "Carta Evaluacion.pdf" archivoCarta.NombreArchivo = "Carta Evaluacion.pdf"
Try Try
Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "CartaProveedor.docx" Dim Documento As String = "CartaProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento
@@ -298,7 +318,7 @@ Partial Class Compras_EvaluacionProveedor
Dim archivoCarta As New ClsSisMail.ArchivoMail() Dim archivoCarta As New ClsSisMail.ArchivoMail()
archivoCarta.NombreArchivo = "Formato Evaluacion Proveedor.pdf" archivoCarta.NombreArchivo = "Formato Evaluacion Proveedor.pdf"
Try Try
ObjCarta.GuardarStreamPDF() Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "FormatoEvaluacionProveedor.docx" Dim Documento As String = "FormatoEvaluacionProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento

File diff suppressed because it is too large Load Diff

View File

@@ -328,136 +328,136 @@ Partial Class Compras_Proveedores
Property CveDocumentacionElectronica As Integer Property CveDocumentacionElectronica As Integer
Get Get
If ViewState("CvePersonalClienteDocumentacion") Is Nothing Then If ViewState("CvePersonalClienteDocumentacion") Is Nothing Then
Return -1 Return -1
Else Else
Return DirectCast(ViewState("CvePersonalClienteDocumentacion"), Integer) Return DirectCast(ViewState("CvePersonalClienteDocumentacion"), Integer)
End If End If
End Get End Get
Set(value As Integer) Set(value As Integer)
ViewState("CvePersonalClienteDocumentacion") = value ViewState("CvePersonalClienteDocumentacion") = value
End Set End Set
End Property End Property
Property CveDocumentacion As Integer Property CveDocumentacion As Integer
Get Get
If ViewState("CveDocumentacion") Is Nothing Then If ViewState("CveDocumentacion") Is Nothing Then
Return -1 Return -1
Else Else
Return DirectCast(ViewState("CveDocumentacion"), Integer) Return DirectCast(ViewState("CveDocumentacion"), Integer)
End If End If
End Get End Get
Set(value As Integer) Set(value As Integer)
ViewState("CveDocumentacion") = value ViewState("CveDocumentacion") = value
End Set End Set
End Property End Property
Property Documentacion As String Property Documentacion As String
Get Get
If ViewState("Documentacion") Is Nothing Then If ViewState("Documentacion") Is Nothing Then
Return "-1" Return "-1"
Else Else
Return ViewState("Documentacion").ToString Return ViewState("Documentacion").ToString
End If End If
End Get End Get
Set(value As String) Set(value As String)
ViewState("Documentacion") = value ViewState("Documentacion") = value
End Set End Set
End Property End Property
Property AdjuntoDocumentacion As String Property AdjuntoDocumentacion As String
Get Get
If ViewState("AdjuntoDocumentacion") Is Nothing Then If ViewState("AdjuntoDocumentacion") Is Nothing Then
Return "" Return ""
Else Else
Return ViewState("AdjuntoDocumentacion").ToString Return ViewState("AdjuntoDocumentacion").ToString
End If End If
End Get End Get
Set(value As String) Set(value As String)
ViewState("AdjuntoDocumentacion") = value ViewState("AdjuntoDocumentacion") = value
End Set End Set
End Property End Property
Property DiasVigencia As Integer Property DiasVigencia As Integer
Get Get
If ViewState("DiasVigencia") Is Nothing Then If ViewState("DiasVigencia") Is Nothing Then
Return 0 Return 0
Else Else
Return DirectCast(ViewState("DiasVigencia"), Integer) Return DirectCast(ViewState("DiasVigencia"), Integer)
End If End If
End Get End Get
Set(value As Integer) Set(value As Integer)
ViewState("DiasVigencia") = value ViewState("DiasVigencia") = value
End Set End Set
End Property End Property
Property AplicaFechaVencimiento As Boolean Property AplicaFechaVencimiento As Boolean
Get Get
If ViewState("AplicaFechaVencimiento") Is Nothing Then If ViewState("AplicaFechaVencimiento") Is Nothing Then
Return True Return True
Else Else
Return DirectCast(ViewState("AplicaFechaVencimiento"), Boolean) Return DirectCast(ViewState("AplicaFechaVencimiento"), Boolean)
End If End If
End Get End Get
Set(value As Boolean) Set(value As Boolean)
ViewState("AplicaFechaVencimiento") = value ViewState("AplicaFechaVencimiento") = value
End Set End Set
End Property End Property
Private Property FechaVigencia As Date Private Property FechaVigencia As Date
Get Get
If ViewState("FechaVigencia") Is Nothing Then If ViewState("FechaVigencia") Is Nothing Then
Return Nothing Return Nothing
Else Else
Return ViewState("FechaVigencia").ToString.ToDate Return ViewState("FechaVigencia").ToString.ToDate
End If End If
End Get End Get
Set(value As Date) Set(value As Date)
ViewState("FechaVigencia") = value ViewState("FechaVigencia") = value
End Set End Set
End Property End Property
Property Estatus As Integer Property Estatus As Integer
Get Get
If ViewState("Estatus") Is Nothing Then If ViewState("Estatus") Is Nothing Then
Return 0 Return 0
Else Else
Return DirectCast(ViewState("Estatus"), Integer) Return DirectCast(ViewState("Estatus"), Integer)
End If End If
End Get End Get
Set(value As Integer) Set(value As Integer)
ViewState("Estatus") = value ViewState("Estatus") = value
End Set End Set
End Property End Property
Property ObservacionDocumentacion As String Property ObservacionDocumentacion As String
Get Get
If ViewState("ObservacionDocumentacion") Is Nothing Then If ViewState("ObservacionDocumentacion") Is Nothing Then
Return "" Return ""
Else Else
Return ViewState("ObservacionDocumentacion").ToString Return ViewState("ObservacionDocumentacion").ToString
End If End If
End Get End Get
Set(value As String) Set(value As String)
ViewState("ObservacionDocumentacion") = value ViewState("ObservacionDocumentacion") = value
End Set End Set
End Property End Property
Private Property FechaLimite As Date Private Property FechaLimite As Date
Get Get
If ViewState("FechaLimite") Is Nothing Then If ViewState("FechaLimite") Is Nothing Then
Return Date.Now.AddDays(15) Return Date.Now.AddDays(15)
Else Else
Return ViewState("FechaLimite").ToString.ToDate Return ViewState("FechaLimite").ToString.ToDate
End If End If
End Get End Get
Set(value As Date) Set(value As Date)
ViewState("FechaLimite") = value ViewState("FechaLimite") = value
End Set End Set
End Property End Property
Property DTDocumentacion As DataTable Property DTDocumentacion As DataTable
@@ -709,7 +709,7 @@ Partial Class Compras_Proveedores
Try Try
Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0)
XMLDoc.Load(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & dr("CveEmpresa").ToString & "\Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString) XMLDoc.Load(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & dr("CveEmpresa").ToString & "\Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString)
Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix)
Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3" Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3"
Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
@@ -2625,7 +2625,7 @@ Partial Class Compras_Proveedores
Dim filemove As String = "" Dim filemove As String = ""
For Each fileItem As Archivo In filesgral For Each fileItem As Archivo In filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
filemove = fileItem.filename filemove = fileItem.filename
Next Next
@@ -2720,75 +2720,75 @@ Partial Class Compras_Proveedores
End Sub End Sub
Public Sub UploadModal_ClickDocumentacion(sender As Object, e As EventArgs) Public Sub UploadModal_ClickDocumentacion(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
' Dim chkEstatus As CheckBox ' Dim chkEstatus As CheckBox
CveDocumentacionElectronica = GvRow.DataKey("CveDocumentacionElectronica").ToString.ToEntero CveDocumentacionElectronica = GvRow.DataKey("CveDocumentacionElectronica").ToString.ToEntero
CveDocumentacion = GvRow.DataKey("CveDocumentacion").ToString.ToEntero CveDocumentacion = GvRow.DataKey("CveDocumentacion").ToString.ToEntero
Documentacion = GvRow.DataKey("Documentacion") Documentacion = GvRow.DataKey("Documentacion")
AdjuntoDocumentacion = GvRow.DataKey("Adjunto") AdjuntoDocumentacion = GvRow.DataKey("Adjunto")
'DiasVigencia = GvRow.DataKey("DiasVigencia").ToString.ToEntero 'DiasVigencia = GvRow.DataKey("DiasVigencia").ToString.ToEntero
Dim x As String = GvRow.DataKey("AplicaFechaVencimiento") Dim x As String = GvRow.DataKey("AplicaFechaVencimiento")
If GvRow.DataKey("AplicaFechaVencimiento") = "1" Then AplicaFechaVencimiento = True Else AplicaFechaVencimiento = False If GvRow.DataKey("AplicaFechaVencimiento") = "1" Then AplicaFechaVencimiento = True Else AplicaFechaVencimiento = False
If GvRow.DataKey("Adjunto").ToString.Length > 0 Then If GvRow.DataKey("Adjunto").ToString.Length > 0 Then
FechaVigencia = GvRow.DataKey("Adjunto").ToString.ToDate FechaVigencia = GvRow.DataKey("Adjunto").ToString.ToDate
Else Else
FechaVigencia = Nothing FechaVigencia = Nothing
End If End If
Estatus = GvRow.DataKey("Estatus").ToEntero Estatus = GvRow.DataKey("Estatus").ToEntero
'If chkEstatus.Checked Then 'If chkEstatus.Checked Then
' Estatus = 1 ' Estatus = 1
'Else 'Else
' Estatus = 0 ' Estatus = 0
'End If 'End If
ObservacionDocumentacion = GvRow.FCTextBox("TxtObservaciones").Text.Trim.ToUpper ObservacionDocumentacion = GvRow.FCTextBox("TxtObservaciones").Text.Trim.ToUpper
FechaLimite = GvRow.FCTextBox("TxtFechaLimite").Text.ToDate FechaLimite = GvRow.FCTextBox("TxtFechaLimite").Text.ToDate
AdjuntoDocumentacion = GvRow.DataKey("Adjunto") AdjuntoDocumentacion = GvRow.DataKey("Adjunto")
LtlModalUploadTitulo.Text = "Subir " & Documentacion LtlModalUploadTitulo.Text = "Subir " & Documentacion
UpModalTitleUploadDocumento.Update() UpModalTitleUploadDocumento.Update()
RegistraScript("$('#ModalUploadDoc').modal({ backdrop: 'static', keyboard: false});") RegistraScript("$('#ModalUploadDoc').modal({ backdrop: 'static', keyboard: false});")
End Sub End Sub
Protected Sub GvDocs_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocs.RowDataBound Protected Sub GvDocs_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocs.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowType = DataControlRowType.DataRow Then
Dim Adjunto As String = e.Row.DBCampo("Adjunto").ToString Dim Adjunto As String = e.Row.DBCampo("Adjunto").ToString
Dim ImgDownLoad As Literal = e.Row.FCLiteral("ImgDownLoad") Dim ImgDownLoad As Literal = e.Row.FCLiteral("ImgDownLoad")
Dim ImgUpload As LinkButton = e.Row.FCLinkButton("ImgUpload") Dim ImgUpload As LinkButton = e.Row.FCLinkButton("ImgUpload")
Dim ImgRequired As Literal = e.Row.FCLiteral("ImgRequired") Dim ImgRequired As Literal = e.Row.FCLiteral("ImgRequired")
Dim txtFechaLimite As TextBox = e.Row.FCTextBox("TxtFechaLimite") Dim txtFechaLimite As TextBox = e.Row.FCTextBox("TxtFechaLimite")
Dim ChkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus") Dim ChkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus")
' Dim txtFechaVigencia As TextBox = e.Row.FCTextBox("TxtFechaVigencia") ' Dim txtFechaVigencia As TextBox = e.Row.FCTextBox("TxtFechaVigencia")
Dim CveDocumentacionElectronica As String = e.Row.DataKey("CveDocumentacionElectronica") Dim CveDocumentacionElectronica As String = e.Row.DataKey("CveDocumentacionElectronica")
Dim requerido As Boolean = Boolean.Parse(e.Row.DBCampo("Requerido")) Dim requerido As Boolean = Boolean.Parse(e.Row.DBCampo("Requerido"))
'Dim chkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus") 'Dim chkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus")
Dim separado As Char() = ".".ToCharArray Dim separado As Char() = ".".ToCharArray
Dim array() As String = Adjunto.Split(separado) Dim array() As String = Adjunto.Split(separado)
Dim extencion As String = "" Dim extencion As String = ""
Dim DiasLimite As Integer = e.Row.DataKey("DiasLimite").ToString.ToEntero Dim DiasLimite As Integer = e.Row.DataKey("DiasLimite").ToString.ToEntero
Dim AplicaDiasLimite As Boolean = If(e.Row.DataKey("AplicaDiasLimite").ToString = "1", True, False) Dim AplicaDiasLimite As Boolean = If(e.Row.DataKey("AplicaDiasLimite").ToString = "1", True, False)
Dim AplicaFechaVencimiento As Boolean = If(e.Row.DataKey("AplicaFechaVencimiento").ToString = "1", True, False) Dim AplicaFechaVencimiento As Boolean = If(e.Row.DataKey("AplicaFechaVencimiento").ToString = "1", True, False)
txtFechaLimite.Visible = If(AplicaDiasLimite, True, False) txtFechaLimite.Visible = If(AplicaDiasLimite, True, False)
' txtFechaVigencia.Visible = If(AplicaFechaVencimiento, True, False) ' txtFechaVigencia.Visible = If(AplicaFechaVencimiento, True, False)
@@ -2798,81 +2798,81 @@ Partial Class Compras_Proveedores
ChkEstatus.Checked = False ChkEstatus.Checked = False
End If End If
'If e.Row.DBCampo("FechaVigencia").ToString.Length > 0 Then 'If e.Row.DBCampo("FechaVigencia").ToString.Length > 0 Then
' txtFechaVigencia.Text = e.Row.DBCampo("FechaVigencia").ToString.ToDate.ToString("dd/MM/yyyy") ' txtFechaVigencia.Text = e.Row.DBCampo("FechaVigencia").ToString.ToDate.ToString("dd/MM/yyyy")
' If DateTime.Today > e.Row.DBCampo("FechaVigencia").ToString.ToDateTime Then ' If DateTime.Today > e.Row.DBCampo("FechaVigencia").ToString.ToDateTime Then
' txtFechaVigencia.ForeColor = Drawing.Color.Red ' txtFechaVigencia.ForeColor = Drawing.Color.Red
' End If ' End If
'End If 'End If
If array.Length > 0 Then If array.Length > 0 Then
extencion = array(array.Length - 1) extencion = array(array.Length - 1)
End If End If
If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(3) Then If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(3) Then
' chkEstatus.Checked = True ' chkEstatus.Checked = True
ImgUpload.Visible = False ImgUpload.Visible = False
Else Else
'chkEstatus.Checked = False 'chkEstatus.Checked = False
End If End If
txtFechaLimite.Text = e.Row.DBCampo("FechaLimite").ToString.ToDate.ToString("dd/MM/yyyy") txtFechaLimite.Text = e.Row.DBCampo("FechaLimite").ToString.ToDate.ToString("dd/MM/yyyy")
'If e.Row.DBCampo("FechaVigencia").ToString.Length > 0 Then 'If e.Row.DBCampo("FechaVigencia").ToString.Length > 0 Then
' txtFechaVigencia.Text = e.Row.DBCampo("FechaVigencia").ToString.ToDate.ToString("dd/MM/yyyy") ' txtFechaVigencia.Text = e.Row.DBCampo("FechaVigencia").ToString.ToDate.ToString("dd/MM/yyyy")
'End If 'End If
'Dim scripMascara = "$('#" & txtFechaLimite.ClientID & "').mask('00/00/0000');$('#" & txtFechaVigencia.ClientID & "').mask('00/00/0000');" 'Dim scripMascara = "$('#" & txtFechaLimite.ClientID & "').mask('00/00/0000');$('#" & txtFechaVigencia.ClientID & "').mask('00/00/0000');"
'RegistraScript(scripMascara, "scriptMascara") 'RegistraScript(scripMascara, "scriptMascara")
If Adjunto.Trim.Length > 0 Then If Adjunto.Trim.Length > 0 Then
Dim linkDescarga = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "/Edoc/Proveedor/" & CveProveedor & "/" & Adjunto Dim linkDescarga = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "/Edoc/Proveedor/" & CveProveedor & "/" & Adjunto
Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "Edoc/Proveedor/" & CveProveedor & "/" & Adjunto Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "Edoc/Proveedor/" & CveProveedor & "/" & Adjunto
If File.Exists(linkDescargaArchivo) Then If File.Exists(linkDescargaArchivo) Then
ImgDownLoad.Visible = True ImgDownLoad.Visible = True
If extencion.Length > 0 Then If extencion.Length > 0 Then
ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica & "." & extencion) ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica & "." & extencion)
Else Else
ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica) ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica)
End If End If
Else Else
ImgDownLoad.Visible = False ImgDownLoad.Visible = False
End If End If
Else Else
ImgDownLoad.Visible = False ImgDownLoad.Visible = False
End If End If
If requerido Then If requerido Then
ImgRequired.Text = " <a class='btn btn-circle btn-sm yelow' href='#' data-toggle='tooltip' title=' Requerido!' ><i class='fa fa-asterisk '></i></a>" ImgRequired.Text = " <a class='btn btn-circle btn-sm yelow' href='#' data-toggle='tooltip' title=' Requerido!' ><i class='fa fa-asterisk '></i></a>"
End If End If
'chkEstatus.Checked = ImgDownLoad.Visible 'chkEstatus.Checked = ImgDownLoad.Visible
End If End If
End Sub End Sub
Protected Sub BtnUploadFileDoc_Click(sender As Object, e As EventArgs) Handles btnUploadFileDoc.Click Protected Sub BtnUploadFileDoc_Click(sender As Object, e As EventArgs) Handles btnUploadFileDoc.Click
Dim FileExtension As String = "-1" Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
Dim Filename As String = "" Dim Filename As String = ""
Dim ErrorProceso As Boolean = False Dim ErrorProceso As Boolean = False
If AplicaFechaVencimiento And DiasVigencia > 0 Then If AplicaFechaVencimiento And DiasVigencia > 0 Then
FechaVigencia = DateTime.Today.AddDays(DiasVigencia) FechaVigencia = DateTime.Today.AddDays(DiasVigencia)
End If End If
For Each fileItem As Archivo In Filesgral For Each fileItem As Archivo In Filesgral
Try Try
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
Dim tempArray() As String Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
@@ -2942,15 +2942,15 @@ Partial Class Compras_Proveedores
CargaDocs() CargaDocs()
TxtFileDocumentacion.Text = "" TxtFileDocumentacion.Text = ""
UPModalUploadDoc.Update() UPModalUploadDoc.Update()
Catch ex As Exception Catch ex As Exception
OnError("Error al cargar archivo", ex) OnError("Error al cargar archivo", ex)
End Try End Try
Next Next
RegistraScript("$('#ModalUploadDoc').modal('hide')", "hidemodal3") RegistraScript("$('#ModalUploadDoc').modal('hide')", "hidemodal3")
@@ -3806,7 +3806,7 @@ Partial Class Compras_Proveedores
' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales"
' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then
' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteCxP.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteCxP.xlsm", ModExtensiones.DirectorioBaseEmpresas), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False)
' ' End If ' ' End If
' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato)
@@ -3931,7 +3931,7 @@ Partial Class Compras_Proveedores
' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales"
' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then
' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteANC.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteANC.xlsm", ModExtensiones.DirectorioBaseEmpresas), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False)
' ' End If ' ' End If
' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato)
@@ -4512,7 +4512,7 @@ Partial Class Compras_Proveedores
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else
@@ -4601,7 +4601,7 @@ Partial Class Compras_Proveedores
End Function End Function
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoProveedores.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoProveedores.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()
@@ -5609,7 +5609,7 @@ Partial Class Compras_Proveedores
End Sub End Sub
Protected Sub DescargarFormatoCarta(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) Protected Sub DescargarFormatoCarta(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String)
Try Try
Dim PathRoot As String = Server.MapPath("/") Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "CartaProveedor.docx" Dim Documento As String = "CartaProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Documento Dim PathDestino As String = PathRoot & "Temp\" & Documento
@@ -5632,7 +5632,7 @@ Partial Class Compras_Proveedores
End Sub End Sub
Protected Sub DescargarFormatoEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) Protected Sub DescargarFormatoEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String)
Try Try
Dim PathRoot As String = Server.MapPath("/") Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "FormatoEvaluacionProveedor.docx" Dim Documento As String = "FormatoEvaluacionProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Documento Dim PathDestino As String = PathRoot & "Temp\" & Documento
@@ -6079,57 +6079,57 @@ Partial Class Compras_Proveedores
End Sub End Sub
#Region "P R O V E D O R E S G R I D S I M P R I M I R P D F/Excel" #Region "P R O V E D O R E S G R I D S I M P R I M I R P D F/Excel"
Private Sub LnkExportarPagos_Click(sender As Object, e As EventArgs) Handles LnkPagosProveedoresBancosExcel.Click Private Sub LnkExportarPagos_Click(sender As Object, e As EventArgs) Handles LnkPagosProveedoresBancosExcel.Click
ImprimeGridsProveedores("Excel", DTCobrosRealizados, "RepProveedoresPagosBancos") ImprimeGridsProveedores("Excel", DTCobrosRealizados, "RepProveedoresPagosBancos")
End Sub End Sub
Private Sub LinkPDFPagos_Click(sender As Object, e As EventArgs) Handles LnkPagosProveedoresBancosPDF.Click Private Sub LinkPDFPagos_Click(sender As Object, e As EventArgs) Handles LnkPagosProveedoresBancosPDF.Click
ImprimeGridsProveedores("PDF", DTCobrosRealizados, "RepProveedoresPagosBancos") ImprimeGridsProveedores("PDF", DTCobrosRealizados, "RepProveedoresPagosBancos")
End Sub End Sub
Private Sub LnkCtasBancariass_Click(sender As Object, e As EventArgs) Handles LnkCtasBancariasExcel.Click Private Sub LnkCtasBancariass_Click(sender As Object, e As EventArgs) Handles LnkCtasBancariasExcel.Click
ImprimeGridsProveedores("Excel", DTCuentasBancos, "RepProveedoresCtasBancarias") ImprimeGridsProveedores("Excel", DTCuentasBancos, "RepProveedoresCtasBancarias")
End Sub End Sub
Private Sub LinkCtasBancarias_Click(sender As Object, e As EventArgs) Handles LnkCtasBancariasPDF.Click Private Sub LinkCtasBancarias_Click(sender As Object, e As EventArgs) Handles LnkCtasBancariasPDF.Click
ImprimeGridsProveedores("PDF", DTCuentasBancos, "RepProveedoresCtasBancarias") ImprimeGridsProveedores("PDF", DTCuentasBancos, "RepProveedoresCtasBancarias")
End Sub End Sub
Private Sub LnkExportarHistorialCompras_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasExcel.Click Private Sub LnkExportarHistorialCompras_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasExcel.Click
ImprimeGridsProveedores("Excel", DtProveedoresHistorial, "RepProveedoresHistorialCompras") ImprimeGridsProveedores("Excel", DtProveedoresHistorial, "RepProveedoresHistorialCompras")
End Sub End Sub
Private Sub LinkPDFHistorialCompras_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasPDF.Click Private Sub LinkPDFHistorialCompras_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasPDF.Click
ImprimeGridsProveedores("PDF", DtProveedoresHistorial, "RepProveedoresHistorialCompras") ImprimeGridsProveedores("PDF", DtProveedoresHistorial, "RepProveedoresHistorialCompras")
End Sub End Sub
Private Sub LnkCxPActivas_Click(sender As Object, e As EventArgs) Handles LnkCxPActivasExcel.Click Private Sub LnkCxPActivas_Click(sender As Object, e As EventArgs) Handles LnkCxPActivasExcel.Click
ImprimeGridsProveedores("Excel", DTCxP, "RepProveedoresCxPActivas") ImprimeGridsProveedores("Excel", DTCxP, "RepProveedoresCxPActivas")
End Sub End Sub
Private Sub LinkCxPActivas_Click(sender As Object, e As EventArgs) Handles LnkCxPActivasPDF.Click Private Sub LinkCxPActivas_Click(sender As Object, e As EventArgs) Handles LnkCxPActivasPDF.Click
ImprimeGridsProveedores("PDF", DTCxP, "RepProveedoresCxPActivas") ImprimeGridsProveedores("PDF", DTCxP, "RepProveedoresCxPActivas")
End Sub End Sub
Private Sub LnkComprasPagadas_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasPagadasExcel.Click Private Sub LnkComprasPagadas_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasPagadasExcel.Click
ImprimeGridsProveedores("Excel", DtCxPHistorial, "RepProveedoresComprasPagadas") ImprimeGridsProveedores("Excel", DtCxPHistorial, "RepProveedoresComprasPagadas")
End Sub End Sub
Private Sub LinkComprasPagadas_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasPagadasPDF.Click Private Sub LinkComprasPagadas_Click(sender As Object, e As EventArgs) Handles LnkHistorialComprasPagadasPDF.Click
ImprimeGridsProveedores("PDF", DtCxPHistorial, "RepProveedoresComprasPagadas") ImprimeGridsProveedores("PDF", DtCxPHistorial, "RepProveedoresComprasPagadas")
End Sub End Sub
Private Sub LnkNCxAplicar_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarExcel.Click Private Sub LnkNCxAplicar_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarExcel.Click
ImprimeGridsProveedores("Excel", DtAntNC, "RepProveedoresNCxAplicar") ImprimeGridsProveedores("Excel", DtAntNC, "RepProveedoresNCxAplicar")
End Sub End Sub
Private Sub LinkNCxAplicar_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarPDF.Click Private Sub LinkNCxAplicar_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarPDF.Click
ImprimeGridsProveedores("PDF", DtAntNC, "RepProveedoresNCxAplicar") ImprimeGridsProveedores("PDF", DtAntNC, "RepProveedoresNCxAplicar")
End Sub End Sub
Private Sub LnkNCxAplicarHistorial_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarHistorialExcel.Click Private Sub LnkNCxAplicarHistorial_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarHistorialExcel.Click
ImprimeGridsProveedores("Excel", DtAntNCH, "RepProveedoresNCxAplicar") ImprimeGridsProveedores("Excel", DtAntNCH, "RepProveedoresNCxAplicar")
End Sub End Sub
Private Sub LinkNCxAplicarHistorial_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarHistorialPDF.Click Private Sub LinkNCxAplicarHistorial_Click(sender As Object, e As EventArgs) Handles LnkNCxAplicarHistorialPDF.Click
ImprimeGridsProveedores("PDF", DtAntNCH, "RepProveedoresNCxAplicar") ImprimeGridsProveedores("PDF", DtAntNCH, "RepProveedoresNCxAplicar")
End Sub End Sub
Private Sub ImprimeGridsProveedores(Formato As String, DtTemp As DataTable, NombreFormato As String) Private Sub ImprimeGridsProveedores(Formato As String, DtTemp As DataTable, NombreFormato As String)
If DtTemp IsNot Nothing And DtTemp.Rows.Count > 0 Then If DtTemp IsNot Nothing And DtTemp.Rows.Count > 0 Then
Dim params As New List(Of ReportParameter) Dim params As New List(Of ReportParameter)
@@ -6148,7 +6148,7 @@ Partial Class Compras_Proveedores
ImprimirPDF("Empresas\Grales\Formatos\" & NombreFormato & ".rdlc", DtTemp, params, NombreFormato & "_" & Now.ToString("yyyyMMddhhmmss"), Formato:=Formato) ImprimirPDF("Empresas\Grales\Formatos\" & NombreFormato & ".rdlc", DtTemp, params, NombreFormato & "_" & Now.ToString("yyyyMMddhhmmss"), Formato:=Formato)
Else Else
Alert("No se encontró información.", TipoMensaje.MsgAdvertencia) Alert("No se encontró información.", TipoMensaje.MsgAdvertencia)
End If End If
End Sub End Sub
#End Region #End Region

View File

@@ -322,7 +322,7 @@ Partial Class Compras_RepComprasAFDetalle
Dim ObjTareas As New ClsOIEventos Dim ObjTareas As New ClsOIEventos
Dim RutaPDF As String Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepComprasAFDetalle.rdlc" RutaPDF = $"{Ruta}\Formatos\RepComprasAFDetalle.rdlc"
If Not File.Exists(RutaPDF) Then If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas\Grales\Formatos\RepComprasAFDetalle.rdlc" RutaPDF = "Empresas\Grales\Formatos\RepComprasAFDetalle.rdlc"

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -240,7 +247,7 @@ public partial class Compras_RepCxPPeriodo : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Registro</b>: {0}", DdlUsuarioRegistro.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Registro</b>: {0}", DdlUsuarioRegistro.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Estatus Compra</b>: {0}", DdlEstatusCompra.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepCxPPeriodo.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepCxPPeriodo.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -37,11 +37,11 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As DataTable) Set(value As DataTable)
ViewState("DTHeaders") = value ViewState("DTHeaders") = value
End Set End Set
End Property End Property
#Region "UPLOAD" #Region "UPLOAD"
Property CveDocumentacionElectronica As Integer Property CveDocumentacionElectronica As Integer
Get Get
If ViewState("CvePersonalClienteDocumentacion") Is Nothing Then If ViewState("CvePersonalClienteDocumentacion") Is Nothing Then
@@ -53,8 +53,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Integer) Set(value As Integer)
ViewState("CvePersonalClienteDocumentacion") = value ViewState("CvePersonalClienteDocumentacion") = value
End Set End Set
End Property End Property
Property CveDocumentacion As Integer Property CveDocumentacion As Integer
Get Get
If ViewState("CveDocumentacion") Is Nothing Then If ViewState("CveDocumentacion") Is Nothing Then
@@ -66,8 +66,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Integer) Set(value As Integer)
ViewState("CveDocumentacion") = value ViewState("CveDocumentacion") = value
End Set End Set
End Property End Property
Property Documentacion As String Property Documentacion As String
Get Get
If ViewState("Documentacion") Is Nothing Then If ViewState("Documentacion") Is Nothing Then
@@ -79,8 +79,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As String) Set(value As String)
ViewState("Documentacion") = value ViewState("Documentacion") = value
End Set End Set
End Property End Property
Property AdjuntoDocumentacion As String Property AdjuntoDocumentacion As String
Get Get
If ViewState("AdjuntoDocumentacion") Is Nothing Then If ViewState("AdjuntoDocumentacion") Is Nothing Then
@@ -92,10 +92,10 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As String) Set(value As String)
ViewState("AdjuntoDocumentacion") = value ViewState("AdjuntoDocumentacion") = value
End Set End Set
End Property End Property
Property DiasVigencia As Integer Property DiasVigencia As Integer
Get Get
If ViewState("DiasVigencia") Is Nothing Then If ViewState("DiasVigencia") Is Nothing Then
@@ -107,8 +107,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Integer) Set(value As Integer)
ViewState("DiasVigencia") = value ViewState("DiasVigencia") = value
End Set End Set
End Property End Property
Property AplicaFechaVencimiento As Boolean Property AplicaFechaVencimiento As Boolean
Get Get
If ViewState("AplicaFechaVencimiento") Is Nothing Then If ViewState("AplicaFechaVencimiento") Is Nothing Then
@@ -120,8 +120,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Boolean) Set(value As Boolean)
ViewState("AplicaFechaVencimiento") = value ViewState("AplicaFechaVencimiento") = value
End Set End Set
End Property End Property
Private Property FechaVigencia As Date Private Property FechaVigencia As Date
Get Get
If ViewState("FechaVigencia") Is Nothing Then If ViewState("FechaVigencia") Is Nothing Then
@@ -133,8 +133,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Date) Set(value As Date)
ViewState("FechaVigencia") = value ViewState("FechaVigencia") = value
End Set End Set
End Property End Property
Property Estatus As Integer Property Estatus As Integer
Get Get
If ViewState("Estatus") Is Nothing Then If ViewState("Estatus") Is Nothing Then
@@ -146,8 +146,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Integer) Set(value As Integer)
ViewState("Estatus") = value ViewState("Estatus") = value
End Set End Set
End Property End Property
Property ObservacionDocumentacion As String Property ObservacionDocumentacion As String
Get Get
If ViewState("ObservacionDocumentacion") Is Nothing Then If ViewState("ObservacionDocumentacion") Is Nothing Then
@@ -159,8 +159,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As String) Set(value As String)
ViewState("ObservacionDocumentacion") = value ViewState("ObservacionDocumentacion") = value
End Set End Set
End Property End Property
Private Property FechaLimite As Date Private Property FechaLimite As Date
Get Get
If ViewState("FechaLimite") Is Nothing Then If ViewState("FechaLimite") Is Nothing Then
@@ -173,9 +173,9 @@ Partial Class Proveedores_RepDocumentacionProveedor
ViewState("FechaLimite") = value ViewState("FechaLimite") = value
End Set End Set
End Property End Property
Property CveProveedor As Integer Property CveProveedor As Integer
Get Get
If ViewState("CveProveedor") Is Nothing Then If ViewState("CveProveedor") Is Nothing Then
@@ -187,17 +187,17 @@ Partial Class Proveedores_RepDocumentacionProveedor
Set(value As Integer) Set(value As Integer)
ViewState("CveProveedor") = value ViewState("CveProveedor") = value
End Set End Set
End Property End Property
#End Region #End Region
Private Sub Proveedores_RepDocumentacionProveedor_Load(sender As Object, e As EventArgs) Handles Me.Load Private Sub Proveedores_RepDocumentacionProveedor_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then If Not Page.IsPostBack Then
CargaCombos() CargaCombos()
'TxtFechaI.Text = Now.AddMonths(-3).ToString("dd/MM/yyyy") 'TxtFechaI.Text = Now.AddMonths(-3).ToString("dd/MM/yyyy")
'TxtFechaF.Text = Now.ToString("dd/MM/yyyy") 'TxtFechaF.Text = Now.ToString("dd/MM/yyyy")
TxtFechaI.Text = "" TxtFechaI.Text = ""
TxtFechaF.Text = "" TxtFechaF.Text = ""
@@ -206,66 +206,66 @@ Partial Class Proveedores_RepDocumentacionProveedor
'ExportaExcel() 'ExportaExcel()
End Sub End Sub
Private Sub CargaCombos() Private Sub CargaCombos()
DdlProveedores.setEsWebService(True) DdlProveedores.setEsWebService(True)
DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.Attributes.Add("data-metodo", "getproveedores")
DdlProveedores.SelectedText = "Todos" DdlProveedores.SelectedText = "Todos"
DdlProveedores.SelectedValue = "-1" DdlProveedores.SelectedValue = "-1"
End Sub End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDocumentacion() CargaDocumentacion()
End Sub End Sub
Private Sub CargaDocumentacion() Private Sub CargaDocumentacion()
Dim CveProveedor As Integer = -1 Dim CveProveedor As Integer = -1
Dim FechaInicio As Date Dim FechaInicio As Date
Dim FechaFin As Date Dim FechaFin As Date
If TxtFechaI.Text = "" Then If TxtFechaI.Text = "" Then
FechaInicio = MinFecha FechaInicio = MinFecha
Else Else
FechaInicio = TxtFechaI.Text.ToDate FechaInicio = TxtFechaI.Text.ToDate
End If
If TxtFechaF.Text = "" Then
FechaFin = MaxFecha
Else
FechaFin = TxtFechaF.Text.ToDate
End If End If
If DdlProveedores.txtValue.Value.ToEntero > 0 Then If TxtFechaF.Text = "" Then
CveProveedor = DdlProveedores.txtValue.Value.ToEntero FechaFin = MaxFecha
Else
FechaFin = TxtFechaF.Text.ToDate
End If
If DdlProveedores.txtValue.Value.ToEntero > 0 Then
CveProveedor = DdlProveedores.txtValue.Value.ToEntero
End If End If
Dim obEDoc As New ClsEdocumentacion Dim obEDoc As New ClsEdocumentacion
If obEDoc.DocumentacionElectronicaAuditoriaGet(CveProveedor, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, 3, DdlEstatus.SelectedValue.ToEntero) Then If obEDoc.DocumentacionElectronicaAuditoriaGet(CveProveedor, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, 3, DdlEstatus.SelectedValue.ToEntero) Then
GvDocumentos.DataSource = obEDoc.DtResultados GvDocumentos.DataSource = obEDoc.DtResultados
Else Else
GvDocumentos.DataSource = Nothing GvDocumentos.DataSource = Nothing
End If End If
obEDoc.Dispose() obEDoc.Dispose()
GvDocumentos.DataBind() GvDocumentos.DataBind()
UPGvDocumentos.Update() UPGvDocumentos.Update()
End Sub End Sub
Protected Sub GvDocumentos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocumentos.RowDataBound Protected Sub GvDocumentos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocumentos.RowDataBound
@@ -275,18 +275,18 @@ Partial Class Proveedores_RepDocumentacionProveedor
Dim ImgDownLoad As Literal = e.Row.FCLiteral("ImgDownLoad") Dim ImgDownLoad As Literal = e.Row.FCLiteral("ImgDownLoad")
Dim ImgRequired As Literal = e.Row.FCLiteral("ImgRequired") Dim ImgRequired As Literal = e.Row.FCLiteral("ImgRequired")
Dim txtFechaLimite As TextBox = e.Row.FCTextBox("TxtFechaLimite") Dim txtFechaLimite As TextBox = e.Row.FCTextBox("TxtFechaLimite")
Dim txtFechaVigencia As TextBox = e.Row.FCTextBox("TxtFechaVigencia") Dim txtFechaVigencia As TextBox = e.Row.FCTextBox("TxtFechaVigencia")
Dim CveDocumentacionElectronica As Integer = e.Row.DataKey("CveDocumentacionElectronica").ToEntero Dim CveDocumentacionElectronica As Integer = e.Row.DataKey("CveDocumentacionElectronica").ToEntero
Dim ImgRechazar As LinkButton = e.Row.FCLinkButton("ImgRechazar") Dim ImgRechazar As LinkButton = e.Row.FCLinkButton("ImgRechazar")
Dim ImgAceptar As LinkButton = e.Row.FCLinkButton("ImgAceptar") Dim ImgAceptar As LinkButton = e.Row.FCLinkButton("ImgAceptar")
Dim requerido As Boolean = Boolean.Parse(e.Row.DBCampo("Requerido")) Dim requerido As Boolean = Boolean.Parse(e.Row.DBCampo("Requerido"))
'Dim chkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus") 'Dim chkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus")
'Dim RDBAcptar As RadioButton = e.Row.FCRadioButton("RDBAcptar") 'Dim RDBAcptar As RadioButton = e.Row.FCRadioButton("RDBAcptar")
'Dim RDBRechazar As RadioButton = e.Row.FCRadioButton("RDBRechazar") 'Dim RDBRechazar As RadioButton = e.Row.FCRadioButton("RDBRechazar")
Dim separado As Char() = ".".ToCharArray Dim separado As Char() = ".".ToCharArray
Dim array() As String = Adjunto.Split(separado) Dim array() As String = Adjunto.Split(separado)
Dim extencion As String = "" Dim extencion As String = ""
@@ -296,10 +296,10 @@ Partial Class Proveedores_RepDocumentacionProveedor
Dim AplicaFechaVencimiento As Boolean = If(e.Row.DataKey("AplicaFechaVencimiento").ToString = "1", True, False) Dim AplicaFechaVencimiento As Boolean = If(e.Row.DataKey("AplicaFechaVencimiento").ToString = "1", True, False)
txtFechaLimite.Visible = If(AplicaDiasLimite, True, False) txtFechaLimite.Visible = If(AplicaDiasLimite, True, False)
txtFechaVigencia.Visible = If(AplicaFechaVencimiento, True, False) txtFechaVigencia.Visible = If(AplicaFechaVencimiento, True, False)
If e.Row.DBCampo("FechaVigencia").ToString.Length > 0 Then If e.Row.DBCampo("FechaVigencia").ToString.Length > 0 Then
txtFechaVigencia.Text = e.Row.DBCampo("FechaVigencia").ToString.ToDate.ToString("dd/MM/yyyy") txtFechaVigencia.Text = e.Row.DBCampo("FechaVigencia").ToString.ToDate.ToString("dd/MM/yyyy")
If DateTime.Today > e.Row.DBCampo("FechaVigencia").ToString.ToDateTime Then If DateTime.Today > e.Row.DBCampo("FechaVigencia").ToString.ToDateTime Then
@@ -312,8 +312,8 @@ Partial Class Proveedores_RepDocumentacionProveedor
extencion = array(array.Length - 1) extencion = array(array.Length - 1)
End If End If
'If e.Row.DBCampo("Estatus").ToString.ToEntero = 3 Then 'If e.Row.DBCampo("Estatus").ToString.ToEntero = 3 Then
' RDBAcptar.Checked = True ' RDBAcptar.Checked = True
'Else 'Else
' chkEstatus.Checked = False ' chkEstatus.Checked = False
'End If 'End If
@@ -332,30 +332,30 @@ Partial Class Proveedores_RepDocumentacionProveedor
Dim linkDescarga = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "/Edoc/Proveedor/" & e.Row.DataKey("CveProveedor") & "/" & Adjunto Dim linkDescarga = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "/Edoc/Proveedor/" & e.Row.DataKey("CveProveedor") & "/" & Adjunto
Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "Edoc/Proveedor/" & e.Row.DataKey("CveProveedor") & "/" & Adjunto Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "Edoc/Proveedor/" & e.Row.DataKey("CveProveedor") & "/" & Adjunto
If File.Exists(linkDescargaArchivo) Then If File.Exists(linkDescargaArchivo) Then
ImgDownLoad.Visible = True ImgDownLoad.Visible = True
If extencion.Length > 0 Then If extencion.Length > 0 Then
ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica & "." & extencion) ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica & "." & extencion)
Else Else
ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica) ImgDownLoad.Text = String.Format(" <a class='btn btn-circle btn-sm blue' href='{0}' target='_black' download='{1}'><i class='fa fa-download' title='Descargar documento'></i></a>", linkDescarga, CveDocumentacionElectronica)
End If End If
If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(2, 3) Then If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(2, 3) Then
ImgRechazar.Visible = True ImgRechazar.Visible = True
End If End If
If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(2) Then If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(2) Then
ImgAceptar.Visible = True ImgAceptar.Visible = True
End If End If
'If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(3) Then 'If e.Row.DBCampo("Estatus").ToString.ToEntero.Contiene(3) Then
' chkEstatus.Checked = True ' chkEstatus.Checked = True
'End If 'End If
Else Else
ImgDownLoad.Visible = False ImgDownLoad.Visible = False
End If End If
@@ -370,116 +370,116 @@ Partial Class Proveedores_RepDocumentacionProveedor
'chkEstatus.Checked = ImgDownLoad.Visible 'chkEstatus.Checked = ImgDownLoad.Visible
End If End If
End Sub End Sub
Protected Sub ImgRechazar_Click(sender As Object, e As EventArgs) Protected Sub ImgRechazar_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim Obsebaciones As String = GvRow.FCTextBox("TxtObservaciones").Text Dim Obsebaciones As String = GvRow.FCTextBox("TxtObservaciones").Text
If Obsebaciones.Trim.Length = 0 Then If Obsebaciones.Trim.Length = 0 Then
Alert("Debe de proporcionar una obserbación o motivo de rechazo.", TipoMensaje.MsgAdvertencia) Alert("Debe de proporcionar una obserbación o motivo de rechazo.", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub
End If End If
Dim Correo As String = GvRow.DataKey("ContactoMail") Dim Correo As String = GvRow.DataKey("ContactoMail")
Dim Documentacion As String = GvRow.DataKey("Documentacion") Dim Documentacion As String = GvRow.DataKey("Documentacion")
Dim Obserbaciones As String = GvRow.FCTextBox("TxtObservaciones").Text Dim Obserbaciones As String = GvRow.FCTextBox("TxtObservaciones").Text
Dim Adjunto As String = GvRow.DataKey("Adjunto") Dim Adjunto As String = GvRow.DataKey("Adjunto")
Dim CveProveedor As Integer = GvRow.DataKey("CveProveedor").ToEntero Dim CveProveedor As Integer = GvRow.DataKey("CveProveedor").ToEntero
Dim Archivo As String = UsuarioActual.Empresa.Ruta & $"Edoc\Proveedor\{CveProveedor}\{Adjunto}" Dim Archivo As String = UsuarioActual.Empresa.Ruta & $"Edoc\Proveedor\{CveProveedor}\{Adjunto}"
Dim objEdoc As New ClsEdocumentacion Dim objEdoc As New ClsEdocumentacion
Dim ErrorProceso As Boolean = False Dim ErrorProceso As Boolean = False
objEdoc.IniciaTransacSQL() objEdoc.IniciaTransacSQL()
If objEdoc.DocumentacionElectronicaUpdate(GvRow.DataKey("CveDocumentacionElectronica").ToEntero, GvRow.DataKey("CveDocumentacion").ToEntero, -1, -1, GvRow.DataKey("CveProveedor").ToEntero, 1, If objEdoc.DocumentacionElectronicaUpdate(GvRow.DataKey("CveDocumentacionElectronica").ToEntero, GvRow.DataKey("CveDocumentacion").ToEntero, -1, -1, GvRow.DataKey("CveProveedor").ToEntero, 1,
If(Obsebaciones.Trim.Length > 0, Obsebaciones, GvRow.DataKey("Observacion")), "-1", If(Obsebaciones.Trim.Length > 0, Obsebaciones, GvRow.DataKey("Observacion")), "-1",
UsuarioActual.CveUsuario, GvRow.DataKey("FechaLimite").ToDate, GvRow.DataKey("FechaVigencia").ToDate) Then UsuarioActual.CveUsuario, GvRow.DataKey("FechaLimite").ToDate, GvRow.DataKey("FechaVigencia").ToDate) Then
Try Try
File.Delete(Archivo) File.Delete(Archivo)
Catch ex As Exception Catch ex As Exception
ErrorProceso = True ErrorProceso = True
End Try End Try
If Not ErrorProceso Then If Not ErrorProceso Then
Dim Cuerpo As String = $"<p>Por medio del presente correo se le notifica que el documento <b>{Documentacion}</b> &nbsp; ha sido rechazado por la siguiente causa: <b>{Obserbaciones}</b> &nbsp;por favor ingrese nuevamente al portal &nbsp;y agr&eacute;guelo nuevamente.&nbsp;</p> Dim Cuerpo As String = $"<p>Por medio del presente correo se le notifica que el documento <b>{Documentacion}</b> &nbsp; ha sido rechazado por la siguiente causa: <b>{Obserbaciones}</b> &nbsp;por favor ingrese nuevamente al portal &nbsp;y agr&eacute;guelo nuevamente.&nbsp;</p>
<p>Atentamente:</p> <p>Atentamente:</p>
<p>Saludos.</p>" <p>Saludos.</p>"
If Not MandaCorreo(Correo, $"{ UsuarioActual.Empresa.Empresa } documento Rechazado", Cuerpo) Then If Not MandaCorreo(Correo, $"{ UsuarioActual.Empresa.Empresa } documento Rechazado", Cuerpo) Then
ErrorProceso = True ErrorProceso = True
End If End If
Alert($"El documento {GvRow.DataKey("Documentacion") } fue rechazado.") Alert($"El documento {GvRow.DataKey("Documentacion") } fue rechazado.")
End If End If
Else Else
ErrorProceso = True ErrorProceso = True
End If End If
If ErrorProceso Then If ErrorProceso Then
objEdoc.RollBack() objEdoc.RollBack()
Else Else
objEdoc.Commit() objEdoc.Commit()
End If End If
objEdoc.Dispose() objEdoc.Dispose()
CargaDocumentacion() CargaDocumentacion()
End Sub End Sub
Protected Sub ImgAceptar_Click(sender As Object, e As EventArgs) Protected Sub ImgAceptar_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim objEdoc As New ClsEdocumentacion Dim objEdoc As New ClsEdocumentacion
If objEdoc.DocumentacionElectronicaUpdate(GvRow.DataKey("CveDocumentacionElectronica").ToEntero, GvRow.DataKey("CveDocumentacion").ToEntero, -1, -1, GvRow.DataKey("CveProveedor").ToEntero, 3, If objEdoc.DocumentacionElectronicaUpdate(GvRow.DataKey("CveDocumentacionElectronica").ToEntero, GvRow.DataKey("CveDocumentacion").ToEntero, -1, -1, GvRow.DataKey("CveProveedor").ToEntero, 3,
"", "-1", UsuarioActual.CveUsuario, GvRow.DataKey("FechaLimite").ToDate, GvRow.DataKey("FechaVigencia").ToDate) Then "", "-1", UsuarioActual.CveUsuario, GvRow.DataKey("FechaLimite").ToDate, GvRow.DataKey("FechaVigencia").ToDate) Then
Alert("Dcumento Aceptado.") Alert("Dcumento Aceptado.")
End If End If
objEdoc.Dispose() objEdoc.Dispose()
CargaDocumentacion() CargaDocumentacion()
End Sub End Sub
Private Function MandaCorreo(Para As String, Asunto As String, Body As String) As Boolean Private Function MandaCorreo(Para As String, Asunto As String, Body As String) As Boolean
Dim Respuesta As Boolean = False Dim Respuesta As Boolean = False
Dim Mail As New ClsSisMail() Dim Mail As New ClsSisMail()
Para = If(Para IsNot Nothing, Para, "") Para = If(Para IsNot Nothing, Para, "")
Asunto = If(Asunto IsNot Nothing, Asunto, "") Asunto = If(Asunto IsNot Nothing, Asunto, "")
Body = If(Body IsNot Nothing, Body, "") Body = If(Body IsNot Nothing, Body, "")
Dim ListaArchivos As New List(Of ClsSisMail.ArchivoMail) Dim ListaArchivos As New List(Of ClsSisMail.ArchivoMail)
If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=ListaArchivos) Then If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=ListaArchivos) Then
Respuesta = True Respuesta = True
End If End If
Return Respuesta Return Respuesta
End Function End Function
Public Sub UploadModal_ClickDocumentacion(sender As Object, e As EventArgs) Public Sub UploadModal_ClickDocumentacion(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
' Dim chkEstatus As CheckBox ' Dim chkEstatus As CheckBox
CveDocumentacionElectronica = GvRow.DataKey("CveDocumentacionElectronica").ToString.ToEntero CveDocumentacionElectronica = GvRow.DataKey("CveDocumentacionElectronica").ToString.ToEntero
CveDocumentacion = GvRow.DataKey("CveDocumentacion").ToString.ToEntero CveDocumentacion = GvRow.DataKey("CveDocumentacion").ToString.ToEntero
Documentacion = GvRow.DataKey("Documentacion") Documentacion = GvRow.DataKey("Documentacion")
@@ -516,95 +516,95 @@ Partial Class Proveedores_RepDocumentacionProveedor
RegistraScript("$('#ModalUploadDoc').modal({ backdrop: 'static', keyboard: false});") RegistraScript("$('#ModalUploadDoc').modal({ backdrop: 'static', keyboard: false});")
End Sub End Sub
Protected Sub BtnUploadFileDoc_Click(sender As Object, e As EventArgs) Handles btnUploadFileDoc.Click Protected Sub BtnUploadFileDoc_Click(sender As Object, e As EventArgs) Handles btnUploadFileDoc.Click
Dim FileExtension As String = "-1" Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
Dim Filename As String = "" Dim Filename As String = ""
Dim ErrorProceso As Boolean = False Dim ErrorProceso As Boolean = False
If AplicaFechaVencimiento And DiasVigencia > 0 Then If AplicaFechaVencimiento And DiasVigencia > 0 Then
FechaVigencia = DateTime.Today.AddDays(DiasVigencia) FechaVigencia = DateTime.Today.AddDays(DiasVigencia)
End If End If
For Each fileItem As Archivo In Filesgral For Each fileItem As Archivo In Filesgral
Try Try
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Dim tempArray() As String Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
Dim TempCveDocumentacionElectronica As Integer = 0 Dim TempCveDocumentacionElectronica As Integer = 0
Dim objEdoc As New ClsEdocumentacion Dim objEdoc As New ClsEdocumentacion
objEdoc.IniciaTransacSQL() objEdoc.IniciaTransacSQL()
If CveDocumentacionElectronica = -1 Then If CveDocumentacionElectronica = -1 Then
CveDocumentacionElectronica = objEdoc.DocumentacionElectronicaAdd(CveDocumentacion, -1, -1, CveProveedor, 2, ObservacionDocumentacion, "-1", UsuarioActual.CveUsuario, FechaLimite, FechaVigencia) CveDocumentacionElectronica = objEdoc.DocumentacionElectronicaAdd(CveDocumentacion, -1, -1, CveProveedor, 2, ObservacionDocumentacion, "-1", UsuarioActual.CveUsuario, FechaLimite, FechaVigencia)
If CveDocumentacionElectronica > 0 Then If CveDocumentacionElectronica > 0 Then
If Not objEdoc.DocumentacionElectronicaUpdate(CveDocumentacionElectronica, CveDocumentacion, -1, -1, CveProveedor, 2, ObservacionDocumentacion, CveDocumentacionElectronica & "." & FileExtension, UsuarioActual.CveUsuario, FechaLimite, FechaVigencia) Then If Not objEdoc.DocumentacionElectronicaUpdate(CveDocumentacionElectronica, CveDocumentacion, -1, -1, CveProveedor, 2, ObservacionDocumentacion, CveDocumentacionElectronica & "." & FileExtension, UsuarioActual.CveUsuario, FechaLimite, FechaVigencia) Then
ErrorProceso = True ErrorProceso = True
End If End If
End If End If
Else Else
If Not objEdoc.DocumentacionElectronicaUpdate(CveDocumentacionElectronica, CveDocumentacion, -1, -1, CveProveedor, 2, ObservacionDocumentacion, CveDocumentacionElectronica & "." & FileExtension, UsuarioActual.CveUsuario, FechaLimite, FechaVigencia) Then If Not objEdoc.DocumentacionElectronicaUpdate(CveDocumentacionElectronica, CveDocumentacion, -1, -1, CveProveedor, 2, ObservacionDocumentacion, CveDocumentacionElectronica & "." & FileExtension, UsuarioActual.CveUsuario, FechaLimite, FechaVigencia) Then
ErrorProceso = True ErrorProceso = True
End If End If
End If End If
If Not ErrorProceso = True Then If Not ErrorProceso = True Then
Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\" & CveDocumentacionElectronica & "." & FileExtension Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\" & CveDocumentacionElectronica & "." & FileExtension
Dim rutaAdjuntoAnterior As String = UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\" & AdjuntoDocumentacion Dim rutaAdjuntoAnterior As String = UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\" & AdjuntoDocumentacion
Try Try
If Not System.IO.Directory.Exists(UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\") Then If Not System.IO.Directory.Exists(UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\") Then
System.IO.Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\") System.IO.Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "Edoc\Proveedor\" & CveProveedor & "\")
End If End If
If File.Exists(rutaAdjuntoAnterior) And AdjuntoDocumentacion.Trim.Length > 0 Then If File.Exists(rutaAdjuntoAnterior) And AdjuntoDocumentacion.Trim.Length > 0 Then
File.Delete(rutaAdjuntoAnterior) File.Delete(rutaAdjuntoAnterior)
End If End If
If System.IO.File.Exists(rutaDestino) Then If System.IO.File.Exists(rutaDestino) Then
System.IO.File.Delete(rutaDestino) System.IO.File.Delete(rutaDestino)
End If End If
System.IO.File.Move(fileItem.FileUrl, rutaDestino) System.IO.File.Move(fileItem.FileUrl, rutaDestino)
Catch ex As Exception Catch ex As Exception
GuardaLog($"Error al gaurdar documento (moviendo archivo digital) --> Error{ ex.StackTrace}") GuardaLog($"Error al gaurdar documento (moviendo archivo digital) --> Error{ ex.StackTrace}")
ErrorProceso = True ErrorProceso = True
End Try End Try
End If End If
If Not ErrorProceso Then If Not ErrorProceso Then
objEdoc.Commit() objEdoc.Commit()
Alert("Documento cargado correctamente") Alert("Documento cargado correctamente")
Else Else
objEdoc.RollBack() objEdoc.RollBack()
Alert("Error al cargar archivo", TipoMensaje.MsgError) Alert("Error al cargar archivo", TipoMensaje.MsgError)
End If End If
objEdoc.Dispose() objEdoc.Dispose()
CargaDocumentacion() CargaDocumentacion()
TxtFileDocumentacion.Text = "" TxtFileDocumentacion.Text = ""
UPModalUploadDoc.Update() UPModalUploadDoc.Update()
Catch ex As Exception Catch ex As Exception
OnError("Error al cargar archivo", ex) OnError("Error al cargar archivo", ex)
End Try End Try
@@ -613,12 +613,12 @@ Partial Class Proveedores_RepDocumentacionProveedor
RegistraScript("$('#ModalUploadDoc').modal('hide')", "hidemodal3") RegistraScript("$('#ModalUploadDoc').modal('hide')", "hidemodal3")
End Sub End Sub
End Class End Class

View File

@@ -217,7 +217,7 @@ public partial class Compras_RepGastosFijos : ClsPaginas
string FechaInicio = DateTime.Parse(TxtFechaI.Text).ToShortDateString(); string FechaInicio = DateTime.Parse(TxtFechaI.Text).ToShortDateString();
string FechaFinal = DateTime.Parse(TxtFechaF.Text).ToShortDateString(); string FechaFinal = DateTime.Parse(TxtFechaF.Text).ToShortDateString();
string Ruta = string.Format("{0}Empresas/{1}/", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa); string Ruta = string.Format("{0}Empresas/{1}/", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa);
string RutaPDF = string.Format("{0}/Formatos/RepGastosFijos.rdlc", Ruta); string RutaPDF = string.Format("{0}/Formatos/RepGastosFijos.rdlc", Ruta);
if (!File.Exists(RutaPDF)) if (!File.Exists(RutaPDF))

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -236,7 +243,7 @@ public partial class Compras_RepPagado : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Banco</b>: {0}", DdlBanco.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepRecuperacion.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepRecuperacion.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -267,7 +274,7 @@ public partial class Compras_RepPágadoDetalle : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Banco</b>: {0}", DdlBanco.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepPagadoDetalle.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepPagadoDetalle.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -285,7 +292,7 @@ public partial class Compras_RepPagadoPeriodo : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Banco</b>: {0}", DdlBanco.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepPagadoPeriodo.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepPagadoPeriodo.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -618,8 +618,8 @@ Partial Class Compras_eFacturas
txtFechaF.Text = Now.ToShortDateString 'txtFechaI.Text.ToDate.AddMonths(1).AddDays(-1).ToShortDateString txtFechaF.Text = Now.ToShortDateString 'txtFechaI.Text.ToDate.AddMonths(1).AddDays(-1).ToShortDateString
Destino = String.Format("{0}Compras\", UsuarioActual.Empresa.Ruta) 'string.format("{0}Empresas\{1}\Compras\", AppDomain.CurrentDomain.BaseDirectory ,UsuarioActual.CveEmpresa & "\Compras\" Destino = String.Format("{0}Compras\", UsuarioActual.Empresa.Ruta) 'string.format("{0}Empresas\{1}\Compras\", ModExtensiones.DirectorioBaseEmpresas ,UsuarioActual.CveEmpresa & "\Compras\"
Ejecutable = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Utilerias\ADSUtilerias.exe") Ejecutable = "C:\Proyectos\wwwSIG\Utilerias\ADSUtilerias.exe"
Form.DefaultButton = BtnConsultar.UniqueID Form.DefaultButton = BtnConsultar.UniqueID
DdlResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) DdlResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa))
@@ -1202,7 +1202,7 @@ Partial Class Compras_eFacturas
End Sub End Sub
Protected Sub LnkNoRecibidas_Click(sender As Object, e As EventArgs, Optional ValidaRowCount As Boolean = False) Handles LnkNoRecibias.Click Protected Sub LnkNoRecibidas_Click(sender As Object, e As EventArgs, Optional ValidaRowCount As Boolean = False) Handles LnkNoRecibias.Click
Dim DtNoRecibidas As New DataTable Dim DtNoRecibidas As New DataTable
Dim Ruta As String = String.Format("{0}\Empresas\{1}\Compras\NoRecibidas-{1}.xml", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) Dim Ruta As String = String.Format("{0}\Empresas\{1}\Compras\NoRecibidas-{1}.xml", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim Str As New StringBuilder Dim Str As New StringBuilder
If IO.File.Exists(Ruta) Then If IO.File.Exists(Ruta) Then
DtNoRecibidas.ReadXml(Ruta) DtNoRecibidas.ReadXml(Ruta)
@@ -1269,7 +1269,7 @@ Partial Class Compras_eFacturas
End If End If
ObjDatos.Dispose() ObjDatos.Dispose()
If DT IsNot Nothing Then If dt IsNot Nothing Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
@@ -1329,6 +1329,7 @@ Partial Class Compras_eFacturas
filemove = fileItem.filename filemove = fileItem.filename
If filemove <> "" Then If filemove <> "" Then
'filemove.FilesMove("", String.Format("{0}\Temp\Facturas", UsuarioActual.Empresa.Ruta))
filemove.FilesMove("", String.Format("Empresas\{0}\Temp\Facturas", UsuarioActual.CveEmpresa)) filemove.FilesMove("", String.Format("Empresas\{0}\Temp\Facturas", UsuarioActual.CveEmpresa))
'AGREGA XML A LA LISTA 'AGREGA XML A LA LISTA
If FileExtension.ToUpper = "XML" Then If FileExtension.ToUpper = "XML" Then
@@ -1339,7 +1340,7 @@ Partial Class Compras_eFacturas
Next Next
Dim fileEntries As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp\Facturas", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) Dim fileEntries As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp\Facturas", Extensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
Dim ListaDirectoriosTemporales As New List(Of String) Dim ListaDirectoriosTemporales As New List(Of String)
Dim ListaComprimidos As New List(Of String) Dim ListaComprimidos As New List(Of String)
@@ -1355,7 +1356,7 @@ Partial Class Compras_eFacturas
ListaComprimidos.Add(filePath) ListaComprimidos.Add(filePath)
'CREO DIRECTORIO ALEATORIO 'CREO DIRECTORIO ALEATORIO
Dim Aleatorio As New Random Dim Aleatorio As New Random
Dim TempDirectorio As String = String.Format("{0}Empresas\{1}\{2}\{3}{4}", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa, "Temp\Facturas", Date.Now.Ticks, Aleatorio.Next(100, 999)) Dim TempDirectorio As String = String.Format("{0}\{1}\{2}{3}", UsuarioActual.Empresa.Ruta, "Temp\Facturas", Date.Now.Ticks, Aleatorio.Next(100, 999))
Directory.CreateDirectory(TempDirectorio) Directory.CreateDirectory(TempDirectorio)
ListaDirectoriosTemporales.Add(TempDirectorio) ListaDirectoriosTemporales.Add(TempDirectorio)
'AGREGA DIRECTORIO A LA LISTA 'AGREGA DIRECTORIO A LA LISTA
@@ -1370,7 +1371,7 @@ Partial Class Compras_eFacturas
Next Next
Dim Arreglo As New ArrayList() Dim Arreglo As New ArrayList()
' Dim Archivos As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) ' Dim Archivos As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
'Dim NombreArchivo As String 'Dim NombreArchivo As String
Dim Bandera = True Dim Bandera = True
Dim Retorno = "" Dim Retorno = ""
@@ -1513,9 +1514,9 @@ Partial Class Compras_eFacturas
' If GeneraPDF(Fact.DirectorioTemporal, Fact) Then ' If GeneraPDF(Fact.DirectorioTemporal, Fact) Then
' ListPDF.Add(Fact.ArchivoPDF) ' ListPDF.Add(Fact.ArchivoPDF)
' Retorno = AgregaFactura(Fact) ' Retorno = AgregaFactura(Fact)
' ' ModExtensiones.GuardaLog("'*******se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno) ' ' ModExtensiones.GuardaLog("'*******se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno)
' Else ' Else
' ' ModExtensiones.GuardaLog("'*******no se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno) ' ' ModExtensiones.GuardaLog("'*******no se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno)
' End If ' End If
' End If ' End If
@@ -1549,7 +1550,7 @@ Partial Class Compras_eFacturas
' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10) ' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10)
strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString) strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString)
Try Try
ArchivoW = New StreamWriter(String.Format("{0}\Logefacturas.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) ArchivoW = New StreamWriter(String.Format("{0}\Logefacturas.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8)
Catch ex As UnauthorizedAccessException Catch ex As UnauthorizedAccessException
'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError) 'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError)
Exit Sub Exit Sub
@@ -1650,7 +1651,7 @@ Partial Class Compras_eFacturas
DirectoryExistsCreate(String.Format("{0}Compras\{1}", UsuarioActual.Empresa.Ruta, RFC.ToUpper)) DirectoryExistsCreate(String.Format("{0}Compras\{1}", UsuarioActual.Empresa.Ruta, RFC.ToUpper))
Try Try
File.Move(PathArchivo, String.Format("{0}Empresas\{1}\Compras\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, RFC.ToUpper, NombreArchivo)) File.Move(PathArchivo, String.Format("{0}Empresas\{1}\Compras\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, RFC.ToUpper, NombreArchivo))
Catch ex As Exception Catch ex As Exception
Alert("Error") Alert("Error")
End Try End Try
@@ -1668,11 +1669,11 @@ Partial Class Compras_eFacturas
For Each entry As ZipArchiveEntry In archive.Entries For Each entry As ZipArchiveEntry In archive.Entries
If entry.FullName.EndsWith(".xml", StringComparison.OrdinalIgnoreCase) Then If entry.FullName.EndsWith(".xml", StringComparison.OrdinalIgnoreCase) Then
'If File.Exists(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Directorio, entry.Name)) Then 'If File.Exists(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Directorio, entry.Name)) Then
' File.Delete(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Directorio, entry.Name)) ' File.Delete(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Directorio, entry.Name))
'End If 'End If
'entry.ExtractToFile(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Directorio, entry.Name)) 'entry.ExtractToFile(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Directorio, entry.Name))
If File.Exists(String.Format("{0}\{1}", Directorio, entry.Name)) Then If File.Exists(String.Format("{0}\{1}", Directorio, entry.Name)) Then
File.Delete(String.Format("{0}\{1}", Directorio, entry.Name)) File.Delete(String.Format("{0}\{1}", Directorio, entry.Name))
@@ -2253,7 +2254,7 @@ Partial Class Compras_eFacturas
Dim Retorno = False Dim Retorno = False
Dim NombreArchivo As String = TmpArchivoPDF Dim NombreArchivo As String = TmpArchivoPDF
Dim CadenaOriginal As String = (Convert.ToString((Convert.ToString((Convert.ToString("||1.0|") & FolioFiscal) + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|") & SelloCFDi) + "|") & NoSerieCertificado) + "||" Dim CadenaOriginal As String = (Convert.ToString((Convert.ToString((Convert.ToString("||1.0|") & FolioFiscal) + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|") & SelloCFDi) + "|") & NoSerieCertificado) + "||"
Dim RutaFormato As String = String.Format("{0}Empresas\Grales\Formatos\CFDI.rdlc", AppDomain.CurrentDomain.BaseDirectory) Dim RutaFormato As String = String.Format("{0}Empresas\Grales\Formatos\CFDI.rdlc", ModExtensiones.DirectorioBaseEmpresas)
'Dim ArchivoTempXLS As String = String.Format("{0}\GenSis{1}-{2}", Path.GetDirectoryName(ArchivoBaseXLS), Now.Ticks, Path.GetFileName(ArchivoBaseXLS)) 'Dim ArchivoTempXLS As String = String.Format("{0}\GenSis{1}-{2}", Path.GetDirectoryName(ArchivoBaseXLS), Now.Ticks, Path.GetFileName(ArchivoBaseXLS))
Dim Fiscal As String = String.Format("Domicilio Fiscal {0}{1} {2}{0}Col.{3}{0}CP. {4} {5},{6},{7}", vbCr, DomFisCalle, DomFisNoExt, DomFisCol, DomFisCP, Dim Fiscal As String = String.Format("Domicilio Fiscal {0}{1} {2}{0}Col.{3}{0}CP. {4} {5},{6},{7}", vbCr, DomFisCalle, DomFisNoExt, DomFisCol, DomFisCP,
@@ -2415,8 +2416,8 @@ Partial Class Compras_eFacturas
'Dim ObjProcess As Process = Nothing 'Dim ObjProcess As Process = Nothing
'Dim Mensajes As String = "" 'Dim Mensajes As String = ""
'Dim EjecutableUtilerias = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Utilerias\UtileriasAD.exe") 'Dim EjecutableUtilerias = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Utilerias\UtileriasAD.exe")
'Dim Folder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Empresas\") 'Dim Folder = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas\")
'Dim error1 As Boolean = False 'Dim error1 As Boolean = False
'Dim en As New CultureInfo("en-US") 'Dim en As New CultureInfo("en-US")
'Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en) 'Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en)
@@ -2445,8 +2446,8 @@ Partial Class Compras_eFacturas
'Private Sub ProcesaBuzon() 'Private Sub ProcesaBuzon()
' Dim ObjProcess As Process = Nothing ' Dim ObjProcess As Process = Nothing
' Dim Mensajes As String = "" ' Dim Mensajes As String = ""
' Dim EjecutableUtilerias = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Utilerias\ADSUtilerias.exe") ' Dim EjecutableUtilerias = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Utilerias\ADSUtilerias.exe")
' Dim Folder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Empresas\") ' Dim Folder = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas\")
' Dim error1 As Boolean = False ' Dim error1 As Boolean = False
' Dim en As New CultureInfo("en-US") ' Dim en As New CultureInfo("en-US")
' Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en) ' Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en)
@@ -2603,17 +2604,50 @@ Partial Class Compras_eFacturas
End Set End Set
End Property End Property
Property DT_ComprasSinIE As DataTable
Get
If ViewState("DT_ComprasSinIE") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DT_ComprasSinIE"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DT_ComprasSinIE") = value
End Set
End Property
'Property ComplementoComprasSinIE As String
' Get
' If ViewState("ComplementoComprasSinIE") Is Nothing Then
' Return ""
' Else
' Return ViewState("ComplementoComprasSinIE").ToString
' End If
' End Get
' Set(value As String)
' ViewState("ComplementoComprasSinIE") = value
' End Set
'End Property
#Region "V I N C U L A R P A G O" #Region "V I N C U L A R P A G O"
Protected Sub LnkAgregarPago_Click(sender As Object, e As EventArgs) Protected Sub LnkAgregarPago_Click(sender As Object, e As EventArgs)
Dim sbSinIE As New StringBuilder
HdnCveIE.Value = ""
MSGComplemento = "" MSGComplemento = ""
ViculacionConPUE = False ViculacionConPUE = False
ListaComprasPUE.Clear() ListaComprasPUE.Clear()
ComplementoConPUE = "" ComplementoConPUE = ""
DT_ComprasSinIE = New DataTable
Dim ListaComprasPUEInterna As New List(Of Integer) Dim ListaComprasPUEInterna As New List(Of Integer)
@@ -2646,7 +2680,7 @@ Partial Class Compras_eFacturas
Dim XMLDoc As New XmlDocument Dim XMLDoc As New XmlDocument
Dim Archivo As String = String.Format("{0}Empresas\{1}\Compras\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, gvRow.DataKey("RFCDe"), gvRow.DataKey("XML")) Dim Archivo As String = String.Format("{0}Empresas\{1}\Compras\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, gvRow.DataKey("RFCDe"), gvRow.DataKey("XML"))
If IO.File.Exists(Archivo) Then If IO.File.Exists(Archivo) Then
@@ -2809,6 +2843,26 @@ Partial Class Compras_eFacturas
End If End If
Next Next
DT_ComprasSinIE.Columns.Add("CveCompra", GetType(Integer))
DT_ComprasSinIE.Columns.Add("CveFactura", GetType(Integer))
DT_ComprasSinIE.Columns.Add("SerieFolioPago")
DT_ComprasSinIE.Columns.Add("SerieFolioCompra")
For Each dRow As DataRow In DTDocumentosRelacionados.Rows
Dim nRow As DataRow = DT_ComprasSinIE.NewRow
nRow("CveCompra") = dRow("CveCompra").ToString.ToEntero
' nRow("CveFactura") = dRow("CveFactura").ToString.ToEntero
nRow("SerieFolioPago") = $"{SeriePago}-{FolioPago}"
nRow("SerieFolioCompra") = dRow("SerieFolioCompra").ToString
DT_ComprasSinIE.Rows.Add(nRow)
Next
Else Else
Alert("Ocurrió un error al cargar los archivos de complementos pago", TipoMensaje.MsgError) Alert("Ocurrió un error al cargar los archivos de complementos pago", TipoMensaje.MsgError)
End If End If
@@ -2876,6 +2930,12 @@ Partial Class Compras_eFacturas
ImporteIES = ObjCompras.DtResultados.FiltraParametros("CveIE > 0").SUM("Importe") ImporteIES = ObjCompras.DtResultados.FiltraParametros("CveIE > 0").SUM("Importe")
DiferenciaImportes = Monto - ImporteIES DiferenciaImportes = Monto - ImporteIES
ObjCompras.Dispose() ObjCompras.Dispose()
@@ -2962,19 +3022,25 @@ Partial Class Compras_eFacturas
If ViculacionConPUE Then If ViculacionConPUE Then
For Each CveCompraVinculada In ListaComprasPUE For Each CveCompraVinculada In ListaComprasPUE
objEventos.AddEventoBitacora($"Complemento { ComplementoConPUE } vinculado manualmente (Compra PUE) ", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompraVinculada) objEventos.AddEventoBitacora($"Complemento { ComplementoConPUE } vinculado manualmente (Compra PUE) ", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompraVinculada)
Next Next
End If
If HdnCveIE.Value.ToEntero > 0 Then
For Each dRow As DataRow In DT_ComprasSinIE.Rows
objEventos.AddEventoBitacora($"Complemento { dRow("SerieFolioPago").ToString } vinculado manualmente a compra {dRow("SerieFolioCompra").ToString}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=dRow("CveCompra").ToString.ToEntero)
Next
End If End If
ObjCompra.Commit() ObjCompra.Commit()
Alert("El pago fue vinculado correctamente", TipoMensaje.MsgInformacion) Alert("El pago fue vinculado correctamente", TipoMensaje.MsgInformacion)
@@ -3079,7 +3145,7 @@ Partial Class Compras_eFacturas
Public Sub ImprimirPDFXML(NombreArchivo As String, rutaxml As String) Public Sub ImprimirPDFXML(NombreArchivo As String, rutaxml As String)
Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(rutaxml) Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(rutaxml)
Dim rutaReporte As String = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3.rdlc") 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 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() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID)
Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)()
@@ -3177,7 +3243,7 @@ Partial Class Compras_eFacturas
Dim strRFCde As String = gvrow.DataKey("RFCde") Dim strRFCde As String = gvrow.DataKey("RFCde")
Dim strXml As String Dim strXml As String
Dim strPDF As String Dim strPDF As String
Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde) Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde)
If Directory.Exists(dirbase) Then If Directory.Exists(dirbase) Then
strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML")) strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML"))
strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF")) strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF"))
@@ -3212,7 +3278,7 @@ Partial Class Compras_eFacturas
Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim strRFCde As String = gvrow.DataKey("RFCde") Dim strRFCde As String = gvrow.DataKey("RFCde")
Dim strPDF As String Dim strPDF As String
Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde) Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde)
strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF")) strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF"))
If File.Exists(strPDF) Then If File.Exists(strPDF) Then
Dim file As New System.IO.FileInfo(strPDF) Dim file As New System.IO.FileInfo(strPDF)
@@ -3236,7 +3302,7 @@ Partial Class Compras_eFacturas
Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim strRFCde As String = gvrow.DataKey("RFCde") Dim strRFCde As String = gvrow.DataKey("RFCde")
Dim strXml As String Dim strXml As String
Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde) Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde)
strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML")) strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML"))
If File.Exists(strXml) Then If File.Exists(strXml) Then
Dim file As New System.IO.FileInfo(strXml) Dim file As New System.IO.FileInfo(strXml)
@@ -3260,9 +3326,9 @@ Partial Class Compras_eFacturas
Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("XML"))) Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("XML")))
If Not IsNothing(objxml) Then If Not IsNothing(objxml) Then
Dim rutaReporte As String = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3.rdlc") Dim rutaReporte As String = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\Grales\Formatos\CFDIV3.rdlc")
If Not IsNothing(objxml.complemento.Pagos) Then If Not IsNothing(objxml.complemento.Pagos) Then
rutaReporte = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3Pago.rdlc") rutaReporte = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\Grales\Formatos\CFDIV3Pago.rdlc")
End If End If
Dim NombreArchivo As String = String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("PDF")) Dim NombreArchivo As String = String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("PDF"))

View File

@@ -644,11 +644,11 @@ Partial Class RegPoliza
' Excel.Visible = True ' Excel.Visible = True
' Excel.ScreenUpdating = True ' Excel.ScreenUpdating = True
' Excel.DisplayAlerts = True ' Excel.DisplayAlerts = True
' Dim ArchivoBase As New System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza.xlsm") ' Dim ArchivoBase As New System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza.xlsm")
' 'ArchivoBase.CopyTo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm", True) ' 'ArchivoBase.CopyTo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm", True)
' ArchivoBase.CopyTo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm", True) ' ArchivoBase.CopyTo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm", True)
' 'Dim ArchivoTemp As New System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm") ' 'Dim ArchivoTemp As New System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm")
' Dim ArchivoTemp As New System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm") ' Dim ArchivoTemp As New System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm")
' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) ' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
' Libro.Activate() ' Libro.Activate()
@@ -698,8 +698,8 @@ Partial Class RegPoliza
' Hoja.Range("K" & CeldaF & ":K" & CeldaF).Value = TmpDT.SUM("Abono").FormatoNumero ' Hoja.Range("K" & CeldaF & ":K" & CeldaF).Value = TmpDT.SUM("Abono").FormatoNumero
' 'Exportar PDF ' 'Exportar PDF
' 'Dim pdfFileOut As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".pdf" ' 'Dim pdfFileOut As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".pdf"
' Dim pdfFileOut As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".pdf" ' Dim pdfFileOut As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".pdf"
' Dim outputFileName As Object = pdfFileOut ' Dim outputFileName As Object = pdfFileOut
' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF ' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF
' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing) ' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing)
@@ -1742,7 +1742,7 @@ Partial Class RegPoliza
#Region "DESCARGAR E IMPRIMIR LISTADO" #Region "DESCARGAR E IMPRIMIR LISTADO"
Public Sub DescargarFormato() Public Sub DescargarFormato()
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoRegPoliza.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoRegPoliza.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
@@ -1878,7 +1878,7 @@ Partial Class RegPoliza
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb", "xls"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb", "xls"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else

View File

@@ -185,7 +185,7 @@ Partial Class Contabilidad_RepBalanzaComprobacion
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -192,7 +192,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -191,7 +191,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -312,7 +312,7 @@ Partial Class AC_RepVariacionHaciendaPublica
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -211,7 +211,7 @@ Partial Class Contratos_CatContratosPlantillas
Return nombreArchivoFormateado Return nombreArchivoFormateado
End Function End Function
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles LbDescargar.Click Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles LbDescargar.Click
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\Grales\Formatos\Plantilla.docx" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\Grales\Formatos\Plantilla.docx"
Dim Archivo As New System.IO.FileInfo(Path) Dim Archivo As New System.IO.FileInfo(Path)
If Archivo.Exists Then If Archivo.Exists Then

View File

@@ -1231,10 +1231,10 @@ Partial Class Contratos_Default
'Renombrar archivo 'Renombrar archivo
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
'ViewState("extencion") = FileExtension 'ViewState("extencion") = FileExtension
'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString) 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString)
@@ -1368,10 +1368,10 @@ Partial Class Contratos_Default
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
Try Try
If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
@@ -3169,7 +3169,7 @@ Partial Class Contratos_Default
#Region "SUBIR EXCEL" #Region "SUBIR EXCEL"
Public Sub DescargarFormato() Public Sub DescargarFormato()
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoContrato.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()
@@ -3417,7 +3417,7 @@ Partial Class Contratos_Default
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else
@@ -3741,7 +3741,7 @@ Partial Class Contratos_Default
#Region " IMPRIMIR DOCUMENTO - SABE " #Region " IMPRIMIR DOCUMENTO - SABE "
Public Sub DescarFormato(documento As String) Public Sub DescarFormato(documento As String)
Dim PathRoot As String = Server.MapPath("/") Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim PathSource As String Dim PathSource As String
Dim pathDesti As String Dim pathDesti As String

View File

@@ -597,10 +597,10 @@ Partial Class Contratos_Default
'Renombrar archivo 'Renombrar archivo
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
'ViewState("extencion") = FileExtension 'ViewState("extencion") = FileExtension
'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString) 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString)
@@ -643,10 +643,10 @@ Partial Class Contratos_Default
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
Try Try
If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
@@ -698,10 +698,10 @@ Partial Class Contratos_Default
UpGral.Update() UpGral.Update()
ObjContratos.Dispose() ObjContratos.Dispose()
End Sub End Sub
#End Region #End Region
#Region "INICIO DE PAGINA" #Region "INICIO DE PAGINA"
Protected Sub DdlTipoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) Protected Sub DdlTipoContrato_SelectedIndexChanged(sender As Object, e As EventArgs)
@@ -792,33 +792,33 @@ Partial Class Contratos_Default
UpGral.Update() UpGral.Update()
UPTipo.Update() UPTipo.Update()
End Sub End Sub
#End Region #End Region
#Region "TAB INFORMACION GENERAL" #Region "TAB INFORMACION GENERAL"
'Protected Sub CargarArchivo(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AFU.UploadedComplete 'Protected Sub CargarArchivo(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AFU.UploadedComplete
' If AFU.HasFile Then ' If AFU.HasFile Then
' If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp") Then ' If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp") Then
' Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp") ' Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp")
' End If ' End If
' Dim UploadFolder As String = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\" ' Dim UploadFolder As String = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\"
' Dim Extension As String = System.IO.Path.GetExtension(AFU.PostedFile.FileName) ' Dim Extension As String = System.IO.Path.GetExtension(AFU.PostedFile.FileName)
' If System.IO.File.Exists(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension) Then ' If System.IO.File.Exists(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension) Then
' System.IO.File.Delete(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension) ' System.IO.File.Delete(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension)
' End If ' End If
' AFU.SaveAs(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension) ' AFU.SaveAs(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension)
' Session("FileUpload") = UploadFolder & UsuarioActual.CveUsuario.ToString & Extension ' Session("FileUpload") = UploadFolder & UsuarioActual.CveUsuario.ToString & Extension
' Session("FileExtension") = Extension ' Session("FileExtension") = Extension
' Session("FileFolder") = UploadFolder ' Session("FileFolder") = UploadFolder
' End If ' End If
'End Sub 'End Sub
#Region "COMBOS - INFO GENERAL" #Region "COMBOS - INFO GENERAL"
Private Sub CargaProyecto() Private Sub CargaProyecto()
If UsuarioActual.Empresa.GralSoloProyecto Then If UsuarioActual.Empresa.GralSoloProyecto Then
@@ -1946,7 +1946,7 @@ Partial Class Contratos_Default
#Region "SUBIR EXCEL" #Region "SUBIR EXCEL"
Public Sub DescargarFormato() Public Sub DescargarFormato()
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoContrato.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()
@@ -2143,7 +2143,7 @@ Partial Class Contratos_Default
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else

View File

@@ -442,7 +442,7 @@ Partial Class Contratos_ContratosSecciones
dbLayer = Mapa.AddLayer(AppDomain.CurrentDomain.BaseDirectory & "GIS\Carretera.tab") dbLayer = Mapa.AddLayer(ModExtensiones.DirectorioBaseEmpresas & "GIS\Carretera.tab")
If dbLayer IsNot Nothing AndAlso DtDatos IsNot Nothing Then If dbLayer IsNot Nothing AndAlso DtDatos IsNot Nothing Then
If (Not dbLayer.AddRelate("ID_GIS", DtDatos, "ID_GIS")) Then If (Not dbLayer.AddRelate("ID_GIS", DtDatos, "ID_GIS")) Then

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -280,7 +287,7 @@ public partial class CxC_RepCxCPeriodo : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Clasificación Cliente</b>: {0}", DdlClienteClasificacion.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Clasificación Cliente</b>: {0}", DdlClienteClasificacion.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Estatus Cobranza</b>: {0}", DdlCobranzaEstatus.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepCxCPeriodo.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepCxCPeriodo.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -1157,6 +1157,20 @@
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>calibri</FontFamily>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value>=iif(Parameters!Kilometraje.Value = "-1", "","Kilometraje: "&amp; Parameters!Kilometraje.Value)</Value>
<Style>
<FontFamily>calibri</FontFamily>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns> </TextRuns>
<Style /> <Style />
</Paragraph> </Paragraph>
@@ -1867,10 +1881,13 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName> <rd:DefaultName>Textbox4</rd:DefaultName>
<Top>6.7641cm</Top> <Top>6.7641cm</Top>
<Left>3.33321cm</Left> <Left>1.68221cm</Left>
<Height>1.05328cm</Height> <Height>1.05328cm</Height>
<Width>17.71415cm</Width> <Width>17.71415cm</Width>
<ZIndex>14</ZIndex> <ZIndex>14</ZIndex>
<Visibility>
<Hidden>=IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") &gt; 0),false,true)</Hidden>
</Visibility>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3514,6 +3531,12 @@
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt> <Prompt>ReportParameter1</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="Kilometraje">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters> </ReportParameters>
<EmbeddedImages> <EmbeddedImages>
<EmbeddedImage Name="ID2"> <EmbeddedImage Name="ID2">

View File

@@ -2253,104 +2253,6 @@
<PaddingBottom>2pt</PaddingBottom> <PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Image Name="Image2">
<Source>Embedded</Source>
<Value>ID5</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>0.28014cm</Left>
<Height>0.96488cm</Height>
<Width>3.75909cm</Width>
<ZIndex>17</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox47">
<CanGrow>true</CanGrow>
<CanShrink>true</CanShrink>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>&lt; ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** &gt;</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>calibri</FontFamily>
<FontSize>7pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Top>12.13048cm</Top>
<Left>0.19008cm</Left>
<Height>0.40655cm</Height>
<Width>12.88812cm</Width>
<ZIndex>18</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Image Name="Image3">
<Source>Embedded</Source>
<Value>ID4</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>4.45804cm</Left>
<Height>0.91769cm</Height>
<Width>3.03541cm</Width>
<ZIndex>19</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="Image4">
<Source>Embedded</Source>
<Value>ID1</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>7.66984cm</Left>
<Height>0.97656cm</Height>
<Width>4.16281cm</Width>
<ZIndex>20</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="Image5">
<Source>Embedded</Source>
<Value>ID6</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>12.01497cm</Left>
<Height>0.97656cm</Height>
<Width>3.76809cm</Width>
<ZIndex>21</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="Image6"> <Image Name="Image6">
<Source>Embedded</Source> <Source>Embedded</Source>
<Value>ID3</Value> <Value>ID3</Value>
@@ -2359,7 +2261,7 @@
<Left>15.78306cm</Left> <Left>15.78306cm</Left>
<Height>0.93046cm</Height> <Height>0.93046cm</Height>
<Width>5.37042cm</Width> <Width>5.37042cm</Width>
<ZIndex>22</ZIndex> <ZIndex>17</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2391,7 +2293,7 @@
<Left>15.67443cm</Left> <Left>15.67443cm</Left>
<Height>0.50299cm</Height> <Height>0.50299cm</Height>
<Width>5.42547cm</Width> <Width>5.42547cm</Width>
<ZIndex>23</ZIndex> <ZIndex>18</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2444,7 +2346,7 @@
<Left>17.09066cm</Left> <Left>17.09066cm</Left>
<Height>0.64028cm</Height> <Height>0.64028cm</Height>
<Width>3.90165cm</Width> <Width>3.90165cm</Width>
<ZIndex>24</ZIndex> <ZIndex>19</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2611,7 +2513,7 @@
<Left>0.16383cm</Left> <Left>0.16383cm</Left>
<Height>2.44366cm</Height> <Height>2.44366cm</Height>
<Width>15.5106cm</Width> <Width>15.5106cm</Width>
<ZIndex>25</ZIndex> <ZIndex>20</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2646,7 +2548,7 @@
<Left>6.21617in</Left> <Left>6.21617in</Left>
<Height>0.17708in</Height> <Height>0.17708in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>26</ZIndex> <ZIndex>21</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2681,7 +2583,7 @@
<Left>6.21616in</Left> <Left>6.21616in</Left>
<Height>0.17966in</Height> <Height>0.17966in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>27</ZIndex> <ZIndex>22</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2716,7 +2618,7 @@
<Left>6.21616in</Left> <Left>6.21616in</Left>
<Height>0.18819in</Height> <Height>0.18819in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>28</ZIndex> <ZIndex>23</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2751,7 +2653,7 @@
<Left>6.22658in</Left> <Left>6.22658in</Left>
<Height>0.17119in</Height> <Height>0.17119in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>29</ZIndex> <ZIndex>24</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2787,7 +2689,7 @@
<Left>6.237in</Left> <Left>6.237in</Left>
<Height>0.19596in</Height> <Height>0.19596in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>30</ZIndex> <ZIndex>25</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2823,7 +2725,7 @@
<Left>7.16224in</Left> <Left>7.16224in</Left>
<Height>0.17708in</Height> <Height>0.17708in</Height>
<Width>0.98426in</Width> <Width>0.98426in</Width>
<ZIndex>31</ZIndex> <ZIndex>26</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2858,7 +2760,7 @@
<Left>7.16224in</Left> <Left>7.16224in</Left>
<Height>0.17966in</Height> <Height>0.17966in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>32</ZIndex> <ZIndex>27</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2893,7 +2795,7 @@
<Left>7.17266in</Left> <Left>7.17266in</Left>
<Height>0.18819in</Height> <Height>0.18819in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>33</ZIndex> <ZIndex>28</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2929,7 +2831,7 @@
<Left>7.17266in</Left> <Left>7.17266in</Left>
<Height>0.17119in</Height> <Height>0.17119in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>34</ZIndex> <ZIndex>29</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2965,7 +2867,7 @@
<Left>7.18308in</Left> <Left>7.18308in</Left>
<Height>0.19596in</Height> <Height>0.19596in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>35</ZIndex> <ZIndex>30</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3002,7 +2904,7 @@
<Left>6.75122cm</Left> <Left>6.75122cm</Left>
<Height>0.82021cm</Height> <Height>0.82021cm</Height>
<Width>5.51336cm</Width> <Width>5.51336cm</Width>
<ZIndex>36</ZIndex> <ZIndex>31</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3032,7 +2934,7 @@
<Left>0.10579cm</Left> <Left>0.10579cm</Left>
<Height>0.05496cm</Height> <Height>0.05496cm</Height>
<Width>20.88652cm</Width> <Width>20.88652cm</Width>
<ZIndex>37</ZIndex> <ZIndex>32</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3079,7 +2981,7 @@
<Left>1.15361cm</Left> <Left>1.15361cm</Left>
<Height>1.32415cm</Height> <Height>1.32415cm</Height>
<Width>19.15078cm</Width> <Width>19.15078cm</Width>
<ZIndex>38</ZIndex> <ZIndex>33</ZIndex>
<Visibility> <Visibility>
<Hidden>=IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") = 0) and (Sum(IIF(Fields!CveClasificacion.Value = 20342 or Fields!CveClasificacion.Value = 20341,1,0), "DsOC") &gt; 0),false,true)</Hidden> <Hidden>=IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") = 0) and (Sum(IIF(Fields!CveClasificacion.Value = 20342 or Fields!CveClasificacion.Value = 20341,1,0), "DsOC") &gt; 0),false,true)</Hidden>
</Visibility> </Visibility>
@@ -3093,6 +2995,59 @@
<PaddingBottom>2pt</PaddingBottom> <PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Image Name="Image3">
<Source>Embedded</Source>
<Value>ECONO_Marcas</Value>
<Sizing>FitProportional</Sizing>
<Top>11.08689cm</Top>
<Left>0.22108cm</Left>
<Height>1.5cm</Height>
<Width>15.34658cm</Width>
<ZIndex>34</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox47">
<CanGrow>true</CanGrow>
<CanShrink>true</CanShrink>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>&lt; ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** &gt;</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>calibri</FontFamily>
<FontSize>7pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Top>12.13048cm</Top>
<Left>0.19008cm</Left>
<Height>0.40655cm</Height>
<Width>12.88812cm</Width>
<ZIndex>35</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems> </ReportItems>
<Height>19.49544cm</Height> <Height>19.49544cm</Height>
<Style /> <Style />
@@ -3866,153 +3821,56 @@ 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
YwJbWUCbIoUHCigo/9k=</ImageData> YwJbWUCbIoUHCigo/9k=</ImageData>
</EmbeddedImage> </EmbeddedImage>
<EmbeddedImage Name="ID1"> <EmbeddedImage Name="ECONO_Marcas">
<MIMEType>image/png</MIMEType> <MIMEType>image/png</MIMEType>
<ImageData>iVBORw0KGgoAAAANSUhEUgAAAmAAAACuCAYAAACRFrE9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAG8/SURBVHhe7X0HeFVV9r1t7NJUIL333nvvFZJASKGEhFBCDb1ppInYsY2ICuroDMxYR7GMI2PXGRx1xF6wKyoi0lv4r3V/9+T/eL7Au8lL8oJ7fd/+7iv3nrv3PmWvU+65pwkEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCwSmLY8eOnW4u/H3jxo1nbtq06ZzNmzefy+Pq1asNibp269atZ7e0tJxh6V78TSAQCAQCgaDXAoTmDArJzpo1a/6A47ljxow5183N7dz6+vqLbrnllsEPPPCA48KFCx0uuOCCgfn5+V533313IchSbVNTU+Xw4cMrU1NTK/38/IafeeaZFbGxsZMnTJhw3bRp024aNWrU9cXFxTcUFhbewOOJpKCgQDvW1dVdP3369Jtx75UBAQH1ffv2LY+MjKwsKSmpHDt2bOX1119fe+uttxbl5uZ6h4aGDly+fLkD9Vu5cmV/6kzdaQPkLNpE23RTBQKBQCAQCLoWJB4kVCBIZw8bNuw8kKULExMTL1q2bJnL0qVLg3x9ff0rKirSZ82aNQbEZ6ynp+eY7OzsFnxeA8Jzu6Oj480gVRuSk5Nfjo6Ofg2fXxk8ePCLDg4Ob4aFhe2A7PP29t7n4eGxz8XFZR/+23vJJZfsxfGAq6vrYcgRZ2fnw05OTkeMCK8BkdKOAwcO3A/ZC1324bd9Xl5e+0C6KDuoB85/ITg4+FXo+Dp0fgLf/4jj <ImageData>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</ImageData> Lwg6530awwEteqhKvYiPg6hQ1ugzNu3TFpCCWof6wdcFP/2Yyd0p97112iJzpltgYkhnj0cXVPs4b1v5fl1ayUVHz6w+fb1n3myqrz6w9G19Qa3e6Cl2HeR//60KR8WJL78su1RQoPEtvm2m630zqlwdyjWkWmkyKc2i0iQojWbL0ziWV47++atFczj/FM6di7+YfcnF3Z2pDuix0ydPLHryCauSOXXqtIenp/VKQlZm5qz7ZsbGXtYwXbp0nTfn4YRz5yDnsGk2mwODAo+fOMFSm+V8YiJ77gsS5+jRIxp6qdDewf5sfGsv6PyNHD9+LDIqij0LBOzt7TPT02bce4+f3+WV1vr26TN+7JjysjKm6yAtQsI6nEtMYql/FQcPHY7t0sXccICyLmWNGDaUJdkAC58g7/EtMGECWyaHw+FwOBzO1WH73IiVChpvNOt1BmN5XJIxr9xB56gI9BFCvbXm+qKjx+sV9Sqlk73g5RITSkxlxcfPE4W5yk70DQhS+3hVVBWVJqXoRHtiVOs6R9Z5aR2Ki/Piz7s6uepLDSQyyi0o2E5vNmnEWrURwkZlmezNoqBQm9UKo8VdkR4u43D+rTRdeCAnx/IyVsbSF1/ct2unuuG+xJqamhtvmjxn3jy2+dwzzxzav9e6jLLRYHR1c/Xw8qoqr9Q5ORYXF5WVllrzmkymCTdOmv2QdJGk6cIDLH7RwsfjTp+2XtRCw7r36PHiK6+yzT9i4QHg7x9w3agRBbm5TI8BtNbdwz0isqOji+583LmS4qJ6uuQ6ktAkD08PnYubdRXB1vkdFx4gClJQUnb48OUXzE+dMqWytAQdwjaVKlV1Xf22bdsQli88gG9HJyd0GrWyxdvby93bb/Hi56RtDofDaQPz6Pv12bCCMSiwBU/vX8hcQp6i93QB9I9l7WAaBtabTBDYIQifCMJ7DX2ISWKPINwqiujY+XQ6Y7AsmOFgpmi4brBfEKbRDs8kljWv2eOhOAo2
</EmbeddedImage> VxWw+QpdSo4tv4ZNtAqNYUWxXCzLbkG4Q3YE0+iNiDDAtHeAvnv0K0KG0OyIQQn8cFux6fPLOBOCj7vSXmvn5Nm7p8/4YU7DejtGBjtp7DV2Lv5DRoYMGhPQf5B7/yili0bh7u113TDPUSM6DLnWIbyj2tHDzTsybPBY72uGeQ0f5Ojj66Fws/eKCB12vWuva3xHjfAJCbTDAXdUKDVKR6J1FOCLae0FewdBq1YgkiscDucKPPX00x0iI60LDDg4OPzy0+ZRI0eyzfc//Mjb18+6nINKraqsrMxISysqLszMSK+qrLQqHNh06tLVqnBaISX1gnx9CKPBkJaeIW38YeTkZJ+Oi4+JibHe/QU9U1Zadvzo4V1btxfk50HzMIVjsiwa4XDidFwbFc4fzaHDR7z9/Kzqpb6urlf3bk3vG4Qwq6yoqK6qavrBYaqqsiyrzeFwfi+sf6Zpx2Af4Ygz4Ex9KwU5FuD11lIhgQ+mT6uziVmEaRV8iulLaSJkqUhiL6lYKPObEUAJsGeCBN/YxETVTxCmEjKInmosiWVhhVs/1YKgpW9WhRxFLkyukCYIoOqNNAtqRwmYqgfT7IwRdH05VizszwrCAqpwEIMsiJlGkziMFq/kyGmLDcM6fLSU5d8wvnA4vwutX8kB3t7eUyZNzEjPUCgsPytYenh6Hj8dd+6c5RYyZ2eXhx56MDH+bG1NjfV6ghzIBjs7u8CQkB82bJIvQt3SlZyxY8ZA2ViLQnUmhXLLli1sc9KNN+irq6UrOUbTdrp8M72SE8AcfezGr7iSw+jWrfuwwYPS0ywqyyrPrJhF0WwydYrtfPTY8X0HD0ixbeCpJ544cfToVV/J8fX77MsrX8kBc+bOvZB4XtHw/jqzaPbw8vnsiy8eXfBwYsOVnFZAD3v7+AZ3CP9nXckZOXJUVlbW4MGDINPQXYWFjU7aVsCR3bVrl07nGBwcFB4e7uXlVV0NN6AZ0DN+fn6nT58uKiqifyq1
<EmbeddedImage Name="ID4"> 3MPJkkDnzl28vDx1Oh3OXrksb4qnp2d8fLxeX4djceRIo2PXp09fnLcREeGlpaU+Pj7Weybl2Nvbh4WFffnlV87OTo6OTnv27JYSKBMmTMjNzQ0JCamoqAgICKilp3dT0AaUL23QPzpUVlYmJiZVVJQ3+7O1AV3h7u5+7ty5sLAOSUlJly5lsfhBg5iLdXUgS0VFZY8e3VNSUqzZMVDgOJaXV3h6erSlSQBNSkxMDA0NS05Oysho9KeQgQMHspcu4PRA51j/TGODTbcA9MzSpUtdXFwxquC4BwYGomTr3z5aB7Xo9fpBgwZfuJCKY4HmHT16LDU1RUpud7D366NrmNc74N+xWPCvIJ0QaBvL/ET7KrhxL60mZEJDKsyGUXWEYcJqjx7uQLP0IgRKkvU2+4YsmSwI8vfYbBAENlnidwUD61JyNxCyhqojK9saNlH+VmqMwC8N9s8Qch8tFuXg17ieVmSt5X7Uwo+1jDaJHCtXNG52VJXn+hXDLofz7+TakaPsNSr8fhDG/8fPnM3NtX1l5PXjJwgmg/VHZTKZfENCPvrwI2lbEMI7hF937ajaqqry8jLJIcCwrlC4uLkplarzSYmHDx+hhpfp1a1rgJ+fJUQULq4unzeInN69ekd2CKsoK2VXThx1upSLl44dO8pSJ904QV9Vq1arTFAcIvl5KwZnoVvXrmFBgVAgCIsCuZSXd+p0M68lHTBgYJCPlx5+pCjWGwxePr6ff/WVlCZjwMBBAwf0Ky+2wNZdUCgUdvb2CqWi3mA+cuzopUuXmGUbef6Zxw4ePMGeL1Lbab77oXmRM2nSpPqaaiUdu9CHvkHB//34Y4T37dv36gsvMIVJBFJQXn7o0CFLBhmPzJ+feC4eHY4wnOaomJjlK9+aN+/h1PPJjVe7aA7RcrtaRV39unVXtfTrX0ZQUHB4eAd4t9brV20HU0NERAROLTijNm5x6yCLr68vTubjx49hs2PHGBwRKKurmmvgc0dF
<MIMEType>image/png</MIMEType> RdXW6iF1PDw8o6Iis7OzIUvaXohWqx0wYEBq6oWTJ0+ghH79+p49exb7crVTHlrSpUuXmpraxMSEq83r5uZ2zTXXrF//LWRAWlpa6wKvWfz9/QcPHrxlyxYoEPnEDbkSEOAPDc9WB207Go2mV69ehw4dLqCvtR0yZEhOTg5UH0ttO2hM586d/fz84+PP5ufns7a1vX9g7+3tDYGE8xPKGRnj4uKSk5Ol5PbFo4TMlXm9qxu/xJNjZQG9SYzJCZxJmwThwcYddYkQOmVatAT6M0QUJxCyisYAZGHDHPLY0XIQQIfjG9PAdFG8YHmpvUWfMGDDzldMn/gBMHXE2ENIOE21Sh3MSaw0vSDc0vj9rdsIiZSC0s1prAqE3xSEN/ixbsyvFznW8aXZSDlXNOBwOH8osbGdY6Kj09PTKsrLPby8AgL9ExNT5H/8/mdxy/RbEs7H19boo2M65hcUHDliq9M4fwkLFy7873//y1aAuCowR4SFhRGiqKysuFp9wnBxcamurgkPD8/JyYYP/StKQBvgB9vZ2SkUyszMX3MfJqRdbGzs7t27+/btl5Z2gf0t4KpAGyADvv322+7du+fm5kqxVwk6oUePHuvXr7/aTkDtPXv2hE6rrq6Sy1ToN19fPxcX5zNnzvy6joX0+u6776ZNm3748CEIPynhakAbunTpioML5G1A4W1pEszQJ7/88gt2pHfvXjhbIORKSkqk5PbFL4TEUP8brvlBQZjKvd4WkD+2pBGEZfTxGLolcZEQlooRbQU+9IGcR2W6BblY2GoG3hCElaIYTcg2nHj0A5BkHRYxLuA3ENa4LpT8kCDY0wJRrPXCMdQO9NUdgrCb2uNsx9jUKCciaeH76CNDUhSngasTORwOh8PhNAX+fTV0Rk2N1enE5KJWq52cnOrr61ufaDQazahR1x45cjgzM1OukZDLwcEBbjF8bhSLsJRAV9qQQhRU5Onp5erqCuluUwJ7FRh7RTKS7O3hSEjU
<ImageData>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</ImageData>
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</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="ID5">
<MIMEType>image/jpeg</MIMEType>
<ImageData>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
n91PDqN5vX+H/ntX0hRQB8z/APDt39mz/ollj/4HXn/x6vTvhD+z/wCAvgNpN/pXgLQIvD1he3H2m4hiuJpt82zZv/eu/wDBXpVFABRRRQAV5v8AF34E+B/j1odlpXj3w/F4gsLWb7VbwyTTQmGXbt3b0dG6V6RRQB8z/wDDt39mz/ollj/4HXn/AMer17R/hh4U0P4cw+BrXRIYvCkNi+mLpLu80PkMNjw/P8zJXdUUAePaP+y98OdBvdCurbRLqRtBbfpcN1qd3cwWjj7pSGWV0Gz+D5Pk7V7DRRQAlN8segp9FADKMe1PooAj2j0p9LRQAzyx6Cin0UAM8selPoooASilooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="ID6">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage> </EmbeddedImage>
</EmbeddedImages> </EmbeddedImages>
<Language>es-MX</Language> <Language>es-MX</Language>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,874 @@
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body>
<ReportItems>
<Line Name="Line1">
<Top>0.08792cm</Top>
<Height>0cm</Height>
<Width>19.15246cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Tablix Name="Tablix2">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>7.3197cm</Width>
</TablixColumn>
<TablixColumn>
<Width>4.7613cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.60341cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.55502cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.80719cm</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.46771cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox3">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Probabilidad de Acercamiento</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Tipo Proceso</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox5">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Estatus</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox15">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox15</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox23">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox23</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.6cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="ProbabilidadAcercamiento">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!ProbabilidadAcercamiento.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>ProbabilidadAcercamiento</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="TipoProceso">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!TipoProceso.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>TipoProceso</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Estatus">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Estatus.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Estatus</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="FechaIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!FechaIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
<Format>dd/MM/yyyy</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>FechaIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="UsuarioIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!UsuarioIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>UsuarioIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<Group Name="Details1" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet1</DataSetName>
<Top>0.26431cm</Top>
<Left>0.10583cm</Left>
<Height>1.06771cm</Height>
<Width>19.04663cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Tablix>
</ReportItems>
<Height>0.60091in</Height>
<Style />
</Body>
<Width>7.54034in</Width>
<Page>
<PageHeader>
<Height>3.19792cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Image Name="Logo">
<Source>External</Source>
<Value>=Parameters!LogoPath.Value</Value>
<Sizing>FitProportional</Sizing>
<Top>0.11854cm</Top>
<Left>0.10583cm</Left>
<Height>3cm</Height>
<Width>5.5cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!NombreEmpresa.Value</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>0.48896cm</Top>
<Left>5.74694cm</Left>
<Height>0.6cm</Height>
<Width>8.8382cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox2">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>REPORTE DE CATÁLOGO DE</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>PROBABILIDAD ACERCAMIENTO</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>1.98854cm</Top>
<Left>5.78222cm</Left>
<Height>0.95278cm</Height>
<Width>8.8382cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageHeader>
<PageFooter>
<Height>0.87322cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Line Name="Line2">
<Top>0.11437cm</Top>
<Left>0.10583cm</Left>
<Height>0cm</Height>
<Width>19.04663cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Textbox Name="Textbox9">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>0.10583cm</Left>
<Height>0.36335cm</Height>
<Width>1.60042cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox10">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!UsuarioImprimio.Value</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox9</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>1.65016cm</Left>
<Height>0.36335cm</Height>
<Width>5.14936cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Impresión:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox10</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>7.92841cm</Left>
<Height>0.36335cm</Height>
<Width>3.55833cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox7">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>="Página " &amp; Globals.PageNumber &amp; " de " &amp; Globals.TotalPages</Value>
<Style>
<FontStyle>Italic</FontStyle>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>16.91135cm</Left>
<Height>0.36335cm</Height>
<Width>2.06587cm</Width>
<ZIndex>4</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox8">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Now</Value>
<Style>
<FontSize>9pt</FontSize>
<Format>dd/MM/yyy HH:mm:ss tt</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Left</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>10.62431cm</Left>
<Height>0.37041cm</Height>
<Width>5.72096cm</Width>
<ZIndex>5</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageFooter>
<PageHeight>27.94cm</PageHeight>
<PageWidth>21.59cm</PageWidth>
<LeftMargin>0.5cm</LeftMargin>
<RightMargin>0.5cm</RightMargin>
<TopMargin>0.5cm</TopMargin>
<BottomMargin>0.5cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="DataSet3">
<ConnectionProperties>
<DataProvider>System.Data.DataSet</DataProvider>
<ConnectString>/* Local Connection */</ConnectString>
</ConnectionProperties>
<rd:DataSourceID>74f8a171-24f1-4404-809e-ec2e098f1907</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>DataSet3</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="ProbabilidadAcercamiento">
<DataField>ProbabilidadAcercamiento</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Estatus">
<DataField>Estatus</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="FechaIng">
<DataField>FechaIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="UsuarioIng">
<DataField>UsuarioIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="TipoProceso">
<DataField>TipoProceso</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>DataSet3</rd:DataSetName>
<rd:SchemaPath>C:\Users\jesus\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DataSet3.xsd</rd:SchemaPath>
<rd:TableName>DataTable1</rd:TableName>
<rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod />
<rd:TableAdapterName />
</rd:DataSetInfo>
</DataSet>
</DataSets>
<ReportParameters>
<ReportParameter Name="LogoPath">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="NombreEmpresa">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="UsuarioImprimio">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaImpresion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>2ec96151-d7c1-4609-bfdd-795b02d33b5a</rd:ReportID>
</Report>

View File

@@ -0,0 +1,958 @@
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body>
<ReportItems>
<Line Name="Line1">
<Top>0.08792cm</Top>
<Height>0cm</Height>
<Width>20.06868cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Tablix Name="Tablix2">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>2.3743cm</Width>
</TablixColumn>
<TablixColumn>
<Width>5.96532cm</Width>
</TablixColumn>
<TablixColumn>
<Width>3.05758cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.7467cm</Width>
</TablixColumn>
<TablixColumn>
<Width>3.70732cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.14878cm</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.46771cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox3">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Tipo Proceso</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox5">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Descripción</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox15">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>No. Etapas</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox15</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox23">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Estatus</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox23</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox21">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox21</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox19">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario Ing</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox19</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.6cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="TipoProceso">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!TipoProceso.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>TipoProceso</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Descripcion">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Descripcion.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Descripcion</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="NoEtapas">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!NoEtapas.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>NoEtapas</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Estatus1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Estatus.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Estatus1</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="FechaIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!FechaIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>FechaIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="UsuarioIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!UsuarioIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>UsuarioIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<Group Name="Details1" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet1</DataSetName>
<Top>0.36336cm</Top>
<Left>0.06868cm</Left>
<Height>1.06771cm</Height>
<Width>20cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Tablix>
</ReportItems>
<Height>0.60091in</Height>
<Style />
</Body>
<Width>8.00358in</Width>
<Page>
<PageHeader>
<Height>3.145cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Image Name="Logo">
<Source>External</Source>
<Value>=Parameters!LogoPath.Value</Value>
<Sizing>Fit</Sizing>
<Top>0.11854cm</Top>
<Left>0.10583cm</Left>
<Height>3cm</Height>
<Width>5.5cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!NombreEmpresa.Value</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>0.11854cm</Top>
<Left>5.78222cm</Left>
<Height>1.18208cm</Height>
<Width>8.43036cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox2">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>REPORTE DE CATÁLOGO DE</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>TIPOS PROCESOS</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>1.67104cm</Top>
<Left>5.78222cm</Left>
<Height>0.95278cm</Height>
<Width>8.43036cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageHeader>
<PageFooter>
<Height>0.79374cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Line Name="Line2">
<Top>0.11437cm</Top>
<Left>0.10583cm</Left>
<Height>0cm</Height>
<Width>19.96285cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Textbox Name="Textbox9">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>0.10583cm</Left>
<Height>0.36335cm</Height>
<Width>1.60042cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox10">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!UsuarioImprimio.Value</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox9</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>1.65016cm</Left>
<Height>0.36335cm</Height>
<Width>5.14936cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Impresión:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox10</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>6.97591cm</Left>
<Height>0.36335cm</Height>
<Width>2.92333cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox12">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Now</Value>
<Style>
<FontSize>9pt</FontSize>
<Format>dd/MM/yyy HH:mm:ss tt</Format>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox11</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>9.88513cm</Left>
<Height>0.36335cm</Height>
<Width>4.32745cm</Width>
<ZIndex>4</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox7">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>="Página " &amp; Globals.PageNumber &amp; " de " &amp; Globals.TotalPages</Value>
<Style>
<FontStyle>Italic</FontStyle>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>18.00281cm</Left>
<Height>0.36335cm</Height>
<Width>2.06587cm</Width>
<ZIndex>5</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageFooter>
<PageHeight>27.94cm</PageHeight>
<PageWidth>21.59cm</PageWidth>
<LeftMargin>0.5cm</LeftMargin>
<RightMargin>0.5cm</RightMargin>
<TopMargin>0.5cm</TopMargin>
<BottomMargin>0.5cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="DataSet3">
<ConnectionProperties>
<DataProvider>System.Data.DataSet</DataProvider>
<ConnectString>/* Local Connection */</ConnectString>
</ConnectionProperties>
<rd:DataSourceID>74f8a171-24f1-4404-809e-ec2e098f1907</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>DataSet3</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="TipoProceso">
<DataField>TipoProceso</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Descripcion">
<DataField>Descripcion</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="NoEtapas">
<DataField>NoEtapas</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Estatus">
<DataField>Estatus</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="FechaIng">
<DataField>FechaIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="UsuarioIng">
<DataField>UsuarioIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>DataSet3</rd:DataSetName>
<rd:SchemaPath>C:\Users\jesus\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DataSet3.xsd</rd:SchemaPath>
<rd:TableName>DataTable1</rd:TableName>
<rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod />
<rd:TableAdapterName />
</rd:DataSetInfo>
</DataSet>
</DataSets>
<ReportParameters>
<ReportParameter Name="LogoPath">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="NombreEmpresa">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="UsuarioImprimio">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaImpresion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>2ec96151-d7c1-4609-bfdd-795b02d33b5a</rd:ReportID>
</Report>

File diff suppressed because it is too large Load Diff

View File

@@ -513,9 +513,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=drawing&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
</asp:Content> </asp:Content>

View File

@@ -99,8 +99,8 @@ Partial Class GPS_CatDistribuidoresMaster
'If CveSucursal < 0 Then HuboError = True 'If CveSucursal < 0 Then HuboError = True
End If End If
If Not HuboError Then If Not HuboError Then
If Not IO.Directory.Exists(String.Format("{0}\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa))
End If End If
Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion) Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion)
End If End If
@@ -198,7 +198,7 @@ Partial Class GPS_CatDistribuidoresMaster
Dim archivos As New List(Of ClsSisMail.ArchivoMail) Dim archivos As New List(Of ClsSisMail.ArchivoMail)
Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail) Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail)
Dim ArchivoMail As New ClsSisMail.ArchivoMail Dim ArchivoMail As New ClsSisMail.ArchivoMail
ArchivoMail.Ruta = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\Grales\LogoSinFondo.png" ArchivoMail.Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\Grales\LogoSinFondo.png"
ArchivoMail.NombreArchivo = "LogoSinFondo.png" ArchivoMail.NombreArchivo = "LogoSinFondo.png"
ListArchivoMail.Add(ArchivoMail) ListArchivoMail.Add(ArchivoMail)
objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail) objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail)
@@ -246,7 +246,7 @@ Partial Class GPS_CatDistribuidoresMaster
strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>") strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>")
strBody.Append("<tr><td colspan=""4"" >") strBody.Append("<tr><td colspan=""4"" >")
'strBody.Append(Liga) 'strBody.Append(Liga)
strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", AppDomain.CurrentDomain.BaseDirectory)) strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", ModExtensiones.DirectorioBaseEmpresas))
strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>") strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>")
strBody.Append("<tr> <td> ") strBody.Append("<tr> <td> ")
strBody.Append("<ul>") strBody.Append("<ul>")

View File

@@ -96,8 +96,8 @@ Partial Class GPS_CatDistribuidoresMaster
If CveSucursal < 0 Then HuboError = True If CveSucursal < 0 Then HuboError = True
End If End If
If Not HuboError Then If Not HuboError Then
If Not IO.Directory.Exists(String.Format("{0}\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa))
End If End If
Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion) Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion)
End If End If
@@ -195,7 +195,7 @@ Partial Class GPS_CatDistribuidoresMaster
Dim archivos As New List(Of ClsSisMail.ArchivoMail) Dim archivos As New List(Of ClsSisMail.ArchivoMail)
Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail) Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail)
Dim ArchivoMail As New ClsSisMail.ArchivoMail Dim ArchivoMail As New ClsSisMail.ArchivoMail
ArchivoMail.Ruta = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\Grales\LogoSinFondo.png" ArchivoMail.Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\Grales\LogoSinFondo.png"
ArchivoMail.NombreArchivo = "LogoSinFondo.png" ArchivoMail.NombreArchivo = "LogoSinFondo.png"
ListArchivoMail.Add(ArchivoMail) ListArchivoMail.Add(ArchivoMail)
objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail) objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail)
@@ -243,7 +243,7 @@ Partial Class GPS_CatDistribuidoresMaster
strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>") strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>")
strBody.Append("<tr><td colspan=""4"" >") strBody.Append("<tr><td colspan=""4"" >")
'strBody.Append(Liga) 'strBody.Append(Liga)
strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", AppDomain.CurrentDomain.BaseDirectory)) strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", ModExtensiones.DirectorioBaseEmpresas))
strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>") strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>")
strBody.Append("<tr> <td> ") strBody.Append("<tr> <td> ")
strBody.Append("<ul>") strBody.Append("<ul>")

View File

@@ -109,7 +109,7 @@ Partial Class GPS_CatEventos
Try Try
If TxtUpImagen.getfiles().Archivos.Count > 0 Then If TxtUpImagen.getfiles().Archivos.Count > 0 Then
Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0) Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}Imagenes" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Imagenes"
If Not Directory.Exists(Path) Then If Not Directory.Exists(Path) Then
Directory.CreateDirectory(Path) Directory.CreateDirectory(Path)
End If End If
@@ -122,7 +122,7 @@ Partial Class GPS_CatEventos
If TxtUpSonido.getfiles().Archivos.Count > 0 Then If TxtUpSonido.getfiles().Archivos.Count > 0 Then
Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0) Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0)
Dim PathSonido As String = $"{AppDomain.CurrentDomain.BaseDirectory}Sonidos" Dim PathSonido As String = $"{ModExtensiones.DirectorioBaseEmpresas}Sonidos"
Dim dirSonido As String = String.Format("{0}\{1}.{2}", PathSonido, Sonido, ArchivoSonido.Extencion) Dim dirSonido As String = String.Format("{0}\{1}.{2}", PathSonido, Sonido, ArchivoSonido.Extencion)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -146,7 +146,7 @@ Partial Class GPS_CatEventos
Try Try
If TxtUpImagen.getfiles().Archivos.Count > 0 Then If TxtUpImagen.getfiles().Archivos.Count > 0 Then
Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0) Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}Imagenes" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Imagenes"
If Not Directory.Exists(Path) Then If Not Directory.Exists(Path) Then
Directory.CreateDirectory(Path) Directory.CreateDirectory(Path)
End If End If
@@ -159,7 +159,7 @@ Partial Class GPS_CatEventos
If TxtUpSonido.getfiles().Archivos.Count > 0 Then If TxtUpSonido.getfiles().Archivos.Count > 0 Then
Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0) Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0)
Dim PathSonido As String = $"{AppDomain.CurrentDomain.BaseDirectory}Sonidos" Dim PathSonido As String = $"{ModExtensiones.DirectorioBaseEmpresas}Sonidos"
Dim dirSonido As String = String.Format("{0}\{1}", PathSonido) Dim dirSonido As String = String.Format("{0}\{1}", PathSonido)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -214,7 +214,7 @@ Partial Class GPS_CatEventos
If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.VerticalAlign = VerticalAlign.Middle e.Row.VerticalAlign = VerticalAlign.Middle
e.Row.FCLinkButton("ImgE").CommandArgument = e.Row.DataKey("CveEvento").ToString e.Row.FCLinkButton("ImgE").CommandArgument = e.Row.DataKey("CveEvento").ToString
If File.Exists($"{AppDomain.CurrentDomain.BaseDirectory}Sonidos/{e.Row.DataKey("Sonido").ToString}") Then If File.Exists($"{ModExtensiones.DirectorioBaseEmpresas}Sonidos/{e.Row.DataKey("Sonido").ToString}") Then
e.Row.FCLinkButton("PlaySonido").OnClientClick = $"javascript:PlaySonidito('{e.Row.DataKey("Sonido").ToString}');return false;" e.Row.FCLinkButton("PlaySonido").OnClientClick = $"javascript:PlaySonidito('{e.Row.DataKey("Sonido").ToString}');return false;"
Else Else
e.Row.FCLinkButton("PlaySonido").Visible = False e.Row.FCLinkButton("PlaySonido").Visible = False

View File

@@ -266,8 +266,6 @@
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
</asp:Content> </asp:Content>

View File

@@ -155,7 +155,7 @@ Partial Class GPS_DispositivosControles
If TxtCalibración.getfiles().Archivos.Count > 0 AndAlso CveControl > 0 AndAlso Not huboerror Then If TxtCalibración.getfiles().Archivos.Count > 0 AndAlso CveControl > 0 AndAlso Not huboerror Then
Try Try
Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0) Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}TablasCalibracion" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}TablasCalibracion"
Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion) Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -226,7 +226,7 @@ Partial Class GPS_DispositivosControles
huboerror = Not GPS.CalibracionDelete(CveControl) huboerror = Not GPS.CalibracionDelete(CveControl)
If Not huboerror Then If Not huboerror Then
Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0) Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}TablasCalibracion" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}TablasCalibracion"
Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion) Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -448,7 +448,7 @@ Partial Class GPS_DispositivosControles
End Sub End Sub
Protected Sub LbDescargaFormato_Click(sender As Object, e As EventArgs) Protected Sub LbDescargaFormato_Click(sender As Object, e As EventArgs)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoCalibracion.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoCalibracion.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()

View File

@@ -632,11 +632,6 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
<%--<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places">
</script>--%>
</asp:Content> </asp:Content>

View File

@@ -769,12 +769,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=drawing&libraries=geometry&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=drawing&libraries=geometry&libraries=places">
</script>
<%-- <script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=drawing&libraries=geometry&libraries=places">
</script>--%>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script>
</asp:Content> </asp:Content>

View File

@@ -157,7 +157,8 @@ Partial Class GPS_GeoReferencias
Finally Finally
If TieneError Then If TieneError Then
ObjGPS.RollBack() ObjGPS.RollBack()
Alert("Ocurrió un error al agregar la georeferencia", TipoMensaje.MsgError)
Else Else
ObjGPS.Commit() ObjGPS.Commit()
Alert("Se agregó correctamente la Ruta", TipoMensaje.MsgInformacion) Alert("Se agregó correctamente la Ruta", TipoMensaje.MsgInformacion)

View File

@@ -754,11 +754,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places&callback=initMap", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places&callback=initMap">
</script>
<%-- <script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places&callback=initMap">
</script>--%>
</asp:Content> </asp:Content>

View File

@@ -3130,9 +3130,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=drawing&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script>
<script src="Rastreo/JS/GeoRutas.js"></script> <script src="Rastreo/JS/GeoRutas.js"></script>

View File

@@ -1495,7 +1495,7 @@ Partial Class GPS_Rastreo
End If End If
'RegistraScript("CreaRuta();") 'RegistraScript("CreaRuta();")
ElseIf HdnTipo.Value = "Geocerca" Then ElseIf HdnTipo.Value = "Geocerca" Then
GeoRefString = $"POLYGON(({GeoCerca.Value}))" GeoRefString = $"POLYGON(({GeoCerca.Value} {CommandArg.Value}))"
If ObjGPS.GeoReferenciaAdd(TxtNombre.Text, -1, GeoRefString, "Geocerca", True, TxtFechaIG.Text.ToDate, TxtFechaFG.Text.ToDate, chkLunes.Checked, chkMartes.Checked, chkMiercoles.Checked, chkJueves.Checked, chkViernes.Checked, chkSabado.Checked, chkDomingo.Checked, MinFecha, MaxFecha, TxtColor.Text, TxtTolerancia.Text.ToEntero, UsuarioActual.CveCliente) Then If ObjGPS.GeoReferenciaAdd(TxtNombre.Text, -1, GeoRefString, "Geocerca", True, TxtFechaIG.Text.ToDate, TxtFechaFG.Text.ToDate, chkLunes.Checked, chkMartes.Checked, chkMiercoles.Checked, chkJueves.Checked, chkViernes.Checked, chkSabado.Checked, chkDomingo.Checked, MinFecha, MaxFecha, TxtColor.Text, TxtTolerancia.Text.ToEntero, UsuarioActual.CveCliente) Then
For Each Dr As GridViewRow In GvEquiposDetalle.Rows For Each Dr As GridViewRow In GvEquiposDetalle.Rows
If Dr.RowType = DataControlRowType.DataRow Then If Dr.RowType = DataControlRowType.DataRow Then

View File

@@ -234,7 +234,7 @@
<asp:Content ID="Content4" ContentPlaceHolderID="H" runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="H" runat="Server">
</asp:Content> </asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content5" ContentPlaceHolderID="JS" runat="Server">
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places"></script> <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
<script src="../Metronic/assets/global/plugins/datatables2/datatables.min.js"></script> <script src="../Metronic/assets/global/plugins/datatables2/datatables.min.js"></script>
<script src="../Metronic/assets/global/plugins/datatables2/extensions/Scroller/js/dataTables.scroller.js"></script> <script src="../Metronic/assets/global/plugins/datatables2/extensions/Scroller/js/dataTables.scroller.js"></script>
<script src="../Metronic/assets/global/plugins/datatables2/extensions/KeyTable/js/dataTables.keyTable.js"></script> <script src="../Metronic/assets/global/plugins/datatables2/extensions/KeyTable/js/dataTables.keyTable.js"></script>

Some files were not shown because too many files have changed in this diff Show More