Option Strict On Option Explicit On Imports Extensiones Imports System.Data Imports System.IO Partial Class Sistemas_WizardRegistro Inherits Page #Region " PROPIEDADES " Private Property CveEmpresaTemp As Integer Get CveEmpresaTemp = ViewState("CveEmpresaTemp").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEmpresaTemp") = value End Set End Property Private Property CveEmpresa As Integer Get CveEmpresa = ViewState("CveEmpresa").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEmpresa") = value End Set End Property Private Property CveRol As Integer Get CveRol = ViewState("CveRol").ToString.ToEntero End Get Set(value As Integer) ViewState("CveRol") = value End Set End Property Private Property DtRoles As DataTable Get Return CType(ViewState("DtRoles"), DataTable) End Get Set(value As DataTable) ViewState("DtRoles") = value End Set End Property Private Property DtProyectos As DataTable Get Return CType(ViewState("DtProyectos"), DataTable) End Get Set(value As DataTable) ViewState("DtProyectos") = value End Set End Property Private Property DtUsuarios As DataTable Get Return CType(ViewState("DtUsuarios"), DataTable) End Get Set(value As DataTable) ViewState("DtUsuarios") = value End Set End Property Private Property DtClasificaciones As DataTable Get Return CType(ViewState("DtClasificaciones"), DataTable) End Get Set(value As DataTable) ViewState("DtClasificaciones") = value End Set End Property Private Property DtModulos As DataTable Get Return CType(ViewState("DtModulos"), DataTable) End Get Set(value As DataTable) ViewState("DtModulos") = value End Set End Property Private Property DtPS As DataTable Get Return CType(ViewState("DtPS"), DataTable) End Get Set(value As DataTable) ViewState("DtPS") = value End Set End Property Private Property DTEstatusUsuarios As DataTable Get Return CType(ViewState("DTEstatusUsuarios"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusUsuarios") = value End Set End Property Private Property DtUM As DataTable Get Return CType(ViewState("DtUM"), DataTable) End Get Set(value As DataTable) ViewState("DtUM") = value End Set End Property Private Property DtProcesos As DataTable Get Return CType(ViewState("DtProcesos"), DataTable) End Get Set(value As DataTable) ViewState("DtProcesos") = value End Set End Property Private Property FIEL As String Get FIEL = ViewState("FIEL").ToString End Get Set(value As String) ViewState("FIEL") = value End Set End Property Private Property CSD As String Get CSD = ViewState("CSD").ToString End Get Set(value As String) ViewState("CSD") = value End Set End Property Private Property NombreEmpresaPropiedad As String Get NombreEmpresaPropiedad = ViewState("NombreEmpresaPropiedad").ToString End Get Set(value As String) ViewState("NombreEmpresaPropiedad") = value End Set End Property Private Property RFCPropiedad As String Get RFCPropiedad = ViewState("RFCPropiedad").ToString End Get Set(value As String) ViewState("RFCPropiedad") = value End Set End Property Private Property Correo As String Get Correo = ViewState("Correo").ToString End Get Set(value As String) ViewState("Correo") = value End Set End Property Private Property MetodoPAgo As Integer Get MetodoPAgo = ViewState("MetodoPAgo").ToString.ToEntero End Get Set(value As Integer) ViewState("MetodoPAgo") = value End Set End Property #End Region #Region " PROPIEDADES PARA MODAL DE CATALOGOS " Private Property ModalidadModal As String Get ModalidadModal = ViewState("ModalidadModal").ToString End Get Set(value As String) ViewState("ModalidadModal") = value End Set End Property Private Property CveModal As Integer Get CveModal = ViewState("CveModal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveModal") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then RegistraScript("$('#mBody').addClass('page-sidebar-closed');$('#divMenu').css('display','none');QuitarBarras();") If Request("P") IsNot Nothing AndAlso Decripta((Request("P").ToString)) <> "" Then Dim UrlParametros As Hashtable = Parametros(Decripta((Request("P").ToString))) CveRol = 0 If UrlParametros("CVEEMPRESA") IsNot Nothing AndAlso UrlParametros("CVEEMPRESA").ToString.ToEntero > 0 Then CveEmpresa = UrlParametros("CVEEMPRESA").ToString.ToEntero CargaDatos() Else DivEsconder.Style.Add("display", "none") Alert("No se seleccionó ninguna empresa", TipoMensaje.MsgAdvertencia) End If Else DivEsconder.Style.Add("display", "none") Alert("No se seleccionó ninguna empresa", TipoMensaje.MsgAdvertencia) End If End If End Sub #Region " FUNCIONES - POSIBLE LLEVARSE PARA TODO EL SITIO " Private Function Parametros(Cadena As String) As Hashtable Dim P1() As String = Cadena.Split("&"c) Dim Tmp As String Dim P2() As String Dim URLParametros As New Hashtable For Each Tmp In P1 P2 = Tmp.Replace("%26%", "&").Split("="c) URLParametros.Add(P2(0).ToString.ToUpper, P2(1)) Next Return URLParametros End Function Private Function EsDuplicado(Dt As DataTable, Filtro As String) As Boolean Dim Tabla As New DataTable() Tabla = Dt.FiltraParametros(Filtro) If Tabla.Rows.Count > 0 Then Return True Else Return False End If End Function Public Function FormatearNombreArchivo(nombreArchivoOriginal As String) As String Dim nombreArchivoFormateado As String nombreArchivoFormateado = nombreArchivoOriginal.Replace(" ", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("'", "") nombreArchivoFormateado = nombreArchivoFormateado.Replace(Chr(34), "") nombreArchivoFormateado = nombreArchivoFormateado.Replace("$", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("#", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("%", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("!", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("&", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("?", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("¿", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("¡", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("*", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("~", "_") nombreArchivoFormateado = nombreArchivoFormateado.Replace("^", "_") Return nombreArchivoFormateado End Function #End Region #Region " CARGA DATOS " Protected Sub CargaDatos() Dim ObjEmpresa As New ClsSisEmpresas If ObjEmpresa.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") AndAlso ObjEmpresa.DtResultados.Rows.Count > 0 Then Dim DrEmpresa = ObjEmpresa.DtResultados.Rows(0) 'PROPIEDADES NombreEmpresaPropiedad = DrEmpresa("Empresa").ToString RFCPropiedad = DrEmpresa("RFC").ToString 'TITULO ltlEmpresa.Text = $"Registro de {NombreEmpresaPropiedad} ({RFCPropiedad})" 'CARGA PASO 1.1 - DATOS FISCALES TxtNomEmpresa.Text = DrEmpresa("Empresa").ToString TxtRFC.Text = DrEmpresa("RFC").ToString TxtEmail.Text = DrEmpresa("Mail").ToString DdlRegimen.SelectedValueExist(DrEmpresa("Regimen").ToString) TxtContacto.Text = DrEmpresa("Contacto").ToString TxtTelefono.Text = DrEmpresa("Telefono").ToString TxtExtension.Text = DrEmpresa("Extension").ToString TxtDireccion.Text = DrEmpresa("Direccion").ToString TxtNoExt.Text = DrEmpresa("NoExt").ToString TxtNoInt.Text = DrEmpresa("NoInt").ToString TxtColonia.Text = DrEmpresa("Colonia").ToString TxtCiudad.Text = DrEmpresa("Ciudad").ToString TxtLocalidad.Text = DrEmpresa("Localidad").ToString TxtEstado.Text = DrEmpresa("Estado").ToString TxtCP.Text = DrEmpresa("CP").ToString 'CARGA PASO 1.3 - DATOS FISCALES TxtContraKey.Text = DrEmpresa("ContraseñaKey").ToString TxtCIEC.Text = DrEmpresa("CIEC").ToString DtClasificaciones.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) Correo = DrEmpresa("Mail").ToString MetodoPAgo = DrEmpresa("CveMetodoPago").ToString.ToEntero 'CARGA PASO 3.2 - CORREOS txtEnvioCorreo.Text = DrEmpresa("SendMail").ToString TxtEnvioContraseña.Text = DrEmpresa("SendMailPassword").ToString TxtEnvioServidor.Text = DrEmpresa("SendMailServer").ToString TxtEnvioPuerto.Text = DrEmpresa("SendMailPuerto").ToString ChkEnvioSSL.Checked = CBool(DrEmpresa("SendMailSSL").ToString) txtRecepCorreo.Text = DrEmpresa("Buzon_Mail").ToString TxtRecepContraseña.Text = DrEmpresa("Buzon_PWD").ToString TxtRecepServidor.Text = DrEmpresa("Buzon_Server").ToString TxtRecepPuerto.Text = DrEmpresa("Buzon_Puerto").ToString DdlRecepProtocolo.SelectedValueExist(DrEmpresa("Buzon_Tipo").ToString) ChkRecepSSL.Checked = CBool(DrEmpresa("Buzon_SSL").ToString) DdlTipoCentroCostos.SelectedValueExist(DrEmpresa("Tipo_CentroCosto")) CargaSubProyectos() CargaGvFolio() Dim ObjRoles As New ClsSisRoles Dim objUsuarios As New ClsSisUsuarios Dim objunidadesMedida As New ClsUnidadesMedida Dim objClasi As New ClsClasificaciones Dim objPS As New ClsProductosServicios Dim objInv As New ClsInventarios DivRegistroInicial.Style.Add("display", "") RFVNombre.ValidationGroup = "GrpGuardar" REVRFC.ValidationGroup = "GrpGuardar" RFVRFC.ValidationGroup = "GrpGuardar" REVContactoEmail.ValidationGroup = "GrpGuardar" RequiredFieldValidator1.ValidationGroup = "GrpGuardar" 'cvEmail.ValidationGroup = "GrpGuardar" If objUsuarios.GetUsuarios(-1) Then GvUsuarios.DataSource = objUsuarios.DtResultados.FiltraParametros(String.Format("CveEmpresa={0}", CveEmpresa)) ' GvUsuarios.DataBind() End If If objClasi.GetClasificaciones(CveEmpresa) AndAlso objClasi.DtResultados.Rows.Count > 0 Then DtClasificaciones = objClasi.DtResultados CargaDdlClasificaciones() End If CargaGVClasificacion() If objunidadesMedida.GetUnidadesMedida(CveEmpresa) Then DtUM = objunidadesMedida.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresa)) GvUM.DataSource = DtUM GvUM.DataBind() CargaDdlUM() End If If objPS.GetPS(-1, -1, CveEmpresa) Then GVPS.DataSource = objPS.DtResultados GVPS.DataBind() Else GVPS.DataSource = Nothing End If If objPS.GetMetodosInv() Then DdlMetodos.DataSource = objPS.DtResultados.FiltraParametros("CveMetodoInventario <> 0") DdlMetodos.DataBind() Else DdlMetodos.DataSource = Nothing End If If objInv.GetTiposAlmacenes Then DdlTipoAlmacen.DataSource = objInv.DtResultados DdlTipoAlmacen.DataBind() Else DdlTipoAlmacen.DataSource = Nothing End If CargaGvInventario() CargaSubProyectosInventario() CargaGVProveedor() ObjRoles.Dispose() ObjEmpresa.Dispose() objClasi.Dispose() objUsuarios.Dispose() objunidadesMedida.Dispose() objPS.Dispose() objInv.Dispose() Dim DirFactura = ModExtensiones.DirectorioBaseEmpresas + String.Format("Empresas\{0}\Formatos\Factura.mrt", CveEmpresa) Dim Factura As New FileInfo(DirFactura) RblFormatoFactura.Items.Item(1).Enabled = Factura.Exists RblFormatoFactura.Items.Item(1).Selected = Factura.Exists CargaGVRoles() CargaGVUsuarios() CargaGVCC() CargaGvCliente() CargaDdlUsuario() CargaDdlRegimen() CreaGrid() 'CargaGridEstatusUsuarios() Else Alert("No se encontraron datos con la empresa seleccionada.", TipoMensaje.MsgAdvertencia) DivEsconder.Style.Add("display", "none") End If End Sub #End Region #Region " GUARDAR PASO " Protected Sub BtnGuardarPaso_Click(sender As Object, e As EventArgs) Dim paso = HdnPaso.Value.ToEntero Dim subpaso = HdnSubPaso.Value.ToEntero Pasos(paso, subpaso) End Sub Protected Sub Pasos(Paso As Integer, subpaso As Integer) Dim ObjEmpresa As New ClsSisEmpresas Dim HuboError = False 'PASO 1.1: DATOS FISCALES Dim NombreEmpresa, RFC, CorreoElectronico, Regimen, Contacto, Telefono, Extension, Calle, NoExt, NoInt, Colonia, Ciudad, Localidad, Estado, CP As String NombreEmpresa = TxtNomEmpresa.Text.Trim RFC = TxtRFC.Text.Trim CorreoElectronico = TxtEmail.Text.Trim Regimen = DdlRegimen.SelectedValue Contacto = TxtContacto.Text.Trim Telefono = TxtTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", "") Extension = TxtExtension.Text.Trim Calle = TxtDireccion.Text.Trim NoExt = TxtNoExt.Text.Trim NoInt = TxtNoInt.Text.Trim Colonia = TxtColonia.Text.Trim Ciudad = TxtCiudad.Text.Trim Localidad = TxtLocalidad.Text.Trim Estado = TxtEstado.Text.Trim CP = TxtCP.Text.Trim 'PASO 1.3: CERTIFICADOS Dim CSD, CIEC As String CSD = TxtContraKey.Text.Trim CIEC = TxtCIEC.Text.Trim 'PASO 3.2: CORREOS Dim EnvioCorreo, EnvioContraseña, EnvioServidor, RecepCorreo, RecepContraseña, RecepServidor, RecepProtocolo As String Dim EnvioSSL, RecepSSL As Boolean Dim EnvioPuerto, RecepPuerto As Integer EnvioCorreo = txtEnvioCorreo.Text.Trim EnvioContraseña = TxtEnvioContraseña.Text.Trim EnvioServidor = TxtEnvioServidor.Text.Trim EnvioPuerto = TxtEnvioPuerto.Text.Trim.ToEntero EnvioSSL = ChkEnvioSSL.Checked RecepCorreo = txtRecepCorreo.Text.Trim RecepContraseña = TxtRecepContraseña.Text.Trim RecepServidor = TxtRecepServidor.Text.Trim RecepPuerto = TxtRecepPuerto.Text.Trim.ToEntero RecepProtocolo = DdlRecepProtocolo.SelectedValue RecepSSL = ChkRecepSSL.Checked Select Case Paso Case 1 Select Case subpaso Case 1 'DATOS FISCALES If ObjEmpresa.RegistroEmpresasDatosFiscales(NombreEmpresa, RFC, CorreoElectronico, Regimen, Contacto, Telefono, Extension, Calle, NoExt, NoInt, Colonia, Ciudad, Localidad, Estado, CP, CveEmpresa) Then NombreEmpresaPropiedad = NombreEmpresa RFCPropiedad = RFC ltlEmpresa.Text = $"Registro de {NombreEmpresaPropiedad} ({RFCPropiedad})" Else RegistraScript("$('a.antfiscal').click()") End If 'ESTATUS DE REQUISICIONES PREDEFINIDAS Dim ObjOC As New ClsOC If ObjOC.GetEstatus() Then If Not ObjOC.DtResultados.FiltraParametros($"CveEmpresa={CveEmpresa}").Rows.Count > 0 Then ObjOC.AddEstatusRequisicionesPredefinidas(CveEmpresa) ObjOC.Dispose() End If End If Case 2 'ESTA ESCONDIDO Case 3 'CERTIFICADOS If Not ObjEmpresa.RegistroEmpresasCertificados(CSD, CIEC, CveEmpresa) Then RegistraScript("$('#globalprevious').click()") End If End Select Case 3 Select Case subpaso Case 1 'LOGO GuardaLogo() Case 2 'CORREO If Not ObjEmpresa.RegistroEmpresasCorreos(EnvioCorreo, EnvioContraseña, EnvioServidor, EnvioPuerto, EnvioSSL, RecepCorreo, RecepContraseña, RecepServidor, RecepPuerto, RecepProtocolo, RecepSSL, CveEmpresa) Then RegistraScript("$('a.antfiscal').click()") End If Case 3 If TxtPlantillaVenta.Text <> String.Empty Then If Not ObjEmpresa.UpdatePlantillaMail("AsuntoPlantillaMailVenta", TxtAsunto.Text.Trim, "PlantillaMailVenta", TxtPlantillaVenta.Text.Trim, CveEmpresa) Then Alert("La plantilla de mail de ventas se guardó correctamente.", TipoMensaje.MsgInformacion) HuboError = True End If End If Case 4 If TxtFormatoFactura.getfiles().Archivos().Count > 0 Then Dim FormatoFactura As Archivo = TxtFormatoFactura.getfiles().Archivos(0) Dim PathFormato = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\Formatos\" Dim dirFormato As String = String.Format("{0}\Factura.{1}", PathFormato, FormatoFactura.Extencion) If File.Exists(dirFormato) Then My.Computer.FileSystem.DeleteFile(dirFormato) End If My.Computer.FileSystem.MoveFile(FormatoFactura.FileUrl, dirFormato) ObjEmpresa.UpdateFormatoImpresion(CveEmpresa, 2) Else ObjEmpresa.UpdateFormatoImpresion(CveEmpresa, 1) End If End Select Case 5 If Not True Then RegistraScript("$('#globalprevious').click()") End If End Select ObjEmpresa.Dispose() End Sub #End Region #Region " PASO 1: DATOS FISCALES" #Region " 1.1 DATOS FISCALES " Private Sub CargaDdlRegimen() Dim ObjEmpresa As New ClsSisEmpresas If ObjEmpresa.GetRegimenFiscal(-1) Then DdlRegimen.DataSource = ObjEmpresa.DtResultados() Else DdlRegimen.DataSource = Nothing End If ObjEmpresa.Dispose() DdlRegimen.DataBind() End Sub #End Region #Region " 1.2: CERTIFICADOS " Protected Sub BtnModalFiel_Click(sender As Object, e As EventArgs) If Not TxtModalFielArchivo.getfiles().Archivos.Count > 0 Then Alert("No se ha cargado ningun archivo. Por favor seleccione uno o espere se termine de cargar el archivo y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ArchivoFiel As Archivo = TxtModalFielArchivo.getfiles().Archivos(0) If ArchivoFiel.filenameO.Length > 114 Then Alert("El nombre del archivo excede los 115 caracteres permitidos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjEmpresas As New ClsSisEmpresas ObjEmpresas.IniciaTransacSQL() Try Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\Certificados" DirectoryExistsCreate(Path) Dim ArchivoDestino As String = String.Format("{0}\{1}", Path, ArchivoFiel.filename) If File.Exists(ArchivoDestino) Then My.Computer.FileSystem.DeleteFile(ArchivoDestino) End If If ObjEmpresas.RegistroEmpresasCertificadosFIEL($"{ArchivoFiel.filenameO}", CveEmpresa) Then My.Computer.FileSystem.MoveFile(ArchivoFiel.FileUrl, ArchivoDestino) TxtFiel.Text = ArchivoFiel.filenameO ObjEmpresas.Commit() Else ObjEmpresas.RollBack() End If Catch ex As Exception ObjEmpresas.RollBack() Alert("Ocurrió un error al guardar el archivo FIEL. Por favor vuelva a intentar.", TipoMensaje.MsgError) Finally ObjEmpresas.Dispose() End Try UPSat.Update() RegistraScript("$('#ModalFiel').modal('hide');") End Sub Protected Sub BtnCSD_Click(sender As Object, e As EventArgs) If Not TxtModalCSDArchivo.getfiles().Archivos.Count > 0 Then Alert("No hay seleccionado ningun archivo. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ArchivoCSD As Archivo = TxtModalCSDArchivo.getfiles().Archivos(0) If ArchivoCSD.filenameO.Length > 114 Then Alert("El nombre del archivo excede los 115 caracteres permitidos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjEmpresas As New ClsSisEmpresas ObjEmpresas.IniciaTransacSQL() Try Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\Certificados" DirectoryExistsCreate(Path) Dim ArchivoDestino As String = String.Format("{0}\{1}", Path, ArchivoCSD.filenameO) If File.Exists(ArchivoDestino) Then My.Computer.FileSystem.DeleteFile(ArchivoDestino) End If If ObjEmpresas.RegistroEmpresasCertificadosCSD($"{ArchivoCSD.filenameO}", CveEmpresa) Then My.Computer.FileSystem.MoveFile(ArchivoCSD.FileUrl, ArchivoDestino) TxtCSD.Text = ArchivoCSD.filenameO ObjEmpresas.Commit() Else ObjEmpresas.RollBack() End If Catch ex As Exception ObjEmpresas.RollBack() Alert("Ocurrió un error al guardar el archivo CSD. Por favor vuelva a intentar.", TipoMensaje.MsgError) Finally ObjEmpresas.Dispose() End Try UPSat.Update() RegistraScript("$('#ModalCSD').modal('hide');") End Sub #End Region #End Region #Region " PASO 2: USUARIOS " #Region " 2.1: ROLES - PERFILES " Protected Sub LBAgregarPerfil_Click(sender As Object, e As EventArgs) TxtPerfil.Text = "" BtnPerfil.Text = "Agregar Perfil" ModalidadModal = "Insertar" CveModal = -1 UpPerfil.Update() RegistraScript(" $('#ModalPerfil').modal('show');") End Sub Private Sub CargaGVRoles() Dim ObjRoles As New ClsSisRoles If ObjRoles.GetRoles(-1, CveEmpresa) Then DtRoles = ObjRoles.DtResultados End If ObjRoles.Dispose() GVRoles.DataSource = ObjRoles.DtResultados GVRoles.DataBind() CargaDdlRoles() UPRoles.Update() End Sub Protected Sub LBAgregarPerfilesSugeridos_Click(sender As Object, e As EventArgs) Handles LBAgregarPerfilesSugeridos.Click Dim ObjRoles As New ClsSisRoles If ObjRoles.AddRolesPredefinidos(CveEmpresa) Then Alert("Los perfiles predefinidos se agregaron correctamente.", TipoMensaje.MsgInformacion) End If ObjRoles.Dispose() CargaGVRoles() End Sub Protected Sub BtnAddUpdatePerfil_Click(sender As Object, e As EventArgs) Handles BtnPerfil.Click 'INSERTAR DE NUEVO PERFIL If ModalidadModal = "Insertar" Then Dim ObjRoles As New ClsSisRoles If ObjRoles.AddRol(1, TxtPerfil.Text, 100, CveEmpresa) Then Alert("El nuevo perfil se guardó correctamente.", TipoMensaje.MsgInformacion) End If ObjRoles.Dispose() End If 'ACTUALIZACION DE PERFIL If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim ObjRoles As New ClsSisRoles Dim CveRol = CveModal If ObjRoles.UpdateRol(1, TxtPerfil.Text, 100, CveRol) Then Alert("El perfil se actualizó correctamente.", TipoMensaje.MsgInformacion) End If ObjRoles.Dispose() End If End If CargaGVRoles() RegistraScript(" $('#ModalPerfil').modal('hide');") End Sub Protected Sub GVRoles_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GVRoles.RowCommand If e.CommandName = "Permisos" Then Dim Array = e.CommandArgument.ToString.Split("|"c) If Array.Length = 2 Then Dim ObjPermisos As New ClsSisRoles() ViewState("CveRol") = Array(0).ToEntero If ObjPermisos.GetRolesModulos(Array(0).ToEntero, -1) Then GvPermisos.DataSource = ObjPermisos.DtResultados.FiltraParametros("AGRUPACION ='N'") Else GvPermisos.DataSource = Nothing End If ObjPermisos.Dispose() GvPermisos.DataBind() LbPermisos.Text = String.Format("Asignación de Permisos: {0}", Array(1).ToString) UPPAltaRep.Update() UPAlta.Update() RegistraScript("$('#DivPermisos').modal();") End If End If If e.CommandName = "Procesos" Then Dim Array = e.CommandArgument.ToString.Split("|"c) If Array.Length = 2 Then Dim ObjPermisos As New ClsSisRoles() ViewState("CveProceso") = Array(0).ToEntero If ObjPermisos.GetRolesProcesos(Array(0).ToEntero, -1) Then GvProcesos.DataSource = ObjPermisos.DtResultados Else GvProcesos.DataSource = Nothing End If ObjPermisos.Dispose() GvProcesos.DataBind() LbProcesos.Text = String.Format("Asignación de Procesos: {0}", Array(1).ToString) UPPAltaProcesos.Update() UpAltaP.Update() RegistraScript("$('#DivProcesos').modal();") End If End If If e.CommandName = "Editar" Then Dim GvRow As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow) TxtPerfil.Text = GvRow.DataKey("Rol") BtnPerfil.Text = "Actualizar Perfil" ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveRol").ToEntero UpPerfil.Update() RegistraScript(" $('#ModalPerfil').modal('show');") End If End Sub Protected Sub GVRoles_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GVRoles.RowDeleting Dim ObjRoles As New ClsSisRoles If ObjRoles.RemoveRol(GVRoles.Rows(e.RowIndex).DataKey("CveRol").ToEntero) Then Alert("El perfil se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjRoles.Dispose() CargaGVRoles() End Sub #End Region #Region " 2.2: USUARIOS " Private Sub RecargaGlobal() Dim ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.GetUsuariosEmpresas(-1) Then Application("GlobalDTUsuarios") = ObjUsuarios.DtResultados ' GlobalDTUsuarios() = ObjUsuario.DtResultados End If ObjUsuarios.Dispose() End Sub Private Sub CargaGVUsuarios() Dim ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.GetUsuarios(-1) Then GvUsuarios.DataSource = ObjUsuarios.DtResultados.FiltraParametros($"CveEmpresa={CveEmpresa}") End If ObjUsuarios.Dispose() GvUsuarios.DataBind() UpGVUsuarios.Update() End Sub Private Sub CargaDdlRoles() DdlRoles.Items.Clear() DdlRoles.DataSource = DtRoles DdlRoles.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlRoles.DataBind() End Sub Protected Sub LBAgregarUsuario_Click(sender As Object, e As EventArgs) TxtNombre.Text = "" TxtCorreo.Text = "" DdlRoles.SelectedValueExist("-1") BtnUsuario.Text = "Agregar Usuario" ModalidadModal = "Insertar" CveModal = -1 UpUsuario.Update() RegistraScript(" $('#ModalUsuario').modal('show');") End Sub Protected Sub BtnAddUpdateUsuario_Click(sender As Object, e As EventArgs) Handles BtnUsuario.Click Dim Usuario As New ClsSisUsuarios Dim Rol As String = "" Dim CveUsuario As Integer = 0 If DdlRoles.SelectedItem.ToString = "Compras" Then Rol = DdlRoles.SelectedItem.ToString If DdlRoles.SelectedItem.ToString = "Director General" Then Rol = DdlRoles.SelectedItem.ToString If DdlRoles.SelectedItem.ToString = "Ventas" Then Rol = DdlRoles.SelectedItem.ToString If DdlRoles.SelectedItem.ToString = "Almacen" Then Rol = DdlRoles.SelectedItem.ToString If DdlRoles.SelectedItem.ToString = "Bancos" Then Rol = DdlRoles.SelectedItem.ToString 'INGRESA UN NUEVO USUARIO If ModalidadModal = "Insertar" Then CveUsuario = Usuario.AddUsuario(TxtCorreo.Text, ClsPaginas.ContraseñaPredeterminadaEncriptada, TxtNombre.Text, DdlRoles.SelectedValue.ToEntero, TxtCorreo.Text, -1, -1, True, 100, CveEmpresa, -1, DdlRoles.SelectedValue) If CveUsuario > 0 Then Alert("El nuevo Usuario se guardó correctamente con la contraseña temporal -acceso-.", TipoMensaje.MsgInformacion) If Rol <> "" Then Usuario.AddUsuariosModulosPyMe(CveUsuario, Rol) End If Usuario.AddUsuariosEmpresas(CveUsuario, CveEmpresa) End If End If 'ACTUALIZA USUARIO If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim CveUsuarioUpdate = CveModal If Usuario.UpdateUsuario(TxtCorreo.Text, TxtNombre.Text, DdlRoles.SelectedValue.ToEntero, TxtCorreo.Text, -1, -1, True, True, CveEmpresa, CveUsuarioUpdate, -1, -1) Then Alert("El Usuario se actualizó correctamente", TipoMensaje.MsgInformacion) If Rol <> "" Then Usuario.UpdateUsuariosModulosPyMe(CveUsuarioUpdate, Rol) End If End If End If End If Usuario.Dispose() RegistraScript(" $('#ModalUsuario').modal('hide');") CargaGVUsuarios() CargaDdlUsuario() RecargaGlobal() CargaGridEstatusUsuarios() End Sub Protected Sub GVUsuarios_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvUsuarios.RowCommand If e.CommandName = "Editar" Then Dim GvRow As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow) TxtNombre.Text = GvRow.DataKey("Nombre") TxtCorreo.Text = GvRow.DataKey("Correo") DdlRoles.SelectedValueExist(GvRow.DataKey("CveRol")) BtnUsuario.Text = "Actualizar Usuario" ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveUsuario").ToEntero UpUsuario.Update() RegistraScript(" $('#ModalUsuario').modal('show');") End If End Sub Protected Sub GVUsuarios_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvUsuarios.RowDeleting Dim Usuario As New ClsSisUsuarios If Usuario.RemoveUsuario(GvUsuarios.Rows(e.RowIndex).DataKey("CveUsuario").ToEntero) Then Alert("El usuario se eliminó correctamente.", TipoMensaje.MsgInformacion) End If Usuario.Dispose() CargaGVUsuarios() CargaGridEstatusUsuarios() End Sub #End Region Protected Sub CmdGuardar_Click(sender As Object, e As EventArgs) Handles CmdGuardar.Click Dim Roles As New ClsSisRoles For Each Row As GridViewRow In GvPermisos.Rows Roles.UpdateRolesModulos(Row.DataKey("CveRol").ToEntero, Row.DataKey("CveModulo").ToEntero, If(Row.FCCheckBox("ChkP").Checked, 1, 0), 100) Next Roles.Dispose() UPPAltaRep.Update() RegistraScript("$('#DivPermisos').modal('hide');") End Sub Protected Sub BtnGuardaProcesos_Click(sender As Object, e As EventArgs) Handles BtnGuardaProcesos.Click Dim Roles As New ClsSisRoles For Each Row As GridViewRow In GvProcesos.Rows Roles.UpdateRolesProcesos(Row.DataKey("CveRol").ToEntero, Row.DataKey("CveProceso").ToEntero, If(Row.FCCheckBox("ChkP").Checked, 1, 0), 100) Next Roles.Dispose() RegistraScript("$('#DivProcesos').modal('hide');") UPPAltaProcesos.Update() End Sub Protected Sub GvPermisos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPermisos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If CveEmpresa > 0 Then If (e.Row.DBCampo("CveModuloAcceso")) <> "" Then e.Row.FCCheckBox("ChkP").Checked = True End If End If End Sub Protected Sub GvProcesos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvProcesos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If CveEmpresa > 0 Then If (e.Row.DBCampo("CveModuloAcceso")) <> "" Then e.Row.Cells(0).CssClass = "bg-yellow" End If If (e.Row.DBCampo("CveProcesoAcceso")) <> "" Then e.Row.FCCheckBox("ChkP").Checked = True End If End If End Sub #End Region #Region " PASO 3: CONFIGURACION " #Region " 3.1: LOGO " Protected Sub GuardaLogo() If TextLogo.getfiles().Archivos().Count = 1 Then Dim ArchivoLogo As Archivo = TextLogo.getfiles().Archivos(0) If ArchivoLogo.filenameO.Length <= 114 Then Try Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}" DirectoryExistsCreate(Path) Dim ArchivoDestino As String = String.Format("{0}\Logo.{1}", Path, ArchivoLogo.Extencion) If File.Exists(ArchivoDestino) Then My.Computer.FileSystem.DeleteFile(ArchivoDestino) End If My.Computer.FileSystem.CopyFile(ArchivoLogo.FileUrl, ArchivoDestino) Catch ex As Exception Alert("Ocurrió un error al guardar el Logo de la empresa. Por favor vuelva a intentar.", TipoMensaje.MsgError) End Try Else Alert("El nombre del archivo excede los 115 caracteres permitidos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) End If End If End Sub #End Region #Region " 3.2: CORREOS " #End Region #Region " 3.3: PLANTILLA PARA ENVIO DE CORREOS" Protected Sub LnkBtnMuestraEtiquetas_Click(sender As Object, e As EventArgs) RegistraScript("$('#ModalEtiquetas').modal();") End Sub #End Region #Region " 3.4: FORMATO FACTURA" Protected Sub linkActualizar_Click(sender As Object, e As EventArgs) VerEditarFactura() End Sub Protected Sub RblFormatoFactura_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblFormatoFactura.SelectedIndexChanged Dim StrParams As New StringBuilder Dim Directorio = ModExtensiones.DirectorioBaseEmpresas + String.Format("Empresas\{0}\Formatos\Factura.mrt", CveEmpresa) Dim Archivo As New FileInfo(Directorio) RblFormatoFactura.Items.Item(1).Enabled = Archivo.Exists DivSubirFactura.Visible = (RblFormatoFactura.SelectedValue = "2") HlFormatoFactura.Visible = (RblFormatoFactura.SelectedValue.Contiene("3", "4")) HlFormatoFactura.Text = If(RblFormatoFactura.SelectedValue = "3", "Agregar", "Editar") StrParams.Append("TIPO=Ing") StrParams.Append($"&CVEEMPRESA={CveEmpresa}") StrParams.Append($"&EMPRESA={NombreEmpresaPropiedad}") StrParams.Append($"&RFC={RFCPropiedad}") StrParams.Append($"&DOMICILIO={TxtDireccion.Text}") If RblFormatoFactura.SelectedValue = "4" AndAlso Archivo.Exists Then HlFormatoFactura.NavigateUrl = $"/Ventas/ReporteDetalle.aspx?Op={Encripta(StrParams.ToString)}&Mod=Editar" Else HlFormatoFactura.NavigateUrl = $"/Ventas/ReporteDetalle.aspx?Op={Encripta(StrParams.ToString)}" End If UpFormatoFactura.Update() End Sub Private Sub VerEditarFactura() Dim Directorio = ModExtensiones.DirectorioBaseEmpresas + String.Format("Empresas\{0}\Formatos\Factura.mrt", CveEmpresa) Dim Archivo As New FileInfo(Directorio) RblFormatoFactura.Items.Item(1).Enabled = Archivo.Exists If Archivo.Exists Then Alert("Formato de factura guardado correctamente", TipoMensaje.MsgInformacion) Else Alert("Hubo un error al guardar el formato de factura. Favor de llamar a soporte tecnico", TipoMensaje.MsgInformacion) End If UpFormatoFactura.Update() End Sub #End Region #Region " 3.5: CENTRO COSTOS " Private Sub CargaRequired() If ChkEsSucursal.Checked = True Then RFVSerie.Enabled = True RFVIVA.Enabled = True RFVCalle.Enabled = True RFVNoExtCC.Enabled = True RFVColoniaCC.Enabled = True RFVLocalidadCC.Enabled = True RFVMunicipio.Enabled = True RFVEstadoCC.Enabled = True RFVPais.Enabled = True RFVCPCC.Enabled = True RFVSerie.Visible = True RFVIVA.Visible = True RFVCalle.Visible = True RFVNoExtCC.Visible = True RFVColoniaCC.Visible = True RFVLocalidadCC.Visible = True RFVMunicipio.Visible = True RFVEstadoCC.Visible = True RFVPais.Visible = True RFVCPCC.Visible = True Else RFVSerie.Enabled = False RFVIVA.Enabled = False RFVCalle.Enabled = False RFVNoExtCC.Enabled = False RFVColoniaCC.Enabled = False RFVLocalidadCC.Enabled = False RFVMunicipio.Enabled = False RFVEstadoCC.Enabled = False RFVPais.Enabled = False RFVCPCC.Enabled = False RFVSerie.Visible = False RFVIVA.Visible = False RFVCalle.Visible = False RFVNoExtCC.Visible = False RFVColoniaCC.Visible = False RFVLocalidadCC.Visible = False RFVMunicipio.Visible = False RFVEstadoCC.Visible = False RFVPais.Visible = False RFVCPCC.Visible = False End If End Sub Private Sub ChkEsSucursal_CheckedChanged(sender As Object, e As EventArgs) Handles ChkEsSucursal.CheckedChanged CargaRequired() End Sub Private Sub CargaGVCC() Dim ObjSubProyectos As New ClsSubProyectos If ObjSubProyectos.GetSubProyectos() Then GvCC.DataSource = ObjSubProyectos.DtResultados.FiltraParametros($"CveEmpresa = {CveEmpresa}") End If ObjSubProyectos.Dispose() GvCC.DataBind() CargaDdlProyectos() UpGVCC.Update() End Sub Private Sub CargaDdlProyectos() DdlProyecto.Items.Clear() Dim ObjProyectos As New ClsProyectos If ObjProyectos.GetProyectos() Then DdlProyecto.DataSource = ObjProyectos.DtResultados.FiltraParametros($"CveEmpresa = {CveEmpresa}") End If ObjProyectos.Dispose() DdlProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlProyecto.DataBind() End Sub Protected Sub LBAgregarCC_Click(sender As Object, e As EventArgs) TxtCentroCosto.Text = "" DdlProyecto.SelectedValueExist("-1") TxtSerie.Text = "" TxtIVA.Text = "" TxtCalle.Text = "" TxtNoExtCC.Text = "" TxtNoIntCC.Text = "" TxtColoniaCC.Text = "" TxtLocalidadCC.Text = "" TxtMunicipio.Text = "" TxtEstadoCC.Text = "" TxtPais.Text = "" TxtCPCC.Text = "" If DdlProyecto.SelectedValue.ToEntero.Contiene(1, 2) Then DivProyecto.Style.Add("display", "none") Else DivProyecto.Style.Add("display", "") End If ChkEsMatriz.Checked = False ChkEsSucursal.Checked = False BtnCC.Text = "Agregar Centro Costo" ModalidadModal = "Insertar" CveModal = -1 UpCC.Update() RegistraScript(" $('#ModalCC').modal('show');") End Sub Protected Sub BtnCC_Click(sender As Object, e As EventArgs) Handles BtnCC.Click If DdlProyecto.SelectedValue = "-1" And ModalidadModal = "Actualizar" Then Alert("Tiene que seleccionar un proyecto", TipoMensaje.MsgAdvertencia) Else Dim TieneError As Boolean = False Dim ObjSubproyectos As New ClsSubProyectos Dim ObjProyecto As New ClsProyectos(ObjSubproyectos.IniciaTransacSQL()) Dim TipoSucursal As Integer Dim EsSucursal As Integer Dim CveProyecto As Integer If ChkEsMatriz.Checked = True Then TipoSucursal = 1 Else TipoSucursal = 0 If ChkEsSucursal.Checked = True Then EsSucursal = 1 Else EsSucursal = 0 'INGRESA UN NUEVO CC If ModalidadModal = "Insertar" Then If DdlProyecto.SelectedValue = "-1" Then If Not ObjProyecto.AddProyecto(TxtCentroCosto.Text, 100, CveEmpresa) Then TieneError = True End If End If If TieneError = False Then If DdlProyecto.SelectedValue = "-1" Then CveProyecto = ObjProyecto.CveProyecto Else CveProyecto = DdlProyecto.SelectedValue.ToEntero If ObjSubproyectos.AddCentroCosto(TxtCentroCosto.Text.Trim, 0, 100, CveEmpresa, CveProyecto, Serie:=TxtSerie.Text.Trim, IVA:=TxtIVA.Text.ToDecimal, Calle:=TxtCalle.Text.Trim, NoExt:=TxtNoExtCC.Text.Trim, NoInt:=TxtNoIntCC.Text.Trim, Colonia:=TxtColoniaCC.Text.Trim, Localidad:=TxtLocalidadCC.Text.Trim, Municipio:=TxtMunicipio.Text.Trim, Estado:=TxtEstadoCC.Text.Trim, Pais:=TxtPais.Text.Trim, CP:=TxtCPCC.Text.Trim, TipoSucursal:=TipoSucursal, EsSucursal:=EsSucursal) Then Alert("El nuevo Centro Costo se guardó correctamente", TipoMensaje.MsgInformacion) Else TieneError = True End If End If End If 'ACTUALIZA CC If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim CveCentroCosto = CveModal If ObjSubproyectos.UpdateCentroCosto(CveCentroCosto, TxtCentroCosto.Text.Trim, 0, 1, 100, CveEmpresa, DdlProyecto.SelectedValue.ToEntero, Serie:=TxtSerie.Text.Trim, IVA:=TxtIVA.Text.ToDecimal, Calle:=TxtCalle.Text.Trim, NoExt:=TxtNoExtCC.Text.Trim, NoInt:=TxtNoIntCC.Text.Trim, Colonia:=TxtColoniaCC.Text.Trim, Localidad:=TxtLocalidadCC.Text.Trim, Municipio:=TxtMunicipio.Text.Trim, Estado:=TxtEstadoCC.Text.Trim, Pais:=TxtPais.Text.Trim, CP:=TxtCPCC.Text.Trim, TipoSucursal:=TipoSucursal, EsSucursal:=EsSucursal) Then Alert("El Centro Costo se actualizó correctamente", TipoMensaje.MsgInformacion) Else TieneError = True End If End If End If If TieneError = True Then ObjProyecto.RollBack() Else ObjProyecto.Commit() End If ObjProyecto.Dispose() ObjSubproyectos.Dispose() RegistraScript(" $('#ModalCC').modal('hide');") CargaGVCC() CargaSubProyectos() UpRequisiciones.Update() End If End Sub Protected Sub GVCC_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvCC.RowCommand If e.CommandName = "Editar" Then Dim GvRow As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow) TxtCentroCosto.Text = GvRow.DataKey("SubProyecto") DdlProyecto.SelectedValueExist(GvRow.DataKey("CveProyecto")) TxtSerie.Text = GvRow.DataKey("Serie") TxtIVA.Text = GvRow.DataKey("IVA") TxtCalle.Text = GvRow.DataKey("Calle") TxtNoExtCC.Text = GvRow.DataKey("NoExt") TxtNoIntCC.Text = GvRow.DataKey("NoInt") TxtColoniaCC.Text = GvRow.DataKey("Colonia") TxtLocalidadCC.Text = GvRow.DataKey("Localidad") TxtMunicipio.Text = GvRow.DataKey("Municipio") TxtEstadoCC.Text = GvRow.DataKey("Estado") TxtPais.Text = GvRow.DataKey("Pais") TxtCPCC.Text = GvRow.DataKey("CP") ChkEsMatriz.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False) ChkEsMatriz.Checked = If(GvRow.DataKey("TipoSucursal").ToString.ToEntero = 1, True, False) ChkEsSucursal.Checked = If(GvRow.DataKey("EsSucursal").ToString.ToEntero = 1, True, False) BtnCC.Text = "Actualizar Centro Costo" ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveSubProyecto").ToEntero CargaRequired() UpCC.Update() RegistraScript(" $('#ModalCC').modal('show');") End If End Sub Protected Sub GVCC_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvCC.RowDeleting Dim ObjSubproyectos As New ClsSubProyectos If ObjSubproyectos.RemoveSubProyecto(GvCC.Rows(e.RowIndex).DataKey("CveSubProyecto").ToEntero) Then Alert("El Centro Costo se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjSubproyectos.Dispose() CargaGVCC() End Sub Private Sub DdlTipoCentroCostos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoCentroCostos.SelectedIndexChanged If DdlTipoCentroCostos.SelectedValue <> "-1" Then Dim ObjEmpresas As New ClsSisEmpresas ObjEmpresas.UpdateTipoCentroCosto(DdlTipoCentroCostos.SelectedValue.ToEntero, CveEmpresa) ObjEmpresas.Dispose() End If End Sub #End Region #Region " 3.6: FOLIOS" Private Sub CargaSubProyectos() DdlSubProyecto.Items.Clear() DdlSubProyectoClientes.Items.Clear() DdlEstatusSubProyecto.Items.Clear() DdlSubProyectoInventario.Items.Clear() Dim ObjSubProyectos As New ClsSubProyectos If ObjSubProyectos.GetSubProyectos() Then DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlSubProyecto.DataSource = ObjSubProyectos.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) DdlSubProyecto.DataBind() DdlSubProyectoClientes.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlSubProyectoClientes.DataSource = ObjSubProyectos.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) DdlSubProyectoClientes.DataBind() DdlEstatusSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlEstatusSubProyecto.DataSource = ObjSubProyectos.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) DdlEstatusSubProyecto.DataBind() DdlSubProyectoInventario.DataSource = ObjSubProyectos.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) DdlSubProyectoInventario.DataBind() End If ObjSubProyectos.Dispose() UpRequisiciones.Update() End Sub Private Sub CargaGvFolio() Dim ObjFolio As New ClsGralFolios If ObjFolio.GetFolios(CveEmpresa:=CveEmpresa) Then GvFolios.DataSource = ObjFolio.DtResultados GvFolios.DataBind() End If UpFolio.Update() ObjFolio.Dispose() End Sub Protected Sub LnkAgregarFolio_Click(sender As Object, e As EventArgs) Handles LnkAgregarFolio.Click DdlSubProyecto.SelectedValueExist("-1") DdlTipoDocto.SelectedValueExist("-1") TxtFolioInicial.Text = "" TxtFolioFinal.Text = "" TxtFolioActual.Text = "" BtnGuardarFolio.Text = "Agregar Folio" ModalidadModal = "Insertar" ChkEstatus.Checked = True CveModal = -1 UpAddFolio.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivAgregarFolio")) End Sub Protected Sub GVFolios_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvFolios.RowCommand If e.CommandName = "Editar" Then Dim GvRow As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow) TxtFolioActual.Text = GvRow.DataKey("FActual") TxtFolioFinal.Text = GvRow.DataKey("FFinal") TxtFolioInicial.Text = GvRow.DataKey("FInicial") DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto")) DdlTipoDocto.SelectedValueExist(GvRow.DataKey("TipoDocto")) ChkEstatus.Checked = If(GvRow.DataKey("Estado").ToString = "Activo", True, False) DivFactual.Visible = True BtnGuardarFolio.Text = "Actualizar Folio" ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveFolio").ToEntero UpAddFolio.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivAgregarFolio")) End If End Sub Protected Sub GvFolios_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvFolios.RowDeleting Dim ObjFolio As New ClsGralFolios If ObjFolio.RemoveFolios(GvFolios.Rows(e.RowIndex).DataKey("CveFolio").ToEntero) Then Alert("El Folio se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjFolio.Dispose() CargaGvFolio() End Sub Protected Sub BtnGuardarFolio_Click(sender As Object, e As EventArgs) Handles BtnGuardarFolio.Click If DdlSubProyecto.SelectedValue = "-1" Then Alert("Tiene que seleccionar un centro de costos.", TipoMensaje.MsgAdvertencia) ElseIf DdlTipoDocto.SelectedValue = "-1" Then Alert("Tiene que seleccionar un tipo docto.", TipoMensaje.MsgAdvertencia) Else Dim ObjFolio As New ClsGralFolios If ModalidadModal = "Insertar" Then If ObjFolio.AddFolios(DdlSubProyecto.SelectedValue.ToEntero, DdlTipoDocto.SelectedValue, "", TxtFolioInicial.Text.ToEntero, TxtFolioInicial.Text.ToEntero, TxtFolioFinal.Text.ToEntero, "", 100, CveEmpresa) Then Alert("El Folio se agrego correctamente.", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarFolio")) End If End If If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim CveFolio = CveModal If ObjFolio.UpdateFolios(DdlSubProyecto.SelectedValue.ToEntero, DdlTipoDocto.SelectedValue, "", TxtFolioInicial.Text.ToEntero, TxtFolioActual.Text.ToEntero, TxtFolioFinal.Text.ToEntero, "", If(ChkEstatus.Checked, True, False), 100, CveFolio) Then Alert("El Folio se actualizo correctamente.", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarFolio")) End If End If End If ObjFolio.Dispose() CargaGvFolio() End If End Sub #End Region #Region " 3.7: ALMACEN" Private Sub CargaSubProyectosInventario() Dim ObjSubProyectos As New ClsSubProyectos If ObjSubProyectos.GetSubProyectos() Then DdlSubProyectoInventario.DataSource = ObjSubProyectos.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) DdlSubProyectoInventario.DataBind() End If ObjSubProyectos.Dispose() End Sub Private Sub CargaGvInventario() Dim ObjInventario As New ClsInventarios If ObjInventario.GetAlmacenes(-1, -1, CveEmpresa, -1) Then GvInventario.DataSource = ObjInventario.DtResultados GvInventario.DataBind() End If UpInventario.Update() ObjInventario.Dispose() End Sub Protected Sub LnkAgregarInventario_Click(sender As Object, e As EventArgs) Handles LnkAgregarInventario.Click DdlSubProyectoInventario.SelectedValueExist("-1") TxtAlmacen.Text = "" DdlTipoAlmacen.SelectedValueExist("-1") DdlModalidad.SelectedValueExist("0") DdlInventariable.SelectedValueExist("1") BtnAgregarAlmacen.Text = "Agregar Almacen" ModalidadModal = "Insertar" ChkEstatusInventario.Checked = True CveModal = -1 UpAddAlmacen.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "divAddAlmacen")) End Sub Protected Sub GvInventario_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInventario.RowCommand If e.CommandName = "Editar" Then Dim GvRow As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow) TxtAlmacen.Text = GvRow.DataKey("Almacen") DdlSubProyectoInventario.SelectedValueExist(GvRow.DataKey("CveSubProyecto")) DdlTipoAlmacen.SelectedValueExist(GvRow.DataKey("CveTipoAlmacen")) DdlModalidad.SelectedValueExist(GvRow.DataKey("CveModalidad")) DdlInventariable.SelectedValueExist(GvRow.DataKey("Inventariable")) ChkEstatusInventario.Checked = If(GvRow.DataKey("Estatus").ToString = "Activo", True, False) BtnAgregarAlmacen.Text = "Actualizar Almacen" ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveAlmacen").ToEntero UpAddAlmacen.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "divAddAlmacen")) End If End Sub Protected Sub GvInventario_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvInventario.RowDeleting Dim ObjInventario As New ClsInventarios If ObjInventario.RemoveAlmacen(GvInventario.Rows(e.RowIndex).DataKey("CveAlmacen").ToEntero) Then Alert("El Almacen se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjInventario.Dispose() CargaGvInventario() End Sub Protected Sub BtnAgregarAlmacen_Click(sender As Object, e As EventArgs) Handles BtnAgregarAlmacen.Click If DdlSubProyectoInventario.SelectedValue = "-1" Then Alert("Tiene que seleccionar un centro de costos.", TipoMensaje.MsgAdvertencia) Else Dim ObjInventario As New ClsInventarios If ModalidadModal = "Insertar" Then If ObjInventario.AddAlmacen(TxtAlmacen.Text, DdlTipoAlmacen.SelectedValue.ToEntero, Nothing, DdlModalidad.SelectedValue.ToEntero, 100, CveEmpresa, CByte(DdlInventariable.SelectedValue), DdlSubProyectoInventario.SelectedValue.ToEntero) Then Alert("El Almacen se agrego correctamente.", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddAlmacen")) End If End If If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim CveAlmacen = CveModal If ObjInventario.UpdateAlmacen(TxtAlmacen.Text, DdlTipoAlmacen.SelectedValue.ToEntero, Nothing, DdlModalidad.SelectedValue.ToEntero, If(ChkEstatusInventario.Checked, True, False), CveAlmacen, CByte(DdlInventariable.SelectedValue), DdlSubProyectoInventario.SelectedValue.ToEntero) Then Alert("El Almacen se actualizo correctamente.", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddAlmacen")) End If End If End If ObjInventario.Dispose() CargaGvInventario() End If End Sub Private Sub GvInventario_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInventario.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.FCLiteral("LtlInventariable").Text = "True" Then e.Row.FCLiteral("LtlInventariable").Text = "Si" Else e.Row.FCLiteral("LtlInventariable").Text = "No" End If End If End Sub #End Region #Region " 3.8: REQUISICIONES" Private Sub DdlEstatusSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEstatusSubProyecto.SelectedIndexChanged If DdlEstatusSubProyecto.SelectedValue = "-1" Then GvEstatusUsuariosREQ.Enabled = False GvEstatusUsuariosREQ.Visible = False btnGuardarEstatusUsuariosREQ.Visible = False Else GvEstatusUsuariosREQ.Enabled = True GvEstatusUsuariosREQ.Visible = True btnGuardarEstatusUsuariosREQ.Visible = True End If CargaGridEstatusUsuarios() End Sub Private Sub CreaGrid() Dim i As Integer = 1 Dim ObjOC As New ClsOC If ObjOC.GetEstatus() Then For Each Row As DataRow In ObjOC.DtResultados.FiltraParametros(String.Format(" CveEmpresa = '{0}' And Tipo = '{1}' ", CveEmpresa, "Req"), "Orden").Rows GvEstatusUsuariosREQ.Columns(i).HeaderText = Row("Estatus").ToString.ToUpper GvEstatusUsuariosREQ.Columns(i).FooterText = Row("CveEstatus").ToString i += 1 Next End If ObjOC.Dispose() End Sub Protected Sub btnGuardarEstatusUsuariosREQ_Click(sender As Object, e As EventArgs) Handles btnGuardarEstatusUsuariosREQ.Click If DdlEstatusSubProyecto.SelectedValue = "-1" Then Alert("Tiene que seleccionar un centro de costo", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim objEstatusOC As New ClsOC objEstatusOC.IniciaTransacSQL() Dim HuboErrores As Boolean = False For Each Row As GridViewRow In GvEstatusUsuariosREQ.Rows Dim r As Integer = 1 For i = 0 To Row.Cells.Count - 1 Dim CveEstatus As Integer = If(IsNumeric(GvEstatusUsuariosREQ.Columns(i).FooterText), GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero, 0) If CveEstatus > 0 Then If Row.FCCheckBox("chkEstatus" + r.ToString).Checked = False And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero > 0 Then 'Eliminar el registro existente If Not objEstatusOC.RemoveEstatusUsuarios(Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero) Then HuboErrores = True Exit For End If ElseIf Row.FCCheckBox("chkEstatus" + r.ToString).Checked = True And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero = -1 Then If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, DdlEstatusSubProyecto.SelectedValue.ToEntero, Row.DataKey("CveUsuario").ToString.ToEntero, True) Then HuboErrores = True Exit For End If If HuboErrores Then Exit For End If End If r += 1 End If Next 'Si tubo algun error terminamos el proceso (FOR) If HuboErrores Then Exit For End If Next If Not HuboErrores Then objEstatusOC.Commit() Alert("Se guardaron los Cambios exitosamente", TipoMensaje.MsgInformacion) Else objEstatusOC.RollBack() Alert("Ocurrió un error al guardar los cambios. Por favor vuelva a intentar", TipoMensaje.MsgError) End If objEstatusOC.Dispose() CargaGridEstatusUsuarios() End Sub Protected Sub CargaGridEstatusUsuarios() 'If Tipo = "OC" Then TmpDTOC.Rows.Clear() Else TmpDTReq.Rows.Clear() If DdlEstatusSubProyecto.SelectedValue = "-1" Then GvEstatusUsuariosREQ.DataSource = Nothing GvEstatusUsuariosREQ.DataBind() Exit Sub End If Dim objEstatusOC As New ClsOC If objEstatusOC.GetEstatusUsuariosPyME(-1, -1, DdlEstatusSubProyecto.SelectedValue.ToEntero, -1, CveEmpresa) Then DTEstatusUsuarios = objEstatusOC.DtResultados GvEstatusUsuariosREQ.DataSource = DTEstatusUsuarios.FiltraParametros("", "Nombre", {"CveUsuario", "Nombre"}) GvEstatusUsuariosREQ.DataBind() End If objEstatusOC.Dispose() UpRequisiciones.Update() End Sub Private Sub CreaGrid(Tipo As String) Dim i As Integer = 1 Dim ObjOC As ClsOC = New ClsOC If ObjOC.GetEstatus() Then For Each Row As DataRow In ObjOC.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0} AND Tipo = '{1}' ", CveEmpresa, Tipo), "Orden").Rows GvEstatusUsuariosREQ.Columns(i).HeaderText = Row("Estatus").ToString.ToUpper GvEstatusUsuariosREQ.Columns(i).FooterText = Row("CveEstatus").ToString i += 1 Next End If ObjOC.Dispose() While i <= 10 GvEstatusUsuariosREQ.Columns(i).Visible = False i += 1 End While End Sub Protected Sub GvEstatusUsuariosREQ_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEstatusUsuariosREQ.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim tmpT As DataTable = DTEstatusUsuarios.FiltraParametros(String.Format("CveUsuario = {0}", e.Row.DBCampo("CveUsuario").ToString)) For i As Integer = 1 To 3 Dim CveEstatus As Integer = GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero If CveEstatus > 0 Then Dim chkEstatus As CheckBox = e.Row.FCCheckBox(String.Format("chkEstatus{0}", i)) 'Dim ibOpciones As ImageButton = e.Row.FCImageButton(String.Format("ibOpciones{0}", i)) Dim hdnCveEstatusUsuarios As HiddenField = e.Row.FCHiddenField(String.Format("hdnCveEstatusUsuarios{0}", i)) 'Dim lblSuperior As Label = e.Row.FCLabel(String.Format("lblSuperior{0}", i)) 'Dim lblLimites As Label = e.Row.FCLabel(String.Format("lblLimites{0}", i)) 'ibOpciones.CommandArgument = GlobalDTOCEstatus(CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows(0)("CveEstatusSiguiente").ToString Dim RowEU As DataRowCollection = tmpT.FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows Dim CveEstatusUsuarios As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveEstatusUsuarios")), RowEU(0)("CveEstatusUsuarios").ToString.ToEntero, -1) 'Dim LimiteInferior As Decimal = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("LimiteInferior")), RowEU(0)("LimiteInferior").ToString.ToDecimal, -1) 'Dim LimiteSuperior As Decimal = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("LimiteSuperior")), RowEU(0)("LimiteSuperior").ToString.ToDecimal, -1) Dim CveSuperior As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveSuperior")), RowEU(0)("CveSuperior").ToString.ToEntero, -1) Dim CveUsuario As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveUsuario")), RowEU(0)("CveUsuario").ToString.ToEntero, -1) Dim TipoTermino As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("TipoTermino")), RowEU(0)("TipoTermino").ToString.ToEntero, -1) ' 0. supervisada, 1. autorizada, 2. rechazada If RowEU.Count > 0 Then chkEstatus.Checked = True 'chkEstatus.Attributes.Add("onclick", String.Format("javascript:chk1Change(this, '{0}');", ibOpciones.ClientID)) hdnCveEstatusUsuarios.Value = RowEU(0)("CveEstatusUsuarios").ToString 'ibOpciones.Style.Add("display", "inline") Dim script As New StringBuilder script.AppendFormat("javascript:hdnCveEstatusUsuarios.value='{0}'; ", CveEstatusUsuarios) script.AppendFormat("IDhdnCveEstatusUsuarios.value='{0}'; ", hdnCveEstatusUsuarios.ClientID) script.Append("hdnCveEstatus.value = '-1';") script.Append("hdnCveUsuario.value = '-1';") script.AppendFormat("hdnCveSuperior.value = '{0}'; ", CveSuperior) 'script.AppendFormat("chkMostrarLimites.checked = {0};chkMostrarLimitesCambio();", If(LimiteInferior > 0 Or LimiteSuperior > 0 Or TipoTermino.Contiene(0, 1, 2), "true", "false")) 'script.AppendFormat("$get('DivLimites').style.display = '{0}';", If(LimiteInferior > 0 Or LimiteSuperior > 0, "inline", "none")) 'script.AppendFormat("txtLimiteInferior.value = '{0}'; ", If(LimiteInferior > 0, LimiteInferior.FormatoNumero, "")) 'script.AppendFormat("txtLimiteSuperior.value = '{0}'; ", If(LimiteSuperior > 0, LimiteSuperior.FormatoNumero, "")) 'ibOpciones.Attributes.Add("onclick", script.ToString) 'lblSuperior.Text = RowEU(0)("Superior").ToString 'If LimiteSuperior = -1 And LimiteInferior = -1 Then ' 'Sin Limite 'ElseIf LimiteSuperior > 0 And LimiteInferior = -1 Then ' 'Solo Limite Superior ' lblLimites.Text = String.Format("Hasta {0}", LimiteSuperior.ToString("N")) 'ElseIf LimiteInferior > 0 And LimiteSuperior = -1 Then ' 'Solo limite Inferior ' lblLimites.Text = String.Format("Desde {0}", LimiteInferior.ToString("N")) 'Else ' 'Con Limites ' lblLimites.Text = String.Format("{0} - {1}", LimiteInferior.ToString("N"), LimiteSuperior.ToString("N")) 'End If e.Row.Cells(i).BackColor = Drawing.Color.Yellow If DTEstatusUsuarios.FiltraParametros(String.Format("CveEstatusSiguiente = {0} AND CveSuperior = {1}", CveEstatus, CveUsuario)).Rows.Count > 0 Then chkEstatus.Attributes.Add("onclick", "javascript:var retorno = true; if (this.checked == false) retorno = confirm('Estas seguro????'); return retorno;") End If Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" 'ibOpciones.Style.Add("display", "none") Dim script As New StringBuilder script.AppendFormat("javascript:hdnCveEstatusUsuarios.value='{0}'; ", CveEstatusUsuarios) script.AppendFormat("IDhdnCveEstatusUsuarios.value='{0}'; ", hdnCveEstatusUsuarios.ClientID) script.AppendFormat("hdnCveEstatus.value = '{0}';", CveEstatus) script.AppendFormat("hdnCveUsuario.value = '{0}';", e.Row.DBCampo("CveUsuario").ToString) script.AppendFormat("hdnCveSuperior.value = '-1'; ") 'script.AppendFormat("chkMostrarLimites.checked = {0};chkMostrarLimitesCambio();", If(LimiteInferior > 0 Or LimiteSuperior > 0, "true", "false")) 'script.AppendFormat("txtLimiteInferior.value = '0.00'; ") 'script.AppendFormat("txtLimiteSuperior.value = '0.00'; ") 'ibOpciones.Attributes.Add("onclick", script.ToString) End If End If Next End If End Sub #End Region #End Region #Region " PASO 4: CATALOGOS " #Region " 4.1: CLASIFICACIONES " Private Sub CargaDdlClasificaciones() DdlClasificacion.Items.Clear() Dim ObjClasi As New ClsClasificaciones If ObjClasi.GetClasificaciones(CveEmpresa) Then DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlClasificacion.DataSource = ObjClasi.DtResultados DdlClasificacion.DataBind() End If UpEditPS.Update() UpAddPS.Update() End Sub Protected Sub BtnClasificacion_Click(sender As Object, e As EventArgs) Handles btnClasificacion.Click If TxtAddClasificacion.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtAddClasificacion.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarExcelClasificaciones(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If 'If TxtAddClasificacion.getfiles().Archivos.Count > 0 Then 'Dim file As Archivo = TxtAddClasificacion.getfiles().Archivos(0) 'Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch & file.filename 'CargarExcelClasificaciones(Directorio) ' Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") ' ' CargarArchivoClasificaciones(ModExtensiones.DirectorioBaseEmpresas & file.patch, file.filename, Tipo) 'Else ' Alert("No existe el archivo.Favor de subir un archivo de excel a la plataforma", TipoMensaje.MsgError) 'End If End Sub Private Sub CargarExcelClasificaciones(Ruta As String, FileName As String, Tipo As String) Dim dtClasificacion As New DataTable Dim ErrorExcel = False 'Verificamos que el archivo tenga el formato correcto If Tipo <> "EXCEL" Then Alert("El archivo no tiene el formato correcto.", TipoMensaje.MsgError) Exit Sub End If Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;" Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb") Using objDbConnection = objDbFactory.CreateConnection(), objDbAdapter = objDbFactory.CreateDataAdapter(), Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") objDbConnection.ConnectionString = strConnString objDbConnection.Open() Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables") Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME") Try Conexion.Open() Dim cmd = Conexion.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = $"SELECT * FROM [{HojaExcel}]" Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) DataAdapter.Fill(dtClasificacion) Conexion.Close() Catch ex As Exception ErrorExcel = True OnError("Ocurrio un error al leer el archivo Excel
" & ex.Message, ex) End Try Conexion.Close() End Using If Not ErrorExcel Then Dim NumRows As Integer = 0 If Not dtClasificacion.Columns(0).ColumnName = "Clasificacion" Then Alert("El nombre de la primera columna debe ser 'Clasificacion'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If Dim ObjClasificaciones As New ClsClasificaciones For Each Row As DataRow In dtClasificacion.Rows Dim Clasificacion As String = Row("Clasificacion").ToString If ObjClasificaciones.AddClasificaciones(Clasificacion, "", 0, "", 0, "", 0, "", 0, 100, CveEmpresa, UsoClasificacion:=0) Then NumRows = NumRows + 1 End If Next Alert(String.Format("Se agregaron: {0} Clasificaciones correctamente.", NumRows), TipoMensaje.MsgInformacion) If ObjClasificaciones.GetClasificaciones(CveEmpresa) Then GvClasificaciones.DataSource = ObjClasificaciones.DtResultados GvClasificaciones.DataBind() End If ObjClasificaciones.Dispose() UpClasificaciones.Update() RegistraScript("$('#DivAddClasificaciones').modal('hide');") End If End Sub Protected Sub GVClasificaciones_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvClasificaciones.RowDeleting If CveEmpresa = 0 Then DtClasificaciones.Rows.RemoveAt(e.RowIndex) DtClasificaciones.AcceptChanges() GvClasificaciones.DataSource = DtClasificaciones GvClasificaciones.DataBind() 'UPGVClasi.Update() ElseIf CveEmpresa > 0 Then Dim ObjClasificaciones As New ClsClasificaciones If ObjClasificaciones.RemoveClasificacion(GvClasificaciones.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvClasificaciones.EditIndex = -1 GvClasificaciones.DataSource = ObjClasificaciones.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) GvClasificaciones.DataBind() Alert("La clasificación se eliminó correctamente.", TipoMensaje.MsgInformacion) Else Alert("Ocurrió un error al eliminar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If ObjClasificaciones.Dispose() End If End Sub Private Sub LnkAgregarClasificacion_Click(sender As Object, e As EventArgs) Handles LnkAgregarClasificacion.Click TxtClasificacion.Text = "" BtnAgregarClasificacion.Text = "Agregar Clasificacion" ModalidadModal = "Insertar" CveModal = -1 UpAddClasificacion.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddClasificacion")) End Sub Private Sub BtnAgregarClasificacion_Click(sender As Object, e As EventArgs) Handles BtnAgregarClasificacion.Click Dim ObjClasificacion As New ClsClasificaciones If ModalidadModal = "Insertar" Then If ObjClasificacion.AddClasificaciones(TxtClasificacion.Text, "", 0, "", 0, "", 0, "", 0, 100, CveEmpresa, UsoClasificacion:=0) Then Alert("La clasificacion se agrego correctamente", TipoMensaje.MsgInformacion) End If End If If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim CveClasificacion = CveModal If ObjClasificacion.UpdateClasificacion(TxtClasificacion.Text, "", 0, "", 0, "", 0, "", True, False, 0, 100, CveClasificacion) Then Alert("La clasificacion se actualizo correctamente", TipoMensaje.MsgInformacion) End If End If End If ObjClasificacion.Dispose() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddClasificacion")) CargaGVClasificacion() End Sub Private Sub CargaGVClasificacion() Dim ObjClasificacion As New ClsClasificaciones If ObjClasificacion.GetClasificaciones(CveEmpresa) Then GvClasificaciones.DataSource = ObjClasificacion.DtResultados GvClasificaciones.DataBind() End If ObjClasificacion.Dispose() UpClasificaciones.Update() End Sub Public Sub EditClasificacion_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveClasificacion").ToEntero TxtClasificacion.Text = GvRow.DataKey("Clasificacion") BtnAgregarClasificacion.Text = "Actualizar Clasificacion" UpAddClasificacion.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddClasificacion")) End Sub #End Region #Region " 4.2: UNIDADES DE MEDIDA " Private Sub CargaDdlUM() DdlUM.Items.Clear() Dim ObjUM As New ClsUnidadesMedida If ObjUM.GetUnidadesMedida(CveEmpresa) Then DdlUM.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlUM.DataSource = ObjUM.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) DdlUM.DataBind() End If UpEditPS.Update() UpAddPS.DataBind() End Sub Private Sub CargarExcelUnidadesMedida(Ruta As String, FileName As String, Tipo As String) Dim dtUM As New DataTable Dim ErrorExcel = False 'Verificamos que el archivo tenga el formato correcto If Tipo <> "EXCEL" Then Alert("El archivo no tiene el formato correcto.", TipoMensaje.MsgError) Exit Sub End If Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;" Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb") Using objDbConnection = objDbFactory.CreateConnection(), objDbAdapter = objDbFactory.CreateDataAdapter(), Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") objDbConnection.ConnectionString = strConnString objDbConnection.Open() Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables") Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME") Try Conexion.Open() Dim cmd = Conexion.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = $"SELECT * FROM [{HojaExcel}]" Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) DataAdapter.Fill(dtUM) Conexion.Close() Catch ex As Exception ErrorExcel = True OnError("Ocurrio un error al leer el archivo Excel
" & ex.Message, ex) End Try Conexion.Close() End Using If Not ErrorExcel AndAlso dtUM.Rows.Count > 0 Then Dim NumRows As Integer = 0 ' Verificamos que el archivo tenga la estructura de la plantilla If Not dtUM.Columns(0).ColumnName = "UnidadMedida" Then Alert("El nombre de la primera columna debe ser 'UnidadMedida'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtUM.Columns(1).ColumnName = "Abreviatura" Then Alert("El nombre de la segunda columna debe ser 'Abreviatura'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If Dim ObjUnidadesMedida As New ClsUnidadesMedida For Each Row As DataRow In dtUM.Rows Dim UnidadMedida As String = Row("UnidadMedida").ToString Dim Abreviatura As String = Row("Abreviatura").ToString If ObjUnidadesMedida.AddUnidadMedida(UnidadMedida, Abreviatura, "", "", "", 100, CveEmpresa, -1) > -1 Then NumRows = NumRows + 1 End If Next Alert(String.Format("Se agregaron: {0} Unidades de Medida correctamente.", NumRows), TipoMensaje.MsgInformacion) If ObjUnidadesMedida.GetUnidadesMedida(CveEmpresa) Then GvUM.DataSource = ObjUnidadesMedida.DtResultados.FiltraParametros($"CveEmpresa = {CveEmpresa}") GvUM.DataBind() End If ObjUnidadesMedida.Dispose() End If UpGVUM.Update() RegistraScript("$('#DivAddUnidadesMedida').modal('hide');") End Sub Protected Sub GvUM_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvUM.RowDeleting If CveEmpresa = 0 Then DtUM.Rows.RemoveAt(e.RowIndex) DtUM.AcceptChanges() GvUM.DataSource = DtUM GvUM.DataBind() UpGVUM.Update() Else Dim ObjUnidadesMedida As New ClsUnidadesMedida If ObjUnidadesMedida.RemoveUnidadMedida(GvUM.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvUM.EditIndex = -1 GvUM.DataSource = ObjUnidadesMedida.DtResultados.FiltraParametros("CveEmpresa = " & CveEmpresa) GvUM.DataBind() Alert("La Unidad de Medida se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjUnidadesMedida.Dispose() End If End Sub Public Sub EditUM_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveUnidadMedida").ToEntero TxtUM.Text = GvRow.DataKey("UnidadMedida") TxtAbreviatura.Text = GvRow.DataKey("Abreviatura") BtnAddUM.Text = "Actualizar Unidad de Medida" UpAddUM.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddUM")) End Sub Private Sub CargaGVUM() Dim ObjUM As New ClsUnidadesMedida If ObjUM.GetUnidadesMedida(CveEmpresa) Then GvUM.DataSource = ObjUM.DtResultados.FiltraParametros(String.Format("CveEmpresa={0}", CveEmpresa)) GvUM.DataBind() End If ObjUM.Dispose() UpGVUM.Update() End Sub Private Sub LnkAddUM_Click(sender As Object, e As EventArgs) Handles LnkAddUM.Click TxtUM.Text = "" TxtAbreviatura.Text = "" BtnAddUM.Text = "Agregar Unidad de Medida" ModalidadModal = "Insertar" CveModal = -1 UpAddUM.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddUM")) End Sub Private Sub BtnAddUM_Click(sender As Object, e As EventArgs) Handles BtnAddUM.Click Dim ObjUM As New ClsUnidadesMedida If ModalidadModal = "Insertar" Then If ObjUM.AddUnidadMedida(TxtUM.Text, TxtAbreviatura.Text, "", "", "", 100, CveEmpresa, -1) <> -1 Then Alert("La clasificacion se agrego correctamente", TipoMensaje.MsgInformacion) End If End If If ModalidadModal = "Actualizar" Then If CveModal > 0 Then Dim CveUM = CveModal If ObjUM.UpdateUnidadMedida(TxtUM.Text, TxtAbreviatura.Text, "", "", "", True, 100, CveUM, -1) Then Alert("La clasificacion se actualizo correctamente", TipoMensaje.MsgInformacion) End If End If End If ObjUM.Dispose() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddUM")) CargaGVUM() End Sub Protected Sub BtnDivAddUnidadesMedida_Click(sender As Object, e As EventArgs) Handles BtnDivAddUnidadesMedida.Click If TxtAddUnidadesMedida.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtAddUnidadesMedida.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarExcelUnidadesMedida(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If End Sub #End Region #Region " 4.3: PRODUCTOS / SERVICIOS " Private Sub GVPS_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVPS.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.Cells(3).Text = "$" + FormatNumber(e.Row.DBCampo("Precio").ToString, 2, , , TriState.True) End If End Sub Private Sub CargarExcelPS(rutaExcel As String, Tipo As String) Dim DtExcel As New DataTable Dim ErrorExcel = False If Tipo <> "EXCEL" Then Alert("El archivo no tiene el formato correcto.", TipoMensaje.MsgError) Exit Sub End If Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + rutaExcel + ";Extended Properties=Excel 8.0;" Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb") Using objDbConnection = objDbFactory.CreateConnection, objDbAdapter = objDbFactory.CreateDataAdapter(), Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + rutaExcel + ";") objDbConnection.ConnectionString = strConnString objDbConnection.Open() Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables") Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME") Try Conexion.Open() Dim cmd = Conexion.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = $"SELECT * FROM [{HojaExcel}]" Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) DataAdapter.Fill(DtExcel) Conexion.Close() Catch ex As Exception ErrorExcel = True OnError("Ocurrio un error al leer el Excel
" & ex.Message, ex) End Try End Using If Not ErrorExcel Then 'Verificamos que la estructura del archivo coincida con la plantilla If Not DtExcel.Columns(0).ColumnName = "Codigo" Then Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(1).ColumnName = "Descripcion" Then Alert("El nombre de la segunda columna debe ser 'Descripcion'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(2).ColumnName = "Tipo" Then Alert("El nombre de la primera columna debe ser 'Tipo'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(3).ColumnName = "Código Barras" Then Alert("El nombre de la segunda columna debe ser 'Código Barras'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(4).ColumnName = "Unidad Medida" Then Alert("El nombre de la primera columna debe ser 'Unidad Medida'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(5).ColumnName = "Clasificacion" Then Alert("El nombre de la segunda columna debe ser 'Clasificacion'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(6).ColumnName = "Marca" Then Alert("El nombre de la segunda columna debe ser 'Marca'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(7).ColumnName = "AplicaSerie" Then Alert("El nombre de la primera columna debe ser 'AplicaSerie'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(8).ColumnName = "Precio" Then Alert("El nombre de la segunda columna debe ser 'Precio'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not DtExcel.Columns(9).ColumnName = "IEPS" Then Alert("El nombre de la segunda columna debe ser 'IEPS'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If Dim NumRows As Integer = DtExcel.Rows.Count Dim ErrorPS As Boolean = False Dim ExistePS As Boolean = False Dim Contador As Integer = 0 'Obtengo Productos Dim ObjPS As New ClsProductosServicios Dim DTPS As New DataTable ObjPS.IniciaTransacSQL() If ObjPS.GetPS(-1, -1, CveEmpresa) Then DTPS = ObjPS.DtResultados End If 'Obtengo Clasificaciones Dim ObjClasificaciones As New ClsClasificaciones Dim DTClasificaciones As New DataTable If ObjClasificaciones.GetClasificaciones(CveEmpresa) Then DTClasificaciones = ObjClasificaciones.DtResultados End If ObjClasificaciones.Dispose() 'Obtengo Unidades de medida Dim ObjUM As New ClsUnidadesMedida Dim DTUM As New DataTable If ObjUM.GetUnidadesMedida(CveEmpresa) Then DTUM = ObjUM.DtResultados.FiltraParametros(String.Format("CveEmpresa={0}", CveEmpresa)) End If ObjUM.Dispose() For Each Row As DataRow In DtExcel.Rows Dim Codigo As String = Row("Codigo").ToString Dim Descripcion As String = Row("Descripcion").ToString Dim TipoPS As String = Row("Tipo").ToString.Trim Dim CodigoBarras As String = Row("Código Barras").ToString Dim UnidadMedida As String = Row("Unidad Medida").ToString Dim Clasificacion As String = Row("Clasificacion").ToString Dim Marca As Decimal = Row("Marca").ToString.ToDecimal Dim AplicaSerie As String = Row("AplicaSerie").ToString Dim Precio As String = Row("Precio").ToString Dim IEPS As String = Row("IEPS").ToString Dim CvePS As Integer If DTPS.FiltraParametros($"Codigo = '{Codigo}'").Rows.Count > 0 Then CvePS = DTPS.FiltraParametros($"Codigo = '{Codigo}'").Rows(0)("CvePS").ToString.ToEntero Else CvePS = 0 End If Dim CveUnidadMedida As Integer If DTUM.FiltraParametros($"UnidadMedida = '{UnidadMedida}'").Rows.Count > 0 Then CveUnidadMedida = DTUM.FiltraParametros($"UnidadMedida = '{UnidadMedida}'").Rows(0)("CveUnidadMedida").ToString.ToEntero Else CveUnidadMedida = 0 End If Dim CveClasificacion As Integer If DTClasificaciones.FiltraParametros($"Clasificacion = '{Clasificacion}'").Rows.Count > 0 Then CveClasificacion = DTClasificaciones.FiltraParametros($"Clasificacion = '{Clasificacion}'").Rows(0)("CveClasificacion").ToString.ToEntero Else CveClasificacion = 0 End If If Not CveClasificacion > 0 Then Alert("No se encontró la Clasificación: " + Clasificacion, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For If Not CveUnidadMedida > 0 Then Alert("No se encontró la Unidad de Medida: " + UnidadMedida, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For If CveClasificacion < 0 Then CveClasificacion = 1 If CvePS > 0 Then ExistePS = True Contador = Contador + 1 If Not ObjPS.UpdatePS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", CodigoBarras, Descripcion, Precio.ToDouble, 1, 1, False, 0, True, True, True, 100, CvePS, -1, -1, -1) Then ErrorPS = True Codigo.GuardaLog Exit For End If Else If Not ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", "", Descripcion, Precio.ToDouble, 0, 0, False, 0, False, True, 100, CveEmpresa, 1, 1) <> -1 Then ErrorPS = True Codigo.GuardaLog Exit For End If End If Next If Not ErrorPS Then ObjPS.Commit() If Contador > 0 Then Alert(String.Format("Se agregaron: {0} Productos/Servicios correctamente.
Se Actualizaron: {1} Productos/Servicios ya que ya se encontraban registrados.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion) Else Alert(String.Format("Se agregaron: {0} Productos/Servicios correctamente.", NumRows), TipoMensaje.MsgInformacion) End If TxtAddPS.Text = "" Else ObjPS.RollBack() End If End If RegistraScript("$('#DivAddPS').modal('hide');") CargaGVPS() UPGvPS.Update() End Sub Protected Sub GvPS_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVPS.RowDeleting Dim objPS As New ClsProductosServicios() If objPS.RemovePS(GVPS.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then If objPS.GetPS(-1, -1, CveEmpresa) Then GVPS.DataSource = objPS.DtResultados GVPS.DataBind() Else GVPS.DataSource = Nothing End If Else Alert("Ocurrió un Error al elimiar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If UPGvPS.Update() objPS.Dispose() End Sub Public Sub EditPS_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) CargaDdlClasificaciones() CargaDdlUM() ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CvePS").ToEntero TxtPS.Text = GvRow.DataKey("PS") TxtCodigo.Text = GvRow.DataKey("Codigo") TxtCodigoBarras.Text = GvRow.DataKey("CodigoBarras") TxtPrecio.Text = GvRow.DataKey("Precio") DdlUM.SelectedValueExist(GvRow.DataKey("CveUnidadMedida")) DdlTipoPS.SelectedValueExist(GvRow.DataKey("CveTipoPS")) DdlClasificacion.SelectedValueExist(GvRow.DataKey("CveClasificacion")) BtnDivUpdatePS.Text = "Actualizar Producto/Servicio" ChkAplicaParaVenta.Checked = CBool(GvRow.DataKey("AplicaParaVenta")) UpEditPS.Update() RegistraScript("$('#DivUpdatePS').modal('show');") End Sub Private Sub CargaGVPS() Dim ObjPS As New ClsProductosServicios If ObjPS.GetPS(-1, -1, CveEmpresa) Then GVPS.DataSource = ObjPS.DtResultados GVPS.DataBind() End If ObjPS.Dispose() UPGvPS.Update() End Sub Private Sub LnkAgregarPS_Click(sender As Object, e As EventArgs) Handles LnkAgregarPS.Click CargaDdlClasificaciones() CargaDdlUM() ModalidadModal = "Insertar" TxtPS.Text = "" TxtCodigo.Text = "" TxtCodigoBarras.Text = "" TxtPrecio.Text = "" DdlUM.SelectedValue = "-1" DdlTipoPS.SelectedValue = "-1" DdlClasificacion.SelectedValue = "-1" ChkAplicaParaVenta.Checked = False BtnDivUpdatePS.Text = "Agregar Producto/Servicio" ModalidadModal = "Insertar" CveModal = -1 UpEditPS.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "DivUpdatePS")) End Sub Protected Sub BtnDivUpdatePS_Click(sender As Object, e As EventArgs) Handles BtnDivUpdatePS.Click If DdlClasificacion.SelectedValue = "-1" Then Alert("Tiene que seleccionar una clasificacion", TipoMensaje.MsgAdvertencia) ElseIf DdlUM.SelectedValue = "-1" Then Alert("Tiene que seleccionar una unidad de medida", TipoMensaje.MsgAdvertencia) Else Dim ObjPS As New ClsProductosServicios If ModalidadModal = "Insertar" Then If ObjPS.AddPS(DdlClasificacion.SelectedValue.ToEntero, 1, DdlUM.SelectedValue.ToEntero, TxtCodigo.Text, "", TxtCodigoBarras.Text, TxtPS.Text, TxtPrecio.Text.ToDouble, 0, 0, False, 0, False, True, 100, CveEmpresa, 1, 1) <> -1 Then Alert("El prodtco/servicio se agrego correctamente", TipoMensaje.MsgInformacion) End If End If If ModalidadModal = "Actualizar" Then Dim CvePS As Integer CvePS = CveModal.ToEntero If ObjPS.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, 1, DdlUM.SelectedValue.ToEntero, TxtCodigo.Text, "", TxtCodigoBarras.Text, TxtPS.Text, TxtPrecio.Text.ToDouble, 0, 0, False, 0, False, True, True, 100, CvePS, 1, 1, -1) Then Alert("El prodtco/servicio se actualizo correctamente", TipoMensaje.MsgInformacion) End If End If ObjPS.Dispose() UPGvPS.Update() UpEditPS.Update() CargaGVPS() RegistraScript("$('#DivUpdatePS').modal('hide');") End If End Sub Protected Sub BtnDivAddPS_Click(sender As Object, e As EventArgs) Handles BtnDivAddPS.Click If TxtAddPS.getfiles().Archivos.Count > 0 Then Dim ArchivoExcel As Archivo = TxtAddPS.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & ArchivoExcel.patch & ArchivoExcel.filename Dim Tipo As String = If(ArchivoExcel.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "OTRO") CargarExcelPS(Directorio, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo de excel a la plataforma", TipoMensaje.MsgError) End If End Sub #End Region #End Region #Region " PASO 5: CARGA INICIAL" #Region " 5.1: PROVEEDORES" Private Sub GvProvedoores_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvProvedoores.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.Cells(7).Text = "$" + FormatNumber(e.Row.DBCampo("LimiteCredito").ToString, 2, , , TriState.True) e.Row.Cells(8).Text = FormatNumber(e.Row.DBCampo("PlazoPago").ToString, 0, , , TriState.True) End If End Sub Private Sub CargarArchivoProveedor(Ruta As String, FileName As String, Tipo As String) Dim dtProveedor As New DataTable Dim ErrorExcel = False 'Verificamos que el archivo tenga el formato correcto If Tipo <> "EXCEL" Then Alert("El archivo no tiene el formato correcto.", TipoMensaje.MsgError) Exit Sub End If Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;" Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb") Using objDbConnection = objDbFactory.CreateConnection(), objDbAdapter = objDbFactory.CreateDataAdapter(), Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") objDbConnection.ConnectionString = strConnString objDbConnection.Open() Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables") Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME") Try Conexion.Open() Dim cmd = Conexion.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = $"SELECT * FROM [{HojaExcel}]" Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) DataAdapter.Fill(dtProveedor) Conexion.Close() Catch ex As Exception ErrorExcel = True OnError("Ocurrio un error al leer el archivo Excel
" & ex.Message, ex) End Try Conexion.Close() End Using If Not ErrorExcel Then If Not dtProveedor.Columns(0).ColumnName = "Codigo" Then Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(1).ColumnName = "RazonSocial" Then Alert("El nombre de la segunda columna debe ser 'Fecha'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(2).ColumnName = "RFC" Then Alert("El nombre de la tercera columna debe ser 'RFC'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(3).ColumnName = "Calle" Then Alert("El nombre de la cuarta columna debe ser 'Calle'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(4).ColumnName = "Número exterior" Then Alert("El nombre de la quinta columna debe ser 'Número exterior'.Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(5).ColumnName = "Colonia" Then Alert("El nombre de la sexta columna debe ser 'Colonia'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(6).ColumnName = "Código postal" Then Alert("El nombre de la séptima columna debe ser 'Código postal'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(7).ColumnName = "Población" Then Alert("El nombre de la octava columna debe ser 'Población'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(8).ColumnName = "Estado" Then Alert("El nombre de la novena columna debe ser 'Estado'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(9).ColumnName = "Teléfono" Then Alert("El nombre de la décima columna debe ser 'Teléfono'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(10).ColumnName = "Contacto" Then Alert("El nombre de la onceava columna debe ser 'Contacto'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(11).ColumnName = "Celular Contacto" Then Alert("El nombre de la doceava columna debe ser 'Celular Contacto'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(12).ColumnName = "Limite Credito" Then Alert("El nombre de la treceava columna debe ser 'Limite Credito'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If If Not dtProveedor.Columns(13).ColumnName = "Plazo Cobranza" Then Alert("El nombre de la treceava columna debe ser 'Plazo Cobranza'. Favor de verificar el archivo.", TipoMensaje.MsgError) Exit Sub End If Dim NumRows As Integer = dtProveedor.Rows.Count Dim ObjProv As New ClsCompProveedores Dim ErrorProv As Boolean = False Dim Contador As Integer = 0 Dim ExisteProveedor As Boolean = False ObjProv.IniciaTransacSQL() For Each Row As DataRow In dtProveedor.Rows Dim Codigo As String = Row("Codigo").ToString Dim RazonSocial As String = Row("RazonSocial").ToString Dim RFC As String = Row("RFC").ToString.Trim Dim Calle As String = Row("Calle").ToString Dim NumExt As Decimal = Row("Número exterior").ToString.ToDecimal Dim Colonia As String = Row("Colonia").ToString Dim CodigoPostal As Decimal = Row("Código Postal").ToString.ToDecimal Dim Poblacion As String = Row("Población").ToString Dim Estado As String = Row("Estado").ToString Dim Telefono As String = Row("Teléfono").ToString Dim Contacto As String = Row("Contacto").ToString Dim CelularContacto As String = Row("Celular Contacto").ToString Dim LimiteCredito As Integer = Row("Limite Credito").ToString.ToEntero Dim PlazoCobranza As Integer = Row("Plazo Cobranza").ToString.ToEntero Dim CveProveedor As Integer = 0 Dim CveProveedor2 As Integer = 0 Dim ObjProveedor As New ClsCompProveedores If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then CveProveedor = ObjProveedor.DtResultados.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero CveProveedor2 = ObjProveedor.DtResultados.FiltroPrimeroValor("CveProveedor", $"RazonSocial = '{RazonSocial}'").ToString.ToEntero End If 'ObjProveedor.Dispose() If CveProveedor > 0 Or CveProveedor2 > 0 Then 'ExisteProveedor = True Contador = Contador + 1 If Not ObjProv.UpdateProveedor(Codigo, RazonSocial, RazonSocial, "", RFC, Calle, Telefono, Contacto, "", Telefono, LimiteCredito, PlazoCobranza, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", 1, "", -1, -1, True, "", "", False, CveProveedor) Then ErrorProv = True Exit For End If Else If Not ObjProv.AddProveedor(Codigo, RazonSocial, RazonSocial, "", RFC, Calle, Telefono, Contacto, "", Telefono, LimiteCredito, PlazoCobranza, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", 1, "", -1, -1, "", "", False, 100, CveEmpresa) Then ErrorProv = True Exit For End If End If Next If Not ErrorProv Then ObjProv.Commit() If ObjProv.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", 1, -1) Then Application("GlobalDTCompProveedores") = ObjProv.DtResultados If Contador > 0 Then Alert(String.Format("Se agregaron: {0} Proveedores correctamente.
Se Omitieron: {1} Clientes ya que ya se encontraban registrados.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion) Else Alert(String.Format("Se agregaron: {0} Proveedores correctamente.", NumRows), TipoMensaje.MsgInformacion) End If TxtAddProveedor.Text = "" CargaGVProveedor() RegistraScript("$('#DivExcelProveedor').modal('hide');") Else ObjProv.RollBack() End If ObjProv.Dispose() End If End Sub Protected Sub BtnCargaExcelProveedor_Click(sender As Object, e As EventArgs) Handles BtnCargaExcelProveedor.Click If TxtAddProveedor.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtAddProveedor.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarArchivoProveedor(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If End Sub Public Sub EditProveedor_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveProveedor").ToEntero TxtCodigoProveedor.Text = GvRow.DataKey("Codigo") TxtRazonSocial.Text = GvRow.DataKey("RazonSocial") TxtNombreCorto.Text = GvRow.DataKey("NombreCorto") TxtRFCProv.Text = GvRow.DataKey("RFC") TxtCalleProveedor.Text = GvRow.DataKey("Direccion") TxtLimiteCredito.Text = GvRow.DataKey("LimiteCredito") TxtTelefonoProveedor.Text = GvRow.DataKey("Telefono") TxtPlazoCobranza.Text = GvRow.DataKey("PlazoPago") TxtContactoNombre.Text = GvRow.DataKey("ContactoNombre") BtnAddProveedor.Text = "Actualizar Proveedor" UpAddProveedor.Update() RegistraScript("$('#DivAddProveedor').modal('show');") End Sub Private Sub LnkAddProveedor_Click(sender As Object, e As EventArgs) Handles LnkAddProveedor.Click ModalidadModal = "Insertar" TxtCodigoProveedor.Text = "" TxtRazonSocial.Text = "" TxtNombreCorto.Text = "" TxtRFCProv.Text = "" TxtCalleProveedor.Text = "" TxtLimiteCredito.Text = "" TxtTelefonoProveedor.Text = "" TxtPlazoCobranza.Text = "" TxtContactoNombre.Text = "" BtnAddProveedor.Text = "Agregar Proveedor" ModalidadModal = "Insertar" CveModal = -1 UpAddProveedor.Update() RegistraScript("$('#DivAddProveedor').modal('show');") End Sub Private Sub CargaGVProveedor() Dim ObjProveedor As New ClsCompProveedores If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then GvProvedoores.DataSource = ObjProveedor.DtResultados GvProvedoores.DataBind() End If ObjProveedor.Dispose() UpGvProveedor.Update() End Sub Protected Sub BtnAddProveedor_Click(sender As Object, e As EventArgs) Handles BtnAddProveedor.Click Dim ObjProveedor As New ClsCompProveedores If ModalidadModal = "Insertar" Then If ObjProveedor.AddProveedor(TxtCodigoProveedor.Text, TxtRazonSocial.Text, TxtRazonSocial.Text, TxtNombreCorto.Text, TxtRFCProv.Text, TxtCalleProveedor.Text, TxtTelefonoProveedor.Text, TxtContactoNombre.Text, "", TxtTelefonoProveedor.Text, TxtLimiteCredito.Text.ToDouble, TxtPlazoCobranza.Text.ToEntero, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", 1, "", -1, -1, "", "", False, 100, CveEmpresa) Then Alert("El proveedor se agrego correctamente", TipoMensaje.MsgInformacion) End If End If If ModalidadModal = "Actualizar" Then Dim CveProveedor As Integer CveProveedor = CveModal.ToEntero If ObjProveedor.UpdateProveedor(TxtCodigoProveedor.Text, TxtRazonSocial.Text, TxtRazonSocial.Text, TxtNombreCorto.Text, TxtRFCProv.Text, TxtCalleProveedor.Text, TxtTelefonoProveedor.Text, TxtContactoNombre.Text, "", TxtTelefonoProveedor.Text, TxtLimiteCredito.Text.ToDouble, TxtPlazoCobranza.Text.ToEntero, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, -1, True, "", "", False, CveProveedor) Then Alert("El proveedor se actualizo correctamente", TipoMensaje.MsgInformacion) End If End If ObjProveedor.Dispose() CargaGVProveedor() RegistraScript("$('#DivAddProveedor').modal('hide');") End Sub Protected Sub GvProvedoores_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvProvedoores.RowDeleting Dim ObjProveedor As New ClsCompProveedores If ObjProveedor.RemoveProveedor(GvProvedoores.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then Alert("El Proveedor se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjProveedor.Dispose() CargaGVProveedor() End Sub #End Region #Region " 5.2: CLIENTES" Protected Sub GvCliente_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvCliente.RowDeleting Dim ObjCliente As New ClsClientes If ObjCliente.RemoveCliente(GvCliente.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then Alert("El Cliente se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjCliente.Dispose() CargaGvCliente() End Sub Protected Sub BtnAddCliente_Click(sender As Object, e As EventArgs) Handles BtnAddCliente.Click If DdlSubProyectoClientes.SelectedValue <> "-1" Then Dim ObjCliente As New ClsClientes If ModalidadModal = "Insertar" Then If ObjCliente.AddCliente(TxtRazonSocialCliente.Text, TxtRazonSocialCliente.Text, TxtDireccionCliente.Text, "", "", TxtColoniaCliente.Text, "", "", TxtEstadoCliente.Text, "", TxtRFCCliente.Text, TxtCPCliente.Text, "", TxtContactoCliente.Text, "", "", "", "", "", -1, False, 1, -1, False, 100, CveEmpresa, "", -1, -1, -1, "-1", "-1", -1, "-1", -1, "0", -1, "0", 0, "", 0, "", 0, "", 0, "", "", "", "", 0, "", 1, False, "", "", "", False, "", "", "", "", "", False, "", "", "", False, DdlSubProyectoClientes.SelectedValue.ToEntero, -1) Then Alert("El cliente se agrego correctamente", TipoMensaje.MsgInformacion) End If End If If ModalidadModal = "Actualizar" Then Dim CveCliente As Integer CveCliente = CveModal.ToEntero If ObjCliente.UpdateCliente(TxtRazonSocialCliente.Text, TxtRazonSocialCliente.Text, TxtDireccionCliente.Text, "", "", TxtColoniaCliente.Text, "", "", TxtEstadoCliente.Text, "", TxtRFCCliente.Text, TxtCPCliente.Text, "", TxtContactoCliente.Text, "", "", "", "", "", -1, False, 0.0, 0.0, False, True, "", -1, -1, -1, "-1", "-1", -1, "-1", -1, "0", -1, "0", 0, "", 0, "", 0, "", 0, "", -1, "", -1, "", "", "", "", 0.0, "", 1, False, "", "", "", False, "", "", "", "", "", False, "", 100, CveCliente, 100, CveEmpresa, "", "", False, DdlSubProyectoClientes.SelectedValue.ToEntero, -1) Then Alert("El cliente se actualizo correctamente", TipoMensaje.MsgInformacion) End If End If ObjCliente.Dispose() CargaGvCliente() RegistraScript("$('#DivAddCliente').modal('hide');") Else Alert("Tiene que seleccionar un a sucursal", TipoMensaje.MsgAdvertencia) End If End Sub Public Sub EditCliente_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) CargaSubProyectos() ModalidadModal = "Actualizar" CveModal = GvRow.DataKey("CveCliente").ToEntero TxtRazonSocialCliente.Text = GvRow.DataKey("Nombre") DdlSubProyectoClientes.SelectedValueExist(GvRow.DataKey("CveSubProyecto")) TxtRFCCliente.Text = GvRow.DataKey("RFC") TxtDireccionCliente.Text = GvRow.DataKey("Direccion") TxtColoniaCliente.Text = GvRow.DataKey("Colonia") TxtEstadoCliente.Text = GvRow.DataKey("Estado") TxtCPCliente.Text = GvRow.DataKey("CP") TxtContactoCliente.Text = GvRow.DataKey("Contacto") BtnAddCliente.Text = "Actualizar Cliente" UpAddCliente.Update() RegistraScript("$('#DivAddCliente').modal('show');") End Sub Private Sub LnkAddCliente_Click(sender As Object, e As EventArgs) Handles LnkAddCliente.Click CargaSubProyectos() ModalidadModal = "Insertar" TxtRazonSocialCliente.Text = "" DdlSubProyectoClientes.SelectedValue = "-1" TxtRFCCliente.Text = "" TxtDireccionCliente.Text = "" TxtColoniaCliente.Text = "" TxtEstadoCliente.Text = "" TxtCPCliente.Text = "" TxtContactoCliente.Text = "" BtnAddCliente.Text = "Agregar Cliente" ModalidadModal = "Insertar" CveModal = -1 UpAddCliente.Update() RegistraScript("$('#DivAddCliente').modal('show');") End Sub Private Sub CargaGvCliente() Dim ObjCliente As New ClsClientes If ObjCliente.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then GvCliente.DataSource = ObjCliente.DtResultados GvCliente.DataBind() End If ObjCliente.Dispose() UpGvCliente.Update() End Sub Protected Sub BtnCargaExcelCliente_Click(sender As Object, e As EventArgs) Handles BtnCargaExcelCliente.Click If TxtAddClientes.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtAddClientes.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarArchivoCliente(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If End Sub Private Sub CargarArchivoCliente(Ruta As String, FileName As String, Tipo As String) Dim dtCliente As New DataTable Dim ErrorExcel = False 'Verificamos que el archivo tenga el formato correcto If Tipo <> "EXCEL" Then Alert("El archivo no tiene el formato correcto.", TipoMensaje.MsgError) Exit Sub End If Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;" Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb") Using objDbConnection = objDbFactory.CreateConnection(), objDbAdapter = objDbFactory.CreateDataAdapter(), Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") objDbConnection.ConnectionString = strConnString objDbConnection.Open() Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables") Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME") Try Conexion.Open() Dim cmd = Conexion.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = $"SELECT * FROM [{HojaExcel}]" Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) DataAdapter.Fill(dtCliente) Conexion.Close() Catch ex As Exception ErrorExcel = True OnError("Ocurrio un error al leer el archivo Excel
" & ex.Message, ex) End Try Conexion.Close() End Using If Not ErrorExcel Then If Not dtCliente.Columns(0).ColumnName = "Codigo" Then Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(1).ColumnName = "RazonSocial" Then Alert("El nombre de la segunda columna debe ser 'Fecha'.Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(2).ColumnName = "RFC" Then Alert("El nombre de la tercera columna debe ser 'RFC'.Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(3).ColumnName = "Calle" Then Alert("El nombre de la cuarta columna debe ser 'Calle'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(4).ColumnName = "Número exterior" Then Alert("El nombre de la quinta columna debe ser 'Número exterior' .Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(5).ColumnName = "Colonia" Then Alert("El nombre de la sexta columna debe ser 'Colonia'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(6).ColumnName = "Código postal" Then Alert("El nombre de la séptima columna debe ser 'Código postal'.Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(7).ColumnName = "Población" Then Alert("El nombre de la octava columna debe ser 'Población'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(8).ColumnName = "Estado" Then Alert("El nombre de la novena columna debe ser 'Estado'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(9).ColumnName = "Teléfono" Then Alert("El nombre de la décima columna debe ser 'Teléfono'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(10).ColumnName = "Contacto" Then Alert("El nombre de la onceava columna debe ser 'Contacto'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(11).ColumnName = "Celular Contacto" Then Alert("El nombre de la doceava columna debe ser 'Celular Contacto'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(12).ColumnName = "Limite Credito" Then Alert("El nombre de la treceava columna debe ser 'Limite Credito'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtCliente.Columns(13).ColumnName = "Plazo Cobranza" Then Alert("El nombre de la treceava columna debe ser 'Plazo Cobranza'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If Dim NumRows As Integer = dtCliente.Rows.Count Dim ObjClientes As New ClsClientes Dim ErrorClientes As Boolean = False Dim ExisteCliente As Boolean = False Dim Contador As Integer = 0 Dim NumRow As Integer = 0 Try ObjClientes.IniciaTransacSQL() For Each Row As DataRow In dtCliente.FiltraParametros("RFC <> ''").Rows NumRow = NumRow + 1 Dim Codigo As String = Row("Codigo").ToString Dim RazonSocial As String = Row("RazonSocial").ToString Dim RFC As String = Row("RFC").ToString.Trim Dim Calle As String = Row("Calle").ToString Dim NumExt As Decimal = Row("Número exterior").ToString.ToDecimal Dim Colonia As String = Row("Colonia").ToString Dim CodigoPostal As String = Row("Código Postal").ToString Dim Poblacion As String = Row("Población").ToString Dim Estado As String = Row("Estado").ToString Dim Pais As String = Row("Pais").ToString Dim Telefono As String = Row("Teléfono").ToString Dim Contacto As String = Row("Contacto").ToString Dim CelularContacto As String = Row("Celular Contacto").ToString Dim CveCliente As Integer = 0 Dim ObjCliente As New ClsClientes If ObjCliente.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then CveCliente = ObjCliente.DtResultados.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString.ToEntero End If ObjCliente.Dispose() If CveCliente > 0 Then ExisteCliente = True Contador = Contador + 1 If Not ObjClientes.UpdateCliente(RazonSocial, RazonSocial, Calle, "", "", Colonia, "", "", Estado, Pais, RFC, CodigoPostal, "", Contacto, "", "", "", "", "", -1, False, 0.0, 0.0, False, True, "", -1, -1, -1, "-1", "-1", -1, "-1", -1, "0", -1, "0", 0, "", 0, "", 0, "", 0, "", -1, "", -1, "", "", "", "", 0.0, "", 1, False, "", "", "", False, "", "", "", "", "", False, "", 100, CveCliente, 100, CveEmpresa, "", "", False, -1, -1) Then ErrorClientes = True RFC.GuardaLog Exit For End If Else If Not ObjClientes.AddCliente(RazonSocial, RazonSocial, Calle, "", "", Colonia, "", "", Estado, Pais, RFC, CodigoPostal, "", Contacto, "", "", "", "", "", -1, False, 1, -1, False, 100, CveEmpresa, "", -1, -1, -1, "-1", "-1", -1, "-1", -1, "0", -1, "0", 0, "", 0, "", 0, "", 0, "", "", "", "", 0, "", 1, False, "", "", "", False, "", "", "", "", "", False, "", "", "", False, -1, -1) Then ErrorClientes = True RFC.GuardaLog Exit For End If End If Next Catch ex As Exception GuardaLog($"Ocurrio un error al agregar el Cliente: {ex}, {NumRow}") ObjClientes.RollBack() Finally 'ObjClientes.Dispose() End Try If Not ErrorClientes Then ObjClientes.Commit() 'If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then Application("GlobalDTCliente") = ObjClientes.DtResultados If Contador > 0 Then Alert(String.Format("Se agregaron: {0} Clientes correctamente.
Se Omitieron: {1} Clientes ya que ya se encontraban registrados.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion) Else Alert(String.Format("Se agregaron: {0} Clientes correctamente.", NumRows), TipoMensaje.MsgInformacion) End If TxtAddClientes.Text = "" CargaGvCliente() Else ObjClientes.RollBack() End If ObjClientes.Dispose() End If End Sub #End Region #Region " 5.3: FACTURAS" Private Sub BtnCargaExcelFacturas_Click(sender As Object, e As EventArgs) Handles BtnCargaExcelFacturas.Click If TxtAddFactura.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtAddFactura.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarArchivoFactura(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If End Sub Private Sub BtnDescargarFacturas_Click(sender As Object, e As EventArgs) Handles BtnDescargarFacturas.Click DescargarExcel("Fact") End Sub Private Sub CargarArchivoFactura(Ruta As String, FileName As String, Tipo As String) Dim dtFactura As New DataTable Dim ErrorExcel = False If Tipo <> "EXCEL" Then Alert("El archivo no tiene el formato correcto.", TipoMensaje.MsgError) Exit Sub End If Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;" Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb") Using objDbConnection = objDbFactory.CreateConnection(), objDbAdapter = objDbFactory.CreateDataAdapter(), Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") objDbConnection.ConnectionString = strConnString objDbConnection.Open() Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables") Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME") Try Conexion.Open() Dim cmd = Conexion.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = $"SELECT * FROM [{HojaExcel}]" Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) DataAdapter.Fill(dtFactura) Conexion.Close() Catch ex As Exception ErrorExcel = True OnError("Ocurrio un error al leer el archivo Excel
" & ex.Message, ex) End Try Conexion.Close() End Using If Not ErrorExcel Then If Not dtFactura.Columns(0).ColumnName = "Sucursal" Then Alert("El nombre de la primera columna debe ser 'Sucursal'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(1).ColumnName = "RFC" Then Alert("El nombre de la segunda columna debe ser 'RFC'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(2).ColumnName = "Serie" Then Alert("El nombre de la tercera columna debe ser 'Serie'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(3).ColumnName = "Folio" Then Alert("El nombre de la cuarta columna debe ser 'Folio'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(4).ColumnName = "Fecha" Then Alert("El nombre de la quinta columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(5).ColumnName = "SubTotal" Then Alert("El nombre de la sexta columna debe ser 'SubTotal'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(6).ColumnName = "IVA" Then Alert("El nombre de la séptima columna debe ser 'IVA'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(7).ColumnName = "Total" Then Alert("El nombre de la octava columna debe ser 'Total'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(8).ColumnName = "Saldo" Then Alert("El nombre de la novena columna debe ser 'Saldo'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(9).ColumnName = "Tipo Documento" Then Alert("El nombre de la décima columna debe ser 'Tipo Documento'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(10).ColumnName = "Ret IVA" Then Alert("El nombre de la onceava columna debe ser 'Ret IVA'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(11).ColumnName = "Ret ISR" Then Alert("El nombre de la doceava columna debe ser 'Ret ISR'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(12).ColumnName = "Moneda" Then Alert("El nombre de la treceava columna debe ser 'Moneda'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(13).ColumnName = "Tipo Cambio" Then Alert("El nombre de la catorceava columna debe ser 'Tipo Cambio'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dtFactura.Columns(14).ColumnName = "Fecha Vencimiento" Then Alert("El nombre de la quinceava columna debe ser 'Fecha Vencimiento'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If RblFormato.SelectedValue = "1" Then Dim NumRows As Integer = dtFactura.Rows.Count Dim ObjCompras As New ClsCompras Dim ErrorCompras As Boolean = False Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL()) Dim CveCompra As Integer Dim Contador As Integer = 0 Dim ExisteCompra As Boolean = False Dim DtProveedores = New DataTable Dim ObjProve As New ClsCompProveedores If ObjProve.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then DtProveedores = ObjProve.DtResultados End If ObjProve.Dispose() For Each Row As DataRow In dtFactura.FiltraParametros("RFC <> '' AND Folio <> '' ").Rows Dim Sucursal As String = Row("Sucursal").ToString Dim RFC As String = Row("RFC").ToString.Trim Dim Serie As String = Row("Serie").ToString Dim Folio As String = Row("Folio").ToString Dim Fecha As Date = Row("Fecha").ToString.ToDate Dim SubTotal As Decimal = Row("SubTotal").ToString.ToDecimal Dim IVA As Decimal = Row("IVA").ToString.ToDecimal Dim Total As Decimal = Row("Total").ToString.ToDecimal Dim Saldo As Decimal = Row("Saldo").ToString.ToDecimal Dim TipoDocto As String = Row("Tipo Documento").ToString Dim CveProveedor As Integer = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero Dim CvePS As Integer = 0 Dim CveUnidadMedida As Integer = 0 Dim ObjPS As New ClsProductosServicios If ObjPS.GetPS(-1, -1, CveEmpresa) Then CvePS = ObjPS.DtResultados.FiltroPrimeroValor("CvePS").ToString.ToEntero End If ObjPS.Dispose() Dim ObjUM As New ClsUnidadesMedida If ObjUM.GetUnidadesMedida(CveEmpresa) Then CveUnidadMedida = ObjUM.DtResultados.FiltraParametros($"CveEmpresa={CveEmpresa}").FiltroPrimeroValor("CveUnidadMedida").ToString.ToEntero End If ObjUM.Dispose() Dim RetIVA As Double = Row("Ret IVA").ToString.ToDouble Dim RetISR As Double = Row("Ret ISR").ToString.ToDouble Dim Moneda As String = Row("Moneda").ToString Dim TipoCambio As String = Row("Tipo Cambio").ToString Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString.ToDate Dim CveMoneda As Integer = 1 If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorCompras = True If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorCompras = True If Not CveProveedor > 0 Then Alert(String.Format("No se encontró el Proveedor con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorCompras = True : Exit For TipoDocto = IIf(TipoDocto = "Ingresos", "Fac", "NC").ToString 'Moneda If Moneda = "Pesos" Then CveMoneda = 1 ElseIf Moneda = "Dólares" Then CveMoneda = 2 End If 'Si no se especifica TC, se manda como pesos. If TipoCambio = "" Then TipoCambio = "1" 'PrePóliza Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Compras/SaldoInicial", 1, Total, Total, CveMoneda, Fecha, "", 100, CveEmpresa) If Not CvePrePoliza > 0 Then ErrorCompras = True Exit For End If 'Compra If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, "", CveProveedor.ToEntero, SubTotal, 0, 0, IVA, RetIVA, RetISR, 0, 0, 0, Total, Fecha, CveMoneda, TipoCambio.ToDouble, FechaVencimiento, True, "", 1, CvePrePoliza, 100, CveEmpresa) Then ErrorCompras = True Exit For End If CveCompra = ObjCompras.CveCompra 'Compra Detalle If Not ObjCompras.AddCompraDetalle(CveCompra, CveUnidadMedida, CvePS, -1, -1, 0, 1, SubTotal, 0.16, SubTotal, 0, "Carga Inicial", -1) Then ErrorCompras = True Exit For End If 'PrePólizaDetalle If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Folio, IIf(TipoDocto = "Fac", 5, 18).ToString.ToEntero, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, SubTotal, Folio, 6, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, IVA, Folio, 14, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For 'Saldo If Saldo < Total Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Folio, 17, Folio, Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Folio, 95, Folio, Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For End If Next If Not ErrorCompras Then If Contador > 0 Then Alert(String.Format("Se agregaron: {0} Compras correctamente.
Se Omitieron: {1} Compras ya que ya se encuentran registradas.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion) Else Alert(String.Format("Se agregaron: {0} Compras correctamente.", NumRows), TipoMensaje.MsgInformacion) End If Alert(String.Format("Se agregaron: {0} Compras correctamente.", NumRows), TipoMensaje.MsgInformacion) ObjCompras.Commit() TxtAddFactura.Text = "" UpCarga.Update() Else ObjCompras.RollBack() End If ObjCompras.Dispose() End If Else Dim ObjVentas As New ClsVentas Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL()) Dim ErrorVentas As Boolean = False Dim CveVenta As Integer Dim NumRows As Integer = 0 Dim DtClientes = New DataTable Dim CvePS As Integer = 0 Dim CveUnidadMedida As Integer = 0 ' Dim ExisteVenta As Boolean = False 'Dim Contador As Integer = 0 Dim ObjCliente As New ClsClientes If ObjCliente.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then DtClientes = ObjCliente.DtResultados End If ObjCliente.Dispose() Dim ObjPS As New ClsProductosServicios If ObjPS.GetPS(-1, -1, CveEmpresa) Then CvePS = ObjPS.DtResultados.FiltroPrimeroValor("CvePS").ToString.ToEntero End If ObjPS.Dispose() Dim ObjUM As New ClsUnidadesMedida If ObjUM.GetUnidadesMedida(CveEmpresa) Then CveUnidadMedida = ObjUM.DtResultados.FiltraParametros($"CveEmpresa={CveEmpresa}").FiltroPrimeroValor("CveUnidadMedida").ToString.ToEntero End If ObjUM.Dispose() If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorVentas = True ' If Not CveSucursal > 0 Then Alert("No se encontró la sucursal.", TipoMensaje.MsgError) : ErrorVentas = True If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorVentas = True For Each Row As DataRow In dtFactura.Rows Dim Sucursal As String = Row("Sucursal").ToString Dim TipoDocto As String = Row("Tipo Documento").ToString Dim RFC As String = Row("RFC").ToString.Trim Dim Serie As String = Row("Serie").ToString Dim Folio As Integer = Row("Folio").ToString.ToEntero Dim Fecha As Date = Row("Fecha").ToString.ToDate Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString.ToDate Dim SubTotal As Decimal = Row("SubTotal").ToString.ToDecimal Dim IVA As Decimal = Row("IVA").ToString.ToDecimal Dim Total As Decimal = Row("Total").ToString.ToDecimal Dim Saldo As Decimal = Row("Saldo").ToString.ToDecimal Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString.ToEntero Dim RetIVA As Double = Row("Ret IVA").ToString.ToDouble Dim RetISR As Double = Row("Ret ISR").ToString.ToDouble Dim Moneda As String = Row("Moneda").ToString Dim TipoCambio As String = Row("Tipo Cambio").ToString Dim CveMoneda As Integer = 1 If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For TipoDocto = IIf(TipoDocto = "Ingresos", "Ing", IIf(TipoDocto = "Egresos", "Egs", "Rem")).ToString 'PrePóliza Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Venta/SaldoIncial", 1, Total, Total, 1, Fecha, "", 100, CveEmpresa) 'Moneda If Moneda = "Pesos" Then CveMoneda = 1 ElseIf Moneda = "Dólares" Then CveMoneda = 2 End If 'Si no se especifica TC, se manda como pesos. If TipoCambio = "" Then TipoCambio = "1" 'Venta If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero, -1, SubTotal, 0, 0, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDouble, 0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, 0, "", "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, -1, 0, CvePrePoliza, 100, CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero, CveSubProyectoEjecucion:=Sucursal.ToEntero, CveSubProyectoCobranza:=Sucursal.ToEntero) Then ErrorVentas = True Exit For End If CveVenta = ObjVentas.CveVenta If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, 0.16, SubTotal, "Saldo Inicial", 0, 0, -1, 0) Then ErrorVentas = True Exit For End If 'PrePólizaDetalle If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, Folio.ToString, 4, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=1) Then ErrorVentas = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Folio.ToString, 1, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, Folio.ToString, 13, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For 'Saldo If Saldo < Total Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Folio.ToString, 2, Folio.ToString, Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Folio.ToString, 95, Folio.ToString, Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For End If Next If Not ErrorVentas Then Alert(String.Format("Se agregaron: {0} Ventas correctamente.", NumRows), TipoMensaje.MsgInformacion) ObjVentas.Commit() TxtAddFactura.Text = "" UpCarga.Update() Else ObjVentas.RollBack() End If ObjVentas.Dispose() End If End Sub #End Region #End Region #Region " PASO 6: FINALIZAR" Private Sub CargaDdlUsuario() DdlUsuario.Items.Clear() Dim ObjUsuario As New ClsSisUsuarios If ObjUsuario.GetUsuarios(-1) Then DdlUsuario.DataSource = ObjUsuario.DtResultados.FiltraParametros($"CveEmpresa={CveEmpresa}") DdlUsuario.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlUsuario.DataBind() End If ObjUsuario.Dispose() UpFinalizar.Update() End Sub Private Sub BtnIniciarSesion_Click(sender As Object, e As EventArgs) Handles BtnIniciarSesion.Click If DdlUsuario.SelectedValue = "-1" Then Alert("Tiene que seleccionar un usuario.", TipoMensaje.MsgAdvertencia) Else Dim Liga As String = "/LogIn.aspx" Dim LigaActivar As String = Liga & "?p=" & Encripta("CveU=" & DdlUsuario.SelectedValue.ToEntero & "&Clave=" & "-acceso-" & "&Opcion=Activar&Hora=" & DateTime.Now.Ticks& & "&CveE=" & CveEmpresa) Response.Redirect(LigaActivar, True) End If End Sub #End Region #Region " DESCARGA FORMATOS EXCEL " Private Sub DescargarExcel(Tipo As String) Dim Directorio As String = "" Select Case Tipo Case "Clasi" Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoClasificaciones.xlsx" Case "UM" Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoUnidadesMedida.xlsx" Case "PS" Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoPS.xlsx" Case "Prove" Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoProveedores.xlsx" Case "Cli" Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoClientes.xlsx" Case "Fact" If RblFormato.SelectedValue = "1" Then Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoProveedores-Facturas.xlsx" End If If RblFormato.SelectedValue = "2" Then Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoClientes-Facturas.xlsx" End If End Select Dim Archivo As New IO.FileInfo(Directorio) If Archivo.Exists Then Response.Clear() Response.ClearHeaders() Response.ClearContent() Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name) Response.AddHeader("Content-Length", Archivo.Length.ToString()) Response.ContentType = "text/plain" Response.Flush() Response.TransmitFile(Archivo.FullName) Response.End() End If End Sub Protected Sub LnkDescargarExcelClasi_Click(sender As Object, e As EventArgs) Handles LnkDescargarExcelClasi.Click DescargarExcel("Clasi") End Sub Protected Sub LnkDescargarExcelUM_Click(sender As Object, e As EventArgs) Handles LnkDescargarExcelUM.Click DescargarExcel("UM") End Sub Protected Sub LnkDescargarExcelPS_Click(sender As Object, e As EventArgs) Handles LnkDescargarExcelPS.Click DescargarExcel("PS") End Sub Protected Sub LnkDescargaProveedor(sender As Object, e As EventArgs) Handles LnkDescargaExcelProveedor.Click DescargarExcel("Prove") End Sub Protected Sub LnkDescargarExcelCliente(sender As Object, e As EventArgs) Handles LnkDescargarExcelClientes.Click DescargarExcel("Cli") End Sub #End Region #Region " GUARDAR - NO SE DEBERIA USAR UN GUARDAR GENERAL, PORQUE SE GUARDA PESTAÑA POR PESTAÑA " 'Protected Sub LBGuardar_Click(sender As Object, e As EventArgs) Handles LBGuardar.Click ' Alert("Metodo guardar raro", TipoMensaje.MsgAdvertencia) ' Exit Sub ' Dim ObjEmpresa As New ClsSisEmpresas ' Dim ObjRoles As New ClsSisRoles(ObjEmpresa.IniciaTransacSQL) ' Dim ObjUsuarios As New ClsSisUsuarios(ObjEmpresa.IniciaTransacSQL) ' Dim objClasi As New ClsClasificaciones(ObjEmpresa.IniciaTransacSQL) ' Dim objGenerales As New ClsGenerales(ObjEmpresa.IniciaTransacSQL) ' Dim Mensaje As New StringBuilder ' 'DatosFiscales ' Dim Direccion, NoExt, NoInt, Colonia, Ciudad, Estado, CP, Regimen, Contacto, Telefono, Ciec, Localidad, Extension As String ' 'Envio de correos ' Dim MailEnvio, ContraseñaEnvio, ServidorEnvio, PuertoEnvio, Protocolo As String ' Dim UsaSSLEnvio As Boolean ' 'RecepcionDeCorreos ' Dim MailRecep, ServidorRecep, PuertoRecep, UsuarioRecep, ContraseñaRecep As String ' Dim UsaSSLRecep As Boolean ' Dim CorrectoEmpresa = False ' Dim HuboError = False ' Direccion = TxtDireccion.Text.Trim ' NoExt = TxtNoExt.Text.Trim ' NoInt = TxtNoInt.Text.Trim ' Colonia = TxtColonia.Text.Trim ' Ciudad = TxtCiudad.Text.Trim ' Estado = TxtEstado.Text.Trim ' CP = TxtCP.Text.Trim ' Localidad = TxtLocalidad.Text ' Extension = TxtExtension.Text ' Regimen = DdlRegimen.SelectedValue ' Contacto = TxtContacto.Text.Trim ' Telefono = TxtTelefono.Text.Trim ' Ciec = TxtCIEC.Text.Trim ' MailEnvio = txtEnvioMail.Text.Trim ' ContraseñaEnvio = TxtContraseñaSend.Text.Trim ' ServidorEnvio = TxtServidor.Text.Trim ' PuertoEnvio = TxtSendMailPort.Text.Trim ' Protocolo = DDLProtocolo.SelectedValue.Trim ' UsaSSLEnvio = chkSSL.Checked ' MailRecep = txtRecepMail.Text.Trim ' ServidorRecep = TxtServidorRecep.Text.Trim ' PuertoRecep = TxtRecepMailPort.Text.Trim ' UsuarioRecep = TxtUsuarioRecep.Text.Trim ' ContraseñaRecep = TxtUsuarioRecep.Text.Trim ' UsaSSLRecep = chkSSLRecep.Checked ' If CveEmpresa = 0 Then ' If ObjEmpresa.AddEmpresa(-1, Empresa, Direccion, NoExt, NoInt, Colonia, Ciudad, Estado, RFC, CP.ToEntero, Telefono, Contacto, Correo, "CFDi", "", "", TxtContraKey.Text, TxtFiel.Text, TxtCSD.Text, "", "", 100, False, False, False, Regimen, False, MailEnvio, ContraseñaEnvio, ServidorEnvio, PuertoEnvio.ToEntero, UsaSSLEnvio, False, False, False, False, False, False, False, False, False, ' "", "", "", "", MailRecep, ServidorRecep, PuertoRecep.ToEntero, UsaSSLRecep, UsuarioRecep, ContraseñaRecep, Protocolo, "", "", 0, False, "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, "", "", -1, 0.0D, "", 0, False, 0.0D, "", "", 0, False, 0, 0, False, 0, 0, False, 0, CveMetodoPago:=MetodoPAgo, CvePAC:=1) Then ' CveEmpresa = ObjEmpresa.CveEmpresa ' If CveEmpresa > 0 Then ' CorrectoEmpresa = True ' Mensaje.Append("Agregar Empresa: Correcto ") ' Else ' HuboError = True ' Mensaje.Append("Agregar Empresa: Incorrecto") ' End If ' End If ' If CorrectoEmpresa Then ' For Each row As DataRow In DtRoles.Rows ' Try ' If Not ObjRoles.AddRol(1, row("Rol").ToString, 100, CveEmpresa) Then ' HuboError = True ' Mensaje.Append("Agregar Roles: Incorrecto") ' End If ' If Not HuboError Then ' For Each ModRow As DataRow In DtModulos.FiltraParametros(String.Format("CveRol = {0} ", row("CveRol").ToString)).Rows ' If Not ObjRoles.UpdateRolesModulos(ObjRoles.CveRol, ModRow("CveModulo").ToString.ToEntero, ModRow("Valor").ToString.ToEntero, 100) Then ' HuboError = True ' End If ' Next ' End If ' If Not HuboError Then ' For Each ProcRow As DataRow In DtProcesos.FiltraParametros(String.Format("CveRol = {0} ", row("CveRol").ToString)).Rows ' If Not ObjRoles.UpdateRolesProcesos(ObjRoles.CveRol, ProcRow("CveProceso").ToString.ToEntero, ProcRow("Valor").ToString.ToEntero, 100) Then ' HuboError = True ' End If ' Next ' End If ' Catch ex As Exception ' HuboError = True ' Mensaje.Append("Agregar Roles: Incorrecto") ' OnError(ex.Message, ex) ' End Try ' Next ' End If ' If CorrectoEmpresa AndAlso TxtPlantillaVenta.Text <> String.Empty Then ' If Not ObjEmpresa.UpdatePlantillaMail("AsuntoPlantillaMailVenta", TxtAsunto.Text.Trim, "PlantillaMailVenta", TxtPlantillaVenta.Text.Trim, CveEmpresa) Then ' Alert("La plantilla de mail de ventas se guardó correctamente.", TipoMensaje.MsgInformacion) ' HuboError = True ' End If ' End If ' If CorrectoEmpresa AndAlso Not HuboError Then ' Mensaje.Append("Agregar Roles: Correcto") ' For Each row As DataRow In DtUsuarios.Rows ' Try ' If ObjUsuarios.AddUsuario(row("Usuario").ToString, ContraseñaPredeterminadaEncriptada, row("Nombre").ToString, -2, row("Correo").ToString, 0, 0, 0, True, 100, CveEmpresa, -1, row("rol").ToString) = -1 Then ' HuboError = True ' Mensaje.Append("Agregar Usuarios: Incorrecto") ' End If ' Catch ex As Exception ' HuboError = True ' Mensaje.Append("Agregar Usuarios: Incorrecto") ' OnError(ex.Message, ex) ' End Try ' Next ' End If ' If CorrectoEmpresa AndAlso Not HuboError Then ' Mensaje.Append("Agregar Usuarios: Correcto") ' If DtClasificaciones.Rows.Count > 0 Then ' objGenerales.AddCategorias("Categoria General", 100, CveEmpresa) ' For Each row As DataRow In DtClasificaciones.Rows ' If Not objClasi.AddClasificaciones(row("Clasificacion").ToString, "", 0, "", 0, "", 0, "", 0, 100, CveEmpresa) Then ' HuboError = True ' Mensaje.Append("Agregar Clasificaciones: Incorrecto") ' End If ' Next ' End If ' End If ' If CorrectoEmpresa AndAlso Not HuboError Then ' Try ' If TxtModalFielArchivo.getfiles().Archivos.Count > 0 Then ' Dim ArchivoFiel As Archivo = TxtModalFielArchivo.getfiles().Archivos(0) ' Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\Certificados" ' If Not Directory.Exists(Path) Then ' Directory.CreateDirectory(Path) ' End If ' Dim directorioNew As String = String.Format("{0}\{1}.{2}", Path, FIEL, ArchivoFiel.Extencion) ' If File.Exists(directorioNew) Then ' My.Computer.FileSystem.DeleteFile(directorioNew) ' End If ' My.Computer.FileSystem.MoveFile(ArchivoFiel.FileUrl, directorioNew) ' End If ' If TxtCSD.getfiles().Archivos.Count > 0 Then ' Dim ArchivoCSD As Archivo = TxtCSD.getfiles().Archivos(0) ' Dim PathCSD As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\Certificados" ' Dim dirCSD As String = String.Format("{0}\{1}.{2}", PathCSD, CSD, ArchivoCSD.Extencion) ' If File.Exists(dirCSD) Then ' My.Computer.FileSystem.DeleteFile(dirCSD) ' End If ' My.Computer.FileSystem.MoveFile(ArchivoCSD.FileUrl, dirCSD) ' End If ' If TextLogo.getfiles().Archivos().Count > 0 Then ' Dim Logo As Archivo = TextLogo.getfiles().Archivos(0) ' Dim PathLogo As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\" ' Dim dirLogo As String = String.Format("{0}\logo.{1}", PathLogo, Logo.Extencion) ' If File.Exists(dirLogo) Then ' My.Computer.FileSystem.DeleteFile(dirLogo) ' End If ' My.Computer.FileSystem.MoveFile(Logo.FileUrl, dirLogo) ' End If ' If TxtFormatoFactura.getfiles().Archivos().Count > 0 Then ' Dim FormatoFactura As Archivo = TxtFormatoFactura.getfiles().Archivos(0) ' Dim PathFormato = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\Formatos\" ' Dim dirFormato As String = String.Format("{0}\Factura.{1}", PathFormato, FormatoFactura.Extencion) ' If File.Exists(dirFormato) Then ' My.Computer.FileSystem.DeleteFile(dirFormato) ' End If ' My.Computer.FileSystem.MoveFile(FormatoFactura.FileUrl, dirFormato) ' End If ' Catch ex As Exception ' HuboError = True ' OnError(ex.Message, ex) ' End Try ' End If ' If Not HuboError AndAlso CorrectoEmpresa Then ' ObjEmpresa.Commit() ' Alert("La información de la nueva empresa de guardó correctamente", TipoMensaje.MsgInformacion) ' Else ' ObjEmpresa.RollBack() ' Alert("Ocurrió un error al guardar los datos de la empresa", TipoMensaje.MsgError) ' End If ' ObjEmpresa.Dispose() ' ElseIf CveEmpresa > 0 Then ' If ObjEmpresa.UpdateEmpresaXWizard(TxtNomEmpresa.Text, Direccion, NoExt, NoInt, Colonia, Ciudad, Estado, TxtRFC.Text, CP.ToEntero, Telefono, Contacto, TxtEmail.Text, Regimen, MailEnvio, ContraseñaEnvio, ServidorEnvio, PuertoEnvio.ToEntero, UsaSSLEnvio, MailRecep, ServidorRecep, PuertoRecep.ToEntero, ' UsaSSLRecep, UsuarioRecep, ContraseñaRecep, CveEmpresa, Protocolo, Localidad, Extension, Ciec, TxtFiel.Text, TxtCSD.Text, TxtContraKey.Text) Then ' CorrectoEmpresa = True ' End If ' If CorrectoEmpresa Then ' If Not ObjEmpresa.UpdatePlantillaMail("AsuntoPlantillaMailVenta", TxtAsunto.Text.Trim, "PlantillaMailVenta", TxtPlantillaVenta.Text.Trim, CveEmpresa) Then ' CorrectoEmpresa = False ' End If ' End If ' If DtModulos IsNot Nothing Then ' For Each ModRow As DataRow In DtModulos.Rows ' If Not ObjRoles.UpdateRolesModulos(ModRow("CveRol").ToString.ToEntero, ModRow("CveModulo").ToString.ToEntero, ModRow("Valor").ToString.ToEntero, 100) Then ' CorrectoEmpresa = False ' End If ' Next ' End If ' If DtProcesos IsNot Nothing Then ' For Each ProcRow As DataRow In DtProcesos.Rows ' If Not ObjRoles.UpdateRolesProcesos(ProcRow("CveRol").ToString.ToEntero, ProcRow("CveProceso").ToString.ToEntero, ProcRow("Valor").ToString.ToEntero, 100) Then ' HuboError = True ' End If ' Next ' End If ' If CorrectoEmpresa Then ' ObjEmpresa.Commit() ' Alert("Se actualizaron los datos de la empresa", TipoMensaje.MsgInformacion) ' Else ' ObjEmpresa.RollBack() ' Alert("Ocurrió un error al acualizar los datos de la empresa", TipoMensaje.MsgError) ' End If ' ObjEmpresa.Dispose() ' End If 'End Sub #End Region End Class