diff --git a/App_Code/ClsCompProveedores.vb b/App_Code/ClsCompProveedores.vb index 6f868a2cd..ec6e221e9 100644 --- a/App_Code/ClsCompProveedores.vb +++ b/App_Code/ClsCompProveedores.vb @@ -1,1536 +1,1542 @@ -Option Strict On -Option Explicit On - -Imports System.Data -Imports System.Data.SqlClient -Imports Extensiones - -Public Class ClsCompProveedores - Implements IDisposable - -#Region "Campos" - 'SQL - Private SqlConexion As SqlConnection - Private SqlAdapter As SqlDataAdapter - Private Data As DataTable - Private SqlCommand As SqlCommand - Private SqlTransacc As SqlTransaction - Private StrSQL As StringBuilder - - 'Atributos de la clase - Private disposedValue As Boolean = False ' Para detectar llamadas redundantes -#End Region - -#Region "Propiedades" - Public Property CveProveedor As Integer - Public Property Codigo As String - Public Property RazonSocial As String - Public Property NombreComercial As String - Public Property NombreCorto As String - Public Property RFC As String - Public Property Direccion As String - Public Property Telefono As String - Public Property ContactoNombre As String - Public Property ContactoMail As String - Public Property ContactoCelular As String - Public Property LimiteCredito As Double - Public Property PlazoPago As Integer - Public Property Observaciones As String - Public Property IVA As Double - Public Property RetIVA As Double - Public Property RetISR As Double - Public Property CP As Integer - Public Property IdCtaContProveedores As Integer - Public Property CveCuentaProveedores As Integer - Public Property CtaContProveedores As String - Public Property IdCtaContProveedoresExtranjera As Integer - Public Property CveCuentaProveedoresExtranjera As Integer - Public Property CtaContProveedoresExtranjera As String - Public Property IdCtaContProveedoresComplementaria As Integer - Public Property CveCuentaProveedoresComplementaria As Integer - Public Property CtaContProveedoresComplementaria As String - - Public Property IdCtaContAcreedor As Integer - Public Property CveCuentaAcreedor As Integer - Public Property CtaContAcreedor As String - Public Property IdCtaContAcreedorExtranjera As Integer - Public Property CveCuentaAcreedorExtranjera As Integer - Public Property CtaContAcreedorExtranjera As String - Public Property IdCtaContAcreedorComplementaria As Integer - Public Property CveCuentaAcreedorComplementaria As Integer - Public Property CtaContAcreedorComplementaria As String - - Public Property IdCtaContAnticipos As Integer - Public Property CveCuentaAnticipos As Integer - Public Property CtaContAnticipos As String - Public Property IdCtaContAnticiposExtranjera As Integer - Public Property CveCuentaAnticiposExtranjera As Integer - Public Property CtaContAnticiposExtranjera As String - Public Property IdCtaContAnticiposComplementaria As Integer - Public Property CveCuentaAnticiposComplementaria As Integer - Public Property CtaContAnticiposComplementaria As String - - Public Property IdCtaContDeudor As Integer - Public Property CveCuentaDeudor As Integer - Public Property CtaContDeudor As String - Public Property IdCtaContDeudorExtranjera As Integer - Public Property CveCuentaDeudorExtranjera As Integer - Public Property CtaContDeudorExtranjera As String - Public Property IdCtaContDeudorComplementaria As Integer - Public Property CveCuentaDeudorComplementaria As Integer - Public Property CtaContDeudorComplementaria As String - - Public Property IdCtaContDocsXPagar As Integer - Public Property CveCuentaDocsXPagar As Integer - Public Property CtaContDocsXPagar As String - Public Property IdCtaContDocsXPagarExtranjera As Integer - Public Property CveCuentaDocsXPagarExtranjera As Integer - Public Property CtaContDocsXPagarExtranjera As String - Public Property IdCtaContDocsXPagarComplementaria As Integer - Public Property CveCuentaDocsXPagarComplementaria As Integer - Public Property CtaContDocsXPagarComplementaria As String - - Public Property IdCtaContFondoGarantia As Integer - Public Property CveCuentaFondoGarantia As Integer - Public Property CtaContFondoGarantia As String - Public Property IdCtaContRetIVA As Integer - Public Property CveCuentaRetIVA As Integer - Public Property CtaContRetIVA As String - Public Property IdCtaContRetISR As Integer - Public Property CveCuentaRetISR As Integer - Public Property CtaContRetISR As String - - Public Property IdCtaContRetISRAcreditable As Integer - Public Property CveCuentaRetISRAcreditable As Integer - Public Property CtaContRetISRAcreditable As String - - Public Property IdCtaContRetIVAAcreditable As Integer - Public Property CveCuentaRetIVAAcreditable As Integer - Public Property CtaContRetIVAAcreditable As String - - Public Property Estatus As String - Public Property CorreoCobranza As String - Public Property EditarFolioDuplicado As Boolean - Public Property FechaIng As Date - Public Property CveProveedorClasificacion As Integer - Public Property ProveedorClasificacion As String - Public Property CveUsuarioResponsable As Integer - Public Property CveTipoProveedor As Integer - Public Property CveMonedaPreferente As Integer - Public Property CveUsuario As Integer - Public Property Usuario As String - Public Property CveEmpresa As Integer - Public Property NotificarA As String - Public Property CveProveedorSucursal As Integer - Public Property UsaLimiteCredito As Boolean - Public Property DIOTCveTipoTercero As Integer - Public Property DIOTCveTipoOperacion As Integer - Public Property DIOTNumeroIDFiscal As String - Public Property DIOTCvePais As Integer - Public Property Situacion As String = "" - Public Property DIOTNacionalidad As String - - Public ReadOnly Property DtResultados() As DataTable - Get - DtResultados = Data - End Get - End Property - -#End Region - -#Region "Enums" - Public Enum TipoConsulta - ParaGlobalDT = 2 - ParaUsoEnEmpresa = 1 - End Enum -#End Region - - Public Function IniciaTransacSQL() As SqlTransaction - If SqlTransacc Is Nothing Then SqlTransacc = SqlConexion.BeginTransaction() - Return SqlTransacc - End Function - Public Sub RollBack() - SqlTransacc.Rollback() - End Sub - Public Sub Commit() - SqlTransacc.Commit() - End Sub - Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) - - If TransaccionCompartida Is Nothing Then - SqlConexion = New SqlConnection - SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings("Conexion").ConnectionString - Try - SqlConexion.Open() - Catch ex As Exception - OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex) - End Try - Else - SqlConexion = TransaccionCompartida.Connection - SqlTransacc = TransaccionCompartida - End If - - SqlAdapter = New SqlDataAdapter("", SqlConexion) - - End Sub - Private Sub DataAdapter(ByVal pStrSQL As String, Optional ByVal TipoComando As CommandType = CommandType.StoredProcedure) - With SqlAdapter.SelectCommand - .Parameters.Clear() - .CommandText = pStrSQL - .CommandType = TipoComando - End With - Data = New DataTable - If SqlTransacc IsNot Nothing Then SqlAdapter.SelectCommand.Transaction = SqlTransacc - End Sub - - Public Function GetClasificacionProveedores() As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresClasificacionesGet") - - Try - SqlAdapter.Fill(Data) - - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener el Catálogo de Clasificaciones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - - Public Function GetHistorialCompras(CveProveedor As Integer, CveProveedorSucursal As Integer, Optional SelectTop As Integer = -1, Optional CveMoneda As Integer = -1) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorHistorialCompras") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda - .Add("@CveProveedorSucursal", SqlDbType.VarChar).Value = CveProveedorSucursal - .Add("@SelectTop", SqlDbType.Int).Value = SelectTop - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al consultar el Historial de Compras del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - -#Region "P R O V E E D O R E S" - Public Function GetProveedorProsepago(CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorProsepagoGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al consultar el Proveedor Prosepago.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - Public Function GetProveedoresSinCuentas(CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresSinCuentasGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al consultar el los proveedores sin cuentas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - Public Function GetProveedores(TipoConsulta As TipoConsulta, CveProveedor As Integer, Codigo As String, RazonSocial As String, NombreComercial As String, - NombreCorto As String, RFC As String, ContactoNombre As String, Telefono As String, Estatus As Integer, CveEmpresa As Integer, - Optional CveTipoProveedor As Integer = -1, Optional CveUsuarioResponsable As Integer = -1, - Optional CveMonedaPreferente As Integer = -1, Optional CveProveedorClasificacion As Integer = -1) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@TipoConsulta", SqlDbType.Int).Value = TipoConsulta - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@Codigo", SqlDbType.VarChar).Value = Codigo - .Add("@RazonSocial", SqlDbType.VarChar).Value = RazonSocial - .Add("@NombreComercial", SqlDbType.VarChar).Value = NombreComercial - .Add("@NombreCorto", SqlDbType.VarChar).Value = NombreCorto - .Add("@RFC", SqlDbType.VarChar).Value = RFC - .Add("@ContactoNombre", SqlDbType.VarChar).Value = ContactoNombre - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@Estatus", SqlDbType.Int).Value = Estatus - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@CveTipoProveedor", SqlDbType.Int).Value = CveTipoProveedor - .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable - .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion - .Add("@CveMonedaPreferente", SqlDbType.Int).Value = CveMonedaPreferente - End With - - Try - SqlAdapter.Fill(Data) - - If Data.Rows.Count = 1 Then - Me.CveProveedor = Data.Rows(0)("CveProveedor").ToString.ToEntero - Me.Codigo = Data.Rows(0)("Codigo").ToString - Me.RazonSocial = Data.Rows(0)("RazonSocial").ToString - Me.NombreComercial = Data.Rows(0)("NombreComercial").ToString - Me.NombreCorto = Data.Rows(0)("NombreCorto").ToString - Me.RFC = Data.Rows(0)("RFC").ToString - Me.Direccion = Data.Rows(0)("Direccion").ToString - Me.Telefono = Data.Rows(0)("Telefono").ToString - Me.ContactoNombre = Data.Rows(0)("ContactoNombre").ToString - Me.ContactoMail = Data.Rows(0)("ContactoMail").ToString - Me.ContactoCelular = Data.Rows(0)("ContactoCelular").ToString - Me.LimiteCredito = Data.Rows(0)("LimiteCredito").ToString.ToDouble - Me.PlazoPago = Data.Rows(0)("PlazoPago").ToString.ToEntero - Me.Observaciones = Data.Rows(0)("Observaciones").ToString - Me.IVA = Data.Rows(0)("IVA").ToString.ToDouble - Me.RetIVA = Data.Rows(0)("RetIVA").ToString.ToDouble - Me.RetISR = Data.Rows(0)("RetISR").ToString.ToDouble - Me.CP = Data.Rows(0)("CP").ToString.ToEntero - - 'Proveedores - Me.IdCtaContProveedores = Data.Rows(0)("IdCtaContProveedores").ToString.ToEntero - Me.CveCuentaProveedores = Data.Rows(0)("IdCtaContProveedoresSIG").ToString.ToEntero - Me.CtaContProveedores = Data.Rows(0)("CtaContProveedores").ToString - Me.IdCtaContProveedoresExtranjera = Data.Rows(0)("IdCtaContExtranjera").ToString.ToEntero - Me.CveCuentaProveedoresExtranjera = Data.Rows(0)("IdCtaContExtranjeraSIG").ToString.ToEntero - Me.CtaContProveedoresExtranjera = Data.Rows(0)("CtaContExtranjera").ToString - Me.IdCtaContProveedoresComplementaria = Data.Rows(0)("IdCtaContComplementaria").ToString.ToEntero - Me.CveCuentaProveedoresComplementaria = Data.Rows(0)("IdCtaContComplementariaSIG").ToString.ToEntero - Me.CtaContProveedoresComplementaria = Data.Rows(0)("CtaContComplementaria").ToString - - 'Acreedores - Me.IdCtaContAcreedor = Data.Rows(0)("IdCtaContAcreedor").ToString.ToEntero - Me.CveCuentaAcreedor = Data.Rows(0)("IdCtaContAcreedorSIG").ToString.ToEntero - Me.CtaContAcreedor = Data.Rows(0)("CtaContAcreedor").ToString - Me.IdCtaContAcreedorExtranjera = Data.Rows(0)("IdCtaContAcreedorExtranjera").ToString.ToEntero - Me.CveCuentaAcreedorExtranjera = Data.Rows(0)("IdCtaContAcreedorExtranjeraSIG").ToString.ToEntero - Me.CtaContAcreedorExtranjera = Data.Rows(0)("CtaContAcreedorExtranjera").ToString - Me.IdCtaContAcreedorComplementaria = Data.Rows(0)("IdCtaContAcreedorComplementaria").ToString.ToEntero - Me.CveCuentaAcreedorComplementaria = Data.Rows(0)("IdCtaContAcreedorComplementariaSIG").ToString.ToEntero - Me.CtaContAcreedorComplementaria = Data.Rows(0)("CtaContAcreedorComplementaria").ToString - - 'Anticipos - Me.IdCtaContAnticipos = Data.Rows(0)("IdCtaContAnticipos").ToString.ToEntero - Me.CveCuentaAnticipos = Data.Rows(0)("IdCtaContAnticiposSIG").ToString.ToEntero - Me.CtaContAnticipos = Data.Rows(0)("CtaContAnticipos").ToString - Me.IdCtaContAnticiposExtranjera = Data.Rows(0)("IdCtaContAnticiposExtranjera").ToString.ToEntero - Me.CveCuentaAnticiposExtranjera = Data.Rows(0)("IdCtaContAnticiposExtranjeraSIG").ToString.ToEntero - Me.CtaContAnticiposExtranjera = Data.Rows(0)("CtaContAnticiposExtranjera").ToString - Me.IdCtaContAnticiposComplementaria = Data.Rows(0)("IdCtaContAnticiposComplementaria").ToString.ToEntero - Me.CveCuentaAnticiposComplementaria = Data.Rows(0)("IdCtaContAnticiposComplementariaSIG").ToString.ToEntero - Me.CtaContAnticiposComplementaria = Data.Rows(0)("CtaContAnticiposComplementaria").ToString - - 'Deudor - Me.IdCtaContDeudor = Data.Rows(0)("IdCtaContDeudor").ToString.ToEntero - Me.CveCuentaDeudor = Data.Rows(0)("IdCtaContDeudorSIG").ToString.ToEntero - Me.CtaContDeudor = Data.Rows(0)("CtaContDeudor").ToString - Me.IdCtaContDeudorExtranjera = Data.Rows(0)("IdCtaContDeudorExtranjera").ToString.ToEntero - Me.CveCuentaDeudorExtranjera = Data.Rows(0)("IdCtaContDeudorExtranjeraSIG").ToString.ToEntero - Me.CtaContDeudorExtranjera = Data.Rows(0)("CtaContDeudorExtranjera").ToString - Me.IdCtaContDeudorComplementaria = Data.Rows(0)("IdCtaContDeudorComplementaria").ToString.ToEntero - Me.CveCuentaDeudorComplementaria = Data.Rows(0)("IdCtaContDeudorComplementariaSIG").ToString.ToEntero - Me.CtaContDeudorComplementaria = Data.Rows(0)("CtaContDeudorComplementaria").ToString - - 'DocsXPagar - Me.IdCtaContDocsXPagar = Data.Rows(0)("IdCtaContDocsXPagar").ToString.ToEntero - Me.CveCuentaDocsXPagar = Data.Rows(0)("IdCtaContDocsXPagarSIG").ToString.ToEntero - Me.CtaContDocsXPagar = Data.Rows(0)("CtaContDocsXPagar").ToString - Me.IdCtaContDocsXPagarExtranjera = Data.Rows(0)("IdCtaContDocsXPagarExtranjera").ToString.ToEntero - Me.CveCuentaDocsXPagarExtranjera = Data.Rows(0)("IdCtaContDocsXPagarExtranjeraSIG").ToString.ToEntero - Me.CtaContDocsXPagarExtranjera = Data.Rows(0)("CtaContDocsXPagarExtranjera").ToString - Me.IdCtaContDocsXPagarComplementaria = Data.Rows(0)("IdCtaContDocsXPagarComplementaria").ToString.ToEntero - Me.CveCuentaDocsXPagarComplementaria = Data.Rows(0)("IdCtaContDocsXPagarComplementariaSIG").ToString.ToEntero - Me.CtaContDocsXPagarComplementaria = Data.Rows(0)("CtaContDocsXPagarComplementaria").ToString - - 'Otros - Me.IdCtaContFondoGarantia = Data.Rows(0)("IdCtaContFondoGarantia").ToString.ToEntero - Me.IdCtaContRetIVA = Data.Rows(0)("IdCtaContRetIVA").ToString.ToEntero - Me.IdCtaContRetIVAAcreditable = Data.Rows(0)("IdCtaContRetIVAAcreditable").ToString.ToEntero - Me.IdCtaContRetISR = Data.Rows(0)("IdCtaContRetISR").ToString.ToEntero - Me.IdCtaContRetISRAcreditable = Data.Rows(0)("IdCtaContRetISRAcreditable").ToString.ToEntero - Me.CveCuentaFondoGarantia = Data.Rows(0)("IdCtaContFondoGarantiaSIG").ToString.ToEntero - Me.CveCuentaRetIVA = Data.Rows(0)("IdCtaContRetIVASIG").ToString.ToEntero - Me.CveCuentaRetISR = Data.Rows(0)("IdCtaContRetISRSIG").ToString.ToEntero - Me.CveCuentaRetISRAcreditable = Data.Rows(0)("IdCtaContRetISRAcreditableSIG").ToString.ToEntero - Me.CveCuentaRetIVAAcreditable = Data.Rows(0)("IdCtaContRetIVAAcreditableSIG").ToString.ToEntero - Me.CtaContFondoGarantia = Data.Rows(0)("CtaContFondoGarantia").ToString - Me.CtaContRetIVA = Data.Rows(0)("CtaContRetIVA").ToString - Me.CtaContRetISR = Data.Rows(0)("CtaContRetISR").ToString - Me.CtaContRetISRAcreditable = Data.Rows(0)("CtaContRetISRAcreditable").ToString - Me.CtaContRetIVAAcreditable = Data.Rows(0)("CtaContRetIVAAcreditable").ToString - - Me.Estatus = Data.Rows(0)("Estatus").ToString - Me.FechaIng = Data.Rows(0)("FechaIng").ToString.ToDate - Me.CveProveedorClasificacion = Data.Rows(0)("CveProveedorClasificacion").ToString.ToEntero - Me.ProveedorClasificacion = Data.Rows(0)("ProveedorClasificacion").ToString - Me.CveUsuarioResponsable = Data.Rows(0)("CveUsuarioResponsable").ToString.ToEntero() - Me.CveTipoProveedor = Data.Rows(0)("CveTipoProveedor").ToString.ToEntero() - - Me.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero - Me.Usuario = Data.Rows(0)("Usuario").ToString - Me.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero - Me.NotificarA = Data.Rows(0)("NotificarA").ToString - Me.CorreoCobranza = Data.Rows(0)("ContactoMailCobranza").ToString - Me.EditarFolioDuplicado = If(Data.Rows(0)("EditarFolioDuplicado").ToString = "True", True, False) - Me.CveMonedaPreferente = Data.Rows(0)("CveMonedaPreferente").ToString.ToEntero() - Me.UsaLimiteCredito = CBool(Data.Rows(0)("UsaLimiteCredito")) - - Me.DIOTCveTipoTercero = Data.Rows(0)("DIOTCveTipoTercero").ToString.ToEntero - Me.DIOTCveTipoOperacion = Data.Rows(0)("DIOTCveTipoOperacion").ToString.ToEntero - Me.DIOTNumeroIDFiscal = Data.Rows(0)("DIOTNumeroIDFiscal").ToString - Me.DIOTCvePais = Data.Rows(0)("DIOTCvePais").ToString.ToEntero - Me.Situacion = Data.Rows(0)("Situacion").ToString - Me.DIOTNacionalidad = Data.Rows(0)("DIOTNacionalidad").ToString - End If - - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener el Catálogo de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - - Public Function AddProveedor(Codigo As String, RazonSocial As String, NombreComercial As String, NombreCorto As String, RFC As String, Direccion As String, Telefono As String, - ContactoNombre As String, ContactoMail As String, ContactoCelular As String, LimiteCredito As Double, PlazoPago As Integer, Observaciones As String, - IVA As Double, RetIVA As Double, RetISR As Double, - IdCtaContProveedores As Integer, CtaContProveedores As String, IdCtaContExtranjera As Integer, CtaContExtranjera As String, IdCtaContComplementaria As Integer, CtaContComplementaria As String, - IdCtaContAcreedores As Integer, CtaContAcreedores As String, IdCtaContAcreedoresExtranjera As Integer, CtaContAcreedoresExtranjera As String, IdCtaContAcreedoresComplementaria As Integer, CtaContAcreedoresComplementaria As String, - IdCtaContAnticipos As Integer, CtaContAnticipos As String, IdCtaContAnticiposExtranjera As Integer, CtaContAnticiposExtranjera As String, IdCtaContAnticiposComplementaria As Integer, CtaContAnticiposComplementaria As String, - IdCtaContDeudor As Integer, CtaContDeudor As String, IdCtaContDeudorExtranjera As Integer, CtaContDeudorExtranjera As String, IdCtaContDeudorComplementaria As Integer, CtaContDeudorComplementaria As String, - IdCtaContDocsXPagar As Integer, CtaContDocsXPagar As String, IdCtaContDocsXPagarExtranjera As Integer, CtaContDocsXPagarExtranjera As String, IdCtaContDocsXPagarComplementaria As Integer, CtaContDocsXPagarComplementaria As String, - IdCtaContFondoGarantia As Integer, CtaContFondoGarantia As String, IdCtaContRetIVA As Integer, CtaContRetIVA As String, IdCtaContRetISR As Integer, CtaContRetISR As String, IdCtaContRetISRAcreditable As Integer, CtaContRetISRACreditable As String, - IdCtaContRetIVAAcreditable As Integer, CtaContRetIVAACreditable As String, CveProveedorClasificacion As Integer, CveUsuarioResponsable As Integer, NotificarA As String, CorreoCobranza As String, FolioDuplicado As Boolean, CveUsuario As Integer, CveEmpresa As Integer, - Optional CveTipoProveedor As Integer = 1, Optional CveMonedaPreferente As Integer = 1, Optional UsaLimiteCredito As Boolean = False, Optional DIOTCveTipoTercero As Integer = -1, Optional DIOTCveTipoOperacion As Integer = -1, Optional DIOTNumeroIDFiscal As String = "", - Optional AplicarEvaluacion As Boolean = False, Optional FechaEvaluacion As String = "-1", Optional CicloEvaluacion As Integer = -1, Optional DIOTCvePais As Integer = -1, Optional CveUsuarioEvaluador As Integer = -1, Optional CP As Integer = 0, Optional DIOTNacionalidad As String = "") As Boolean - - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorAdd") - - With SqlAdapter.SelectCommand.Parameters - .Add("@Codigo", SqlDbType.VarChar).Value = Codigo - .Add("@RazonSocial", SqlDbType.VarChar).Value = RazonSocial - .Add("@NombreComercial", SqlDbType.VarChar).Value = NombreComercial - .Add("@NombreCorto", SqlDbType.VarChar).Value = NombreCorto - .Add("@RFC", SqlDbType.VarChar).Value = RFC - .Add("@Direccion", SqlDbType.VarChar).Value = Direccion - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@ContactoNombre", SqlDbType.VarChar).Value = ContactoNombre - .Add("@ContactoMail", SqlDbType.VarChar).Value = ContactoMail - .Add("@ContactoCelular", SqlDbType.VarChar).Value = ContactoCelular - .Add("@LimiteCredito", SqlDbType.Money).Value = LimiteCredito - .Add("@PlazoPago", SqlDbType.Int).Value = PlazoPago - .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones - .Add("@IVA", SqlDbType.Float).Value = IVA - .Add("@RetIVA", SqlDbType.Float).Value = RetIVA - .Add("@RetISR", SqlDbType.Float).Value = RetISR - .Add("@CP", SqlDbType.Int).Value = CP - - 'Proveedores - .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores - .Add("@CtaContProveedores", SqlDbType.VarChar).Value = CtaContProveedores - .Add("@IdCtaContExtranjera", SqlDbType.Int).Value = IdCtaContExtranjera - .Add("@CtaContExtranjera", SqlDbType.VarChar).Value = CtaContExtranjera - .Add("@IdCtaContComplementaria", SqlDbType.Int).Value = IdCtaContComplementaria - .Add("@CtaContComplementaria", SqlDbType.VarChar).Value = CtaContComplementaria - - 'Acreedores - .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedores - .Add("@CtaContAcreedor", SqlDbType.VarChar).Value = CtaContAcreedores - .Add("@IdCtaContAcreedorExtranjera", SqlDbType.Int).Value = IdCtaContAcreedoresExtranjera - .Add("@CtaContAcreedorExtranjera", SqlDbType.VarChar).Value = CtaContAcreedoresExtranjera - .Add("@IdCtaContAcreedorComplementaria", SqlDbType.Int).Value = IdCtaContAcreedoresComplementaria - .Add("@CtaContAcreedorComplementaria", SqlDbType.VarChar).Value = CtaContAcreedoresComplementaria - - 'Anticipos - .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos - .Add("@CtaContAnticipos", SqlDbType.VarChar).Value = CtaContAnticipos - .Add("@IdCtaContAnticiposExtranjera", SqlDbType.Int).Value = IdCtaContAnticiposExtranjera - .Add("@CtaContAnticiposExtranjera", SqlDbType.VarChar).Value = CtaContAnticiposExtranjera - .Add("@IdCtaContAnticiposComplementaria", SqlDbType.Int).Value = IdCtaContAnticiposComplementaria - .Add("@CtaContAnticiposComplementaria", SqlDbType.VarChar).Value = CtaContAnticiposComplementaria - - 'Deudores - .Add("@IdCtaContDeudor", SqlDbType.Int).Value = IdCtaContDeudor - .Add("@CtaContDeudor", SqlDbType.VarChar).Value = CtaContDeudor - .Add("@IdCtaContDeudorExtranjera", SqlDbType.Int).Value = IdCtaContDeudorExtranjera - .Add("@CtaContDeudorExtranjera", SqlDbType.VarChar).Value = CtaContDeudorExtranjera - .Add("@IdCtaContDeudorComplementaria", SqlDbType.Int).Value = IdCtaContDeudorComplementaria - .Add("@CtaContDeudorComplementaria", SqlDbType.VarChar).Value = CtaContDeudorComplementaria - - 'DocsXPagar - .Add("@IdCtaContDocsXPagar", SqlDbType.Int).Value = IdCtaContDocsXPagar - .Add("@CtaContDocsXPagar", SqlDbType.VarChar).Value = CtaContDocsXPagar - .Add("@IdCtaContDocsXPagarExtranjera", SqlDbType.Int).Value = IdCtaContDocsXPagarExtranjera - .Add("@CtaContDocsXPagarExtranjera", SqlDbType.VarChar).Value = CtaContDocsXPagarExtranjera - .Add("@IdCtaContDocsXPagarComplementaria", SqlDbType.Int).Value = IdCtaContDocsXPagarComplementaria - .Add("@CtaContDocsXPagarComplementaria", SqlDbType.VarChar).Value = CtaContDocsXPagarComplementaria - - 'Otros - .Add("@IdCtaContFondoGarantia", SqlDbType.Int).Value = IdCtaContFondoGarantia - .Add("@CtaContFondoGarantia", SqlDbType.VarChar).Value = CtaContFondoGarantia - .Add("@IdCtaContRetIVA", SqlDbType.Int).Value = IdCtaContRetIVA - .Add("@CtaContRetIVA", SqlDbType.VarChar).Value = CtaContRetIVA - .Add("@IdCtaContRetISR", SqlDbType.Int).Value = IdCtaContRetISR - .Add("@CtaContRetISR", SqlDbType.VarChar).Value = CtaContRetISR - .Add("@IdCtaContRetISRAcreditable", SqlDbType.Int).Value = IdCtaContRetISRAcreditable - .Add("@CtaContRetISRAcreditable", SqlDbType.VarChar).Value = CtaContRetISRACreditable - .Add("@IdCtaContRetIVAAcreditable", SqlDbType.Int).Value = IdCtaContRetIVAAcreditable - .Add("@CtaContRetIVAAcreditable", SqlDbType.VarChar).Value = CtaContRetIVAACreditable - - .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion - .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable - .Add("@CveTipoProveedor", SqlDbType.TinyInt).Value = CveTipoProveedor - .Add("@NotificarA", SqlDbType.VarChar).Value = NotificarA - .Add("@CorreoCobranza", SqlDbType.VarChar).Value = CorreoCobranza - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@FolioDuplicado", SqlDbType.Bit).Value = FolioDuplicado - .Add("@CveMonedaPreferente", SqlDbType.Int).Value = CveMonedaPreferente - .Add("@UsaLimiteCredito", SqlDbType.Bit).Value = UsaLimiteCredito - - 'DIOT - .Add("@DIOTCveTipoTercero", SqlDbType.Int).Value = DIOTCveTipoTercero - .Add("@DIOTCveTipoOperacion", SqlDbType.Int).Value = DIOTCveTipoOperacion - .Add("@DIOTNumeroIDFiscal", SqlDbType.VarChar, 50).Value = DIOTNumeroIDFiscal - .Add("@DIOTCvePais", SqlDbType.Int).Value = DIOTCvePais - .Add("@DIOTNacionalidad", SqlDbType.VarChar, 50).Value = DIOTNacionalidad - - 'Evaluacion - .Add("@AplicarEvaluacion", SqlDbType.Bit).Value = AplicarEvaluacion - .Add("@CicloEvaluacion", SqlDbType.Int).Value = CicloEvaluacion - .Add("@FechaEvaluacion", SqlDbType.VarChar).Value = FechaEvaluacion - .Add("@CveUsuarioEvaluador", SqlDbType.Int).Value = CveUsuarioEvaluador - - .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue - End With - - Try - SqlAdapter.Fill(Data) - CveProveedor = SqlAdapter.SelectCommand.Parameters("@RETURN_VALUE").Value.ToString.ToEntero - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2627;") Or Ex1.Message.Contains("Número: 2601;") Then - Dim Mensaje As String = String.Empty - If Ex1.Message.Contains("Comp_Proveedores_Codigo") Then - Mensaje = "el mismo Código." - ElseIf Ex1.Message.Contains("Comp_Proveedores_RazonSocial") Then - Mensaje = "la misma Razón Social." - ElseIf Ex1.Message.Contains("Comp_Proveedores_RFC") Then - Mensaje = "el mismo RFC." - End If - Alert("Los cambios en el proveedor no se pudieron realizar ya que actualmente existe un Proveedor con " & Mensaje, TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Intentar guardar el Nuevo Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Intentar guardar el Nuevo Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function UpdateProveedor(Codigo As String, RazonSocial As String, NombreComercial As String, NombreCorto As String, RFC As String, Direccion As String, Telefono As String, - ContactoNombre As String, ContactoMail As String, ContactoCelular As String, LimiteCredito As Double, PlazoPago As Integer, Observaciones As String, - IVA As Double, RetIVA As Double, RetISR As Double, - IdCtaContProveedores As Integer, CtaContProveedores As String, IdCtaContExtranjera As Integer, CtaContExtranjera As String, IdCtaContComplementaria As Integer, CtaContComplementaria As String, - IdCtaContAcreedores As Integer, CtaContAcreedores As String, IdCtaContAcreedoresExtranjera As Integer, CtaContAcreedoresExtranjera As String, IdCtaContAcreedoresComplementaria As Integer, CtaContAcreedoresComplementaria As String, - IdCtaContAnticipos As Integer, CtaContAnticipos As String, IdCtaContAnticiposExtranjera As Integer, CtaContAnticiposExtranjera As String, IdCtaContAnticiposComplementaria As Integer, CtaContAnticiposComplementaria As String, - IdCtaContDeudor As Integer, CtaContDeudor As String, IdCtaContDeudorExtranjera As Integer, CtaContDeudorExtranjera As String, IdCtaContDeudorComplementaria As Integer, CtaContDeudorComplementaria As String, - IdCtaContDocsXPagar As Integer, CtaContDocsXPagar As String, IdCtaContDocsXPagarExtranjera As Integer, CtaContDocsXPagarExtranjera As String, IdCtaContDocsXPagarComplementaria As Integer, CtaContDocsXPagarComplementaria As String, - IdCtaContFondoGarantia As Integer, CtaContFondoGarantia As String, IdCtaContRetIVA As Integer, CtaContRetIVA As String, IdCtaContRetISR As Integer, CtaContRetISR As String, IdCtaContRetISRAcreditable As Integer, CtaContRetISRACreditable As String, - IdCtaContRetIVAAcreditable As Integer, CtaContRetIVAACreditable As String, CveProveedorClasificacion As Integer, CveUsuarioResponsable As Integer, Estatus As Boolean, NotificarA As String, CorreoCobranza As String, FolioDuplicado As Boolean, CveProveedor As Integer, - Optional CveTipoProveedor As Integer = 1, Optional CveMonedaPreferente As Integer = 1, Optional UsaLimiteCredito As Boolean = False, Optional DIOTCveTipoTercero As Integer = -1, Optional DIOTCveTipoOperacion As Integer = -1, Optional DIOTNumeroIDFiscal As String = "", Optional CveUsuarioModifico As Integer = -1, - Optional AplicarEvaluacion As Boolean = False, Optional FechaEvaluacion As String = "-1", Optional CicloEvaluacion As Integer = -1, Optional DIOTCvePais As Integer = -1, Optional CveUsuarioEvaluador As Integer = -1, Optional CP As Integer = 0, Optional DIOTNacionalidad As String = "") As Boolean - - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorUpdate") - - With SqlAdapter.SelectCommand.Parameters - .Add("@Codigo", SqlDbType.VarChar).Value = Codigo - .Add("@RazonSocial", SqlDbType.VarChar).Value = RazonSocial - .Add("@NombreComercial", SqlDbType.VarChar).Value = NombreComercial - .Add("@NombreCorto", SqlDbType.VarChar).Value = NombreCorto - .Add("@RFC", SqlDbType.VarChar).Value = RFC - .Add("@Direccion", SqlDbType.VarChar).Value = Direccion - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@ContactoNombre", SqlDbType.VarChar).Value = ContactoNombre - .Add("@ContactoMail", SqlDbType.VarChar).Value = ContactoMail - .Add("@ContactoCelular", SqlDbType.VarChar).Value = ContactoCelular - .Add("@LimiteCredito", SqlDbType.Money).Value = LimiteCredito - .Add("@PlazoPago", SqlDbType.Int).Value = PlazoPago - .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones - .Add("@IVA", SqlDbType.Float).Value = IVA - .Add("@RetIVA", SqlDbType.Float).Value = RetIVA - .Add("@RetISR", SqlDbType.Float).Value = RetISR - .Add("@CP", SqlDbType.Int).Value = CP - - 'Proveedores - .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores - .Add("@CtaContProveedores", SqlDbType.VarChar).Value = CtaContProveedores - .Add("@IdCtaContExtranjera", SqlDbType.Int).Value = IdCtaContExtranjera - .Add("@CtaContExtranjera", SqlDbType.VarChar).Value = CtaContExtranjera - .Add("@IdCtaContComplementaria", SqlDbType.Int).Value = IdCtaContComplementaria - .Add("@CtaContComplementaria", SqlDbType.VarChar).Value = CtaContComplementaria - - 'Acreedores - .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedores - .Add("@CtaContAcreedor", SqlDbType.VarChar).Value = CtaContAcreedores - .Add("@IdCtaContAcreedorExtranjera", SqlDbType.Int).Value = IdCtaContAcreedoresExtranjera - .Add("@CtaContAcreedorExtranjera", SqlDbType.VarChar).Value = CtaContAcreedoresExtranjera - .Add("@IdCtaContAcreedorComplementaria", SqlDbType.Int).Value = IdCtaContAcreedoresComplementaria - .Add("@CtaContAcreedorComplementaria", SqlDbType.VarChar).Value = CtaContAcreedoresComplementaria - - 'Anticipos - .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos - .Add("@CtaContAnticipos", SqlDbType.VarChar).Value = CtaContAnticipos - .Add("@IdCtaContAnticiposExtranjera", SqlDbType.Int).Value = IdCtaContAnticiposExtranjera - .Add("@CtaContAnticiposExtranjera", SqlDbType.VarChar).Value = CtaContAnticiposExtranjera - .Add("@IdCtaContAnticiposComplementaria", SqlDbType.Int).Value = IdCtaContAnticiposComplementaria - .Add("@CtaContAnticiposComplementaria", SqlDbType.VarChar).Value = CtaContAnticiposComplementaria - - 'Deudores - .Add("@IdCtaContDeudor", SqlDbType.Int).Value = IdCtaContDeudor - .Add("@CtaContDeudor", SqlDbType.VarChar).Value = CtaContDeudor - .Add("@IdCtaContDeudorExtranjera", SqlDbType.Int).Value = IdCtaContDeudorExtranjera - .Add("@CtaContDeudorExtranjera", SqlDbType.VarChar).Value = CtaContDeudorExtranjera - .Add("@IdCtaContDeudorComplementaria", SqlDbType.Int).Value = IdCtaContDeudorComplementaria - .Add("@CtaContDeudorComplementaria", SqlDbType.VarChar).Value = CtaContDeudorComplementaria - - 'DocsXPagar - .Add("@IdCtaContDocsXPagar", SqlDbType.Int).Value = IdCtaContDocsXPagar - .Add("@CtaContDocsXPagar", SqlDbType.VarChar).Value = CtaContDocsXPagar - .Add("@IdCtaContDocsXPagarExtranjera", SqlDbType.Int).Value = IdCtaContDocsXPagarExtranjera - .Add("@CtaContDocsXPagarExtranjera", SqlDbType.VarChar).Value = CtaContDocsXPagarExtranjera - .Add("@IdCtaContDocsXPagarComplementaria", SqlDbType.Int).Value = IdCtaContDocsXPagarComplementaria - .Add("@CtaContDocsXPagarComplementaria", SqlDbType.VarChar).Value = CtaContDocsXPagarComplementaria - - 'Otros - .Add("@IdCtaContFondoGarantia", SqlDbType.Int).Value = IdCtaContFondoGarantia - .Add("@CtaContFondoGarantia", SqlDbType.VarChar).Value = CtaContFondoGarantia - .Add("@IdCtaContRetIVA", SqlDbType.Int).Value = IdCtaContRetIVA - .Add("@CtaContRetIVA", SqlDbType.VarChar).Value = CtaContRetIVA - .Add("@IdCtaContRetISR", SqlDbType.Int).Value = IdCtaContRetISR - .Add("@CtaContRetISR", SqlDbType.VarChar).Value = CtaContRetISR - .Add("@IdCtaContRetISRAcreditable", SqlDbType.Int).Value = IdCtaContRetISRAcreditable - .Add("@CtaContRetISRAcreditable", SqlDbType.VarChar).Value = CtaContRetISRACreditable - .Add("@IdCtaContRetIVAAcreditable", SqlDbType.Int).Value = IdCtaContRetIVAAcreditable - .Add("@CtaContRetIVAAcreditable", SqlDbType.VarChar).Value = CtaContRetIVAACreditable - - .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion - .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable - .Add("@CveTipoProveedor", SqlDbType.TinyInt).Value = CveTipoProveedor - .Add("@Estatus", SqlDbType.Bit).Value = Estatus - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@NotificarA", SqlDbType.VarChar).Value = NotificarA - .Add("@CorreoCobranza", SqlDbType.VarChar).Value = CorreoCobranza - .Add("@FolioDuplicado", SqlDbType.Bit).Value = FolioDuplicado - .Add("@CveMonedaPreferente", SqlDbType.Int).Value = CveMonedaPreferente - .Add("@UsaLimiteCredito", SqlDbType.Bit).Value = UsaLimiteCredito - - 'DIOT - .Add("@DIOTCveTipoTercero", SqlDbType.Int).Value = DIOTCveTipoTercero - .Add("@DIOTCveTipoOperacion", SqlDbType.Int).Value = DIOTCveTipoOperacion - .Add("@DIOTNumeroIDFiscal", SqlDbType.VarChar, 50).Value = DIOTNumeroIDFiscal - .Add("@DIOTCvePais", SqlDbType.Int).Value = DIOTCvePais - .Add("@DIOTNacionalidad", SqlDbType.VarChar, 50).Value = DIOTNacionalidad - - .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico - - 'Evaluacion - .Add("@AplicarEvaluacion", SqlDbType.Bit).Value = AplicarEvaluacion - .Add("@CicloEvaluacion", SqlDbType.Int).Value = CicloEvaluacion - .Add("@FechaEvaluacion", SqlDbType.VarChar).Value = FechaEvaluacion - .Add("@CveUsuarioEvaluador", SqlDbType.Int).Value = CveUsuarioEvaluador - - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2601;") Or Ex1.Message.Contains("Número: 2627;") Then - Dim Mensaje As String = String.Empty - If Ex1.Message.Contains("UN_Comp_Proveedores_Codigo") Then - Mensaje = "el mismo Código" - ElseIf Ex1.Message.Contains("UN_Comp_Proveedores_RazonSocial") Then - Mensaje = "la misma Razón Social" - ElseIf Ex1.Message.Contains("UN_Comp_Proveedores_RFC") Then - Mensaje = "el mismo RFC" - End If - Alert("Los cambios en el proveedor no se pudieron realizar ya que actualmente existe un Proveedor con " & Mensaje, TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - 'SqlAdapter.Dispose() - Return Retorno - End Function - - Public Function RemoveProveedor(CveProveedor As Integer) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorRemove") - - SqlAdapter.SelectCommand.Parameters.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 547;") Then - Alert("El Proveedor no se pudo Eliminar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Eliminar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Eliminar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - - - - - - Public Function UpdateProveedorPagoElectronico(EstatusPagoElectronico As Boolean, CveUsuario As Integer, CveProveedor As Integer) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorUpdatePagoElectronico") - - With SqlAdapter.SelectCommand.Parameters - .Add("@EstatusPagoElectronico", SqlDbType.Bit).Value = EstatusPagoElectronico - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - End With - - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 547;") Then - Alert("El Proveedor no se pudo Actualizar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Actualizar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Actualizar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - Public Function UpdateProveedorIdCuentaAC(CveProveedor As Integer, IdCtaAC As Integer) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorUpdateCuentaAC") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@IdCtaAC", SqlDbType.VarChar).Value = IdCtaAC - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 547;") Then - Alert("El Proveedor no se pudo Actualizar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Actualizar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Actualizar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - Public Function UpdateProveedorNotificarA(CveProveedor As Integer, NotificarA As String) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorUpdateNotificarA") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@NotificarA", SqlDbType.VarChar).Value = NotificarA - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 547;") Then - Alert("El Proveedor no se pudo Actualizar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Actualizar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Actualizar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function VincularCuentasContables( - IdCtaContProveedores As Integer, CtaContProveedores As String, - IdCtaContAcreedores As Integer, CtaContAcreedores As String, - IdCtaContAnticipos As Integer, CtaContAnticipos As String, - IdCtaContDeudor As Integer, CtaContDeudor As String, - IdCtaContDocsXPagar As Integer, CtaContDocsXPagar As String, - CveProveedor As Integer) As Boolean - - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedoresCuentasContablesUpdate") - - With SqlAdapter.SelectCommand.Parameters - - 'Proveedores - .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores - .Add("@CtaContProveedores", SqlDbType.VarChar).Value = CtaContProveedores - - 'Acreedores - .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedores - .Add("@CtaContAcreedor", SqlDbType.VarChar).Value = CtaContAcreedores - - 'Anticipos - .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos - .Add("@CtaContAnticipos", SqlDbType.VarChar).Value = CtaContAnticipos - - 'Deudores - .Add("@IdCtaContDeudor", SqlDbType.Int).Value = IdCtaContDeudor - .Add("@CtaContDeudor", SqlDbType.VarChar).Value = CtaContDeudor - - - 'DocsXPagar - .Add("@IdCtaContDocsXPagar", SqlDbType.Int).Value = IdCtaContDocsXPagar - .Add("@CtaContDocsXPagar", SqlDbType.VarChar).Value = CtaContDocsXPagar - - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2601;") Or Ex1.Message.Contains("Número: 2627;") Then - - Alert("Los cambios en el proveedor no se pudieron realizar ", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - 'SqlAdapter.Dispose() - Return Retorno - End Function - -#End Region - -#Region " P R O V E E D O R E S - C L A S I F I C A C I O N E S" - Public Function GetProveedorClasificacion(CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedoresClasificacionesGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener el Catálogo de Clasificación de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - - Public Function AddProveedorClasificacion(ProveedorClasificacion As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresClasificacionesAdd") - - With SqlAdapter.SelectCommand.Parameters - .Add("@ProveedorClasificacion", SqlDbType.VarChar).Value = ProveedorClasificacion - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2627;") Then - Alert("Ya existe una Clasificación de Proveedores. con el mismo nombre: " & ProveedorClasificacion & ".", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Guardar el Clasificación de Proveedores.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Guardar el ProveedorClasificacion", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function UpdateProveedorClasificacion(ProveedorClasificacion As String, Estatus As Boolean, CveProveedorClasificacion As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresClasificacionesUpdate") - - With SqlAdapter.SelectCommand.Parameters - .Add("@ProveedorClasificacion", SqlDbType.VarChar).Value = ProveedorClasificacion - .Add("@Estatus", SqlDbType.Bit).Value = Estatus - .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2627;") Then - Alert("Ya existe una Clasificación de Proveedores. con el mismo nombre: " & ProveedorClasificacion & ".", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al guardar los cambios en Clasificación de Proveedores.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al guardar los cambios en el Clasificación de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function RemoveProveedorClasificacion(CveProveedorClasificacion As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresClasificacionesRemove") - - SqlAdapter.SelectCommand.Parameters.Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion - - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 547;") Then - Alert("La Clasificación del Proveedor no se pudo eliminar porque está siendo usado por un registro.", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al eliminar el Clasificación de Proveedores.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - Me.OnError("Ocurrió un error al eliminar el Clasificación de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - -#End Region - - '#Region "P R O V E E D O R E S - C U E N T A S" - ' Public Function GetProveedoresCuentas() As Boolean - ' Dim Retorno As Boolean = False - ' DataAdapter("PA_Comp_ProveedoresCuentasGet") - ' Try - ' SqlAdapter.Fill(Data) - ' Retorno = True - ' Catch ex As Exception - ' OnError("Ocurrió un error al obtener el Catálogo.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - ' End Try - - ' Return Retorno - ' End Function - ' Public Function AddProveedoresCuentas(CveProveedor As Integer, BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, CveUsuario As Integer) As Boolean - ' Dim Retorno As Boolean = False - - ' DataAdapter("PA_Comp_ProveedoresCuentasAdd") - - ' With SqlAdapter.SelectCommand.Parameters - ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - ' .Add("@BancoNombre", SqlDbType.VarChar).Value = BancoNombre - ' .Add("@Plaza", SqlDbType.VarChar).Value = Plaza - ' .Add("@Sucursal", SqlDbType.VarChar).Value = Sucursal - ' .Add("@Cuenta", SqlDbType.VarChar).Value = Cuenta - ' .Add("@CLABE", SqlDbType.VarChar).Value = CLABE - ' .Add("@CIE", SqlDbType.VarChar).Value = CIE - ' .Add("@SWIFT", SqlDbType.VarChar).Value = SWIFT - ' .Add("@Referencia", SqlDbType.VarChar).Value = Referencia - ' .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - - - ' End With - - ' Try - ' SqlAdapter.Fill(Data) - ' Retorno = True - ' 'Catch Ex1 As SqlException - ' ' If Ex1.Message.Contains("Número: 2627;") Then - ' ' Alert("Ya existe un Registro con el mismo nombre: " & CveProveedor & ".", TipoMensaje.MsgAdvertencia) - ' ' Else - ' ' Me.OnError("Ocurrió un error al Guardar el registro.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - ' ' End If - ' Catch ex As Exception - ' OnError("Ocurrió un error al Guardar el registro", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - ' End Try - - ' Return Retorno - ' End Function - ' Public Function RemoveProveedoresCuentas(CveProveedorCuenta As Integer) As Boolean - ' Dim Retorno As Boolean = False - - ' DataAdapter("PA_Comp_ProveedoresCuentasRemove") - - ' SqlAdapter.SelectCommand.Parameters.Add("@CveProveedorCuenta", SqlDbType.Int).Value = CveProveedorCuenta - - ' Try - ' SqlAdapter.Fill(Data) - ' Retorno = True - ' Catch Ex1 As SqlException - ' If Ex1.Message.Contains("Número: 547;") Then - ' Alert("El registro no se pudo eliminar porque está siendo usado.", TipoMensaje.MsgAdvertencia) - ' Else - ' Me.OnError("Ocurrió un error al eliminar el registro.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - ' End If - ' Catch ex As Exception - ' Me.OnError("Ocurrió un error al eliminar el registro.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - ' End Try - - ' Return Retorno - ' End Function - - ' Public Function UpdateProveedoresCuentas(CveProveedor As Integer, CveProveedorCuenta As Integer, BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, Predeterminada As Boolean, Estatus As Boolean) As Boolean - ' Dim Retorno As Boolean = False - - ' DataAdapter("PA_Comp_ProveedoresCuentasUpdate") - - ' With SqlAdapter.SelectCommand.Parameters - ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - ' .Add("@BancoNombre", SqlDbType.VarChar).Value = BancoNombre - ' .Add("@Plaza", SqlDbType.VarChar).Value = Plaza - ' .Add("@Sucursal", SqlDbType.VarChar).Value = Sucursal - ' .Add("@Cuenta", SqlDbType.VarChar).Value = Cuenta - ' .Add("@CLABE", SqlDbType.VarChar).Value = CLABE - ' .Add("@CIE", SqlDbType.VarChar).Value = CIE - ' .Add("@SWIFT", SqlDbType.VarChar).Value = SWIFT - ' .Add("@Referencia", SqlDbType.VarChar).Value = Referencia - ' .Add("@Predeterminada", SqlDbType.Bit).Value = Predeterminada - ' .Add("@Estatus", SqlDbType.VarChar).Value = Estatus - ' .Add("@CveProveedorCuenta", SqlDbType.Int).Value = CveProveedorCuenta - ' .Add("@FechaIng", SqlDbType.Date).Value = Date.Now - ' End With - - ' Try - ' SqlAdapter.Fill(Data) - ' Retorno = True - ' Catch Ex1 As SqlException - ' If Ex1.Message.Contains("Número: 2627;") Then - ' Alert("Ya existe un registro con el mismo nombre", TipoMensaje.MsgAdvertencia) - ' Else - ' Me.OnError("Ocurrió un error al guardar los cambios", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - ' End If - ' Catch ex As Exception - ' OnError("Ocurrió un error al guardar los cambios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - ' End Try - - ' Return Retorno - ' End Function - - '#End Region - - -#Region "S U C U R S A L E S" - - Public Function GetSucursales(CveProveedor As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorSucursalGet") - SqlAdapter.SelectCommand.Parameters.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener el las Sucursales del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - - Public Function AddSucursal(CveProveedor As Integer, Sucursal As String, Direccion As String, Telefono As String, Serie As String, Contacto As String, Correo As String, CveUsuario As Integer, LimiteCredito As Double, PlazoCobranza As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorSucursalAdd") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@Serie", SqlDbType.VarChar).Value = Serie - .Add("@Direccion", SqlDbType.VarChar).Value = Direccion - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@Correo", SqlDbType.VarChar).Value = Correo - .Add("@Contacto", SqlDbType.VarChar).Value = Contacto - .Add("@ProveedorSucursal", SqlDbType.VarChar).Value = Sucursal - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@LimiteCredito", SqlDbType.Float).Value = LimiteCredito - .Add("@PlazoCobranza", SqlDbType.Int).Value = PlazoCobranza - .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue - End With - - Try - SqlAdapter.Fill(Data) - CveProveedorSucursal = SqlAdapter.SelectCommand.Parameters("@RETURN_VALUE").Value.ToString.ToEntero - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2627;") Then - Alert("Ya existe una Sucursal con el mismo nombre: " & Sucursal & ".", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al Guardar la Sucursal del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al Guardar la Sucursal del Proveedor", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function UpdateSucursal(Sucursal As String, Direccion As String, Telefono As String, Serie As String, Estatus As Boolean, Correo As String, Contacto As String, CveProveedorSucursal As Integer, CveProveedor As Integer, LimiteCredito As Double, PlazoCobranza As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorSucursalUpdate") - - With SqlAdapter.SelectCommand.Parameters - .Add("@ProveedorSucursal", SqlDbType.VarChar).Value = Sucursal - .Add("@Serie", SqlDbType.VarChar).Value = Serie - .Add("@Direccion", SqlDbType.VarChar).Value = Direccion - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@Correo", SqlDbType.VarChar).Value = Correo - .Add("@Contacto", SqlDbType.VarChar).Value = Contacto - .Add("@Estatus", SqlDbType.Bit).Value = Estatus - .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal - .Add("@LimiteCredito", SqlDbType.Float).Value = LimiteCredito - .Add("@PlazoCobranza", SqlDbType.Int).Value = PlazoCobranza - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 2627;") Then - Alert("Ya existe una Sucursal con el mismo nombre: " & Sucursal & ".", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al guardar los cambios en la Sucursal del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - OnError("Ocurrió un error al guardar los cambios en la Sucursal del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function RemoveSucursal(CveProveedor As Integer, CveProveedorSucursal As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedorSucursalRemove") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - If Ex1.Message.Contains("Número: 547;") Then - Alert("La Sucursal no se pudo eliminar porque está siendo usadada por un registro.", TipoMensaje.MsgAdvertencia) - Else - Me.OnError("Ocurrió un error al eliminar la Sucursal del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End If - Catch ex As Exception - Me.OnError("Ocurrió un error al eliminar la Sucursal del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - - -#End Region - - Public Function GetProveedoresConciliacion(CveProveedor As Integer, Datos As String) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresConciliacionesGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@Datos", SqlDbType.Xml).Value = Datos - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - Me.OnError("Ocurrió un error al obtener las la conciliaciones del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - -#Region "P R O V E E D O R E S - C O N T A C T O S" - - Public Function AddProveedorContacto(CveProveedor As Integer, CveProveedorSucursal As Integer, Nombre As String, Puesto As String, Telefono As String, Extension As String, Celular As String, Correo As String, Optional Skype As String = "-1") As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresContactosAdd") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal - .Add("@Nombre", SqlDbType.VarChar).Value = Nombre - .Add("@Puesto", SqlDbType.VarChar).Value = Puesto - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@Extension", SqlDbType.VarChar).Value = Extension - .Add("@Celular", SqlDbType.VarChar).Value = Celular - .Add("@Correo", SqlDbType.VarChar).Value = Correo - .Add("@Skype", SqlDbType.VarChar).Value = Skype - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - - Catch ex As Exception - OnError("Ocurrió un error al Guardar el Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - - End Function - - Public Function UpdateProveedorContacto(CveProveedorContacto As Integer, CveProveedor As Integer, CveProveedorSucursal As Integer, Nombre As String, Puesto As String, Telefono As String, Extension As String, Celular As String, Correo As String, Optional Skype As String = "-1") As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresContactosUpdate") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal - .Add("@Nombre", SqlDbType.VarChar).Value = Nombre - .Add("@Puesto", SqlDbType.VarChar).Value = Puesto - .Add("@Telefono", SqlDbType.VarChar).Value = Telefono - .Add("@Extension", SqlDbType.VarChar).Value = Extension - .Add("@Celular", SqlDbType.VarChar).Value = Celular - .Add("@Correo", SqlDbType.VarChar).Value = Correo - .Add("@Skype", SqlDbType.VarChar).Value = Skype - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - - Catch ex As Exception - OnError("Ocurrió un error al Actualizar el Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - End Function - - Public Function GetProveedoresContactos(CveProveedorContacto As Integer, CveProveedor As Integer, CveProveedorSucursal As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresContactosGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener los Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - Public Function RemoveProveedorContacto(CveProveedorContacto As Integer, Optional CveProveedorSucursal As Integer = -1) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresContactosRemove") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto - .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al eliminar el Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function -#End Region - - -#Region "E V A L U A C I O N - P R O V E E D O R E S" - Public Function GetEvaluacionesProveedoresDetalle(CveEvaluacionProveedor As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_EvaluacionesProveedoresDetalleGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener el detalle de las evaluaciones de proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function - Public Function GetEvaluacionesProveedores(CveEvaluacionProveedor As Integer, CveProveedor As Integer, CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_EvaluacionesProveedoresGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener las evaluaciones de proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function - - Public Function GetProveedoresEvaluacionPediente(CveProveedor As Integer, CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresEvaluacionPedienteGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener los proveedores pendientes por evaluar.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function - Public Function GetProveedoresEvaluacionPreguntas(CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_ProveedoresEvaluacionPreguntasGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener las preguntas de la evaluacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function - Public Function AddEvaluacionProveedor(CveProveedor As Integer, CveCompra As Integer, Fecha As DateTime, Obs As String, CveUsuario As Integer, Calificacion As String, Firma As String, CveEmpresa As Integer) As Integer - Dim Retorno As Integer = -1 - - DataAdapter("PA_Comp_EvaluacionesProveedoresAdd") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveCompra", SqlDbType.Int).Value = CveCompra - .Add("@Fecha", SqlDbType.DateTime).Value = Fecha - .Add("@Observaciones", SqlDbType.VarChar).Value = Obs - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CalificacionFinal", SqlDbType.VarChar).Value = Calificacion - .Add("@Firma", SqlDbType.VarChar).Value = Firma - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@CveEvaluacionProveedor", SqlDbType.Int).Direction = ParameterDirection.Output - End With - Try - SqlAdapter.Fill(Data) - Retorno = SqlAdapter.SelectCommand.Parameters("@CveEvaluacionProveedor").Value.ToString.ToEntero - Catch ex As Exception - OnError("Ocurrió un error al guardar la evaluacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function - Public Function UpdateEvaluacionProveedor(CveEvaluacionProveedor As Integer, Fecha As DateTime, Obs As String, Calificacion As String, Firma As String, Evaluo As Boolean) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_EvaluacionesProveedoresUpdate") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor - .Add("@Fecha", SqlDbType.DateTime).Value = Fecha - .Add("@Observaciones", SqlDbType.VarChar).Value = Obs - .Add("@CalificacionFinal", SqlDbType.VarChar).Value = Calificacion - .Add("@Firma", SqlDbType.VarChar).Value = Firma - .Add("@Evaluo", SqlDbType.Bit).Value = Evaluo - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al actualizar la evaluacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function - Public Function AddEvaluacionProveedorDetalle(CveEvaluacionProveedor As Integer, CvePreguntaEvaluacion As Integer, Optional RespuestaBit As Integer = -1, Optional RespuestaTexto As String = "-1", Optional RespuestaOpcion As Integer = -1) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Comp_EvaluacionesProveedoresDetalleAdd") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor - .Add("@CvePreguntaEvaluacion ", SqlDbType.Int).Value = CvePreguntaEvaluacion - .Add("@RespuestaBit", SqlDbType.Int).Value = RespuestaBit - .Add("@RespuestaTexto ", SqlDbType.VarChar).Value = RespuestaTexto - .Add("@RespuestaOpcion", SqlDbType.Int).Value = RespuestaOpcion - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al guardar la evaluacion detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - Return Retorno - End Function -#End Region - -#Region "GRAFICAS" - - Public Function GetProveedorVencido(CveProveedor As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorVencidoGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@FechaI", SqlDbType.Date).Value = FechaI - .Add("@FechaF", SqlDbType.Date).Value = FechaF - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener los dias vencidos del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - Return Retorno - End Function - Public Function GetProveedorSaldoMensual(CveProveedor As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorSaldoMensualGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@FechaI", SqlDbType.Date).Value = FechaI - .Add("@FechaF", SqlDbType.Date).Value = FechaF - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener el saldo mensual del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - Return Retorno - End Function - - Public Function GetClienteComportamientoCompraMensual(CveProveedor As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Comp_ProveedorComportamientoCompraMensualGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@FechaI", SqlDbType.Date).Value = FechaI - .Add("@FechaF", SqlDbType.Date).Value = FechaF - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al obtener las ventas mensuales del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - Return Retorno - End Function - -#End Region - -#Region "CUENTAS CONTABLES" - Public Function VincularCuentasContables(IdCtaContProveedores As Integer, IdCtaContAcreedor As Integer, IdCtaContComplementaria As Integer, IdCtaContAnticipos As Integer, IdCtaContExtranjera As Integer, CveProveedor As Integer) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_ProveedoresCuentasContablesUpdate") - With SqlAdapter.SelectCommand.Parameters - .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores - .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedor - .Add("@IdCtaContComplementaria", SqlDbType.Int).Value = IdCtaContComplementaria - .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos - .Add("@IdCtaContExtranjera", SqlDbType.Int).Value = IdCtaContExtranjera - .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor - End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al asignar las cuentas contables del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - Return Retorno - End Function - -#End Region - - - ' IDisposable - -#Region " IDisposable Support " - - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - ' Visual Basic agregó este código para implementar correctamente el modelo descartable. - Public Sub Dispose() Implements IDisposable.Dispose - ' No cambie este código. Coloque el código de limpieza en Dispose (ByVal que se dispone como Boolean). - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region -End Class - +Option Strict On +Option Explicit On + +Imports System.Data +Imports System.Data.SqlClient +Imports Extensiones + +Public Class ClsCompProveedores + Implements IDisposable + +#Region "Campos" + 'SQL + Private SqlConexion As SqlConnection + Private SqlAdapter As SqlDataAdapter + Private Data As DataTable + Private SqlCommand As SqlCommand + Private SqlTransacc As SqlTransaction + Private StrSQL As StringBuilder + + 'Atributos de la clase + Private disposedValue As Boolean = False ' Para detectar llamadas redundantes +#End Region + +#Region "Propiedades" + Public Property CveProveedor As Integer + Public Property Codigo As String + Public Property RazonSocial As String + Public Property NombreComercial As String + Public Property NombreCorto As String + Public Property RFC As String + Public Property Direccion As String + Public Property Telefono As String + Public Property ContactoNombre As String + Public Property ContactoMail As String + Public Property ContactoCelular As String + Public Property LimiteCredito As Double + Public Property PlazoPago As Integer + Public Property Observaciones As String + Public Property IVA As Double + Public Property RetIVA As Double + Public Property RetISR As Double + Public Property CP As Integer + Public Property IdCtaContProveedores As Integer + Public Property CveCuentaProveedores As Integer + Public Property CtaContProveedores As String + Public Property IdCtaContProveedoresExtranjera As Integer + Public Property CveCuentaProveedoresExtranjera As Integer + Public Property CtaContProveedoresExtranjera As String + Public Property IdCtaContProveedoresComplementaria As Integer + Public Property CveCuentaProveedoresComplementaria As Integer + Public Property CtaContProveedoresComplementaria As String + + Public Property IdCtaContAcreedor As Integer + Public Property CveCuentaAcreedor As Integer + Public Property CtaContAcreedor As String + Public Property IdCtaContAcreedorExtranjera As Integer + Public Property CveCuentaAcreedorExtranjera As Integer + Public Property CtaContAcreedorExtranjera As String + Public Property IdCtaContAcreedorComplementaria As Integer + Public Property CveCuentaAcreedorComplementaria As Integer + Public Property CtaContAcreedorComplementaria As String + + Public Property IdCtaContAnticipos As Integer + Public Property CveCuentaAnticipos As Integer + Public Property CtaContAnticipos As String + Public Property IdCtaContAnticiposExtranjera As Integer + Public Property CveCuentaAnticiposExtranjera As Integer + Public Property CtaContAnticiposExtranjera As String + Public Property IdCtaContAnticiposComplementaria As Integer + Public Property CveCuentaAnticiposComplementaria As Integer + Public Property CtaContAnticiposComplementaria As String + + Public Property IdCtaContDeudor As Integer + Public Property CveCuentaDeudor As Integer + Public Property CtaContDeudor As String + Public Property IdCtaContDeudorExtranjera As Integer + Public Property CveCuentaDeudorExtranjera As Integer + Public Property CtaContDeudorExtranjera As String + Public Property IdCtaContDeudorComplementaria As Integer + Public Property CveCuentaDeudorComplementaria As Integer + Public Property CtaContDeudorComplementaria As String + + Public Property IdCtaContDocsXPagar As Integer + Public Property CveCuentaDocsXPagar As Integer + Public Property CtaContDocsXPagar As String + Public Property IdCtaContDocsXPagarExtranjera As Integer + Public Property CveCuentaDocsXPagarExtranjera As Integer + Public Property CtaContDocsXPagarExtranjera As String + Public Property IdCtaContDocsXPagarComplementaria As Integer + Public Property CveCuentaDocsXPagarComplementaria As Integer + Public Property CtaContDocsXPagarComplementaria As String + + Public Property IdCtaContFondoGarantia As Integer + Public Property CveCuentaFondoGarantia As Integer + Public Property CtaContFondoGarantia As String + Public Property IdCtaContRetIVA As Integer + Public Property CveCuentaRetIVA As Integer + Public Property CtaContRetIVA As String + Public Property IdCtaContRetISR As Integer + Public Property CveCuentaRetISR As Integer + Public Property CtaContRetISR As String + + Public Property IdCtaContRetISRAcreditable As Integer + Public Property CveCuentaRetISRAcreditable As Integer + Public Property CtaContRetISRAcreditable As String + + Public Property IdCtaContRetIVAAcreditable As Integer + Public Property CveCuentaRetIVAAcreditable As Integer + Public Property CtaContRetIVAAcreditable As String + + Public Property Estatus As String + Public Property CorreoCobranza As String + Public Property EditarFolioDuplicado As Boolean + Public Property FechaIng As Date + Public Property CveProveedorClasificacion As Integer + Public Property ProveedorClasificacion As String + Public Property CveUsuarioResponsable As Integer + Public Property CveTipoProveedor As Integer + Public Property CveMonedaPreferente As Integer + Public Property CveUsuario As Integer + Public Property Usuario As String + Public Property CveEmpresa As Integer + Public Property NotificarA As String + Public Property CveProveedorSucursal As Integer + Public Property UsaLimiteCredito As Boolean + Public Property DIOTCveTipoTercero As Integer + Public Property DIOTCveTipoOperacion As Integer + Public Property DIOTNumeroIDFiscal As String + Public Property DIOTCvePais As Integer + Public Property Situacion As String = "" + Public Property DIOTNacionalidad As String + + Public ReadOnly Property DtResultados() As DataTable + Get + DtResultados = Data + End Get + End Property + +#End Region + +#Region "Enums" + Public Enum TipoConsulta + ParaGlobalDT = 2 + ParaUsoEnEmpresa = 1 + End Enum +#End Region + + Public Function IniciaTransacSQL() As SqlTransaction + If SqlTransacc Is Nothing Then SqlTransacc = SqlConexion.BeginTransaction() + Return SqlTransacc + End Function + Public Sub RollBack() + SqlTransacc.Rollback() + End Sub + Public Sub Commit() + SqlTransacc.Commit() + End Sub + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) + + If TransaccionCompartida Is Nothing Then + SqlConexion = New SqlConnection + SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings("Conexion").ConnectionString + Try + SqlConexion.Open() + Catch ex As Exception + OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex) + End Try + Else + SqlConexion = TransaccionCompartida.Connection + SqlTransacc = TransaccionCompartida + End If + + SqlAdapter = New SqlDataAdapter("", SqlConexion) + + End Sub + Private Sub DataAdapter(ByVal pStrSQL As String, Optional ByVal TipoComando As CommandType = CommandType.StoredProcedure) + With SqlAdapter.SelectCommand + .Parameters.Clear() + .CommandText = pStrSQL + .CommandType = TipoComando + End With + Data = New DataTable + If SqlTransacc IsNot Nothing Then SqlAdapter.SelectCommand.Transaction = SqlTransacc + End Sub + + Public Function GetClasificacionProveedores() As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresClasificacionesGet") + + Try + SqlAdapter.Fill(Data) + + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el Catálogo de Clasificaciones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function GetHistorialCompras(CveProveedor As Integer, CveProveedorSucursal As Integer, Optional SelectTop As Integer = -1, Optional CveMoneda As Integer = -1) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorHistorialCompras") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda + .Add("@CveProveedorSucursal", SqlDbType.VarChar).Value = CveProveedorSucursal + .Add("@SelectTop", SqlDbType.Int).Value = SelectTop + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al consultar el Historial de Compras del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + +#Region "P R O V E E D O R E S" + Public Function GetProveedorProsepago(CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorProsepagoGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al consultar el Proveedor Prosepago.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function GetProveedoresSinCuentas(CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresSinCuentasGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al consultar el los proveedores sin cuentas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function GetProveedores(TipoConsulta As TipoConsulta, CveProveedor As Integer, Codigo As String, RazonSocial As String, NombreComercial As String, + NombreCorto As String, RFC As String, ContactoNombre As String, Telefono As String, Estatus As Integer, CveEmpresa As Integer, + Optional CveTipoProveedor As Integer = -1, Optional CveUsuarioResponsable As Integer = -1, + Optional CveMonedaPreferente As Integer = -1, Optional CveProveedorClasificacion As Integer = -1) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@TipoConsulta", SqlDbType.Int).Value = TipoConsulta + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@Codigo", SqlDbType.VarChar).Value = Codigo + .Add("@RazonSocial", SqlDbType.VarChar).Value = RazonSocial + .Add("@NombreComercial", SqlDbType.VarChar).Value = NombreComercial + .Add("@NombreCorto", SqlDbType.VarChar).Value = NombreCorto + .Add("@RFC", SqlDbType.VarChar).Value = RFC + .Add("@ContactoNombre", SqlDbType.VarChar).Value = ContactoNombre + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@Estatus", SqlDbType.Int).Value = Estatus + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveTipoProveedor", SqlDbType.Int).Value = CveTipoProveedor + .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable + .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion + .Add("@CveMonedaPreferente", SqlDbType.Int).Value = CveMonedaPreferente + End With + + Try + SqlAdapter.Fill(Data) + + If Data.Rows.Count = 1 Then + Me.CveProveedor = Data.Rows(0)("CveProveedor").ToString.ToEntero + Me.Codigo = Data.Rows(0)("Codigo").ToString + Me.RazonSocial = Data.Rows(0)("RazonSocial").ToString + Me.NombreComercial = Data.Rows(0)("NombreComercial").ToString + Me.NombreCorto = Data.Rows(0)("NombreCorto").ToString + Me.RFC = Data.Rows(0)("RFC").ToString + Me.Direccion = Data.Rows(0)("Direccion").ToString + Me.Telefono = Data.Rows(0)("Telefono").ToString + Me.ContactoNombre = Data.Rows(0)("ContactoNombre").ToString + Me.ContactoMail = Data.Rows(0)("ContactoMail").ToString + Me.ContactoCelular = Data.Rows(0)("ContactoCelular").ToString + Me.LimiteCredito = Data.Rows(0)("LimiteCredito").ToString.ToDouble + Me.PlazoPago = Data.Rows(0)("PlazoPago").ToString.ToEntero + Me.Observaciones = Data.Rows(0)("Observaciones").ToString + Me.IVA = Data.Rows(0)("IVA").ToString.ToDouble + Me.RetIVA = Data.Rows(0)("RetIVA").ToString.ToDouble + Me.RetISR = Data.Rows(0)("RetISR").ToString.ToDouble + Me.CP = Data.Rows(0)("CP").ToString.ToEntero + + 'Proveedores + Me.IdCtaContProveedores = Data.Rows(0)("IdCtaContProveedores").ToString.ToEntero + Me.CveCuentaProveedores = Data.Rows(0)("IdCtaContProveedoresSIG").ToString.ToEntero + Me.CtaContProveedores = Data.Rows(0)("CtaContProveedores").ToString + Me.IdCtaContProveedoresExtranjera = Data.Rows(0)("IdCtaContExtranjera").ToString.ToEntero + Me.CveCuentaProveedoresExtranjera = Data.Rows(0)("IdCtaContExtranjeraSIG").ToString.ToEntero + Me.CtaContProveedoresExtranjera = Data.Rows(0)("CtaContExtranjera").ToString + Me.IdCtaContProveedoresComplementaria = Data.Rows(0)("IdCtaContComplementaria").ToString.ToEntero + Me.CveCuentaProveedoresComplementaria = Data.Rows(0)("IdCtaContComplementariaSIG").ToString.ToEntero + Me.CtaContProveedoresComplementaria = Data.Rows(0)("CtaContComplementaria").ToString + + 'Acreedores + Me.IdCtaContAcreedor = Data.Rows(0)("IdCtaContAcreedor").ToString.ToEntero + Me.CveCuentaAcreedor = Data.Rows(0)("IdCtaContAcreedorSIG").ToString.ToEntero + Me.CtaContAcreedor = Data.Rows(0)("CtaContAcreedor").ToString + Me.IdCtaContAcreedorExtranjera = Data.Rows(0)("IdCtaContAcreedorExtranjera").ToString.ToEntero + Me.CveCuentaAcreedorExtranjera = Data.Rows(0)("IdCtaContAcreedorExtranjeraSIG").ToString.ToEntero + Me.CtaContAcreedorExtranjera = Data.Rows(0)("CtaContAcreedorExtranjera").ToString + Me.IdCtaContAcreedorComplementaria = Data.Rows(0)("IdCtaContAcreedorComplementaria").ToString.ToEntero + Me.CveCuentaAcreedorComplementaria = Data.Rows(0)("IdCtaContAcreedorComplementariaSIG").ToString.ToEntero + Me.CtaContAcreedorComplementaria = Data.Rows(0)("CtaContAcreedorComplementaria").ToString + + 'Anticipos + Me.IdCtaContAnticipos = Data.Rows(0)("IdCtaContAnticipos").ToString.ToEntero + Me.CveCuentaAnticipos = Data.Rows(0)("IdCtaContAnticiposSIG").ToString.ToEntero + Me.CtaContAnticipos = Data.Rows(0)("CtaContAnticipos").ToString + Me.IdCtaContAnticiposExtranjera = Data.Rows(0)("IdCtaContAnticiposExtranjera").ToString.ToEntero + Me.CveCuentaAnticiposExtranjera = Data.Rows(0)("IdCtaContAnticiposExtranjeraSIG").ToString.ToEntero + Me.CtaContAnticiposExtranjera = Data.Rows(0)("CtaContAnticiposExtranjera").ToString + Me.IdCtaContAnticiposComplementaria = Data.Rows(0)("IdCtaContAnticiposComplementaria").ToString.ToEntero + Me.CveCuentaAnticiposComplementaria = Data.Rows(0)("IdCtaContAnticiposComplementariaSIG").ToString.ToEntero + Me.CtaContAnticiposComplementaria = Data.Rows(0)("CtaContAnticiposComplementaria").ToString + + 'Deudor + Me.IdCtaContDeudor = Data.Rows(0)("IdCtaContDeudor").ToString.ToEntero + Me.CveCuentaDeudor = Data.Rows(0)("IdCtaContDeudorSIG").ToString.ToEntero + Me.CtaContDeudor = Data.Rows(0)("CtaContDeudor").ToString + Me.IdCtaContDeudorExtranjera = Data.Rows(0)("IdCtaContDeudorExtranjera").ToString.ToEntero + Me.CveCuentaDeudorExtranjera = Data.Rows(0)("IdCtaContDeudorExtranjeraSIG").ToString.ToEntero + Me.CtaContDeudorExtranjera = Data.Rows(0)("CtaContDeudorExtranjera").ToString + Me.IdCtaContDeudorComplementaria = Data.Rows(0)("IdCtaContDeudorComplementaria").ToString.ToEntero + Me.CveCuentaDeudorComplementaria = Data.Rows(0)("IdCtaContDeudorComplementariaSIG").ToString.ToEntero + Me.CtaContDeudorComplementaria = Data.Rows(0)("CtaContDeudorComplementaria").ToString + + 'DocsXPagar + Me.IdCtaContDocsXPagar = Data.Rows(0)("IdCtaContDocsXPagar").ToString.ToEntero + Me.CveCuentaDocsXPagar = Data.Rows(0)("IdCtaContDocsXPagarSIG").ToString.ToEntero + Me.CtaContDocsXPagar = Data.Rows(0)("CtaContDocsXPagar").ToString + Me.IdCtaContDocsXPagarExtranjera = Data.Rows(0)("IdCtaContDocsXPagarExtranjera").ToString.ToEntero + Me.CveCuentaDocsXPagarExtranjera = Data.Rows(0)("IdCtaContDocsXPagarExtranjeraSIG").ToString.ToEntero + Me.CtaContDocsXPagarExtranjera = Data.Rows(0)("CtaContDocsXPagarExtranjera").ToString + Me.IdCtaContDocsXPagarComplementaria = Data.Rows(0)("IdCtaContDocsXPagarComplementaria").ToString.ToEntero + Me.CveCuentaDocsXPagarComplementaria = Data.Rows(0)("IdCtaContDocsXPagarComplementariaSIG").ToString.ToEntero + Me.CtaContDocsXPagarComplementaria = Data.Rows(0)("CtaContDocsXPagarComplementaria").ToString + + 'Otros + Me.IdCtaContFondoGarantia = Data.Rows(0)("IdCtaContFondoGarantia").ToString.ToEntero + Me.IdCtaContRetIVA = Data.Rows(0)("IdCtaContRetIVA").ToString.ToEntero + Me.IdCtaContRetIVAAcreditable = Data.Rows(0)("IdCtaContRetIVAAcreditable").ToString.ToEntero + Me.IdCtaContRetISR = Data.Rows(0)("IdCtaContRetISR").ToString.ToEntero + Me.IdCtaContRetISRAcreditable = Data.Rows(0)("IdCtaContRetISRAcreditable").ToString.ToEntero + Me.CveCuentaFondoGarantia = Data.Rows(0)("IdCtaContFondoGarantiaSIG").ToString.ToEntero + Me.CveCuentaRetIVA = Data.Rows(0)("IdCtaContRetIVASIG").ToString.ToEntero + Me.CveCuentaRetISR = Data.Rows(0)("IdCtaContRetISRSIG").ToString.ToEntero + Me.CveCuentaRetISRAcreditable = Data.Rows(0)("IdCtaContRetISRAcreditableSIG").ToString.ToEntero + Me.CveCuentaRetIVAAcreditable = Data.Rows(0)("IdCtaContRetIVAAcreditableSIG").ToString.ToEntero + Me.CtaContFondoGarantia = Data.Rows(0)("CtaContFondoGarantia").ToString + Me.CtaContRetIVA = Data.Rows(0)("CtaContRetIVA").ToString + Me.CtaContRetISR = Data.Rows(0)("CtaContRetISR").ToString + Me.CtaContRetISRAcreditable = Data.Rows(0)("CtaContRetISRAcreditable").ToString + Me.CtaContRetIVAAcreditable = Data.Rows(0)("CtaContRetIVAAcreditable").ToString + + Me.Estatus = Data.Rows(0)("Estatus").ToString + Me.FechaIng = Data.Rows(0)("FechaIng").ToString.ToDate + Me.CveProveedorClasificacion = Data.Rows(0)("CveProveedorClasificacion").ToString.ToEntero + Me.ProveedorClasificacion = Data.Rows(0)("ProveedorClasificacion").ToString + Me.CveUsuarioResponsable = Data.Rows(0)("CveUsuarioResponsable").ToString.ToEntero() + Me.CveTipoProveedor = Data.Rows(0)("CveTipoProveedor").ToString.ToEntero() + + Me.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero + Me.Usuario = Data.Rows(0)("Usuario").ToString + Me.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero + Me.NotificarA = Data.Rows(0)("NotificarA").ToString + Me.CorreoCobranza = Data.Rows(0)("ContactoMailCobranza").ToString + Me.EditarFolioDuplicado = If(Data.Rows(0)("EditarFolioDuplicado").ToString = "True", True, False) + Me.CveMonedaPreferente = Data.Rows(0)("CveMonedaPreferente").ToString.ToEntero() + Me.UsaLimiteCredito = CBool(Data.Rows(0)("UsaLimiteCredito")) + + Me.DIOTCveTipoTercero = Data.Rows(0)("DIOTCveTipoTercero").ToString.ToEntero + Me.DIOTCveTipoOperacion = Data.Rows(0)("DIOTCveTipoOperacion").ToString.ToEntero + Me.DIOTNumeroIDFiscal = Data.Rows(0)("DIOTNumeroIDFiscal").ToString + Me.DIOTCvePais = Data.Rows(0)("DIOTCvePais").ToString.ToEntero + Me.Situacion = Data.Rows(0)("Situacion").ToString + Me.DIOTNacionalidad = Data.Rows(0)("DIOTNacionalidad").ToString + End If + + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el Catálogo de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function AddProveedor(Codigo As String, RazonSocial As String, NombreComercial As String, NombreCorto As String, RFC As String, Direccion As String, Telefono As String, + ContactoNombre As String, ContactoMail As String, ContactoCelular As String, LimiteCredito As Double, PlazoPago As Integer, Observaciones As String, + IVA As Double, RetIVA As Double, RetISR As Double, + IdCtaContProveedores As Integer, CtaContProveedores As String, IdCtaContExtranjera As Integer, CtaContExtranjera As String, IdCtaContComplementaria As Integer, CtaContComplementaria As String, + IdCtaContAcreedores As Integer, CtaContAcreedores As String, IdCtaContAcreedoresExtranjera As Integer, CtaContAcreedoresExtranjera As String, IdCtaContAcreedoresComplementaria As Integer, CtaContAcreedoresComplementaria As String, + IdCtaContAnticipos As Integer, CtaContAnticipos As String, IdCtaContAnticiposExtranjera As Integer, CtaContAnticiposExtranjera As String, IdCtaContAnticiposComplementaria As Integer, CtaContAnticiposComplementaria As String, + IdCtaContDeudor As Integer, CtaContDeudor As String, IdCtaContDeudorExtranjera As Integer, CtaContDeudorExtranjera As String, IdCtaContDeudorComplementaria As Integer, CtaContDeudorComplementaria As String, + IdCtaContDocsXPagar As Integer, CtaContDocsXPagar As String, IdCtaContDocsXPagarExtranjera As Integer, CtaContDocsXPagarExtranjera As String, IdCtaContDocsXPagarComplementaria As Integer, CtaContDocsXPagarComplementaria As String, + IdCtaContFondoGarantia As Integer, CtaContFondoGarantia As String, IdCtaContRetIVA As Integer, CtaContRetIVA As String, IdCtaContRetISR As Integer, CtaContRetISR As String, IdCtaContRetISRAcreditable As Integer, CtaContRetISRACreditable As String, + IdCtaContRetIVAAcreditable As Integer, CtaContRetIVAACreditable As String, CveProveedorClasificacion As Integer, CveUsuarioResponsable As Integer, NotificarA As String, CorreoCobranza As String, FolioDuplicado As Boolean, CveUsuario As Integer, CveEmpresa As Integer, + Optional CveTipoProveedor As Integer = 1, Optional CveMonedaPreferente As Integer = 1, Optional UsaLimiteCredito As Boolean = False, Optional DIOTCveTipoTercero As Integer = -1, Optional DIOTCveTipoOperacion As Integer = -1, Optional DIOTNumeroIDFiscal As String = "", + Optional AplicarEvaluacion As Boolean = False, Optional FechaEvaluacion As String = "-1", Optional CicloEvaluacion As Integer = -1, Optional DIOTCvePais As Integer = -1, Optional CveUsuarioEvaluador As Integer = -1, Optional CP As Integer = 0, Optional DIOTNacionalidad As String = "", + Optional CveConfianzaProveedor As Integer = -1) As Boolean + + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@Codigo", SqlDbType.VarChar).Value = Codigo + .Add("@RazonSocial", SqlDbType.VarChar).Value = RazonSocial + .Add("@NombreComercial", SqlDbType.VarChar).Value = NombreComercial + .Add("@NombreCorto", SqlDbType.VarChar).Value = NombreCorto + .Add("@RFC", SqlDbType.VarChar).Value = RFC + .Add("@Direccion", SqlDbType.VarChar).Value = Direccion + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@ContactoNombre", SqlDbType.VarChar).Value = ContactoNombre + .Add("@ContactoMail", SqlDbType.VarChar).Value = ContactoMail + .Add("@ContactoCelular", SqlDbType.VarChar).Value = ContactoCelular + .Add("@LimiteCredito", SqlDbType.Money).Value = LimiteCredito + .Add("@PlazoPago", SqlDbType.Int).Value = PlazoPago + .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones + .Add("@IVA", SqlDbType.Float).Value = IVA + .Add("@RetIVA", SqlDbType.Float).Value = RetIVA + .Add("@RetISR", SqlDbType.Float).Value = RetISR + .Add("@CP", SqlDbType.Int).Value = CP + + 'Proveedores + .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores + .Add("@CtaContProveedores", SqlDbType.VarChar).Value = CtaContProveedores + .Add("@IdCtaContExtranjera", SqlDbType.Int).Value = IdCtaContExtranjera + .Add("@CtaContExtranjera", SqlDbType.VarChar).Value = CtaContExtranjera + .Add("@IdCtaContComplementaria", SqlDbType.Int).Value = IdCtaContComplementaria + .Add("@CtaContComplementaria", SqlDbType.VarChar).Value = CtaContComplementaria + + 'Acreedores + .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedores + .Add("@CtaContAcreedor", SqlDbType.VarChar).Value = CtaContAcreedores + .Add("@IdCtaContAcreedorExtranjera", SqlDbType.Int).Value = IdCtaContAcreedoresExtranjera + .Add("@CtaContAcreedorExtranjera", SqlDbType.VarChar).Value = CtaContAcreedoresExtranjera + .Add("@IdCtaContAcreedorComplementaria", SqlDbType.Int).Value = IdCtaContAcreedoresComplementaria + .Add("@CtaContAcreedorComplementaria", SqlDbType.VarChar).Value = CtaContAcreedoresComplementaria + + 'Anticipos + .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos + .Add("@CtaContAnticipos", SqlDbType.VarChar).Value = CtaContAnticipos + .Add("@IdCtaContAnticiposExtranjera", SqlDbType.Int).Value = IdCtaContAnticiposExtranjera + .Add("@CtaContAnticiposExtranjera", SqlDbType.VarChar).Value = CtaContAnticiposExtranjera + .Add("@IdCtaContAnticiposComplementaria", SqlDbType.Int).Value = IdCtaContAnticiposComplementaria + .Add("@CtaContAnticiposComplementaria", SqlDbType.VarChar).Value = CtaContAnticiposComplementaria + + 'Deudores + .Add("@IdCtaContDeudor", SqlDbType.Int).Value = IdCtaContDeudor + .Add("@CtaContDeudor", SqlDbType.VarChar).Value = CtaContDeudor + .Add("@IdCtaContDeudorExtranjera", SqlDbType.Int).Value = IdCtaContDeudorExtranjera + .Add("@CtaContDeudorExtranjera", SqlDbType.VarChar).Value = CtaContDeudorExtranjera + .Add("@IdCtaContDeudorComplementaria", SqlDbType.Int).Value = IdCtaContDeudorComplementaria + .Add("@CtaContDeudorComplementaria", SqlDbType.VarChar).Value = CtaContDeudorComplementaria + + 'DocsXPagar + .Add("@IdCtaContDocsXPagar", SqlDbType.Int).Value = IdCtaContDocsXPagar + .Add("@CtaContDocsXPagar", SqlDbType.VarChar).Value = CtaContDocsXPagar + .Add("@IdCtaContDocsXPagarExtranjera", SqlDbType.Int).Value = IdCtaContDocsXPagarExtranjera + .Add("@CtaContDocsXPagarExtranjera", SqlDbType.VarChar).Value = CtaContDocsXPagarExtranjera + .Add("@IdCtaContDocsXPagarComplementaria", SqlDbType.Int).Value = IdCtaContDocsXPagarComplementaria + .Add("@CtaContDocsXPagarComplementaria", SqlDbType.VarChar).Value = CtaContDocsXPagarComplementaria + + 'Otros + .Add("@IdCtaContFondoGarantia", SqlDbType.Int).Value = IdCtaContFondoGarantia + .Add("@CtaContFondoGarantia", SqlDbType.VarChar).Value = CtaContFondoGarantia + .Add("@IdCtaContRetIVA", SqlDbType.Int).Value = IdCtaContRetIVA + .Add("@CtaContRetIVA", SqlDbType.VarChar).Value = CtaContRetIVA + .Add("@IdCtaContRetISR", SqlDbType.Int).Value = IdCtaContRetISR + .Add("@CtaContRetISR", SqlDbType.VarChar).Value = CtaContRetISR + .Add("@IdCtaContRetISRAcreditable", SqlDbType.Int).Value = IdCtaContRetISRAcreditable + .Add("@CtaContRetISRAcreditable", SqlDbType.VarChar).Value = CtaContRetISRACreditable + .Add("@IdCtaContRetIVAAcreditable", SqlDbType.Int).Value = IdCtaContRetIVAAcreditable + .Add("@CtaContRetIVAAcreditable", SqlDbType.VarChar).Value = CtaContRetIVAACreditable + + .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion + .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable + .Add("@CveTipoProveedor", SqlDbType.TinyInt).Value = CveTipoProveedor + .Add("@NotificarA", SqlDbType.VarChar).Value = NotificarA + .Add("@CorreoCobranza", SqlDbType.VarChar).Value = CorreoCobranza + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FolioDuplicado", SqlDbType.Bit).Value = FolioDuplicado + .Add("@CveMonedaPreferente", SqlDbType.Int).Value = CveMonedaPreferente + .Add("@UsaLimiteCredito", SqlDbType.Bit).Value = UsaLimiteCredito + + 'DIOT + .Add("@DIOTCveTipoTercero", SqlDbType.Int).Value = DIOTCveTipoTercero + .Add("@DIOTCveTipoOperacion", SqlDbType.Int).Value = DIOTCveTipoOperacion + .Add("@DIOTNumeroIDFiscal", SqlDbType.VarChar, 50).Value = DIOTNumeroIDFiscal + .Add("@DIOTCvePais", SqlDbType.Int).Value = DIOTCvePais + .Add("@DIOTNacionalidad", SqlDbType.VarChar, 50).Value = DIOTNacionalidad + + 'Evaluacion + .Add("@AplicarEvaluacion", SqlDbType.Bit).Value = AplicarEvaluacion + .Add("@CicloEvaluacion", SqlDbType.Int).Value = CicloEvaluacion + .Add("@FechaEvaluacion", SqlDbType.VarChar).Value = FechaEvaluacion + .Add("@CveUsuarioEvaluador", SqlDbType.Int).Value = CveUsuarioEvaluador + + .Add("@CveConfianzaProveedor", SqlDbType.Int).Value = CveConfianzaProveedor + + .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue + End With + + Try + SqlAdapter.Fill(Data) + CveProveedor = SqlAdapter.SelectCommand.Parameters("@RETURN_VALUE").Value.ToString.ToEntero + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Or Ex1.Message.Contains("Número: 2601;") Then + Dim Mensaje As String = String.Empty + If Ex1.Message.Contains("Comp_Proveedores_Codigo") Then + Mensaje = "el mismo Código." + ElseIf Ex1.Message.Contains("Comp_Proveedores_RazonSocial") Then + Mensaje = "la misma Razón Social." + ElseIf Ex1.Message.Contains("Comp_Proveedores_RFC") Then + Mensaje = "el mismo RFC." + End If + Alert("Los cambios en el proveedor no se pudieron realizar ya que actualmente existe un Proveedor con " & Mensaje, TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Intentar guardar el Nuevo Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Intentar guardar el Nuevo Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateProveedor(Codigo As String, RazonSocial As String, NombreComercial As String, NombreCorto As String, RFC As String, Direccion As String, Telefono As String, + ContactoNombre As String, ContactoMail As String, ContactoCelular As String, LimiteCredito As Double, PlazoPago As Integer, Observaciones As String, + IVA As Double, RetIVA As Double, RetISR As Double, + IdCtaContProveedores As Integer, CtaContProveedores As String, IdCtaContExtranjera As Integer, CtaContExtranjera As String, IdCtaContComplementaria As Integer, CtaContComplementaria As String, + IdCtaContAcreedores As Integer, CtaContAcreedores As String, IdCtaContAcreedoresExtranjera As Integer, CtaContAcreedoresExtranjera As String, IdCtaContAcreedoresComplementaria As Integer, CtaContAcreedoresComplementaria As String, + IdCtaContAnticipos As Integer, CtaContAnticipos As String, IdCtaContAnticiposExtranjera As Integer, CtaContAnticiposExtranjera As String, IdCtaContAnticiposComplementaria As Integer, CtaContAnticiposComplementaria As String, + IdCtaContDeudor As Integer, CtaContDeudor As String, IdCtaContDeudorExtranjera As Integer, CtaContDeudorExtranjera As String, IdCtaContDeudorComplementaria As Integer, CtaContDeudorComplementaria As String, + IdCtaContDocsXPagar As Integer, CtaContDocsXPagar As String, IdCtaContDocsXPagarExtranjera As Integer, CtaContDocsXPagarExtranjera As String, IdCtaContDocsXPagarComplementaria As Integer, CtaContDocsXPagarComplementaria As String, + IdCtaContFondoGarantia As Integer, CtaContFondoGarantia As String, IdCtaContRetIVA As Integer, CtaContRetIVA As String, IdCtaContRetISR As Integer, CtaContRetISR As String, IdCtaContRetISRAcreditable As Integer, CtaContRetISRACreditable As String, + IdCtaContRetIVAAcreditable As Integer, CtaContRetIVAACreditable As String, CveProveedorClasificacion As Integer, CveUsuarioResponsable As Integer, Estatus As Boolean, NotificarA As String, CorreoCobranza As String, FolioDuplicado As Boolean, CveProveedor As Integer, + Optional CveTipoProveedor As Integer = 1, Optional CveMonedaPreferente As Integer = 1, Optional UsaLimiteCredito As Boolean = False, Optional DIOTCveTipoTercero As Integer = -1, Optional DIOTCveTipoOperacion As Integer = -1, Optional DIOTNumeroIDFiscal As String = "", Optional CveUsuarioModifico As Integer = -1, + Optional AplicarEvaluacion As Boolean = False, Optional FechaEvaluacion As String = "-1", Optional CicloEvaluacion As Integer = -1, Optional DIOTCvePais As Integer = -1, Optional CveUsuarioEvaluador As Integer = -1, Optional CP As Integer = 0, Optional DIOTNacionalidad As String = "", + Optional CveConfianzaProveedor As Integer = -1) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@Codigo", SqlDbType.VarChar).Value = Codigo + .Add("@RazonSocial", SqlDbType.VarChar).Value = RazonSocial + .Add("@NombreComercial", SqlDbType.VarChar).Value = NombreComercial + .Add("@NombreCorto", SqlDbType.VarChar).Value = NombreCorto + .Add("@RFC", SqlDbType.VarChar).Value = RFC + .Add("@Direccion", SqlDbType.VarChar).Value = Direccion + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@ContactoNombre", SqlDbType.VarChar).Value = ContactoNombre + .Add("@ContactoMail", SqlDbType.VarChar).Value = ContactoMail + .Add("@ContactoCelular", SqlDbType.VarChar).Value = ContactoCelular + .Add("@LimiteCredito", SqlDbType.Money).Value = LimiteCredito + .Add("@PlazoPago", SqlDbType.Int).Value = PlazoPago + .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones + .Add("@IVA", SqlDbType.Float).Value = IVA + .Add("@RetIVA", SqlDbType.Float).Value = RetIVA + .Add("@RetISR", SqlDbType.Float).Value = RetISR + .Add("@CP", SqlDbType.Int).Value = CP + + 'Proveedores + .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores + .Add("@CtaContProveedores", SqlDbType.VarChar).Value = CtaContProveedores + .Add("@IdCtaContExtranjera", SqlDbType.Int).Value = IdCtaContExtranjera + .Add("@CtaContExtranjera", SqlDbType.VarChar).Value = CtaContExtranjera + .Add("@IdCtaContComplementaria", SqlDbType.Int).Value = IdCtaContComplementaria + .Add("@CtaContComplementaria", SqlDbType.VarChar).Value = CtaContComplementaria + + 'Acreedores + .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedores + .Add("@CtaContAcreedor", SqlDbType.VarChar).Value = CtaContAcreedores + .Add("@IdCtaContAcreedorExtranjera", SqlDbType.Int).Value = IdCtaContAcreedoresExtranjera + .Add("@CtaContAcreedorExtranjera", SqlDbType.VarChar).Value = CtaContAcreedoresExtranjera + .Add("@IdCtaContAcreedorComplementaria", SqlDbType.Int).Value = IdCtaContAcreedoresComplementaria + .Add("@CtaContAcreedorComplementaria", SqlDbType.VarChar).Value = CtaContAcreedoresComplementaria + + 'Anticipos + .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos + .Add("@CtaContAnticipos", SqlDbType.VarChar).Value = CtaContAnticipos + .Add("@IdCtaContAnticiposExtranjera", SqlDbType.Int).Value = IdCtaContAnticiposExtranjera + .Add("@CtaContAnticiposExtranjera", SqlDbType.VarChar).Value = CtaContAnticiposExtranjera + .Add("@IdCtaContAnticiposComplementaria", SqlDbType.Int).Value = IdCtaContAnticiposComplementaria + .Add("@CtaContAnticiposComplementaria", SqlDbType.VarChar).Value = CtaContAnticiposComplementaria + + 'Deudores + .Add("@IdCtaContDeudor", SqlDbType.Int).Value = IdCtaContDeudor + .Add("@CtaContDeudor", SqlDbType.VarChar).Value = CtaContDeudor + .Add("@IdCtaContDeudorExtranjera", SqlDbType.Int).Value = IdCtaContDeudorExtranjera + .Add("@CtaContDeudorExtranjera", SqlDbType.VarChar).Value = CtaContDeudorExtranjera + .Add("@IdCtaContDeudorComplementaria", SqlDbType.Int).Value = IdCtaContDeudorComplementaria + .Add("@CtaContDeudorComplementaria", SqlDbType.VarChar).Value = CtaContDeudorComplementaria + + 'DocsXPagar + .Add("@IdCtaContDocsXPagar", SqlDbType.Int).Value = IdCtaContDocsXPagar + .Add("@CtaContDocsXPagar", SqlDbType.VarChar).Value = CtaContDocsXPagar + .Add("@IdCtaContDocsXPagarExtranjera", SqlDbType.Int).Value = IdCtaContDocsXPagarExtranjera + .Add("@CtaContDocsXPagarExtranjera", SqlDbType.VarChar).Value = CtaContDocsXPagarExtranjera + .Add("@IdCtaContDocsXPagarComplementaria", SqlDbType.Int).Value = IdCtaContDocsXPagarComplementaria + .Add("@CtaContDocsXPagarComplementaria", SqlDbType.VarChar).Value = CtaContDocsXPagarComplementaria + + 'Otros + .Add("@IdCtaContFondoGarantia", SqlDbType.Int).Value = IdCtaContFondoGarantia + .Add("@CtaContFondoGarantia", SqlDbType.VarChar).Value = CtaContFondoGarantia + .Add("@IdCtaContRetIVA", SqlDbType.Int).Value = IdCtaContRetIVA + .Add("@CtaContRetIVA", SqlDbType.VarChar).Value = CtaContRetIVA + .Add("@IdCtaContRetISR", SqlDbType.Int).Value = IdCtaContRetISR + .Add("@CtaContRetISR", SqlDbType.VarChar).Value = CtaContRetISR + .Add("@IdCtaContRetISRAcreditable", SqlDbType.Int).Value = IdCtaContRetISRAcreditable + .Add("@CtaContRetISRAcreditable", SqlDbType.VarChar).Value = CtaContRetISRACreditable + .Add("@IdCtaContRetIVAAcreditable", SqlDbType.Int).Value = IdCtaContRetIVAAcreditable + .Add("@CtaContRetIVAAcreditable", SqlDbType.VarChar).Value = CtaContRetIVAACreditable + + .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion + .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable + .Add("@CveTipoProveedor", SqlDbType.TinyInt).Value = CveTipoProveedor + .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@NotificarA", SqlDbType.VarChar).Value = NotificarA + .Add("@CorreoCobranza", SqlDbType.VarChar).Value = CorreoCobranza + .Add("@FolioDuplicado", SqlDbType.Bit).Value = FolioDuplicado + .Add("@CveMonedaPreferente", SqlDbType.Int).Value = CveMonedaPreferente + .Add("@UsaLimiteCredito", SqlDbType.Bit).Value = UsaLimiteCredito + + 'DIOT + .Add("@DIOTCveTipoTercero", SqlDbType.Int).Value = DIOTCveTipoTercero + .Add("@DIOTCveTipoOperacion", SqlDbType.Int).Value = DIOTCveTipoOperacion + .Add("@DIOTNumeroIDFiscal", SqlDbType.VarChar, 50).Value = DIOTNumeroIDFiscal + .Add("@DIOTCvePais", SqlDbType.Int).Value = DIOTCvePais + .Add("@DIOTNacionalidad", SqlDbType.VarChar, 50).Value = DIOTNacionalidad + + .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico + + 'Evaluacion + .Add("@AplicarEvaluacion", SqlDbType.Bit).Value = AplicarEvaluacion + .Add("@CicloEvaluacion", SqlDbType.Int).Value = CicloEvaluacion + .Add("@FechaEvaluacion", SqlDbType.VarChar).Value = FechaEvaluacion + .Add("@CveUsuarioEvaluador", SqlDbType.Int).Value = CveUsuarioEvaluador + + .Add("@CveConfianzaProveedor", SqlDbType.Int).Value = CveConfianzaProveedor + + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2601;") Or Ex1.Message.Contains("Número: 2627;") Then + Dim Mensaje As String = String.Empty + If Ex1.Message.Contains("UN_Comp_Proveedores_Codigo") Then + Mensaje = "el mismo Código" + ElseIf Ex1.Message.Contains("UN_Comp_Proveedores_RazonSocial") Then + Mensaje = "la misma Razón Social" + ElseIf Ex1.Message.Contains("UN_Comp_Proveedores_RFC") Then + Mensaje = "el mismo RFC" + End If + Alert("Los cambios en el proveedor no se pudieron realizar ya que actualmente existe un Proveedor con " & Mensaje, TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + 'SqlAdapter.Dispose() + Return Retorno + End Function + + Public Function RemoveProveedor(CveProveedor As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorRemove") + + SqlAdapter.SelectCommand.Parameters.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 547;") Then + Alert("El Proveedor no se pudo Eliminar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Eliminar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Eliminar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + + + + + + Public Function UpdateProveedorPagoElectronico(EstatusPagoElectronico As Boolean, CveUsuario As Integer, CveProveedor As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorUpdatePagoElectronico") + + With SqlAdapter.SelectCommand.Parameters + .Add("@EstatusPagoElectronico", SqlDbType.Bit).Value = EstatusPagoElectronico + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + End With + + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 547;") Then + Alert("El Proveedor no se pudo Actualizar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Actualizar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Actualizar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function UpdateProveedorIdCuentaAC(CveProveedor As Integer, IdCtaAC As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorUpdateCuentaAC") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@IdCtaAC", SqlDbType.VarChar).Value = IdCtaAC + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 547;") Then + Alert("El Proveedor no se pudo Actualizar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Actualizar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Actualizar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function UpdateProveedorNotificarA(CveProveedor As Integer, NotificarA As String) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorUpdateNotificarA") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@NotificarA", SqlDbType.VarChar).Value = NotificarA + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 547;") Then + Alert("El Proveedor no se pudo Actualizar por que está siendo utilizado por un registro", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Actualizar el Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Actualizar el Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function VincularCuentasContables( + IdCtaContProveedores As Integer, CtaContProveedores As String, + IdCtaContAcreedores As Integer, CtaContAcreedores As String, + IdCtaContAnticipos As Integer, CtaContAnticipos As String, + IdCtaContDeudor As Integer, CtaContDeudor As String, + IdCtaContDocsXPagar As Integer, CtaContDocsXPagar As String, + CveProveedor As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedoresCuentasContablesUpdate") + + With SqlAdapter.SelectCommand.Parameters + + 'Proveedores + .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores + .Add("@CtaContProveedores", SqlDbType.VarChar).Value = CtaContProveedores + + 'Acreedores + .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedores + .Add("@CtaContAcreedor", SqlDbType.VarChar).Value = CtaContAcreedores + + 'Anticipos + .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos + .Add("@CtaContAnticipos", SqlDbType.VarChar).Value = CtaContAnticipos + + 'Deudores + .Add("@IdCtaContDeudor", SqlDbType.Int).Value = IdCtaContDeudor + .Add("@CtaContDeudor", SqlDbType.VarChar).Value = CtaContDeudor + + + 'DocsXPagar + .Add("@IdCtaContDocsXPagar", SqlDbType.Int).Value = IdCtaContDocsXPagar + .Add("@CtaContDocsXPagar", SqlDbType.VarChar).Value = CtaContDocsXPagar + + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2601;") Or Ex1.Message.Contains("Número: 2627;") Then + + Alert("Los cambios en el proveedor no se pudieron realizar ", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al intentar Actualizar los datos del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + 'SqlAdapter.Dispose() + Return Retorno + End Function + +#End Region + +#Region " P R O V E E D O R E S - C L A S I F I C A C I O N E S" + Public Function GetProveedorClasificacion(CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedoresClasificacionesGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el Catálogo de Clasificación de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function AddProveedorClasificacion(ProveedorClasificacion As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresClasificacionesAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@ProveedorClasificacion", SqlDbType.VarChar).Value = ProveedorClasificacion + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya existe una Clasificación de Proveedores. con el mismo nombre: " & ProveedorClasificacion & ".", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Guardar el Clasificación de Proveedores.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Guardar el ProveedorClasificacion", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateProveedorClasificacion(ProveedorClasificacion As String, Estatus As Boolean, CveProveedorClasificacion As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresClasificacionesUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@ProveedorClasificacion", SqlDbType.VarChar).Value = ProveedorClasificacion + .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya existe una Clasificación de Proveedores. con el mismo nombre: " & ProveedorClasificacion & ".", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al guardar los cambios en Clasificación de Proveedores.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al guardar los cambios en el Clasificación de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function RemoveProveedorClasificacion(CveProveedorClasificacion As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresClasificacionesRemove") + + SqlAdapter.SelectCommand.Parameters.Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion + + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 547;") Then + Alert("La Clasificación del Proveedor no se pudo eliminar porque está siendo usado por un registro.", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al eliminar el Clasificación de Proveedores.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + Me.OnError("Ocurrió un error al eliminar el Clasificación de Proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + +#End Region + + '#Region "P R O V E E D O R E S - C U E N T A S" + ' Public Function GetProveedoresCuentas() As Boolean + ' Dim Retorno As Boolean = False + ' DataAdapter("PA_Comp_ProveedoresCuentasGet") + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch ex As Exception + ' OnError("Ocurrió un error al obtener el Catálogo.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try + + ' Return Retorno + ' End Function + ' Public Function AddProveedoresCuentas(CveProveedor As Integer, BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, CveUsuario As Integer) As Boolean + ' Dim Retorno As Boolean = False + + ' DataAdapter("PA_Comp_ProveedoresCuentasAdd") + + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + ' .Add("@BancoNombre", SqlDbType.VarChar).Value = BancoNombre + ' .Add("@Plaza", SqlDbType.VarChar).Value = Plaza + ' .Add("@Sucursal", SqlDbType.VarChar).Value = Sucursal + ' .Add("@Cuenta", SqlDbType.VarChar).Value = Cuenta + ' .Add("@CLABE", SqlDbType.VarChar).Value = CLABE + ' .Add("@CIE", SqlDbType.VarChar).Value = CIE + ' .Add("@SWIFT", SqlDbType.VarChar).Value = SWIFT + ' .Add("@Referencia", SqlDbType.VarChar).Value = Referencia + ' .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + + + ' End With + + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' 'Catch Ex1 As SqlException + ' ' If Ex1.Message.Contains("Número: 2627;") Then + ' ' Alert("Ya existe un Registro con el mismo nombre: " & CveProveedor & ".", TipoMensaje.MsgAdvertencia) + ' ' Else + ' ' Me.OnError("Ocurrió un error al Guardar el registro.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' ' End If + ' Catch ex As Exception + ' OnError("Ocurrió un error al Guardar el registro", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' End Try + + ' Return Retorno + ' End Function + ' Public Function RemoveProveedoresCuentas(CveProveedorCuenta As Integer) As Boolean + ' Dim Retorno As Boolean = False + + ' DataAdapter("PA_Comp_ProveedoresCuentasRemove") + + ' SqlAdapter.SelectCommand.Parameters.Add("@CveProveedorCuenta", SqlDbType.Int).Value = CveProveedorCuenta + + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch Ex1 As SqlException + ' If Ex1.Message.Contains("Número: 547;") Then + ' Alert("El registro no se pudo eliminar porque está siendo usado.", TipoMensaje.MsgAdvertencia) + ' Else + ' Me.OnError("Ocurrió un error al eliminar el registro.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End If + ' Catch ex As Exception + ' Me.OnError("Ocurrió un error al eliminar el registro.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try + + ' Return Retorno + ' End Function + + ' Public Function UpdateProveedoresCuentas(CveProveedor As Integer, CveProveedorCuenta As Integer, BancoNombre As String, Plaza As String, Sucursal As String, Cuenta As String, CLABE As String, CIE As String, SWIFT As String, Referencia As String, Predeterminada As Boolean, Estatus As Boolean) As Boolean + ' Dim Retorno As Boolean = False + + ' DataAdapter("PA_Comp_ProveedoresCuentasUpdate") + + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + ' .Add("@BancoNombre", SqlDbType.VarChar).Value = BancoNombre + ' .Add("@Plaza", SqlDbType.VarChar).Value = Plaza + ' .Add("@Sucursal", SqlDbType.VarChar).Value = Sucursal + ' .Add("@Cuenta", SqlDbType.VarChar).Value = Cuenta + ' .Add("@CLABE", SqlDbType.VarChar).Value = CLABE + ' .Add("@CIE", SqlDbType.VarChar).Value = CIE + ' .Add("@SWIFT", SqlDbType.VarChar).Value = SWIFT + ' .Add("@Referencia", SqlDbType.VarChar).Value = Referencia + ' .Add("@Predeterminada", SqlDbType.Bit).Value = Predeterminada + ' .Add("@Estatus", SqlDbType.VarChar).Value = Estatus + ' .Add("@CveProveedorCuenta", SqlDbType.Int).Value = CveProveedorCuenta + ' .Add("@FechaIng", SqlDbType.Date).Value = Date.Now + ' End With + + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch Ex1 As SqlException + ' If Ex1.Message.Contains("Número: 2627;") Then + ' Alert("Ya existe un registro con el mismo nombre", TipoMensaje.MsgAdvertencia) + ' Else + ' Me.OnError("Ocurrió un error al guardar los cambios", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End If + ' Catch ex As Exception + ' OnError("Ocurrió un error al guardar los cambios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' End Try + + ' Return Retorno + ' End Function + + '#End Region + + +#Region "S U C U R S A L E S" + + Public Function GetSucursales(CveProveedor As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorSucursalGet") + SqlAdapter.SelectCommand.Parameters.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el las Sucursales del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function AddSucursal(CveProveedor As Integer, Sucursal As String, Direccion As String, Telefono As String, Serie As String, Contacto As String, Correo As String, CveUsuario As Integer, LimiteCredito As Double, PlazoCobranza As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorSucursalAdd") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@Serie", SqlDbType.VarChar).Value = Serie + .Add("@Direccion", SqlDbType.VarChar).Value = Direccion + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Contacto", SqlDbType.VarChar).Value = Contacto + .Add("@ProveedorSucursal", SqlDbType.VarChar).Value = Sucursal + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@LimiteCredito", SqlDbType.Float).Value = LimiteCredito + .Add("@PlazoCobranza", SqlDbType.Int).Value = PlazoCobranza + .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue + End With + + Try + SqlAdapter.Fill(Data) + CveProveedorSucursal = SqlAdapter.SelectCommand.Parameters("@RETURN_VALUE").Value.ToString.ToEntero + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya existe una Sucursal con el mismo nombre: " & Sucursal & ".", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al Guardar la Sucursal del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al Guardar la Sucursal del Proveedor", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateSucursal(Sucursal As String, Direccion As String, Telefono As String, Serie As String, Estatus As Boolean, Correo As String, Contacto As String, CveProveedorSucursal As Integer, CveProveedor As Integer, LimiteCredito As Double, PlazoCobranza As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorSucursalUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@ProveedorSucursal", SqlDbType.VarChar).Value = Sucursal + .Add("@Serie", SqlDbType.VarChar).Value = Serie + .Add("@Direccion", SqlDbType.VarChar).Value = Direccion + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Contacto", SqlDbType.VarChar).Value = Contacto + .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal + .Add("@LimiteCredito", SqlDbType.Float).Value = LimiteCredito + .Add("@PlazoCobranza", SqlDbType.Int).Value = PlazoCobranza + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya existe una Sucursal con el mismo nombre: " & Sucursal & ".", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al guardar los cambios en la Sucursal del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al guardar los cambios en la Sucursal del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function RemoveSucursal(CveProveedor As Integer, CveProveedorSucursal As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedorSucursalRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 547;") Then + Alert("La Sucursal no se pudo eliminar porque está siendo usadada por un registro.", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al eliminar la Sucursal del Proveedor.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + Me.OnError("Ocurrió un error al eliminar la Sucursal del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + +#End Region + + Public Function GetProveedoresConciliacion(CveProveedor As Integer, Datos As String) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresConciliacionesGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@Datos", SqlDbType.Xml).Value = Datos + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + Me.OnError("Ocurrió un error al obtener las la conciliaciones del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + +#Region "P R O V E E D O R E S - C O N T A C T O S" + + Public Function AddProveedorContacto(CveProveedor As Integer, CveProveedorSucursal As Integer, Nombre As String, Puesto As String, Telefono As String, Extension As String, Celular As String, Correo As String, Optional Skype As String = "-1") As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresContactosAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal + .Add("@Nombre", SqlDbType.VarChar).Value = Nombre + .Add("@Puesto", SqlDbType.VarChar).Value = Puesto + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@Extension", SqlDbType.VarChar).Value = Extension + .Add("@Celular", SqlDbType.VarChar).Value = Celular + .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Skype", SqlDbType.VarChar).Value = Skype + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + + Catch ex As Exception + OnError("Ocurrió un error al Guardar el Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + + End Function + + Public Function UpdateProveedorContacto(CveProveedorContacto As Integer, CveProveedor As Integer, CveProveedorSucursal As Integer, Nombre As String, Puesto As String, Telefono As String, Extension As String, Celular As String, Correo As String, Optional Skype As String = "-1") As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresContactosUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal + .Add("@Nombre", SqlDbType.VarChar).Value = Nombre + .Add("@Puesto", SqlDbType.VarChar).Value = Puesto + .Add("@Telefono", SqlDbType.VarChar).Value = Telefono + .Add("@Extension", SqlDbType.VarChar).Value = Extension + .Add("@Celular", SqlDbType.VarChar).Value = Celular + .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Skype", SqlDbType.VarChar).Value = Skype + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + + Catch ex As Exception + OnError("Ocurrió un error al Actualizar el Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function GetProveedoresContactos(CveProveedorContacto As Integer, CveProveedor As Integer, CveProveedorSucursal As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresContactosGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + Public Function RemoveProveedorContacto(CveProveedorContacto As Integer, Optional CveProveedorSucursal As Integer = -1) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresContactosRemove") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto + .Add("@CveProveedorSucursal", SqlDbType.Int).Value = CveProveedorSucursal + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el Contacto del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function +#End Region + + +#Region "E V A L U A C I O N - P R O V E E D O R E S" + Public Function GetEvaluacionesProveedoresDetalle(CveEvaluacionProveedor As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_EvaluacionesProveedoresDetalleGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el detalle de las evaluaciones de proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function GetEvaluacionesProveedores(CveEvaluacionProveedor As Integer, CveProveedor As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_EvaluacionesProveedoresGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las evaluaciones de proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function GetProveedoresEvaluacionPediente(CveProveedor As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresEvaluacionPedienteGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los proveedores pendientes por evaluar.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function GetProveedoresEvaluacionPreguntas(CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_ProveedoresEvaluacionPreguntasGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las preguntas de la evaluacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function AddEvaluacionProveedor(CveProveedor As Integer, CveCompra As Integer, Fecha As DateTime, Obs As String, CveUsuario As Integer, Calificacion As String, Firma As String, CveEmpresa As Integer) As Integer + Dim Retorno As Integer = -1 + + DataAdapter("PA_Comp_EvaluacionesProveedoresAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveCompra", SqlDbType.Int).Value = CveCompra + .Add("@Fecha", SqlDbType.DateTime).Value = Fecha + .Add("@Observaciones", SqlDbType.VarChar).Value = Obs + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CalificacionFinal", SqlDbType.VarChar).Value = Calificacion + .Add("@Firma", SqlDbType.VarChar).Value = Firma + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveEvaluacionProveedor", SqlDbType.Int).Direction = ParameterDirection.Output + End With + Try + SqlAdapter.Fill(Data) + Retorno = SqlAdapter.SelectCommand.Parameters("@CveEvaluacionProveedor").Value.ToString.ToEntero + Catch ex As Exception + OnError("Ocurrió un error al guardar la evaluacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function UpdateEvaluacionProveedor(CveEvaluacionProveedor As Integer, Fecha As DateTime, Obs As String, Calificacion As String, Firma As String, Evaluo As Boolean) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_EvaluacionesProveedoresUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor + .Add("@Fecha", SqlDbType.DateTime).Value = Fecha + .Add("@Observaciones", SqlDbType.VarChar).Value = Obs + .Add("@CalificacionFinal", SqlDbType.VarChar).Value = Calificacion + .Add("@Firma", SqlDbType.VarChar).Value = Firma + .Add("@Evaluo", SqlDbType.Bit).Value = Evaluo + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar la evaluacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function AddEvaluacionProveedorDetalle(CveEvaluacionProveedor As Integer, CvePreguntaEvaluacion As Integer, Optional RespuestaBit As Integer = -1, Optional RespuestaTexto As String = "-1", Optional RespuestaOpcion As Integer = -1) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Comp_EvaluacionesProveedoresDetalleAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEvaluacionProveedor", SqlDbType.Int).Value = CveEvaluacionProveedor + .Add("@CvePreguntaEvaluacion ", SqlDbType.Int).Value = CvePreguntaEvaluacion + .Add("@RespuestaBit", SqlDbType.Int).Value = RespuestaBit + .Add("@RespuestaTexto ", SqlDbType.VarChar).Value = RespuestaTexto + .Add("@RespuestaOpcion", SqlDbType.Int).Value = RespuestaOpcion + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al guardar la evaluacion detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function +#End Region + +#Region "GRAFICAS" + + Public Function GetProveedorVencido(CveProveedor As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorVencidoGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los dias vencidos del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + Public Function GetProveedorSaldoMensual(CveProveedor As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorSaldoMensualGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el saldo mensual del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + + Public Function GetClienteComportamientoCompraMensual(CveProveedor As Integer, CveEmpresa As Integer, FechaI As Date, FechaF As Date) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ProveedorComportamientoCompraMensualGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las ventas mensuales del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + +#End Region + +#Region "CUENTAS CONTABLES" + Public Function VincularCuentasContables(IdCtaContProveedores As Integer, IdCtaContAcreedor As Integer, IdCtaContComplementaria As Integer, IdCtaContAnticipos As Integer, IdCtaContExtranjera As Integer, CveProveedor As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_ProveedoresCuentasContablesUpdate") + With SqlAdapter.SelectCommand.Parameters + .Add("@IdCtaContProveedores", SqlDbType.Int).Value = IdCtaContProveedores + .Add("@IdCtaContAcreedor", SqlDbType.Int).Value = IdCtaContAcreedor + .Add("@IdCtaContComplementaria", SqlDbType.Int).Value = IdCtaContComplementaria + .Add("@IdCtaContAnticipos", SqlDbType.Int).Value = IdCtaContAnticipos + .Add("@IdCtaContExtranjera", SqlDbType.Int).Value = IdCtaContExtranjera + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al asignar las cuentas contables del proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + +#End Region + + + ' IDisposable + +#Region " IDisposable Support " + + Protected Overridable Sub Dispose(disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + ' TODO: dispose managed state (managed objects). + If Not Data Is Nothing Then Data.Dispose() + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + End If + + ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. + ' TODO: set large fields to null. + End If + Me.disposedValue = True + End Sub + ' Visual Basic agregó este código para implementar correctamente el modelo descartable. + Public Sub Dispose() Implements IDisposable.Dispose + ' No cambie este código. Coloque el código de limpieza en Dispose (ByVal que se dispone como Boolean). + Dispose(True) + GC.SuppressFinalize(Me) + End Sub +#End Region +End Class + diff --git a/Compras/Proveedores.aspx b/Compras/Proveedores.aspx index 4f5044e51..6d7a84b9e 100644 --- a/Compras/Proveedores.aspx +++ b/Compras/Proveedores.aspx @@ -1,4230 +1,4236 @@ -<%@ Page Title="Compras - Proveedor" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Proveedores.aspx.vb" Inherits="Compras_Proveedores" EnableEventValidation="false" %> - - - - - - - - - - - - -   - - - - -
  • - - Agregar Compra - - <%--Registrar Nueva Compra--%> -
  • -
  • - Generar Estado de Cuenta -
  • -
  • - - Conciliar - -
  • -
  • - Modificar Limite de Credito -
  • -
  • - Agregar Cuenta Bancaria -
  • - - -
  • - -
  • -
    -
    - - -
  • - -
  • -
    -
    - - -
  • - -
  • -
    - - - -
    -
    -
    - -
    - - - - -
    -
    -
    - -
    -
    -
    -
    -
    Sucursales:
    -
    - -
    -
    -
    -
    Moneda:
    -
    - - - - - -
    -
    -
    - -
    - -
    - -
    > -
    -
    -
    -
    - - - - - - - -
    -
    -
    -
    -
    - - Datos del Proveedor - -
    -
    -
    -
    -
    - -
    - - - - -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Código: -
    - -
    -
    Razón Social: -
    - - - -
    -
    Nombre Comercial: -
    - - - -
    -
    Nombre Corto: -
    - -
    -
    Dirección: -
    - -
    -
    Codigo Postal: -
    - - -
    -
    RFC: -
    - - - - - -
    -
    Teléfono Empresa: -
    - - - - <%-- --%> - <%-- --%> - -
    -
    Contacto: -
    - -
    -
    Celular Contacto: -
    - - - - <%-- - --%> - - -
    -
    Clasificación Proveedor: - - -
    Responsable: - - - -
    Tipo de Proveedor: - - <%----%> - - - - - - -
    Moneda Preferente: - -
    Estatus SAT: - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - Sucursales - -
    -
    -
    - <%----%> - -
    -
    -
    - -   -
    -
    -
    -
    -
    - - - - - - - - - <%--  --%> - - - - - - - <%-- --%> - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - - Contactos del Proveedor - -
    -
    -
    - <%----%> - -
    -
    -
    - -   -
    -
    - <%-- GRID CONTACTOS PROVEEDOR --%> -
    -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    -
    - - - - - - - -   - - - - - - - - - <%----%> - - - - - - - - - - - <%-- - - - - --%> - - - - - - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    - - Notificaciones - -
    -
    -
    -
    -
    - -
    - - - - -
    -
    -
    -
    - - - - - - - - - - - - - - -
    Ventas/OC: -
    - - - -
    -
    Cobranza/Portal: -
    - - - -
    -
    Notificar A: -
    - - - -
    -
    -
    -
    -
    -
    -
    - <%--
    -
    -
    - - Clasificación - -
    -
    -
    -
    -
    - -
    - - - - -
    -
    -
    -
    - - - - - - - - - - -
    Clasificación Proveedor: - - -
    Responsable: - - - -
    -
    -
    -
    --%> -
    - - - -
    -
    -
    - - - - -
    - - -
    -
    -
    - - Fiscal - -
    -
    -
    -
    -
    - -
    - - - - -
    -
    -
    -
    - - - - - - - - - - - - - -
    % IVA que factura: -
    - (%) - - - - - - -
    -
    % IVA a Retener: -
    - (%) - - - - - - - -
    -
    % ISR a Retener: -
    - (%) - - - - - - - -
    -
    -
    -
    -
    - -
    -
    -
    - - DIOT - -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - -
    Tipo Tercero: -
    - - - - - - - - - - - - - -
    -
    País: -
    - - -
    -
    Tipo Operación: -
    - - - - - - - - - -
    -
    Nacionalidad: -
    - -
    -
    Núm ID Fiscal: -
    - - - - -
    -
    -
    -
    -
    -
    - - - - - -
    -
    - - - - - <%-- - - - - -
    Filtrar por Sucursal: - -
    --%> -
    -
    -
    - - Resumen -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    Cantidad de Compras:  -
    Total Comprado:  -
    Compra Mínima:  -
    Promedio de Compras:  -
    Compra Máxima:  -
    -
    -
    - -
    -
    -
    - - Historial de Compras -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- - Estatus - - - - --%> - - - - - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - <%-- - - - - -
    Filtrar por Sucursal: - -
    --%> - -
    -
    -
    - - Resumen Anticipos -
    -
    -
    -
    -
    - -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    - - - - - - TC: -
    Total: - -
    - -
    -
    -
    -
    -
    -
    - - Notas de Crédito por aplicar / Anticipos por Comprobar - -
    -
    -
    -
    -
    - -
    - - - -
    -
    -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    - - - - - - - - - - - - - - - -   - - - - -   - - - - - - <%-- Visible='<%# Eval("CveCompra").ToString <> "" andalso CDbl(Eval("Saldo")) > 0%>' />--%> - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - Historial - -
    -
    -
    -
    -
    - -
    - - - -
    -
    -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    - - - - - - - -
    - - - - - - - - - - - - - - -   - - - - -   - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    -
    - - - - - -
    -
    -
    - - Cuentas Bancarias - -
    -
    -
    -
    -
    - -
    - - - -
    -
    -
    - - -
    - - - - - - - - <%-- - - - - --%> - - - - - - <%-- - - --%> - - - - - - <%-- - - - --%> - - - - - - <%-- - - AndAlso Eval("Referencia") IsNot "" - - --%> - - - - - - <%-- - - --%> - - - - - - <%-- - - --%> - - - - - - <%-- - - - --%> - - - - - - <%-- - - - --%> - - - - - - <%-- - - --%> - - - - - - <%-- - - - - --%> - - <%-- - - - '> - - --%> - - - - - - <%-- - - --%> - - - - - - - - <%-- - - - - <%-- - - - - - - - - - - - --%> - - - - -
    -
    -
    -
    -
    -
    -
    -
    - - Pagos Realizados - -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    - - - - - - - -
    - - - - Factura - - - - - - Fecha Compra - - - - - - Fecha Vencimiento - - - - - - Cheque - -   - - - - Monto Compra (Saldo Orig) - -   - - - - Abonado - -   - - - - % Pagado - -   - - - - Archivos - - - - - - - Enviar Notificación - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    -
    - - - -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    -
    - - <%--BorderColor="#D3D3D3" BorderWidth="1"--%> - - - OC - - - - - - Descripción - -   - - - - - Fecha - - - - - - - - - - - -
    -
    - - - -
    -
    -
    - - Productos Pendientes de Entrega - -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    - - - - - - - - - - - - - -
    FacturaFechaCantidadProducto
    - HM-512 - 15/09/2014 - 10 - IMPRESION -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    - - - - - - - - - - - - - - - - - - <%-- - - - - --%> - - - - -
    -
    - - - - - -
    -
    -
    -
    -
    - - Sistema - -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    Estado: - -
    Folio Duplicado: - -
    Fecha de Captura: - -
    Usuario Capturó: - -
    Observaciones:
    - -
    -
    -
    -
    -
    -
    -
    -
    - - Acceso a Portal del Proveedor - -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    - - - - - - - - - - - - - - - - - -
    Usuario Activo: - - - -
    Usuario: - - -
    Enviar Activación: - -
    Desactivar Usuario: - -
    -
    - - - - - <%----%> - - - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - Usuarios - -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -   -   - Compras - CxP - Anticip - R.H. - O.S. - Cotiza--- - Sist -   -   -  Comandos
    - - - - - - - - - - - - - - - - - -     -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -   -
    -
    - - -   -   - -
    -
    - - -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - - - -
    -
    -
    -
    -
    - - Parametros -
    -
    -
    -
    -
    -
    - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    Aplicar Evaluación: - -
    Fecha de Evaluación: -
    -
    - - - - -
    - - - - -
    -
    Ciclo de Evaluación: - - - - - - - - - - -
    Fecha de Ultima Evaluación: - -
    Usuario Evaluador: - - - -
    -
    -
    -
    -
    -
    -
    -
    - Evaluaciones Realizadas -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    - <%-- - - --%> -
    -
    -
    - - - - -
    -
    -
    - - -
    -
    -
    -
    - Fecha Inicio: -
    -
    -
    - - - - -
    - - - - -
    -
    - Fecha Fin: -
    -
    -
    - - - - -
    - - - - -
    - -
    - -
    - - -
    - - - -
    - -
    - - - -
    - -
    - - - -
    -
    -
    -
    - -
    -
    -
    - - -
    -
    - - - - - - - - - - - - - -
    -
    -
    -
    - -
    -
    - -
    -
    -
    - - - - - - - - -
    - - - - - - - - -
    -
    -
    - -
    -
    -
    - -
    -
    - <%----%> - Bitacora -
    -
    -
    - <%--<%--<<%--div class=" font-green" style="cursor: pointer;" runat="server" id="ImgAddObs"> - - Agregar -
    --%> -
    - Agendar - -
    -
    -
    - -
    - - - - - - - Fecha - - - - - - Fecha Agenda - - - - - - Usuario - - - - - - Descripción - - - - - - Archivo - - - - - - - - - - - - - - -
    -
    -
    - -
    - - <%-- MODAL BITACORA --%> - - - - - <%-- MODAL CONTACTOS PROVEEDORES --%> - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - +<%@ Page Title="Compras - Proveedor" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Proveedores.aspx.vb" Inherits="Compras_Proveedores" EnableEventValidation="false" %> + + + + + + + + + + + + +   + + + + +
  • + + Agregar Compra + + <%--Registrar Nueva Compra--%> +
  • +
  • + Generar Estado de Cuenta +
  • +
  • + + Conciliar + +
  • +
  • + Modificar Limite de Credito +
  • +
  • + Agregar Cuenta Bancaria +
  • + + +
  • + +
  • +
    +
    + + +
  • + +
  • +
    +
    + + +
  • + +
  • +
    + + + +
    +
    +
    + +
    + + + + +
    +
    +
    + +
    +
    +
    +
    +
    Sucursales:
    +
    + +
    +
    +
    +
    Moneda:
    +
    + + + + + +
    +
    +
    + +
    + +
    + +
    > +
    +
    +
    +
    + + + + + + + +
    +
    +
    +
    +
    + + Datos del Proveedor + +
    +
    +
    +
    +
    + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Código: +
    + +
    +
    Razón Social: +
    + + + +
    +
    Nombre Comercial: +
    + + + +
    +
    Nombre Corto: +
    + +
    +
    Dirección: +
    + +
    +
    Codigo Postal: +
    + + +
    +
    RFC: +
    + + + + + +
    +
    Teléfono Empresa: +
    + + + + <%-- --%> + <%-- --%> + +
    +
    Contacto: +
    + +
    +
    Celular Contacto: +
    + + + + <%-- + --%> + + +
    +
    Clasificación Proveedor: + + +
    Responsable: + + + +
    Tipo de Proveedor: + + <%----%> + + + + + + +
    Moneda Preferente: + +
    Nivel de confianza al proveedor: + + + + + +
    Estatus SAT: + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + Sucursales + +
    +
    +
    + <%----%> + +
    +
    +
    + +   +
    +
    +
    +
    +
    + + + + + + + + + <%--  --%> + + + + + + + <%-- --%> + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + Contactos del Proveedor + +
    +
    +
    + <%----%> + +
    +
    +
    + +   +
    +
    + <%-- GRID CONTACTOS PROVEEDOR --%> +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + + + + +   + + + + + + + + + <%----%> + + + + + + + + + + + <%-- + + + + --%> + + + + + + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + Notificaciones + +
    +
    +
    +
    +
    + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + +
    Ventas/OC: +
    + + + +
    +
    Cobranza/Portal: +
    + + + +
    +
    Notificar A: +
    + + + +
    +
    +
    +
    +
    +
    +
    + <%--
    +
    +
    + + Clasificación + +
    +
    +
    +
    +
    + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + +
    Clasificación Proveedor: + + +
    Responsable: + + + +
    +
    +
    +
    --%> +
    + + + +
    +
    +
    + + + + +
    + + +
    +
    +
    + + Fiscal + +
    +
    +
    +
    +
    + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + + + + +
    % IVA que factura: +
    + (%) + + + + + + +
    +
    % IVA a Retener: +
    + (%) + + + + + + + +
    +
    % ISR a Retener: +
    + (%) + + + + + + + +
    +
    +
    +
    +
    + +
    +
    +
    + + DIOT + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    Tipo Tercero: +
    + + + + + + + + + + + + + +
    +
    País: +
    + + +
    +
    Tipo Operación: +
    + + + + + + + + + +
    +
    Nacionalidad: +
    + +
    +
    Núm ID Fiscal: +
    + + + + +
    +
    +
    +
    +
    +
    + + + + + +
    +
    + + + + + <%-- + + + + +
    Filtrar por Sucursal: + +
    --%> +
    +
    +
    + + Resumen +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Cantidad de Compras:  +
    Total Comprado:  +
    Compra Mínima:  +
    Promedio de Compras:  +
    Compra Máxima:  +
    +
    +
    + +
    +
    +
    + + Historial de Compras +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + Estatus + + + + --%> + + + + + + + +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + <%-- + + + + +
    Filtrar por Sucursal: + +
    --%> + +
    +
    +
    + + Resumen Anticipos +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + + TC: +
    Total: + +
    + +
    +
    +
    +
    +
    +
    + + Notas de Crédito por aplicar / Anticipos por Comprobar + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + + + + + + + + + +   + + + + +   + + + + + + <%-- Visible='<%# Eval("CveCompra").ToString <> "" andalso CDbl(Eval("Saldo")) > 0%>' />--%> + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + Historial + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + +
    + + + + + + + + + + + + + + +   + + + + +   + + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + +
    +
    +
    + + Cuentas Bancarias + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    + + +
    + + + + + + + + <%-- + + + + --%> + + + + + + <%-- + + --%> + + + + + + <%-- + + + --%> + + + + + + <%-- + + AndAlso Eval("Referencia") IsNot "" + + --%> + + + + + + <%-- + + --%> + + + + + + <%-- + + --%> + + + + + + <%-- + + + --%> + + + + + + <%-- + + + --%> + + + + + + <%-- + + --%> + + + + + + <%-- + + + + --%> + + <%-- + + + '> + + --%> + + + + + + <%-- + + --%> + + + + + + + + <%-- + + + + <%-- + + + + + + + + + + + --%> + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + Pagos Realizados + +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + +
    + + + + Factura + + + + + + Fecha Compra + + + + + + Fecha Vencimiento + + + + + + Cheque + +   + + + + Monto Compra (Saldo Orig) + +   + + + + Abonado + +   + + + + % Pagado + +   + + + + Archivos + + + + + + + Enviar Notificación + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    +
    +
    + + + +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + <%--BorderColor="#D3D3D3" BorderWidth="1"--%> + + + OC + + + + + + Descripción + +   + + + + + Fecha + + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + Productos Pendientes de Entrega + +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + + + + + + + + + + + + + +
    FacturaFechaCantidadProducto
    + HM-512 + 15/09/2014 + 10 + IMPRESION +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + + + + + + + + + + + + <%-- + + + + --%> + + + + +
    +
    + + + + + +
    +
    +
    +
    +
    + + Sistema + +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Estado: + +
    Folio Duplicado: + +
    Fecha de Captura: + +
    Usuario Capturó: + +
    Observaciones:
    + +
    +
    +
    +
    +
    +
    +
    +
    + + Acceso a Portal del Proveedor + +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + +
    Usuario Activo: + + + +
    Usuario: + + +
    Enviar Activación: + +
    Desactivar Usuario: + +
    +
    + + + + + <%----%> + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + Usuarios + +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +   +   + Compras + CxP + Anticip + R.H. + O.S. + Cotiza--- + Sist +   +   +  Comandos
    + + + + + + + + + + + + + + + + + +     +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +   +
    +
    + + +   +   + +
    +
    + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + + Parametros +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Aplicar Evaluación: + +
    Fecha de Evaluación: +
    +
    + + + + +
    + + + + +
    +
    Ciclo de Evaluación: + + + + + + + + + + +
    Fecha de Ultima Evaluación: + +
    Usuario Evaluador: + + + +
    +
    +
    +
    +
    +
    +
    +
    + Evaluaciones Realizadas +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    + <%-- + + --%> +
    +
    +
    + + + + +
    +
    +
    + + +
    +
    +
    +
    + Fecha Inicio: +
    +
    +
    + + + + +
    + + + + +
    +
    + Fecha Fin: +
    +
    +
    + + + + +
    + + + + +
    + +
    + +
    + + +
    + + + +
    + +
    + + + +
    + +
    + + + +
    +
    +
    +
    + +
    +
    +
    + + +
    +
    + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    + + + + + + + + +
    + + + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +
    + <%----%> + Bitacora +
    +
    +
    + <%--<%--<<%--div class=" font-green" style="cursor: pointer;" runat="server" id="ImgAddObs"> + + Agregar +
    --%> +
    + Agendar + +
    +
    +
    + +
    + + + + + + + Fecha + + + + + + Fecha Agenda + + + + + + Usuario + + + + + + Descripción + + + + + + Archivo + + + + + + + + + + + + + + +
    +
    +
    + +
    + + <%-- MODAL BITACORA --%> + + + + + <%-- MODAL CONTACTOS PROVEEDORES --%> + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compras/Proveedores.aspx.vb b/Compras/Proveedores.aspx.vb index 0456bf28c..01d316185 100644 --- a/Compras/Proveedores.aspx.vb +++ b/Compras/Proveedores.aspx.vb @@ -1,5596 +1,5603 @@ -Option Explicit On -Option Strict On - -Imports System.Data -Imports Extensiones -Imports System.Xml -'Imports msExcel = Microsoft.Office.Interop.Excel -Imports Microsoft.Reporting.WebForms -Imports System.IO -Imports System.Globalization -'Imports VBIDE - -Partial Class Compras_Proveedores - Inherits ClsPaginas - - - 'Configuración -#Region "P R O P I E D A D E S" - Private ReadOnly Property CveProveedor As Integer - Get - Return ViewState("CveProveedor").ToString.ToEntero - End Get - End Property - Private Property CveProveedorSucursal As Integer - Get - Return ViewState("CveProveedorSucursal").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveProveedorSucursal") = value - End Set - End Property - Private Property CveCuentaBancaria As Integer - Get - Return ViewState("CveCuentaBancaria").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveCuentaBancaria") = value - End Set - End Property - Private Property Serie As String - Get - Return ViewState("Serie").ToString - End Get - Set(value As String) - ViewState("Serie") = value - End Set - End Property - Private Property Modalidad As String - Get - Return ViewState("Modalidad").ToString - End Get - Set(value As String) - ViewState("Modalidad") = value - End Set - End Property - Private Property SerieSucursal As String - Get - Return ViewState("SerieSucursal").ToString - End Get - Set(value As String) - ViewState("SerieSucursal") = value - End Set - End Property - Private Property CveMoneda As Integer - Get - Return ViewState("CveMoneda").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveMoneda") = value - End Set - End Property - Private Property DtCuentasContables As Data.DataTable - Get - Return CType(ViewState("DtCuentasContables"), DataTable) - End Get - Set(value As Data.DataTable) - ViewState("DtCuentasContables") = value - End Set - End Property - Private Property DTCuentasBancos As DataTable - Get - Return CType(ViewState("DTCuentasBancos"), DataTable) - End Get - Set(value As DataTable) - ViewState("DTCuentasBancos") = value - End Set - End Property - Private Property TempDTCuentasBancos As DataTable - Get - Return CType(ViewState("TempDTCuentasBancos"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTCuentasBancos") = value - End Set - End Property - Private Property DTCxP As DataTable - Get - Return CType(ViewState("DTCxP"), DataTable) - End Get - Set(value As DataTable) - ViewState("DTCxP") = value - End Set - End Property - - Public Property CountCuentasxPagar As Integer - Get - Return ViewState("CountCuentasxPagar").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CountCuentasxPagar") = value - End Set - End Property - - Public Property CountAnticipos As Integer - Get - Return ViewState("CountAnticipos").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CountAnticipos") = value - End Set - End Property - Private Property CveMonedaFiltro As Integer - Get - Return ViewState("CveMonedaFiltro").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveMonedaFiltro") = value - End Set - End Property - Private Property TempDTProveedoresContactos As DataTable - Get - Return CType(ViewState("TempDTProveedoresContactos"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTProveedoresContactos") = value - End Set - End Property - Private Property TempDTProveedoresContactosOrigin As DataTable - Get - Return CType(ViewState("TempDTProveedoresContactosOrigin"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTProveedoresContactosOrigin") = value - End Set - End Property - Private Property CveProveedorContacto As Integer - Get - Return ViewState("CveProveedorContacto").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveProveedorContacto") = value - End Set - End Property - Private Property IndexDTContacto As Integer - Get - Return ViewState("IndexDTContacto").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IndexDTContacto") = value - End Set - End Property - Private Property TempDTProveedoresContactosSucursal As DataTable - Get - Return CType(ViewState("TempDTProveedoresContactosSucursal"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTProveedoresContactosSucursal") = value - End Set - End Property - Private Property TempDTProveedoresContactosSucursalOrigin As DataTable - Get - Return CType(ViewState("TempDTProveedoresContactosSucursalOrigin"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTProveedoresContactosSucursalOrigin") = value - End Set - End Property - Private Property EsContactoSucursal As Integer - Get - Return ViewState("EsContactoSucursal").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("EsContactoSucursal") = value - End Set - End Property - Private Property TempDTSucursales As DataTable - Get - Return CType(ViewState("TempDTSucursales"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTSucursales") = value - End Set - End Property - Private Property TempDTSucursalesOrigin As DataTable - Get - Return CType(ViewState("TempDTSucursalesOrigin"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDTSucursalesOrigin") = value - End Set - End Property - Private Property IndexDTSucursal As Integer - Get - Return ViewState("IndexDTSucursal").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IndexDTSucursal") = value - End Set - End Property - Private Property CveTempSucursal As Integer - Get - Return ViewState("CveTempSucursal").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveTempSucursal") = value - End Set - End Property - Private Property EsEditar As Integer - Get - Return ViewState("EsEditar").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("EsEditar") = value - End Set - End Property - Private Property EsEditarSucursal As Integer - Get - Return ViewState("EsEditarSucursal").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("EsEditarSucursal") = value - End Set - End Property - Private Property DtVencido As DataTable - Get - DtVencido = CType(ViewState("DtVencido"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtVencido") = value - End Set - End Property - Private Property DtRotacion As DataTable - Get - DtRotacion = CType(ViewState("DtRotacion"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtRotacion") = value - End Set - End Property - Private Property DtSaldoMensual As DataTable - Get - DtSaldoMensual = CType(ViewState("DtSaldoMensual"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtSaldoMensual") = value - End Set - End Property - Private Property DtComportamientoCompras As DataTable - Get - DtComportamientoCompras = CType(ViewState("DtComportamientoCompras"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtComportamientoCompras") = value - End Set - End Property - - Private Property DtPreguntasEvaluacion() As DataTable - Get - Return If(IsNothing(ViewState("DtPreguntasEvaluacion")), New DataTable(), DirectCast(ViewState("DtPreguntasEvaluacion"), DataTable)) - End Get - Set - ViewState("DtPreguntasEvaluacion") = Value - End Set - End Property - Private Property DtRespuestasEvaluacion() As DataTable - Get - Return If(IsNothing(ViewState("DtRespuestasEvaluacion")), New DataTable(), DirectCast(ViewState("DtRespuestasEvaluacion"), DataTable)) - End Get - Set - ViewState("DtRespuestasEvaluacion") = Value - End Set - End Property - -#End Region - - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load - If Not IsPostBack Then - CountCuentasxPagar = 0 - CountAnticipos = 0 - DtCuentasContables = Nothing - ViewState("Orden") = "" - SerieSucursal = "" - TrFolioDuplicado.Visible = False - CargaMonedas() - 'HlAgregarExcel.Visible = UsuarioActual.CveRol = 1 - - If Request("CveProveedor") IsNot Nothing AndAlso IsNumeric(Request("CveProveedor")) AndAlso Request("CveProveedor").ToEntero > 0 Then - - ViewState("CveProveedor") = Request("CveProveedor") - Serie = IfNull(Request("Serie"), "").ToString - CveProveedorSucursal = IfNull(Request("CveProveedorSucursal"), "-1").ToString.ToEntero - CveMoneda = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero - - - If CveMoneda > 0 Then RBMoneda.SelectedValue = CveMoneda.ToString - - If CargaDatos() Then - CveMonedaFiltro = -1 - - CargaHistorial(CveProveedorSucursal) - CargaCxP(CveProveedorSucursal) - CargaAnticipos(CveProveedorSucursal) - CargaBancos(CveProveedorSucursal) - CargaProveedorSucursales() - - CargaOC() - CargaDocs() - 'CargaColectivas() - 'CargaSaldosBeneficiarios() - CargaUsuariosPortal() - - CargaFiltroMonedas() - MostrarFiltro() - - - 'Configuración de Modalidad Update - ActivarRegistroAutomatico() - BtnGuardar.Text = "Guardar Cambios" - LtlTitulo.Text = "Proveedor:" - 'ImgAddVenta - HlAddCompra.NavigateUrl = $"/Compras/Compras.aspx?CveProveedor={CveProveedor}" - - 'ImgAddCompra.Attributes.Add("OnClick", "window.location = '/Compras/Compras.aspx?CveProveedor=" & CveProveedor & "'") - 'ImgAddObs.Attributes.Add("onclick", "javascript: PosicionaObjeto(this.id,'DivEventoBitacora',null,-250, -250); $('#DivEventoBitacora').show(1000); ") - If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero - - 'CARGA LOS FILTROS DEL TAB COMPORTAMIENTO VENTA - TabComportamientoCompras.Visible = True - CargaFiltros() - End If - HlEvento.Visible = True - HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveProveedor=" & CveProveedor & "&TB_iframe=true&height=370&width=600;" - Else - 'Configuración de Modalidad Insert - - ImgAddObs.Visible = False - ChkEstado.Checked = True : ChkEstado.Enabled = False - LblFechaCaptura.Text = Now.ToShortDateString() - LblUsuarioCapturo.Text = UsuarioActual.Usuario - ViewState("CveProveedor") = -1 - DivSucursales.Visible = False - CargaCombos() - CargaDIOTPais() - - 'DDlDIOTTipoTercero.SelectedValueExist(1) - 'DdlDIOTTipoOperacion.SelectedValueExist(3) - - CreaTempDTProveedoresContactos() - CreaTempDTProveedoresContactosSucursales() - CreaTempDTSucursales() - - If UsuarioActual.Empresa.Funcionalidad(544).ToString = "1" Then - Dim ObjSub As New ClsSubProyectos - Dim CveSubProyectoMatriz As Integer - - If ObjSub.GetSubProyectos() Then - CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero - End If - - Dim ObjFolios As New ClsGralFolios() - If ObjFolios.GetFolios("Pro", UsuarioActual.CveEmpresa) Then - - Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'") - If DT.Rows.Count > 0 Then - TxtCodigo.Text = DT.Rows(0)("FActual").ToString - TxtCodigo.Enabled = False - Else - Alert("No tiene registrados Folios Automáticos.", TipoMensaje.MsgAdvertencia) - End If - End If - End If - - TxtRazonSocial.Attributes.Add("onKeyUp", "SetText(" & TxtRazonSocial.ClientID & ", " & TxtNombreComercial.ClientID & ")") - If Request("CveFactura") IsNot Nothing Then - CargadeFactura(Request("CveFactura").ToString.ToEntero) - - End If - - If UsuarioActual.TienePermisoProceso(256) Then LnkParametros.Visible = True 'Actualizar Límite de Crédito - - ActivarRegistroAutomatico() - End If - - 'Crea y carga CuentasBancarias - tab:Bancos - CargaCuentasBancarias() - - - If UsuarioActual.TienePermisoProceso(84) Then 'abonar pago - HplAbonarMasivo.Visible = True - GvCxP.Columns(11).Visible = True - End If - - If UsuarioActual.TienePermisoProceso(88) Then BtnGuardar.Visible = True 'agregar/Nuevo proveedor - - ScriptManager.RegisterStartupScript(Me, Me.GetType, "Ll", "pageLoad();", True) - - If UsuarioActual.Empresa.CvePlataforma = 2 Then - DivFiscal.Visible = False - TrFondoGarantia.Visible = False - divportalusuarios.Visible = False - End If - - CveProveedorContacto = -1 - ' CargaDdlProveedorSucursalesContactos() - - 'USUARIOS - '02/07/2018 - PRUEBAS USUARIOS PLATAFORMA PROVEEDOR - If UsuarioActual.Empresa.CvePlataforma = 1 AndAlso CveProveedor > 0 Then 'SI ES USUARIO SIG - TabUsuarios.Visible = True - CargaUsuariosPortalProveedor() - - LnkAddUsuario.Visible = True - LnkAddUsuario.Attributes.Add("onclick", $"javascript:AbrirVentana('/Sistemas/PopUpAddUsuario.aspx?CveProveedor={CveProveedor}', 801, 700);") - - End If - - TxtFechaICredito.Text = Now.AddYears(-2).ToShortDateString - TxtFechaFCredito.Text = Now.ToShortDateString - - If UsuarioActual.Empresa.Funcionalidad(560) = "1" Then - TabEvaluacion.Visible = True - CargaEvaluacionProveedor() - UpEvaluaciones.Update() - End If - - If UsuarioActual.TienePermisoProceso(273) Then - GvA.Columns(5).Visible = True - End If - - End If - - Dim script As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#CXPContador""", """badge-success""", """badge-danger""", If(CountCuentasxPagar > 0, """badge-danger""", """badge-success"""), CountCuentasxPagar.ToString) - RegistraScript(script, "contadorcuentaspopagar") - - Dim script2 As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#AnticiposContador""", """badge-success""", """badge-danger""", If(CountAnticipos > 0, """badge-danger""", """badge-success"""), CountAnticipos.ToString) - RegistraScript(script2, "contadoranticipos") - - RegisterPostBackControl() - End Sub - - Private Sub SetValues() - ViewState("Orden") = "" - ViewState("OrdenUsuarios") = "" - 'ViewState("OEstado") = "Estado DESC" - 'ViewState("OFecha") = "Fecha DESC" - 'ViewState("OUsuario") = "Usuario DESC" - End Sub - - Private Sub CargaCuentasContables(Optional IdCuentaPadre As Integer = -1) - If UsuarioActual.Empresa.UsaContabilidad Then - Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) - If ObjContabilidad.GetCuentasRecursiva(IdCuentaPadre, 1) Then - DtCuentasContables = ObjContabilidad.DtResultados - Else - DtCuentasContables = Nothing - End If - ObjContabilidad.Dispose() - ElseIf UsuarioActual.Empresa.UsaContabilidadSIG Then - Dim ObjContabilidad As New ClsContabilidad - If ObjContabilidad.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa) Then - DtCuentasContables = ObjContabilidad.DtResultados - Else - DtCuentasContables = Nothing - End If - ObjContabilidad.Dispose() - End If - - End Sub - - Private Function CargadeFactura(CveFactura As Integer) As Integer - - Dim ObjeFacturas As New ClsCompras - If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-2), Now, "-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then - Dim XMLDoc As New XmlDocument - - Try - Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) - XMLDoc.Load(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & dr("CveEmpresa").ToString & "\Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString) - Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) - Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3" - Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) - Dim nodo As XmlNode = XMLDoc.DocumentElement - - If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2" - namespaces.AddNamespace(Prefijo, cfdVer) - Dim Version As String = ValorXml(nodo, "Version") - - Dim node As XmlNode - node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces) - If node IsNot Nothing Then - TxtRFC.Text = ValorXml(node, "rfc") - - If Version = "3.3" Then - TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre")) - TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre")) - ChkEstado.Checked = True - Else - TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre")) - TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre")) - Dim nodeDomicilio As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:DomicilioFiscal", Prefijo), namespaces) - TxtDireccion.Text = ValorXml(nodeDomicilio, "calle") & " " & ValorXml(nodeDomicilio, "noExterior") - ChkEstado.Checked = True - - node = XMLDoc.SelectSingleNode(String.Format("//{0}:Impuestos", Prefijo), namespaces) - If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then - 'Dim nodeRetenciones As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Retencion", Prefijo), namespaces) - 'Dim nodeRet As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Retenciones", Prefijo), namespaces) - - Dim nodeTraslados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Traslado", Prefijo), namespaces) - For Each traslado As XmlNode In nodeTraslados - If traslado.Attributes("impuesto").Value = "IVA" Then - TxtIVA.Text = traslado.Attributes("tasa").Value.ToDouble.ToString("N2") - 'Retenciones - End If - Next - End If - End If - End If - - - DdlCtaContProveedores.Attributes.Add("onclick", "CargaCuentas(1);") - - Catch ex As Exception - Alert(String.Format("No se pudo cargar la información ({0})", ex.Message), TipoMensaje.MsgAdvertencia) - Return 0 - End Try - - End If - Return 1 - End Function - - Private Function ValorXml(n As XmlNode, Campo As String, Optional Retorno As String = "") As String - If n Is Nothing Then Return Retorno - - Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) - If o Is Nothing Then - Return Retorno - Else - Return o.Value - End If - - End Function - - Private Sub CargaCombos() - CargaResponsable() - CargaClasificacionProveedor() - CargaUsuarioEvaluacionProveedor() - End Sub - - Private Function CargaDatos() As Boolean - Dim Retorno As Boolean = False - Dim ObjProveedor As New ClsCompProveedores() - - If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, CveProveedor, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then - If ObjProveedor.DtResultados.Rows.Count > 0 Then - 'Campos para Modificación - - 'Generales - TxtCodigo.Text = ObjProveedor.Codigo - TxtRazonSocial.Text = ObjProveedor.RazonSocial - LtlProveedor.Text = ObjProveedor.RazonSocial - TxtNombreComercial.Text = ObjProveedor.NombreComercial - TxtNombreCorto.Text = ObjProveedor.NombreCorto - TxtDireccion.Text = ObjProveedor.Direccion - TxtRFC.Text = ObjProveedor.RFC - TxtTelefono.Text = ObjProveedor.Telefono - TxtContactoNombre.Text = ObjProveedor.ContactoNombre - TxtContactoEmail.Text = ObjProveedor.ContactoMail - TxtContactoTelefono.Text = ObjProveedor.ContactoCelular - TxtNotificarA.Text = ObjProveedor.NotificarA - TxtCP.Text = ObjProveedor.CP.ToString - LblSituacionSAT.Text = ObjProveedor.Situacion - - HplAbonarMasivo.NavigateUrl = String.Format("/Bancos/ProveedoresAbonar.aspx?CveProveedor={0}&Serie={1}&CveMoneda={2}", CveProveedor, Serie, CveMoneda) - - TxtCorreoCobranza.Text = ObjProveedor.CorreoCobranza - LblUsuarioPortalCliente.Text = ObjProveedor.CorreoCobranza - LblUsuarioPortalCliente.Attributes("style") = "font-weight: bold;" - - ChkFolioDuplicado.Checked = ObjProveedor.EditarFolioDuplicado - DdlMonedaPrefente.SelectedValueExist(ObjProveedor.CveMonedaPreferente.ToString) - - ChkUsaLimiteCredito.Checked = ObjProveedor.UsaLimiteCredito - - 'Fiscal - TxtIVA.Text = (ObjProveedor.IVA * 100).FormatoNumero - TxtRetIVA.Text = ObjProveedor.RetIVA.ToString - TxtRetISR.Text = ObjProveedor.RetISR.ToString - - 'DIOT - CargaDIOTPais() - DDlDIOTTipoTercero.SelectedValueExist(ObjProveedor.DIOTCveTipoTercero) - DdlDIOTTipoOperacion.SelectedValueExist(ObjProveedor.DIOTCveTipoOperacion) - TxtDIOTNumIDFiscal.Text = ObjProveedor.DIOTNumeroIDFiscal - DdlDIOTPais.SelectedValueExist(ObjProveedor.DIOTCvePais) - TxtDIOTNacionalidad.Text = ObjProveedor.DIOTNacionalidad - - 'Contable - If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaContabilidadSIG Then - DdlCtaContAcreedores.AutoPostBack = True - DdlCtaContProveedores.AutoPostBack = True - DdlCtaContAnticipos.AutoPostBack = True - DdlCtaContFondoGarantia.AutoPostBack = True - DdlCtaContRetIVA.AutoPostBack = True - DdlCtaContRetIVAAcreditable.AutoPostBack = True - DdlCtaContRetISR.AutoPostBack = True - DdlCtaContComplementaria.AutoPostBack = True - DdlCtaContExtranjera.AutoPostBack = True - DdlCtaContDeudor.AutoPostBack = True - DdlCtaContDeudorExtranjera.AutoPostBack = True - DdlCtaContDeudorComplementaria.AutoPostBack = True - DdlCtaContDocsXPagar.AutoPostBack = True - DdlCtaContDocsXPagarExtranjera.AutoPostBack = True - DdlCtaContDocsXPagarComplementaria.AutoPostBack = True - DdlCtaContRetISRAcreditable.AutoPostBack = True - - DdlCtaContProveedores.Attributes.Add("onclick", "CargaCuentas(1);") - DdlCtaContAcreedores.Attributes.Add("onclick", "CargaCuentas(6);") - DdlCtaContAnticipos.Attributes.Add("onclick", "CargaCuentas(2);") - DdlCtaContFondoGarantia.Attributes.Add("onclick", "CargaCuentas(3);") - DdlCtaContRetIVA.Attributes.Add("onclick", "CargaCuentas(4);") - DdlCtaContRetISR.Attributes.Add("onclick", "CargaCuentas(5);") - DdlCtaContComplementaria.Attributes.Add("onclick", "CargaCuentas(7);") - DdlCtaContExtranjera.Attributes.Add("onclick", "CargaCuentas(8);") - DdlCtaContAcreedoresExtranjera.Attributes.Add("onclick", "CargaCuentas(9);") - DdlCtaContAcreedoresComplementaria.Attributes.Add("onclick", "CargaCuentas(10);") - DdlCtaContAnticiposExtranjera.Attributes.Add("onclick", "CargaCuentas(11);") - DdlCtaContAnticiposComplementaria.Attributes.Add("onclick", "CargaCuentas(12);") - DdlCtaContDeudor.Attributes.Add("onclick", "CargaCuentas(13);") - DdlCtaContDeudorExtranjera.Attributes.Add("onclick", "CargaCuentas(14);") - DdlCtaContDeudorComplementaria.Attributes.Add("onclick", "CargaCuentas(15);") - DdlCtaContDocsXPagar.Attributes.Add("onclick", "CargaCuentas(16);") - DdlCtaContDocsXPagarExtranjera.Attributes.Add("onclick", "CargaCuentas(17);") - DdlCtaContDocsXPagarComplementaria.Attributes.Add("onclick", "CargaCuentas(18);") - DdlCtaContRetISRAcreditable.Attributes.Add("onclick", "CargaCuentas(19);") - DdlCtaContRetIVAAcreditable.Attributes.Add("onclick", "CargaCuentas(20);") - - If UsuarioActual.Empresa.UsaContabilidadSIG = True And UsuarioActual.Empresa.UsaContabilidad = False Then - DdlCtaContAcreedores.DataTextField = "Cuenta" : DdlCtaContAcreedores.DataValueField = "CveCuenta" - DdlCtaContProveedores.DataTextField = "Cuenta" : DdlCtaContProveedores.DataValueField = "CveCuenta" - DdlCtaContAnticipos.DataTextField = "Cuenta" : DdlCtaContAnticipos.DataValueField = "CveCuenta" - DdlCtaContFondoGarantia.DataTextField = "Cuenta" : DdlCtaContFondoGarantia.DataValueField = "CveCuenta" - DdlCtaContRetIVA.DataTextField = "Cuenta" : DdlCtaContRetIVA.DataValueField = "CveCuenta" - DdlCtaContRetIVAAcreditable.DataTextField = "Cuenta" : DdlCtaContRetIVAAcreditable.DataValueField = "CveCuenta" - DdlCtaContRetISR.DataTextField = "Cuenta" : DdlCtaContRetISR.DataValueField = "CveCuenta" - DdlCtaContComplementaria.DataTextField = "Cuenta" : DdlCtaContComplementaria.DataValueField = "CveCuenta" - DdlCtaContExtranjera.DataTextField = "Cuenta" : DdlCtaContExtranjera.DataValueField = "CveCuenta" - DdlCtaContDeudor.DataTextField = "Cuenta" : DdlCtaContDeudor.DataValueField = "CveCuenta" - DdlCtaContDeudorExtranjera.DataTextField = "Cuenta" : DdlCtaContDeudorExtranjera.DataValueField = "CveCuenta" - DdlCtaContDocsXPagar.DataTextField = "Cuenta" : DdlCtaContDocsXPagar.DataValueField = "CveCuenta" - DdlCtaContDeudorComplementaria.DataTextField = "Cuenta" : DdlCtaContDeudorComplementaria.DataValueField = "CveCuenta" - DdlCtaContDocsXPagarComplementaria.DataTextField = "Cuenta" : DdlCtaContDocsXPagarComplementaria.DataValueField = "CveCuenta" - DdlCtaContRetISRAcreditable.DataTextField = "Cuenta" : DdlCtaContRetISRAcreditable.DataValueField = "CveCuenta" - DdlCtaContAcreedoresExtranjera.DataTextField = "Cuenta" : DdlCtaContAcreedoresExtranjera.DataValueField = "CveCuenta" - DdlCtaContAcreedoresComplementaria.DataTextField = "Cuenta" : DdlCtaContAcreedoresComplementaria.DataValueField = "CveCuenta" - DdlCtaContAnticiposExtranjera.DataTextField = "Cuenta" : DdlCtaContAnticiposExtranjera.DataValueField = "CveCuenta" - DdlCtaContAnticiposComplementaria.DataTextField = "Cuenta" : DdlCtaContAnticiposComplementaria.DataValueField = "CveCuenta" - DdlCtaContDocsXPagarExtranjera.DataTextField = "Cuenta" : DdlCtaContDocsXPagarExtranjera.DataValueField = "CveCuenta" - End If - - 'Proveedores - If ObjProveedor.IdCtaContProveedores > 0 Then DdlCtaContProveedores.Items.Add(New ListItem(ObjProveedor.CtaContProveedores, ObjProveedor.IdCtaContProveedores.ToString)) : DdlCtaContProveedores.SelectedValueExist(ObjProveedor.IdCtaContProveedores.ToString) - If ObjProveedor.IdCtaContProveedoresExtranjera > 0 Then DdlCtaContExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContProveedoresExtranjera, ObjProveedor.IdCtaContProveedoresExtranjera.ToString)) : DdlCtaContExtranjera.SelectedValue = ObjProveedor.IdCtaContProveedoresExtranjera.ToString - If ObjProveedor.IdCtaContProveedoresComplementaria > 0 Then DdlCtaContComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContProveedoresComplementaria, ObjProveedor.IdCtaContProveedoresComplementaria.ToString)) : DdlCtaContComplementaria.SelectedValue = ObjProveedor.IdCtaContProveedoresComplementaria.ToString - 'Acreedores - If ObjProveedor.IdCtaContAcreedor > 0 Then DdlCtaContAcreedores.Items.Add(New ListItem(ObjProveedor.CtaContAcreedor, ObjProveedor.IdCtaContAcreedor.ToString)) : DdlCtaContAcreedores.SelectedValue = ObjProveedor.IdCtaContAcreedor.ToString - If ObjProveedor.IdCtaContAcreedorExtranjera > 0 Then DdlCtaContAcreedoresExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContAcreedorExtranjera, ObjProveedor.IdCtaContAcreedorExtranjera.ToString)) : DdlCtaContAcreedoresExtranjera.SelectedValue = ObjProveedor.IdCtaContAcreedorExtranjera.ToString - If ObjProveedor.IdCtaContAcreedorComplementaria > 0 Then DdlCtaContAcreedoresComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContAcreedorComplementaria, ObjProveedor.IdCtaContAcreedorComplementaria.ToString)) : DdlCtaContAcreedoresComplementaria.SelectedValue = ObjProveedor.IdCtaContAcreedorComplementaria.ToString - 'Anticipos - If ObjProveedor.IdCtaContAnticipos > 0 Then DdlCtaContAnticipos.Items.Add(New ListItem(ObjProveedor.CtaContAnticipos, ObjProveedor.IdCtaContAnticipos.ToString)) : DdlCtaContAnticipos.SelectedValue = ObjProveedor.IdCtaContAnticipos.ToString - If ObjProveedor.IdCtaContAnticiposExtranjera > 0 Then DdlCtaContAnticiposExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContAnticiposExtranjera, ObjProveedor.IdCtaContAnticiposExtranjera.ToString)) : DdlCtaContAnticiposExtranjera.SelectedValue = ObjProveedor.IdCtaContAnticiposExtranjera.ToString - If ObjProveedor.IdCtaContAnticiposComplementaria > 0 Then DdlCtaContAnticiposComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContAnticiposComplementaria, ObjProveedor.IdCtaContAnticiposComplementaria.ToString)) : DdlCtaContAnticiposComplementaria.SelectedValue = ObjProveedor.IdCtaContAnticiposComplementaria.ToString - 'Deudores - If ObjProveedor.IdCtaContDeudor > 0 Then DdlCtaContDeudor.Items.Add(New ListItem(ObjProveedor.CtaContDeudor, ObjProveedor.IdCtaContDeudor.ToString)) : DdlCtaContDeudor.SelectedValue = ObjProveedor.IdCtaContDeudor.ToString - If ObjProveedor.IdCtaContDeudorExtranjera > 0 Then DdlCtaContDeudorExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContDeudorExtranjera, ObjProveedor.IdCtaContDeudorExtranjera.ToString)) : DdlCtaContDeudorExtranjera.SelectedValue = ObjProveedor.IdCtaContDeudorExtranjera.ToString - If ObjProveedor.IdCtaContDeudorComplementaria > 0 Then DdlCtaContDeudorComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContDeudorComplementaria, ObjProveedor.IdCtaContDeudorComplementaria.ToString)) : DdlCtaContDeudorComplementaria.SelectedValue = ObjProveedor.IdCtaContDeudorComplementaria.ToString - 'DocsXPagar - If ObjProveedor.IdCtaContDocsXPagar > 0 Then DdlCtaContDocsXPagar.Items.Add(New ListItem(ObjProveedor.CtaContDocsXPagar, ObjProveedor.IdCtaContDocsXPagar.ToString)) : DdlCtaContDocsXPagar.SelectedValue = ObjProveedor.IdCtaContDocsXPagar.ToString - If ObjProveedor.IdCtaContDocsXPagarExtranjera > 0 Then DdlCtaContDocsXPagarExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContDocsXPagarExtranjera, ObjProveedor.IdCtaContDocsXPagarExtranjera.ToString)) : DdlCtaContDocsXPagarExtranjera.SelectedValue = ObjProveedor.IdCtaContDocsXPagarExtranjera.ToString - If ObjProveedor.IdCtaContDocsXPagarComplementaria > 0 Then DdlCtaContDocsXPagarComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContDocsXPagarComplementaria, ObjProveedor.IdCtaContDocsXPagarComplementaria.ToString)) : DdlCtaContDocsXPagarComplementaria.SelectedValue = ObjProveedor.IdCtaContDocsXPagarComplementaria.ToString - 'Otros - If ObjProveedor.IdCtaContFondoGarantia > 0 Then DdlCtaContFondoGarantia.Items.Add(New ListItem(ObjProveedor.CtaContFondoGarantia, ObjProveedor.IdCtaContFondoGarantia.ToString)) : DdlCtaContFondoGarantia.SelectedValue = ObjProveedor.IdCtaContFondoGarantia.ToString - If ObjProveedor.IdCtaContRetIVA > 0 Then DdlCtaContRetIVA.Items.Add(New ListItem(ObjProveedor.CtaContRetIVA, ObjProveedor.IdCtaContRetIVA.ToString)) : DdlCtaContRetIVA.SelectedValue = ObjProveedor.IdCtaContRetIVA.ToString - If ObjProveedor.IdCtaContRetISR > 0 Then DdlCtaContRetISR.Items.Add(New ListItem(ObjProveedor.CtaContRetISR, ObjProveedor.IdCtaContRetISR.ToString)) : DdlCtaContRetISR.SelectedValue = ObjProveedor.IdCtaContRetISR.ToString - If ObjProveedor.IdCtaContRetISRAcreditable > 0 Then DdlCtaContRetISRAcreditable.Items.Add(New ListItem(ObjProveedor.CtaContRetISRAcreditable, ObjProveedor.IdCtaContRetISRAcreditable.ToString)) : DdlCtaContRetISRAcreditable.SelectedValue = ObjProveedor.IdCtaContRetISRAcreditable.ToString - If ObjProveedor.IdCtaContRetIVAAcreditable > 0 Then DdlCtaContRetIVAAcreditable.Items.Add(New ListItem(ObjProveedor.CtaContRetIVAAcreditable, ObjProveedor.IdCtaContRetIVAAcreditable.ToString)) : DdlCtaContRetIVAAcreditable.SelectedValue = ObjProveedor.IdCtaContRetIVAAcreditable.ToString - - - End If - - 'CxP - TxtLimiteCredito.Text = ObjProveedor.LimiteCredito.ToString.FormatoNumero - TxtPlazoCobranza.Text = ObjProveedor.PlazoPago.ToString - LblLimiteCredito.Text = ObjProveedor.LimiteCredito.ToString.FormatoNumero - LblPlazoCobranza.Text = ObjProveedor.PlazoPago.ToString - - 'Sistema - ChkEstado.Checked = ObjProveedor.Estatus = "Activo" - LblFechaCaptura.Text = ObjProveedor.FechaIng.ToShortDateString - LblUsuarioCapturo.Text = ObjProveedor.Usuario - TxtObservaciones.Text = ObjProveedor.Observaciones - - CargaCombos() - - ChkAplicarEvaluacion.Checked = If(ObjProveedor.DtResultados.Rows(0)("AplicarEvaluacion").ToString = "True", True, False) - TxtFechaEva.Text = If(IsDate(ObjProveedor.DtResultados.Rows(0)("FechaEvaluacion").ToString()), ObjProveedor.DtResultados.Rows(0)("FechaEvaluacion").ToString().ToDate().ToString("dd/MM/yyyy"), "") - LblFechaUltimaEvaluacion.Text = If(IsDate(ObjProveedor.DtResultados.Rows(0)("FechaUltimaEvaluacion").ToString()), ObjProveedor.DtResultados.Rows(0)("FechaUltimaEvaluacion").ToString().ToDate().ToString("dd/MM/yyyy"), "") - DdlCicloEvaluacion.SelectedValueExist(ObjProveedor.DtResultados.Rows(0)("CicloEvaluacion").ToString()) - DdlUsuarioEvaluador.SelectedValueExist(ObjProveedor.DtResultados.Rows(0)("CveUsuarioEvaluador").ToString()) - - DdlCveClasificacionProveedor.SelectedValue = ObjProveedor.CveProveedorClasificacion.ToString() - DdlCveUsuarioResponsable.SelectedValue = ObjProveedor.CveUsuarioResponsable.ToString - DdlCveTipoProveedor.SelectedValue = ObjProveedor.CveTipoProveedor.ToString - - - - If TxtRazonSocial.Text.Trim = TxtNombreComercial.Text.Trim Then TxtRazonSocial.Attributes.Add("onKeyUp", "SetText(" & TxtRazonSocial.ClientID & ", " & TxtNombreComercial.ClientID & ")") - - If UsuarioActual.TienePermisoProceso(87) Then BtnGuardar.Visible = True 'Actualizar Proveedor - If UsuarioActual.TienePermisoProceso(86) Then BtnEliminar.Visible = True ' Eliminar Proveedor - If UsuarioActual.TienePermisoProceso(256) Then LnkParametros.Visible = True 'Actualizar Límite de Crédito - - Retorno = True - - enviaractivacion() - - - CargaEventoBitacora() - - Else - Alert("El Proveedor Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) - BtnGuardar.Enabled = False - ' LbAgregarSucursal.Enabled = False - - End If - End If - - CargaProveedorSucursales() - - CargaContactos(ObjProveedor) - - ObjProveedor.Dispose() - Return Retorno - End Function - Private Sub CargaUsuarioEvaluacionProveedor() - DdlUsuarioEvaluador.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) - DdlUsuarioEvaluador.DataBind() - End Sub - - Private Sub CargaContactos(ByRef ObjProveedor As ClsCompProveedores) - 'TRAE CONTACTOS GENERALES Y POR SUCURSAL - If ObjProveedor.GetProveedoresContactos(-1, CveProveedor, -1) Then - TempDTProveedoresContactos = ObjProveedor.DtResultados - TempDTProveedoresContactosOrigin = TempDTProveedoresContactos.Copy() - GvContactoProveedor.DataSource = TempDTProveedoresContactos - GvContactoProveedor.DataBind() - UpContactosProveedor.Update() - End If - 'TRAE CONTACTOS CON SUCURSAL - If ObjProveedor.GetProveedoresContactos(-1, CveProveedor, -1) Then - TempDTProveedoresContactosSucursal = ObjProveedor.DtResultados.FiltraParametros("CveProveedorSucursal > 0") - 'If CveProveedor = -1 Then - TempDTProveedoresContactosSucursal.Columns.Add("CveSucursalTemp", GetType(String)) 'Para controlar las sucursales no insertadas en BD - 'End If - TempDTProveedoresContactosSucursalOrigin = TempDTProveedoresContactosSucursal.Copy() - End If - End Sub - - Private Sub OrdenaDatos() - If (GVSucursales.Rows.Count > 0) Then - GVSucursales.UseAccessibleHeader = True - GVSucursales.HeaderRow.TableSection = TableRowSection.TableHeader - RegistraScript("OrdenarGV();") - End If - End Sub - - Private Sub CargaHistorial(CveProveedorSucursal As Integer, Optional SelectTop As Integer = 51) - Dim ObjProveedores As New ClsCompProveedores() - If ObjProveedores.GetHistorialCompras(CveProveedor, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), SelectTop, CveMonedaFiltro) Then - If ObjProveedores.DtResultados.Rows.Count > 0 Then - 'Carga Generales - LtlCantidad.Text = ObjProveedores.DtResultados.Rows(0)("CountTotal").ToString.FormatoNumero(0) - LtlTotalVendido.Text = ObjProveedores.DtResultados.Rows(0)("Total").ToString.FormatoNumero(2) - LtlMinima.Text = ObjProveedores.DtResultados.Rows(0)("MIN_Total").ToString.FormatoNumero(2) - LtlPromedio.Text = ObjProveedores.DtResultados.Rows(0)("AVG_Total").ToString.FormatoNumero(2) - LtlMaxima.Text = ObjProveedores.DtResultados.Rows(0)("MAX_Total").ToString.FormatoNumero(2) - 'Carga Grid - - GVHistorial.DataSource = ObjProveedores.DtResultados - Else - LtlCantidad.Text = "0.00" - LtlTotalVendido.Text = "0.00" - LtlMinima.Text = "0.00" - LtlPromedio.Text = "0.00" - LtlMaxima.Text = "0.00" - GVHistorial.DataSource = Nothing - End If - Else - GVHistorial.DataSource = Nothing - End If - ObjProveedores.Dispose() - GVHistorial.DataBind() - UpnHistorial.Update() - - If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then - CargaFiltroMonedas() - End If - - End Sub - - Private Sub CargaAnticipos(CveProveedorSucursal As Integer, Optional SelectTop As Integer = -1) - Dim ObjMovtos As New ClsMovimientos() - If ObjMovtos.GetAnticiposProveedor(CveProveedor, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), CveMonedaFiltro, -1) AndAlso ObjMovtos.DtResultados.Rows.Count > 0 Then - CountAnticipos = ObjMovtos.DtResultados.FiltraParametros(" Tipo = 'Act' AND TipoDocto <> '' AND (CveCompra > 0 OR CveIE > 0) ").Rows.Count - - - LblVencidoPesosAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 1 And DiasVencidos > 0")).FormatoNumero - LblTotalPesosAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 1 ")).FormatoNumero - LblPorVencerPesosAnt.Text = CType(LblTotalPesosAnt.Text.ToDouble - LblVencidoPesosAnt.Text.ToDouble, String).FormatoNumero - - LblVencidoDolaresAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 2 And DiasVencidos > 0")).FormatoNumero - LblTotalDolaresAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 2 ")).FormatoNumero - LblPorVencerDolaresAnt.Text = CType(LblTotalDolaresAnt.Text.ToDouble - LblVencidoDolaresAnt.Text.ToDouble, String).FormatoNumero - - LblTipoCambioAnt.Text = GlobalTipoCambio.ToString.FormatoNumero - LblTotalAnt.Text = (LblTotalPesosAnt.Text.ToDouble + (LblTotalDolaresAnt.Text.ToDouble * LblTipoCambioAnt.Text.ToDouble)).ToString.FormatoNumero - - - If SelectTop > 0 Then - If ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'").Rows.Count > 0 Then - GvA.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'").AsEnumerable.Take(SelectTop).CopyToDataTable - Else - GvA.DataSource = Nothing - End If - - If ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'").Rows.Count > 0 Then - GvAH.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'").AsEnumerable.Take(SelectTop).CopyToDataTable - Else - GvAH.DataSource = Nothing - End If - Else - GvA.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'") - GvAH.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'") - End If - Else - GvA.DataSource = Nothing - GvAH.DataSource = Nothing - End If - ObjMovtos.Dispose() - GvA.DataBind() - GvAH.DataBind() - UpAnticipos.Update() - - If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then - CargaFiltroMonedas() - End If - - End Sub - - Private Sub CargaBancos(CveProveedorSucursal As Integer, Optional SelectTop As Integer = 21) - Dim ObjMovtos As New ClsMovimientos() - 'CxC Activas - If ObjMovtos.GetProveedorBancos(CveProveedor, CveMoneda:=CveMonedaFiltro, CveProveedorSucursal:=If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), SelectTop:=SelectTop) Then - GvBancos.DataSource = ObjMovtos.DtResultados - End If - - ObjMovtos.Dispose() - GvBancos.DataBind() - UpBancos.Update() - - If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then - CargaFiltroMonedas() - End If - - End Sub - -#Region "V E R M Á S" - Protected Sub BtnVerMasCompras_Click(sender As Object, e As EventArgs) - If BtnVerMasCompras.Text = "Ver Más " Then - CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero, -1) - BtnVerMasCompras.Text = "Ver Menos" - Else - CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero, 21) - BtnVerMasCompras.Text = "Ver Más " - End If - End Sub - - Protected Sub BtnVerMasBancos_Click(sender As Object, e As EventArgs) - If BtnVerMasBancos.Text = "Ver Más " Then - CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero, -1) - BtnVerMasBancos.Text = "Ver Menos" - Else - CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero, 11) - BtnVerMasBancos.Text = "Ver Más " - End If - End Sub - - Protected Sub BtnVerMasAnticipos_Click(sender As Object, e As EventArgs) - If BtnVerMasAnticipos.Text = "Ver Más " Then - CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero, -1) - BtnVerMasAnticipos.Text = "Ver Menos" - Else - CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero, 21) - BtnVerMasAnticipos.Text = "Ver Más " - End If - End Sub - Protected Sub BtnVerMasComprasPagadas_Click(sender As Object, e As EventArgs) - If BtnVerMasComprasPagadas.Text = "Ver Más " Then - CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero, 1) - BtnVerMasComprasPagadas.Text = "Ver Menos" - Else - CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero, -1) - BtnVerMasComprasPagadas.Text = "Ver Más " - End If - End Sub -#End Region - - Private Sub CargaUsuariosPortal() - Dim ObjUsrs As New ClsSisUsuarios() - GvUsuariosPortalSis.Visible = False - - If ObjUsrs.GetUsuariosPortal(-1, -1, CveProveedor) Then - Dim dtUsr As DataTable = ObjUsrs.DtResultados - 'GvUsuariosPortalSis.DataSource = dtUsr.FiltraParametros("Estatus = 1") - - 'busco la clave del admin, si es que existe - Dim dr As DataRow = dtUsr.FiltroPrimero("Nombre = 'Admin'") - - If dr IsNot Nothing Then - HdnCveUsuarioPortalAdmin.Value = dr("CveUsuario").ToString - If Convert.ToBoolean(dr("Estatus")) Then - LblUsuarioActivo.Text = "Si" - 'divUsuariosPortal.Visible = True - HdnCveUsuarioPortalActivado.Value = "1" - trDesactivarUsuario.Visible = True - End If - End If - - If HdnCveUsuarioPortalActivado.Value.ToEntero > 0 Then - trEnviarActivacion.Visible = False - End If - Else - ' GvUsuariosPortalSis.DataSource = Nothing - End If - ObjUsrs.Dispose() - 'GvUsuariosPortalSis.DataBind() - UPUsuarios.Update() - - End Sub - - Protected Sub GVHistorial_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVHistorial.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.BackColor = Drawing.Color.LightGray - End If - - 'Dim Liga As String = String.Format("", e.Row.DBCampo("CveCompra")) - If e.Row.DBCampo("CveCompra").ToEntero > 0 Then e.Row.FCLabel("LtlFactura").Text = String.Format("{1}", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("SerieFolio") & "") - - e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right - - 'e.Row.Cells(0).Width = 50 - 'e.Row.Cells(1).Width = 150 - 'e.Row.Cells(2).Width = 250 - 'e.Row.Cells(3).Width = 70 - 'e.Row.Cells(4).Width = 100 - 'e.Row.Cells(5).Width = 80 - 'e.Row.Cells(6).Width = 100 - 'e.Row.Cells(7).Width = 100 - 'e.Row.Cells(8).Width = 50 - - - End If - End Sub - - Protected Sub GvAH_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvA.RowDataBound, GvAH.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - If e.Row.RowIndex = 0 Then - 'e.Row.BackColor = Drawing.Color.LightGray - - e.Row.Cells(0).Width = Unit.Pixel(120) - e.Row.Cells(1).Width = Unit.Pixel(100) - e.Row.Cells(2).Width = Unit.Pixel(100) - e.Row.Cells(3).Width = Unit.Pixel(100) - End If - - If e.Row.DBCampo("TipoDocto") = "Egsc" AndAlso e.Row.DBCampo("SerieFolio") = "" Then - e.Row.CssClass = "Totales TextCenter" - e.Row.Cells(0).Text = "Egreso Por Comprobar" - End If - - If e.Row.DBCampo("TipoDocto") = "Ant" AndAlso e.Row.DBCampo("SerieFolio") = "" Then - e.Row.CssClass = "Totales TextCenter" - e.Row.Cells(0).Text = "Anticipos" - End If - - If e.Row.DBCampo("TipoDocto") = "NC" AndAlso e.Row.DBCampo("SerieFolio") = "" Then - e.Row.CssClass = "Totales TextCenter" - e.Row.Cells(0).Text = "Notas de crédito" - End If - - If e.Row.DBCampo("TipoDocto") = "DEV" AndAlso e.Row.DBCampo("SerieFolio") = "" Then - e.Row.CssClass = "Totales TextCenter" - e.Row.Cells(0).Text = "Devolución" - End If - - If e.Row.DBCampo("CveProveedor") = "" Then - e.Row.BackColor = Drawing.Color.LightGray - End If - - If UsuarioActual.TienePermisoProceso(273) Then - If CType(sender, GridView).ID = "GvA" And e.Row.DBCampo("CveCompra").ToEntero > 0 And e.Row.DBCampo("TipoDocto") = "NC" Then - Dim Parametros = Encripta($"CveCompra={e.Row.DBCampo("CveCompra").ToEntero}&SerieFolio={e.Row.DBCampo("SerieFolio")}&CveMoneda={e.Row.DBCampo("CveMoneda")}&CveProveedor={CveProveedor}&Saldo={e.Row.DBCampo("Saldo")}&Original={e.Row.DBCampo("Original")}&CvePrePoliza={e.Row.DBCampo("CvePrePoliza")}&FechaCompra={e.Row.DBCampo("Fecha")}") - e.Row.FCHyperLink("HLDevolverDinero").Visible = True - e.Row.FCHyperLink("HLDevolverDinero").NavigateUrl = $"/Bancos/IE.aspx?Opcion=DevDinC&P={Parametros}" - End If - End If - - - End If - End Sub - - Protected Sub GvBancos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvBancos.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - Dim HLSendMail As HtmlAnchor = DirectCast(e.Row.FindControl("HLSendMail"), HtmlAnchor) - - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(120) - e.Row.Cells(1).Width = Unit.Pixel(70) - e.Row.Cells(2).Width = Unit.Pixel(80) - e.Row.Cells(3).Width = Unit.Pixel(80) - e.Row.Cells(4).Width = Unit.Pixel(90) - e.Row.Cells(5).Width = Unit.Pixel(90) - e.Row.Cells(6).Width = Unit.Pixel(105) - e.Row.Cells(7).Width = Unit.Pixel(90) - - End If - - If e.Row.DBCampo("CveCompra") = "" Then - If e.Row.DBCampo("CveIE") <> "" Then - Dim ObjCompra As New ClsCompras - - e.Row.Cells(0).Text = String.Format("{0} - {1} - {2}", e.Row.DBCampo("Banco"), e.Row.DBCampo("NumCuenta"), e.Row.DBCampo("Moneda")) - e.Row.FCLiteral("LtlFechaVenci").Text = e.Row.DBCampo("FechaDocumento").ToDate.ToShortDateString - e.Row.FCHyperLink("HplCheque").Visible = True - - HLSendMail.Visible = True - HLSendMail.HRef = String.Format("javascript:$get('HdnCveIE').value='{0}';$get('HdnSerieFolio').value='{1}';$get('HdnFolioPago').value='{2}';$get('TxtParaMail').value='{3}';$('#ModalDivMail').modal();", e.Row.DBCampo("CveIE"), e.Row.DBCampo("SerieFolio"), e.Row.DBCampo("FolioPago"), TxtCorreoCobranza.Text) - - If ObjCompra.GetCompraComplementoPago(-1, UsuarioActual.CveEmpresa, e.Row.DBCampo("CveIE").ToString.ToEntero) Then - If ObjCompra.DtResultados.Rows.Count > 0 Then - e.Row.FCHyperLink("HplXML").Visible = True : e.Row.FCHyperLink("HplXML").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?RFC={0}&File={1}", ObjCompra.DtResultados(0)("RFCDe"), ObjCompra.DtResultados(0)("XML")) - e.Row.FCHyperLink("HplPDF").Visible = True : e.Row.FCHyperLink("HplPDF").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?RFC={0}&File={1}", ObjCompra.DtResultados(0)("RFCDe"), ObjCompra.DtResultados(0)("PDF")) - - HLSendMail.Visible = False - End If - End If - - ObjCompra.Dispose() - End If - e.Row.BackColor = Drawing.Color.LightGray - End If - - End If - - End Sub - - Protected Sub BtnCargarCuentas_Click(sender As Object, e As EventArgs) Handles BtnCargarCuentas.Click - If DtCuentasContables Is Nothing Then - - End If - - Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) - - Select Case HdnCuenta.Value - Case "1" - CargaCuentasDDL(DdlCtaContProveedores, 201) - Case "2" - CargaCuentasDDL(DdlCtaContAnticipos, 204) - Case "3" - CargaCuentasDDL(DdlCtaContFondoGarantia, 231) - Case "4" - CargaCuentasDDL(DdlCtaContRetIVA, 206) - Case "5" - CargaCuentasDDL(DdlCtaContRetISR, 206) - Case "6" - CargaCuentasDDL(DdlCtaContAcreedores, 202) - Case "7" - CargaCuentasDDL(DdlCtaContComplementaria, 201) - Case "8" - CargaCuentasDDL(DdlCtaContExtranjera, 201) - Case "9" - CargaCuentasDDL(DdlCtaContAcreedoresExtranjera, 202) - Case "10" - CargaCuentasDDL(DdlCtaContAcreedoresComplementaria, 202) - Case "11" - CargaCuentasDDL(DdlCtaContAnticiposExtranjera, 204) - Case "12" - CargaCuentasDDL(DdlCtaContAnticiposComplementaria, 204) - Case "13" - CargaCuentasDDL(DdlCtaContDeudor, 205) - Case "14" - CargaCuentasDDL(DdlCtaContDeudorExtranjera, 205) - Case "15" - CargaCuentasDDL(DdlCtaContDeudorComplementaria, 205) - Case "16" - CargaCuentasDDL(DdlCtaContDocsXPagar, 203) - Case "17" - CargaCuentasDDL(DdlCtaContDocsXPagarExtranjera, 203) - Case "18" - CargaCuentasDDL(DdlCtaContDocsXPagarComplementaria, 203) - Case "19" - CargaCuentasDDL(DdlCtaContRetISRAcreditable, 206) - Case "20" - CargaCuentasDDL(DdlCtaContRetIVAAcreditable, 206) - End Select - - End Sub - - Private Sub CargaCuentasDDL(Ddl As DropDownList, CveFuncionalidad As Integer) - - 'CARGA LO YA SELECCIONADO - Dim CveSeleccionado = -1 - Dim Seleccionado = "" - Seleccionado = Ddl.SelectedItem.Text - CveSeleccionado = Ddl.SelectedValue.ToEntero - - 'VA POR EL CATALOGO DE CUENTAS - If Ddl.Attributes("onclick") <> "" Then - CargaCuentasContables(If(UsuarioActual.Empresa.Funcionalidad(CveFuncionalidad).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(CveFuncionalidad).ToEntero, -1)) - End If - - 'RECARGA EL DDL - Ddl.Items.Clear() - Ddl.DataSource = DtCuentasContables - Ddl.Items.Insert(0, New ListItem("Seleccione", "0")) - Ddl.DataBind() - - 'SELECCIONA EL YA SELECCIONADO - SI NO EXISTE EN EL DATASOURCE LO INSERTA - If DtCuentasContables.FiltraParametros($"Id = {CveSeleccionado}").Rows.Count > 0 Then - Ddl.SelectedValue = CveSeleccionado.ToString - ElseIf CveSeleccionado > 0 Then - Ddl.Items.Insert(1, New ListItem(Seleccionado, CveSeleccionado.ToString)) - Ddl.SelectedValue = CveSeleccionado.ToString - End If - - 'LIMPIA EVENTOS Y PONE CLASE - Ddl.AutoPostBack = False - Ddl.Attributes.Remove("onclick") - Ddl.CssClass &= " select2me" - - End Sub - -#Region "LL E N A R - C O M B O S" - Private Sub CargaResponsable() - DdlCveUsuarioResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlCveUsuarioResponsable.DataBind() - End Sub - Private Sub CargaClasificacionProveedor() - DdlCveClasificacionProveedor.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) - DdlCveClasificacionProveedor.DataBind() - DdlCveClasificacionProveedor.Items.Insert(0, New ListItem("Sin Clasificación", "0")) - End Sub - Private Sub CargaDIOTPais() - DdlDIOTPais.DataSource = GlobalDTPais() - DdlDIOTPais.DataBind() - DdlDIOTPais.Items.Insert(0, New ListItem("-", "0")) - End Sub -#End Region - -#Region "P R O V E E D O R" - Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click - Dim ObjProveedores As New ClsCompProveedores() - If ObjProveedores.RemoveProveedor(CveProveedor) Then - Alert("El Proveedor se Eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Compras/CatProveedores.aspx"";") - End If - - ObjProveedores.Dispose() - End Sub - Protected Sub enviaractivacion() - If TxtCorreoCobranza.Text <> "" Then - LbEnviarActivacionPortal.Enabled = True - Else - LbEnviarActivacionPortal.Enabled = False - LbEnviarActivacionPortal.ToolTip = "Debe de agregar una dirección de Email en la pestaña Información del Proveedor, campo 'Cobranza/Portal'." - End If - End Sub - - Private Function AsignaCuentasAutomaticas(ObjProveedor As ClsCompProveedores, CveProveedor As Integer) As Boolean - Dim IdCtaContProveedores As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(321).ToEntero, UsuarioActual.Empresa.Funcionalidad(322).ToEntero) - Dim IdCtaContAcreedor As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(323).ToEntero, UsuarioActual.Empresa.Funcionalidad(324).ToEntero) - Dim IdCtaContComplementaria As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(325).ToEntero, UsuarioActual.Empresa.Funcionalidad(326).ToEntero) - Dim IdCtaContAnticipos As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(327).ToEntero, UsuarioActual.Empresa.Funcionalidad(328).ToEntero) - Dim IdCtaContExtranjera As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(329).ToEntero, UsuarioActual.Empresa.Funcionalidad(330).ToEntero) - - If Not ObjProveedor.VincularCuentasContables(IdCtaContProveedores, IdCtaContAcreedor, IdCtaContComplementaria, IdCtaContAnticipos, IdCtaContExtranjera, CveProveedor) Then - Return False - End If - Return True - End Function - - Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click - enviaractivacion() - Dim tIdContaProveedor As Integer - Dim CuentaAbono As Integer - - Dim ErrorBancos = False - Dim ErrorConta As Boolean = False - Dim ErrorContactos As Boolean = False - Dim ErrorSucursales As Boolean = False - Dim ErrorCuentasContables As Boolean = False - - - Dim codigo As String = "-1" - Dim MsgCuentaContable As String = "" - Dim IdCuentaContable As Integer = -1 - - Dim IdProveedor As Integer = -1 - - Dim errorContPaq As Boolean = False - - Dim AplicarEvaluacion As Boolean = ChkAplicarEvaluacion.Checked - Dim FechaEvaluacion As String = If(IsDate(TxtFechaEva.Text.Trim()), TxtFechaEva.Text, "-1") - Dim CicloEvaluacion As Integer = If(AplicarEvaluacion, DdlCicloEvaluacion.SelectedValue.ToEntero(), -1) - - 'Dim IdContPaqi As Integer - 'Dim CodigoPersona As Integer - - 'If UsuarioActual.Empresa.Funcionalidad(522).ToString = "1" Then - ' Dim ObjContPaqi As New ClsContPAQi(UsuarioActual.Empresa) - - ' If UsuarioActual.Empresa.UsaContabilidad Then - - ' If ObjContPaqi.GetPersona(TxtRFC.Text) Then - - ' If ObjContPaqi.DtResultados.Rows.Count > 0 Then - - ' IdContPaqi = ObjContPaqi.DtResultados.Rows(0)("Id").ToString.ToEntero - ' CodigoPersona = ObjContPaqi.DtResultados.Rows(0)("Codigo").ToString.ToEntero - - ' Dim Cont_EsProveedor As Integer = If(Boolean.Parse(ObjContPaqi.DtResultados.Rows(0)("EsProveedor").ToString), 1, 0) - ' Dim Cont_Nombre As String = ObjContPaqi.DtResultados(0)("Nombre").ToString - ' Dim Cont_RFC As String = ObjContPaqi.DtResultados(0)("RFC").ToString - - ' If ObjContPaqi.UpdatePersona(IdContPaqi, Cont_Nombre, Cont_RFC, 1, Cont_EsProveedor) Then - ' errorContPaq = False - ' Else - ' errorContPaq = True - ' End If - - ' Else - ' If ObjContPaqi.AddPersona(TxtNombreComercial.Text.Trim, TxtRFC.Text.Trim, 0, 1) Then - ' IdContPaqi = ObjContPaqi.DtResultados.Rows(0)("IdContPaqiPersona").ToString.ToEntero - ' CodigoPersona = ObjContPaqi.DtResultados.Rows(0)("Codigo").ToString.ToEntero - ' errorContPaq = False - ' Else - ' errorContPaq = True - ' End If - ' End If - ' End If - - ' End If - - ' If Not errorContPaq Then - ' ObjContPaqi.Commit() - ' ObjContPaqi.Dispose() - ' Else - ' ObjContPaqi.RollBack() - ' ObjContPaqi.Dispose() - ' Exit Sub - ' End If - - 'End If - - - If CveProveedor = -1 Then - - Dim ObjContaAC As ClsContPAQi = Nothing - - If (UsuarioActual.Empresa.Funcionalidad(200).ToEntero > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(201).ToEntero > 0) Then 'FUNCIONALIDAD 112=AGREGAR CTA CONTABLE PROVEEDOR - - ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa) - ObjContaAC.IniciaTransacSQL() - - IdCuentaContable = ObjContaAC.AddSiguienteCuentaHijo(UsuarioActual.Empresa.Funcionalidad(201).ToEntero, TxtRazonSocial.Text.Trim, "D", 2) - If IdCuentaContable > 0 Then - - ObjContaAC.GetCuentas(IdCuentaContable, "-1", -1) - Dim dt = ObjContaAC.DtResultados - Dim CtaCodigo As String - - If dt.Rows.Count = 1 Then - Dim row As DataRow = dt.Rows(0) - CtaCodigo = CStr(row("CtaCodigo")) - DdlCtaContProveedores.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : DdlCtaContProveedores.SelectedValueExist(IdCuentaContable.ToString) - End If - - 'If UsuarioActual.Empresa.Funcionalidad(522).ToString = "1" Then - ' If UsuarioActual.Empresa.UsaContabilidad Then - - ' Dim ObjContPaqi As New ClsContPAQi(UsuarioActual.Empresa) - ' If Not errorContPaq Then - ' If ObjContPaqi.GetProveedor(TxtRFC.Text.Trim) Then - ' If ObjContPaqi.DtResultados.Rows.Count > 0 Then - ' IdProveedor = ObjContPaqi.DtResultados.Rows(0)("Id").ToString.ToEntero - ' errorContPaq = False - ' Else - ' IdProveedor = ObjContPaqi.AddProveedor(IdCuentaContable, TxtRFC.Text.Trim, TxtNombreComercial.Text.Trim, "", CodigoPersona) - ' If IdProveedor > 0 Then - ' errorContPaq = False - ' Else - ' errorContPaq = True - ' End If - ' End If - ' Else - ' errorContPaq = True - ' End If - - ' End If - - - ' If Not errorContPaq Then - ' ObjContPaqi.Commit() - ' ObjContPaqi.Dispose() - ' Else - ' ObjContPaqi.RollBack() - ' ObjContPaqi.Dispose() - ' Exit Sub - ' End If - ' End If - 'Else - - ' IdProveedor = ObjContaAC.AddProveedor(IdCuentaContable, TxtRFC.Text.Trim, TxtRazonSocial.Text.Trim, "") - 'End If - - IdProveedor = ObjContaAC.AddProveedor(IdCuentaContable, TxtRFC.Text.Trim, TxtRazonSocial.Text.Trim, "") - - If IdProveedor > 0 Then - - Else - ObjContaAC.RollBack() - Alert("Ocurrio un error al guardar en el padron de proveedores") - ErrorConta = True - End If - Else - ObjContaAC.RollBack() - ErrorConta = True - Alert("Ocurrio un error al guardar la cuenta contable") - End If - - - End If - - Dim ObjProveedores As New ClsCompProveedores() - Dim ObjCuentasDeposito As New ClsGenerales(ObjProveedores.IniciaTransacSQL()) - - If ErrorConta = False AndAlso ObjProveedores.AddProveedor(TxtCodigo.Text.Trim, TxtRazonSocial.Text.Trim, TxtNombreComercial.Text.Trim, TxtNombreCorto.Text.Trim, TxtRFC.Text.Trim, TxtDireccion.Text.Trim, TxtTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), - TxtContactoNombre.Text.Trim, TxtContactoEmail.Text.Trim, TxtContactoTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), TxtLimiteCredito.Text.Trim.ToDouble, TxtPlazoCobranza.Text.Trim.ToEntero, - TxtObservaciones.Text.Trim, TxtIVA.Text.Trim.ToDouble, TxtRetIVA.Text.Trim.ToDouble, TxtRetISR.Text.Trim.ToDouble, - DdlCtaContProveedores.SelectedValue.ToEntero, DdlCtaContProveedores.SelectedItem.Text, DdlCtaContExtranjera.SelectedValue.ToEntero, DdlCtaContExtranjera.SelectedItem.Text, DdlCtaContComplementaria.SelectedValue.ToEntero, DdlCtaContComplementaria.SelectedItem.Text, - DdlCtaContAcreedores.SelectedValue.ToEntero, DdlCtaContAcreedores.SelectedItem.Text, DdlCtaContAcreedoresExtranjera.SelectedValue.ToEntero, DdlCtaContAcreedoresExtranjera.SelectedItem.Text, DdlCtaContAcreedoresComplementaria.SelectedValue.ToEntero, DdlCtaContAcreedoresComplementaria.SelectedItem.Text, - DdlCtaContAnticipos.SelectedValue.ToEntero, DdlCtaContAnticipos.SelectedItem.Text, DdlCtaContAnticiposExtranjera.SelectedValue.ToEntero, DdlCtaContAnticiposExtranjera.SelectedItem.Text, DdlCtaContAnticiposComplementaria.SelectedValue.ToEntero, DdlCtaContAnticiposComplementaria.SelectedItem.Text, - DdlCtaContDeudor.SelectedValue.ToEntero, DdlCtaContDeudor.SelectedItem.Text, DdlCtaContDeudorExtranjera.SelectedValue.ToEntero, DdlCtaContDeudorExtranjera.SelectedItem.Text, DdlCtaContDeudorComplementaria.SelectedValue.ToEntero, DdlCtaContDeudorComplementaria.SelectedItem.Text, - DdlCtaContDocsXPagar.SelectedValue.ToEntero, DdlCtaContDocsXPagar.SelectedItem.Text, DdlCtaContDocsXPagarExtranjera.SelectedValue.ToEntero, DdlCtaContDocsXPagarExtranjera.SelectedItem.Text, DdlCtaContDocsXPagarComplementaria.SelectedValue.ToEntero, DdlCtaContDocsXPagarComplementaria.SelectedItem.Text, - DdlCtaContFondoGarantia.SelectedValue.ToEntero, DdlCtaContFondoGarantia.SelectedItem.Text, DdlCtaContRetIVA.SelectedValue.ToEntero, DdlCtaContRetIVA.SelectedItem.Text, DdlCtaContRetISR.SelectedValue.ToEntero, DdlCtaContRetISR.SelectedItem.Text, DdlCtaContRetISRAcreditable.SelectedValue.ToEntero, DdlCtaContRetISRAcreditable.SelectedItem.Text, - DdlCtaContRetIVAAcreditable.SelectedValue.ToEntero, DdlCtaContRetIVAAcreditable.SelectedItem.Text, DdlCveClasificacionProveedor.SelectedValue.ToEntero, DdlCveUsuarioResponsable.SelectedValue.ToEntero, TxtNotificarA.Text.Trim, TxtCorreoCobranza.Text.Trim, ChkFolioDuplicado.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, - DdlCveTipoProveedor.SelectedValue.ToEntero, DdlMonedaPrefente.SelectedValue.ToEntero, UsaLimiteCredito:=ChkUsaLimiteCredito.Checked, DIOTCveTipoTercero:=DDlDIOTTipoTercero.SelectedValue.ToEntero, DIOTCveTipoOperacion:=DdlDIOTTipoOperacion.SelectedValue.ToEntero, DIOTNumeroIDFiscal:=TxtDIOTNumIDFiscal.Text, - AplicarEvaluacion:=AplicarEvaluacion, FechaEvaluacion:=FechaEvaluacion, CicloEvaluacion:=CicloEvaluacion, DIOTCvePais:=DdlDIOTPais.SelectedValue.ToEntero, CveUsuarioEvaluador:=DdlUsuarioEvaluador.SelectedValue.ToEntero(), CP:=TxtCP.Text.ToEntero, DIOTNacionalidad:=TxtDIOTNacionalidad.Text) Then - - Dim NuevoCveProveedor = ObjProveedores.CveProveedor - - ''Agregar Cuentas Bancarias - If TempDTCuentasBancos.Rows.Count > 0 Then - For Each row As DataRow In TempDTCuentasBancos.Rows - If Not ObjCuentasDeposito.AddCuentasDepositos(row("BancoNombre").ToString, row("Plaza").ToString, row("Sucursal").ToString, row("Cuenta").ToString, row("CLABE").ToString, row("CIE").ToString, row("SWIFT").ToString, row("Referencia").ToString, row("RefCrediProveedor").ToString, UsuarioActual.CveUsuario, row("CveMoneda").ToString.ToEntero, CveProveedor:=NuevoCveProveedor, Correo:=row("Correo").ToString) Then - ErrorBancos = True - End If - Next - End If - - If Not AsignaCuentasAutomaticas(ObjProveedores, NuevoCveProveedor) Then - ErrorCuentasContables = True - End If - - ''Agrega Sucursales - If TempDTSucursales.Rows.Count > 0 Then - For Each row As DataRow In TempDTSucursales.Rows - If Not ObjProveedores.AddSucursal(NuevoCveProveedor, row("ProveedorSucursal").ToString, row("Direccion").ToString, row("Telefono").ToString, row("Serie").ToString, row("Contacto").ToString, row("Correo").ToString, row("CveUsuario").ToString().ToEntero(), row("LimiteCredito").ToString.ToDouble, row("PlazoCobranza").ToString.ToEntero) Then - ErrorSucursales = True - Else - Dim CveTempSucursal As Integer = row("CveSucursalTemp").ToString().ToEntero() - - ''Obtengo Cve de la sucursal - Dim CveNuevaSucursal As Integer = ObjProveedores.CveProveedorSucursal - - If TempDTProveedoresContactosSucursal.Rows.Count > 0 Then - - ''Agrego CONTACTOS por SUCURSAL - For Each rowContacto As DataRow In TempDTProveedoresContactosSucursal.Rows - - ''Si la CveTemp de la sucursal es igual a la CveTemp del contacto, lo agrega con CveNuevaSucursal - If CveTempSucursal = rowContacto("CveSucursalTemp").ToString().ToEntero() Then - If Not ObjProveedores.AddProveedorContacto(NuevoCveProveedor, CveNuevaSucursal, rowContacto("Nombre").ToString, rowContacto("Puesto").ToString, rowContacto("Telefono").ToString, rowContacto("Extension").ToString, rowContacto("Celular").ToString, rowContacto("Correo").ToString) Then - ErrorContactos = True - End If - End If - Next - End If - - If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados - End If - Next - End If - - ''Agregar Contactos Proveedor - If TempDTProveedoresContactos.Rows.Count > 0 Then - For Each row As DataRow In TempDTProveedoresContactos.Rows - If Not ObjProveedores.AddProveedorContacto(NuevoCveProveedor, row("CveProveedorSucursal").ToString.ToEntero, row("Nombre").ToString, row("Puesto").ToString, row("Telefono").ToString, row("Extension").ToString, row("Celular").ToString, row("Correo").ToString) Then - ErrorContactos = True - End If - Next - End If - - If ErrorBancos Or ErrorContactos Or ErrorSucursales Or ErrorCuentasContables Then ''se deben validar las 3 juntas???????? - ObjProveedores.RollBack() - If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() - If ErrorBancos Then - Alert("Ocurrió un error al registrar las Cuentas Bancarias", TipoMensaje.MsgError) - Else - If ErrorContactos Then - Alert("Ocurrió un error al registrar los Contactos", TipoMensaje.MsgError) - End If - If ErrorSucursales Then - Alert("Ocurrió un error al registrar las Sucursales", TipoMensaje.MsgError) - End If - If ErrorCuentasContables Then - Alert("Ocurrió un error al asignar las cuentas contables", TipoMensaje.MsgError) - End If - End If - Else - ObjProveedores.Commit() - If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() - - 'ACTUALIZAR GLOBAL - If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then - GlobalDTCompProveedores(-1) = ObjProveedores.DtResultados - Else - ErrorBancos = True - End If - Alert("El Proveedor se guardó correctamente. " & "
    " & MsgCuentaContable, TipoMensaje.MsgInformacion, If(Request("CveFactura") Is Nothing, "document.location.href=""/Compras/CatProveedores.aspx""", "window.opener.location.href = window.opener.location.href; window.close();")) - RecargaGlobalCuentasBancarias() - End If - End If - - ObjProveedores.Dispose() - ObjCuentasDeposito.Dispose() - If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose() - Else - 'If UsuarioActual.Empresa.Funcionalidad(522).ToString = "1" Then - - ' If UsuarioActual.Empresa.UsaContabilidad Then - ' Dim ObjContPaqi As New ClsContPAQi(UsuarioActual.Empresa) - ' If Not errorContPaq Then - ' If ObjContPaqi.GetProveedor(TxtRFC.Text.Trim) Then - ' If ObjContPaqi.DtResultados.Rows.Count > 0 Then - ' IdProveedor = ObjContPaqi.DtResultados.Rows(0)("Id").ToString.ToEntero - ' errorContPaq = False - ' Else - ' IdProveedor = ObjContPaqi.AddProveedor(DdlCtaContProveedores.SelectedValue.ToEntero, TxtRFC.Text.Trim, TxtNombreComercial.Text.Trim, "", CodigoPersona) - ' If IdProveedor > 0 Then - ' errorContPaq = False - ' Else - ' errorContPaq = True - ' End If - ' End If - ' Else - ' errorContPaq = True - ' End If - ' End If - - - ' If Not errorContPaq Then - ' ObjContPaqi.Commit() - ' ObjContPaqi.Dispose() - ' Else - ' ObjContPaqi.RollBack() - ' ObjContPaqi.Dispose() - ' Alert("Se Presento un Error al Guardar el Proveedor en ContPAQi.", TipoMensaje.MsgError) - ' Exit Sub - ' End If - ' End If - - 'End If - Dim CreoCuenta As Boolean = False - If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad) Then - Dim ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa) - Dim drCuenta As DataRow = ObjContaAC.DtResultados.FiltroPrimero("") - If drCuenta IsNot Nothing Then - CuentaAbono = drCuenta("Id").ToString.ToEntero - tIdContaProveedor = ObjContaAC.AddCuenta(TxtCodigo.Text.Trim, TxtRazonSocial.Text.Trim, "D", 2, 0, 1, 0, "", 1, CuentaAbono) - CreoCuenta = True - End If - ObjContaAC.Dispose() - End If - - Dim ObjProveedores As New ClsCompProveedores() - - ObjProveedores.IniciaTransacSQL() - - If ObjProveedores.UpdateProveedor(TxtCodigo.Text.Trim, TxtRazonSocial.Text.Trim, TxtNombreComercial.Text.Trim, TxtNombreCorto.Text.Trim, TxtRFC.Text.Trim, TxtDireccion.Text.Trim, TxtTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), - TxtContactoNombre.Text.Trim, TxtContactoEmail.Text.Trim, TxtContactoTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), TxtLimiteCredito.Text.Trim.ToDouble, TxtPlazoCobranza.Text.Trim.ToEntero, - TxtObservaciones.Text.Trim, TxtIVA.Text.Trim.ToDouble, TxtRetIVA.Text.Trim.ToDouble, TxtRetISR.Text.Trim.ToDouble, - DdlCtaContProveedores.SelectedValue.ToEntero, DdlCtaContProveedores.SelectedItem.Text, DdlCtaContExtranjera.SelectedValue.ToEntero, DdlCtaContExtranjera.SelectedItem.Text, DdlCtaContComplementaria.SelectedValue.ToEntero, DdlCtaContComplementaria.SelectedItem.Text, - DdlCtaContAcreedores.SelectedValue.ToEntero, DdlCtaContAcreedores.SelectedItem.Text, DdlCtaContAcreedoresExtranjera.SelectedValue.ToEntero, DdlCtaContAcreedoresExtranjera.SelectedItem.Text, DdlCtaContAcreedoresComplementaria.SelectedValue.ToEntero, DdlCtaContAcreedoresComplementaria.SelectedItem.Text, - DdlCtaContAnticipos.SelectedValue.ToEntero, DdlCtaContAnticipos.SelectedItem.Text, DdlCtaContAnticiposExtranjera.SelectedValue.ToEntero, DdlCtaContAnticiposExtranjera.SelectedItem.Text, DdlCtaContAnticiposComplementaria.SelectedValue.ToEntero, DdlCtaContAnticiposComplementaria.SelectedItem.Text, - DdlCtaContDeudor.SelectedValue.ToEntero, DdlCtaContDeudor.SelectedItem.Text, DdlCtaContDeudorExtranjera.SelectedValue.ToEntero, DdlCtaContDeudorExtranjera.SelectedItem.Text, DdlCtaContDeudorComplementaria.SelectedValue.ToEntero, DdlCtaContDeudorComplementaria.SelectedItem.Text, - DdlCtaContDocsXPagar.SelectedValue.ToEntero, DdlCtaContDocsXPagar.SelectedItem.Text, DdlCtaContDocsXPagarExtranjera.SelectedValue.ToEntero, DdlCtaContDocsXPagarExtranjera.SelectedItem.Text, DdlCtaContDocsXPagarComplementaria.SelectedValue.ToEntero, DdlCtaContDocsXPagarComplementaria.SelectedItem.Text, - DdlCtaContFondoGarantia.SelectedValue.ToEntero, DdlCtaContFondoGarantia.SelectedItem.Text, DdlCtaContRetIVA.SelectedValue.ToEntero, DdlCtaContRetIVA.SelectedItem.Text, DdlCtaContRetISR.SelectedValue.ToEntero, DdlCtaContRetISR.SelectedItem.Text, DdlCtaContRetISRAcreditable.SelectedValue.ToEntero, DdlCtaContRetISRAcreditable.SelectedItem.Text, - DdlCtaContRetIVAAcreditable.SelectedValue.ToEntero, DdlCtaContRetIVAAcreditable.SelectedItem.Text, DdlCveClasificacionProveedor.SelectedValue.ToEntero, DdlCveUsuarioResponsable.SelectedValue.ToEntero, ChkEstado.Checked, TxtNotificarA.Text.Trim, TxtCorreoCobranza.Text.Trim, ChkFolioDuplicado.Checked, CveProveedor, - DdlCveTipoProveedor.SelectedValue.ToEntero, DdlMonedaPrefente.SelectedValue.ToEntero, UsaLimiteCredito:=ChkUsaLimiteCredito.Checked, DIOTCveTipoTercero:=DDlDIOTTipoTercero.SelectedValue.ToEntero, DIOTCveTipoOperacion:=DdlDIOTTipoOperacion.SelectedValue.ToEntero, DIOTNumeroIDFiscal:=TxtDIOTNumIDFiscal.Text, CveUsuarioModifico:=UsuarioActual.CveUsuario, - DIOTCvePais:=DdlDIOTPais.SelectedValue.ToEntero, AplicarEvaluacion:=ChkAplicarEvaluacion.Checked, FechaEvaluacion:=FechaEvaluacion, CicloEvaluacion:=CicloEvaluacion, CveUsuarioEvaluador:=DdlUsuarioEvaluador.SelectedValue.ToEntero(), CP:=TxtCP.Text.ToEntero, DIOTNacionalidad:=TxtDIOTNacionalidad.Text) Then - 'CargaDatos() - - - If tIdContaProveedor > 0 AndAlso CreoCuenta Then ObjProveedores.UpdateProveedorIdCuentaAC(CveProveedor, tIdContaProveedor) - - If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then - GlobalDTCompProveedores(-1) = ObjProveedores.DtResultados - End If - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) - - 'HABILITA ENVIAR ACTIVACION AL PORTAL PROVEEDOR SI SE AGREGO CORREO - If TxtCorreoCobranza.Text <> "" Then - LbEnviarActivacionPortal.Enabled = True - LbEnviarActivacionPortal.ToolTip = "" - End If - - '''''' - 'ACTUALIZA SUCURSALES - '''''' - 'For Each row As DataRow In TempDTSucursales.Rows - ' ' SUCURSAL NUEVA: Si tiene Cve = -1 es nuevo y agrega - ' If row("CveProveedorSucursal").ToString = "-1" Then - ' If Not ObjProveedores.AddSucursal(CveProveedor, row("ProveedorSucursal").ToString, row("Direccion").ToString, row("Telefono").ToString, row("Serie").ToString, row("Contacto").ToString, row("Correo").ToString, row("CveUsuario").ToString().ToEntero()) Then - ' ErrorSucursales = True - ' Else - ' ''Obtengo Cve Generada y Temp de la sucursal NUEVA - ' Dim CveTempSucursal As Integer = row("CveSucursalTemp").ToString().ToEntero() - ' Dim CveNuevaSucursal As Integer = ObjProveedores.CveProveedorSucursal - - ' If TempDTProveedoresContactosSucursal.Rows.Count > 0 Then - ' ''Agrego CONTACTOS por SUCURSAL NUEVA - ' For Each rowContacto As DataRow In TempDTProveedoresContactosSucursal.Rows - ' ''Si la CveTemp de la sucursal es igual a la CveTemp del contacto, lo agrega con CveNuevaSucursal - ' If CveTempSucursal = rowContacto("CveSucursalTemp").ToString().ToEntero() Then - ' If Not ObjProveedores.AddProveedorContacto(CveProveedor, CveNuevaSucursal, rowContacto("Nombre").ToString, rowContacto("Puesto").ToString, rowContacto("Telefono").ToString, rowContacto("Extension").ToString, rowContacto("Celular").ToString, rowContacto("Correo").ToString) Then - ' ErrorContactos = True - ' End If - ' End If - ' Next - ' End If - - ' If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados - ' End If - ' Else - ' 'SUCURSAL ACTUALIZADA: Si tiene una Cve, ya existia y actualiza - ' Dim Estatus As Boolean - - ' If row("Estatus").ToString() = "Activo" Then - ' Estatus = True - ' Else - ' Estatus = False - ' End If - - ' If Not ObjProveedores.UpdateSucursal(row("ProveedorSucursal").ToString, row("Direccion").ToString, row("Telefono").ToString, row("Serie").ToString, Estatus, row("Correo").ToString, row("Contacto").ToString, row("CveProveedorSucursal").ToString.ToEntero, CveProveedor) Then - ' ErrorSucursales = True - ' Else - ' If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados - ' End If - - ' End If - 'Next - 'ACTUALIZO EL RESTO DE LOS CONTACTOS QUE YA TIENE CVEPROVEEDORSUCURSAL ASIGNADA - 'For Each rowCS As DataRow In TempDTProveedoresContactosSucursal.Rows - ' ' Si tiene CveContacto = -1 y CveSucursal es nuevo en esa sucursal y agrega - ' If rowCS("CveProveedorContacto").ToString() = "-1" And rowCS("CveProveedorSucursal").ToString().ToEntero() > 0 Then - ' If Not ObjProveedores.AddProveedorContacto(CveProveedor, rowCS("CveProveedorSucursal").ToString.ToEntero, rowCS("Nombre").ToString, rowCS("Puesto").ToString, rowCS("Telefono").ToString, rowCS("Extension").ToString, rowCS("Celular").ToString, rowCS("Correo").ToString) Then - ' ErrorContactos = True - ' End If - ' Else - ' If rowCS("CveProveedorContacto").ToString().ToEntero() > 0 Then - ' '' CONTACTO ACTUALIZADO: Si tiene una CveContacto ya existia y actualiza ****** - ' If Not ObjProveedores.UpdateProveedorContacto(rowCS("CveProveedorContacto").ToString.ToEntero, CveProveedor, rowCS("CveProveedorSucursal").ToString.ToEntero, rowCS("Nombre").ToString, rowCS("Puesto").ToString, rowCS("Telefono").ToString, rowCS("Extension").ToString, rowCS("Celular").ToString, rowCS("Correo").ToString) Then - ' ErrorContactos = True - ' End If - ' End If - ' End If - 'Next - - ''SUCURSAL ELIMINADA: recorre el DT de la BD - 'For Each row As DataRow In TempDTSucursalesOrigin.Rows - ' Dim CveProveedorSucursal As Integer = row("CveProveedorSucursal").ToString.ToEntero() - ' Dim filtroSucursales As String = String.Format("CveProveedorSucursal ={0}", CveProveedorSucursal) - ' ' Busca si no existe la Cve Original, si no exite la elimina - ' If (TempDTSucursales.FiltraParametros(filtroSucursales).Rows.Count = 0) Then - ' ''Primero eliminamos Contactos de esta Sucursal - ' ''Elimino contactos que ya no estan en DT - ' For Each rowCS As DataRow In TempDTProveedoresContactosSucursalOrigin.Rows - ' If CveProveedorSucursal = rowCS("CveProveedorSucursal").ToString.ToEntero() And rowCS("CveProveedorContacto").ToString.ToEntero() > 0 Then - ' Dim CveContacto As Integer = rowCS("CveProveedorContacto").ToString.ToEntero() - - ' If Not ObjProveedores.RemoveProveedorContacto(CveContacto) Then - ' ErrorContactos = True - ' End If - ' End If - ' Next - - ' If Not ObjProveedores.RemoveSucursal(CveProveedor, CveProveedorSucursal) Then - ' ErrorSucursales = True - ' Else - ' If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados - ' End If - ' End If - 'Next - - '''Elimino contactos que ya no estan en DT - 'For Each row As DataRow In TempDTProveedoresContactosSucursalOrigin.Rows - ' Dim CveContacto As Integer = row("CveProveedorContacto").ToString.ToEntero() - ' Dim filtroContactos As String = String.Format("CveProveedorContacto ={0}", CveContacto) - ' ' Busca si no existe la Cve Original, si no exite la elimina - ' If (TempDTProveedoresContactosSucursal.FiltraParametros(filtroContactos).Rows.Count = 0) Then - ' If Not ObjProveedores.RemoveProveedorContacto(CveContacto) Then - ' ErrorContactos = True - ' End If - ' End If - 'Next - - '''''''''''''''''''''''''''''''''''' - '''ACTUALIZA CONTACTOS DEL PROVEEDOR - '''''''''''''''''''''''''''''''''''' - '''CONTACTO NUEVO - '''''''''''''''''''''''''''''''''''' - '' If TempDTProveedoresContactos.Rows.Count > 0 Then - 'For Each row As DataRow In TempDTProveedoresContactos.Rows - ' ' Si tiene Cve = -1 es nuevo y agrega - ' If row("CveProveedorContacto").ToString = "-1" Then - ' If Not ObjProveedores.AddProveedorContacto(CveProveedor, row("CveProveedorSucursal").ToString.ToEntero, row("Nombre").ToString, row("Puesto").ToString, row("Telefono").ToString, row("Extension").ToString, row("Celular").ToString, row("Correo").ToString) Then - ' ErrorContactos = True - ' End If - ' Else - ' '' CONTACTO ACTUALIZADO: Si tiene una Cve ya existia y actualiza - ' If Not ObjProveedores.UpdateProveedorContacto(row("CveProveedorContacto").ToString.ToEntero, CveProveedor, row("CveProveedorSucursal").ToString.ToEntero, row("Nombre").ToString, row("Puesto").ToString, row("Telefono").ToString, row("Extension").ToString, row("Celular").ToString, row("Correo").ToString) Then - ' ErrorContactos = True - ' End If - ' End If - 'Next - - - ''CONTACTO ELIMINADO: Recorre el DT de la BD - 'For Each row As DataRow In TempDTProveedoresContactosOrigin.Rows - ' Dim CveContato As Integer = row("CveProveedorContacto").ToString.ToEntero() - ' Dim filtroContactos As String = String.Format("CveProveedorContacto ={0}", CveContato) - ' ' Busca si no existe la Cve Original, si no exite la elimina - ' If (TempDTProveedoresContactos.FiltraParametros(filtroContactos).Rows.Count = 0) Then - ' If Not ObjProveedores.RemoveProveedorContacto(CveContato) Then - ' ErrorContactos = True - ' End If - ' End If - 'Next - ' End If - - If ErrorSucursales Or ErrorContactos Then '' - ObjProveedores.RollBack() - If ErrorContactos Then - Alert("Ocurrió un error al registrar los Contactos", TipoMensaje.MsgError) - End If - If ErrorSucursales Then - Alert("Ocurrió un error al registrar las Sucursales", TipoMensaje.MsgError) - End If - Else - 'Recargamos los contactos - CargaContactos(ObjProveedores) - ObjProveedores.Commit() - CargaProveedorSucursales() - End If - - UpDatos.Update() - - End If - ObjProveedores.Dispose() - End If - CargaEventoBitacora() - - End Sub -#End Region - -#Region "U S U A R I O S" - - Protected Sub LbSolicitudPortal_Click(sender As Object, e As EventArgs) Handles LbEnviarActivacionPortal.Click - 'guarda el nuevo usuario - Dim ObjUsuario As New ClsSisUsuarios - Dim CveUsr As Integer = HdnCveUsuarioPortalAdmin.Value.ToEntero - Dim CvePlataforma As Integer = 7 - Dim ErrorUsuario As Boolean = False - - 'DECLARAMOS PERMISOS DEFAULT DE ADMIN - Dim Permisos() As Integer = {236, 237, 238, 239, 240} - - If TxtCorreoCobranza.Text.Trim = "" Then - Alert("No se ha registrado ningún correo en la pestaña Información del Proveedor.", TipoMensaje.MsgAdvertencia) - Return - End If - - ObjUsuario.IniciaTransacSQL() - 'AGREGAMOS USUARIO ADMIN NUEVO - If CveUsr = 0 Then - 'CREA USUARIO - CveUsr = ObjUsuario.AddUsuarioPortal(TxtCorreoCobranza.Text.Trim, ContraseñaPredeterminadaEncriptada, "Admin", TxtCorreoCobranza.Text.Trim, -1, CveProveedor, CvePlataforma, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - If CveUsr > 0 Then - ' AGREGA PERMISO A MODULO PORTALPROVEEDOR - If Not ObjUsuario.UpdateUsuariosModulos(CveUsr, 1201, True, UsuarioActual.CveUsuario) Then - ErrorUsuario = True - End If - Else - ErrorUsuario = True - End If - Else - 'ACTUALIZAMOS ESTADO DE USARIO ADMIN INACTIVO - If Not ObjUsuario.UpdateUsuarioPortal(TxtCorreoCobranza.Text.Trim, "Admin", TxtCorreoCobranza.Text.Trim, True, ContraseñaPredeterminadaEncriptada, -1, CveProveedor, CveUsr, UsuarioActual.CveUsuario) Then - ErrorUsuario = True - End If - End If - - If Not ErrorUsuario Then - 'AGREGAMOS PERMISOS A ADMIN - For Each permiso In Permisos - If Not ObjUsuario.UpdateUsuariosProcesos(CveUsr, permiso, True, UsuarioActual.CveUsuario) Then - ErrorUsuario = True - Exit For - End If - Next - End If - - 'VERIFICAMOS SI HUBO ERRORES - If ErrorUsuario Then - ObjUsuario.RollBack() - Else - 'ACTUALIZAMOS SECCION USUARIO PORTAL - HdnCveUsuarioPortalAdmin.Value = CveUsr.ToString - trDesactivarUsuario.Visible = True - trEnviarActivacion.Visible = False - LblUsuarioActivo.Text = "Si" - - GvUsuariosPortalSis.Visible = False - ErrorUsuario = False - ObjUsuario.Commit() - End If - - ObjUsuario.Dispose() - UPUsuarios.Update() - - 'ENVIA CORREO DE ACTIVACION y CARGA USUARIOS - If CveUsr > 0 And Not ErrorUsuario Then - CargaUsuariosPortalProveedor() - UpGvUsuarios.Update() - - Dim MensajeCorreo As String = EnviaCorreoActivacionPortal(CveUsr) - Dim Mensaje As String = IIf(MensajeCorreo = "", $"No se pudo Notificar a : {TxtCorreoCobranza.Text.Trim}", MensajeCorreo).ToString() - Alert($"La Activación del Portal del Proveedor se ha realizado correctamente.

    {Mensaje}", TipoMensaje.MsgInformacion) - End If - End Sub - - Protected Sub LbDesactivaUsuario_Click(sender As Object, e As EventArgs) Handles LbDesactivaPortal.Click - Dim ObjUsuario As New ClsSisUsuarios - Dim ErrorDesactivando As Boolean = False - If ObjUsuario.GetUsuariosPortal(-1, -1, CveProveedor) Then - ViewState("DTUsuariosProveedor") = ObjUsuario.DtResultados - Else - ErrorDesactivando = True - End If - - If Not ErrorDesactivando Then - For Each Dr As DataRow In DirectCast(ViewState("DTUsuariosProveedor"), DataTable).Rows - 'se desactiva el usuario y se restablece la contraseña - If ObjUsuario.UpdateUsuarioPortal(Dr("Usuario").ToString, Dr("Nombre").ToString, Dr("Correo").ToString, False, ContraseñaPredeterminadaEncriptada, Dr("CveCliente").ToString.ToEntero, Dr("CveProveedor").ToString.ToEntero, Dr("CveUsuario").ToString.ToEntero, UsuarioActual.CveUsuario) Then - ErrorDesactivando = False - Else - ErrorDesactivando = True - Alert("Ocurrió un Error al desactivar a los Usuarios.", TipoMensaje.MsgError) - End If - Next - Else - Alert("No se Encontraron Usuarios.", TipoMensaje.MsgInformacion) - End If - If Not ErrorDesactivando Then - LblUsuarioActivo.Text = "No" - 'HdnCveUsuarioPortalAdmin.Value = "" - HdnCveUsuarioPortalActivado.Value = "0" - trEnviarActivacion.Visible = True - trDesactivarUsuario.Visible = False - ViewState("DTUsuariosProveedor") = "" - - GvUsuariosPortalSis.Visible = False - Alert("Los Usuarios del Portal de Proveedores han sido Desactivados.", TipoMensaje.MsgInformacion) - End If - - ObjUsuario.Dispose() - 'ACTUALIZA USUARIOS EN TABUSUARIOS - If Not ErrorDesactivando Then - CargaUsuariosPortalProveedor() - UpGvUsuarios.Update() - End If - End Sub - - Protected Function EnviaCorreoActivacionPortal(CveUsuario As Integer) As String - Dim Mensaje As String = "" - Try - Dim ObjParametro As SisParametro = GlobalDTParametros(SisParametros.URL) - - Dim ErrorCorreo As Boolean = False - - Dim Asunto As String = "ACTIVACIÓN DEL PORTAL DE PROVEEDOR" - Dim Para As String = TxtCorreoCobranza.Text.Trim - - Dim Liga As String = ObjParametro.Cadena1 & "LogIn.aspx" - Dim LigaActivar As String = Liga & "?p=" & Encripta("CveU=" & CveUsuario & "&Clave=" & "-acceso-" & "&Opcion=Activar&Hora=" & DateTime.Now.Ticks & "&CveE=" & UsuarioActual.CveEmpresa) - - Dim ObjMail As New ClsSisMail() - - Dim SBBody As New StringBuilder - 'Linia de estilos - SBBody.Append("") - 'incio Cuerpo del correo - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("ALTA DE CUENTA") - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.AppendFormat(" Estimado {0}:
    ", TxtRazonSocial.Text.ToUpper) - SBBody.AppendFormat("El presente correo es para informarle que se le han asignado los siguientes datos para el acceso a la Plataforma de: {0}

    ", UsuarioActual.Empresa.Empresa) - SBBody.Append("
    ") - SBBody.Append("
    Datos de usuario
    ") - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("
    Usuario
    ") - SBBody.AppendFormat("
    {0}
    ", Para) - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("
    Accesé al sistema dando click a la liga y estableciendo su contraseña
    ") - SBBody.AppendFormat("", LigaActivar) - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("
    ") - SBBody.Append("Para Activar su cuenta debera cambiar su contraseña.

    ") - - - SBBody.Append("
    Dirección de Acceso
    ") - SBBody.AppendFormat("", Liga) - SBBody.Append("
    ") - SBBody.Append("
    ") - - SBBody.Append("
    ") - SBBody.Append("Nota Favor de NO responder este correo. ") - SBBody.Append("


    ") - SBBody.AppendFormat("", UrlSitio) - SBBody.Append("
    ") - SBBody.Append("
    ") - 'Termino Cuerpo del correo - 'If TxtCorreoCobranza.Text.Trim <> "" Then - ' Dim Correos As String() = TxtCorreoCobranza.Text.ToString.Split(New Char() {";"c}) - - ' Dim Correo As String - - 'For Each Correo In Correos - ' If Not ObjMail.SendMail(EmpresaNotificaciones, Correo, "Activación de Portal de Proveedor", TxtBody.Text.Trim) Then - ' Mensaje.AppendFormat("- {0}
    ", Correo) - ' Else - ' ErrorCorreo = True - ' End If - 'Next - - Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Asunto, TxtCorreoCobranza.Text.Trim, SBBody.ToString)) - Hilo.Start() - 'End If - Mensaje = $"Se notificó a: {Para}." - Catch ex As Exception - OnError("Ocurrió error al mandar MAIL", ex) - End Try - - Return Mensaje - - End Function - - Private Sub MandaCorreo(Asunto As String, Para As String, Body As String) - Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) - a.GuardaLog() - Dim Mail As New ClsSisMail() - Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body) - End Sub -#End Region - -#Region " U S U A R I O S - P O R T A L " - - 'Private Sub CargaUsuariosPortalSis() - ' Dim ObjUsuarios As New ClsSisUsuarios() - ' If ObjUsuarios.GetUsuariosPortal(-1, -1, CveProveedor) Then - ' GvUsuariosPortalSis.DataSource = ObjUsuarios.DtResultados - ' Else - ' GvUsuariosPortalSis.DataSource = Nothing - ' End If - ' ObjUsuarios.Dispose() - - ' GvUsuariosPortalSis.DataBind() - ' UPUsuarios.Update() - 'End Sub -#End Region - -#Region "S U C U R S A L E S" - Public Sub CargaProveedorSucursales() - CveTempSucursal = -1 - - TempDTSucursales = GlobalDTProveedorSucursales(CveProveedor) - TempDTSucursales.Columns.Add("CveSucursalTemp", GetType(String)) - TempDTSucursalesOrigin = TempDTSucursales.Copy() - GVSucursales.DataSource = TempDTSucursales - GVSucursales.DataBind() - UPPSucursales.Update() - 'OrdenaDatos() - End Sub - Protected Sub BtnAgregarSucursal_Click(sender As Object, e As System.EventArgs) Handles BtnAgregarSucursal.Click - - If CveProveedor = -1 Then - 'SI EL PROVEEDOR NO ESTA EN BD AGREGA SUCURSAL A TABLA TEMPORAL - Dim SucursalRepetida As Boolean = False - For Each row As DataRow In TempDTSucursales.Rows - If row("ProveedorSucursal").ToString = TxtProveedorSucursal2.Text Then - SucursalRepetida = True - End If - Next - - If SucursalRepetida And CveProveedorSucursal = -1 And CveTempSucursal = -1 Then - Dim Msg As New StringBuilder - Msg.AppendFormat("
    Ya existe una Sucursal con el nombre: {0} para este proveedor. Por favor ingrese otro nombre a la nueva Sucursal.", TxtProveedorSucursal2.Text) - Alert(Msg.ToString(), TipoMensaje.MsgAdvertencia) - Else - - Dim dr As DataRow = TempDTSucursales.NewRow() - ' CveProveedorSucursal, ProveedorSucursal, Serie, Correo, Contacto, Direccion, Telefono, FechaIng, Usuario - dr("CveProveedorSucursal") = CveProveedorSucursal - dr("ProveedorSucursal") = TxtProveedorSucursal2.Text - dr("Serie") = TxtSucursalSerie.Text - dr("Correo") = TxtCorreoSucursal.Text - dr("Contacto") = TxtContactoSucursal.Text - dr("Direccion") = TextSucursalDireccion.Text - dr("Telefono") = TextSucursalTelefono.Text - dr("LimiteCredito") = TxtLimiteCreditoSuc.Text.ToDouble - dr("PlazoCobranza") = TxtPlazoCobranzaSuc.Text.ToEntero - dr("FechaIng") = DateTime.Today.ToString() - dr("Usuario") = UsuarioActual.Usuario - dr("CveUsuario") = UsuarioActual.CveUsuario - - If CveProveedorSucursal = -1 And CveTempSucursal = -1 Then - - CveTempSucursal = TempDTSucursales.Compute("MAX(CveSucursalTemp)", "").ToString().ToEntero() + 1 - - End If - - dr("CveSucursalTemp") = CveTempSucursal - - If IndexDTSucursal <> -1 Then - TempDTSucursales.Rows.RemoveAt(IndexDTSucursal) - End If - - TempDTSucursales.Rows.Add(dr) - - GVSucursales.DataSource = TempDTSucursales - GVSucursales.DataBind() - - End If - - Else - ' SI EL PROVEEDOR TIENE CVE AGREGA o ACTUALIZA SUCURSAL EN BD - Dim ObjProveedor As New ClsCompProveedores - If EsEditarSucursal = 0 Then - If ObjProveedor.AddSucursal(CveProveedor, TxtProveedorSucursal2.Text.Trim, TextSucursalDireccion.Text.Trim, TextSucursalTelefono.Text.Trim, TxtSucursalSerie.Text.Trim, TxtContactoSucursal.Text, TxtCorreoSucursal.Text, UsuarioActual.CveUsuario, TxtLimiteCreditoSuc.Text.ToDouble, TxtPlazoCobranzaSuc.Text.ToEntero) Then - 'recargo el globaldt - If ObjProveedor.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedor.DtResultados - Alert("La nueva Sucursal del Proveedor se guardó correctamente.", TipoMensaje.MsgInformacion) - CargaProveedorSucursales() - End If - Else - - If CveProveedorSucursal > 0 And ObjProveedor.UpdateSucursal(TxtProveedorSucursal2.Text, TextSucursalDireccion.Text.Trim, TextSucursalTelefono.Text.Trim, TxtSucursalSerie.Text, False, TxtCorreoSucursal.Text, TxtContactoSucursal.Text, CveProveedorSucursal, CveProveedor, TxtLimiteCreditoSuc.Text.ToDouble, TxtPlazoCobranzaSuc.Text.ToEntero) Then - 'recargo el globaldt - If ObjProveedor.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedor.DtResultados - CargaProveedorSucursales() - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) - End If - - End If - ObjProveedor.Dispose() - End If - - UPPSucursales.Update() - Me.RegistraScript("$('#divAgregarSucursal').modal('hide');") - LimpiaModalAgregarSucursal() - End Sub - Private Sub OcultaDiv() - ScriptManager.RegisterStartupScript(Me, Me.GetType, "Llave", "HideDivRegistro();", True) - End Sub - Protected Sub GVSucursales_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVSucursales.RowDataBound - 'If e.Row.RowType = DataControlRowType.DataRow Then - - ' If e.Row.RowIndex = 0 Then - ' e.Row.Cells(0).Width = Unit.Pixel(80) - ' e.Row.Cells(1).Width = Unit.Pixel(60) - ' e.Row.Cells(2).Width = Unit.Pixel(70) - ' 'e.Row.Cells(3).Width = Unit.Pixel(70) - ' 'e.Row.Cells(4).Width = Unit.Pixel(50) - ' End If - ' e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left - - ' Dim URL As String = String.Format("javascript:CleanObjects();SetValue('HdnModalidad', 'U');SetValue('HdnID', '{0}'); SetObjects('{1}', '{2}', '{3}','{4}','{5}','{6}','{7}','{8}');ShowDivRegistro();", e.Row.DBCampo("CveProveedorSucursal").ToEntero, e.Row.DBCampo("ProveedorSucursal"), e.Row.DBCampo("Serie"), e.Row.DBCampo("Correo"), e.Row.DBCampo("Contacto"), e.Row.DBCampo("Direccion"), e.Row.DBCampo("Telefono"), String.Format("Fecha de Registro: {0}", e.Row.DBCampo("FechaIng").ToDate.ToShortDateString), String.Format("Usuario Registró: {0}", e.Row.DBCampo("Usuario"))) - - ' 'GeneroLigas - ' Dim Liga As String = String.Format("", URL) - ' e.Row.VerticalAlign = VerticalAlign.Middle - - ' 'e.Row.FCLiteral("LtlSucursal").Text = String.Format("{0}{1}", Liga, e.Row.FCLiteral("LtlSucursal").Text) - ' e.Row.FCLiteral("LtlSerie").Text = String.Format("{0}{1}", Liga, e.Row.FCLiteral("LtlSerie").Text) - ' e.Row.CssClass = "GVRowBorder" - ' e.Row.Height = Unit.Pixel(33) - - 'End If - - End Sub - Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVSucursales.RowDeleting - - Dim CveProveedorSucursal As Integer = GVSucursales.DataKeys(e.RowIndex).Value.ToString.ToEntero - - - If CveProveedor = -1 Then - TempDTSucursales.Rows.RemoveAt(e.RowIndex) - GVSucursales.DataSource = TempDTSucursales - GVSucursales.DataBind() - - UPPSucursales.Update() - Else - Dim ObjProveedor As New ClsCompProveedores - ''Primero eliminamos Contactos de esta Sucursal - ObjProveedor.IniciaTransacSQL() - If ObjProveedor.RemoveProveedorContacto(-1, CveProveedorSucursal) Then - If ObjProveedor.RemoveSucursal(CveProveedor, CveProveedorSucursal) Then - 'GVSucursales.EditIndex = -1 - If ObjProveedor.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedor.DtResultados - CargaProveedorSucursales() - CargaContactos(ObjProveedor) - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) - ObjProveedor.Commit() - Else - ObjProveedor.RollBack() - End If - Else - ObjProveedor.RollBack() - End If - ObjProveedor.Dispose() - End If - End Sub - Protected Sub GvDatos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GVSucursales.RowCancelingEdit - GVSucursales.EditIndex = -1 - End Sub - Protected Sub GvDatos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GVSucursales.RowEditing - GVSucursales.EditIndex = e.NewEditIndex - End Sub - - Protected Sub CreaTempDTSucursales() - - TempDTSucursales = New DataTable() - 'TempDTSucursales.Columns.Add("CveProveedor", GetType(String)) - TempDTSucursales.Columns.Add("CveProveedorSucursal", GetType(String)) - TempDTSucursales.Columns.Add("ProveedorSucursal", GetType(String)) - TempDTSucursales.Columns.Add("Serie", GetType(String)) - TempDTSucursales.Columns.Add("Correo", GetType(String)) - TempDTSucursales.Columns.Add("Contacto", GetType(String)) - TempDTSucursales.Columns.Add("Direccion", GetType(String)) - TempDTSucursales.Columns.Add("Telefono", GetType(String)) - TempDTSucursales.Columns.Add("LimiteCredito", GetType(Double)) - TempDTSucursales.Columns.Add("PlazoCobranza", GetType(Integer)) - TempDTSucursales.Columns.Add("FechaIng", GetType(String)) - TempDTSucursales.Columns.Add("Usuario", GetType(String)) - TempDTSucursales.Columns.Add("CveUsuario", GetType(String)) - TempDTSucursales.Columns.Add("CveSucursalTemp", GetType(String)) - - GVSucursales.DataSource = TempDTSucursales - GVSucursales.DataBind() - - DivSucursales.Visible = True - UPPSucursales.Update() - - End Sub - - Protected Sub LnkSucursal_Click(sender As Object, e As EventArgs) - Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) - - IndexDTSucursal = GvRow.RowIndex - - CveProveedorSucursal = GvRow.DataKey("CveProveedorSucursal").ToEntero() - CveTempSucursal = IIf(GvRow.DataKey("CveSucursalTemp") <> "" Or GvRow.DataKey("CveSucursalTemp") IsNot Nothing, GvRow.DataKey("CveSucursalTemp"), 0).ToString().ToEntero() - - CveProveedorContacto = -1 - - TxtProveedorSucursal2.Text = GvRow.DataKey("ProveedorSucursal") - TextSucursalDireccion.Text = GvRow.DataKey("Direccion") - TextSucursalTelefono.Text = GvRow.DataKey("Telefono") - TxtSucursalSerie.Text = GvRow.DataKey("Serie") - TxtCorreoSucursal.Text = GvRow.DataKey("Correo") - TxtContactoSucursal.Text = GvRow.DataKey("Contacto") - TxtPlazoCobranzaSuc.Text = GvRow.DataKey("PlazoCobranza") - TxtLimiteCreditoSuc.Text = GvRow.DataKey("LimiteCredito") - - LblUsuarioSucursal.Text = $"Usuario Registró:
    {GvRow.DataKey("Usuario")}" - LblFechaSucursal.Text = $"Fecha de Registro:
    {GvRow.DataKey("FechaIng")}" - - If CveProveedor = -1 Then - 'Si tiene CveProvedoorSucursal filtra por esta cve, SI NO Busca por la CveProvedorSucursal Temporal - If GvRow.DataKey("CveProveedorSucursal").ToEntero() > 0 Then - CargaGVContactosSucursal() - Else - CargaGVContactosSucursal() - End If - Else - EsEditarSucursal = 1 - CargaGVContactosSucursal() - End If - - DivPContactosSucursal.Visible = True - UpAgregarSucursal.Update() - - Me.RegistraScript("$('#divAgregarSucursal').modal('show');") - End Sub - - Protected Sub LnkAgregarSucursal_Click(sender As Object, e As EventArgs) - If CveProveedor = -1 Then - CveTempSucursal = -1 - IndexDTSucursal = -1 - Else - EsEditarSucursal = 0 - End If - DivPContactosSucursal.Visible = False - LimpiaModalAgregarSucursal() - Me.RegistraScript("$('#divAgregarSucursal').modal('show');") - End Sub - - Protected Sub LimpiaModalAgregarSucursal() - CveProveedorSucursal = -1 - - TxtProveedorSucursal2.Text = "" - TextSucursalDireccion.Text = "" - TextSucursalTelefono.Text = "" - TxtSucursalSerie.Text = "" - TxtCorreoSucursal.Text = "" - TxtContactoSucursal.Text = "" - - LblUsuarioSucursal.Text = "" - LblFechaSucursal.Text = "" - - GVContactosProveedorSucursal.DataSource = Nothing - GVContactosProveedorSucursal.DataBind() - - UpAgregarSucursal.Update() - End Sub -#End Region - -#Region "CxP" - Private Sub CargaCxP(CveProveedorSucursal As Integer, Optional Top As Integer = -1) - Dim ObjMovtos As New ClsMovimientos() - 'CxC Activas - 'If ObjMovtos.GetCxPProveedor(CveProveedor, SerieSucursal, CveMoneda:=CveMoneda) Then - If ObjMovtos.GetCxPProveedor(CveProveedor, "-1", "-1", -1, -1, -1, -1, CveMonedaFiltro, -1, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), -1, "-1", "-1") Then - Dim dtt As DataTable = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda,OrdenVencimiento, FechaVencimiento") - GvCxP.DataSource = dtt - DTCxP = dtt - dtt = dtt.FiltraParametros("CveCompra > 0") - - CountCuentasxPagar = dtt.Rows.Count - - 'RESUMEN CUENTAS POR PAGAR - LBRCPVencidoP.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 1 and DiasVencidos > 0")).FormatoNumero - LBRCPPorVencerP.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 1 and DiasVencidos <= 0")).FormatoNumero - LBRCPSumaP.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 1 ")).FormatoNumero - - LBRCPVencidoD.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 2 and DiasVencidos > 0")).FormatoNumero - LBRCPPorVencerD.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 2 and DiasVencidos <= 0")).FormatoNumero - LBRCPSumaD.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 2 ")).FormatoNumero - - LBRCPTipoCambio.Text = GlobalTipoCambio.ToString.FormatoNumero - LBRCPTotal.Text = (LBRCPSumaP.Text.ToDouble + (LBRCPSumaD.Text.ToDouble * LBRCPTipoCambio.Text.ToDouble)).ToString.FormatoNumero - If LblLimiteCredito.Text.ToDouble > 0 Then - TdSaldo.Visible = True - TdSaldo2.Visible = True - LblSaldo.Text = CType(LblLimiteCredito.Text.ToDouble - LBRCPTotal.Text.ToDouble, String).FormatoNumero - End If - 'solo tomo los 10 ultimos mas el totalizador general - dtt = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'") - If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 And Top = -1 Then - GvCxPHistorial.DataSource = dtt.AsEnumerable().Take(10).CopyToDataTable() - - ElseIf dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 And Top > -1 Then - GvCxPHistorial.DataSource = dtt.AsEnumerable().CopyToDataTable() - End If - - Else - CountCuentasxPagar = 0 - GvCxP.DataSource = Nothing - GvCxPHistorial.DataSource = Nothing - End If - - ObjMovtos.Dispose() - GvCxP.DataBind() - GvCxPHistorial.DataBind() - UPPCxP.Update() - - If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then - CargaFiltroMonedas() - End If - - End Sub - Protected Sub BtnRecargaCxP_Click(sender As Object, e As EventArgs) Handles BtnRecargaCxP.Click - CargaCxP(-1) - End Sub - Protected Sub GvCxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxP.RowDataBound, GvCxPHistorial.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 AndAlso CType(sender, GridView).ID = "GvCxP" Then - ''e.Row.Cells(0).ColumnSpan = 4 - 'e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right - 'e.Row.FCLiteral("LtlFactura").Text = "Total" & " " - 'e.Row.Cells(1).Visible = False - 'e.Row.Cells(2).Visible = False - 'e.Row.Cells(3).Visible = False - ''e.Row.Cells(9).ColumnSpan = 2 - 'e.Row.Cells(10).Visible = False - - End If - If e.Row.RowIndex = 1 Then - e.Row.Cells(0).Width = Unit.Pixel(2) - e.Row.Cells(1).Width = Unit.Pixel(100) - e.Row.Cells(2).Width = Unit.Pixel(70) - e.Row.Cells(3).Width = Unit.Pixel(80) - e.Row.Cells(4).Width = Unit.Pixel(80) - e.Row.Cells(5).Width = Unit.Pixel(90) - e.Row.Cells(6).Width = Unit.Pixel(90) - e.Row.Cells(7).Width = Unit.Pixel(105) - e.Row.Cells(8).Width = Unit.Pixel(90) - If CType(sender, GridView).ID <> "GvCxPHistorial" Then - e.Row.Cells(9).Width = Unit.Pixel(85) - e.Row.Cells(10).Width = Unit.Pixel(70) - e.Row.Cells(11).Width = Unit.Pixel(70) - End If - - End If - - If e.Row.DBCampo("CveCompra") = "" Then - e.Row.BackColor = Drawing.Color.LightGray - If e.Row.FCHyperLink("ImgAbonar") IsNot Nothing Then e.Row.FCHyperLink("ImgAbonar").Visible = False - Else - - End If - - e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(8).HorizontalAlign = HorizontalAlign.Right - - - - If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(6).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("DiasVencidos").ToDouble > 0 AndAlso CType(sender, GridView).ID = "GvCxP" Then e.Row.Cells(4).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("Original").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" - If e.Row.DBCampo("Abonado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = "" - If e.Row.DBCampo("PorPagado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlPorRecuperado"), Literal).Text = "" - If CType(sender, GridView).ID = "GvCxP" AndAlso e.Row.DBCampo("Saldo").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = "" - If e.Row.DBCampo("PorXPagar").ToDouble = 0 AndAlso e.Row.FCLiteral("LtlPorXRecuperar") IsNot Nothing Then e.Row.FCLiteral("LtlPorXRecuperar").Text = "" - - If e.Row.DBCampo("Folio") = "N/D" Then - e.Row.FCLabel("LtlFactura").Text = e.Row.DBCampo("SerieFolio") - Else - 'Dim Liga As String = String.Format("", e.Row.DBCampo("CveCompra")) - If e.Row.DBCampo("CveCompra").ToEntero > 0 Then - e.Row.FCLabel("LtlFactura").Text = String.Format("{1}", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("SerieFolio")) - Else - e.Row.FCLabel("LtlFactura").Text = e.Row.DBCampo("SerieFolio") - End If - - End If - If e.Row.RowIndex > 0 Then e.Row.FCLiteral("LtlAux").Text = String.Format("Ir", CveProveedor, e.Row.DBCampo("CveCompra")) - 'DirectCast(e.Row.FindControl("ImgAbonar"), Image).Attributes.Add("onclick", String.Format("$get('HdnCveVenta').value='{0}';$get('HdnCveVentaAbono').value='{0}';$('#DivAddPago').show(1000);PosicionaObjeto('{1}', 'DivAddPago');", e.Row.DBCampo("CveCompra"), DirectCast(e.Row.FindControl("ImgAbonar"), Image).ClientID)) - If e.Row.FCHyperLink("ImgAbonar") IsNot Nothing Then e.Row.FCHyperLink("ImgAbonar").NavigateUrl = String.Format("/Bancos/PopIECompras.aspx?CveCompra={0}&TB_iframe=true&height=450&width=790", e.Row.DBCampo("CveCompra")) - - If CType(sender, GridView).ID = "GvCxPHistorial" Then - - DirectCast(e.Row.FindControl("LtlDiasVencido"), Literal).Text = "" - - If e.Row.DBCampo("CveCompra") = "" Then - e.Row.BackColor = Drawing.Color.LightGray - e.Row.FCLabel("LtlFactura").Text = e.Row.DBCampo("Descripcion") - End If - - Else - e.Row.Cells(8).Font.Bold = True - e.Row.Cells(9).Font.Bold = True - If e.Row.DBCampo("CveUsuarioProgramo").ToEntero > 0 Then - e.Row.FCLinkButton("LblB").Text = "P" - 'e.Row.FCLabel("LblB").CssClass = "GreenStripe" - e.Row.Cells(0).ToolTip = "La compra ha sido programada." - End If - End If - End If - End Sub - -#End Region - -#Region "E V E N T O - B I T A C O R A" - Protected Sub GvEB_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(200) - e.Row.Cells(1).Width = Unit.Pixel(200) - e.Row.Cells(2).Width = Unit.Pixel(100) - e.Row.Cells(3).Width = Unit.Pixel(500) - End If - - If e.Row.DBCampo("Archivo").ToString <> "" Then - e.Row.FCLinkButton("LinkArchivo").Visible = True - e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString) - ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione - End If - - e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left - End If - End Sub - Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click - Dim ObjEventoBitacora As New ClsOIEventos - - Dim FileExtension As String = "-1" - Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos - Dim filemove As String = "" - - For Each fileItem As Archivo In filesgral - FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") - filemove = fileItem.filename - Next - - If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor) Then - If filemove <> "" Then - filemove.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", UsuarioActual.CveEmpresa)) - End If - - GvEB.DataSource = ObjEventoBitacora.DtResultados - TxtEventoDescripcion.Text = "" - Anexo.Text = "[]" - Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) - RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") - End If - ObjEventoBitacora.Dispose() - GvEB.DataBind() - - UPEventoBitacora.Update() - CargaEventoBitacora() - UPAddEventoBitacora.Update() - End Sub - Private Sub CargaEventoBitacora() - - Dim ObjEventoBitacora As New ClsOIEventos() - If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor) Then - GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") - Else - GvEB.DataSource = Nothing - End If - ObjEventoBitacora.Dispose() - GvEB.DataBind() - End Sub - - Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) - Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) - Dim Archivo As New System.IO.FileInfo(filePath) - - HttpContext.Current.Response.Clear() - HttpContext.Current.Response.ClearContent() - HttpContext.Current.Response.ContentType = "application/octet-stream" - HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + IO.Path.GetFileName(filePath)) - HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) - HttpContext.Current.Response.TransmitFile(filePath) - HttpContext.Current.Response.Flush() - HttpContext.Current.Response.End() - - Archivo = Nothing - End Sub -#End Region - -#Region "OC" - Private Sub CargaOC() - Dim OC As New ClsOC - - If OC.GetOrdenesCompraRep("OC", -1, -1, -1, -1, MinFecha, MaxFecha, -1, CveProveedor, -1, -1, -1, UsuarioActual.CveEmpresa, -1) Then - GvOC.DataSource = OC.DtResultados - RegistraScript("if($('#DivOC').style){$get('DivOC').style.display='';PosicionaObjeto('ImgBtnBuscarOC','DivOC');}") - End If - OC.Dispose() - GvOC.DataBind() - If (GvOC.Rows.Count > 0) Then - GvOC.UseAccessibleHeader = True - GvOC.HeaderRow.TableSection = TableRowSection.TableHeader - End If - End Sub -#End Region - -#Region "D O C U M E N T A C I O N" - Private Sub CargaDocs() - Dim Edoc As New ClsEdocumentacion - If Edoc.DocumentacionElectronicaGet(-1, -1, CveProveedor, UsuarioActual.CveEmpresa, -1) Then - GvDocs.DataSource = Edoc.DtResultados - Edoc.DocumentacionGet(-1, -1, 1, UsuarioActual.CveEmpresa) - ' GVEDoc.DataSource = Edoc.DtResultados - If Edoc.DtResultados.Rows.Count > 0 Then - TabDocs.Visible = True - End If - End If - Edoc.Dispose() - GvDocs.DataBind() - ' GVEDoc.DataBind() - - If (GvDocs.Rows.Count > 0) Then - - GvDocs.UseAccessibleHeader = True - GvDocs.HeaderRow.TableSection = TableRowSection.TableHeader - 'RegistraScript("OrdenarGV();") - End If - End Sub - - Public Sub Update_ClickDocumentacion(sender As Object, e As EventArgs) - - Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) - Dim activo As Boolean = False - - Dim _CveDocumentacion As Integer = GvRow.DataKey("CveDocumentacion").ToEntero - Dim _Adjunto As String = GvRow.DataKey("Adjunto").ToString - Dim _fechaLimite As Date = GvRow.FCTextBox("TxtFechaLimite").Text.ToDate - - Dim observaciones As String = GvRow.FCTextBox("TxtObservaciones").Text ' DirectCast(GvRow.FindControl("TxtObservaciones"), TextBox).Text - 'Dim DDLEstatus As DropDownList = DirectCast(GvRow.FindControl("DDLEstatus"), DropDownList) - Dim chkCompleto As CheckBox = DirectCast(GvRow.FindControl("chkEstatus"), CheckBox) - Dim _Estatus As Integer - - If chkCompleto.Checked Then _Estatus = 1 Else _Estatus = 0 - - - Dim objRH As New ClsEdocumentacion - - If Not GvRow.DataKey("CveDocumentacionElectronica").ToEntero = -1 Then - If objRH.DocumentacionElectronicaUpdate(GvRow.DataKey("CveDocumentacionElectronica").ToEntero, _CveDocumentacion, -1, -1, CveProveedor, _Estatus, observaciones, _Adjunto, UsuarioActual.CveUsuario, GvRow.FCTextBox("TxtFechaLimite").Text.ToDate) Then - Alert("Documento actualizado correctamente.", TipoMensaje.MsgInformacion) - End If - Else - If objRH.DocumentacionElectronicaAdd(_CveDocumentacion, -1, -1, CveProveedor, _Estatus, observaciones, _Adjunto, UsuarioActual.CveUsuario, GvRow.FCTextBox("TxtFechaLimite").Text.ToDate) > 0 Then - Alert("Documento actualizado correctamente.", TipoMensaje.MsgInformacion) - End If - End If - - objRH.Dispose() - - End Sub - -#End Region - -#Region "Colectivas" - 'Private Sub CargaColectivas() - ' Dim ObjColectivas As New ClsGenerales - - ' If ObjColectivas.GetColectivas(CveProveedor, UsuarioActual.CveEmpresa) Then - ' GVColectivas.DataSource = ObjColectivas.DtResultados - ' End If - ' ObjColectivas.Dispose() - ' GVColectivas.DataBind() - 'End Sub - - 'Protected Sub GVColectivas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVColectivas.RowDataBound - ' If e.Row.RowType = DataControlRowType.DataRow Then - ' If e.Row.RowIndex = 0 Then - ' e.Row.Cells(0).Width = Unit.Pixel(100) - ' e.Row.Cells(1).Width = Unit.Pixel(80) - ' End If - ' e.Row.FCLiteral("LtlColectiva").Text = "" & e.Row.FCLiteral("LtlColectiva").Text & "" - ' e.Row.FCLiteral("LtlSaldo").Text = "" & e.Row.FCLiteral("LtlSaldo").Text & "" - ' End If - 'End Sub -#End Region - -#Region "C U E N T A S - B A N C A R I A S" - 'Private Sub CreaDTCuentasBancos() - ' DTCuentasBancos = New DataTable - ' DTCuentasBancos.Columns.Add("CveProveedorCuenta", GetType(Integer)) - ' DTCuentasBancos.Columns.Add("BancoNombre", GetType(String)) - ' DTCuentasBancos.Columns.Add("Sucursal", GetType(String)) - ' DTCuentasBancos.Columns.Add("CLABE", GetType(String)) - ' DTCuentasBancos.Columns.Add("SWIFT", GetType(String)) - ' DTCuentasBancos.Columns.Add("Plaza", GetType(String)) - ' DTCuentasBancos.Columns.Add("Cuenta", GetType(String)) - ' DTCuentasBancos.Columns.Add("CIE", GetType(String)) - ' DTCuentasBancos.Columns.Add("Referencia", GetType(String)) - - ' CargaCuentasBancarias() - 'End Sub - Private Sub CargaCuentasBancarias() - Dim ObjCuentasBancos As New ClsGenerales - ViewState("OrdenCuentasBancos") = "" - DTCuentasBancos = New DataTable - TempDTCuentasBancos = New DataTable - - If ObjCuentasBancos.GetCuentasDepositos(CveProveedor) Then - DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados) - Else - Alert("No se pudieron cargar las cuentas bancarias. Por favor intente nuevamente.", TipoMensaje.MsgAdvertencia) - End If - - If CveProveedor < 0 Then - 'Alert("No hay proveedor", TipoMensaje.MsgInformacion) - TempDTCuentasBancos = DTCuentasBancos.Clone - - 'Esconde columna estatus - 'THEstatus.Visible = False - 'THEstatusTexto.Visible = False - 'GvBancosCuentas.Columns(11).Visible = False 'Es la columna estatus CheckBox - - 'Mexicanada para acomadar las columnas' - 'TDEstatusLayout.Visible = False - 'TDEstatusTexto.Visible = False - - End If - - ObjCuentasBancos.Dispose() - CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - - RecargaGlobalCuentasBancarias() - End Sub - Protected Sub LbAgregarCuentaBanco_Click(sender As Object, e As EventArgs) - Dim EsBancomer = False - - If TxtNombreBanco.Text.ToUpper.Contains("BBVA") Or TxtNombreBanco.Text.ToUpper.Contains("BANCOMER") Or (TxtCLABE.Text.Length = 18 AndAlso TxtCLABE.Text.Substring(0, 3) = "012") Then - EsBancomer = True - End If - - ''COMENTADO PARA PERMITIR ENTRADA DE UNA CUENTA A PROVEEDOR, 22 DE SEPTIEMBRE, ISRAEL PIÑA - 'If EsBancomer AndAlso (TxtCLABE.Text.Length = 18 AndAlso Not TxtCLABE.Text.Substring(0, 3) = "012") Then - ' Alert("La CLABE ingresada no pertenece a BANCOMER.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - - ''CLABE SIEMPRE OBLIGATORIA CUANDO NO ES BANCOMER CON CIE - 'If (TxtCLABE.Text.Trim.Length <> 18 And Not EsBancomer) Or (EsBancomer And TxtConvenioCIE.Text.Trim.Length <> 6 And TxtCLABE.Text.Trim.Length <> 18) Then - ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - - - 'RESTRICCIONES GENERALES - - 'QUE TENGA ALGUN DATO DE TIPO DE CUENTA - If TxtNumeroCuenta.Text.Trim.Length = 0 AndAlso TxtCLABE.Text.Trim.Length = 0 AndAlso TxtSWIFT.Text.Trim.Length = 0 AndAlso TxtConvenioCIE.Text.Trim.Length = 0 Then - Alert("Debe especificar al menos un numero de cuenta.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 - If TxtCLABE.Text.Trim.Length <> 0 AndAlso TxtCLABE.Text.Trim.Length <> 18 Then - Alert("La CLABE debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'RESTRICCIONES - GLUYAS - If UsuarioActual.CveEmpresa = 66 Then - - 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER - If TxtCLABE.Text.Trim.Length <> 18 And TxtCLABE.Text.Trim.Length = 0 And Not EsBancomer And TxtSWIFT.Text.Trim.Length = 0 Then - Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 - If TxtNumeroCuenta.Text.Trim.Length <> 0 AndAlso TxtNumeroCuenta.Text.Trim.Length <> 10 AndAlso EsBancomer Then - Alert("El número de cuenta debe tener una longitud de 10 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'SI CIE TIENE ALGO REFERENCIA OBLIGATORIA - If TxtConvenioCIE.Text.Trim.Length <> 0 And TxtReferencia.Text.Trim.Length < 3 Then - Alert("Cuando se ingresa Convenio CIE se debe especificar una referencia. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" - If EsBancomer AndAlso Not (TxtNumeroCuenta.Text.Trim.Length = 10 Or TxtConvenioCIE.Text.Trim.Length <> 0) Then - Alert("Para cuentas BBVA BANCOMER es obligatorio el Número de Cuenta o CIE.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Else - - 'SI CIE TIENE ALGO DEBE TENER UNA LOGITUD MINIMA DE 5 - If TxtConvenioCIE.Text.Trim.Length <> 0 And TxtConvenioCIE.Text.Trim.Length < 5 Then - Alert("El Convenio CIE debe tener una longitud de al menos 5 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - End If - Dim Estatus As Boolean - If ChkEstatus.Checked = True Then Estatus = True Else Estatus = False - - AgregarCuentaBanco(TxtNombreBanco.Text.Trim, TxtNumeroSucursal.Text.Trim, TxtCLABE.Text.Trim, TxtSWIFT.Text.Trim, TxtPlaza.Text.Trim, TxtNumeroCuenta.Text.Trim, TxtConvenioCIE.Text.Trim, TxtReferencia.Text.Trim, TxtRefCrediProveedor.Text.Trim, DdlMoneda.SelectedValue.ToEntero, DdlMoneda.SelectedItem.Text, Estatus, TxtCorreoCuenta.Text.Trim) - End Sub - Private Sub AgregarCuentaBanco(NombreBanco As String, NumeroSucursal As String, CLABE As String, SWIFT As String, Plaza As String, NumeroCuenta As String, ConvenioCIE As String, Referencia As String, RefCrediProveedor As String, CveMoneda As Integer, Moneda As String, Estatus As Boolean, Correo As String) - Dim ObjCuentasBancos As New ClsGenerales - If Modalidad = "A" Then - - If CveProveedor > 0 Then - - If ObjCuentasBancos.AddCuentasDepositos(NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, UsuarioActual.CveUsuario, CveMoneda, CveProveedor:=CveProveedor, Correo:=Correo) Then - DTCuentasBancos.Clear() - DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) - Alert("Cuenta Bancaria agregada con éxito.", TipoMensaje.MsgInformacion) - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) - Else - Alert("Error al registrar la cuenta bancaria. Por favor intente nuevamente", TipoMensaje.MsgError) - End If - - Else - Dim Row As DataRow - Row = TempDTCuentasBancos.NewRow - - Row("BancoNombre") = NombreBanco - Row("Sucursal") = NumeroSucursal - Row("CLABE") = CLABE - Row("SWIFT") = SWIFT - Row("Plaza") = Plaza - Row("Cuenta") = NumeroCuenta - Row("CIE") = ConvenioCIE - Row("Referencia") = Referencia - Row("RefCrediProveedor") = RefCrediProveedor - Row("CveMoneda") = CveMoneda - Row("Moneda") = Moneda - Row("EstatusPagoElectronico") = 0 - Row("Estatus") = "True" - Row("Correo") = Correo - TempDTCuentasBancos.Rows.Add(Row) - Alert("Cuenta Bancaria agregada con éxito.", TipoMensaje.MsgInformacion) - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) - - End If - - Else - - - If CveProveedor > 0 Then - - If ObjCuentasBancos.UpdateCuentasDepositos(GvBancosCuentas.DataKeys(CveCuentaBancaria)("CveCuentaDeposito").ToString.ToEntero, NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, False, Estatus, CveMoneda, Correo:=Correo) Then - DTCuentasBancos.Clear() - DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) - Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) - Else - Alert("Error al actualizar la cuenta bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) - End If - - Else - - Dim index = CveCuentaBancaria - Dim Row As DataRow = TempDTCuentasBancos.Rows(index) - Row("BancoNombre") = NombreBanco - Row("Sucursal") = NumeroSucursal - Row("CLABE") = CLABE - Row("SWIFT") = SWIFT - Row("Plaza") = Plaza - Row("Cuenta") = NumeroCuenta - Row("CIE") = ConvenioCIE - Row("Referencia") = Referencia - Row("RefCrediProveedor") = RefCrediProveedor - Row("CveMoneda") = CveMoneda - Row("Moneda") = Moneda - Row("Estatus") = Estatus - Row("Correo") = Correo - TempDTCuentasBancos.AcceptChanges() - Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) - End If - - End If - ObjCuentasBancos.Dispose() - LimpiaCuentasBancarias() - CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - RecargaGlobalCuentasBancarias() - End Sub - Private Sub LimpiaCuentasBancarias() - TxtNombreBanco.Text = "" - TxtNumeroSucursal.Text = "" - TxtCLABE.Text = "" - TxtSWIFT.Text = "" - TxtPlaza.Text = "" - TxtNumeroCuenta.Text = "" - TxtConvenioCIE.Text = "" - TxtReferencia.Text = "" - TxtRefCrediProveedor.Text = "" - TxtCorreoCuenta.Text = "" - End Sub - -#Region "GRIDVIEW - CUENTAS BANCARIAS" - Protected Sub GvBancosCuentas_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvBancosCuentas.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - If CveProveedor < 0 Then - For index = 1 To TempDTCuentasBancos.Rows.Count - TempDTCuentasBancos.Rows(index - 1)("CveCuentaDeposito") = index - Next - TempDTCuentasBancos.AcceptChanges() - End If - - - If e.Row.DBCampo("Estatus") = "True" Then - e.Row.FCLabel("LlbEstatusTexto").Text = "Activo" - Else - e.Row.FCLabel("LlbEstatusTexto").Text = "Inactivo" - End If - - - 'ESCONDE "ELIMINAR" Y "EDITAR" CUANDO LA CUENTA YA ESTA DADA DE ALTA EN LAYOUT-BBVA - - 'If CBool(e.Row.DBCampo("EstatusPagoElectronico")) Then - ' e.Row.FCLinkButton("imgD").Visible = False - ' If e.Row.DBCampo("CIE").ToString = "" Then - ' e.Row.FCLinkButton("imgE").Visible = False - ' End If - 'End If - - 'si esta editando - 'Dim EsSi = CBool(IIf(e.Row.FCLabel("LblEstatusPE").Text = "Sí", True, False)) - - 'If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - - ' e.Row.FCDropDownList("DdlMoneda").DataSource = GlobalDTMonedas - ' e.Row.FCDropDownList("DdlMoneda").DataBind() - ' e.Row.FCDropDownList("DdlMoneda").Items.Insert(0, New ListItem("Seleccione", "-1")) - ' ' GvBancosCuentas.SelectedRow.Cells. - ' If e.Row.DBCampo("CveMoneda").ToString.ToEntero > 0 Then - ' e.Row.FCDropDownList("DdlMoneda").SelectedValue = e.Row.DBCampo("CveMoneda") - ' End If - - ' 'If EsSi Then - ' ' e.Row.FCCheckBox("ChkEstatus").Enabled = False - ' 'End If - - ' 'SI TIENE PERMISO PUEDE EDITAR ESTATUS - ' If UsuarioActual.TienePermisoProceso(155) Then - ' 'Alert("usuario no tiene permiso", TipoMensaje.MsgInformacion) - ' e.Row.FCCheckBox("ChkEstatus").Visible = True - ' Else - ' e.Row.FCCheckBox("ChkEstatus").Visible = False - ' End If - - ' If CBool(e.Row.DBCampo("EstatusPagoElectronico")) Then - ' e.Row.FCDropDownList("DdlMoneda").Enabled = False - ' ' 'e.Row.FCTextBox("TxtReferencia").Enabled = False - ' ' 'Else - ' ' ' e.Row.FCLinkButton("imgD").Enabled = False - ' ' ' e.Row.FCLinkButton("imgE").Enabled = False - ' End If - - - 'End If - End If - End Sub - - ''Protected Sub GvBancosCuentas_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvBancosCuentas.RowEditing - '' Dim id As Integer = e.NewEditIndex - '' GvBancosCuentas.EditIndex = id - '' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - - '' 'Dim x As String = GvBancosCuentas.SelectedRowStyle("EstatusPagoElectronico") - - '' 'If CBool(e.Row.DBCampo("EstatusPagoElectronico")) AndAlso e.Row.DBCampo("Referencia").ToString <> "" Then - - '' 'End If - - ''End Sub - 'Protected Sub GvBancosCuentas_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvBancosCuentas.RowCancelingEdit - ' GvBancosCuentas.EditIndex = -1 - ' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - 'End Sub - 'Protected Sub GvBancosCuentas_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvBancosCuentas.RowUpdating - - ' Dim NombreBanco = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtNombreBanco").Text.Trim - ' Dim NumeroSucursal = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtNumeroSucursal").Text.Trim - ' Dim CLABE = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtCLABE").Text.Trim - ' Dim SWIFT = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtSWIFT").Text.Trim - ' Dim Plaza = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtPlaza").Text.Trim - ' Dim NumeroCuenta = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtNumeroCuenta").Text.Trim - ' Dim ConvenioCIE = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtConvenioCIE").Text.Trim - ' Dim Referencia = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtReferencia").Text.Trim - ' Dim RefCrediProveedor = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtRefCrediProveedor").Text.Trim - ' Dim CveMoneda = GvBancosCuentas.Rows(e.RowIndex).FCDropDownList("DdlMoneda").SelectedValue.ToString.ToEntero - ' Dim Moneda = GvBancosCuentas.Rows(e.RowIndex).FCDropDownList("DdlMoneda").SelectedItem.Text - ' Dim Estatus = GvBancosCuentas.Rows(e.RowIndex).FCCheckBox("ChkEstatus").Checked - - ' Dim EsBancomer = False - - ' If NombreBanco.ToUpper.Contains("BBVA") Or NombreBanco.ToUpper.Contains("BANCOMER") Or (CLABE.Length = 18 AndAlso CLABE.Substring(0, 3) = "012") Then - ' EsBancomer = True - ' End If - - ' ''COMENTADO PARA PERMITIR ENTRADA DE UNA CUENTA A PROVEEDOR, 22 DE SEPTIEMBRE, ISRAEL PIÑA - ' 'If EsBancomer AndAlso (CLABE.Length <> 18 AndAlso Not CLABE.Substring(0, 3) = "012") Then - ' ' Alert("La CLABE ingresada no pertenece a BANCOMER.", TipoMensaje.MsgAdvertencia) - ' ' Exit Sub - ' 'End If - - ' ''CLABE SIEMPRE OBLIGATORIA CUANDO NO ES BANCOMER CON CIE - ' 'If (CLABE.Trim.Length <> 18 And Not EsBancomer) Or (EsBancomer And ConvenioCIE.Trim.Length <> 6 And CLABE.Trim.Length <> 18) Then - ' ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' ' Exit Sub - ' 'End If - - ' 'QUE TENGA ALGUN DATO DE TIPO DE CUENTA - ' If NumeroCuenta.Length = 0 AndAlso CLABE.Length = 0 AndAlso SWIFT.Length = 0 AndAlso ConvenioCIE.Length = 0 Then - ' Alert("Debe especificar al menos un numero de cuenta.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 - ' If CLABE.Trim.Length <> 0 AndAlso CLABE.Trim.Length <> 18 Then - ' Alert("La CLABE debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' If UsuarioActual.CveEmpresa = 66 Then - ' 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER - ' If CLABE.Trim.Length <> 18 And CLABE.Trim.Length = 0 And Not EsBancomer And SWIFT.Length = 0 Then - ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 - ' If NumeroCuenta.Trim.Length <> 0 AndAlso NumeroCuenta.Trim.Length <> 10 AndAlso EsBancomer Then - ' Alert("El número de cuenta debe tener una longitud de 10 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' 'SI CIE TIENE ALGO REFERENCIA OBLIGATORIA - ' If ConvenioCIE.Trim.Length <> 0 And Referencia.Trim.Length < 3 Then - ' Alert("Cuando se ingresa Convenio CIE se debe especificar una referencia. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" - ' If EsBancomer AndAlso Not (NumeroCuenta.Trim.Length = 10 Or ConvenioCIE.Trim.Length <> 0) Then - ' Alert("Para cuentas BBVA BANCOMER es obligatorio el Número de Cuenta o CIE.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - ' Else - ' 'SI CIE TIENE ALGO DEBE TENER UNA LOGITUD MINIMA DE 5 - ' If ConvenioCIE.Trim.Length <> 0 And ConvenioCIE.Trim.Length < 5 Then - ' Alert("El Convenio CIE debe tener una longitud de al menos 5 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - ' End If - - - - ' Dim ObjCuentasBancos As New ClsGenerales - ' If CveProveedor > 0 Then - ' If ObjCuentasBancos.UpdateCuentasDepositos(GvBancosCuentas.DataKeys(e.RowIndex)("CveCuentaDeposito").ToString.ToEntero, NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, False, Estatus, CveMoneda) Then - ' DTCuentasBancos.Clear() - ' DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) - ' Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) - ' Else - ' Alert("Error al actualizar la cuenta bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) - ' End If - ' Else - ' Dim index = GvBancosCuentas.Rows(e.RowIndex).DataKey("CveCuentaDeposito").ToString.ToEntero - 1 - ' Dim Row As DataRow = TempDTCuentasBancos.Rows(index) - ' Row("BancoNombre") = NombreBanco - ' Row("Sucursal") = NumeroSucursal - ' Row("CLABE") = CLABE - ' Row("SWIFT") = SWIFT - ' Row("Plaza") = Plaza - ' Row("Cuenta") = NumeroCuenta - ' Row("CIE") = ConvenioCIE - ' Row("Referencia") = Referencia - ' Row("RefCrediProveedor") = RefCrediProveedor - ' Row("CveMoneda") = CveMoneda - ' Row("Moneda") = Moneda - ' Row("Estatus") = Estatus - ' TempDTCuentasBancos.AcceptChanges() - ' End If - - ' ObjCuentasBancos.Dispose() - - ' GvBancosCuentas.EditIndex = -1 - ' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - ' RecargaGlobalCuentasBancarias() - 'End Sub - 'Protected Sub GvBancosCuentas_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvBancosCuentas.RowDeleting - ' Dim ObjCuentasBancos As New ClsGenerales - - ' If CveProveedor > 0 Then - ' If ObjCuentasBancos.RemoveCuentasDepositos(GvBancosCuentas.DataKeys(e.RowIndex)("CveCuentaDeposito").ToString.ToEntero) Then - ' DTCuentasBancos.Clear() - ' DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) - - ' Alert("Cuenta Bancaria borrada con éxito.", TipoMensaje.MsgInformacion) - ' Else - ' Alert("No se pudo borrar la Cuenta Bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) - ' End If - ' Else - ' Dim index = GvBancosCuentas.Rows(e.RowIndex).DataKey("CveCuentaDeposito").ToString.ToEntero - 1 - ' TempDTCuentasBancos.Rows.RemoveAt(index) - ' End If - - ' If ObjCuentasBancos.GetCuentasDepositos Then - ' GlobalDTProveedoresCuentas(CveProveedor, True) = ObjCuentasBancos.DtResultados - ' End If - - ' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - ' ObjCuentasBancos.Dispose() - ' RecargaGlobalCuentasBancarias() - 'End Sub - - Public Sub Delete_Click(sender As Object, e As EventArgs) - Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) - Dim ObjCuentasBancos As New ClsGenerales - - If CveProveedor > 0 Then - If ObjCuentasBancos.RemoveCuentasDepositos(GvRow.DataKey("CveCuentaDeposito").ToEntero) Then - DTCuentasBancos.Clear() - DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) - - Alert("Cuenta Bancaria borrada con éxito.", TipoMensaje.MsgInformacion) - Else - Alert("No se pudo borrar la Cuenta Bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) - End If - Else - Dim index = GvRow.RowIndex - TempDTCuentasBancos.Rows.RemoveAt(index) - Alert("Cuenta Bancaria borrada con éxito.", TipoMensaje.MsgInformacion) - End If - - If ObjCuentasBancos.GetCuentasDepositos Then - GlobalDTProveedoresCuentas(CveProveedor, True) = ObjCuentasBancos.DtResultados - End If - - CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) - ObjCuentasBancos.Dispose() - RecargaGlobalCuentasBancarias() - End Sub - Private Sub RecargaGlobalCuentasBancarias(Optional ByVal CveCuenta As Integer = -1) - If CveProveedor > 0 Then - Dim ObjCuentasBancos As New ClsGenerales - - If ObjCuentasBancos.GetCuentasDepositos() Then - GlobalDTProveedoresCuentas(-1, True) = ObjCuentasBancos.DtResultados - End If - ObjCuentasBancos.Dispose() - End If - End Sub - -#End Region - - Private Sub CargaPSGridCuentasBancos(Orden As String) - If CveProveedor > 0 Then - If Orden <> String.Empty Then - Dim DV As New DataView(DTCuentasBancos, "", Orden, DataViewRowState.CurrentRows) - GvBancosCuentas.DataSource = DV.ToTable() - DV.Dispose() - Else - GvBancosCuentas.DataSource = DTCuentasBancos - End If - Else - If Orden <> String.Empty Then - Dim DV As New DataView(TempDTCuentasBancos, "", Orden, DataViewRowState.CurrentRows) - GvBancosCuentas.DataSource = DV.ToTable() - DV.Dispose() - Else - GvBancosCuentas.DataSource = TempDTCuentasBancos - End If - End If - - GvBancosCuentas.DataBind() - UpCuentasBancos.Update() - End Sub - - Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) - Dim Tipo As Integer = 1 - Dim Orden As String = "" - Dim Campo As String = "" - Dim gvi As Integer = 0 - Dim ImgButon As ImageButton = Nothing - Const OrdenInicial As String = "" - - Select Case sender.GetType().Name - Case "LinkButton" - Tipo = 1 - Campo = CType(sender, LinkButton).CommandArgument().ToString - ImgButon = CType(CType(sender, LinkButton).BindingContainer.FindControl("Img" & Campo.Replace(",", "_")), ImageButton) - Case "ImageButton" - Tipo = 2 - ImgButon = CType(sender, ImageButton) - Campo = CType(sender, ImageButton).CommandArgument().ToString - End Select - - If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then - ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) - RegistraScript(String.Format("$get('{0}').src='{1}'", ImgButon.ClientID, "/Imagenes/FlechasArriba.gif")) - Else - ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) - RegistraScript(String.Format("$get({0}).src='{1}'", ImgButon.ClientID, "/Imagenes/FlechasAbajo.gif")) - End If - - Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString - ViewState("OrdenCuentasBancos") = Orden - CargaPSGridCuentasBancos(Orden) - End Sub - - Private Sub CargaMonedas() - DdlMoneda.DataSource = GlobalDTMonedas - DdlMoneda.DataBind() - DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DdlMonedaPrefente.DataSource = GlobalDTMonedas - DdlMonedaPrefente.DataBind() - End Sub - -#End Region - -#Region "F I L T R O - S U C U R S A L" - Protected Sub CargaSerieSucursal() - CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero) - CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero) - CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero) - CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero) - SerieSucursal = RBSucursal.SelectedValue.ToString - - BtnVerMasCompras.Text = "Ver Más " - BtnVerMasBancos.Text = "Ver Más " - BtnVerMasAnticipos.Text = "Ver Más " - BtnVerMasComprasPagadas.Text = "Ver Más " - - UpnHistorial.Update() - UPPCxP.Update() - UpAnticipos.Update() - UpBancos.Update() - - Dim script As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#CXPContador""", """badge-success""", """badge-danger""", If(CountCuentasxPagar > 0, """badge-danger""", """badge-success"""), CountCuentasxPagar.ToString) - RegistraScript(script, "contadorcuentaspopagar") - - Dim script2 As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#AnticiposContador""", """badge-success""", """badge-danger""", If(CountAnticipos > 0, """badge-danger""", """badge-success"""), CountAnticipos.ToString) - RegistraScript(script2, "contadoranticipos") - - End Sub - Protected Sub MostrarFiltro() - - If GlobalDTProveedorSucursales(CveProveedor).Rows.Count > 1 Then - 'tHistorial.Visible = True - 'tCxP.Visible = True - 'tAnticipos.Visible = True - - 'CargaRB(RBHistorial) - 'CargaRB(RBAnticipos) - - 'RBCxP.DataSource = CType(ViewState("DTProveedorSucursales"), DataTable) - 'RBCxP.DataBind() - 'RBCxP.Items.Insert(0, New ListItem("Todas", "")) - 'RBCxP.SelectedValue = "" - - DivFiltraSucursal.Visible = True - CargaRB(RBSucursal) - - CargaSerieSucursal() - Else - 'tHistorial.Visible = False - 'tCxP.Visible = False - 'tAnticipos.Visible = False - DivFiltraSucursal.Visible = False - End If - End Sub - Protected Sub CargaRB(R As DropDownList) - R.DataSource = GlobalDTProveedorSucursales(CveProveedor) - R.DataBind() - R.Items.Insert(0, New ListItem("Todas", "-1")) - If CveProveedorSucursal > 0 Then R.SelectedValue = CveProveedorSucursal.ToString Else R.SelectedValue = "-1" - End Sub - 'Protected Sub RBHistorial_SelectedIndexChanged(sender As Object, e As EventArgs) - ' CargaHistorial(RBHistorial.SelectedValue.ToString) - 'End Sub - 'Protected Sub RBCxP_SelectedIndexChanged(sender As Object, e As EventArgs) - ' CargaCxP(RBCxP.SelectedValue.ToString) - 'End Sub - 'Protected Sub RBAnticipos_SelectedIndexChanged(sender As Object, e As EventArgs) - ' CargaAnticipos(RBAnticipos.SelectedValue.ToString) - 'End Sub - Protected Sub RBSucursal_SelectedIndexChanged(sender As Object, e As EventArgs) - CargaSerieSucursal() - End Sub -#End Region - -#Region " FILTRO MONEDA " - - Private Sub CargaFiltroMonedas() - - 'SI YA ESTA VISIBLE NO SE PUEDE PONER INVISIBLE - If Not DivFiltraMoneda.Visible Then - If DetectaMonedas() Then - DivFiltraMoneda.Visible = True - End If - End If - - End Sub - - Private Function DetectaMonedas() As Boolean - 'Dim DtMonedas As New DataTable - 'DtMonedas.Columns.Add("CveMoneda", GetType(Integer)) - 'DtMonedas.Columns.Add("Abreviatura", GetType(String)) - Dim OcupaFiltro = False - - If CType(GVHistorial.DataSource, DataTable) IsNot Nothing AndAlso CType(GVHistorial.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then - OcupaFiltro = True - Return OcupaFiltro - End If - - If CType(GvCxP.DataSource, DataTable) IsNot Nothing AndAlso CType(GvCxP.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then - OcupaFiltro = True - Return OcupaFiltro - End If - - If CType(GvCxPHistorial.DataSource, DataTable) IsNot Nothing AndAlso CType(GvCxPHistorial.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then - OcupaFiltro = True - Return OcupaFiltro - End If - - If CType(GvA.DataSource, DataTable) IsNot Nothing AndAlso CType(GvA.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then - OcupaFiltro = True - Return OcupaFiltro - End If - - If CType(GvAH.DataSource, DataTable) IsNot Nothing AndAlso CType(GvAH.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then - OcupaFiltro = True - Return OcupaFiltro - End If - - If CType(GvBancos.DataSource, DataTable) IsNot Nothing AndAlso CType(GvBancos.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then - OcupaFiltro = True - Return OcupaFiltro - End If - - Return OcupaFiltro - - End Function - - Protected Sub RBMoneda_SelectedIndexChanged(sender As Object, e As EventArgs) - CveMonedaFiltro = RBMoneda.SelectedValue.ToEntero - - CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero) - CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero) - CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero) - CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero) - SerieSucursal = RBSucursal.SelectedValue.ToString - - CargaFiltroMonedas() - End Sub -#End Region - -#Region "SALDOS BENEFICIARIOS" - 'Private Sub CargaSaldosBeneficiarios() - ' Dim ObjCompras As New ClsCompras - - ' If ObjCompras.GetBeneficiarios2(CveProveedor, UsuarioActual.CveEmpresa) Then - ' GvSaldosBeneficiarios.DataSource = ObjCompras.DtResultados.FiltraParametros("TipoLetra <> 'Proveedor'") - ' Else - ' Alert("Ocurrió un error al obtener los Saldos Beneficiarios.", TipoMensaje.MsgError) - ' End If - - ' ObjCompras.Dispose() - - ' GvSaldosBeneficiarios.DataBind() - 'End Sub -#End Region - -#Region " R E P O R T E - C X P " - Protected Sub GenerarReporteCxP_Click(sender As Object, e As EventArgs) - 'If UsuarioActual.CveUsuario = 100 Then - ' ImprimirReporteCxP() - 'Else - ' GenerarPDFCxP() - 'End If - Dim Formato As String = RBLGenerarReporteCxC.SelectedValue - - If rblreporte.SelectedValue = "cxp" Then - ImprimirReporteCxPCrystal(Formato) - ElseIf rblreporte.SelectedValue = "anc" Then - ImprimirReporteCxP(Formato) - End If - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddReporte")) - End Sub - - Private Sub ImprimirReporteCxPCrystal(Optional Formato As String = "PDF") - Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepProveedorCxP.rpt", UsuarioActual.Empresa.Ruta)) - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - - Dim DTCxPTempral As DataTable = Nothing - - 'OBTENEMOS LOS DATOS - Dim FI = If(TxtFechaInicioCXP.Text = "" Or TxtFechaInicioCXP.Text = "__/__/____", "-1", TxtFechaInicioCXP.Text) - Dim FF = If(TxtFechaFinCXP.Text = "" Or TxtFechaFinCXP.Text = "__/__/____", "-1", TxtFechaFinCXP.Text) - Dim FVI = If(txtFechaVI.Text = "" Or txtFechaVI.Text = "__/__/____", "-1", txtFechaVI.Text) - Dim FVF = If(txtFechaVF.Text = "" Or txtFechaVF.Text = "__/__/____", "-1", txtFechaVF.Text) - - Dim ObjMovtos As New ClsMovimientos() - If ObjMovtos.GetCxPProveedor(CveProveedor, FI, FF, -1, -1, -1, -1, CveMonedaFiltro, -1, RBSucursal.SelectedValue.ToEntero, -1, FVI, FVF) Then - DTCxPTempral = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, OrdenVencimiento ,FechaVencimiento")) - End If - - If DTCxPTempral IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then - Dim dr As DataRow = DTCxPTempral.Rows(0) - Dim lista = New List(Of CrystalParametro) - - lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) - lista.Add(New CrystalParametro("TipoCuentas", DdlTipoCuentasCxP.SelectedItem.Text)) - lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI))) - lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF))) - lista.Add(New CrystalParametro("NombreProveedor", LtlProveedor.Text)) - lista.Add(New CrystalParametro("DireccionProveedor", TxtDireccion.Text)) - lista.Add(New CrystalParametro("ProveedorRFC", TxtRFC.Text)) - lista.Add(New CrystalParametro("ProveedorTelefono", TxtTelefono.Text)) - lista.Add(New CrystalParametro("DiasCredito", TxtPlazoCobranza.Text)) - lista.Add(New CrystalParametro("LimiteCredito", TxtLimiteCredito.Text)) - lista.Add(New CrystalParametro("SaldoDisponible", (TxtLimiteCredito.Text.ToDouble - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) - lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre)) - - Dim params As New List(Of ReportParameter) - - If Imagen.Exists Then - lista.Add(New CrystalParametro("LogoPath", logouri)) - Else - lista.Add(New CrystalParametro("LogoPath", "")) - End If - - Dim dtnc As New DataTable - Dim ObjCompra As New ClsCompras() - For Each dr2 As DataRow In DTCxPTempral.FiltraParametros("", DistinctColumns:={"CveIE"}).Rows - If ObjCompra.GetComprasNotasCredito(-1, -1, dr2("CveIE").ToString.ToEntero) Then - dtnc.Merge(ObjCompra.DtResultados) - End If - Next - ObjCompra.Dispose() - - If dtnc IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then - If Archivo.Exists Then - ImprimirbytesPDF(ImprimirSubRepPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepProveedorCxP.rpt", DTCxPTempral, lista, DTCxPTempral, dtnc, "Ing", "Ant", "Estado de cuenta", Formato), "Estado de cuenta", Formato) - Else - ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepProveedorCxP.rpt"), DTCxPTempral, lista, DTCxPTempral, dtnc, "Ing", "Ant", "Estado de cuenta", Formato), "Estado de cuenta", Formato) - End If - End If - - Else - Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) - End If - - ObjMovtos.Dispose() - End Sub - - 'Private Sub GenerarPDFCxP() - ' Dim missing As Object = System.Reflection.Missing.Value - - - ' If rblreporte.SelectedValue = "cxp" Then - ' 'OBTENEMOS LOS DATOS - ' Dim ObjMovtos As New ClsMovimientos() - ' Dim DtCxP As DataTable - ' Dim FI = If(TxtFechaInicioCxP.Text = "" Or TxtFechaInicioCxP.Text = "__/__/____", "-1", TxtFechaInicioCxP.Text) - ' Dim FF = If(TxtFechaFinCxP.Text = "" Or TxtFechaFinCxP.Text = "__/__/____", "-1", TxtFechaFinCxP.Text) - - ' If ObjMovtos.GetCxPProveedor(CveProveedor, FI, FF, -1, -1, -1, -1, CveMoneda, -1, SerieSucursal, -1) Then - ' DtCxP = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, OrdenVencimiento ,FechaVencimiento")) - ' Else - ' DtCxP = Nothing - ' End If - ' ObjMovtos.Dispose() - - - ' 'GENERAMOS EXCEL - ' 'Try - ' ' Dim Formato = "Formatos\ReporteCxP.xlsm" - - ' ' Dim TC As Double = 1 - ' ' Dim Excel As msExcel.Application = New msExcel.Application() - ' ' Dim VB_Module As VBComponent = Nothing - ' ' Excel.Visible = True - ' ' Excel.ScreenUpdating = True - ' ' Excel.DisplayAlerts = True - - ' ' 'Valida y/o Crea Directorio Formatos - ' ' If Not IO.Directory.Exists(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) - - ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" - ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then - ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteCxP.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) - ' ' End If - - ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) - ' ' ArchivoBase.CopyTo(String.Format("{0}Formatos\ReporteCxP-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor), True) - ' ' Dim ArchivoTemp As New System.IO.FileInfo(String.Format("{0}Formatos\ReporteCxP-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor)) - ' ' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) - ' ' Libro.Activate() - ' ' Dim Hoja As msExcel.Worksheet = CType(Libro.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet) - ' ' Hoja.Visible = Microsoft.Office.Interop.Excel.XlSheetVisibility.xlSheetVisible - ' ' Hoja.Activate() - - ' ' Try - - ' ' 'GENERALES - ' ' Hoja.Range("B6:B6").Value = LtlProveedor.Text - ' ' Hoja.Range("G2:G2").Value = DdlTipoCuentasCxP.SelectedItem.Text - ' ' Hoja.Range("G4:G4").Value = If(FI = "-1", "Sin Fecha", FI) - ' ' Hoja.Range("G6:G6").Value = If(FF = "-1", "Sin Fecha", FF) - - ' ' If DtCxP.Rows.Count > 0 Then - ' ' VB_Module = CType(Libro.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule), VBComponent) - ' ' VB_Module.CodeModule.AddFromString(GetMacro) - - ' ' Dim CeldaI As Integer = 9 - ' ' Dim CeldaF As Integer = 9 - - ' ' 'DETALLES - ' ' For Each Row As DataRow In DtCxP.Rows - ' ' Hoja.Range(String.Format("A{0}:A{0}", CeldaF)).Value = Row("SerieFolio").ToString - ' ' Hoja.Range(String.Format("C{0}:C{0}", CeldaF)).Value = Row("Descripcion").ToString - ' ' Hoja.Range(String.Format("D{0}:D{0}", CeldaF)).Value = Row("Abreviatura").ToString - ' ' Hoja.Range(String.Format("E{0}:E{0}", CeldaF)).Value = Row("Original").ToString.FormatoNumero - ' ' Hoja.Range(String.Format("F{0}:F{0}", CeldaF)).Value = Row("Abonado").ToString.FormatoNumero - ' ' Hoja.Range(String.Format("G{0}:G{0}", CeldaF)).Value = Row("ImporteNC").ToString.FormatoNumero - ' ' Hoja.Range(String.Format("H{0}:H{0}", CeldaF)).Value = Row("Saldo").ToString.FormatoNumero - - ' ' If Row("CveCompra").ToString = "" Then - ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = "" - ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 15 - ' ' Else - ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = Row("Fecha").ToString.ToDate.ToString("dd/MM/yyyy") - ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 0 - ' ' End If - - ' ' If DtCxP.Rows.Count > 1 AndAlso CeldaF - CeldaI < DtCxP.Rows.Count - 1 Then - ' ' CeldaF = CeldaF + 1 - ' ' Libro.Application.Run("AddRow", (CeldaF - 1).ToString, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, - ' ' missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) - ' ' Libro.Save() - ' ' Libro.Application.DisplayAlerts = False - ' ' Libro.Application.ScreenUpdating = False - ' ' End If - ' ' Next - - ' ' End If - - ' ' If Not IO.Directory.Exists(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) - - ' ' 'Exportar PDF - ' ' Dim pdfFileOut As String = String.Format("{0}PDF\CxP-{1}.pdf", UsuarioActual.Empresa.Ruta, CveProveedor) - ' ' Dim outputFileName As Object = pdfFileOut - ' ' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF - ' ' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing) - ' ' Catch ex As Exception - ' ' Dim Msgerr As String = "" - ' ' Msgerr.Alert(String.Format("Ocurrió un error {0}", ex.Message), TipoMensaje.MsgError) - ' ' End Try - - ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Hoja) - ' ' Hoja = Nothing - ' ' Dim saveChanges As Object = msExcel.XlSaveAction.xlDoNotSaveChanges - ' ' CType(Libro, msExcel._Workbook).Close(saveChanges, missing, missing) - ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Libro) - ' ' Libro = Nothing - ' ' Excel.Quit() - ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel) - ' ' Excel = Nothing - ' ' GC.Collect() - ' ' GC.WaitForPendingFinalizers() - - ' ' ArchivoTemp.Delete() - - ' ' Dim Descargas As New StringBuilder() - ' ' Descargas.AppendFormat("
  • Reporte
  • ", UsuarioActual.CveEmpresa, CveProveedor, Now.Ticks) - ' ' Dim Msg As String = String.Format("
    El Documento se generó correctamente.


    Descargas:", Descargas.ToString) 'TipoMensaje.MsgInformacion - ' ' Msg.Alert(Msg, TipoMensaje.MsgInformacion) - ' 'Catch ex As Exception - - ' ' Dim Msg As String = "No se pudo generar el documento." - ' ' Msg.OnError(Msg, ex, "CveProveedor=" & CveProveedor) - - ' 'End Try - - ' ElseIf rblreporte.SelectedValue = "anc" Then - ' 'OBTENEMOS LOS DATOS - ' Dim ObjMovtos As New ClsMovimientos() - ' Dim DtANC As DataTable - ' Dim FI = If(TxtFechaInicioCxP.Text = "" Or TxtFechaInicioCxP.Text = "__/__/____", "-1", TxtFechaInicioCxP.Text) - ' Dim FF = If(TxtFechaFinCxP.Text = "" Or TxtFechaFinCxP.Text = "__/__/____", "-1", TxtFechaFinCxP.Text) - - ' If ObjMovtos.GetAnticiposProveedor(CveProveedor, SerieSucursal, CveMoneda, -1, FI, FF) Then - ' DtANC = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, FechaVencimiento")) - ' Else - ' DtANC = Nothing - ' End If - ' ObjMovtos.Dispose() - - - ' 'GENERAMOS EXCEL - ' 'Try - ' ' Dim Formato = "Formatos\ReporteANC.xlsm" - - ' ' Dim TC As Double = 1 - ' ' Dim Excel As msExcel.Application = New msExcel.Application() - ' ' Dim VB_Module As VBComponent = Nothing - ' ' Excel.Visible = True - ' ' Excel.ScreenUpdating = True - ' ' Excel.DisplayAlerts = True - - ' ' 'Valida y/o Crea Directorio Formatos - ' ' If Not IO.Directory.Exists(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) - - ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" - ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then - ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteANC.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) - ' ' End If - - ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) - ' ' ArchivoBase.CopyTo(String.Format("{0}Formatos\Anticipos-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor), True) - ' ' Dim ArchivoTemp As New System.IO.FileInfo(String.Format("{0}Formatos\Anticipos-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor)) - ' ' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) - ' ' Libro.Activate() - ' ' Dim Hoja As msExcel.Worksheet = CType(Libro.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet) - ' ' Hoja.Visible = Microsoft.Office.Interop.Excel.XlSheetVisibility.xlSheetVisible - ' ' Hoja.Activate() - - ' ' Try - - ' ' 'GENERALES - ' ' Hoja.Range("B6:B6").Value = LtlProveedor.Text - ' ' Hoja.Range("G2:G2").Value = DdlTipoCuentasCxP.SelectedItem.Text - ' ' Hoja.Range("G4:G4").Value = If(FI = "-1", "Sin Fecha", FI) - ' ' Hoja.Range("G6:G6").Value = If(FF = "-1", "Sin Fecha", FF) - - ' ' If DtANC.Rows.Count > 0 Then - ' ' VB_Module = CType(Libro.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule), VBComponent) - ' ' VB_Module.CodeModule.AddFromString(GetMacro) - - ' ' Dim CeldaI As Integer = 9 - ' ' Dim CeldaF As Integer = 9 - - ' ' 'DETALLES - ' ' For Each Row As DataRow In DtANC.Rows - ' ' Hoja.Range(String.Format("A{0}:A{0}", CeldaF)).Value = Row("SerieFolio").ToString - ' ' Hoja.Range(String.Format("C{0}:C{0}", CeldaF)).Value = Row("Descripcion").ToString - ' ' Hoja.Range(String.Format("D{0}:D{0}", CeldaF)).Value = Row("Abreviatura").ToString - ' ' Hoja.Range(String.Format("E{0}:E{0}", CeldaF)).Value = Row("Original").ToString.FormatoNumero - ' ' Hoja.Range(String.Format("F{0}:F{0}", CeldaF)).Value = Row("Abonado").ToString.FormatoNumero - ' ' Hoja.Range(String.Format("G{0}:G{0}", CeldaF)).Value = Row("Saldo").ToString.FormatoNumero - - - ' ' If Row("CveCompra").ToString = "" Then - ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = "" - ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 15 - ' ' Else - ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = Row("Fecha").ToString.ToDate.ToString("dd/MM/yyyy") - ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 0 - ' ' End If - - ' ' If DtANC.Rows.Count > 1 AndAlso CeldaF - CeldaI < DtANC.Rows.Count - 1 Then - ' ' CeldaF = CeldaF + 1 - ' ' Libro.Application.Run("AddRow", (CeldaF - 1).ToString, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, - ' ' missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) - ' ' Libro.Save() - ' ' Libro.Application.DisplayAlerts = False - ' ' Libro.Application.ScreenUpdating = False - ' ' End If - ' ' Next - - ' ' End If - - ' ' If Not IO.Directory.Exists(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) - - ' ' 'Exportar PDF - ' ' Dim pdfFileOut As String = String.Format("{0}PDF\Anticipos-{1}.pdf", UsuarioActual.Empresa.Ruta, CveProveedor) - ' ' Dim outputFileName As Object = pdfFileOut - ' ' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF - ' ' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing) - ' ' Catch ex As Exception - ' ' Dim Msgerr As String = "" - ' ' Msgerr.Alert(String.Format("Ocurrió un error {0}", ex.Message), TipoMensaje.MsgError) - ' ' End Try - - ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Hoja) - ' ' Hoja = Nothing - ' ' Dim saveChanges As Object = msExcel.XlSaveAction.xlDoNotSaveChanges - ' ' CType(Libro, msExcel._Workbook).Close(saveChanges, missing, missing) - ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Libro) - ' ' Libro = Nothing - ' ' Excel.Quit() - ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel) - ' ' Excel = Nothing - ' ' GC.Collect() - ' ' GC.WaitForPendingFinalizers() - - ' ' ArchivoTemp.Delete() - - ' ' Dim Descargas As New StringBuilder() - ' ' Descargas.AppendFormat("
  • Reporte
  • ", UsuarioActual.CveEmpresa, CveProveedor, Now.Ticks) - ' ' Dim Msg As String = String.Format("
    El Documento se generó correctamente.


    Descargas:", Descargas.ToString) 'TipoMensaje.MsgInformacion - ' ' Msg.Alert(Msg, TipoMensaje.MsgInformacion) - ' 'Catch ex As Exception - - ' ' Dim Msg As String = "No se pudo generar el documento." - ' ' Msg.OnError(Msg, ex, "CveProveedor=" & CveProveedor) - - ' 'End Try - ' End If - - 'End Sub - - Private Function GetMacro() As String - Dim SB As New StringBuilder - SB.Append(" Sub AddRow(Row As String) " & vbLf) - SB.Append(" Rows(Row & "":"" & Row).Select " & vbLf) - SB.Append(" Selection.Copy " & vbLf) - SB.Append(" Selection.Insert Shift:=xlDown " & vbLf) - SB.Append(" End Sub ") - Return SB.ToString - End Function - - Private Sub GvOC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvOC.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - e.Row.Cells(3).Attributes.Add("data-order", e.Row.DBCampo("FechaIng").ToDate.Ticks.ToString) - e.Row.Cells(6).Attributes.Add("data-order", CType(e.Row.DBCampo("Total").ToDecimal, String)) - End If - End Sub - - Private Sub ImprimirReporteCxP(Optional Formato As String = "PDF") - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - Dim ObjMovtos As New ClsMovimientos() - - If rblreporte.SelectedValue = "cxp" Then - - 'OBTENEMOS LOS DATOS - Dim FI = If(TxtFechaInicioCXP.Text = "" Or TxtFechaInicioCXP.Text = "__/__/____", "-1", TxtFechaInicioCXP.Text) - Dim FF = If(TxtFechaFinCXP.Text = "" Or TxtFechaFinCXP.Text = "__/__/____", "-1", TxtFechaFinCXP.Text) - Dim FVI = If(txtFechaVI.Text = "" Or txtFechaVI.Text = "__/__/____", "-1", txtFechaVI.Text) - Dim FVF = If(txtFechaVF.Text = "" Or txtFechaVF.Text = "__/__/____", "-1", txtFechaVF.Text) - - Dim FechaIn As String = $" Fecha Inicio: {TxtFechaInicioCXP.Text}" - Dim FechaFn As String = $" Fecha Fin: {TxtFechaFinCXP.Text}" - If TxtFechaInicioCXP.Text = "" Then FechaIn = "" - If TxtFechaFinCXP.Text = "" Then FechaFn = "" - - Dim FechVI As String = $" Fecha Venc. Inic.: {txtFechaVI.Text}" - Dim FechVF As String = $" Fecha Venc. Final: {txtFechaVF.Text}" - If txtFechaVI.Text = "" Then FechVI = "" - If txtFechaVF.Text = "" Then FechVF = "" - Dim Proveedor As String = $" Proveedor: {GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {CveProveedor}")}" - - Dim DTCxPTempral As DataTable = Nothing - - If ObjMovtos.GetCxPProveedor(CveProveedor, FI, FF, -1, -1, -1, -1, CveMonedaFiltro, -1, RBSucursal.SelectedValue.ToEntero, -1, FVI, FVF) Then - DTCxPTempral = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, OrdenVencimiento ,FechaVencimiento")) - End If - - If DTCxPTempral IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then - Dim dr As DataRow = DTCxPTempral.Rows(0) - - Dim params As New List(Of ReportParameter) - params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) - params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion)) - params.Add(New ReportParameter("TipoCuentas", DdlTipoCuentasCxP.SelectedItem.Text)) - params.Add(New ReportParameter("FechaInicio", FI)) - params.Add(New ReportParameter("FechaFin", FF)) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) - params.Add(New ReportParameter("NombreProveedor", LtlProveedor.Text)) - params.Add(New ReportParameter("DireccionProveedor", TxtDireccion.Text)) - params.Add(New ReportParameter("ProveedorRFC", TxtRFC.Text)) - params.Add(New ReportParameter("ProveedorTelefono", TxtTelefono.Text)) - params.Add(New ReportParameter("DiasCredito", TxtPlazoCobranza.Text)) - params.Add(New ReportParameter("LimiteCredito", TxtLimiteCredito.Text)) - params.Add(New ReportParameter("SaldoDisponible", (TxtLimiteCredito.Text.ToDouble - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) - params.Add(New ReportParameter("AgrupadoPor", $"Agrupado Por: {Proveedor}{FechaIn}{FechaFn}{FechVI}{FechVF}")) - - If Imagen.Exists Then - params.Add(New ReportParameter("LogoPath", logouri)) - Else - params.Add(New ReportParameter("LogoPath", "")) - End If - - ImprimirPDF("Empresas/Grales/Formatos/RepProveedorCxP.rdlc", DTCxPTempral, params, "RepCxP") - Else - Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) - End If - - - ElseIf rblreporte.SelectedValue = "anc" Then - - 'OBTENEMOS LOS DATOS - Dim DtANC As DataTable - Dim FI = If(TxtFechaInicioCXP.Text = "" Or TxtFechaInicioCXP.Text = "__/__/____", "-1", TxtFechaInicioCXP.Text) - Dim FF = If(TxtFechaFinCXP.Text = "" Or TxtFechaFinCXP.Text = "__/__/____", "-1", TxtFechaFinCXP.Text) - Dim CveProveedorSucursal As Integer = RBSucursal.SelectedValue.ToEntero() - If ObjMovtos.GetAnticiposProveedor(CveProveedor, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), CveMoneda, -1, FI, FF) Then - DtANC = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, FechaVencimiento")) - Else - DtANC = Nothing - End If - - If DtANC.Rows.Count > 0 Then - Dim dr As DataRow = DtANC.Rows(0) - - Dim params As New List(Of ReportParameter) - params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) - params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion)) - params.Add(New ReportParameter("TipoCuentas", DdlTipoCuentasCxP.SelectedItem.Text)) - params.Add(New ReportParameter("NombreProveedor", LtlProveedor.Text)) - params.Add(New ReportParameter("FechaInicio", FI)) - params.Add(New ReportParameter("FechaFin", FF)) - If Imagen.Exists Then - params.Add(New ReportParameter("LogoPath", logouri)) - Else - params.Add(New ReportParameter("LogoPath", "")) - End If - - ImprimirPDF("Empresas/Grales/Formatos/RepAntNC.rdlc", DtANC, params, "RepAnticiposProveedor", Formato) - Else - Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) - End If - - - End If - ObjMovtos.Dispose() - End Sub - -#End Region - -#Region "CUENTAS CONTABLES" - Private Sub ActivarRegistroAutomatico() - - If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then - Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) - - '' 17/03/2017 FUNCIONALIDADES 249,250,251 - '' Proveedores - If DdlCtaContProveedores.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(201).ToEntero > 0 Then - DdlCtaContProveedores.Width = 175 - BtnActivaRegistroProveedores.Visible = True - - '' Agrega Cuenta de la funcionalidad 249 - If UsuarioActual.Empresa.Funcionalidad(249).ToEntero > 0 Then - - If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(249).ToEntero, "-1", 1) Then - DdlCtaContProveedores.DataSource = ObjContabilidad.DtResultados - DdlCtaContProveedores.DataBind() - End If - End If - - End If - - If DdlCtaContExtranjera.SelectedValue.ToEntero <= 0 Then - - '' Agrega Cuenta de la funcionalidad 250 - If UsuarioActual.Empresa.Funcionalidad(250).ToEntero > 0 Then - - If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(250).ToEntero, "-1", 1) Then - DdlCtaContExtranjera.DataSource = ObjContabilidad.DtResultados - DdlCtaContExtranjera.DataBind() - End If - End If - - End If - - If DdlCtaContComplementaria.SelectedValue.ToEntero <= 0 Then - - '' Agrega Cuenta de la funcionalidad 251 - If UsuarioActual.Empresa.Funcionalidad(251).ToEntero > 0 Then - - If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(251).ToEntero, "-1", 1) Then - DdlCtaContComplementaria.DataSource = ObjContabilidad.DtResultados - DdlCtaContComplementaria.DataBind() - End If - End If - - End If - - '' 17/03/2017 FUNCIONALIDADES 252,253, 254 - 'Acreedores - If DdlCtaContAcreedores.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(202).ToEntero > 0 Then - DdlCtaContAcreedores.Width = 175 - BtnActivaRegistroAcreedores.Visible = True - - '' Agrega Cuenta de la funcionalidad 252 - If UsuarioActual.Empresa.Funcionalidad(252).ToEntero > 0 Then - - If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(252).ToEntero, "-1", 1) Then - DdlCtaContAcreedores.DataSource = ObjContabilidad.DtResultados - DdlCtaContAcreedores.DataBind() - End If - End If - End If - - '' Agrega Cuenta de la funcionalidad 253 - If DdlCtaContAcreedoresExtranjera.SelectedValue.ToEntero <= 0 Then - If UsuarioActual.Empresa.Funcionalidad(253).ToEntero > 0 Then - - If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(253).ToEntero, "-1", 1) Then - - DdlCtaContAcreedoresExtranjera.DataSource = ObjContabilidad.DtResultados - DdlCtaContAcreedoresExtranjera.DataBind() - End If - End If - End If - - '' Agrega Cuenta de la funcionalidad 254 - If DdlCtaContAcreedoresComplementaria.SelectedValue.ToEntero <= 0 Then - If UsuarioActual.Empresa.Funcionalidad(254).ToEntero > 0 Then - - If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(254).ToEntero, "-1", 1) Then - DdlCtaContAcreedoresComplementaria.DataSource = ObjContabilidad.DtResultados - DdlCtaContAcreedoresComplementaria.DataBind() - End If - End If - End If - - - 'Documentos X Pagar - If DdlCtaContDocsXPagar.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(203).ToEntero > 0 Then - DdlCtaContDocsXPagar.Width = 175 - BtnActivaRegistroDocsXPagar.Visible = True - End If - - 'Anticipos - If DdlCtaContAnticipos.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(204).ToEntero > 0 Then - DdlCtaContAnticipos.Width = 175 - BtnActivaRegistroAnticipos.Visible = True - End If - - 'Deudores - If DdlCtaContDeudor.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(205).ToEntero > 0 Then - DdlCtaContDeudor.Width = 175 - BtnActivaRegistroDeudores.Visible = True - End If - End If - End Sub - - Private Sub BtnActivaRegistroProveedores_Click(sender As Object, e As EventArgs) Handles BtnActivaRegistroProveedores.Click - 'Dim IdCuentaContable As Integer = -1 - 'Dim CtaCodigo As String - 'Dim TieneError = False - - 'Dim ObjContaAC As New ClsContPAQi(UsuarioActual.Empresa) - 'Dim ObjProveedores As New ClsCompProveedores() - 'ObjContaAC.IniciaTransacSQL() - 'ObjProveedores.IniciaTransacSQL() - - 'IdCuentaContable = ObjContaAC.AddSiguienteCuentaHijo(UsuarioActual.Empresa.Funcionalidad(109).ToEntero, TxtRazonSocial.Text.Trim) - 'ObjContaAC.GetCuentas(IdCuentaContable, "-1", -1) - - 'Dim dt = ObjContaAC.DtResultados - 'Dim row As DataRow = dt.Rows(dt.Rows.Count - 1) - 'CtaCodigo = CStr(row("CtaCodigo")) - - 'If IdCuentaContable > 0 Then - ' If Not ObjProveedores.VincularCuentasContables(IdCuentaContable, CtaCodigo, -1, "-1", -1, "-1", -1, "-1", -1, "-1", CveProveedor) Then - ' TieneError = True - ' End If - 'Else - ' TieneError = True - 'End If - - - 'If Not TieneError Then - ' Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) - ' DdlCtaContProveedores.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : DdlCtaContProveedores.SelectedValueExist(IdCuentaContable.ToString) - ' BtnActivaRegistroProveedores.Visible = False - ' DdlCtaContProveedores.Width = 206 - ' ObjProveedores.Commit() - ' ObjContaAC.Commit() - 'Else - ' Alert("error", TipoMensaje.MsgError) - ' ObjProveedores.RollBack() - ' ObjContaAC.RollBack() - 'End If - - - 'ObjContaAC.Dispose() - 'ObjProveedores.Dispose() - 'UPPContable.Update() - - End Sub - - Protected Sub BtnAgregaCuentaContable(ByVal sender As Object, ByVal e As EventArgs) - Dim CuentaContable = DirectCast(sender, Button).CommandArgument.ToString - Dim Button = DirectCast(sender, Button) - Select Case CuentaContable - Case "Proveedores" - AgregarCuentaContable(Button, DdlCtaContProveedores) - Case "Acreedores" - AgregarCuentaContable(Button, DdlCtaContAcreedores) - Case "DocsXPagar" - AgregarCuentaContable(Button, DdlCtaContDocsXPagar) - Case "Anticipos" - AgregarCuentaContable(Button, DdlCtaContAnticipos) - Case "Deudores" - AgregarCuentaContable(Button, DdlCtaContDeudor) - End Select - - End Sub - - Private Sub AgregarCuentaContable(btn As Button, ddl As DropDownList) - If UsuarioActual.Empresa.UsaContabilidad = True Then - Dim IdCuentaContable As Integer = -1 - Dim CtaCodigo As String = "" - Dim TieneError = False - Dim IdCtaContableProveedores As Integer = -1, IdCtaContableAcreedores As Integer = -1, IdCtaContableDocsXPagar As Integer = -1, IdCtaContableAnticipos As Integer = -1, IdCtaContableDeudor As Integer = -1 - Dim CtaCodigoProveedores As String = "-1", CtaCodigoAcreedores As String = "-1", CtaCodigoDocsXPagar As String = "-1", CtaCodigoAnticipos As String = "-1", CtaCodigoDeudor As String = "-1" - - Dim ObjContaAC As New ClsContPAQi(UsuarioActual.Empresa) - Dim ObjProveedores As New ClsCompProveedores() - ObjContaAC.IniciaTransacSQL() - ObjProveedores.IniciaTransacSQL() - - Dim CuentaPadre = -1 - - Select Case btn.CommandArgument.ToString - Case "Proveedores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(201).ToEntero - Case "Acreedores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(202).ToEntero - Case "DocsXPagar" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(203).ToEntero - Case "Anticipos" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(204).ToEntero - Case "Deudores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(205).ToEntero - - End Select - - 'SI EL NOMBRE DEL PROVEEDOR ES MAYOR DE 50 LO CORTAMOS - Dim NombreCuenta = If(TxtRazonSocial.Text.Trim.Length > 50, TxtRazonSocial.Text.Trim.Substring(0, 50), TxtRazonSocial.Text.Trim) - - IdCuentaContable = ObjContaAC.AddSiguienteCuentaHijo(CuentaPadre, NombreCuenta, "D", 2) - If IdCuentaContable > 0 Then - - ObjContaAC.GetCuentas(IdCuentaContable, "-1", -1) - Dim dt = ObjContaAC.DtResultados - - If dt.Rows.Count = 1 Then - - Dim row As DataRow = dt.Rows(0) - CtaCodigo = CStr(row("CtaCodigo")) - - Select Case btn.CommandArgument.ToString - Case "Proveedores" - IdCtaContableProveedores = IdCuentaContable - CtaCodigoProveedores = CtaCodigo - Case "Acreedores" - IdCtaContableAcreedores = IdCuentaContable - CtaCodigoAcreedores = CtaCodigo - Case "DocsXPagar" - IdCtaContableDocsXPagar = IdCuentaContable - CtaCodigoDocsXPagar = CtaCodigo - Case "Anticipos" - IdCtaContableAnticipos = IdCuentaContable - CtaCodigoAnticipos = CtaCodigo - Case "Deudores" - IdCtaContableDeudor = IdCuentaContable - CtaCodigoDeudor = CtaCodigo - End Select - - - If Not ObjProveedores.VincularCuentasContables(IdCtaContableProveedores, CtaCodigoProveedores, IdCtaContableAcreedores, CtaCodigoAcreedores, IdCtaContableAnticipos, CtaCodigoAnticipos, IdCtaContableDeudor, CtaCodigoDeudor, IdCtaContableDocsXPagar, CtaCodigoDocsXPagar, CveProveedor) Then - TieneError = True - End If - - Else - TieneError = True - End If - - Else - TieneError = True - End If - - If Not TieneError Then - Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) - ddl.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : ddl.SelectedValueExist(IdCuentaContable.ToString) - btn.Visible = False - ddl.Width = 206 - ObjProveedores.Commit() - ObjContaAC.Commit() - Else - Alert("error", TipoMensaje.MsgError) - ObjProveedores.RollBack() - ObjContaAC.RollBack() - End If - - - ObjContaAC.Dispose() - ObjProveedores.Dispose() - - - ElseIf UsuarioActual.Empresa.UsaContabilidadSIG = True Then - - - Dim ObjContabilidad As New ClsContabilidad - Dim ObjProveedores As New ClsCompProveedores() - ObjContabilidad.IniciaTransacSQL() - ObjProveedores.IniciaTransacSQL() - Dim CuentaPadre = -1 - Dim IdCuentaContable = -1 - Dim CtaCodigo As String = "" - Dim TieneError = False - Dim IdCtaContableProveedores As Integer = -1, IdCtaContableAcreedores As Integer = -1, IdCtaContableDocsXPagar As Integer = -1, IdCtaContableAnticipos As Integer = -1, IdCtaContableDeudor As Integer = -1 - Dim CtaCodigoProveedores As String = "-1", CtaCodigoAcreedores As String = "-1", CtaCodigoDocsXPagar As String = "-1", CtaCodigoAnticipos As String = "-1", CtaCodigoDeudor As String = "-1" - - - Select Case btn.CommandArgument.ToString - Case "Proveedores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(232).ToEntero - Case "Acreedores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(235).ToEntero - Case "DocsXPagar" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(236).ToEntero - Case "Anticipos" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(238).ToEntero - Case "Deudores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(234).ToEntero - - End Select - - Dim NombreCuenta = If(TxtRazonSocial.Text.Trim.Length > 50, TxtRazonSocial.Text.Trim.Substring(0, 50), TxtRazonSocial.Text.Trim) - IdCuentaContable = ObjContabilidad.AddSiguienteCuentaHijo(CuentaPadre, NombreCuenta, UsuarioActual.CveEmpresa) - If IdCuentaContable > 0 Then - - ObjContabilidad.GetCuentas(IdCuentaContable, "-1", -1, UsuarioActual.CveEmpresa) - Dim dt = ObjContabilidad.DtResultados - - If dt.Rows.Count = 1 Then - - Dim row As DataRow = dt.Rows(0) - CtaCodigo = CStr(row("CtaCodigo")) - - Select Case btn.CommandArgument.ToString - Case "Proveedores" - IdCtaContableProveedores = IdCuentaContable - CtaCodigoProveedores = CtaCodigo - Case "Acreedores" - IdCtaContableAcreedores = IdCuentaContable - CtaCodigoAcreedores = CtaCodigo - Case "DocsXPagar" - IdCtaContableDocsXPagar = IdCuentaContable - CtaCodigoDocsXPagar = CtaCodigo - Case "Anticipos" - IdCtaContableAnticipos = IdCuentaContable - CtaCodigoAnticipos = CtaCodigo - Case "Deudores" - IdCtaContableDeudor = IdCuentaContable - CtaCodigoDeudor = CtaCodigo - End Select - - - If Not ObjProveedores.VincularCuentasContables(IdCtaContableProveedores, CtaCodigoProveedores, IdCtaContableAcreedores, CtaCodigoAcreedores, IdCtaContableAnticipos, CtaCodigoAnticipos, IdCtaContableDeudor, CtaCodigoDeudor, IdCtaContableDocsXPagar, CtaCodigoDocsXPagar, CveProveedor) Then - TieneError = True - End If - Else - TieneError = True - End If - Else - TieneError = True - End If - - - If Not TieneError Then - Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) - ddl.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : ddl.SelectedValueExist(IdCuentaContable.ToString) - btn.Visible = False - ddl.Width = 206 - ObjProveedores.Commit() - ObjContabilidad.Commit() - Else - Alert("Esta cuenta no puede tener Sub Cuentas.", TipoMensaje.MsgError) - ObjProveedores.RollBack() - ObjContabilidad.RollBack() - End If - - ObjProveedores.Dispose() - ObjContabilidad.Dispose() - End If - - UPPContable.Update() - End Sub -#End Region - - Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click - If TxtExcel.getfiles().Archivos.Count > 0 Then - Dim file As Archivo = TxtExcel.getfiles().Archivos(0) - Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch - Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") - CargarArchivo(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 CargarArchivo(Ruta As String, FileName As String, Tipo As String) - Dim dt As New DataTable - Dim Conexion As Odbc.OdbcConnection = Nothing - Dim ErrorArchivo = False - Try - Select Case Tipo - Case "CSV" - Conexion = New Odbc.OdbcConnection("Driver={Microsoft Access Text Driver (*.txt, *.csv)};Dbq=" + Ruta + ";Extensions=asc,csv,tab,txt;") - Conexion.Open() - Dim cmd = Conexion.CreateCommand() - cmd.CommandType = CommandType.Text - cmd.CommandText = $"SELECT * FROM [{FileName}]" - Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) - DataAdapter.Fill(dt) - Case "EXCEL" - Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") - Conexion.Open() - Dim cmd = Conexion.CreateCommand() - cmd.CommandType = CommandType.Text - cmd.CommandText = "SELECT * FROM [Hoja1$]" - Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) - DataAdapter.Fill(dt) - Case Else - Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) - Exit Sub - End Select - Catch ex As Exception - ErrorArchivo = True - OnError("Ocurrio un error al leer el archivo
    " & ex.Message, ex) - End Try - Conexion.Close() - If Not ErrorArchivo Then - If Not dt.Columns(0).ColumnName = "SerieFolio" Then - Alert("El nombre de la primera columna debe ser 'SerieFolio'.Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(1).ColumnName = "Fecha" Then - Alert("El nombre de la segunda columna debe ser 'Fecha'.Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(2).ColumnName = "Importe" Then - Alert("El nombre de la tercera columna debe ser 'Importe'.Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(3).ColumnName = "Saldo" Then - Alert("El nombre de la cuarta columna debe ser 'Saldo'.Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - Dim XmlStream As New System.IO.MemoryStream - dt.TableName = "Datos" - dt = dt.FiltraParametros("SerieFolio <> ''") 'excluyo lo que está vacío - Dim ObjProveedores As New ClsCompProveedores - Dim writer As New System.IO.StringWriter - dt.WriteXml(writer) - If ObjProveedores.GetProveedoresConciliacion(CveProveedor, DataTableToXml(writer)) Then - 'ObjProveedores.DtResultados.ExportToExcel("Resultados") - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - - Dim params As New List(Of ReportParameter) - params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("NombreProveedor", TxtRazonSocial.Text)) - - If Imagen.Exists Then - params.Add(New ReportParameter("LogoPath", logouri)) - Else - params.Add(New ReportParameter("LogoPath", "")) - End If - ImprimirPDF("Empresas/Grales/Formatos/ProveedorConciliacion.rdlc", ObjProveedores.DtResultados, params, String.Format("ProveedorConciliacion-{0}", Now.ToDateTime.ToShortDateString)) - - End If - ObjProveedores.Dispose() - End If - End Sub - - Private Function DataTableToXml(ByVal stream As System.IO.TextWriter) As String - Return stream.ToString() - End Function - - Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click - Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoProveedores.xlsx" - Dim 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 - - Private Sub LnkGenerarReporte_Click(sender As Object, e As EventArgs) Handles LnkGenerarReporte.Click - TxtFechaInicioCXP.Text = "" - TxtFechaFinCXP.Text = "" - txtFechaVI.Text = "" - txtFechaVF.Text = "" - rblreporte.SelectedValue = "cxp" - UpAddReporte.Update() - RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddReporte")) - End Sub - - Private Sub LnkParametros_Click(sender As Object, e As EventArgs) Handles LnkParametros.Click - TxtLimiteCredito.Text = LblLimiteCredito.Text - TxtPlazoCobranza.Text = LblPlazoCobranza.Text - UpParametros.Update() - RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddParametros")) - End Sub - - Private Sub BtnCancelarParametros_Click(sender As Object, e As EventArgs) Handles BtnCancelarParametros.Click - TxtLimiteCredito.Text = LblLimiteCredito.Text.FormatoNumero - TxtPlazoCobranza.Text = LblPlazoCobranza.Text - UpParametros.Update() - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros")) - End Sub - - Private Sub LnkAddParametros_Click(sender As Object, e As EventArgs) Handles LnkAddParametros.Click - LblLimiteCredito.Text = TxtLimiteCredito.Text.FormatoNumero - LblPlazoCobranza.Text = TxtPlazoCobranza.Text - If LblLimiteCredito.Text.ToDouble > 0 Then - TdSaldo.Visible = True - TdSaldo2.Visible = True - LblSaldo.Text = CType(LblLimiteCredito.Text.ToDouble - LBRCPTotal.Text.ToDouble, String).FormatoNumero - Else - TdSaldo.Visible = False - TdSaldo2.Visible = False - End If - UPPCxP.Update() - UpParametros.Update() - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros")) - End Sub - - Private Sub LnkCuentasBancarias_Click(sender As Object, e As EventArgs) Handles LnkCuentasBancarias.Click - Modalidad = "A" - TxtNombreBanco.Text = "" - LbAgregarCuentaBanco.Text = "Agregar" - TxtNumeroSucursal.Text = "" - TxtNumeroCuenta.Text = "" - TxtCLABE.Text = "" - TxtSWIFT.Text = "" - TxtPlaza.Text = "" - TxtConvenioCIE.Text = "" - TxtReferencia.Text = "" - TxtRefCrediProveedor.Text = "" - DdlMoneda.SelectedIndex = 0 - TxtCorreoCuenta.Text = "" - ChkEstatus.Checked = True - divestatus.Visible = False - UpAddBancos.Update() - RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddCuentasBancarias")) - End Sub - - Public Sub Edit_Click(sender As Object, e As EventArgs) - Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) - TxtNombreBanco.Text = GvRow.DataKey("BancoNombre") - Modalidad = "U" - LbAgregarCuentaBanco.Text = "Actualizar" - CveCuentaBancaria = GvRow.RowIndex - TxtNumeroSucursal.Text = GvRow.DataKey("Sucursal") - TxtNumeroCuenta.Text = GvRow.DataKey("Cuenta") - TxtCLABE.Text = GvRow.DataKey("CLABE") - TxtSWIFT.Text = GvRow.DataKey("SWIFT") - TxtPlaza.Text = GvRow.DataKey("Plaza") - TxtConvenioCIE.Text = GvRow.DataKey("CIE") - TxtReferencia.Text = GvRow.DataKey("Referencia") - TxtRefCrediProveedor.Text = GvRow.DataKey("RefCrediProveedor") - TxtCorreoCuenta.Text = GvRow.DataKey("Correo") - DdlMoneda.SelectedValueExist(GvRow.DataKey("CveMoneda")) - ChkEstatus.Checked = CBool(GvRow.DataKey("Estatus")) - divestatus.Visible = True - UpAddBancos.Update() - RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddCuentasBancarias")) - End Sub - -#Region " C O N T A C T O S P R O V E E D O R " - - Protected Sub CreaTempDTProveedoresContactos() - TempDTProveedoresContactos = New DataTable() - - TempDTProveedoresContactos.Columns.Add("Nombre", GetType(String)) - TempDTProveedoresContactos.Columns.Add("Puesto", GetType(String)) - TempDTProveedoresContactos.Columns.Add("Telefono", GetType(String)) - TempDTProveedoresContactos.Columns.Add("Extension", GetType(String)) - TempDTProveedoresContactos.Columns.Add("Celular", GetType(String)) - TempDTProveedoresContactos.Columns.Add("Correo", GetType(String)) - TempDTProveedoresContactos.Columns.Add("Skype", GetType(String)) - - TempDTProveedoresContactos.Columns.Add("CveProveedorContacto", GetType(String)) - TempDTProveedoresContactos.Columns.Add("CveProveedor", GetType(String)) - TempDTProveedoresContactos.Columns.Add("CveProveedorSucursal", GetType(String)) - TempDTProveedoresContactos.Columns.Add("ProveedorSucursal", GetType(String)) - - GvContactoProveedor.DataSource = TempDTProveedoresContactos - GvContactoProveedor.DataBind() - - UpContactosProveedor.Update() - End Sub - - - Protected Sub CreaTempDTProveedoresContactosSucursales() - TempDTProveedoresContactosSucursal = New DataTable() - - TempDTProveedoresContactosSucursal.Columns.Add("Nombre", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("Puesto", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("Telefono", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("Extension", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("Celular", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("Correo", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("Skype", GetType(String)) - - TempDTProveedoresContactosSucursal.Columns.Add("CveProveedorContacto", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("CveProveedor", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("CveProveedorSucursal", GetType(String)) - TempDTProveedoresContactosSucursal.Columns.Add("ProveedorSucursal", GetType(String)) - - TempDTProveedoresContactosSucursal.Columns.Add("CveSucursalTemp", GetType(String)) 'Para controlar las sucursales no insertadas en BD - - GVContactosProveedorSucursal.DataSource = TempDTProveedoresContactosSucursal - GVContactosProveedorSucursal.DataBind() - - UpContactosProveedorSucursal.Update() - End Sub - - Protected Sub limpiarCamposModalAgregarContacto() - TxtNombreContactoProveedor.Text = "" - TxtPuestoContactoProveedor.Text = "" - TxtTelefonoContactoProveedor.Text = "" - TxtExtContactoProveedor.Text = "" - TxtCelularContactoProveedor.Text = "" - TxtCorreoContactoProveedor.Text = "" - TxtSkypeContactoProveedor.Text = "" - UpAgregarContatoProveedor.Update() - End Sub - - 'CONTACTOS GENERALES DEL PROVEEDOR - Protected Sub BtnAgregarContactoProveedor_Click(sender As Object, e As EventArgs) - CveProveedorContacto = -1 - CveProveedorSucursal = -1 - - EsContactoSucursal = 0 - EsEditar = 0 - - limpiarCamposModalAgregarContacto() - Me.RegistraScript("$('#DivAgregarContactoProveedor').modal();") - End Sub - - Protected Sub imgEditarContactoProv_Click(sender As Object, e As EventArgs) - - Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) - CveProveedorContacto = GvRow.DataKey("CveProveedorContacto").ToEntero() - CveProveedorSucursal = GvRow.DataKey("CveProveedorSucursal").ToEntero() - - EsContactoSucursal = 0 - EsEditar = 1 - IndexDTContacto = GvRow.RowIndex - - TxtNombreContactoProveedor.Text = GvRow.DataKey("Nombre").ToString - TxtPuestoContactoProveedor.Text = GvRow.DataKey("Puesto").ToString - TxtTelefonoContactoProveedor.Text = GvRow.DataKey("Telefono").ToString - TxtExtContactoProveedor.Text = GvRow.DataKey("Extension").ToString - TxtCelularContactoProveedor.Text = GvRow.DataKey("Celular").ToString - TxtCorreoContactoProveedor.Text = GvRow.DataKey("Correo").ToString - TxtSkypeContactoProveedor.Text = GvRow.DataKey("Skype").ToString - - UpAgregarContatoProveedor.Update() - - Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('show');") - - End Sub - - Protected Sub GvContactoProveedor_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) - If CveProveedor > 0 Then - - CveProveedorContacto = GvContactoProveedor.DataKeys(e.RowIndex).Value.ToString.ToEntero - - Dim ObjProveedores As ClsCompProveedores = New ClsCompProveedores - - If ObjProveedores.RemoveProveedorContacto(CveProveedorContacto) Then - Alert("El Contacto se Elimino correctamente.", TipoMensaje.MsgInformacion) - End If - - CargaContactos(ObjProveedores) - ObjProveedores.Dispose() - - CargaGVContactosSucursal() - Else - - TempDTProveedoresContactos.Rows.RemoveAt(e.RowIndex) - GvContactoProveedor.DataSource = TempDTProveedoresContactos - GvContactoProveedor.DataBind() - UpContactosProveedor.Update() - End If - - End Sub - - 'CONTACTOS DE LA SUCURSAL - Protected Sub CargaGVContactosSucursal() - If CveProveedor > 0 And CveProveedorSucursal > 0 Then - ' TempDTProveedoresContactosSucursal.Columns.Add("CveSucursalTemp", GetType(String)) - GVContactosProveedorSucursal.DataSource = TempDTProveedoresContactosSucursal.FiltraParametros("CveProveedorSucursal = " & CveProveedorSucursal) - Else - GVContactosProveedorSucursal.DataSource = TempDTProveedoresContactosSucursal - End If - - GVContactosProveedorSucursal.DataBind() - UpContactosProveedorSucursal.Update() - End Sub - - Protected Sub BtnAgregarContactoSucursal_Click(sender As Object, e As EventArgs) - EsContactoSucursal = 1 - EsEditar = 0 - limpiarCamposModalAgregarContacto() - Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('show');") - End Sub - - Protected Sub imgEditarContactoProvSuc_Click(sender As Object, e As EventArgs) - Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) - - CveProveedorContacto = GvRow.DataKey("CveProveedorContacto").ToEntero() - CveProveedorSucursal = GvRow.DataKey("CveProveedorSucursal").ToEntero() - CveTempSucursal = GvRow.DataKey("CveSucursalTemp").ToEntero() - - TxtNombreContactoProveedor.Text = GvRow.DataKey("Nombre").ToString - TxtPuestoContactoProveedor.Text = GvRow.DataKey("Puesto").ToString - TxtTelefonoContactoProveedor.Text = GvRow.DataKey("Telefono").ToString - TxtExtContactoProveedor.Text = GvRow.DataKey("Extension").ToString - TxtCelularContactoProveedor.Text = GvRow.DataKey("Celular").ToString - TxtCorreoContactoProveedor.Text = GvRow.DataKey("Correo").ToString - TxtSkypeContactoProveedor.Text = GvRow.DataKey("Skype").ToString - - EsContactoSucursal = 1 - EsEditar = 1 - IndexDTContacto = GvRow.RowIndex - - UpAgregarContatoProveedor.Update() - - Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('show');") - End Sub - - Protected Sub GVContactosProveedorSucursal_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) - - If CveProveedor > 0 And CveProveedorSucursal > 0 Then - - CveProveedorContacto = GVContactosProveedorSucursal.DataKeys(e.RowIndex).Value.ToString.ToEntero 'GvRow.DataKey("CveProveedorContacto").ToEntero() - - Dim ObjProveedores As ClsCompProveedores = New ClsCompProveedores - - If ObjProveedores.RemoveProveedorContacto(CveProveedorContacto) Then - Alert("El Contacto de la Sucursal se Elimino correctamente.", TipoMensaje.MsgInformacion) - End If - - CargaContactos(ObjProveedores) - ObjProveedores.Dispose() - - CargaGVContactosSucursal() - Else - TempDTProveedoresContactosSucursal.Rows.RemoveAt(e.RowIndex) - CargaGVContactosSucursal() - End If - - End Sub - - Protected Sub GVContactosProveedorSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs) - 'Oculta las filas del grid que no perenecen a la sucursal seleccionada - If e.Row.RowType = DataControlRowType.DataRow Then - ' Si la sucursal ya esta en BD busca por su Cve, si no busca por cve temp - If CveProveedorSucursal > 0 Then - If e.Row.DBCampo("CveProveedorSucursal") = CveProveedorSucursal.ToString() Then - e.Row.Visible = True - Else - e.Row.Visible = False - End If - Else - If e.Row.DBCampo("CveSucursalTemp") = CveTempSucursal.ToString() Then - e.Row.Visible = True - Else - e.Row.Visible = False - End If - End If - End If - End Sub - - Protected Sub BtnGuardarContactoProveedor_Click(sender As Object, e As EventArgs) - - Dim Nombre As String = TxtNombreContactoProveedor.Text - Dim Puesto As String = TxtPuestoContactoProveedor.Text - Dim Telefono As String = TxtTelefonoContactoProveedor.Text - Dim Extension As String = TxtExtContactoProveedor.Text - Dim Celular As String = TxtCelularContactoProveedor.Text - Dim Correo As String = TxtCorreoContactoProveedor.Text - Dim Skype As String = TxtSkypeContactoProveedor.Text - - 'SI EL PROVEEDOR NO TIENE CVEPROVEEDOR GUARDA EN TABLA TEMPORAL - If CveProveedor = -1 Then - Dim dr As DataRow - - If EsContactoSucursal = 0 Then - dr = TempDTProveedoresContactos.NewRow() - Else - dr = TempDTProveedoresContactosSucursal.NewRow() - End If - - dr("Nombre") = Nombre - dr("Puesto") = Puesto - dr("Telefono") = Telefono - dr("Extension") = Extension - dr("Celular") = Celular - dr("Correo") = Correo - dr("Skype") = Skype - - dr("CveProveedorContacto") = CveProveedorContacto.ToString - 'Si es contacto General del Proveedor solo agrega - If EsContactoSucursal = 0 Then - dr("CveProveedorSucursal") = "-1" - - If EsEditar = 1 Then - TempDTProveedoresContactos.Rows.RemoveAt(IndexDTContacto) - End If - - TempDTProveedoresContactos.Rows.Add(dr) - - GvContactoProveedor.DataSource = TempDTProveedoresContactos - GvContactoProveedor.DataBind() - - UpContactosProveedor.Update() - Else - 'obtengo la cve Sucursal - dr("CveProveedorSucursal") = CveProveedorSucursal - 'si no existe en BD asigna la Cve Temp - If CveProveedorSucursal = -1 Then - dr("CveSucursalTemp") = CveTempSucursal - End If - - 'If CveProveedorContacto.ToString <> "-1" Then - If EsEditar = 1 Then - TempDTProveedoresContactosSucursal.Rows.RemoveAt(IndexDTContacto) - End If - ' End If - TempDTProveedoresContactosSucursal.Rows.Add(dr) - CargaGVContactosSucursal() - End If - - Else - Dim ObjProveedores As ClsCompProveedores = New ClsCompProveedores - CveProveedorSucursal = IIf(CveProveedorSucursal = 0, -1, CveProveedorSucursal).ToString.ToEntero - - If EsEditar = 1 Then - 'ACTUALIZAMOS CONTACTO - If ObjProveedores.UpdateProveedorContacto(CveProveedorContacto, CveProveedor, CveProveedorSucursal, Nombre, Puesto, Telefono, Extension, Celular, Correo, Skype) Then - Alert("El Contacto se Actualizo correctamente.", TipoMensaje.MsgInformacion) - End If - Else - 'CREAMOS CONTACTO - If ObjProveedores.AddProveedorContacto(CveProveedor, CveProveedorSucursal, Nombre, Puesto, Telefono, Extension, Celular, Correo, Skype) Then - Alert("El Contacto se Guardo correctamente.", TipoMensaje.MsgInformacion) - End If - End If - - CargaContactos(ObjProveedores) - ObjProveedores.Dispose() - - CargaGVContactosSucursal() - - End If - - Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('hide');") - limpiarCamposModalAgregarContacto() - - End Sub - -#End Region - -#Region "USUARIOS PLATAFORMA PROVEEDOR - 7 " - Protected Sub CargaUsuariosPortalProveedor() - Dim objUsuario As ClsSisUsuarios = New ClsSisUsuarios - If objUsuario.GetUsuariosPortal(-1, -1, CveProveedor) Then - GvUsuarios.DataSource = objUsuario.DtResultados - GvUsuarios.DataBind() - End If - objUsuario.Dispose() - End Sub - Public Sub CargaGlobal() - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuariosEmpresas(-1) Then - Application("GlobalDTUsuarios") = ObjUsuarios.DtResultados - End If - ObjUsuarios.Dispose() - End Sub - - Protected Sub GvUsuarios_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvUsuarios.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - e.Row.FCLinkButton("imgE").Attributes.Add("onclick", $"javascript:AbrirVentana('/Sistemas/PopUpAddUsuario.aspx?CveUsuario={e.Row.DBCampo("CveUsuario").ToString}&CveProveedor={CveProveedor}', 801, 701);") - End If - End Sub -#End Region - -#Region "MODAL GRAFICA/PEDIDOS" - - Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) - If CargaDatatables() Then - CargaGrafica() - End If - End Sub - - Private Function CargaDatatables() As Boolean - Dim ObjProveedores As New ClsCompProveedores - Dim ObjFinanzas As New ClsFinanzas - If ObjProveedores.GetProveedorVencido(CveProveedor, UsuarioActual.CveEmpresa, TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate) Then - DtVencido = ObjProveedores.DtResultados - End If - - If ObjFinanzas.GetRotacionCarteraProveedores(TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate, UsuarioActual.CveEmpresa, 1, "-1", " -1", CveProveedor, Now) Then - DtRotacion = ObjFinanzas.DtResultados - End If - - If ObjProveedores.GetProveedorSaldoMensual(CveProveedor, UsuarioActual.CveEmpresa, TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate) Then - DtSaldoMensual = ObjProveedores.DtResultados - End If - - If ObjProveedores.GetClienteComportamientoCompraMensual(CveProveedor, UsuarioActual.CveEmpresa, TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate) Then - DtComportamientoCompras = ObjProveedores.DtResultados - End If - - ObjProveedores.Dispose() - ObjFinanzas.Dispose() - - If Not DtVencido.Rows.Count > 0 Then - Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) - Return False - End If - - Return True - End Function - - Private Sub CargaGrafica() - Dim FactVencida As Boolean = False - Dim Saldo As Double = DtVencido.SUM("Saldo") - Dim LimiteCredito As Double = DtVencido.Rows(0)("LimiteCredito").ToString.ToDouble - - Dim Dt As New DataTable() - Dt.Columns.Add("value") - For Each Dr As DataRow In DtVencido.Rows - Dim Row As DataRow = Nothing - Row = Dt.NewRow() - Row("value") = Dr("DiasVencidos").ToString - Dt.Rows.Add(Row) - If Dr("DiasVencidos").ToString.ToEntero > 0 And Dr("Saldo").ToString.ToDouble > 0 Then - FactVencida = True - End If - Next - - LblVencido.Text = DtVencido.SUM("Total", "DiasVencidos > 0").FormatoNumero - LblPorVencer.Text = DtVencido.SUM("Total", "DiasVencidos <= 0").FormatoNumero - - Dim query = From s In Dt.AsEnumerable() Select New With {.date = "", .value = s("value").ToString()} - Dim json = Newtonsoft.Json.JsonConvert.SerializeObject(query) - RegistraScript($"CargaGraficaVencido({json})", "22") - - Dim Dt2 As New DataTable() - Dt2.Columns.Add("limite") - Dt2.Columns.Add("saldo") - Dim Row2 As DataRow = Nothing - Row2 = Dt2.NewRow() - Row2("limite") = LimiteCredito - Row2("saldo") = Saldo - Dt2.Rows.Add(Row2) - Dim query2 = From s In Dt2.AsEnumerable() Select New With {.year = "", .limite = s("limite").ToString(), .saldo = s("saldo").ToString()} - Dim json2 = Newtonsoft.Json.JsonConvert.SerializeObject(query2) - - RegistraScript($"CargaGraficaLimiteCredito({json2})", "33") - - If DtRotacion.Rows.Count > 0 Then - LblComprasModal.Text = DtRotacion.Rows(0)("Compras").ToString.FormatoNumero - LblPagadoModal.Text = DtRotacion.Rows(0)("Pagado").ToString.FormatoNumero - LblRotacionModal.Text = DtRotacion.Rows(0)("Rotacion").ToString.FormatoNumero - LblDiasModal.Text = DtRotacion.Rows(0)("Dias").ToString.FormatoNumero - End If - - If FactVencida Or (Saldo > LimiteCredito) Then - LblEstatusModal.Text = "Vencido" - LblEstatusModal.ForeColor = Drawing.Color.Red - Else - LblEstatusModal.Text = "Al Corriente" - LblEstatusModal.ForeColor = Drawing.Color.Green - End If - - Dim Dt3 As New DataTable() - Dt3.Columns.Add("mes") - - Dim Dt4 As New DataTable() - Dt4.Columns.Add("balloonText") - Dt4.Columns.Add("bullet") - Dt4.Columns.Add("title") - Dt4.Columns.Add("valueField") - Dt4.Columns.Add("fillAlphas") - Dt4.Columns.Add("hidden") - - - Dim Cont As Integer = 1 - - For Each Dr As DataRow In DtComportamientoCompras.Rows - Dt3.Columns.Add(Dr("Ano").ToString) - Dim Row4 As DataRow = Nothing - Row4 = Dt4.NewRow() - Row4("balloonText") = "Compras [[category]]: [[value]]" - Row4("bullet") = "round" - Row4("title") = Dr("Ano").ToString - Row4("valueField") = Dr("Ano").ToString - Row4("fillAlphas") = 0 - Row4("hidden") = If(Cont > DtComportamientoCompras.Rows.Count - 3, False, True) - Dt4.Rows.Add(Row4) - Cont += 1 - Next - - Dim RowEnero As DataRow = Nothing - RowEnero = Dt3.NewRow() - Dim RowFebrero As DataRow = Nothing - RowFebrero = Dt3.NewRow() - Dim RowMarzo As DataRow = Nothing - RowMarzo = Dt3.NewRow() - Dim RowAbril As DataRow = Nothing - RowAbril = Dt3.NewRow() - Dim RowMayo As DataRow = Nothing - RowMayo = Dt3.NewRow() - Dim RowJunio As DataRow = Nothing - RowJunio = Dt3.NewRow() - Dim RowJulio As DataRow = Nothing - RowJulio = Dt3.NewRow() - Dim RowAgosto As DataRow = Nothing - RowAgosto = Dt3.NewRow() - Dim RowSeptiembre As DataRow = Nothing - RowSeptiembre = Dt3.NewRow() - Dim RowOctubre As DataRow = Nothing - RowOctubre = Dt3.NewRow() - Dim RowNoviembre As DataRow = Nothing - RowNoviembre = Dt3.NewRow() - Dim RowDiciembre As DataRow = Nothing - RowDiciembre = Dt3.NewRow() - For Each Dr As DataRow In DtComportamientoCompras.Rows - RowEnero(Dr("Ano").ToString) = Dr("Enero").ToString - RowEnero("mes") = "Enero" - RowFebrero(Dr("Ano").ToString) = Dr("Febrero").ToString - RowFebrero("mes") = "Febrero" - RowMarzo(Dr("Ano").ToString) = Dr("Marzo").ToString - RowMarzo("mes") = "Marzo" - RowAbril(Dr("Ano").ToString) = Dr("Abril").ToString - RowAbril("mes") = "Abril" - RowMayo(Dr("Ano").ToString) = Dr("Mayo").ToString - RowMayo("mes") = "Mayo" - RowJunio(Dr("Ano").ToString) = Dr("Junio").ToString - RowJunio("mes") = "Junio" - RowJulio(Dr("Ano").ToString) = Dr("Julio").ToString - RowJulio("mes") = "Julio" - RowAgosto(Dr("Ano").ToString) = Dr("Agosto").ToString - RowAgosto("mes") = "Agosto" - RowSeptiembre(Dr("Ano").ToString) = Dr("Septiembre").ToString - RowSeptiembre("mes") = "Septiembre" - RowOctubre(Dr("Ano").ToString) = Dr("Octubre").ToString - RowOctubre("mes") = "Octubre" - RowNoviembre(Dr("Ano").ToString) = Dr("Noviembre").ToString - RowNoviembre("mes") = "Noviembre" - RowDiciembre(Dr("Ano").ToString) = Dr("Diciembre").ToString - RowDiciembre("mes") = "Diciembre" - Next - Dt3.Rows.Add(RowEnero) - Dt3.Rows.Add(RowFebrero) - Dt3.Rows.Add(RowMarzo) - Dt3.Rows.Add(RowAbril) - Dt3.Rows.Add(RowMayo) - Dt3.Rows.Add(RowJunio) - Dt3.Rows.Add(RowJulio) - Dt3.Rows.Add(RowAgosto) - Dt3.Rows.Add(RowSeptiembre) - Dt3.Rows.Add(RowOctubre) - Dt3.Rows.Add(RowNoviembre) - Dt3.Rows.Add(RowDiciembre) - - RegistraScript($"CargaGraficaComportamientoCompras({Dt3.ToJson},{Dt4.ToJson.Replace($"{Chr(34)}True{Chr(34)}", "true").Replace($"{Chr(34)}False{Chr(34)}", "false")})", "44") - - Dim Dt5 As New DataTable() - Dt5.Columns.Add("mes") - - Dim Dt6 As New DataTable() - Dt6.Columns.Add("balloonText") - Dt6.Columns.Add("bullet") - Dt6.Columns.Add("title") - Dt6.Columns.Add("valueField") - Dt6.Columns.Add("fillAlphas") - Dt6.Columns.Add("hidden") - - Cont = 1 - For Each Dr As DataRow In DtSaldoMensual.Rows - Dt5.Columns.Add(Dr("Ano").ToString) - Dim Row6 As DataRow = Nothing - Row6 = Dt6.NewRow() - Row6("balloonText") = "Saldo [[category]]: [[value]]" - Row6("bullet") = "round" - Row6("title") = Dr("Ano").ToString - Row6("valueField") = Dr("Ano").ToString - Row6("fillAlphas") = 0 - Row6("hidden") = If(Cont > DtSaldoMensual.Rows.Count - 3, False, True) - Dt6.Rows.Add(Row6) - Cont += 1 - Next - RowEnero = Dt5.NewRow() - RowFebrero = Dt5.NewRow() - RowMarzo = Dt5.NewRow() - RowAbril = Dt5.NewRow() - RowMayo = Dt5.NewRow() - RowJunio = Dt5.NewRow() - RowJulio = Dt5.NewRow() - RowAgosto = Dt5.NewRow() - RowSeptiembre = Dt5.NewRow() - RowOctubre = Dt5.NewRow() - RowNoviembre = Dt5.NewRow() - RowDiciembre = Dt5.NewRow() - For Each Dr As DataRow In DtSaldoMensual.Rows - RowEnero(Dr("Ano").ToString) = Dr("Enero").ToString - RowEnero("mes") = "Enero" - RowFebrero(Dr("Ano").ToString) = Dr("Febrero").ToString - RowFebrero("mes") = "Febrero" - RowMarzo(Dr("Ano").ToString) = Dr("Marzo").ToString - RowMarzo("mes") = "Marzo" - RowAbril(Dr("Ano").ToString) = Dr("Abril").ToString - RowAbril("mes") = "Abril" - RowMayo(Dr("Ano").ToString) = Dr("Mayo").ToString - RowMayo("mes") = "Mayo" - RowJunio(Dr("Ano").ToString) = Dr("Junio").ToString - RowJunio("mes") = "Junio" - RowJulio(Dr("Ano").ToString) = Dr("Julio").ToString - RowJulio("mes") = "Julio" - RowAgosto(Dr("Ano").ToString) = Dr("Agosto").ToString - RowAgosto("mes") = "Agosto" - RowSeptiembre(Dr("Ano").ToString) = Dr("Septiembre").ToString - RowSeptiembre("mes") = "Septiembre" - RowOctubre(Dr("Ano").ToString) = Dr("Octubre").ToString - RowOctubre("mes") = "Octubre" - RowNoviembre(Dr("Ano").ToString) = Dr("Noviembre").ToString - RowNoviembre("mes") = "Noviembre" - RowDiciembre(Dr("Ano").ToString) = Dr("Diciembre").ToString - RowDiciembre("mes") = "Diciembre" - Next - Dt5.Rows.Add(RowEnero) - Dt5.Rows.Add(RowFebrero) - Dt5.Rows.Add(RowMarzo) - Dt5.Rows.Add(RowAbril) - Dt5.Rows.Add(RowMayo) - Dt5.Rows.Add(RowJunio) - Dt5.Rows.Add(RowJulio) - Dt5.Rows.Add(RowAgosto) - Dt5.Rows.Add(RowSeptiembre) - Dt5.Rows.Add(RowOctubre) - Dt5.Rows.Add(RowNoviembre) - Dt5.Rows.Add(RowDiciembre) - - - RegistraScript($"CargaGraficaCompratamientoSaldoMensual({Dt5.ToJson},{Dt6.ToJson.Replace($"{Chr(34)}True{Chr(34)}", "true").Replace($"{Chr(34)}False{Chr(34)}", "false")})", "55") - - UPModalProd.Update() - End Sub - - Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) - If CargaDatatables() Then - RegistraScript("$('#DivModalGrafica').modal('show')") - CargaGrafica() - End If - End Sub - -#End Region - -#Region "TAB - COMPORTAMIENTO DE COMPRAS" - - Private Sub CargaGrupo() - DdlGrupo.Items.Insert(0, New ListItem("Categoria", "3")) - DdlGrupo.Items.Insert(1, New ListItem("Clasificación", "4")) - DdlGrupo.Items.Insert(2, New ListItem("Productos-Servicios", "5")) - DdlGrupo.Items.Insert(3, New ListItem("Año", "6")) - DdlGrupo.Items.Insert(4, New ListItem("Mes", "7")) - DdlGrupo.Items.Insert(5, New ListItem("Año/Mes", "8")) - DdlGrupo.Items.Insert(6, New ListItem("Fecha", "9")) - DdlGrupo.Items.Insert(7, New ListItem("Proveedor", "10")) - DdlGrupo.Items.Insert(8, New ListItem("Usuario", "11")) - DdlGrupo.Items.Insert(9, New ListItem("Estatus Fact.", "12")) - DdlGrupo.DataBind() - DdlGrupo.SelectedValueExist("8") - End Sub - Private Sub CargaTipoCentroCosto() - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then - DdlSubProyectoFiltro.Items.Clear() - DivProyecto.Visible = False - LblProyecto.Visible = False - LblSubProyecto.InnerText = "Sucursal:" - - DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyectoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSubProyectoFiltro.DataBind() - - DdlGrupo.Items.Insert(0, New ListItem("Sucursal", "2")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlSubProyectoFiltro.Items.Clear() - DivProyecto.Visible = False - LblProyecto.Visible = False - LblSubProyecto.InnerText = "Proyecto:" - - DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyectoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSubProyectoFiltro.DataBind() - - DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "2")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then - DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "1")) - DdlGrupo.Items.Insert(1, New ListItem("SubProyecto", "2")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then - LblProyecto.InnerText = "Sucursal:" - LblSubProyecto.InnerText = "Proyecto:" - - DdlGrupo.Items.Insert(0, New ListItem("Sucursal", "1")) - DdlGrupo.Items.Insert(1, New ListItem("Proyecto", "2")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then - LblProyecto.InnerText = "Proyecto:" - LblSubProyecto.InnerText = "Sucursal:" - - DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "1")) - DdlGrupo.Items.Insert(1, New ListItem("Sucursal", "2")) - DdlGrupo.DataBind() - End If - End Sub - - Private Sub CargaFiltros() - 'Cargo Proyectos - DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) - DdlProyecto.DataBind() - - 'Cargo Clasificaciones - DdlClasificacionFilto.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) - DdlClasificacionFilto.DataBind() - - 'CargaSubProyectos - DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyectoFiltro.DataBind() - - 'CargaUsuarios - DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlUsuario.DataBind() - - 'Carga Productos - DdlPSFiltro.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") - - If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then - DdlPSFiltro.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionFilto.SelectedValue) - DdlPSFiltro.SelectedText = "" - DdlPSFiltro.SelectedValue = "-1" - Else - DdlPSFiltro.ddl.Items.Clear() - DdlPSFiltro.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionFilto.SelectedValue.ToEntero) - DdlPSFiltro.ddl.DataBind() - DdlPSFiltro.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) - End If - - CargaGrupo() - CargaTipoCentroCosto() - - End Sub - - Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - CargaSubProyecto() - End Sub - - Private Sub CargaSubProyecto() - DdlSubProyectoFiltro.Items.Clear() - If DdlProyecto.SelectedValue <> "-1" Then - DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyectoFiltro.DataBind() - End If - DdlSubProyectoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - - Protected Sub DdlClasificacionFilto_SelectedIndexChanged(sender As Object, e As EventArgs) - If UsuarioActual.Empresa.Funcionalidad(105) = "" Then - DdlPSFiltro.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionFilto.SelectedValue.ToEntero) - DdlPSFiltro.DataBind() - DdlPSFiltro.ddl.Items.Insert(0, New ListItem("Todos", "-1")) - Else - DdlPSFiltro.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionFilto.SelectedValue) - DdlPSFiltro.SelectedText = "Todos" - DdlPSFiltro.SelectedValue = "-1" - End If - End Sub - - Protected Sub GvComportamientoCompra_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - If Not e.Row.DBCampo("CveCompra").ToEntero > 0 Then - e.Row.CssClass = "Totales" - e.Row.Cells(2).Text = e.Row.DBCampo("GPO").ToString - End If - End If - End Sub - - Protected Sub BtnConsultarComportamiento_Click(sender As Object, e As EventArgs) - CargaGvComportamientoCompra() - End Sub - - Private Sub CargaGvComportamientoCompra() - Dim ObjCompras As New ClsCompras() - Dim FechaI, FechaF As Date - FechaI = If(IsDate(TxtFechaIFiltro.Text.Trim()), TxtFechaIFiltro.Text.ToDate, MinFecha) - FechaF = If(IsDate(TxtFechaFFiltro.Text.Trim()), TxtFechaFFiltro.Text.ToDate, MaxFecha) - - If ObjCompras.GetRepProductosServiciosDetalle(DdlProyecto.SelectedValue.ToEntero, DdlSubProyectoFiltro.SelectedValue, "-1", DdlClasificacionFilto.SelectedValue.ToEntero, - DdlPSFiltro.SelectedValue.ToEntero, FechaI, FechaF, CveProveedor, DdlUsuario.SelectedValue.ToEntero, -1, - UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, -1, -1, "-1", "-1", -1, -1, 1, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then - GvComportamientoCompra.DataSource = ObjCompras.DtResultados - Else - GvComportamientoCompra.DataSource = Nothing - End If - - ObjCompras.Dispose() - GvComportamientoCompra.DataBind() - UpDatosComportamientoCompra.Update() - End Sub - -#End Region - -#Region "E V A L U A C I O N " - Protected Sub LimpiarDatosEvaluacion() - DtRespuestasEvaluacion = Nothing - - TxtRS.Text = "" - TxtSerieFolio.Text = "" - TxtPS.Text = "" - TxtCodigoE.Text = "" - TxtFechaE.Text = Now.ToString("dd/MM/yyyy") - TxtFirma.Text = "" - TxtCalificacion.Text = "" - - UpEvaluacion.Update() - End Sub - Protected Sub CargaEvaluacionProveedor() - LimpiarDatosEvaluacion() - - Dim ObjProve As New ClsCompProveedores - If ObjProve.GetEvaluacionesProveedores(-1, Me.CveProveedor, UsuarioActual.CveEmpresa) Then - GvEvaluaciones.DataSource = ObjProve.DtResultados.FiltraParametros($"Evaluado = 1") - End If - If ObjProve.GetProveedoresEvaluacionPreguntas(UsuarioActual.CveEmpresa) Then - DtPreguntasEvaluacion = ObjProve.DtResultados.Copy() - End If - ObjProve.Dispose() - GvEvaluaciones.DataBind() - UpEvaluacion.Update() - UpDatos.Update() - End Sub - Protected Sub CargaCompraEvaluacion(CveCompra As Integer) - If CveCompra > 0 Then - Dim ObjCompras As New ClsCompras() - If ObjCompras.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then - If ObjCompras.DtResultados.Rows.Count > 0 Then - TxtSerieFolio.Text = ObjCompras.DtResultados.Rows(0)("SerieFolio").ToString() - End If - End If - If ObjCompras.GetCompraDetalle(CveCompra) Then - Dim StrPS As New StringBuilder() - For Each Row As DataRow In ObjCompras.DtResultados.Rows - If ObjCompras.DtResultados.Rows.Count > 1 Then - StrPS.AppendFormat("{0};", Row("PSCodigo")) - Else - StrPS.AppendFormat("{0}", Row("PSCodigo")) - End If - Next - TxtPS.Text = StrPS.ToString() - End If - ObjCompras.Dispose() - End If - End Sub - - Protected Sub CargaPreguntasEvaluacion(CveEvaluacionProveedor As Integer) - Dim ObjPro As New ClsCompProveedores() - If ObjPro.GetEvaluacionesProveedoresDetalle(CveEvaluacionProveedor) Then - DtRespuestasEvaluacion = ObjPro.DtResultados.Copy() - End If - ObjPro.Dispose() - - If DtRespuestasEvaluacion.Rows.Count > 0 AndAlso DtPreguntasEvaluacion.Rows.Count > 0 Then - GvPreguntas.DataSource = DtPreguntasEvaluacion - GvPreguntas.DataBind() - End If - - End Sub - Protected Sub LnkVerEvaluacion_Click(sender As Object, e As EventArgs) - Dim Row As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - CargaEvaluacion(Row) - RegistraScript("$('#DvEvaluacion').modal('show');") - End Sub - Protected Sub LnkDescargarCarta_Click(sender As Object, e As EventArgs) - Dim Row As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - CargaEvaluacion(Row) - - Dim Fecha = TxtFechaE.Text.ToDateTime() - Dim Mes = Fecha.ToString("MMMM", New CultureInfo("es-MX")) - Dim Obs = TxtObsE.Text.Trim() - Dim Calificacion = TxtCalificacion.Text.ToEntero() - Dim Firma = TxtFirma.Text - - Dim Resultado As String = "" - - If Calificacion.Contiene(0, 1, 2) Then - Resultado = "No Satisfactorio" - ElseIf Calificacion.Contiene(3, 4) Then - Resultado = "Mejoras" - ElseIf Calificacion.Contiene(5, 6) Then - Resultado = "Satisfactorio" - End If - - DescargarFormatoCarta(TxtRS.Text, Fecha.Day.ToString(), Mes, Calificacion.ToString(), Resultado) - End Sub - Protected Sub LnkDescargarFormatoEvaluacion_Click(sender As Object, e As EventArgs) - Dim Row As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - CargaEvaluacion(Row) - - Dim Fecha = TxtFechaE.Text.ToDateTime() - - Dim Mes = Fecha.ToString("MMMM", New CultureInfo("es-MX")) - Dim Obs = TxtObsE.Text.Trim() - Dim Calificacion = TxtCalificacion.Text.ToEntero() - Dim Firma = TxtFirma.Text - - Dim Resultado As String = "" - - If Calificacion.Contiene(0, 1, 2) Then - Resultado = "No Satisfactorio" - ElseIf Calificacion.Contiene(3, 4) Then - Resultado = "Mejoras" - ElseIf Calificacion.Contiene(5, 6) Then - Resultado = "Satisfactorio" - End If - - DescargarFormatoEvaluacion(TxtRS.Text, Fecha.Day.ToString(), Mes, Calificacion.ToString(), Resultado) - End Sub - Protected Sub GvPreguntas_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("TipoDato") = "1" Then - e.Row.CssClass = "Totales" - e.Row.FCRadioButtonList("RblRespuesta").Visible = False - End If - If e.Row.DBCampo("TipoDato") = "2" Then - Dim CvePregunta = e.Row.DBCampo("CvePreguntaEvaluacion").ToEntero() - If CvePregunta > 0 AndAlso DtRespuestasEvaluacion IsNot Nothing Then - Dim Respuesta = DtRespuestasEvaluacion.FiltroPrimeroValor("RespuestaBit", $"CvePreguntaEvaluacion={CvePregunta}") - e.Row.FCRadioButtonList("RblRespuesta").SelectedValue = Respuesta - End If - End If - End If - End Sub - - Private Sub CargaEvaluacion(Row As GridViewRow) - LimpiarDatosEvaluacion() - - Dim CveEvaluacionProveedor = Row.DataKey("CveEvaluacionProveedor").ToEntero() - Dim CveCompra = Row.DataKey("CveCompra").ToEntero() - - TxtRS.Text = Row.DataKey("RazonSocial") - TxtCodigoE.Text = Row.DataKey("Codigo") - - CargaCompraEvaluacion(CveCompra) - CargaPreguntasEvaluacion(CveEvaluacionProveedor) - - TxtObsE.Text = Row.DataKey("Observaciones") - TxtFechaE.Text = Row.DataKey("FechaEvaluacion").ToDate().ToString("dd/MM/yyyy") - TxtFirma.Text = Row.DataKey("Firma") - TxtCalificacion.Text = Row.DataKey("CalificacionFinal") - - UpEvaluacion.Update() - End Sub - Protected Sub DescargarFormatoCarta(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) - Try - Dim PathRoot As String = Server.MapPath("/") - Dim Documento As String = "CartaProveedor.docx" - Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" - Dim PathDestino As String = PathRoot & "Temp\" & Documento - - If File.Exists(PathDestino) Then - File.Delete(PathDestino) - End If - - File.Copy(PathSource, PathDestino) - - Dim ObjCarta As New clsGemBoxDocument(PathDestino) - ObjCarta.SustituirTags(GetTagsCartaEvaluacion(Proveedor, Dia, Mes, Calificacion, Resultado)) - ObjCarta.GuardarStreamPDF() - - ImprimirbytesPDF(ObjCarta.GetBytesDocumento(), "Carta a Proveedor.pdf") - - Catch ex As Exception - OnError("Ocurrió error al generar el formato", ex) - End Try - End Sub - Protected Sub DescargarFormatoEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) - Try - Dim PathRoot As String = Server.MapPath("/") - Dim Documento As String = "FormatoEvaluacionProveedor.docx" - Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" - Dim PathDestino As String = PathRoot & "Temp\" & Documento - - If File.Exists(PathDestino) Then - File.Delete(PathDestino) - End If - - File.Copy(PathSource, PathDestino) - - Dim ObjCarta As New clsGemBoxDocument(PathDestino) - ObjCarta.SustituirTags(GetTagsFormatoEvaluacion()) - ObjCarta.GuardarStreamPDF() - - ImprimirbytesPDF(ObjCarta.GetBytesDocumento(), "Formato Evaluacion Proveedor.pdf") - - Catch ex As Exception - OnError("Ocurrió error al generar el formato", ex) - End Try - End Sub - Private Sub RegisterPostBackControl() - For Each row As GridViewRow In GvEvaluaciones.Rows - ScriptManager.GetCurrent(Me).RegisterPostBackControl(row.FCLinkButton("LnkDescargaFormato")) - ScriptManager.GetCurrent(Me).RegisterPostBackControl(row.FCLinkButton("LnkDescargarCarta")) - Next - End Sub - - Protected Function GetTagsCartaEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) As List(Of TagsDocumentos) - Dim ListaTagsDocumentost = New List(Of TagsDocumentos) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Proveedor}}", Proveedor)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Dia}}", Dia)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Mes}}", Mes)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Calificacion}}", Calificacion)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Resultado}}", Resultado)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Usuario}}", TxtFirma.Text)) - - Dim MensajeInvitacion As String = "Le invitamos a participar en la implementación de acciones para la mejora de sus procesos." - - Dim MensajeSatisfactorio As String = ", debido al cumplimiento de los criterios establecidos por Exploraciones Mineras del Desierto, S.A. de C.V" - Dim MensajeMejoras As String = ", debido a la falta de cumplimiento de los criterios establecidos por Exploraciones Mineras del Desierto, S.A. de C.V. Se realizaron diferentes observaciones de la percepción del servicio, los cuales son:" - Dim MensajeNoSatisfactorio As String = ", debido a la falta de cumplimiento de los criterios establecidos por Exploraciones Mineras del Desierto, S.A. de C.V" - - If Resultado = "No Satisfactorio" Then - ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoTexto}}", MensajeNoSatisfactorio)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Observaciones}}", TxtObsE.Text)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoInvitacion}}", MensajeInvitacion)) - ElseIf Resultado = "Mejoras" Then - ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoTexto}}", MensajeMejoras)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Observaciones}}", TxtObsE.Text)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoInvitacion}}", MensajeInvitacion)) - ElseIf Resultado = "Satisfactorio" Then - ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoTexto}}", MensajeSatisfactorio)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Observaciones}}", "")) - ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoInvitacion}}", "")) - End If - - Return ListaTagsDocumentost - End Function - Protected Function GetTagsFormatoEvaluacion() As List(Of TagsDocumentos) - Dim ListaTagsDocumentos = New List(Of TagsDocumentos) - ListaTagsDocumentos.Add(New TagsDocumentos("{{Proveedor}}", TxtRS.Text.Trim())) - ListaTagsDocumentos.Add(New TagsDocumentos("{{Codigo}}", TxtCodigoE.Text.Trim())) - ListaTagsDocumentos.Add(New TagsDocumentos("{{Fecha}}", TxtFechaE.Text)) - ListaTagsDocumentos.Add(New TagsDocumentos("{{PS}}", TxtPS.Text.Trim())) - - Dim IndexP As Integer = 1 - Dim IndexG As Integer = 1 - - For Each Row As GridViewRow In GvPreguntas.Rows - If Row.RowType = DataControlRowType.DataRow Then - If Row.DataKey("TipoDato") = "1" Then - ListaTagsDocumentos.Add(New TagsDocumentos("{{G" & IndexG & "}}", Row.DataKey("Preguntas"))) - IndexG += 1 - End If - If Row.DataKey("TipoDato") = "2" Then - Dim Respuesta As Integer = Row.FCRadioButtonList("RblRespuesta").SelectedValue.ToEntero() - ListaTagsDocumentos.Add(New TagsDocumentos("{{P" & IndexP & "}}", Row.DataKey("Preguntas"))) - ListaTagsDocumentos.Add(New TagsDocumentos("{{R1" & IndexP & "}}", If(Respuesta = 1, "X", ""))) - ListaTagsDocumentos.Add(New TagsDocumentos("{{R0" & IndexP & "}}", If(Respuesta = 0, "X", ""))) - ListaTagsDocumentos.Add(New TagsDocumentos("{{RN" & IndexP & "}}", If(Respuesta = -1, "X", ""))) - IndexP += 1 - End If - End If - Next - - ListaTagsDocumentos.Add(New TagsDocumentos("{{Observaciones}}", TxtObsE.Text.Trim())) - ListaTagsDocumentos.Add(New TagsDocumentos("{{Firma}}", TxtFirma.Text.Trim())) - ListaTagsDocumentos.Add(New TagsDocumentos("{{Calificacion}}", TxtCalificacion.Text.Trim())) - - Return ListaTagsDocumentos - End Function -#End Region - -#Region " NOTIFICACION PAGO " - Private Sub NotificacionPago(CveIE As Integer, CorreoNotificarA As String) - Dim Param As New List(Of String) - - Param.Add(CorreoNotificarA) 'Para - Param.Add("Notificaciones de pago") 'Asunto - Param.Add(GeneraCorreo(CveIE)) 'Body - Param.Add(CveIE.ToString) 'CveIE - 'Param.Add(If(ComprobanteIE <> "", String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, ComprobanteIE), "")) 'Archivo Adjunto - - Dim Hilo As New Threading.Thread(AddressOf MandaCorreo) - Hilo.Start(Param) - End Sub - - Private Sub MandaCorreo(data As Object) - Dim Parametros As List(Of String) = DirectCast(data, List(Of String)) - - Dim Mail As New ClsSisMail() - Dim Para As String = If(Parametros(0) IsNot Nothing, Parametros(0), "") - Dim Asunto As String = If(Parametros(1) IsNot Nothing, Parametros(1), "") - Dim Body As String = If(Parametros(2) IsNot Nothing, Parametros(2), "") - Dim CveIE As Integer = If(Parametros(3) IsNot Nothing, Parametros(3).ToEntero, 0) - - Dim ListaArchivos As New List(Of ClsSisMail.ArchivoMail) - If Parametros(4) IsNot Nothing AndAlso Parametros(4) <> "" Then - ListaArchivos.Add(New ClsSisMail.ArchivoMail With {.Ruta = Parametros(4).ToString}) - End If - - If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=ListaArchivos) Then - Dim objIE As New ClsBancos - objIE.UpdateBancos_IENotificaciones(1, "-1", "-1", CveIE) - objIE.Dispose() - - TxtCC.Text = "" - TxtBody.Text = "" - RegistraScript("$('#ModalDivMail').modal('hide');") - - - Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) - End If - End Sub - - Private Function GeneraCorreo(CveIE As Integer) As String - Dim strBody As New StringBuilder - Dim objIE As New ClsBancos - - If objIE.GetBancosIE(CveIE, UsuarioActual.CveEmpresa) Then - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat(" {0}", UsuarioActual.Empresa.Empresa) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", UsuarioActual.Empresa.Direccion) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", UsuarioActual.Empresa.Colonia) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", UsuarioActual.Empresa.Ciudad, UsuarioActual.Empresa.Estado, UsuarioActual.Empresa.CP) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", UsuarioActual.Empresa.RFC) - strBody.AppendFormat(" ") - strBody.AppendFormat("
    {0}
    Col. {0}
    {0}, {1}, C.P.{2}
    RFC {0}
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("


    ") - - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - - If objIE.CveTipoTransaccion = 1 Then ' cuando es cheque - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - End If - - If objIE.CveTipoTransaccion = 2 Then ' cuando es transf - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - End If - - strBody.Append(" ") - strBody.AppendFormat(" ") - strBody.Append(" ") - strBody.Append("
    Favor de pasar a nuestras oficinas por el cheque con la siguientes instrucciones.
    Notificación de transferencia de pago realizada.
     
    ") - strBody.AppendFormat("
    ") - strBody.Append("
    ") - - - strBody.AppendFormat("
    ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat(" Beneficiario:{0} ", objIE.PagueseA) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.TipoTransaccion) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.Banco) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.NumCuenta) - strBody.AppendFormat(" ") - If objIE.CuentaDepositado.ToString <> "" Then - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.CuentaDepositado) - strBody.AppendFormat(" ") - End If - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.FechaDocumento.ToString("dd/MM/yyyy")) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.Importe.FormatoNumero, objIE.Moneda) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", objIE.Observaciones) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat("
    Movimiento:{0}
    Banco:{0}
    Cuenta:{0}
    Cuenta Destino:{0}
    Fecha:{0}
    Importe:$ {0} {1}
    Observaciones:{0}
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - - - 'MOVIMIENTOS CHEQUE - If objIE.GetBancosIEMovimientos(CveIE, UsuarioActual.CveEmpresa) Then - Dim Textov33 As String = "" - If UsuarioActual.Empresa.Funcionalidad(520) = "1" Then - Textov33 = "Favor de emitir complemento de pago de los siguientes documentos" - End If - - strBody.AppendFormat("
    ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat(" Documentos abonados o pagados
    {0}
    ", Textov33) - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - - - For Each dr As DataRow In objIE.DtResultados.FiltraParametros("CveConceptoContable IN (17) AND CveCompra > 0").Rows - strBody.AppendFormat(" ") - strBody.AppendFormat(" ", dr("Fecha").ToString.ToDate.ToShortDateString()) - strBody.AppendFormat(" ", dr("SerieFolio").ToString) - strBody.AppendFormat(" ", dr("Importe").ToString.FormatoNumero) - strBody.AppendFormat(" ", dr("FolioFiscal")) - strBody.AppendFormat(" ", dr("ImporteNC").ToString.FormatoNumero) - strBody.AppendFormat(" ") - Next - - - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat(" ") - strBody.AppendFormat("
    FechaFacturaImporte ($)Folio FiscalNC Aplicadas
    {0}{0}$ {0}{0}{0}
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - strBody.AppendFormat("
    ") - End If - - strBody.Append("
    Favor de no responder a este correo.
    ") - - strBody.Append("") - End If - - objIE.Dispose() - Return strBody.ToString - End Function - - Private Sub BtnSendMail_Click(sender As Object, e As EventArgs) Handles BtnSendMail.Click - 'NotificacionPago(HdnCveIE.Value.ToEntero, Txt) - Dim ObjMail As New ClsSisMail() - Dim Body = GeneraCorreo(HdnCveIE.Value.ToEntero) - - Dim ListaArchivos As New List(Of ClsSisMail.ArchivoMail) - - Dim ObjIE As New ClsBancos() - Dim ComprobanteIE As String - If ObjIE.GetBancosIE(HdnCveIE.Value.ToEntero, UsuarioActual.CveEmpresa) Then - If ObjIE.DtResultados.Rows.Count > 0 Then - If ObjIE.Comprobante <> "" Then - ComprobanteIE = String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, ObjIE.Comprobante.ToString) - - If IO.File.Exists(ComprobanteIE) Then - ListaArchivos.Add(New ClsSisMail.ArchivoMail With {.Ruta = ComprobanteIE.ToString}) - End If - End If - End If - End If - ObjIE.Dispose() - - If ObjMail.SendMail(UsuarioActual.Empresa, TxtParaMail.Text.Trim, "Notificaciones de pago", Body, TxtCC.Text.Trim, Displayname:="Notificaciones de pago", Archivos:=ListaArchivos) Then - 'ResultadoMail = 1 - TxtCC.Text = "" - TxtBody.Text = "" - RegistraScript("$('#ModalDivMail').modal('hide');") - Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) - Else - Alert("No se pudo enviar el correo electrónico.", TipoMensaje.MsgError) - End If - - End Sub -#End Region - Protected Sub DdlCveTipoProveedor_SelectedIndexChanged(sender As Object, e As EventArgs) - If UsuarioActual.Empresa.Funcionalidad(544).ToString = "1" Then - TxtCodigo.Enabled = True - TxtCodigo.Text = "" - - Select Case DdlCveTipoProveedor.SelectedValue - Case "1" - GetFolioAut("Pro") - Case "2" - GetFolioAut("Acr") - Case "3" - GetFolioAut("Amb") - End Select - - End If - End Sub - Private Sub GetFolioAut(TipoProv As String) - Dim ObjSub As New ClsSubProyectos - Dim ObjFolios As New ClsGralFolios() - Dim CveSubProyectoMatriz As Integer - - If ObjSub.GetSubProyectos() Then - CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero - End If - - If ObjFolios.GetFolios(TipoProv, UsuarioActual.CveEmpresa) Then - - Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'") - If DT.Rows.Count > 0 Then - TxtCodigo.Text = DT.Rows(0)("FActual").ToString - TxtCodigo.Enabled = False - Else - Alert("No tiene registrados Folios Automáticos.", TipoMensaje.MsgAdvertencia) - End If - End If - End Sub - Protected Sub LblB_Click(sender As Object, e As EventArgs) - Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) - - Dim CveCompra As Integer = GvRow.DataKey("CveCompra").ToEntero() - - RegistraScript(String.Format("$('#{0}').modal('show');", "DivProgramado")) - CargaGVProgramado(CveCompra) - End Sub - Private Sub CargaGVProgramado(CveCompra As Integer) - Dim ObjComp As New ClsCompras - - If ObjComp.GetCxPProgramado(CveCompra, UsuarioActual.CveEmpresa) Then - GVProgramado.DataSource = ObjComp.DtResultados - Else - GVProgramado.DataSource = Nothing - End If - GVProgramado.DataBind() - ObjComp.Dispose() - - UpProgramado.Update() - End Sub - Protected Sub LnkExportCuentas_Click(sender As Object, e As EventArgs) - GvBancosCuentas.ExportToExcelG("CuentasBancarias", "Cuentas Bancarias", UsuarioActual, $"Proveedor: {LtlProveedor.Text}") - End Sub - Public Overrides Sub VerifyRenderingInServerForm(control As Control) - 'MyBase.VerifyRenderingInServerForm(control) - - End Sub -End Class - - - +Option Explicit On +Option Strict On + +Imports System.Data +Imports Extensiones +Imports System.Xml +'Imports msExcel = Microsoft.Office.Interop.Excel +Imports Microsoft.Reporting.WebForms +Imports System.IO +Imports System.Globalization +'Imports VBIDE + +Partial Class Compras_Proveedores + Inherits ClsPaginas + + + 'Configuración +#Region "P R O P I E D A D E S" + Private ReadOnly Property CveProveedor As Integer + Get + Return ViewState("CveProveedor").ToString.ToEntero + End Get + End Property + Private Property CveProveedorSucursal As Integer + Get + Return ViewState("CveProveedorSucursal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveProveedorSucursal") = value + End Set + End Property + Private Property CveCuentaBancaria As Integer + Get + Return ViewState("CveCuentaBancaria").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveCuentaBancaria") = value + End Set + End Property + Private Property Serie As String + Get + Return ViewState("Serie").ToString + End Get + Set(value As String) + ViewState("Serie") = value + End Set + End Property + Private Property Modalidad As String + Get + Return ViewState("Modalidad").ToString + End Get + Set(value As String) + ViewState("Modalidad") = value + End Set + End Property + Private Property SerieSucursal As String + Get + Return ViewState("SerieSucursal").ToString + End Get + Set(value As String) + ViewState("SerieSucursal") = value + End Set + End Property + Private Property CveMoneda As Integer + Get + Return ViewState("CveMoneda").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMoneda") = value + End Set + End Property + Private Property DtCuentasContables As Data.DataTable + Get + Return CType(ViewState("DtCuentasContables"), DataTable) + End Get + Set(value As Data.DataTable) + ViewState("DtCuentasContables") = value + End Set + End Property + Private Property DTCuentasBancos As DataTable + Get + Return CType(ViewState("DTCuentasBancos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DTCuentasBancos") = value + End Set + End Property + Private Property TempDTCuentasBancos As DataTable + Get + Return CType(ViewState("TempDTCuentasBancos"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTCuentasBancos") = value + End Set + End Property + Private Property DTCxP As DataTable + Get + Return CType(ViewState("DTCxP"), DataTable) + End Get + Set(value As DataTable) + ViewState("DTCxP") = value + End Set + End Property + + Public Property CountCuentasxPagar As Integer + Get + Return ViewState("CountCuentasxPagar").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CountCuentasxPagar") = value + End Set + End Property + + Public Property CountAnticipos As Integer + Get + Return ViewState("CountAnticipos").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CountAnticipos") = value + End Set + End Property + Private Property CveMonedaFiltro As Integer + Get + Return ViewState("CveMonedaFiltro").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMonedaFiltro") = value + End Set + End Property + Private Property TempDTProveedoresContactos As DataTable + Get + Return CType(ViewState("TempDTProveedoresContactos"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTProveedoresContactos") = value + End Set + End Property + Private Property TempDTProveedoresContactosOrigin As DataTable + Get + Return CType(ViewState("TempDTProveedoresContactosOrigin"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTProveedoresContactosOrigin") = value + End Set + End Property + Private Property CveProveedorContacto As Integer + Get + Return ViewState("CveProveedorContacto").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveProveedorContacto") = value + End Set + End Property + Private Property IndexDTContacto As Integer + Get + Return ViewState("IndexDTContacto").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IndexDTContacto") = value + End Set + End Property + Private Property TempDTProveedoresContactosSucursal As DataTable + Get + Return CType(ViewState("TempDTProveedoresContactosSucursal"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTProveedoresContactosSucursal") = value + End Set + End Property + Private Property TempDTProveedoresContactosSucursalOrigin As DataTable + Get + Return CType(ViewState("TempDTProveedoresContactosSucursalOrigin"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTProveedoresContactosSucursalOrigin") = value + End Set + End Property + Private Property EsContactoSucursal As Integer + Get + Return ViewState("EsContactoSucursal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("EsContactoSucursal") = value + End Set + End Property + Private Property TempDTSucursales As DataTable + Get + Return CType(ViewState("TempDTSucursales"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTSucursales") = value + End Set + End Property + Private Property TempDTSucursalesOrigin As DataTable + Get + Return CType(ViewState("TempDTSucursalesOrigin"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDTSucursalesOrigin") = value + End Set + End Property + Private Property IndexDTSucursal As Integer + Get + Return ViewState("IndexDTSucursal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IndexDTSucursal") = value + End Set + End Property + Private Property CveTempSucursal As Integer + Get + Return ViewState("CveTempSucursal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveTempSucursal") = value + End Set + End Property + Private Property EsEditar As Integer + Get + Return ViewState("EsEditar").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("EsEditar") = value + End Set + End Property + Private Property EsEditarSucursal As Integer + Get + Return ViewState("EsEditarSucursal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("EsEditarSucursal") = value + End Set + End Property + Private Property DtVencido As DataTable + Get + DtVencido = CType(ViewState("DtVencido"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtVencido") = value + End Set + End Property + Private Property DtRotacion As DataTable + Get + DtRotacion = CType(ViewState("DtRotacion"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtRotacion") = value + End Set + End Property + Private Property DtSaldoMensual As DataTable + Get + DtSaldoMensual = CType(ViewState("DtSaldoMensual"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtSaldoMensual") = value + End Set + End Property + Private Property DtComportamientoCompras As DataTable + Get + DtComportamientoCompras = CType(ViewState("DtComportamientoCompras"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtComportamientoCompras") = value + End Set + End Property + + Private Property DtPreguntasEvaluacion() As DataTable + Get + Return If(IsNothing(ViewState("DtPreguntasEvaluacion")), New DataTable(), DirectCast(ViewState("DtPreguntasEvaluacion"), DataTable)) + End Get + Set + ViewState("DtPreguntasEvaluacion") = Value + End Set + End Property + Private Property DtRespuestasEvaluacion() As DataTable + Get + Return If(IsNothing(ViewState("DtRespuestasEvaluacion")), New DataTable(), DirectCast(ViewState("DtRespuestasEvaluacion"), DataTable)) + End Get + Set + ViewState("DtRespuestasEvaluacion") = Value + End Set + End Property + +#End Region + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + CountCuentasxPagar = 0 + CountAnticipos = 0 + DtCuentasContables = Nothing + ViewState("Orden") = "" + SerieSucursal = "" + TrFolioDuplicado.Visible = False + CargaMonedas() + 'HlAgregarExcel.Visible = UsuarioActual.CveRol = 1 + + If Request("CveProveedor") IsNot Nothing AndAlso IsNumeric(Request("CveProveedor")) AndAlso Request("CveProveedor").ToEntero > 0 Then + + ViewState("CveProveedor") = Request("CveProveedor") + Serie = IfNull(Request("Serie"), "").ToString + CveProveedorSucursal = IfNull(Request("CveProveedorSucursal"), "-1").ToString.ToEntero + CveMoneda = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero + + + If CveMoneda > 0 Then RBMoneda.SelectedValue = CveMoneda.ToString + + If CargaDatos() Then + CveMonedaFiltro = -1 + + CargaHistorial(CveProveedorSucursal) + CargaCxP(CveProveedorSucursal) + CargaAnticipos(CveProveedorSucursal) + CargaBancos(CveProveedorSucursal) + CargaProveedorSucursales() + + CargaOC() + CargaDocs() + 'CargaColectivas() + 'CargaSaldosBeneficiarios() + CargaUsuariosPortal() + + CargaFiltroMonedas() + MostrarFiltro() + + + 'Configuración de Modalidad Update + ActivarRegistroAutomatico() + BtnGuardar.Text = "Guardar Cambios" + LtlTitulo.Text = "Proveedor:" + 'ImgAddVenta + HlAddCompra.NavigateUrl = $"/Compras/Compras.aspx?CveProveedor={CveProveedor}" + + 'ImgAddCompra.Attributes.Add("OnClick", "window.location = '/Compras/Compras.aspx?CveProveedor=" & CveProveedor & "'") + 'ImgAddObs.Attributes.Add("onclick", "javascript: PosicionaObjeto(this.id,'DivEventoBitacora',null,-250, -250); $('#DivEventoBitacora').show(1000); ") + If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero + + 'CARGA LOS FILTROS DEL TAB COMPORTAMIENTO VENTA + TabComportamientoCompras.Visible = True + CargaFiltros() + End If + HlEvento.Visible = True + HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveProveedor=" & CveProveedor & "&TB_iframe=true&height=370&width=600;" + Else + 'Configuración de Modalidad Insert + + ImgAddObs.Visible = False + ChkEstado.Checked = True : ChkEstado.Enabled = False + LblFechaCaptura.Text = Now.ToShortDateString() + LblUsuarioCapturo.Text = UsuarioActual.Usuario + ViewState("CveProveedor") = -1 + DivSucursales.Visible = False + CargaCombos() + CargaDIOTPais() + + 'DDlDIOTTipoTercero.SelectedValueExist(1) + 'DdlDIOTTipoOperacion.SelectedValueExist(3) + + CreaTempDTProveedoresContactos() + CreaTempDTProveedoresContactosSucursales() + CreaTempDTSucursales() + + If UsuarioActual.Empresa.Funcionalidad(544).ToString = "1" Then + Dim ObjSub As New ClsSubProyectos + Dim CveSubProyectoMatriz As Integer + + If ObjSub.GetSubProyectos() Then + CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero + End If + + Dim ObjFolios As New ClsGralFolios() + If ObjFolios.GetFolios("Pro", UsuarioActual.CveEmpresa) Then + + Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'") + If DT.Rows.Count > 0 Then + TxtCodigo.Text = DT.Rows(0)("FActual").ToString + TxtCodigo.Enabled = False + Else + Alert("No tiene registrados Folios Automáticos.", TipoMensaje.MsgAdvertencia) + End If + End If + End If + + TxtRazonSocial.Attributes.Add("onKeyUp", "SetText(" & TxtRazonSocial.ClientID & ", " & TxtNombreComercial.ClientID & ")") + If Request("CveFactura") IsNot Nothing Then + CargadeFactura(Request("CveFactura").ToString.ToEntero) + + End If + + If UsuarioActual.TienePermisoProceso(256) Then LnkParametros.Visible = True 'Actualizar Límite de Crédito + + ActivarRegistroAutomatico() + End If + + 'Crea y carga CuentasBancarias - tab:Bancos + CargaCuentasBancarias() + + + If UsuarioActual.TienePermisoProceso(84) Then 'abonar pago + HplAbonarMasivo.Visible = True + GvCxP.Columns(11).Visible = True + End If + + If UsuarioActual.TienePermisoProceso(88) Then BtnGuardar.Visible = True 'agregar/Nuevo proveedor + + ScriptManager.RegisterStartupScript(Me, Me.GetType, "Ll", "pageLoad();", True) + + If UsuarioActual.Empresa.CvePlataforma = 2 Then + DivFiscal.Visible = False + TrFondoGarantia.Visible = False + divportalusuarios.Visible = False + End If + + CveProveedorContacto = -1 + ' CargaDdlProveedorSucursalesContactos() + + 'USUARIOS + '02/07/2018 - PRUEBAS USUARIOS PLATAFORMA PROVEEDOR + If UsuarioActual.Empresa.CvePlataforma = 1 AndAlso CveProveedor > 0 Then 'SI ES USUARIO SIG + TabUsuarios.Visible = True + CargaUsuariosPortalProveedor() + + LnkAddUsuario.Visible = True + LnkAddUsuario.Attributes.Add("onclick", $"javascript:AbrirVentana('/Sistemas/PopUpAddUsuario.aspx?CveProveedor={CveProveedor}', 801, 700);") + + End If + + TxtFechaICredito.Text = Now.AddYears(-2).ToShortDateString + TxtFechaFCredito.Text = Now.ToShortDateString + + If UsuarioActual.Empresa.Funcionalidad(560) = "1" Then + TabEvaluacion.Visible = True + CargaEvaluacionProveedor() + UpEvaluaciones.Update() + End If + + If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + TrConfianzaProveedor.Visible = True + End If + + If UsuarioActual.TienePermisoProceso(273) Then + GvA.Columns(5).Visible = True + End If + + End If + + Dim script As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#CXPContador""", """badge-success""", """badge-danger""", If(CountCuentasxPagar > 0, """badge-danger""", """badge-success"""), CountCuentasxPagar.ToString) + RegistraScript(script, "contadorcuentaspopagar") + + Dim script2 As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#AnticiposContador""", """badge-success""", """badge-danger""", If(CountAnticipos > 0, """badge-danger""", """badge-success"""), CountAnticipos.ToString) + RegistraScript(script2, "contadoranticipos") + + RegisterPostBackControl() + End Sub + + Private Sub SetValues() + ViewState("Orden") = "" + ViewState("OrdenUsuarios") = "" + 'ViewState("OEstado") = "Estado DESC" + 'ViewState("OFecha") = "Fecha DESC" + 'ViewState("OUsuario") = "Usuario DESC" + End Sub + + Private Sub CargaCuentasContables(Optional IdCuentaPadre As Integer = -1) + If UsuarioActual.Empresa.UsaContabilidad Then + Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) + If ObjContabilidad.GetCuentasRecursiva(IdCuentaPadre, 1) Then + DtCuentasContables = ObjContabilidad.DtResultados + Else + DtCuentasContables = Nothing + End If + ObjContabilidad.Dispose() + ElseIf UsuarioActual.Empresa.UsaContabilidadSIG Then + Dim ObjContabilidad As New ClsContabilidad + If ObjContabilidad.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa) Then + DtCuentasContables = ObjContabilidad.DtResultados + Else + DtCuentasContables = Nothing + End If + ObjContabilidad.Dispose() + End If + + End Sub + + Private Function CargadeFactura(CveFactura As Integer) As Integer + + Dim ObjeFacturas As New ClsCompras + If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-2), Now, "-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + Dim XMLDoc As New XmlDocument + + Try + Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) + XMLDoc.Load(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & dr("CveEmpresa").ToString & "\Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString) + Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) + Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3" + Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) + Dim nodo As XmlNode = XMLDoc.DocumentElement + + If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2" + namespaces.AddNamespace(Prefijo, cfdVer) + Dim Version As String = ValorXml(nodo, "Version") + + Dim node As XmlNode + node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces) + If node IsNot Nothing Then + TxtRFC.Text = ValorXml(node, "rfc") + + If Version = "3.3" Then + TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre")) + TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre")) + ChkEstado.Checked = True + Else + TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre")) + TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre")) + Dim nodeDomicilio As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:DomicilioFiscal", Prefijo), namespaces) + TxtDireccion.Text = ValorXml(nodeDomicilio, "calle") & " " & ValorXml(nodeDomicilio, "noExterior") + ChkEstado.Checked = True + + node = XMLDoc.SelectSingleNode(String.Format("//{0}:Impuestos", Prefijo), namespaces) + If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then + 'Dim nodeRetenciones As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Retencion", Prefijo), namespaces) + 'Dim nodeRet As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Retenciones", Prefijo), namespaces) + + Dim nodeTraslados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Traslado", Prefijo), namespaces) + For Each traslado As XmlNode In nodeTraslados + If traslado.Attributes("impuesto").Value = "IVA" Then + TxtIVA.Text = traslado.Attributes("tasa").Value.ToDouble.ToString("N2") + 'Retenciones + End If + Next + End If + End If + End If + + + DdlCtaContProveedores.Attributes.Add("onclick", "CargaCuentas(1);") + + Catch ex As Exception + Alert(String.Format("No se pudo cargar la información ({0})", ex.Message), TipoMensaje.MsgAdvertencia) + Return 0 + End Try + + End If + Return 1 + End Function + + Private Function ValorXml(n As XmlNode, Campo As String, Optional Retorno As String = "") As String + If n Is Nothing Then Return Retorno + + Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) + If o Is Nothing Then + Return Retorno + Else + Return o.Value + End If + + End Function + + Private Sub CargaCombos() + CargaResponsable() + CargaClasificacionProveedor() + CargaUsuarioEvaluacionProveedor() + End Sub + + Private Function CargaDatos() As Boolean + Dim Retorno As Boolean = False + Dim ObjProveedor As New ClsCompProveedores() + + If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, CveProveedor, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then + If ObjProveedor.DtResultados.Rows.Count > 0 Then + 'Campos para Modificación + + 'Generales + TxtCodigo.Text = ObjProveedor.Codigo + TxtRazonSocial.Text = ObjProveedor.RazonSocial + LtlProveedor.Text = ObjProveedor.RazonSocial + TxtNombreComercial.Text = ObjProveedor.NombreComercial + TxtNombreCorto.Text = ObjProveedor.NombreCorto + TxtDireccion.Text = ObjProveedor.Direccion + TxtRFC.Text = ObjProveedor.RFC + TxtTelefono.Text = ObjProveedor.Telefono + TxtContactoNombre.Text = ObjProveedor.ContactoNombre + TxtContactoEmail.Text = ObjProveedor.ContactoMail + TxtContactoTelefono.Text = ObjProveedor.ContactoCelular + TxtNotificarA.Text = ObjProveedor.NotificarA + TxtCP.Text = ObjProveedor.CP.ToString + LblSituacionSAT.Text = ObjProveedor.Situacion + + HplAbonarMasivo.NavigateUrl = String.Format("/Bancos/ProveedoresAbonar.aspx?CveProveedor={0}&Serie={1}&CveMoneda={2}", CveProveedor, Serie, CveMoneda) + + TxtCorreoCobranza.Text = ObjProveedor.CorreoCobranza + LblUsuarioPortalCliente.Text = ObjProveedor.CorreoCobranza + LblUsuarioPortalCliente.Attributes("style") = "font-weight: bold;" + + ChkFolioDuplicado.Checked = ObjProveedor.EditarFolioDuplicado + DdlMonedaPrefente.SelectedValueExist(ObjProveedor.CveMonedaPreferente.ToString) + + ChkUsaLimiteCredito.Checked = ObjProveedor.UsaLimiteCredito + + 'Fiscal + TxtIVA.Text = (ObjProveedor.IVA * 100).FormatoNumero + TxtRetIVA.Text = ObjProveedor.RetIVA.ToString + TxtRetISR.Text = ObjProveedor.RetISR.ToString + + 'DIOT + CargaDIOTPais() + DDlDIOTTipoTercero.SelectedValueExist(ObjProveedor.DIOTCveTipoTercero) + DdlDIOTTipoOperacion.SelectedValueExist(ObjProveedor.DIOTCveTipoOperacion) + TxtDIOTNumIDFiscal.Text = ObjProveedor.DIOTNumeroIDFiscal + DdlDIOTPais.SelectedValueExist(ObjProveedor.DIOTCvePais) + TxtDIOTNacionalidad.Text = ObjProveedor.DIOTNacionalidad + + 'Contable + If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaContabilidadSIG Then + DdlCtaContAcreedores.AutoPostBack = True + DdlCtaContProveedores.AutoPostBack = True + DdlCtaContAnticipos.AutoPostBack = True + DdlCtaContFondoGarantia.AutoPostBack = True + DdlCtaContRetIVA.AutoPostBack = True + DdlCtaContRetIVAAcreditable.AutoPostBack = True + DdlCtaContRetISR.AutoPostBack = True + DdlCtaContComplementaria.AutoPostBack = True + DdlCtaContExtranjera.AutoPostBack = True + DdlCtaContDeudor.AutoPostBack = True + DdlCtaContDeudorExtranjera.AutoPostBack = True + DdlCtaContDeudorComplementaria.AutoPostBack = True + DdlCtaContDocsXPagar.AutoPostBack = True + DdlCtaContDocsXPagarExtranjera.AutoPostBack = True + DdlCtaContDocsXPagarComplementaria.AutoPostBack = True + DdlCtaContRetISRAcreditable.AutoPostBack = True + + DdlCtaContProveedores.Attributes.Add("onclick", "CargaCuentas(1);") + DdlCtaContAcreedores.Attributes.Add("onclick", "CargaCuentas(6);") + DdlCtaContAnticipos.Attributes.Add("onclick", "CargaCuentas(2);") + DdlCtaContFondoGarantia.Attributes.Add("onclick", "CargaCuentas(3);") + DdlCtaContRetIVA.Attributes.Add("onclick", "CargaCuentas(4);") + DdlCtaContRetISR.Attributes.Add("onclick", "CargaCuentas(5);") + DdlCtaContComplementaria.Attributes.Add("onclick", "CargaCuentas(7);") + DdlCtaContExtranjera.Attributes.Add("onclick", "CargaCuentas(8);") + DdlCtaContAcreedoresExtranjera.Attributes.Add("onclick", "CargaCuentas(9);") + DdlCtaContAcreedoresComplementaria.Attributes.Add("onclick", "CargaCuentas(10);") + DdlCtaContAnticiposExtranjera.Attributes.Add("onclick", "CargaCuentas(11);") + DdlCtaContAnticiposComplementaria.Attributes.Add("onclick", "CargaCuentas(12);") + DdlCtaContDeudor.Attributes.Add("onclick", "CargaCuentas(13);") + DdlCtaContDeudorExtranjera.Attributes.Add("onclick", "CargaCuentas(14);") + DdlCtaContDeudorComplementaria.Attributes.Add("onclick", "CargaCuentas(15);") + DdlCtaContDocsXPagar.Attributes.Add("onclick", "CargaCuentas(16);") + DdlCtaContDocsXPagarExtranjera.Attributes.Add("onclick", "CargaCuentas(17);") + DdlCtaContDocsXPagarComplementaria.Attributes.Add("onclick", "CargaCuentas(18);") + DdlCtaContRetISRAcreditable.Attributes.Add("onclick", "CargaCuentas(19);") + DdlCtaContRetIVAAcreditable.Attributes.Add("onclick", "CargaCuentas(20);") + + If UsuarioActual.Empresa.UsaContabilidadSIG = True And UsuarioActual.Empresa.UsaContabilidad = False Then + DdlCtaContAcreedores.DataTextField = "Cuenta" : DdlCtaContAcreedores.DataValueField = "CveCuenta" + DdlCtaContProveedores.DataTextField = "Cuenta" : DdlCtaContProveedores.DataValueField = "CveCuenta" + DdlCtaContAnticipos.DataTextField = "Cuenta" : DdlCtaContAnticipos.DataValueField = "CveCuenta" + DdlCtaContFondoGarantia.DataTextField = "Cuenta" : DdlCtaContFondoGarantia.DataValueField = "CveCuenta" + DdlCtaContRetIVA.DataTextField = "Cuenta" : DdlCtaContRetIVA.DataValueField = "CveCuenta" + DdlCtaContRetIVAAcreditable.DataTextField = "Cuenta" : DdlCtaContRetIVAAcreditable.DataValueField = "CveCuenta" + DdlCtaContRetISR.DataTextField = "Cuenta" : DdlCtaContRetISR.DataValueField = "CveCuenta" + DdlCtaContComplementaria.DataTextField = "Cuenta" : DdlCtaContComplementaria.DataValueField = "CveCuenta" + DdlCtaContExtranjera.DataTextField = "Cuenta" : DdlCtaContExtranjera.DataValueField = "CveCuenta" + DdlCtaContDeudor.DataTextField = "Cuenta" : DdlCtaContDeudor.DataValueField = "CveCuenta" + DdlCtaContDeudorExtranjera.DataTextField = "Cuenta" : DdlCtaContDeudorExtranjera.DataValueField = "CveCuenta" + DdlCtaContDocsXPagar.DataTextField = "Cuenta" : DdlCtaContDocsXPagar.DataValueField = "CveCuenta" + DdlCtaContDeudorComplementaria.DataTextField = "Cuenta" : DdlCtaContDeudorComplementaria.DataValueField = "CveCuenta" + DdlCtaContDocsXPagarComplementaria.DataTextField = "Cuenta" : DdlCtaContDocsXPagarComplementaria.DataValueField = "CveCuenta" + DdlCtaContRetISRAcreditable.DataTextField = "Cuenta" : DdlCtaContRetISRAcreditable.DataValueField = "CveCuenta" + DdlCtaContAcreedoresExtranjera.DataTextField = "Cuenta" : DdlCtaContAcreedoresExtranjera.DataValueField = "CveCuenta" + DdlCtaContAcreedoresComplementaria.DataTextField = "Cuenta" : DdlCtaContAcreedoresComplementaria.DataValueField = "CveCuenta" + DdlCtaContAnticiposExtranjera.DataTextField = "Cuenta" : DdlCtaContAnticiposExtranjera.DataValueField = "CveCuenta" + DdlCtaContAnticiposComplementaria.DataTextField = "Cuenta" : DdlCtaContAnticiposComplementaria.DataValueField = "CveCuenta" + DdlCtaContDocsXPagarExtranjera.DataTextField = "Cuenta" : DdlCtaContDocsXPagarExtranjera.DataValueField = "CveCuenta" + End If + + 'Proveedores + If ObjProveedor.IdCtaContProveedores > 0 Then DdlCtaContProveedores.Items.Add(New ListItem(ObjProveedor.CtaContProveedores, ObjProveedor.IdCtaContProveedores.ToString)) : DdlCtaContProveedores.SelectedValueExist(ObjProveedor.IdCtaContProveedores.ToString) + If ObjProveedor.IdCtaContProveedoresExtranjera > 0 Then DdlCtaContExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContProveedoresExtranjera, ObjProveedor.IdCtaContProveedoresExtranjera.ToString)) : DdlCtaContExtranjera.SelectedValue = ObjProveedor.IdCtaContProveedoresExtranjera.ToString + If ObjProveedor.IdCtaContProveedoresComplementaria > 0 Then DdlCtaContComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContProveedoresComplementaria, ObjProveedor.IdCtaContProveedoresComplementaria.ToString)) : DdlCtaContComplementaria.SelectedValue = ObjProveedor.IdCtaContProveedoresComplementaria.ToString + 'Acreedores + If ObjProveedor.IdCtaContAcreedor > 0 Then DdlCtaContAcreedores.Items.Add(New ListItem(ObjProveedor.CtaContAcreedor, ObjProveedor.IdCtaContAcreedor.ToString)) : DdlCtaContAcreedores.SelectedValue = ObjProveedor.IdCtaContAcreedor.ToString + If ObjProveedor.IdCtaContAcreedorExtranjera > 0 Then DdlCtaContAcreedoresExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContAcreedorExtranjera, ObjProveedor.IdCtaContAcreedorExtranjera.ToString)) : DdlCtaContAcreedoresExtranjera.SelectedValue = ObjProveedor.IdCtaContAcreedorExtranjera.ToString + If ObjProveedor.IdCtaContAcreedorComplementaria > 0 Then DdlCtaContAcreedoresComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContAcreedorComplementaria, ObjProveedor.IdCtaContAcreedorComplementaria.ToString)) : DdlCtaContAcreedoresComplementaria.SelectedValue = ObjProveedor.IdCtaContAcreedorComplementaria.ToString + 'Anticipos + If ObjProveedor.IdCtaContAnticipos > 0 Then DdlCtaContAnticipos.Items.Add(New ListItem(ObjProveedor.CtaContAnticipos, ObjProveedor.IdCtaContAnticipos.ToString)) : DdlCtaContAnticipos.SelectedValue = ObjProveedor.IdCtaContAnticipos.ToString + If ObjProveedor.IdCtaContAnticiposExtranjera > 0 Then DdlCtaContAnticiposExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContAnticiposExtranjera, ObjProveedor.IdCtaContAnticiposExtranjera.ToString)) : DdlCtaContAnticiposExtranjera.SelectedValue = ObjProveedor.IdCtaContAnticiposExtranjera.ToString + If ObjProveedor.IdCtaContAnticiposComplementaria > 0 Then DdlCtaContAnticiposComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContAnticiposComplementaria, ObjProveedor.IdCtaContAnticiposComplementaria.ToString)) : DdlCtaContAnticiposComplementaria.SelectedValue = ObjProveedor.IdCtaContAnticiposComplementaria.ToString + 'Deudores + If ObjProveedor.IdCtaContDeudor > 0 Then DdlCtaContDeudor.Items.Add(New ListItem(ObjProveedor.CtaContDeudor, ObjProveedor.IdCtaContDeudor.ToString)) : DdlCtaContDeudor.SelectedValue = ObjProveedor.IdCtaContDeudor.ToString + If ObjProveedor.IdCtaContDeudorExtranjera > 0 Then DdlCtaContDeudorExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContDeudorExtranjera, ObjProveedor.IdCtaContDeudorExtranjera.ToString)) : DdlCtaContDeudorExtranjera.SelectedValue = ObjProveedor.IdCtaContDeudorExtranjera.ToString + If ObjProveedor.IdCtaContDeudorComplementaria > 0 Then DdlCtaContDeudorComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContDeudorComplementaria, ObjProveedor.IdCtaContDeudorComplementaria.ToString)) : DdlCtaContDeudorComplementaria.SelectedValue = ObjProveedor.IdCtaContDeudorComplementaria.ToString + 'DocsXPagar + If ObjProveedor.IdCtaContDocsXPagar > 0 Then DdlCtaContDocsXPagar.Items.Add(New ListItem(ObjProveedor.CtaContDocsXPagar, ObjProveedor.IdCtaContDocsXPagar.ToString)) : DdlCtaContDocsXPagar.SelectedValue = ObjProveedor.IdCtaContDocsXPagar.ToString + If ObjProveedor.IdCtaContDocsXPagarExtranjera > 0 Then DdlCtaContDocsXPagarExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContDocsXPagarExtranjera, ObjProveedor.IdCtaContDocsXPagarExtranjera.ToString)) : DdlCtaContDocsXPagarExtranjera.SelectedValue = ObjProveedor.IdCtaContDocsXPagarExtranjera.ToString + If ObjProveedor.IdCtaContDocsXPagarComplementaria > 0 Then DdlCtaContDocsXPagarComplementaria.Items.Add(New ListItem(ObjProveedor.CtaContDocsXPagarComplementaria, ObjProveedor.IdCtaContDocsXPagarComplementaria.ToString)) : DdlCtaContDocsXPagarComplementaria.SelectedValue = ObjProveedor.IdCtaContDocsXPagarComplementaria.ToString + 'Otros + If ObjProveedor.IdCtaContFondoGarantia > 0 Then DdlCtaContFondoGarantia.Items.Add(New ListItem(ObjProveedor.CtaContFondoGarantia, ObjProveedor.IdCtaContFondoGarantia.ToString)) : DdlCtaContFondoGarantia.SelectedValue = ObjProveedor.IdCtaContFondoGarantia.ToString + If ObjProveedor.IdCtaContRetIVA > 0 Then DdlCtaContRetIVA.Items.Add(New ListItem(ObjProveedor.CtaContRetIVA, ObjProveedor.IdCtaContRetIVA.ToString)) : DdlCtaContRetIVA.SelectedValue = ObjProveedor.IdCtaContRetIVA.ToString + If ObjProveedor.IdCtaContRetISR > 0 Then DdlCtaContRetISR.Items.Add(New ListItem(ObjProveedor.CtaContRetISR, ObjProveedor.IdCtaContRetISR.ToString)) : DdlCtaContRetISR.SelectedValue = ObjProveedor.IdCtaContRetISR.ToString + If ObjProveedor.IdCtaContRetISRAcreditable > 0 Then DdlCtaContRetISRAcreditable.Items.Add(New ListItem(ObjProveedor.CtaContRetISRAcreditable, ObjProveedor.IdCtaContRetISRAcreditable.ToString)) : DdlCtaContRetISRAcreditable.SelectedValue = ObjProveedor.IdCtaContRetISRAcreditable.ToString + If ObjProveedor.IdCtaContRetIVAAcreditable > 0 Then DdlCtaContRetIVAAcreditable.Items.Add(New ListItem(ObjProveedor.CtaContRetIVAAcreditable, ObjProveedor.IdCtaContRetIVAAcreditable.ToString)) : DdlCtaContRetIVAAcreditable.SelectedValue = ObjProveedor.IdCtaContRetIVAAcreditable.ToString + + + End If + + 'CxP + TxtLimiteCredito.Text = ObjProveedor.LimiteCredito.ToString.FormatoNumero + TxtPlazoCobranza.Text = ObjProveedor.PlazoPago.ToString + LblLimiteCredito.Text = ObjProveedor.LimiteCredito.ToString.FormatoNumero + LblPlazoCobranza.Text = ObjProveedor.PlazoPago.ToString + + 'Sistema + ChkEstado.Checked = ObjProveedor.Estatus = "Activo" + LblFechaCaptura.Text = ObjProveedor.FechaIng.ToShortDateString + LblUsuarioCapturo.Text = ObjProveedor.Usuario + TxtObservaciones.Text = ObjProveedor.Observaciones + + CargaCombos() + + ChkAplicarEvaluacion.Checked = If(ObjProveedor.DtResultados.Rows(0)("AplicarEvaluacion").ToString = "True", True, False) + TxtFechaEva.Text = If(IsDate(ObjProveedor.DtResultados.Rows(0)("FechaEvaluacion").ToString()), ObjProveedor.DtResultados.Rows(0)("FechaEvaluacion").ToString().ToDate().ToString("dd/MM/yyyy"), "") + LblFechaUltimaEvaluacion.Text = If(IsDate(ObjProveedor.DtResultados.Rows(0)("FechaUltimaEvaluacion").ToString()), ObjProveedor.DtResultados.Rows(0)("FechaUltimaEvaluacion").ToString().ToDate().ToString("dd/MM/yyyy"), "") + DdlCicloEvaluacion.SelectedValueExist(ObjProveedor.DtResultados.Rows(0)("CicloEvaluacion").ToString()) + DdlUsuarioEvaluador.SelectedValueExist(ObjProveedor.DtResultados.Rows(0)("CveUsuarioEvaluador").ToString()) + + DdlConfianzaProveedor.SelectedValueExist(ObjProveedor.DtResultados.Rows(0)("CveConfianzaProveedor")) + + DdlCveClasificacionProveedor.SelectedValue = ObjProveedor.CveProveedorClasificacion.ToString() + DdlCveUsuarioResponsable.SelectedValue = ObjProveedor.CveUsuarioResponsable.ToString + DdlCveTipoProveedor.SelectedValue = ObjProveedor.CveTipoProveedor.ToString + + + If TxtRazonSocial.Text.Trim = TxtNombreComercial.Text.Trim Then TxtRazonSocial.Attributes.Add("onKeyUp", "SetText(" & TxtRazonSocial.ClientID & ", " & TxtNombreComercial.ClientID & ")") + + If UsuarioActual.TienePermisoProceso(87) Then BtnGuardar.Visible = True 'Actualizar Proveedor + If UsuarioActual.TienePermisoProceso(86) Then BtnEliminar.Visible = True ' Eliminar Proveedor + If UsuarioActual.TienePermisoProceso(256) Then LnkParametros.Visible = True 'Actualizar Límite de Crédito + + Retorno = True + + enviaractivacion() + + + CargaEventoBitacora() + + Else + Alert("El Proveedor Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) + BtnGuardar.Enabled = False + ' LbAgregarSucursal.Enabled = False + + End If + End If + + CargaProveedorSucursales() + + CargaContactos(ObjProveedor) + + ObjProveedor.Dispose() + Return Retorno + End Function + Private Sub CargaUsuarioEvaluacionProveedor() + DdlUsuarioEvaluador.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) + DdlUsuarioEvaluador.DataBind() + End Sub + + Private Sub CargaContactos(ByRef ObjProveedor As ClsCompProveedores) + 'TRAE CONTACTOS GENERALES Y POR SUCURSAL + If ObjProveedor.GetProveedoresContactos(-1, CveProveedor, -1) Then + TempDTProveedoresContactos = ObjProveedor.DtResultados + TempDTProveedoresContactosOrigin = TempDTProveedoresContactos.Copy() + GvContactoProveedor.DataSource = TempDTProveedoresContactos + GvContactoProveedor.DataBind() + UpContactosProveedor.Update() + End If + 'TRAE CONTACTOS CON SUCURSAL + If ObjProveedor.GetProveedoresContactos(-1, CveProveedor, -1) Then + TempDTProveedoresContactosSucursal = ObjProveedor.DtResultados.FiltraParametros("CveProveedorSucursal > 0") + 'If CveProveedor = -1 Then + TempDTProveedoresContactosSucursal.Columns.Add("CveSucursalTemp", GetType(String)) 'Para controlar las sucursales no insertadas en BD + 'End If + TempDTProveedoresContactosSucursalOrigin = TempDTProveedoresContactosSucursal.Copy() + End If + End Sub + + Private Sub OrdenaDatos() + If (GVSucursales.Rows.Count > 0) Then + GVSucursales.UseAccessibleHeader = True + GVSucursales.HeaderRow.TableSection = TableRowSection.TableHeader + RegistraScript("OrdenarGV();") + End If + End Sub + + Private Sub CargaHistorial(CveProveedorSucursal As Integer, Optional SelectTop As Integer = 51) + Dim ObjProveedores As New ClsCompProveedores() + If ObjProveedores.GetHistorialCompras(CveProveedor, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), SelectTop, CveMonedaFiltro) Then + If ObjProveedores.DtResultados.Rows.Count > 0 Then + 'Carga Generales + LtlCantidad.Text = ObjProveedores.DtResultados.Rows(0)("CountTotal").ToString.FormatoNumero(0) + LtlTotalVendido.Text = ObjProveedores.DtResultados.Rows(0)("Total").ToString.FormatoNumero(2) + LtlMinima.Text = ObjProveedores.DtResultados.Rows(0)("MIN_Total").ToString.FormatoNumero(2) + LtlPromedio.Text = ObjProveedores.DtResultados.Rows(0)("AVG_Total").ToString.FormatoNumero(2) + LtlMaxima.Text = ObjProveedores.DtResultados.Rows(0)("MAX_Total").ToString.FormatoNumero(2) + 'Carga Grid + + GVHistorial.DataSource = ObjProveedores.DtResultados + Else + LtlCantidad.Text = "0.00" + LtlTotalVendido.Text = "0.00" + LtlMinima.Text = "0.00" + LtlPromedio.Text = "0.00" + LtlMaxima.Text = "0.00" + GVHistorial.DataSource = Nothing + End If + Else + GVHistorial.DataSource = Nothing + End If + ObjProveedores.Dispose() + GVHistorial.DataBind() + UpnHistorial.Update() + + If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then + CargaFiltroMonedas() + End If + + End Sub + + Private Sub CargaAnticipos(CveProveedorSucursal As Integer, Optional SelectTop As Integer = -1) + Dim ObjMovtos As New ClsMovimientos() + If ObjMovtos.GetAnticiposProveedor(CveProveedor, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), CveMonedaFiltro, -1) AndAlso ObjMovtos.DtResultados.Rows.Count > 0 Then + CountAnticipos = ObjMovtos.DtResultados.FiltraParametros(" Tipo = 'Act' AND TipoDocto <> '' AND (CveCompra > 0 OR CveIE > 0) ").Rows.Count + + + LblVencidoPesosAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 1 And DiasVencidos > 0")).FormatoNumero + LblTotalPesosAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 1 ")).FormatoNumero + LblPorVencerPesosAnt.Text = CType(LblTotalPesosAnt.Text.ToDouble - LblVencidoPesosAnt.Text.ToDouble, String).FormatoNumero + + LblVencidoDolaresAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 2 And DiasVencidos > 0")).FormatoNumero + LblTotalDolaresAnt.Text = String.Format("{0}", ObjMovtos.DtResultados.SUM("Saldo", "CveMoneda = 2 ")).FormatoNumero + LblPorVencerDolaresAnt.Text = CType(LblTotalDolaresAnt.Text.ToDouble - LblVencidoDolaresAnt.Text.ToDouble, String).FormatoNumero + + LblTipoCambioAnt.Text = GlobalTipoCambio.ToString.FormatoNumero + LblTotalAnt.Text = (LblTotalPesosAnt.Text.ToDouble + (LblTotalDolaresAnt.Text.ToDouble * LblTipoCambioAnt.Text.ToDouble)).ToString.FormatoNumero + + + If SelectTop > 0 Then + If ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'").Rows.Count > 0 Then + GvA.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'").AsEnumerable.Take(SelectTop).CopyToDataTable + Else + GvA.DataSource = Nothing + End If + + If ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'").Rows.Count > 0 Then + GvAH.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'").AsEnumerable.Take(SelectTop).CopyToDataTable + Else + GvAH.DataSource = Nothing + End If + Else + GvA.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'") + GvAH.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'") + End If + Else + GvA.DataSource = Nothing + GvAH.DataSource = Nothing + End If + ObjMovtos.Dispose() + GvA.DataBind() + GvAH.DataBind() + UpAnticipos.Update() + + If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then + CargaFiltroMonedas() + End If + + End Sub + + Private Sub CargaBancos(CveProveedorSucursal As Integer, Optional SelectTop As Integer = 21) + Dim ObjMovtos As New ClsMovimientos() + 'CxC Activas + If ObjMovtos.GetProveedorBancos(CveProveedor, CveMoneda:=CveMonedaFiltro, CveProveedorSucursal:=If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), SelectTop:=SelectTop) Then + GvBancos.DataSource = ObjMovtos.DtResultados + End If + + ObjMovtos.Dispose() + GvBancos.DataBind() + UpBancos.Update() + + If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then + CargaFiltroMonedas() + End If + + End Sub + +#Region "V E R M Á S" + Protected Sub BtnVerMasCompras_Click(sender As Object, e As EventArgs) + If BtnVerMasCompras.Text = "Ver Más " Then + CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero, -1) + BtnVerMasCompras.Text = "Ver Menos" + Else + CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero, 21) + BtnVerMasCompras.Text = "Ver Más " + End If + End Sub + + Protected Sub BtnVerMasBancos_Click(sender As Object, e As EventArgs) + If BtnVerMasBancos.Text = "Ver Más " Then + CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero, -1) + BtnVerMasBancos.Text = "Ver Menos" + Else + CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero, 11) + BtnVerMasBancos.Text = "Ver Más " + End If + End Sub + + Protected Sub BtnVerMasAnticipos_Click(sender As Object, e As EventArgs) + If BtnVerMasAnticipos.Text = "Ver Más " Then + CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero, -1) + BtnVerMasAnticipos.Text = "Ver Menos" + Else + CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero, 21) + BtnVerMasAnticipos.Text = "Ver Más " + End If + End Sub + Protected Sub BtnVerMasComprasPagadas_Click(sender As Object, e As EventArgs) + If BtnVerMasComprasPagadas.Text = "Ver Más " Then + CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero, 1) + BtnVerMasComprasPagadas.Text = "Ver Menos" + Else + CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero, -1) + BtnVerMasComprasPagadas.Text = "Ver Más " + End If + End Sub +#End Region + + Private Sub CargaUsuariosPortal() + Dim ObjUsrs As New ClsSisUsuarios() + GvUsuariosPortalSis.Visible = False + + If ObjUsrs.GetUsuariosPortal(-1, -1, CveProveedor) Then + Dim dtUsr As DataTable = ObjUsrs.DtResultados + 'GvUsuariosPortalSis.DataSource = dtUsr.FiltraParametros("Estatus = 1") + + 'busco la clave del admin, si es que existe + Dim dr As DataRow = dtUsr.FiltroPrimero("Nombre = 'Admin'") + + If dr IsNot Nothing Then + HdnCveUsuarioPortalAdmin.Value = dr("CveUsuario").ToString + If Convert.ToBoolean(dr("Estatus")) Then + LblUsuarioActivo.Text = "Si" + 'divUsuariosPortal.Visible = True + HdnCveUsuarioPortalActivado.Value = "1" + trDesactivarUsuario.Visible = True + End If + End If + + If HdnCveUsuarioPortalActivado.Value.ToEntero > 0 Then + trEnviarActivacion.Visible = False + End If + Else + ' GvUsuariosPortalSis.DataSource = Nothing + End If + ObjUsrs.Dispose() + 'GvUsuariosPortalSis.DataBind() + UPUsuarios.Update() + + End Sub + + Protected Sub GVHistorial_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVHistorial.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.BackColor = Drawing.Color.LightGray + End If + + 'Dim Liga As String = String.Format("", e.Row.DBCampo("CveCompra")) + If e.Row.DBCampo("CveCompra").ToEntero > 0 Then e.Row.FCLabel("LtlFactura").Text = String.Format("{1}", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("SerieFolio") & "") + + e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right + + 'e.Row.Cells(0).Width = 50 + 'e.Row.Cells(1).Width = 150 + 'e.Row.Cells(2).Width = 250 + 'e.Row.Cells(3).Width = 70 + 'e.Row.Cells(4).Width = 100 + 'e.Row.Cells(5).Width = 80 + 'e.Row.Cells(6).Width = 100 + 'e.Row.Cells(7).Width = 100 + 'e.Row.Cells(8).Width = 50 + + + End If + End Sub + + Protected Sub GvAH_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvA.RowDataBound, GvAH.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + If e.Row.RowIndex = 0 Then + 'e.Row.BackColor = Drawing.Color.LightGray + + e.Row.Cells(0).Width = Unit.Pixel(120) + e.Row.Cells(1).Width = Unit.Pixel(100) + e.Row.Cells(2).Width = Unit.Pixel(100) + e.Row.Cells(3).Width = Unit.Pixel(100) + End If + + If e.Row.DBCampo("TipoDocto") = "Egsc" AndAlso e.Row.DBCampo("SerieFolio") = "" Then + e.Row.CssClass = "Totales TextCenter" + e.Row.Cells(0).Text = "Egreso Por Comprobar" + End If + + If e.Row.DBCampo("TipoDocto") = "Ant" AndAlso e.Row.DBCampo("SerieFolio") = "" Then + e.Row.CssClass = "Totales TextCenter" + e.Row.Cells(0).Text = "Anticipos" + End If + + If e.Row.DBCampo("TipoDocto") = "NC" AndAlso e.Row.DBCampo("SerieFolio") = "" Then + e.Row.CssClass = "Totales TextCenter" + e.Row.Cells(0).Text = "Notas de crédito" + End If + + If e.Row.DBCampo("TipoDocto") = "DEV" AndAlso e.Row.DBCampo("SerieFolio") = "" Then + e.Row.CssClass = "Totales TextCenter" + e.Row.Cells(0).Text = "Devolución" + End If + + If e.Row.DBCampo("CveProveedor") = "" Then + e.Row.BackColor = Drawing.Color.LightGray + End If + + If UsuarioActual.TienePermisoProceso(273) Then + If CType(sender, GridView).ID = "GvA" And e.Row.DBCampo("CveCompra").ToEntero > 0 And e.Row.DBCampo("TipoDocto") = "NC" Then + Dim Parametros = Encripta($"CveCompra={e.Row.DBCampo("CveCompra").ToEntero}&SerieFolio={e.Row.DBCampo("SerieFolio")}&CveMoneda={e.Row.DBCampo("CveMoneda")}&CveProveedor={CveProveedor}&Saldo={e.Row.DBCampo("Saldo")}&Original={e.Row.DBCampo("Original")}&CvePrePoliza={e.Row.DBCampo("CvePrePoliza")}&FechaCompra={e.Row.DBCampo("Fecha")}") + e.Row.FCHyperLink("HLDevolverDinero").Visible = True + e.Row.FCHyperLink("HLDevolverDinero").NavigateUrl = $"/Bancos/IE.aspx?Opcion=DevDinC&P={Parametros}" + End If + End If + + + End If + End Sub + + Protected Sub GvBancos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvBancos.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + Dim HLSendMail As HtmlAnchor = DirectCast(e.Row.FindControl("HLSendMail"), HtmlAnchor) + + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).Width = Unit.Pixel(120) + e.Row.Cells(1).Width = Unit.Pixel(70) + e.Row.Cells(2).Width = Unit.Pixel(80) + e.Row.Cells(3).Width = Unit.Pixel(80) + e.Row.Cells(4).Width = Unit.Pixel(90) + e.Row.Cells(5).Width = Unit.Pixel(90) + e.Row.Cells(6).Width = Unit.Pixel(105) + e.Row.Cells(7).Width = Unit.Pixel(90) + + End If + + If e.Row.DBCampo("CveCompra") = "" Then + If e.Row.DBCampo("CveIE") <> "" Then + Dim ObjCompra As New ClsCompras + + e.Row.Cells(0).Text = String.Format("{0} - {1} - {2}", e.Row.DBCampo("Banco"), e.Row.DBCampo("NumCuenta"), e.Row.DBCampo("Moneda")) + e.Row.FCLiteral("LtlFechaVenci").Text = e.Row.DBCampo("FechaDocumento").ToDate.ToShortDateString + e.Row.FCHyperLink("HplCheque").Visible = True + + HLSendMail.Visible = True + HLSendMail.HRef = String.Format("javascript:$get('HdnCveIE').value='{0}';$get('HdnSerieFolio').value='{1}';$get('HdnFolioPago').value='{2}';$get('TxtParaMail').value='{3}';$('#ModalDivMail').modal();", e.Row.DBCampo("CveIE"), e.Row.DBCampo("SerieFolio"), e.Row.DBCampo("FolioPago"), TxtCorreoCobranza.Text) + + If ObjCompra.GetCompraComplementoPago(-1, UsuarioActual.CveEmpresa, e.Row.DBCampo("CveIE").ToString.ToEntero) Then + If ObjCompra.DtResultados.Rows.Count > 0 Then + e.Row.FCHyperLink("HplXML").Visible = True : e.Row.FCHyperLink("HplXML").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?RFC={0}&File={1}", ObjCompra.DtResultados(0)("RFCDe"), ObjCompra.DtResultados(0)("XML")) + e.Row.FCHyperLink("HplPDF").Visible = True : e.Row.FCHyperLink("HplPDF").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?RFC={0}&File={1}", ObjCompra.DtResultados(0)("RFCDe"), ObjCompra.DtResultados(0)("PDF")) + + HLSendMail.Visible = False + End If + End If + + ObjCompra.Dispose() + End If + e.Row.BackColor = Drawing.Color.LightGray + End If + + End If + + End Sub + + Protected Sub BtnCargarCuentas_Click(sender As Object, e As EventArgs) Handles BtnCargarCuentas.Click + If DtCuentasContables Is Nothing Then + + End If + + Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) + + Select Case HdnCuenta.Value + Case "1" + CargaCuentasDDL(DdlCtaContProveedores, 201) + Case "2" + CargaCuentasDDL(DdlCtaContAnticipos, 204) + Case "3" + CargaCuentasDDL(DdlCtaContFondoGarantia, 231) + Case "4" + CargaCuentasDDL(DdlCtaContRetIVA, 206) + Case "5" + CargaCuentasDDL(DdlCtaContRetISR, 206) + Case "6" + CargaCuentasDDL(DdlCtaContAcreedores, 202) + Case "7" + CargaCuentasDDL(DdlCtaContComplementaria, 201) + Case "8" + CargaCuentasDDL(DdlCtaContExtranjera, 201) + Case "9" + CargaCuentasDDL(DdlCtaContAcreedoresExtranjera, 202) + Case "10" + CargaCuentasDDL(DdlCtaContAcreedoresComplementaria, 202) + Case "11" + CargaCuentasDDL(DdlCtaContAnticiposExtranjera, 204) + Case "12" + CargaCuentasDDL(DdlCtaContAnticiposComplementaria, 204) + Case "13" + CargaCuentasDDL(DdlCtaContDeudor, 205) + Case "14" + CargaCuentasDDL(DdlCtaContDeudorExtranjera, 205) + Case "15" + CargaCuentasDDL(DdlCtaContDeudorComplementaria, 205) + Case "16" + CargaCuentasDDL(DdlCtaContDocsXPagar, 203) + Case "17" + CargaCuentasDDL(DdlCtaContDocsXPagarExtranjera, 203) + Case "18" + CargaCuentasDDL(DdlCtaContDocsXPagarComplementaria, 203) + Case "19" + CargaCuentasDDL(DdlCtaContRetISRAcreditable, 206) + Case "20" + CargaCuentasDDL(DdlCtaContRetIVAAcreditable, 206) + End Select + + End Sub + + Private Sub CargaCuentasDDL(Ddl As DropDownList, CveFuncionalidad As Integer) + + 'CARGA LO YA SELECCIONADO + Dim CveSeleccionado = -1 + Dim Seleccionado = "" + Seleccionado = Ddl.SelectedItem.Text + CveSeleccionado = Ddl.SelectedValue.ToEntero + + 'VA POR EL CATALOGO DE CUENTAS + If Ddl.Attributes("onclick") <> "" Then + CargaCuentasContables(If(UsuarioActual.Empresa.Funcionalidad(CveFuncionalidad).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(CveFuncionalidad).ToEntero, -1)) + End If + + 'RECARGA EL DDL + Ddl.Items.Clear() + Ddl.DataSource = DtCuentasContables + Ddl.Items.Insert(0, New ListItem("Seleccione", "0")) + Ddl.DataBind() + + 'SELECCIONA EL YA SELECCIONADO - SI NO EXISTE EN EL DATASOURCE LO INSERTA + If DtCuentasContables.FiltraParametros($"Id = {CveSeleccionado}").Rows.Count > 0 Then + Ddl.SelectedValue = CveSeleccionado.ToString + ElseIf CveSeleccionado > 0 Then + Ddl.Items.Insert(1, New ListItem(Seleccionado, CveSeleccionado.ToString)) + Ddl.SelectedValue = CveSeleccionado.ToString + End If + + 'LIMPIA EVENTOS Y PONE CLASE + Ddl.AutoPostBack = False + Ddl.Attributes.Remove("onclick") + Ddl.CssClass &= " select2me" + + End Sub + +#Region "LL E N A R - C O M B O S" + Private Sub CargaResponsable() + DdlCveUsuarioResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + DdlCveUsuarioResponsable.DataBind() + End Sub + Private Sub CargaClasificacionProveedor() + DdlCveClasificacionProveedor.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) + DdlCveClasificacionProveedor.DataBind() + DdlCveClasificacionProveedor.Items.Insert(0, New ListItem("Sin Clasificación", "0")) + End Sub + Private Sub CargaDIOTPais() + DdlDIOTPais.DataSource = GlobalDTPais() + DdlDIOTPais.DataBind() + DdlDIOTPais.Items.Insert(0, New ListItem("-", "0")) + End Sub +#End Region + +#Region "P R O V E E D O R" + Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click + Dim ObjProveedores As New ClsCompProveedores() + If ObjProveedores.RemoveProveedor(CveProveedor) Then + Alert("El Proveedor se Eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Compras/CatProveedores.aspx"";") + End If + + ObjProveedores.Dispose() + End Sub + Protected Sub enviaractivacion() + If TxtCorreoCobranza.Text <> "" Then + LbEnviarActivacionPortal.Enabled = True + Else + LbEnviarActivacionPortal.Enabled = False + LbEnviarActivacionPortal.ToolTip = "Debe de agregar una dirección de Email en la pestaña Información del Proveedor, campo 'Cobranza/Portal'." + End If + End Sub + + Private Function AsignaCuentasAutomaticas(ObjProveedor As ClsCompProveedores, CveProveedor As Integer) As Boolean + Dim IdCtaContProveedores As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(321).ToEntero, UsuarioActual.Empresa.Funcionalidad(322).ToEntero) + Dim IdCtaContAcreedor As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(323).ToEntero, UsuarioActual.Empresa.Funcionalidad(324).ToEntero) + Dim IdCtaContComplementaria As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(325).ToEntero, UsuarioActual.Empresa.Funcionalidad(326).ToEntero) + Dim IdCtaContAnticipos As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(327).ToEntero, UsuarioActual.Empresa.Funcionalidad(328).ToEntero) + Dim IdCtaContExtranjera As Integer = If(DdlCveTipoProveedor.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(329).ToEntero, UsuarioActual.Empresa.Funcionalidad(330).ToEntero) + + If Not ObjProveedor.VincularCuentasContables(IdCtaContProveedores, IdCtaContAcreedor, IdCtaContComplementaria, IdCtaContAnticipos, IdCtaContExtranjera, CveProveedor) Then + Return False + End If + Return True + End Function + + Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click + enviaractivacion() + Dim tIdContaProveedor As Integer + Dim CuentaAbono As Integer + + Dim ErrorBancos = False + Dim ErrorConta As Boolean = False + Dim ErrorContactos As Boolean = False + Dim ErrorSucursales As Boolean = False + Dim ErrorCuentasContables As Boolean = False + + + Dim codigo As String = "-1" + Dim MsgCuentaContable As String = "" + Dim IdCuentaContable As Integer = -1 + + Dim IdProveedor As Integer = -1 + + Dim errorContPaq As Boolean = False + + Dim AplicarEvaluacion As Boolean = ChkAplicarEvaluacion.Checked + Dim FechaEvaluacion As String = If(IsDate(TxtFechaEva.Text.Trim()), TxtFechaEva.Text, "-1") + Dim CicloEvaluacion As Integer = If(AplicarEvaluacion, DdlCicloEvaluacion.SelectedValue.ToEntero(), -1) + + 'Dim IdContPaqi As Integer + 'Dim CodigoPersona As Integer + + 'If UsuarioActual.Empresa.Funcionalidad(522).ToString = "1" Then + ' Dim ObjContPaqi As New ClsContPAQi(UsuarioActual.Empresa) + + ' If UsuarioActual.Empresa.UsaContabilidad Then + + ' If ObjContPaqi.GetPersona(TxtRFC.Text) Then + + ' If ObjContPaqi.DtResultados.Rows.Count > 0 Then + + ' IdContPaqi = ObjContPaqi.DtResultados.Rows(0)("Id").ToString.ToEntero + ' CodigoPersona = ObjContPaqi.DtResultados.Rows(0)("Codigo").ToString.ToEntero + + ' Dim Cont_EsProveedor As Integer = If(Boolean.Parse(ObjContPaqi.DtResultados.Rows(0)("EsProveedor").ToString), 1, 0) + ' Dim Cont_Nombre As String = ObjContPaqi.DtResultados(0)("Nombre").ToString + ' Dim Cont_RFC As String = ObjContPaqi.DtResultados(0)("RFC").ToString + + ' If ObjContPaqi.UpdatePersona(IdContPaqi, Cont_Nombre, Cont_RFC, 1, Cont_EsProveedor) Then + ' errorContPaq = False + ' Else + ' errorContPaq = True + ' End If + + ' Else + ' If ObjContPaqi.AddPersona(TxtNombreComercial.Text.Trim, TxtRFC.Text.Trim, 0, 1) Then + ' IdContPaqi = ObjContPaqi.DtResultados.Rows(0)("IdContPaqiPersona").ToString.ToEntero + ' CodigoPersona = ObjContPaqi.DtResultados.Rows(0)("Codigo").ToString.ToEntero + ' errorContPaq = False + ' Else + ' errorContPaq = True + ' End If + ' End If + ' End If + + ' End If + + ' If Not errorContPaq Then + ' ObjContPaqi.Commit() + ' ObjContPaqi.Dispose() + ' Else + ' ObjContPaqi.RollBack() + ' ObjContPaqi.Dispose() + ' Exit Sub + ' End If + + 'End If + + + If CveProveedor = -1 Then + + Dim ObjContaAC As ClsContPAQi = Nothing + + If (UsuarioActual.Empresa.Funcionalidad(200).ToEntero > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(201).ToEntero > 0) Then 'FUNCIONALIDAD 112=AGREGAR CTA CONTABLE PROVEEDOR + + ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa) + ObjContaAC.IniciaTransacSQL() + + IdCuentaContable = ObjContaAC.AddSiguienteCuentaHijo(UsuarioActual.Empresa.Funcionalidad(201).ToEntero, TxtRazonSocial.Text.Trim, "D", 2) + If IdCuentaContable > 0 Then + + ObjContaAC.GetCuentas(IdCuentaContable, "-1", -1) + Dim dt = ObjContaAC.DtResultados + Dim CtaCodigo As String + + If dt.Rows.Count = 1 Then + Dim row As DataRow = dt.Rows(0) + CtaCodigo = CStr(row("CtaCodigo")) + DdlCtaContProveedores.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : DdlCtaContProveedores.SelectedValueExist(IdCuentaContable.ToString) + End If + + 'If UsuarioActual.Empresa.Funcionalidad(522).ToString = "1" Then + ' If UsuarioActual.Empresa.UsaContabilidad Then + + ' Dim ObjContPaqi As New ClsContPAQi(UsuarioActual.Empresa) + ' If Not errorContPaq Then + ' If ObjContPaqi.GetProveedor(TxtRFC.Text.Trim) Then + ' If ObjContPaqi.DtResultados.Rows.Count > 0 Then + ' IdProveedor = ObjContPaqi.DtResultados.Rows(0)("Id").ToString.ToEntero + ' errorContPaq = False + ' Else + ' IdProveedor = ObjContPaqi.AddProveedor(IdCuentaContable, TxtRFC.Text.Trim, TxtNombreComercial.Text.Trim, "", CodigoPersona) + ' If IdProveedor > 0 Then + ' errorContPaq = False + ' Else + ' errorContPaq = True + ' End If + ' End If + ' Else + ' errorContPaq = True + ' End If + + ' End If + + + ' If Not errorContPaq Then + ' ObjContPaqi.Commit() + ' ObjContPaqi.Dispose() + ' Else + ' ObjContPaqi.RollBack() + ' ObjContPaqi.Dispose() + ' Exit Sub + ' End If + ' End If + 'Else + + ' IdProveedor = ObjContaAC.AddProveedor(IdCuentaContable, TxtRFC.Text.Trim, TxtRazonSocial.Text.Trim, "") + 'End If + + IdProveedor = ObjContaAC.AddProveedor(IdCuentaContable, TxtRFC.Text.Trim, TxtRazonSocial.Text.Trim, "") + + If IdProveedor > 0 Then + + Else + ObjContaAC.RollBack() + Alert("Ocurrio un error al guardar en el padron de proveedores") + ErrorConta = True + End If + Else + ObjContaAC.RollBack() + ErrorConta = True + Alert("Ocurrio un error al guardar la cuenta contable") + End If + + + End If + + Dim ObjProveedores As New ClsCompProveedores() + Dim ObjCuentasDeposito As New ClsGenerales(ObjProveedores.IniciaTransacSQL()) + + If ErrorConta = False AndAlso ObjProveedores.AddProveedor(TxtCodigo.Text.Trim, TxtRazonSocial.Text.Trim, TxtNombreComercial.Text.Trim, TxtNombreCorto.Text.Trim, TxtRFC.Text.Trim, TxtDireccion.Text.Trim, TxtTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), + TxtContactoNombre.Text.Trim, TxtContactoEmail.Text.Trim, TxtContactoTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), TxtLimiteCredito.Text.Trim.ToDouble, TxtPlazoCobranza.Text.Trim.ToEntero, + TxtObservaciones.Text.Trim, TxtIVA.Text.Trim.ToDouble, TxtRetIVA.Text.Trim.ToDouble, TxtRetISR.Text.Trim.ToDouble, + DdlCtaContProveedores.SelectedValue.ToEntero, DdlCtaContProveedores.SelectedItem.Text, DdlCtaContExtranjera.SelectedValue.ToEntero, DdlCtaContExtranjera.SelectedItem.Text, DdlCtaContComplementaria.SelectedValue.ToEntero, DdlCtaContComplementaria.SelectedItem.Text, + DdlCtaContAcreedores.SelectedValue.ToEntero, DdlCtaContAcreedores.SelectedItem.Text, DdlCtaContAcreedoresExtranjera.SelectedValue.ToEntero, DdlCtaContAcreedoresExtranjera.SelectedItem.Text, DdlCtaContAcreedoresComplementaria.SelectedValue.ToEntero, DdlCtaContAcreedoresComplementaria.SelectedItem.Text, + DdlCtaContAnticipos.SelectedValue.ToEntero, DdlCtaContAnticipos.SelectedItem.Text, DdlCtaContAnticiposExtranjera.SelectedValue.ToEntero, DdlCtaContAnticiposExtranjera.SelectedItem.Text, DdlCtaContAnticiposComplementaria.SelectedValue.ToEntero, DdlCtaContAnticiposComplementaria.SelectedItem.Text, + DdlCtaContDeudor.SelectedValue.ToEntero, DdlCtaContDeudor.SelectedItem.Text, DdlCtaContDeudorExtranjera.SelectedValue.ToEntero, DdlCtaContDeudorExtranjera.SelectedItem.Text, DdlCtaContDeudorComplementaria.SelectedValue.ToEntero, DdlCtaContDeudorComplementaria.SelectedItem.Text, + DdlCtaContDocsXPagar.SelectedValue.ToEntero, DdlCtaContDocsXPagar.SelectedItem.Text, DdlCtaContDocsXPagarExtranjera.SelectedValue.ToEntero, DdlCtaContDocsXPagarExtranjera.SelectedItem.Text, DdlCtaContDocsXPagarComplementaria.SelectedValue.ToEntero, DdlCtaContDocsXPagarComplementaria.SelectedItem.Text, + DdlCtaContFondoGarantia.SelectedValue.ToEntero, DdlCtaContFondoGarantia.SelectedItem.Text, DdlCtaContRetIVA.SelectedValue.ToEntero, DdlCtaContRetIVA.SelectedItem.Text, DdlCtaContRetISR.SelectedValue.ToEntero, DdlCtaContRetISR.SelectedItem.Text, DdlCtaContRetISRAcreditable.SelectedValue.ToEntero, DdlCtaContRetISRAcreditable.SelectedItem.Text, + DdlCtaContRetIVAAcreditable.SelectedValue.ToEntero, DdlCtaContRetIVAAcreditable.SelectedItem.Text, DdlCveClasificacionProveedor.SelectedValue.ToEntero, DdlCveUsuarioResponsable.SelectedValue.ToEntero, TxtNotificarA.Text.Trim, TxtCorreoCobranza.Text.Trim, ChkFolioDuplicado.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, + DdlCveTipoProveedor.SelectedValue.ToEntero, DdlMonedaPrefente.SelectedValue.ToEntero, UsaLimiteCredito:=ChkUsaLimiteCredito.Checked, DIOTCveTipoTercero:=DDlDIOTTipoTercero.SelectedValue.ToEntero, DIOTCveTipoOperacion:=DdlDIOTTipoOperacion.SelectedValue.ToEntero, DIOTNumeroIDFiscal:=TxtDIOTNumIDFiscal.Text, + AplicarEvaluacion:=AplicarEvaluacion, FechaEvaluacion:=FechaEvaluacion, CicloEvaluacion:=CicloEvaluacion, DIOTCvePais:=DdlDIOTPais.SelectedValue.ToEntero, CveUsuarioEvaluador:=DdlUsuarioEvaluador.SelectedValue.ToEntero(), CP:=TxtCP.Text.ToEntero, DIOTNacionalidad:=TxtDIOTNacionalidad.Text, + CveConfianzaProveedor:=DdlConfianzaProveedor.SelectedValue.ToEntero()) Then + + Dim NuevoCveProveedor = ObjProveedores.CveProveedor + + ''Agregar Cuentas Bancarias + If TempDTCuentasBancos.Rows.Count > 0 Then + For Each row As DataRow In TempDTCuentasBancos.Rows + If Not ObjCuentasDeposito.AddCuentasDepositos(row("BancoNombre").ToString, row("Plaza").ToString, row("Sucursal").ToString, row("Cuenta").ToString, row("CLABE").ToString, row("CIE").ToString, row("SWIFT").ToString, row("Referencia").ToString, row("RefCrediProveedor").ToString, UsuarioActual.CveUsuario, row("CveMoneda").ToString.ToEntero, CveProveedor:=NuevoCveProveedor, Correo:=row("Correo").ToString) Then + ErrorBancos = True + End If + Next + End If + + If Not AsignaCuentasAutomaticas(ObjProveedores, NuevoCveProveedor) Then + ErrorCuentasContables = True + End If + + ''Agrega Sucursales + If TempDTSucursales.Rows.Count > 0 Then + For Each row As DataRow In TempDTSucursales.Rows + If Not ObjProveedores.AddSucursal(NuevoCveProveedor, row("ProveedorSucursal").ToString, row("Direccion").ToString, row("Telefono").ToString, row("Serie").ToString, row("Contacto").ToString, row("Correo").ToString, row("CveUsuario").ToString().ToEntero(), row("LimiteCredito").ToString.ToDouble, row("PlazoCobranza").ToString.ToEntero) Then + ErrorSucursales = True + Else + Dim CveTempSucursal As Integer = row("CveSucursalTemp").ToString().ToEntero() + + ''Obtengo Cve de la sucursal + Dim CveNuevaSucursal As Integer = ObjProveedores.CveProveedorSucursal + + If TempDTProveedoresContactosSucursal.Rows.Count > 0 Then + + ''Agrego CONTACTOS por SUCURSAL + For Each rowContacto As DataRow In TempDTProveedoresContactosSucursal.Rows + + ''Si la CveTemp de la sucursal es igual a la CveTemp del contacto, lo agrega con CveNuevaSucursal + If CveTempSucursal = rowContacto("CveSucursalTemp").ToString().ToEntero() Then + If Not ObjProveedores.AddProveedorContacto(NuevoCveProveedor, CveNuevaSucursal, rowContacto("Nombre").ToString, rowContacto("Puesto").ToString, rowContacto("Telefono").ToString, rowContacto("Extension").ToString, rowContacto("Celular").ToString, rowContacto("Correo").ToString) Then + ErrorContactos = True + End If + End If + Next + End If + + If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados + End If + Next + End If + + ''Agregar Contactos Proveedor + If TempDTProveedoresContactos.Rows.Count > 0 Then + For Each row As DataRow In TempDTProveedoresContactos.Rows + If Not ObjProveedores.AddProveedorContacto(NuevoCveProveedor, row("CveProveedorSucursal").ToString.ToEntero, row("Nombre").ToString, row("Puesto").ToString, row("Telefono").ToString, row("Extension").ToString, row("Celular").ToString, row("Correo").ToString) Then + ErrorContactos = True + End If + Next + End If + + If ErrorBancos Or ErrorContactos Or ErrorSucursales Or ErrorCuentasContables Then ''se deben validar las 3 juntas???????? + ObjProveedores.RollBack() + If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() + If ErrorBancos Then + Alert("Ocurrió un error al registrar las Cuentas Bancarias", TipoMensaje.MsgError) + Else + If ErrorContactos Then + Alert("Ocurrió un error al registrar los Contactos", TipoMensaje.MsgError) + End If + If ErrorSucursales Then + Alert("Ocurrió un error al registrar las Sucursales", TipoMensaje.MsgError) + End If + If ErrorCuentasContables Then + Alert("Ocurrió un error al asignar las cuentas contables", TipoMensaje.MsgError) + End If + End If + Else + ObjProveedores.Commit() + If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() + + 'ACTUALIZAR GLOBAL + If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then + GlobalDTCompProveedores(-1) = ObjProveedores.DtResultados + Else + ErrorBancos = True + End If + Alert("El Proveedor se guardó correctamente. " & "
    " & MsgCuentaContable, TipoMensaje.MsgInformacion, If(Request("CveFactura") Is Nothing, "document.location.href=""/Compras/CatProveedores.aspx""", "window.opener.location.href = window.opener.location.href; window.close();")) + RecargaGlobalCuentasBancarias() + End If + End If + + ObjProveedores.Dispose() + ObjCuentasDeposito.Dispose() + If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose() + Else + 'If UsuarioActual.Empresa.Funcionalidad(522).ToString = "1" Then + + ' If UsuarioActual.Empresa.UsaContabilidad Then + ' Dim ObjContPaqi As New ClsContPAQi(UsuarioActual.Empresa) + ' If Not errorContPaq Then + ' If ObjContPaqi.GetProveedor(TxtRFC.Text.Trim) Then + ' If ObjContPaqi.DtResultados.Rows.Count > 0 Then + ' IdProveedor = ObjContPaqi.DtResultados.Rows(0)("Id").ToString.ToEntero + ' errorContPaq = False + ' Else + ' IdProveedor = ObjContPaqi.AddProveedor(DdlCtaContProveedores.SelectedValue.ToEntero, TxtRFC.Text.Trim, TxtNombreComercial.Text.Trim, "", CodigoPersona) + ' If IdProveedor > 0 Then + ' errorContPaq = False + ' Else + ' errorContPaq = True + ' End If + ' End If + ' Else + ' errorContPaq = True + ' End If + ' End If + + + ' If Not errorContPaq Then + ' ObjContPaqi.Commit() + ' ObjContPaqi.Dispose() + ' Else + ' ObjContPaqi.RollBack() + ' ObjContPaqi.Dispose() + ' Alert("Se Presento un Error al Guardar el Proveedor en ContPAQi.", TipoMensaje.MsgError) + ' Exit Sub + ' End If + ' End If + + 'End If + Dim CreoCuenta As Boolean = False + If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad) Then + Dim ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa) + Dim drCuenta As DataRow = ObjContaAC.DtResultados.FiltroPrimero("") + If drCuenta IsNot Nothing Then + CuentaAbono = drCuenta("Id").ToString.ToEntero + tIdContaProveedor = ObjContaAC.AddCuenta(TxtCodigo.Text.Trim, TxtRazonSocial.Text.Trim, "D", 2, 0, 1, 0, "", 1, CuentaAbono) + CreoCuenta = True + End If + ObjContaAC.Dispose() + End If + + Dim ObjProveedores As New ClsCompProveedores() + + ObjProveedores.IniciaTransacSQL() + + If ObjProveedores.UpdateProveedor(TxtCodigo.Text.Trim, TxtRazonSocial.Text.Trim, TxtNombreComercial.Text.Trim, TxtNombreCorto.Text.Trim, TxtRFC.Text.Trim, TxtDireccion.Text.Trim, TxtTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), + TxtContactoNombre.Text.Trim, TxtContactoEmail.Text.Trim, TxtContactoTelefono.Text.Trim.Replace("("c, "").Replace(")"c, "").Replace("-"c, "").Replace(" ", ""), TxtLimiteCredito.Text.Trim.ToDouble, TxtPlazoCobranza.Text.Trim.ToEntero, + TxtObservaciones.Text.Trim, TxtIVA.Text.Trim.ToDouble, TxtRetIVA.Text.Trim.ToDouble, TxtRetISR.Text.Trim.ToDouble, + DdlCtaContProveedores.SelectedValue.ToEntero, DdlCtaContProveedores.SelectedItem.Text, DdlCtaContExtranjera.SelectedValue.ToEntero, DdlCtaContExtranjera.SelectedItem.Text, DdlCtaContComplementaria.SelectedValue.ToEntero, DdlCtaContComplementaria.SelectedItem.Text, + DdlCtaContAcreedores.SelectedValue.ToEntero, DdlCtaContAcreedores.SelectedItem.Text, DdlCtaContAcreedoresExtranjera.SelectedValue.ToEntero, DdlCtaContAcreedoresExtranjera.SelectedItem.Text, DdlCtaContAcreedoresComplementaria.SelectedValue.ToEntero, DdlCtaContAcreedoresComplementaria.SelectedItem.Text, + DdlCtaContAnticipos.SelectedValue.ToEntero, DdlCtaContAnticipos.SelectedItem.Text, DdlCtaContAnticiposExtranjera.SelectedValue.ToEntero, DdlCtaContAnticiposExtranjera.SelectedItem.Text, DdlCtaContAnticiposComplementaria.SelectedValue.ToEntero, DdlCtaContAnticiposComplementaria.SelectedItem.Text, + DdlCtaContDeudor.SelectedValue.ToEntero, DdlCtaContDeudor.SelectedItem.Text, DdlCtaContDeudorExtranjera.SelectedValue.ToEntero, DdlCtaContDeudorExtranjera.SelectedItem.Text, DdlCtaContDeudorComplementaria.SelectedValue.ToEntero, DdlCtaContDeudorComplementaria.SelectedItem.Text, + DdlCtaContDocsXPagar.SelectedValue.ToEntero, DdlCtaContDocsXPagar.SelectedItem.Text, DdlCtaContDocsXPagarExtranjera.SelectedValue.ToEntero, DdlCtaContDocsXPagarExtranjera.SelectedItem.Text, DdlCtaContDocsXPagarComplementaria.SelectedValue.ToEntero, DdlCtaContDocsXPagarComplementaria.SelectedItem.Text, + DdlCtaContFondoGarantia.SelectedValue.ToEntero, DdlCtaContFondoGarantia.SelectedItem.Text, DdlCtaContRetIVA.SelectedValue.ToEntero, DdlCtaContRetIVA.SelectedItem.Text, DdlCtaContRetISR.SelectedValue.ToEntero, DdlCtaContRetISR.SelectedItem.Text, DdlCtaContRetISRAcreditable.SelectedValue.ToEntero, DdlCtaContRetISRAcreditable.SelectedItem.Text, + DdlCtaContRetIVAAcreditable.SelectedValue.ToEntero, DdlCtaContRetIVAAcreditable.SelectedItem.Text, DdlCveClasificacionProveedor.SelectedValue.ToEntero, DdlCveUsuarioResponsable.SelectedValue.ToEntero, ChkEstado.Checked, TxtNotificarA.Text.Trim, TxtCorreoCobranza.Text.Trim, ChkFolioDuplicado.Checked, CveProveedor, + DdlCveTipoProveedor.SelectedValue.ToEntero, DdlMonedaPrefente.SelectedValue.ToEntero, UsaLimiteCredito:=ChkUsaLimiteCredito.Checked, DIOTCveTipoTercero:=DDlDIOTTipoTercero.SelectedValue.ToEntero, DIOTCveTipoOperacion:=DdlDIOTTipoOperacion.SelectedValue.ToEntero, DIOTNumeroIDFiscal:=TxtDIOTNumIDFiscal.Text, CveUsuarioModifico:=UsuarioActual.CveUsuario, + DIOTCvePais:=DdlDIOTPais.SelectedValue.ToEntero, AplicarEvaluacion:=ChkAplicarEvaluacion.Checked, FechaEvaluacion:=FechaEvaluacion, CicloEvaluacion:=CicloEvaluacion, CveUsuarioEvaluador:=DdlUsuarioEvaluador.SelectedValue.ToEntero(), CP:=TxtCP.Text.ToEntero, DIOTNacionalidad:=TxtDIOTNacionalidad.Text, + CveConfianzaProveedor:=DdlConfianzaProveedor.SelectedValue.ToEntero()) Then + 'CargaDatos() + + + If tIdContaProveedor > 0 AndAlso CreoCuenta Then ObjProveedores.UpdateProveedorIdCuentaAC(CveProveedor, tIdContaProveedor) + + If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then + GlobalDTCompProveedores(-1) = ObjProveedores.DtResultados + End If + Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) + + 'HABILITA ENVIAR ACTIVACION AL PORTAL PROVEEDOR SI SE AGREGO CORREO + If TxtCorreoCobranza.Text <> "" Then + LbEnviarActivacionPortal.Enabled = True + LbEnviarActivacionPortal.ToolTip = "" + End If + + '''''' + 'ACTUALIZA SUCURSALES + '''''' + 'For Each row As DataRow In TempDTSucursales.Rows + ' ' SUCURSAL NUEVA: Si tiene Cve = -1 es nuevo y agrega + ' If row("CveProveedorSucursal").ToString = "-1" Then + ' If Not ObjProveedores.AddSucursal(CveProveedor, row("ProveedorSucursal").ToString, row("Direccion").ToString, row("Telefono").ToString, row("Serie").ToString, row("Contacto").ToString, row("Correo").ToString, row("CveUsuario").ToString().ToEntero()) Then + ' ErrorSucursales = True + ' Else + ' ''Obtengo Cve Generada y Temp de la sucursal NUEVA + ' Dim CveTempSucursal As Integer = row("CveSucursalTemp").ToString().ToEntero() + ' Dim CveNuevaSucursal As Integer = ObjProveedores.CveProveedorSucursal + + ' If TempDTProveedoresContactosSucursal.Rows.Count > 0 Then + ' ''Agrego CONTACTOS por SUCURSAL NUEVA + ' For Each rowContacto As DataRow In TempDTProveedoresContactosSucursal.Rows + ' ''Si la CveTemp de la sucursal es igual a la CveTemp del contacto, lo agrega con CveNuevaSucursal + ' If CveTempSucursal = rowContacto("CveSucursalTemp").ToString().ToEntero() Then + ' If Not ObjProveedores.AddProveedorContacto(CveProveedor, CveNuevaSucursal, rowContacto("Nombre").ToString, rowContacto("Puesto").ToString, rowContacto("Telefono").ToString, rowContacto("Extension").ToString, rowContacto("Celular").ToString, rowContacto("Correo").ToString) Then + ' ErrorContactos = True + ' End If + ' End If + ' Next + ' End If + + ' If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados + ' End If + ' Else + ' 'SUCURSAL ACTUALIZADA: Si tiene una Cve, ya existia y actualiza + ' Dim Estatus As Boolean + + ' If row("Estatus").ToString() = "Activo" Then + ' Estatus = True + ' Else + ' Estatus = False + ' End If + + ' If Not ObjProveedores.UpdateSucursal(row("ProveedorSucursal").ToString, row("Direccion").ToString, row("Telefono").ToString, row("Serie").ToString, Estatus, row("Correo").ToString, row("Contacto").ToString, row("CveProveedorSucursal").ToString.ToEntero, CveProveedor) Then + ' ErrorSucursales = True + ' Else + ' If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados + ' End If + + ' End If + 'Next + 'ACTUALIZO EL RESTO DE LOS CONTACTOS QUE YA TIENE CVEPROVEEDORSUCURSAL ASIGNADA + 'For Each rowCS As DataRow In TempDTProveedoresContactosSucursal.Rows + ' ' Si tiene CveContacto = -1 y CveSucursal es nuevo en esa sucursal y agrega + ' If rowCS("CveProveedorContacto").ToString() = "-1" And rowCS("CveProveedorSucursal").ToString().ToEntero() > 0 Then + ' If Not ObjProveedores.AddProveedorContacto(CveProveedor, rowCS("CveProveedorSucursal").ToString.ToEntero, rowCS("Nombre").ToString, rowCS("Puesto").ToString, rowCS("Telefono").ToString, rowCS("Extension").ToString, rowCS("Celular").ToString, rowCS("Correo").ToString) Then + ' ErrorContactos = True + ' End If + ' Else + ' If rowCS("CveProveedorContacto").ToString().ToEntero() > 0 Then + ' '' CONTACTO ACTUALIZADO: Si tiene una CveContacto ya existia y actualiza ****** + ' If Not ObjProveedores.UpdateProveedorContacto(rowCS("CveProveedorContacto").ToString.ToEntero, CveProveedor, rowCS("CveProveedorSucursal").ToString.ToEntero, rowCS("Nombre").ToString, rowCS("Puesto").ToString, rowCS("Telefono").ToString, rowCS("Extension").ToString, rowCS("Celular").ToString, rowCS("Correo").ToString) Then + ' ErrorContactos = True + ' End If + ' End If + ' End If + 'Next + + ''SUCURSAL ELIMINADA: recorre el DT de la BD + 'For Each row As DataRow In TempDTSucursalesOrigin.Rows + ' Dim CveProveedorSucursal As Integer = row("CveProveedorSucursal").ToString.ToEntero() + ' Dim filtroSucursales As String = String.Format("CveProveedorSucursal ={0}", CveProveedorSucursal) + ' ' Busca si no existe la Cve Original, si no exite la elimina + ' If (TempDTSucursales.FiltraParametros(filtroSucursales).Rows.Count = 0) Then + ' ''Primero eliminamos Contactos de esta Sucursal + ' ''Elimino contactos que ya no estan en DT + ' For Each rowCS As DataRow In TempDTProveedoresContactosSucursalOrigin.Rows + ' If CveProveedorSucursal = rowCS("CveProveedorSucursal").ToString.ToEntero() And rowCS("CveProveedorContacto").ToString.ToEntero() > 0 Then + ' Dim CveContacto As Integer = rowCS("CveProveedorContacto").ToString.ToEntero() + + ' If Not ObjProveedores.RemoveProveedorContacto(CveContacto) Then + ' ErrorContactos = True + ' End If + ' End If + ' Next + + ' If Not ObjProveedores.RemoveSucursal(CveProveedor, CveProveedorSucursal) Then + ' ErrorSucursales = True + ' Else + ' If ObjProveedores.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedores.DtResultados + ' End If + ' End If + 'Next + + '''Elimino contactos que ya no estan en DT + 'For Each row As DataRow In TempDTProveedoresContactosSucursalOrigin.Rows + ' Dim CveContacto As Integer = row("CveProveedorContacto").ToString.ToEntero() + ' Dim filtroContactos As String = String.Format("CveProveedorContacto ={0}", CveContacto) + ' ' Busca si no existe la Cve Original, si no exite la elimina + ' If (TempDTProveedoresContactosSucursal.FiltraParametros(filtroContactos).Rows.Count = 0) Then + ' If Not ObjProveedores.RemoveProveedorContacto(CveContacto) Then + ' ErrorContactos = True + ' End If + ' End If + 'Next + + '''''''''''''''''''''''''''''''''''' + '''ACTUALIZA CONTACTOS DEL PROVEEDOR + '''''''''''''''''''''''''''''''''''' + '''CONTACTO NUEVO + '''''''''''''''''''''''''''''''''''' + '' If TempDTProveedoresContactos.Rows.Count > 0 Then + 'For Each row As DataRow In TempDTProveedoresContactos.Rows + ' ' Si tiene Cve = -1 es nuevo y agrega + ' If row("CveProveedorContacto").ToString = "-1" Then + ' If Not ObjProveedores.AddProveedorContacto(CveProveedor, row("CveProveedorSucursal").ToString.ToEntero, row("Nombre").ToString, row("Puesto").ToString, row("Telefono").ToString, row("Extension").ToString, row("Celular").ToString, row("Correo").ToString) Then + ' ErrorContactos = True + ' End If + ' Else + ' '' CONTACTO ACTUALIZADO: Si tiene una Cve ya existia y actualiza + ' If Not ObjProveedores.UpdateProveedorContacto(row("CveProveedorContacto").ToString.ToEntero, CveProveedor, row("CveProveedorSucursal").ToString.ToEntero, row("Nombre").ToString, row("Puesto").ToString, row("Telefono").ToString, row("Extension").ToString, row("Celular").ToString, row("Correo").ToString) Then + ' ErrorContactos = True + ' End If + ' End If + 'Next + + + ''CONTACTO ELIMINADO: Recorre el DT de la BD + 'For Each row As DataRow In TempDTProveedoresContactosOrigin.Rows + ' Dim CveContato As Integer = row("CveProveedorContacto").ToString.ToEntero() + ' Dim filtroContactos As String = String.Format("CveProveedorContacto ={0}", CveContato) + ' ' Busca si no existe la Cve Original, si no exite la elimina + ' If (TempDTProveedoresContactos.FiltraParametros(filtroContactos).Rows.Count = 0) Then + ' If Not ObjProveedores.RemoveProveedorContacto(CveContato) Then + ' ErrorContactos = True + ' End If + ' End If + 'Next + ' End If + + If ErrorSucursales Or ErrorContactos Then '' + ObjProveedores.RollBack() + If ErrorContactos Then + Alert("Ocurrió un error al registrar los Contactos", TipoMensaje.MsgError) + End If + If ErrorSucursales Then + Alert("Ocurrió un error al registrar las Sucursales", TipoMensaje.MsgError) + End If + Else + 'Recargamos los contactos + CargaContactos(ObjProveedores) + ObjProveedores.Commit() + CargaProveedorSucursales() + End If + + UpDatos.Update() + + End If + ObjProveedores.Dispose() + End If + CargaEventoBitacora() + + End Sub +#End Region + +#Region "U S U A R I O S" + + Protected Sub LbSolicitudPortal_Click(sender As Object, e As EventArgs) Handles LbEnviarActivacionPortal.Click + 'guarda el nuevo usuario + Dim ObjUsuario As New ClsSisUsuarios + Dim CveUsr As Integer = HdnCveUsuarioPortalAdmin.Value.ToEntero + Dim CvePlataforma As Integer = 7 + Dim ErrorUsuario As Boolean = False + + 'DECLARAMOS PERMISOS DEFAULT DE ADMIN + Dim Permisos() As Integer = {236, 237, 238, 239, 240} + + If TxtCorreoCobranza.Text.Trim = "" Then + Alert("No se ha registrado ningún correo en la pestaña Información del Proveedor.", TipoMensaje.MsgAdvertencia) + Return + End If + + ObjUsuario.IniciaTransacSQL() + 'AGREGAMOS USUARIO ADMIN NUEVO + If CveUsr = 0 Then + 'CREA USUARIO + CveUsr = ObjUsuario.AddUsuarioPortal(TxtCorreoCobranza.Text.Trim, ContraseñaPredeterminadaEncriptada, "Admin", TxtCorreoCobranza.Text.Trim, -1, CveProveedor, CvePlataforma, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + If CveUsr > 0 Then + ' AGREGA PERMISO A MODULO PORTALPROVEEDOR + If Not ObjUsuario.UpdateUsuariosModulos(CveUsr, 1201, True, UsuarioActual.CveUsuario) Then + ErrorUsuario = True + End If + Else + ErrorUsuario = True + End If + Else + 'ACTUALIZAMOS ESTADO DE USARIO ADMIN INACTIVO + If Not ObjUsuario.UpdateUsuarioPortal(TxtCorreoCobranza.Text.Trim, "Admin", TxtCorreoCobranza.Text.Trim, True, ContraseñaPredeterminadaEncriptada, -1, CveProveedor, CveUsr, UsuarioActual.CveUsuario) Then + ErrorUsuario = True + End If + End If + + If Not ErrorUsuario Then + 'AGREGAMOS PERMISOS A ADMIN + For Each permiso In Permisos + If Not ObjUsuario.UpdateUsuariosProcesos(CveUsr, permiso, True, UsuarioActual.CveUsuario) Then + ErrorUsuario = True + Exit For + End If + Next + End If + + 'VERIFICAMOS SI HUBO ERRORES + If ErrorUsuario Then + ObjUsuario.RollBack() + Else + 'ACTUALIZAMOS SECCION USUARIO PORTAL + HdnCveUsuarioPortalAdmin.Value = CveUsr.ToString + trDesactivarUsuario.Visible = True + trEnviarActivacion.Visible = False + LblUsuarioActivo.Text = "Si" + + GvUsuariosPortalSis.Visible = False + ErrorUsuario = False + ObjUsuario.Commit() + End If + + ObjUsuario.Dispose() + UPUsuarios.Update() + + 'ENVIA CORREO DE ACTIVACION y CARGA USUARIOS + If CveUsr > 0 And Not ErrorUsuario Then + CargaUsuariosPortalProveedor() + UpGvUsuarios.Update() + + Dim MensajeCorreo As String = EnviaCorreoActivacionPortal(CveUsr) + Dim Mensaje As String = IIf(MensajeCorreo = "", $"No se pudo Notificar a : {TxtCorreoCobranza.Text.Trim}", MensajeCorreo).ToString() + Alert($"La Activación del Portal del Proveedor se ha realizado correctamente.

    {Mensaje}", TipoMensaje.MsgInformacion) + End If + End Sub + + Protected Sub LbDesactivaUsuario_Click(sender As Object, e As EventArgs) Handles LbDesactivaPortal.Click + Dim ObjUsuario As New ClsSisUsuarios + Dim ErrorDesactivando As Boolean = False + If ObjUsuario.GetUsuariosPortal(-1, -1, CveProveedor) Then + ViewState("DTUsuariosProveedor") = ObjUsuario.DtResultados + Else + ErrorDesactivando = True + End If + + If Not ErrorDesactivando Then + For Each Dr As DataRow In DirectCast(ViewState("DTUsuariosProveedor"), DataTable).Rows + 'se desactiva el usuario y se restablece la contraseña + If ObjUsuario.UpdateUsuarioPortal(Dr("Usuario").ToString, Dr("Nombre").ToString, Dr("Correo").ToString, False, ContraseñaPredeterminadaEncriptada, Dr("CveCliente").ToString.ToEntero, Dr("CveProveedor").ToString.ToEntero, Dr("CveUsuario").ToString.ToEntero, UsuarioActual.CveUsuario) Then + ErrorDesactivando = False + Else + ErrorDesactivando = True + Alert("Ocurrió un Error al desactivar a los Usuarios.", TipoMensaje.MsgError) + End If + Next + Else + Alert("No se Encontraron Usuarios.", TipoMensaje.MsgInformacion) + End If + If Not ErrorDesactivando Then + LblUsuarioActivo.Text = "No" + 'HdnCveUsuarioPortalAdmin.Value = "" + HdnCveUsuarioPortalActivado.Value = "0" + trEnviarActivacion.Visible = True + trDesactivarUsuario.Visible = False + ViewState("DTUsuariosProveedor") = "" + + GvUsuariosPortalSis.Visible = False + Alert("Los Usuarios del Portal de Proveedores han sido Desactivados.", TipoMensaje.MsgInformacion) + End If + + ObjUsuario.Dispose() + 'ACTUALIZA USUARIOS EN TABUSUARIOS + If Not ErrorDesactivando Then + CargaUsuariosPortalProveedor() + UpGvUsuarios.Update() + End If + End Sub + + Protected Function EnviaCorreoActivacionPortal(CveUsuario As Integer) As String + Dim Mensaje As String = "" + Try + Dim ObjParametro As SisParametro = GlobalDTParametros(SisParametros.URL) + + Dim ErrorCorreo As Boolean = False + + Dim Asunto As String = "ACTIVACIÓN DEL PORTAL DE PROVEEDOR" + Dim Para As String = TxtCorreoCobranza.Text.Trim + + Dim Liga As String = ObjParametro.Cadena1 & "LogIn.aspx" + Dim LigaActivar As String = Liga & "?p=" & Encripta("CveU=" & CveUsuario & "&Clave=" & "-acceso-" & "&Opcion=Activar&Hora=" & DateTime.Now.Ticks & "&CveE=" & UsuarioActual.CveEmpresa) + + Dim ObjMail As New ClsSisMail() + + Dim SBBody As New StringBuilder + 'Linia de estilos + SBBody.Append("") + 'incio Cuerpo del correo + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("ALTA DE CUENTA") + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.AppendFormat(" Estimado {0}:
    ", TxtRazonSocial.Text.ToUpper) + SBBody.AppendFormat("El presente correo es para informarle que se le han asignado los siguientes datos para el acceso a la Plataforma de: {0}

    ", UsuarioActual.Empresa.Empresa) + SBBody.Append("
    ") + SBBody.Append("
    Datos de usuario
    ") + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("
    Usuario
    ") + SBBody.AppendFormat("
    {0}
    ", Para) + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("
    Accesé al sistema dando click a la liga y estableciendo su contraseña
    ") + SBBody.AppendFormat("", LigaActivar) + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("
    ") + SBBody.Append("Para Activar su cuenta debera cambiar su contraseña.

    ") + + + SBBody.Append("
    Dirección de Acceso
    ") + SBBody.AppendFormat("", Liga) + SBBody.Append("
    ") + SBBody.Append("
    ") + + SBBody.Append("
    ") + SBBody.Append("Nota Favor de NO responder este correo. ") + SBBody.Append("


    ") + SBBody.AppendFormat("", UrlSitio) + SBBody.Append("
    ") + SBBody.Append("
    ") + 'Termino Cuerpo del correo + 'If TxtCorreoCobranza.Text.Trim <> "" Then + ' Dim Correos As String() = TxtCorreoCobranza.Text.ToString.Split(New Char() {";"c}) + + ' Dim Correo As String + + 'For Each Correo In Correos + ' If Not ObjMail.SendMail(EmpresaNotificaciones, Correo, "Activación de Portal de Proveedor", TxtBody.Text.Trim) Then + ' Mensaje.AppendFormat("- {0}
    ", Correo) + ' Else + ' ErrorCorreo = True + ' End If + 'Next + + Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Asunto, TxtCorreoCobranza.Text.Trim, SBBody.ToString)) + Hilo.Start() + 'End If + Mensaje = $"Se notificó a: {Para}." + Catch ex As Exception + OnError("Ocurrió error al mandar MAIL", ex) + End Try + + Return Mensaje + + End Function + + Private Sub MandaCorreo(Asunto As String, Para As String, Body As String) + Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) + a.GuardaLog() + Dim Mail As New ClsSisMail() + Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body) + End Sub +#End Region + +#Region " U S U A R I O S - P O R T A L " + + 'Private Sub CargaUsuariosPortalSis() + ' Dim ObjUsuarios As New ClsSisUsuarios() + ' If ObjUsuarios.GetUsuariosPortal(-1, -1, CveProveedor) Then + ' GvUsuariosPortalSis.DataSource = ObjUsuarios.DtResultados + ' Else + ' GvUsuariosPortalSis.DataSource = Nothing + ' End If + ' ObjUsuarios.Dispose() + + ' GvUsuariosPortalSis.DataBind() + ' UPUsuarios.Update() + 'End Sub +#End Region + +#Region "S U C U R S A L E S" + Public Sub CargaProveedorSucursales() + CveTempSucursal = -1 + + TempDTSucursales = GlobalDTProveedorSucursales(CveProveedor) + TempDTSucursales.Columns.Add("CveSucursalTemp", GetType(String)) + TempDTSucursalesOrigin = TempDTSucursales.Copy() + GVSucursales.DataSource = TempDTSucursales + GVSucursales.DataBind() + UPPSucursales.Update() + 'OrdenaDatos() + End Sub + Protected Sub BtnAgregarSucursal_Click(sender As Object, e As System.EventArgs) Handles BtnAgregarSucursal.Click + + If CveProveedor = -1 Then + 'SI EL PROVEEDOR NO ESTA EN BD AGREGA SUCURSAL A TABLA TEMPORAL + Dim SucursalRepetida As Boolean = False + For Each row As DataRow In TempDTSucursales.Rows + If row("ProveedorSucursal").ToString = TxtProveedorSucursal2.Text Then + SucursalRepetida = True + End If + Next + + If SucursalRepetida And CveProveedorSucursal = -1 And CveTempSucursal = -1 Then + Dim Msg As New StringBuilder + Msg.AppendFormat("
    Ya existe una Sucursal con el nombre: {0} para este proveedor. Por favor ingrese otro nombre a la nueva Sucursal.", TxtProveedorSucursal2.Text) + Alert(Msg.ToString(), TipoMensaje.MsgAdvertencia) + Else + + Dim dr As DataRow = TempDTSucursales.NewRow() + ' CveProveedorSucursal, ProveedorSucursal, Serie, Correo, Contacto, Direccion, Telefono, FechaIng, Usuario + dr("CveProveedorSucursal") = CveProveedorSucursal + dr("ProveedorSucursal") = TxtProveedorSucursal2.Text + dr("Serie") = TxtSucursalSerie.Text + dr("Correo") = TxtCorreoSucursal.Text + dr("Contacto") = TxtContactoSucursal.Text + dr("Direccion") = TextSucursalDireccion.Text + dr("Telefono") = TextSucursalTelefono.Text + dr("LimiteCredito") = TxtLimiteCreditoSuc.Text.ToDouble + dr("PlazoCobranza") = TxtPlazoCobranzaSuc.Text.ToEntero + dr("FechaIng") = DateTime.Today.ToString() + dr("Usuario") = UsuarioActual.Usuario + dr("CveUsuario") = UsuarioActual.CveUsuario + + If CveProveedorSucursal = -1 And CveTempSucursal = -1 Then + + CveTempSucursal = TempDTSucursales.Compute("MAX(CveSucursalTemp)", "").ToString().ToEntero() + 1 + + End If + + dr("CveSucursalTemp") = CveTempSucursal + + If IndexDTSucursal <> -1 Then + TempDTSucursales.Rows.RemoveAt(IndexDTSucursal) + End If + + TempDTSucursales.Rows.Add(dr) + + GVSucursales.DataSource = TempDTSucursales + GVSucursales.DataBind() + + End If + + Else + ' SI EL PROVEEDOR TIENE CVE AGREGA o ACTUALIZA SUCURSAL EN BD + Dim ObjProveedor As New ClsCompProveedores + If EsEditarSucursal = 0 Then + If ObjProveedor.AddSucursal(CveProveedor, TxtProveedorSucursal2.Text.Trim, TextSucursalDireccion.Text.Trim, TextSucursalTelefono.Text.Trim, TxtSucursalSerie.Text.Trim, TxtContactoSucursal.Text, TxtCorreoSucursal.Text, UsuarioActual.CveUsuario, TxtLimiteCreditoSuc.Text.ToDouble, TxtPlazoCobranzaSuc.Text.ToEntero) Then + 'recargo el globaldt + If ObjProveedor.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedor.DtResultados + Alert("La nueva Sucursal del Proveedor se guardó correctamente.", TipoMensaje.MsgInformacion) + CargaProveedorSucursales() + End If + Else + + If CveProveedorSucursal > 0 And ObjProveedor.UpdateSucursal(TxtProveedorSucursal2.Text, TextSucursalDireccion.Text.Trim, TextSucursalTelefono.Text.Trim, TxtSucursalSerie.Text, False, TxtCorreoSucursal.Text, TxtContactoSucursal.Text, CveProveedorSucursal, CveProveedor, TxtLimiteCreditoSuc.Text.ToDouble, TxtPlazoCobranzaSuc.Text.ToEntero) Then + 'recargo el globaldt + If ObjProveedor.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedor.DtResultados + CargaProveedorSucursales() + Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) + End If + + End If + ObjProveedor.Dispose() + End If + + UPPSucursales.Update() + Me.RegistraScript("$('#divAgregarSucursal').modal('hide');") + LimpiaModalAgregarSucursal() + End Sub + Private Sub OcultaDiv() + ScriptManager.RegisterStartupScript(Me, Me.GetType, "Llave", "HideDivRegistro();", True) + End Sub + Protected Sub GVSucursales_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVSucursales.RowDataBound + 'If e.Row.RowType = DataControlRowType.DataRow Then + + ' If e.Row.RowIndex = 0 Then + ' e.Row.Cells(0).Width = Unit.Pixel(80) + ' e.Row.Cells(1).Width = Unit.Pixel(60) + ' e.Row.Cells(2).Width = Unit.Pixel(70) + ' 'e.Row.Cells(3).Width = Unit.Pixel(70) + ' 'e.Row.Cells(4).Width = Unit.Pixel(50) + ' End If + ' e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left + + ' Dim URL As String = String.Format("javascript:CleanObjects();SetValue('HdnModalidad', 'U');SetValue('HdnID', '{0}'); SetObjects('{1}', '{2}', '{3}','{4}','{5}','{6}','{7}','{8}');ShowDivRegistro();", e.Row.DBCampo("CveProveedorSucursal").ToEntero, e.Row.DBCampo("ProveedorSucursal"), e.Row.DBCampo("Serie"), e.Row.DBCampo("Correo"), e.Row.DBCampo("Contacto"), e.Row.DBCampo("Direccion"), e.Row.DBCampo("Telefono"), String.Format("Fecha de Registro: {0}", e.Row.DBCampo("FechaIng").ToDate.ToShortDateString), String.Format("Usuario Registró: {0}", e.Row.DBCampo("Usuario"))) + + ' 'GeneroLigas + ' Dim Liga As String = String.Format("", URL) + ' e.Row.VerticalAlign = VerticalAlign.Middle + + ' 'e.Row.FCLiteral("LtlSucursal").Text = String.Format("{0}{1}", Liga, e.Row.FCLiteral("LtlSucursal").Text) + ' e.Row.FCLiteral("LtlSerie").Text = String.Format("{0}{1}", Liga, e.Row.FCLiteral("LtlSerie").Text) + ' e.Row.CssClass = "GVRowBorder" + ' e.Row.Height = Unit.Pixel(33) + + 'End If + + End Sub + Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVSucursales.RowDeleting + + Dim CveProveedorSucursal As Integer = GVSucursales.DataKeys(e.RowIndex).Value.ToString.ToEntero + + + If CveProveedor = -1 Then + TempDTSucursales.Rows.RemoveAt(e.RowIndex) + GVSucursales.DataSource = TempDTSucursales + GVSucursales.DataBind() + + UPPSucursales.Update() + Else + Dim ObjProveedor As New ClsCompProveedores + ''Primero eliminamos Contactos de esta Sucursal + ObjProveedor.IniciaTransacSQL() + If ObjProveedor.RemoveProveedorContacto(-1, CveProveedorSucursal) Then + If ObjProveedor.RemoveSucursal(CveProveedor, CveProveedorSucursal) Then + 'GVSucursales.EditIndex = -1 + If ObjProveedor.GetSucursales(-1) Then Application("GlobalDTProveedorSucursales") = ObjProveedor.DtResultados + CargaProveedorSucursales() + CargaContactos(ObjProveedor) + Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) + ObjProveedor.Commit() + Else + ObjProveedor.RollBack() + End If + Else + ObjProveedor.RollBack() + End If + ObjProveedor.Dispose() + End If + End Sub + Protected Sub GvDatos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GVSucursales.RowCancelingEdit + GVSucursales.EditIndex = -1 + End Sub + Protected Sub GvDatos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GVSucursales.RowEditing + GVSucursales.EditIndex = e.NewEditIndex + End Sub + + Protected Sub CreaTempDTSucursales() + + TempDTSucursales = New DataTable() + 'TempDTSucursales.Columns.Add("CveProveedor", GetType(String)) + TempDTSucursales.Columns.Add("CveProveedorSucursal", GetType(String)) + TempDTSucursales.Columns.Add("ProveedorSucursal", GetType(String)) + TempDTSucursales.Columns.Add("Serie", GetType(String)) + TempDTSucursales.Columns.Add("Correo", GetType(String)) + TempDTSucursales.Columns.Add("Contacto", GetType(String)) + TempDTSucursales.Columns.Add("Direccion", GetType(String)) + TempDTSucursales.Columns.Add("Telefono", GetType(String)) + TempDTSucursales.Columns.Add("LimiteCredito", GetType(Double)) + TempDTSucursales.Columns.Add("PlazoCobranza", GetType(Integer)) + TempDTSucursales.Columns.Add("FechaIng", GetType(String)) + TempDTSucursales.Columns.Add("Usuario", GetType(String)) + TempDTSucursales.Columns.Add("CveUsuario", GetType(String)) + TempDTSucursales.Columns.Add("CveSucursalTemp", GetType(String)) + + GVSucursales.DataSource = TempDTSucursales + GVSucursales.DataBind() + + DivSucursales.Visible = True + UPPSucursales.Update() + + End Sub + + Protected Sub LnkSucursal_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + + IndexDTSucursal = GvRow.RowIndex + + CveProveedorSucursal = GvRow.DataKey("CveProveedorSucursal").ToEntero() + CveTempSucursal = IIf(GvRow.DataKey("CveSucursalTemp") <> "" Or GvRow.DataKey("CveSucursalTemp") IsNot Nothing, GvRow.DataKey("CveSucursalTemp"), 0).ToString().ToEntero() + + CveProveedorContacto = -1 + + TxtProveedorSucursal2.Text = GvRow.DataKey("ProveedorSucursal") + TextSucursalDireccion.Text = GvRow.DataKey("Direccion") + TextSucursalTelefono.Text = GvRow.DataKey("Telefono") + TxtSucursalSerie.Text = GvRow.DataKey("Serie") + TxtCorreoSucursal.Text = GvRow.DataKey("Correo") + TxtContactoSucursal.Text = GvRow.DataKey("Contacto") + TxtPlazoCobranzaSuc.Text = GvRow.DataKey("PlazoCobranza") + TxtLimiteCreditoSuc.Text = GvRow.DataKey("LimiteCredito") + + LblUsuarioSucursal.Text = $"Usuario Registró:
    {GvRow.DataKey("Usuario")}" + LblFechaSucursal.Text = $"Fecha de Registro:
    {GvRow.DataKey("FechaIng")}" + + If CveProveedor = -1 Then + 'Si tiene CveProvedoorSucursal filtra por esta cve, SI NO Busca por la CveProvedorSucursal Temporal + If GvRow.DataKey("CveProveedorSucursal").ToEntero() > 0 Then + CargaGVContactosSucursal() + Else + CargaGVContactosSucursal() + End If + Else + EsEditarSucursal = 1 + CargaGVContactosSucursal() + End If + + DivPContactosSucursal.Visible = True + UpAgregarSucursal.Update() + + Me.RegistraScript("$('#divAgregarSucursal').modal('show');") + End Sub + + Protected Sub LnkAgregarSucursal_Click(sender As Object, e As EventArgs) + If CveProveedor = -1 Then + CveTempSucursal = -1 + IndexDTSucursal = -1 + Else + EsEditarSucursal = 0 + End If + DivPContactosSucursal.Visible = False + LimpiaModalAgregarSucursal() + Me.RegistraScript("$('#divAgregarSucursal').modal('show');") + End Sub + + Protected Sub LimpiaModalAgregarSucursal() + CveProveedorSucursal = -1 + + TxtProveedorSucursal2.Text = "" + TextSucursalDireccion.Text = "" + TextSucursalTelefono.Text = "" + TxtSucursalSerie.Text = "" + TxtCorreoSucursal.Text = "" + TxtContactoSucursal.Text = "" + + LblUsuarioSucursal.Text = "" + LblFechaSucursal.Text = "" + + GVContactosProveedorSucursal.DataSource = Nothing + GVContactosProveedorSucursal.DataBind() + + UpAgregarSucursal.Update() + End Sub +#End Region + +#Region "CxP" + Private Sub CargaCxP(CveProveedorSucursal As Integer, Optional Top As Integer = -1) + Dim ObjMovtos As New ClsMovimientos() + 'CxC Activas + 'If ObjMovtos.GetCxPProveedor(CveProveedor, SerieSucursal, CveMoneda:=CveMoneda) Then + If ObjMovtos.GetCxPProveedor(CveProveedor, "-1", "-1", -1, -1, -1, -1, CveMonedaFiltro, -1, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), -1, "-1", "-1") Then + Dim dtt As DataTable = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda,OrdenVencimiento, FechaVencimiento") + GvCxP.DataSource = dtt + DTCxP = dtt + dtt = dtt.FiltraParametros("CveCompra > 0") + + CountCuentasxPagar = dtt.Rows.Count + + 'RESUMEN CUENTAS POR PAGAR + LBRCPVencidoP.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 1 and DiasVencidos > 0")).FormatoNumero + LBRCPPorVencerP.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 1 and DiasVencidos <= 0")).FormatoNumero + LBRCPSumaP.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 1 ")).FormatoNumero + + LBRCPVencidoD.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 2 and DiasVencidos > 0")).FormatoNumero + LBRCPPorVencerD.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 2 and DiasVencidos <= 0")).FormatoNumero + LBRCPSumaD.Text = String.Format("{0}", dtt.SUM("Saldo", "CveMoneda = 2 ")).FormatoNumero + + LBRCPTipoCambio.Text = GlobalTipoCambio.ToString.FormatoNumero + LBRCPTotal.Text = (LBRCPSumaP.Text.ToDouble + (LBRCPSumaD.Text.ToDouble * LBRCPTipoCambio.Text.ToDouble)).ToString.FormatoNumero + If LblLimiteCredito.Text.ToDouble > 0 Then + TdSaldo.Visible = True + TdSaldo2.Visible = True + LblSaldo.Text = CType(LblLimiteCredito.Text.ToDouble - LBRCPTotal.Text.ToDouble, String).FormatoNumero + End If + 'solo tomo los 10 ultimos mas el totalizador general + dtt = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'") + If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 And Top = -1 Then + GvCxPHistorial.DataSource = dtt.AsEnumerable().Take(10).CopyToDataTable() + + ElseIf dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 And Top > -1 Then + GvCxPHistorial.DataSource = dtt.AsEnumerable().CopyToDataTable() + End If + + Else + CountCuentasxPagar = 0 + GvCxP.DataSource = Nothing + GvCxPHistorial.DataSource = Nothing + End If + + ObjMovtos.Dispose() + GvCxP.DataBind() + GvCxPHistorial.DataBind() + UPPCxP.Update() + + If IsPostBack AndAlso Not DivFiltraMoneda.Visible Then + CargaFiltroMonedas() + End If + + End Sub + Protected Sub BtnRecargaCxP_Click(sender As Object, e As EventArgs) Handles BtnRecargaCxP.Click + CargaCxP(-1) + End Sub + Protected Sub GvCxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxP.RowDataBound, GvCxPHistorial.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 AndAlso CType(sender, GridView).ID = "GvCxP" Then + ''e.Row.Cells(0).ColumnSpan = 4 + 'e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right + 'e.Row.FCLiteral("LtlFactura").Text = "Total" & " " + 'e.Row.Cells(1).Visible = False + 'e.Row.Cells(2).Visible = False + 'e.Row.Cells(3).Visible = False + ''e.Row.Cells(9).ColumnSpan = 2 + 'e.Row.Cells(10).Visible = False + + End If + If e.Row.RowIndex = 1 Then + e.Row.Cells(0).Width = Unit.Pixel(2) + e.Row.Cells(1).Width = Unit.Pixel(100) + e.Row.Cells(2).Width = Unit.Pixel(70) + e.Row.Cells(3).Width = Unit.Pixel(80) + e.Row.Cells(4).Width = Unit.Pixel(80) + e.Row.Cells(5).Width = Unit.Pixel(90) + e.Row.Cells(6).Width = Unit.Pixel(90) + e.Row.Cells(7).Width = Unit.Pixel(105) + e.Row.Cells(8).Width = Unit.Pixel(90) + If CType(sender, GridView).ID <> "GvCxPHistorial" Then + e.Row.Cells(9).Width = Unit.Pixel(85) + e.Row.Cells(10).Width = Unit.Pixel(70) + e.Row.Cells(11).Width = Unit.Pixel(70) + End If + + End If + + If e.Row.DBCampo("CveCompra") = "" Then + e.Row.BackColor = Drawing.Color.LightGray + If e.Row.FCHyperLink("ImgAbonar") IsNot Nothing Then e.Row.FCHyperLink("ImgAbonar").Visible = False + Else + + End If + + e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(8).HorizontalAlign = HorizontalAlign.Right + + + + If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(6).ForeColor = Drawing.Color.Red + If e.Row.DBCampo("DiasVencidos").ToDouble > 0 AndAlso CType(sender, GridView).ID = "GvCxP" Then e.Row.Cells(4).ForeColor = Drawing.Color.Red + If e.Row.DBCampo("Original").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" + If e.Row.DBCampo("Abonado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = "" + If e.Row.DBCampo("PorPagado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlPorRecuperado"), Literal).Text = "" + If CType(sender, GridView).ID = "GvCxP" AndAlso e.Row.DBCampo("Saldo").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = "" + If e.Row.DBCampo("PorXPagar").ToDouble = 0 AndAlso e.Row.FCLiteral("LtlPorXRecuperar") IsNot Nothing Then e.Row.FCLiteral("LtlPorXRecuperar").Text = "" + + If e.Row.DBCampo("Folio") = "N/D" Then + e.Row.FCLabel("LtlFactura").Text = e.Row.DBCampo("SerieFolio") + Else + 'Dim Liga As String = String.Format("", e.Row.DBCampo("CveCompra")) + If e.Row.DBCampo("CveCompra").ToEntero > 0 Then + e.Row.FCLabel("LtlFactura").Text = String.Format("{1}", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("SerieFolio")) + Else + e.Row.FCLabel("LtlFactura").Text = e.Row.DBCampo("SerieFolio") + End If + + End If + If e.Row.RowIndex > 0 Then e.Row.FCLiteral("LtlAux").Text = String.Format("Ir", CveProveedor, e.Row.DBCampo("CveCompra")) + 'DirectCast(e.Row.FindControl("ImgAbonar"), Image).Attributes.Add("onclick", String.Format("$get('HdnCveVenta').value='{0}';$get('HdnCveVentaAbono').value='{0}';$('#DivAddPago').show(1000);PosicionaObjeto('{1}', 'DivAddPago');", e.Row.DBCampo("CveCompra"), DirectCast(e.Row.FindControl("ImgAbonar"), Image).ClientID)) + If e.Row.FCHyperLink("ImgAbonar") IsNot Nothing Then e.Row.FCHyperLink("ImgAbonar").NavigateUrl = String.Format("/Bancos/PopIECompras.aspx?CveCompra={0}&TB_iframe=true&height=450&width=790", e.Row.DBCampo("CveCompra")) + + If CType(sender, GridView).ID = "GvCxPHistorial" Then + + DirectCast(e.Row.FindControl("LtlDiasVencido"), Literal).Text = "" + + If e.Row.DBCampo("CveCompra") = "" Then + e.Row.BackColor = Drawing.Color.LightGray + e.Row.FCLabel("LtlFactura").Text = e.Row.DBCampo("Descripcion") + End If + + Else + e.Row.Cells(8).Font.Bold = True + e.Row.Cells(9).Font.Bold = True + If e.Row.DBCampo("CveUsuarioProgramo").ToEntero > 0 Then + e.Row.FCLinkButton("LblB").Text = "P" + 'e.Row.FCLabel("LblB").CssClass = "GreenStripe" + e.Row.Cells(0).ToolTip = "La compra ha sido programada." + End If + End If + End If + End Sub + +#End Region + +#Region "E V E N T O - B I T A C O R A" + Protected Sub GvEB_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).Width = Unit.Pixel(200) + e.Row.Cells(1).Width = Unit.Pixel(200) + e.Row.Cells(2).Width = Unit.Pixel(100) + e.Row.Cells(3).Width = Unit.Pixel(500) + End If + + If e.Row.DBCampo("Archivo").ToString <> "" Then + e.Row.FCLinkButton("LinkArchivo").Visible = True + e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString) + ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione + End If + + e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left + End If + End Sub + Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click + Dim ObjEventoBitacora As New ClsOIEventos + + Dim FileExtension As String = "-1" + Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos + Dim filemove As String = "" + + For Each fileItem As Archivo In filesgral + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") + filemove = fileItem.filename + Next + + If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor) Then + If filemove <> "" Then + filemove.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", UsuarioActual.CveEmpresa)) + End If + + GvEB.DataSource = ObjEventoBitacora.DtResultados + TxtEventoDescripcion.Text = "" + Anexo.Text = "[]" + Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) + RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") + End If + ObjEventoBitacora.Dispose() + GvEB.DataBind() + + UPEventoBitacora.Update() + CargaEventoBitacora() + UPAddEventoBitacora.Update() + End Sub + Private Sub CargaEventoBitacora() + + Dim ObjEventoBitacora As New ClsOIEventos() + If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor) Then + GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") + Else + GvEB.DataSource = Nothing + End If + ObjEventoBitacora.Dispose() + GvEB.DataBind() + End Sub + + Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) + Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) + Dim Archivo As New System.IO.FileInfo(filePath) + + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/octet-stream" + HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + IO.Path.GetFileName(filePath)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(filePath) + HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + + Archivo = Nothing + End Sub +#End Region + +#Region "OC" + Private Sub CargaOC() + Dim OC As New ClsOC + + If OC.GetOrdenesCompraRep("OC", -1, -1, -1, -1, MinFecha, MaxFecha, -1, CveProveedor, -1, -1, -1, UsuarioActual.CveEmpresa, -1) Then + GvOC.DataSource = OC.DtResultados + RegistraScript("if($('#DivOC').style){$get('DivOC').style.display='';PosicionaObjeto('ImgBtnBuscarOC','DivOC');}") + End If + OC.Dispose() + GvOC.DataBind() + If (GvOC.Rows.Count > 0) Then + GvOC.UseAccessibleHeader = True + GvOC.HeaderRow.TableSection = TableRowSection.TableHeader + End If + End Sub +#End Region + +#Region "D O C U M E N T A C I O N" + Private Sub CargaDocs() + Dim Edoc As New ClsEdocumentacion + If Edoc.DocumentacionElectronicaGet(-1, -1, CveProveedor, UsuarioActual.CveEmpresa, -1) Then + GvDocs.DataSource = Edoc.DtResultados + Edoc.DocumentacionGet(-1, -1, 1, UsuarioActual.CveEmpresa) + ' GVEDoc.DataSource = Edoc.DtResultados + If Edoc.DtResultados.Rows.Count > 0 Then + TabDocs.Visible = True + End If + End If + Edoc.Dispose() + GvDocs.DataBind() + ' GVEDoc.DataBind() + + If (GvDocs.Rows.Count > 0) Then + + GvDocs.UseAccessibleHeader = True + GvDocs.HeaderRow.TableSection = TableRowSection.TableHeader + 'RegistraScript("OrdenarGV();") + End If + End Sub + + Public Sub Update_ClickDocumentacion(sender As Object, e As EventArgs) + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim activo As Boolean = False + + Dim _CveDocumentacion As Integer = GvRow.DataKey("CveDocumentacion").ToEntero + Dim _Adjunto As String = GvRow.DataKey("Adjunto").ToString + Dim _fechaLimite As Date = GvRow.FCTextBox("TxtFechaLimite").Text.ToDate + + Dim observaciones As String = GvRow.FCTextBox("TxtObservaciones").Text ' DirectCast(GvRow.FindControl("TxtObservaciones"), TextBox).Text + 'Dim DDLEstatus As DropDownList = DirectCast(GvRow.FindControl("DDLEstatus"), DropDownList) + Dim chkCompleto As CheckBox = DirectCast(GvRow.FindControl("chkEstatus"), CheckBox) + Dim _Estatus As Integer + + If chkCompleto.Checked Then _Estatus = 1 Else _Estatus = 0 + + + Dim objRH As New ClsEdocumentacion + + If Not GvRow.DataKey("CveDocumentacionElectronica").ToEntero = -1 Then + If objRH.DocumentacionElectronicaUpdate(GvRow.DataKey("CveDocumentacionElectronica").ToEntero, _CveDocumentacion, -1, -1, CveProveedor, _Estatus, observaciones, _Adjunto, UsuarioActual.CveUsuario, GvRow.FCTextBox("TxtFechaLimite").Text.ToDate) Then + Alert("Documento actualizado correctamente.", TipoMensaje.MsgInformacion) + End If + Else + If objRH.DocumentacionElectronicaAdd(_CveDocumentacion, -1, -1, CveProveedor, _Estatus, observaciones, _Adjunto, UsuarioActual.CveUsuario, GvRow.FCTextBox("TxtFechaLimite").Text.ToDate) > 0 Then + Alert("Documento actualizado correctamente.", TipoMensaje.MsgInformacion) + End If + End If + + objRH.Dispose() + + End Sub + +#End Region + +#Region "Colectivas" + 'Private Sub CargaColectivas() + ' Dim ObjColectivas As New ClsGenerales + + ' If ObjColectivas.GetColectivas(CveProveedor, UsuarioActual.CveEmpresa) Then + ' GVColectivas.DataSource = ObjColectivas.DtResultados + ' End If + ' ObjColectivas.Dispose() + ' GVColectivas.DataBind() + 'End Sub + + 'Protected Sub GVColectivas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVColectivas.RowDataBound + ' If e.Row.RowType = DataControlRowType.DataRow Then + ' If e.Row.RowIndex = 0 Then + ' e.Row.Cells(0).Width = Unit.Pixel(100) + ' e.Row.Cells(1).Width = Unit.Pixel(80) + ' End If + ' e.Row.FCLiteral("LtlColectiva").Text = "" & e.Row.FCLiteral("LtlColectiva").Text & "" + ' e.Row.FCLiteral("LtlSaldo").Text = "" & e.Row.FCLiteral("LtlSaldo").Text & "" + ' End If + 'End Sub +#End Region + +#Region "C U E N T A S - B A N C A R I A S" + 'Private Sub CreaDTCuentasBancos() + ' DTCuentasBancos = New DataTable + ' DTCuentasBancos.Columns.Add("CveProveedorCuenta", GetType(Integer)) + ' DTCuentasBancos.Columns.Add("BancoNombre", GetType(String)) + ' DTCuentasBancos.Columns.Add("Sucursal", GetType(String)) + ' DTCuentasBancos.Columns.Add("CLABE", GetType(String)) + ' DTCuentasBancos.Columns.Add("SWIFT", GetType(String)) + ' DTCuentasBancos.Columns.Add("Plaza", GetType(String)) + ' DTCuentasBancos.Columns.Add("Cuenta", GetType(String)) + ' DTCuentasBancos.Columns.Add("CIE", GetType(String)) + ' DTCuentasBancos.Columns.Add("Referencia", GetType(String)) + + ' CargaCuentasBancarias() + 'End Sub + Private Sub CargaCuentasBancarias() + Dim ObjCuentasBancos As New ClsGenerales + ViewState("OrdenCuentasBancos") = "" + DTCuentasBancos = New DataTable + TempDTCuentasBancos = New DataTable + + If ObjCuentasBancos.GetCuentasDepositos(CveProveedor) Then + DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados) + Else + Alert("No se pudieron cargar las cuentas bancarias. Por favor intente nuevamente.", TipoMensaje.MsgAdvertencia) + End If + + If CveProveedor < 0 Then + 'Alert("No hay proveedor", TipoMensaje.MsgInformacion) + TempDTCuentasBancos = DTCuentasBancos.Clone + + 'Esconde columna estatus + 'THEstatus.Visible = False + 'THEstatusTexto.Visible = False + 'GvBancosCuentas.Columns(11).Visible = False 'Es la columna estatus CheckBox + + 'Mexicanada para acomadar las columnas' + 'TDEstatusLayout.Visible = False + 'TDEstatusTexto.Visible = False + + End If + + ObjCuentasBancos.Dispose() + CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + + RecargaGlobalCuentasBancarias() + End Sub + Protected Sub LbAgregarCuentaBanco_Click(sender As Object, e As EventArgs) + Dim EsBancomer = False + + If TxtNombreBanco.Text.ToUpper.Contains("BBVA") Or TxtNombreBanco.Text.ToUpper.Contains("BANCOMER") Or (TxtCLABE.Text.Length = 18 AndAlso TxtCLABE.Text.Substring(0, 3) = "012") Then + EsBancomer = True + End If + + ''COMENTADO PARA PERMITIR ENTRADA DE UNA CUENTA A PROVEEDOR, 22 DE SEPTIEMBRE, ISRAEL PIÑA + 'If EsBancomer AndAlso (TxtCLABE.Text.Length = 18 AndAlso Not TxtCLABE.Text.Substring(0, 3) = "012") Then + ' Alert("La CLABE ingresada no pertenece a BANCOMER.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + + ''CLABE SIEMPRE OBLIGATORIA CUANDO NO ES BANCOMER CON CIE + 'If (TxtCLABE.Text.Trim.Length <> 18 And Not EsBancomer) Or (EsBancomer And TxtConvenioCIE.Text.Trim.Length <> 6 And TxtCLABE.Text.Trim.Length <> 18) Then + ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + + + 'RESTRICCIONES GENERALES + + 'QUE TENGA ALGUN DATO DE TIPO DE CUENTA + If TxtNumeroCuenta.Text.Trim.Length = 0 AndAlso TxtCLABE.Text.Trim.Length = 0 AndAlso TxtSWIFT.Text.Trim.Length = 0 AndAlso TxtConvenioCIE.Text.Trim.Length = 0 Then + Alert("Debe especificar al menos un numero de cuenta.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 + If TxtCLABE.Text.Trim.Length <> 0 AndAlso TxtCLABE.Text.Trim.Length <> 18 Then + Alert("La CLABE debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'RESTRICCIONES - GLUYAS + If UsuarioActual.CveEmpresa = 66 Then + + 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER + If TxtCLABE.Text.Trim.Length <> 18 And TxtCLABE.Text.Trim.Length = 0 And Not EsBancomer And TxtSWIFT.Text.Trim.Length = 0 Then + Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 + If TxtNumeroCuenta.Text.Trim.Length <> 0 AndAlso TxtNumeroCuenta.Text.Trim.Length <> 10 AndAlso EsBancomer Then + Alert("El número de cuenta debe tener una longitud de 10 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'SI CIE TIENE ALGO REFERENCIA OBLIGATORIA + If TxtConvenioCIE.Text.Trim.Length <> 0 And TxtReferencia.Text.Trim.Length < 3 Then + Alert("Cuando se ingresa Convenio CIE se debe especificar una referencia. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" + If EsBancomer AndAlso Not (TxtNumeroCuenta.Text.Trim.Length = 10 Or TxtConvenioCIE.Text.Trim.Length <> 0) Then + Alert("Para cuentas BBVA BANCOMER es obligatorio el Número de Cuenta o CIE.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Else + + 'SI CIE TIENE ALGO DEBE TENER UNA LOGITUD MINIMA DE 5 + If TxtConvenioCIE.Text.Trim.Length <> 0 And TxtConvenioCIE.Text.Trim.Length < 5 Then + Alert("El Convenio CIE debe tener una longitud de al menos 5 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + End If + Dim Estatus As Boolean + If ChkEstatus.Checked = True Then Estatus = True Else Estatus = False + + AgregarCuentaBanco(TxtNombreBanco.Text.Trim, TxtNumeroSucursal.Text.Trim, TxtCLABE.Text.Trim, TxtSWIFT.Text.Trim, TxtPlaza.Text.Trim, TxtNumeroCuenta.Text.Trim, TxtConvenioCIE.Text.Trim, TxtReferencia.Text.Trim, TxtRefCrediProveedor.Text.Trim, DdlMoneda.SelectedValue.ToEntero, DdlMoneda.SelectedItem.Text, Estatus, TxtCorreoCuenta.Text.Trim) + End Sub + Private Sub AgregarCuentaBanco(NombreBanco As String, NumeroSucursal As String, CLABE As String, SWIFT As String, Plaza As String, NumeroCuenta As String, ConvenioCIE As String, Referencia As String, RefCrediProveedor As String, CveMoneda As Integer, Moneda As String, Estatus As Boolean, Correo As String) + Dim ObjCuentasBancos As New ClsGenerales + If Modalidad = "A" Then + + If CveProveedor > 0 Then + + If ObjCuentasBancos.AddCuentasDepositos(NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, UsuarioActual.CveUsuario, CveMoneda, CveProveedor:=CveProveedor, Correo:=Correo) Then + DTCuentasBancos.Clear() + DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) + Alert("Cuenta Bancaria agregada con éxito.", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) + Else + Alert("Error al registrar la cuenta bancaria. Por favor intente nuevamente", TipoMensaje.MsgError) + End If + + Else + Dim Row As DataRow + Row = TempDTCuentasBancos.NewRow + + Row("BancoNombre") = NombreBanco + Row("Sucursal") = NumeroSucursal + Row("CLABE") = CLABE + Row("SWIFT") = SWIFT + Row("Plaza") = Plaza + Row("Cuenta") = NumeroCuenta + Row("CIE") = ConvenioCIE + Row("Referencia") = Referencia + Row("RefCrediProveedor") = RefCrediProveedor + Row("CveMoneda") = CveMoneda + Row("Moneda") = Moneda + Row("EstatusPagoElectronico") = 0 + Row("Estatus") = "True" + Row("Correo") = Correo + TempDTCuentasBancos.Rows.Add(Row) + Alert("Cuenta Bancaria agregada con éxito.", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) + + End If + + Else + + + If CveProveedor > 0 Then + + If ObjCuentasBancos.UpdateCuentasDepositos(GvBancosCuentas.DataKeys(CveCuentaBancaria)("CveCuentaDeposito").ToString.ToEntero, NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, False, Estatus, CveMoneda, Correo:=Correo) Then + DTCuentasBancos.Clear() + DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) + Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) + Else + Alert("Error al actualizar la cuenta bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) + End If + + Else + + Dim index = CveCuentaBancaria + Dim Row As DataRow = TempDTCuentasBancos.Rows(index) + Row("BancoNombre") = NombreBanco + Row("Sucursal") = NumeroSucursal + Row("CLABE") = CLABE + Row("SWIFT") = SWIFT + Row("Plaza") = Plaza + Row("Cuenta") = NumeroCuenta + Row("CIE") = ConvenioCIE + Row("Referencia") = Referencia + Row("RefCrediProveedor") = RefCrediProveedor + Row("CveMoneda") = CveMoneda + Row("Moneda") = Moneda + Row("Estatus") = Estatus + Row("Correo") = Correo + TempDTCuentasBancos.AcceptChanges() + Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddCuentasBancarias")) + End If + + End If + ObjCuentasBancos.Dispose() + LimpiaCuentasBancarias() + CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + RecargaGlobalCuentasBancarias() + End Sub + Private Sub LimpiaCuentasBancarias() + TxtNombreBanco.Text = "" + TxtNumeroSucursal.Text = "" + TxtCLABE.Text = "" + TxtSWIFT.Text = "" + TxtPlaza.Text = "" + TxtNumeroCuenta.Text = "" + TxtConvenioCIE.Text = "" + TxtReferencia.Text = "" + TxtRefCrediProveedor.Text = "" + TxtCorreoCuenta.Text = "" + End Sub + +#Region "GRIDVIEW - CUENTAS BANCARIAS" + Protected Sub GvBancosCuentas_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvBancosCuentas.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + If CveProveedor < 0 Then + For index = 1 To TempDTCuentasBancos.Rows.Count + TempDTCuentasBancos.Rows(index - 1)("CveCuentaDeposito") = index + Next + TempDTCuentasBancos.AcceptChanges() + End If + + + If e.Row.DBCampo("Estatus") = "True" Then + e.Row.FCLabel("LlbEstatusTexto").Text = "Activo" + Else + e.Row.FCLabel("LlbEstatusTexto").Text = "Inactivo" + End If + + + 'ESCONDE "ELIMINAR" Y "EDITAR" CUANDO LA CUENTA YA ESTA DADA DE ALTA EN LAYOUT-BBVA + + 'If CBool(e.Row.DBCampo("EstatusPagoElectronico")) Then + ' e.Row.FCLinkButton("imgD").Visible = False + ' If e.Row.DBCampo("CIE").ToString = "" Then + ' e.Row.FCLinkButton("imgE").Visible = False + ' End If + 'End If + + 'si esta editando + 'Dim EsSi = CBool(IIf(e.Row.FCLabel("LblEstatusPE").Text = "Sí", True, False)) + + 'If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + + ' e.Row.FCDropDownList("DdlMoneda").DataSource = GlobalDTMonedas + ' e.Row.FCDropDownList("DdlMoneda").DataBind() + ' e.Row.FCDropDownList("DdlMoneda").Items.Insert(0, New ListItem("Seleccione", "-1")) + ' ' GvBancosCuentas.SelectedRow.Cells. + ' If e.Row.DBCampo("CveMoneda").ToString.ToEntero > 0 Then + ' e.Row.FCDropDownList("DdlMoneda").SelectedValue = e.Row.DBCampo("CveMoneda") + ' End If + + ' 'If EsSi Then + ' ' e.Row.FCCheckBox("ChkEstatus").Enabled = False + ' 'End If + + ' 'SI TIENE PERMISO PUEDE EDITAR ESTATUS + ' If UsuarioActual.TienePermisoProceso(155) Then + ' 'Alert("usuario no tiene permiso", TipoMensaje.MsgInformacion) + ' e.Row.FCCheckBox("ChkEstatus").Visible = True + ' Else + ' e.Row.FCCheckBox("ChkEstatus").Visible = False + ' End If + + ' If CBool(e.Row.DBCampo("EstatusPagoElectronico")) Then + ' e.Row.FCDropDownList("DdlMoneda").Enabled = False + ' ' 'e.Row.FCTextBox("TxtReferencia").Enabled = False + ' ' 'Else + ' ' ' e.Row.FCLinkButton("imgD").Enabled = False + ' ' ' e.Row.FCLinkButton("imgE").Enabled = False + ' End If + + + 'End If + End If + End Sub + + ''Protected Sub GvBancosCuentas_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvBancosCuentas.RowEditing + '' Dim id As Integer = e.NewEditIndex + '' GvBancosCuentas.EditIndex = id + '' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + + '' 'Dim x As String = GvBancosCuentas.SelectedRowStyle("EstatusPagoElectronico") + + '' 'If CBool(e.Row.DBCampo("EstatusPagoElectronico")) AndAlso e.Row.DBCampo("Referencia").ToString <> "" Then + + '' 'End If + + ''End Sub + 'Protected Sub GvBancosCuentas_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvBancosCuentas.RowCancelingEdit + ' GvBancosCuentas.EditIndex = -1 + ' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + 'End Sub + 'Protected Sub GvBancosCuentas_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvBancosCuentas.RowUpdating + + ' Dim NombreBanco = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtNombreBanco").Text.Trim + ' Dim NumeroSucursal = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtNumeroSucursal").Text.Trim + ' Dim CLABE = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtCLABE").Text.Trim + ' Dim SWIFT = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtSWIFT").Text.Trim + ' Dim Plaza = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtPlaza").Text.Trim + ' Dim NumeroCuenta = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtNumeroCuenta").Text.Trim + ' Dim ConvenioCIE = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtConvenioCIE").Text.Trim + ' Dim Referencia = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtReferencia").Text.Trim + ' Dim RefCrediProveedor = GvBancosCuentas.Rows(e.RowIndex).FCTextBox("TxtRefCrediProveedor").Text.Trim + ' Dim CveMoneda = GvBancosCuentas.Rows(e.RowIndex).FCDropDownList("DdlMoneda").SelectedValue.ToString.ToEntero + ' Dim Moneda = GvBancosCuentas.Rows(e.RowIndex).FCDropDownList("DdlMoneda").SelectedItem.Text + ' Dim Estatus = GvBancosCuentas.Rows(e.RowIndex).FCCheckBox("ChkEstatus").Checked + + ' Dim EsBancomer = False + + ' If NombreBanco.ToUpper.Contains("BBVA") Or NombreBanco.ToUpper.Contains("BANCOMER") Or (CLABE.Length = 18 AndAlso CLABE.Substring(0, 3) = "012") Then + ' EsBancomer = True + ' End If + + ' ''COMENTADO PARA PERMITIR ENTRADA DE UNA CUENTA A PROVEEDOR, 22 DE SEPTIEMBRE, ISRAEL PIÑA + ' 'If EsBancomer AndAlso (CLABE.Length <> 18 AndAlso Not CLABE.Substring(0, 3) = "012") Then + ' ' Alert("La CLABE ingresada no pertenece a BANCOMER.", TipoMensaje.MsgAdvertencia) + ' ' Exit Sub + ' 'End If + + ' ''CLABE SIEMPRE OBLIGATORIA CUANDO NO ES BANCOMER CON CIE + ' 'If (CLABE.Trim.Length <> 18 And Not EsBancomer) Or (EsBancomer And ConvenioCIE.Trim.Length <> 6 And CLABE.Trim.Length <> 18) Then + ' ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' ' Exit Sub + ' 'End If + + ' 'QUE TENGA ALGUN DATO DE TIPO DE CUENTA + ' If NumeroCuenta.Length = 0 AndAlso CLABE.Length = 0 AndAlso SWIFT.Length = 0 AndAlso ConvenioCIE.Length = 0 Then + ' Alert("Debe especificar al menos un numero de cuenta.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + ' 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 + ' If CLABE.Trim.Length <> 0 AndAlso CLABE.Trim.Length <> 18 Then + ' Alert("La CLABE debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + ' If UsuarioActual.CveEmpresa = 66 Then + ' 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER + ' If CLABE.Trim.Length <> 18 And CLABE.Trim.Length = 0 And Not EsBancomer And SWIFT.Length = 0 Then + ' Alert("La CLABE es obligatoria y debe tener una longitud de 18 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + ' 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 + ' If NumeroCuenta.Trim.Length <> 0 AndAlso NumeroCuenta.Trim.Length <> 10 AndAlso EsBancomer Then + ' Alert("El número de cuenta debe tener una longitud de 10 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + ' 'SI CIE TIENE ALGO REFERENCIA OBLIGATORIA + ' If ConvenioCIE.Trim.Length <> 0 And Referencia.Trim.Length < 3 Then + ' Alert("Cuando se ingresa Convenio CIE se debe especificar una referencia. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + ' 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" + ' If EsBancomer AndAlso Not (NumeroCuenta.Trim.Length = 10 Or ConvenioCIE.Trim.Length <> 0) Then + ' Alert("Para cuentas BBVA BANCOMER es obligatorio el Número de Cuenta o CIE.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + ' Else + ' 'SI CIE TIENE ALGO DEBE TENER UNA LOGITUD MINIMA DE 5 + ' If ConvenioCIE.Trim.Length <> 0 And ConvenioCIE.Trim.Length < 5 Then + ' Alert("El Convenio CIE debe tener una longitud de al menos 5 dígitos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + ' End If + + + + ' Dim ObjCuentasBancos As New ClsGenerales + ' If CveProveedor > 0 Then + ' If ObjCuentasBancos.UpdateCuentasDepositos(GvBancosCuentas.DataKeys(e.RowIndex)("CveCuentaDeposito").ToString.ToEntero, NombreBanco, Plaza, NumeroSucursal, NumeroCuenta, CLABE, ConvenioCIE, SWIFT, Referencia, RefCrediProveedor, False, Estatus, CveMoneda) Then + ' DTCuentasBancos.Clear() + ' DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) + ' Alert("Cuenta actualizada con éxito.", TipoMensaje.MsgInformacion) + ' Else + ' Alert("Error al actualizar la cuenta bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) + ' End If + ' Else + ' Dim index = GvBancosCuentas.Rows(e.RowIndex).DataKey("CveCuentaDeposito").ToString.ToEntero - 1 + ' Dim Row As DataRow = TempDTCuentasBancos.Rows(index) + ' Row("BancoNombre") = NombreBanco + ' Row("Sucursal") = NumeroSucursal + ' Row("CLABE") = CLABE + ' Row("SWIFT") = SWIFT + ' Row("Plaza") = Plaza + ' Row("Cuenta") = NumeroCuenta + ' Row("CIE") = ConvenioCIE + ' Row("Referencia") = Referencia + ' Row("RefCrediProveedor") = RefCrediProveedor + ' Row("CveMoneda") = CveMoneda + ' Row("Moneda") = Moneda + ' Row("Estatus") = Estatus + ' TempDTCuentasBancos.AcceptChanges() + ' End If + + ' ObjCuentasBancos.Dispose() + + ' GvBancosCuentas.EditIndex = -1 + ' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + ' RecargaGlobalCuentasBancarias() + 'End Sub + 'Protected Sub GvBancosCuentas_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvBancosCuentas.RowDeleting + ' Dim ObjCuentasBancos As New ClsGenerales + + ' If CveProveedor > 0 Then + ' If ObjCuentasBancos.RemoveCuentasDepositos(GvBancosCuentas.DataKeys(e.RowIndex)("CveCuentaDeposito").ToString.ToEntero) Then + ' DTCuentasBancos.Clear() + ' DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) + + ' Alert("Cuenta Bancaria borrada con éxito.", TipoMensaje.MsgInformacion) + ' Else + ' Alert("No se pudo borrar la Cuenta Bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) + ' End If + ' Else + ' Dim index = GvBancosCuentas.Rows(e.RowIndex).DataKey("CveCuentaDeposito").ToString.ToEntero - 1 + ' TempDTCuentasBancos.Rows.RemoveAt(index) + ' End If + + ' If ObjCuentasBancos.GetCuentasDepositos Then + ' GlobalDTProveedoresCuentas(CveProveedor, True) = ObjCuentasBancos.DtResultados + ' End If + + ' CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + ' ObjCuentasBancos.Dispose() + ' RecargaGlobalCuentasBancarias() + 'End Sub + + Public Sub Delete_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim ObjCuentasBancos As New ClsGenerales + + If CveProveedor > 0 Then + If ObjCuentasBancos.RemoveCuentasDepositos(GvRow.DataKey("CveCuentaDeposito").ToEntero) Then + DTCuentasBancos.Clear() + DTCuentasBancos.Merge(ObjCuentasBancos.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor))) + + Alert("Cuenta Bancaria borrada con éxito.", TipoMensaje.MsgInformacion) + Else + Alert("No se pudo borrar la Cuenta Bancaria. Por favor intente nuevamente.", TipoMensaje.MsgError) + End If + Else + Dim index = GvRow.RowIndex + TempDTCuentasBancos.Rows.RemoveAt(index) + Alert("Cuenta Bancaria borrada con éxito.", TipoMensaje.MsgInformacion) + End If + + If ObjCuentasBancos.GetCuentasDepositos Then + GlobalDTProveedoresCuentas(CveProveedor, True) = ObjCuentasBancos.DtResultados + End If + + CargaPSGridCuentasBancos(ViewState("OrdenCuentasBancos").ToString) + ObjCuentasBancos.Dispose() + RecargaGlobalCuentasBancarias() + End Sub + Private Sub RecargaGlobalCuentasBancarias(Optional ByVal CveCuenta As Integer = -1) + If CveProveedor > 0 Then + Dim ObjCuentasBancos As New ClsGenerales + + If ObjCuentasBancos.GetCuentasDepositos() Then + GlobalDTProveedoresCuentas(-1, True) = ObjCuentasBancos.DtResultados + End If + ObjCuentasBancos.Dispose() + End If + End Sub + +#End Region + + Private Sub CargaPSGridCuentasBancos(Orden As String) + If CveProveedor > 0 Then + If Orden <> String.Empty Then + Dim DV As New DataView(DTCuentasBancos, "", Orden, DataViewRowState.CurrentRows) + GvBancosCuentas.DataSource = DV.ToTable() + DV.Dispose() + Else + GvBancosCuentas.DataSource = DTCuentasBancos + End If + Else + If Orden <> String.Empty Then + Dim DV As New DataView(TempDTCuentasBancos, "", Orden, DataViewRowState.CurrentRows) + GvBancosCuentas.DataSource = DV.ToTable() + DV.Dispose() + Else + GvBancosCuentas.DataSource = TempDTCuentasBancos + End If + End If + + GvBancosCuentas.DataBind() + UpCuentasBancos.Update() + End Sub + + Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim Tipo As Integer = 1 + Dim Orden As String = "" + Dim Campo As String = "" + Dim gvi As Integer = 0 + Dim ImgButon As ImageButton = Nothing + Const OrdenInicial As String = "" + + Select Case sender.GetType().Name + Case "LinkButton" + Tipo = 1 + Campo = CType(sender, LinkButton).CommandArgument().ToString + ImgButon = CType(CType(sender, LinkButton).BindingContainer.FindControl("Img" & Campo.Replace(",", "_")), ImageButton) + Case "ImageButton" + Tipo = 2 + ImgButon = CType(sender, ImageButton) + Campo = CType(sender, ImageButton).CommandArgument().ToString + End Select + + If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then + ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) + RegistraScript(String.Format("$get('{0}').src='{1}'", ImgButon.ClientID, "/Imagenes/FlechasArriba.gif")) + Else + ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) + RegistraScript(String.Format("$get({0}).src='{1}'", ImgButon.ClientID, "/Imagenes/FlechasAbajo.gif")) + End If + + Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString + ViewState("OrdenCuentasBancos") = Orden + CargaPSGridCuentasBancos(Orden) + End Sub + + Private Sub CargaMonedas() + DdlMoneda.DataSource = GlobalDTMonedas + DdlMoneda.DataBind() + DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlMonedaPrefente.DataSource = GlobalDTMonedas + DdlMonedaPrefente.DataBind() + End Sub + +#End Region + +#Region "F I L T R O - S U C U R S A L" + Protected Sub CargaSerieSucursal() + CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero) + CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero) + CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero) + CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero) + SerieSucursal = RBSucursal.SelectedValue.ToString + + BtnVerMasCompras.Text = "Ver Más " + BtnVerMasBancos.Text = "Ver Más " + BtnVerMasAnticipos.Text = "Ver Más " + BtnVerMasComprasPagadas.Text = "Ver Más " + + UpnHistorial.Update() + UPPCxP.Update() + UpAnticipos.Update() + UpBancos.Update() + + Dim script As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#CXPContador""", """badge-success""", """badge-danger""", If(CountCuentasxPagar > 0, """badge-danger""", """badge-success"""), CountCuentasxPagar.ToString) + RegistraScript(script, "contadorcuentaspopagar") + + Dim script2 As String = String.Format("$({0}).removeClass({1});$({0}).removeClass({2}); $({0}).addClass({3});$({0}).text(""{4}"");", """#AnticiposContador""", """badge-success""", """badge-danger""", If(CountAnticipos > 0, """badge-danger""", """badge-success"""), CountAnticipos.ToString) + RegistraScript(script2, "contadoranticipos") + + End Sub + Protected Sub MostrarFiltro() + + If GlobalDTProveedorSucursales(CveProveedor).Rows.Count > 1 Then + 'tHistorial.Visible = True + 'tCxP.Visible = True + 'tAnticipos.Visible = True + + 'CargaRB(RBHistorial) + 'CargaRB(RBAnticipos) + + 'RBCxP.DataSource = CType(ViewState("DTProveedorSucursales"), DataTable) + 'RBCxP.DataBind() + 'RBCxP.Items.Insert(0, New ListItem("Todas", "")) + 'RBCxP.SelectedValue = "" + + DivFiltraSucursal.Visible = True + CargaRB(RBSucursal) + + CargaSerieSucursal() + Else + 'tHistorial.Visible = False + 'tCxP.Visible = False + 'tAnticipos.Visible = False + DivFiltraSucursal.Visible = False + End If + End Sub + Protected Sub CargaRB(R As DropDownList) + R.DataSource = GlobalDTProveedorSucursales(CveProveedor) + R.DataBind() + R.Items.Insert(0, New ListItem("Todas", "-1")) + If CveProveedorSucursal > 0 Then R.SelectedValue = CveProveedorSucursal.ToString Else R.SelectedValue = "-1" + End Sub + 'Protected Sub RBHistorial_SelectedIndexChanged(sender As Object, e As EventArgs) + ' CargaHistorial(RBHistorial.SelectedValue.ToString) + 'End Sub + 'Protected Sub RBCxP_SelectedIndexChanged(sender As Object, e As EventArgs) + ' CargaCxP(RBCxP.SelectedValue.ToString) + 'End Sub + 'Protected Sub RBAnticipos_SelectedIndexChanged(sender As Object, e As EventArgs) + ' CargaAnticipos(RBAnticipos.SelectedValue.ToString) + 'End Sub + Protected Sub RBSucursal_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaSerieSucursal() + End Sub +#End Region + +#Region " FILTRO MONEDA " + + Private Sub CargaFiltroMonedas() + + 'SI YA ESTA VISIBLE NO SE PUEDE PONER INVISIBLE + If Not DivFiltraMoneda.Visible Then + If DetectaMonedas() Then + DivFiltraMoneda.Visible = True + End If + End If + + End Sub + + Private Function DetectaMonedas() As Boolean + 'Dim DtMonedas As New DataTable + 'DtMonedas.Columns.Add("CveMoneda", GetType(Integer)) + 'DtMonedas.Columns.Add("Abreviatura", GetType(String)) + Dim OcupaFiltro = False + + If CType(GVHistorial.DataSource, DataTable) IsNot Nothing AndAlso CType(GVHistorial.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then + OcupaFiltro = True + Return OcupaFiltro + End If + + If CType(GvCxP.DataSource, DataTable) IsNot Nothing AndAlso CType(GvCxP.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then + OcupaFiltro = True + Return OcupaFiltro + End If + + If CType(GvCxPHistorial.DataSource, DataTable) IsNot Nothing AndAlso CType(GvCxPHistorial.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then + OcupaFiltro = True + Return OcupaFiltro + End If + + If CType(GvA.DataSource, DataTable) IsNot Nothing AndAlso CType(GvA.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then + OcupaFiltro = True + Return OcupaFiltro + End If + + If CType(GvAH.DataSource, DataTable) IsNot Nothing AndAlso CType(GvAH.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then + OcupaFiltro = True + Return OcupaFiltro + End If + + If CType(GvBancos.DataSource, DataTable) IsNot Nothing AndAlso CType(GvBancos.DataSource, DataTable).MAX("CveMoneda").ToEntero > 1 Then + OcupaFiltro = True + Return OcupaFiltro + End If + + Return OcupaFiltro + + End Function + + Protected Sub RBMoneda_SelectedIndexChanged(sender As Object, e As EventArgs) + CveMonedaFiltro = RBMoneda.SelectedValue.ToEntero + + CargaHistorial(RBSucursal.SelectedValue.ToString.ToEntero) + CargaCxP(RBSucursal.SelectedValue.ToString.ToEntero) + CargaAnticipos(RBSucursal.SelectedValue.ToString.ToEntero) + CargaBancos(RBSucursal.SelectedValue.ToString.ToEntero) + SerieSucursal = RBSucursal.SelectedValue.ToString + + CargaFiltroMonedas() + End Sub +#End Region + +#Region "SALDOS BENEFICIARIOS" + 'Private Sub CargaSaldosBeneficiarios() + ' Dim ObjCompras As New ClsCompras + + ' If ObjCompras.GetBeneficiarios2(CveProveedor, UsuarioActual.CveEmpresa) Then + ' GvSaldosBeneficiarios.DataSource = ObjCompras.DtResultados.FiltraParametros("TipoLetra <> 'Proveedor'") + ' Else + ' Alert("Ocurrió un error al obtener los Saldos Beneficiarios.", TipoMensaje.MsgError) + ' End If + + ' ObjCompras.Dispose() + + ' GvSaldosBeneficiarios.DataBind() + 'End Sub +#End Region + +#Region " R E P O R T E - C X P " + Protected Sub GenerarReporteCxP_Click(sender As Object, e As EventArgs) + 'If UsuarioActual.CveUsuario = 100 Then + ' ImprimirReporteCxP() + 'Else + ' GenerarPDFCxP() + 'End If + Dim Formato As String = RBLGenerarReporteCxC.SelectedValue + + If rblreporte.SelectedValue = "cxp" Then + ImprimirReporteCxPCrystal(Formato) + ElseIf rblreporte.SelectedValue = "anc" Then + ImprimirReporteCxP(Formato) + End If + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddReporte")) + End Sub + + Private Sub ImprimirReporteCxPCrystal(Optional Formato As String = "PDF") + Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepProveedorCxP.rpt", UsuarioActual.Empresa.Ruta)) + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim DTCxPTempral As DataTable = Nothing + + 'OBTENEMOS LOS DATOS + Dim FI = If(TxtFechaInicioCXP.Text = "" Or TxtFechaInicioCXP.Text = "__/__/____", "-1", TxtFechaInicioCXP.Text) + Dim FF = If(TxtFechaFinCXP.Text = "" Or TxtFechaFinCXP.Text = "__/__/____", "-1", TxtFechaFinCXP.Text) + Dim FVI = If(txtFechaVI.Text = "" Or txtFechaVI.Text = "__/__/____", "-1", txtFechaVI.Text) + Dim FVF = If(txtFechaVF.Text = "" Or txtFechaVF.Text = "__/__/____", "-1", txtFechaVF.Text) + + Dim ObjMovtos As New ClsMovimientos() + If ObjMovtos.GetCxPProveedor(CveProveedor, FI, FF, -1, -1, -1, -1, CveMonedaFiltro, -1, RBSucursal.SelectedValue.ToEntero, -1, FVI, FVF) Then + DTCxPTempral = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, OrdenVencimiento ,FechaVencimiento")) + End If + + If DTCxPTempral IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then + Dim dr As DataRow = DTCxPTempral.Rows(0) + Dim lista = New List(Of CrystalParametro) + + lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) + lista.Add(New CrystalParametro("TipoCuentas", DdlTipoCuentasCxP.SelectedItem.Text)) + lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI))) + lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF))) + lista.Add(New CrystalParametro("NombreProveedor", LtlProveedor.Text)) + lista.Add(New CrystalParametro("DireccionProveedor", TxtDireccion.Text)) + lista.Add(New CrystalParametro("ProveedorRFC", TxtRFC.Text)) + lista.Add(New CrystalParametro("ProveedorTelefono", TxtTelefono.Text)) + lista.Add(New CrystalParametro("DiasCredito", TxtPlazoCobranza.Text)) + lista.Add(New CrystalParametro("LimiteCredito", TxtLimiteCredito.Text)) + lista.Add(New CrystalParametro("SaldoDisponible", (TxtLimiteCredito.Text.ToDouble - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) + lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre)) + + Dim params As New List(Of ReportParameter) + + If Imagen.Exists Then + lista.Add(New CrystalParametro("LogoPath", logouri)) + Else + lista.Add(New CrystalParametro("LogoPath", "")) + End If + + Dim dtnc As New DataTable + Dim ObjCompra As New ClsCompras() + For Each dr2 As DataRow In DTCxPTempral.FiltraParametros("", DistinctColumns:={"CveIE"}).Rows + If ObjCompra.GetComprasNotasCredito(-1, -1, dr2("CveIE").ToString.ToEntero) Then + dtnc.Merge(ObjCompra.DtResultados) + End If + Next + ObjCompra.Dispose() + + If dtnc IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then + If Archivo.Exists Then + ImprimirbytesPDF(ImprimirSubRepPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepProveedorCxP.rpt", DTCxPTempral, lista, DTCxPTempral, dtnc, "Ing", "Ant", "Estado de cuenta", Formato), "Estado de cuenta", Formato) + Else + ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepProveedorCxP.rpt"), DTCxPTempral, lista, DTCxPTempral, dtnc, "Ing", "Ant", "Estado de cuenta", Formato), "Estado de cuenta", Formato) + End If + End If + + Else + Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) + End If + + ObjMovtos.Dispose() + End Sub + + 'Private Sub GenerarPDFCxP() + ' Dim missing As Object = System.Reflection.Missing.Value + + + ' If rblreporte.SelectedValue = "cxp" Then + ' 'OBTENEMOS LOS DATOS + ' Dim ObjMovtos As New ClsMovimientos() + ' Dim DtCxP As DataTable + ' Dim FI = If(TxtFechaInicioCxP.Text = "" Or TxtFechaInicioCxP.Text = "__/__/____", "-1", TxtFechaInicioCxP.Text) + ' Dim FF = If(TxtFechaFinCxP.Text = "" Or TxtFechaFinCxP.Text = "__/__/____", "-1", TxtFechaFinCxP.Text) + + ' If ObjMovtos.GetCxPProveedor(CveProveedor, FI, FF, -1, -1, -1, -1, CveMoneda, -1, SerieSucursal, -1) Then + ' DtCxP = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, OrdenVencimiento ,FechaVencimiento")) + ' Else + ' DtCxP = Nothing + ' End If + ' ObjMovtos.Dispose() + + + ' 'GENERAMOS EXCEL + ' 'Try + ' ' Dim Formato = "Formatos\ReporteCxP.xlsm" + + ' ' Dim TC As Double = 1 + ' ' Dim Excel As msExcel.Application = New msExcel.Application() + ' ' Dim VB_Module As VBComponent = Nothing + ' ' Excel.Visible = True + ' ' Excel.ScreenUpdating = True + ' ' Excel.DisplayAlerts = True + + ' ' 'Valida y/o Crea Directorio Formatos + ' ' If Not IO.Directory.Exists(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) + + ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" + ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then + ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteCxP.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) + ' ' End If + + ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) + ' ' ArchivoBase.CopyTo(String.Format("{0}Formatos\ReporteCxP-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor), True) + ' ' Dim ArchivoTemp As New System.IO.FileInfo(String.Format("{0}Formatos\ReporteCxP-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor)) + ' ' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) + ' ' Libro.Activate() + ' ' Dim Hoja As msExcel.Worksheet = CType(Libro.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet) + ' ' Hoja.Visible = Microsoft.Office.Interop.Excel.XlSheetVisibility.xlSheetVisible + ' ' Hoja.Activate() + + ' ' Try + + ' ' 'GENERALES + ' ' Hoja.Range("B6:B6").Value = LtlProveedor.Text + ' ' Hoja.Range("G2:G2").Value = DdlTipoCuentasCxP.SelectedItem.Text + ' ' Hoja.Range("G4:G4").Value = If(FI = "-1", "Sin Fecha", FI) + ' ' Hoja.Range("G6:G6").Value = If(FF = "-1", "Sin Fecha", FF) + + ' ' If DtCxP.Rows.Count > 0 Then + ' ' VB_Module = CType(Libro.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule), VBComponent) + ' ' VB_Module.CodeModule.AddFromString(GetMacro) + + ' ' Dim CeldaI As Integer = 9 + ' ' Dim CeldaF As Integer = 9 + + ' ' 'DETALLES + ' ' For Each Row As DataRow In DtCxP.Rows + ' ' Hoja.Range(String.Format("A{0}:A{0}", CeldaF)).Value = Row("SerieFolio").ToString + ' ' Hoja.Range(String.Format("C{0}:C{0}", CeldaF)).Value = Row("Descripcion").ToString + ' ' Hoja.Range(String.Format("D{0}:D{0}", CeldaF)).Value = Row("Abreviatura").ToString + ' ' Hoja.Range(String.Format("E{0}:E{0}", CeldaF)).Value = Row("Original").ToString.FormatoNumero + ' ' Hoja.Range(String.Format("F{0}:F{0}", CeldaF)).Value = Row("Abonado").ToString.FormatoNumero + ' ' Hoja.Range(String.Format("G{0}:G{0}", CeldaF)).Value = Row("ImporteNC").ToString.FormatoNumero + ' ' Hoja.Range(String.Format("H{0}:H{0}", CeldaF)).Value = Row("Saldo").ToString.FormatoNumero + + ' ' If Row("CveCompra").ToString = "" Then + ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = "" + ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 15 + ' ' Else + ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = Row("Fecha").ToString.ToDate.ToString("dd/MM/yyyy") + ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 0 + ' ' End If + + ' ' If DtCxP.Rows.Count > 1 AndAlso CeldaF - CeldaI < DtCxP.Rows.Count - 1 Then + ' ' CeldaF = CeldaF + 1 + ' ' Libro.Application.Run("AddRow", (CeldaF - 1).ToString, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, + ' ' missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) + ' ' Libro.Save() + ' ' Libro.Application.DisplayAlerts = False + ' ' Libro.Application.ScreenUpdating = False + ' ' End If + ' ' Next + + ' ' End If + + ' ' If Not IO.Directory.Exists(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) + + ' ' 'Exportar PDF + ' ' Dim pdfFileOut As String = String.Format("{0}PDF\CxP-{1}.pdf", UsuarioActual.Empresa.Ruta, CveProveedor) + ' ' Dim outputFileName As Object = pdfFileOut + ' ' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF + ' ' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing) + ' ' Catch ex As Exception + ' ' Dim Msgerr As String = "" + ' ' Msgerr.Alert(String.Format("Ocurrió un error {0}", ex.Message), TipoMensaje.MsgError) + ' ' End Try + + ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Hoja) + ' ' Hoja = Nothing + ' ' Dim saveChanges As Object = msExcel.XlSaveAction.xlDoNotSaveChanges + ' ' CType(Libro, msExcel._Workbook).Close(saveChanges, missing, missing) + ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Libro) + ' ' Libro = Nothing + ' ' Excel.Quit() + ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel) + ' ' Excel = Nothing + ' ' GC.Collect() + ' ' GC.WaitForPendingFinalizers() + + ' ' ArchivoTemp.Delete() + + ' ' Dim Descargas As New StringBuilder() + ' ' Descargas.AppendFormat("
  • Reporte
  • ", UsuarioActual.CveEmpresa, CveProveedor, Now.Ticks) + ' ' Dim Msg As String = String.Format("
    El Documento se generó correctamente.


    Descargas:", Descargas.ToString) 'TipoMensaje.MsgInformacion + ' ' Msg.Alert(Msg, TipoMensaje.MsgInformacion) + ' 'Catch ex As Exception + + ' ' Dim Msg As String = "No se pudo generar el documento." + ' ' Msg.OnError(Msg, ex, "CveProveedor=" & CveProveedor) + + ' 'End Try + + ' ElseIf rblreporte.SelectedValue = "anc" Then + ' 'OBTENEMOS LOS DATOS + ' Dim ObjMovtos As New ClsMovimientos() + ' Dim DtANC As DataTable + ' Dim FI = If(TxtFechaInicioCxP.Text = "" Or TxtFechaInicioCxP.Text = "__/__/____", "-1", TxtFechaInicioCxP.Text) + ' Dim FF = If(TxtFechaFinCxP.Text = "" Or TxtFechaFinCxP.Text = "__/__/____", "-1", TxtFechaFinCxP.Text) + + ' If ObjMovtos.GetAnticiposProveedor(CveProveedor, SerieSucursal, CveMoneda, -1, FI, FF) Then + ' DtANC = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, FechaVencimiento")) + ' Else + ' DtANC = Nothing + ' End If + ' ObjMovtos.Dispose() + + + ' 'GENERAMOS EXCEL + ' 'Try + ' ' Dim Formato = "Formatos\ReporteANC.xlsm" + + ' ' Dim TC As Double = 1 + ' ' Dim Excel As msExcel.Application = New msExcel.Application() + ' ' Dim VB_Module As VBComponent = Nothing + ' ' Excel.Visible = True + ' ' Excel.ScreenUpdating = True + ' ' Excel.DisplayAlerts = True + + ' ' 'Valida y/o Crea Directorio Formatos + ' ' If Not IO.Directory.Exists(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Formatos\", UsuarioActual.Empresa.Ruta)) + + ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" + ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then + ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteANC.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) + ' ' End If + + ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) + ' ' ArchivoBase.CopyTo(String.Format("{0}Formatos\Anticipos-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor), True) + ' ' Dim ArchivoTemp As New System.IO.FileInfo(String.Format("{0}Formatos\Anticipos-{1}.xlsm", UsuarioActual.Empresa.Ruta, CveProveedor)) + ' ' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) + ' ' Libro.Activate() + ' ' Dim Hoja As msExcel.Worksheet = CType(Libro.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet) + ' ' Hoja.Visible = Microsoft.Office.Interop.Excel.XlSheetVisibility.xlSheetVisible + ' ' Hoja.Activate() + + ' ' Try + + ' ' 'GENERALES + ' ' Hoja.Range("B6:B6").Value = LtlProveedor.Text + ' ' Hoja.Range("G2:G2").Value = DdlTipoCuentasCxP.SelectedItem.Text + ' ' Hoja.Range("G4:G4").Value = If(FI = "-1", "Sin Fecha", FI) + ' ' Hoja.Range("G6:G6").Value = If(FF = "-1", "Sin Fecha", FF) + + ' ' If DtANC.Rows.Count > 0 Then + ' ' VB_Module = CType(Libro.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule), VBComponent) + ' ' VB_Module.CodeModule.AddFromString(GetMacro) + + ' ' Dim CeldaI As Integer = 9 + ' ' Dim CeldaF As Integer = 9 + + ' ' 'DETALLES + ' ' For Each Row As DataRow In DtANC.Rows + ' ' Hoja.Range(String.Format("A{0}:A{0}", CeldaF)).Value = Row("SerieFolio").ToString + ' ' Hoja.Range(String.Format("C{0}:C{0}", CeldaF)).Value = Row("Descripcion").ToString + ' ' Hoja.Range(String.Format("D{0}:D{0}", CeldaF)).Value = Row("Abreviatura").ToString + ' ' Hoja.Range(String.Format("E{0}:E{0}", CeldaF)).Value = Row("Original").ToString.FormatoNumero + ' ' Hoja.Range(String.Format("F{0}:F{0}", CeldaF)).Value = Row("Abonado").ToString.FormatoNumero + ' ' Hoja.Range(String.Format("G{0}:G{0}", CeldaF)).Value = Row("Saldo").ToString.FormatoNumero + + + ' ' If Row("CveCompra").ToString = "" Then + ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = "" + ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 15 + ' ' Else + ' ' Hoja.Range(String.Format("B{0}:B{0}", CeldaF)).Value = Row("Fecha").ToString.ToDate.ToString("dd/MM/yyyy") + ' ' Hoja.Range(String.Format("A{0}:H{0}", CeldaF)).Interior.ColorIndex = 0 + ' ' End If + + ' ' If DtANC.Rows.Count > 1 AndAlso CeldaF - CeldaI < DtANC.Rows.Count - 1 Then + ' ' CeldaF = CeldaF + 1 + ' ' Libro.Application.Run("AddRow", (CeldaF - 1).ToString, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, + ' ' missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) + ' ' Libro.Save() + ' ' Libro.Application.DisplayAlerts = False + ' ' Libro.Application.ScreenUpdating = False + ' ' End If + ' ' Next + + ' ' End If + + ' ' If Not IO.Directory.Exists(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}PDF\", UsuarioActual.Empresa.Ruta)) + + ' ' 'Exportar PDF + ' ' Dim pdfFileOut As String = String.Format("{0}PDF\Anticipos-{1}.pdf", UsuarioActual.Empresa.Ruta, CveProveedor) + ' ' Dim outputFileName As Object = pdfFileOut + ' ' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF + ' ' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing) + ' ' Catch ex As Exception + ' ' Dim Msgerr As String = "" + ' ' Msgerr.Alert(String.Format("Ocurrió un error {0}", ex.Message), TipoMensaje.MsgError) + ' ' End Try + + ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Hoja) + ' ' Hoja = Nothing + ' ' Dim saveChanges As Object = msExcel.XlSaveAction.xlDoNotSaveChanges + ' ' CType(Libro, msExcel._Workbook).Close(saveChanges, missing, missing) + ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Libro) + ' ' Libro = Nothing + ' ' Excel.Quit() + ' ' System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel) + ' ' Excel = Nothing + ' ' GC.Collect() + ' ' GC.WaitForPendingFinalizers() + + ' ' ArchivoTemp.Delete() + + ' ' Dim Descargas As New StringBuilder() + ' ' Descargas.AppendFormat("
  • Reporte
  • ", UsuarioActual.CveEmpresa, CveProveedor, Now.Ticks) + ' ' Dim Msg As String = String.Format("
    El Documento se generó correctamente.


    Descargas:", Descargas.ToString) 'TipoMensaje.MsgInformacion + ' ' Msg.Alert(Msg, TipoMensaje.MsgInformacion) + ' 'Catch ex As Exception + + ' ' Dim Msg As String = "No se pudo generar el documento." + ' ' Msg.OnError(Msg, ex, "CveProveedor=" & CveProveedor) + + ' 'End Try + ' End If + + 'End Sub + + Private Function GetMacro() As String + Dim SB As New StringBuilder + SB.Append(" Sub AddRow(Row As String) " & vbLf) + SB.Append(" Rows(Row & "":"" & Row).Select " & vbLf) + SB.Append(" Selection.Copy " & vbLf) + SB.Append(" Selection.Insert Shift:=xlDown " & vbLf) + SB.Append(" End Sub ") + Return SB.ToString + End Function + + Private Sub GvOC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvOC.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + e.Row.Cells(3).Attributes.Add("data-order", e.Row.DBCampo("FechaIng").ToDate.Ticks.ToString) + e.Row.Cells(6).Attributes.Add("data-order", CType(e.Row.DBCampo("Total").ToDecimal, String)) + End If + End Sub + + Private Sub ImprimirReporteCxP(Optional Formato As String = "PDF") + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + Dim ObjMovtos As New ClsMovimientos() + + If rblreporte.SelectedValue = "cxp" Then + + 'OBTENEMOS LOS DATOS + Dim FI = If(TxtFechaInicioCXP.Text = "" Or TxtFechaInicioCXP.Text = "__/__/____", "-1", TxtFechaInicioCXP.Text) + Dim FF = If(TxtFechaFinCXP.Text = "" Or TxtFechaFinCXP.Text = "__/__/____", "-1", TxtFechaFinCXP.Text) + Dim FVI = If(txtFechaVI.Text = "" Or txtFechaVI.Text = "__/__/____", "-1", txtFechaVI.Text) + Dim FVF = If(txtFechaVF.Text = "" Or txtFechaVF.Text = "__/__/____", "-1", txtFechaVF.Text) + + Dim FechaIn As String = $" Fecha Inicio: {TxtFechaInicioCXP.Text}" + Dim FechaFn As String = $" Fecha Fin: {TxtFechaFinCXP.Text}" + If TxtFechaInicioCXP.Text = "" Then FechaIn = "" + If TxtFechaFinCXP.Text = "" Then FechaFn = "" + + Dim FechVI As String = $" Fecha Venc. Inic.: {txtFechaVI.Text}" + Dim FechVF As String = $" Fecha Venc. Final: {txtFechaVF.Text}" + If txtFechaVI.Text = "" Then FechVI = "" + If txtFechaVF.Text = "" Then FechVF = "" + Dim Proveedor As String = $" Proveedor: {GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {CveProveedor}")}" + + Dim DTCxPTempral As DataTable = Nothing + + If ObjMovtos.GetCxPProveedor(CveProveedor, FI, FF, -1, -1, -1, -1, CveMonedaFiltro, -1, RBSucursal.SelectedValue.ToEntero, -1, FVI, FVF) Then + DTCxPTempral = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, OrdenVencimiento ,FechaVencimiento")) + End If + + If DTCxPTempral IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then + Dim dr As DataRow = DTCxPTempral.Rows(0) + + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) + params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion)) + params.Add(New ReportParameter("TipoCuentas", DdlTipoCuentasCxP.SelectedItem.Text)) + params.Add(New ReportParameter("FechaInicio", FI)) + params.Add(New ReportParameter("FechaFin", FF)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) + params.Add(New ReportParameter("NombreProveedor", LtlProveedor.Text)) + params.Add(New ReportParameter("DireccionProveedor", TxtDireccion.Text)) + params.Add(New ReportParameter("ProveedorRFC", TxtRFC.Text)) + params.Add(New ReportParameter("ProveedorTelefono", TxtTelefono.Text)) + params.Add(New ReportParameter("DiasCredito", TxtPlazoCobranza.Text)) + params.Add(New ReportParameter("LimiteCredito", TxtLimiteCredito.Text)) + params.Add(New ReportParameter("SaldoDisponible", (TxtLimiteCredito.Text.ToDouble - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) + params.Add(New ReportParameter("AgrupadoPor", $"Agrupado Por: {Proveedor}{FechaIn}{FechaFn}{FechVI}{FechVF}")) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + + ImprimirPDF("Empresas/Grales/Formatos/RepProveedorCxP.rdlc", DTCxPTempral, params, "RepCxP") + Else + Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) + End If + + + ElseIf rblreporte.SelectedValue = "anc" Then + + 'OBTENEMOS LOS DATOS + Dim DtANC As DataTable + Dim FI = If(TxtFechaInicioCXP.Text = "" Or TxtFechaInicioCXP.Text = "__/__/____", "-1", TxtFechaInicioCXP.Text) + Dim FF = If(TxtFechaFinCXP.Text = "" Or TxtFechaFinCXP.Text = "__/__/____", "-1", TxtFechaFinCXP.Text) + Dim CveProveedorSucursal As Integer = RBSucursal.SelectedValue.ToEntero() + If ObjMovtos.GetAnticiposProveedor(CveProveedor, If(CveProveedorSucursal = 0, -1, CveProveedorSucursal), CveMoneda, -1, FI, FF) Then + DtANC = If(DdlTipoCuentasCxP.SelectedValue = "-1", ObjMovtos.DtResultados, ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda, FechaVencimiento")) + Else + DtANC = Nothing + End If + + If DtANC.Rows.Count > 0 Then + Dim dr As DataRow = DtANC.Rows(0) + + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) + params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion)) + params.Add(New ReportParameter("TipoCuentas", DdlTipoCuentasCxP.SelectedItem.Text)) + params.Add(New ReportParameter("NombreProveedor", LtlProveedor.Text)) + params.Add(New ReportParameter("FechaInicio", FI)) + params.Add(New ReportParameter("FechaFin", FF)) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + + ImprimirPDF("Empresas/Grales/Formatos/RepAntNC.rdlc", DtANC, params, "RepAnticiposProveedor", Formato) + Else + Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) + End If + + + End If + ObjMovtos.Dispose() + End Sub + +#End Region + +#Region "CUENTAS CONTABLES" + Private Sub ActivarRegistroAutomatico() + + If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then + Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) + + '' 17/03/2017 FUNCIONALIDADES 249,250,251 + '' Proveedores + If DdlCtaContProveedores.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(201).ToEntero > 0 Then + DdlCtaContProveedores.Width = 175 + BtnActivaRegistroProveedores.Visible = True + + '' Agrega Cuenta de la funcionalidad 249 + If UsuarioActual.Empresa.Funcionalidad(249).ToEntero > 0 Then + + If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(249).ToEntero, "-1", 1) Then + DdlCtaContProveedores.DataSource = ObjContabilidad.DtResultados + DdlCtaContProveedores.DataBind() + End If + End If + + End If + + If DdlCtaContExtranjera.SelectedValue.ToEntero <= 0 Then + + '' Agrega Cuenta de la funcionalidad 250 + If UsuarioActual.Empresa.Funcionalidad(250).ToEntero > 0 Then + + If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(250).ToEntero, "-1", 1) Then + DdlCtaContExtranjera.DataSource = ObjContabilidad.DtResultados + DdlCtaContExtranjera.DataBind() + End If + End If + + End If + + If DdlCtaContComplementaria.SelectedValue.ToEntero <= 0 Then + + '' Agrega Cuenta de la funcionalidad 251 + If UsuarioActual.Empresa.Funcionalidad(251).ToEntero > 0 Then + + If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(251).ToEntero, "-1", 1) Then + DdlCtaContComplementaria.DataSource = ObjContabilidad.DtResultados + DdlCtaContComplementaria.DataBind() + End If + End If + + End If + + '' 17/03/2017 FUNCIONALIDADES 252,253, 254 + 'Acreedores + If DdlCtaContAcreedores.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(202).ToEntero > 0 Then + DdlCtaContAcreedores.Width = 175 + BtnActivaRegistroAcreedores.Visible = True + + '' Agrega Cuenta de la funcionalidad 252 + If UsuarioActual.Empresa.Funcionalidad(252).ToEntero > 0 Then + + If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(252).ToEntero, "-1", 1) Then + DdlCtaContAcreedores.DataSource = ObjContabilidad.DtResultados + DdlCtaContAcreedores.DataBind() + End If + End If + End If + + '' Agrega Cuenta de la funcionalidad 253 + If DdlCtaContAcreedoresExtranjera.SelectedValue.ToEntero <= 0 Then + If UsuarioActual.Empresa.Funcionalidad(253).ToEntero > 0 Then + + If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(253).ToEntero, "-1", 1) Then + + DdlCtaContAcreedoresExtranjera.DataSource = ObjContabilidad.DtResultados + DdlCtaContAcreedoresExtranjera.DataBind() + End If + End If + End If + + '' Agrega Cuenta de la funcionalidad 254 + If DdlCtaContAcreedoresComplementaria.SelectedValue.ToEntero <= 0 Then + If UsuarioActual.Empresa.Funcionalidad(254).ToEntero > 0 Then + + If ObjContabilidad.GetCuentas(UsuarioActual.Empresa.Funcionalidad(254).ToEntero, "-1", 1) Then + DdlCtaContAcreedoresComplementaria.DataSource = ObjContabilidad.DtResultados + DdlCtaContAcreedoresComplementaria.DataBind() + End If + End If + End If + + + 'Documentos X Pagar + If DdlCtaContDocsXPagar.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(203).ToEntero > 0 Then + DdlCtaContDocsXPagar.Width = 175 + BtnActivaRegistroDocsXPagar.Visible = True + End If + + 'Anticipos + If DdlCtaContAnticipos.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(204).ToEntero > 0 Then + DdlCtaContAnticipos.Width = 175 + BtnActivaRegistroAnticipos.Visible = True + End If + + 'Deudores + If DdlCtaContDeudor.SelectedValue.ToEntero <= 0 And UsuarioActual.Empresa.Funcionalidad(205).ToEntero > 0 Then + DdlCtaContDeudor.Width = 175 + BtnActivaRegistroDeudores.Visible = True + End If + End If + End Sub + + Private Sub BtnActivaRegistroProveedores_Click(sender As Object, e As EventArgs) Handles BtnActivaRegistroProveedores.Click + 'Dim IdCuentaContable As Integer = -1 + 'Dim CtaCodigo As String + 'Dim TieneError = False + + 'Dim ObjContaAC As New ClsContPAQi(UsuarioActual.Empresa) + 'Dim ObjProveedores As New ClsCompProveedores() + 'ObjContaAC.IniciaTransacSQL() + 'ObjProveedores.IniciaTransacSQL() + + 'IdCuentaContable = ObjContaAC.AddSiguienteCuentaHijo(UsuarioActual.Empresa.Funcionalidad(109).ToEntero, TxtRazonSocial.Text.Trim) + 'ObjContaAC.GetCuentas(IdCuentaContable, "-1", -1) + + 'Dim dt = ObjContaAC.DtResultados + 'Dim row As DataRow = dt.Rows(dt.Rows.Count - 1) + 'CtaCodigo = CStr(row("CtaCodigo")) + + 'If IdCuentaContable > 0 Then + ' If Not ObjProveedores.VincularCuentasContables(IdCuentaContable, CtaCodigo, -1, "-1", -1, "-1", -1, "-1", -1, "-1", CveProveedor) Then + ' TieneError = True + ' End If + 'Else + ' TieneError = True + 'End If + + + 'If Not TieneError Then + ' Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) + ' DdlCtaContProveedores.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : DdlCtaContProveedores.SelectedValueExist(IdCuentaContable.ToString) + ' BtnActivaRegistroProveedores.Visible = False + ' DdlCtaContProveedores.Width = 206 + ' ObjProveedores.Commit() + ' ObjContaAC.Commit() + 'Else + ' Alert("error", TipoMensaje.MsgError) + ' ObjProveedores.RollBack() + ' ObjContaAC.RollBack() + 'End If + + + 'ObjContaAC.Dispose() + 'ObjProveedores.Dispose() + 'UPPContable.Update() + + End Sub + + Protected Sub BtnAgregaCuentaContable(ByVal sender As Object, ByVal e As EventArgs) + Dim CuentaContable = DirectCast(sender, Button).CommandArgument.ToString + Dim Button = DirectCast(sender, Button) + Select Case CuentaContable + Case "Proveedores" + AgregarCuentaContable(Button, DdlCtaContProveedores) + Case "Acreedores" + AgregarCuentaContable(Button, DdlCtaContAcreedores) + Case "DocsXPagar" + AgregarCuentaContable(Button, DdlCtaContDocsXPagar) + Case "Anticipos" + AgregarCuentaContable(Button, DdlCtaContAnticipos) + Case "Deudores" + AgregarCuentaContable(Button, DdlCtaContDeudor) + End Select + + End Sub + + Private Sub AgregarCuentaContable(btn As Button, ddl As DropDownList) + If UsuarioActual.Empresa.UsaContabilidad = True Then + Dim IdCuentaContable As Integer = -1 + Dim CtaCodigo As String = "" + Dim TieneError = False + Dim IdCtaContableProveedores As Integer = -1, IdCtaContableAcreedores As Integer = -1, IdCtaContableDocsXPagar As Integer = -1, IdCtaContableAnticipos As Integer = -1, IdCtaContableDeudor As Integer = -1 + Dim CtaCodigoProveedores As String = "-1", CtaCodigoAcreedores As String = "-1", CtaCodigoDocsXPagar As String = "-1", CtaCodigoAnticipos As String = "-1", CtaCodigoDeudor As String = "-1" + + Dim ObjContaAC As New ClsContPAQi(UsuarioActual.Empresa) + Dim ObjProveedores As New ClsCompProveedores() + ObjContaAC.IniciaTransacSQL() + ObjProveedores.IniciaTransacSQL() + + Dim CuentaPadre = -1 + + Select Case btn.CommandArgument.ToString + Case "Proveedores" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(201).ToEntero + Case "Acreedores" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(202).ToEntero + Case "DocsXPagar" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(203).ToEntero + Case "Anticipos" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(204).ToEntero + Case "Deudores" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(205).ToEntero + + End Select + + 'SI EL NOMBRE DEL PROVEEDOR ES MAYOR DE 50 LO CORTAMOS + Dim NombreCuenta = If(TxtRazonSocial.Text.Trim.Length > 50, TxtRazonSocial.Text.Trim.Substring(0, 50), TxtRazonSocial.Text.Trim) + + IdCuentaContable = ObjContaAC.AddSiguienteCuentaHijo(CuentaPadre, NombreCuenta, "D", 2) + If IdCuentaContable > 0 Then + + ObjContaAC.GetCuentas(IdCuentaContable, "-1", -1) + Dim dt = ObjContaAC.DtResultados + + If dt.Rows.Count = 1 Then + + Dim row As DataRow = dt.Rows(0) + CtaCodigo = CStr(row("CtaCodigo")) + + Select Case btn.CommandArgument.ToString + Case "Proveedores" + IdCtaContableProveedores = IdCuentaContable + CtaCodigoProveedores = CtaCodigo + Case "Acreedores" + IdCtaContableAcreedores = IdCuentaContable + CtaCodigoAcreedores = CtaCodigo + Case "DocsXPagar" + IdCtaContableDocsXPagar = IdCuentaContable + CtaCodigoDocsXPagar = CtaCodigo + Case "Anticipos" + IdCtaContableAnticipos = IdCuentaContable + CtaCodigoAnticipos = CtaCodigo + Case "Deudores" + IdCtaContableDeudor = IdCuentaContable + CtaCodigoDeudor = CtaCodigo + End Select + + + If Not ObjProveedores.VincularCuentasContables(IdCtaContableProveedores, CtaCodigoProveedores, IdCtaContableAcreedores, CtaCodigoAcreedores, IdCtaContableAnticipos, CtaCodigoAnticipos, IdCtaContableDeudor, CtaCodigoDeudor, IdCtaContableDocsXPagar, CtaCodigoDocsXPagar, CveProveedor) Then + TieneError = True + End If + + Else + TieneError = True + End If + + Else + TieneError = True + End If + + If Not TieneError Then + Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) + ddl.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : ddl.SelectedValueExist(IdCuentaContable.ToString) + btn.Visible = False + ddl.Width = 206 + ObjProveedores.Commit() + ObjContaAC.Commit() + Else + Alert("error", TipoMensaje.MsgError) + ObjProveedores.RollBack() + ObjContaAC.RollBack() + End If + + + ObjContaAC.Dispose() + ObjProveedores.Dispose() + + + ElseIf UsuarioActual.Empresa.UsaContabilidadSIG = True Then + + + Dim ObjContabilidad As New ClsContabilidad + Dim ObjProveedores As New ClsCompProveedores() + ObjContabilidad.IniciaTransacSQL() + ObjProveedores.IniciaTransacSQL() + Dim CuentaPadre = -1 + Dim IdCuentaContable = -1 + Dim CtaCodigo As String = "" + Dim TieneError = False + Dim IdCtaContableProveedores As Integer = -1, IdCtaContableAcreedores As Integer = -1, IdCtaContableDocsXPagar As Integer = -1, IdCtaContableAnticipos As Integer = -1, IdCtaContableDeudor As Integer = -1 + Dim CtaCodigoProveedores As String = "-1", CtaCodigoAcreedores As String = "-1", CtaCodigoDocsXPagar As String = "-1", CtaCodigoAnticipos As String = "-1", CtaCodigoDeudor As String = "-1" + + + Select Case btn.CommandArgument.ToString + Case "Proveedores" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(232).ToEntero + Case "Acreedores" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(235).ToEntero + Case "DocsXPagar" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(236).ToEntero + Case "Anticipos" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(238).ToEntero + Case "Deudores" + CuentaPadre = UsuarioActual.Empresa.Funcionalidad(234).ToEntero + + End Select + + Dim NombreCuenta = If(TxtRazonSocial.Text.Trim.Length > 50, TxtRazonSocial.Text.Trim.Substring(0, 50), TxtRazonSocial.Text.Trim) + IdCuentaContable = ObjContabilidad.AddSiguienteCuentaHijo(CuentaPadre, NombreCuenta, UsuarioActual.CveEmpresa) + If IdCuentaContable > 0 Then + + ObjContabilidad.GetCuentas(IdCuentaContable, "-1", -1, UsuarioActual.CveEmpresa) + Dim dt = ObjContabilidad.DtResultados + + If dt.Rows.Count = 1 Then + + Dim row As DataRow = dt.Rows(0) + CtaCodigo = CStr(row("CtaCodigo")) + + Select Case btn.CommandArgument.ToString + Case "Proveedores" + IdCtaContableProveedores = IdCuentaContable + CtaCodigoProveedores = CtaCodigo + Case "Acreedores" + IdCtaContableAcreedores = IdCuentaContable + CtaCodigoAcreedores = CtaCodigo + Case "DocsXPagar" + IdCtaContableDocsXPagar = IdCuentaContable + CtaCodigoDocsXPagar = CtaCodigo + Case "Anticipos" + IdCtaContableAnticipos = IdCuentaContable + CtaCodigoAnticipos = CtaCodigo + Case "Deudores" + IdCtaContableDeudor = IdCuentaContable + CtaCodigoDeudor = CtaCodigo + End Select + + + If Not ObjProveedores.VincularCuentasContables(IdCtaContableProveedores, CtaCodigoProveedores, IdCtaContableAcreedores, CtaCodigoAcreedores, IdCtaContableAnticipos, CtaCodigoAnticipos, IdCtaContableDeudor, CtaCodigoDeudor, IdCtaContableDocsXPagar, CtaCodigoDocsXPagar, CveProveedor) Then + TieneError = True + End If + Else + TieneError = True + End If + Else + TieneError = True + End If + + + If Not TieneError Then + Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) + ddl.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : ddl.SelectedValueExist(IdCuentaContable.ToString) + btn.Visible = False + ddl.Width = 206 + ObjProveedores.Commit() + ObjContabilidad.Commit() + Else + Alert("Esta cuenta no puede tener Sub Cuentas.", TipoMensaje.MsgError) + ObjProveedores.RollBack() + ObjContabilidad.RollBack() + End If + + ObjProveedores.Dispose() + ObjContabilidad.Dispose() + End If + + UPPContable.Update() + End Sub +#End Region + + Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click + If TxtExcel.getfiles().Archivos.Count > 0 Then + Dim file As Archivo = TxtExcel.getfiles().Archivos(0) + Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch + Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") + CargarArchivo(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 CargarArchivo(Ruta As String, FileName As String, Tipo As String) + Dim dt As New DataTable + Dim Conexion As Odbc.OdbcConnection = Nothing + Dim ErrorArchivo = False + Try + Select Case Tipo + Case "CSV" + Conexion = New Odbc.OdbcConnection("Driver={Microsoft Access Text Driver (*.txt, *.csv)};Dbq=" + Ruta + ";Extensions=asc,csv,tab,txt;") + Conexion.Open() + Dim cmd = Conexion.CreateCommand() + cmd.CommandType = CommandType.Text + cmd.CommandText = $"SELECT * FROM [{FileName}]" + Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) + DataAdapter.Fill(dt) + Case "EXCEL" + Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") + Conexion.Open() + Dim cmd = Conexion.CreateCommand() + cmd.CommandType = CommandType.Text + cmd.CommandText = "SELECT * FROM [Hoja1$]" + Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) + DataAdapter.Fill(dt) + Case Else + Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) + Exit Sub + End Select + Catch ex As Exception + ErrorArchivo = True + OnError("Ocurrio un error al leer el archivo
    " & ex.Message, ex) + End Try + Conexion.Close() + If Not ErrorArchivo Then + If Not dt.Columns(0).ColumnName = "SerieFolio" Then + Alert("El nombre de la primera columna debe ser 'SerieFolio'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(1).ColumnName = "Fecha" Then + Alert("El nombre de la segunda columna debe ser 'Fecha'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(2).ColumnName = "Importe" Then + Alert("El nombre de la tercera columna debe ser 'Importe'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(3).ColumnName = "Saldo" Then + Alert("El nombre de la cuarta columna debe ser 'Saldo'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + Dim XmlStream As New System.IO.MemoryStream + dt.TableName = "Datos" + dt = dt.FiltraParametros("SerieFolio <> ''") 'excluyo lo que está vacío + Dim ObjProveedores As New ClsCompProveedores + Dim writer As New System.IO.StringWriter + dt.WriteXml(writer) + If ObjProveedores.GetProveedoresConciliacion(CveProveedor, DataTableToXml(writer)) Then + 'ObjProveedores.DtResultados.ExportToExcel("Resultados") + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("NombreProveedor", TxtRazonSocial.Text)) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + ImprimirPDF("Empresas/Grales/Formatos/ProveedorConciliacion.rdlc", ObjProveedores.DtResultados, params, String.Format("ProveedorConciliacion-{0}", Now.ToDateTime.ToShortDateString)) + + End If + ObjProveedores.Dispose() + End If + End Sub + + Private Function DataTableToXml(ByVal stream As System.IO.TextWriter) As String + Return stream.ToString() + End Function + + Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click + Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoProveedores.xlsx" + Dim 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 + + Private Sub LnkGenerarReporte_Click(sender As Object, e As EventArgs) Handles LnkGenerarReporte.Click + TxtFechaInicioCXP.Text = "" + TxtFechaFinCXP.Text = "" + txtFechaVI.Text = "" + txtFechaVF.Text = "" + rblreporte.SelectedValue = "cxp" + UpAddReporte.Update() + RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddReporte")) + End Sub + + Private Sub LnkParametros_Click(sender As Object, e As EventArgs) Handles LnkParametros.Click + TxtLimiteCredito.Text = LblLimiteCredito.Text + TxtPlazoCobranza.Text = LblPlazoCobranza.Text + UpParametros.Update() + RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddParametros")) + End Sub + + Private Sub BtnCancelarParametros_Click(sender As Object, e As EventArgs) Handles BtnCancelarParametros.Click + TxtLimiteCredito.Text = LblLimiteCredito.Text.FormatoNumero + TxtPlazoCobranza.Text = LblPlazoCobranza.Text + UpParametros.Update() + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros")) + End Sub + + Private Sub LnkAddParametros_Click(sender As Object, e As EventArgs) Handles LnkAddParametros.Click + LblLimiteCredito.Text = TxtLimiteCredito.Text.FormatoNumero + LblPlazoCobranza.Text = TxtPlazoCobranza.Text + If LblLimiteCredito.Text.ToDouble > 0 Then + TdSaldo.Visible = True + TdSaldo2.Visible = True + LblSaldo.Text = CType(LblLimiteCredito.Text.ToDouble - LBRCPTotal.Text.ToDouble, String).FormatoNumero + Else + TdSaldo.Visible = False + TdSaldo2.Visible = False + End If + UPPCxP.Update() + UpParametros.Update() + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros")) + End Sub + + Private Sub LnkCuentasBancarias_Click(sender As Object, e As EventArgs) Handles LnkCuentasBancarias.Click + Modalidad = "A" + TxtNombreBanco.Text = "" + LbAgregarCuentaBanco.Text = "Agregar" + TxtNumeroSucursal.Text = "" + TxtNumeroCuenta.Text = "" + TxtCLABE.Text = "" + TxtSWIFT.Text = "" + TxtPlaza.Text = "" + TxtConvenioCIE.Text = "" + TxtReferencia.Text = "" + TxtRefCrediProveedor.Text = "" + DdlMoneda.SelectedIndex = 0 + TxtCorreoCuenta.Text = "" + ChkEstatus.Checked = True + divestatus.Visible = False + UpAddBancos.Update() + RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddCuentasBancarias")) + End Sub + + Public Sub Edit_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + TxtNombreBanco.Text = GvRow.DataKey("BancoNombre") + Modalidad = "U" + LbAgregarCuentaBanco.Text = "Actualizar" + CveCuentaBancaria = GvRow.RowIndex + TxtNumeroSucursal.Text = GvRow.DataKey("Sucursal") + TxtNumeroCuenta.Text = GvRow.DataKey("Cuenta") + TxtCLABE.Text = GvRow.DataKey("CLABE") + TxtSWIFT.Text = GvRow.DataKey("SWIFT") + TxtPlaza.Text = GvRow.DataKey("Plaza") + TxtConvenioCIE.Text = GvRow.DataKey("CIE") + TxtReferencia.Text = GvRow.DataKey("Referencia") + TxtRefCrediProveedor.Text = GvRow.DataKey("RefCrediProveedor") + TxtCorreoCuenta.Text = GvRow.DataKey("Correo") + DdlMoneda.SelectedValueExist(GvRow.DataKey("CveMoneda")) + ChkEstatus.Checked = CBool(GvRow.DataKey("Estatus")) + divestatus.Visible = True + UpAddBancos.Update() + RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddCuentasBancarias")) + End Sub + +#Region " C O N T A C T O S P R O V E E D O R " + + Protected Sub CreaTempDTProveedoresContactos() + TempDTProveedoresContactos = New DataTable() + + TempDTProveedoresContactos.Columns.Add("Nombre", GetType(String)) + TempDTProveedoresContactos.Columns.Add("Puesto", GetType(String)) + TempDTProveedoresContactos.Columns.Add("Telefono", GetType(String)) + TempDTProveedoresContactos.Columns.Add("Extension", GetType(String)) + TempDTProveedoresContactos.Columns.Add("Celular", GetType(String)) + TempDTProveedoresContactos.Columns.Add("Correo", GetType(String)) + TempDTProveedoresContactos.Columns.Add("Skype", GetType(String)) + + TempDTProveedoresContactos.Columns.Add("CveProveedorContacto", GetType(String)) + TempDTProveedoresContactos.Columns.Add("CveProveedor", GetType(String)) + TempDTProveedoresContactos.Columns.Add("CveProveedorSucursal", GetType(String)) + TempDTProveedoresContactos.Columns.Add("ProveedorSucursal", GetType(String)) + + GvContactoProveedor.DataSource = TempDTProveedoresContactos + GvContactoProveedor.DataBind() + + UpContactosProveedor.Update() + End Sub + + + Protected Sub CreaTempDTProveedoresContactosSucursales() + TempDTProveedoresContactosSucursal = New DataTable() + + TempDTProveedoresContactosSucursal.Columns.Add("Nombre", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("Puesto", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("Telefono", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("Extension", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("Celular", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("Correo", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("Skype", GetType(String)) + + TempDTProveedoresContactosSucursal.Columns.Add("CveProveedorContacto", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("CveProveedor", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("CveProveedorSucursal", GetType(String)) + TempDTProveedoresContactosSucursal.Columns.Add("ProveedorSucursal", GetType(String)) + + TempDTProveedoresContactosSucursal.Columns.Add("CveSucursalTemp", GetType(String)) 'Para controlar las sucursales no insertadas en BD + + GVContactosProveedorSucursal.DataSource = TempDTProveedoresContactosSucursal + GVContactosProveedorSucursal.DataBind() + + UpContactosProveedorSucursal.Update() + End Sub + + Protected Sub limpiarCamposModalAgregarContacto() + TxtNombreContactoProveedor.Text = "" + TxtPuestoContactoProveedor.Text = "" + TxtTelefonoContactoProveedor.Text = "" + TxtExtContactoProveedor.Text = "" + TxtCelularContactoProveedor.Text = "" + TxtCorreoContactoProveedor.Text = "" + TxtSkypeContactoProveedor.Text = "" + UpAgregarContatoProveedor.Update() + End Sub + + 'CONTACTOS GENERALES DEL PROVEEDOR + Protected Sub BtnAgregarContactoProveedor_Click(sender As Object, e As EventArgs) + CveProveedorContacto = -1 + CveProveedorSucursal = -1 + + EsContactoSucursal = 0 + EsEditar = 0 + + limpiarCamposModalAgregarContacto() + Me.RegistraScript("$('#DivAgregarContactoProveedor').modal();") + End Sub + + Protected Sub imgEditarContactoProv_Click(sender As Object, e As EventArgs) + + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + CveProveedorContacto = GvRow.DataKey("CveProveedorContacto").ToEntero() + CveProveedorSucursal = GvRow.DataKey("CveProveedorSucursal").ToEntero() + + EsContactoSucursal = 0 + EsEditar = 1 + IndexDTContacto = GvRow.RowIndex + + TxtNombreContactoProveedor.Text = GvRow.DataKey("Nombre").ToString + TxtPuestoContactoProveedor.Text = GvRow.DataKey("Puesto").ToString + TxtTelefonoContactoProveedor.Text = GvRow.DataKey("Telefono").ToString + TxtExtContactoProveedor.Text = GvRow.DataKey("Extension").ToString + TxtCelularContactoProveedor.Text = GvRow.DataKey("Celular").ToString + TxtCorreoContactoProveedor.Text = GvRow.DataKey("Correo").ToString + TxtSkypeContactoProveedor.Text = GvRow.DataKey("Skype").ToString + + UpAgregarContatoProveedor.Update() + + Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('show');") + + End Sub + + Protected Sub GvContactoProveedor_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) + If CveProveedor > 0 Then + + CveProveedorContacto = GvContactoProveedor.DataKeys(e.RowIndex).Value.ToString.ToEntero + + Dim ObjProveedores As ClsCompProveedores = New ClsCompProveedores + + If ObjProveedores.RemoveProveedorContacto(CveProveedorContacto) Then + Alert("El Contacto se Elimino correctamente.", TipoMensaje.MsgInformacion) + End If + + CargaContactos(ObjProveedores) + ObjProveedores.Dispose() + + CargaGVContactosSucursal() + Else + + TempDTProveedoresContactos.Rows.RemoveAt(e.RowIndex) + GvContactoProveedor.DataSource = TempDTProveedoresContactos + GvContactoProveedor.DataBind() + UpContactosProveedor.Update() + End If + + End Sub + + 'CONTACTOS DE LA SUCURSAL + Protected Sub CargaGVContactosSucursal() + If CveProveedor > 0 And CveProveedorSucursal > 0 Then + ' TempDTProveedoresContactosSucursal.Columns.Add("CveSucursalTemp", GetType(String)) + GVContactosProveedorSucursal.DataSource = TempDTProveedoresContactosSucursal.FiltraParametros("CveProveedorSucursal = " & CveProveedorSucursal) + Else + GVContactosProveedorSucursal.DataSource = TempDTProveedoresContactosSucursal + End If + + GVContactosProveedorSucursal.DataBind() + UpContactosProveedorSucursal.Update() + End Sub + + Protected Sub BtnAgregarContactoSucursal_Click(sender As Object, e As EventArgs) + EsContactoSucursal = 1 + EsEditar = 0 + limpiarCamposModalAgregarContacto() + Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('show');") + End Sub + + Protected Sub imgEditarContactoProvSuc_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + + CveProveedorContacto = GvRow.DataKey("CveProveedorContacto").ToEntero() + CveProveedorSucursal = GvRow.DataKey("CveProveedorSucursal").ToEntero() + CveTempSucursal = GvRow.DataKey("CveSucursalTemp").ToEntero() + + TxtNombreContactoProveedor.Text = GvRow.DataKey("Nombre").ToString + TxtPuestoContactoProveedor.Text = GvRow.DataKey("Puesto").ToString + TxtTelefonoContactoProveedor.Text = GvRow.DataKey("Telefono").ToString + TxtExtContactoProveedor.Text = GvRow.DataKey("Extension").ToString + TxtCelularContactoProveedor.Text = GvRow.DataKey("Celular").ToString + TxtCorreoContactoProveedor.Text = GvRow.DataKey("Correo").ToString + TxtSkypeContactoProveedor.Text = GvRow.DataKey("Skype").ToString + + EsContactoSucursal = 1 + EsEditar = 1 + IndexDTContacto = GvRow.RowIndex + + UpAgregarContatoProveedor.Update() + + Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('show');") + End Sub + + Protected Sub GVContactosProveedorSucursal_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) + + If CveProveedor > 0 And CveProveedorSucursal > 0 Then + + CveProveedorContacto = GVContactosProveedorSucursal.DataKeys(e.RowIndex).Value.ToString.ToEntero 'GvRow.DataKey("CveProveedorContacto").ToEntero() + + Dim ObjProveedores As ClsCompProveedores = New ClsCompProveedores + + If ObjProveedores.RemoveProveedorContacto(CveProveedorContacto) Then + Alert("El Contacto de la Sucursal se Elimino correctamente.", TipoMensaje.MsgInformacion) + End If + + CargaContactos(ObjProveedores) + ObjProveedores.Dispose() + + CargaGVContactosSucursal() + Else + TempDTProveedoresContactosSucursal.Rows.RemoveAt(e.RowIndex) + CargaGVContactosSucursal() + End If + + End Sub + + Protected Sub GVContactosProveedorSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs) + 'Oculta las filas del grid que no perenecen a la sucursal seleccionada + If e.Row.RowType = DataControlRowType.DataRow Then + ' Si la sucursal ya esta en BD busca por su Cve, si no busca por cve temp + If CveProveedorSucursal > 0 Then + If e.Row.DBCampo("CveProveedorSucursal") = CveProveedorSucursal.ToString() Then + e.Row.Visible = True + Else + e.Row.Visible = False + End If + Else + If e.Row.DBCampo("CveSucursalTemp") = CveTempSucursal.ToString() Then + e.Row.Visible = True + Else + e.Row.Visible = False + End If + End If + End If + End Sub + + Protected Sub BtnGuardarContactoProveedor_Click(sender As Object, e As EventArgs) + + Dim Nombre As String = TxtNombreContactoProveedor.Text + Dim Puesto As String = TxtPuestoContactoProveedor.Text + Dim Telefono As String = TxtTelefonoContactoProveedor.Text + Dim Extension As String = TxtExtContactoProveedor.Text + Dim Celular As String = TxtCelularContactoProveedor.Text + Dim Correo As String = TxtCorreoContactoProveedor.Text + Dim Skype As String = TxtSkypeContactoProveedor.Text + + 'SI EL PROVEEDOR NO TIENE CVEPROVEEDOR GUARDA EN TABLA TEMPORAL + If CveProveedor = -1 Then + Dim dr As DataRow + + If EsContactoSucursal = 0 Then + dr = TempDTProveedoresContactos.NewRow() + Else + dr = TempDTProveedoresContactosSucursal.NewRow() + End If + + dr("Nombre") = Nombre + dr("Puesto") = Puesto + dr("Telefono") = Telefono + dr("Extension") = Extension + dr("Celular") = Celular + dr("Correo") = Correo + dr("Skype") = Skype + + dr("CveProveedorContacto") = CveProveedorContacto.ToString + 'Si es contacto General del Proveedor solo agrega + If EsContactoSucursal = 0 Then + dr("CveProveedorSucursal") = "-1" + + If EsEditar = 1 Then + TempDTProveedoresContactos.Rows.RemoveAt(IndexDTContacto) + End If + + TempDTProveedoresContactos.Rows.Add(dr) + + GvContactoProveedor.DataSource = TempDTProveedoresContactos + GvContactoProveedor.DataBind() + + UpContactosProveedor.Update() + Else + 'obtengo la cve Sucursal + dr("CveProveedorSucursal") = CveProveedorSucursal + 'si no existe en BD asigna la Cve Temp + If CveProveedorSucursal = -1 Then + dr("CveSucursalTemp") = CveTempSucursal + End If + + 'If CveProveedorContacto.ToString <> "-1" Then + If EsEditar = 1 Then + TempDTProveedoresContactosSucursal.Rows.RemoveAt(IndexDTContacto) + End If + ' End If + TempDTProveedoresContactosSucursal.Rows.Add(dr) + CargaGVContactosSucursal() + End If + + Else + Dim ObjProveedores As ClsCompProveedores = New ClsCompProveedores + CveProveedorSucursal = IIf(CveProveedorSucursal = 0, -1, CveProveedorSucursal).ToString.ToEntero + + If EsEditar = 1 Then + 'ACTUALIZAMOS CONTACTO + If ObjProveedores.UpdateProveedorContacto(CveProveedorContacto, CveProveedor, CveProveedorSucursal, Nombre, Puesto, Telefono, Extension, Celular, Correo, Skype) Then + Alert("El Contacto se Actualizo correctamente.", TipoMensaje.MsgInformacion) + End If + Else + 'CREAMOS CONTACTO + If ObjProveedores.AddProveedorContacto(CveProveedor, CveProveedorSucursal, Nombre, Puesto, Telefono, Extension, Celular, Correo, Skype) Then + Alert("El Contacto se Guardo correctamente.", TipoMensaje.MsgInformacion) + End If + End If + + CargaContactos(ObjProveedores) + ObjProveedores.Dispose() + + CargaGVContactosSucursal() + + End If + + Me.RegistraScript("$('#DivAgregarContactoProveedor').modal('hide');") + limpiarCamposModalAgregarContacto() + + End Sub + +#End Region + +#Region "USUARIOS PLATAFORMA PROVEEDOR - 7 " + Protected Sub CargaUsuariosPortalProveedor() + Dim objUsuario As ClsSisUsuarios = New ClsSisUsuarios + If objUsuario.GetUsuariosPortal(-1, -1, CveProveedor) Then + GvUsuarios.DataSource = objUsuario.DtResultados + GvUsuarios.DataBind() + End If + objUsuario.Dispose() + End Sub + Public Sub CargaGlobal() + Dim ObjUsuarios As New ClsSisUsuarios + If ObjUsuarios.GetUsuariosEmpresas(-1) Then + Application("GlobalDTUsuarios") = ObjUsuarios.DtResultados + End If + ObjUsuarios.Dispose() + End Sub + + Protected Sub GvUsuarios_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvUsuarios.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + e.Row.FCLinkButton("imgE").Attributes.Add("onclick", $"javascript:AbrirVentana('/Sistemas/PopUpAddUsuario.aspx?CveUsuario={e.Row.DBCampo("CveUsuario").ToString}&CveProveedor={CveProveedor}', 801, 701);") + End If + End Sub +#End Region + +#Region "MODAL GRAFICA/PEDIDOS" + + Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) + If CargaDatatables() Then + CargaGrafica() + End If + End Sub + + Private Function CargaDatatables() As Boolean + Dim ObjProveedores As New ClsCompProveedores + Dim ObjFinanzas As New ClsFinanzas + If ObjProveedores.GetProveedorVencido(CveProveedor, UsuarioActual.CveEmpresa, TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate) Then + DtVencido = ObjProveedores.DtResultados + End If + + If ObjFinanzas.GetRotacionCarteraProveedores(TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate, UsuarioActual.CveEmpresa, 1, "-1", " -1", CveProveedor, Now) Then + DtRotacion = ObjFinanzas.DtResultados + End If + + If ObjProveedores.GetProveedorSaldoMensual(CveProveedor, UsuarioActual.CveEmpresa, TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate) Then + DtSaldoMensual = ObjProveedores.DtResultados + End If + + If ObjProveedores.GetClienteComportamientoCompraMensual(CveProveedor, UsuarioActual.CveEmpresa, TxtFechaICredito.Text.ToDate, TxtFechaFCredito.Text.ToDate) Then + DtComportamientoCompras = ObjProveedores.DtResultados + End If + + ObjProveedores.Dispose() + ObjFinanzas.Dispose() + + If Not DtVencido.Rows.Count > 0 Then + Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) + Return False + End If + + Return True + End Function + + Private Sub CargaGrafica() + Dim FactVencida As Boolean = False + Dim Saldo As Double = DtVencido.SUM("Saldo") + Dim LimiteCredito As Double = DtVencido.Rows(0)("LimiteCredito").ToString.ToDouble + + Dim Dt As New DataTable() + Dt.Columns.Add("value") + For Each Dr As DataRow In DtVencido.Rows + Dim Row As DataRow = Nothing + Row = Dt.NewRow() + Row("value") = Dr("DiasVencidos").ToString + Dt.Rows.Add(Row) + If Dr("DiasVencidos").ToString.ToEntero > 0 And Dr("Saldo").ToString.ToDouble > 0 Then + FactVencida = True + End If + Next + + LblVencido.Text = DtVencido.SUM("Total", "DiasVencidos > 0").FormatoNumero + LblPorVencer.Text = DtVencido.SUM("Total", "DiasVencidos <= 0").FormatoNumero + + Dim query = From s In Dt.AsEnumerable() Select New With {.date = "", .value = s("value").ToString()} + Dim json = Newtonsoft.Json.JsonConvert.SerializeObject(query) + RegistraScript($"CargaGraficaVencido({json})", "22") + + Dim Dt2 As New DataTable() + Dt2.Columns.Add("limite") + Dt2.Columns.Add("saldo") + Dim Row2 As DataRow = Nothing + Row2 = Dt2.NewRow() + Row2("limite") = LimiteCredito + Row2("saldo") = Saldo + Dt2.Rows.Add(Row2) + Dim query2 = From s In Dt2.AsEnumerable() Select New With {.year = "", .limite = s("limite").ToString(), .saldo = s("saldo").ToString()} + Dim json2 = Newtonsoft.Json.JsonConvert.SerializeObject(query2) + + RegistraScript($"CargaGraficaLimiteCredito({json2})", "33") + + If DtRotacion.Rows.Count > 0 Then + LblComprasModal.Text = DtRotacion.Rows(0)("Compras").ToString.FormatoNumero + LblPagadoModal.Text = DtRotacion.Rows(0)("Pagado").ToString.FormatoNumero + LblRotacionModal.Text = DtRotacion.Rows(0)("Rotacion").ToString.FormatoNumero + LblDiasModal.Text = DtRotacion.Rows(0)("Dias").ToString.FormatoNumero + End If + + If FactVencida Or (Saldo > LimiteCredito) Then + LblEstatusModal.Text = "Vencido" + LblEstatusModal.ForeColor = Drawing.Color.Red + Else + LblEstatusModal.Text = "Al Corriente" + LblEstatusModal.ForeColor = Drawing.Color.Green + End If + + Dim Dt3 As New DataTable() + Dt3.Columns.Add("mes") + + Dim Dt4 As New DataTable() + Dt4.Columns.Add("balloonText") + Dt4.Columns.Add("bullet") + Dt4.Columns.Add("title") + Dt4.Columns.Add("valueField") + Dt4.Columns.Add("fillAlphas") + Dt4.Columns.Add("hidden") + + + Dim Cont As Integer = 1 + + For Each Dr As DataRow In DtComportamientoCompras.Rows + Dt3.Columns.Add(Dr("Ano").ToString) + Dim Row4 As DataRow = Nothing + Row4 = Dt4.NewRow() + Row4("balloonText") = "Compras [[category]]: [[value]]" + Row4("bullet") = "round" + Row4("title") = Dr("Ano").ToString + Row4("valueField") = Dr("Ano").ToString + Row4("fillAlphas") = 0 + Row4("hidden") = If(Cont > DtComportamientoCompras.Rows.Count - 3, False, True) + Dt4.Rows.Add(Row4) + Cont += 1 + Next + + Dim RowEnero As DataRow = Nothing + RowEnero = Dt3.NewRow() + Dim RowFebrero As DataRow = Nothing + RowFebrero = Dt3.NewRow() + Dim RowMarzo As DataRow = Nothing + RowMarzo = Dt3.NewRow() + Dim RowAbril As DataRow = Nothing + RowAbril = Dt3.NewRow() + Dim RowMayo As DataRow = Nothing + RowMayo = Dt3.NewRow() + Dim RowJunio As DataRow = Nothing + RowJunio = Dt3.NewRow() + Dim RowJulio As DataRow = Nothing + RowJulio = Dt3.NewRow() + Dim RowAgosto As DataRow = Nothing + RowAgosto = Dt3.NewRow() + Dim RowSeptiembre As DataRow = Nothing + RowSeptiembre = Dt3.NewRow() + Dim RowOctubre As DataRow = Nothing + RowOctubre = Dt3.NewRow() + Dim RowNoviembre As DataRow = Nothing + RowNoviembre = Dt3.NewRow() + Dim RowDiciembre As DataRow = Nothing + RowDiciembre = Dt3.NewRow() + For Each Dr As DataRow In DtComportamientoCompras.Rows + RowEnero(Dr("Ano").ToString) = Dr("Enero").ToString + RowEnero("mes") = "Enero" + RowFebrero(Dr("Ano").ToString) = Dr("Febrero").ToString + RowFebrero("mes") = "Febrero" + RowMarzo(Dr("Ano").ToString) = Dr("Marzo").ToString + RowMarzo("mes") = "Marzo" + RowAbril(Dr("Ano").ToString) = Dr("Abril").ToString + RowAbril("mes") = "Abril" + RowMayo(Dr("Ano").ToString) = Dr("Mayo").ToString + RowMayo("mes") = "Mayo" + RowJunio(Dr("Ano").ToString) = Dr("Junio").ToString + RowJunio("mes") = "Junio" + RowJulio(Dr("Ano").ToString) = Dr("Julio").ToString + RowJulio("mes") = "Julio" + RowAgosto(Dr("Ano").ToString) = Dr("Agosto").ToString + RowAgosto("mes") = "Agosto" + RowSeptiembre(Dr("Ano").ToString) = Dr("Septiembre").ToString + RowSeptiembre("mes") = "Septiembre" + RowOctubre(Dr("Ano").ToString) = Dr("Octubre").ToString + RowOctubre("mes") = "Octubre" + RowNoviembre(Dr("Ano").ToString) = Dr("Noviembre").ToString + RowNoviembre("mes") = "Noviembre" + RowDiciembre(Dr("Ano").ToString) = Dr("Diciembre").ToString + RowDiciembre("mes") = "Diciembre" + Next + Dt3.Rows.Add(RowEnero) + Dt3.Rows.Add(RowFebrero) + Dt3.Rows.Add(RowMarzo) + Dt3.Rows.Add(RowAbril) + Dt3.Rows.Add(RowMayo) + Dt3.Rows.Add(RowJunio) + Dt3.Rows.Add(RowJulio) + Dt3.Rows.Add(RowAgosto) + Dt3.Rows.Add(RowSeptiembre) + Dt3.Rows.Add(RowOctubre) + Dt3.Rows.Add(RowNoviembre) + Dt3.Rows.Add(RowDiciembre) + + RegistraScript($"CargaGraficaComportamientoCompras({Dt3.ToJson},{Dt4.ToJson.Replace($"{Chr(34)}True{Chr(34)}", "true").Replace($"{Chr(34)}False{Chr(34)}", "false")})", "44") + + Dim Dt5 As New DataTable() + Dt5.Columns.Add("mes") + + Dim Dt6 As New DataTable() + Dt6.Columns.Add("balloonText") + Dt6.Columns.Add("bullet") + Dt6.Columns.Add("title") + Dt6.Columns.Add("valueField") + Dt6.Columns.Add("fillAlphas") + Dt6.Columns.Add("hidden") + + Cont = 1 + For Each Dr As DataRow In DtSaldoMensual.Rows + Dt5.Columns.Add(Dr("Ano").ToString) + Dim Row6 As DataRow = Nothing + Row6 = Dt6.NewRow() + Row6("balloonText") = "Saldo [[category]]: [[value]]" + Row6("bullet") = "round" + Row6("title") = Dr("Ano").ToString + Row6("valueField") = Dr("Ano").ToString + Row6("fillAlphas") = 0 + Row6("hidden") = If(Cont > DtSaldoMensual.Rows.Count - 3, False, True) + Dt6.Rows.Add(Row6) + Cont += 1 + Next + RowEnero = Dt5.NewRow() + RowFebrero = Dt5.NewRow() + RowMarzo = Dt5.NewRow() + RowAbril = Dt5.NewRow() + RowMayo = Dt5.NewRow() + RowJunio = Dt5.NewRow() + RowJulio = Dt5.NewRow() + RowAgosto = Dt5.NewRow() + RowSeptiembre = Dt5.NewRow() + RowOctubre = Dt5.NewRow() + RowNoviembre = Dt5.NewRow() + RowDiciembre = Dt5.NewRow() + For Each Dr As DataRow In DtSaldoMensual.Rows + RowEnero(Dr("Ano").ToString) = Dr("Enero").ToString + RowEnero("mes") = "Enero" + RowFebrero(Dr("Ano").ToString) = Dr("Febrero").ToString + RowFebrero("mes") = "Febrero" + RowMarzo(Dr("Ano").ToString) = Dr("Marzo").ToString + RowMarzo("mes") = "Marzo" + RowAbril(Dr("Ano").ToString) = Dr("Abril").ToString + RowAbril("mes") = "Abril" + RowMayo(Dr("Ano").ToString) = Dr("Mayo").ToString + RowMayo("mes") = "Mayo" + RowJunio(Dr("Ano").ToString) = Dr("Junio").ToString + RowJunio("mes") = "Junio" + RowJulio(Dr("Ano").ToString) = Dr("Julio").ToString + RowJulio("mes") = "Julio" + RowAgosto(Dr("Ano").ToString) = Dr("Agosto").ToString + RowAgosto("mes") = "Agosto" + RowSeptiembre(Dr("Ano").ToString) = Dr("Septiembre").ToString + RowSeptiembre("mes") = "Septiembre" + RowOctubre(Dr("Ano").ToString) = Dr("Octubre").ToString + RowOctubre("mes") = "Octubre" + RowNoviembre(Dr("Ano").ToString) = Dr("Noviembre").ToString + RowNoviembre("mes") = "Noviembre" + RowDiciembre(Dr("Ano").ToString) = Dr("Diciembre").ToString + RowDiciembre("mes") = "Diciembre" + Next + Dt5.Rows.Add(RowEnero) + Dt5.Rows.Add(RowFebrero) + Dt5.Rows.Add(RowMarzo) + Dt5.Rows.Add(RowAbril) + Dt5.Rows.Add(RowMayo) + Dt5.Rows.Add(RowJunio) + Dt5.Rows.Add(RowJulio) + Dt5.Rows.Add(RowAgosto) + Dt5.Rows.Add(RowSeptiembre) + Dt5.Rows.Add(RowOctubre) + Dt5.Rows.Add(RowNoviembre) + Dt5.Rows.Add(RowDiciembre) + + + RegistraScript($"CargaGraficaCompratamientoSaldoMensual({Dt5.ToJson},{Dt6.ToJson.Replace($"{Chr(34)}True{Chr(34)}", "true").Replace($"{Chr(34)}False{Chr(34)}", "false")})", "55") + + UPModalProd.Update() + End Sub + + Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) + If CargaDatatables() Then + RegistraScript("$('#DivModalGrafica').modal('show')") + CargaGrafica() + End If + End Sub + +#End Region + +#Region "TAB - COMPORTAMIENTO DE COMPRAS" + + Private Sub CargaGrupo() + DdlGrupo.Items.Insert(0, New ListItem("Categoria", "3")) + DdlGrupo.Items.Insert(1, New ListItem("Clasificación", "4")) + DdlGrupo.Items.Insert(2, New ListItem("Productos-Servicios", "5")) + DdlGrupo.Items.Insert(3, New ListItem("Año", "6")) + DdlGrupo.Items.Insert(4, New ListItem("Mes", "7")) + DdlGrupo.Items.Insert(5, New ListItem("Año/Mes", "8")) + DdlGrupo.Items.Insert(6, New ListItem("Fecha", "9")) + DdlGrupo.Items.Insert(7, New ListItem("Proveedor", "10")) + DdlGrupo.Items.Insert(8, New ListItem("Usuario", "11")) + DdlGrupo.Items.Insert(9, New ListItem("Estatus Fact.", "12")) + DdlGrupo.DataBind() + DdlGrupo.SelectedValueExist("8") + End Sub + Private Sub CargaTipoCentroCosto() + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then + DdlSubProyectoFiltro.Items.Clear() + DivProyecto.Visible = False + LblProyecto.Visible = False + LblSubProyecto.InnerText = "Sucursal:" + + DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) + DdlSubProyectoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + DdlSubProyectoFiltro.DataBind() + + DdlGrupo.Items.Insert(0, New ListItem("Sucursal", "2")) + DdlGrupo.DataBind() + + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + DdlSubProyectoFiltro.Items.Clear() + DivProyecto.Visible = False + LblProyecto.Visible = False + LblSubProyecto.InnerText = "Proyecto:" + + DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) + DdlSubProyectoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + DdlSubProyectoFiltro.DataBind() + + DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "2")) + DdlGrupo.DataBind() + + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then + DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "1")) + DdlGrupo.Items.Insert(1, New ListItem("SubProyecto", "2")) + DdlGrupo.DataBind() + + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then + LblProyecto.InnerText = "Sucursal:" + LblSubProyecto.InnerText = "Proyecto:" + + DdlGrupo.Items.Insert(0, New ListItem("Sucursal", "1")) + DdlGrupo.Items.Insert(1, New ListItem("Proyecto", "2")) + DdlGrupo.DataBind() + + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then + LblProyecto.InnerText = "Proyecto:" + LblSubProyecto.InnerText = "Sucursal:" + + DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "1")) + DdlGrupo.Items.Insert(1, New ListItem("Sucursal", "2")) + DdlGrupo.DataBind() + End If + End Sub + + Private Sub CargaFiltros() + 'Cargo Proyectos + DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) + DdlProyecto.DataBind() + + 'Cargo Clasificaciones + DdlClasificacionFilto.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) + DdlClasificacionFilto.DataBind() + + 'CargaSubProyectos + DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) + DdlSubProyectoFiltro.DataBind() + + 'CargaUsuarios + DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + DdlUsuario.DataBind() + + 'Carga Productos + DdlPSFiltro.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlPSFiltro.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionFilto.SelectedValue) + DdlPSFiltro.SelectedText = "" + DdlPSFiltro.SelectedValue = "-1" + Else + DdlPSFiltro.ddl.Items.Clear() + DdlPSFiltro.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionFilto.SelectedValue.ToEntero) + DdlPSFiltro.ddl.DataBind() + DdlPSFiltro.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) + End If + + CargaGrupo() + CargaTipoCentroCosto() + + End Sub + + Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged + CargaSubProyecto() + End Sub + + Private Sub CargaSubProyecto() + DdlSubProyectoFiltro.Items.Clear() + If DdlProyecto.SelectedValue <> "-1" Then + DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1) + DdlSubProyectoFiltro.DataBind() + End If + DdlSubProyectoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + + Protected Sub DdlClasificacionFilto_SelectedIndexChanged(sender As Object, e As EventArgs) + If UsuarioActual.Empresa.Funcionalidad(105) = "" Then + DdlPSFiltro.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionFilto.SelectedValue.ToEntero) + DdlPSFiltro.DataBind() + DdlPSFiltro.ddl.Items.Insert(0, New ListItem("Todos", "-1")) + Else + DdlPSFiltro.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionFilto.SelectedValue) + DdlPSFiltro.SelectedText = "Todos" + DdlPSFiltro.SelectedValue = "-1" + End If + End Sub + + Protected Sub GvComportamientoCompra_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + If Not e.Row.DBCampo("CveCompra").ToEntero > 0 Then + e.Row.CssClass = "Totales" + e.Row.Cells(2).Text = e.Row.DBCampo("GPO").ToString + End If + End If + End Sub + + Protected Sub BtnConsultarComportamiento_Click(sender As Object, e As EventArgs) + CargaGvComportamientoCompra() + End Sub + + Private Sub CargaGvComportamientoCompra() + Dim ObjCompras As New ClsCompras() + Dim FechaI, FechaF As Date + FechaI = If(IsDate(TxtFechaIFiltro.Text.Trim()), TxtFechaIFiltro.Text.ToDate, MinFecha) + FechaF = If(IsDate(TxtFechaFFiltro.Text.Trim()), TxtFechaFFiltro.Text.ToDate, MaxFecha) + + If ObjCompras.GetRepProductosServiciosDetalle(DdlProyecto.SelectedValue.ToEntero, DdlSubProyectoFiltro.SelectedValue, "-1", DdlClasificacionFilto.SelectedValue.ToEntero, + DdlPSFiltro.SelectedValue.ToEntero, FechaI, FechaF, CveProveedor, DdlUsuario.SelectedValue.ToEntero, -1, + UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, -1, -1, "-1", "-1", -1, -1, 1, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then + GvComportamientoCompra.DataSource = ObjCompras.DtResultados + Else + GvComportamientoCompra.DataSource = Nothing + End If + + ObjCompras.Dispose() + GvComportamientoCompra.DataBind() + UpDatosComportamientoCompra.Update() + End Sub + +#End Region + +#Region "E V A L U A C I O N " + Protected Sub LimpiarDatosEvaluacion() + DtRespuestasEvaluacion = Nothing + + TxtRS.Text = "" + TxtSerieFolio.Text = "" + TxtPS.Text = "" + TxtCodigoE.Text = "" + TxtFechaE.Text = Now.ToString("dd/MM/yyyy") + TxtFirma.Text = "" + TxtCalificacion.Text = "" + + UpEvaluacion.Update() + End Sub + Protected Sub CargaEvaluacionProveedor() + LimpiarDatosEvaluacion() + + Dim ObjProve As New ClsCompProveedores + If ObjProve.GetEvaluacionesProveedores(-1, Me.CveProveedor, UsuarioActual.CveEmpresa) Then + GvEvaluaciones.DataSource = ObjProve.DtResultados.FiltraParametros($"Evaluado = 1") + End If + If ObjProve.GetProveedoresEvaluacionPreguntas(UsuarioActual.CveEmpresa) Then + DtPreguntasEvaluacion = ObjProve.DtResultados.Copy() + End If + ObjProve.Dispose() + GvEvaluaciones.DataBind() + UpEvaluacion.Update() + UpDatos.Update() + End Sub + Protected Sub CargaCompraEvaluacion(CveCompra As Integer) + If CveCompra > 0 Then + Dim ObjCompras As New ClsCompras() + If ObjCompras.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then + If ObjCompras.DtResultados.Rows.Count > 0 Then + TxtSerieFolio.Text = ObjCompras.DtResultados.Rows(0)("SerieFolio").ToString() + End If + End If + If ObjCompras.GetCompraDetalle(CveCompra) Then + Dim StrPS As New StringBuilder() + For Each Row As DataRow In ObjCompras.DtResultados.Rows + If ObjCompras.DtResultados.Rows.Count > 1 Then + StrPS.AppendFormat("{0};", Row("PSCodigo")) + Else + StrPS.AppendFormat("{0}", Row("PSCodigo")) + End If + Next + TxtPS.Text = StrPS.ToString() + End If + ObjCompras.Dispose() + End If + End Sub + + Protected Sub CargaPreguntasEvaluacion(CveEvaluacionProveedor As Integer) + Dim ObjPro As New ClsCompProveedores() + If ObjPro.GetEvaluacionesProveedoresDetalle(CveEvaluacionProveedor) Then + DtRespuestasEvaluacion = ObjPro.DtResultados.Copy() + End If + ObjPro.Dispose() + + If DtRespuestasEvaluacion.Rows.Count > 0 AndAlso DtPreguntasEvaluacion.Rows.Count > 0 Then + GvPreguntas.DataSource = DtPreguntasEvaluacion + GvPreguntas.DataBind() + End If + + End Sub + Protected Sub LnkVerEvaluacion_Click(sender As Object, e As EventArgs) + Dim Row As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + CargaEvaluacion(Row) + RegistraScript("$('#DvEvaluacion').modal('show');") + End Sub + Protected Sub LnkDescargarCarta_Click(sender As Object, e As EventArgs) + Dim Row As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + CargaEvaluacion(Row) + + Dim Fecha = TxtFechaE.Text.ToDateTime() + Dim Mes = Fecha.ToString("MMMM", New CultureInfo("es-MX")) + Dim Obs = TxtObsE.Text.Trim() + Dim Calificacion = TxtCalificacion.Text.ToEntero() + Dim Firma = TxtFirma.Text + + Dim Resultado As String = "" + + If Calificacion.Contiene(0, 1, 2) Then + Resultado = "No Satisfactorio" + ElseIf Calificacion.Contiene(3, 4) Then + Resultado = "Mejoras" + ElseIf Calificacion.Contiene(5, 6) Then + Resultado = "Satisfactorio" + End If + + DescargarFormatoCarta(TxtRS.Text, Fecha.Day.ToString(), Mes, Calificacion.ToString(), Resultado) + End Sub + Protected Sub LnkDescargarFormatoEvaluacion_Click(sender As Object, e As EventArgs) + Dim Row As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + CargaEvaluacion(Row) + + Dim Fecha = TxtFechaE.Text.ToDateTime() + + Dim Mes = Fecha.ToString("MMMM", New CultureInfo("es-MX")) + Dim Obs = TxtObsE.Text.Trim() + Dim Calificacion = TxtCalificacion.Text.ToEntero() + Dim Firma = TxtFirma.Text + + Dim Resultado As String = "" + + If Calificacion.Contiene(0, 1, 2) Then + Resultado = "No Satisfactorio" + ElseIf Calificacion.Contiene(3, 4) Then + Resultado = "Mejoras" + ElseIf Calificacion.Contiene(5, 6) Then + Resultado = "Satisfactorio" + End If + + DescargarFormatoEvaluacion(TxtRS.Text, Fecha.Day.ToString(), Mes, Calificacion.ToString(), Resultado) + End Sub + Protected Sub GvPreguntas_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("TipoDato") = "1" Then + e.Row.CssClass = "Totales" + e.Row.FCRadioButtonList("RblRespuesta").Visible = False + End If + If e.Row.DBCampo("TipoDato") = "2" Then + Dim CvePregunta = e.Row.DBCampo("CvePreguntaEvaluacion").ToEntero() + If CvePregunta > 0 AndAlso DtRespuestasEvaluacion IsNot Nothing Then + Dim Respuesta = DtRespuestasEvaluacion.FiltroPrimeroValor("RespuestaBit", $"CvePreguntaEvaluacion={CvePregunta}") + e.Row.FCRadioButtonList("RblRespuesta").SelectedValue = Respuesta + End If + End If + End If + End Sub + + Private Sub CargaEvaluacion(Row As GridViewRow) + LimpiarDatosEvaluacion() + + Dim CveEvaluacionProveedor = Row.DataKey("CveEvaluacionProveedor").ToEntero() + Dim CveCompra = Row.DataKey("CveCompra").ToEntero() + + TxtRS.Text = Row.DataKey("RazonSocial") + TxtCodigoE.Text = Row.DataKey("Codigo") + + CargaCompraEvaluacion(CveCompra) + CargaPreguntasEvaluacion(CveEvaluacionProveedor) + + TxtObsE.Text = Row.DataKey("Observaciones") + TxtFechaE.Text = Row.DataKey("FechaEvaluacion").ToDate().ToString("dd/MM/yyyy") + TxtFirma.Text = Row.DataKey("Firma") + TxtCalificacion.Text = Row.DataKey("CalificacionFinal") + + UpEvaluacion.Update() + End Sub + Protected Sub DescargarFormatoCarta(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) + Try + Dim PathRoot As String = Server.MapPath("/") + Dim Documento As String = "CartaProveedor.docx" + Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" + Dim PathDestino As String = PathRoot & "Temp\" & Documento + + If File.Exists(PathDestino) Then + File.Delete(PathDestino) + End If + + File.Copy(PathSource, PathDestino) + + Dim ObjCarta As New clsGemBoxDocument(PathDestino) + ObjCarta.SustituirTags(GetTagsCartaEvaluacion(Proveedor, Dia, Mes, Calificacion, Resultado)) + ObjCarta.GuardarStreamPDF() + + ImprimirbytesPDF(ObjCarta.GetBytesDocumento(), "Carta a Proveedor.pdf") + + Catch ex As Exception + OnError("Ocurrió error al generar el formato", ex) + End Try + End Sub + Protected Sub DescargarFormatoEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) + Try + Dim PathRoot As String = Server.MapPath("/") + Dim Documento As String = "FormatoEvaluacionProveedor.docx" + Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" + Dim PathDestino As String = PathRoot & "Temp\" & Documento + + If File.Exists(PathDestino) Then + File.Delete(PathDestino) + End If + + File.Copy(PathSource, PathDestino) + + Dim ObjCarta As New clsGemBoxDocument(PathDestino) + ObjCarta.SustituirTags(GetTagsFormatoEvaluacion()) + ObjCarta.GuardarStreamPDF() + + ImprimirbytesPDF(ObjCarta.GetBytesDocumento(), "Formato Evaluacion Proveedor.pdf") + + Catch ex As Exception + OnError("Ocurrió error al generar el formato", ex) + End Try + End Sub + Private Sub RegisterPostBackControl() + For Each row As GridViewRow In GvEvaluaciones.Rows + ScriptManager.GetCurrent(Me).RegisterPostBackControl(row.FCLinkButton("LnkDescargaFormato")) + ScriptManager.GetCurrent(Me).RegisterPostBackControl(row.FCLinkButton("LnkDescargarCarta")) + Next + End Sub + + Protected Function GetTagsCartaEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) As List(Of TagsDocumentos) + Dim ListaTagsDocumentost = New List(Of TagsDocumentos) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Proveedor}}", Proveedor)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Dia}}", Dia)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Mes}}", Mes)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Calificacion}}", Calificacion)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Resultado}}", Resultado)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Usuario}}", TxtFirma.Text)) + + Dim MensajeInvitacion As String = "Le invitamos a participar en la implementación de acciones para la mejora de sus procesos." + + Dim MensajeSatisfactorio As String = ", debido al cumplimiento de los criterios establecidos por Exploraciones Mineras del Desierto, S.A. de C.V" + Dim MensajeMejoras As String = ", debido a la falta de cumplimiento de los criterios establecidos por Exploraciones Mineras del Desierto, S.A. de C.V. Se realizaron diferentes observaciones de la percepción del servicio, los cuales son:" + Dim MensajeNoSatisfactorio As String = ", debido a la falta de cumplimiento de los criterios establecidos por Exploraciones Mineras del Desierto, S.A. de C.V" + + If Resultado = "No Satisfactorio" Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoTexto}}", MensajeNoSatisfactorio)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Observaciones}}", TxtObsE.Text)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoInvitacion}}", MensajeInvitacion)) + ElseIf Resultado = "Mejoras" Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoTexto}}", MensajeMejoras)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Observaciones}}", TxtObsE.Text)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoInvitacion}}", MensajeInvitacion)) + ElseIf Resultado = "Satisfactorio" Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoTexto}}", MensajeSatisfactorio)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Observaciones}}", "")) + ListaTagsDocumentost.Add(New TagsDocumentos("{{ResultadoInvitacion}}", "")) + End If + + Return ListaTagsDocumentost + End Function + Protected Function GetTagsFormatoEvaluacion() As List(Of TagsDocumentos) + Dim ListaTagsDocumentos = New List(Of TagsDocumentos) + ListaTagsDocumentos.Add(New TagsDocumentos("{{Proveedor}}", TxtRS.Text.Trim())) + ListaTagsDocumentos.Add(New TagsDocumentos("{{Codigo}}", TxtCodigoE.Text.Trim())) + ListaTagsDocumentos.Add(New TagsDocumentos("{{Fecha}}", TxtFechaE.Text)) + ListaTagsDocumentos.Add(New TagsDocumentos("{{PS}}", TxtPS.Text.Trim())) + + Dim IndexP As Integer = 1 + Dim IndexG As Integer = 1 + + For Each Row As GridViewRow In GvPreguntas.Rows + If Row.RowType = DataControlRowType.DataRow Then + If Row.DataKey("TipoDato") = "1" Then + ListaTagsDocumentos.Add(New TagsDocumentos("{{G" & IndexG & "}}", Row.DataKey("Preguntas"))) + IndexG += 1 + End If + If Row.DataKey("TipoDato") = "2" Then + Dim Respuesta As Integer = Row.FCRadioButtonList("RblRespuesta").SelectedValue.ToEntero() + ListaTagsDocumentos.Add(New TagsDocumentos("{{P" & IndexP & "}}", Row.DataKey("Preguntas"))) + ListaTagsDocumentos.Add(New TagsDocumentos("{{R1" & IndexP & "}}", If(Respuesta = 1, "X", ""))) + ListaTagsDocumentos.Add(New TagsDocumentos("{{R0" & IndexP & "}}", If(Respuesta = 0, "X", ""))) + ListaTagsDocumentos.Add(New TagsDocumentos("{{RN" & IndexP & "}}", If(Respuesta = -1, "X", ""))) + IndexP += 1 + End If + End If + Next + + ListaTagsDocumentos.Add(New TagsDocumentos("{{Observaciones}}", TxtObsE.Text.Trim())) + ListaTagsDocumentos.Add(New TagsDocumentos("{{Firma}}", TxtFirma.Text.Trim())) + ListaTagsDocumentos.Add(New TagsDocumentos("{{Calificacion}}", TxtCalificacion.Text.Trim())) + + Return ListaTagsDocumentos + End Function +#End Region + +#Region " NOTIFICACION PAGO " + Private Sub NotificacionPago(CveIE As Integer, CorreoNotificarA As String) + Dim Param As New List(Of String) + + Param.Add(CorreoNotificarA) 'Para + Param.Add("Notificaciones de pago") 'Asunto + Param.Add(GeneraCorreo(CveIE)) 'Body + Param.Add(CveIE.ToString) 'CveIE + 'Param.Add(If(ComprobanteIE <> "", String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, ComprobanteIE), "")) 'Archivo Adjunto + + Dim Hilo As New Threading.Thread(AddressOf MandaCorreo) + Hilo.Start(Param) + End Sub + + Private Sub MandaCorreo(data As Object) + Dim Parametros As List(Of String) = DirectCast(data, List(Of String)) + + Dim Mail As New ClsSisMail() + Dim Para As String = If(Parametros(0) IsNot Nothing, Parametros(0), "") + Dim Asunto As String = If(Parametros(1) IsNot Nothing, Parametros(1), "") + Dim Body As String = If(Parametros(2) IsNot Nothing, Parametros(2), "") + Dim CveIE As Integer = If(Parametros(3) IsNot Nothing, Parametros(3).ToEntero, 0) + + Dim ListaArchivos As New List(Of ClsSisMail.ArchivoMail) + If Parametros(4) IsNot Nothing AndAlso Parametros(4) <> "" Then + ListaArchivos.Add(New ClsSisMail.ArchivoMail With {.Ruta = Parametros(4).ToString}) + End If + + If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=ListaArchivos) Then + Dim objIE As New ClsBancos + objIE.UpdateBancos_IENotificaciones(1, "-1", "-1", CveIE) + objIE.Dispose() + + TxtCC.Text = "" + TxtBody.Text = "" + RegistraScript("$('#ModalDivMail').modal('hide');") + + + Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) + End If + End Sub + + Private Function GeneraCorreo(CveIE As Integer) As String + Dim strBody As New StringBuilder + Dim objIE As New ClsBancos + + If objIE.GetBancosIE(CveIE, UsuarioActual.CveEmpresa) Then + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat(" {0}", UsuarioActual.Empresa.Empresa) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", UsuarioActual.Empresa.Direccion) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", UsuarioActual.Empresa.Colonia) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", UsuarioActual.Empresa.Ciudad, UsuarioActual.Empresa.Estado, UsuarioActual.Empresa.CP) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", UsuarioActual.Empresa.RFC) + strBody.AppendFormat(" ") + strBody.AppendFormat("
    {0}
    Col. {0}
    {0}, {1}, C.P.{2}
    RFC {0}
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("


    ") + + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + + If objIE.CveTipoTransaccion = 1 Then ' cuando es cheque + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + End If + + If objIE.CveTipoTransaccion = 2 Then ' cuando es transf + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + End If + + strBody.Append(" ") + strBody.AppendFormat(" ") + strBody.Append(" ") + strBody.Append("
    Favor de pasar a nuestras oficinas por el cheque con la siguientes instrucciones.
    Notificación de transferencia de pago realizada.
     
    ") + strBody.AppendFormat("
    ") + strBody.Append("
    ") + + + strBody.AppendFormat("
    ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat(" Beneficiario:{0} ", objIE.PagueseA) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.TipoTransaccion) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.Banco) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.NumCuenta) + strBody.AppendFormat(" ") + If objIE.CuentaDepositado.ToString <> "" Then + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.CuentaDepositado) + strBody.AppendFormat(" ") + End If + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.FechaDocumento.ToString("dd/MM/yyyy")) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.Importe.FormatoNumero, objIE.Moneda) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", objIE.Observaciones) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat("
    Movimiento:{0}
    Banco:{0}
    Cuenta:{0}
    Cuenta Destino:{0}
    Fecha:{0}
    Importe:$ {0} {1}
    Observaciones:{0}
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + + + 'MOVIMIENTOS CHEQUE + If objIE.GetBancosIEMovimientos(CveIE, UsuarioActual.CveEmpresa) Then + Dim Textov33 As String = "" + If UsuarioActual.Empresa.Funcionalidad(520) = "1" Then + Textov33 = "Favor de emitir complemento de pago de los siguientes documentos" + End If + + strBody.AppendFormat("
    ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat(" Documentos abonados o pagados
    {0}
    ", Textov33) + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + + + For Each dr As DataRow In objIE.DtResultados.FiltraParametros("CveConceptoContable IN (17) AND CveCompra > 0").Rows + strBody.AppendFormat(" ") + strBody.AppendFormat(" ", dr("Fecha").ToString.ToDate.ToShortDateString()) + strBody.AppendFormat(" ", dr("SerieFolio").ToString) + strBody.AppendFormat(" ", dr("Importe").ToString.FormatoNumero) + strBody.AppendFormat(" ", dr("FolioFiscal")) + strBody.AppendFormat(" ", dr("ImporteNC").ToString.FormatoNumero) + strBody.AppendFormat(" ") + Next + + + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat(" ") + strBody.AppendFormat("
    FechaFacturaImporte ($)Folio FiscalNC Aplicadas
    {0}{0}$ {0}{0}{0}
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + strBody.AppendFormat("
    ") + End If + + strBody.Append("
    Favor de no responder a este correo.
    ") + + strBody.Append("") + End If + + objIE.Dispose() + Return strBody.ToString + End Function + + Private Sub BtnSendMail_Click(sender As Object, e As EventArgs) Handles BtnSendMail.Click + 'NotificacionPago(HdnCveIE.Value.ToEntero, Txt) + Dim ObjMail As New ClsSisMail() + Dim Body = GeneraCorreo(HdnCveIE.Value.ToEntero) + + Dim ListaArchivos As New List(Of ClsSisMail.ArchivoMail) + + Dim ObjIE As New ClsBancos() + Dim ComprobanteIE As String + If ObjIE.GetBancosIE(HdnCveIE.Value.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjIE.DtResultados.Rows.Count > 0 Then + If ObjIE.Comprobante <> "" Then + ComprobanteIE = String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, ObjIE.Comprobante.ToString) + + If IO.File.Exists(ComprobanteIE) Then + ListaArchivos.Add(New ClsSisMail.ArchivoMail With {.Ruta = ComprobanteIE.ToString}) + End If + End If + End If + End If + ObjIE.Dispose() + + If ObjMail.SendMail(UsuarioActual.Empresa, TxtParaMail.Text.Trim, "Notificaciones de pago", Body, TxtCC.Text.Trim, Displayname:="Notificaciones de pago", Archivos:=ListaArchivos) Then + 'ResultadoMail = 1 + TxtCC.Text = "" + TxtBody.Text = "" + RegistraScript("$('#ModalDivMail').modal('hide');") + Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) + Else + Alert("No se pudo enviar el correo electrónico.", TipoMensaje.MsgError) + End If + + End Sub +#End Region + Protected Sub DdlCveTipoProveedor_SelectedIndexChanged(sender As Object, e As EventArgs) + If UsuarioActual.Empresa.Funcionalidad(544).ToString = "1" Then + TxtCodigo.Enabled = True + TxtCodigo.Text = "" + + Select Case DdlCveTipoProveedor.SelectedValue + Case "1" + GetFolioAut("Pro") + Case "2" + GetFolioAut("Acr") + Case "3" + GetFolioAut("Amb") + End Select + + End If + End Sub + Private Sub GetFolioAut(TipoProv As String) + Dim ObjSub As New ClsSubProyectos + Dim ObjFolios As New ClsGralFolios() + Dim CveSubProyectoMatriz As Integer + + If ObjSub.GetSubProyectos() Then + CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero + End If + + If ObjFolios.GetFolios(TipoProv, UsuarioActual.CveEmpresa) Then + + Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'") + If DT.Rows.Count > 0 Then + TxtCodigo.Text = DT.Rows(0)("FActual").ToString + TxtCodigo.Enabled = False + Else + Alert("No tiene registrados Folios Automáticos.", TipoMensaje.MsgAdvertencia) + End If + End If + End Sub + Protected Sub LblB_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + + Dim CveCompra As Integer = GvRow.DataKey("CveCompra").ToEntero() + + RegistraScript(String.Format("$('#{0}').modal('show');", "DivProgramado")) + CargaGVProgramado(CveCompra) + End Sub + Private Sub CargaGVProgramado(CveCompra As Integer) + Dim ObjComp As New ClsCompras + + If ObjComp.GetCxPProgramado(CveCompra, UsuarioActual.CveEmpresa) Then + GVProgramado.DataSource = ObjComp.DtResultados + Else + GVProgramado.DataSource = Nothing + End If + GVProgramado.DataBind() + ObjComp.Dispose() + + UpProgramado.Update() + End Sub + Protected Sub LnkExportCuentas_Click(sender As Object, e As EventArgs) + GvBancosCuentas.ExportToExcelG("CuentasBancarias", "Cuentas Bancarias", UsuarioActual, $"Proveedor: {LtlProveedor.Text}") + End Sub + Public Overrides Sub VerifyRenderingInServerForm(control As Control) + 'MyBase.VerifyRenderingInServerForm(control) + + End Sub +End Class + + + diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 16d69f5f6..90fb21398 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -1,7121 +1,7159 @@ -Option Explicit On -Option Strict On - -Imports System.Data -Imports Extensiones -Imports System.IO - -Partial Class OC - Inherits ClsPaginas - Private Shared missing As Object = System.Reflection.Missing.Value - -#Region "Propiedades" - Private Property CveEmpresaActual As Integer - Get - CveEmpresaActual = ViewState("CveEmpresaActual").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEmpresaActual") = value - End Set - End Property - Private Property TipoOC As String - Get - TipoOC = ViewState("TipoOC").ToString - End Get - Set(value As String) - ViewState("TipoOC") = value - End Set - End Property - Private Property TipoLargo As String - Get - TipoLargo = ViewState("TipoLargo").ToString - End Get - Set(value As String) - ViewState("TipoLargo") = value - End Set - End Property - Private Property TipoOS As Boolean - Get - TipoOS = CBool(ViewState("TipoOS").ToString) - End Get - Set(value As Boolean) - ViewState("TipoOS") = value - End Set - End Property - Private Property CveOrdenCompra As Integer - Get - CveOrdenCompra = ViewState("CveOrdenCompra").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveOrdenCompra") = value - End Set - End Property - Private Property CveIEAnticipo As Integer - Get - CveIEAnticipo = ViewState("CveIEAnticipo").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveIEAnticipo") = value - End Set - End Property - Private Property Folio As Integer - Get - Folio = ViewState("Folio").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("Folio") = value - End Set - End Property - Private Property CveUsuario As Integer - Get - CveUsuario = ViewState("CveUsuario").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveUsuario") = value - End Set - End Property - Private Property CveEstatus As Integer - Get - CveEstatus = ViewState("CveEstatus").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatus") = value - End Set - End Property - Private Property CveEstatusSiguiente As Integer - Get - CveEstatusSiguiente = ViewState("CveEstatusSiguiente").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatusSiguiente") = value - End Set - End Property - Private Property CveEstatusAnterior As Integer - Get - CveEstatusAnterior = ViewState("CveEstatusAnterior").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatusAnterior") = value - End Set - End Property - Private Property CveCotizacion As Integer - Get - Return If(IsNothing(ViewState("CveCotizacion")), -1, ViewState("CveCotizacion").ToString.ToEntero) - End Get - Set(value As Integer) - ViewState("CveCotizacion") = value - End Set - End Property - Private Property EsNuevo As Boolean - Get - EsNuevo = DirectCast(ViewState("EsNuevo"), Boolean) - End Get - Set(value As Boolean) - ViewState("EsNuevo") = value - End Set - End Property - Private Property EsCrearApartirDe As Boolean - Get - EsCrearApartirDe = If(IsNothing(ViewState("EsCrearApartirDe")), False, DirectCast(ViewState("EsCrearApartirDe"), Boolean)) - End Get - Set(value As Boolean) - ViewState("EsCrearApartirDe") = value - End Set - End Property - Private Property RequiereSubProyecto As Boolean - Get - RequiereSubProyecto = DirectCast(ViewState("RequiereSubProyecto"), Boolean) - End Get - Set(value As Boolean) - ViewState("RequiereSubProyecto") = value - End Set - End Property - Private Property DtDetalle As DataTable - Get - DtDetalle = DirectCast(ViewState("DtDetalle"), DataTable) - End Get - - Set(ByVal value As DataTable) - ViewState("DtDetalle") = value - End Set - End Property - Private Property DtHistorial As DataTable - Get - DtHistorial = DirectCast(ViewState("DtHistorial"), DataTable) - End Get - - Set(ByVal value As DataTable) - ViewState("DtHistorial") = value - End Set - End Property - Private Property DrEliminados As ArrayList - Get - DrEliminados = DirectCast(ViewState("DrEliminados"), ArrayList) - End Get - - Set(ByVal value As ArrayList) - ViewState("DrEliminados") = value - End Set - End Property - Private Property NumCotizaciones As Integer - Get - NumCotizaciones = ViewState("NumCotizaciones").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("NumCotizaciones") = value - End Set - End Property - Private Property NumCotizacionesGanadoras As Integer - Get - NumCotizacionesGanadoras = ViewState("NumCotizacionesGanadoras").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("NumCotizacionesGanadoras") = value - End Set - End Property - Private Property ProveedoresCotizacion As ArrayList - Get - ProveedoresCotizacion = DirectCast(ViewState("ProveedoresCotizacion"), ArrayList) - End Get - - Set(ByVal value As ArrayList) - ViewState("ProveedoresCotizacion") = value - End Set - End Property - Private Property TotalCotizacionesGanadoras As Decimal - Get - TotalCotizacionesGanadoras = ViewState("TotalCotizacionesGanadoras").ToString.ToDecimal - End Get - Set(value As Decimal) - ViewState("TotalCotizacionesGanadoras") = value - End Set - End Property - Private Property DtCotizaciones As DataTable - Get - DtCotizaciones = DirectCast(ViewState("DtCotizaciones"), DataTable) - End Get - Set(ByVal value As DataTable) - ViewState("DtCotizaciones") = value - End Set - End Property - Private Property DtEstatusUsuarios As DataTable - Get - DtEstatusUsuarios = DirectCast(ViewState("DtEstatusUsuarios"), DataTable) - End Get - Set(ByVal value As DataTable) - ViewState("DtEstatusUsuarios") = value - End Set - End Property - Private Property DtEstatusUsuariosClasificaciones As DataTable - Get - DtEstatusUsuariosClasificaciones = DirectCast(ViewState("DtEstatusUsuariosClasificaciones"), DataTable) - End Get - Set(ByVal value As DataTable) - ViewState("DtEstatusUsuariosClasificaciones") = value - End Set - End Property - Private Property EsCreaApartirDe As Boolean - Get - Return If(IsNothing(ViewState("EsCreaApartirDe")), False, CType(ViewState("EsCreaApartirDe"), Boolean)) - End Get - Set(value As Boolean) - ViewState("EsCreaApartirDe") = value - End Set - End Property - Private Property CveEstatusInicial As Integer - Get - CveEstatusInicial = ViewState("CveEstatusInicial").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatusInicial") = value - End Set - End Property - Private Property EstatusInicial As String - Get - EstatusInicial = ViewState("EstatusInicial").ToString - End Get - Set(value As String) - ViewState("EstatusInicial") = value - End Set - End Property - Private Property CveEstatusFinalOK As Integer - Get - CveEstatusFinalOK = ViewState("CveEstatusFinalOK").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatusFinalOK") = value - End Set - End Property - Private Property EstatusFinalOK As String - Get - EstatusFinalOK = ViewState("EstatusFinalOK").ToString - End Get - Set(value As String) - ViewState("EstatusFinalOK") = value - End Set - End Property - Private Property CveEstatusFinalError As Integer - Get - CveEstatusFinalError = ViewState("CveEstatusFinalError").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatusFinalError") = value - End Set - End Property - Private Property EstatusFinalError As String - Get - EstatusFinalError = ViewState("EstatusFinalError").ToString - End Get - Set(value As String) - ViewState("EstatusFinalError") = value - End Set - End Property - Private Property CveEstatusInicialOC As Integer - Get - CveEstatusInicialOC = ViewState("CveEstatusInicialOC").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveEstatusInicialOC") = value - End Set - End Property - Private Property SubProyectosNoAutorizados As List(Of String) - Get - SubProyectosNoAutorizados = CType(ViewState("SubProyectosNoAutorizados"), Global.System.Collections.Generic.List(Of String)) - End Get - Set(value As List(Of String)) - ViewState("SubProyectosNoAutorizados") = value - End Set - End Property - Private Property DtAC As DataTable - Get - DtAC = DirectCast(ViewState("DtAC"), DataTable) - End Get - - Set(ByVal value As DataTable) - ViewState("DtAC") = value - End Set - End Property - Private Property DtPresupuestos As DataTable - Get - Return CType(ViewState("DtPresupuestos"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtPresupuestos") = value - End Set - End Property - Private Property VerificaPresupuesto As Boolean - Get - VerificaPresupuesto = DirectCast(ViewState("VerificaPresupuesto"), Boolean) - End Get - - Set(ByVal value As Boolean) - ViewState("VerificaPresupuesto") = value - End Set - End Property - Private Property LigaOCs As String - Get - LigaOCs = ViewState("LigaOCs").ToString - End Get - Set(ByVal value As String) - ViewState("LigaOCs") = value - End Set - End Property - Public Property CveOCGeneradas As List(Of Integer) - Get - CveOCGeneradas = DirectCast(ViewState("CveOCGeneradas"), List(Of Integer)) - End Get - Set(ByVal value As List(Of Integer)) - ViewState("CveOCGeneradas") = value - End Set - End Property - Public Property FolioOCGeneradas As List(Of Integer) - Get - FolioOCGeneradas = DirectCast(ViewState("FolioOCGeneradas"), List(Of Integer)) - End Get - Set(ByVal value As List(Of Integer)) - ViewState("FolioOCGeneradas") = value - End Set - End Property - Public Property IDPolizasGeneradas As List(Of Integer) - Get - IDPolizasGeneradas = DirectCast(ViewState("IDPolizasGeneradas"), List(Of Integer)) - End Get - Set(ByVal value As List(Of Integer)) - ViewState("IDPolizasGeneradas") = value - End Set - End Property - Public Property FoliosPolizas As List(Of Integer) - Get - FoliosPolizas = DirectCast(ViewState("FoliosPolizas"), List(Of Integer)) - End Get - Set(ByVal value As List(Of Integer)) - ViewState("FoliosPolizas") = value - End Set - End Property - Private Property EditarOC As Boolean - Get - EditarOC = CBool(ViewState("EditarOC").ToString) - End Get - Set(value As Boolean) - ViewState("EditarOC") = value - End Set - End Property - Private Property EjercicioAC As Integer - Get - Return ViewState("EjercicioAC").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("EjercicioAC") = value - End Set - End Property - Private Property IDPolizaPresupuestal As Integer - Get - Return ViewState("IDPolizaPresupuestal").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IDPolizaPresupuestal") = value - End Set - End Property - Private Property DtBitacora As DataTable - Get - Return CType(ViewState("DtBitacora"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtBitacora") = value - End Set - End Property - Private Property EntregaDirecta As Boolean - Get - EntregaDirecta = CBool(ViewState("EntregaDirecta").ToString) - End Get - Set(value As Boolean) - ViewState("EntregaDirecta") = value - End Set - End Property - Private Property CveVenta As Integer - Get - Return ViewState("CveVenta").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveVenta") = value - End Set - End Property - Private Property TieneVenta As Integer - Get - Return ViewState("TieneVenta").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("TieneVenta") = value - End Set - End Property - Private Property TieneCompraInv As Integer - Get - Return ViewState("TieneCompraInv").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("TieneCompraInv") = value - End Set - End Property - Private Property CveCompra As Integer - Get - Return ViewState("CveCompra").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveCompra") = value - End Set - End Property - Private Property CveMovimientoAlmacenVenta As Integer - Get - Return ViewState("CveMovimientoAlmacenVenta").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveMovimientoAlmacenVenta") = value - End Set - End Property - - - Private Property CveDireccionEnvio As Integer - Get - If ViewState("CveDireccionEnvio") Is Nothing Then - Return -1 - Else - Return ViewState("CveDireccionEnvio").ToString.ToEntero - End If - End Get - Set(value As Integer) - ViewState("CveDireccionEnvio") = value - End Set - End Property - Private Property NumRow As Integer - -#End Region - - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load - If Not Page.IsPostBack Then - CargaDatosAgregarPS() - 'MODALIDAD MULTIEMPRESA - CveEmpresaActual = UsuarioActual.CveEmpresa - CargaEstatusUsuariosClasificaciones() - - TxtObsPS.Attributes.Add("maxlength", "750") - - 'FUNCIONALIDAD 108' - CargarOptionAnticipos() - - If UsuarioActual.Empresa.Funcionalidad(556) = "1" Then - ChkCotizacion.Checked = True - ChkCotizacion.Enabled = False - End If - - 'CARGA YA REGISTRADO - If Request("OC") IsNot Nothing AndAlso IsNumeric(Request("OC")) AndAlso Request("OC").ToEntero > 0 Then - - EsNuevo = False - ViewState("CveOrdenCompra") = Request("OC") - - If UsuarioActual.TienePermisoProceso(131) Then - EditarOC = True - Else - EditarOC = False - End If - - CargaDatos(CveOrdenCompra) - - 'PnlProveedor.Visible = True - 'UPProv.Update() - - 'NUEVO - Else - EsNuevo = True - InicializarValores() - HlAgregarExcel.Visible = True - LbDescargarExcel.Visible = True - - - TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID)) - CreaDTDetalles() - - If Not IsNothing(Request("CveCotizacion")) AndAlso IsNumeric(Request("CveCotizacion")) Then - CveCotizacion = Request("CveCotizacion").ToString.ToEntero - - If CveCotizacion > 0 Then - TRCotizacion.Visible = True - HLCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", CveCotizacion) - - Dim ObjVentas As New ClsVentas() - If ObjVentas.GetVenta(CveCotizacion, CveEmpresaActual) Then - If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then - Dim DrCot As DataRow = ObjVentas.DtResultados.Rows(0) - If DrCot IsNot Nothing Then - HLCotizacion.Text = String.Format("{0}-{1}", DrCot("Serie"), DrCot("Folio")) 'CveVendedor - DdlVendedor.SelectedValueExist(DrCot("CveVendedor").ToString()) - Ddlcliente.SelectedValueExist(DrCot("CveCliente").ToString()) - End If - End If - End If - - CargaClasificacionesPopUp(CveCotizacion) - ObjVentas.Dispose() - End If - CargaDetallesCotizacion() - End If - - ViewState("TipoOC") = If(Request("Tipo") IsNot Nothing, Request("Tipo").ToUpper, "REQ") - - If TipoOC = "OC" Then - ViewState("TipoLargo") = "Orden de Compra" - ElseIf TipoOC = "OS" Then - ViewState("TipoLargo") = "Orden de Servicio" - Else - ViewState("TipoLargo") = "Requisicion" - End If - - If TipoOC = "OC" Then ChkCotizacion.Visible = False - - If TipoOC = "OS" Then - TipoOC = "REQ" - TipoOS = True - End If - - BtnGeneraContrato.Visible = True : CargaClientes() - - CargaEstatusInicialFinal() - CargaEstatusUsuarios() - CargaEstatusOC() - - 'Estatus Default 66 - If CveEmpresaActual = 66 Then - CboE.SelectedValueExist(18) - End If - - 'Poner el Estatus mas Avanzado - ' If DtEstatusUsuarios.Rows.Count > 0 Then CboE.SelectedValue = DtEstatusUsuarios.MAX("Nivel").ToEntero Else DesHabilitar() - - TxtFecha.Text = Now.ToString("dd/MM/yyyy") - lblNombreUsuario.Text = UsuarioActual.Nombre - ViewState("CveOrdenCompra") = 0 - CargaFolios() - 'BtnCancelarPrevio.Disabled = True - BtnCancelarPrevio.Enabled = False - - If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False - - PnlProveedor.Visible = True : UPProv.Update() - - '12/04/2018 - 'DdlIVA.Visible = True - - If UsuarioActual.Empresa.UsaAC Then - ActivaAC() - End If - - hplAgregarCotizacion.Visible = False - hplEnviarCorreo.Visible = False - - 'ASIGNA ESTATUS OC - CboE_SelectedIndexChanged(New Object, New EventArgs) - - ''SI REQUIERE COTIZACION - 'If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero <> CveEstatusFinalOK Then - ' PnlProveedor.Visible = False : UPProv.Update() - ' DdlIVA.Visible = False - 'ElseIf ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK Then - ' PnlProveedor.Visible = True : UPProv.Update() - ' DdlIVA.Visible = True - 'End If - - End If - - - 'CARGA TITULO TIPO OC (REQ, OC, OS) - lblTitulo.Text = TipoLargo - - 'VALIDA PERMISOS - If UsuarioActual.TienePermisoProceso(123) Then - RFVcodigo.Enabled = True - End If - - 'FUNCIONALIDAD 105 - CargaFuncionalidad105() - - 'ACTIVAR MODIFICAR IVA - ActivarIVAEditable() - - 'ACTIVAR RETENCIONES - ActivarRetenciones() - - 'ACTIVA DESCUENTOS - ActivarDescuentos() - - 'BITACORA TEMPORAL - InicializaBitacoraTemporal() - - 'ACTIVA CREAR APARTIR DE - ActivaCrearApartirDe() - - 'ACTIVA CONFIRMACION GUARDAR - If UsuarioActual.CveEmpresa = 72 Or UsuarioActual.CveEmpresa = 80 Then - BtnGuardar.OnClientClick = "ValidaGuardar();" - BtnGuardar.Attributes.Add("data-toggle", "confirmation") - BtnGuardar.Attributes.Add("data-popout", "true") - BtnGuardar.Attributes.Add("data-original-title", "confirmar") - BtnGuardar.Attributes.Add("data-btn-ok-label", "Guardar") - BtnGuardar.Attributes.Add("data-html", "true") - End If - - 'CARGA SUCURSALES DEL CLIENTE - CargaDdlSucursalCliente() - - 'CASOS ESPECIALES EMPRESA DEMO Y PRUEBAS - If UsuarioActual.CveEmpresa < 2 Then - ChkEntregaDirecta.Visible = False - End If - - If UsuarioActual.Empresa.CvePlataforma = 2 Then - DivPrioridad.Visible = False - LblPrioridad.Visible = False - LblFechaEstimada.Visible = False - DivFechaEstimada.Visible = False - ChkCotizacion.Visible = False - tabCotizaciones.Visible = False - ThActivoFijo.Visible = False - TdActivoFijo.Visible = False - THDescuento.Visible = True - TDDescuento.Visible = True - LblObsPrioridad.Visible = False - divtxtprioridad.Visible = False - End If - - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then - DdlProyecto.Visible = False - TituloSubProyecto.Text = "" - TtituloProyecto.Text = "Sucursal" - DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DivProyecto.Visible = False - DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - DdlSubProyectoContrato.DataBind() - DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) - LblSubProyecto.Text = "Sucursal" - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlProyecto.Visible = False - TituloSubProyecto.Text = "" - TtituloProyecto.Text = "Proyecto" - DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DivProyecto.Visible = False - DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - DdlSubProyectoContrato.DataBind() - DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) - LblSubProyecto.Text = "Proyecto" - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then - TtituloProyecto.Text = "Sucursal" - TituloSubProyecto.Text = "Proyecto" - - LblSubProyecto.Text = "Proyecto" - LblProyecto.Text = "Sucursal" - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then - TtituloProyecto.Text = "Proyecto" - TituloSubProyecto.Text = "Sucursal" - - LblSubProyecto.Text = "Sucursal" - LblProyecto.Text = "Proyecto" - End If - - - 'SOLO SE MUESTRA CUANDO ES REGISTRO NUEVO - If Not CveOrdenCompra > 0 Then - If UsuarioActual.Empresa.EsComercializadora And Not CveCotizacion > 0 Then - VerificarClasificaciones(True) - Else - CargaClasificaciones() - End If - Else - ' NO SE CARGABAN CLASIFICACIONES CUANDO YA ESTABA REGISTRADA - If UsuarioActual.Empresa.EsComercializadora And Not CveCotizacion > 0 Then - 'NO SE QUE DEBERIA SER AQUI. [IPP] - Else - CargaClasificaciones() - End If - End If - - InicializaSolicitarAnticipo() - - If TipoOC = "REQ" Then - BtnSolicitudAnticipo.Visible = False - End If - - 'Nuevo Proceso que permite modificar detalles - If Not UsuarioActual.TienePermisoProceso(131) Then - If GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows.Count > 0 Then - Dim Dr As DataRow - Dr = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus))(0) - If UsuarioActual.TienePermisoProceso(203) And Dr("TipoTermino").ToString.ToEntero = 3 And Dr("Tipo").ToString = "OC" Then - CargaClasificaciones() - DesHabilitar() - GvD.Columns(9).Visible = True - LbAgregar.Enabled = True - txtPrecioUnitario.Enabled = True - DdlProyecto.Enabled = True - DdlSubProyecto.Enabled = True - TxtObsPS.Enabled = True - CboUnidadMedida.Enabled = True - DdlClasificacion.Enabled = True - DdlP2.Enabled = True - TxtCant.Enabled = True - BtnGuardar.Enabled = True - BtnCancelar.Enabled = True - ElseIf Dr("TipoTermino").ToString.ToEntero = 3 And Dr("Tipo").ToString = "OC" Then - DesHabilitar() - End If - End If - End If - - 'NO PERMITE REGISTRAR PS - If UsuarioActual.TienePermisoProceso(249) Then - HplAddClasificacion.Visible = False - HplPS.Visible = False - End If - - UPPDetalle.Update() - - PermisosPagina() - - RegistraScript("$get('HdnWidth').value = $('#C_Tab_TabC_DivConceptosContenido').width();") - End If - Me.Form.DefaultButton = "" - End Sub - -#Region " PERMISOS PAGINA " - Private Sub PermisosPagina() - ActivarIVAEditable() - End Sub - Private Sub ActivarIVAEditable() - If UsuarioActual.TienePermisoProceso(141) Then - TxtIVA.Visible = True - LblIVA.Visible = False - End If - End Sub - Protected Sub BtnAplicarIVA_Click(sender As Object, e As EventArgs) - AplicarIVA() - End Sub - Private Sub AplicarIVA() - If LblSubTotal.Text.ToDecimal <= 0 Then - Alert("Para aplicar un IVA, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) - TxtIVA.Text = "0.00" - CalculaGenerales() - Exit Sub - End If - - If Math.Round(DdlIVA.SelectedValue.ToDouble, 2) = 1 Then - Alert("Para aplicar un IVA, debe de seleccionar un porcentaje en el combo de IVA.", TipoMensaje.MsgAdvertencia) - TxtIVA.Text = "0.00" - CalculaGenerales() - Exit Sub - End If - - Dim Total As Double = 0 - For Each Dr As DataRow In DtDetalle.Rows - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Dr("CvePS").ToString.ToEntero).FiltroPrimero("") - If DrPS IsNot Nothing AndAlso DrPS("IVA").ToString.ToEntero = -1 Then - Total += Dr("Total").ToString.ToDouble - End If - Next - - Dim Porcentaje = TxtIVA.Text.ToDecimal / Total - Dim LastDr As DataRow = Nothing - For Each Dr As DataRow In DtDetalle.Rows - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Dr("CvePS").ToString.ToEntero).FiltroPrimero("") - If DrPS IsNot Nothing AndAlso DrPS("IVA").ToString.ToEntero = -1 Then - Dr("IVA") = Math.Round(Dr("Total").ToString.ToDecimal * Porcentaje, 6) - Dr("IVAPorcentaje") = Math.Round(Porcentaje, 2) - - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - LastDr = Dr - Else - Dr("IVA") = 0 - Dr("IVAPorcentaje") = 0 - End If - Next - If Not IsNothing(LastDr) Then - Dim Fdes As Decimal = TxtIVA.Text.ToDecimal - DtDetalle.SUM("IVA").ToString.ToDecimal - If Fdes > 0 Then - LastDr("IVA") = Math.Round(LastDr("IVA").ToString.ToDecimal + Fdes, 6) - End If - End If - - CalculaGenerales() - - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - End Sub -#End Region - -#Region " FUNCIONALIDAD 105-141 " - Private Sub CargaFuncionalidad105() - Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) - - DdlP2.setEsWebService(EsWS) - - If DdlP2.UsaWebService Then - If isWithFamily() Then - DdlP2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.ClientID) - Else - DdlP2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) - End If - - DdlP2.ddlWS.Attributes.Add("data-pagina", "oc/oc") - - If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then - DdlP2.ddlWS.Attributes.Add("Data-onresult", "CargaExistenciaAlmacenes") - CargaSucursal() - DdlSubProyecto.AutoPostBack = True - End If - DdlP2.Attributes.Add("Data-usoclasificacion", "-1") - Else - CargaPS(-1, DdlP2) - 'DdlP2.ddl.Items.Add(New ListItem("Seleccione", "-1")) - 'DdlP2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) - End If - End Sub - -#End Region - -#Region " CARGA VALORES INICIALES " - Private Sub InicializarValores() - ViewState("NumCotizacionesGanadoras") = 0 - ViewState("TotalCotizacionesGanadoras") = 0 - ViewState("TipoOC") = "OC" - ViewState("CveEstatus") = -1 - ViewState("CveEstatusSiguiente") = -1 - EditarOC = False - CveEstatusFinalOK = -2 - 'BtnCancelarPrevio.Disabled = True - BtnCancelarPrevio.Enabled = False - Folio = 0 - 'ViewState("ArrayCCNombre") = "" - ViewState("ArrayCC") = "" - ViewState("EjercicioAC") = -1 - ViewState("CveUsuario") = -1 - CveVenta = -1 - TieneVenta = -1 - TieneCompraInv = -1 - CveCompra = -1 - CveMovimientoAlmacenVenta = -1 - IDPolizaPresupuestal = -1 - CveIEAnticipo = -1 - - Dim drE As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = 'OC' AND TipoTermino = 3")).FiltroPrimero("") - If drE IsNot Nothing Then ViewState("CveEstatusInicialOC") = drE("CveEstatus").ToString.ToEntero - - ViewState("LigaOCs") = "" - ViewState("CveOCGeneradas") = New List(Of Integer) - ViewState("FolioOCGeneradas") = New List(Of Integer) - ViewState("IDPolizasGeneradas") = New List(Of Integer) - ViewState("FoliosPolizas") = New List(Of Integer) - Session("FileUpload") = "" - Session("FileExtension") = "" - Session("FileFolder") = "" - TipoOS = False - RequiereSubProyecto = If(CveEmpresaActual = 48, False, True) - txtPrecioUnitario.Attributes.Add("onKeyUp", "obtenertotal();") - TxtCant.Attributes.Add("onKeyUp", "obtenertotal();") - Dim script As String = "obtenertotal();" - ScriptManager.RegisterStartupScript(Me, GetType(Page), "anioactual", script, True) - VerificaPresupuesto = False - RVSubProyecto.Enabled = If(RequiereSubProyecto = True, True, False) - CargaComboCFDI() - CargaMonedas() - 'CargaUnidadesMedida() - BtnCancelar.Attributes.Add("disabled", "disabled") - TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)") - CargaTipoActivoFijo() - DrEliminados = New ArrayList - - CargaProveedores() - End Sub - - Private Sub CreaDTDetalles() - DtDetalle = New DataTable - DtDetalle.Columns.Add("Cantidad", GetType(Double)) - DtDetalle.Columns.Add("CveUnidadMedida", GetType(Integer)) - DtDetalle.Columns.Add("UM", GetType(String)) - DtDetalle.Columns.Add("CvePS", GetType(Integer)) - DtDetalle.Columns.Add("PS", GetType(String)) - DtDetalle.Columns.Add("IVA", GetType(Double)) - DtDetalle.Columns.Add("IVAPorcentaje", GetType(Double)) - DtDetalle.Columns.Add("IEPSPS", GetType(Double)) - DtDetalle.Columns.Add("IEPSPSPorcentaje", GetType(Double)) - DtDetalle.Columns.Add("IEPSPSIVA", GetType(Double)) - DtDetalle.Columns.Add("IEPSPSIVAPorcentaje", GetType(Double)) - DtDetalle.Columns.Add("RetIVA", GetType(Double)) - DtDetalle.Columns.Add("RetIVAPorcentaje", GetType(Double)) - DtDetalle.Columns.Add("RetISR", GetType(Double)) - DtDetalle.Columns.Add("RetISRPorcentaje", GetType(Double)) - DtDetalle.Columns.Add("Observacion", GetType(String)) - DtDetalle.Columns.Add("CveClasificacion", GetType(Integer)) - DtDetalle.Columns.Add("Clasificacion", GetType(String)) - DtDetalle.Columns.Add("CveSubFamilia", GetType(Integer)) - DtDetalle.Columns.Add("SubFamilia", GetType(String)) - - DtDetalle.Columns.Add("CveProyecto", GetType(Integer)) - DtDetalle.Columns.Add("Proyecto", GetType(String)) - DtDetalle.Columns.Add("CveSubProyecto", GetType(Integer)) - DtDetalle.Columns.Add("SubProyecto", GetType(String)) - DtDetalle.Columns.Add("Importe", GetType(Double)) - DtDetalle.Columns.Add("Descuento", GetType(Double)) - DtDetalle.Columns.Add("Total", GetType(Double)) - - DtDetalle.Columns.Add("Codigo", GetType(String)) - DtDetalle.Columns.Add("CodigoAF", GetType(String)) - DtDetalle.Columns.Add("CveActivoFijo", GetType(Integer)) - DtDetalle.Columns.Add("TipoDato", GetType(Integer)) ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - DtDetalle.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) - DtDetalle.Columns.Add("CveOrdenCompra", GetType(Integer)) - - DtDetalle.Columns.Add("CveOrdenCompraPadre", GetType(Integer)) - DtDetalle.Columns.Add("FolioOrdenCompraPadre", GetType(Integer)) - DtDetalle.Columns.Add("CveOrdenCompraHija", GetType(Integer)) - DtDetalle.Columns.Add("FolioOrdenCompraHija", GetType(Integer)) - - 'AC - DtDetalle.Columns.Add("CvePresupuestoEgreso", GetType(Integer)) - DtDetalle.Columns.Add("IdCuentaPorEjercer", GetType(String)) - DtDetalle.Columns.Add("IdCuentaComprometido", GetType(String)) - DtDetalle.Columns.Add("CveProgramaOperativo", GetType(Integer)) - DtDetalle.Columns.Add("CveUnidadAdministrativa", GetType(Integer)) - DtDetalle.Columns.Add("CveFuenteFinanciamiento", GetType(Integer)) - DtDetalle.Columns.Add("CveTipoGasto", GetType(Integer)) - DtDetalle.Columns.Add("CveClasificacionOG", GetType(Integer)) - - DtDetalle.Columns.Add("FolioCompra", GetType(Integer)) - DtDetalle.Columns.Add("CveCompra", GetType(Integer)) - DtDetalle.Columns.Add("CveProveedor", GetType(Integer)) - - DtDetalle.Columns.Add("CveContratoDetalle", GetType(Integer)) - DtDetalle.Columns.Add("CantidadNoEditable", GetType(Double)) - - ' DtDetalle.Columns.Add("ClasificacionOG", GetType(String)) - - End Sub - Private Sub CargaDetallesCotizacion() - - If CveCotizacion > 0 Then - Dim ObjVentas As New ClsVentas - If ObjVentas.GetVentaDetalle(CveCotizacion) Then - - For Each RowV As DataRow In ObjVentas.DtResultados.Rows - 'If Not IsNothing(RowV) Then - Dim dr As DataRow = DtDetalle.NewRow - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=RowV("CvePS").ToString.ToEntero).FiltroPrimero("") - If DrPS Is Nothing Then - Alert("Ocurrió un error al cargar la información de los productos. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - dr("Cantidad") = RowV("Cantidad") - dr("CveUnidadMedida") = RowV("CveUM") - dr("UM") = RowV("UM") - dr("CvePS") = RowV("CvePS") - dr("PS") = RowV("CodigoPS") - dr("IVA") = 0 - dr("IVAPorcentaje") = DrPS("IVA").ToString.ToDouble - dr("RetIVA") = 0 - dr("RetIVAPorcentaje") = DrPS("RetIVA").ToString.ToDouble - dr("RetISR") = 0 - dr("RetISRPorcentaje") = DrPS("RetISR").ToString.ToDouble - dr("IEPSPS") = 0 - dr("IEPSPSPorcentaje") = DrPS("IEPSPorcentaje").ToString.ToDouble - dr("IEPSPSIVA") = 0 - dr("IEPSPSIVAPorcentaje") = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) - dr("Observacion") = RowV("Obs") - dr("CveClasificacion") = RowV("CveClasificacion") - dr("Clasificacion") = RowV("Clasificacion") - - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - dr("CveProyecto") = "-1" - dr("Proyecto") = "Sin Proyecto" - Else - dr("CveProyecto") = RowV("CveProyecto") - dr("Proyecto") = If(RowV("CveProyecto").ToString.ToEntero > 0, RowV("Proyecto"), "Sin Proyecto") - End If - - dr("CveSubProyecto") = RowV("CveSubProyecto") - dr("SubProyecto") = If(RowV("CveSubProyecto").ToString.ToEntero > 0, RowV("SubProyecto"), "Sin SubProyecto") - dr("Importe") = 0 - dr("Descuento") = 0 - dr("Total") = 0 - - dr("CodigoAF") = "" - dr("CveActivoFijo") = -1 - dr("TipoDato") = 0 ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - dr("CveOrdenCompraDetalle") = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 - dr("CveOrdenCompra") = -1 - - 'dr("CvePresupuestoEgreso") = HdnCvePresupuesto.Value.ToEntero - dr("IdCuentaPorEjercer") = -1 - dr("IdCuentaComprometido") = -1 - - dr("CveProgramaOperativo") = -1 - dr("CveUnidadAdministrativa") = -1 - dr("CveFuenteFinanciamiento") = -1 - dr("CveTipoGasto") = -1 - dr("CveClasificacionOG") = -1 - - DtDetalle.Rows.Add(dr) - - Next - CargaDatosDetalles() - End If - ObjVentas.Dispose() - End If - End Sub - Protected Sub CargaEstatusUsuarios() - 'Dim objEstatusUsuarios As New ClsOC - - 'If objEstatusUsuarios.GetEstatusUsuarios(UsuarioActual.CveUsuario, -1, -1, -1, CveEmpresaActual) Then - ' If DtEstatusUsuarios Is Nothing Then - ' DtEstatusUsuarios = objEstatusUsuarios.DtResultados.FiltraParametros(String.Format("Tipo = '{0}'", TipoOC), "CveEstatusSiguiente") - ' ElseIf HacerMerge = True Then - ' DtEstatusUsuarios.Merge(objEstatusUsuarios.DtResultados.FiltraParametros(String.Format("Tipo = '{0}'", TipoOC), "CveEstatusSiguiente")) - ' End If - 'End If - - 'objEstatusUsuarios.Dispose() - - DtEstatusUsuarios = GlobalDTOCEstatusUsuarios(CveEmpresaActual, UsuarioActual.CveUsuario, TipoOC) - - End Sub - Protected Sub CargaSuperior() - If CboE.SelectedValue.ToEntero > 0 Then - Dim RowActual As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue)) - If Not IsNothing(RowActual) Then - - hdnCveSuperior.Value = "-1" - 'Si el TipoTermino es diferente de 1 (Autorizada) y 2 (Rechazada), revisar cual seria el superior - If RowActual("TipoTermino").ToString.ToEntero <> 1 And RowActual("TipoTermino").ToString.ToEntero <> 2 AndAlso DtEstatusUsuarios IsNot Nothing Then - Dim TotalT As Decimal = LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal - - If DtDetalle IsNot Nothing Then - For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto"}).Rows - For Each RowE As DataRow In DtEstatusUsuarios.FiltraParametros(String.Format("{0} CveEstatus = {1} AND ((LimiteInferior IS NULL OR LimiteInferior <= {2}) AND (LimiteSuperior IS NULL OR LimiteSuperior >= {2})) ", If(Row("CveSubProyecto").ToString <> "", String.Format("CveSubProyecto = {0} AND ", Row("CveSubProyecto").ToString), ""), CboE.SelectedValue, TotalT)).Rows - hdnCveSuperior.Value = RowE("CveSuperior").ToString - Next - Next - End If - uppEstatus.Update() - End If - - - End If - End If - End Sub - Private Sub CargaFolios() - Dim ObjFolios As New ClsGralFolios() - TipoOC = If(TipoOS, "OS", TipoOC) - If ObjFolios.GetFolios(If(TipoOC = "REQ", "Req", TipoOC), CveEmpresaActual) Then - Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("Estado = 'Activo'") - 'Verificar primero en la sucursal del usuario - If DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows.Count > 0 Then - ViewState("CveFolio") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("CveFolio").ToString.ToEntero - ViewState("FolioActual") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("FActual").ToString - lblFolio.Text = TipoOC + " " + DT.Rows(0)("FActual").ToString - ElseIf DT.Rows.Count > 0 Then - ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero - ViewState("FolioActual") = DT.Rows(0)("FActual").ToString - lblFolio.Text = TipoOC + " " + DT.Rows(0)("FActual").ToString - Else - Alert("No tiene registrados Folios en esta sucursal.", TipoMensaje.MsgAdvertencia) - End If - - DT.Dispose() - End If - ObjFolios.Dispose() - End Sub - Protected Sub CargaEstatusUsuariosClasificaciones() - Dim ObjOC As New ClsOC - - If ObjOC.GetEstatusUsuariosClasificaciones(-1, UsuarioActual.CveUsuario, -1, -1, CveEmpresaActual) Then - DtEstatusUsuariosClasificaciones = ObjOC.DtResultados - Else - Alert("Ocurrió un error al obtener los permisos del usuario. Por favor vuelva cargar.", TipoMensaje.MsgError) - End If - - ObjOC.Dispose() - End Sub -#End Region - -#Region " CARGA DATOS " - Private Sub CargaDatos(pCveOrdenCompra As Integer) - - 'REINICIALIZA - TrPendientes.Visible = False - - Dim objOC As New ClsOC - - If objOC.GetOC(pCveOrdenCompra, CveEmpresaActual, CveUsuario:=UsuarioActual.CveUsuario) AndAlso objOC.DtResultados.Rows.Count > 0 Then - CveEmpresaActual = objOC.CveEmpresa - InicializarValores() - - ViewState("CveOrdenCompra") = pCveOrdenCompra - ViewState("Folio") = objOC.Folio - ViewState("CveEstatus") = objOC.CveEstatus - ViewState("CveEstatusSiguiente") = objOC.CveEstatusSiguiente - ViewState("CveEstatusAnterior") = objOC.CveEstatusAnterior - ViewState("CveUsuario") = objOC.CveUsuario - ViewState("CvePresupuestoEgreso") = objOC.CvePresupuestoEgreso - - 'PROMOCIONES - TxtPromocion.Text = objOC.Promocion - ChkPromocion.Checked = TxtPromocion.Text.Trim.Length > 0 - If ChkPromocion.Checked Then - TxtPromocion.Style.Remove("display") - End If - - PanelContrato.Visible = False - MPContrato.Enabled = False - 'SOLICITUD DE ANTICIPO - CveIEAnticipo = objOC.CveIEAnticipo - LtImporteIEAnticipo.Text = objOC.ImporteAnticipo.FormatoNumero - LtFolioIEAnticipo.Text = $"{objOC.FolioIEAnticipo}" - - CveVenta = objOC.CveVenta - TieneVenta = objOC.TieneVenta - TieneCompraInv = objOC.TieneCompraInv - - CveCompra = objOC.CveCompra - CveMovimientoAlmacenVenta = objOC.CveMovimientoAlmacenVenta - - 'Anticipos - CargarOptionAnticipos() - Dim objbancos As New ClsBancos - If objbancos.GetPrePolizasDetalle(-1, -1, pCveOrdenCompra) AndAlso objbancos.DtResultados.Rows.Count > 0 Then - BtnSolicitudAnticipo.Visible = False - generarAnticipo.Text = "Ver Anticipo" - generarAnticipo.NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", objbancos.DtResultados.Rows(0)("CveIE")) - Else - generarAnticipo.NavigateUrl = String.Format("/Bancos/IE.aspx?CveOrdenCompra={0}&CveProveedor={1}", pCveOrdenCompra, objOC.CveProveedor.ToString) - End If - objbancos.Dispose() - - CveCotizacion = objOC.DtResultados.Rows(0)("CveCotizacion").ToString.ToEntero - If CveCotizacion > 0 Then - TRCotizacion.Visible = True - HLCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", CveCotizacion) - HLCotizacion.Text = objOC.DtResultados.Rows(0)("Cotizacion").ToString - End If - - ''DATOS DE VENTA - If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then - Ddlcliente.SelectedValueExist(objOC.CveCliente.ToString) - If Ddlcliente.SelectedValue <> objOC.CveCliente.ToString Then - Ddlcliente.Items.Insert(1, New ListItem(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Nombre", $"CveCliente = {objOC.CveCliente}"), objOC.CveCliente.ToString)) - End If - - DdlVendedor.SelectedValueExist(objOC.CveVendedor.ToString) - If DdlVendedor.SelectedValue <> objOC.CveVendedor.ToString Then - DdlVendedor.Items.Insert(1, New ListItem(GlobalDTVendedores(UsuarioActual.CveEmpresa, False).FiltroPrimeroValor("Vendedor", $"CveVendedor = {objOC.CveVendedor}"), objOC.CveVendedor.ToString)) - End If - End If - - EntregaDirecta = objOC.EntregaDirecta - ChkEntregaDirecta.Checked = EntregaDirecta - CambiaEntregaDirecta() - TxtLugarEntregaDirecta.Text = objOC.LugarEntrega - DdlDireccionEnvio.SelectedValueExist(objOC.CveDireccionEnvio.ToString) - DdlUsoCFDI.SelectedValueExist(objOC.CveUsoCFDI.ToString) - - If objOC.CveDireccionEnvio > 0 And DdlDireccionEnvio.SelectedValue.ToEntero <> objOC.CveDireccionEnvio Then - Alert("La dirección de envio no se pudo cargar correctamente. Por favor verifique que la dirección de envio aun este vigente.", TipoMensaje.MsgAdvertencia) - End If - - txtobsprioridad.Text = objOC.PrioridadObservacion - TxtFechaEstimadaEntrega.Text = If(objOC.FechaEstimadaEntrega.Year <> 1, objOC.FechaEstimadaEntrega.ToShortDateString(), "") - txtLugarEntrega.Text = objOC.LugarEntrega - TxtDescrip.Text = objOC.Descripcion - TxtJustificacion.Text = objOC.Justificacion - DdlMoneda.SelectedValueExist(objOC.CveMoneda.ToString) - - Select Case objOC.PorcentajeIVA.ToString.ToDouble - Case 0 - DdlIVA.SelectedValue = "1" - Case 0.16 - DdlIVA.SelectedValue = "1.16" - Case 0.08 - DdlIVA.SelectedValue = "1.08" - End Select - 'If objOC.PorcentajeIVA.ToString.ToDouble = 0 Then DdlIVA.SelectedValue = "1" Else DdlIVA.SelectedValue = "1.16" - - DdlPrioridad.SelectedValueExist(objOC.Prioridad.ToString) - ChkCotizacion.Checked = objOC.RequiereCotizacion - tabCotizaciones.Enabled = objOC.RequiereCotizacion - tabCotizaciones.UpdatePanelID = uppOpciones.ID - TxtGuia.Text = objOC.Guia - - TxtFecha.ToolTip = objOC.Fecha.ToString("dd/MM/yyyy HH:mm") - TxtFecha.Text = objOC.Fecha.ToString("dd/MM/yyyy") - - ''RETENSIONES - CargaRetenciones(objOC.RetIVA, objOC.RetISR, objOC.IEPS) - - lblNombreUsuario.Text = objOC.NombreUsuario - - LblCodigo.Text = objOC.Codigo - TxtFolioAdicional.Text = objOC.FolioAdicional - - If Not IsNothing(objOC.Tipo) Then - - Select Case objOC.Tipo.ToUpper - Case "OC" - ViewState("TipoOC") = objOC.Tipo - ViewState("TipoLargo") = "Orden de Compra" - - 'ENTREGA DIRECTA VIEJO - If EntregaDirecta Then - ChkEntregaDirecta.Checked = True - If CveVenta > 0 And CveCompra > 0 And CveMovimientoAlmacenVenta <= 0 Then - HLGenerarRecepcion.Visible = True - HLGenerarRecepcion.NavigateUrl = $"/Inventarios/RecepcionAlmacen.aspx?CveCompra={CveCompra}&CveVenta={CveVenta}" - ElseIf Not CveVenta > 0 Then - HLGenerarVenta.Visible = True - HLGenerarVenta.NavigateUrl = $"/Ventas/Ventas.aspx?CveOC={pCveOrdenCompra}" - End If - - 'BLOQUEA POR SI YA TIENE VENTA - If CveVenta > 0 Then - DdlVendedor.Enabled = False - Ddlcliente.Enabled = False - ChkEntregaDirecta.Enabled = False - End If - End If - - HLGenerarVenta.Visible = True - HLGenerarVenta.NavigateUrl = $"/Ventas/Ventas.aspx?CveOC={pCveOrdenCompra}" - - lblFolio.Text = String.Format("OC {0}", objOC.Folio) - lblTipoPadreHijo.Text = "REQ" - ChkCotizacion.Visible = False - - If UsuarioActual.Empresa.UsaAC Then - ActivaAC() - End If - - If objOC.IdPoliza > 0 Then - HplCompraContabilizada.Text = "Si" : HplCompraContabilizada.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", objOC.IdPoliza) : trContabilizada.Visible = True - IDPolizaPresupuestal = objOC.IdPoliza - Else - HplCompraContabilizada.Text = "No" - End If - - DdlProveedores.SelectedValueExist(objOC.CveProveedor.ToString) - - 'CARGAMOS LA SUCURSAL SI NO EXISTE SE AGREGA MATRIZ - Dim CveProveedorSucursal As Integer = IIf(objOC.CveProveedorSucursal.ToEntero = -1, 0, objOC.CveProveedorSucursal.ToEntero).ToString.ToEntero - DivProveedorSucursal.Visible = True - DdlProveedorSucursal.DataSource = GlobalDTProveedorSucursales(objOC.CveProveedor) - DdlProveedorSucursal.DataBind() - DdlProveedorSucursal.Items.Insert(0, New ListItem("Matriz", "0")) - DdlProveedorSucursal.SelectedValueExist(CveProveedorSucursal) - - 'CARGA CONTACTOS DE LA SUCURSAL PROVEEDOR - - If objOC.CveProveedorContacto.ToEntero > 0 Then - Dim ObjProveedor As ClsCompProveedores = New ClsCompProveedores - DivProveedorContacto.Visible = True - 'FILTRADO DE CONTACTOS GENERALES O DE MATRIZ SE HACE CON CVESUCURSAL = 0 - If ObjProveedor.GetProveedoresContactos(-1, objOC.CveProveedor, CveProveedorSucursal) Then - DdlProveedorContacto.DataSource = ObjProveedor.DtResultados - DdlProveedorContacto.DataBind() - DdlProveedorContacto.SelectedValueExist(objOC.CveProveedorContacto) - End If - ObjProveedor.Dispose() - End If - - If objOC.CveUsuarioAsignado > 0 Then - TrUsuarioAsignado.Visible = True - LblUsuarioAsignado.Text = objOC.UsuarioAsignado - End If - - - Case "REQ" - ViewState("TipoOC") = objOC.Tipo - ViewState("TipoLargo") = "Requisición" - lblFolio.Text = "REQ " + objOC.Folio.ToString - lblTipoPadreHijo.Text = "OC" - ChkCotizacion.Visible = True - DdlProveedores.SelectedValueExist(objOC.CveProveedor.ToString) - - If objOC.CveProveedorSucursal.ToEntero > 0 Then - DivProveedorSucursal.Visible = True - DdlProveedorSucursal.DataSource = GlobalDTProveedorSucursales(objOC.CveProveedor) - DdlProveedorSucursal.DataBind() - DdlProveedorSucursal.SelectedValueExist(objOC.CveProveedorSucursal.ToString) - End If - - - EditarOC = False - Case "OS" - ViewState("TipoOC") = "REQ" - ViewState("TipoLargo") = "Orden de Servicio" - lblFolio.Text = "OS " + objOC.Folio.ToString - 'lblTipoPadreHijo.Text = "OC" - ChkCotizacion.Visible = True - TipoOS = True - EditarOC = False - End Select - - End If - - 'If objOC.TipoTermino = 2 Then - ' TrCancelacion.Visible = True - ' TxtMotivoCancelacion.Text = objOC.Cancelacion - 'End If - - - CargaEstatusInicialFinal() - - - 'Se agregan a el Combo - 'el EstatusActual, que es el que aparecera seleccionado - 'el EstatusSiguiente, que si el usuario tiene permiso podra cambiarlo - 'el EstatusRechazado, que si el usuario tiene permiso podra cambiarlo - - 'DtEstatusUsuarios.FiltraParametros("TipoTermino <> 2", "Nivel Desc", {"CveEstatus", "Estatus"}) - 'GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente)) - - CboE.DataSource = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' AND TipoTermino <> 2", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente)) - CboE.DataBind() - - - lblPendientes.Text = objOC.Pendiente.ToString - If objOC.Pendiente > 0 Then - - If objOC.Pendiente > 1 Then - lblPendientes.Text = objOC.Pendiente.ToString & " Articulos Pendientes de vincular." - Else - lblPendientes.Text = objOC.Pendiente.ToString & " Articulo Pendiente de vincular." - End If - - TrPendientes.Visible = True - Else - TrPendientes.Visible = False - End If - - CargaEstatusUsuarios() - - If CveEstatus = CveEstatusFinalError Then - CboE.DataSource = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente)) - CboE.DataBind() - End If - - If objOC.GetOrdenesDetalle(pCveOrdenCompra) Then - DtDetalle = objOC.DtResultados - End If - - 'Recorrer todos los SubProyectos agregados, PARA CUESTIONES DE CAMBIO DE ESTATUS - SubProyectosNoAutorizados = New List(Of String) - Dim OCCancelable As Integer = 0 - Dim OCCancelablePermiso As Integer = 0 - - - If DtDetalle IsNot Nothing Then - For Each Row As DataRow In DtDetalle.Rows - If EditarOC AndAlso Row("CveOrdenCompraPadre").ToString.ToEntero > 0 Then - EditarOC = False - Exit For - End If - Next - - For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows - If Row("CveSubProyecto").ToString.ToEntero > 0 AndAlso CveEstatus > 0 Then - - If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus IN ({1},{2})", Row("CveSubProyecto"), CveEstatus, CveEstatusSiguiente)).Rows.Count = 0 Then 'RMF- 2016.06.02 - Cambio de CveEstatus, antes tenia CveEstatusSiguiente se cambio a CveEstatus. - SubProyectosNoAutorizados.Add(Row("SubProyecto").ToString) - CboE.BackColor = Drawing.Color.Silver - CboE.Enabled = False - GvD.Columns(9).Visible = False 'No permitir la edicion - 'GvD.Columns(9).Visible = True - ChkCotizacion.Enabled = False - TxtDescrip.Enabled = False - TxtJustificacion.Enabled = False - TxtFechaEstimadaEntrega.Enabled = False - txtLugarEntrega.Enabled = False - TxtLugarEntregaDirecta.Enabled = False - gvCotizaciones.Enabled = True - DdlProveedores.Enabled = False - DdlIVA.Enabled = False - DdlUsoCFDI.Enabled = False - ImgCambiaProv.Visible = False - OCCancelable = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion - UPProv.Update() - Else - If OCCancelable = 0 Then OCCancelable = 2 'sino ha entrado a cancelable - End If - - If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CveEstatusFinalError)).Rows.Count = 0 Then - OCCancelablePermiso = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion - Else - If OCCancelablePermiso = 0 Then OCCancelablePermiso = 2 'sino ha entrado a cancelable - End If - - End If - Next - - TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString) - Else - Alert($"Ocurrió un error al cargar los detalles de la {TipoLargo}. Por favor vuelva a intentar", TipoMensaje.MsgError) - End If - - 'EDICION - 'CUANDO EL LA REGISRO Y TIENE ACCESO A ESE ESTATUS - If objOC.CveUsuario = UsuarioActual.CveUsuario AndAlso (DtEstatusUsuarios.FiltraParametros(String.Format(" CveEstatus = {0}", CveEstatus)).Rows.Count >= 1 Or CveEstatus = 0) Then - GvD.Columns(9).Visible = True 'No permitir la edicion - ChkCotizacion.Enabled = True - TxtDescrip.Enabled = True - TxtJustificacion.Enabled = True - TxtFechaEstimadaEntrega.Enabled = True - txtLugarEntrega.Enabled = True - TxtLugarEntregaDirecta.Enabled = True - gvCotizaciones.Enabled = True - DdlProveedores.Enabled = True - DdlUsoCFDI.Enabled = True - DdlIVA.Enabled = True - ImgCambiaProv.Visible = True - UPProv.Update() - End If - - If objOC.CveEstatus = 0 Then CboE.Items.Add(New ListItem("Pre Solicitud", "0")) - CboE.SelectedValueExist(objOC.CveEstatus.ToString) - - 'es decir, si tiene permiso por ser el usuario que aprueba en el estatus actual o tiene el permiso para cancelar en el catalogo - If (OCCancelable = 2 OrElse OCCancelablePermiso = 2) And (CveEstatus <> CveEstatusFinalError OrElse CveEstatus <> CveEstatusFinalOK OrElse UsuarioActual.TienePermisoProceso(148).ToEntero > 0) Then - BtnCancelar.Enabled = True - 'BtnCancelarPrevio.Disabled = False - BtnCancelarPrevio.Enabled = True - - If IDPolizaPresupuestal > 0 Then - BtnCancelar.ToolTip = String.Format("¿Está seguro que desea cancelar la {0} y la poliza asociada?", TipoLargo) - Else - BtnCancelar.ToolTip = String.Format("¿Está seguro que desea cancelar la {0}?", TipoLargo) - End If - End If - - 'Permisos, para cambiar el proveedor en una OC - If objOC.Tipo.ToUpper = "OC" AndAlso UsuarioActual.TienePermisoProceso(111) Then - DdlProveedores.Enabled = True - DdlProveedores.SelectedValueExist(objOC.CveProveedor.ToString) - DdlIVA.Enabled = True - ImgCambiaProv.Visible = True - UPProv.Update() - End If - - If DdlProveedores.SelectedValue <> objOC.CveProveedor.ToString Then - DdlProveedores.Items.Insert(1, New ListItem(GlobalDTCompProveedores(CveEmpresaActual).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {objOC.CveProveedor}"), objOC.CveProveedor.ToString)) - End If - - CargaCotizaciones(CveOrdenCompra) - - - 'Si requiere cotizacion y el estatus siguiente es el final, desabilitar el combo del estatus - If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then - CboE.Enabled = False - LblMsgEstatus.Visible = True - LblMsgEstatus.Text = "Cotización requerida para avanzar" - BtnGuardar.Enabled = False - Else - BtnGuardar.Enabled = True - CboE.Enabled = True - LblMsgEstatus.Visible = False - End If - - BtnGuardar.Visible = True - trAddDetalle.Visible = True - fsSeguimiento.Visible = True - fsHistorial.Visible = True - CargaHistorial() - 'cuando esta autorizada se habilita el imprimir OrElse (objOC.Tipo.ToUpper = "REQ" AndAlso objOC.TipoTermino = 1) - If UsuarioActual.Empresa.Funcionalidad(107) = "" OrElse (objOC.Tipo.ToUpper = "OC") Then - HLImprimir.Visible = True - HLImprimir.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra))) - End If - - HlEvento.Visible = True - HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveOC=" & CveOrdenCompra & "&TB_iframe=true&height=370&width=600;" - - hplAgregarCotizacion.NavigateUrl = "/OC/RepCotizacionesDetalle.aspx?CveOrdenCompra=" & CveOrdenCompra & "&TB_iframe=true&height=600&width=830;" - hplEnviarCorreo.NavigateUrl = "/OC/CotizacionEnvio.aspx?CveOrdenCompra=" & CveOrdenCompra & "&TB_iframe=true&height=600&width=900;" - - CargaEventoBitacora() - If CveEstatus = CveEstatusFinalError Or CveEstatus = CveEstatusFinalOK Then DesHabilitar() Else VerificaSiRequiereCotizacion() - - If EditarOC Then - CboE.Enabled = True - GvD.Columns(9).Visible = True 'Permitir la edicion - ChkCotizacion.Enabled = True - TxtDescrip.Enabled = True - TxtJustificacion.Enabled = True - TxtFechaEstimadaEntrega.Enabled = True - txtLugarEntrega.Enabled = True - TxtLugarEntregaDirecta.Enabled = True - gvCotizaciones.Enabled = True - DdlProveedores.Enabled = True - DdlUsoCFDI.Enabled = True - DdlIVA.Enabled = True - ImgCambiaProv.Visible = True - UPProv.Update() - End If - - 'ASIGNA ESTATUS OC - CboE_SelectedIndexChanged(New Object, New EventArgs) - - CargaDatosDetalles() - - '17-04-2018 - Si es OC registrada carga link a PopUpPaqueteriaGuia - If ChkEntregaDirecta.Checked And CveOrdenCompra > 0 Then - LnkAgregarGuia.Visible = True - UpAcciones.Update() - End If - - uppEstatus.Update() - UPPEmp.Update() - - Else - ViewState("Tipo") = "REQ" - ViewState("TipoOC") = "REQ" - ViewState("TipoLargo") = "Requisición" - - Alert("No se encontro la OC/REQ Solicitada.", TipoMensaje.MsgError) - InicializarValores() - - End If - - objOC.Dispose() - - 'CARGA MOVTOS DE ALMACEN - InicializaMovtosAlmacen() - - - End Sub - - Protected Sub CargaHistorial() - Dim ObjGral As New ClsGenerales - - If ObjGral.GetHistorialBitacora(-1, CveOrdenCompra, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then - ViewState("DtHistorial") = ObjGral.DtResultados - - GVH.DataSource = DtHistorial - GVH.DataBind() - uppHistorial.Update() - - End If - Dim objOC As New ClsOC - If objOC.GetOrdenesEstatus(CveOrdenCompra) Then - gvEstatus.DataSource = objOC.DtResultados - gvEstatus.DataBind() - - End If - - uppSeguimientoEstatus.Update() - ObjGral.Dispose() - objOC.Dispose() - End Sub - Protected Sub btnCargaCotizaciones_Click(sender As Object, e As EventArgs) - Dim objCotizacion As New ClsOC - - 'ACTUALIZA REQUIERE COTIZACION DE LA REQ - If Not objCotizacion.UpdateOrdenCompraCotizacion(CveOrdenCompra) Then - Alert("Ocurrió un error al actualizar el estatus Decimal cotización.", TipoMensaje.MsgError) - End If - objCotizacion.Dispose() - - CargaCotizaciones(CveOrdenCompra) - End Sub - Protected Sub CargaCotizaciones(CveOrdenCompra As Integer) - NumCotizacionesGanadoras = 0 - NumCotizaciones = 0 - TotalCotizacionesGanadoras = 0 - - Dim objCotizaciones As New ClsOC - - '------------------------------------------------------------------------ - Dim Ds As DataSet = objCotizaciones.GetCotizacionesTabla(CveOrdenCompra) - For i = 1 To 10 - gvCotizaciones.Columns(i + 2).Visible = False - Next - - If Ds IsNot Nothing AndAlso Ds.Tables.Count = 2 Then - DtCotizaciones = Ds.Tables(1) - - ProveedoresCotizacion = New ArrayList - For Each Dr2 As DataRow In DtCotizaciones.Rows - ProveedoresCotizacion.Add(Dr2("RazonSocial")) - Next - - NumCotizaciones = DtCotizaciones.Rows.Count - - For i = 1 To NumCotizaciones - gvCotizaciones.Columns(i + 2).Visible = True - Next - - gvCotizaciones.DataSource = Ds.Tables(0) - gvCotizaciones.DataBind() - End If - - objCotizaciones.Dispose() - uppCotizaciones.Update() - - If gvCotizaciones.Rows.Count = 0 Then - 'btnGeneraOrdenes.Visible = False - uppOpciones.Update() - Else - 'btnGeneraOrdenes.Enabled = If(gvCotizaciones.Rows.Count - 1 = NumCotizacionesGanadoras And CveEstatusSiguiente = CveEstatusFinalOK, True, False) - - - 'If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then - If ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then - CboE.Enabled = False - LblMsgEstatus.Visible = True - LblMsgEstatus.Text = "Cotización requerida para avanzar" - BtnGuardar.Enabled = False - Else - BtnGuardar.Enabled = True - CboE.Enabled = True - LblMsgEstatus.Visible = False - End If - - uppEstatus.Update() - uppOpciones.Update() - End If - - If NumCotizaciones > 0 Then - HLImprimirCotizacion.Visible = True - HLImprimirCotizacion.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CotOC&CVEOC={0}", CveOrdenCompra))) - End If - End Sub - -#End Region - -#Region " CARGA C O M B O S " - Private Sub CargaMonedas() - DdlMoneda.DataSource = GlobalDTMonedas - DdlMoneda.DataBind() - If CveEmpresaActual.Contiene(13, 14, 24) Then - DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1")) - End If - End Sub - Private Sub CargaClasificaciones() - Dim TipoClasif As Integer = -1 - If isWithFamily() Then - DdlClasificacion.DataSource = GlobalDTSubFamilias(CveEmpresaActual).FiltraParametros("EstatusCategoria = 'Activo' AND Estatus = 'Activo'") - Else - DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual) - End If - - DdlClasificacion.DataBind() - End Sub - Private Sub CargaProyectos() - DdlProyecto.Items.Clear() - DdlProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) - DdlProyecto.DataBind() - DdlProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DdlProyectoContrato.Items.Clear() - DdlProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) - DdlProyectoContrato.DataBind() - DdlProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - Private Sub CargaSubProyectos() - Dim Filtro As String = If(DdlProyecto.SelectedValue.ToEntero > 0, String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero), "") - - DdlSubProyecto.Items.Clear() - If Filtro <> "" Or UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, CveEmpresaActual, 1)) 'DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) ' GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) - End If - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - Private Sub CargaSubProyectosEdit(DdlSP As DropDownList, CveProyectoEdit As Integer) - DdlSP.Items.Clear() - DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(CveProyectoEdit) - DdlSP.DataBind() - DdlSP.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - Private Sub CargaUnidadesMedida() - CboUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.Empresa.CveEmpresa) - CboUnidadMedida.DataBind() - End Sub - Private Sub CargaProveedores() - DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual) - DdlProveedores.DataBind() - DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1")) - UPProv.Update() : UPPEmp.Update() - End Sub - - Private Sub CargaProveedorSucursal() - DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual) - DdlProveedores.DataBind() - DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1")) - UPProv.Update() : UPPEmp.Update() - End Sub - Private Sub CargaEstatusOC() - CboE.Items.Clear() - CboE.DataSource = DtEstatusUsuarios.FiltraParametros("TipoTermino <> 2", "Nivel Desc", {"CveEstatus", "Estatus"}) - CboE.DataBind() - CboE.Items.Add(New ListItem("Pre Solicitud", "0")) - - End Sub - Private Sub CargaEstatusInicialFinal() - 'Cargar el Estatus Inicial - Dim drInicial As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) - Dim drFinalOK As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) - Dim drFinalError As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) - - If Not drInicial Is Nothing Then CveEstatusInicial = drInicial("CveEstatus").ToString.ToEntero : EstatusInicial = drInicial("Estatus").ToString Else CveEstatusInicial = -1 : EstatusInicial = "" - If Not drFinalOK Is Nothing Then CveEstatusFinalOK = drFinalOK("CveEstatus").ToString.ToEntero : EstatusFinalOK = drFinalOK("Estatus").ToString Else CveEstatusFinalOK = -1 : EstatusFinalOK = "" - If Not drFinalError Is Nothing Then CveEstatusFinalError = drFinalError("CveEstatus").ToString.ToEntero : EstatusFinalError = drFinalError("Estatus").ToString Else CveEstatusFinalError = -1 : EstatusFinalError = "" - End Sub - Private Sub CargaComboCFDI() - DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI - DdlUsoCFDI.DataBind() - End Sub -#End Region - -#Region " DDLS: PROYECTO " - - Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - CargaSubProyectos() - End Sub - - Protected Sub DdlProyectoEdit_SelectedIndexChanged(sender As Object, e As EventArgs) - Dim ddl As DropDownList = DirectCast(sender, DropDownList) - Dim DdlSP As DropDownList = Nothing - - Dim gvr As GridViewRow = DirectCast(ddl.NamingContainer, GridViewRow) - - DdlSP = GvD.Rows(gvr.RowIndex).FCDropDownList("DdlSubProyectoEdit") - If DdlSP IsNot Nothing Then CargaSubProyectosEdit(DdlSP, ddl.SelectedValue.ToEntero) - End Sub -#End Region - -#Region " DDLS: CLASIFICACION Y PS " - - Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged - CargaPS(DdlClasificacion.SelectedValue.ToEntero, DdlP2) - UPPDetalle.Update() - End Sub - Protected Sub DdlClasificacion_SelectedIndexChanged1(sender As Object, e As EventArgs) - - Dim Gvr As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow) - 'Dim filtro As String = "" - Dim CveClasificacion = DirectCast(sender, DropDownList).SelectedValue.ToEntero - - ' filtro = String.Format("CveClasificacion={0}", CveClasificacion) - - Gvr.FCDropDownList("DdlPS").Items.Clear() - Gvr.FCDropDownList("DdlPS").DataSource = GlobalDTPSSimplificado(CveEmpresaActual, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo") - Gvr.FCDropDownList("DdlPS").DataBind() - Gvr.FCDropDownList("DdlPS").Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) - - End Sub - Protected Sub DdlPS_SelectedIndexChanged1(sender As Object, e As EventArgs) - - Dim Gvr As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow) - Dim filtro As String = "" - Dim Cvepsgvd = DirectCast(sender, DropDownList).SelectedValue.ToEntero - If Cvepsgvd > 0 Then - Dim CboUM As DropDownList = Gvr.FCDropDownList("CboUnidadMedidaEdit") - Dim TxtPU As TextBox = Gvr.FCTextBox("TxtImporteEdit") - CboUM.DataSource = GlobalDTProductosServiciosEquivalencias(Cvepsgvd, -1) - CboUM.DataBind() - End If - End Sub - Protected Sub LbVerInventario_Click(sender As Object, e As EventArgs) Handles LbVerInventario.Click - RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacen.aspx?CvePS={0}',800,547,'N');", DdlP2.SelectedValue)) - End Sub - Private Sub CargaPS(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost) - 'Dim filtro As String = "" - - 'If CveClasificacion > 0 Then - ' ' If isWithFamily() Then - ' ' filtro = String.Format("CveSubFamilia={0}", CveClasificacion) - ' ' Else - ' filtro = String.Format("CveClasificacion={0}", CveClasificacion) - ' 'End If - 'Else - ' ' If isWithFamily() Then - ' ' filtro = "CveSubFamilia > -1" - ' ' Else - ' filtro = "CveClasificacion > -1" - ' ' End If - 'End If - If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then - Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString) - ' Objeto.ddlWS.Attributes.Add("data-pagina", "oc/oc") - Objeto.SelectedText = "" - Objeto.SelectedValue = "-1" - Else - Objeto.ddl.Items.Clear() - Objeto.ddl.DataSource = GlobalDTPSSimplificado(CveEmpresaActual, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo") - Objeto.ddl.DataBind() - 'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) - Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) - End If - End Sub - Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlP2.selectedindexchange - Dim tempdt As DataTable = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero) - - If tempdt.Rows.Count > 0 Then - - If isWithFamily() Then - DdlClasificacion.SelectedValueExist(tempdt.Rows(0)("CveSubFamilia").ToString) - Else - DdlClasificacion.SelectedValueExist(tempdt.Rows(0)("CveClasificacion").ToString) - End If - - CboUnidadMedida.Items.Clear() - - CboUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(DdlP2.SelectedValue.ToEntero, -1) - CboUnidadMedida.DataBind() - - If CveEmpresaActual = 119 Then - txtPrecioUnitario.Text = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero).FiltroPrimeroValor("Precio") - ElseIf CveEmpresaActual.Contiene(72, 80) Then - Dim ObjOC As New ClsOC - - If ObjOC.GetUltimoCostoPS(DdlP2.SelectedValue.ToEntero) Then - If ObjOC.DtResultados.Rows.Count.ToEntero > 0 Then - LblUltimoCosto.Visible = True - LblUltimoCosto.Text = $"UC: {ObjOC.DtResultados(0)("UltimoCosto").ToString.FormatoNumero}" - Else - LblUltimoCosto.Visible = False - LblUltimoCosto.Text = "" - End If - End If - ObjOC.Dispose() - End If - End If - End Sub -#End Region - -#Region " AGREGAR " - Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click - - 'VALIDA CVEPS - If DdlP2.SelectedValue().ToEntero <= 0 Then - Alert("El campo 'Producto/Servicio' es necesario, por favor seleccione uno.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - - If DtDetalle IsNot Nothing Then - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero).FiltroPrimero("") - If DrPS Is Nothing Then - Alert("Ocurrió un error al cargar la información del producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then - Dim ObjCon As New ClsContratos - Dim CvePresupuesto As Integer = 0 - Dim Autorizado As Double = 0 - Dim Ejercido As Double = 0 - If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero - If CvePresupuesto > 0 Then - If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then - Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble - End If - End If - If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{DateTime.Now.Year - 1}".ToDate, Now, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, - DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble - End If - End If - End If - End If - End If - ObjCon.Dispose() - - If CvePresupuesto > 0 And Autorizado > 0 Then - Dim Diferencia As Double = (Ejercido + If(txtPrecioUnitario.Text.ToDouble > 0, (txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble) - TxtDescuentoAdd.Text.ToDouble, 0)) - Autorizado - If Diferencia > 0 Then - Alert($"No hay presupuesto disponible en el subproyecto {DdlSubProyecto.SelectedItem.Text} y la clasificación {DdlClasificacion.SelectedItem.Text} se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - End If - - - Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble - Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble - Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble - - 'If IvaPS = -1 Then 'IVA DE LA SUCURSAL - ' IvaPS = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble - 'End If - - Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble - Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) - Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero) - Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero) - Dim Proyecto As String = If(DdlProyecto.SelectedValue.ToString.ToEntero > 0, DdlProyecto.SelectedItem.Text, "Sin Proyecto") - Dim SubProyecto As String = If(DdlSubProyecto.SelectedValue.ToString.ToEntero > 0, DdlSubProyecto.SelectedItem.Text, "Sin SubProyecto") - Dim TotalPS As Double = If(txtPrecioUnitario.Text.ToDouble > 0, (txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble) - TxtDescuentoAdd.Text.ToDouble, 0) - Dim ImportePS As Double = If(txtPrecioUnitario.Text.ToDouble > 0, txtPrecioUnitario.Text.ToDouble, 0) - Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 - - 'Si es Proveedor Extranjero el IVA es 0% - If GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {DdlProveedores.SelectedValue} AND RFC = 'XEXX010101000'").Rows.Count = 1 Then - IvaPS = 0 - End If - - AddPS(TxtCant.Text, DdlP2.SelectedValue.ToEntero, DdlP2.SelectedText, TxtObsPS.Text, ImportePS, TxtDescuentoAdd.Text.ToDouble, TotalPS, - CboUnidadMedida.SelectedValue.ToEntero, IvaPS, IEPSPS, IEPSPSIVA, DdlClasificacion.SelectedValue.ToEntero, CboUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedItem.Text, DdlProyecto.SelectedValue.ToEntero, Proyecto, - DdlSubProyecto.SelectedValue.ToEntero, SubProyecto, LblCodigo.Text, HdnCveActivoFijo.Value.ToEntero, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer, - IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero, - DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR) - - TxtCant.Text = "" - CboUnidadMedida.SelectedIndex = 0 - DdlClasificacion.SelectedIndex = 0 - DdlP2.SelectedValue = "-1" - DdlP2.SelectedText = "Seleccione un producto o servicio" - - txtPrecioUnitario.Text = "" - TxtObsPS.Text = "" - HdnCveActivoFijo.Value = "" - LblCodigo.Text = "" - LblCvePOA.Text = "" - TxtCant.Focus() - - Total.Text = "0.00" - TxtDescuentoAdd.Text = "0.00" - - End If - - CargaSuperior() - CargaDatosDetalles() - - UPPDetalle.Update() - - - End Sub - Private Sub AddPS(Cantidad As String, CvePS As Integer, PS As String, Observaciones As String, Importe As Double, Descuento As Double, Total As Double, CveUnidadMedida As Integer, IVAPS As Double, IEPSPS As Double, IEPSPSIVA As Double, CveClasificacion As Integer, - UM As String, Clasificacion As String, CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String, CodigoAF As String, CveActivoFijo As Integer, TipoDato As Integer, - CveOrdenCompraDetalle As Integer, CveOrdenCompra As Integer, IdCuentaPorEjercer As Integer, IdCuentaComprometido As Integer, CveProgramaOperativo As Integer, CveUnidadAdministrativa As Integer, - CveFuenteFinanciamiento As Integer, CveTipoGasto As Integer, CveClasificacionOG As Integer, RetIVA As Double, RetISR As Double, Optional CveContratoDetalle As Integer = 0) - - If DtDetalle IsNot Nothing Then - Dim dr As DataRow = DtDetalle.NewRow - dr("Cantidad") = Cantidad - dr("CvePS") = CvePS - dr("PS") = PS - dr("Observacion") = Observaciones - dr("Importe") = Math.Round(Importe, 6) - dr("Descuento") = Descuento - dr("Total") = Math.Round(Total, 2) - dr("CveUnidadMedida") = CveUnidadMedida - dr("IVAPorcentaje") = If(IVAPS = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVAPS) - dr("IVA") = Math.Round(dr("IVAPorcentaje").ToString.ToDouble * Total, 2) - dr("IEPSPSPorcentaje") = IEPSPS - dr("IEPSPS") = Math.Round(IEPSPS * Total, 2) - dr("IEPSPSIVAPorcentaje") = IEPSPSIVA - dr("IEPSPSIVA") = Math.Round(IEPSPSIVA * Total, 2) - dr("RetIVAPorcentaje") = RetIVA - dr("RetIVA") = Math.Round(RetIVA * Total, 2) - dr("RetISRPorcentaje") = RetISR - dr("RetISR") = Math.Round(RetISR * Total, 2) - dr("CveClasificacion") = CveClasificacion - dr("UM") = UM - dr("Clasificacion") = Clasificacion - If isWithFamily() Then - dr("CveSubFamilia") = dr("CveClasificacion") - dr("SubFamilia") = dr("Clasificacion") - End If - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - dr("CveProyecto") = "-1" - dr("Proyecto") = "Sin Proyecto" - Else - If CveSubProyecto > 0 Then - dr("CveProyecto") = CveSubProyecto - dr("Proyecto") = Proyecto - End If - End If - dr("CveSubProyecto") = CveSubProyecto - dr("SubProyecto") = SubProyecto - dr("CodigoAF") = CodigoAF - dr("CveActivoFijo") = CveActivoFijo - dr("TipoDato") = 0 ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - dr("CveOrdenCompraDetalle") = CveOrdenCompraDetalle - dr("CveOrdenCompra") = CveOrdenCompra - dr("IdCuentaPorEjercer") = IdCuentaPorEjercer - dr("IdCuentaComprometido") = IdCuentaComprometido - dr("CveProgramaOperativo") = CveProgramaOperativo - dr("CveUnidadAdministrativa") = CveUnidadAdministrativa - dr("CveFuenteFinanciamiento") = CveFuenteFinanciamiento - dr("CveTipoGasto") = CveTipoGasto - dr("CveClasificacionOG") = CveClasificacionOG - dr("CveContratoDetalle") = CveContratoDetalle - - DtDetalle.Rows.Add(dr) - DtDetalle.AcceptChanges() - End If - - - End Sub -#End Region - -#Region " GUARDAR " - Private Function ValidaGuardar() As Boolean - Dim TieneError = False - - 'VALIDA QUE TENGA REGISTROS - If Not GvD.Rows.Count > 0 Then - Alert(String.Format("La {0} debe de tener registros", TipoLargo), TipoMensaje.MsgAdvertencia) - Return True - End If - - 'VALIDA DESCUENTOS - If Not ValidarDescuentos() Then - 'Alert("Los descuentos no cuadran. Por favor de verificar.", TipoMensaje.MsgAdvertencia) - Return True - End If - - 'SI ES REQUISICION, NO REQUIERE COTIZACION Y ES ESTATUSFINALOK... ENTONCES DEBE DE TENER UN PROVEEDOR SELECCIONADO Y LOS PRECIOS CAPTURADOS - 'If (TipoOC = "REQ" And ChkCotizacion.Checked = False And CboE.SelectedValue.ToEntero = CveEstatusFinalOK) OrElse TipoOC = "OC" Then - ' If Not UsuarioActual.TienePermisoProceso(179) Then 'PERMISO PARA GENERAR CON O - ' If DtDetalle.FiltraParametros("Importe = -1 OR Importe IS NULL OR Importe = 0").Rows.Count > 0 Then Alert("DEBE CAPTURAR EL PRECIO UNITARIO DE CADA PRODUCTO/SERVICIO", TipoMensaje.MsgAdvertencia) : Return True - ' If DdlProveedores.SelectedValue.ToEntero <= 0 Then Alert("DEBE CAPTURAR EL PROVEEDOR", TipoMensaje.MsgAdvertencia) : Return True - ' End If - 'End If - - - 'VALIDA SUBPROYECTOS - SubProyectosNoAutorizados = New List(Of String) - Dim TotalT As Decimal = If(ChkCotizacion.Checked, TotalCotizacionesGanadoras, LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal) - TotalT = If(DdlMoneda.SelectedValue <> "1", (TotalT * GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal), TotalT) - If RequiereSubProyecto = True AndAlso CboE.SelectedValue.ToEntero > 0 Then ' cuando se cumpla la restriccion y no sea "Pre Solicitud" - - - - If DdlMoneda.SelectedValue <> "1" And GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal = 0 Then - Alert("No se pudieron verificar los limites del usuario porque no se pudo cargar el tipo de cambio", TipoMensaje.MsgAdvertencia) - Return True - End If - - For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows - 'Primero Filtrar por SubProyecto - Dim SubPAut As DataTable = DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CboE.SelectedValue)) - If SubPAut.Rows.Count = 0 Then - SubProyectosNoAutorizados.Add(String.Format("{0}", Row("SubProyecto").ToString)) - If UsuarioActual.CveUsuario <> 100 Then TieneError = True - ElseIf TotalT > 0 AndAlso SubPAut.FiltraParametros(String.Format("((LimiteInferior IS NULL OR LimiteInferior <= {0}) AND (LimiteSuperior IS NULL OR LimiteSuperior >= {0})) ", TotalT)).Rows.Count = 0 Then - 'Segundo Filtrar por Limite Inferior y Superior - SubProyectosNoAutorizados.Add(String.Format("{0}, {1} - {2} ({3} - {4} Dolares)", Row("SubProyecto").ToString, FormatCurrency(SubPAut.Rows(0)("LimiteInferior").ToString.ToDecimal), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal), FormatCurrency(SubPAut.Rows(0)("LimiteInferior").ToString.ToDecimal / GlobalTipoCambio(TxtFecha.Text.ToDate)), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal / GlobalTipoCambio(TxtFecha.Text.ToDate)))) - If UsuarioActual.CveUsuario <> 100 Then TieneError = True - End If - Next - - If ChkCotizacion.Checked = True And SubProyectosNoAutorizados.Count > 0 Then - SubProyectosNoAutorizados.Add(String.Format("

    Total de Cotizaciones: {0}", FormatCurrency(TotalT))) - End If - - If TieneError Then - If SubProyectosNoAutorizados.Count > 0 Then - Dim ss As String = "" - For Each S As String In SubProyectosNoAutorizados - ss += "
    - " + S - Next - Alert(String.Format("No está autorizado a modificar el SubProyecto
    {0}", ss), TipoMensaje.MsgAdvertencia) - End If - End If - End If - - - Dim PermisoActual As DataTable - For Each row As GridViewRow In GvD.Rows - - If row.DataKey("SubProyecto").ToString = "Seleccione" Then - TieneError = True - Alert("El campo SubProyecto es obligatorio.", TipoMensaje.MsgAdvertencia) - Exit For - End If - - 'SI TIENE ALGUN PERMISO SE VALIDA, SI NO TIENE NINGUNA ES LIBRE - If DtEstatusUsuariosClasificaciones IsNot Nothing AndAlso DtEstatusUsuariosClasificaciones.Rows.Count > 0 Then - PermisoActual = DtEstatusUsuariosClasificaciones.FiltraParametros($"CveClasificacion = {row.DataKey("CveClasificacion")} AND CveSubProyecto = {row.DataKey("CveSubProyecto")} AND CveEstatus = {CboE.SelectedValue}") - If PermisoActual.Rows.Count = 1 Then - - 'SI TIENE LIMITE INFERIOR SE VALIDA QUE ESTE EN EL RANGO - If PermisoActual.Rows(0)("LimiteInferior").ToString.ToDecimal > 0 Then - If Not row.DataKey("Importe").ToString.ToDecimal >= PermisoActual.Rows(0)("LimiteInferior").ToString.ToDecimal Then - Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("CveClasificacion")} con la Clasificación {row.DataKey("SubProyecto")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - If UsuarioActual.CveUsuario <> 100 Then TieneError = True - Exit For - End If - End If - - 'SI TIENE LIMITE SUPERIOR SE VALIDA QUE ESTE EN EL RANGO - If PermisoActual.Rows(0)("LimiteSuperior").ToString.ToDecimal > 0 Then - If Not row.DataKey("Importe").ToString.ToDecimal <= PermisoActual.Rows(0)("LimiteSuperior").ToString.ToDecimal Then - Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("CveClasificacion")} con la Clasificación {row.DataKey("SubProyecto")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - If UsuarioActual.CveUsuario <> 100 Then TieneError = True - Exit For - End If - End If - - Else - Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("SubProyecto")} con la Clasificación {row.DataKey("Clasificacion")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - If UsuarioActual.CveUsuario <> 100 Then TieneError = True - Exit For - End If - End If - - Next - - If ChkEntregaDirecta.Checked And ((TxtLugarEntregaDirecta.Visible = True And TxtLugarEntregaDirecta.Text.Trim = "") Or (DdlDireccionEnvio.Visible = True And Not DdlDireccionEnvio.SelectedValue.ToEntero > 0)) Then - TieneError = True - Alert("El campo Lugar Entrega es obligatorio. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - End If - - If TipoOC = "REQ" And CveOrdenCompra > 0 Then - Dim ObjOC As New ClsOC - If ObjOC.GetOC(CveOrdenCompra, CveEmpresaActual, CveUsuario:=UsuarioActual.CveUsuario) Then - ViewState("CveEstatus") = ObjOC.CveEstatus - End If - ObjOC.Dispose() - - If CveEstatus = CveEstatusFinalOK Then - Alert("La requisición ya fue autorizada por otro usuario u otra sesión. Favor de verificar.", TipoMensaje.MsgAdvertencia, "location.reload();") - TieneError = True - 'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True) - End If - End If - - 'Valida que este seleccionada una sucursal si el proveedor tiene una - If DivProveedorSucursal.Visible = True And DdlProveedorSucursal.SelectedValue.ToEntero = -1 Then - Alert("Tiene que seleccionar la sucursal del proveedor.", TipoMensaje.MsgAdvertencia) - TieneError = True - End If - - If ChkCotizacion.Checked And DtDetalle.FiltraParametros("ISNULL(CveProveedor,0) <= 0", "CveProveedor").Rows.Count > 0 Then - Alert("Todos los conceptos de la Requisición deben tener proveedor ganador seleccionado.", TipoMensaje.MsgAdvertencia) - TieneError = True - End If - - - Return TieneError - End Function - Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click - 'If CveEmpresaActual = 66 AndAlso notienepresupuesto() Then - ' Exit Sub - 'End If - - - 'VALIDACIONES PARA GUARDAR - If ValidaGuardar() Then Exit Sub - - - 'VARIABLES - Dim CveProveedorSucursal As Integer = -1 - Dim CveProveedorContacto As Integer = -1 - Dim TieneError As Boolean = False - Dim CveProveedor As Integer = -1 - Dim GeneraReq = False - Dim IDPoliza As Integer = 0 - Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal) - If TxtFechaEstimadaEntrega.Text.Trim = "__/__/____" Then TxtFechaEstimadaEntrega.Text = "" - Dim Promocion = TxtPromocion.Text.Trim - - - 'EMPIEZA OBJETOS Y TRASACCIONES - Dim OC As New ClsOC - Dim OCBitacora As New ClsOIEventos(OC.IniciaTransacSQL()) - Dim ObjInventarios As New ClsInventarios(OC.IniciaTransacSQL()) - Dim ObjConta As New ClsContabilidad(OC.IniciaTransacSQL()) - - Dim Conta As ClsContPAQi = Nothing - If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then - Conta = New ClsContPAQi(UsuarioActual.Empresa) - Conta.IniciaTransacSQL() - End If - - 'LUGAR ENTREGA - Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim) - LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, "")) - - 'GUARDA' - If EsNuevo Then - - - 'SI ES NUEVO, ES REQUISICION, ES ESTATUSFINALOK... VA A SER ORDEN DE COMPRA - Dim CveEstatusNuevo As Integer = CboE.SelectedValue.ToEntero - If (TipoOC = "REQ" AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK) OrElse (TipoOC = "OC") Then - GeneraReq = If(TipoOC = "REQ", True, False) - ViewState("TipoLargo") = "Orden Compra" - CveEstatusNuevo = If(TipoOC = "OC", CboE.SelectedValue.ToEntero, CveEstatusInicialOC) - End If - - 'siempre se esta guardando el proveedor - If Not ChkCotizacion.Checked Then - CveProveedor = DdlProveedores.SelectedValue.ToEntero - CveProveedorSucursal = DdlProveedorSucursal.SelectedValue.ToEntero - CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero - End If - - Dim CveOrdenCompraPadre As Integer = -1 - - If GeneraReq Then - If Not TieneError Then ' AGREGAR REQUISICION - If OC.AddOrdenCompra("REQ", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CboE.SelectedValue.ToEntero, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), - LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal, - RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, - RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, - IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then - - CveOrdenCompraPadre = OC.CveOrdenCompra - If CveOrdenCompraPadre > 0 Then - For Each dr As DataRow In DtDetalle.Rows - If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then - TieneError = True - Exit For - End If - Next - Else - TieneError = True - End If - TipoOC = "OC" - Else - TieneError = True - End If - - - End If - End If - - If Not TieneError Then ' AGREGAR ORDEN DE COMPRA - - - If OC.AddOrdenCompra(If(TipoOS, "OS", TipoOC), -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusNuevo, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), - LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal, - RequiereCotizacion:=ChkCotizacion.Checked, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, - PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), - CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=LtImporteIEAnticipo.Text.ToDouble, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, - Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then - CveOrdenCompra = OC.CveOrdenCompra - CveEstatus = CboE.SelectedValue.ToEntero - - If TipoOC = "OC" And CboE.SelectedValue.ToEntero > 0 Then - - ''''' - '17/04/2018 - Se cambia por nuevo esquema de paqueterias guias. - 'ENTREGA FORANEOS - 'If ChkEntregaDirecta.Checked Then - ' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, CveOrdenCompra) Then - ' TieneError = True - ' End If - 'End If - - If Not TieneError Then - CveOCGeneradas.Add(CveOrdenCompra) - FolioOCGeneradas.Add(OC.Folio) - End If - End If - - Folio = OC.Folio - Else - TieneError = True - End If - - If CveOrdenCompra > 0 Then - - 'USA AC - If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA - ' SI NO TIENE COTIZACION SE GENERA 1 POLIZA - If Not ChkCotizacion.Checked Then - - If GuardaAC(Conta, OC, CveOrdenCompra, Folio) <= 0 Then - TieneError = True - End If - - End If - End If - 'TERMINA: USA AC - - - 'AGREGA BITACORA TEMPORAL - If DtBitacora IsNot Nothing AndAlso DtBitacora.Rows.Count > 0 Then - TieneError = GuardaBitacoraTemporal(OCBitacora) - End If - - - For Each dr As DataRow In DtDetalle.Rows - If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then - TieneError = True - Exit For - End If - Next - Else - TieneError = True - End If - End If - - - If Not TieneError Then - If Conta IsNot Nothing Then Conta.Commit() - OC.Commit() - BtnGuardar.Visible = False - Else - If Conta IsNot Nothing Then Conta.RollBack() - If OC IsNot Nothing Then OC.RollBack() - Alert("Hubo un Error al registrar", TipoMensaje.MsgError) - CveOrdenCompra = -1 - End If - - ViewState("LigaOCs") = If(CveEstatusNuevo <> CboE.SelectedValue.ToEntero, String.Format("{1}", CveOrdenCompra, Folio), "") - - If CveOrdenCompra > 0 Then - Dim ImprimirOC = String.Format("Imprimir Orden de Compra ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra))) - Dim Msg As New StringBuilder - - 'Cuando Estatus = "Autorizada" - 'If CboE.SelectedValue.ToEntero > 0 Then - ' Dim Row As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("CveEstatus = {0}", CboE.SelectedValue)).Rows(0) - ' 'If (Row IsNot Nothing AndAlso Row("TipoTermino").ToString.ToEntero = 1) Then EnviarCorreoOrdenCompra(CveOrdenCompra) - 'End If - - 'POSIBLE COMENTAR - QUITAR - 'Envío de correo, con el detalle y la información cargada de nuevo - If CveEstatus >= 0 Then - EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text, False) - End If - - If LigaOCs = "" Then - Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente
    {2}", TipoLargo, Folio, If(TipoOC = "OC", ImprimirOC, "")) - Else - Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente

    Orden de Compra:{2}
    {3}", TipoLargo, Folio, LigaOCs, If(TipoOC = "OC", ImprimirOC, "")) - End If - - 'IMPRIME LIGA A POLIZAS - If IDPolizasGeneradas.Count > 0 Then - Msg.Append("

    Polizas generadas:") - For i = 0 To IDPolizasGeneradas.Count - 1 - Msg.AppendFormat("
    Poliza: {1}", IDPolizasGeneradas(i), FoliosPolizas(i)) - Next - End If - - Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""") - - 'GeneraPDF(CveOrdenCompra) - TxtDescrip.Text = "" - TxtJustificacion.Text = "" - End If - - - 'UPDATE' - ElseIf CveOrdenCompra > 0 Then - Dim FueModificada As Boolean = False - - 'siempre se esta guardando el proveedor - If Not ChkCotizacion.Checked Then CveProveedor = DdlProveedores.SelectedValue.ToEntero - - If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), - LugarEntrega, DdlMoneda.SelectedValue.ToEntero, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.SelectedValue.ToEntero, - DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), - Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto, - PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then - TieneError = True - End If - - 'USA AC - If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA - ' SI NO TIENE COTIZACION SE GENERA 1 POLIZA - If Not ChkCotizacion.Checked AndAlso TipoOC.ToUpper <> "REQ" Then - - If GuardaAC(Conta, OC, CveOrdenCompra, lblFolio.Text.ToEntero) <= 0 Then - TieneError = True - End If - End If - End If - 'TERMINA: USA AC - - 'inserto los nuevos detalles - If Not TieneError Then - For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato = 0").Rows - If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero), Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then - TieneError = True - Exit For - Else - FueModificada = True - End If - Next - End If - - 'Edito los detalles - If Not TieneError Then - - Dim DtInvOC As New DataTable - Dim DtInvOCDiferencias As New DataTable - DtInvOCDiferencias.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) - DtInvOCDiferencias.Columns.Add("CveAlmacen", GetType(Integer)) - DtInvOCDiferencias.Columns.Add("CveMovimiento", GetType(Integer)) - DtInvOCDiferencias.Columns.Add("Diferencia", GetType(Double)) - DtInvOCDiferencias.Columns.Add("ImporteMovto", GetType(Double)) - DtInvOCDiferencias.Columns.Add("ImporteMovtoDLLS", GetType(Double)) - DtInvOCDiferencias.Columns.Add("TipoCambioAjuste", GetType(Double)) - DtInvOCDiferencias.Columns.Add("ConceptoSalida", GetType(Integer)) - DtInvOCDiferencias.Columns.Add("PS", GetType(String)) - - If ObjInventarios.GetMovimientosOC(CveOrdenCompra, UsuarioActual.CveEmpresa) Then - DtInvOC = ObjInventarios.DtResultados.FiltraParametros("CvePS > 0").Copy - End If - - If Not TieneError Then - For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows - If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, - dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero), dr("Descuento").ToString.ToDouble, - IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then - TieneError = True - Exit For - Else - FueModificada = True - - 'PARA PREPOLIZA DE AJUSTE ALMACEN POR ADELANTADO - Dim DrInvOCDiferencias As DataRow - For Each DrInv As DataRow In DtInvOC.FiltraParametros($"CveOrdenCompraDetalle = {dr("CveOrdenCompraDetalle").ToString.ToEntero} AND CveCompraDetalle < 1").Rows - DrInvOCDiferencias = DtInvOCDiferencias.NewRow - DrInvOCDiferencias("TipoCambioAjuste") = DrInv("TipoCambioAjuste").ToString.ToDouble - DrInvOCDiferencias("Diferencia") = ((dr("Importe").ToString.ToDouble * DrInv("TipoCambioAjuste").ToString.ToDouble) - DrInv("PU").ToString.ToDouble) * DrInv("Cantidad").ToString.ToDouble - DrInvOCDiferencias("CveAlmacen") = DrInv("CveAlmacen").ToString.ToEntero - DrInvOCDiferencias("CveOrdenCompraDetalle") = DrInv("CveOrdenCompraDetalle").ToString.ToEntero - DrInvOCDiferencias("ImporteMovto") = dr("Importe").ToString.ToDouble * DrInv("TipoCambioAjuste").ToString.ToDouble - DrInvOCDiferencias("ImporteMovtoDLLS") = If(DrInv("TipoCambioAjuste").ToString.ToDouble > 1, dr("Importe").ToString.ToDouble, -1) - DrInvOCDiferencias("CveMovimiento") = DrInv("CveMovimiento").ToString.ToEntero - DrInvOCDiferencias("ConceptoSalida") = DrInv("ConceptoSalida").ToString.ToEntero - DrInvOCDiferencias("PS") = dr("PS").ToString - DtInvOCDiferencias.Rows.Add(DrInvOCDiferencias) - Next - - End If - Next - End If - - 'PREPOLIZA DE AJUSTE ALMACEN POR ADELANTADO - If Not TieneError Then - If DtInvOCDiferencias.Rows.Count > 0 And TipoOC = "OC" Then - - 'VARIABLES - Dim DiferenciaInvOC = 0.0D - Dim CveMovimientoAlmacen = -1 - Dim CveOCDetalle = -1 - Dim CveAlmacen = -1 - Dim IdCtaContableAlmacen As Integer = -1 - Dim CveCuentaAlmacen As Integer = -1 - Dim IdCtaContableRecepcionOC = -1 - Dim IdCtaContableRecepcionOCME = -1 - Dim IdCtaContableRecepcionOCComplementaria = -1 - Dim IdCtaContableRecepcionOCER = -1 - Dim IdCtaContableRecepcionOCERME = -1 - Dim IdCtaContableRecepcionOCERComplementaria = -1 - Dim Fecha As Date = Now - Dim CveProveedorInvOC As Integer = -1 - Dim ProveedorNombre As String = "" - Dim SerieFolio As String = "" - Dim CvePrePoliza As Integer = -1 - Dim ConceptoSalida = -1 - Dim TCInvOC = 0.0D - Dim ImporteME = 0.0D - Dim ImporteMEComp = 0.0D - Dim SumatoriaMN = 0.0D - Dim SumatoriaME = 0.0D - Dim SumatoriaMEComp = 0.0D - Dim PS As String = "" - - If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableRecepcionOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - End If - - If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableRecepcionOCME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - End If - - If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableRecepcionOCComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - End If - - If ObjConta.GetRetCuenta(177, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableRecepcionOCER = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - End If - - If ObjConta.GetRetCuenta(232, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableRecepcionOCERME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - End If - - If ObjConta.GetRetCuenta(233, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableRecepcionOCERComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - End If - - If Not TieneError Then - Fecha = Now - CveProveedor = DdlProveedores.SelectedValue.ToEntero - ProveedorNombre = DdlProveedores.SelectedItem.Text - SerieFolio = $"OC: {Folio}" - - If DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1) AND Diferencia <> 0 ").Rows.Count > 0 Then - - CvePrePoliza = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, DiferenciaInvOC, DiferenciaInvOC, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - 'AJUSTES EN PREPOLIZA - SALIDA CONTABLE (CON SALIDA DE VENTA O SIN SALIDA) - For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1)").Rows - CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero - CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero - CveOCDetalle = DrDiferencias("CveOrdenCompraDetalle").ToString.ToEntero - ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero - PS = DrDiferencias("PS").ToString - - DiferenciaInvOC = DrDiferencias("Diferencia").ToString.ToDecimal ' DtInvOCDiferencias.SUMD("Diferencia", $"CveAlmacen = {CveAlmacen} AND CveMovimiento = {CveMovimientoAlmacen} AND ConceptoSalida = {ConceptoSalida}") - TCInvOC = DrDiferencias("TipoCambioAjuste").ToString.ToDecimal ' DtInvOCDiferencias.FiltroPrimeroValor("TipoCambioAjuste", $"CveAlmacen = {CveAlmacen} AND CveMovimiento = {CveMovimientoAlmacen} AND ConceptoSalida = {ConceptoSalida}").ToDecimal - IdCtaContableAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero - CveCuentaAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero - - If DiferenciaInvOC.RoundSQL() <> 0 Then - - If CvePrePoliza > 0 Then - - If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then - ImporteME = (DiferenciaInvOC / TCInvOC).RoundSQL() - ImporteMEComp = (DiferenciaInvOC - ImporteME).RoundSQL() - - 'COMPLEMENTARIA - 'If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteME, SerieFolio, 232, SerieFolio, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCERME), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, CveCuenta:=CveCuentaAlmacen, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMEComp, SerieFolio, 233, SerieFolio, Fecha, IdCtaContableRecepcionOCERComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - ' TieneError = True - ' Exit For - ' End If - 'Else - ' TieneError = True - ' Exit For - 'End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, 177, SerieFolio, Fecha, IdCtaContableRecepcionOCER, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveOCDetalle:=CveOCDetalle) Then - TieneError = True - Exit For - End If - - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, SerieFolio, 228, SerieFolio, Fecha, IdCtaContableRecepcionOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, SerieFolio, 229, SerieFolio, Fecha, IdCtaContableRecepcionOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - TieneError = True - Exit For - End If - Else - TieneError = True - Exit For - End If - Else - '2018.11.24 se cambia concepto 176, de cargo a abono negativo., petición MALL - '2019.03.26 se cambia concepto 177, de abono a cargo., petición MALL - '2019.04.10 se cambia concepto 177, de cargo a abono., petición MALL - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, If(ConceptoSalida = 0, 177, 177), SerieFolio, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCER), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveCuenta:=CveCuentaAlmacen, CveOCDetalle:=CveOCDetalle) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaInvOC, SerieFolio, 176, SerieFolio, Fecha, IdCtaContableRecepcionOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=DiferenciaInvOC, CveOCDetalle:=CveOCDetalle) Then - TieneError = True - Exit For - End If - Else - TieneError = True - Exit For - End If - End If - If Not TieneError Then - - If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then - TieneError = True - End If - End If - - End If - End If - Next - End If - - 'AJUSTES EN INVENTARIO - For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,2)", "", {"CveAlmacen", "ConceptoSalida", "CveMovimiento"}).Rows - CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero - CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero - ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero - - DiferenciaInvOC = DtInvOCDiferencias.SUMD("Diferencia", $"CveAlmacen = {CveAlmacen} And CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = {ConceptoSalida}") - TCInvOC = DtInvOCDiferencias.FiltroPrimeroValor("TipoCambioAjuste", $"CveAlmacen = {CveAlmacen} And CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = {ConceptoSalida}").ToDecimal - IdCtaContableAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero - CveCuentaAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero - - 'MODIFICACIÓN CONCEPTO - If ConceptoSalida = 0 Then - For Each DrAjuste As DataRow In DtInvOC.FiltraParametros($"CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = 0").Rows - If Not ObjInventarios.UpdateMovimientoDetalle(DrAjuste("Cantidad").ToString.ToDouble, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("CvePS").ToString.ToEntero, DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovto", $"CveOrdenCompraDetalle = {DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble, -1, DrAjuste("CveMovimientoDetalle").ToString.ToEntero, PUTC:=DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovtoDLLS", $"CveOrdenCompraDetalle = {DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble) Then - TieneError = True - Exit For - End If - Next - End If - - 'SALIDA ADMINISTRATIVA (CON SALIDA POR TRASPASO) -AJUSTE - If ConceptoSalida = 2 Then - Dim CveMovimientoSalidaAjuste = ObjInventarios.AddMovimiento(CveAlmacen, 3, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, MovimientoFijo:=True) - For Each DrAjuste As DataRow In DtInvOC.FiltraParametros($"CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = 2").Rows - If Not ObjInventarios.AddMovimientoDetalle(CveMovimientoSalidaAjuste, DrAjuste("Cantidad").ToString.ToDouble, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("PU").ToString.ToDouble, -1, CveOrdenCompraDetalle:=DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero) Then - TieneError = True - Exit For - End If - Next - Dim CveMovimientoEntradaAjuste = ObjInventarios.AddMovimiento(CveAlmacen, 2, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1) - If ObjInventarios.GetMovimientosDetalle(CveMovimientoSalidaAjuste, UsuarioActual.CveEmpresa) Then - For Each Dr As DataRow In ObjInventarios.DtResultados.Rows - If Not ObjInventarios.AddMovimientoDetalle(CveMovimientoEntradaAjuste, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovto", $"CveOrdenCompraDetalle = {Dr("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then - TieneError = True - Exit For - End If - Next - If TieneError Then - Exit For - End If - Else - TieneError = True - Exit For - End If - End If - Next - - End If - End If - End If - - End If - - 'elimino los detalles - If Not TieneError Then - For Each i As Integer In DrEliminados - If Not OC.RemoveOrdenCompraDetalle(i, UsuarioActual.CveUsuario) Then - TieneError = True - Exit For - Else - FueModificada = True - End If - Next - End If - - 'Actualizo el estatus - If Not TieneError Then - If CboE.SelectedValue.ToEntero <> CveEstatus Then - If Not OC.UpdateOrdenCompraEstatus(CboE.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then - TieneError = True - End If - End If - End If - - 'SI requiere Cotizacion y el estatus a el que se actualizo es el FinalOK, generar las ordenes de compra - If Not TieneError Then - If TipoOC.ToUpper = "REQ" And CveEstatusFinalOK = CboE.SelectedValue.ToEntero Then - TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) - End If - End If - - 'Si NO requiere cotizacion y el estatus que estamos guardando es el ultimo Generar una orden de compra a partir de una requisicion - If TipoOC = "REQ" And ChkCotizacion.Checked = False And CveEstatusSiguiente = CboE.SelectedValue.ToEntero And CveEstatusSiguiente = CveEstatusFinalOK Then - End If - - - - 'COMMIT - If Not TieneError Then - OC.Commit() - If Conta IsNot Nothing Then Conta.Commit() - - If LigaOCs = "" Then - Alert(String.Format("La {0} se guardó correctamente", TipoLargo), TipoMensaje.MsgInformacion) - Else - Dim ImprimirOC = "" - Dim Msg As New StringBuilder - - If CveOCGeneradas.Count = 1 Then - ImprimirOC = String.Format("
    Imprimir Orden de Compra ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOCGeneradas(0)))) - Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente

    Se Generó la Orden de Compra {2} - {3}", TipoLargo, Folio, LigaOCs, ImprimirOC) - Else - Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente

    Se Generaron las siguientes Ordenes de Compra {2}", TipoLargo, Folio, LigaOCs) - End If - - 'IMPRIME LIGA A POLIZAS - If IDPolizasGeneradas.Count > 0 Then - Msg.Append("

    Polizas generadas:") - For i = 0 To IDPolizasGeneradas.Count - 1 - Msg.AppendFormat("
    Poliza: {1}", IDPolizasGeneradas(i), FoliosPolizas(i)) - Next - End If - - Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""") - End If - - DrEliminados.Clear() - Else - OC.RollBack() - If Conta IsNot Nothing Then Conta.RollBack() - Alert("Hubo un error al registrar", TipoMensaje.MsgError) - End If - - End If - - - - 'TERMINA TODO POR SI OCURRIÓ ALGO RARO - If TieneError Then - If OC IsNot Nothing Then OC.RollBack() - If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then - If Conta IsNot Nothing Then Conta.RollBack() - End If - If OC IsNot Nothing Then OC.Dispose() - If Conta IsNot Nothing Then Conta.Dispose() - Else - 'TERMINA TODO POR SI OCURRIÓ ALGO RARO - If OC IsNot Nothing Then OC.Dispose() - If Conta IsNot Nothing Then Conta.Dispose() - - 'MANDA CORREOS SI EL ESTATUS ES MAYOR A 0 - If CboE.SelectedValue.ToEntero > 0 Then - Notificaciones() - End If - - 'LIMPIA VALORES GENERALES - VerificaPresupuesto = False - - 'RECARGA OC CUANDO SE ACTUALIZA PARA TRAERSE LOS DATOS DE DB - If Not EsNuevo Then - CargaDatos(CveOrdenCompra) - End If - End If - - - End Sub - Protected Function GeneraOrdenes(ByRef objOrdenCompra As ClsOC, Conta As ClsContPAQi, ByRef ObjInventarios As ClsInventarios) As Boolean - If TipoOS Then Return False - - Dim CveCotizacion As Integer = 0 - Dim CveColectiva As Integer = 0 - Dim HuboError As Boolean = False - Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal) - - Dim LigaOcsTemp = "" - Dim CveOCGeneradasTemp = New List(Of Integer) - Dim FolioOCGeneradasTemp = New List(Of Integer) - - - Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim) - LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, "")) - Dim Promocion = "-1" - Promocion = TxtPromocion.Text.Trim - - Try - If ChkCotizacion.Checked Then - Dim CveProveedor = -1 - Dim TotalCot = 0.0, IVACot = 0D, RetIVA = 0.0, RetISR = 0.0, PorIVA = 0.0, Porcentaje = 0.0 - Dim IdPoliza = -1 - - - For Each dr As DataRow In DtDetalle.FiltraParametros("", "CveProveedor").Rows - - 'SI ES DIFERENTE PROVEEDOR AGREGA UNA OC - If CveProveedor <> dr("CveProveedor").ToString.ToEntero Then - - CveProveedor = dr("CveProveedor").ToString.ToEntero - - Porcentaje = DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) / DtDetalle.SUM("Total") - PorIVA = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Rows(0)("IVA").ToString.ToDouble - IVACot = (DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) * PorIVA).ToString.ToDecimal - RetIVA = TxtRetIVA.Text.ToDecimal * Porcentaje - RetISR = TxtRetISR.Text.ToDecimal * Porcentaje - - If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, - CveUsuario, CveEmpresaActual, 0, pCveProveedor:=CveProveedor, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, - PorcentajeIVA:=PorIVA, IVA:=IVACot, RetIVA:=RetIVA.ToString.ToDecimal, RetISR:=RetISR.ToString.ToDecimal, IDPoliza:=IdPoliza, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, - EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, - CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=LtImporteIEAnticipo.Text.ToDouble, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero) Then - - 'CREA POLIZA POR CADA PROVEEDOR - - If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto AndAlso objOrdenCompra.Folio > 0 Then - IdPoliza = GuardaAC(Conta, objOrdenCompra, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio, CveProveedor) - If IdPoliza <= 0 Then - HuboError = True - Exit For - End If - End If - - '17/04/2018 - Se cambia por nuevo esquema de paqueterias guias. - 'ENTREGA FORANEOS - 'If ChkEntregaDirecta.Checked Then - ' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, objOrdenCompra.CveOrdenCompra) Then - ' HuboError = True - ' End If - 'End If - - If Not HuboError Then - LigaOcsTemp = String.Format("{0}
    {2}", LigaOcsTemp, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) - CveOCGeneradasTemp.Add(objOrdenCompra.CveOrdenCompra) - FolioOCGeneradasTemp.Add(objOrdenCompra.Folio) - End If - - - Else - HuboError = True - Exit For - End If - End If - - 'AGREGA DETALLES - If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then - HuboError = True - Exit For - End If - - Next - - 'SI NO HUBO ERROR AGREGA LAS LIGAS OC DE TODAS LAS OC GENERADAS - If Not HuboError Then - ViewState("LigaOCs") = String.Format("{0}{1}", LigaOCs, LigaOcsTemp) - Dim Index = 0 - For Each CveOC As Integer In CveOCGeneradasTemp - CveOCGeneradas.Add(CveOC) - FolioOCGeneradas.Add(FolioOCGeneradasTemp(Index)) - Index += 1 - Next - End If - - - Else - If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, - CveUsuario, CveEmpresaActual, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, - PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, - EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=LtImporteIEAnticipo.Text.ToDouble, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, - Promocion:=Promocion) Then - - - 'USA AC - If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA - ' SI NO TIENE COTIZACION SE GENERA 1 POLIZA - If Not ChkCotizacion.Checked Then - If GuardaAC(Conta, objOrdenCompra, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) <= 0 Then - HuboError = True - End If - End If - End If - 'TERMINA: USA AC - - 'CveOrdenCompra = objOrdenCompra.CveOrdenCompra - If Not HuboError Then - For Each dr As DataRow In DtDetalle.Rows - If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then - HuboError = True - Exit For - End If - Next - End If - - '17/04/2018 - Se cambia por nuevo esquema de paqueterias guias. - 'ENTREGA FORANEOS - 'If ChkEntregaDirecta.Checked Then - ' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, objOrdenCompra.CveOrdenCompra) Then - ' HuboError = True - ' End If - 'End If - - - If HuboError = False Then - ViewState("LigaOCs") = String.Format("{0}
    {2}", LigaOCs, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) - CveOCGeneradas.Add(objOrdenCompra.CveOrdenCompra) - FolioOCGeneradas.Add(objOrdenCompra.Folio) - End If - Else - HuboError = True - End If - - End If - - Catch ex As Exception - HuboError = True - End Try - - Return HuboError - End Function - Private Function GuardaAC(Conta As ClsContPAQi, OC As ClsOC, CveOC As Integer, FolioOC As Integer, Optional CveProveedor As Integer = -1) As Integer - Dim TieneError = False - Dim IDPoliza = -1 - Dim Folio = -1 - - - 'SI TIENE POLIZA ANTERIOR LA ELIMINA - If IDPolizaPresupuestal > 0 Then - If Not Conta.RemoveAllMovimientos(IDPolizaPresupuestal) Then - TieneError = True - End If - End If - - 'INGRESA POLIZA - If Not TieneError Then - Dim ConceptoRenglon As String = String.Format("GC - OC {0}. {1}", FolioOC, TxtDescrip.Text) - Dim Total As Decimal = LblTotal.Text.ToDecimal - Dim Fecha As Date = TxtFecha.Text.ToDate - - If Total > 0 Then - Total = Math.Round(Total, 2) - - 'INGRESA POLIZA SOLO CUANDO NO EXISTE YA UNA - If IDPolizaPresupuestal > 0 Then - IDPoliza = IDPolizaPresupuestal - Else - IDPoliza = Conta.AddPoliza(4, If(ConceptoRenglon.Length > 100, ConceptoRenglon.Substring(0, 99), ConceptoRenglon), 0, 0, UsuarioActual.CveUsuario, Fecha) - Folio = Conta.Folio - End If - End If - - If IDPoliza > 0 Then - - Dim DtPresupuestosTemp As DataTable - Dim IdCuentaComprometido, IdCuentaPorEjercer As Integer - - 'SI VIENE CON PROVEEDOR FILTRA SOLO LOS CONCEPTOS DEL PROVEEDOR - Dim DT = If(CveProveedor = -1, DtDetalle.Copy, DtDetalle.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Copy) - - Dim Presup = From gvr As DataRow In DT.Rows.Cast(Of DataRow)() - Group gvr By Grp = New With { - Key .CvePresupuestoEgreso = gvr("CvePresupuestoEgreso").ToString.ToEntero - } Into Group - Select Grp.CvePresupuestoEgreso, - TotalImporte = Group.Sum(Function(r) r("Total").ToString.ToDecimal) - - Dim tTotalIVA, tTotalGral, tIVA, tDiferenciaIVA, Importe, TotalDetalle As Decimal - Dim tPorIVA = 0D, tAjusteTotal = 0D, ipresup = 0 - - If CveProveedor > 0 Then - 'CUANDO VIENE DE COTIZACION - tTotalIVA = (DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) * tPorIVA).ToString.ToDecimal - tPorIVA = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Rows(0)("IVA").ToString.ToDecimal - tTotalGral = DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)).ToString.ToDecimal - Else - 'CUANDO NO VIENE DE COTIZACION - If TxtIVA.Visible Then - tTotalIVA = TxtIVA.Text.ToDecimal - Else - tTotalIVA = LblIVA.Text.ToDecimal - End If - - tTotalGral = LblTotal.Text.ToDecimal - tPorIVA = tTotalIVA / (tTotalGral - tTotalIVA) - End If - - tDiferenciaIVA = tTotalIVA - - For Each grp In Presup - Importe = grp.TotalImporte - TotalDetalle += Importe - ipresup += 1 - If Importe > 0 Then - - 'saco la proporcion de iva que le corresponde - tIVA = Math.Round(Importe * tPorIVA, 2) - - 'le sumo el iva al concepto - Importe += tIVA - - 'Presupuesto Egresos - DtPresupuestosTemp = DtPresupuestos.FiltraParametros(String.Format("CvePresupuestoEgreso = {0}", grp.CvePresupuestoEgreso)) - If DtPresupuestosTemp.Rows.Count <> 1 Then - TieneError = True : Exit For - End If - IdCuentaComprometido = DtPresupuestosTemp.Rows(0)("IdCuentaComprometido").ToString.ToEntero - IdCuentaPorEjercer = DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero - - If Conta.AddMovimiento(IDPoliza, IdCuentaComprometido, False, Importe, "", ConceptoRenglon, 0, Fecha, "") Then - If Not Conta.AddMovimiento(IDPoliza, IdCuentaPorEjercer, True, Importe, "", ConceptoRenglon, 0, Fecha, "") Then - TieneError = True : Exit For - End If - Else - TieneError = True : Exit For - End If - - End If - Next - - If Not TieneError Then - If Not OC.UpdateOrdenCompraPoliza(IDPoliza, CveOC) Then - TieneError = True - End If - End If - - If Not TieneError Then - If Not Conta.AjustaPoliza(IDPoliza) Then - TieneError = True - End If - End If - - ElseIf Total > 0 Then - TieneError = True - End If - End If - - If TieneError Then - IDPoliza = -1 - Else - 'GUARDA ID Y FOLIO PARA MOSTRAR LIGA A POLIZA EN ALERT - IDPolizasGeneradas.Add(IDPoliza) - FoliosPolizas.Add(Folio) - End If - - Return IDPoliza - End Function - -#End Region - -#Region " CANCELAR OC " - Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click - Dim ObjEventos As New ClsOIEventos - - If CveEstatusFinalError > 0 Then - Dim objOrdenCompra As New ClsOC - objOrdenCompra.IniciaTransacSQL() - Dim TieneError = False - - 'AC - Dim ObjAC As ClsContPAQi = Nothing - Dim PolizaCancelacion = -1 - If UsuarioActual.Empresa.UsaAC Then - ObjAC = New ClsContPAQi(UsuarioActual.Empresa) - ObjAC.IniciaTransacSQL() - End If - - - If Not objOrdenCompra.UpdateOrdenCompraEstatus(CveEstatusFinalError, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then - TieneError = True - End If - - If IDPolizaPresupuestal > 0 AndAlso UsuarioActual.Empresa.UsaAC Then - PolizaCancelacion = CancelarAC(ObjAC) - - If PolizaCancelacion = -1 Then - TieneError = True - End If - End If - - If Not TieneError Then - objOrdenCompra.Commit() - If ObjAC IsNot Nothing Then ObjAC.Commit() - - Dim Msg As New StringBuilder - Msg.AppendFormat("La {0} {1}", TipoLargo, If(IDPolizaPresupuestal > 0, "y su poliza asociada fueron cancelados correctamente", "fue cancelada correctamente")) - - 'POLIZA CANCELACION AC -- CUANDO SE GENERO UNA POLIZA NUEVA (NEGATIVA) - If PolizaCancelacion > 0 Then - Msg.AppendFormat("

    Ver Póliza de cancelación", PolizaCancelacion) - - If Not ObjEventos.AddEventoBitacora(String.Format("Folio de Cancelación: {1}", PolizaCancelacion, Folio), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then - TieneError = True - End If - End If - - Alert(Msg.ToString, TipoMensaje.MsgInformacion) - RegistraScript("$('#DivCancelarCompra').modal('hide');") - - EnviarCorreoCambioEstatus(CboE.SelectedValue.ToEntero, CboE.SelectedItem.Text) - EnviaCorreoSolicitudAnticipoCancelado() - CargaHistorial() - CargaDatos(CveOrdenCompra) - Else - Alert(String.Format("Ocurrió un error al cancelar la {0}. Por favor vuelva a intentar.", TipoLargo)) - objOrdenCompra.RollBack() - If ObjAC IsNot Nothing Then ObjAC.RollBack() - End If - - objOrdenCompra.Dispose() - If ObjAC IsNot Nothing Then ObjAC.Dispose() - Else - Alert("No tiene configurado un Estatus de Cancelación", TipoMensaje.MsgAdvertencia) - End If - End Sub - - Private Function CancelarAC(ObjAC As ClsContPAQi) As Integer - ' = 0: OK, NO OCUPO POLIZA DE CANCELACION - ' > 0: GENERO POLIZA DE CANCELACION - ' < 0: ERROR - - Dim ErrorCancelar = False - Dim IdPolizaNueva = 0 - - If IDPolizaPresupuestal > 0 Then - Dim dt As DataTable - If ObjAC.GetPoliza(IDPolizaPresupuestal, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then - dt = ObjAC.DtResultados - - If dt.Rows(0)("FechaPol").ToString.ToDate.Month < TxtFechaCancelacion.Text.ToDate.Month Or dt.Rows(0)("FechaPol").ToString.ToDate.Year < TxtFechaCancelacion.Text.ToDate.Year Then - ' MES ANTERIOR, MOVIMIENTOS CONTRARIOS (NEGATIVOS) - - 'CREA POLIZA NEGATIVA - IdPolizaNueva = ObjAC.AddPoliza(dt.Rows(0)("CodigoTipoPoliza").ToString.ToEntero, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), 0, 0, UsuarioActual.CveUsuario, Now) - - If IdPolizaNueva > 0 Then - 'DETALLES POLIZA NEGATIVA - For Each dr As DataRow In dt.Rows - If Not ObjAC.AddMovimiento(IdPolizaNueva, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "True", dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), dr("IdSegNeg").ToString.ToEntero, Now, "") Then - ErrorCancelar = True : Exit For - End If - Next - - 'AJUSTA POLIZA - If Not ErrorCancelar Then - If Not ObjAC.AjustaPoliza(IdPolizaNueva) Then - ErrorCancelar = True - End If - End If - - Else - ErrorCancelar = True - End If - - Else - ' MES ACTUAL, LIMPIA POLIZA PONIENDO IMPORTE EN CEROS - For Each dr As DataRow In dt.Rows - If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then - ErrorCancelar = True : Exit For - End If - Next - - 'AJUSTA POLIZA - If Not ErrorCancelar Then - If Not ObjAC.AjustaPoliza(IDPolizaPresupuestal) Then - ErrorCancelar = True - End If - End If - - End If - - End If - End If - - If ErrorCancelar Then - IdPolizaNueva = -1 - End If - - Return IdPolizaNueva - End Function -#End Region - -#Region " GVD " - Protected Sub CargaDatosDetalles() - GvD.DataSource = DtDetalle - GvD.DataBind() - - TxtGrid.Text = If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.Rows.Count.ToString, "") - - CalculaGenerales() - - UPPDetalle.Update() - CompruebaAgregar() - CargaSuperior() - End Sub - Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - - If Not (e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5) Then - - If e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate Then - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - e.Row.FCLiteral("LtlSubProyecto").Text = e.Row.DBCampo("SubProyecto") - End If - End If - - e.Row.Cells(0).ToolTip = e.Row.DBCampo("CvePresupuestoEgreso") - 'comente esta linea, RMF: 2015.04.20 - 'If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0}", e.Row.DBCampo("CveSubProyecto"))).Rows.Count = 0 Then e.Row.FCImageButton("ImgEdit").Visible = False : e.Row.FCImageButton("ImgDelete").Visible = False - - - If TipoOC = "OC" AndAlso Not IsDBNull(e.Row.DBCampo("CveOrdenCompraPadre")) AndAlso IsNumeric(e.Row.DBCampo("CveOrdenCompraPadre")) Then - GvD.Columns(10).Visible = True - lblTipoPadreHijo.Visible = True - e.Row.FCLiteral("LtlLiga").Text = String.Format("{1}", e.Row.DBCampo("CveOrdenCompraPadre"), e.Row.DBCampo("FolioOrdenCompraPadre")) - ElseIf TipoOC = "REQ" AndAlso Not IsDBNull(e.Row.DBCampo("CveOrdenCompraHija")) AndAlso IsNumeric(e.Row.DBCampo("CveOrdenCompraHija")) Then - GvD.Columns(10).Visible = True - lblTipoPadreHijo.Visible = True - e.Row.FCLiteral("LtlLiga").Text = String.Format("{1}", e.Row.DBCampo("CveOrdenCompraHija"), e.Row.DBCampo("FolioOrdenCompraHija")) - End If - - 'CveAFVinculado - e.Row.FCLiteral("LitMaq").Text = String.Format("{1}", e.Row.DBCampo("CveActivoFijo"), e.Row.DBCampo("CodigoAF")) - - - - - - 'CveCompraDetalle Vinculada - Dim ObjOC As New ClsOC - If ObjOC.GetOCVinculadasPendientes(e.Row.DBCampo("CveOrdenCompraDetalle").ToEntero) Then - If ObjOC.DtResultados.Rows.Count = 1 Then - e.Row.FCLiteral("LtlCompra").Text = String.Format("{1}", ObjOC.DtResultados.FiltroPrimeroValor("CveCompra"), e.Row.DBCampo("FolioCompra")) - LblCompra.Visible = True - GvD.Columns(11).Visible = True - ElseIf ObjOC.DtResultados.Rows.Count > 1 Then - LblCompra.Visible = True - e.Row.FCLiteral("LtlCompra").Visible = False - e.Row.FCLinkButton("LnkCompra").Visible = True - e.Row.FCLinkButton("LnkCompra").Enabled = True - 'e.Row.FCLinkButton("LnkCompra").CausesValidation = False - 'e.Row.FCLinkButton("LnkCompra").OnClientClick = "return true;" 'return true; - e.Row.FCLinkButton("LnkCompra").CommandArgument = e.Row.DBCampo("CveOrdenCompraDetalle") - GvD.Columns(11).Visible = True - Else - e.Row.FCLiteral("LtlCompra").Text = "" - LblCompra.Visible = True - End If - End If - ObjOC.Dispose() - - 'CargaPresupuestosEgresos - If UsuarioActual.Empresa.UsaAC Then - e.Row.FCDropDownList("DdlAC1").Visible = VerificaPresupuesto - e.Row.FCDropDownList("DdlAC1").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"}) - e.Row.FCDropDownList("DdlAC1").DataBind() - - e.Row.FCDropDownList("DdlAC2").Visible = VerificaPresupuesto - e.Row.FCDropDownList("DdlAC2").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"}) - e.Row.FCDropDownList("DdlAC2").DataBind() - - e.Row.FCDropDownList("DdlAC3").Visible = VerificaPresupuesto - e.Row.FCDropDownList("DdlAC3").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"}) - e.Row.FCDropDownList("DdlAC3").DataBind() - - e.Row.FCDropDownList("DdlAC4").Visible = VerificaPresupuesto - e.Row.FCDropDownList("DdlAC4").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"}) - e.Row.FCDropDownList("DdlAC4").DataBind() - - ' e.Row.FCLabel("LblClasificacion").Visible = False - e.Row.FCDropDownList("DdlAC5").Visible = VerificaPresupuesto - e.Row.FCDropDownList("DdlAC5").DataSource = DtPresupuestos.FiltraParametros("Not CodigoCOG Like '1%'", DistinctColumns:={"CveClasificacion", "CodigoClasificacion"}, Orderby:="CodigoClasificacion") - e.Row.FCDropDownList("DdlAC5").DataBind() - - If e.Row.DBCampo("CveProgramaOperativo").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC1").SelectedValue = e.Row.DBCampo("CveProgramaOperativo") - If e.Row.DBCampo("CveUnidadAdministrativa").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC2").SelectedValue = e.Row.DBCampo("CveUnidadAdministrativa") - If e.Row.DBCampo("CveFuenteFinanciamiento").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC3").SelectedValue = e.Row.DBCampo("CveFuenteFinanciamiento") - If e.Row.DBCampo("CveTipoGasto").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC4").SelectedValue = e.Row.DBCampo("CveTipoGasto") - If e.Row.DBCampo("CveClasificacionOG").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC5").SelectedValue = e.Row.DBCampo("CveClasificacionOG") - End If - - - - 'CLASIFICACION - If isWithFamily() Then - e.Row.FCLabel("LblClasificacion").Text = e.Row.DBCampo("SubFamilia") - Else - e.Row.FCLabel("LblClasificacion").Text = e.Row.DBCampo("Clasificacion") - End If - - Dim Drr As DataRow = Nothing - Drr = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus))(0) - If Drr IsNot Nothing AndAlso UsuarioActual.TienePermisoProceso(203) AndAlso Drr("TipoTermino").ToString.ToEntero = 3 AndAlso Drr("Tipo").ToString = "OC" Then - If e.Row.DataKey("CveCompra").ToEntero > 0 Then - If Not UsuarioActual.CveUsuario = 100 Then '[IPP] PARA PODER EDITAR - e.Row.FCLinkButton("imgE").Enabled = False - e.Row.FCLinkButton("imgE").ToolTip = "El concepto no se puede editar porque ya esta asignado a una compra" - e.Row.FCLinkButton("imgD").Enabled = False - e.Row.FCLinkButton("imgD").ToolTip = "El concepto no se puede eliminar porque ya esta asignado a una compra" - End If - End If - End If - - 'SI EL CONCEPTO YA TIENE ALGUNA RECEPCIÓN A ALMACÉN O VINCULACIÓN A COMPRA NO SE PUEDE ELIMINAR - If e.Row.DBCampo("CantidadNoEditable").ToDouble > 0 Then - e.Row.FCLinkButton("imgD").Enabled = False - e.Row.FCLinkButton("imgD").ToolTip = "El concepto no se puede eliminar porque ya esta asignado a una compra" - e.Row.FCLinkButton("imgD").Attributes.Remove("Data-toggle") - e.Row.FCLinkButton("imgD").Attributes.Add("Data-toggle", "tooltip") - End If - - End If - - - If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - e.Row.FCTextBox("TxtObsPS").Attributes.Add("maxlength", "750") - Dim FiltroClasificacion = "" - 'DDL CLASIFICACION - If isWithFamily() Then - e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTSubFamilias(CveEmpresaActual) 'GlobalDTClasificaciones(CveEmpresaActual).FiltraParametros("Codigo is null OR Codigo = ''") - e.Row.FCDropDownList("DdlClasificacion").DataBind() - e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveSubFamilia")) - FiltroClasificacion = String.Format("CveClasificacionCosto = {0}", e.Row.DBCampo("CveSubFamilia")) - Else - e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(CveEmpresaActual) - e.Row.FCDropDownList("DdlClasificacion").DataBind() - e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveClasificacion")) - FiltroClasificacion = String.Format("CveClasificacion = {0}", e.Row.DBCampo("CveClasificacion")) - End If - - 'DDL PS - If e.Row.DBCampo("CveClasificacion").ToString() <> "" Then - e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTPS(CveEmpresaActual).FiltraParametros(FiltroClasificacion, "PS") - Else - e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTPSSimplificado(CveEmpresaActual) - End If - e.Row.FCDropDownList("DdlPS").DataBind() - e.Row.FCDropDownList("DdlPS").SelectedValueExist(e.Row.DBCampo("CvePS")) - DdlPS_SelectedIndexChanged1(e.Row.FCDropDownList("DdlPS"), EventArgs.Empty) - - - Dim dr As DataRow = GlobalDTSubProyectos(-1, e.Row.DBCampo("CveSubProyecto").ToEntero, CveEmpresaActual).FiltroPrimero("") - If dr IsNot Nothing Then - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - e.Row.FCDropDownList("DdlProyectoEdit").Visible = False - Else - e.Row.FCDropDownList("DdlProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) - e.Row.FCDropDownList("DdlProyectoEdit").DataBind() - e.Row.FCDropDownList("DdlProyectoEdit").SelectedValue = dr("CveProyecto").ToString - End If - - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - Else - e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", dr("CveProyecto").ToString.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) ' 'GlobalDTSubProyectos(dr("CveProyecto").ToString.ToEntero) - End If - e.Row.FCDropDownList("DdlSubProyectoEdit").DataBind() - e.Row.FCDropDownList("DdlSubProyectoEdit").SelectedValue = e.Row.DBCampo("CveSubProyecto") - End If - - 'SI ES POR GENERAR CONTRATO - If e.Row.DBCampo("CveContratoDetalle").ToEntero > 0 Then - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - e.Row.FCDropDownList("DdlProyectoEdit").Visible = False - Else - e.Row.FCDropDownList("DdlProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) - e.Row.FCDropDownList("DdlProyectoEdit").DataBind() - If e.Row.DBCampo("CveProyecto").ToEntero > 0 Then - e.Row.FCDropDownList("DdlProyectoEdit").SelectedValueExist(e.Row.DBCampo("CveProyecto").ToEntero) - End If - End If - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - Else - e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", e.Row.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) ' 'GlobalDTSubProyectos(dr("CveProyecto").ToString.ToEntero) - End If - e.Row.FCDropDownList("DdlSubProyectoEdit").DataBind() - If e.Row.DBCampo("CveSubProyecto").ToEntero > 0 Then - e.Row.FCDropDownList("DdlProyectoEdit").SelectedValueExist(e.Row.DBCampo("CveSubProyecto").ToEntero) - End If - End If - - e.Row.FCTextBox("LblEditCodigo").Attributes.Add("onkeyup", String.Format("EnterAFEdit(event,this,{0},{1});", e.Row.FCHiddenField("HdnCveActivoFijo").ClientID, e.Row.FCHiddenField("HdnCodigoAF").ClientID)) - e.Row.FCTextBox("LblEditCodigo").Attributes.Add("onblur", String.Format("AFBlurEdit(this,{0},{1});", e.Row.FCHiddenField("HdnCveActivoFijo").ClientID, e.Row.FCHiddenField("HdnCodigoAF").ClientID)) - e.Row.FCImage("ImgAF").Attributes.Add("onclick", String.Format("AbrirVentana('/AF/PopUpBuscarAF.aspx?OPCION=OCE&RI={0}',950,600,'N');", e.Row.RowIndex)) - - e.Row.FCTextBox("TxtDescuentoEdit").Attributes.Add("onkeyup", String.Format("FormatoMoneda(this);ValidaDescuentoDetalle(this,{0});", e.Row.FCTextBox("TxtImporteEdit").ClientID)) - e.Row.FCTextBox("TxtImporteEdit").Attributes.Add("onkeyup", String.Format("ValidaDescuentoDetalle({0},this);", e.Row.FCTextBox("TxtImporteEdit").ClientID)) - - e.Row.FCTextBox("TxtCantEdit").Attributes.Add("onblur", $"ValidarCantidadMenor(this,{e.Row.DBCampo("CantidadNoEditable").ToDouble});") - - End If - - - End If - End Sub - Protected Sub GvD_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvD.RowDeleting - - If GvD.Rows(e.RowIndex).DataKey("TipoDato").Contiene("1", "2") Then 'cuando viene de la bd o es editado, solo lo borraré - DrEliminados.Add(GvD.Rows(e.RowIndex).DataKey("CveOrdenCompraDetalle").ToString.ToEntero) - End If - - Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & GvD.Rows(e.RowIndex).DataKey("CveOrdenCompraDetalle").ToString.ToEntero) - - ' If UsuarioActual.Empresa.UsaAC Then UpdateAC(dr(0).Item("CvePresupuestoEgreso").ToString.ToEntero, dr(0).Item("Total").ToString.ToEntero, True) - - dr(0).Delete() - DtDetalle.AcceptChanges() - - CargaDatosDetalles() - - - End Sub - Protected Sub GvD_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvD.RowEditing - GvD.EditIndex = e.NewEditIndex - CargaDatosDetalles() - Dim EditingRow As GridViewRow = GvD.Rows(e.NewEditIndex) - If Not EsCreaApartirDe Then - If EditingRow.DataKey("TipoDato").ToEntero = 2 Then - EditingRow.FCDropDownList("DdlClasificacion").Enabled = False - EditingRow.FCDropDownList("DdlPS").Enabled = False - EditingRow.FCDropDownList("CboUnidadMedidaEdit").Enabled = False - EditingRow.FCDropDownList("DdlProyectoEdit").Enabled = False - EditingRow.FCDropDownList("DdlSubProyectoEdit").Enabled = False - EditingRow.FCTextBox("LblEditCodigo").Enabled = False - End If - End If - - End Sub - Protected Sub GvD_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvD.RowUpdating - Dim Cantidad, Importe, Descuento As Double - Dim CveUnidad, CveClasificacion, CveActivoFijo, CvePS, CveSubProyecto, CveProyecto As Integer - Dim Obs, UM, Clasificacion, Codigo, PS, SubProyecto, Proyecto As String - - Dim gvr As GridViewRow = GvD.Rows(e.RowIndex) - Cantidad = gvr.FCTextBox("TxtCantEdit").Text.Trim.ToDouble - Importe = gvr.FCTextBox("TxtImporteEdit").Text.Trim.ToDouble - Descuento = gvr.FCTextBox("TxtDescuentoEdit").Text.Trim.ToDouble - Obs = gvr.FCTextBox("TxtObsPS").Text.Trim - CveUnidad = gvr.FCDropDownList("CboUnidadMedidaEdit").SelectedValue.ToEntero - UM = gvr.FCDropDownList("CboUnidadMedidaEdit").SelectedItem.Text - CveClasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedValue.ToEntero - Clasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedItem.Text - - 'SE TOMAN VALORES EN CASO DE QUE LA CvePS SEA DIFERENTE DE LA ANTERIOR - Dim CvePSAnterior = gvr.DataKey("CvePS").ToEntero - PS = gvr.DataKey("PS").ToString - Dim RetISR = gvr.DataKey("RetISRPorcentaje").ToDouble - Dim RetIVA = gvr.DataKey("RetIVAPorcentaje").ToDouble - 'Dim IvaPS = gvr.DataKey("IVAPorcentaje").ToDouble - Dim IEPSPS = gvr.DataKey("IEPSPSPorcentaje").ToDouble - Dim IEPSPSIVA = gvr.DataKey("IEPSPSIVAPorcentaje").ToDouble - Dim Total = Importe * Cantidad - Descuento - - - 'VALORES DEL PS - CvePS = gvr.FCDropDownList("DdlPS").SelectedValue.ToEntero - - PS = gvr.FCDropDownList("DdlPS").SelectedItem.Text - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") - If DrPS Is Nothing Then - Alert("Ocurrió un error al cargar la información del producto para actualizar. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - Dim IvaPS = DrPS("IVA").ToString.ToDouble - - If CvePS <> CvePSAnterior Or Not CveOrdenCompra > 0 Then - RetISR = DrPS("RetISR").ToString.ToDouble - RetIVA = DrPS("RetIVA").ToString.ToDouble - 'If IvaPS = -1 Then 'IVA DE LA SUCURSAL - ' IvaPS = GlobalDTSubProyectos(-1, gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble - 'End If - IEPSPS = DrPS("IEPSPorcentaje").ToString.ToDouble - IEPSPSIVA = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) - End If - - - - CveSubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero - SubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedItem.Text - - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - CveProyecto = -1 - Proyecto = "Seleccione" - Else - CveProyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero - Proyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedItem.Text - End If - - If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then - Dim ObjCon As New ClsContratos - Dim CvePresupuesto As Integer = 0 - Dim Autorizado As Double = 0 - Dim Ejercido As Double = 0 - If ObjCon.GetPresupuestos(-1, "-1", CveSubProyecto, 2, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero - If CvePresupuesto > 0 Then - If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then - If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} AND Importe > 0").Rows.Count > 0 Then - Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble - End If - End If - If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{DateTime.Now.Year - 1}".ToDate, Now, UsuarioActual.CveEmpresa, CveProyecto, - CveSubProyecto, UsuarioActual.CveUsuario, CveClasificacion) Then - If ObjCon.DtResultados.Rows.Count > 0 Then - Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble - End If - End If - End If - End If - End If - ObjCon.Dispose() - - If CvePresupuesto > 0 And Autorizado > 0 Then - Dim Diferencia As Double = (Ejercido + Total) - Autorizado - If Diferencia > 0 Then - Alert($"No hay presupuesto disponible en el subproyecto {SubProyecto} y la clasificación {Clasificacion} se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - End If - - - - - 'Agarra el nuevo AF si se modifico o deja el pasado - CveActivoFijo = If(gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero > 0, gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero, HdnEditCveActivoFijo.Value.ToEntero) - Codigo = If(gvr.FCHiddenField("HdnCodigoAF").Value <> "-1", gvr.FCHiddenField("HdnCodigoAF").Value, HdnEditCodigo.Value) - - HdnEditCveActivoFijo.Value = "" - HdnEditCodigo.Value = "" - - Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero) - - dr(0)("Cantidad") = Cantidad - dr(0)("CveUnidadMedida") = CveUnidad - dr(0)("UM") = UM - dr(0)("CveClasificacion") = CveClasificacion - dr(0)("Clasificacion") = Clasificacion - - If isWithFamily() Then - dr(0)("CveSubFamilia") = CveClasificacion - dr(0)("SubFamilia") = Clasificacion - End If - - dr(0)("CvePS") = CvePS - dr(0)("PS") = PS - dr(0)("Observacion") = Obs - - dr(0)("CveSubProyecto") = CveSubProyecto - dr(0)("SubProyecto") = SubProyecto - dr(0)("CveProyecto") = CveProyecto - dr(0)("Proyecto") = Proyecto - dr(0)("Importe") = Importe - dr(0)("Descuento") = Descuento - dr(0)("Total") = Total - 'If DdlIVA.SelectedValue.ToDouble = 1 Then dr(0)("IVA") = 0 Else dr(0)("IVA") = IvaPS * Total - dr(0)("IVAPorcentaje") = If(IvaPS = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), 0) - dr(0)("IVA") = dr(0)("IVAPorcentaje").ToString.ToDouble * Total - dr(0)("RetIVA") = RetIVA * Total - dr(0)("RetIVAPorcentaje") = RetIVA - dr(0)("RetISR") = RetISR * Total - dr(0)("RetISRPorcentaje") = RetISR - dr(0)("IEPSPS") = IEPSPS * Total - dr(0)("IEPSPSPorcentaje") = IEPSPS - dr(0)("IEPSPSIVA") = IEPSPSIVA * Total - dr(0)("IEPSPSIVAPorcentaje") = IEPSPSIVA - - dr(0)("CveActivoFijo") = CveActivoFijo - dr(0)("CodigoAF") = Codigo - - 'si el tipodato viene de la BD, entonces sufrió una actualización - If dr(0)("TipoDato").ToString.ToEntero = 2 Then dr(0)("TipoDato") = 1 - DtDetalle.AcceptChanges() - GvD.EditIndex = -1 - - CargaDatosDetalles() - - ' If UsuarioActual.Empresa.UsaAC Then UpdateAC(dr(0).Item("CvePresupuestoEgreso").ToString.ToEntero, totalanterior - dr(0).Item("Total").ToString.ToEntero, True) - End Sub - Protected Sub GvD_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvD.RowCancelingEdit - GvD.EditIndex = -1 - CargaDatosDetalles() - End Sub - -#End Region - -#Region " DESHABILITAR " - Protected Sub DesHabilitar() - TxtFechaEstimadaEntrega.Enabled = False - - TxtDescrip.Enabled = False - TxtFolioAdicional.Enabled = False - TxtJustificacion.Enabled = False - DdlPrioridad.Enabled = False - txtobsprioridad.Enabled = False - DdlMoneda.Enabled = False - TxtCant.Enabled = False - CboUnidadMedida.Enabled = False - DdlClasificacion.Enabled = False - DdlP2.Enabled = False - DdlP2.ddl.Enabled = False - TxtObsPS.Enabled = False - HplMaq.Enabled = False - LbAgregar.Enabled = False - If CveEstatusFinalError <= 0 Then CboE.Enabled = False - ChkCotizacion.Enabled = False - hplAgregarCotizacion.Visible = False - hplEnviarCorreo.Visible = False - BtnGuardar.Enabled = False - BtnCancelar.Enabled = False - DdlProyecto.Enabled = False - DdlSubProyecto.Enabled = False - txtPrecioUnitario.Enabled = False - gvCotizaciones.Enabled = False - DdlProveedorSucursal.Enabled = False - DdlProveedorContacto.Enabled = False - - GvD.Columns(9).Visible = False - GvD.Columns(10).Visible = True - - If Not (BtnCancelarPrevio.Enabled And (CveEstatus <> CveEstatusFinalError OrElse CveEstatus <> CveEstatusFinalOK OrElse UsuarioActual.TienePermisoProceso(148).ToEntero > 0)) Then - BtnCancelarPrevio.Enabled = False - End If - - 'PROVEEDOR - DdlProveedores.Enabled = False - DdlIVA.Enabled = False - ImgCambiaProv.Visible = False - UPProv.Update() - - 'DATOS DE VENTA - txtLugarEntrega.Enabled = False - TxtLugarEntregaDirecta.Enabled = False - ChkEntregaDirecta.Enabled = False - If UsuarioActual.CveUsuario = CveUsuario And Not (TieneVenta > 0 Or TieneCompraInv > 0) Then 'SI ES EL MISMO USUARIO QUE CREO LA OC PUEDE EDITAR CLIENTE Y VENDEDOR - ImgCambiaClienteVendedor.Visible = True - Else - Ddlcliente.Enabled = False - DdlVendedor.Enabled = False - End If - ChkPromocion.Enabled = False - TxtPromocion.ReadOnly = True - TxtGuia.ReadOnly = True - DdlUsoCFDI.Enabled = False - End Sub -#End Region - -#Region "AMORNIZACION CONTABLE - A C" - - -#Region "ANTERIOR AC -- YA NO SE USA" - Private Sub CargaCombosPOA() - CargaFuenteFinanciamiento() - CargaTipoGasto() - CargaUnidadAdministrativa() - CargaClasificacionOG() - End Sub - Private Sub CargaFuenteFinanciamiento() - CboFuenteFinanciamiento.DataSource = GlobalDTAC_FuentesFinanciamiento(CveEmpresaActual) - CboFuenteFinanciamiento.DataBind() - CboFuenteFinanciamiento.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - - Private Sub CargaTipoGasto() - CboTipoGasto.DataSource = GlobalDTAC_TipoGasto - CboTipoGasto.DataBind() - CboTipoGasto.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - - Private Sub CargaUnidadAdministrativa() - CboUnidadAdministrativa.DataSource = GlobalDTAC_UnidadesAdministrativas(CveEmpresaActual) - CboUnidadAdministrativa.DataBind() - CboUnidadAdministrativa.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - - Private Sub CargaClasificacionOG() - Dim Filtro As New StringBuilder - ' Filtro.AppendFormat("Afectable= '{0}'", "Si") - CboClasificacionOG.DataSource = GlobalDTACClasificadorObjetoGasto(CveEmpresaActual).FiltraParametros("Afectable = 1 AND NOT Codigo like '1%' ", "CodigoClasificacion") - CboClasificacionOG.DataBind() - CboClasificacionOG.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - Protected Sub consultarAC_Click(sender As Object, e As EventArgs) - Dim filtro As New StringBuilder - If CboFuenteFinanciamiento.SelectedValue.ToEntero > 0 Then - filtro.AppendFormat("CveFuenteFinanciamiento= {0}", CboFuenteFinanciamiento.SelectedValue.ToString) - End If - - If CboUnidadAdministrativa.SelectedValue.ToEntero > 0 Then - filtro.AppendFormat("{1} CveUnidadAdministrativa= {0}", CboUnidadAdministrativa.SelectedValue.ToString, If(filtro.Length > 0, "AND", "")) - End If - - If CboTipoGasto.SelectedValue.ToEntero > 0 Then - filtro.AppendFormat("{1} CveTipoGasto= {0}", CboTipoGasto.SelectedValue.ToString, If(filtro.Length > 0, "AND", "")) - End If - - If CboClasificacionOG.SelectedValue.ToEntero > 0 Then - filtro.AppendFormat("{1} CveClasificadorOG= {0}", CboClasificacionOG.SelectedValue.ToString, If(filtro.Length > 0, "AND", "")) - End If - - GvAC.DataSource = DtAC.FiltraParametros(filtro.ToString) - GvAC.DataBind() - End Sub - Protected Sub SeleccionarPOA_Click(ByVal sender As Object, ByVal e As EventArgs) - Dim gvr As GridViewRow = CType(CType(sender, LinkButton).BindingContainer, GridViewRow) - Dim Clave As String = gvr.DataKey("CvePresupuestoEgreso") - Dim CuentaporEjercer = gvr.DataKey("IdCuentaPorEjercer") - Dim CuentaComprometido = gvr.DataKey("IdCuentaComprometido") - Dim Presupuesto As String = gvr.DataKey("Total") - - If Presupuesto.ToEntero < TxtImporte.Text.ToEntero Then - Alert("El Presupuesto seleccionado no cubre el gasto. Favor de seleccionar otro.", TipoMensaje.MsgAdvertencia) - Else - LblCvePOA.Text = Clave.ToString - HdnCveCuentaPorEjercer.Value = CuentaporEjercer.ToString - HdnCveCuentaComprometido.Value = CuentaComprometido.ToString - LbAgregar.Enabled = True - UpPoaClave.Update() - UPPDetalle.Update() - Alert("Presupuesto Seleccionado correctamente!.", TipoMensaje.MsgInformacion) - End If - End Sub - Protected Sub GvAC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAC.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - e.Row.Cells(0).Attributes.Add("onclick", "tb_remove();") - e.Row.Cells(1).Attributes.Add("onclick", "tb_remove();") - e.Row.Cells(2).Attributes.Add("onclick", "tb_remove();") - e.Row.Cells(3).Attributes.Add("onclick", "tb_remove();") - e.Row.Cells(4).Attributes.Add("onclick", "tb_remove();") - e.Row.Cells(5).Attributes.Add("onclick", "tb_remove();") - e.Row.Cells(6).Attributes.Add("onclick", "tb_remove();") - End If - End Sub -#End Region - - Private Sub ActivaAC() - - 'SI ES REQ Y YA ESTA AUTORIZADA NO MUESTRA PE - If TipoOC = "REQ" AndAlso CveEstatus = CveEstatusFinalOK Then - Exit Sub - End If - - 'VALIDA SI NECESITA AC - VerificaPresupuesto = If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, True, False) - VerificaPresupuesto = If(TipoOC = "OC", True, VerificaPresupuesto) - - 'Seccion Grid - If VerificaPresupuesto Then - TxtFecha.Attributes.Add("onblur", "CambiaFecha();") - CargaPresupuesto() - Else - TxtFecha.Attributes.Add("onblur", "") - BtnGuardar.Enabled = True - End If - - MuestraPresupuestosEgresos() - - End Sub - Private Sub CargaPresupuesto() - Dim AC As New ClsAC - Dim Ejercicio = If(IsDate(TxtFecha.Text), Year(TxtFecha.Text.ToDate), UsuarioActual.Empresa.EjercicioActual) - - If AC.GetPresupuestoEgresos(-1, True, Ejercicio, CveEmpresaActual, True) Then - DtPresupuestos = AC.DtResultados.Copy - Else - Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError) - End If - AC.Dispose() - - EjercicioAC = Ejercicio - CargaDatosDetalles() - UpPresupuestosAC.Update() - End Sub - Private Sub MuestraPresupuestosEgresos() - - Dim Width = GvD.Width - Dim Width2 = DivConceptosContenido.Style("Width") - - - 'Seccion Grid - If VerificaPresupuesto Then - GvD.Width = 1750 - GvD.Columns(12).Visible = True - GvD.Columns(13).Visible = True - GvD.Columns(14).Visible = True - GvD.Columns(15).Visible = True - GvD.Columns(16).Visible = True - - 'Panel General - UpPresupuestosAC.Visible = True - DdlACGeneral1.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"}) - DdlACGeneral1.DataBind() - DdlACGeneral2.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"}) - DdlACGeneral2.DataBind() - DdlACGeneral3.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"}) - DdlACGeneral3.DataBind() - DdlACGeneral4.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"}) - DdlACGeneral4.DataBind() - 'carga los que no sean de nomina - DdlACGeneral5.DataSource = DtPresupuestos.FiltraParametros("NOT CodigoCOG like '1%'", DistinctColumns:={"CveClasificacion", "CodigoClasificacion"}, Orderby:="CodigoClasificacion") - DdlACGeneral5.DataBind() - - UpPresupuestosAC.Update() - - If TipoOC = "REQ" Then - CalculaSaldoACGeneral() - Else - RegistraScript("$get('DivPresupuestoEgresosGeneral').style.display = 'none';") - BtnVerPE.Visible = True - End If - - Else - 'GvD.Width = Width.ToEntero - GvD.Columns(12).Visible = False - GvD.Columns(13).Visible = False - GvD.Columns(14).Visible = False - GvD.Columns(15).Visible = False - GvD.Columns(16).Visible = False - - UpPresupuestosAC.Visible = False - End If - - 'CargaDatosDetalles() - UPPDetalle.Update() - UPPTab.Update() - - ConservaAC() - CompruebaAgregar() - - End Sub - - -#Region " CAMBIA EJERICIO AC " - Protected Sub BtnCambiaFecha_Click(sender As Object, e As EventArgs) - CambiaEjercicioAC() - End Sub - Private Sub CambiaEjercicioAC(Optional CargaTodo As Boolean = True) - Dim Ejercicio = If(IsDate(TxtFecha.Text), Year(TxtFecha.Text.ToDate), UsuarioActual.Empresa.EjercicioActual) - - If Ejercicio = EjercicioAC Then - Exit Sub - End If - - If Ejercicio <> EjercicioAC Then - Dim AC As New ClsAC - If AC.GetPresupuestoEgresos(-1, True, Ejercicio, CveEmpresaActual, True) Then - DtPresupuestos = AC.DtResultados.Copy - Else - Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError) - End If - AC.Dispose() - - EjercicioAC = Ejercicio - - 'CAMBIA LOS COMBOS DE TODOS LOS DETALLES DEL GRID - For Each gvr As GridViewRow In GvD.Rows - gvr.FCDropDownList("DdlAC1").SelectedValue = DdlACGeneral1.SelectedValue - gvr.FCDropDownList("DdlAC2").SelectedValue = DdlACGeneral2.SelectedValue - gvr.FCDropDownList("DdlAC3").SelectedValue = DdlACGeneral3.SelectedValue - gvr.FCDropDownList("DdlAC4").SelectedValue = DdlACGeneral4.SelectedValue - gvr.FCDropDownList("DdlAC5").SelectedValue = DdlACGeneral5.SelectedValue - Next - - MuestraPresupuestosEgresos() - - End If - - UPPDetalle.Update() - UpPresupuestosAC.Update() - End Sub -#End Region - - Protected Sub InfoPOA(sender As Object, e As EventArgs) - Dim AC As New ClsAC - Dim cvepe As String = CType(sender, LinkButton).Text.ToString - Dim filtro As New StringBuilder - Dim datos As New StringBuilder - - filtro.AppendFormat("CvePresupuestoEgreso = {0}", cvepe) - If AC.GetPresupuestoEgresos(cvepe.ToEntero, True, -1, CveEmpresaActual) Then - For Each dr As DataRow In AC.DtResultados.FiltraParametros(filtro.ToString).Rows - datos.AppendFormat("Proyecto = {0} {1}", dr("ProgramaOperativo").ToString, vbCr) - datos.AppendFormat("Fuente Financiamiento = {0} {1}", dr("FuenteFinanciamiento").ToString, vbCr) - datos.AppendFormat("Unidad Administrativa = {0} {1}", dr("UnidadAdministrativa").ToString, vbCr) - datos.AppendFormat("Tipo de Gasto = {0} {1}", dr("TipoGasto").ToString, vbCr) - datos.AppendFormat("Clasificador del Objeto de Gasto = {0} {1}", dr("Clasificacion").ToString, vbCr) - Next - CType(sender, LinkButton).ToolTip = datos.ToString - End If - - End Sub - - Private Sub ConservaAC() - 'Guarda valores AC en TmpDT - Dim Index = 0 - For Each gvr As GridViewRow In GvD.Rows - DtDetalle.Rows(Index)("CveProgramaOperativo") = gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero - DtDetalle.Rows(Index)("CveUnidadAdministrativa") = gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero - DtDetalle.Rows(Index)("CveFuenteFinanciamiento") = gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero - DtDetalle.Rows(Index)("CveTipoGasto") = gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero - DtDetalle.Rows(Index)("CveClasificacionOG") = gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero - Index += 1 - Next - End Sub - - Private Sub ConservaACDetalle(Gvr As GridViewRow) - 'Guarda valores AC en TmpDT - DtDetalle.Rows(Gvr.RowIndex)("CveProgramaOperativo") = Gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero - DtDetalle.Rows(Gvr.RowIndex)("CveUnidadAdministrativa") = Gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero - DtDetalle.Rows(Gvr.RowIndex)("CveFuenteFinanciamiento") = Gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero - DtDetalle.Rows(Gvr.RowIndex)("CveTipoGasto") = Gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero - DtDetalle.Rows(Gvr.RowIndex)("CveClasificacionOG") = Gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero - End Sub - - Protected Sub CompruebaSaldoAC(sender As Object, e As EventArgs) - ConservaACDetalle(CType(CType(sender, DropDownList).NamingContainer, GridViewRow)) - CompruebaAgregar() - GvD.DataSource = DtDetalle - GvD.DataBind() - End Sub - Protected Sub CambiaACGeneral(sender As Object, e As EventArgs) - 'If ChkACGeneral.Checked Then - - 'CAMBIA LOS COMBOS DE TODOS LOS DETALLES DEL GRID - For Each gvr As GridViewRow In GvD.Rows - gvr.FCDropDownList("DdlAC1").SelectedValue = DdlACGeneral1.SelectedValue - gvr.FCDropDownList("DdlAC2").SelectedValue = DdlACGeneral2.SelectedValue - gvr.FCDropDownList("DdlAC3").SelectedValue = DdlACGeneral3.SelectedValue - gvr.FCDropDownList("DdlAC4").SelectedValue = DdlACGeneral4.SelectedValue - gvr.FCDropDownList("DdlAC5").SelectedValue = DdlACGeneral5.SelectedValue - Next - - 'REESCRIBE LOS VALORES NUEVOS EN DT - ConservaAC() - - CompruebaAgregar() - ' UpPS.Update() - - CalculaSaldoACGeneral() - - ' End If - End Sub - Private Sub CalculaSaldoACGeneral() - Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa) - Dim DtPresupuestosTemp = DtPresupuestos.FiltraParametros(String.Format("CveProgramaOperativo = {0} and CveUnidadAdministrativa = {1} and CveFuenteFinanciamiento = {2} and CveTipoGasto= {3} and CveClasificacion = {4}", DdlACGeneral1.SelectedValue.ToString, DdlACGeneral2.SelectedValue.ToString, DdlACGeneral3.SelectedValue.ToString, DdlACGeneral4.SelectedValue.ToString, DdlACGeneral5.SelectedValue.ToString)) - If DtPresupuestosTemp IsNot Nothing AndAlso DtPresupuestosTemp.Rows.Count > 0 Then - LbACGeneralSaldo.Text = ContPaq.GetSaldoCuenta(DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero, 0, TxtFecha.Text.ToDate.Year).ToString.FormatoNumero - Else - LbACGeneralSaldo.Text = "0.00" - End If - ContPaq.Dispose() - End Sub - Private Sub CompruebaAgregar() - - If GvD.Rows.Count = 0 Then Exit Sub - - If UsuarioActual.Empresa.UsaAC And VerificaPresupuesto Then - - Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa) - Dim disponible As Double - Dim ErrorPresupuesto = False - - Dim Ddl1 As DropDownList - Dim Ddl2 As DropDownList - Dim Ddl3 As DropDownList - Dim Ddl4 As DropDownList - Dim Ddl5 As DropDownList - Dim Total As Double - - Dim DtPresupuestosTemp As DataTable - Dim Filtro As New StringBuilder - - For Each grid As GridViewRow In GvD.Rows - Ddl1 = grid.FCDropDownList("DdlAC1") - Ddl2 = grid.FCDropDownList("DdlAC2") - Ddl3 = grid.FCDropDownList("DdlAC3") - Ddl4 = grid.FCDropDownList("DdlAC4") - Ddl5 = grid.FCDropDownList("DdlAC5") - Total = grid.FCLiteral("LtlTotal").Text.ToDouble - - 'OBTENEMOS EL REGISTRO DEL PE SELECCIONADO - Filtro.AppendFormat("CveProgramaOperativo = {0} and CveUnidadAdministrativa = {1} and CveFuenteFinanciamiento = {2} and CveTipoGasto= {3} and CveClasificacion = {4}", If(Ddl1.SelectedValue.ToString = "", "-1", Ddl1.SelectedValue.ToString), If(Ddl2.SelectedValue.ToString = "", "-1", Ddl2.SelectedValue.ToString), If(Ddl3.SelectedValue.ToString = "", "-1", Ddl3.SelectedValue.ToString), If(Ddl4.SelectedValue.ToString = "", "-1", Ddl4.SelectedValue.ToString), If(Ddl5.SelectedValue.ToString = "", "-1", Ddl5.SelectedValue.ToString)) - DtPresupuestosTemp = DtPresupuestos.FiltraParametros(Filtro.ToString) - Filtro.Clear() - - If DtPresupuestosTemp.Rows.Count > 0 Then - disponible = ContPaq.GetSaldoCuenta(DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero, 0, TxtFecha.Text.ToDate.Year) - - If disponible > 0 AndAlso disponible > Total Then - 'Alert("Si hay dinero: ") - - DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = DtPresupuestosTemp.Rows(0)("CvePresupuestoEgreso").ToString - DtDetalle.Rows(grid.RowIndex)("IdCuentaComprometido") = DtPresupuestosTemp.Rows(0)("IdCuentaComprometido").ToString - DtDetalle.Rows(grid.RowIndex)("IdCuentaPorEjercer") = DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString - - grid.Cells(8).BackColor = Drawing.Color.Green - Else - Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia) - grid.Cells(8).BackColor = Drawing.Color.Red - ErrorPresupuesto = True - Exit For - End If - - DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = DtPresupuestosTemp.Rows(0)("CvePresupuestoEgreso").ToString - - Else - DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = "-1" - Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia) - grid.Cells(8).BackColor = Drawing.Color.Red - ErrorPresupuesto = True - Exit For - End If - - Next - - If ErrorPresupuesto Then - BtnGuardar.Enabled = False - Else - BtnGuardar.Enabled = True - End If - - uppOpciones.Update() - UPPDetalle.Update() - ContPaq.Dispose() - - End If - - End Sub - Private Sub AgregaAC() - Dim dr As DataRow - For Each gvr As GridViewRow In GvD.Rows - dr = DtDetalle.Rows(gvr.RowIndex) - - dr("CveProgramaOperativo") = gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero - dr("CveUnidadAdministrativa") = gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero - dr("CveFuenteFinanciamiento") = gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero - dr("CveTipoGasto") = gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero - dr("CveClasificacionOG") = gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero - Next - - DtDetalle.AcceptChanges() - End Sub - - Protected Sub UpdateAC(CvePresupuestoEgreso As Integer, Importe As Integer, TipoMovimiento As Boolean) - '' True = suma ||| False = resta - Dim indice As Integer = DtAC.Rows.IndexOf(DtAC.Select("CvePresupuestoEgreso = " + CvePresupuestoEgreso.ToString).FirstOrDefault()) - Dim Total As Integer = DtAC(indice).Item("Total").ToString.ToEntero - - If TipoMovimiento Then - DtAC(indice).Item("Total") = Math.Round((Total + Importe), 2) - Else - DtAC(indice).Item("Total") = Math.Round((Total - Importe), 2) - End If - - GvAC.DataSource = DtAC - GvAC.DataBind() - UpdatePanel2.Update() - End Sub - -#End Region - -#Region "COTIZACIONES" - Protected Sub ChkCotizacion_CheckedChanged(sender As Object, e As EventArgs) Handles ChkCotizacion.CheckedChanged - VerificaSiRequiereCotizacion() - End Sub - - Protected Sub VerificaCotizacionesGanadoras() - 'If CveEstatusFinalOK = CboE.SelectedValue.ToEntero AndAlso NumCotizacionesGanadoras <> GvD.Rows.Count Then - ' BtnGuardar.Enabled = False - ' uppOpciones.Update() - 'End If - - If ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then - CboE.Enabled = False - LblMsgEstatus.Visible = True - LblMsgEstatus.Text = "Cotización requerida para avanzar" - Else - CboE.Enabled = True - LblMsgEstatus.Visible = False - LblMsgEstatus.Text = "" - End If - - uppEstatus.Update() - End Sub - Protected Sub gvCotizaciones_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gvCotizaciones.RowCommand - - ''Registro el proveedor seleccionado en la orden de compra - ' Sin captura - If e.CommandName = "RegProv" Then - - If e.CommandArgument.ToString <> "" Then - Dim OC As New ClsOC - OC.IniciaTransacSQL() - Dim TieneError = False - Dim Cve As String() = e.CommandArgument.ToString.Split("|"c) - - If OC.UpdateCotizacionDetalleGanadora(Cve(0).ToEntero, If(Cve(1).ToString.ToUpper = "TRUE", False, True)) > 0 Then - - Dim index = CType(DirectCast(e.CommandSource, Button).NamingContainer, GridViewRow).RowIndex - Dim dr = DtDetalle.Rows(index) - - If Not Cve(1).ToString.ToUpper = "TRUE" Then - - Dim Importe = DirectCast(e.CommandSource, Button).Text.ToDecimal - Dim Total = Importe * dr("Cantidad").ToString.ToDecimal - - dr("Importe") = DirectCast(e.CommandSource, Button).Text - dr("Total") = dr("Importe").ToString.ToDecimal * dr("Cantidad").ToString.ToDecimal - - dr("IVA") = dr("IVAPorcentaje").ToString.ToDecimal * Total - dr("RetIVA") = dr("RetIVAPorcentaje").ToString.ToDecimal * Total - dr("RetISR") = dr("RetISRPorcentaje").ToString.ToDecimal * Total - dr("IEPSPS") = dr("IEPSPSPorcentaje").ToString.ToDecimal * Total - dr("IEPSPSIVA") = dr("IEPSPSIVAPorcentaje").ToString.ToDecimal * Total - - dr("CveProveedor") = Cve(2).ToString.ToEntero - Else - dr("Importe") = "0" - dr("Total") = "0" - dr("CveProveedor") = Cve(2).ToString.ToEntero - End If - - 'ACTUALIZO DATO EN DB - If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, - dr("Observacion").ToString.ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, dr("CvePresupuestoEgreso").ToString.ToEntero, dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then - TieneError = True - End If - - CargaDatosDetalles() - - End If - - If Not TieneError Then - OC.Commit() - Else - OC.RollBack() - Alert("Ocurrió un error al seleccionar ganador en la cotización. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - OC.Dispose() - CargaCotizaciones(CveOrdenCompra) - End If - End If - - - End Sub - Protected Sub gvCotizaciones_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvCotizaciones.RowDataBound - - 'Pongo el nombre del proveedor en el encabezado - If e.Row.RowType = DataControlRowType.Header Then - - For i As Integer = 1 To NumCotizaciones - e.Row.Cells(i + 2).Text = String.Format("{2}", CveOrdenCompra, DtCotizaciones.Rows(i - 1)("CveCotizacion"), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva")), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva"))) - e.Row.Cells(i + 2).Attributes.Add("style", "text-align:center!important") - '", - Next - End If - - If e.Row.RowType = DataControlRowType.DataRow Then - - - If e.Row.DataKey("Descripcion").ToString = "Total" Then - e.Row.Cells(2).Attributes.Add("style", "text-align:right") - End If - - - - If e.Row.DBCampo("CveOrdenCompraDetalle") = "" Then - 'si es el totalizador - e.Row.CssClass = "SubTotales" - For i As Integer = 1 To NumCotizaciones - Dim Btn As Button = e.Row.FCButton(String.Format("Btn{0}", i)) - Btn.Text = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble.ToString("N2") - Btn.Visible = True - 'Btn.Enabled = True - 'Btn.OnClientClick = "return false;" - e.Row.Cells(2 + i).Text = String.Format("{0}", e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble.ToString("N2")) - Next - Else - Dim CellMasBarato As Integer = -1 - Dim Monto As Double = -1 - - For i As Integer = 1 To NumCotizaciones - - Dim Btn As Button = e.Row.FCButton(String.Format("Btn{0}", i)) - Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2") - Btn.CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo(String.Format("CveCotizacionDetalle{0}", i)), False, DtCotizaciones.Rows(i - 1)("CveProveedor").ToString) - Btn.Style.Add("cursor:", "pointer") - - If e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble > 0 Then - If Monto.ToString = "-1" Then - Monto = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble - CellMasBarato = i - End If - If e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble < Monto Then - CellMasBarato = i - Monto = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble - End If - Else - Btn.Text = "Sin captura" - Btn.Attributes.Add("onclick", "return false;") - - 'Btn.Enabled = True - 'Btn.Visible = False - End If - Next - - 'Coloreo el más barato - If CellMasBarato > 0 Then e.Row.Cells(CellMasBarato + 2).BackColor = Drawing.Color.LightBlue - - - 'COLOREA GANADORES - If e.Row.DBCampo("CveCotizacionDetalleGanadora").ToEntero > 0 Then - NumCotizacionesGanadoras = NumCotizacionesGanadoras + 1 - TotalCotizacionesGanadoras += e.Row.DBCampo("TotalCotizacionDetalleGanadora").ToDecimal - - Dim i As Integer = 1 - For Each dr As DataRow In DtCotizaciones.Rows - Dim Btn As Button = e.Row.FCButton("Btn" & i) - ' Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2") - - - If e.Row.DBCampo("EsGanadora" & i).ToString = "True" Then - e.Row.Cells(i + 2).BackColor = Drawing.Color.LightGreen - Btn.CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo(String.Format("CveCotizacionDetalle{0}", i)), True, DtCotizaciones.Rows(i - 1)("CveProveedor").ToString) - 'Btn.OnClientClick = "return false;" - 'Btn.Enabled = True - End If - i = i + 1 - Next - End If - - - End If - End If - End Sub - Private Sub BtnEliminarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEliminarCotizacion.Click - Dim Body = GeneraCorreoEliminarCotizacion(HdnCveCotizacion.Value.ToEntero, TxtMotivoEliminacion.Text.Trim) - RegistraScript("hideDivEC();") - End Sub -#End Region - -#Region " ACTIVOS FIJOS " - Protected Sub GVAF_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAF.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(55) - e.Row.Cells(1).Width = Unit.Pixel(350) - e.Row.Cells(2).Width = Unit.Pixel(80) - 'e.Row.Cells(3).Width = Unit.Pixel(200) - 'e.Row.Cells(4).Width = Unit.Pixel(80) - - End If - End If - End Sub - - Protected Sub LnkAFSeleccionar_Click(sender As Object, e As EventArgs) - Dim gvr As GridViewRow = CType(CType(sender, LinkButton).BindingContainer, GridViewRow) - HdnAFCveActivoFijo.Value = gvr.DataKey("CveActivoFijo") - HdnAFCodigo.Value = gvr.DataKey("Codigo") - CargaAF() - GVAF.SelectedIndex = gvr.RowIndex - 'carga las últimas compras - BtnAFAceptar.Visible = True - CargaComprasActivoFijo(gvr.DataKey("CveActivoFijo").ToEntero) - - End Sub - - Protected Sub BtnBuscarAF_Click(sender As Object, e As EventArgs) Handles BtnBuscarAF.Click - GVAF.SelectedIndex = -1 - HdnAFCveActivoFijo.Value = "" - HdnAFCodigo.Value = "" - GVAFC.Visible = False - GVAFC.DataBind() - BtnAFAceptar.Visible = False - CargaAF() - - End Sub - - Private Sub CargaComprasActivoFijo(pCveActivoFijo As Integer) - Dim ObjActivoFijo As New ClsAF() - If ObjActivoFijo.GetActivosFijosCompras(pCveActivoFijo, DdlClasificacion.SelectedValue.ToEntero) Then - GVAFC.DataSource = ObjActivoFijo.DtResultados - Else - GVAFC.DataSource = Nothing - End If - ObjActivoFijo.Dispose() - GVAFC.DataBind() - GVAFC.Visible = True - End Sub - - Private Sub CargaAF() - Dim Codigo As String = "-1" - Dim Descripcion As String = "-1" - Dim CveTipoActivoFijo As Integer = -1 - Dim CveSubTipoActivoFijo As Integer = -1 - - If TxtAFCodigo.Text.Trim <> String.Empty Then Codigo = TxtAFCodigo.Text.Trim - If TxtAFDescripcion.Text.Trim <> String.Empty Then Descripcion = TxtAFDescripcion.Text.Trim - If DdlAFTipoActivoFijo.SelectedValue <> String.Empty Then CveTipoActivoFijo = DdlAFTipoActivoFijo.SelectedValue.ToEntero - If DdlAFSubTipoActivoFijo.SelectedValue <> String.Empty Then CveSubTipoActivoFijo = DdlAFSubTipoActivoFijo.SelectedValue.ToEntero - - Dim ObjAF As New ClsAF() - If ObjAF.GetActivosFijos(-1, CveEmpresaActual, Codigo, Descripcion, CveTipoActivoFijo, CveSubTipoActivoFijo, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then - If ObjAF.DtResultados.Rows.Count > 0 Then - - GVAF.DataSource = ObjAF.DtResultados - Else - GVAF.DataSource = Nothing - Alert("No se encontraron registros con los parámetros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia) - End If - GVAF.DataBind() - End If - - ObjAF.Dispose() - End Sub - - Private Sub CargaTipoActivoFijo() - DdlAFTipoActivoFijo.Items.Clear() - DdlAFTipoActivoFijo.DataSource = GlobalDTTipoActivoFijo(CveEmpresaActual) '.FiltraParametros("CveEmpresa = " & CveEmpresaActual) - DdlAFTipoActivoFijo.DataBind() - DdlAFTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - Private Sub CargaSubTipoActivoFijo() - DdlAFSubTipoActivoFijo.Items.Clear() - DdlAFSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(CveEmpresaActual).FiltraParametros("CveTipoActivoFijo = '" & DdlAFTipoActivoFijo.SelectedValue & "'") - 'DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo.FiltraParametros("CveEmpresa = " & CveEmpresaActual & " AND CveTipoActivoFijo = '" & DdlTipoActivoFijo.SelectedValue & "'") - DdlAFSubTipoActivoFijo.DataBind() - DdlAFSubTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) - - End Sub - - Protected Sub DdlAFTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAFTipoActivoFijo.SelectedIndexChanged - CargaSubTipoActivoFijo() - End Sub - - Protected Sub GVAFC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAFC.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.CssClass = "Totales" - ElseIf e.Row.FCLiteral("LtlFecha").Text = String.Empty Then - e.Row.CssClass = "SubTotales" - End If - - End If - End Sub - Protected Sub BtnAFAceptar_Click(sender As Object, e As EventArgs) Handles BtnAFAceptar.Click - If HdnEditCveActivoFijo.Value.Trim = "" Then - LblCodigo.Text = HdnAFCodigo.Value - HdnCveActivoFijo.Value = HdnAFCveActivoFijo.Value - UPPDetalle.Update() - HdnAFCodigo.Value = "" - HdnAFCveActivoFijo.Value = "" - GVAF.DataBind() - GVAFC.Visible = False - BtnAFAceptar.Visible = False - RegistraScript("$get('divActivosFijos').style.display='none';") - Else - 'LblCodigo.Text = HdnAFCodigo.Value - GvD.Rows(GvD.EditIndex).FCLabel("LblEditCodigo").Text = HdnAFCodigo.Value - HdnEditCodigo.Value = HdnAFCodigo.Value - HdnEditCveActivoFijo.Value = HdnAFCveActivoFijo.Value - 'UPPDetalle.Update() - 'HdnAFCodigo.Value = "" - 'HdnAFCveActivoFijo.Value = "" - GVAF.DataBind() - GVAFC.Visible = False - BtnAFAceptar.Visible = False - RegistraScript("$get('divActivosFijos').style.display='none';") - UPPDetalle.Update() - End If - End Sub - Protected Sub BtnVinculaAF_Click(sender As Object, e As EventArgs) - If HdnCveActivoFijo.Value.ToEntero = -2 Then - If LblCodigo.Text.Trim = "" Then Exit Sub - Dim ObjAF As New ClsAF - - If ObjAF.GetActivosFijos(-1, CveEmpresaActual, LblCodigo.Text, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then - If ObjAF.DtResultados.Rows.Count = 1 Then - HdnCodigoAF.Value = ObjAF.DtResultados.Rows(0)("Codigo").ToString - HdnCveActivoFijo.Value = ObjAF.DtResultados.Rows(0)("CveActivoFijo").ToString - Else - HdnCodigoAF.Value = "-1" - HdnCveActivoFijo.Value = "-1" - LblCodigo.Text = "" - Alert("No se encontró un Activo Fijo con el código proporcionado.", TipoMensaje.MsgAdvertencia) - End If - End If - - ObjAF.Dispose() - Else - LblCodigo.Text = HdnCodigoAF.Value - End If - - UPPDetalle.Update() - End Sub - - Protected Sub BtnVinculaAFEdit_Click(sender As Object, e As EventArgs) - Dim ObjAF As New ClsAF - - If ObjAF.GetActivosFijos(-1, CveEmpresaActual, HdnCodAFEdit.Value, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", UsuarioActual.CveEmpresa) Then - If ObjAF.DtResultados.Rows.Count = 1 Then - RegistraScript(String.Format("EnterAFEditOK('{0}','{1}');", ObjAF.DtResultados.Rows(0)("CveActivoFijo").ToString, ObjAF.DtResultados.Rows(0)("Codigo").ToString)) - Else - Alert("No se encontró un Activo Fijo con el código proporcionado.", TipoMensaje.MsgAdvertencia) - RegistraScript(String.Format("EnterAFEditOK({0},{1});", "-1", "-1")) - End If - End If - - ObjAF.Dispose() - End Sub -#End Region - -#Region "E V E N T O - B I T A C O R A" - Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("Archivo").ToString.Trim <> "" AndAlso CveOrdenCompra > 0 Then - e.Row.FCLinkButton("LinkArchivo").Visible = True - e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString) - ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione - End If - End If - End Sub - Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click - - If CveOrdenCompra > 0 Then - GuardaBitacora() - Else - AgregaBitacoraTemporal() - End If - - End Sub - -#Region " GUARDA DIRECTO " - Private Sub GuardaBitacora() - Dim ObjEventoBitacora As New ClsOIEventos - Dim FileExtension As String = "" - Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos - Dim Filename As String = "" - For Each fileItem As Archivo In Filesgral - FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)) '.Replace(".", "") - Filename = fileItem.filename - Next - - Dim descripcion As String = TxtEventoDescripcion.Text.Trim - Dim Prioridad As Integer = If(ChkEventoPrioridad.Checked, 3, 1) - - If ObjEventoBitacora.AddEventoBitacora(descripcion, String.Format("{0}", FileExtension), UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra, Prioridad:=Prioridad) Then - - If Filename <> "" Then - Filename.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", CveEmpresaActual)) - End If - - GvEB.DataSource = ObjEventoBitacora.DtResultados - TxtEventoDescripcion.Text = "" - Anexo.Text = "[]" - ChkEventoPrioridad.Checked = False - Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) - RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") - - 'obtener el Evento de bitacora para enviar el correo - If ObjEventoBitacora.GetEvento(ObjEventoBitacora.CveEvento, UsuarioActual.CveUsuario, CveEmpresaActual) Then - If ObjEventoBitacora.DtResultados IsNot Nothing AndAlso ObjEventoBitacora.DtResultados.Rows.Count > 0 Then - Dim dr As DataRow = ObjEventoBitacora.DtResultados.Rows(0) - EnviarCorreoBitacora(String.Format("{0}, {1} comento: ""{2}""", dr("FechaIng"), dr("Usuario"), dr("Descripcion")), String.Format("{0}Empresas/{1}/OI/{2}", UrlSitio, CveEmpresaActual, ObjEventoBitacora.Archivo)) - End If - End If - - End If - - ObjEventoBitacora.Dispose() - GvEB.DataBind() - - UPEventoBitacora.Update() - CargaEventoBitacora() - UPAddEventoBitacora.Update() - End Sub - Private Sub CargaEventoBitacora() - Dim ObjEventoBitacora As New ClsOIEventos() - - If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then - If ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento IN (6,2) AND CvePrioridad=3").Rows.Count > 0 Then - DivEventoUrgente.Visible = True - End If - GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento IN (6,2)") - Else - GvEB.DataSource = Nothing - End If - - ObjEventoBitacora.Dispose() - - GvEB.DataBind() - UPEventoBitacora.Update() - End Sub -#End Region - -#Region " GUARDA TEMPORAL " - Private Sub InicializaBitacoraTemporal() - If Not CveOrdenCompra > 0 Then - - DtBitacora = New DataTable - DtBitacora.Columns.Add("FechaIng", GetType(String)) - DtBitacora.Columns.Add("FechaInicio", GetType(String)) - DtBitacora.Columns.Add("Usuario", GetType(String)) - DtBitacora.Columns.Add("CveUsuario", GetType(String)) - DtBitacora.Columns.Add("Descripcion", GetType(String)) - DtBitacora.Columns.Add("Prioridad", GetType(String)) - DtBitacora.Columns.Add("FileExtension", GetType(String)) - DtBitacora.Columns.Add("Archivo", GetType(String)) - DtBitacora.Columns.Add("CveOrdenCompra", GetType(String)) - DtBitacora.Columns.Add("CveEmpresa", GetType(String)) - - End If - End Sub - Private Sub AgregaBitacoraTemporal() - Dim ObjEventoBitacora As New ClsOIEventos - - 'Archivo - Dim FileExtension As String = "" - Dim Filename As String = "" - Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos - - For Each fileItem As Archivo In Filesgral - FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") - Filename = fileItem.filename - Next - - Dim Archivo As New System.IO.FileInfo(String.Format("{0}OI\Temp\OI{1}{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension)) - If Archivo.Exists() Then - Archivo.Delete() - 'File.Delete(String.Format("\Empresas\{0}\OI\Temp\OI{1}{2}.{3}", CveEmpresaActual, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension)) - End If - - If Filename <> "" Then - Filename.FilesMove(String.Format("OI{0}{1}", UsuarioActual.CveUsuario, DtDetalle.Rows.Count), String.Format("Empresas\{0}\OI\Temp", CveEmpresaActual)) - End If - - - - 'AGREGA - Dim Dr = DtBitacora.NewRow - Dr("FechaIng") = Now - Dr("FechaInicio") = "" - Dr("Usuario") = UsuarioActual.Usuario - Dr("CveUsuario") = UsuarioActual.CveUsuario - Dr("Descripcion") = TxtEventoDescripcion.Text.Trim - Dr("Prioridad") = If(ChkEventoPrioridad.Checked, 3, 1) - Dr("Archivo") = String.Format("{0}OI\Temp\OI{1}{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension) - Dr("FileExtension") = String.Format(".{0}", FileExtension) - Dr("CveOrdenCompra") = -1 - Dr("CveEmpresa") = CveEmpresaActual - DtBitacora.Rows.Add(Dr) - - - - 'LIMPIA - TxtEventoDescripcion.Text = "" - ChkEventoPrioridad.Checked = False - RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") - - CargaEventoBitacoraTemp() - - - End Sub - Private Sub CargaEventoBitacoraTemp() - GvEB.DataSource = DtBitacora - GvEB.DataBind() - UPAddEventoBitacora.Update() - UPEventoBitacora.Update() - End Sub - Private Function GuardaBitacoraTemporal(ObjEventoBitacora As ClsOIEventos) As Boolean - Dim Retorno = False - Dim Archivo As System.IO.FileInfo = Nothing - - For Each Dr As DataRow In DtBitacora.Rows - If ObjEventoBitacora.AddEventoBitacora(Dr("Descripcion").ToString, Dr("FileExtension").ToString, UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra, Prioridad:=Dr("Prioridad").ToString.ToEntero) Then - - Archivo = New System.IO.FileInfo(Dr("Archivo").ToString) - If Archivo.Exists() Then - File.Move(Archivo.ToString, String.Format("{0}OI\OI{1}{2}", UsuarioActual.Empresa.Ruta, ObjEventoBitacora.CveEvento.ToString, Archivo.Extension)) - End If - - - Else - Retorno = True - Exit For - End If - Next - - Return Retorno - End Function -#End Region - - Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) - Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) - If IO.File.Exists(filePath) Then - Dim Archivo As New System.IO.FileInfo(filePath) - - HttpContext.Current.Response.Clear() - HttpContext.Current.Response.ClearContent() - HttpContext.Current.Response.ContentType = "application/octet-stream" - HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filePath)) - HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) - HttpContext.Current.Response.TransmitFile(filePath) - HttpContext.Current.Response.Flush() - HttpContext.Current.Response.End() - - Archivo = Nothing - Else - UPEventoBitacora.Update() - End If - - End Sub - - -#End Region - -#Region " GENERAR ANTICIPOS " - Private Sub CargarOptionAnticipos() - - If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then - DivVendedor.Visible = True - option72.Visible = True - DivFolioAdicional.Visible = True - generarAnticipo.Visible = True - Ddlcliente.DataSource = GlobalDTCliente(CveEmpresaActual).FiltraParametros(" Estatus = 'Activo' ") - Ddlcliente.DataBind() - Ddlcliente.Items.Insert(0, New ListItem(" - ", "-1")) - DdlVendedor.DataSource = GlobalDTVendedores(CveEmpresaActual) - DdlVendedor.DataBind() - DdlVendedor.Items.Insert(0, New ListItem(" - ", "-1")) - 'DivLugarEntrega1.Visible = False - 'DivLugarEntrega2.Visible = False - End If - - - - End Sub -#End Region - -#Region " SOLICITAR ANTICIPOS " - Private Sub InicializaSolicitarAnticipo() - If CveOrdenCompra > 0 Then - - If CveIEAnticipo > 0 Then - PorletIEAnticipo.Visible = True - UpIEAnticipo.Update() - Else - If GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimeroValor("TipoTermino", $"CveEstatus = {CveEstatus}").ToEntero.Contiene(0, 3) Then - BtnSolicitudAnticipo.Visible = True - DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual) - DdlSAUsuario.DataBind() - DdlSAUsuario.Items.Insert(0, New ListItem("Seleccione", "-1")) - End If - End If - - End If - End Sub - Protected Sub BtnSolicitarAnticipo_Click(sender As Object, e As EventArgs) Handles BtnSolicitarAnticipo.Click - - Dim Descripcion As New StringBuilder - Descripcion.AppendFormat("Importe anticipo : ${0} ({1}%) - Pagar anticipo - Observacion: {2} ", TxtSAImporte.Text.FormatoNumero, TxtSAImPorcentaje.Text, CveOrdenCompra, TxtSAObservaciones.Text) - Descripcion.AppendFormat("Orden de compra : {0} - Ir a la orden de compra - Imprimir OC", Folio, CveOrdenCompra, Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra))) - - 'Dim Descripcion = $"Importe anticipo : ${TxtSAImporte.Text.FormatoNumero} ({TxtSAImPorcentaje.Text}%) - Pagar anticipo - Observacion: {TxtSAObservaciones.Text} " - Dim Asunto = $"Solicitud de anticipo ({lblFolio.Text})" - Dim ObjOC As New ClsOC - Dim ObjOI As New ClsOIEventos(ObjOC.IniciaTransacSQL) - Dim TieneError = False - - If ObjOI.AddEventoTarea(Asunto, Descripcion.ToString, 1, UsuarioActual.CveUsuario, DdlSAUsuario.SelectedValue.ToString.ToEntero, DateTime.Now, DateTime.Now.AddMinutes(15), -1, 1, -1, "-1", -1, -1, -1, -1, -1, CveOrdenCompra.ToEntero, -1, -1, UsuarioActual.CveUsuario, -1, CveEmpresaActual) Then - If Not ObjOC.AddSolicitudAnticipo(CveOrdenCompra, TxtSAImporte.Text.ToDouble, CveEmpresaActual) Then - TieneError = True - End If - Else - TieneError = True - End If - - - If Not ObjOI.AddEventoBitacora($"Solicitud de anticipo de orden de compra por ${TxtSAImporte.Text.FormatoNumero}", "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then - TieneError = True - End If - - - If Not TieneError Then - RegistraScript("$('#ModalSolicitarAnticipo').modal('hide');", "ModalSolicitarAnticipoHide") - ObjOC.Commit() - EnviaCorreoSolicitudAnticipo(ObjOI.CveEvento) - - 'LIMPIA - BtnSolicitudAnticipo.Visible = False - DdlSAUsuario.SelectedValue = "-1" - TxtSAImporte.Text = "" - TxtSAObservaciones.Text = "" - TxtSAImPorcentaje.Text = "" - - Alert("La solicitud de anticipo ha sido enviada correctamente.", TipoMensaje.MsgInformacion) - - - Else - ObjOC.RollBack() - Alert("Ocurrió un error al hacer la solicitud de anticipo.", TipoMensaje.MsgError) - End If - ObjOC.Dispose() - - 'RECARGA LA BITACORA - If Not TieneError Then - CargaEventoBitacora() - End If - - End Sub - Private Sub EnviaCorreoSolicitudAnticipo(CveEvento As Integer) - Dim Param As New List(Of String) - Dim DtPara As DataTable = GlobalDTUsuarios(DdlSAUsuario.SelectedValue.ToString.ToEntero, CveEmpresaActual) - Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para - Param.Add("Solicitud de anticipo de Orden de Compra") 'Asunto - Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.adssistemas.mx/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", CveEvento), TxtSAImporte.Text)) - Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra)) - Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo) - Hilo.Start(Param) - End Sub - Private Sub EnviaCorreoSolicitudAnticipoCancelado() - 'If Not CveIEAnticipo > 0 Then 'SI NO SE HA REALIZADO EL ANTICIPO NOTIFICA QUE SE HA CANCELADO - Dim ObjOC As New ClsOC - If ObjOC.GetSolicitudAnticipoUsuarios(CveOrdenCompra, CveEmpresaActual) Then - For Each Dr As DataRow In ObjOC.DtResultados.Rows - Dim Param As New List(Of String) - Dim DtPara As DataTable = GlobalDTUsuarios(Dr("CveUsuarioPara").ToString.ToEntero, CveEmpresaActual) - Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para - Param.Add("Solicitud de anticipo de Orden de Compra Cancelada") 'Asunto - Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.s/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", Dr("CveEvento").ToString.ToEntero), "")) - Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra)) - Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo) - Hilo.Start(Param) - Next - End If - ObjOC.Dispose() - 'End If - End Sub - Private Sub MandaCorreoAnticipo(Data As Object) - Dim Parametros As List(Of String) = DirectCast(Data, List(Of String)) - - Dim Mail As New ClsSisMail() - Dim Para As String = Parametros(0) - Dim Asunto As String = Parametros(1) - Dim Body As String = Parametros(2) - - 'Dim ArrayAttachment As New List(Of String) - Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) - If Parametros(3) IsNot Nothing AndAlso Parametros(3) <> "" Then - LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = Parametros(3).ToString}) - End If - - 'If Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayAttachment:=ArrayAttachment) Then - If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) Then - Alert("Correos enviados") - Else - Alert("Correos no enviados") - End If - - End Sub - Private Function GeneraCorreoAnticipo(folio As String, para As String, link As String, importe As String) As String - 'NOTA: CUANDO EL IMPORTE SEA "" QUIERE DECIR QUE ES EL CORREO DE CANCELACIÓN - - Dim strBody As New StringBuilder - strBody.Append("") - strBody.Append(" ") - strBody.Append("") - strBody.Append("") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append($" Solicitud de anticipo {If(importe.ToDouble > 0, "", " CANCELADA ")}") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - If importe.ToDouble > 0 Then - strBody.Append(" ") - strBody.Append(" ") - End If - strBody.Append("") - strBody.Append("
    Fecha") - strBody.Append(DateTime.Now.ToString("dd/MM/yy")) - strBody.Append("
    De") - strBody.Append(UsuarioActual.Nombre) - strBody.Append("
    Para") - strBody.Append(para) - strBody.Append("
    Folio") - strBody.Append(folio) - strBody.Append("
    Importe:") - strBody.Append(importe) - strBody.Append("
    Ver mas
    ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append("") - strBody.Append("") - Return strBody.ToString - End Function -#End Region - -#Region " COTIZACIONES " - Protected Sub VerificaSiRequiereCotizacion() - If TipoOC = "REQ" Then - If ChkCotizacion.Checked Then - PnlProveedor.Visible = False - - '12/04/2018 - 'DdlIVA.Visible = False - - UPProv.Update() : UPPEmp.Update() - BtnGuardar.Text = "Guardar" - tabCotizaciones.Enabled = True - Else - tabCotizaciones.Enabled = False - ''temporal, si es nueva, le podras mover el proveedor, pero si ya esta registrada, debes de tener permisos para hacerlo - If CveOrdenCompra = 0 OrElse (CveOrdenCompra > 0 AndAlso UsuarioActual.TienePermisoProceso(106) AndAlso ChkCotizacion.Checked = False) Then - PnlProveedor.Visible = True : UPProv.Update() : UPPEmp.Update() - - '12/04/2018 - 'DdlIVA.Visible = True - - 'CVPU.Enabled = True - End If - BtnGuardar.Enabled = True - If CveEstatus = CveEstatusFinalOK Then - BtnGuardar.Text = String.Format("Guardar{0}", If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, " y Generar OC", "")) - PnlProveedor.Visible = True - - '12/04/2018 - 'DdlIVA.Visible = True - - UPProv.Update() : UPPEmp.Update() - End If - - End If - - UPPTab.Update() - uppOpciones.Update() - VerificaCotizacionesGanadoras() - End If - End Sub -#End Region - - Private Function notienepresupuesto() As Boolean - Dim notienerecursos = False - Dim SinRecursos As New StringBuilder - SinRecursos.AppendFormat("No se cuenta con los Recursos Suficientes en los siguientes subproyectos ") - Dim subproyectosSr As New List(Of Integer) - Dim filtro As New StringBuilder - 'me traigo los proyectos y subproyectos para traer presupuesots de la bd - Dim subproyectos As New List(Of Integer) - - For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows - Dim RowCon As DataRow = GlobalDTContratos.FiltroPrimero(String.Format("CveSubProyecto={0}", Row("CveSubProyecto"))) - If Not IsNothing(RowCon) Then - filtro.AppendFormat(",{0}", Row("CveSubProyecto")) - subproyectos.Add(Row("CveSubProyecto").ToString.ToEntero) - End If - Next - 'me traigo los presupuestos de la base de datos - Dim dtpresupuestos As New DataTable - Dim objContratos As New ClsContratos - If objContratos.GetContratosPresupuesto(filtro.ToString) Then - dtpresupuestos = objContratos.DtResultados - End If - objContratos.Dispose() - - 'resto los importes actuales a los presupuestos obtenidos de la bd - For Each dr As DataRow In DtDetalle.Rows - Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTPS(CveEmpresaActual, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSubFamilia"), dr("CveSubProyecto").ToString) - 'Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTProductosServicios(CveEmpresaActual, -1, -1).FiltroPrimero(String.Format("CvePS={0}", dr("CvePS").ToString.ToEntero))("CveSubFamilia").ToString, dr("CveSubProyecto").ToString) - - If dtpresupuestos.Rows.Count > 0 AndAlso dtpresupuestos.Select(psclasificacion).Count > 0 Then - Dim rowpresupuesto As DataRow = dtpresupuestos.Select(psclasificacion)(0) - rowpresupuesto("Importe") = rowpresupuesto("Importe").ToString.ToDouble - dr("Total").ToString.ToDouble() - Else - If subproyectos.Contains(dr("CveSubProyecto").ToString.ToEntero) Then - notienerecursos = True - If Not subproyectosSr.Contains(dr("CveSubProyecto").ToString.ToEntero) Then - subproyectosSr.Add(dr("CveSubProyecto").ToString.ToEntero) - SinRecursos.AppendFormat(",{0}", dr("SubProyecto").ToString) - End If - End If - End If - Next - dtpresupuestos.AcceptChanges() - ' - For Each rowpresupuesto As DataRow In dtpresupuestos.Rows - If (rowpresupuesto("Importe").ToString.ToDouble() < 0) Then - If Not subproyectosSr.Contains(rowpresupuesto("CveSubProyecto").ToString.ToEntero) Then - subproyectosSr.Add(rowpresupuesto("CveSubProyecto").ToString.ToEntero) - SinRecursos.AppendFormat(",{0}", rowpresupuesto("SubProyecto").ToString) - End If - notienerecursos = True - End If - Next - If (notienerecursos) Then - Alert(SinRecursos.ToString, TipoMensaje.MsgAdvertencia) - End If - dtpresupuestos.Dispose() - Return notienerecursos - End Function - - Public Function isWithFamily() As Boolean - Return CveEmpresaActual = 66 - End Function - - Protected Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProveedores.SelectedIndexChanged - Dim Objeto As New ClsCompProveedores - - DdlProveedorSucursal.Items.Clear() - DdlProveedorSucursal.SelectedValue = Nothing - - DdlProveedorContacto.Items.Clear() - DdlProveedorContacto.SelectedValue = Nothing - - If DdlProveedores.SelectedValue = "-1" Then - DivProveedorSucursal.Visible = False - DivProveedorContacto.Visible = False - Else - If Objeto.GetSucursales(DdlProveedores.SelectedValue.ToEntero) Then - If Objeto.DtResultados.Rows.Count > 0 Then - DivProveedorSucursal.Visible = True - DdlProveedorSucursal.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlProveedorSucursal.Items.Insert(1, New ListItem("Matriz", "0")) - DdlProveedorSucursal.DataSource = Objeto.DtResultados - Else - DivProveedorSucursal.Visible = False - End If - End If - - 'MONEDA PREFERENTE - If CveOrdenCompra <= 0 Then - If Objeto.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, DdlProveedores.SelectedValue.ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then - If Objeto.DtResultados.Rows.Count > 0 Then - DdlMoneda.SelectedValueExist(Objeto.CveMonedaPreferente) - End If - End If - End If - - 'MUESTRA IVA PROVEEDOR EXTRANJERO - If GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {DdlProveedores.SelectedValue} AND RFC = 'XEXX010101000'").Rows.Count = 1 Then - 'Alert("Proveedor extranjero") - LblLeyendaProveedorIVA.Text = "IVA 0%" - - 'Si es proveedor extranjero selecciona iva al 0% - DdlIVA.SelectedValue = "1" - - Else - LblLeyendaProveedorIVA.Text = "" - 'Si es proveedor selecciona iva al 16% - 'DdlIVA.SelectedValue = "1.16" - - End If - End If - - Objeto.Dispose() - DdlProveedorSucursal.DataBind() - UPProv.Update() : UPPEmp.Update() - UPPDetalle.Update() - - End Sub - - Protected Sub CboE_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboE.SelectedIndexChanged - CargaProyectos() - CargaSubProyectos() - CargaSuperior() - UPPDetalle.Update() - PnlUsuarioAsignado.Visible = False - - - RVProveedores.Enabled = False - 'Si NO requiere cotizacion y el estatus siguiente es el final, - If TipoOC.ToUpper = "REQ" Then - - If ChkCotizacion.Checked = False Then - PnlProveedor.Visible = True : UPProv.Update() - - '12/04/2018 - 'DdlIVA.Visible = True - Else - PnlProveedor.Visible = False : UPProv.Update() - - '12/04/2018 - 'DdlIVA.Visible = False - End If - - If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso TipoOS = False Then - BtnGuardar.Text = "Guardar y Generar OC" : uppOpciones.Update() - RVProveedores.Enabled = True - - If CveEmpresaActual.Contiene(13, 83, 72) Then - PnlUsuarioAsignado.Visible = True - DdlUsuariosAsignado.DataSource = GlobalDTUsuarios(CveEmpresa:=CveEmpresaActual) - DdlUsuariosAsignado.DataBind() - DdlUsuariosAsignado.Items.Insert(0, New ListItem(" - ", "-1")) - End If - Else - VerificaCotizacionesGanadoras() - - If CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso LblMsgEstatus.Text = "" Then - BtnGuardar.Text = "Guardar y Generar OC" - Else - BtnGuardar.Text = "Guardar" - End If - uppOpciones.Update() - End If - - 'temporal - If ChkCotizacion.Checked = False AndAlso CveEstatus <> CveEstatusFinalOK Then - ' PnlProveedor.Visible = True : UPProv.Update() : UPPEmp.Update() - - '12/04/2018 - 'DdlIVA.Visible = True - - 'CVPU.Enabled = True - End If - - If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalError AndAlso TipoOS = False Then - BtnGuardar.Text = "Guardar" : uppOpciones.Update() - 'PnlProveedor.Visible = False : UPProv.Update() : UPPEmp.Update() - - '12/04/2018 - 'DdlIVA.Visible = False - - 'CVPU.Enabled = True - If CveEstatus <> CveEstatusFinalError Then RegistraScript("$get('divCE').style.display='';PosicionaObjeto('C_CboE','divCE'); ") - End If - Else - RVProveedores.Enabled = True - End If - - - If UsuarioActual.Empresa.UsaAC Then - ActivaAC() - End If - - UPPEmp.Update() - - 'If TipoOC.ToUpper = "REQ" AndAlso ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK Then - ' trProveedor.Visible = True - ' UPPEmp.Update() - 'End If - 'Si NO requiere cotizacion y el estatus siguiente es el final, el Boton Guardar sera Guardar Y Generar Orden - ' If CveOrdenCompra > 0 AndAlso ChkCotizacion.Checked = False AndAlso CveEstatusSiguiente = CveEstatusFinalOK Then BtnGuardar.Text = "Guardar y Generar OC" : uppOpciones.Update() - End Sub - -#Region " DATOS DE VENTA (PORLET) " - Protected Sub ChkEntregaDirecta_CheckedChanged(sender As Object, e As EventArgs) - CambiaEntregaDirecta() - End Sub - Private Sub CambiaEntregaDirecta() - DivLugarEntregaDirecta1.Visible = ChkEntregaDirecta.Checked - DivLugarEntregaDirecta2.Visible = ChkEntregaDirecta.Checked - DivAddDireccionEnvio.Visible = ChkEntregaDirecta.Checked - - DdlDireccionEnvio.Visible = False - TxtLugarEntregaDirecta.Visible = False - BtnAgregarDireccion.Visible = False - - If ChkEntregaDirecta.Checked Then - CargaDireccionesEnvioCliente() - End If - End Sub - - Protected Sub Ddlcliente_SelectedIndexChanged(sender As Object, e As EventArgs) - - DdlVendedor.SelectedValueExist(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveVendedor", $"CveCliente = {Ddlcliente.SelectedValue}")) - - DdlDireccionEnvio.Visible = False - TxtLugarEntregaDirecta.Visible = False - BtnAgregarDireccion.Visible = False - CargaDdlSucursalCliente() - - If ChkEntregaDirecta.Checked Then - CargaDireccionesEnvioCliente() - End If - - End Sub - Private Sub CargaDireccionesEnvioCliente() - Dim ObjClientes As New ClsClientes - If ObjClientes.DireccionEnvioGet(-1, Ddlcliente.SelectedValue.ToEntero, -1) Then - DdlDireccionEnvio.DataSource = ObjClientes.DtResultados - If ObjClientes.DtResultados.Rows.Count > 0 Then - DdlDireccionEnvio.Visible = True - BtnAgregarDireccion.Visible = True - Else - TxtLugarEntregaDirecta.Visible = True - TxtLugarEntregaDirecta.Text = "" - BtnAgregarDireccion.Visible = True - End If - End If - ObjClientes.Dispose() - DdlDireccionEnvio.DataBind() - DdlDireccionEnvio.SelectedValueExist(CveDireccionEnvio) - UpVendedor.Update() - End Sub -#End Region - -#Region "ENVIAR CORREO" - Private Sub Notificaciones() - If UsuarioActual.Empresa.Funcionalidad(140).ToString.ToEntero = 1 Then - 'CORREO DE CAMBIA ESTATUS PARA USUARIOS SIGUIENTE ESTATUS - If (EsNuevo = False AndAlso CveEstatus <> CboE.SelectedValue.ToEntero) Or EsNuevo = True Then - Dim RowActual As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue)) - If RowActual IsNot Nothing Then CveEstatusSiguiente = RowActual("CveEstatusSiguiente").ToString.ToEntero - EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text) - End If - - 'CORREO MODIFICADA - If EsNuevo = False And DtHistorial IsNot Nothing Then - Dim Bitacora = DtHistorial.FiltraParametros("CveConceptoHistorialBitacora <> 1").Rows.Count - Dim ObjGral As New ClsGenerales - If ObjGral.GetHistorialBitacora(-1, CveOrdenCompra, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then - DtHistorial = ObjGral.DtResultados.FiltraParametros("CveConceptoHistorialBitacora <> 1") - End If - ObjGral.Dispose() - - If Bitacora < DtHistorial.Rows.Count Then - EnviarCorreoModificada() - End If - End If - - 'CORREO PROVEEDOR - SE GENERO OC - If CveOCGeneradas.Count > 0 Then - For i = 0 To CveOCGeneradas.Count - 1 - EnviarCorreoOrdenCompra(CveOCGeneradas(i)) - Next - - If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then - CorreoUsuarioAsignado(CveEstatusSiguiente, CboE.SelectedItem.Text) - End If - End If - - ''CORREO CANCELACIÓN - 'If CanceladoOC Then - - 'End If - - ''CORREO COTIZACIÓN - - ''CORREO BITACORA - 'If Bitacora Then - - 'End If - End If - End Sub - Private Sub MandaCorreo() - Dim Asunto, Para, ArrayCC, RutaPDF, Body As String - Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString) - Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString) - ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString) - RutaPDF = If(IsNothing(ViewState("RutaPDF")), "", ViewState("RutaPDF").ToString) - Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString) - Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC) - 'a.GuardaLog() - - Dim Mail As New ClsSisMail() - Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) - If RutaPDF <> "" AndAlso File.Exists(RutaPDF) Then LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaPDF}) - Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail) - End Sub - Private Sub MandaCorreo2(File As Byte(), Para As String, Asunto As String, Body As String) - - Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) - 'a.GuardaLog() - Dim Mail As New ClsSisMail() - - Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) - LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "OrdenCompra.pdf"}) - - 'Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, , , ".pdf", rutaxml, , , ) - Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) - End Sub - Protected Sub EnviarCorreoBitacora(Bitacora As String, LigaAdjunto As String) - Dim Body As String - 'Dim ArrayCC As String() - - - Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString - 'Dim CorreosCCP As New List(Of String) - Dim StrCorreos As New StringBuilder - - 'Sacar los correos a los que se les notificara - 'Aqui seran los que cambiaron de estatus, que son los niveles inferiores - If DtHistorial IsNot Nothing Then - For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows - StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) - 'CorreosCCP.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) - Next - End If - - ''Aqui seran todos los usuarios que tienen habilitado el estatus actual - 'Dim objOC As New ClsOC - ''PENDIENTE POR EL SUBPROYECTO - 'If objOC.GetEstatusUsuarios(-1, CveEstatus, -1, -1, CveEmpresaActual) Then - ' For Each Row As DataRow In objOC.DtResultados.Rows - ' Array.Resize(CorreosCCP, If(CorreosCCP IsNot Nothing, UBound(CorreosCCP) + 2, 1)) - ' CorreosCCP(UBound(CorreosCCP)) = GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString - ' Next - 'End If - 'objOC.Dispose() - - Try - Body = GeneraCorreo(CveOrdenCompra, "", False, Bitacora, LigaAdjunto) - ViewState("Para") = Correo - ViewState("ArrayCC") = StrCorreos.ToString 'CorreosCCP.Distinct() - ViewState("Asunto") = String.Format("SIG. {0} #{1} Bitacora", TipoLargo, Folio) - 'ViewState("RutaPDF") = "" - ViewState("Body") = Body - Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) - Hilo.Start() - ' Alert("Se enviara correo por cambio Modificacion") - Catch ex As Exception - OnError("Ocurrió error al mandar MAIL de bitacora", ex) - End Try - End Sub - Protected Sub EnviarCorreoModificada() - If CBool(GlobalDTUsuarios(CveUsuario)(0)("Estatus").ToString) Then - Dim Body As String - Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString - Dim StrCorreos As New StringBuilder - - 'Sacar los correos a los que se les notificara - 'Aqui seran los que cambiaron de estatus, que son los niveles inferiores - For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows - StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) - Next - - Try - Body = GeneraCorreo(CveOrdenCompra, "") - ViewState("Para") = Correo - ViewState("ArrayCC") = StrCorreos.ToString 'CorreosCCP.Distinct() - ViewState("Asunto") = String.Format("SIG. {0} #{1} Modificada", TipoLargo, Folio) - ViewState("RutaPDF") = "" - ViewState("Body") = Body - Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) - Hilo.Start() - ' Alert("Se enviara correo por cambio Modificacion") - Catch ex As Exception - OnError("Ocurrió error al mandar MAIL de modificación", ex) - End Try - End If - End Sub - Protected Sub EnviarCorreoCambioEstatus(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True, Optional AsuntoMail As String = "") - Dim strOpciones As New StringBuilder - If CveUsuario = -1 Or Not CBool(GlobalDTUsuarios(CveUsuario)(0)("Estatus").ToString) Then CveUsuario = UsuarioActual.CveUsuario - Dim Para As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString - Dim CorreosCCPNombre As New List(Of String) - Dim objUsuarios As New ClsSisUsuarios - Dim StrCorreos As New StringBuilder - - 'MANDA CORREO A LOS USUARIOS CON EL ESTATUS SIGUIENTE (MODIFICADO) PARA QUE DEN EL SIGUIENTE PASO - If CveEstatusSiguiente > 0 Then - If hdnCveSuperior.Value.ToEntero > 0 Then - 'SI TIENE SUPERIOR MANDA CORREO A TODOS LOS DEL SIGUIENTE ESTATUS - StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(hdnCveSuperior.Value.ToEntero)(0)("correo").ToString) - Else - 'SI NO TIENE SUPERIOR LO BUSCA PARA MANDAR CORREO - Dim objOC As New ClsOC - For Each RowSP As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto"}).Rows - If RowSP("CveSubProyecto").ToString.ToEntero > 0 Then - If objOC.GetEstatusUsuarios(-1, pCveEstatus, RowSP("CveSubProyecto").ToString.ToEntero, -1, CveEmpresaActual, -1, 1) Then - For Each Row As DataRow In objOC.DtResultados.Rows - 'INCLUIR FILTRO DE LIMITE SUPERIOR E INFERIOR - If (IsDBNull(Row("LimiteInferior")) OrElse Row("LimiteInferior").ToString.ToDecimal < LblTotal.Text.ToDecimal) And (IsDBNull(Row("LimiteSuperior")) OrElse Row("LimiteSuperior").ToString.ToDecimal > LblTotal.Text.ToDecimal) Then - StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) - CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString) - End If - Next - End If - End If - Next - objOC.Dispose() - End If - End If - - 'MANDA CORREO A TODOS LOS USUARIOS INVOLUCRADOS - If DtHistorial IsNot Nothing Then - For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows - StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) - CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString) - Next - End If - - strOpciones.AppendFormat("Se ha cambiado la {0} #{1} al estatus {2}

    ", TipoLargo, Folio, Estatus) - strOpciones.Append("
    ") - strOpciones.Append("
    ") - strOpciones.Append(" Opciones ") - strOpciones.Append("
    ") - - 'verifico los permisos según el estatus - 'Const Sitio As String = "rm:90/" - Dim StrSupervisa As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=SUPERVISAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now))) - Dim StrAutoriza As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=AUTORIZAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now))) - Dim StrCancela As String = "" ' = String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=CANCELAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, UsuarioActual.CveUsuario, Now))) - Dim StrReqCotiza As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=REQCONTIZACION&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now))) - - 'si se acaba de solicitar y se necesita supervisar - If pCveEstatus = 1 Then strOpciones.AppendFormat(" ", StrSupervisa) - 'si se acaba de supervisar y se necesita autorizar - If pCveEstatus = 2 Then - strOpciones.AppendFormat(" ", StrAutoriza) - strOpciones.AppendFormat(" ", StrReqCotiza) - End If - 'si se quiere cancelar - strOpciones.AppendFormat(" ", StrCancela) - - strOpciones.Append("
    Supervisar
    Autorizar
    Autorizar con Cotización
    Cancelar
    ") - strOpciones.Append(" ") - strOpciones.Append("
    ") - - 'NOTIFICA QUE OCS SE GENERARON - Dim OCsGeneradas As New StringBuilder - If FolioOCGeneradas.Count > 0 Then - OCsGeneradas.Append("Se generaron la(s) siguiente(s) orden(es) de compra: ") - For Each FolioOC In FolioOCGeneradas - OCsGeneradas.Append($" #{FolioOC} ") - Next - End If - - Dim Body As String = GeneraCorreo(CveOrdenCompra, OCsGeneradas.ToString) 'strOpciones.ToString) 'genero los datos de la OC - Try - ViewState("Para") = Para - ViewState("ArrayCC") = StrCorreos - ViewState("Asunto") = String.Format("SIG - La {0} #{1} cambió de estatus.", TipoLargo, Folio) - ViewState("RutaPDF") = "" - ViewState("Body") = Body - Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) - Hilo.Start() - Catch ex As Exception - If NotificarAlert = True Then OnError("Ocurrió error al mandar MAIL por cambio de Estatus", ex) - End Try - - End Sub - -#Region " ENVIAR CORREO USUARIO ASIGNADO " - - Protected Sub MandaCorreoUsuario(Para As String, CorreosCCP As String, CorreosCCPNombre As List(Of String), Optional NotificarAlert As Boolean = True) - Dim strOpciones As New StringBuilder - Dim Body As String = GeneraCorreo(CveOrdenCompra, "") 'strOpciones.ToString) 'genero los datos de la OC - - Try - ViewState("Para") = Para - ViewState("ArrayCC") = CorreosCCP - ViewState("Asunto") = String.Format("SIG - La {0} #{1} se le ha asignado", TipoLargo, Folio) - ViewState("RutaPDF") = "" - ViewState("Body") = Body - - 'ViewState("ArrayCCNombre") = CorreosCCPNombre.Distinct() - - Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) - Hilo.Start() - ' If NotificarAlert = True Then Alert("Se enviara correo por cambio de Estatus") - Catch ex As Exception - If NotificarAlert = True Then OnError("Ocurrió error al mandar MAIL por cambio de Estatus", ex) - End Try - End Sub - - Protected Sub CorreoUsuarioAsignado(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True) - If CBool(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("Estatus").ToString) Then - 'Dim CorreosCCP As New List(Of String) - Dim StrCorreos As New StringBuilder - Dim CorreosCCPNombre As New List(Of String) - Dim Para As String = GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString - - 'SI TIENE ASIGNADO TAMBIEN SE LE MANDA CORREO - If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then - 'CorreosCCP.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString) - StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString) - CorreosCCPNombre.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("nombre").ToString) - End If - - Dim strOpciones As New StringBuilder - - - strOpciones.AppendFormat("La orden de Compra {0} se le ha asignado br>
    ", Folio) - - strOpciones.Append("
    ") - strOpciones.Append("
    ") - strOpciones.Append(" Opciones ") - strOpciones.Append(" ") - - strOpciones.AppendFormat(" ", UrlSitio, CveOrdenCompra) - - - strOpciones.Append("
    Ir a OC
    ") - strOpciones.Append("
    ") - strOpciones.Append("
    ") - - MandaCorreoUsuario(Para, StrCorreos.ToString, CorreosCCPNombre, NotificarAlert) - End If - End Sub -#End Region - -#Region " enviarCorreoOrdenDeCompra " - Protected Sub EnviarCorreoOrdenCompra(CveOrdenCompra As Integer) - Dim CveProveedor As Integer - Dim strOpciones As New StringBuilder - - strOpciones.AppendFormat("Se ha Generado una Orden de Compra.

    ") - - Dim Body As String = GeneraCorreoProveedor(CveOrdenCompra, CveProveedor) 'genero los datos de la OC - Dim Correo As String = "" - 'si tiene seleccionada una sucursal, obtengo su correo, sino tiene especificado tomo el correo principal del proveedor - If DdlProveedorSucursal.SelectedValue.ToEntero > 0 Then Correo = GlobalDTProveedorSucursales(CveProveedor).FiltroPrimeroValor("Correo", $"CveProveedorSucursal={DdlProveedorSucursal.SelectedValue}") - If Correo = "" Then Correo = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {CveProveedor}")(0)("ContactoMail").ToString - - Try - Dim File As Byte() = NewGeneraBytesOC(CveOrdenCompra) - Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo2(File, Correo, "SIG - Se Genero una Orden de Compra", Body)) - Hilo.Start() - Catch ex As Exception - OnError("Ocurrió error al mandar MAIL de Orden de Compra", ex) - End Try - End Sub - - -#End Region - - Private Function GeneraCorreo(CveOrdenCompra As Integer, Opciones As String, Optional IncluirDetalles As Boolean = True, Optional Bitacora As String = "", Optional LigaAdjunto As String = "") As String - Dim strBody As New StringBuilder - Dim objOC As New ClsOC - - If objOC.GetOC(CveOrdenCompra, CveEmpresaActual) Then - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat("
    Datos {0} ", TipoLargo) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", UrlSitio, objOC.CveOrdenCompra, objOC.Folio, objOC.Estatus) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", objOC.Empresa) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", objOC.Descripcion) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", objOC.Justificacion) - strBody.Append(" ") - strBody.Append("
    Folio:{2} Estatus: {3}
    Empresa:{0}
    Descripción:{0}
    Justificación
    ") - strBody.Append("
    ") - strBody.Append("
    ") - 'Cargo el detalle - If IncluirDetalles = True Then - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append(" Opciones ") - strBody.Append(" ") - strBody.AppendFormat(" ", If(CveEmpresaActual = 66, "Proyecto", "Proyecto
    SubProyecto")) - - 'verifico los permisos según el estatus - - If objOC.GetOrdenesDetalle(CveOrdenCompra) Then - For Each dr As DataRow In objOC.DtResultados.Rows - strBody.AppendFormat("", - dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("Clasificacion"), dr("PS"), dr("Observacion"), dr("Proyecto"), If(CveEmpresaActual = 66, "", dr("SubProyecto")), dr("Codigo"), If(Not IsDBNull(dr("Importe")), FormatCurrency(dr("Importe").ToString), ""), If(Not IsDBNull(dr("Total")), FormatCurrency(dr("Total").ToString), "")) - - Next - End If - - strBody.Append("
    CantidadUnidadProducto o ServicioObservacion{0}Activo FijoP.U.Total
    {0}{1}{2}
    {3}
    {4}{5}
    {6}
    {7}{8}{9}
    ") - strBody.Append("
    ") - strBody.Append("
    ") - Else - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append(" Bitacora ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - If LigaAdjunto <> "" Then strBody.AppendFormat(" ", LigaAdjunto) - strBody.Append(" ") - strBody.Append("
    ") - strBody.AppendFormat(" {0}", Bitacora) - strBody.Append("
    El usuario agrego el siguiente archivo: Adjunto
    ") - strBody.Append("
    ") - strBody.Append("
    ") - End If - 'strBody.Append(Opciones) - strBody.Append(Opciones) - strBody.Append("") - End If - - objOC.Dispose() - - Return strBody.ToString - End Function - Private Function GeneraCorreoProveedor(CveOrdenCompra As Integer, ByRef CveProveedor As Integer) As String - Dim strBody As New StringBuilder - Dim objOC As New ClsOC - - objOC.GetOC(CveOrdenCompra, CveEmpresaActual) - CveProveedor = objOC.CveProveedor - Dim DttDetalle As DataTable = Nothing - If objOC.GetOrdenesDetalle(CveOrdenCompra) Then - DttDetalle = objOC.DtResultados - End If - - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat("
    Datos de Orden de Compra ") - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", objOC.Folio, objOC.Estatus) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", objOC.Empresa) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", objOC.Descripcion) - strBody.Append(" ") - strBody.Append("
    Folio:{0} Estatus: {1}
    Empresa:{0}
    Descripción:{0}
    ") - strBody.Append("
    ") - strBody.Append("
    ") - 'Cargo el detalle - - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append(" Opciones ") - strBody.Append(" ") - strBody.Append(" ") - - 'verifico los permisos según el estatus - - For Each dr As DataRow In DttDetalle.Rows - strBody.AppendFormat("", - dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS"), dr("Obs"), dr("Importe").ToString.FormatoNumero) - - Next - - - strBody.Append("
    CantidadUnidadDescripciónObservaciónPrecio
    {0}{1}{2}{3}{4}
    ") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append("") - - objOC.Dispose() - - Return strBody.ToString - End Function - -#End Region - -#Region "Correo Eliminar Cotización" - Private Function GeneraCorreoEliminarCotizacion(CveCotizacion As Integer, Motivo As String) As String - Dim ObjCotizacion As New ClsOC - ObjCotizacion.GetCotizaciones(CveOrdenCompra, CveCotizacion) - Dim strBody As New StringBuilder - 'strBody.Append("

    Motivo de Eliminación

    ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - strBody.Append(" ") - - strBody.Append(" ") - strBody.AppendFormat("
    Por medio del presente correo electrónico se notifica que se ha eliminado la cotización con folio {0}

    ", ObjCotizacion.Folio) - strBody.Append("
    ") - strBody.AppendFormat("
    Datos {0} ", "Cotización") - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", ObjCotizacion.Empresa) - strBody.Append(" ") - strBody.Append(" ") - strBody.AppendFormat(" ", Now.ToShortDateString) - strBody.Append(" ") - strBody.Append("
    Empresa:{0}
    Fecha Eliminación:{0}  
    ") - strBody.Append("
    ") - strBody.Append("
    ") - 'Cargo el detalle - strBody.Append("
    ") - strBody.Append("
    ") - strBody.Append(" Productos a Cotizar ") - strBody.Append(" ") - strBody.Append(" ") - - Dim dtConceptos As DataTable = Nothing - If ObjCotizacion.GetOrdenesDetalle(CveOrdenCompra) Then - dtConceptos = ObjCotizacion.DtResultados - End If - - For Each dr As DataRow In dtConceptos.Rows - strBody.AppendFormat("", dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS")) ', dr("Clasificacion"), dr("Codigo")) - Next - 'For Each dr As GridViewRow In gvCotizaciones.Rows - ' strBody.AppendFormat("", dr.Cells(0).ToString.FormatoNumero, dr.Cells(1).ToString, dr.Cells(2).ToString) ', dr("Clasificacion"), dr("Codigo")) - 'Next - - strBody.Append("
    CantidadUnidadDescripción
    {0}{1}{2}
    {0}{1}{2}
    ") - strBody.Append("
    ") - strBody.Append("
    ") - strBody.AppendFormat("

    Motivo de eliminación:

    ", Motivo) - strBody.AppendFormat("

    {0}

    ", Motivo) - strBody.Append("
    ") - strBody.Append("") - ObjCotizacion.Dispose() - Return strBody.ToString - End Function - - - - - - -#End Region - -#Region " CARGAR DESDE EXCEL " - - Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click - If TxtExcel.getfiles().Archivos.Count > 0 Then - Dim file As Archivo = TxtExcel.getfiles().Archivos(0) - Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch - Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") - CargarArchivo(Directorio, file.filename, Tipo) - Else - Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError) - End If - End Sub - - Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) - - Dim dt As New DataTable - Dim Conexion As Odbc.OdbcConnection = Nothing - Dim ErrorArchivo = False - Try - Select Case Tipo - Case "EXCEL" - Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") - Conexion.Open() - Dim cmd = Conexion.CreateCommand() - cmd.CommandType = CommandType.Text - cmd.CommandText = "SELECT * FROM [Hoja1$]" - Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) - DataAdapter.Fill(dt) - Case Else - Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) - Exit Sub - End Select - Catch ex As Exception - ErrorArchivo = True - OnError("Ocurrio un error al leer el archivo
    " & ex.Message, ex) - End Try - Conexion.Close() - If Not ErrorArchivo Then - If Not dt.Columns(0).ColumnName = "Cantidad" Then - Alert("El nombre de la primera columna debe ser 'Cantidad'.Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(1).ColumnName = "Código" Then - Alert("El nombre de la segunda columna debe ser 'Código'.Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(2).ColumnName = "Código de Barras" Then - Alert("El nombre de la tercera columna debe ser 'Código de Barras'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(3).ColumnName = "Producto/Servicio" Then - Alert("El nombre de la cuarta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(4).ColumnName = "Proyecto" Then - Alert("El nombre de la quinta columna debe ser 'Proyecto'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(5).ColumnName = "Observaciones" Then - Alert("El nombre de la sexta columna debe ser 'Observaciones'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(6).ColumnName = "PU" Then - Alert("El nombre de la séptima columna debe ser 'P.U'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - If Not dt.Columns(7).ColumnName = "Descuento" Then - Alert("El nombre de la octava columna debe ser 'Descuento'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - - dt.TableName = "Datos" - - If Not ErrorArchivo Then - NumRow = 0 - Dim RowNoEncontrados As String = String.Empty - Dim NumAgregados As Integer = 0 - For Each Row As DataRow In dt.Rows - Dim Cantidad As String = Row("Cantidad").ToString - Dim Codigo As String = Row("Código").ToString.Trim.ToUpper - Dim CodigoBarras As String = Row("Código de Barras").ToString.Trim.ToUpper - Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper - Dim Proyecto As String = Row("Proyecto").ToString.Trim.ToUpper - Dim Observaciones As String = Row("Observaciones").ToString - Dim PrecioUnitario As String = Row("PU").ToString - Dim Descuento As Double = Row("Descuento").ToString.ToDouble * Cantidad.ToDouble 'RMF, cambio a multiplicar por cantidad 2018.04.21 - Dim CvePS As Integer = 0 - Dim CveProyecto As Integer = 0 - Dim CveSubProyecto As Integer = 0 - Dim Existe As Boolean = False - Dim DrProyecto As DataRow - Dim SubProyecto As String = "" - - NumRow = NumRow + 1 - - If Proyecto <> "" Then - Dim DtSubProyecto As DataTable = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) - DtSubProyecto.CaseSensitive = False - DrProyecto = DtSubProyecto.FiltroPrimero($"(SubProyecto) = '{Proyecto}'") - If DrProyecto IsNot Nothing Then - CveSubProyecto = DrProyecto("CveSubProyecto").ToString.ToEntero - CveProyecto = DrProyecto("CveProyecto").ToString.ToEntero - SubProyecto = DrProyecto("SubProyecto").ToString - End If - Else - CveProyecto = -1 - CveSubProyecto = -1 - End If - - If Codigo.Length > 0 Then - Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c) - If StrArray.Length > 0 Then - If CBool(StrArray(0)) = True Then - CvePS = StrArray(1).ToEntero - Else - RowNoEncontrados &= StrArray(1) & "<\BR>" - End If - End If - ElseIf CodigoBarras.Length > 0 Then - Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c) - If StrArray.Length > 0 Then - If CBool(StrArray(0)) = True Then - CvePS = StrArray(1).ToEntero - Else - RowNoEncontrados &= StrArray(1) & "<\BR>" - End If - End If - ElseIf ProductoServicio.Length > 0 Then - Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c) - If StrArray.Length > 0 Then - If CBool(StrArray(0)) = True Then - CvePS = StrArray(1).ToEntero - Else - RowNoEncontrados &= StrArray(1) & "<\BR>" - End If - End If - Else - RowNoEncontrados &= "<\BR>    - En la fila " & NumRow & " no se especificó código, código de barras ó descripción." - End If - - - If Not CvePS > 0 Then - Continue For - End If - - 'Agregar PS - If DtDetalle IsNot Nothing Then - Dim dr As DataRow = DtDetalle.NewRow - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") - If DrPS Is Nothing Then - Alert("Ocurrió un error al cargar la información de los productos del archivo. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Continue For - End If - Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble - Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble - Dim PS As String = DrPS("PS").ToString - Dim TotalPS As Double = If(PrecioUnitario.ToDouble > 0, PrecioUnitario.ToDouble * Cantidad.ToDouble - Descuento, 0) - Dim CveUnidadMedida As Integer = DrPS("CveUnidadMedida").ToString.ToEntero - Dim UM As String = DrPS("UnidadMedida").ToString - Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble - 'If IvaPS = -1 Then - ' Dim Drr As DataRow = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero())(0) - ' IvaPS = Drr("IVA").ToString().ToDouble() - 'End If - Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble - Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) - Dim CveClasificacion As Integer = DrPS("CveClasificacion").ToString.ToEntero - Dim Clasificacion As String = DrPS("Clasificacion").ToString - Dim CveActivoFijo = HdnCveActivoFijo.Value.ToEntero - Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero) - Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero) - Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 - - AddPS(Cantidad, CvePS, PS, Observaciones, PrecioUnitario.ToDouble, Descuento, TotalPS, CveUnidadMedida, IvaPS, IEPSPS, IEPSPSIVA, CveClasificacion, UM, Clasificacion, CveSubProyecto, Proyecto, CveSubProyecto, SubProyecto, LblCodigo.Text, - CveActivoFijo, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer, IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero, - DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR) - - End If - Next - - - 'Cargo el GridView - GvD.DataSource = DtDetalle - GvD.DataBind() - CargaSuperior() - CargaDatosDetalles() - UPPDetalle.Update() - - If RowNoEncontrados.Length > 0 Then - Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia) - Else - Alert("Se Cargaron " & DtDetalle.Rows.Count & " Productos o Servicios correctamente.") - End If - End If - End If - End Sub - - Private Function GetPS(Opt As String, Valor As String) As String - Dim StrReturn As String = String.Empty - Dim CvePS As Integer = 0 - CvePS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", Opt & " = '" & Valor & "'").ToString.ToEntero - If CvePS > 0 Then - StrReturn = "True|" & CvePS.ToString - Else - - StrReturn = "False|    - No se encontró " & Valor & " en la fila " & NumRow & ", columna " & Opt - End If - Return StrReturn - End Function - - Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click, LbDescargarExcel.Click - Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoOC.xlsx" - 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 - - -#End Region - -#Region " CREAR APARTIR DE " - Private Sub ActivaCrearApartirDe() - If EsNuevo Then - Exit Sub - End If - - BtnCrearApartirDe.Visible = True - - uppOpciones.Update() - End Sub - Protected Sub BtnCrearApartirDe_Click(sender As Object, e As System.EventArgs) Handles BtnCrearApartirDe.Click - EsCreaApartirDe = True - 'Habilito los Controles - CboE.Enabled = True - CboE.BackColor = Drawing.Color.White - 'CboE.SelectedIndex = 0 - CboE_SelectedIndexChanged(CboE, EventArgs.Empty) - - - GvD.Columns(9).Visible = True 'Permitir la edicion - lblTipoPadreHijo.Visible = False - GvD.Columns(10).Visible = False - LblCompra.Visible = False - GvD.Columns(11).Visible = False - - ChkCotizacion.Visible = True - ChkCotizacion.Enabled = True - TxtFolioAdicional.Enabled = True - DdlPrioridad.Enabled = True - txtobsprioridad.Enabled = True - TxtDescrip.Enabled = True - TxtJustificacion.Enabled = True - TxtFechaEstimadaEntrega.Enabled = True - txtLugarEntrega.Enabled = True - TxtLugarEntregaDirecta.Enabled = True - - gvCotizaciones.Enabled = True - DdlProveedores.Enabled = True - DdlUsoCFDI.Enabled = True - 'DdlIVA.Enabled = True - - ImgCambiaProv.Visible = False - TrPendientes.Visible = False - ImgCambiaClienteVendedor.Visible = False - - Ddlcliente.Enabled = True - DdlVendedor.Enabled = True - ChkEntregaDirecta.Enabled = True - - 'Habilito Controles de PS - TxtCant.Enabled = True - DdlClasificacion.Enabled = True - DdlP2.ddl.Enabled = True - DdlP2.Enabled = True - CboUnidadMedida.Enabled = True - TxtObsPS.Enabled = True - DdlProyecto.Enabled = True - DdlSubProyecto.Enabled = True - txtPrecioUnitario.Enabled = True - DdlIVA.Enabled = True - DdlMoneda.Enabled = True - LbAgregar.Enabled = True - - 'Limpiar datos generales - 'TxtDescrip.Text = "" - 'TxtJustificacion.Text = "" - TxtFechaEstimadaEntrega.Text = "" - 'txtLugarEntrega.Text = "" - InicializarValoresCrearApartirDe() - - 'Reseteo los GVs - gvEstatus.DataSource = Nothing - gvEstatus.DataBind() - fsSeguimiento.Visible = False - GVH.DataSource = Nothing - GVH.DataBind() - fsHistorial.Visible = False - GvEB.DataSource = Nothing - GvEB.DataBind() - - 'Cargo Folio, Usuario y Fecha nuevos - TxtFecha.Text = Now.ToShortDateString - lblNombreUsuario.Text = UsuarioActual.Nombre - CargaFolios() - BtnGuardar.Enabled = True - EsNuevo = True - - For Each Row As GridViewRow In GvD.Rows - Row.Cells(8).Enabled = True - Row.Cells(9).Enabled = True - Row.FCLinkButton("imgD").Visible = True - Row.FCLinkButton("imgE").Visible = True - Next - GvD.Enabled = True - - BtnCancelarPrevio.Visible = False - BtnCrearApartirDe.Visible = False - - - uppSeguimientoEstatus.Update() - UPProv.Update() - UPPEmp.Update() - UPPDetalle.Update() - uppEstatus.Update() - uppHistorial.Update() - UPEventoBitacora.Update() - UpIvas.Update() - uppOpciones.Update() - UpVendedor.Update() - - End Sub - Private Sub InicializarValoresCrearApartirDe() - ViewState("NumCotizacionesGanadoras") = 0 - ViewState("TotalCotizacionesGanadoras") = 0 - ViewState("CveEstatus") = -1 - ViewState("CveEstatusSiguiente") = -1 - EditarOC = False - CveEstatusFinalOK = -2 - 'BtnCancelarPrevio.Disabled = True - BtnCancelarPrevio.Enabled = False - Folio = 0 - 'ViewState("ArrayCCNombre") = "" - ViewState("ArrayCC") = "" - ViewState("EjercicioAC") = -1 - ViewState("CveUsuario") = -1 - CveVenta = -1 - TieneVenta = -1 - TieneCompraInv = -1 - CveCompra = -1 - CveMovimientoAlmacenVenta = -1 - IDPolizaPresupuestal = -1 - - Dim drE As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = 'OC' AND TipoTermino = 3")).FiltroPrimero("") - If drE IsNot Nothing Then ViewState("CveEstatusInicialOC") = drE("CveEstatus").ToString.ToEntero - - ViewState("LigaOCs") = "" - ViewState("CveOCGeneradas") = New List(Of Integer) - ViewState("FolioOCGeneradas") = New List(Of Integer) - ViewState("IDPolizasGeneradas") = New List(Of Integer) - ViewState("FoliosPolizas") = New List(Of Integer) - Session("FileUpload") = "" - Session("FileExtension") = "" - Session("FileFolder") = "" - TipoOS = False - RequiereSubProyecto = If(CveEmpresaActual = 48, False, True) - txtPrecioUnitario.Attributes.Add("onKeyUp", "obtenertotal();") - TxtCant.Attributes.Add("onKeyUp", "obtenertotal();") - TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID)) - Dim script As String = "obtenertotal();" - ScriptManager.RegisterStartupScript(Me, GetType(Page), "anioactual", script, True) - VerificaPresupuesto = False - RVSubProyecto.Enabled = If(RequiereSubProyecto = True, True, False) - GvD.Columns(10).Visible = False - CargaComboCFDI() - CargaMonedas() - 'CargaClasificaciones() - 'CargaUnidadesMedida() - BtnCancelar.Attributes.Add("disabled", "disabled") - TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)") - trContabilizada.Visible = False - HplCompraContabilizada.Text = "" - CargaTipoActivoFijo() - DrEliminados = New ArrayList - - DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual) - DdlSAUsuario.DataBind() - - Dim CveProveedorPrevio As String = DdlProveedores.SelectedValue - Dim CveProveedorSucursalPrevio As String = DdlProveedorSucursal.SelectedValue - CargaProveedores() - DdlProveedores.SelectedValueExist(CveProveedorPrevio) - DdlProveedores_SelectedIndexChanged(DdlProveedores, EventArgs.Empty) - If DdlProveedorSucursal.Visible Then - DdlProveedorSucursal.SelectedValueExist(CveProveedorSucursalPrevio) - DdlProveedorSucursal.Enabled = True - DdlProveedorContacto.Enabled = True - End If - - CargarOptionAnticipos() - HlAgregarExcel.Visible = True - LbDescargarExcel.Visible = True - - CargaEstatusInicialFinal() - CargaEstatusUsuarios() - CargaEstatusOC() - - 'Estatus Default 66 - If CveEmpresaActual = 66 Then - CboE.SelectedValueExist(18) - End If - - - TxtFecha.Text = Now.ToString("dd/MM/yyyy") - lblNombreUsuario.Text = UsuarioActual.Nombre - ViewState("CveOrdenCompra") = 0 - CargaFolios() - 'BtnCancelarPrevio.Disabled = True - BtnCancelarPrevio.Enabled = False - - If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False - - PnlProveedor.Visible = True : UPProv.Update() - - '12/04/2018 - 'DdlIVA.Visible = True - - If UsuarioActual.Empresa.UsaAC Then - ActivaAC() - End If - - hplAgregarCotizacion.Visible = False - hplEnviarCorreo.Visible = False - - 'ASIGNA ESTATUS OC - CboE_SelectedIndexChanged(New Object, New EventArgs) - - 'Actualiza Menu Acciones - HLImprimir.Visible = False - HLImprimirCotizacion.Visible = False - - generarAnticipo.Visible = False - HLGenerarVenta.Visible = False - HLGenerarRecepcion.Visible = False - - BtnSolicitudAnticipo.Visible = False - HlAgregarExcel.Visible = True - LbDescargarExcel.Visible = True - BtnGeneraContrato.Visible = True : CargaClientes() - - LbVerificarExistencia.Visible = True - LnkAgregarGuia.Visible = False - - HlEvento.Visible = False - - UpAccionesBitacora.Update() - UpContrato.Update() - UpAcciones.Update() - End Sub -#End Region - -#Region " ACTUALIZA OC " - Protected Sub ImgCambiaProv_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCambiaProv.Click - Dim OC As New ClsOC - If OC.UpdateProveedorOrdenCompra(DdlProveedores.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, CveEmpresaActual) Then - CargaHistorial() - Alert("El cambio de proveedor se hizo correctamente", TipoMensaje.MsgInformacion) - End If - OC.Dispose() - End Sub - Protected Sub ImgCambiaClienteVendedor_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCambiaClienteVendedor.Click - Dim OC As New ClsOC - If OC.UpdateClienteVendedorOrdenCompra(Ddlcliente.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, CveEmpresaActual) Then - CargaHistorial() - Alert("El cambio de cliente/vendedor se hizo correctamente", TipoMensaje.MsgInformacion) - End If - OC.Dispose() - End Sub -#End Region - -#Region "OC X SURTIR" - Private Sub lblPendientes_Click(sender As Object, e As EventArgs) Handles lblPendientes.Click - CargaOCxSurtir() - RegistraScript(String.Format("$('#{0}').modal();", "DivOCxSurtir")) - End Sub - Private Sub CargaOCxSurtir() - Dim ObjOC As New ClsOC - - If ObjOC.GetPendietePorSurtirOC("-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOrdenCompra) Then - GvDatosOCxSurtir.DataSource = ObjOC.DtResultados.FiltraParametros("CodigoPS <> ''") - Else - GvDatosOCxSurtir.DataSource = Nothing - End If - GvDatosOCxSurtir.DataBind() - - ObjOC.Dispose() - UpDatosOCxSurtir.Update() - End Sub - Protected Sub LnkCompra_Click(sender As Object, e As EventArgs) - CargaOCVinculada(CType(sender, LinkButton).CommandArgument.ToEntero) - ' Alert("Ok") - End Sub - Private Sub CargaOCVinculada(CveOCDetalle As Integer) - Dim ObjOC As New ClsOC - - If ObjOC.GetOCVinculadasPendientes(CveOCDetalle) Then - GvOCVinculada.DataSource = ObjOC.DtResultados - Else - GvOCVinculada.DataSource = Nothing - End If - GvOCVinculada.DataBind() - - ObjOC.Dispose() - UpBodyOCVinculada.Update() - UpOCVinculada.Update() - - RegistraScript("$('#DivOCVinculada').modal('show');") - End Sub - - Private Sub LbVerificarExistencia_Click(sender As Object, e As EventArgs) Handles LbVerificarExistencia.Click - 'RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacenDT.aspx?CveOrdenCompra={0}',800,547,'N');", CveOrdenCompra)) - VerificarExistencias() - End Sub - Private Sub VerificarExistencias() - - Dim tmpDTPS As DataTable = DtDetalle - Dim DTAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($" CveTipoAlmacen IN (1,9) ") 'AND CveSucursal = {CveSucursal}") - Dim objInv As New ClsInventarios - Dim consulta As New StringBuilder - - - consulta.Append(" ") - consulta.Append(" DECLARE @TEMP TABLE (CvePS INT, CveSubProyecto INT);") - For Each row As DataRow In tmpDTPS.Rows - consulta.AppendFormat("INSERT INTO @TEMP VALUES ({0},{1});", row("CvePS"), row("CveSubProyecto")) - Next - consulta.Append(" SELECT CASE WHEN LEN (ISNULL (P.Codigo, '')) = 0 THEN P.PS ELSE CONCAT( P.Codigo, ' - ', P.PS) END AS Producto, SUM(OCPR.Cantidad) AS [Por Recibir] ") - For Each row As DataRow In DTAlmacen.Rows - consulta.AppendFormat(" ,SUM(CASE WHEN CS.CveAlmacen={0} THEN CS.Existencia - ISNULL(INV.Cantidad,0) ELSE 0 END) AS [{1}] ", row("CveAlmacen"), row("Almacen")) - Next - consulta.Append(" FROM @TEMP T ") - consulta.Append(" INNER JOIN [ProductosServicios] P ON P.CvePS = T.CvePS ") - consulta.Append(" LEFT JOIN [Inv_ExistenciasProductos] CS ON P.CvePS = CS.CvePS ") - consulta.Append(" LEFT JOIN Vw_InventarioPorSurtir INV ON INV.CvePS = P.CvePS AND INV.CveAlmacen = CS.CveAlmacen ") - consulta.Append(" LEFT JOIN Vw_OC_PorRecibir OCPR ON OCPR.CvePS = P.CvePS AND OCPR.CveAlmacen = CS.CveAlmacen AND OCPR.CveSubProyecto = T.CveSubProyecto") - consulta.Append(" WHERE P.CveTipoPS = 2") - consulta.Append(" GROUP BY P.CvePS,P.Codigo,P.PS") - - objInv.GetQuery(consulta.ToString()) - - ' limpio los almacenes donde no tiene ningun producto existencia - For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1 - If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CvePS", "PSCodigo") AndAlso objInv.DtResultados.SUM(String.Format("[{0}]", objInv.DtResultados.Columns(i).ColumnName)) = 0 Then - objInv.DtResultados.Columns.RemoveAt(i) - End If - Next - - tmpDTPS = objInv.DtResultados - objInv.Dispose() - GvExist.DataSource = tmpDTPS - GvExist.DataBind() - - 'ORDENA HACIA LA DERECHA LAS CANTIDAD - OJO!! NO SE USO GV.COLUMNS.COUNT PORQUE LAS COLUMNAS GENERADAS EN BEHIND NO LAS RECONOCE - For index = 1 To tmpDTPS.Columns.Count - 1 - For Each gvr As GridViewRow In GvExist.Rows - gvr.Cells(index).HorizontalAlign = HorizontalAlign.Right - Next - Next - - 'GvExist.Columns(1).Visible = False - 'GvExist.Columns(2).HeaderText = "Producto" - RegistraScript("$('#DivModalExistenciaTotal').modal('show');") - UPExist.Update() - End Sub - - -#End Region - -#Region " SUCURSAL PARA EXISTENCIAS DE DDLOST" - Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) - If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then - SeleccionaSucursal() - End If - End Sub - Private Sub CargaSucursal() - DdlSucursal.DataSource = GlobalDTSubProyectos(-1).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlSucursal.DataBind() - DdlSucursal.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlSucursal.SelectedValue = "-1" - - SeleccionaSucursal() - - End Sub - Private Sub SeleccionaSucursal() - If DdlSubProyecto.SelectedValue.ToEntero > 0 Then - DdlSucursal.SelectedValueExist(DdlSubProyecto.SelectedValue.ToEntero) - End If - DdlP2.Attributes.Remove("Data-cvesubproyecto") - DdlP2.Attributes.Add("Data-cvesubproyecto", DdlSucursal.SelectedValue) - End Sub -#End Region - -#Region " TAB ALMACEN " - Private Sub InicializaMovtosAlmacen() - - If CveOrdenCompra > 0 Then - Dim ObjInventarios As New ClsInventarios - - If ObjInventarios.GetMovimientosOC(CveOrdenCompra, CveEmpresaActual) Then - TabAlmacen.Visible = True - If ObjInventarios.DtResultados.Rows.Count > 0 Then - GVInv.DataSource = ObjInventarios.DtResultados - End If - GVInv.DataBind() - End If - - ObjInventarios.Dispose() - UpAlmacen.Update() - End If - - End Sub - Protected Sub GVInv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVInv.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - - If e.Row.DBCampo("CvePS") = "" Then - 'TITULO - - e.Row.FCLiteral("LtProducto").Text = $"{e.Row.DBCampo("CodigoPS")}" - - e.Row.HorizontalAlign = HorizontalAlign.Center - e.Row.Cells(0).Visible = False - e.Row.Cells(1).Visible = False - e.Row.Cells(2).ColumnSpan = 3 - e.Row.Cells(3).Visible = False - e.Row.Cells(4).Visible = False - e.Row.Cells(5).Visible = False - - If e.Row.DBCampo("Origen").ToEntero > 0 Then - e.Row.CssClass = "SubTotales" - Else - e.Row.BackColor = Drawing.Color.FromArgb(224, 130, 131) - e.Row.ForeColor = Drawing.Color.White - e.Row.Font.Bold = True - End If - - Else - 'DETALLE - - If e.Row.DBCampo("SerieLote") <> "" Then - GVInv.Columns(4).Visible = True - End If - - If e.Row.DBCampo("Lote") <> "" Then - GVInv.Columns(4).Visible = True - End If - - If e.Row.DBCampo("Batch") <> "" Then - GVInv.Columns(4).Visible = True - End If - - End If - - - - End If - End Sub - -#End Region - -#Region "TIPO OC: INGRESO / GASTO" - Private Sub VerificarClasificaciones(Optional AfterPageLoad As Boolean = False) - If AfterPageLoad Then - RegistraScript("window.onload = function MuestraClasificaciones() { document.getElementById(""C_BtnMostrarClasificaciones"").click(); }") - Else - PresionarBotonModal("C_BtnMostrarClasificaciones") - End If - - End Sub - Private Sub PresionarBotonModal(Boton As String) - Try - Dim script As String = $"document.getElementById(""{Boton}"").click();" - Dim Pag As Page = DirectCast(System.Web.HttpContext.Current.Handler, Page) - ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, script, True) - Pag = Nothing - Catch ex As Exception - End Try - End Sub - Private Sub BtnIniciarContrato_Click(sender As Object, e As EventArgs) Handles BtnIniciarContrato.Click - CargaClasificacionesPopUp(-1) - PresionarBotonModal("C_BtnCerrarClasificaciones") - End Sub - Private Sub CargaClasificacionesPopUp(CveCotizacion As Integer) - DdlClasificacion.Items.Clear() - If RblOpcionClasificacion.SelectedValue.ToEntero = 1 Or CveCotizacion > 0 Then - DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual, UsoClasificacion:=1) - DdlClasificacion.DataBind() - DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación (Todas)", "-1")) - Else - DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual, UsoClasificacion:=2) - DdlClasificacion.DataBind() - DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación (Todas)", "-1")) - End If - UPPDetalle.Update() - End Sub -#End Region - -#Region " CALCULA IMPORTES " - Protected Sub DdlIVA_SelectedIndexChanged(sender As Object, e As EventArgs) - - 'SE ACTUALIZA EL IVA DEL DtDetalle SI ES QUE AHORA SE VA A TOMAR EN CUENTA EL IVA - For Each Row As DataRow In DtDetalle.Rows - If Not Math.Round(DdlIVA.SelectedValue.ToDouble, 2) = 1 Then - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Row("CvePS").ToString.ToEntero).FiltroPrimero("") - If DrPS IsNot Nothing Then - Row("IVAPorcentaje") = If(DrPS("IVA").ToString.ToEntero = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), 0) - Row("IVA") = Row("IVAPorcentaje").ToString.ToDouble * Row("Total").ToString.ToDouble - Row("RetIVAPorcentaje") = DrPS("RetIVA").ToString.ToDouble - Row("RetIVA") = Row("RetIVAPorcentaje").ToString.ToDouble * Row("Total").ToString.ToDouble - End If - Else - Row("IVA") = 0 - Row("RetIVA") = 0 - Row("IVAPorcentaje") = 0 - Row("RetIVAPorcentaje") = 0 - End If - Next - - CalculaGenerales() - End Sub - Private Sub CalculaGenerales() - - Dim Subtotal As Double = DtDetalle.SUM("Total", "Total > 0") + DtDetalle.SUM("Descuento") - Dim Descuento As Double = DtDetalle.SUM("Descuento") - Dim SubTotalIEPSIVA As Double = DtDetalle.SUM("IEPSPSIVA") - Dim IVA As Double = DtDetalle.SUM("IVA") + SubTotalIEPSIVA - Dim SubTotalIEPS As Double = DtDetalle.SUM("IEPSPS") - Dim SubTotalRetIVA As Double = DtDetalle.SUM("RetIVA") - Dim SubTotalRetISR As Double = DtDetalle.SUM("RetISR") - - 'SUBTOTAL - LblSubTotal.Text = (Subtotal).FormatoNumero - - 'DESCUENTO - TxtDescuento.Text = Descuento.FormatoNumero - HdnDescuento.Value = Descuento.FormatoNumero - - 'SUBTOTAL 2 - LblSubTotal2.Text = (Subtotal - Descuento).FormatoNumero - - 'IVA - TxtIVA.Text = IVA.ToString.FormatoNumero() - LblIVA.Text = IVA.ToString.FormatoNumero() - - 'IEPS - TxtIEPS.Text = SubTotalIEPS.FormatoNumero - TrIEPS.Visible = SubTotalIEPS > 0 - - 'RetIVA - TxtRetIVA.Text = SubTotalRetIVA.FormatoNumero - HdnRetIVA.Value = SubTotalRetIVA.FormatoNumero - TrRetIVA.Visible = SubTotalRetIVA > 0 - - 'RetISR - TxtRetISR.Text = SubTotalRetISR.FormatoNumero - HdnRetISR.Value = SubTotalRetISR.FormatoNumero - TrRetISR.Visible = SubTotalRetISR > 0 - - 'TOTAL - LblTotal.Text = (Subtotal - Descuento + IVA + SubTotalIEPS - SubTotalRetIVA - SubTotalRetISR).FormatoNumero() - - End Sub - -#End Region - -#Region " RETENCIONES " - Private Sub ActivarRetenciones() - 'If UsuarioActual.Empresa.Funcionalidad(116) = "1" Then - ImgAplicaRetenciones.Visible = True - 'End If - End Sub - Protected Sub ImgAplicaRetenciones_Click(sender As Object, e As ImageClickEventArgs) - MuestraRetenciones() - End Sub - Private Sub MuestraRetenciones() - - If (TrRetIVA.Visible) Then - TxtIEPS.Text = "0.00" - TxtRetIVA.Text = "0.00" - TxtRetISR.Text = "0.00" - CalculaGenerales() - End If - - If ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-collapse-icon.png" Then - ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-expand-icon.png" - TrRetIVA.Visible = True - TrRetISR.Visible = True - TrIEPS.Visible = True - Else - ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-collapse-icon.png" - If Not TxtRetIVA.Text.ToDouble > 0 Then TrRetIVA.Visible = False - If Not TxtRetISR.Text.ToDouble > 0 Then TrRetISR.Visible = False - If Not TxtIEPS.Text.ToDouble > 0 Then TrIEPS.Visible = False - End If - - 'ImgAplicaRetenciones.ImageUrl = If(TrRetIVA.Visible, "/Metronic/assets/global/img/portlet-collapse-icon.png", "/Metronic/assets/global/img/portlet-expand-icon.png") - End Sub - Private Sub AplicaRetenciones() - TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero - TxtRetISR.Text = TxtRetISR.Text.FormatoNumero - TxtIEPS.Text = TxtIEPS.Text.FormatoNumero - End Sub - Private Sub CargaRetenciones(RetIVA As Double, RetISR As Double, IEPS As Double) - - If RetIVA > 0 Or RetISR > 0 Or IEPS > 0 Then - TrRetIVA.Visible = True - TxtRetIVA.Text = RetIVA.ToString.ToDouble.FormatoNumero - TrRetISR.Visible = True - TxtRetISR.Text = RetISR.ToString.ToDouble.FormatoNumero - TrIEPS.Visible = True - TxtIEPS.Text = IEPS.ToString.ToDouble.FormatoNumero - End If - - End Sub -#End Region - -#Region " DESCUENTOS " - Private Sub ActivarDescuentos() - 'If UsuarioActual.Empresa.Funcionalidad(111) = "1" Then - TDDescuento.Visible = True - TrDescuento.Visible = True - THDescuento.Visible = True - GvD.Columns(7).Visible = True - ' End If - End Sub - Protected Sub BtnAplicarDescuento_Click(sender As Object, e As EventArgs) - AplicarDescuentos() - End Sub - Private Sub AplicarDescuentos() - If LblSubTotal.Text.ToDecimal <= 0 Then - Alert("Para aplicar un descuento, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) - TxtDescuento.Text = "0.00" - Exit Sub - End If - - TxtDescuento.Text = TxtDescuento.Text.FormatoNumero - HdnDescuento.Value = TxtDescuento.Text - - Dim Total = 0.0D - Dim Descuento = 0.0D - Dim Porcentaje = TxtDescuento.Text.ToDecimal / DtDetalle.SUM("Total") - Dim LastDr As DataRow = Nothing - For Each Dr As DataRow In DtDetalle.Rows - Descuento = ((Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100).ToDecimal - Dr("Descuento") = Descuento - Total = (Dr("Cantidad").ToString.ToDecimal * Dr("Importe").ToString.ToDecimal) - Descuento - Dr("Total") = Math.Round(Total, 2) - Dr("IVA") = Math.Round(Dr("IVAPorcentaje").ToString.ToDecimal * Total, 2) - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - LastDr = Dr - Next - If Not IsNothing(LastDr) Then - Dim Fdes As Decimal = TxtDescuento.Text.ToDecimal - DtDetalle.SUM("Descuento").ToString.ToDecimal - If Fdes > 0 Then - LastDr("Descuento") = LastDr("Descuento").ToString.ToDecimal + Fdes - End If - End If - - CalculaGenerales() - - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - End Sub - Protected Sub BtnLimpiarDescuento_Click(sender As Object, e As EventArgs) - If HdnDescuento.Value.ToDecimal > 0 Then - TxtDescuento.Text = HdnDescuento.Value.FormatoNumero - Exit Sub - End If - - For Each Dr As DataRow In DtDetalle.Rows - Dr("Descuento") = 0 - - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - Next - - TxtDescuento.Text = "0.00" - HdnDescuento.Value = TxtDescuento.Text - CalculaGenerales() - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - End Sub - Private Function ValidarDescuentos() As Boolean - Dim Retorno = True - - Dim DescuentoConceptos = DtDetalle.SUM("Descuento") - Dim DescuentoGeneral = TxtDescuento.Text.ToDouble - - If DescuentoConceptos <> DescuentoGeneral Then - Alert(String.Format("Los descuentos no cuadran. Por favor de verificar.({0}-{1})", DescuentoConceptos, DescuentoGeneral), TipoMensaje.MsgAdvertencia) - Retorno = False - End If - - Return Retorno - End Function - -#End Region - -#Region "RETIVA" - - Protected Sub BtnLimpiarRetIVA_Click(sender As Object, e As EventArgs) - If HdnRetIVA.Value.ToDecimal > 0 Then - TxtRetIVA.Text = HdnRetIVA.Value.FormatoNumero - Exit Sub - End If - - For Each Dr As DataRow In DtDetalle.Rows - Dr("RetIVA") = 0 - Dr("RetIVAPorcentaje") = 0 - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - Next - - TxtRetIVA.Text = "0.00" - HdnRetIVA.Value = TxtRetIVA.Text - CalculaGenerales() - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - End Sub - Protected Sub BtnAplicarRetIVA_Click(sender As Object, e As EventArgs) - AplicarRetIVA() - End Sub - - Private Sub AplicarRetIVA() - If LblSubTotal.Text.ToDecimal <= 0 Then - Alert("Para aplicar un RetIVA, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) - TxtRetIVA.Text = "0.00" - CalculaGenerales() - Exit Sub - End If - - TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero - HdnRetIVA.Value = TxtRetIVA.Text - - Dim Porcentaje = TxtRetIVA.Text.ToDecimal / DtDetalle.SUM("Total") - Dim LastDr As DataRow = Nothing - For Each Dr As DataRow In DtDetalle.Rows - Dr("RetIVA") = (Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100 - Dr("RetIVAPorcentaje") = Porcentaje - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - LastDr = Dr - Next - If Not IsNothing(LastDr) Then - Dim Fdes As Decimal = TxtRetIVA.Text.ToDecimal - DtDetalle.SUM("RetIVA").ToString.ToDecimal - If Fdes > 0 Then - LastDr("RetIVA") = LastDr("RetIVA").ToString.ToDecimal + Fdes - End If - End If - - 'Alert(String.Format("Descuento:{0}", DtDetalle.SUM("Descuento"))) - - CalculaGenerales() - - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - - End Sub - -#End Region - -#Region "RETISR" - - Protected Sub BtnLimpiarRetISR_Click(sender As Object, e As EventArgs) - If HdnRetISR.Value.ToDecimal > 0 Then - TxtRetISR.Text = HdnRetISR.Value.FormatoNumero - Exit Sub - End If - - For Each Dr As DataRow In DtDetalle.Rows - Dr("RetISR") = 0 - Dr("RetISRPorcentaje") = 0 - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - Next - - TxtRetISR.Text = "0.00" - HdnRetISR.Value = TxtRetISR.Text - CalculaGenerales() - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - End Sub - Protected Sub BtnAplicarRetISR_Click(sender As Object, e As EventArgs) - AplicarRetISR() - End Sub - - Private Sub AplicarRetISR() - If LblSubTotal.Text.ToDecimal <= 0 Then - Alert("Para aplicar un RetISR, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) - TxtRetISR.Text = "0.00" - CalculaGenerales() - Exit Sub - End If - - TxtRetISR.Text = TxtRetISR.Text.FormatoNumero - HdnRetISR.Value = TxtRetISR.Text - - Dim Porcentaje = TxtRetISR.Text.ToDecimal / DtDetalle.SUM("Total") - Dim LastDr As DataRow = Nothing - For Each Dr As DataRow In DtDetalle.Rows - Dr("RetISR") = (Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100 - Dr("RetISRPorcentaje") = Porcentaje - ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD - Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) - LastDr = Dr - Next - If Not IsNothing(LastDr) Then - Dim Fdes As Decimal = TxtRetISR.Text.ToDecimal - DtDetalle.SUM("RetISR").ToString.ToDecimal - If Fdes > 0 Then - LastDr("RetISR") = LastDr("RetISR").ToString.ToDecimal + Fdes - End If - End If - - 'Alert(String.Format("Descuento:{0}", DtDetalle.SUM("Descuento"))) - - CalculaGenerales() - - GvD.DataSource = DtDetalle - GvD.DataBind() - UPPDetalle.Update() - - End Sub - -#End Region - -#Region "CONTRATOS" - - Private Sub CargaClientes() - DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) - DdlClientes.DataBind() - DdlClientes.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - - Private Sub CargaContratos() - Dim ObjContratos As New ClsContratos - If ObjContratos.GetContratosDetalle(DdlContratos.SelectedValue.ToEntero) Then - GvContratos.DataSource = ObjContratos.DtResultados - End If - ObjContratos.Dispose() - GvContratos.DataBind() - UpContrato.Update() - End Sub - - Private Sub DdlClientes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClientes.SelectedIndexChanged - DdlContratos.Items.Clear() - ' DdlContratos.DataSource = GlobalDTContratos().FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCliente = {DdlClientes.SelectedValue.ToEntero} AND Estatus = True AND FechaFinal >= '{Now.ToShortDateString}' AND FechaInicial <= '{Now.ToShortDateString}'") - Dim ObjContratos As New ClsContratos - - If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, DdlClientes.SelectedValue.ToEntero, -1, 1) Then - If ObjContratos.DtResultados.FiltraParametros("Estatus = True").Rows.Count > 0 Then - - DdlContratos.DataSource = ObjContratos.DtResultados.FiltraParametros($"Estatus = True AND FechaFinal >= '{Now.ToShortDateString}' AND FechaInicial <= '{Now.ToShortDateString}'") - DdlContratos.DataBind() - - End If - End If - DdlContratos.Items.Insert(0, New ListItem("Seleccione", "-1")) - UpContrato.Update() - End Sub - - Private Sub DdlContratos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlContratos.SelectedIndexChanged - Dim ObjContratos As New ClsContratos - If ObjContratos.GetContratosDetalle(DdlContratos.SelectedValue.ToEntero) Then - GvContratos.DataSource = ObjContratos.DtResultados - GvContratos.DataBind() - End If - ObjContratos.Dispose() - UpContrato.Update() - End Sub - - Private Sub BtnAgregarContrato_Click(sender As Object, e As EventArgs) Handles BtnAgregarContrato.Click - Dim Selecciono As Boolean = False - - If DivProyecto.Visible And (Not DdlProyectoContrato.SelectedValue.ToEntero > 0 Or Not DdlSubProyectoContrato.SelectedValue.ToEntero > 0) Then - Alert("Tiene que seleccionar un proyecto y un subproyecto", TipoMensaje.MsgAdvertencia) - Exit Sub - ElseIf Not DdlSubProyectoContrato.SelectedValue.ToEntero > 0 Then - Alert("Tiene que seleccionar un subproyecto", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - For Each row As GridViewRow In GvContratos.Rows - If row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble > 0 And row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble > 0 Then - Selecciono = True - Exit For - End If - Next - - If Not Selecciono Then - Alert("Tiene que tener al menos un contrato con cantidad y precio mayores que 0", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - DtDetalle.Rows.Clear() - For Each row As GridViewRow In GvContratos.Rows - If row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble > 0 And row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble > 0 Then - Dim Cantidad As Double = row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble - Dim Importe As Double = row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble - - Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=row.DataKey("CvePS").ToEntero).FiltroPrimero("") - If DrPS Is Nothing Then - Alert("Ocurrió un error al cargar la información del producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble - Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble - Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble - - 'If IvaPS = -1 Then 'IVA DE LA SUCURSAL - ' IvaPS = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble - 'End If - - Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble - Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) - Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero) - Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero) - Dim TotalPS As Double = If(Importe > 0, (Importe * Cantidad), 0) - Dim ImportePS As Double = If(Importe > 0, Importe, 0) - Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 - - - AddPS(Cantidad.ToString, row.DataKey("CvePS").ToEntero, row.DataKey("CodigoPS").ToString, "", ImportePS, 0, TotalPS, - row.DataKey("CveUM").ToEntero, IvaPS, IEPSPS, IEPSPSIVA, row.DataKey("CveClasificacion").ToEntero, row.DataKey("UM"), row.DataKey("ClasificacionPS"), 0, "Sin Proyecto", - DdlSubProyectoContrato.SelectedValue.ToEntero, DdlSubProyectoContrato.SelectedItem.Text, "", -1, 0, CveOrdenCompraDetalle, -1, -1, - -1, -1, -1, -1, -1, -1, RetIVA, RetISR, CveContratoDetalle:=row.DataKey("CveContratoDetalle").ToEntero) - End If - Next - TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString) - Ddlcliente.SelectedValue = DdlClientes.SelectedValue - - CargaSuperior() - CargaDatosDetalles() - UPPDetalle.Update() - - RegistraScript(String.Format("$('#{0}').modal().hide();", "ModalContrato")) - UPPDetalle.Update() - UpVendedor.Update() - - End Sub - - Protected Sub DdlProyectoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) - CargaSubProyectosContratos() - End Sub - - Private Sub CargaSubProyectosContratos() - Dim Filtro As String = If(DdlProyectoContrato.SelectedValue.ToEntero > 0, String.Format("CveProyecto = {0}", DdlProyectoContrato.SelectedValue.ToEntero), "") - - DdlSubProyectoContrato.Items.Clear() - If Filtro <> "" Or UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, CveEmpresaActual, 1)) 'DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) ' GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) - End If - DdlSubProyectoContrato.DataBind() - DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - -#End Region - -#Region "PAQUETERIAS GUIAS" - - Protected Sub LnkAgregarGuia_Click(sender As Object, e As EventArgs) - RegistraScript(String.Format("AbrirVentana('/General/PopUpPaqueteriasGuias.aspx?CveOC={0}',800,620);", CveOrdenCompra)) - End Sub - -#End Region - -#Region "DIRECCION ENVIO" - - Protected Sub CargaDdlSucursalCliente() - Dim ObjCliente As New ClsClientes - - DdlClienteSucursalEnvio.Items.Clear() - - If ObjCliente.GetSucursales(Ddlcliente.SelectedValue.ToEntero) Then - If ObjCliente.DtResultados.Rows.Count > 0 Then - DdlClienteSucursalEnvio.DataSource = ObjCliente.DtResultados - End If - End If - - ObjCliente.Dispose() - DdlClienteSucursalEnvio.DataBind() - DdlClienteSucursalEnvio.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlClienteSucursalEnvio.SelectedValue = "-1" - End Sub - - Private Sub BtnAgregarDireccionModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarDireccionModal.Click - TxtEnvioDireccion.Text = "" - TxtEnvioNoExt.Text = "" - TxtEnvioNoInt.Text = "" - TxtEnvioColonia.Text = "" - TxtEnvioCiudad.Text = "" - TxtEnvioEstado.Text = "" - TxtEnvioContacto.Text = "" - 'TxtDepartamento.Text = "" - TxtEnvioCP.Text = "" - TxtEnvioTel.Text = "" - DdlClienteSucursalEnvio.SelectedValue = "-1" - UpAddDireccion.Update() - RegistraScript("$('#divAddDireccionEnvio').modal();") - End Sub - - Private Sub BtnAgregarDireccion_Click(sender As Object, e As EventArgs) Handles BtnAgregarDireccion.Click - - If Not Ddlcliente.SelectedValue.ToEntero > 0 Then - Alert("Tiene que tener un cliente seleccionado", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim ObjClientes As New ClsClientes - Dim TieneError = False - Dim Estatus = If(ChkEstatus.Checked, 1, 0) - - CveDireccionEnvio = ObjClientes.DireccionEnvioAdd(Ddlcliente.SelectedValue.ToEntero, TxtEnvioDireccion.Text.Trim, TxtEnvioNoExt.Text.Trim, TxtEnvioNoInt.Text.Trim, TxtEnvioColonia.Text.Trim, TxtEnvioCiudad.Text.Trim, TxtEnvioEstado.Text.Trim, TxtEnvioCP.Text.ToEntero, TxtEnvioContacto.Text.Trim, UsuarioActual.CveUsuario, Estatus, CveClienteSucursal:=DdlClienteSucursalEnvio.SelectedValue.ToEntero, EnvioTel:=TxtEnvioTel.Text.Trim.Replace(" ", "").Replace("(", "").Replace(")", "").Replace("-", "").Replace("_", "")) - - If CveDireccionEnvio < 0 Then - TieneError = True - End If - - - - If TieneError Then - Alert("Ocurrio un error al agregar/actualizar la dirección de envío", TipoMensaje.MsgError) - Else - RegistraScript("$('#divAddDireccionEnvio').modal('hide');") - CargaDireccionesEnvioCliente() - End If - End Sub - -#End Region - -#Region "CONTATCOS DEL PROVEEDOR" - Protected Sub DdlProveedorSucursal_SelectedIndexChanged(sender As Object, e As EventArgs) - DdlProveedorContacto.Items.Clear() - DdlProveedorContacto.SelectedValue = Nothing - If DdlProveedorSucursal.SelectedValue <> "-1" Then - Dim ObjProveedor As New ClsCompProveedores - If ObjProveedor.GetProveedoresContactos(-1, DdlProveedores.SelectedValue.ToEntero, DdlProveedorSucursal.SelectedValue.ToEntero) Then - DdlProveedorContacto.DataSource = ObjProveedor.DtResultados - DdlProveedorContacto.Items.Insert(0, New ListItem("Seleccione", "-1")) - DivProveedorContacto.Visible = ObjProveedor.DtResultados.Rows.Count > 0 - End If - ObjProveedor.Dispose() - DdlProveedorContacto.DataBind() - UPProv.Update() - Else - DivProveedorContacto.Visible = False - End If - End Sub -#End Region - -#Region "A G R E G A R - P R O D U C T O S S E R V I C I O S" - Private Sub CargaDatosAgregarPS() - DdlClasificacionPS.Items.Clear() - If UsuarioActual.Empresa.UsaAC Then - DdlClasificacionPS.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, -1, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") - Else - DdlClasificacionPS.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, -1, -1)).FiltraParametros("", Orderby:="Clasificacion") - End If - DdlClasificacionPS.DataBind() - DdlClasificacionPS.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DdlUnidadMedida.Items.Clear() - DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) - DdlUnidadMedida.DataBind() - - End Sub - - Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs) - - Dim PS As New Modelos.MProductoServicio() - PS.Codigo = TxtCodigo.Text - PS.PS = TxtPS.Text - PS.CveUnidadMedida = DdlUnidadMedida.SelectedValue.ToEntero() - PS.CveClasificacion = DdlClasificacionPS.SelectedValue.ToEntero() - PS.CveTipoPS = DdlTipoPS.SelectedValue.ToEntero() - PS.AplicaParaVenta = True - PS.CveUsuario = UsuarioActual.CveUsuario - PS.CveEmpresa = UsuarioActual.CveEmpresa - - Dim ObjPS As New ClsProductosServicios - If ObjPS.AddPSSimplificado(PS) > 0 Then - RecargaGlobalEquivalencias() - Alert("El P/S fue agregado correctamente.") - End If - ObjPS.Dispose() - - TxtPS.Text = "" - TxtCodigo.Text = "" - DdlUnidadMedida.SelectedValueExist(-1) - DdlClasificacionPS.SelectedValueExist(-1) - DdlTipoPS.SelectedValueExist(-1) - - UpAgregarPS.Update() - - RegistraScript("$('#DivAgregarPS').modal('hide');") - RecargaPSGlobal() - End Sub - Private Sub RecargaPSGlobal() - Dim ObjPS As New ClsProductosServicios - - If ObjPS.GetPSSimplificado(-1) Then Application("GlobalDTPSSimplificado") = ObjPS.DtResultados.AsEnumerable() - - ObjPS.Dispose() - End Sub - - - Private Sub RecargaGlobalEquivalencias() - Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias) - Hilo.Start() - End Sub - Private Sub GeneraGlobalEquivalencias() - Dim ObjPS = New ClsProductosServicios - If ObjPS.GetPSEquivalencias(-1, -1) Then - GlobalDTProductosServiciosEquivalencias(-1, -1) = ObjPS.DtResultados - End If - ObjPS.Dispose() - End Sub - -#End Region - -End Class +Option Explicit On +Option Strict On + +Imports System.Data +Imports Extensiones +Imports System.IO + +Partial Class OC + Inherits ClsPaginas + Private Shared missing As Object = System.Reflection.Missing.Value + +#Region "Propiedades" + Private Property CveEmpresaActual As Integer + Get + CveEmpresaActual = ViewState("CveEmpresaActual").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEmpresaActual") = value + End Set + End Property + Private Property TipoOC As String + Get + TipoOC = ViewState("TipoOC").ToString + End Get + Set(value As String) + ViewState("TipoOC") = value + End Set + End Property + Private Property TipoLargo As String + Get + TipoLargo = ViewState("TipoLargo").ToString + End Get + Set(value As String) + ViewState("TipoLargo") = value + End Set + End Property + Private Property TipoOS As Boolean + Get + TipoOS = CBool(ViewState("TipoOS").ToString) + End Get + Set(value As Boolean) + ViewState("TipoOS") = value + End Set + End Property + Private Property CveOrdenCompra As Integer + Get + CveOrdenCompra = ViewState("CveOrdenCompra").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveOrdenCompra") = value + End Set + End Property + Private Property CveIEAnticipo As Integer + Get + CveIEAnticipo = ViewState("CveIEAnticipo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveIEAnticipo") = value + End Set + End Property + Private Property Folio As Integer + Get + Folio = ViewState("Folio").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("Folio") = value + End Set + End Property + Private Property CveUsuario As Integer + Get + CveUsuario = ViewState("CveUsuario").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveUsuario") = value + End Set + End Property + Private Property CveEstatus As Integer + Get + CveEstatus = ViewState("CveEstatus").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatus") = value + End Set + End Property + Private Property CveEstatusSiguiente As Integer + Get + CveEstatusSiguiente = ViewState("CveEstatusSiguiente").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatusSiguiente") = value + End Set + End Property + Private Property CveEstatusAnterior As Integer + Get + CveEstatusAnterior = ViewState("CveEstatusAnterior").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatusAnterior") = value + End Set + End Property + Private Property CveCotizacion As Integer + Get + Return If(IsNothing(ViewState("CveCotizacion")), -1, ViewState("CveCotizacion").ToString.ToEntero) + End Get + Set(value As Integer) + ViewState("CveCotizacion") = value + End Set + End Property + Private Property EsNuevo As Boolean + Get + EsNuevo = DirectCast(ViewState("EsNuevo"), Boolean) + End Get + Set(value As Boolean) + ViewState("EsNuevo") = value + End Set + End Property + Private Property EsCrearApartirDe As Boolean + Get + EsCrearApartirDe = If(IsNothing(ViewState("EsCrearApartirDe")), False, DirectCast(ViewState("EsCrearApartirDe"), Boolean)) + End Get + Set(value As Boolean) + ViewState("EsCrearApartirDe") = value + End Set + End Property + Private Property RequiereSubProyecto As Boolean + Get + RequiereSubProyecto = DirectCast(ViewState("RequiereSubProyecto"), Boolean) + End Get + Set(value As Boolean) + ViewState("RequiereSubProyecto") = value + End Set + End Property + Private Property DtDetalle As DataTable + Get + DtDetalle = DirectCast(ViewState("DtDetalle"), DataTable) + End Get + + Set(ByVal value As DataTable) + ViewState("DtDetalle") = value + End Set + End Property + Private Property DtHistorial As DataTable + Get + DtHistorial = DirectCast(ViewState("DtHistorial"), DataTable) + End Get + + Set(ByVal value As DataTable) + ViewState("DtHistorial") = value + End Set + End Property + Private Property DrEliminados As ArrayList + Get + DrEliminados = DirectCast(ViewState("DrEliminados"), ArrayList) + End Get + + Set(ByVal value As ArrayList) + ViewState("DrEliminados") = value + End Set + End Property + Private Property NumCotizaciones As Integer + Get + NumCotizaciones = ViewState("NumCotizaciones").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("NumCotizaciones") = value + End Set + End Property + Private Property NumCotizacionesGanadoras As Integer + Get + NumCotizacionesGanadoras = ViewState("NumCotizacionesGanadoras").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("NumCotizacionesGanadoras") = value + End Set + End Property + Private Property ProveedoresCotizacion As ArrayList + Get + ProveedoresCotizacion = DirectCast(ViewState("ProveedoresCotizacion"), ArrayList) + End Get + + Set(ByVal value As ArrayList) + ViewState("ProveedoresCotizacion") = value + End Set + End Property + Private Property TotalCotizacionesGanadoras As Decimal + Get + TotalCotizacionesGanadoras = ViewState("TotalCotizacionesGanadoras").ToString.ToDecimal + End Get + Set(value As Decimal) + ViewState("TotalCotizacionesGanadoras") = value + End Set + End Property + Private Property DtCotizaciones As DataTable + Get + DtCotizaciones = DirectCast(ViewState("DtCotizaciones"), DataTable) + End Get + Set(ByVal value As DataTable) + ViewState("DtCotizaciones") = value + End Set + End Property + Private Property DtEstatusUsuarios As DataTable + Get + DtEstatusUsuarios = DirectCast(ViewState("DtEstatusUsuarios"), DataTable) + End Get + Set(ByVal value As DataTable) + ViewState("DtEstatusUsuarios") = value + End Set + End Property + Private Property DtEstatusUsuariosClasificaciones As DataTable + Get + DtEstatusUsuariosClasificaciones = DirectCast(ViewState("DtEstatusUsuariosClasificaciones"), DataTable) + End Get + Set(ByVal value As DataTable) + ViewState("DtEstatusUsuariosClasificaciones") = value + End Set + End Property + Private Property EsCreaApartirDe As Boolean + Get + Return If(IsNothing(ViewState("EsCreaApartirDe")), False, CType(ViewState("EsCreaApartirDe"), Boolean)) + End Get + Set(value As Boolean) + ViewState("EsCreaApartirDe") = value + End Set + End Property + Private Property CveEstatusInicial As Integer + Get + CveEstatusInicial = ViewState("CveEstatusInicial").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatusInicial") = value + End Set + End Property + Private Property EstatusInicial As String + Get + EstatusInicial = ViewState("EstatusInicial").ToString + End Get + Set(value As String) + ViewState("EstatusInicial") = value + End Set + End Property + Private Property CveEstatusFinalOK As Integer + Get + CveEstatusFinalOK = ViewState("CveEstatusFinalOK").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatusFinalOK") = value + End Set + End Property + Private Property EstatusFinalOK As String + Get + EstatusFinalOK = ViewState("EstatusFinalOK").ToString + End Get + Set(value As String) + ViewState("EstatusFinalOK") = value + End Set + End Property + Private Property CveEstatusFinalError As Integer + Get + CveEstatusFinalError = ViewState("CveEstatusFinalError").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatusFinalError") = value + End Set + End Property + Private Property EstatusFinalError As String + Get + EstatusFinalError = ViewState("EstatusFinalError").ToString + End Get + Set(value As String) + ViewState("EstatusFinalError") = value + End Set + End Property + Private Property CveEstatusInicialOC As Integer + Get + CveEstatusInicialOC = ViewState("CveEstatusInicialOC").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveEstatusInicialOC") = value + End Set + End Property + Private Property SubProyectosNoAutorizados As List(Of String) + Get + SubProyectosNoAutorizados = CType(ViewState("SubProyectosNoAutorizados"), Global.System.Collections.Generic.List(Of String)) + End Get + Set(value As List(Of String)) + ViewState("SubProyectosNoAutorizados") = value + End Set + End Property + Private Property DtAC As DataTable + Get + DtAC = DirectCast(ViewState("DtAC"), DataTable) + End Get + + Set(ByVal value As DataTable) + ViewState("DtAC") = value + End Set + End Property + Private Property DtPresupuestos As DataTable + Get + Return CType(ViewState("DtPresupuestos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtPresupuestos") = value + End Set + End Property + Private Property VerificaPresupuesto As Boolean + Get + VerificaPresupuesto = DirectCast(ViewState("VerificaPresupuesto"), Boolean) + End Get + + Set(ByVal value As Boolean) + ViewState("VerificaPresupuesto") = value + End Set + End Property + Private Property LigaOCs As String + Get + LigaOCs = ViewState("LigaOCs").ToString + End Get + Set(ByVal value As String) + ViewState("LigaOCs") = value + End Set + End Property + Public Property CveOCGeneradas As List(Of Integer) + Get + CveOCGeneradas = DirectCast(ViewState("CveOCGeneradas"), List(Of Integer)) + End Get + Set(ByVal value As List(Of Integer)) + ViewState("CveOCGeneradas") = value + End Set + End Property + Public Property FolioOCGeneradas As List(Of Integer) + Get + FolioOCGeneradas = DirectCast(ViewState("FolioOCGeneradas"), List(Of Integer)) + End Get + Set(ByVal value As List(Of Integer)) + ViewState("FolioOCGeneradas") = value + End Set + End Property + Public Property IDPolizasGeneradas As List(Of Integer) + Get + IDPolizasGeneradas = DirectCast(ViewState("IDPolizasGeneradas"), List(Of Integer)) + End Get + Set(ByVal value As List(Of Integer)) + ViewState("IDPolizasGeneradas") = value + End Set + End Property + Public Property FoliosPolizas As List(Of Integer) + Get + FoliosPolizas = DirectCast(ViewState("FoliosPolizas"), List(Of Integer)) + End Get + Set(ByVal value As List(Of Integer)) + ViewState("FoliosPolizas") = value + End Set + End Property + Private Property EditarOC As Boolean + Get + EditarOC = CBool(ViewState("EditarOC").ToString) + End Get + Set(value As Boolean) + ViewState("EditarOC") = value + End Set + End Property + Private Property EjercicioAC As Integer + Get + Return ViewState("EjercicioAC").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("EjercicioAC") = value + End Set + End Property + Private Property IDPolizaPresupuestal As Integer + Get + Return ViewState("IDPolizaPresupuestal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IDPolizaPresupuestal") = value + End Set + End Property + Private Property DtBitacora As DataTable + Get + Return CType(ViewState("DtBitacora"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtBitacora") = value + End Set + End Property + Private Property EntregaDirecta As Boolean + Get + EntregaDirecta = CBool(ViewState("EntregaDirecta").ToString) + End Get + Set(value As Boolean) + ViewState("EntregaDirecta") = value + End Set + End Property + Private Property CveVenta As Integer + Get + Return ViewState("CveVenta").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveVenta") = value + End Set + End Property + Private Property TieneVenta As Integer + Get + Return ViewState("TieneVenta").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("TieneVenta") = value + End Set + End Property + Private Property TieneCompraInv As Integer + Get + Return ViewState("TieneCompraInv").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("TieneCompraInv") = value + End Set + End Property + Private Property CveCompra As Integer + Get + Return ViewState("CveCompra").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveCompra") = value + End Set + End Property + Private Property CveMovimientoAlmacenVenta As Integer + Get + Return ViewState("CveMovimientoAlmacenVenta").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMovimientoAlmacenVenta") = value + End Set + End Property + Private Property CveConfianzaProveedor As Integer + Get + Return IfNull(ViewState("CveConfianzaProveedor"), -1).ToString().ToEntero() + End Get + Set(value As Integer) + ViewState("CveConfianzaProveedor") = value + End Set + End Property + Private Property CveEstatusSupervisada As Integer + Get + Return IfNull(ViewState("CveEstatusSupervisada"), -1).ToString().ToEntero() + End Get + Set(value As Integer) + ViewState("CveEstatusSupervisada") = value + End Set + End Property + + + Private Property CveDireccionEnvio As Integer + Get + If ViewState("CveDireccionEnvio") Is Nothing Then + Return -1 + Else + Return ViewState("CveDireccionEnvio").ToString.ToEntero + End If + End Get + Set(value As Integer) + ViewState("CveDireccionEnvio") = value + End Set + End Property + Private Property NumRow As Integer + +#End Region + + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + CargaDatosAgregarPS() + 'MODALIDAD MULTIEMPRESA + CveEmpresaActual = UsuarioActual.CveEmpresa + CargaEstatusUsuariosClasificaciones() + + TxtObsPS.Attributes.Add("maxlength", "750") + + 'FUNCIONALIDAD 108' + CargarOptionAnticipos() + + If UsuarioActual.Empresa.Funcionalidad(556) = "1" Then + ChkCotizacion.Checked = True + ChkCotizacion.Enabled = False + End If + + 'CARGA YA REGISTRADO + If Request("OC") IsNot Nothing AndAlso IsNumeric(Request("OC")) AndAlso Request("OC").ToEntero > 0 Then + + EsNuevo = False + ViewState("CveOrdenCompra") = Request("OC") + + If UsuarioActual.TienePermisoProceso(131) Then + EditarOC = True + Else + EditarOC = False + End If + + CargaDatos(CveOrdenCompra) + Else + EsNuevo = True + InicializarValores() + HlAgregarExcel.Visible = True + LbDescargarExcel.Visible = True + + + TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID)) + CreaDTDetalles() + + If Not IsNothing(Request("CveCotizacion")) AndAlso IsNumeric(Request("CveCotizacion")) Then + CveCotizacion = Request("CveCotizacion").ToString.ToEntero + + If CveCotizacion > 0 Then + TRCotizacion.Visible = True + HLCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", CveCotizacion) + + Dim ObjVentas As New ClsVentas() + If ObjVentas.GetVenta(CveCotizacion, CveEmpresaActual) Then + If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then + Dim DrCot As DataRow = ObjVentas.DtResultados.Rows(0) + If DrCot IsNot Nothing Then + HLCotizacion.Text = String.Format("{0}-{1}", DrCot("Serie"), DrCot("Folio")) 'CveVendedor + DdlVendedor.SelectedValueExist(DrCot("CveVendedor").ToString()) + Ddlcliente.SelectedValueExist(DrCot("CveCliente").ToString()) + End If + End If + End If + + CargaClasificacionesPopUp(CveCotizacion) + ObjVentas.Dispose() + End If + CargaDetallesCotizacion() + End If + + ViewState("TipoOC") = If(Request("Tipo") IsNot Nothing, Request("Tipo").ToUpper, "REQ") + + If TipoOC = "OC" Then + ViewState("TipoLargo") = "Orden de Compra" + ElseIf TipoOC = "OS" Then + ViewState("TipoLargo") = "Orden de Servicio" + Else + ViewState("TipoLargo") = "Requisicion" + End If + + If TipoOC = "OC" Then ChkCotizacion.Visible = False + + If TipoOC = "OS" Then + TipoOC = "REQ" + TipoOS = True + End If + + BtnGeneraContrato.Visible = True : CargaClientes() + + CargaEstatusInicialFinal() + CargaEstatusUsuarios() + CargaEstatusOC() + + 'Estatus Default 66 + If CveEmpresaActual = 66 Then + CboE.SelectedValueExist(18) + End If + + 'Poner el Estatus mas Avanzado + ' If DtEstatusUsuarios.Rows.Count > 0 Then CboE.SelectedValue = DtEstatusUsuarios.MAX("Nivel").ToEntero Else DesHabilitar() + + TxtFecha.Text = Now.ToString("dd/MM/yyyy") + lblNombreUsuario.Text = UsuarioActual.Nombre + ViewState("CveOrdenCompra") = 0 + CargaFolios() + 'BtnCancelarPrevio.Disabled = True + BtnCancelarPrevio.Enabled = False + + If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False + + PnlProveedor.Visible = True : UPProv.Update() + + '12/04/2018 + 'DdlIVA.Visible = True + + If UsuarioActual.Empresa.UsaAC Then + ActivaAC() + End If + + hplAgregarCotizacion.Visible = False + hplEnviarCorreo.Visible = False + + 'ASIGNA ESTATUS OC + CboE_SelectedIndexChanged(New Object, New EventArgs) + + End If + + + 'CARGA TITULO TIPO OC (REQ, OC, OS) + lblTitulo.Text = TipoLargo + + 'VALIDA PERMISOS + If UsuarioActual.TienePermisoProceso(123) Then + RFVcodigo.Enabled = True + End If + + 'FUNCIONALIDAD 105 + CargaFuncionalidad105() + + 'ACTIVAR MODIFICAR IVA + ActivarIVAEditable() + + 'ACTIVAR RETENCIONES + ActivarRetenciones() + + 'ACTIVA DESCUENTOS + ActivarDescuentos() + + 'BITACORA TEMPORAL + InicializaBitacoraTemporal() + + 'ACTIVA CREAR APARTIR DE + ActivaCrearApartirDe() + + 'ACTIVA CONFIRMACION GUARDAR + If UsuarioActual.CveEmpresa = 72 Or UsuarioActual.CveEmpresa = 80 Then + BtnGuardar.OnClientClick = "ValidaGuardar();" + BtnGuardar.Attributes.Add("data-toggle", "confirmation") + BtnGuardar.Attributes.Add("data-popout", "true") + BtnGuardar.Attributes.Add("data-original-title", "confirmar") + BtnGuardar.Attributes.Add("data-btn-ok-label", "Guardar") + BtnGuardar.Attributes.Add("data-html", "true") + End If + + 'CARGA SUCURSALES DEL CLIENTE + CargaDdlSucursalCliente() + + 'CASOS ESPECIALES EMPRESA DEMO Y PRUEBAS + If UsuarioActual.CveEmpresa < 2 Then + ChkEntregaDirecta.Visible = False + End If + + If UsuarioActual.Empresa.CvePlataforma = 2 Then + DivPrioridad.Visible = False + LblPrioridad.Visible = False + LblFechaEstimada.Visible = False + DivFechaEstimada.Visible = False + ChkCotizacion.Visible = False + tabCotizaciones.Visible = False + ThActivoFijo.Visible = False + TdActivoFijo.Visible = False + THDescuento.Visible = True + TDDescuento.Visible = True + LblObsPrioridad.Visible = False + divtxtprioridad.Visible = False + End If + + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then + DdlProyecto.Visible = False + TituloSubProyecto.Text = "" + TtituloProyecto.Text = "Sucursal" + DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + DdlSubProyecto.DataBind() + DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DivProyecto.Visible = False + DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + DdlSubProyectoContrato.DataBind() + DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) + LblSubProyecto.Text = "Sucursal" + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + DdlProyecto.Visible = False + TituloSubProyecto.Text = "" + TtituloProyecto.Text = "Proyecto" + DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + DdlSubProyecto.DataBind() + DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DivProyecto.Visible = False + DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + DdlSubProyectoContrato.DataBind() + DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) + LblSubProyecto.Text = "Proyecto" + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then + TtituloProyecto.Text = "Sucursal" + TituloSubProyecto.Text = "Proyecto" + + LblSubProyecto.Text = "Proyecto" + LblProyecto.Text = "Sucursal" + ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then + TtituloProyecto.Text = "Proyecto" + TituloSubProyecto.Text = "Sucursal" + + LblSubProyecto.Text = "Sucursal" + LblProyecto.Text = "Proyecto" + End If + + + 'SOLO SE MUESTRA CUANDO ES REGISTRO NUEVO + If Not CveOrdenCompra > 0 Then + If UsuarioActual.Empresa.EsComercializadora And Not CveCotizacion > 0 Then + VerificarClasificaciones(True) + Else + CargaClasificaciones() + End If + Else + ' NO SE CARGABAN CLASIFICACIONES CUANDO YA ESTABA REGISTRADA + If UsuarioActual.Empresa.EsComercializadora And Not CveCotizacion > 0 Then + 'NO SE QUE DEBERIA SER AQUI. [IPP] + Else + CargaClasificaciones() + End If + End If + + InicializaSolicitarAnticipo() + + If TipoOC = "REQ" Then + BtnSolicitudAnticipo.Visible = False + End If + + 'Nuevo Proceso que permite modificar detalles + If Not UsuarioActual.TienePermisoProceso(131) Then + If GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows.Count > 0 Then + Dim Dr As DataRow + Dr = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus))(0) + If UsuarioActual.TienePermisoProceso(203) And Dr("TipoTermino").ToString.ToEntero = 3 And Dr("Tipo").ToString = "OC" Then + CargaClasificaciones() + DesHabilitar() + GvD.Columns(9).Visible = True + LbAgregar.Enabled = True + txtPrecioUnitario.Enabled = True + DdlProyecto.Enabled = True + DdlSubProyecto.Enabled = True + TxtObsPS.Enabled = True + CboUnidadMedida.Enabled = True + DdlClasificacion.Enabled = True + DdlP2.Enabled = True + TxtCant.Enabled = True + BtnGuardar.Enabled = True + BtnCancelar.Enabled = True + ElseIf Dr("TipoTermino").ToString.ToEntero = 3 And Dr("Tipo").ToString = "OC" Then + DesHabilitar() + End If + End If + End If + + 'NO PERMITE REGISTRAR PS + If UsuarioActual.TienePermisoProceso(249) Then + HplAddClasificacion.Visible = False + HplPS.Visible = False + End If + + UPPDetalle.Update() + + PermisosPagina() + + RegistraScript("$get('HdnWidth').value = $('#C_Tab_TabC_DivConceptosContenido').width();") + End If + Me.Form.DefaultButton = "" + End Sub + +#Region " PERMISOS PAGINA " + Private Sub PermisosPagina() + ActivarIVAEditable() + End Sub + Private Sub ActivarIVAEditable() + If UsuarioActual.TienePermisoProceso(141) Then + TxtIVA.Visible = True + LblIVA.Visible = False + End If + End Sub + Protected Sub BtnAplicarIVA_Click(sender As Object, e As EventArgs) + AplicarIVA() + End Sub + Private Sub AplicarIVA() + If LblSubTotal.Text.ToDecimal <= 0 Then + Alert("Para aplicar un IVA, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) + TxtIVA.Text = "0.00" + CalculaGenerales() + Exit Sub + End If + + If Math.Round(DdlIVA.SelectedValue.ToDouble, 2) = 1 Then + Alert("Para aplicar un IVA, debe de seleccionar un porcentaje en el combo de IVA.", TipoMensaje.MsgAdvertencia) + TxtIVA.Text = "0.00" + CalculaGenerales() + Exit Sub + End If + + Dim Total As Double = 0 + For Each Dr As DataRow In DtDetalle.Rows + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Dr("CvePS").ToString.ToEntero).FiltroPrimero("") + If DrPS IsNot Nothing AndAlso DrPS("IVA").ToString.ToEntero = -1 Then + Total += Dr("Total").ToString.ToDouble + End If + Next + + Dim Porcentaje = TxtIVA.Text.ToDecimal / Total + Dim LastDr As DataRow = Nothing + For Each Dr As DataRow In DtDetalle.Rows + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Dr("CvePS").ToString.ToEntero).FiltroPrimero("") + If DrPS IsNot Nothing AndAlso DrPS("IVA").ToString.ToEntero = -1 Then + Dr("IVA") = Math.Round(Dr("Total").ToString.ToDecimal * Porcentaje, 6) + Dr("IVAPorcentaje") = Math.Round(Porcentaje, 2) + + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + LastDr = Dr + Else + Dr("IVA") = 0 + Dr("IVAPorcentaje") = 0 + End If + Next + If Not IsNothing(LastDr) Then + Dim Fdes As Decimal = TxtIVA.Text.ToDecimal - DtDetalle.SUM("IVA").ToString.ToDecimal + If Fdes > 0 Then + LastDr("IVA") = Math.Round(LastDr("IVA").ToString.ToDecimal + Fdes, 6) + End If + End If + + CalculaGenerales() + + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + End Sub +#End Region + +#Region " FUNCIONALIDAD 105-141 " + Private Sub CargaFuncionalidad105() + Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) + + DdlP2.setEsWebService(EsWS) + + If DdlP2.UsaWebService Then + If isWithFamily() Then + DdlP2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.ClientID) + Else + DdlP2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) + End If + + DdlP2.ddlWS.Attributes.Add("data-pagina", "oc/oc") + + If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then + DdlP2.ddlWS.Attributes.Add("Data-onresult", "CargaExistenciaAlmacenes") + CargaSucursal() + DdlSubProyecto.AutoPostBack = True + End If + DdlP2.Attributes.Add("Data-usoclasificacion", "-1") + Else + CargaPS(-1, DdlP2) + 'DdlP2.ddl.Items.Add(New ListItem("Seleccione", "-1")) + 'DdlP2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) + End If + End Sub + +#End Region + +#Region " CARGA VALORES INICIALES " + Private Sub InicializarValores() + ViewState("NumCotizacionesGanadoras") = 0 + ViewState("TotalCotizacionesGanadoras") = 0 + ViewState("TipoOC") = "OC" + ViewState("CveEstatus") = -1 + ViewState("CveEstatusSiguiente") = -1 + EditarOC = False + CveEstatusFinalOK = -2 + 'BtnCancelarPrevio.Disabled = True + BtnCancelarPrevio.Enabled = False + Folio = 0 + 'ViewState("ArrayCCNombre") = "" + ViewState("ArrayCC") = "" + ViewState("EjercicioAC") = -1 + ViewState("CveUsuario") = -1 + CveVenta = -1 + TieneVenta = -1 + TieneCompraInv = -1 + CveCompra = -1 + CveMovimientoAlmacenVenta = -1 + IDPolizaPresupuestal = -1 + CveIEAnticipo = -1 + + Dim drE As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = 'OC' AND TipoTermino = 3")).FiltroPrimero("") + If drE IsNot Nothing Then ViewState("CveEstatusInicialOC") = drE("CveEstatus").ToString.ToEntero + + ViewState("LigaOCs") = "" + ViewState("CveOCGeneradas") = New List(Of Integer) + ViewState("FolioOCGeneradas") = New List(Of Integer) + ViewState("IDPolizasGeneradas") = New List(Of Integer) + ViewState("FoliosPolizas") = New List(Of Integer) + Session("FileUpload") = "" + Session("FileExtension") = "" + Session("FileFolder") = "" + TipoOS = False + RequiereSubProyecto = If(CveEmpresaActual = 48, False, True) + txtPrecioUnitario.Attributes.Add("onKeyUp", "obtenertotal();") + TxtCant.Attributes.Add("onKeyUp", "obtenertotal();") + Dim script As String = "obtenertotal();" + ScriptManager.RegisterStartupScript(Me, GetType(Page), "anioactual", script, True) + VerificaPresupuesto = False + RVSubProyecto.Enabled = If(RequiereSubProyecto = True, True, False) + CargaComboCFDI() + CargaMonedas() + 'CargaUnidadesMedida() + BtnCancelar.Attributes.Add("disabled", "disabled") + TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)") + CargaTipoActivoFijo() + DrEliminados = New ArrayList + + CargaProveedores() + End Sub + + Private Sub CreaDTDetalles() + DtDetalle = New DataTable + DtDetalle.Columns.Add("Cantidad", GetType(Double)) + DtDetalle.Columns.Add("CveUnidadMedida", GetType(Integer)) + DtDetalle.Columns.Add("UM", GetType(String)) + DtDetalle.Columns.Add("CvePS", GetType(Integer)) + DtDetalle.Columns.Add("PS", GetType(String)) + DtDetalle.Columns.Add("IVA", GetType(Double)) + DtDetalle.Columns.Add("IVAPorcentaje", GetType(Double)) + DtDetalle.Columns.Add("IEPSPS", GetType(Double)) + DtDetalle.Columns.Add("IEPSPSPorcentaje", GetType(Double)) + DtDetalle.Columns.Add("IEPSPSIVA", GetType(Double)) + DtDetalle.Columns.Add("IEPSPSIVAPorcentaje", GetType(Double)) + DtDetalle.Columns.Add("RetIVA", GetType(Double)) + DtDetalle.Columns.Add("RetIVAPorcentaje", GetType(Double)) + DtDetalle.Columns.Add("RetISR", GetType(Double)) + DtDetalle.Columns.Add("RetISRPorcentaje", GetType(Double)) + DtDetalle.Columns.Add("Observacion", GetType(String)) + DtDetalle.Columns.Add("CveClasificacion", GetType(Integer)) + DtDetalle.Columns.Add("Clasificacion", GetType(String)) + DtDetalle.Columns.Add("CveSubFamilia", GetType(Integer)) + DtDetalle.Columns.Add("SubFamilia", GetType(String)) + + DtDetalle.Columns.Add("CveProyecto", GetType(Integer)) + DtDetalle.Columns.Add("Proyecto", GetType(String)) + DtDetalle.Columns.Add("CveSubProyecto", GetType(Integer)) + DtDetalle.Columns.Add("SubProyecto", GetType(String)) + DtDetalle.Columns.Add("Importe", GetType(Double)) + DtDetalle.Columns.Add("Descuento", GetType(Double)) + DtDetalle.Columns.Add("Total", GetType(Double)) + + DtDetalle.Columns.Add("Codigo", GetType(String)) + DtDetalle.Columns.Add("CodigoAF", GetType(String)) + DtDetalle.Columns.Add("CveActivoFijo", GetType(Integer)) + DtDetalle.Columns.Add("TipoDato", GetType(Integer)) ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + DtDetalle.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) + DtDetalle.Columns.Add("CveOrdenCompra", GetType(Integer)) + + DtDetalle.Columns.Add("CveOrdenCompraPadre", GetType(Integer)) + DtDetalle.Columns.Add("FolioOrdenCompraPadre", GetType(Integer)) + DtDetalle.Columns.Add("CveOrdenCompraHija", GetType(Integer)) + DtDetalle.Columns.Add("FolioOrdenCompraHija", GetType(Integer)) + + 'AC + DtDetalle.Columns.Add("CvePresupuestoEgreso", GetType(Integer)) + DtDetalle.Columns.Add("IdCuentaPorEjercer", GetType(String)) + DtDetalle.Columns.Add("IdCuentaComprometido", GetType(String)) + DtDetalle.Columns.Add("CveProgramaOperativo", GetType(Integer)) + DtDetalle.Columns.Add("CveUnidadAdministrativa", GetType(Integer)) + DtDetalle.Columns.Add("CveFuenteFinanciamiento", GetType(Integer)) + DtDetalle.Columns.Add("CveTipoGasto", GetType(Integer)) + DtDetalle.Columns.Add("CveClasificacionOG", GetType(Integer)) + + DtDetalle.Columns.Add("FolioCompra", GetType(Integer)) + DtDetalle.Columns.Add("CveCompra", GetType(Integer)) + DtDetalle.Columns.Add("CveProveedor", GetType(Integer)) + + DtDetalle.Columns.Add("CveContratoDetalle", GetType(Integer)) + DtDetalle.Columns.Add("CantidadNoEditable", GetType(Double)) + + ' DtDetalle.Columns.Add("ClasificacionOG", GetType(String)) + + End Sub + Private Sub CargaDetallesCotizacion() + + If CveCotizacion > 0 Then + Dim ObjVentas As New ClsVentas + If ObjVentas.GetVentaDetalle(CveCotizacion) Then + + For Each RowV As DataRow In ObjVentas.DtResultados.Rows + 'If Not IsNothing(RowV) Then + Dim dr As DataRow = DtDetalle.NewRow + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=RowV("CvePS").ToString.ToEntero).FiltroPrimero("") + If DrPS Is Nothing Then + Alert("Ocurrió un error al cargar la información de los productos. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + dr("Cantidad") = RowV("Cantidad") + dr("CveUnidadMedida") = RowV("CveUM") + dr("UM") = RowV("UM") + dr("CvePS") = RowV("CvePS") + dr("PS") = RowV("CodigoPS") + dr("IVA") = 0 + dr("IVAPorcentaje") = DrPS("IVA").ToString.ToDouble + dr("RetIVA") = 0 + dr("RetIVAPorcentaje") = DrPS("RetIVA").ToString.ToDouble + dr("RetISR") = 0 + dr("RetISRPorcentaje") = DrPS("RetISR").ToString.ToDouble + dr("IEPSPS") = 0 + dr("IEPSPSPorcentaje") = DrPS("IEPSPorcentaje").ToString.ToDouble + dr("IEPSPSIVA") = 0 + dr("IEPSPSIVAPorcentaje") = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) + dr("Observacion") = RowV("Obs") + dr("CveClasificacion") = RowV("CveClasificacion") + dr("Clasificacion") = RowV("Clasificacion") + + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + dr("CveProyecto") = "-1" + dr("Proyecto") = "Sin Proyecto" + Else + dr("CveProyecto") = RowV("CveProyecto") + dr("Proyecto") = If(RowV("CveProyecto").ToString.ToEntero > 0, RowV("Proyecto"), "Sin Proyecto") + End If + + dr("CveSubProyecto") = RowV("CveSubProyecto") + dr("SubProyecto") = If(RowV("CveSubProyecto").ToString.ToEntero > 0, RowV("SubProyecto"), "Sin SubProyecto") + dr("Importe") = 0 + dr("Descuento") = 0 + dr("Total") = 0 + + dr("CodigoAF") = "" + dr("CveActivoFijo") = -1 + dr("TipoDato") = 0 ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + dr("CveOrdenCompraDetalle") = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 + dr("CveOrdenCompra") = -1 + + 'dr("CvePresupuestoEgreso") = HdnCvePresupuesto.Value.ToEntero + dr("IdCuentaPorEjercer") = -1 + dr("IdCuentaComprometido") = -1 + + dr("CveProgramaOperativo") = -1 + dr("CveUnidadAdministrativa") = -1 + dr("CveFuenteFinanciamiento") = -1 + dr("CveTipoGasto") = -1 + dr("CveClasificacionOG") = -1 + + DtDetalle.Rows.Add(dr) + + Next + CargaDatosDetalles() + End If + ObjVentas.Dispose() + End If + End Sub + Protected Sub CargaEstatusUsuarios() + 'Dim objEstatusUsuarios As New ClsOC + + 'If objEstatusUsuarios.GetEstatusUsuarios(UsuarioActual.CveUsuario, -1, -1, -1, CveEmpresaActual) Then + ' If DtEstatusUsuarios Is Nothing Then + ' DtEstatusUsuarios = objEstatusUsuarios.DtResultados.FiltraParametros(String.Format("Tipo = '{0}'", TipoOC), "CveEstatusSiguiente") + ' ElseIf HacerMerge = True Then + ' DtEstatusUsuarios.Merge(objEstatusUsuarios.DtResultados.FiltraParametros(String.Format("Tipo = '{0}'", TipoOC), "CveEstatusSiguiente")) + ' End If + 'End If + + 'objEstatusUsuarios.Dispose() + + DtEstatusUsuarios = GlobalDTOCEstatusUsuarios(CveEmpresaActual, UsuarioActual.CveUsuario, TipoOC) + + End Sub + Protected Sub CargaSuperior() + If CboE.SelectedValue.ToEntero > 0 Then + Dim RowActual As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue)) + If Not IsNothing(RowActual) Then + + hdnCveSuperior.Value = "-1" + 'Si el TipoTermino es diferente de 1 (Autorizada) y 2 (Rechazada), revisar cual seria el superior + If RowActual("TipoTermino").ToString.ToEntero <> 1 And RowActual("TipoTermino").ToString.ToEntero <> 2 AndAlso DtEstatusUsuarios IsNot Nothing Then + Dim TotalT As Decimal = LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal + + If DtDetalle IsNot Nothing Then + For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto"}).Rows + For Each RowE As DataRow In DtEstatusUsuarios.FiltraParametros(String.Format("{0} CveEstatus = {1} AND ((LimiteInferior IS NULL OR LimiteInferior <= {2}) AND (LimiteSuperior IS NULL OR LimiteSuperior >= {2})) ", If(Row("CveSubProyecto").ToString <> "", String.Format("CveSubProyecto = {0} AND ", Row("CveSubProyecto").ToString), ""), CboE.SelectedValue, TotalT)).Rows + hdnCveSuperior.Value = RowE("CveSuperior").ToString + Next + Next + End If + uppEstatus.Update() + End If + + + End If + End If + End Sub + Private Sub CargaFolios() + Dim ObjFolios As New ClsGralFolios() + TipoOC = If(TipoOS, "OS", TipoOC) + If ObjFolios.GetFolios(If(TipoOC = "REQ", "Req", TipoOC), CveEmpresaActual) Then + Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("Estado = 'Activo'") + 'Verificar primero en la sucursal del usuario + If DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows.Count > 0 Then + ViewState("CveFolio") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("CveFolio").ToString.ToEntero + ViewState("FolioActual") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("FActual").ToString + lblFolio.Text = TipoOC + " " + DT.Rows(0)("FActual").ToString + ElseIf DT.Rows.Count > 0 Then + ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero + ViewState("FolioActual") = DT.Rows(0)("FActual").ToString + lblFolio.Text = TipoOC + " " + DT.Rows(0)("FActual").ToString + Else + Alert("No tiene registrados Folios en esta sucursal.", TipoMensaje.MsgAdvertencia) + End If + + DT.Dispose() + End If + ObjFolios.Dispose() + End Sub + Protected Sub CargaEstatusUsuariosClasificaciones() + Dim ObjOC As New ClsOC + + If ObjOC.GetEstatusUsuariosClasificaciones(-1, UsuarioActual.CveUsuario, -1, -1, CveEmpresaActual) Then + DtEstatusUsuariosClasificaciones = ObjOC.DtResultados + Else + Alert("Ocurrió un error al obtener los permisos del usuario. Por favor vuelva cargar.", TipoMensaje.MsgError) + End If + + ObjOC.Dispose() + End Sub +#End Region + +#Region " CARGA DATOS " + Private Sub CargaDatos(pCveOrdenCompra As Integer) + + 'REINICIALIZA + TrPendientes.Visible = False + + Dim objOC As New ClsOC + + If objOC.GetOC(pCveOrdenCompra, CveEmpresaActual, CveUsuario:=UsuarioActual.CveUsuario) AndAlso objOC.DtResultados.Rows.Count > 0 Then + CveEmpresaActual = objOC.CveEmpresa + InicializarValores() + + ViewState("CveOrdenCompra") = pCveOrdenCompra + ViewState("Folio") = objOC.Folio + ViewState("CveEstatus") = objOC.CveEstatus + ViewState("CveEstatusSiguiente") = objOC.CveEstatusSiguiente + ViewState("CveEstatusAnterior") = objOC.CveEstatusAnterior + ViewState("CveUsuario") = objOC.CveUsuario + ViewState("CvePresupuestoEgreso") = objOC.CvePresupuestoEgreso + + 'PROMOCIONES + TxtPromocion.Text = objOC.Promocion + ChkPromocion.Checked = TxtPromocion.Text.Trim.Length > 0 + If ChkPromocion.Checked Then + TxtPromocion.Style.Remove("display") + End If + + PanelContrato.Visible = False + MPContrato.Enabled = False + 'SOLICITUD DE ANTICIPO + CveIEAnticipo = objOC.CveIEAnticipo + LtImporteIEAnticipo.Text = objOC.ImporteAnticipo.FormatoNumero + LtFolioIEAnticipo.Text = $"{objOC.FolioIEAnticipo}" + + CveVenta = objOC.CveVenta + TieneVenta = objOC.TieneVenta + TieneCompraInv = objOC.TieneCompraInv + + CveCompra = objOC.CveCompra + CveMovimientoAlmacenVenta = objOC.CveMovimientoAlmacenVenta + + If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + CveConfianzaProveedor = objOC.DtResultados.Rows(0)("CveConfianzaProveedor").ToString.ToEntero + End If + + 'Anticipos + CargarOptionAnticipos() + Dim objbancos As New ClsBancos + If objbancos.GetPrePolizasDetalle(-1, -1, pCveOrdenCompra) AndAlso objbancos.DtResultados.Rows.Count > 0 Then + BtnSolicitudAnticipo.Visible = False + generarAnticipo.Text = "Ver Anticipo" + generarAnticipo.NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", objbancos.DtResultados.Rows(0)("CveIE")) + Else + generarAnticipo.NavigateUrl = String.Format("/Bancos/IE.aspx?CveOrdenCompra={0}&CveProveedor={1}", pCveOrdenCompra, objOC.CveProveedor.ToString) + End If + objbancos.Dispose() + + CveCotizacion = objOC.DtResultados.Rows(0)("CveCotizacion").ToString.ToEntero + If CveCotizacion > 0 Then + TRCotizacion.Visible = True + HLCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", CveCotizacion) + HLCotizacion.Text = objOC.DtResultados.Rows(0)("Cotizacion").ToString + End If + + ''DATOS DE VENTA + If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then + Ddlcliente.SelectedValueExist(objOC.CveCliente.ToString) + If Ddlcliente.SelectedValue <> objOC.CveCliente.ToString Then + Ddlcliente.Items.Insert(1, New ListItem(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Nombre", $"CveCliente = {objOC.CveCliente}"), objOC.CveCliente.ToString)) + End If + + DdlVendedor.SelectedValueExist(objOC.CveVendedor.ToString) + If DdlVendedor.SelectedValue <> objOC.CveVendedor.ToString Then + DdlVendedor.Items.Insert(1, New ListItem(GlobalDTVendedores(UsuarioActual.CveEmpresa, False).FiltroPrimeroValor("Vendedor", $"CveVendedor = {objOC.CveVendedor}"), objOC.CveVendedor.ToString)) + End If + End If + + EntregaDirecta = objOC.EntregaDirecta + ChkEntregaDirecta.Checked = EntregaDirecta + CambiaEntregaDirecta() + TxtLugarEntregaDirecta.Text = objOC.LugarEntrega + DdlDireccionEnvio.SelectedValueExist(objOC.CveDireccionEnvio.ToString) + DdlUsoCFDI.SelectedValueExist(objOC.CveUsoCFDI.ToString) + + If objOC.CveDireccionEnvio > 0 And DdlDireccionEnvio.SelectedValue.ToEntero <> objOC.CveDireccionEnvio Then + Alert("La dirección de envio no se pudo cargar correctamente. Por favor verifique que la dirección de envio aun este vigente.", TipoMensaje.MsgAdvertencia) + End If + + txtobsprioridad.Text = objOC.PrioridadObservacion + TxtFechaEstimadaEntrega.Text = If(objOC.FechaEstimadaEntrega.Year <> 1, objOC.FechaEstimadaEntrega.ToShortDateString(), "") + txtLugarEntrega.Text = objOC.LugarEntrega + TxtDescrip.Text = objOC.Descripcion + TxtJustificacion.Text = objOC.Justificacion + DdlMoneda.SelectedValueExist(objOC.CveMoneda.ToString) + + Select Case objOC.PorcentajeIVA.ToString.ToDouble + Case 0 + DdlIVA.SelectedValue = "1" + Case 0.16 + DdlIVA.SelectedValue = "1.16" + Case 0.08 + DdlIVA.SelectedValue = "1.08" + End Select + 'If objOC.PorcentajeIVA.ToString.ToDouble = 0 Then DdlIVA.SelectedValue = "1" Else DdlIVA.SelectedValue = "1.16" + + DdlPrioridad.SelectedValueExist(objOC.Prioridad.ToString) + ChkCotizacion.Checked = objOC.RequiereCotizacion + If ChkCotizacion.Checked AndAlso UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + ChkCotizacion.Enabled = False + End If + tabCotizaciones.Enabled = objOC.RequiereCotizacion + tabCotizaciones.UpdatePanelID = uppOpciones.ID + TxtGuia.Text = objOC.Guia + + TxtFecha.ToolTip = objOC.Fecha.ToString("dd/MM/yyyy HH:mm") + TxtFecha.Text = objOC.Fecha.ToString("dd/MM/yyyy") + + ''RETENSIONES + CargaRetenciones(objOC.RetIVA, objOC.RetISR, objOC.IEPS) + + lblNombreUsuario.Text = objOC.NombreUsuario + + LblCodigo.Text = objOC.Codigo + TxtFolioAdicional.Text = objOC.FolioAdicional + + If Not IsNothing(objOC.Tipo) Then + + Select Case objOC.Tipo.ToUpper + Case "OC" + ViewState("TipoOC") = objOC.Tipo + ViewState("TipoLargo") = "Orden de Compra" + + 'ENTREGA DIRECTA VIEJO + If EntregaDirecta Then + ChkEntregaDirecta.Checked = True + If CveVenta > 0 And CveCompra > 0 And CveMovimientoAlmacenVenta <= 0 Then + HLGenerarRecepcion.Visible = True + HLGenerarRecepcion.NavigateUrl = $"/Inventarios/RecepcionAlmacen.aspx?CveCompra={CveCompra}&CveVenta={CveVenta}" + ElseIf Not CveVenta > 0 Then + HLGenerarVenta.Visible = True + HLGenerarVenta.NavigateUrl = $"/Ventas/Ventas.aspx?CveOC={pCveOrdenCompra}" + End If + + 'BLOQUEA POR SI YA TIENE VENTA + If CveVenta > 0 Then + DdlVendedor.Enabled = False + Ddlcliente.Enabled = False + ChkEntregaDirecta.Enabled = False + End If + End If + + HLGenerarVenta.Visible = True + HLGenerarVenta.NavigateUrl = $"/Ventas/Ventas.aspx?CveOC={pCveOrdenCompra}" + + lblFolio.Text = String.Format("OC {0}", objOC.Folio) + lblTipoPadreHijo.Text = "REQ" + ChkCotizacion.Visible = False + + If UsuarioActual.Empresa.UsaAC Then + ActivaAC() + End If + + If objOC.IdPoliza > 0 Then + HplCompraContabilizada.Text = "Si" : HplCompraContabilizada.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", objOC.IdPoliza) : trContabilizada.Visible = True + IDPolizaPresupuestal = objOC.IdPoliza + Else + HplCompraContabilizada.Text = "No" + End If + + DdlProveedores.SelectedValueExist(objOC.CveProveedor.ToString) + + 'CARGAMOS LA SUCURSAL SI NO EXISTE SE AGREGA MATRIZ + Dim CveProveedorSucursal As Integer = IIf(objOC.CveProveedorSucursal.ToEntero = -1, 0, objOC.CveProveedorSucursal.ToEntero).ToString.ToEntero + DivProveedorSucursal.Visible = True + DdlProveedorSucursal.DataSource = GlobalDTProveedorSucursales(objOC.CveProveedor) + DdlProveedorSucursal.DataBind() + DdlProveedorSucursal.Items.Insert(0, New ListItem("Matriz", "0")) + DdlProveedorSucursal.SelectedValueExist(CveProveedorSucursal) + + 'CARGA CONTACTOS DE LA SUCURSAL PROVEEDOR + + If objOC.CveProveedorContacto.ToEntero > 0 Then + Dim ObjProveedor As ClsCompProveedores = New ClsCompProveedores + DivProveedorContacto.Visible = True + 'FILTRADO DE CONTACTOS GENERALES O DE MATRIZ SE HACE CON CVESUCURSAL = 0 + If ObjProveedor.GetProveedoresContactos(-1, objOC.CveProveedor, CveProveedorSucursal) Then + DdlProveedorContacto.DataSource = ObjProveedor.DtResultados + DdlProveedorContacto.DataBind() + DdlProveedorContacto.SelectedValueExist(objOC.CveProveedorContacto) + End If + ObjProveedor.Dispose() + End If + + If objOC.CveUsuarioAsignado > 0 Then + TrUsuarioAsignado.Visible = True + LblUsuarioAsignado.Text = objOC.UsuarioAsignado + End If + + + Case "REQ" + ViewState("TipoOC") = objOC.Tipo + ViewState("TipoLargo") = "Requisición" + lblFolio.Text = "REQ " + objOC.Folio.ToString + lblTipoPadreHijo.Text = "OC" + ChkCotizacion.Visible = True + DdlProveedores.SelectedValueExist(objOC.CveProveedor.ToString) + + If objOC.CveProveedorSucursal.ToEntero > 0 Then + DivProveedorSucursal.Visible = True + DdlProveedorSucursal.DataSource = GlobalDTProveedorSucursales(objOC.CveProveedor) + DdlProveedorSucursal.DataBind() + DdlProveedorSucursal.SelectedValueExist(objOC.CveProveedorSucursal.ToString) + End If + + + EditarOC = False + Case "OS" + ViewState("TipoOC") = "REQ" + ViewState("TipoLargo") = "Orden de Servicio" + lblFolio.Text = "OS " + objOC.Folio.ToString + 'lblTipoPadreHijo.Text = "OC" + ChkCotizacion.Visible = True + TipoOS = True + EditarOC = False + End Select + + End If + + 'If objOC.TipoTermino = 2 Then + ' TrCancelacion.Visible = True + ' TxtMotivoCancelacion.Text = objOC.Cancelacion + 'End If + + + CargaEstatusInicialFinal() + + + 'Se agregan a el Combo + 'el EstatusActual, que es el que aparecera seleccionado + 'el EstatusSiguiente, que si el usuario tiene permiso podra cambiarlo + 'el EstatusRechazado, que si el usuario tiene permiso podra cambiarlo + + 'DtEstatusUsuarios.FiltraParametros("TipoTermino <> 2", "Nivel Desc", {"CveEstatus", "Estatus"}) + 'GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente)) + + CboE.DataSource = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' AND TipoTermino <> 2", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente)) + CboE.DataBind() + + + lblPendientes.Text = objOC.Pendiente.ToString + If objOC.Pendiente > 0 Then + + If objOC.Pendiente > 1 Then + lblPendientes.Text = objOC.Pendiente.ToString & " Articulos Pendientes de vincular." + Else + lblPendientes.Text = objOC.Pendiente.ToString & " Articulo Pendiente de vincular." + End If + + TrPendientes.Visible = True + Else + TrPendientes.Visible = False + End If + + CargaEstatusUsuarios() + + If CveEstatus = CveEstatusFinalError Then + CboE.DataSource = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente)) + CboE.DataBind() + End If + + If objOC.GetOrdenesDetalle(pCveOrdenCompra) Then + DtDetalle = objOC.DtResultados + End If + + 'Recorrer todos los SubProyectos agregados, PARA CUESTIONES DE CAMBIO DE ESTATUS + SubProyectosNoAutorizados = New List(Of String) + Dim OCCancelable As Integer = 0 + Dim OCCancelablePermiso As Integer = 0 + + + If DtDetalle IsNot Nothing Then + For Each Row As DataRow In DtDetalle.Rows + If EditarOC AndAlso Row("CveOrdenCompraPadre").ToString.ToEntero > 0 Then + EditarOC = False + Exit For + End If + Next + + For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows + If Row("CveSubProyecto").ToString.ToEntero > 0 AndAlso CveEstatus > 0 Then + + If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus IN ({1},{2})", Row("CveSubProyecto"), CveEstatus, CveEstatusSiguiente)).Rows.Count = 0 Then 'RMF- 2016.06.02 - Cambio de CveEstatus, antes tenia CveEstatusSiguiente se cambio a CveEstatus. + SubProyectosNoAutorizados.Add(Row("SubProyecto").ToString) + CboE.BackColor = Drawing.Color.Silver + CboE.Enabled = False + GvD.Columns(9).Visible = False 'No permitir la edicion + 'GvD.Columns(9).Visible = True + ChkCotizacion.Enabled = False + TxtDescrip.Enabled = False + TxtJustificacion.Enabled = False + TxtFechaEstimadaEntrega.Enabled = False + txtLugarEntrega.Enabled = False + TxtLugarEntregaDirecta.Enabled = False + gvCotizaciones.Enabled = True + DdlProveedores.Enabled = False + DdlIVA.Enabled = False + DdlUsoCFDI.Enabled = False + ImgCambiaProv.Visible = False + OCCancelable = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion + UPProv.Update() + Else + If OCCancelable = 0 Then OCCancelable = 2 'sino ha entrado a cancelable + End If + + If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CveEstatusFinalError)).Rows.Count = 0 Then + OCCancelablePermiso = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion + Else + If OCCancelablePermiso = 0 Then OCCancelablePermiso = 2 'sino ha entrado a cancelable + End If + + End If + Next + + TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString) + Else + Alert($"Ocurrió un error al cargar los detalles de la {TipoLargo}. Por favor vuelva a intentar", TipoMensaje.MsgError) + End If + + 'EDICION + 'CUANDO EL LA REGISRO Y TIENE ACCESO A ESE ESTATUS + If objOC.CveUsuario = UsuarioActual.CveUsuario AndAlso (DtEstatusUsuarios.FiltraParametros(String.Format(" CveEstatus = {0}", CveEstatus)).Rows.Count >= 1 Or CveEstatus = 0) Then + GvD.Columns(9).Visible = True 'No permitir la edicion + If ChkCotizacion.Checked AndAlso UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + ChkCotizacion.Enabled = False + Else + ChkCotizacion.Enabled = True + End If + TxtDescrip.Enabled = True + TxtJustificacion.Enabled = True + TxtFechaEstimadaEntrega.Enabled = True + txtLugarEntrega.Enabled = True + TxtLugarEntregaDirecta.Enabled = True + gvCotizaciones.Enabled = True + DdlProveedores.Enabled = True + DdlUsoCFDI.Enabled = True + DdlIVA.Enabled = True + ImgCambiaProv.Visible = True + UPProv.Update() + End If + + If objOC.CveEstatus = 0 Then CboE.Items.Add(New ListItem("Pre Solicitud", "0")) + CboE.SelectedValueExist(objOC.CveEstatus.ToString) + + 'es decir, si tiene permiso por ser el usuario que aprueba en el estatus actual o tiene el permiso para cancelar en el catalogo + If (OCCancelable = 2 OrElse OCCancelablePermiso = 2) And (CveEstatus <> CveEstatusFinalError OrElse CveEstatus <> CveEstatusFinalOK OrElse UsuarioActual.TienePermisoProceso(148).ToEntero > 0) Then + BtnCancelar.Enabled = True + 'BtnCancelarPrevio.Disabled = False + BtnCancelarPrevio.Enabled = True + + If IDPolizaPresupuestal > 0 Then + BtnCancelar.ToolTip = String.Format("¿Está seguro que desea cancelar la {0} y la poliza asociada?", TipoLargo) + Else + BtnCancelar.ToolTip = String.Format("¿Está seguro que desea cancelar la {0}?", TipoLargo) + End If + End If + + 'Permisos, para cambiar el proveedor en una OC + If objOC.Tipo.ToUpper = "OC" AndAlso UsuarioActual.TienePermisoProceso(111) Then + DdlProveedores.Enabled = True + DdlProveedores.SelectedValueExist(objOC.CveProveedor.ToString) + DdlIVA.Enabled = True + ImgCambiaProv.Visible = True + UPProv.Update() + End If + + If DdlProveedores.SelectedValue <> objOC.CveProveedor.ToString Then + DdlProveedores.Items.Insert(1, New ListItem(GlobalDTCompProveedores(CveEmpresaActual).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {objOC.CveProveedor}"), objOC.CveProveedor.ToString)) + End If + + CargaCotizaciones(CveOrdenCompra) + + + 'Si requiere cotizacion y el estatus siguiente es el final, desabilitar el combo del estatus + If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then + CboE.Enabled = False + LblMsgEstatus.Visible = True + LblMsgEstatus.Text = "Cotización requerida para avanzar" + BtnGuardar.Enabled = False + Else + BtnGuardar.Enabled = True + CboE.Enabled = True + LblMsgEstatus.Visible = False + End If + + BtnGuardar.Visible = True + trAddDetalle.Visible = True + fsSeguimiento.Visible = True + fsHistorial.Visible = True + CargaHistorial() + 'cuando esta autorizada se habilita el imprimir OrElse (objOC.Tipo.ToUpper = "REQ" AndAlso objOC.TipoTermino = 1) + If UsuarioActual.Empresa.Funcionalidad(107) = "" OrElse (objOC.Tipo.ToUpper = "OC") Then + HLImprimir.Visible = True + HLImprimir.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra))) + End If + + HlEvento.Visible = True + HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveOC=" & CveOrdenCompra & "&TB_iframe=true&height=370&width=600;" + + hplAgregarCotizacion.NavigateUrl = "/OC/RepCotizacionesDetalle.aspx?CveOrdenCompra=" & CveOrdenCompra & "&TB_iframe=true&height=600&width=830;" + hplEnviarCorreo.NavigateUrl = "/OC/CotizacionEnvio.aspx?CveOrdenCompra=" & CveOrdenCompra & "&TB_iframe=true&height=600&width=900;" + + CargaEventoBitacora() + If CveEstatus = CveEstatusFinalError Or CveEstatus = CveEstatusFinalOK Then DesHabilitar() Else VerificaSiRequiereCotizacion() + + If EditarOC Then + CboE.Enabled = True + GvD.Columns(9).Visible = True 'Permitir la edicion + ChkCotizacion.Enabled = True + TxtDescrip.Enabled = True + TxtJustificacion.Enabled = True + TxtFechaEstimadaEntrega.Enabled = True + txtLugarEntrega.Enabled = True + TxtLugarEntregaDirecta.Enabled = True + gvCotizaciones.Enabled = True + DdlProveedores.Enabled = True + DdlUsoCFDI.Enabled = True + DdlIVA.Enabled = True + ImgCambiaProv.Visible = True + UPProv.Update() + End If + + 'ASIGNA ESTATUS OC + CboE_SelectedIndexChanged(New Object, New EventArgs) + + CargaDatosDetalles() + + '17-04-2018 - Si es OC registrada carga link a PopUpPaqueteriaGuia + If ChkEntregaDirecta.Checked And CveOrdenCompra > 0 Then + LnkAgregarGuia.Visible = True + UpAcciones.Update() + End If + + uppEstatus.Update() + UPPEmp.Update() + + Else + ViewState("Tipo") = "REQ" + ViewState("TipoOC") = "REQ" + ViewState("TipoLargo") = "Requisición" + + Alert("No se encontro la OC/REQ Solicitada.", TipoMensaje.MsgError) + InicializarValores() + + End If + + objOC.Dispose() + + 'CARGA MOVTOS DE ALMACEN + InicializaMovtosAlmacen() + + uppEstatus.Update() + End Sub + + Protected Sub CargaHistorial() + Dim ObjGral As New ClsGenerales + + If ObjGral.GetHistorialBitacora(-1, CveOrdenCompra, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + ViewState("DtHistorial") = ObjGral.DtResultados + + GVH.DataSource = DtHistorial + GVH.DataBind() + uppHistorial.Update() + + End If + Dim objOC As New ClsOC + If objOC.GetOrdenesEstatus(CveOrdenCompra) Then + gvEstatus.DataSource = objOC.DtResultados + gvEstatus.DataBind() + + End If + + uppSeguimientoEstatus.Update() + ObjGral.Dispose() + objOC.Dispose() + End Sub + Protected Sub btnCargaCotizaciones_Click(sender As Object, e As EventArgs) + Dim objCotizacion As New ClsOC + + 'ACTUALIZA REQUIERE COTIZACION DE LA REQ + If Not objCotizacion.UpdateOrdenCompraCotizacion(CveOrdenCompra) Then + Alert("Ocurrió un error al actualizar el estatus Decimal cotización.", TipoMensaje.MsgError) + End If + objCotizacion.Dispose() + + CargaCotizaciones(CveOrdenCompra) + End Sub + Protected Sub CargaCotizaciones(CveOrdenCompra As Integer) + NumCotizacionesGanadoras = 0 + NumCotizaciones = 0 + TotalCotizacionesGanadoras = 0 + + Dim objCotizaciones As New ClsOC + + '------------------------------------------------------------------------ + Dim Ds As DataSet = objCotizaciones.GetCotizacionesTabla(CveOrdenCompra) + For i = 1 To 10 + gvCotizaciones.Columns(i + 2).Visible = False + Next + + If Ds IsNot Nothing AndAlso Ds.Tables.Count = 2 Then + DtCotizaciones = Ds.Tables(1) + + ProveedoresCotizacion = New ArrayList + For Each Dr2 As DataRow In DtCotizaciones.Rows + ProveedoresCotizacion.Add(Dr2("RazonSocial")) + Next + + NumCotizaciones = DtCotizaciones.Rows.Count + + For i = 1 To NumCotizaciones + gvCotizaciones.Columns(i + 2).Visible = True + Next + + gvCotizaciones.DataSource = Ds.Tables(0) + gvCotizaciones.DataBind() + End If + + objCotizaciones.Dispose() + uppCotizaciones.Update() + + If gvCotizaciones.Rows.Count = 0 Then + 'btnGeneraOrdenes.Visible = False + uppOpciones.Update() + Else + 'btnGeneraOrdenes.Enabled = If(gvCotizaciones.Rows.Count - 1 = NumCotizacionesGanadoras And CveEstatusSiguiente = CveEstatusFinalOK, True, False) + + + 'If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then + If ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then + CboE.Enabled = False + LblMsgEstatus.Visible = True + LblMsgEstatus.Text = "Cotización requerida para avanzar" + BtnGuardar.Enabled = False + Else + BtnGuardar.Enabled = True + CboE.Enabled = True + LblMsgEstatus.Visible = False + End If + + uppEstatus.Update() + uppOpciones.Update() + End If + + If NumCotizaciones > 0 Then + HLImprimirCotizacion.Visible = True + HLImprimirCotizacion.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CotOC&CVEOC={0}", CveOrdenCompra))) + End If + End Sub + +#End Region + +#Region " CARGA C O M B O S " + Private Sub CargaMonedas() + DdlMoneda.DataSource = GlobalDTMonedas + DdlMoneda.DataBind() + If CveEmpresaActual.Contiene(13, 14, 24) Then + DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + End Sub + Private Sub CargaClasificaciones() + Dim TipoClasif As Integer = -1 + If isWithFamily() Then + DdlClasificacion.DataSource = GlobalDTSubFamilias(CveEmpresaActual).FiltraParametros("EstatusCategoria = 'Activo' AND Estatus = 'Activo'") + Else + DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual) + End If + + DdlClasificacion.DataBind() + End Sub + Private Sub CargaProyectos() + DdlProyecto.Items.Clear() + DdlProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) + DdlProyecto.DataBind() + DdlProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlProyectoContrato.Items.Clear() + DdlProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) + DdlProyectoContrato.DataBind() + DdlProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + Private Sub CargaSubProyectos() + Dim Filtro As String = If(DdlProyecto.SelectedValue.ToEntero > 0, String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero), "") + + DdlSubProyecto.Items.Clear() + If Filtro <> "" Or UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, CveEmpresaActual, 1)) 'DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) ' GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) + End If + DdlSubProyecto.DataBind() + DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + Private Sub CargaSubProyectosEdit(DdlSP As DropDownList, CveProyectoEdit As Integer) + DdlSP.Items.Clear() + DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(CveProyectoEdit) + DdlSP.DataBind() + DdlSP.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + Private Sub CargaUnidadesMedida() + CboUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.Empresa.CveEmpresa) + CboUnidadMedida.DataBind() + End Sub + Private Sub CargaProveedores() + DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual) + DdlProveedores.DataBind() + DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1")) + UPProv.Update() : UPPEmp.Update() + End Sub + + Private Sub CargaProveedorSucursal() + DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual) + DdlProveedores.DataBind() + DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1")) + UPProv.Update() : UPPEmp.Update() + End Sub + Private Sub CargaEstatusOC() + CboE.Items.Clear() + CboE.DataSource = DtEstatusUsuarios.FiltraParametros("TipoTermino <> 2", "Nivel Desc", {"CveEstatus", "Estatus"}) + CboE.DataBind() + CboE.Items.Add(New ListItem("Pre Solicitud", "0")) + + End Sub + Private Sub CargaEstatusInicialFinal() + 'Cargar el Estatus Inicial + Dim drInicial As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) + Dim drFinalOK As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) + Dim drFinalError As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) + Dim drSupervisada As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 0 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 0 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing) + + + If Not drInicial Is Nothing Then CveEstatusInicial = drInicial("CveEstatus").ToString.ToEntero : EstatusInicial = drInicial("Estatus").ToString Else CveEstatusInicial = -1 : EstatusInicial = "" + If Not drFinalOK Is Nothing Then CveEstatusFinalOK = drFinalOK("CveEstatus").ToString.ToEntero : EstatusFinalOK = drFinalOK("Estatus").ToString Else CveEstatusFinalOK = -1 : EstatusFinalOK = "" + If Not drFinalError Is Nothing Then CveEstatusFinalError = drFinalError("CveEstatus").ToString.ToEntero : EstatusFinalError = drFinalError("Estatus").ToString Else CveEstatusFinalError = -1 : EstatusFinalError = "" + If Not drSupervisada Is Nothing Then CveEstatusSupervisada = drSupervisada("CveEstatus").ToString.ToEntero + + End Sub + Private Sub CargaComboCFDI() + DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI + DdlUsoCFDI.DataBind() + End Sub +#End Region + +#Region " DDLS: PROYECTO " + + Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged + CargaSubProyectos() + End Sub + + Protected Sub DdlProyectoEdit_SelectedIndexChanged(sender As Object, e As EventArgs) + Dim ddl As DropDownList = DirectCast(sender, DropDownList) + Dim DdlSP As DropDownList = Nothing + + Dim gvr As GridViewRow = DirectCast(ddl.NamingContainer, GridViewRow) + + DdlSP = GvD.Rows(gvr.RowIndex).FCDropDownList("DdlSubProyectoEdit") + If DdlSP IsNot Nothing Then CargaSubProyectosEdit(DdlSP, ddl.SelectedValue.ToEntero) + End Sub +#End Region + +#Region " DDLS: CLASIFICACION Y PS " + + Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged + CargaPS(DdlClasificacion.SelectedValue.ToEntero, DdlP2) + UPPDetalle.Update() + End Sub + Protected Sub DdlClasificacion_SelectedIndexChanged1(sender As Object, e As EventArgs) + + Dim Gvr As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow) + 'Dim filtro As String = "" + Dim CveClasificacion = DirectCast(sender, DropDownList).SelectedValue.ToEntero + + ' filtro = String.Format("CveClasificacion={0}", CveClasificacion) + + Gvr.FCDropDownList("DdlPS").Items.Clear() + Gvr.FCDropDownList("DdlPS").DataSource = GlobalDTPSSimplificado(CveEmpresaActual, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo") + Gvr.FCDropDownList("DdlPS").DataBind() + Gvr.FCDropDownList("DdlPS").Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) + + End Sub + Protected Sub DdlPS_SelectedIndexChanged1(sender As Object, e As EventArgs) + + Dim Gvr As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow) + Dim filtro As String = "" + Dim Cvepsgvd = DirectCast(sender, DropDownList).SelectedValue.ToEntero + If Cvepsgvd > 0 Then + Dim CboUM As DropDownList = Gvr.FCDropDownList("CboUnidadMedidaEdit") + Dim TxtPU As TextBox = Gvr.FCTextBox("TxtImporteEdit") + CboUM.DataSource = GlobalDTProductosServiciosEquivalencias(Cvepsgvd, -1) + CboUM.DataBind() + End If + End Sub + Protected Sub LbVerInventario_Click(sender As Object, e As EventArgs) Handles LbVerInventario.Click + RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacen.aspx?CvePS={0}',800,547,'N');", DdlP2.SelectedValue)) + End Sub + Private Sub CargaPS(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost) + 'Dim filtro As String = "" + + 'If CveClasificacion > 0 Then + ' ' If isWithFamily() Then + ' ' filtro = String.Format("CveSubFamilia={0}", CveClasificacion) + ' ' Else + ' filtro = String.Format("CveClasificacion={0}", CveClasificacion) + ' 'End If + 'Else + ' ' If isWithFamily() Then + ' ' filtro = "CveSubFamilia > -1" + ' ' Else + ' filtro = "CveClasificacion > -1" + ' ' End If + 'End If + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString) + ' Objeto.ddlWS.Attributes.Add("data-pagina", "oc/oc") + Objeto.SelectedText = "" + Objeto.SelectedValue = "-1" + Else + Objeto.ddl.Items.Clear() + Objeto.ddl.DataSource = GlobalDTPSSimplificado(CveEmpresaActual, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo") + Objeto.ddl.DataBind() + 'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) + Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) + End If + End Sub + Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlP2.selectedindexchange + Dim tempdt As DataTable = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero) + + If tempdt.Rows.Count > 0 Then + + If isWithFamily() Then + DdlClasificacion.SelectedValueExist(tempdt.Rows(0)("CveSubFamilia").ToString) + Else + DdlClasificacion.SelectedValueExist(tempdt.Rows(0)("CveClasificacion").ToString) + End If + + CboUnidadMedida.Items.Clear() + + CboUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(DdlP2.SelectedValue.ToEntero, -1) + CboUnidadMedida.DataBind() + + If CveEmpresaActual = 119 Then + txtPrecioUnitario.Text = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero).FiltroPrimeroValor("Precio") + ElseIf CveEmpresaActual.Contiene(72, 80) Then + Dim ObjOC As New ClsOC + + If ObjOC.GetUltimoCostoPS(DdlP2.SelectedValue.ToEntero) Then + If ObjOC.DtResultados.Rows.Count.ToEntero > 0 Then + LblUltimoCosto.Visible = True + LblUltimoCosto.Text = $"UC: {ObjOC.DtResultados(0)("UltimoCosto").ToString.FormatoNumero}" + Else + LblUltimoCosto.Visible = False + LblUltimoCosto.Text = "" + End If + End If + ObjOC.Dispose() + End If + End If + End Sub +#End Region + +#Region " AGREGAR " + Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click + + 'VALIDA CVEPS + If DdlP2.SelectedValue().ToEntero <= 0 Then + Alert("El campo 'Producto/Servicio' es necesario, por favor seleccione uno.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + + If DtDetalle IsNot Nothing Then + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero).FiltroPrimero("") + If DrPS Is Nothing Then + Alert("Ocurrió un error al cargar la información del producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + Dim ObjCon As New ClsContratos + Dim CvePresupuesto As Integer = 0 + Dim Autorizado As Double = 0 + Dim Ejercido As Double = 0 + If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then + If ObjCon.DtResultados.Rows.Count > 0 Then + CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero + If CvePresupuesto > 0 Then + If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then + If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then + Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble + End If + End If + If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{DateTime.Now.Year - 1}".ToDate, Now, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, + DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then + If ObjCon.DtResultados.Rows.Count > 0 Then + Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble + End If + End If + End If + End If + End If + ObjCon.Dispose() + + If CvePresupuesto > 0 And Autorizado > 0 Then + Dim Diferencia As Double = (Ejercido + If(txtPrecioUnitario.Text.ToDouble > 0, (txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble) - TxtDescuentoAdd.Text.ToDouble, 0)) - Autorizado + If Diferencia > 0 Then + Alert($"No hay presupuesto disponible en el subproyecto {DdlSubProyecto.SelectedItem.Text} y la clasificación {DdlClasificacion.SelectedItem.Text} se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + End If + + + Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble + Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble + Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble + + 'If IvaPS = -1 Then 'IVA DE LA SUCURSAL + ' IvaPS = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble + 'End If + + Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble + Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) + Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero) + Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero) + Dim Proyecto As String = If(DdlProyecto.SelectedValue.ToString.ToEntero > 0, DdlProyecto.SelectedItem.Text, "Sin Proyecto") + Dim SubProyecto As String = If(DdlSubProyecto.SelectedValue.ToString.ToEntero > 0, DdlSubProyecto.SelectedItem.Text, "Sin SubProyecto") + Dim TotalPS As Double = If(txtPrecioUnitario.Text.ToDouble > 0, (txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble) - TxtDescuentoAdd.Text.ToDouble, 0) + Dim ImportePS As Double = If(txtPrecioUnitario.Text.ToDouble > 0, txtPrecioUnitario.Text.ToDouble, 0) + Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 + + 'Si es Proveedor Extranjero el IVA es 0% + If GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {DdlProveedores.SelectedValue} AND RFC = 'XEXX010101000'").Rows.Count = 1 Then + IvaPS = 0 + End If + + AddPS(TxtCant.Text, DdlP2.SelectedValue.ToEntero, DdlP2.SelectedText, TxtObsPS.Text, ImportePS, TxtDescuentoAdd.Text.ToDouble, TotalPS, + CboUnidadMedida.SelectedValue.ToEntero, IvaPS, IEPSPS, IEPSPSIVA, DdlClasificacion.SelectedValue.ToEntero, CboUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedItem.Text, DdlProyecto.SelectedValue.ToEntero, Proyecto, + DdlSubProyecto.SelectedValue.ToEntero, SubProyecto, LblCodigo.Text, HdnCveActivoFijo.Value.ToEntero, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer, + IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero, + DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR) + + TxtCant.Text = "" + CboUnidadMedida.SelectedIndex = 0 + DdlClasificacion.SelectedIndex = 0 + DdlP2.SelectedValue = "-1" + DdlP2.SelectedText = "Seleccione un producto o servicio" + + txtPrecioUnitario.Text = "" + TxtObsPS.Text = "" + HdnCveActivoFijo.Value = "" + LblCodigo.Text = "" + LblCvePOA.Text = "" + TxtCant.Focus() + + Total.Text = "0.00" + TxtDescuentoAdd.Text = "0.00" + + End If + + CargaSuperior() + CargaDatosDetalles() + + UPPDetalle.Update() + + + End Sub + Private Sub AddPS(Cantidad As String, CvePS As Integer, PS As String, Observaciones As String, Importe As Double, Descuento As Double, Total As Double, CveUnidadMedida As Integer, IVAPS As Double, IEPSPS As Double, IEPSPSIVA As Double, CveClasificacion As Integer, + UM As String, Clasificacion As String, CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String, CodigoAF As String, CveActivoFijo As Integer, TipoDato As Integer, + CveOrdenCompraDetalle As Integer, CveOrdenCompra As Integer, IdCuentaPorEjercer As Integer, IdCuentaComprometido As Integer, CveProgramaOperativo As Integer, CveUnidadAdministrativa As Integer, + CveFuenteFinanciamiento As Integer, CveTipoGasto As Integer, CveClasificacionOG As Integer, RetIVA As Double, RetISR As Double, Optional CveContratoDetalle As Integer = 0) + + If DtDetalle IsNot Nothing Then + Dim dr As DataRow = DtDetalle.NewRow + dr("Cantidad") = Cantidad + dr("CvePS") = CvePS + dr("PS") = PS + dr("Observacion") = Observaciones + dr("Importe") = Math.Round(Importe, 6) + dr("Descuento") = Descuento + dr("Total") = Math.Round(Total, 2) + dr("CveUnidadMedida") = CveUnidadMedida + dr("IVAPorcentaje") = If(IVAPS = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVAPS) + dr("IVA") = Math.Round(dr("IVAPorcentaje").ToString.ToDouble * Total, 2) + dr("IEPSPSPorcentaje") = IEPSPS + dr("IEPSPS") = Math.Round(IEPSPS * Total, 2) + dr("IEPSPSIVAPorcentaje") = IEPSPSIVA + dr("IEPSPSIVA") = Math.Round(IEPSPSIVA * Total, 2) + dr("RetIVAPorcentaje") = RetIVA + dr("RetIVA") = Math.Round(RetIVA * Total, 2) + dr("RetISRPorcentaje") = RetISR + dr("RetISR") = Math.Round(RetISR * Total, 2) + dr("CveClasificacion") = CveClasificacion + dr("UM") = UM + dr("Clasificacion") = Clasificacion + If isWithFamily() Then + dr("CveSubFamilia") = dr("CveClasificacion") + dr("SubFamilia") = dr("Clasificacion") + End If + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + dr("CveProyecto") = "-1" + dr("Proyecto") = "Sin Proyecto" + Else + If CveSubProyecto > 0 Then + dr("CveProyecto") = CveSubProyecto + dr("Proyecto") = Proyecto + End If + End If + dr("CveSubProyecto") = CveSubProyecto + dr("SubProyecto") = SubProyecto + dr("CodigoAF") = CodigoAF + dr("CveActivoFijo") = CveActivoFijo + dr("TipoDato") = 0 ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + dr("CveOrdenCompraDetalle") = CveOrdenCompraDetalle + dr("CveOrdenCompra") = CveOrdenCompra + dr("IdCuentaPorEjercer") = IdCuentaPorEjercer + dr("IdCuentaComprometido") = IdCuentaComprometido + dr("CveProgramaOperativo") = CveProgramaOperativo + dr("CveUnidadAdministrativa") = CveUnidadAdministrativa + dr("CveFuenteFinanciamiento") = CveFuenteFinanciamiento + dr("CveTipoGasto") = CveTipoGasto + dr("CveClasificacionOG") = CveClasificacionOG + dr("CveContratoDetalle") = CveContratoDetalle + + DtDetalle.Rows.Add(dr) + DtDetalle.AcceptChanges() + End If + + + End Sub +#End Region + +#Region " GUARDAR " + Private Function ValidaGuardar() As Boolean + Dim TieneError = False + + 'VALIDA QUE TENGA REGISTROS + If Not GvD.Rows.Count > 0 Then + Alert(String.Format("La {0} debe de tener registros", TipoLargo), TipoMensaje.MsgAdvertencia) + Return True + End If + + 'VALIDA DESCUENTOS + If Not ValidarDescuentos() Then + 'Alert("Los descuentos no cuadran. Por favor de verificar.", TipoMensaje.MsgAdvertencia) + Return True + End If + + 'SI ES REQUISICION, NO REQUIERE COTIZACION Y ES ESTATUSFINALOK... ENTONCES DEBE DE TENER UN PROVEEDOR SELECCIONADO Y LOS PRECIOS CAPTURADOS + 'If (TipoOC = "REQ" And ChkCotizacion.Checked = False And CboE.SelectedValue.ToEntero = CveEstatusFinalOK) OrElse TipoOC = "OC" Then + ' If Not UsuarioActual.TienePermisoProceso(179) Then 'PERMISO PARA GENERAR CON O + ' If DtDetalle.FiltraParametros("Importe = -1 OR Importe IS NULL OR Importe = 0").Rows.Count > 0 Then Alert("DEBE CAPTURAR EL PRECIO UNITARIO DE CADA PRODUCTO/SERVICIO", TipoMensaje.MsgAdvertencia) : Return True + ' If DdlProveedores.SelectedValue.ToEntero <= 0 Then Alert("DEBE CAPTURAR EL PROVEEDOR", TipoMensaje.MsgAdvertencia) : Return True + ' End If + 'End If + + + 'VALIDA SUBPROYECTOS + SubProyectosNoAutorizados = New List(Of String) + Dim TotalT As Decimal = If(ChkCotizacion.Checked, TotalCotizacionesGanadoras, LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal) + TotalT = If(DdlMoneda.SelectedValue <> "1", (TotalT * GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal), TotalT) + If RequiereSubProyecto = True AndAlso CboE.SelectedValue.ToEntero > 0 Then ' cuando se cumpla la restriccion y no sea "Pre Solicitud" + + + + If DdlMoneda.SelectedValue <> "1" And GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal = 0 Then + Alert("No se pudieron verificar los limites del usuario porque no se pudo cargar el tipo de cambio", TipoMensaje.MsgAdvertencia) + Return True + End If + + For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows + 'Primero Filtrar por SubProyecto + Dim SubPAut As DataTable = DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CboE.SelectedValue)) + If SubPAut.Rows.Count = 0 Then + SubProyectosNoAutorizados.Add(String.Format("{0}", Row("SubProyecto").ToString)) + If UsuarioActual.CveUsuario <> 100 Then TieneError = True + ElseIf TotalT > 0 AndAlso SubPAut.FiltraParametros(String.Format("((LimiteInferior IS NULL OR LimiteInferior <= {0}) AND (LimiteSuperior IS NULL OR LimiteSuperior >= {0})) ", TotalT)).Rows.Count = 0 Then + 'Segundo Filtrar por Limite Inferior y Superior + SubProyectosNoAutorizados.Add(String.Format("{0}, {1} - {2} ({3} - {4} Dolares)", Row("SubProyecto").ToString, FormatCurrency(SubPAut.Rows(0)("LimiteInferior").ToString.ToDecimal), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal), FormatCurrency(SubPAut.Rows(0)("LimiteInferior").ToString.ToDecimal / GlobalTipoCambio(TxtFecha.Text.ToDate)), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal / GlobalTipoCambio(TxtFecha.Text.ToDate)))) + If UsuarioActual.CveUsuario <> 100 Then TieneError = True + End If + Next + + If ChkCotizacion.Checked = True And SubProyectosNoAutorizados.Count > 0 Then + SubProyectosNoAutorizados.Add(String.Format("

    Total de Cotizaciones: {0}", FormatCurrency(TotalT))) + End If + + If TieneError Then + If SubProyectosNoAutorizados.Count > 0 Then + Dim ss As String = "" + For Each S As String In SubProyectosNoAutorizados + ss += "
    - " + S + Next + Alert(String.Format("No está autorizado a modificar el SubProyecto
    {0}", ss), TipoMensaje.MsgAdvertencia) + End If + End If + End If + + + Dim PermisoActual As DataTable + For Each row As GridViewRow In GvD.Rows + + If row.DataKey("SubProyecto").ToString = "Seleccione" Then + TieneError = True + Alert("El campo SubProyecto es obligatorio.", TipoMensaje.MsgAdvertencia) + Exit For + End If + + 'SI TIENE ALGUN PERMISO SE VALIDA, SI NO TIENE NINGUNA ES LIBRE + If DtEstatusUsuariosClasificaciones IsNot Nothing AndAlso DtEstatusUsuariosClasificaciones.Rows.Count > 0 Then + PermisoActual = DtEstatusUsuariosClasificaciones.FiltraParametros($"CveClasificacion = {row.DataKey("CveClasificacion")} AND CveSubProyecto = {row.DataKey("CveSubProyecto")} AND CveEstatus = {CboE.SelectedValue}") + If PermisoActual.Rows.Count = 1 Then + + 'SI TIENE LIMITE INFERIOR SE VALIDA QUE ESTE EN EL RANGO + If PermisoActual.Rows(0)("LimiteInferior").ToString.ToDecimal > 0 Then + If Not row.DataKey("Importe").ToString.ToDecimal >= PermisoActual.Rows(0)("LimiteInferior").ToString.ToDecimal Then + Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("CveClasificacion")} con la Clasificación {row.DataKey("SubProyecto")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + If UsuarioActual.CveUsuario <> 100 Then TieneError = True + Exit For + End If + End If + + 'SI TIENE LIMITE SUPERIOR SE VALIDA QUE ESTE EN EL RANGO + If PermisoActual.Rows(0)("LimiteSuperior").ToString.ToDecimal > 0 Then + If Not row.DataKey("Importe").ToString.ToDecimal <= PermisoActual.Rows(0)("LimiteSuperior").ToString.ToDecimal Then + Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("CveClasificacion")} con la Clasificación {row.DataKey("SubProyecto")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + If UsuarioActual.CveUsuario <> 100 Then TieneError = True + Exit For + End If + End If + + Else + Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("SubProyecto")} con la Clasificación {row.DataKey("Clasificacion")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + If UsuarioActual.CveUsuario <> 100 Then TieneError = True + Exit For + End If + End If + + Next + + If ChkEntregaDirecta.Checked And ((TxtLugarEntregaDirecta.Visible = True And TxtLugarEntregaDirecta.Text.Trim = "") Or (DdlDireccionEnvio.Visible = True And Not DdlDireccionEnvio.SelectedValue.ToEntero > 0)) Then + TieneError = True + Alert("El campo Lugar Entrega es obligatorio. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + End If + + If TipoOC = "REQ" And CveOrdenCompra > 0 Then + Dim ObjOC As New ClsOC + If ObjOC.GetOC(CveOrdenCompra, CveEmpresaActual, CveUsuario:=UsuarioActual.CveUsuario) Then + ViewState("CveEstatus") = ObjOC.CveEstatus + End If + ObjOC.Dispose() + + If CveEstatus = CveEstatusFinalOK Then + Alert("La requisición ya fue autorizada por otro usuario u otra sesión. Favor de verificar.", TipoMensaje.MsgAdvertencia, "location.reload();") + TieneError = True + 'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True) + End If + End If + + 'Valida que este seleccionada una sucursal si el proveedor tiene una + If DivProveedorSucursal.Visible = True And DdlProveedorSucursal.SelectedValue.ToEntero = -1 Then + Alert("Tiene que seleccionar la sucursal del proveedor.", TipoMensaje.MsgAdvertencia) + TieneError = True + End If + + 'VALIDA QUE ANTES DE QUE PUEDA MANDARLA A SUPERVISADA SE TIENE QUE SELECCIONAR UN PROVEEDOR + If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + If (TipoOC.ToUpper = "REQ" And CboE.SelectedValue.ToEntero.Contiene(CveEstatusSupervisada, CveEstatusFinalOK)) AndAlso DdlProveedores.SelectedValue.ToEntero() <= 0 Then + Alert("Debe seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) + TieneError = True + End If + End If + + 'VALIDA QUE TENGA LAS COTIZACIONES QUE DEBEN TENER + If UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0 AndAlso (TipoOC.ToUpper = "REQ" And CveEstatusFinalOK = CboE.SelectedValue.ToEntero) Then + If CveConfianzaProveedor > 0 Then + + If CveConfianzaProveedor = 1 AndAlso Me.NumCotizaciones < 1 Then + Alert("Para el proveedor seleccionado es necesario terner al menos 1 cotización.", TipoMensaje.MsgAdvertencia) + TieneError = True + ElseIf CveConfianzaProveedor = 2 AndAlso Me.NumCotizaciones < 2 Then + Alert("Para el proveedor seleccionado es necesario terner al menos 2 cotizaciones", TipoMensaje.MsgAdvertencia) + TieneError = True + End If + + End If + End If + + If Not UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + If ChkCotizacion.Checked And DtDetalle.FiltraParametros("ISNULL(CveProveedor,0) <= 0", "CveProveedor").Rows.Count > 0 Then + Alert("Todos los conceptos de la Requisición deben tener proveedor ganador seleccionado.", TipoMensaje.MsgAdvertencia) + TieneError = True + End If + End If + + + Return TieneError + End Function + Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click + + 'VALIDACIONES PARA GUARDAR + If ValidaGuardar() Then Exit Sub + + Dim MsgError As String = "Hubo un error al registrar" + 'VARIABLES + Dim CveProveedorSucursal As Integer = -1 + Dim CveProveedorContacto As Integer = -1 + Dim TieneError As Boolean = False + Dim CveProveedor As Integer = -1 + Dim GeneraReq = False + Dim IDPoliza As Integer = 0 + Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal) + If TxtFechaEstimadaEntrega.Text.Trim = "__/__/____" Then TxtFechaEstimadaEntrega.Text = "" + Dim Promocion = TxtPromocion.Text.Trim + + + 'EMPIEZA OBJETOS Y TRASACCIONES + Dim OC As New ClsOC + Dim OCBitacora As New ClsOIEventos(OC.IniciaTransacSQL()) + Dim ObjInventarios As New ClsInventarios(OC.IniciaTransacSQL()) + Dim ObjConta As New ClsContabilidad(OC.IniciaTransacSQL()) + + Dim Conta As ClsContPAQi = Nothing + If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then + Conta = New ClsContPAQi(UsuarioActual.Empresa) + Conta.IniciaTransacSQL() + End If + + 'LUGAR ENTREGA + Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim) + LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, "")) + + 'GUARDA' + If EsNuevo Then + + + 'SI ES NUEVO, ES REQUISICION, ES ESTATUSFINALOK... VA A SER ORDEN DE COMPRA + Dim CveEstatusNuevo As Integer = CboE.SelectedValue.ToEntero + If (TipoOC = "REQ" AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK) OrElse (TipoOC = "OC") Then + GeneraReq = If(TipoOC = "REQ", True, False) + ViewState("TipoLargo") = "Orden Compra" + CveEstatusNuevo = If(TipoOC = "OC", CboE.SelectedValue.ToEntero, CveEstatusInicialOC) + End If + + 'siempre se esta guardando el proveedor + If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then + CveProveedor = DdlProveedores.SelectedValue.ToEntero + CveProveedorSucursal = DdlProveedorSucursal.SelectedValue.ToEntero + CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero + End If + + Dim CveOrdenCompraPadre As Integer = -1 + + If GeneraReq Then + If Not TieneError Then ' AGREGAR REQUISICION + If OC.AddOrdenCompra("REQ", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CboE.SelectedValue.ToEntero, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), + LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal, + RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, + RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, + IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then + + CveOrdenCompraPadre = OC.CveOrdenCompra + If CveOrdenCompraPadre > 0 Then + For Each dr As DataRow In DtDetalle.Rows + If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + TieneError = True + Exit For + End If + Next + Else + TieneError = True + End If + TipoOC = "OC" + Else + TieneError = True + End If + + + End If + End If + + If Not TieneError Then ' AGREGAR ORDEN DE COMPRA + + + If OC.AddOrdenCompra(If(TipoOS, "OS", TipoOC), -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusNuevo, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), + LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal, + RequiereCotizacion:=ChkCotizacion.Checked, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, + PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), + CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=LtImporteIEAnticipo.Text.ToDouble, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, + Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then + CveOrdenCompra = OC.CveOrdenCompra + CveEstatus = CboE.SelectedValue.ToEntero + + If TipoOC = "OC" And CboE.SelectedValue.ToEntero > 0 Then + + ''''' + '17/04/2018 - Se cambia por nuevo esquema de paqueterias guias. + 'ENTREGA FORANEOS + 'If ChkEntregaDirecta.Checked Then + ' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, CveOrdenCompra) Then + ' TieneError = True + ' End If + 'End If + + If Not TieneError Then + CveOCGeneradas.Add(CveOrdenCompra) + FolioOCGeneradas.Add(OC.Folio) + End If + End If + + Folio = OC.Folio + Else + TieneError = True + End If + + If CveOrdenCompra > 0 Then + + 'USA AC + If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA + ' SI NO TIENE COTIZACION SE GENERA 1 POLIZA + If Not ChkCotizacion.Checked Then + + If GuardaAC(Conta, OC, CveOrdenCompra, Folio) <= 0 Then + TieneError = True + End If + + End If + End If + 'TERMINA: USA AC + + + 'AGREGA BITACORA TEMPORAL + If DtBitacora IsNot Nothing AndAlso DtBitacora.Rows.Count > 0 Then + TieneError = GuardaBitacoraTemporal(OCBitacora) + End If + + + For Each dr As DataRow In DtDetalle.Rows + If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + TieneError = True + Exit For + End If + Next + Else + TieneError = True + End If + End If + + + If Not TieneError Then + If Conta IsNot Nothing Then Conta.Commit() + OC.Commit() + BtnGuardar.Visible = False + Else + If Conta IsNot Nothing Then Conta.RollBack() + If OC IsNot Nothing Then OC.RollBack() + Alert("Hubo un Error al registrar", TipoMensaje.MsgError) + CveOrdenCompra = -1 + End If + + ViewState("LigaOCs") = If(CveEstatusNuevo <> CboE.SelectedValue.ToEntero, String.Format("{1}", CveOrdenCompra, Folio), "") + + If CveOrdenCompra > 0 Then + Dim ImprimirOC = String.Format("Imprimir Orden de Compra ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra))) + Dim Msg As New StringBuilder + + 'Cuando Estatus = "Autorizada" + 'If CboE.SelectedValue.ToEntero > 0 Then + ' Dim Row As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("CveEstatus = {0}", CboE.SelectedValue)).Rows(0) + ' 'If (Row IsNot Nothing AndAlso Row("TipoTermino").ToString.ToEntero = 1) Then EnviarCorreoOrdenCompra(CveOrdenCompra) + 'End If + + 'POSIBLE COMENTAR - QUITAR + 'Envío de correo, con el detalle y la información cargada de nuevo + If CveEstatus >= 0 Then + EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text, False) + End If + + If LigaOCs = "" Then + Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente
    {2}", TipoLargo, Folio, If(TipoOC = "OC", ImprimirOC, "")) + Else + Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente

    Orden de Compra:{2}
    {3}", TipoLargo, Folio, LigaOCs, If(TipoOC = "OC", ImprimirOC, "")) + End If + + 'IMPRIME LIGA A POLIZAS + If IDPolizasGeneradas.Count > 0 Then + Msg.Append("

    Polizas generadas:") + For i = 0 To IDPolizasGeneradas.Count - 1 + Msg.AppendFormat("
    Poliza: {1}", IDPolizasGeneradas(i), FoliosPolizas(i)) + Next + End If + + Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""") + + 'GeneraPDF(CveOrdenCompra) + TxtDescrip.Text = "" + TxtJustificacion.Text = "" + End If + + + 'UPDATE' + ElseIf CveOrdenCompra > 0 Then + Dim FueModificada As Boolean = False + + 'siempre se esta guardando el proveedor + If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then + CveProveedor = DdlProveedores.SelectedValue.ToEntero + End If + + If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), + LugarEntrega, DdlMoneda.SelectedValue.ToEntero, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.SelectedValue.ToEntero, + DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), + Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto, + PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then + TieneError = True + End If + + 'USA AC + If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA + ' SI NO TIENE COTIZACION SE GENERA 1 POLIZA + If Not ChkCotizacion.Checked AndAlso TipoOC.ToUpper <> "REQ" Then + + If GuardaAC(Conta, OC, CveOrdenCompra, lblFolio.Text.ToEntero) <= 0 Then + TieneError = True + End If + End If + End If + 'TERMINA: USA AC + + 'inserto los nuevos detalles + If Not TieneError Then + For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato = 0").Rows + If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero), Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + TieneError = True + Exit For + Else + FueModificada = True + End If + Next + End If + + 'Edito los detalles + If Not TieneError Then + + Dim DtInvOC As New DataTable + Dim DtInvOCDiferencias As New DataTable + DtInvOCDiferencias.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) + DtInvOCDiferencias.Columns.Add("CveAlmacen", GetType(Integer)) + DtInvOCDiferencias.Columns.Add("CveMovimiento", GetType(Integer)) + DtInvOCDiferencias.Columns.Add("Diferencia", GetType(Double)) + DtInvOCDiferencias.Columns.Add("ImporteMovto", GetType(Double)) + DtInvOCDiferencias.Columns.Add("ImporteMovtoDLLS", GetType(Double)) + DtInvOCDiferencias.Columns.Add("TipoCambioAjuste", GetType(Double)) + DtInvOCDiferencias.Columns.Add("ConceptoSalida", GetType(Integer)) + DtInvOCDiferencias.Columns.Add("PS", GetType(String)) + + If ObjInventarios.GetMovimientosOC(CveOrdenCompra, UsuarioActual.CveEmpresa) Then + DtInvOC = ObjInventarios.DtResultados.FiltraParametros("CvePS > 0").Copy + End If + + If Not TieneError Then + For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows + If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, + dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero), dr("Descuento").ToString.ToDouble, + IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then + TieneError = True + Exit For + Else + FueModificada = True + + 'PARA PREPOLIZA DE AJUSTE ALMACEN POR ADELANTADO + Dim DrInvOCDiferencias As DataRow + For Each DrInv As DataRow In DtInvOC.FiltraParametros($"CveOrdenCompraDetalle = {dr("CveOrdenCompraDetalle").ToString.ToEntero} AND CveCompraDetalle < 1").Rows + DrInvOCDiferencias = DtInvOCDiferencias.NewRow + DrInvOCDiferencias("TipoCambioAjuste") = DrInv("TipoCambioAjuste").ToString.ToDouble + DrInvOCDiferencias("Diferencia") = ((dr("Importe").ToString.ToDouble * DrInv("TipoCambioAjuste").ToString.ToDouble) - DrInv("PU").ToString.ToDouble) * DrInv("Cantidad").ToString.ToDouble + DrInvOCDiferencias("CveAlmacen") = DrInv("CveAlmacen").ToString.ToEntero + DrInvOCDiferencias("CveOrdenCompraDetalle") = DrInv("CveOrdenCompraDetalle").ToString.ToEntero + DrInvOCDiferencias("ImporteMovto") = dr("Importe").ToString.ToDouble * DrInv("TipoCambioAjuste").ToString.ToDouble + DrInvOCDiferencias("ImporteMovtoDLLS") = If(DrInv("TipoCambioAjuste").ToString.ToDouble > 1, dr("Importe").ToString.ToDouble, -1) + DrInvOCDiferencias("CveMovimiento") = DrInv("CveMovimiento").ToString.ToEntero + DrInvOCDiferencias("ConceptoSalida") = DrInv("ConceptoSalida").ToString.ToEntero + DrInvOCDiferencias("PS") = dr("PS").ToString + DtInvOCDiferencias.Rows.Add(DrInvOCDiferencias) + Next + + End If + Next + End If + + 'PREPOLIZA DE AJUSTE ALMACEN POR ADELANTADO + If Not TieneError Then + If DtInvOCDiferencias.Rows.Count > 0 And TipoOC = "OC" Then + + 'VARIABLES + Dim DiferenciaInvOC = 0.0D + Dim CveMovimientoAlmacen = -1 + Dim CveOCDetalle = -1 + Dim CveAlmacen = -1 + Dim IdCtaContableAlmacen As Integer = -1 + Dim CveCuentaAlmacen As Integer = -1 + Dim IdCtaContableRecepcionOC = -1 + Dim IdCtaContableRecepcionOCME = -1 + Dim IdCtaContableRecepcionOCComplementaria = -1 + Dim IdCtaContableRecepcionOCER = -1 + Dim IdCtaContableRecepcionOCERME = -1 + Dim IdCtaContableRecepcionOCERComplementaria = -1 + Dim Fecha As Date = Now + Dim CveProveedorInvOC As Integer = -1 + Dim ProveedorNombre As String = "" + Dim SerieFolio As String = "" + Dim CvePrePoliza As Integer = -1 + Dim ConceptoSalida = -1 + Dim TCInvOC = 0.0D + Dim ImporteME = 0.0D + Dim ImporteMEComp = 0.0D + Dim SumatoriaMN = 0.0D + Dim SumatoriaME = 0.0D + Dim SumatoriaMEComp = 0.0D + Dim PS As String = "" + + If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableRecepcionOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero + End If + + If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableRecepcionOCME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero + End If + + If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableRecepcionOCComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero + End If + + If ObjConta.GetRetCuenta(177, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableRecepcionOCER = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero + End If + + If ObjConta.GetRetCuenta(232, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableRecepcionOCERME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero + End If + + If ObjConta.GetRetCuenta(233, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableRecepcionOCERComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero + End If + + If Not TieneError Then + Fecha = Now + CveProveedor = DdlProveedores.SelectedValue.ToEntero + ProveedorNombre = DdlProveedores.SelectedItem.Text + SerieFolio = $"OC: {Folio}" + + If DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1) AND Diferencia <> 0 ").Rows.Count > 0 Then + + CvePrePoliza = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, DiferenciaInvOC, DiferenciaInvOC, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + 'AJUSTES EN PREPOLIZA - SALIDA CONTABLE (CON SALIDA DE VENTA O SIN SALIDA) + For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1)").Rows + CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero + CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero + CveOCDetalle = DrDiferencias("CveOrdenCompraDetalle").ToString.ToEntero + ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero + PS = DrDiferencias("PS").ToString + + DiferenciaInvOC = DrDiferencias("Diferencia").ToString.ToDecimal ' DtInvOCDiferencias.SUMD("Diferencia", $"CveAlmacen = {CveAlmacen} AND CveMovimiento = {CveMovimientoAlmacen} AND ConceptoSalida = {ConceptoSalida}") + TCInvOC = DrDiferencias("TipoCambioAjuste").ToString.ToDecimal ' DtInvOCDiferencias.FiltroPrimeroValor("TipoCambioAjuste", $"CveAlmacen = {CveAlmacen} AND CveMovimiento = {CveMovimientoAlmacen} AND ConceptoSalida = {ConceptoSalida}").ToDecimal + IdCtaContableAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero + CveCuentaAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero + + If DiferenciaInvOC.RoundSQL() <> 0 Then + + If CvePrePoliza > 0 Then + + If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then + ImporteME = (DiferenciaInvOC / TCInvOC).RoundSQL() + ImporteMEComp = (DiferenciaInvOC - ImporteME).RoundSQL() + + 'COMPLEMENTARIA + 'If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteME, SerieFolio, 232, SerieFolio, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCERME), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, CveCuenta:=CveCuentaAlmacen, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMEComp, SerieFolio, 233, SerieFolio, Fecha, IdCtaContableRecepcionOCERComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + ' TieneError = True + ' Exit For + ' End If + 'Else + ' TieneError = True + ' Exit For + 'End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, 177, SerieFolio, Fecha, IdCtaContableRecepcionOCER, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveOCDetalle:=CveOCDetalle) Then + TieneError = True + Exit For + End If + + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, SerieFolio, 228, SerieFolio, Fecha, IdCtaContableRecepcionOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, SerieFolio, 229, SerieFolio, Fecha, IdCtaContableRecepcionOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + TieneError = True + Exit For + End If + Else + TieneError = True + Exit For + End If + Else + '2018.11.24 se cambia concepto 176, de cargo a abono negativo., petición MALL + '2019.03.26 se cambia concepto 177, de abono a cargo., petición MALL + '2019.04.10 se cambia concepto 177, de cargo a abono., petición MALL + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, If(ConceptoSalida = 0, 177, 177), SerieFolio, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCER), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveCuenta:=CveCuentaAlmacen, CveOCDetalle:=CveOCDetalle) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaInvOC, SerieFolio, 176, SerieFolio, Fecha, IdCtaContableRecepcionOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=DiferenciaInvOC, CveOCDetalle:=CveOCDetalle) Then + TieneError = True + Exit For + End If + Else + TieneError = True + Exit For + End If + End If + If Not TieneError Then + + If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then + TieneError = True + End If + End If + + End If + End If + Next + End If + + 'AJUSTES EN INVENTARIO + For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,2)", "", {"CveAlmacen", "ConceptoSalida", "CveMovimiento"}).Rows + CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero + CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero + ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero + + DiferenciaInvOC = DtInvOCDiferencias.SUMD("Diferencia", $"CveAlmacen = {CveAlmacen} And CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = {ConceptoSalida}") + TCInvOC = DtInvOCDiferencias.FiltroPrimeroValor("TipoCambioAjuste", $"CveAlmacen = {CveAlmacen} And CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = {ConceptoSalida}").ToDecimal + IdCtaContableAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero + CveCuentaAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero + + 'MODIFICACIÓN CONCEPTO + If ConceptoSalida = 0 Then + For Each DrAjuste As DataRow In DtInvOC.FiltraParametros($"CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = 0").Rows + If Not ObjInventarios.UpdateMovimientoDetalle(DrAjuste("Cantidad").ToString.ToDouble, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("CvePS").ToString.ToEntero, DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovto", $"CveOrdenCompraDetalle = {DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble, -1, DrAjuste("CveMovimientoDetalle").ToString.ToEntero, PUTC:=DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovtoDLLS", $"CveOrdenCompraDetalle = {DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble) Then + TieneError = True + Exit For + End If + Next + End If + + 'SALIDA ADMINISTRATIVA (CON SALIDA POR TRASPASO) -AJUSTE + If ConceptoSalida = 2 Then + Dim CveMovimientoSalidaAjuste = ObjInventarios.AddMovimiento(CveAlmacen, 3, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, MovimientoFijo:=True) + For Each DrAjuste As DataRow In DtInvOC.FiltraParametros($"CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = 2").Rows + If Not ObjInventarios.AddMovimientoDetalle(CveMovimientoSalidaAjuste, DrAjuste("Cantidad").ToString.ToDouble, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("PU").ToString.ToDouble, -1, CveOrdenCompraDetalle:=DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero) Then + TieneError = True + Exit For + End If + Next + Dim CveMovimientoEntradaAjuste = ObjInventarios.AddMovimiento(CveAlmacen, 2, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1) + If ObjInventarios.GetMovimientosDetalle(CveMovimientoSalidaAjuste, UsuarioActual.CveEmpresa) Then + For Each Dr As DataRow In ObjInventarios.DtResultados.Rows + If Not ObjInventarios.AddMovimientoDetalle(CveMovimientoEntradaAjuste, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovto", $"CveOrdenCompraDetalle = {Dr("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then + TieneError = True + Exit For + End If + Next + If TieneError Then + Exit For + End If + Else + TieneError = True + Exit For + End If + End If + Next + + End If + End If + End If + + End If + + 'elimino los detalles + If Not TieneError Then + For Each i As Integer In DrEliminados + If Not OC.RemoveOrdenCompraDetalle(i, UsuarioActual.CveUsuario) Then + TieneError = True + Exit For + Else + FueModificada = True + End If + Next + End If + + 'Actualizo el estatus + If Not TieneError Then + If CboE.SelectedValue.ToEntero <> CveEstatus Then + If Not OC.UpdateOrdenCompraEstatus(CboE.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then + TieneError = True + End If + End If + End If + + 'SI requiere Cotizacion y el estatus a el que se actualizo es el FinalOK, generar las ordenes de compra + If Not TieneError Then + If TipoOC.ToUpper = "REQ" And CveEstatusFinalOK = CboE.SelectedValue.ToEntero Then + + If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + If CveConfianzaProveedor > 0 Then + + If CveConfianzaProveedor = 1 AndAlso Me.NumCotizaciones >= 1 Then + TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) + ElseIf CveConfianzaProveedor = 2 AndAlso Me.NumCotizaciones >= 2 Then + TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) + Else + TieneError = True + End If + + Else + TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) + End If + Else + TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) + End If + + End If + End If + + 'Si NO requiere cotizacion y el estatus que estamos guardando es el ultimo Generar una orden de compra a partir de una requisicion + If TipoOC = "REQ" And ChkCotizacion.Checked = False And CveEstatusSiguiente = CboE.SelectedValue.ToEntero And CveEstatusSiguiente = CveEstatusFinalOK Then + End If + + + + 'COMMIT + If Not TieneError Then + OC.Commit() + If Conta IsNot Nothing Then Conta.Commit() + + If LigaOCs = "" Then + Alert(String.Format("La {0} se guardó correctamente", TipoLargo), TipoMensaje.MsgInformacion) + Else + Dim ImprimirOC = "" + Dim Msg As New StringBuilder + + If CveOCGeneradas.Count = 1 Then + ImprimirOC = String.Format("
    Imprimir Orden de Compra ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOCGeneradas(0)))) + Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente

    Se Generó la Orden de Compra {2} - {3}", TipoLargo, Folio, LigaOCs, ImprimirOC) + Else + Msg.AppendFormat("La {0} No. {1}. Ha sido guardada correctamente

    Se Generaron las siguientes Ordenes de Compra {2}", TipoLargo, Folio, LigaOCs) + End If + + 'IMPRIME LIGA A POLIZAS + If IDPolizasGeneradas.Count > 0 Then + Msg.Append("

    Polizas generadas:") + For i = 0 To IDPolizasGeneradas.Count - 1 + Msg.AppendFormat("
    Poliza: {1}", IDPolizasGeneradas(i), FoliosPolizas(i)) + Next + End If + + Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""") + End If + + DrEliminados.Clear() + Else + OC.RollBack() + If Conta IsNot Nothing Then Conta.RollBack() + Alert(MsgError, TipoMensaje.MsgError) + End If + + End If + + + + 'TERMINA TODO POR SI OCURRIÓ ALGO RARO + If TieneError Then + If OC IsNot Nothing Then OC.RollBack() + If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then + If Conta IsNot Nothing Then Conta.RollBack() + End If + If OC IsNot Nothing Then OC.Dispose() + If Conta IsNot Nothing Then Conta.Dispose() + Else + 'TERMINA TODO POR SI OCURRIÓ ALGO RARO + If OC IsNot Nothing Then OC.Dispose() + If Conta IsNot Nothing Then Conta.Dispose() + + 'MANDA CORREOS SI EL ESTATUS ES MAYOR A 0 + If CboE.SelectedValue.ToEntero > 0 Then + Notificaciones() + End If + + 'LIMPIA VALORES GENERALES + VerificaPresupuesto = False + + 'RECARGA OC CUANDO SE ACTUALIZA PARA TRAERSE LOS DATOS DE DB + If Not EsNuevo Then + CargaDatos(CveOrdenCompra) + End If + End If + + + End Sub + Protected Function GeneraOrdenes(ByRef objOrdenCompra As ClsOC, Conta As ClsContPAQi, ByRef ObjInventarios As ClsInventarios) As Boolean + If TipoOS Then Return False + + Dim CveCotizacion As Integer = 0 + Dim CveColectiva As Integer = 0 + Dim HuboError As Boolean = False + Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal) + + Dim LigaOcsTemp = "" + Dim CveOCGeneradasTemp = New List(Of Integer) + Dim FolioOCGeneradasTemp = New List(Of Integer) + + + Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim) + LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, "")) + Dim Promocion = "-1" + Promocion = TxtPromocion.Text.Trim + + Try + If ChkCotizacion.Checked Then + Dim CveProveedor = -1 + Dim TotalCot = 0.0, IVACot = 0D, RetIVA = 0.0, RetISR = 0.0, PorIVA = 0.0, Porcentaje = 0.0 + Dim IdPoliza = -1 + + + For Each dr As DataRow In DtDetalle.FiltraParametros("", "CveProveedor").Rows + + 'SI ES DIFERENTE PROVEEDOR AGREGA UNA OC + If CveProveedor <> dr("CveProveedor").ToString.ToEntero Then + + CveProveedor = dr("CveProveedor").ToString.ToEntero + + Porcentaje = DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) / DtDetalle.SUM("Total") + PorIVA = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Rows(0)("IVA").ToString.ToDouble + IVACot = (DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) * PorIVA).ToString.ToDecimal + RetIVA = TxtRetIVA.Text.ToDecimal * Porcentaje + RetISR = TxtRetISR.Text.ToDecimal * Porcentaje + + If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, + CveUsuario, CveEmpresaActual, 0, pCveProveedor:=CveProveedor, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, + PorcentajeIVA:=PorIVA, IVA:=IVACot, RetIVA:=RetIVA.ToString.ToDecimal, RetISR:=RetISR.ToString.ToDecimal, IDPoliza:=IdPoliza, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, + EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, + CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=LtImporteIEAnticipo.Text.ToDouble, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero) Then + + 'CREA POLIZA POR CADA PROVEEDOR + + If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto AndAlso objOrdenCompra.Folio > 0 Then + IdPoliza = GuardaAC(Conta, objOrdenCompra, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio, CveProveedor) + If IdPoliza <= 0 Then + HuboError = True + Exit For + End If + End If + + '17/04/2018 - Se cambia por nuevo esquema de paqueterias guias. + 'ENTREGA FORANEOS + 'If ChkEntregaDirecta.Checked Then + ' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, objOrdenCompra.CveOrdenCompra) Then + ' HuboError = True + ' End If + 'End If + + If Not HuboError Then + LigaOcsTemp = String.Format("{0}
    {2}", LigaOcsTemp, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) + CveOCGeneradasTemp.Add(objOrdenCompra.CveOrdenCompra) + FolioOCGeneradasTemp.Add(objOrdenCompra.Folio) + End If + + + Else + HuboError = True + Exit For + End If + End If + + 'AGREGA DETALLES + If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + HuboError = True + Exit For + End If + + Next + + 'SI NO HUBO ERROR AGREGA LAS LIGAS OC DE TODAS LAS OC GENERADAS + If Not HuboError Then + ViewState("LigaOCs") = String.Format("{0}{1}", LigaOCs, LigaOcsTemp) + Dim Index = 0 + For Each CveOC As Integer In CveOCGeneradasTemp + CveOCGeneradas.Add(CveOC) + FolioOCGeneradas.Add(FolioOCGeneradasTemp(Index)) + Index += 1 + Next + End If + + + Else + If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, + CveUsuario, CveEmpresaActual, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, + PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, + EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=LtImporteIEAnticipo.Text.ToDouble, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, + Promocion:=Promocion) Then + + + 'USA AC + If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA + ' SI NO TIENE COTIZACION SE GENERA 1 POLIZA + If Not ChkCotizacion.Checked Then + If GuardaAC(Conta, objOrdenCompra, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) <= 0 Then + HuboError = True + End If + End If + End If + 'TERMINA: USA AC + + 'CveOrdenCompra = objOrdenCompra.CveOrdenCompra + If Not HuboError Then + For Each dr As DataRow In DtDetalle.Rows + If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + HuboError = True + Exit For + End If + Next + End If + + '17/04/2018 - Se cambia por nuevo esquema de paqueterias guias. + 'ENTREGA FORANEOS + 'If ChkEntregaDirecta.Checked Then + ' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, objOrdenCompra.CveOrdenCompra) Then + ' HuboError = True + ' End If + 'End If + + + If HuboError = False Then + ViewState("LigaOCs") = String.Format("{0}
    {2}", LigaOCs, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) + CveOCGeneradas.Add(objOrdenCompra.CveOrdenCompra) + FolioOCGeneradas.Add(objOrdenCompra.Folio) + End If + Else + HuboError = True + End If + + End If + + Catch ex As Exception + HuboError = True + End Try + + Return HuboError + End Function + Private Function GuardaAC(Conta As ClsContPAQi, OC As ClsOC, CveOC As Integer, FolioOC As Integer, Optional CveProveedor As Integer = -1) As Integer + Dim TieneError = False + Dim IDPoliza = -1 + Dim Folio = -1 + + + 'SI TIENE POLIZA ANTERIOR LA ELIMINA + If IDPolizaPresupuestal > 0 Then + If Not Conta.RemoveAllMovimientos(IDPolizaPresupuestal) Then + TieneError = True + End If + End If + + 'INGRESA POLIZA + If Not TieneError Then + Dim ConceptoRenglon As String = String.Format("GC - OC {0}. {1}", FolioOC, TxtDescrip.Text) + Dim Total As Decimal = LblTotal.Text.ToDecimal + Dim Fecha As Date = TxtFecha.Text.ToDate + + If Total > 0 Then + Total = Math.Round(Total, 2) + + 'INGRESA POLIZA SOLO CUANDO NO EXISTE YA UNA + If IDPolizaPresupuestal > 0 Then + IDPoliza = IDPolizaPresupuestal + Else + IDPoliza = Conta.AddPoliza(4, If(ConceptoRenglon.Length > 100, ConceptoRenglon.Substring(0, 99), ConceptoRenglon), 0, 0, UsuarioActual.CveUsuario, Fecha) + Folio = Conta.Folio + End If + End If + + If IDPoliza > 0 Then + + Dim DtPresupuestosTemp As DataTable + Dim IdCuentaComprometido, IdCuentaPorEjercer As Integer + + 'SI VIENE CON PROVEEDOR FILTRA SOLO LOS CONCEPTOS DEL PROVEEDOR + Dim DT = If(CveProveedor = -1, DtDetalle.Copy, DtDetalle.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Copy) + + Dim Presup = From gvr As DataRow In DT.Rows.Cast(Of DataRow)() + Group gvr By Grp = New With { + Key .CvePresupuestoEgreso = gvr("CvePresupuestoEgreso").ToString.ToEntero + } Into Group + Select Grp.CvePresupuestoEgreso, + TotalImporte = Group.Sum(Function(r) r("Total").ToString.ToDecimal) + + Dim tTotalIVA, tTotalGral, tIVA, tDiferenciaIVA, Importe, TotalDetalle As Decimal + Dim tPorIVA = 0D, tAjusteTotal = 0D, ipresup = 0 + + If CveProveedor > 0 Then + 'CUANDO VIENE DE COTIZACION + tTotalIVA = (DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) * tPorIVA).ToString.ToDecimal + tPorIVA = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Rows(0)("IVA").ToString.ToDecimal + tTotalGral = DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)).ToString.ToDecimal + Else + 'CUANDO NO VIENE DE COTIZACION + If TxtIVA.Visible Then + tTotalIVA = TxtIVA.Text.ToDecimal + Else + tTotalIVA = LblIVA.Text.ToDecimal + End If + + tTotalGral = LblTotal.Text.ToDecimal + tPorIVA = tTotalIVA / (tTotalGral - tTotalIVA) + End If + + tDiferenciaIVA = tTotalIVA + + For Each grp In Presup + Importe = grp.TotalImporte + TotalDetalle += Importe + ipresup += 1 + If Importe > 0 Then + + 'saco la proporcion de iva que le corresponde + tIVA = Math.Round(Importe * tPorIVA, 2) + + 'le sumo el iva al concepto + Importe += tIVA + + 'Presupuesto Egresos + DtPresupuestosTemp = DtPresupuestos.FiltraParametros(String.Format("CvePresupuestoEgreso = {0}", grp.CvePresupuestoEgreso)) + If DtPresupuestosTemp.Rows.Count <> 1 Then + TieneError = True : Exit For + End If + IdCuentaComprometido = DtPresupuestosTemp.Rows(0)("IdCuentaComprometido").ToString.ToEntero + IdCuentaPorEjercer = DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero + + If Conta.AddMovimiento(IDPoliza, IdCuentaComprometido, False, Importe, "", ConceptoRenglon, 0, Fecha, "") Then + If Not Conta.AddMovimiento(IDPoliza, IdCuentaPorEjercer, True, Importe, "", ConceptoRenglon, 0, Fecha, "") Then + TieneError = True : Exit For + End If + Else + TieneError = True : Exit For + End If + + End If + Next + + If Not TieneError Then + If Not OC.UpdateOrdenCompraPoliza(IDPoliza, CveOC) Then + TieneError = True + End If + End If + + If Not TieneError Then + If Not Conta.AjustaPoliza(IDPoliza) Then + TieneError = True + End If + End If + + ElseIf Total > 0 Then + TieneError = True + End If + End If + + If TieneError Then + IDPoliza = -1 + Else + 'GUARDA ID Y FOLIO PARA MOSTRAR LIGA A POLIZA EN ALERT + IDPolizasGeneradas.Add(IDPoliza) + FoliosPolizas.Add(Folio) + End If + + Return IDPoliza + End Function + +#End Region + +#Region " CANCELAR OC " + Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click + Dim ObjEventos As New ClsOIEventos + + If CveEstatusFinalError > 0 Then + Dim objOrdenCompra As New ClsOC + objOrdenCompra.IniciaTransacSQL() + Dim TieneError = False + + 'AC + Dim ObjAC As ClsContPAQi = Nothing + Dim PolizaCancelacion = -1 + If UsuarioActual.Empresa.UsaAC Then + ObjAC = New ClsContPAQi(UsuarioActual.Empresa) + ObjAC.IniciaTransacSQL() + End If + + + If Not objOrdenCompra.UpdateOrdenCompraEstatus(CveEstatusFinalError, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then + TieneError = True + End If + + If IDPolizaPresupuestal > 0 AndAlso UsuarioActual.Empresa.UsaAC Then + PolizaCancelacion = CancelarAC(ObjAC) + + If PolizaCancelacion = -1 Then + TieneError = True + End If + End If + + If Not TieneError Then + objOrdenCompra.Commit() + If ObjAC IsNot Nothing Then ObjAC.Commit() + + Dim Msg As New StringBuilder + Msg.AppendFormat("La {0} {1}", TipoLargo, If(IDPolizaPresupuestal > 0, "y su poliza asociada fueron cancelados correctamente", "fue cancelada correctamente")) + + 'POLIZA CANCELACION AC -- CUANDO SE GENERO UNA POLIZA NUEVA (NEGATIVA) + If PolizaCancelacion > 0 Then + Msg.AppendFormat("

    Ver Póliza de cancelación", PolizaCancelacion) + + If Not ObjEventos.AddEventoBitacora(String.Format("Folio de Cancelación: {1}", PolizaCancelacion, Folio), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then + TieneError = True + End If + End If + + Alert(Msg.ToString, TipoMensaje.MsgInformacion) + RegistraScript("$('#DivCancelarCompra').modal('hide');") + + EnviarCorreoCambioEstatus(CboE.SelectedValue.ToEntero, CboE.SelectedItem.Text) + EnviaCorreoSolicitudAnticipoCancelado() + CargaHistorial() + CargaDatos(CveOrdenCompra) + Else + Alert(String.Format("Ocurrió un error al cancelar la {0}. Por favor vuelva a intentar.", TipoLargo)) + objOrdenCompra.RollBack() + If ObjAC IsNot Nothing Then ObjAC.RollBack() + End If + + objOrdenCompra.Dispose() + If ObjAC IsNot Nothing Then ObjAC.Dispose() + Else + Alert("No tiene configurado un Estatus de Cancelación", TipoMensaje.MsgAdvertencia) + End If + End Sub + + Private Function CancelarAC(ObjAC As ClsContPAQi) As Integer + ' = 0: OK, NO OCUPO POLIZA DE CANCELACION + ' > 0: GENERO POLIZA DE CANCELACION + ' < 0: ERROR + + Dim ErrorCancelar = False + Dim IdPolizaNueva = 0 + + If IDPolizaPresupuestal > 0 Then + Dim dt As DataTable + If ObjAC.GetPoliza(IDPolizaPresupuestal, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then + dt = ObjAC.DtResultados + + If dt.Rows(0)("FechaPol").ToString.ToDate.Month < TxtFechaCancelacion.Text.ToDate.Month Or dt.Rows(0)("FechaPol").ToString.ToDate.Year < TxtFechaCancelacion.Text.ToDate.Year Then + ' MES ANTERIOR, MOVIMIENTOS CONTRARIOS (NEGATIVOS) + + 'CREA POLIZA NEGATIVA + IdPolizaNueva = ObjAC.AddPoliza(dt.Rows(0)("CodigoTipoPoliza").ToString.ToEntero, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), 0, 0, UsuarioActual.CveUsuario, Now) + + If IdPolizaNueva > 0 Then + 'DETALLES POLIZA NEGATIVA + For Each dr As DataRow In dt.Rows + If Not ObjAC.AddMovimiento(IdPolizaNueva, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "True", dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), dr("IdSegNeg").ToString.ToEntero, Now, "") Then + ErrorCancelar = True : Exit For + End If + Next + + 'AJUSTA POLIZA + If Not ErrorCancelar Then + If Not ObjAC.AjustaPoliza(IdPolizaNueva) Then + ErrorCancelar = True + End If + End If + + Else + ErrorCancelar = True + End If + + Else + ' MES ACTUAL, LIMPIA POLIZA PONIENDO IMPORTE EN CEROS + For Each dr As DataRow In dt.Rows + If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then + ErrorCancelar = True : Exit For + End If + Next + + 'AJUSTA POLIZA + If Not ErrorCancelar Then + If Not ObjAC.AjustaPoliza(IDPolizaPresupuestal) Then + ErrorCancelar = True + End If + End If + + End If + + End If + End If + + If ErrorCancelar Then + IdPolizaNueva = -1 + End If + + Return IdPolizaNueva + End Function +#End Region + +#Region " GVD " + Protected Sub CargaDatosDetalles() + GvD.DataSource = DtDetalle + GvD.DataBind() + + TxtGrid.Text = If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.Rows.Count.ToString, "") + + CalculaGenerales() + + UPPDetalle.Update() + CompruebaAgregar() + CargaSuperior() + End Sub + Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + + If Not (e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5) Then + + If e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate Then + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + e.Row.FCLiteral("LtlSubProyecto").Text = e.Row.DBCampo("SubProyecto") + End If + End If + + e.Row.Cells(0).ToolTip = e.Row.DBCampo("CvePresupuestoEgreso") + 'comente esta linea, RMF: 2015.04.20 + 'If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0}", e.Row.DBCampo("CveSubProyecto"))).Rows.Count = 0 Then e.Row.FCImageButton("ImgEdit").Visible = False : e.Row.FCImageButton("ImgDelete").Visible = False + + + If TipoOC = "OC" AndAlso Not IsDBNull(e.Row.DBCampo("CveOrdenCompraPadre")) AndAlso IsNumeric(e.Row.DBCampo("CveOrdenCompraPadre")) Then + GvD.Columns(10).Visible = True + lblTipoPadreHijo.Visible = True + e.Row.FCLiteral("LtlLiga").Text = String.Format("{1}", e.Row.DBCampo("CveOrdenCompraPadre"), e.Row.DBCampo("FolioOrdenCompraPadre")) + ElseIf TipoOC = "REQ" AndAlso Not IsDBNull(e.Row.DBCampo("CveOrdenCompraHija")) AndAlso IsNumeric(e.Row.DBCampo("CveOrdenCompraHija")) Then + GvD.Columns(10).Visible = True + lblTipoPadreHijo.Visible = True + e.Row.FCLiteral("LtlLiga").Text = String.Format("{1}", e.Row.DBCampo("CveOrdenCompraHija"), e.Row.DBCampo("FolioOrdenCompraHija")) + End If + + 'CveAFVinculado + e.Row.FCLiteral("LitMaq").Text = String.Format("{1}", e.Row.DBCampo("CveActivoFijo"), e.Row.DBCampo("CodigoAF")) + + + + + + 'CveCompraDetalle Vinculada + Dim ObjOC As New ClsOC + If ObjOC.GetOCVinculadasPendientes(e.Row.DBCampo("CveOrdenCompraDetalle").ToEntero) Then + If ObjOC.DtResultados.Rows.Count = 1 Then + e.Row.FCLiteral("LtlCompra").Text = String.Format("{1}", ObjOC.DtResultados.FiltroPrimeroValor("CveCompra"), e.Row.DBCampo("FolioCompra")) + LblCompra.Visible = True + GvD.Columns(11).Visible = True + ElseIf ObjOC.DtResultados.Rows.Count > 1 Then + LblCompra.Visible = True + e.Row.FCLiteral("LtlCompra").Visible = False + e.Row.FCLinkButton("LnkCompra").Visible = True + e.Row.FCLinkButton("LnkCompra").Enabled = True + 'e.Row.FCLinkButton("LnkCompra").CausesValidation = False + 'e.Row.FCLinkButton("LnkCompra").OnClientClick = "return true;" 'return true; + e.Row.FCLinkButton("LnkCompra").CommandArgument = e.Row.DBCampo("CveOrdenCompraDetalle") + GvD.Columns(11).Visible = True + Else + e.Row.FCLiteral("LtlCompra").Text = "" + LblCompra.Visible = True + End If + End If + ObjOC.Dispose() + + 'CargaPresupuestosEgresos + If UsuarioActual.Empresa.UsaAC Then + e.Row.FCDropDownList("DdlAC1").Visible = VerificaPresupuesto + e.Row.FCDropDownList("DdlAC1").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"}) + e.Row.FCDropDownList("DdlAC1").DataBind() + + e.Row.FCDropDownList("DdlAC2").Visible = VerificaPresupuesto + e.Row.FCDropDownList("DdlAC2").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"}) + e.Row.FCDropDownList("DdlAC2").DataBind() + + e.Row.FCDropDownList("DdlAC3").Visible = VerificaPresupuesto + e.Row.FCDropDownList("DdlAC3").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"}) + e.Row.FCDropDownList("DdlAC3").DataBind() + + e.Row.FCDropDownList("DdlAC4").Visible = VerificaPresupuesto + e.Row.FCDropDownList("DdlAC4").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"}) + e.Row.FCDropDownList("DdlAC4").DataBind() + + ' e.Row.FCLabel("LblClasificacion").Visible = False + e.Row.FCDropDownList("DdlAC5").Visible = VerificaPresupuesto + e.Row.FCDropDownList("DdlAC5").DataSource = DtPresupuestos.FiltraParametros("Not CodigoCOG Like '1%'", DistinctColumns:={"CveClasificacion", "CodigoClasificacion"}, Orderby:="CodigoClasificacion") + e.Row.FCDropDownList("DdlAC5").DataBind() + + If e.Row.DBCampo("CveProgramaOperativo").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC1").SelectedValue = e.Row.DBCampo("CveProgramaOperativo") + If e.Row.DBCampo("CveUnidadAdministrativa").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC2").SelectedValue = e.Row.DBCampo("CveUnidadAdministrativa") + If e.Row.DBCampo("CveFuenteFinanciamiento").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC3").SelectedValue = e.Row.DBCampo("CveFuenteFinanciamiento") + If e.Row.DBCampo("CveTipoGasto").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC4").SelectedValue = e.Row.DBCampo("CveTipoGasto") + If e.Row.DBCampo("CveClasificacionOG").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC5").SelectedValue = e.Row.DBCampo("CveClasificacionOG") + End If + + + + 'CLASIFICACION + If isWithFamily() Then + e.Row.FCLabel("LblClasificacion").Text = e.Row.DBCampo("SubFamilia") + Else + e.Row.FCLabel("LblClasificacion").Text = e.Row.DBCampo("Clasificacion") + End If + + Dim Drr As DataRow = Nothing + Drr = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus))(0) + If Drr IsNot Nothing AndAlso UsuarioActual.TienePermisoProceso(203) AndAlso Drr("TipoTermino").ToString.ToEntero = 3 AndAlso Drr("Tipo").ToString = "OC" Then + If e.Row.DataKey("CveCompra").ToEntero > 0 Then + If Not UsuarioActual.CveUsuario = 100 Then '[IPP] PARA PODER EDITAR + e.Row.FCLinkButton("imgE").Enabled = False + e.Row.FCLinkButton("imgE").ToolTip = "El concepto no se puede editar porque ya esta asignado a una compra" + e.Row.FCLinkButton("imgD").Enabled = False + e.Row.FCLinkButton("imgD").ToolTip = "El concepto no se puede eliminar porque ya esta asignado a una compra" + End If + End If + End If + + 'SI EL CONCEPTO YA TIENE ALGUNA RECEPCIÓN A ALMACÉN O VINCULACIÓN A COMPRA NO SE PUEDE ELIMINAR + If e.Row.DBCampo("CantidadNoEditable").ToDouble > 0 Then + e.Row.FCLinkButton("imgD").Enabled = False + e.Row.FCLinkButton("imgD").ToolTip = "El concepto no se puede eliminar porque ya esta asignado a una compra" + e.Row.FCLinkButton("imgD").Attributes.Remove("Data-toggle") + e.Row.FCLinkButton("imgD").Attributes.Add("Data-toggle", "tooltip") + End If + + End If + + + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCTextBox("TxtObsPS").Attributes.Add("maxlength", "750") + Dim FiltroClasificacion = "" + 'DDL CLASIFICACION + If isWithFamily() Then + e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTSubFamilias(CveEmpresaActual) 'GlobalDTClasificaciones(CveEmpresaActual).FiltraParametros("Codigo is null OR Codigo = ''") + e.Row.FCDropDownList("DdlClasificacion").DataBind() + e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveSubFamilia")) + FiltroClasificacion = String.Format("CveClasificacionCosto = {0}", e.Row.DBCampo("CveSubFamilia")) + Else + e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(CveEmpresaActual) + e.Row.FCDropDownList("DdlClasificacion").DataBind() + e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveClasificacion")) + FiltroClasificacion = String.Format("CveClasificacion = {0}", e.Row.DBCampo("CveClasificacion")) + End If + + 'DDL PS + If e.Row.DBCampo("CveClasificacion").ToString() <> "" Then + e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTPS(CveEmpresaActual).FiltraParametros(FiltroClasificacion, "PS") + Else + e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTPSSimplificado(CveEmpresaActual) + End If + e.Row.FCDropDownList("DdlPS").DataBind() + e.Row.FCDropDownList("DdlPS").SelectedValueExist(e.Row.DBCampo("CvePS")) + DdlPS_SelectedIndexChanged1(e.Row.FCDropDownList("DdlPS"), EventArgs.Empty) + + + Dim dr As DataRow = GlobalDTSubProyectos(-1, e.Row.DBCampo("CveSubProyecto").ToEntero, CveEmpresaActual).FiltroPrimero("") + If dr IsNot Nothing Then + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + e.Row.FCDropDownList("DdlProyectoEdit").Visible = False + Else + e.Row.FCDropDownList("DdlProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) + e.Row.FCDropDownList("DdlProyectoEdit").DataBind() + e.Row.FCDropDownList("DdlProyectoEdit").SelectedValue = dr("CveProyecto").ToString + End If + + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + Else + e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", dr("CveProyecto").ToString.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) ' 'GlobalDTSubProyectos(dr("CveProyecto").ToString.ToEntero) + End If + e.Row.FCDropDownList("DdlSubProyectoEdit").DataBind() + e.Row.FCDropDownList("DdlSubProyectoEdit").SelectedValue = e.Row.DBCampo("CveSubProyecto") + End If + + 'SI ES POR GENERAR CONTRATO + If e.Row.DBCampo("CveContratoDetalle").ToEntero > 0 Then + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + e.Row.FCDropDownList("DdlProyectoEdit").Visible = False + Else + e.Row.FCDropDownList("DdlProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa) + e.Row.FCDropDownList("DdlProyectoEdit").DataBind() + If e.Row.DBCampo("CveProyecto").ToEntero > 0 Then + e.Row.FCDropDownList("DdlProyectoEdit").SelectedValueExist(e.Row.DBCampo("CveProyecto").ToEntero) + End If + End If + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + Else + e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", e.Row.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) ' 'GlobalDTSubProyectos(dr("CveProyecto").ToString.ToEntero) + End If + e.Row.FCDropDownList("DdlSubProyectoEdit").DataBind() + If e.Row.DBCampo("CveSubProyecto").ToEntero > 0 Then + e.Row.FCDropDownList("DdlProyectoEdit").SelectedValueExist(e.Row.DBCampo("CveSubProyecto").ToEntero) + End If + End If + + e.Row.FCTextBox("LblEditCodigo").Attributes.Add("onkeyup", String.Format("EnterAFEdit(event,this,{0},{1});", e.Row.FCHiddenField("HdnCveActivoFijo").ClientID, e.Row.FCHiddenField("HdnCodigoAF").ClientID)) + e.Row.FCTextBox("LblEditCodigo").Attributes.Add("onblur", String.Format("AFBlurEdit(this,{0},{1});", e.Row.FCHiddenField("HdnCveActivoFijo").ClientID, e.Row.FCHiddenField("HdnCodigoAF").ClientID)) + e.Row.FCImage("ImgAF").Attributes.Add("onclick", String.Format("AbrirVentana('/AF/PopUpBuscarAF.aspx?OPCION=OCE&RI={0}',950,600,'N');", e.Row.RowIndex)) + + e.Row.FCTextBox("TxtDescuentoEdit").Attributes.Add("onkeyup", String.Format("FormatoMoneda(this);ValidaDescuentoDetalle(this,{0});", e.Row.FCTextBox("TxtImporteEdit").ClientID)) + e.Row.FCTextBox("TxtImporteEdit").Attributes.Add("onkeyup", String.Format("ValidaDescuentoDetalle({0},this);", e.Row.FCTextBox("TxtImporteEdit").ClientID)) + + e.Row.FCTextBox("TxtCantEdit").Attributes.Add("onblur", $"ValidarCantidadMenor(this,{e.Row.DBCampo("CantidadNoEditable").ToDouble});") + + End If + + + End If + End Sub + Protected Sub GvD_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvD.RowDeleting + + If GvD.Rows(e.RowIndex).DataKey("TipoDato").Contiene("1", "2") Then 'cuando viene de la bd o es editado, solo lo borraré + DrEliminados.Add(GvD.Rows(e.RowIndex).DataKey("CveOrdenCompraDetalle").ToString.ToEntero) + End If + + Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & GvD.Rows(e.RowIndex).DataKey("CveOrdenCompraDetalle").ToString.ToEntero) + + ' If UsuarioActual.Empresa.UsaAC Then UpdateAC(dr(0).Item("CvePresupuestoEgreso").ToString.ToEntero, dr(0).Item("Total").ToString.ToEntero, True) + + dr(0).Delete() + DtDetalle.AcceptChanges() + + CargaDatosDetalles() + + + End Sub + Protected Sub GvD_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvD.RowEditing + GvD.EditIndex = e.NewEditIndex + CargaDatosDetalles() + Dim EditingRow As GridViewRow = GvD.Rows(e.NewEditIndex) + If Not EsCreaApartirDe Then + If EditingRow.DataKey("TipoDato").ToEntero = 2 Then + EditingRow.FCDropDownList("DdlClasificacion").Enabled = False + EditingRow.FCDropDownList("DdlPS").Enabled = False + EditingRow.FCDropDownList("CboUnidadMedidaEdit").Enabled = False + EditingRow.FCDropDownList("DdlProyectoEdit").Enabled = False + EditingRow.FCDropDownList("DdlSubProyectoEdit").Enabled = False + EditingRow.FCTextBox("LblEditCodigo").Enabled = False + End If + End If + + End Sub + Protected Sub GvD_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvD.RowUpdating + Dim Cantidad, Importe, Descuento As Double + Dim CveUnidad, CveClasificacion, CveActivoFijo, CvePS, CveSubProyecto, CveProyecto As Integer + Dim Obs, UM, Clasificacion, Codigo, PS, SubProyecto, Proyecto As String + + Dim gvr As GridViewRow = GvD.Rows(e.RowIndex) + Cantidad = gvr.FCTextBox("TxtCantEdit").Text.Trim.ToDouble + Importe = gvr.FCTextBox("TxtImporteEdit").Text.Trim.ToDouble + Descuento = gvr.FCTextBox("TxtDescuentoEdit").Text.Trim.ToDouble + Obs = gvr.FCTextBox("TxtObsPS").Text.Trim + CveUnidad = gvr.FCDropDownList("CboUnidadMedidaEdit").SelectedValue.ToEntero + UM = gvr.FCDropDownList("CboUnidadMedidaEdit").SelectedItem.Text + CveClasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedValue.ToEntero + Clasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedItem.Text + + 'SE TOMAN VALORES EN CASO DE QUE LA CvePS SEA DIFERENTE DE LA ANTERIOR + Dim CvePSAnterior = gvr.DataKey("CvePS").ToEntero + PS = gvr.DataKey("PS").ToString + Dim RetISR = gvr.DataKey("RetISRPorcentaje").ToDouble + Dim RetIVA = gvr.DataKey("RetIVAPorcentaje").ToDouble + 'Dim IvaPS = gvr.DataKey("IVAPorcentaje").ToDouble + Dim IEPSPS = gvr.DataKey("IEPSPSPorcentaje").ToDouble + Dim IEPSPSIVA = gvr.DataKey("IEPSPSIVAPorcentaje").ToDouble + Dim Total = Importe * Cantidad - Descuento + + + 'VALORES DEL PS + CvePS = gvr.FCDropDownList("DdlPS").SelectedValue.ToEntero + + PS = gvr.FCDropDownList("DdlPS").SelectedItem.Text + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") + If DrPS Is Nothing Then + Alert("Ocurrió un error al cargar la información del producto para actualizar. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Dim IvaPS = DrPS("IVA").ToString.ToDouble + + If CvePS <> CvePSAnterior Or Not CveOrdenCompra > 0 Then + RetISR = DrPS("RetISR").ToString.ToDouble + RetIVA = DrPS("RetIVA").ToString.ToDouble + 'If IvaPS = -1 Then 'IVA DE LA SUCURSAL + ' IvaPS = GlobalDTSubProyectos(-1, gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble + 'End If + IEPSPS = DrPS("IEPSPorcentaje").ToString.ToDouble + IEPSPSIVA = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) + End If + + + + CveSubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero + SubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedItem.Text + + If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + CveProyecto = -1 + Proyecto = "Seleccione" + Else + CveProyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero + Proyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedItem.Text + End If + + If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + Dim ObjCon As New ClsContratos + Dim CvePresupuesto As Integer = 0 + Dim Autorizado As Double = 0 + Dim Ejercido As Double = 0 + If ObjCon.GetPresupuestos(-1, "-1", CveSubProyecto, 2, -1, UsuarioActual.CveEmpresa) Then + If ObjCon.DtResultados.Rows.Count > 0 Then + CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero + If CvePresupuesto > 0 Then + If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then + If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} AND Importe > 0").Rows.Count > 0 Then + Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble + End If + End If + If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{DateTime.Now.Year - 1}".ToDate, Now, UsuarioActual.CveEmpresa, CveProyecto, + CveSubProyecto, UsuarioActual.CveUsuario, CveClasificacion) Then + If ObjCon.DtResultados.Rows.Count > 0 Then + Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble + End If + End If + End If + End If + End If + ObjCon.Dispose() + + If CvePresupuesto > 0 And Autorizado > 0 Then + Dim Diferencia As Double = (Ejercido + Total) - Autorizado + If Diferencia > 0 Then + Alert($"No hay presupuesto disponible en el subproyecto {SubProyecto} y la clasificación {Clasificacion} se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + End If + + + + + 'Agarra el nuevo AF si se modifico o deja el pasado + CveActivoFijo = If(gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero > 0, gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero, HdnEditCveActivoFijo.Value.ToEntero) + Codigo = If(gvr.FCHiddenField("HdnCodigoAF").Value <> "-1", gvr.FCHiddenField("HdnCodigoAF").Value, HdnEditCodigo.Value) + + HdnEditCveActivoFijo.Value = "" + HdnEditCodigo.Value = "" + + Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero) + + dr(0)("Cantidad") = Cantidad + dr(0)("CveUnidadMedida") = CveUnidad + dr(0)("UM") = UM + dr(0)("CveClasificacion") = CveClasificacion + dr(0)("Clasificacion") = Clasificacion + + If isWithFamily() Then + dr(0)("CveSubFamilia") = CveClasificacion + dr(0)("SubFamilia") = Clasificacion + End If + + dr(0)("CvePS") = CvePS + dr(0)("PS") = PS + dr(0)("Observacion") = Obs + + dr(0)("CveSubProyecto") = CveSubProyecto + dr(0)("SubProyecto") = SubProyecto + dr(0)("CveProyecto") = CveProyecto + dr(0)("Proyecto") = Proyecto + dr(0)("Importe") = Importe + dr(0)("Descuento") = Descuento + dr(0)("Total") = Total + 'If DdlIVA.SelectedValue.ToDouble = 1 Then dr(0)("IVA") = 0 Else dr(0)("IVA") = IvaPS * Total + dr(0)("IVAPorcentaje") = If(IvaPS = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), 0) + dr(0)("IVA") = dr(0)("IVAPorcentaje").ToString.ToDouble * Total + dr(0)("RetIVA") = RetIVA * Total + dr(0)("RetIVAPorcentaje") = RetIVA + dr(0)("RetISR") = RetISR * Total + dr(0)("RetISRPorcentaje") = RetISR + dr(0)("IEPSPS") = IEPSPS * Total + dr(0)("IEPSPSPorcentaje") = IEPSPS + dr(0)("IEPSPSIVA") = IEPSPSIVA * Total + dr(0)("IEPSPSIVAPorcentaje") = IEPSPSIVA + + dr(0)("CveActivoFijo") = CveActivoFijo + dr(0)("CodigoAF") = Codigo + + 'si el tipodato viene de la BD, entonces sufrió una actualización + If dr(0)("TipoDato").ToString.ToEntero = 2 Then dr(0)("TipoDato") = 1 + DtDetalle.AcceptChanges() + GvD.EditIndex = -1 + + CargaDatosDetalles() + + ' If UsuarioActual.Empresa.UsaAC Then UpdateAC(dr(0).Item("CvePresupuestoEgreso").ToString.ToEntero, totalanterior - dr(0).Item("Total").ToString.ToEntero, True) + End Sub + Protected Sub GvD_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvD.RowCancelingEdit + GvD.EditIndex = -1 + CargaDatosDetalles() + End Sub + +#End Region + +#Region " DESHABILITAR " + Protected Sub DesHabilitar() + TxtFechaEstimadaEntrega.Enabled = False + + TxtDescrip.Enabled = False + TxtFolioAdicional.Enabled = False + TxtJustificacion.Enabled = False + DdlPrioridad.Enabled = False + txtobsprioridad.Enabled = False + DdlMoneda.Enabled = False + TxtCant.Enabled = False + CboUnidadMedida.Enabled = False + DdlClasificacion.Enabled = False + DdlP2.Enabled = False + DdlP2.ddl.Enabled = False + TxtObsPS.Enabled = False + HplMaq.Enabled = False + LbAgregar.Enabled = False + If CveEstatusFinalError <= 0 Then CboE.Enabled = False + ChkCotizacion.Enabled = False + hplAgregarCotizacion.Visible = False + hplEnviarCorreo.Visible = False + BtnGuardar.Enabled = False + BtnCancelar.Enabled = False + DdlProyecto.Enabled = False + DdlSubProyecto.Enabled = False + txtPrecioUnitario.Enabled = False + gvCotizaciones.Enabled = False + DdlProveedorSucursal.Enabled = False + DdlProveedorContacto.Enabled = False + + GvD.Columns(9).Visible = False + GvD.Columns(10).Visible = True + + If Not (BtnCancelarPrevio.Enabled And (CveEstatus <> CveEstatusFinalError OrElse CveEstatus <> CveEstatusFinalOK OrElse UsuarioActual.TienePermisoProceso(148).ToEntero > 0)) Then + BtnCancelarPrevio.Enabled = False + End If + + 'PROVEEDOR + DdlProveedores.Enabled = False + DdlIVA.Enabled = False + ImgCambiaProv.Visible = False + UPProv.Update() + + 'DATOS DE VENTA + txtLugarEntrega.Enabled = False + TxtLugarEntregaDirecta.Enabled = False + ChkEntregaDirecta.Enabled = False + If UsuarioActual.CveUsuario = CveUsuario And Not (TieneVenta > 0 Or TieneCompraInv > 0) Then 'SI ES EL MISMO USUARIO QUE CREO LA OC PUEDE EDITAR CLIENTE Y VENDEDOR + ImgCambiaClienteVendedor.Visible = True + Else + Ddlcliente.Enabled = False + DdlVendedor.Enabled = False + End If + ChkPromocion.Enabled = False + TxtPromocion.ReadOnly = True + TxtGuia.ReadOnly = True + DdlUsoCFDI.Enabled = False + End Sub +#End Region + +#Region "AMORNIZACION CONTABLE - A C" + + +#Region "ANTERIOR AC -- YA NO SE USA" + Private Sub CargaCombosPOA() + CargaFuenteFinanciamiento() + CargaTipoGasto() + CargaUnidadAdministrativa() + CargaClasificacionOG() + End Sub + Private Sub CargaFuenteFinanciamiento() + CboFuenteFinanciamiento.DataSource = GlobalDTAC_FuentesFinanciamiento(CveEmpresaActual) + CboFuenteFinanciamiento.DataBind() + CboFuenteFinanciamiento.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + + Private Sub CargaTipoGasto() + CboTipoGasto.DataSource = GlobalDTAC_TipoGasto + CboTipoGasto.DataBind() + CboTipoGasto.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + + Private Sub CargaUnidadAdministrativa() + CboUnidadAdministrativa.DataSource = GlobalDTAC_UnidadesAdministrativas(CveEmpresaActual) + CboUnidadAdministrativa.DataBind() + CboUnidadAdministrativa.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + + Private Sub CargaClasificacionOG() + Dim Filtro As New StringBuilder + ' Filtro.AppendFormat("Afectable= '{0}'", "Si") + CboClasificacionOG.DataSource = GlobalDTACClasificadorObjetoGasto(CveEmpresaActual).FiltraParametros("Afectable = 1 AND NOT Codigo like '1%' ", "CodigoClasificacion") + CboClasificacionOG.DataBind() + CboClasificacionOG.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + Protected Sub consultarAC_Click(sender As Object, e As EventArgs) + Dim filtro As New StringBuilder + If CboFuenteFinanciamiento.SelectedValue.ToEntero > 0 Then + filtro.AppendFormat("CveFuenteFinanciamiento= {0}", CboFuenteFinanciamiento.SelectedValue.ToString) + End If + + If CboUnidadAdministrativa.SelectedValue.ToEntero > 0 Then + filtro.AppendFormat("{1} CveUnidadAdministrativa= {0}", CboUnidadAdministrativa.SelectedValue.ToString, If(filtro.Length > 0, "AND", "")) + End If + + If CboTipoGasto.SelectedValue.ToEntero > 0 Then + filtro.AppendFormat("{1} CveTipoGasto= {0}", CboTipoGasto.SelectedValue.ToString, If(filtro.Length > 0, "AND", "")) + End If + + If CboClasificacionOG.SelectedValue.ToEntero > 0 Then + filtro.AppendFormat("{1} CveClasificadorOG= {0}", CboClasificacionOG.SelectedValue.ToString, If(filtro.Length > 0, "AND", "")) + End If + + GvAC.DataSource = DtAC.FiltraParametros(filtro.ToString) + GvAC.DataBind() + End Sub + Protected Sub SeleccionarPOA_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim gvr As GridViewRow = CType(CType(sender, LinkButton).BindingContainer, GridViewRow) + Dim Clave As String = gvr.DataKey("CvePresupuestoEgreso") + Dim CuentaporEjercer = gvr.DataKey("IdCuentaPorEjercer") + Dim CuentaComprometido = gvr.DataKey("IdCuentaComprometido") + Dim Presupuesto As String = gvr.DataKey("Total") + + If Presupuesto.ToEntero < TxtImporte.Text.ToEntero Then + Alert("El Presupuesto seleccionado no cubre el gasto. Favor de seleccionar otro.", TipoMensaje.MsgAdvertencia) + Else + LblCvePOA.Text = Clave.ToString + HdnCveCuentaPorEjercer.Value = CuentaporEjercer.ToString + HdnCveCuentaComprometido.Value = CuentaComprometido.ToString + LbAgregar.Enabled = True + UpPoaClave.Update() + UPPDetalle.Update() + Alert("Presupuesto Seleccionado correctamente!.", TipoMensaje.MsgInformacion) + End If + End Sub + Protected Sub GvAC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAC.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + e.Row.Cells(0).Attributes.Add("onclick", "tb_remove();") + e.Row.Cells(1).Attributes.Add("onclick", "tb_remove();") + e.Row.Cells(2).Attributes.Add("onclick", "tb_remove();") + e.Row.Cells(3).Attributes.Add("onclick", "tb_remove();") + e.Row.Cells(4).Attributes.Add("onclick", "tb_remove();") + e.Row.Cells(5).Attributes.Add("onclick", "tb_remove();") + e.Row.Cells(6).Attributes.Add("onclick", "tb_remove();") + End If + End Sub +#End Region + + Private Sub ActivaAC() + + 'SI ES REQ Y YA ESTA AUTORIZADA NO MUESTRA PE + If TipoOC = "REQ" AndAlso CveEstatus = CveEstatusFinalOK Then + Exit Sub + End If + + 'VALIDA SI NECESITA AC + VerificaPresupuesto = If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, True, False) + VerificaPresupuesto = If(TipoOC = "OC", True, VerificaPresupuesto) + + 'Seccion Grid + If VerificaPresupuesto Then + TxtFecha.Attributes.Add("onblur", "CambiaFecha();") + CargaPresupuesto() + Else + TxtFecha.Attributes.Add("onblur", "") + BtnGuardar.Enabled = True + End If + + MuestraPresupuestosEgresos() + + End Sub + Private Sub CargaPresupuesto() + Dim AC As New ClsAC + Dim Ejercicio = If(IsDate(TxtFecha.Text), Year(TxtFecha.Text.ToDate), UsuarioActual.Empresa.EjercicioActual) + + If AC.GetPresupuestoEgresos(-1, True, Ejercicio, CveEmpresaActual, True) Then + DtPresupuestos = AC.DtResultados.Copy + Else + Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError) + End If + AC.Dispose() + + EjercicioAC = Ejercicio + CargaDatosDetalles() + UpPresupuestosAC.Update() + End Sub + Private Sub MuestraPresupuestosEgresos() + + Dim Width = GvD.Width + Dim Width2 = DivConceptosContenido.Style("Width") + + + 'Seccion Grid + If VerificaPresupuesto Then + GvD.Width = 1750 + GvD.Columns(12).Visible = True + GvD.Columns(13).Visible = True + GvD.Columns(14).Visible = True + GvD.Columns(15).Visible = True + GvD.Columns(16).Visible = True + + 'Panel General + UpPresupuestosAC.Visible = True + DdlACGeneral1.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"}) + DdlACGeneral1.DataBind() + DdlACGeneral2.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"}) + DdlACGeneral2.DataBind() + DdlACGeneral3.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"}) + DdlACGeneral3.DataBind() + DdlACGeneral4.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"}) + DdlACGeneral4.DataBind() + 'carga los que no sean de nomina + DdlACGeneral5.DataSource = DtPresupuestos.FiltraParametros("NOT CodigoCOG like '1%'", DistinctColumns:={"CveClasificacion", "CodigoClasificacion"}, Orderby:="CodigoClasificacion") + DdlACGeneral5.DataBind() + + UpPresupuestosAC.Update() + + If TipoOC = "REQ" Then + CalculaSaldoACGeneral() + Else + RegistraScript("$get('DivPresupuestoEgresosGeneral').style.display = 'none';") + BtnVerPE.Visible = True + End If + + Else + 'GvD.Width = Width.ToEntero + GvD.Columns(12).Visible = False + GvD.Columns(13).Visible = False + GvD.Columns(14).Visible = False + GvD.Columns(15).Visible = False + GvD.Columns(16).Visible = False + + UpPresupuestosAC.Visible = False + End If + + 'CargaDatosDetalles() + UPPDetalle.Update() + UPPTab.Update() + + ConservaAC() + CompruebaAgregar() + + End Sub + + +#Region " CAMBIA EJERICIO AC " + Protected Sub BtnCambiaFecha_Click(sender As Object, e As EventArgs) + CambiaEjercicioAC() + End Sub + Private Sub CambiaEjercicioAC(Optional CargaTodo As Boolean = True) + Dim Ejercicio = If(IsDate(TxtFecha.Text), Year(TxtFecha.Text.ToDate), UsuarioActual.Empresa.EjercicioActual) + + If Ejercicio = EjercicioAC Then + Exit Sub + End If + + If Ejercicio <> EjercicioAC Then + Dim AC As New ClsAC + If AC.GetPresupuestoEgresos(-1, True, Ejercicio, CveEmpresaActual, True) Then + DtPresupuestos = AC.DtResultados.Copy + Else + Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError) + End If + AC.Dispose() + + EjercicioAC = Ejercicio + + 'CAMBIA LOS COMBOS DE TODOS LOS DETALLES DEL GRID + For Each gvr As GridViewRow In GvD.Rows + gvr.FCDropDownList("DdlAC1").SelectedValue = DdlACGeneral1.SelectedValue + gvr.FCDropDownList("DdlAC2").SelectedValue = DdlACGeneral2.SelectedValue + gvr.FCDropDownList("DdlAC3").SelectedValue = DdlACGeneral3.SelectedValue + gvr.FCDropDownList("DdlAC4").SelectedValue = DdlACGeneral4.SelectedValue + gvr.FCDropDownList("DdlAC5").SelectedValue = DdlACGeneral5.SelectedValue + Next + + MuestraPresupuestosEgresos() + + End If + + UPPDetalle.Update() + UpPresupuestosAC.Update() + End Sub +#End Region + + Protected Sub InfoPOA(sender As Object, e As EventArgs) + Dim AC As New ClsAC + Dim cvepe As String = CType(sender, LinkButton).Text.ToString + Dim filtro As New StringBuilder + Dim datos As New StringBuilder + + filtro.AppendFormat("CvePresupuestoEgreso = {0}", cvepe) + If AC.GetPresupuestoEgresos(cvepe.ToEntero, True, -1, CveEmpresaActual) Then + For Each dr As DataRow In AC.DtResultados.FiltraParametros(filtro.ToString).Rows + datos.AppendFormat("Proyecto = {0} {1}", dr("ProgramaOperativo").ToString, vbCr) + datos.AppendFormat("Fuente Financiamiento = {0} {1}", dr("FuenteFinanciamiento").ToString, vbCr) + datos.AppendFormat("Unidad Administrativa = {0} {1}", dr("UnidadAdministrativa").ToString, vbCr) + datos.AppendFormat("Tipo de Gasto = {0} {1}", dr("TipoGasto").ToString, vbCr) + datos.AppendFormat("Clasificador del Objeto de Gasto = {0} {1}", dr("Clasificacion").ToString, vbCr) + Next + CType(sender, LinkButton).ToolTip = datos.ToString + End If + + End Sub + + Private Sub ConservaAC() + 'Guarda valores AC en TmpDT + Dim Index = 0 + For Each gvr As GridViewRow In GvD.Rows + DtDetalle.Rows(Index)("CveProgramaOperativo") = gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero + DtDetalle.Rows(Index)("CveUnidadAdministrativa") = gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero + DtDetalle.Rows(Index)("CveFuenteFinanciamiento") = gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero + DtDetalle.Rows(Index)("CveTipoGasto") = gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero + DtDetalle.Rows(Index)("CveClasificacionOG") = gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero + Index += 1 + Next + End Sub + + Private Sub ConservaACDetalle(Gvr As GridViewRow) + 'Guarda valores AC en TmpDT + DtDetalle.Rows(Gvr.RowIndex)("CveProgramaOperativo") = Gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero + DtDetalle.Rows(Gvr.RowIndex)("CveUnidadAdministrativa") = Gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero + DtDetalle.Rows(Gvr.RowIndex)("CveFuenteFinanciamiento") = Gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero + DtDetalle.Rows(Gvr.RowIndex)("CveTipoGasto") = Gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero + DtDetalle.Rows(Gvr.RowIndex)("CveClasificacionOG") = Gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero + End Sub + + Protected Sub CompruebaSaldoAC(sender As Object, e As EventArgs) + ConservaACDetalle(CType(CType(sender, DropDownList).NamingContainer, GridViewRow)) + CompruebaAgregar() + GvD.DataSource = DtDetalle + GvD.DataBind() + End Sub + Protected Sub CambiaACGeneral(sender As Object, e As EventArgs) + 'If ChkACGeneral.Checked Then + + 'CAMBIA LOS COMBOS DE TODOS LOS DETALLES DEL GRID + For Each gvr As GridViewRow In GvD.Rows + gvr.FCDropDownList("DdlAC1").SelectedValue = DdlACGeneral1.SelectedValue + gvr.FCDropDownList("DdlAC2").SelectedValue = DdlACGeneral2.SelectedValue + gvr.FCDropDownList("DdlAC3").SelectedValue = DdlACGeneral3.SelectedValue + gvr.FCDropDownList("DdlAC4").SelectedValue = DdlACGeneral4.SelectedValue + gvr.FCDropDownList("DdlAC5").SelectedValue = DdlACGeneral5.SelectedValue + Next + + 'REESCRIBE LOS VALORES NUEVOS EN DT + ConservaAC() + + CompruebaAgregar() + ' UpPS.Update() + + CalculaSaldoACGeneral() + + ' End If + End Sub + Private Sub CalculaSaldoACGeneral() + Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa) + Dim DtPresupuestosTemp = DtPresupuestos.FiltraParametros(String.Format("CveProgramaOperativo = {0} and CveUnidadAdministrativa = {1} and CveFuenteFinanciamiento = {2} and CveTipoGasto= {3} and CveClasificacion = {4}", DdlACGeneral1.SelectedValue.ToString, DdlACGeneral2.SelectedValue.ToString, DdlACGeneral3.SelectedValue.ToString, DdlACGeneral4.SelectedValue.ToString, DdlACGeneral5.SelectedValue.ToString)) + If DtPresupuestosTemp IsNot Nothing AndAlso DtPresupuestosTemp.Rows.Count > 0 Then + LbACGeneralSaldo.Text = ContPaq.GetSaldoCuenta(DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero, 0, TxtFecha.Text.ToDate.Year).ToString.FormatoNumero + Else + LbACGeneralSaldo.Text = "0.00" + End If + ContPaq.Dispose() + End Sub + Private Sub CompruebaAgregar() + + If GvD.Rows.Count = 0 Then Exit Sub + + If UsuarioActual.Empresa.UsaAC And VerificaPresupuesto Then + + Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa) + Dim disponible As Double + Dim ErrorPresupuesto = False + + Dim Ddl1 As DropDownList + Dim Ddl2 As DropDownList + Dim Ddl3 As DropDownList + Dim Ddl4 As DropDownList + Dim Ddl5 As DropDownList + Dim Total As Double + + Dim DtPresupuestosTemp As DataTable + Dim Filtro As New StringBuilder + + For Each grid As GridViewRow In GvD.Rows + Ddl1 = grid.FCDropDownList("DdlAC1") + Ddl2 = grid.FCDropDownList("DdlAC2") + Ddl3 = grid.FCDropDownList("DdlAC3") + Ddl4 = grid.FCDropDownList("DdlAC4") + Ddl5 = grid.FCDropDownList("DdlAC5") + Total = grid.FCLiteral("LtlTotal").Text.ToDouble + + 'OBTENEMOS EL REGISTRO DEL PE SELECCIONADO + Filtro.AppendFormat("CveProgramaOperativo = {0} and CveUnidadAdministrativa = {1} and CveFuenteFinanciamiento = {2} and CveTipoGasto= {3} and CveClasificacion = {4}", If(Ddl1.SelectedValue.ToString = "", "-1", Ddl1.SelectedValue.ToString), If(Ddl2.SelectedValue.ToString = "", "-1", Ddl2.SelectedValue.ToString), If(Ddl3.SelectedValue.ToString = "", "-1", Ddl3.SelectedValue.ToString), If(Ddl4.SelectedValue.ToString = "", "-1", Ddl4.SelectedValue.ToString), If(Ddl5.SelectedValue.ToString = "", "-1", Ddl5.SelectedValue.ToString)) + DtPresupuestosTemp = DtPresupuestos.FiltraParametros(Filtro.ToString) + Filtro.Clear() + + If DtPresupuestosTemp.Rows.Count > 0 Then + disponible = ContPaq.GetSaldoCuenta(DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero, 0, TxtFecha.Text.ToDate.Year) + + If disponible > 0 AndAlso disponible > Total Then + 'Alert("Si hay dinero: ") + + DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = DtPresupuestosTemp.Rows(0)("CvePresupuestoEgreso").ToString + DtDetalle.Rows(grid.RowIndex)("IdCuentaComprometido") = DtPresupuestosTemp.Rows(0)("IdCuentaComprometido").ToString + DtDetalle.Rows(grid.RowIndex)("IdCuentaPorEjercer") = DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString + + grid.Cells(8).BackColor = Drawing.Color.Green + Else + Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia) + grid.Cells(8).BackColor = Drawing.Color.Red + ErrorPresupuesto = True + Exit For + End If + + DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = DtPresupuestosTemp.Rows(0)("CvePresupuestoEgreso").ToString + + Else + DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = "-1" + Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia) + grid.Cells(8).BackColor = Drawing.Color.Red + ErrorPresupuesto = True + Exit For + End If + + Next + + If ErrorPresupuesto Then + BtnGuardar.Enabled = False + Else + BtnGuardar.Enabled = True + End If + + uppOpciones.Update() + UPPDetalle.Update() + ContPaq.Dispose() + + End If + + End Sub + Private Sub AgregaAC() + Dim dr As DataRow + For Each gvr As GridViewRow In GvD.Rows + dr = DtDetalle.Rows(gvr.RowIndex) + + dr("CveProgramaOperativo") = gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero + dr("CveUnidadAdministrativa") = gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero + dr("CveFuenteFinanciamiento") = gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero + dr("CveTipoGasto") = gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero + dr("CveClasificacionOG") = gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero + Next + + DtDetalle.AcceptChanges() + End Sub + + Protected Sub UpdateAC(CvePresupuestoEgreso As Integer, Importe As Integer, TipoMovimiento As Boolean) + '' True = suma ||| False = resta + Dim indice As Integer = DtAC.Rows.IndexOf(DtAC.Select("CvePresupuestoEgreso = " + CvePresupuestoEgreso.ToString).FirstOrDefault()) + Dim Total As Integer = DtAC(indice).Item("Total").ToString.ToEntero + + If TipoMovimiento Then + DtAC(indice).Item("Total") = Math.Round((Total + Importe), 2) + Else + DtAC(indice).Item("Total") = Math.Round((Total - Importe), 2) + End If + + GvAC.DataSource = DtAC + GvAC.DataBind() + UpdatePanel2.Update() + End Sub + +#End Region + +#Region "COTIZACIONES" + Protected Sub ChkCotizacion_CheckedChanged(sender As Object, e As EventArgs) Handles ChkCotizacion.CheckedChanged + VerificaSiRequiereCotizacion() + End Sub + + Protected Sub VerificaCotizacionesGanadoras() + 'If CveEstatusFinalOK = CboE.SelectedValue.ToEntero AndAlso NumCotizacionesGanadoras <> GvD.Rows.Count Then + ' BtnGuardar.Enabled = False + ' uppOpciones.Update() + 'End If + + If ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then + CboE.Enabled = False + LblMsgEstatus.Visible = True + LblMsgEstatus.Text = "Cotización requerida para avanzar" + Else + CboE.Enabled = True + LblMsgEstatus.Visible = False + LblMsgEstatus.Text = "" + End If + + uppEstatus.Update() + End Sub + Protected Sub gvCotizaciones_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gvCotizaciones.RowCommand + + ''Registro el proveedor seleccionado en la orden de compra + ' Sin captura + If e.CommandName = "RegProv" Then + + If e.CommandArgument.ToString <> "" Then + Dim OC As New ClsOC + OC.IniciaTransacSQL() + Dim TieneError = False + Dim Cve As String() = e.CommandArgument.ToString.Split("|"c) + + If OC.UpdateCotizacionDetalleGanadora(Cve(0).ToEntero, If(Cve(1).ToString.ToUpper = "TRUE", False, True)) > 0 Then + + Dim index = CType(DirectCast(e.CommandSource, Button).NamingContainer, GridViewRow).RowIndex + Dim dr = DtDetalle.Rows(index) + + If Not Cve(1).ToString.ToUpper = "TRUE" Then + + Dim Importe = DirectCast(e.CommandSource, Button).Text.ToDecimal + Dim Total = Importe * dr("Cantidad").ToString.ToDecimal + + dr("Importe") = DirectCast(e.CommandSource, Button).Text + dr("Total") = dr("Importe").ToString.ToDecimal * dr("Cantidad").ToString.ToDecimal + + dr("IVA") = dr("IVAPorcentaje").ToString.ToDecimal * Total + dr("RetIVA") = dr("RetIVAPorcentaje").ToString.ToDecimal * Total + dr("RetISR") = dr("RetISRPorcentaje").ToString.ToDecimal * Total + dr("IEPSPS") = dr("IEPSPSPorcentaje").ToString.ToDecimal * Total + dr("IEPSPSIVA") = dr("IEPSPSIVAPorcentaje").ToString.ToDecimal * Total + + dr("CveProveedor") = Cve(2).ToString.ToEntero + Else + dr("Importe") = "0" + dr("Total") = "0" + dr("CveProveedor") = Cve(2).ToString.ToEntero + End If + + 'ACTUALIZO DATO EN DB + If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, + dr("Observacion").ToString.ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, dr("CvePresupuestoEgreso").ToString.ToEntero, dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then + TieneError = True + End If + + CargaDatosDetalles() + + End If + + If Not TieneError Then + OC.Commit() + Else + OC.RollBack() + Alert("Ocurrió un error al seleccionar ganador en la cotización. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + OC.Dispose() + CargaCotizaciones(CveOrdenCompra) + End If + End If + + + End Sub + Protected Sub gvCotizaciones_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvCotizaciones.RowDataBound + + 'Pongo el nombre del proveedor en el encabezado + If e.Row.RowType = DataControlRowType.Header Then + + For i As Integer = 1 To NumCotizaciones + e.Row.Cells(i + 2).Text = String.Format("{2}", CveOrdenCompra, DtCotizaciones.Rows(i - 1)("CveCotizacion"), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva")), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva"))) + e.Row.Cells(i + 2).Attributes.Add("style", "text-align:center!important") + '", + Next + End If + + If e.Row.RowType = DataControlRowType.DataRow Then + + + If e.Row.DataKey("Descripcion").ToString = "Total" Then + e.Row.Cells(2).Attributes.Add("style", "text-align:right") + End If + + + + If e.Row.DBCampo("CveOrdenCompraDetalle") = "" Then + 'si es el totalizador + e.Row.CssClass = "SubTotales" + For i As Integer = 1 To NumCotizaciones + Dim Btn As Button = e.Row.FCButton(String.Format("Btn{0}", i)) + Btn.Text = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble.ToString("N2") + Btn.Visible = True + 'Btn.Enabled = True + 'Btn.OnClientClick = "return false;" + e.Row.Cells(2 + i).Text = String.Format("{0}", e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble.ToString("N2")) + Next + Else + Dim CellMasBarato As Integer = -1 + Dim Monto As Double = -1 + + For i As Integer = 1 To NumCotizaciones + + Dim Btn As Button = e.Row.FCButton(String.Format("Btn{0}", i)) + Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2") + Btn.CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo(String.Format("CveCotizacionDetalle{0}", i)), False, DtCotizaciones.Rows(i - 1)("CveProveedor").ToString) + Btn.Style.Add("cursor:", "pointer") + + If e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble > 0 Then + If Monto.ToString = "-1" Then + Monto = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble + CellMasBarato = i + End If + If e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble < Monto Then + CellMasBarato = i + Monto = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble + End If + Else + Btn.Text = "Sin captura" + Btn.Attributes.Add("onclick", "return false;") + + 'Btn.Enabled = True + 'Btn.Visible = False + End If + Next + + 'Coloreo el más barato + If CellMasBarato > 0 Then e.Row.Cells(CellMasBarato + 2).BackColor = Drawing.Color.LightBlue + + + 'COLOREA GANADORES + If e.Row.DBCampo("CveCotizacionDetalleGanadora").ToEntero > 0 Then + NumCotizacionesGanadoras = NumCotizacionesGanadoras + 1 + TotalCotizacionesGanadoras += e.Row.DBCampo("TotalCotizacionDetalleGanadora").ToDecimal + + Dim i As Integer = 1 + For Each dr As DataRow In DtCotizaciones.Rows + Dim Btn As Button = e.Row.FCButton("Btn" & i) + ' Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2") + + + If e.Row.DBCampo("EsGanadora" & i).ToString = "True" Then + e.Row.Cells(i + 2).BackColor = Drawing.Color.LightGreen + Btn.CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo(String.Format("CveCotizacionDetalle{0}", i)), True, DtCotizaciones.Rows(i - 1)("CveProveedor").ToString) + 'Btn.OnClientClick = "return false;" + 'Btn.Enabled = True + End If + i = i + 1 + Next + End If + + + End If + End If + End Sub + Private Sub BtnEliminarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEliminarCotizacion.Click + Dim Body = GeneraCorreoEliminarCotizacion(HdnCveCotizacion.Value.ToEntero, TxtMotivoEliminacion.Text.Trim) + RegistraScript("hideDivEC();") + End Sub +#End Region + +#Region " ACTIVOS FIJOS " + Protected Sub GVAF_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAF.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).Width = Unit.Pixel(55) + e.Row.Cells(1).Width = Unit.Pixel(350) + e.Row.Cells(2).Width = Unit.Pixel(80) + 'e.Row.Cells(3).Width = Unit.Pixel(200) + 'e.Row.Cells(4).Width = Unit.Pixel(80) + + End If + End If + End Sub + + Protected Sub LnkAFSeleccionar_Click(sender As Object, e As EventArgs) + Dim gvr As GridViewRow = CType(CType(sender, LinkButton).BindingContainer, GridViewRow) + HdnAFCveActivoFijo.Value = gvr.DataKey("CveActivoFijo") + HdnAFCodigo.Value = gvr.DataKey("Codigo") + CargaAF() + GVAF.SelectedIndex = gvr.RowIndex + 'carga las últimas compras + BtnAFAceptar.Visible = True + CargaComprasActivoFijo(gvr.DataKey("CveActivoFijo").ToEntero) + + End Sub + + Protected Sub BtnBuscarAF_Click(sender As Object, e As EventArgs) Handles BtnBuscarAF.Click + GVAF.SelectedIndex = -1 + HdnAFCveActivoFijo.Value = "" + HdnAFCodigo.Value = "" + GVAFC.Visible = False + GVAFC.DataBind() + BtnAFAceptar.Visible = False + CargaAF() + + End Sub + + Private Sub CargaComprasActivoFijo(pCveActivoFijo As Integer) + Dim ObjActivoFijo As New ClsAF() + If ObjActivoFijo.GetActivosFijosCompras(pCveActivoFijo, DdlClasificacion.SelectedValue.ToEntero) Then + GVAFC.DataSource = ObjActivoFijo.DtResultados + Else + GVAFC.DataSource = Nothing + End If + ObjActivoFijo.Dispose() + GVAFC.DataBind() + GVAFC.Visible = True + End Sub + + Private Sub CargaAF() + Dim Codigo As String = "-1" + Dim Descripcion As String = "-1" + Dim CveTipoActivoFijo As Integer = -1 + Dim CveSubTipoActivoFijo As Integer = -1 + + If TxtAFCodigo.Text.Trim <> String.Empty Then Codigo = TxtAFCodigo.Text.Trim + If TxtAFDescripcion.Text.Trim <> String.Empty Then Descripcion = TxtAFDescripcion.Text.Trim + If DdlAFTipoActivoFijo.SelectedValue <> String.Empty Then CveTipoActivoFijo = DdlAFTipoActivoFijo.SelectedValue.ToEntero + If DdlAFSubTipoActivoFijo.SelectedValue <> String.Empty Then CveSubTipoActivoFijo = DdlAFSubTipoActivoFijo.SelectedValue.ToEntero + + Dim ObjAF As New ClsAF() + If ObjAF.GetActivosFijos(-1, CveEmpresaActual, Codigo, Descripcion, CveTipoActivoFijo, CveSubTipoActivoFijo, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then + If ObjAF.DtResultados.Rows.Count > 0 Then + + GVAF.DataSource = ObjAF.DtResultados + Else + GVAF.DataSource = Nothing + Alert("No se encontraron registros con los parámetros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia) + End If + GVAF.DataBind() + End If + + ObjAF.Dispose() + End Sub + + Private Sub CargaTipoActivoFijo() + DdlAFTipoActivoFijo.Items.Clear() + DdlAFTipoActivoFijo.DataSource = GlobalDTTipoActivoFijo(CveEmpresaActual) '.FiltraParametros("CveEmpresa = " & CveEmpresaActual) + DdlAFTipoActivoFijo.DataBind() + DdlAFTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + Private Sub CargaSubTipoActivoFijo() + DdlAFSubTipoActivoFijo.Items.Clear() + DdlAFSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(CveEmpresaActual).FiltraParametros("CveTipoActivoFijo = '" & DdlAFTipoActivoFijo.SelectedValue & "'") + 'DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo.FiltraParametros("CveEmpresa = " & CveEmpresaActual & " AND CveTipoActivoFijo = '" & DdlTipoActivoFijo.SelectedValue & "'") + DdlAFSubTipoActivoFijo.DataBind() + DdlAFSubTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) + + End Sub + + Protected Sub DdlAFTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAFTipoActivoFijo.SelectedIndexChanged + CargaSubTipoActivoFijo() + End Sub + + Protected Sub GVAFC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAFC.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.CssClass = "Totales" + ElseIf e.Row.FCLiteral("LtlFecha").Text = String.Empty Then + e.Row.CssClass = "SubTotales" + End If + + End If + End Sub + Protected Sub BtnAFAceptar_Click(sender As Object, e As EventArgs) Handles BtnAFAceptar.Click + If HdnEditCveActivoFijo.Value.Trim = "" Then + LblCodigo.Text = HdnAFCodigo.Value + HdnCveActivoFijo.Value = HdnAFCveActivoFijo.Value + UPPDetalle.Update() + HdnAFCodigo.Value = "" + HdnAFCveActivoFijo.Value = "" + GVAF.DataBind() + GVAFC.Visible = False + BtnAFAceptar.Visible = False + RegistraScript("$get('divActivosFijos').style.display='none';") + Else + 'LblCodigo.Text = HdnAFCodigo.Value + GvD.Rows(GvD.EditIndex).FCLabel("LblEditCodigo").Text = HdnAFCodigo.Value + HdnEditCodigo.Value = HdnAFCodigo.Value + HdnEditCveActivoFijo.Value = HdnAFCveActivoFijo.Value + 'UPPDetalle.Update() + 'HdnAFCodigo.Value = "" + 'HdnAFCveActivoFijo.Value = "" + GVAF.DataBind() + GVAFC.Visible = False + BtnAFAceptar.Visible = False + RegistraScript("$get('divActivosFijos').style.display='none';") + UPPDetalle.Update() + End If + End Sub + Protected Sub BtnVinculaAF_Click(sender As Object, e As EventArgs) + If HdnCveActivoFijo.Value.ToEntero = -2 Then + If LblCodigo.Text.Trim = "" Then Exit Sub + Dim ObjAF As New ClsAF + + If ObjAF.GetActivosFijos(-1, CveEmpresaActual, LblCodigo.Text, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then + If ObjAF.DtResultados.Rows.Count = 1 Then + HdnCodigoAF.Value = ObjAF.DtResultados.Rows(0)("Codigo").ToString + HdnCveActivoFijo.Value = ObjAF.DtResultados.Rows(0)("CveActivoFijo").ToString + Else + HdnCodigoAF.Value = "-1" + HdnCveActivoFijo.Value = "-1" + LblCodigo.Text = "" + Alert("No se encontró un Activo Fijo con el código proporcionado.", TipoMensaje.MsgAdvertencia) + End If + End If + + ObjAF.Dispose() + Else + LblCodigo.Text = HdnCodigoAF.Value + End If + + UPPDetalle.Update() + End Sub + + Protected Sub BtnVinculaAFEdit_Click(sender As Object, e As EventArgs) + Dim ObjAF As New ClsAF + + If ObjAF.GetActivosFijos(-1, CveEmpresaActual, HdnCodAFEdit.Value, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", UsuarioActual.CveEmpresa) Then + If ObjAF.DtResultados.Rows.Count = 1 Then + RegistraScript(String.Format("EnterAFEditOK('{0}','{1}');", ObjAF.DtResultados.Rows(0)("CveActivoFijo").ToString, ObjAF.DtResultados.Rows(0)("Codigo").ToString)) + Else + Alert("No se encontró un Activo Fijo con el código proporcionado.", TipoMensaje.MsgAdvertencia) + RegistraScript(String.Format("EnterAFEditOK({0},{1});", "-1", "-1")) + End If + End If + + ObjAF.Dispose() + End Sub +#End Region + +#Region "E V E N T O - B I T A C O R A" + Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("Archivo").ToString.Trim <> "" AndAlso CveOrdenCompra > 0 Then + e.Row.FCLinkButton("LinkArchivo").Visible = True + e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString) + ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione + End If + End If + End Sub + Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click + + If CveOrdenCompra > 0 Then + GuardaBitacora() + Else + AgregaBitacoraTemporal() + End If + + End Sub + +#Region " GUARDA DIRECTO " + Private Sub GuardaBitacora() + Dim ObjEventoBitacora As New ClsOIEventos + Dim FileExtension As String = "" + Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos + Dim Filename As String = "" + For Each fileItem As Archivo In Filesgral + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)) '.Replace(".", "") + Filename = fileItem.filename + Next + + Dim descripcion As String = TxtEventoDescripcion.Text.Trim + Dim Prioridad As Integer = If(ChkEventoPrioridad.Checked, 3, 1) + + If ObjEventoBitacora.AddEventoBitacora(descripcion, String.Format("{0}", FileExtension), UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra, Prioridad:=Prioridad) Then + + If Filename <> "" Then + Filename.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", CveEmpresaActual)) + End If + + GvEB.DataSource = ObjEventoBitacora.DtResultados + TxtEventoDescripcion.Text = "" + Anexo.Text = "[]" + ChkEventoPrioridad.Checked = False + Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) + RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") + + 'obtener el Evento de bitacora para enviar el correo + If ObjEventoBitacora.GetEvento(ObjEventoBitacora.CveEvento, UsuarioActual.CveUsuario, CveEmpresaActual) Then + If ObjEventoBitacora.DtResultados IsNot Nothing AndAlso ObjEventoBitacora.DtResultados.Rows.Count > 0 Then + Dim dr As DataRow = ObjEventoBitacora.DtResultados.Rows(0) + EnviarCorreoBitacora(String.Format("{0}, {1} comento: ""{2}""", dr("FechaIng"), dr("Usuario"), dr("Descripcion")), String.Format("{0}Empresas/{1}/OI/{2}", UrlSitio, CveEmpresaActual, ObjEventoBitacora.Archivo)) + End If + End If + + End If + + ObjEventoBitacora.Dispose() + GvEB.DataBind() + + UPEventoBitacora.Update() + CargaEventoBitacora() + UPAddEventoBitacora.Update() + End Sub + Private Sub CargaEventoBitacora() + Dim ObjEventoBitacora As New ClsOIEventos() + + If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then + If ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento IN (6,2) AND CvePrioridad=3").Rows.Count > 0 Then + DivEventoUrgente.Visible = True + End If + GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento IN (6,2)") + Else + GvEB.DataSource = Nothing + End If + + ObjEventoBitacora.Dispose() + + GvEB.DataBind() + UPEventoBitacora.Update() + End Sub +#End Region + +#Region " GUARDA TEMPORAL " + Private Sub InicializaBitacoraTemporal() + If Not CveOrdenCompra > 0 Then + + DtBitacora = New DataTable + DtBitacora.Columns.Add("FechaIng", GetType(String)) + DtBitacora.Columns.Add("FechaInicio", GetType(String)) + DtBitacora.Columns.Add("Usuario", GetType(String)) + DtBitacora.Columns.Add("CveUsuario", GetType(String)) + DtBitacora.Columns.Add("Descripcion", GetType(String)) + DtBitacora.Columns.Add("Prioridad", GetType(String)) + DtBitacora.Columns.Add("FileExtension", GetType(String)) + DtBitacora.Columns.Add("Archivo", GetType(String)) + DtBitacora.Columns.Add("CveOrdenCompra", GetType(String)) + DtBitacora.Columns.Add("CveEmpresa", GetType(String)) + + End If + End Sub + Private Sub AgregaBitacoraTemporal() + Dim ObjEventoBitacora As New ClsOIEventos + + 'Archivo + Dim FileExtension As String = "" + Dim Filename As String = "" + Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos + + For Each fileItem As Archivo In Filesgral + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") + Filename = fileItem.filename + Next + + Dim Archivo As New System.IO.FileInfo(String.Format("{0}OI\Temp\OI{1}{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension)) + If Archivo.Exists() Then + Archivo.Delete() + 'File.Delete(String.Format("\Empresas\{0}\OI\Temp\OI{1}{2}.{3}", CveEmpresaActual, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension)) + End If + + If Filename <> "" Then + Filename.FilesMove(String.Format("OI{0}{1}", UsuarioActual.CveUsuario, DtDetalle.Rows.Count), String.Format("Empresas\{0}\OI\Temp", CveEmpresaActual)) + End If + + + + 'AGREGA + Dim Dr = DtBitacora.NewRow + Dr("FechaIng") = Now + Dr("FechaInicio") = "" + Dr("Usuario") = UsuarioActual.Usuario + Dr("CveUsuario") = UsuarioActual.CveUsuario + Dr("Descripcion") = TxtEventoDescripcion.Text.Trim + Dr("Prioridad") = If(ChkEventoPrioridad.Checked, 3, 1) + Dr("Archivo") = String.Format("{0}OI\Temp\OI{1}{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension) + Dr("FileExtension") = String.Format(".{0}", FileExtension) + Dr("CveOrdenCompra") = -1 + Dr("CveEmpresa") = CveEmpresaActual + DtBitacora.Rows.Add(Dr) + + + + 'LIMPIA + TxtEventoDescripcion.Text = "" + ChkEventoPrioridad.Checked = False + RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") + + CargaEventoBitacoraTemp() + + + End Sub + Private Sub CargaEventoBitacoraTemp() + GvEB.DataSource = DtBitacora + GvEB.DataBind() + UPAddEventoBitacora.Update() + UPEventoBitacora.Update() + End Sub + Private Function GuardaBitacoraTemporal(ObjEventoBitacora As ClsOIEventos) As Boolean + Dim Retorno = False + Dim Archivo As System.IO.FileInfo = Nothing + + For Each Dr As DataRow In DtBitacora.Rows + If ObjEventoBitacora.AddEventoBitacora(Dr("Descripcion").ToString, Dr("FileExtension").ToString, UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra, Prioridad:=Dr("Prioridad").ToString.ToEntero) Then + + Archivo = New System.IO.FileInfo(Dr("Archivo").ToString) + If Archivo.Exists() Then + File.Move(Archivo.ToString, String.Format("{0}OI\OI{1}{2}", UsuarioActual.Empresa.Ruta, ObjEventoBitacora.CveEvento.ToString, Archivo.Extension)) + End If + + + Else + Retorno = True + Exit For + End If + Next + + Return Retorno + End Function +#End Region + + Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) + Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) + If IO.File.Exists(filePath) Then + Dim Archivo As New System.IO.FileInfo(filePath) + + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/octet-stream" + HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filePath)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(filePath) + HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + + Archivo = Nothing + Else + UPEventoBitacora.Update() + End If + + End Sub + + +#End Region + +#Region " GENERAR ANTICIPOS " + Private Sub CargarOptionAnticipos() + + If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then + DivVendedor.Visible = True + option72.Visible = True + DivFolioAdicional.Visible = True + generarAnticipo.Visible = True + Ddlcliente.DataSource = GlobalDTCliente(CveEmpresaActual).FiltraParametros(" Estatus = 'Activo' ") + Ddlcliente.DataBind() + Ddlcliente.Items.Insert(0, New ListItem(" - ", "-1")) + DdlVendedor.DataSource = GlobalDTVendedores(CveEmpresaActual) + DdlVendedor.DataBind() + DdlVendedor.Items.Insert(0, New ListItem(" - ", "-1")) + 'DivLugarEntrega1.Visible = False + 'DivLugarEntrega2.Visible = False + End If + + + + End Sub +#End Region + +#Region " SOLICITAR ANTICIPOS " + Private Sub InicializaSolicitarAnticipo() + If CveOrdenCompra > 0 Then + + If CveIEAnticipo > 0 Then + PorletIEAnticipo.Visible = True + UpIEAnticipo.Update() + Else + If GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimeroValor("TipoTermino", $"CveEstatus = {CveEstatus}").ToEntero.Contiene(0, 3) Then + BtnSolicitudAnticipo.Visible = True + DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual) + DdlSAUsuario.DataBind() + DdlSAUsuario.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + End If + + End If + End Sub + Protected Sub BtnSolicitarAnticipo_Click(sender As Object, e As EventArgs) Handles BtnSolicitarAnticipo.Click + + Dim Descripcion As New StringBuilder + Descripcion.AppendFormat("Importe anticipo : ${0} ({1}%) - Pagar anticipo - Observacion: {2} ", TxtSAImporte.Text.FormatoNumero, TxtSAImPorcentaje.Text, CveOrdenCompra, TxtSAObservaciones.Text) + Descripcion.AppendFormat("Orden de compra : {0} - Ir a la orden de compra - Imprimir OC", Folio, CveOrdenCompra, Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra))) + + 'Dim Descripcion = $"Importe anticipo : ${TxtSAImporte.Text.FormatoNumero} ({TxtSAImPorcentaje.Text}%) - Pagar anticipo - Observacion: {TxtSAObservaciones.Text} " + Dim Asunto = $"Solicitud de anticipo ({lblFolio.Text})" + Dim ObjOC As New ClsOC + Dim ObjOI As New ClsOIEventos(ObjOC.IniciaTransacSQL) + Dim TieneError = False + + If ObjOI.AddEventoTarea(Asunto, Descripcion.ToString, 1, UsuarioActual.CveUsuario, DdlSAUsuario.SelectedValue.ToString.ToEntero, DateTime.Now, DateTime.Now.AddMinutes(15), -1, 1, -1, "-1", -1, -1, -1, -1, -1, CveOrdenCompra.ToEntero, -1, -1, UsuarioActual.CveUsuario, -1, CveEmpresaActual) Then + If Not ObjOC.AddSolicitudAnticipo(CveOrdenCompra, TxtSAImporte.Text.ToDouble, CveEmpresaActual) Then + TieneError = True + End If + Else + TieneError = True + End If + + + If Not ObjOI.AddEventoBitacora($"Solicitud de anticipo de orden de compra por ${TxtSAImporte.Text.FormatoNumero}", "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then + TieneError = True + End If + + + If Not TieneError Then + RegistraScript("$('#ModalSolicitarAnticipo').modal('hide');", "ModalSolicitarAnticipoHide") + ObjOC.Commit() + EnviaCorreoSolicitudAnticipo(ObjOI.CveEvento) + + 'LIMPIA + BtnSolicitudAnticipo.Visible = False + DdlSAUsuario.SelectedValue = "-1" + TxtSAImporte.Text = "" + TxtSAObservaciones.Text = "" + TxtSAImPorcentaje.Text = "" + + Alert("La solicitud de anticipo ha sido enviada correctamente.", TipoMensaje.MsgInformacion) + + + Else + ObjOC.RollBack() + Alert("Ocurrió un error al hacer la solicitud de anticipo.", TipoMensaje.MsgError) + End If + ObjOC.Dispose() + + 'RECARGA LA BITACORA + If Not TieneError Then + CargaEventoBitacora() + End If + + End Sub + Private Sub EnviaCorreoSolicitudAnticipo(CveEvento As Integer) + Dim Param As New List(Of String) + Dim DtPara As DataTable = GlobalDTUsuarios(DdlSAUsuario.SelectedValue.ToString.ToEntero, CveEmpresaActual) + Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para + Param.Add("Solicitud de anticipo de Orden de Compra") 'Asunto + Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.adssistemas.mx/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", CveEvento), TxtSAImporte.Text)) + Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra)) + Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo) + Hilo.Start(Param) + End Sub + Private Sub EnviaCorreoSolicitudAnticipoCancelado() + 'If Not CveIEAnticipo > 0 Then 'SI NO SE HA REALIZADO EL ANTICIPO NOTIFICA QUE SE HA CANCELADO + Dim ObjOC As New ClsOC + If ObjOC.GetSolicitudAnticipoUsuarios(CveOrdenCompra, CveEmpresaActual) Then + For Each Dr As DataRow In ObjOC.DtResultados.Rows + Dim Param As New List(Of String) + Dim DtPara As DataTable = GlobalDTUsuarios(Dr("CveUsuarioPara").ToString.ToEntero, CveEmpresaActual) + Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para + Param.Add("Solicitud de anticipo de Orden de Compra Cancelada") 'Asunto + Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.s/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", Dr("CveEvento").ToString.ToEntero), "")) + Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra)) + Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo) + Hilo.Start(Param) + Next + End If + ObjOC.Dispose() + 'End If + End Sub + Private Sub MandaCorreoAnticipo(Data As Object) + Dim Parametros As List(Of String) = DirectCast(Data, List(Of String)) + + Dim Mail As New ClsSisMail() + Dim Para As String = Parametros(0) + Dim Asunto As String = Parametros(1) + Dim Body As String = Parametros(2) + + 'Dim ArrayAttachment As New List(Of String) + Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) + If Parametros(3) IsNot Nothing AndAlso Parametros(3) <> "" Then + LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = Parametros(3).ToString}) + End If + + 'If Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayAttachment:=ArrayAttachment) Then + If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) Then + Alert("Correos enviados") + Else + Alert("Correos no enviados") + End If + + End Sub + Private Function GeneraCorreoAnticipo(folio As String, para As String, link As String, importe As String) As String + 'NOTA: CUANDO EL IMPORTE SEA "" QUIERE DECIR QUE ES EL CORREO DE CANCELACIÓN + + Dim strBody As New StringBuilder + strBody.Append("") + strBody.Append(" ") + strBody.Append("") + strBody.Append("") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append($" Solicitud de anticipo {If(importe.ToDouble > 0, "", " CANCELADA ")}") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + If importe.ToDouble > 0 Then + strBody.Append(" ") + strBody.Append(" ") + End If + strBody.Append("") + strBody.Append("
    Fecha") + strBody.Append(DateTime.Now.ToString("dd/MM/yy")) + strBody.Append("
    De") + strBody.Append(UsuarioActual.Nombre) + strBody.Append("
    Para") + strBody.Append(para) + strBody.Append("
    Folio") + strBody.Append(folio) + strBody.Append("
    Importe:") + strBody.Append(importe) + strBody.Append("
    Ver mas
    ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append("") + strBody.Append("") + Return strBody.ToString + End Function +#End Region + +#Region " COTIZACIONES " + Protected Sub VerificaSiRequiereCotizacion() + If TipoOC = "REQ" Then + If ChkCotizacion.Checked Then + If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then + If CveOrdenCompra > 0 AndAlso CveEstatus.Contiene(CveEstatusSupervisada, CveEstatusFinalOK) Then + DdlProveedores.Attributes.Add("disabled", "disabled") + DdlProveedores.Enabled = False + ImgCambiaProv.Visible = False + End If + Else + PnlProveedor.Visible = False + End If + + UPProv.Update() : UPPEmp.Update() + BtnGuardar.Text = "Guardar" + tabCotizaciones.Enabled = True + Else + tabCotizaciones.Enabled = False + ''temporal, si es nueva, le podras mover el proveedor, pero si ya esta registrada, debes de tener permisos para hacerlo + If CveOrdenCompra = 0 OrElse (CveOrdenCompra > 0 AndAlso UsuarioActual.TienePermisoProceso(106) AndAlso ChkCotizacion.Checked = False) Then + PnlProveedor.Visible = True : UPProv.Update() : UPPEmp.Update() + DdlProveedores.Enabled = True + End If + BtnGuardar.Enabled = True + If CveEstatus = CveEstatusFinalOK Then + BtnGuardar.Text = String.Format("Guardar{0}", If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, " y Generar OC", "")) + PnlProveedor.Visible = True + DdlProveedores.Enabled = True + + UPProv.Update() : UPPEmp.Update() + End If + + End If + + UPPTab.Update() + uppOpciones.Update() + VerificaCotizacionesGanadoras() + End If + End Sub +#End Region + + Private Function notienepresupuesto() As Boolean + Dim notienerecursos = False + Dim SinRecursos As New StringBuilder + SinRecursos.AppendFormat("No se cuenta con los Recursos Suficientes en los siguientes subproyectos ") + Dim subproyectosSr As New List(Of Integer) + Dim filtro As New StringBuilder + 'me traigo los proyectos y subproyectos para traer presupuesots de la bd + Dim subproyectos As New List(Of Integer) + + For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows + Dim RowCon As DataRow = GlobalDTContratos.FiltroPrimero(String.Format("CveSubProyecto={0}", Row("CveSubProyecto"))) + If Not IsNothing(RowCon) Then + filtro.AppendFormat(",{0}", Row("CveSubProyecto")) + subproyectos.Add(Row("CveSubProyecto").ToString.ToEntero) + End If + Next + 'me traigo los presupuestos de la base de datos + Dim dtpresupuestos As New DataTable + Dim objContratos As New ClsContratos + If objContratos.GetContratosPresupuesto(filtro.ToString) Then + dtpresupuestos = objContratos.DtResultados + End If + objContratos.Dispose() + + 'resto los importes actuales a los presupuestos obtenidos de la bd + For Each dr As DataRow In DtDetalle.Rows + Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTPS(CveEmpresaActual, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSubFamilia"), dr("CveSubProyecto").ToString) + 'Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTProductosServicios(CveEmpresaActual, -1, -1).FiltroPrimero(String.Format("CvePS={0}", dr("CvePS").ToString.ToEntero))("CveSubFamilia").ToString, dr("CveSubProyecto").ToString) + + If dtpresupuestos.Rows.Count > 0 AndAlso dtpresupuestos.Select(psclasificacion).Count > 0 Then + Dim rowpresupuesto As DataRow = dtpresupuestos.Select(psclasificacion)(0) + rowpresupuesto("Importe") = rowpresupuesto("Importe").ToString.ToDouble - dr("Total").ToString.ToDouble() + Else + If subproyectos.Contains(dr("CveSubProyecto").ToString.ToEntero) Then + notienerecursos = True + If Not subproyectosSr.Contains(dr("CveSubProyecto").ToString.ToEntero) Then + subproyectosSr.Add(dr("CveSubProyecto").ToString.ToEntero) + SinRecursos.AppendFormat(",{0}", dr("SubProyecto").ToString) + End If + End If + End If + Next + dtpresupuestos.AcceptChanges() + ' + For Each rowpresupuesto As DataRow In dtpresupuestos.Rows + If (rowpresupuesto("Importe").ToString.ToDouble() < 0) Then + If Not subproyectosSr.Contains(rowpresupuesto("CveSubProyecto").ToString.ToEntero) Then + subproyectosSr.Add(rowpresupuesto("CveSubProyecto").ToString.ToEntero) + SinRecursos.AppendFormat(",{0}", rowpresupuesto("SubProyecto").ToString) + End If + notienerecursos = True + End If + Next + If (notienerecursos) Then + Alert(SinRecursos.ToString, TipoMensaje.MsgAdvertencia) + End If + dtpresupuestos.Dispose() + Return notienerecursos + End Function + + Public Function isWithFamily() As Boolean + Return CveEmpresaActual = 66 + End Function + + Protected Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProveedores.SelectedIndexChanged + Dim Objeto As New ClsCompProveedores + + DdlProveedorSucursal.Items.Clear() + DdlProveedorSucursal.SelectedValue = Nothing + + DdlProveedorContacto.Items.Clear() + DdlProveedorContacto.SelectedValue = Nothing + + If DdlProveedores.SelectedValue = "-1" Then + DivProveedorSucursal.Visible = False + DivProveedorContacto.Visible = False + Else + If Objeto.GetSucursales(DdlProveedores.SelectedValue.ToEntero) Then + If Objeto.DtResultados.Rows.Count > 0 Then + DivProveedorSucursal.Visible = True + DdlProveedorSucursal.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlProveedorSucursal.Items.Insert(1, New ListItem("Matriz", "0")) + DdlProveedorSucursal.DataSource = Objeto.DtResultados + Else + DivProveedorSucursal.Visible = False + End If + End If + + If Objeto.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, DdlProveedores.SelectedValue.ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then + If Objeto.DtResultados.Rows.Count > 0 Then + + Me.CveConfianzaProveedor = Objeto.DtResultados.FiltroPrimeroValor("CveConfianzaProveedor").ToEntero() + ChkCotizacion.Checked = CveConfianzaProveedor > 0 + ChkCotizacion.Enabled = CveConfianzaProveedor <= 0 + End If + End If + + 'MONEDA PREFERENTE + If CveOrdenCompra <= 0 Then + DdlMoneda.SelectedValueExist(Objeto.CveMonedaPreferente) + End If + + 'MUESTRA IVA PROVEEDOR EXTRANJERO + If GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {DdlProveedores.SelectedValue} AND RFC = 'XEXX010101000'").Rows.Count = 1 Then + 'Alert("Proveedor extranjero") + LblLeyendaProveedorIVA.Text = "IVA 0%" + + 'Si es proveedor extranjero selecciona iva al 0% + DdlIVA.SelectedValue = "1" + + Else + LblLeyendaProveedorIVA.Text = "" + 'Si es proveedor selecciona iva al 16% + 'DdlIVA.SelectedValue = "1.16" + + End If + End If + + Objeto.Dispose() + + VerificaSiRequiereCotizacion() + + DdlProveedorSucursal.DataBind() + UPProv.Update() : UPPEmp.Update() + UPPDetalle.Update() + uppEstatus.Update() + + End Sub + + Protected Sub CboE_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboE.SelectedIndexChanged + CargaProyectos() + CargaSubProyectos() + CargaSuperior() + UPPDetalle.Update() + PnlUsuarioAsignado.Visible = False + + + RVProveedores.Enabled = False + 'Si NO requiere cotizacion y el estatus siguiente es el final, + If TipoOC.ToUpper = "REQ" Then + + If ChkCotizacion.Checked = False Then + PnlProveedor.Visible = True : UPProv.Update() + Else + PnlProveedor.Visible = UsuarioActual.Empresa.Funcionalidad(565) = "1" : UPProv.Update() + End If + + If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso TipoOS = False Then + BtnGuardar.Text = "Guardar y Generar OC" : uppOpciones.Update() + RVProveedores.Enabled = True + + If CveEmpresaActual.Contiene(13, 83, 72) Then + PnlUsuarioAsignado.Visible = True + DdlUsuariosAsignado.DataSource = GlobalDTUsuarios(CveEmpresa:=CveEmpresaActual) + DdlUsuariosAsignado.DataBind() + DdlUsuariosAsignado.Items.Insert(0, New ListItem(" - ", "-1")) + End If + Else + VerificaCotizacionesGanadoras() + + If CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso LblMsgEstatus.Text = "" Then + BtnGuardar.Text = "Guardar y Generar OC" + Else + BtnGuardar.Text = "Guardar" + End If + uppOpciones.Update() + End If + + + If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalError AndAlso TipoOS = False Then + BtnGuardar.Text = "Guardar" : uppOpciones.Update() + If CveEstatus <> CveEstatusFinalError Then RegistraScript("$get('divCE').style.display='';PosicionaObjeto('C_CboE','divCE'); ") + End If + Else + RVProveedores.Enabled = True + End If + + + If UsuarioActual.Empresa.UsaAC Then + ActivaAC() + End If + + UPPEmp.Update() + End Sub + +#Region " DATOS DE VENTA (PORLET) " + Protected Sub ChkEntregaDirecta_CheckedChanged(sender As Object, e As EventArgs) + CambiaEntregaDirecta() + End Sub + Private Sub CambiaEntregaDirecta() + DivLugarEntregaDirecta1.Visible = ChkEntregaDirecta.Checked + DivLugarEntregaDirecta2.Visible = ChkEntregaDirecta.Checked + DivAddDireccionEnvio.Visible = ChkEntregaDirecta.Checked + + DdlDireccionEnvio.Visible = False + TxtLugarEntregaDirecta.Visible = False + BtnAgregarDireccion.Visible = False + + If ChkEntregaDirecta.Checked Then + CargaDireccionesEnvioCliente() + End If + End Sub + + Protected Sub Ddlcliente_SelectedIndexChanged(sender As Object, e As EventArgs) + + DdlVendedor.SelectedValueExist(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveVendedor", $"CveCliente = {Ddlcliente.SelectedValue}")) + + DdlDireccionEnvio.Visible = False + TxtLugarEntregaDirecta.Visible = False + BtnAgregarDireccion.Visible = False + CargaDdlSucursalCliente() + + If ChkEntregaDirecta.Checked Then + CargaDireccionesEnvioCliente() + End If + + End Sub + Private Sub CargaDireccionesEnvioCliente() + Dim ObjClientes As New ClsClientes + If ObjClientes.DireccionEnvioGet(-1, Ddlcliente.SelectedValue.ToEntero, -1) Then + DdlDireccionEnvio.DataSource = ObjClientes.DtResultados + If ObjClientes.DtResultados.Rows.Count > 0 Then + DdlDireccionEnvio.Visible = True + BtnAgregarDireccion.Visible = True + Else + TxtLugarEntregaDirecta.Visible = True + TxtLugarEntregaDirecta.Text = "" + BtnAgregarDireccion.Visible = True + End If + End If + ObjClientes.Dispose() + DdlDireccionEnvio.DataBind() + DdlDireccionEnvio.SelectedValueExist(CveDireccionEnvio) + UpVendedor.Update() + End Sub +#End Region + +#Region "ENVIAR CORREO" + Private Sub Notificaciones() + If UsuarioActual.Empresa.Funcionalidad(140).ToString.ToEntero = 1 Then + 'CORREO DE CAMBIA ESTATUS PARA USUARIOS SIGUIENTE ESTATUS + If (EsNuevo = False AndAlso CveEstatus <> CboE.SelectedValue.ToEntero) Or EsNuevo = True Then + Dim RowActual As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue)) + If RowActual IsNot Nothing Then CveEstatusSiguiente = RowActual("CveEstatusSiguiente").ToString.ToEntero + EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text) + End If + + 'CORREO MODIFICADA + If EsNuevo = False And DtHistorial IsNot Nothing Then + Dim Bitacora = DtHistorial.FiltraParametros("CveConceptoHistorialBitacora <> 1").Rows.Count + Dim ObjGral As New ClsGenerales + If ObjGral.GetHistorialBitacora(-1, CveOrdenCompra, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + DtHistorial = ObjGral.DtResultados.FiltraParametros("CveConceptoHistorialBitacora <> 1") + End If + ObjGral.Dispose() + + If Bitacora < DtHistorial.Rows.Count Then + EnviarCorreoModificada() + End If + End If + + 'CORREO PROVEEDOR - SE GENERO OC + If CveOCGeneradas.Count > 0 Then + For i = 0 To CveOCGeneradas.Count - 1 + EnviarCorreoOrdenCompra(CveOCGeneradas(i)) + Next + + If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then + CorreoUsuarioAsignado(CveEstatusSiguiente, CboE.SelectedItem.Text) + End If + End If + + ''CORREO CANCELACIÓN + 'If CanceladoOC Then + + 'End If + + ''CORREO COTIZACIÓN + + ''CORREO BITACORA + 'If Bitacora Then + + 'End If + End If + End Sub + Private Sub MandaCorreo() + Dim Asunto, Para, ArrayCC, RutaPDF, Body As String + Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString) + Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString) + ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString) + RutaPDF = If(IsNothing(ViewState("RutaPDF")), "", ViewState("RutaPDF").ToString) + Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString) + Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC) + 'a.GuardaLog() + + Dim Mail As New ClsSisMail() + Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) + If RutaPDF <> "" AndAlso File.Exists(RutaPDF) Then LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaPDF}) + Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail) + End Sub + Private Sub MandaCorreo2(File As Byte(), Para As String, Asunto As String, Body As String) + + Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) + 'a.GuardaLog() + Dim Mail As New ClsSisMail() + + Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) + LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "OrdenCompra.pdf"}) + + 'Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, , , ".pdf", rutaxml, , , ) + Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) + End Sub + Protected Sub EnviarCorreoBitacora(Bitacora As String, LigaAdjunto As String) + Dim Body As String + 'Dim ArrayCC As String() + + + Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString + 'Dim CorreosCCP As New List(Of String) + Dim StrCorreos As New StringBuilder + + 'Sacar los correos a los que se les notificara + 'Aqui seran los que cambiaron de estatus, que son los niveles inferiores + If DtHistorial IsNot Nothing Then + For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows + StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) + 'CorreosCCP.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) + Next + End If + + ''Aqui seran todos los usuarios que tienen habilitado el estatus actual + 'Dim objOC As New ClsOC + ''PENDIENTE POR EL SUBPROYECTO + 'If objOC.GetEstatusUsuarios(-1, CveEstatus, -1, -1, CveEmpresaActual) Then + ' For Each Row As DataRow In objOC.DtResultados.Rows + ' Array.Resize(CorreosCCP, If(CorreosCCP IsNot Nothing, UBound(CorreosCCP) + 2, 1)) + ' CorreosCCP(UBound(CorreosCCP)) = GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString + ' Next + 'End If + 'objOC.Dispose() + + Try + Body = GeneraCorreo(CveOrdenCompra, "", False, Bitacora, LigaAdjunto) + ViewState("Para") = Correo + ViewState("ArrayCC") = StrCorreos.ToString 'CorreosCCP.Distinct() + ViewState("Asunto") = String.Format("SIG. {0} #{1} Bitacora", TipoLargo, Folio) + 'ViewState("RutaPDF") = "" + ViewState("Body") = Body + Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) + Hilo.Start() + ' Alert("Se enviara correo por cambio Modificacion") + Catch ex As Exception + OnError("Ocurrió error al mandar MAIL de bitacora", ex) + End Try + End Sub + Protected Sub EnviarCorreoModificada() + If CBool(GlobalDTUsuarios(CveUsuario)(0)("Estatus").ToString) Then + Dim Body As String + Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString + Dim StrCorreos As New StringBuilder + + 'Sacar los correos a los que se les notificara + 'Aqui seran los que cambiaron de estatus, que son los niveles inferiores + For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows + StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) + Next + + Try + Body = GeneraCorreo(CveOrdenCompra, "") + ViewState("Para") = Correo + ViewState("ArrayCC") = StrCorreos.ToString 'CorreosCCP.Distinct() + ViewState("Asunto") = String.Format("SIG. {0} #{1} Modificada", TipoLargo, Folio) + ViewState("RutaPDF") = "" + ViewState("Body") = Body + Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) + Hilo.Start() + ' Alert("Se enviara correo por cambio Modificacion") + Catch ex As Exception + OnError("Ocurrió error al mandar MAIL de modificación", ex) + End Try + End If + End Sub + Protected Sub EnviarCorreoCambioEstatus(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True, Optional AsuntoMail As String = "") + Dim strOpciones As New StringBuilder + If CveUsuario = -1 Or Not CBool(GlobalDTUsuarios(CveUsuario)(0)("Estatus").ToString) Then CveUsuario = UsuarioActual.CveUsuario + Dim Para As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString + Dim CorreosCCPNombre As New List(Of String) + Dim objUsuarios As New ClsSisUsuarios + Dim StrCorreos As New StringBuilder + + 'MANDA CORREO A LOS USUARIOS CON EL ESTATUS SIGUIENTE (MODIFICADO) PARA QUE DEN EL SIGUIENTE PASO + If CveEstatusSiguiente > 0 Then + If hdnCveSuperior.Value.ToEntero > 0 Then + 'SI TIENE SUPERIOR MANDA CORREO A TODOS LOS DEL SIGUIENTE ESTATUS + StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(hdnCveSuperior.Value.ToEntero)(0)("correo").ToString) + Else + 'SI NO TIENE SUPERIOR LO BUSCA PARA MANDAR CORREO + Dim objOC As New ClsOC + For Each RowSP As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto"}).Rows + If RowSP("CveSubProyecto").ToString.ToEntero > 0 Then + If objOC.GetEstatusUsuarios(-1, pCveEstatus, RowSP("CveSubProyecto").ToString.ToEntero, -1, CveEmpresaActual, -1, 1) Then + For Each Row As DataRow In objOC.DtResultados.Rows + 'INCLUIR FILTRO DE LIMITE SUPERIOR E INFERIOR + If (IsDBNull(Row("LimiteInferior")) OrElse Row("LimiteInferior").ToString.ToDecimal < LblTotal.Text.ToDecimal) And (IsDBNull(Row("LimiteSuperior")) OrElse Row("LimiteSuperior").ToString.ToDecimal > LblTotal.Text.ToDecimal) Then + StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) + CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString) + End If + Next + End If + End If + Next + objOC.Dispose() + End If + End If + + 'MANDA CORREO A TODOS LOS USUARIOS INVOLUCRADOS + If DtHistorial IsNot Nothing Then + For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows + StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString) + CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString) + Next + End If + + strOpciones.AppendFormat("Se ha cambiado la {0} #{1} al estatus {2}

    ", TipoLargo, Folio, Estatus) + strOpciones.Append("
    ") + strOpciones.Append("
    ") + strOpciones.Append(" Opciones ") + strOpciones.Append("
    ") + + 'verifico los permisos según el estatus + 'Const Sitio As String = "rm:90/" + Dim StrSupervisa As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=SUPERVISAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now))) + Dim StrAutoriza As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=AUTORIZAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now))) + Dim StrCancela As String = "" ' = String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=CANCELAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, UsuarioActual.CveUsuario, Now))) + Dim StrReqCotiza As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=REQCONTIZACION&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now))) + + 'si se acaba de solicitar y se necesita supervisar + If pCveEstatus = 1 Then strOpciones.AppendFormat(" ", StrSupervisa) + 'si se acaba de supervisar y se necesita autorizar + If pCveEstatus = 2 Then + strOpciones.AppendFormat(" ", StrAutoriza) + strOpciones.AppendFormat(" ", StrReqCotiza) + End If + 'si se quiere cancelar + strOpciones.AppendFormat(" ", StrCancela) + + strOpciones.Append("
    Supervisar
    Autorizar
    Autorizar con Cotización
    Cancelar
    ") + strOpciones.Append(" ") + strOpciones.Append("
    ") + + 'NOTIFICA QUE OCS SE GENERARON + Dim OCsGeneradas As New StringBuilder + If FolioOCGeneradas.Count > 0 Then + OCsGeneradas.Append("Se generaron la(s) siguiente(s) orden(es) de compra: ") + For Each FolioOC In FolioOCGeneradas + OCsGeneradas.Append($" #{FolioOC} ") + Next + End If + + Dim Body As String = GeneraCorreo(CveOrdenCompra, OCsGeneradas.ToString) 'strOpciones.ToString) 'genero los datos de la OC + Try + ViewState("Para") = Para + ViewState("ArrayCC") = StrCorreos + ViewState("Asunto") = String.Format("SIG - La {0} #{1} cambió de estatus.", TipoLargo, Folio) + ViewState("RutaPDF") = "" + ViewState("Body") = Body + Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) + Hilo.Start() + Catch ex As Exception + If NotificarAlert = True Then OnError("Ocurrió error al mandar MAIL por cambio de Estatus", ex) + End Try + + End Sub + +#Region " ENVIAR CORREO USUARIO ASIGNADO " + + Protected Sub MandaCorreoUsuario(Para As String, CorreosCCP As String, CorreosCCPNombre As List(Of String), Optional NotificarAlert As Boolean = True) + Dim strOpciones As New StringBuilder + Dim Body As String = GeneraCorreo(CveOrdenCompra, "") 'strOpciones.ToString) 'genero los datos de la OC + + Try + ViewState("Para") = Para + ViewState("ArrayCC") = CorreosCCP + ViewState("Asunto") = String.Format("SIG - La {0} #{1} se le ha asignado", TipoLargo, Folio) + ViewState("RutaPDF") = "" + ViewState("Body") = Body + + 'ViewState("ArrayCCNombre") = CorreosCCPNombre.Distinct() + + Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) + Hilo.Start() + ' If NotificarAlert = True Then Alert("Se enviara correo por cambio de Estatus") + Catch ex As Exception + If NotificarAlert = True Then OnError("Ocurrió error al mandar MAIL por cambio de Estatus", ex) + End Try + End Sub + + Protected Sub CorreoUsuarioAsignado(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True) + If CBool(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("Estatus").ToString) Then + 'Dim CorreosCCP As New List(Of String) + Dim StrCorreos As New StringBuilder + Dim CorreosCCPNombre As New List(Of String) + Dim Para As String = GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString + + 'SI TIENE ASIGNADO TAMBIEN SE LE MANDA CORREO + If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then + 'CorreosCCP.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString) + StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString) + CorreosCCPNombre.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("nombre").ToString) + End If + + Dim strOpciones As New StringBuilder + + + strOpciones.AppendFormat("La orden de Compra {0} se le ha asignado br>
    ", Folio) + + strOpciones.Append("
    ") + strOpciones.Append("
    ") + strOpciones.Append(" Opciones ") + strOpciones.Append(" ") + + strOpciones.AppendFormat(" ", UrlSitio, CveOrdenCompra) + + + strOpciones.Append("
    Ir a OC
    ") + strOpciones.Append("
    ") + strOpciones.Append("
    ") + + MandaCorreoUsuario(Para, StrCorreos.ToString, CorreosCCPNombre, NotificarAlert) + End If + End Sub +#End Region + +#Region " enviarCorreoOrdenDeCompra " + Protected Sub EnviarCorreoOrdenCompra(CveOrdenCompra As Integer) + Dim CveProveedor As Integer + Dim strOpciones As New StringBuilder + + strOpciones.AppendFormat("Se ha Generado una Orden de Compra.

    ") + + Dim Body As String = GeneraCorreoProveedor(CveOrdenCompra, CveProveedor) 'genero los datos de la OC + Dim Correo As String = "" + 'si tiene seleccionada una sucursal, obtengo su correo, sino tiene especificado tomo el correo principal del proveedor + If DdlProveedorSucursal.SelectedValue.ToEntero > 0 Then Correo = GlobalDTProveedorSucursales(CveProveedor).FiltroPrimeroValor("Correo", $"CveProveedorSucursal={DdlProveedorSucursal.SelectedValue}") + If Correo = "" Then Correo = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {CveProveedor}")(0)("ContactoMail").ToString + + Try + Dim File As Byte() = NewGeneraBytesOC(CveOrdenCompra) + Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo2(File, Correo, "SIG - Se Genero una Orden de Compra", Body)) + Hilo.Start() + Catch ex As Exception + OnError("Ocurrió error al mandar MAIL de Orden de Compra", ex) + End Try + End Sub + + +#End Region + + Private Function GeneraCorreo(CveOrdenCompra As Integer, Opciones As String, Optional IncluirDetalles As Boolean = True, Optional Bitacora As String = "", Optional LigaAdjunto As String = "") As String + Dim strBody As New StringBuilder + Dim objOC As New ClsOC + + If objOC.GetOC(CveOrdenCompra, CveEmpresaActual) Then + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat("
    Datos {0} ", TipoLargo) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", UrlSitio, objOC.CveOrdenCompra, objOC.Folio, objOC.Estatus) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", objOC.Empresa) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", objOC.Descripcion) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", objOC.Justificacion) + strBody.Append(" ") + strBody.Append("
    Folio:{2} Estatus: {3}
    Empresa:{0}
    Descripción:{0}
    Justificación
    ") + strBody.Append("
    ") + strBody.Append("
    ") + 'Cargo el detalle + If IncluirDetalles = True Then + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append(" Opciones ") + strBody.Append(" ") + strBody.AppendFormat(" ", If(CveEmpresaActual = 66, "Proyecto", "Proyecto
    SubProyecto")) + + 'verifico los permisos según el estatus + + If objOC.GetOrdenesDetalle(CveOrdenCompra) Then + For Each dr As DataRow In objOC.DtResultados.Rows + strBody.AppendFormat("", + dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("Clasificacion"), dr("PS"), dr("Observacion"), dr("Proyecto"), If(CveEmpresaActual = 66, "", dr("SubProyecto")), dr("Codigo"), If(Not IsDBNull(dr("Importe")), FormatCurrency(dr("Importe").ToString), ""), If(Not IsDBNull(dr("Total")), FormatCurrency(dr("Total").ToString), "")) + + Next + End If + + strBody.Append("
    CantidadUnidadProducto o ServicioObservacion{0}Activo FijoP.U.Total
    {0}{1}{2}
    {3}
    {4}{5}
    {6}
    {7}{8}{9}
    ") + strBody.Append("
    ") + strBody.Append("
    ") + Else + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append(" Bitacora ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + If LigaAdjunto <> "" Then strBody.AppendFormat(" ", LigaAdjunto) + strBody.Append(" ") + strBody.Append("
    ") + strBody.AppendFormat(" {0}", Bitacora) + strBody.Append("
    El usuario agrego el siguiente archivo: Adjunto
    ") + strBody.Append("
    ") + strBody.Append("
    ") + End If + 'strBody.Append(Opciones) + strBody.Append(Opciones) + strBody.Append("") + End If + + objOC.Dispose() + + Return strBody.ToString + End Function + Private Function GeneraCorreoProveedor(CveOrdenCompra As Integer, ByRef CveProveedor As Integer) As String + Dim strBody As New StringBuilder + Dim objOC As New ClsOC + + objOC.GetOC(CveOrdenCompra, CveEmpresaActual) + CveProveedor = objOC.CveProveedor + Dim DttDetalle As DataTable = Nothing + If objOC.GetOrdenesDetalle(CveOrdenCompra) Then + DttDetalle = objOC.DtResultados + End If + + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat("
    Datos de Orden de Compra ") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", objOC.Folio, objOC.Estatus) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", objOC.Empresa) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", objOC.Descripcion) + strBody.Append(" ") + strBody.Append("
    Folio:{0} Estatus: {1}
    Empresa:{0}
    Descripción:{0}
    ") + strBody.Append("
    ") + strBody.Append("
    ") + 'Cargo el detalle + + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append(" Opciones ") + strBody.Append(" ") + strBody.Append(" ") + + 'verifico los permisos según el estatus + + For Each dr As DataRow In DttDetalle.Rows + strBody.AppendFormat("", + dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS"), dr("Obs"), dr("Importe").ToString.FormatoNumero) + + Next + + + strBody.Append("
    CantidadUnidadDescripciónObservaciónPrecio
    {0}{1}{2}{3}{4}
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append("") + + objOC.Dispose() + + Return strBody.ToString + End Function + +#End Region + +#Region "Correo Eliminar Cotización" + Private Function GeneraCorreoEliminarCotizacion(CveCotizacion As Integer, Motivo As String) As String + Dim ObjCotizacion As New ClsOC + ObjCotizacion.GetCotizaciones(CveOrdenCompra, CveCotizacion) + Dim strBody As New StringBuilder + 'strBody.Append("

    Motivo de Eliminación

    ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + + strBody.Append(" ") + strBody.AppendFormat("
    Por medio del presente correo electrónico se notifica que se ha eliminado la cotización con folio {0}

    ", ObjCotizacion.Folio) + strBody.Append("
    ") + strBody.AppendFormat("
    Datos {0} ", "Cotización") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", ObjCotizacion.Empresa) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Now.ToShortDateString) + strBody.Append(" ") + strBody.Append("
    Empresa:{0}
    Fecha Eliminación:{0}  
    ") + strBody.Append("
    ") + strBody.Append("
    ") + 'Cargo el detalle + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append(" Productos a Cotizar ") + strBody.Append(" ") + strBody.Append(" ") + + Dim dtConceptos As DataTable = Nothing + If ObjCotizacion.GetOrdenesDetalle(CveOrdenCompra) Then + dtConceptos = ObjCotizacion.DtResultados + End If + + For Each dr As DataRow In dtConceptos.Rows + strBody.AppendFormat("", dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS")) ', dr("Clasificacion"), dr("Codigo")) + Next + 'For Each dr As GridViewRow In gvCotizaciones.Rows + ' strBody.AppendFormat("", dr.Cells(0).ToString.FormatoNumero, dr.Cells(1).ToString, dr.Cells(2).ToString) ', dr("Clasificacion"), dr("Codigo")) + 'Next + + strBody.Append("
    CantidadUnidadDescripción
    {0}{1}{2}
    {0}{1}{2}
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.AppendFormat("

    Motivo de eliminación:

    ", Motivo) + strBody.AppendFormat("

    {0}

    ", Motivo) + strBody.Append("
    ") + strBody.Append("") + ObjCotizacion.Dispose() + Return strBody.ToString + End Function + + + + + + +#End Region + +#Region " CARGAR DESDE EXCEL " + + Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click + If TxtExcel.getfiles().Archivos.Count > 0 Then + Dim file As Archivo = TxtExcel.getfiles().Archivos(0) + Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch + Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") + CargarArchivo(Directorio, file.filename, Tipo) + Else + Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError) + End If + End Sub + + Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) + + Dim dt As New DataTable + Dim Conexion As Odbc.OdbcConnection = Nothing + Dim ErrorArchivo = False + Try + Select Case Tipo + Case "EXCEL" + Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") + Conexion.Open() + Dim cmd = Conexion.CreateCommand() + cmd.CommandType = CommandType.Text + cmd.CommandText = "SELECT * FROM [Hoja1$]" + Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) + DataAdapter.Fill(dt) + Case Else + Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) + Exit Sub + End Select + Catch ex As Exception + ErrorArchivo = True + OnError("Ocurrio un error al leer el archivo
    " & ex.Message, ex) + End Try + Conexion.Close() + If Not ErrorArchivo Then + If Not dt.Columns(0).ColumnName = "Cantidad" Then + Alert("El nombre de la primera columna debe ser 'Cantidad'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(1).ColumnName = "Código" Then + Alert("El nombre de la segunda columna debe ser 'Código'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(2).ColumnName = "Código de Barras" Then + Alert("El nombre de la tercera columna debe ser 'Código de Barras'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(3).ColumnName = "Producto/Servicio" Then + Alert("El nombre de la cuarta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(4).ColumnName = "Proyecto" Then + Alert("El nombre de la quinta columna debe ser 'Proyecto'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(5).ColumnName = "Observaciones" Then + Alert("El nombre de la sexta columna debe ser 'Observaciones'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(6).ColumnName = "PU" Then + Alert("El nombre de la séptima columna debe ser 'P.U'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(7).ColumnName = "Descuento" Then + Alert("El nombre de la octava columna debe ser 'Descuento'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + dt.TableName = "Datos" + + If Not ErrorArchivo Then + NumRow = 0 + Dim RowNoEncontrados As String = String.Empty + Dim NumAgregados As Integer = 0 + For Each Row As DataRow In dt.Rows + Dim Cantidad As String = Row("Cantidad").ToString + Dim Codigo As String = Row("Código").ToString.Trim.ToUpper + Dim CodigoBarras As String = Row("Código de Barras").ToString.Trim.ToUpper + Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper + Dim Proyecto As String = Row("Proyecto").ToString.Trim.ToUpper + Dim Observaciones As String = Row("Observaciones").ToString + Dim PrecioUnitario As String = Row("PU").ToString + Dim Descuento As Double = Row("Descuento").ToString.ToDouble * Cantidad.ToDouble 'RMF, cambio a multiplicar por cantidad 2018.04.21 + Dim CvePS As Integer = 0 + Dim CveProyecto As Integer = 0 + Dim CveSubProyecto As Integer = 0 + Dim Existe As Boolean = False + Dim DrProyecto As DataRow + Dim SubProyecto As String = "" + + NumRow = NumRow + 1 + + If Proyecto <> "" Then + Dim DtSubProyecto As DataTable = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) + DtSubProyecto.CaseSensitive = False + DrProyecto = DtSubProyecto.FiltroPrimero($"(SubProyecto) = '{Proyecto}'") + If DrProyecto IsNot Nothing Then + CveSubProyecto = DrProyecto("CveSubProyecto").ToString.ToEntero + CveProyecto = DrProyecto("CveProyecto").ToString.ToEntero + SubProyecto = DrProyecto("SubProyecto").ToString + End If + Else + CveProyecto = -1 + CveSubProyecto = -1 + End If + + If Codigo.Length > 0 Then + Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c) + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If + ElseIf CodigoBarras.Length > 0 Then + Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c) + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If + ElseIf ProductoServicio.Length > 0 Then + Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c) + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If + Else + RowNoEncontrados &= "<\BR>    - En la fila " & NumRow & " no se especificó código, código de barras ó descripción." + End If + + + If Not CvePS > 0 Then + Continue For + End If + + 'Agregar PS + If DtDetalle IsNot Nothing Then + Dim dr As DataRow = DtDetalle.NewRow + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") + If DrPS Is Nothing Then + Alert("Ocurrió un error al cargar la información de los productos del archivo. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Continue For + End If + Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble + Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble + Dim PS As String = DrPS("PS").ToString + Dim TotalPS As Double = If(PrecioUnitario.ToDouble > 0, PrecioUnitario.ToDouble * Cantidad.ToDouble - Descuento, 0) + Dim CveUnidadMedida As Integer = DrPS("CveUnidadMedida").ToString.ToEntero + Dim UM As String = DrPS("UnidadMedida").ToString + Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble + 'If IvaPS = -1 Then + ' Dim Drr As DataRow = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero())(0) + ' IvaPS = Drr("IVA").ToString().ToDouble() + 'End If + Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble + Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) + Dim CveClasificacion As Integer = DrPS("CveClasificacion").ToString.ToEntero + Dim Clasificacion As String = DrPS("Clasificacion").ToString + Dim CveActivoFijo = HdnCveActivoFijo.Value.ToEntero + Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero) + Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero) + Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 + + AddPS(Cantidad, CvePS, PS, Observaciones, PrecioUnitario.ToDouble, Descuento, TotalPS, CveUnidadMedida, IvaPS, IEPSPS, IEPSPSIVA, CveClasificacion, UM, Clasificacion, CveSubProyecto, Proyecto, CveSubProyecto, SubProyecto, LblCodigo.Text, + CveActivoFijo, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer, IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero, + DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR) + + End If + Next + + + 'Cargo el GridView + GvD.DataSource = DtDetalle + GvD.DataBind() + CargaSuperior() + CargaDatosDetalles() + UPPDetalle.Update() + + If RowNoEncontrados.Length > 0 Then + Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia) + Else + Alert("Se Cargaron " & DtDetalle.Rows.Count & " Productos o Servicios correctamente.") + End If + End If + End If + End Sub + + Private Function GetPS(Opt As String, Valor As String) As String + Dim StrReturn As String = String.Empty + Dim CvePS As Integer = 0 + CvePS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", Opt & " = '" & Valor & "'").ToString.ToEntero + If CvePS > 0 Then + StrReturn = "True|" & CvePS.ToString + Else + + StrReturn = "False|    - No se encontró " & Valor & " en la fila " & NumRow & ", columna " & Opt + End If + Return StrReturn + End Function + + Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click, LbDescargarExcel.Click + Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoOC.xlsx" + 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 + + +#End Region + +#Region " CREAR APARTIR DE " + Private Sub ActivaCrearApartirDe() + If EsNuevo Then + Exit Sub + End If + + BtnCrearApartirDe.Visible = True + + uppOpciones.Update() + End Sub + Protected Sub BtnCrearApartirDe_Click(sender As Object, e As System.EventArgs) Handles BtnCrearApartirDe.Click + EsCreaApartirDe = True + 'Habilito los Controles + CboE.Enabled = True + CboE.BackColor = Drawing.Color.White + 'CboE.SelectedIndex = 0 + CboE_SelectedIndexChanged(CboE, EventArgs.Empty) + + + GvD.Columns(9).Visible = True 'Permitir la edicion + lblTipoPadreHijo.Visible = False + GvD.Columns(10).Visible = False + LblCompra.Visible = False + GvD.Columns(11).Visible = False + + ChkCotizacion.Visible = True + ChkCotizacion.Enabled = True + TxtFolioAdicional.Enabled = True + DdlPrioridad.Enabled = True + txtobsprioridad.Enabled = True + TxtDescrip.Enabled = True + TxtJustificacion.Enabled = True + TxtFechaEstimadaEntrega.Enabled = True + txtLugarEntrega.Enabled = True + TxtLugarEntregaDirecta.Enabled = True + + gvCotizaciones.Enabled = True + DdlProveedores.Enabled = True + DdlUsoCFDI.Enabled = True + 'DdlIVA.Enabled = True + + ImgCambiaProv.Visible = False + TrPendientes.Visible = False + ImgCambiaClienteVendedor.Visible = False + + Ddlcliente.Enabled = True + DdlVendedor.Enabled = True + ChkEntregaDirecta.Enabled = True + + 'Habilito Controles de PS + TxtCant.Enabled = True + DdlClasificacion.Enabled = True + DdlP2.ddl.Enabled = True + DdlP2.Enabled = True + CboUnidadMedida.Enabled = True + TxtObsPS.Enabled = True + DdlProyecto.Enabled = True + DdlSubProyecto.Enabled = True + txtPrecioUnitario.Enabled = True + DdlIVA.Enabled = True + DdlMoneda.Enabled = True + LbAgregar.Enabled = True + + 'Limpiar datos generales + 'TxtDescrip.Text = "" + 'TxtJustificacion.Text = "" + TxtFechaEstimadaEntrega.Text = "" + 'txtLugarEntrega.Text = "" + InicializarValoresCrearApartirDe() + + 'Reseteo los GVs + gvEstatus.DataSource = Nothing + gvEstatus.DataBind() + fsSeguimiento.Visible = False + GVH.DataSource = Nothing + GVH.DataBind() + fsHistorial.Visible = False + GvEB.DataSource = Nothing + GvEB.DataBind() + + 'Cargo Folio, Usuario y Fecha nuevos + TxtFecha.Text = Now.ToShortDateString + lblNombreUsuario.Text = UsuarioActual.Nombre + CargaFolios() + BtnGuardar.Enabled = True + EsNuevo = True + + For Each Row As GridViewRow In GvD.Rows + Row.Cells(8).Enabled = True + Row.Cells(9).Enabled = True + Row.FCLinkButton("imgD").Visible = True + Row.FCLinkButton("imgE").Visible = True + Next + GvD.Enabled = True + + BtnCancelarPrevio.Visible = False + BtnCrearApartirDe.Visible = False + + + uppSeguimientoEstatus.Update() + UPProv.Update() + UPPEmp.Update() + UPPDetalle.Update() + uppEstatus.Update() + uppHistorial.Update() + UPEventoBitacora.Update() + UpIvas.Update() + uppOpciones.Update() + UpVendedor.Update() + + End Sub + Private Sub InicializarValoresCrearApartirDe() + ViewState("NumCotizacionesGanadoras") = 0 + ViewState("TotalCotizacionesGanadoras") = 0 + ViewState("CveEstatus") = -1 + ViewState("CveEstatusSiguiente") = -1 + EditarOC = False + CveEstatusFinalOK = -2 + 'BtnCancelarPrevio.Disabled = True + BtnCancelarPrevio.Enabled = False + Folio = 0 + 'ViewState("ArrayCCNombre") = "" + ViewState("ArrayCC") = "" + ViewState("EjercicioAC") = -1 + ViewState("CveUsuario") = -1 + CveVenta = -1 + TieneVenta = -1 + TieneCompraInv = -1 + CveCompra = -1 + CveMovimientoAlmacenVenta = -1 + IDPolizaPresupuestal = -1 + + Dim drE As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = 'OC' AND TipoTermino = 3")).FiltroPrimero("") + If drE IsNot Nothing Then ViewState("CveEstatusInicialOC") = drE("CveEstatus").ToString.ToEntero + + ViewState("LigaOCs") = "" + ViewState("CveOCGeneradas") = New List(Of Integer) + ViewState("FolioOCGeneradas") = New List(Of Integer) + ViewState("IDPolizasGeneradas") = New List(Of Integer) + ViewState("FoliosPolizas") = New List(Of Integer) + Session("FileUpload") = "" + Session("FileExtension") = "" + Session("FileFolder") = "" + TipoOS = False + RequiereSubProyecto = If(CveEmpresaActual = 48, False, True) + txtPrecioUnitario.Attributes.Add("onKeyUp", "obtenertotal();") + TxtCant.Attributes.Add("onKeyUp", "obtenertotal();") + TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID)) + Dim script As String = "obtenertotal();" + ScriptManager.RegisterStartupScript(Me, GetType(Page), "anioactual", script, True) + VerificaPresupuesto = False + RVSubProyecto.Enabled = If(RequiereSubProyecto = True, True, False) + GvD.Columns(10).Visible = False + CargaComboCFDI() + CargaMonedas() + 'CargaClasificaciones() + 'CargaUnidadesMedida() + BtnCancelar.Attributes.Add("disabled", "disabled") + TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)") + trContabilizada.Visible = False + HplCompraContabilizada.Text = "" + CargaTipoActivoFijo() + DrEliminados = New ArrayList + + DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual) + DdlSAUsuario.DataBind() + + Dim CveProveedorPrevio As String = DdlProveedores.SelectedValue + Dim CveProveedorSucursalPrevio As String = DdlProveedorSucursal.SelectedValue + CargaProveedores() + DdlProveedores.SelectedValueExist(CveProveedorPrevio) + DdlProveedores_SelectedIndexChanged(DdlProveedores, EventArgs.Empty) + If DdlProveedorSucursal.Visible Then + DdlProveedorSucursal.SelectedValueExist(CveProveedorSucursalPrevio) + DdlProveedorSucursal.Enabled = True + DdlProveedorContacto.Enabled = True + End If + + CargarOptionAnticipos() + HlAgregarExcel.Visible = True + LbDescargarExcel.Visible = True + + CargaEstatusInicialFinal() + CargaEstatusUsuarios() + CargaEstatusOC() + + 'Estatus Default 66 + If CveEmpresaActual = 66 Then + CboE.SelectedValueExist(18) + End If + + + TxtFecha.Text = Now.ToString("dd/MM/yyyy") + lblNombreUsuario.Text = UsuarioActual.Nombre + ViewState("CveOrdenCompra") = 0 + CargaFolios() + 'BtnCancelarPrevio.Disabled = True + BtnCancelarPrevio.Enabled = False + + If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False + + PnlProveedor.Visible = True : UPProv.Update() + + '12/04/2018 + 'DdlIVA.Visible = True + + If UsuarioActual.Empresa.UsaAC Then + ActivaAC() + End If + + hplAgregarCotizacion.Visible = False + hplEnviarCorreo.Visible = False + + 'ASIGNA ESTATUS OC + CboE_SelectedIndexChanged(New Object, New EventArgs) + + 'Actualiza Menu Acciones + HLImprimir.Visible = False + HLImprimirCotizacion.Visible = False + + generarAnticipo.Visible = False + HLGenerarVenta.Visible = False + HLGenerarRecepcion.Visible = False + + BtnSolicitudAnticipo.Visible = False + HlAgregarExcel.Visible = True + LbDescargarExcel.Visible = True + BtnGeneraContrato.Visible = True : CargaClientes() + + LbVerificarExistencia.Visible = True + LnkAgregarGuia.Visible = False + + HlEvento.Visible = False + + UpAccionesBitacora.Update() + UpContrato.Update() + UpAcciones.Update() + End Sub +#End Region + +#Region " ACTUALIZA OC " + Protected Sub ImgCambiaProv_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCambiaProv.Click + Dim OC As New ClsOC + If OC.UpdateProveedorOrdenCompra(DdlProveedores.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, CveEmpresaActual) Then + CargaHistorial() + Alert("El cambio de proveedor se hizo correctamente", TipoMensaje.MsgInformacion) + End If + OC.Dispose() + End Sub + Protected Sub ImgCambiaClienteVendedor_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCambiaClienteVendedor.Click + Dim OC As New ClsOC + If OC.UpdateClienteVendedorOrdenCompra(Ddlcliente.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, CveEmpresaActual) Then + CargaHistorial() + Alert("El cambio de cliente/vendedor se hizo correctamente", TipoMensaje.MsgInformacion) + End If + OC.Dispose() + End Sub +#End Region + +#Region "OC X SURTIR" + Private Sub lblPendientes_Click(sender As Object, e As EventArgs) Handles lblPendientes.Click + CargaOCxSurtir() + RegistraScript(String.Format("$('#{0}').modal();", "DivOCxSurtir")) + End Sub + Private Sub CargaOCxSurtir() + Dim ObjOC As New ClsOC + + If ObjOC.GetPendietePorSurtirOC("-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOrdenCompra) Then + GvDatosOCxSurtir.DataSource = ObjOC.DtResultados.FiltraParametros("CodigoPS <> ''") + Else + GvDatosOCxSurtir.DataSource = Nothing + End If + GvDatosOCxSurtir.DataBind() + + ObjOC.Dispose() + UpDatosOCxSurtir.Update() + End Sub + Protected Sub LnkCompra_Click(sender As Object, e As EventArgs) + CargaOCVinculada(CType(sender, LinkButton).CommandArgument.ToEntero) + ' Alert("Ok") + End Sub + Private Sub CargaOCVinculada(CveOCDetalle As Integer) + Dim ObjOC As New ClsOC + + If ObjOC.GetOCVinculadasPendientes(CveOCDetalle) Then + GvOCVinculada.DataSource = ObjOC.DtResultados + Else + GvOCVinculada.DataSource = Nothing + End If + GvOCVinculada.DataBind() + + ObjOC.Dispose() + UpBodyOCVinculada.Update() + UpOCVinculada.Update() + + RegistraScript("$('#DivOCVinculada').modal('show');") + End Sub + + Private Sub LbVerificarExistencia_Click(sender As Object, e As EventArgs) Handles LbVerificarExistencia.Click + 'RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacenDT.aspx?CveOrdenCompra={0}',800,547,'N');", CveOrdenCompra)) + VerificarExistencias() + End Sub + Private Sub VerificarExistencias() + + Dim tmpDTPS As DataTable = DtDetalle + Dim DTAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($" CveTipoAlmacen IN (1,9) ") 'AND CveSucursal = {CveSucursal}") + Dim objInv As New ClsInventarios + Dim consulta As New StringBuilder + + + consulta.Append(" ") + consulta.Append(" DECLARE @TEMP TABLE (CvePS INT, CveSubProyecto INT);") + For Each row As DataRow In tmpDTPS.Rows + consulta.AppendFormat("INSERT INTO @TEMP VALUES ({0},{1});", row("CvePS"), row("CveSubProyecto")) + Next + consulta.Append(" SELECT CASE WHEN LEN (ISNULL (P.Codigo, '')) = 0 THEN P.PS ELSE CONCAT( P.Codigo, ' - ', P.PS) END AS Producto, SUM(OCPR.Cantidad) AS [Por Recibir] ") + For Each row As DataRow In DTAlmacen.Rows + consulta.AppendFormat(" ,SUM(CASE WHEN CS.CveAlmacen={0} THEN CS.Existencia - ISNULL(INV.Cantidad,0) ELSE 0 END) AS [{1}] ", row("CveAlmacen"), row("Almacen")) + Next + consulta.Append(" FROM @TEMP T ") + consulta.Append(" INNER JOIN [ProductosServicios] P ON P.CvePS = T.CvePS ") + consulta.Append(" LEFT JOIN [Inv_ExistenciasProductos] CS ON P.CvePS = CS.CvePS ") + consulta.Append(" LEFT JOIN Vw_InventarioPorSurtir INV ON INV.CvePS = P.CvePS AND INV.CveAlmacen = CS.CveAlmacen ") + consulta.Append(" LEFT JOIN Vw_OC_PorRecibir OCPR ON OCPR.CvePS = P.CvePS AND OCPR.CveAlmacen = CS.CveAlmacen AND OCPR.CveSubProyecto = T.CveSubProyecto") + consulta.Append(" WHERE P.CveTipoPS = 2") + consulta.Append(" GROUP BY P.CvePS,P.Codigo,P.PS") + + objInv.GetQuery(consulta.ToString()) + + ' limpio los almacenes donde no tiene ningun producto existencia + For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1 + If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CvePS", "PSCodigo") AndAlso objInv.DtResultados.SUM(String.Format("[{0}]", objInv.DtResultados.Columns(i).ColumnName)) = 0 Then + objInv.DtResultados.Columns.RemoveAt(i) + End If + Next + + tmpDTPS = objInv.DtResultados + objInv.Dispose() + GvExist.DataSource = tmpDTPS + GvExist.DataBind() + + 'ORDENA HACIA LA DERECHA LAS CANTIDAD - OJO!! NO SE USO GV.COLUMNS.COUNT PORQUE LAS COLUMNAS GENERADAS EN BEHIND NO LAS RECONOCE + For index = 1 To tmpDTPS.Columns.Count - 1 + For Each gvr As GridViewRow In GvExist.Rows + gvr.Cells(index).HorizontalAlign = HorizontalAlign.Right + Next + Next + + 'GvExist.Columns(1).Visible = False + 'GvExist.Columns(2).HeaderText = "Producto" + RegistraScript("$('#DivModalExistenciaTotal').modal('show');") + UPExist.Update() + End Sub + + +#End Region + +#Region " SUCURSAL PARA EXISTENCIAS DE DDLOST" + Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) + If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then + SeleccionaSucursal() + End If + End Sub + Private Sub CargaSucursal() + DdlSucursal.DataSource = GlobalDTSubProyectos(-1).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + DdlSucursal.DataBind() + DdlSucursal.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlSucursal.SelectedValue = "-1" + + SeleccionaSucursal() + + End Sub + Private Sub SeleccionaSucursal() + If DdlSubProyecto.SelectedValue.ToEntero > 0 Then + DdlSucursal.SelectedValueExist(DdlSubProyecto.SelectedValue.ToEntero) + End If + DdlP2.Attributes.Remove("Data-cvesubproyecto") + DdlP2.Attributes.Add("Data-cvesubproyecto", DdlSucursal.SelectedValue) + End Sub +#End Region + +#Region " TAB ALMACEN " + Private Sub InicializaMovtosAlmacen() + + If CveOrdenCompra > 0 Then + Dim ObjInventarios As New ClsInventarios + + If ObjInventarios.GetMovimientosOC(CveOrdenCompra, CveEmpresaActual) Then + TabAlmacen.Visible = True + If ObjInventarios.DtResultados.Rows.Count > 0 Then + GVInv.DataSource = ObjInventarios.DtResultados + End If + GVInv.DataBind() + End If + + ObjInventarios.Dispose() + UpAlmacen.Update() + End If + + End Sub + Protected Sub GVInv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVInv.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + + If e.Row.DBCampo("CvePS") = "" Then + 'TITULO + + e.Row.FCLiteral("LtProducto").Text = $"{e.Row.DBCampo("CodigoPS")}" + + e.Row.HorizontalAlign = HorizontalAlign.Center + e.Row.Cells(0).Visible = False + e.Row.Cells(1).Visible = False + e.Row.Cells(2).ColumnSpan = 3 + e.Row.Cells(3).Visible = False + e.Row.Cells(4).Visible = False + e.Row.Cells(5).Visible = False + + If e.Row.DBCampo("Origen").ToEntero > 0 Then + e.Row.CssClass = "SubTotales" + Else + e.Row.BackColor = Drawing.Color.FromArgb(224, 130, 131) + e.Row.ForeColor = Drawing.Color.White + e.Row.Font.Bold = True + End If + + Else + 'DETALLE + + If e.Row.DBCampo("SerieLote") <> "" Then + GVInv.Columns(4).Visible = True + End If + + If e.Row.DBCampo("Lote") <> "" Then + GVInv.Columns(4).Visible = True + End If + + If e.Row.DBCampo("Batch") <> "" Then + GVInv.Columns(4).Visible = True + End If + + End If + + + + End If + End Sub + +#End Region + +#Region "TIPO OC: INGRESO / GASTO" + Private Sub VerificarClasificaciones(Optional AfterPageLoad As Boolean = False) + If AfterPageLoad Then + RegistraScript("window.onload = function MuestraClasificaciones() { document.getElementById(""C_BtnMostrarClasificaciones"").click(); }") + Else + PresionarBotonModal("C_BtnMostrarClasificaciones") + End If + + End Sub + Private Sub PresionarBotonModal(Boton As String) + Try + Dim script As String = $"document.getElementById(""{Boton}"").click();" + Dim Pag As Page = DirectCast(System.Web.HttpContext.Current.Handler, Page) + ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, script, True) + Pag = Nothing + Catch ex As Exception + End Try + End Sub + Private Sub BtnIniciarContrato_Click(sender As Object, e As EventArgs) Handles BtnIniciarContrato.Click + CargaClasificacionesPopUp(-1) + PresionarBotonModal("C_BtnCerrarClasificaciones") + End Sub + Private Sub CargaClasificacionesPopUp(CveCotizacion As Integer) + DdlClasificacion.Items.Clear() + If RblOpcionClasificacion.SelectedValue.ToEntero = 1 Or CveCotizacion > 0 Then + DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual, UsoClasificacion:=1) + DdlClasificacion.DataBind() + DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación (Todas)", "-1")) + Else + DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual, UsoClasificacion:=2) + DdlClasificacion.DataBind() + DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación (Todas)", "-1")) + End If + UPPDetalle.Update() + End Sub +#End Region + +#Region " CALCULA IMPORTES " + Protected Sub DdlIVA_SelectedIndexChanged(sender As Object, e As EventArgs) + + 'SE ACTUALIZA EL IVA DEL DtDetalle SI ES QUE AHORA SE VA A TOMAR EN CUENTA EL IVA + For Each Row As DataRow In DtDetalle.Rows + If Not Math.Round(DdlIVA.SelectedValue.ToDouble, 2) = 1 Then + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Row("CvePS").ToString.ToEntero).FiltroPrimero("") + If DrPS IsNot Nothing Then + Row("IVAPorcentaje") = If(DrPS("IVA").ToString.ToEntero = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), 0) + Row("IVA") = Row("IVAPorcentaje").ToString.ToDouble * Row("Total").ToString.ToDouble + Row("RetIVAPorcentaje") = DrPS("RetIVA").ToString.ToDouble + Row("RetIVA") = Row("RetIVAPorcentaje").ToString.ToDouble * Row("Total").ToString.ToDouble + End If + Else + Row("IVA") = 0 + Row("RetIVA") = 0 + Row("IVAPorcentaje") = 0 + Row("RetIVAPorcentaje") = 0 + End If + Next + + CalculaGenerales() + End Sub + Private Sub CalculaGenerales() + + Dim Subtotal As Double = DtDetalle.SUM("Total", "Total > 0") + DtDetalle.SUM("Descuento") + Dim Descuento As Double = DtDetalle.SUM("Descuento") + Dim SubTotalIEPSIVA As Double = DtDetalle.SUM("IEPSPSIVA") + Dim IVA As Double = DtDetalle.SUM("IVA") + SubTotalIEPSIVA + Dim SubTotalIEPS As Double = DtDetalle.SUM("IEPSPS") + Dim SubTotalRetIVA As Double = DtDetalle.SUM("RetIVA") + Dim SubTotalRetISR As Double = DtDetalle.SUM("RetISR") + + 'SUBTOTAL + LblSubTotal.Text = (Subtotal).FormatoNumero + + 'DESCUENTO + TxtDescuento.Text = Descuento.FormatoNumero + HdnDescuento.Value = Descuento.FormatoNumero + + 'SUBTOTAL 2 + LblSubTotal2.Text = (Subtotal - Descuento).FormatoNumero + + 'IVA + TxtIVA.Text = IVA.ToString.FormatoNumero() + LblIVA.Text = IVA.ToString.FormatoNumero() + + 'IEPS + TxtIEPS.Text = SubTotalIEPS.FormatoNumero + TrIEPS.Visible = SubTotalIEPS > 0 + + 'RetIVA + TxtRetIVA.Text = SubTotalRetIVA.FormatoNumero + HdnRetIVA.Value = SubTotalRetIVA.FormatoNumero + TrRetIVA.Visible = SubTotalRetIVA > 0 + + 'RetISR + TxtRetISR.Text = SubTotalRetISR.FormatoNumero + HdnRetISR.Value = SubTotalRetISR.FormatoNumero + TrRetISR.Visible = SubTotalRetISR > 0 + + 'TOTAL + LblTotal.Text = (Subtotal - Descuento + IVA + SubTotalIEPS - SubTotalRetIVA - SubTotalRetISR).FormatoNumero() + + End Sub + +#End Region + +#Region " RETENCIONES " + Private Sub ActivarRetenciones() + 'If UsuarioActual.Empresa.Funcionalidad(116) = "1" Then + ImgAplicaRetenciones.Visible = True + 'End If + End Sub + Protected Sub ImgAplicaRetenciones_Click(sender As Object, e As ImageClickEventArgs) + MuestraRetenciones() + End Sub + Private Sub MuestraRetenciones() + + If (TrRetIVA.Visible) Then + TxtIEPS.Text = "0.00" + TxtRetIVA.Text = "0.00" + TxtRetISR.Text = "0.00" + CalculaGenerales() + End If + + If ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-collapse-icon.png" Then + ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-expand-icon.png" + TrRetIVA.Visible = True + TrRetISR.Visible = True + TrIEPS.Visible = True + Else + ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-collapse-icon.png" + If Not TxtRetIVA.Text.ToDouble > 0 Then TrRetIVA.Visible = False + If Not TxtRetISR.Text.ToDouble > 0 Then TrRetISR.Visible = False + If Not TxtIEPS.Text.ToDouble > 0 Then TrIEPS.Visible = False + End If + + 'ImgAplicaRetenciones.ImageUrl = If(TrRetIVA.Visible, "/Metronic/assets/global/img/portlet-collapse-icon.png", "/Metronic/assets/global/img/portlet-expand-icon.png") + End Sub + Private Sub AplicaRetenciones() + TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero + TxtRetISR.Text = TxtRetISR.Text.FormatoNumero + TxtIEPS.Text = TxtIEPS.Text.FormatoNumero + End Sub + Private Sub CargaRetenciones(RetIVA As Double, RetISR As Double, IEPS As Double) + + If RetIVA > 0 Or RetISR > 0 Or IEPS > 0 Then + TrRetIVA.Visible = True + TxtRetIVA.Text = RetIVA.ToString.ToDouble.FormatoNumero + TrRetISR.Visible = True + TxtRetISR.Text = RetISR.ToString.ToDouble.FormatoNumero + TrIEPS.Visible = True + TxtIEPS.Text = IEPS.ToString.ToDouble.FormatoNumero + End If + + End Sub +#End Region + +#Region " DESCUENTOS " + Private Sub ActivarDescuentos() + 'If UsuarioActual.Empresa.Funcionalidad(111) = "1" Then + TDDescuento.Visible = True + TrDescuento.Visible = True + THDescuento.Visible = True + GvD.Columns(7).Visible = True + ' End If + End Sub + Protected Sub BtnAplicarDescuento_Click(sender As Object, e As EventArgs) + AplicarDescuentos() + End Sub + Private Sub AplicarDescuentos() + If LblSubTotal.Text.ToDecimal <= 0 Then + Alert("Para aplicar un descuento, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) + TxtDescuento.Text = "0.00" + Exit Sub + End If + + TxtDescuento.Text = TxtDescuento.Text.FormatoNumero + HdnDescuento.Value = TxtDescuento.Text + + Dim Total = 0.0D + Dim Descuento = 0.0D + Dim Porcentaje = TxtDescuento.Text.ToDecimal / DtDetalle.SUM("Total") + Dim LastDr As DataRow = Nothing + For Each Dr As DataRow In DtDetalle.Rows + Descuento = ((Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100).ToDecimal + Dr("Descuento") = Descuento + Total = (Dr("Cantidad").ToString.ToDecimal * Dr("Importe").ToString.ToDecimal) - Descuento + Dr("Total") = Math.Round(Total, 2) + Dr("IVA") = Math.Round(Dr("IVAPorcentaje").ToString.ToDecimal * Total, 2) + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + LastDr = Dr + Next + If Not IsNothing(LastDr) Then + Dim Fdes As Decimal = TxtDescuento.Text.ToDecimal - DtDetalle.SUM("Descuento").ToString.ToDecimal + If Fdes > 0 Then + LastDr("Descuento") = LastDr("Descuento").ToString.ToDecimal + Fdes + End If + End If + + CalculaGenerales() + + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + End Sub + Protected Sub BtnLimpiarDescuento_Click(sender As Object, e As EventArgs) + If HdnDescuento.Value.ToDecimal > 0 Then + TxtDescuento.Text = HdnDescuento.Value.FormatoNumero + Exit Sub + End If + + For Each Dr As DataRow In DtDetalle.Rows + Dr("Descuento") = 0 + + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + Next + + TxtDescuento.Text = "0.00" + HdnDescuento.Value = TxtDescuento.Text + CalculaGenerales() + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + End Sub + Private Function ValidarDescuentos() As Boolean + Dim Retorno = True + + Dim DescuentoConceptos = DtDetalle.SUM("Descuento") + Dim DescuentoGeneral = TxtDescuento.Text.ToDouble + + If DescuentoConceptos <> DescuentoGeneral Then + Alert(String.Format("Los descuentos no cuadran. Por favor de verificar.({0}-{1})", DescuentoConceptos, DescuentoGeneral), TipoMensaje.MsgAdvertencia) + Retorno = False + End If + + Return Retorno + End Function + +#End Region + +#Region "RETIVA" + + Protected Sub BtnLimpiarRetIVA_Click(sender As Object, e As EventArgs) + If HdnRetIVA.Value.ToDecimal > 0 Then + TxtRetIVA.Text = HdnRetIVA.Value.FormatoNumero + Exit Sub + End If + + For Each Dr As DataRow In DtDetalle.Rows + Dr("RetIVA") = 0 + Dr("RetIVAPorcentaje") = 0 + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + Next + + TxtRetIVA.Text = "0.00" + HdnRetIVA.Value = TxtRetIVA.Text + CalculaGenerales() + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + End Sub + Protected Sub BtnAplicarRetIVA_Click(sender As Object, e As EventArgs) + AplicarRetIVA() + End Sub + + Private Sub AplicarRetIVA() + If LblSubTotal.Text.ToDecimal <= 0 Then + Alert("Para aplicar un RetIVA, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) + TxtRetIVA.Text = "0.00" + CalculaGenerales() + Exit Sub + End If + + TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero + HdnRetIVA.Value = TxtRetIVA.Text + + Dim Porcentaje = TxtRetIVA.Text.ToDecimal / DtDetalle.SUM("Total") + Dim LastDr As DataRow = Nothing + For Each Dr As DataRow In DtDetalle.Rows + Dr("RetIVA") = (Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100 + Dr("RetIVAPorcentaje") = Porcentaje + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + LastDr = Dr + Next + If Not IsNothing(LastDr) Then + Dim Fdes As Decimal = TxtRetIVA.Text.ToDecimal - DtDetalle.SUM("RetIVA").ToString.ToDecimal + If Fdes > 0 Then + LastDr("RetIVA") = LastDr("RetIVA").ToString.ToDecimal + Fdes + End If + End If + + 'Alert(String.Format("Descuento:{0}", DtDetalle.SUM("Descuento"))) + + CalculaGenerales() + + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + + End Sub + +#End Region + +#Region "RETISR" + + Protected Sub BtnLimpiarRetISR_Click(sender As Object, e As EventArgs) + If HdnRetISR.Value.ToDecimal > 0 Then + TxtRetISR.Text = HdnRetISR.Value.FormatoNumero + Exit Sub + End If + + For Each Dr As DataRow In DtDetalle.Rows + Dr("RetISR") = 0 + Dr("RetISRPorcentaje") = 0 + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + Next + + TxtRetISR.Text = "0.00" + HdnRetISR.Value = TxtRetISR.Text + CalculaGenerales() + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + End Sub + Protected Sub BtnAplicarRetISR_Click(sender As Object, e As EventArgs) + AplicarRetISR() + End Sub + + Private Sub AplicarRetISR() + If LblSubTotal.Text.ToDecimal <= 0 Then + Alert("Para aplicar un RetISR, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia) + TxtRetISR.Text = "0.00" + CalculaGenerales() + Exit Sub + End If + + TxtRetISR.Text = TxtRetISR.Text.FormatoNumero + HdnRetISR.Value = TxtRetISR.Text + + Dim Porcentaje = TxtRetISR.Text.ToDecimal / DtDetalle.SUM("Total") + Dim LastDr As DataRow = Nothing + For Each Dr As DataRow In DtDetalle.Rows + Dr("RetISR") = (Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100 + Dr("RetISRPorcentaje") = Porcentaje + ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD + Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1) + LastDr = Dr + Next + If Not IsNothing(LastDr) Then + Dim Fdes As Decimal = TxtRetISR.Text.ToDecimal - DtDetalle.SUM("RetISR").ToString.ToDecimal + If Fdes > 0 Then + LastDr("RetISR") = LastDr("RetISR").ToString.ToDecimal + Fdes + End If + End If + + 'Alert(String.Format("Descuento:{0}", DtDetalle.SUM("Descuento"))) + + CalculaGenerales() + + GvD.DataSource = DtDetalle + GvD.DataBind() + UPPDetalle.Update() + + End Sub + +#End Region + +#Region "CONTRATOS" + + Private Sub CargaClientes() + DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) + DdlClientes.DataBind() + DdlClientes.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + + Private Sub CargaContratos() + Dim ObjContratos As New ClsContratos + If ObjContratos.GetContratosDetalle(DdlContratos.SelectedValue.ToEntero) Then + GvContratos.DataSource = ObjContratos.DtResultados + End If + ObjContratos.Dispose() + GvContratos.DataBind() + UpContrato.Update() + End Sub + + Private Sub DdlClientes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClientes.SelectedIndexChanged + DdlContratos.Items.Clear() + ' DdlContratos.DataSource = GlobalDTContratos().FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCliente = {DdlClientes.SelectedValue.ToEntero} AND Estatus = True AND FechaFinal >= '{Now.ToShortDateString}' AND FechaInicial <= '{Now.ToShortDateString}'") + Dim ObjContratos As New ClsContratos + + If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, DdlClientes.SelectedValue.ToEntero, -1, 1) Then + If ObjContratos.DtResultados.FiltraParametros("Estatus = True").Rows.Count > 0 Then + + DdlContratos.DataSource = ObjContratos.DtResultados.FiltraParametros($"Estatus = True AND FechaFinal >= '{Now.ToShortDateString}' AND FechaInicial <= '{Now.ToShortDateString}'") + DdlContratos.DataBind() + + End If + End If + DdlContratos.Items.Insert(0, New ListItem("Seleccione", "-1")) + UpContrato.Update() + End Sub + + Private Sub DdlContratos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlContratos.SelectedIndexChanged + Dim ObjContratos As New ClsContratos + If ObjContratos.GetContratosDetalle(DdlContratos.SelectedValue.ToEntero) Then + GvContratos.DataSource = ObjContratos.DtResultados + GvContratos.DataBind() + End If + ObjContratos.Dispose() + UpContrato.Update() + End Sub + + Private Sub BtnAgregarContrato_Click(sender As Object, e As EventArgs) Handles BtnAgregarContrato.Click + Dim Selecciono As Boolean = False + + If DivProyecto.Visible And (Not DdlProyectoContrato.SelectedValue.ToEntero > 0 Or Not DdlSubProyectoContrato.SelectedValue.ToEntero > 0) Then + Alert("Tiene que seleccionar un proyecto y un subproyecto", TipoMensaje.MsgAdvertencia) + Exit Sub + ElseIf Not DdlSubProyectoContrato.SelectedValue.ToEntero > 0 Then + Alert("Tiene que seleccionar un subproyecto", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + For Each row As GridViewRow In GvContratos.Rows + If row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble > 0 And row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble > 0 Then + Selecciono = True + Exit For + End If + Next + + If Not Selecciono Then + Alert("Tiene que tener al menos un contrato con cantidad y precio mayores que 0", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + DtDetalle.Rows.Clear() + For Each row As GridViewRow In GvContratos.Rows + If row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble > 0 And row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble > 0 Then + Dim Cantidad As Double = row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble + Dim Importe As Double = row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble + + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=row.DataKey("CvePS").ToEntero).FiltroPrimero("") + If DrPS Is Nothing Then + Alert("Ocurrió un error al cargar la información del producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble + Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble + Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble + + 'If IvaPS = -1 Then 'IVA DE LA SUCURSAL + ' IvaPS = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble + 'End If + + Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble + Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0) + Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero) + Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero) + Dim TotalPS As Double = If(Importe > 0, (Importe * Cantidad), 0) + Dim ImportePS As Double = If(Importe > 0, Importe, 0) + Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100 + + + AddPS(Cantidad.ToString, row.DataKey("CvePS").ToEntero, row.DataKey("CodigoPS").ToString, "", ImportePS, 0, TotalPS, + row.DataKey("CveUM").ToEntero, IvaPS, IEPSPS, IEPSPSIVA, row.DataKey("CveClasificacion").ToEntero, row.DataKey("UM"), row.DataKey("ClasificacionPS"), 0, "Sin Proyecto", + DdlSubProyectoContrato.SelectedValue.ToEntero, DdlSubProyectoContrato.SelectedItem.Text, "", -1, 0, CveOrdenCompraDetalle, -1, -1, + -1, -1, -1, -1, -1, -1, RetIVA, RetISR, CveContratoDetalle:=row.DataKey("CveContratoDetalle").ToEntero) + End If + Next + TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString) + Ddlcliente.SelectedValue = DdlClientes.SelectedValue + + CargaSuperior() + CargaDatosDetalles() + UPPDetalle.Update() + + RegistraScript(String.Format("$('#{0}').modal().hide();", "ModalContrato")) + UPPDetalle.Update() + UpVendedor.Update() + + End Sub + + Protected Sub DdlProyectoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaSubProyectosContratos() + End Sub + + Private Sub CargaSubProyectosContratos() + Dim Filtro As String = If(DdlProyectoContrato.SelectedValue.ToEntero > 0, String.Format("CveProyecto = {0}", DdlProyectoContrato.SelectedValue.ToEntero), "") + + DdlSubProyectoContrato.Items.Clear() + If Filtro <> "" Or UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, CveEmpresaActual, 1)) 'DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) ' GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) + End If + DdlSubProyectoContrato.DataBind() + DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + +#End Region + +#Region "PAQUETERIAS GUIAS" + + Protected Sub LnkAgregarGuia_Click(sender As Object, e As EventArgs) + RegistraScript(String.Format("AbrirVentana('/General/PopUpPaqueteriasGuias.aspx?CveOC={0}',800,620);", CveOrdenCompra)) + End Sub + +#End Region + +#Region "DIRECCION ENVIO" + + Protected Sub CargaDdlSucursalCliente() + Dim ObjCliente As New ClsClientes + + DdlClienteSucursalEnvio.Items.Clear() + + If ObjCliente.GetSucursales(Ddlcliente.SelectedValue.ToEntero) Then + If ObjCliente.DtResultados.Rows.Count > 0 Then + DdlClienteSucursalEnvio.DataSource = ObjCliente.DtResultados + End If + End If + + ObjCliente.Dispose() + DdlClienteSucursalEnvio.DataBind() + DdlClienteSucursalEnvio.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlClienteSucursalEnvio.SelectedValue = "-1" + End Sub + + Private Sub BtnAgregarDireccionModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarDireccionModal.Click + TxtEnvioDireccion.Text = "" + TxtEnvioNoExt.Text = "" + TxtEnvioNoInt.Text = "" + TxtEnvioColonia.Text = "" + TxtEnvioCiudad.Text = "" + TxtEnvioEstado.Text = "" + TxtEnvioContacto.Text = "" + 'TxtDepartamento.Text = "" + TxtEnvioCP.Text = "" + TxtEnvioTel.Text = "" + DdlClienteSucursalEnvio.SelectedValue = "-1" + UpAddDireccion.Update() + RegistraScript("$('#divAddDireccionEnvio').modal();") + End Sub + + Private Sub BtnAgregarDireccion_Click(sender As Object, e As EventArgs) Handles BtnAgregarDireccion.Click + + If Not Ddlcliente.SelectedValue.ToEntero > 0 Then + Alert("Tiene que tener un cliente seleccionado", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim ObjClientes As New ClsClientes + Dim TieneError = False + Dim Estatus = If(ChkEstatus.Checked, 1, 0) + + CveDireccionEnvio = ObjClientes.DireccionEnvioAdd(Ddlcliente.SelectedValue.ToEntero, TxtEnvioDireccion.Text.Trim, TxtEnvioNoExt.Text.Trim, TxtEnvioNoInt.Text.Trim, TxtEnvioColonia.Text.Trim, TxtEnvioCiudad.Text.Trim, TxtEnvioEstado.Text.Trim, TxtEnvioCP.Text.ToEntero, TxtEnvioContacto.Text.Trim, UsuarioActual.CveUsuario, Estatus, CveClienteSucursal:=DdlClienteSucursalEnvio.SelectedValue.ToEntero, EnvioTel:=TxtEnvioTel.Text.Trim.Replace(" ", "").Replace("(", "").Replace(")", "").Replace("-", "").Replace("_", "")) + + If CveDireccionEnvio < 0 Then + TieneError = True + End If + + + + If TieneError Then + Alert("Ocurrio un error al agregar/actualizar la dirección de envío", TipoMensaje.MsgError) + Else + RegistraScript("$('#divAddDireccionEnvio').modal('hide');") + CargaDireccionesEnvioCliente() + End If + End Sub + +#End Region + +#Region "CONTATCOS DEL PROVEEDOR" + Protected Sub DdlProveedorSucursal_SelectedIndexChanged(sender As Object, e As EventArgs) + DdlProveedorContacto.Items.Clear() + DdlProveedorContacto.SelectedValue = Nothing + If DdlProveedorSucursal.SelectedValue <> "-1" Then + Dim ObjProveedor As New ClsCompProveedores + If ObjProveedor.GetProveedoresContactos(-1, DdlProveedores.SelectedValue.ToEntero, DdlProveedorSucursal.SelectedValue.ToEntero) Then + DdlProveedorContacto.DataSource = ObjProveedor.DtResultados + DdlProveedorContacto.Items.Insert(0, New ListItem("Seleccione", "-1")) + DivProveedorContacto.Visible = ObjProveedor.DtResultados.Rows.Count > 0 + End If + ObjProveedor.Dispose() + DdlProveedorContacto.DataBind() + UPProv.Update() + Else + DivProveedorContacto.Visible = False + End If + End Sub +#End Region + +#Region "A G R E G A R - P R O D U C T O S S E R V I C I O S" + Private Sub CargaDatosAgregarPS() + DdlClasificacionPS.Items.Clear() + If UsuarioActual.Empresa.UsaAC Then + DdlClasificacionPS.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, -1, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") + Else + DdlClasificacionPS.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, -1, -1)).FiltraParametros("", Orderby:="Clasificacion") + End If + DdlClasificacionPS.DataBind() + DdlClasificacionPS.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlUnidadMedida.Items.Clear() + DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) + DdlUnidadMedida.DataBind() + + End Sub + + Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs) + + Dim PS As New Modelos.MProductoServicio() + PS.Codigo = TxtCodigo.Text + PS.PS = TxtPS.Text + PS.CveUnidadMedida = DdlUnidadMedida.SelectedValue.ToEntero() + PS.CveClasificacion = DdlClasificacionPS.SelectedValue.ToEntero() + PS.CveTipoPS = DdlTipoPS.SelectedValue.ToEntero() + PS.AplicaParaVenta = True + PS.CveUsuario = UsuarioActual.CveUsuario + PS.CveEmpresa = UsuarioActual.CveEmpresa + + Dim ObjPS As New ClsProductosServicios + If ObjPS.AddPSSimplificado(PS) > 0 Then + RecargaGlobalEquivalencias() + Alert("El P/S fue agregado correctamente.") + End If + ObjPS.Dispose() + + TxtPS.Text = "" + TxtCodigo.Text = "" + DdlUnidadMedida.SelectedValueExist(-1) + DdlClasificacionPS.SelectedValueExist(-1) + DdlTipoPS.SelectedValueExist(-1) + + UpAgregarPS.Update() + + RegistraScript("$('#DivAgregarPS').modal('hide');") + RecargaPSGlobal() + End Sub + Private Sub RecargaPSGlobal() + Dim ObjPS As New ClsProductosServicios + + If ObjPS.GetPSSimplificado(-1) Then Application("GlobalDTPSSimplificado") = ObjPS.DtResultados.AsEnumerable() + + ObjPS.Dispose() + End Sub + + + Private Sub RecargaGlobalEquivalencias() + Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias) + Hilo.Start() + End Sub + Private Sub GeneraGlobalEquivalencias() + Dim ObjPS = New ClsProductosServicios + If ObjPS.GetPSEquivalencias(-1, -1) Then + GlobalDTProductosServiciosEquivalencias(-1, -1) = ObjPS.DtResultados + End If + ObjPS.Dispose() + End Sub + +#End Region + +End Class