4663 lines
225 KiB
VB.net
4663 lines
225 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
Imports msExcel = Microsoft.Office.Interop.Excel
|
|
Imports VBIDE
|
|
Imports System.IO
|
|
Imports Microsoft.Reporting.WebForms
|
|
|
|
Partial Class OC
|
|
Inherits ClsPaginas
|
|
Private Shared missing As Object = System.Reflection.Missing.Value
|
|
|
|
#Region "Propiedades"
|
|
|
|
Public Property SubTotalOC As String
|
|
Get
|
|
|
|
SubTotalOC = IIf(IsNothing(ViewState("SubTotalOC")), "0", ViewState("SubTotalOC")).ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("SubTotalOC") = 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 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 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 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 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 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 IVAEditado As Boolean
|
|
Get
|
|
IVAEditado = CBool(ViewState("IVAEditado").ToString)
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("IVAEditado") = 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
|
|
|
|
#End Region
|
|
|
|
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
If Not Page.IsPostBack Then
|
|
|
|
InicializarValores()
|
|
CargaProveedores()
|
|
|
|
'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)
|
|
|
|
'NUEVO
|
|
Else
|
|
EsNuevo = True
|
|
CargarOptionAnticipos()
|
|
|
|
TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID))
|
|
ImgAddObs.Visible = False
|
|
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, UsuarioActual.CveEmpresa) 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
|
|
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
|
|
|
|
CargaEstatusInicialFinal()
|
|
CargaEstatusUsuarios(-1, True)
|
|
CargaEstatusOC()
|
|
CargaEstatusUsuarios(CboE.SelectedValue.ToEntero, True)
|
|
|
|
'Estatus Default 66
|
|
If UsuarioActual.CveEmpresa = 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
|
|
|
|
If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False
|
|
|
|
If TipoOC = "OC" AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK Then
|
|
PnlProveedor.Visible = True
|
|
End If
|
|
|
|
If (TipoOC = "REQ" OrElse TipoOC = "OS") AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK Then
|
|
PnlProveedor.Visible = True
|
|
End If
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ActivaAC()
|
|
End If
|
|
|
|
hplAgregarCotizacion.Visible = False
|
|
hplEnviarCorreo.Visible = False
|
|
|
|
End If
|
|
|
|
'ASIGNA ESTATUS OC
|
|
CboE_SelectedIndexChanged(New Object, New EventArgs)
|
|
|
|
'CARGA TITULO TIPO OC (REQ, OC, OS)
|
|
lblTitulo.Text = TipoLargo
|
|
|
|
'VALIDA PERMISOS
|
|
If UsuarioActual.TienePermisoProceso(123) Then
|
|
RFVcodigo.Enabled = True
|
|
End If
|
|
|
|
'SI REQUIERE COTIZACION
|
|
If ChkCotizacion.Checked = False AndAlso CveEstatus <> CveEstatusFinalOK Then
|
|
PnlProveedor.Visible = True : UPProv.Update()
|
|
RVProveedores.Enabled = False
|
|
End If
|
|
|
|
'SOLO MUESTRA SUBPROYECTO
|
|
If UsuarioActual.Empresa.GralSoloProyecto Then
|
|
DdlProyecto.Visible = False
|
|
TituloSubProyecto.Visible = False
|
|
|
|
DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
|
|
DdlSubProyecto.DataBind()
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End If
|
|
|
|
'FUNCIONALIDAD 105
|
|
CargaFuncionalidad105()
|
|
|
|
'ACTIVAR MODIFICAR IVA
|
|
ActivarIVAEditable()
|
|
|
|
'ACTIVAR RETENCIONES
|
|
ActivarRetenciones()
|
|
|
|
'ACTIVA DESCUENTOS
|
|
ActivarDescuentos()
|
|
|
|
End If
|
|
|
|
Me.Form.DefaultButton = ""
|
|
End Sub
|
|
|
|
|
|
#Region " FUNCIONALIDAD 105 "
|
|
Private Sub CargaFuncionalidad105()
|
|
DdlP2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
|
|
If DdlP2.UsaWebService Then
|
|
If isWhitFamily() Then
|
|
DdlP2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.ClientID)
|
|
Else
|
|
DdlP2.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.ClientID)
|
|
End If
|
|
Else
|
|
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
|
|
IVAEditado = False
|
|
ViewState("TipoOC") = "OC"
|
|
ViewState("CveEstatus") = -1
|
|
ViewState("CveEstatusSiguiente") = -1
|
|
EditarOC = False
|
|
CveEstatusFinalOK = -2
|
|
BtnCancelarPrevio.Disabled = True
|
|
Folio = 0
|
|
ViewState("ArrayCCNombre") = ""
|
|
ViewState("ArrayCC") = ""
|
|
ViewState("EjercicioAC") = -1
|
|
ViewState("CveUsuario") = -1
|
|
IDPolizaPresupuestal = -1
|
|
|
|
Dim drE As DataRow = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).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("IDPolizasGeneradas") = New List(Of Integer)
|
|
ViewState("FoliosPolizas") = New List(Of Integer)
|
|
Session("FileUpload") = ""
|
|
Session("FileExtension") = ""
|
|
Session("FileFolder") = ""
|
|
TipoOS = False
|
|
RequiereSubProyecto = If(UsuarioActual.CveEmpresa = 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)
|
|
GvD.Columns(10).Visible = False
|
|
|
|
CargaMonedas()
|
|
CargaClasificaciones()
|
|
'CargaUnidadesMedida()
|
|
BtnCancelar.Attributes.Add("disabled", "disabled")
|
|
TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)")
|
|
CargaTipoActivoFijo()
|
|
DrEliminados = New ArrayList
|
|
|
|
DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
|
|
DdlSAUsuario.DataBind()
|
|
'If UsuarioActual.TienePermisoProceso(37) Then
|
|
' CboUnidadMedida.DataSource = GlobalDTUnidadesMedida
|
|
' CboUnidadMedida.DataBind()
|
|
'End If
|
|
|
|
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("IVAPS", GetType(Double))
|
|
DtDetalle.Columns.Add("Observacion", GetType(String))
|
|
DtDetalle.Columns.Add("CveClasificacion", GetType(Integer))
|
|
DtDetalle.Columns.Add("Clasificacion", 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))
|
|
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("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
|
|
dr("Cantidad") = RowV("Cantidad")
|
|
dr("CveUnidadMedida") = RowV("CveUM")
|
|
dr("UM") = RowV("UM")
|
|
dr("CvePS") = RowV("CvePS")
|
|
dr("PS") = RowV("PS")
|
|
dr("IVAPS") = GlobalDTProductosServicios(UsuarioActual.CveEmpresa, -1, -1, ).FiltraParametros(String.Format("CvePS = {0}", dr("CvePS"))).Rows(0)("IVA").ToString.ToDouble
|
|
dr("Observacion") = RowV("Obs")
|
|
dr("CveClasificacion") = RowV("CveClasificacion")
|
|
dr("Clasificacion") = RowV("Clasificacion")
|
|
|
|
If UsuarioActual.Empresa.GralSoloProyecto 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(CveEstatusSiguiente As Integer, Optional HacerMerge As Boolean = False)
|
|
Dim objEstatusUsuarios As New ClsOC
|
|
|
|
If objEstatusUsuarios.GetEstatusUsuarios(UsuarioActual.CveUsuario, -1, -1, -1, UsuarioActual.CveEmpresa) 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()
|
|
End Sub
|
|
Protected Sub CargaSuperior()
|
|
If CboE.SelectedValue.ToEntero > 0 Then
|
|
Dim RowActual As DataRow = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CboE.SelectedValue)).Rows(0)
|
|
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 Then
|
|
Dim TotalT As Decimal = LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal
|
|
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
|
|
|
|
uppEstatus.Update()
|
|
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), UsuarioActual.CveEmpresa) Then
|
|
Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("Estado = 'Activo'")
|
|
'Verificar primero en la sucursal del usuario
|
|
If DT.FiltraParametros("CveSucursal = " + UsuarioActual.CveSucursal.ToString).Rows.Count > 0 Then
|
|
ViewState("CveFolio") = DT.FiltraParametros("CveSucursal = " + UsuarioActual.CveSucursal.ToString).Rows(0)("CveFolio").ToString.ToEntero
|
|
ViewState("FolioActual") = DT.FiltraParametros("CveSucursal = " + UsuarioActual.CveSucursal.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
|
|
|
|
#End Region
|
|
|
|
|
|
#Region " CARGA C O M B O S "
|
|
Private Sub CargaMonedas()
|
|
DdlMoneda.DataSource = GlobalDTMonedas
|
|
DdlMoneda.DataBind()
|
|
If UsuarioActual.CveEmpresa.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 isWhitFamily() Then
|
|
DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa)
|
|
Else
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
|
|
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, UsuarioActual.CveEmpresa, -1), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa)
|
|
DdlProyecto.DataBind()
|
|
|
|
DdlProyecto.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.GralSoloProyecto 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, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa, 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.DataSource = GlobalDTProductosServiciosEquivalencias(-1, -1)
|
|
CboUnidadMedida.DataBind()
|
|
End Sub
|
|
|
|
Private Sub CargaProveedores()
|
|
DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
|
|
DdlProveedores.DataBind()
|
|
UPProv.Update()
|
|
End Sub
|
|
Private Sub CargaEstatusOC()
|
|
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(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing)
|
|
Dim drFinalOK As DataRow = If(GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing)
|
|
Dim drFinalError As DataRow = If(GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(UsuarioActual.CveEmpresa).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
|
|
#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
|
|
If UsuarioActual.Empresa.Funcionalidad(105) = "" Then
|
|
CargaPS(DdlClasificacion.SelectedValue.ToEntero, DdlP2.ddl)
|
|
End If
|
|
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
|
|
If CveClasificacion > 0 Then
|
|
If isWhitFamily() Then
|
|
filtro = String.Format("CveSubFamilia={0}", CveClasificacion)
|
|
Else
|
|
filtro = String.Format("CveClasificacion={0}", CveClasificacion)
|
|
End If
|
|
Gvr.FCDropDownList("DdlPS").Items.Clear()
|
|
Gvr.FCDropDownList("DdlPS").DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltraParametros(filtro, "PS")
|
|
Gvr.FCDropDownList("DdlPS").DataBind()
|
|
Gvr.FCDropDownList("DdlPS").Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
|
End If
|
|
|
|
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")
|
|
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 DropDownList)
|
|
Dim filtro As String = ""
|
|
If CveClasificacion > 0 Then
|
|
If isWhitFamily() Then
|
|
filtro = String.Format("CveSubFamilia={0}", CveClasificacion)
|
|
Else
|
|
filtro = String.Format("CveClasificacion={0}", CveClasificacion)
|
|
End If
|
|
Else
|
|
If isWhitFamily() Then
|
|
filtro = "CveSubFamilia>0"
|
|
Else
|
|
filtro = "CveClasificacion>0"
|
|
End If
|
|
End If
|
|
|
|
Objeto.Items.Clear()
|
|
Objeto.DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltraParametros(filtro, "PS")
|
|
Objeto.DataBind()
|
|
'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
|
Objeto.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
|
End Sub
|
|
Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlP2.selectedindexchange
|
|
|
|
Dim tempdt As DataTable = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CvePS ='{0}'", DdlP2.SelectedValue))
|
|
If tempdt.Rows.Count > 0 Then
|
|
If isWhitFamily() Then
|
|
DdlClasificacion.SelectedValue = tempdt.Rows(0)("CveSubFamilia").ToString
|
|
Else
|
|
DdlClasificacion.SelectedValue = tempdt.Rows(0)("CveClasificacion").ToString
|
|
End If
|
|
CboUnidadMedida.Items.Clear()
|
|
CboUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(DdlP2.SelectedValue.ToEntero, -1)
|
|
CboUnidadMedida.DataBind()
|
|
|
|
|
|
'LbVerInventario.Attributes.Add("href", "/Inventarios/PopUpExistenciasAlmacen.aspx?CvePS=" + DdlP2.SelectedValue)
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#Region " AGREGAR - GUARDAR "
|
|
|
|
Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click
|
|
|
|
'VALIDA CVEPS
|
|
If DdlP2.SelectedValue().ToEntero <= 0 Then
|
|
Alert("El campo <b>'Producto/Servicio'</b> es necesario, por favor seleccione uno.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim CvePOA As Integer = 0
|
|
Dim Presupuesto As Double = 0
|
|
Dim ErrorPOA = False
|
|
Dim Importe As Double = TxtCant.Text.ToDouble * txtPrecioUnitario.Text.ToDouble
|
|
|
|
'USA AC
|
|
If UsuarioActual.Empresa.UsaAC And TipoOC = "OC" Then
|
|
|
|
Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa)
|
|
Presupuesto = ContPaq.GetSaldoCuenta(HdnCveCuentaPorEjercer.Value.ToEntero, 1, UsuarioActual.Empresa.EjercicioActual)
|
|
|
|
If Presupuesto > 0 AndAlso Presupuesto > Importe Then
|
|
|
|
End If
|
|
ContPaq.Dispose()
|
|
|
|
|
|
Presupuesto = Importe
|
|
'If LblCvePOA.Text.Length > 0 Then
|
|
' 'Dim indice As Integer
|
|
' 'indice = DtAC.Rows.IndexOf(DtAC.Select("CvePresupuestoEgreso = " + LblCvePOA.Text).FirstOrDefault())
|
|
' 'Presupuesto = DtAC(indice).Item("Total").ToString.ToDouble
|
|
'Else
|
|
' ErrorPOA = True
|
|
'End If
|
|
|
|
AgregaAC()
|
|
Else
|
|
ErrorPOA = True
|
|
End If
|
|
'TERMINA: USA AC
|
|
|
|
'No POA
|
|
If ErrorPOA Then
|
|
Presupuesto = Importe
|
|
End If
|
|
|
|
If Presupuesto >= Importe Then
|
|
|
|
If DtDetalle IsNot Nothing Then
|
|
Dim dr As DataRow = DtDetalle.NewRow
|
|
dr("Cantidad") = TxtCant.Text
|
|
dr("CveUnidadMedida") = CboUnidadMedida.SelectedValue
|
|
dr("UM") = CboUnidadMedida.SelectedItem.Text
|
|
dr("CvePS") = DdlP2.SelectedValue
|
|
dr("PS") = DdlP2.SelectedText
|
|
dr("IVAPS") = GlobalDTProductosServicios(UsuarioActual.CveEmpresa, -1, -1, ).FiltraParametros(String.Format("CvePS = {0}", dr("CvePS"))).Rows(0)("IVA").ToString.ToDouble
|
|
dr("Observacion") = TxtObsPS.Text
|
|
dr("CveClasificacion") = DdlClasificacion.SelectedValue
|
|
dr("Clasificacion") = DdlClasificacion.SelectedItem.Text
|
|
|
|
If UsuarioActual.Empresa.GralSoloProyecto Then
|
|
dr("CveProyecto") = "-1"
|
|
dr("Proyecto") = "Sin Proyecto"
|
|
Else
|
|
dr("CveProyecto") = DdlProyecto.SelectedValue
|
|
dr("Proyecto") = If(DdlProyecto.SelectedValue.ToString.ToEntero > 0, DdlProyecto.SelectedItem.Text, "Sin Proyecto")
|
|
End If
|
|
|
|
dr("CveSubProyecto") = DdlSubProyecto.SelectedValue
|
|
dr("SubProyecto") = If(DdlSubProyecto.SelectedValue.ToString.ToEntero > 0, DdlSubProyecto.SelectedItem.Text, "Sin SubProyecto")
|
|
dr("Importe") = If(txtPrecioUnitario.Text.ToDouble > 0, txtPrecioUnitario.Text.ToDouble, -1)
|
|
dr("Descuento") = TxtDescuentoAdd.Text.ToDouble
|
|
dr("Total") = If(txtPrecioUnitario.Text.ToDouble > 0, txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble, -1)
|
|
|
|
dr("CodigoAF") = LblCodigo.Text
|
|
dr("CveActivoFijo") = HdnCveActivoFijo.Value.ToEntero
|
|
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") = CveOrdenCompra
|
|
|
|
'dr("CvePresupuestoEgreso") = HdnCvePresupuesto.Value.ToEntero
|
|
dr("IdCuentaPorEjercer") = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero)
|
|
dr("IdCuentaComprometido") = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero)
|
|
|
|
dr("CveProgramaOperativo") = DdlACGeneral1.SelectedValue.ToEntero
|
|
dr("CveUnidadAdministrativa") = DdlACGeneral2.SelectedValue.ToEntero
|
|
dr("CveFuenteFinanciamiento") = DdlACGeneral3.SelectedValue.ToEntero
|
|
dr("CveTipoGasto") = DdlACGeneral4.SelectedValue.ToEntero
|
|
dr("CveClasificacionOG") = DdlACGeneral5.SelectedValue.ToEntero
|
|
|
|
DtDetalle.Rows.Add(dr)
|
|
CargaDatosDetalles()
|
|
'End If
|
|
|
|
'If UsuarioActual.Empresa.UsaAC AndAlso LblCvePOA.Text.Count > 0 Then
|
|
' Me.LbAgregar.Enabled = False
|
|
' UpdateAC(LblCvePOA.Text.ToEntero, dr("Total").ToString.ToEntero, False)
|
|
'End If
|
|
|
|
|
|
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()
|
|
TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString)
|
|
|
|
Total.Text = "0.00"
|
|
TxtDescuentoAdd.Text = "0.00"
|
|
|
|
End If
|
|
|
|
Else
|
|
Me.LbAgregar.Enabled = False
|
|
LblCvePOA.Text = ""
|
|
TxtCant.Text = ""
|
|
txtPrecioUnitario.Text = ""
|
|
Alert("Después de elegir el Presupuesto de Egreso (POA) se modificó el total del importe y el presupuesto no abarca el gasto. Por favor intente nuevamente", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
CargaSuperior()
|
|
CargaDatosDetalles()
|
|
UPPDetalle.Update()
|
|
|
|
End Sub
|
|
|
|
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, 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(UsuarioActual.CveEmpresa).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
|
|
|
|
Private Function ValidaGuardar() As Boolean
|
|
Dim TieneError = False
|
|
|
|
'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 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
|
|
|
|
'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.ToString.ToDecimal), TotalT)
|
|
If RequiereSubProyecto = True AndAlso CboE.SelectedValue.ToEntero > 0 Then ' cuando se cumpla la restriccion y no sea "Pre Solicitud"
|
|
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))
|
|
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), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal / GlobalTipoCambio)))
|
|
TieneError = True
|
|
End If
|
|
Next
|
|
|
|
If ChkCotizacion.Checked = True And SubProyectosNoAutorizados.Count > 0 Then
|
|
SubProyectosNoAutorizados.Add(String.Format("<br><br>Total de Cotizaciones: {0}", FormatCurrency(TotalT)))
|
|
End If
|
|
|
|
If TieneError Then
|
|
If SubProyectosNoAutorizados.Count > 0 Then
|
|
MensajeSubProyectosNoAutorizados()
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
If Not GvD.Rows.Count > 0 Then
|
|
TieneError = True
|
|
Alert("La orden de compra debe de tener registros", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
Return TieneError
|
|
End Function
|
|
Protected Sub MensajeSubProyectosNoAutorizados()
|
|
Dim ss As String = ""
|
|
For Each S As String In SubProyectosNoAutorizados
|
|
ss += "<br>- " + S
|
|
Next
|
|
Alert(String.Format("No está autorizado a modificar el SubProyecto <br>{0}", ss), TipoMensaje.MsgAdvertencia)
|
|
End Sub
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
|
|
'If UsuarioActual.CveEmpresa = 66 AndAlso notienepresupuesto() Then
|
|
' Exit Sub
|
|
'End If
|
|
|
|
'VALIDACIONES PARA GUARDAR
|
|
If ValidaGuardar() Then Exit Sub
|
|
|
|
|
|
'VARIABLES
|
|
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 = ""
|
|
|
|
'EMPIEZA OBJETOS Y TRASACCIONES
|
|
Dim Conta As ClsContPAQi = Nothing
|
|
Dim OC As New ClsOC
|
|
If Not TieneError Then
|
|
OC.IniciaTransacSQL()
|
|
If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then
|
|
Conta = New ClsContPAQi(UsuarioActual.Empresa)
|
|
Conta.IniciaTransacSQL()
|
|
End If
|
|
End If
|
|
|
|
|
|
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
|
|
|
|
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),
|
|
If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor,
|
|
RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=DdlIVA.SelectedValue.ToDouble - 1, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion) 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) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
TipoOC = "OC"
|
|
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),
|
|
If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor,
|
|
RequiereCotizacion:=ChkCotizacion.Checked, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=DdlIVA.SelectedValue.ToDouble - 1, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion) Then
|
|
CveOrdenCompra = OC.CveOrdenCompra
|
|
|
|
If TipoOC = "OC" And CboE.SelectedValue.ToEntero > 0 Then
|
|
CveOCGeneradas.Add(CveOrdenCompra)
|
|
End If
|
|
|
|
|
|
|
|
Folio = OC.Folio
|
|
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, OC.CveOrdenCompra, OC.Folio) <= 0 Then
|
|
TieneError = True
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
'TERMINA: USA AC
|
|
|
|
|
|
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) 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()
|
|
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("<a href='/OC/OC.aspx?OC={0}'>{1}</a>", CveOrdenCompra, Folio), "")
|
|
|
|
If CveOrdenCompra > 0 Then
|
|
Dim ImprimirOC = String.Format("<a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Orden de Compra</a> ", 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(UsuarioActual.CveEmpresa).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. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente <br/> {2}", TipoLargo, Folio, If(TipoOC = "OC", ImprimirOC, ""))
|
|
Else
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, Folio, LigaOCs, If(TipoOC = "OC", ImprimirOC, ""))
|
|
End If
|
|
|
|
'IMPRIME LIGA A POLIZAS
|
|
If IDPolizasGeneradas.Count > 0 Then
|
|
Msg.Append("<br/><br/> <b>Polizas generadas:</b>")
|
|
For i = 0 To IDPolizasGeneradas.Count - 1
|
|
Msg.AppendFormat("<br/> Poliza: <b><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">{1}</a></b>", 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
|
|
|
|
Else
|
|
If CveOrdenCompra > 0 Then
|
|
|
|
'siempre se esta guardando el proveedor
|
|
If Not ChkCotizacion.Checked Then CveProveedor = DdlProveedores.SelectedValue.ToEntero
|
|
|
|
Dim FueModificada As Boolean = False
|
|
If OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim), DdlMoneda.SelectedValue.ToEntero, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal) Then
|
|
|
|
'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, OC.Folio) <= 0 Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
End If
|
|
'TERMINA: USA AC
|
|
|
|
'inserto los nuevos registros
|
|
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) Then
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
FueModificada = True
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
'Edito los registros
|
|
For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1,2)").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) <= 0 Then
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
FueModificada = True
|
|
End If
|
|
Next
|
|
|
|
If Not TieneError Then
|
|
'elimino los registros
|
|
For Each i As Integer In DrEliminados
|
|
If Not OC.RemoveOrdenCompraDetalle(i) Then
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
FueModificada = True
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
'Actualizo el estatus
|
|
If CboE.SelectedValue.ToEntero <> CveEstatus Then
|
|
If OC.UpdateOrdenCompraEstatus(CboE.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then
|
|
'If Not FueModificada Then EnviarCorreoCambioEstatus(CboE.SelectedValue.ToEntero, CboE.SelectedItem.Text)
|
|
|
|
'SI requiere Cotizacion y el estatus a el que se actualizo es el FinalOK, generar las ordenes de compra
|
|
If TipoOC.ToUpper = "REQ" And CveEstatusFinalOK = CboE.SelectedValue.ToEntero Then
|
|
TieneError = Not GeneraOrdenes(OC, Conta)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
DrEliminados.Clear()
|
|
|
|
'If FueModificada Then
|
|
' EnviarCorreoModificada()
|
|
'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
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
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("<br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Orden de Compra</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOCGeneradas(0))))
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente<br><br>Se Generó la Orden de Compra {2} - {3}", TipoLargo, Folio, LigaOCs, ImprimirOC)
|
|
Else
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente<br><br>Se Generaron las siguientes Ordenes de Compra {2}", TipoLargo, Folio, LigaOCs)
|
|
End If
|
|
|
|
'IMPRIME LIGA A POLIZAS
|
|
If IDPolizasGeneradas.Count > 0 Then
|
|
Msg.Append("<br/><br/> <b>Polizas generadas:</b>")
|
|
For i = 0 To IDPolizasGeneradas.Count - 1
|
|
Msg.AppendFormat("<br/> Poliza: <b><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">{1}</a></b>", IDPolizasGeneradas(i), FoliosPolizas(i))
|
|
Next
|
|
End If
|
|
|
|
Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""")
|
|
End If
|
|
|
|
Else
|
|
OC.RollBack()
|
|
If Conta IsNot Nothing Then Conta.RollBack()
|
|
Alert("Hubo un error al registrar", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
|
|
|
|
'CargaDatos(CveOrdenCompra)
|
|
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
|
|
Else
|
|
|
|
'MANDA CORREOS
|
|
Notificaciones()
|
|
|
|
'LIMPIA VALORES GENERALES
|
|
VerificaPresupuesto = False
|
|
'CARGA LA OC/REQ
|
|
CargaDatos(CveOrdenCompra)
|
|
End If
|
|
|
|
If OC IsNot Nothing Then OC.Dispose()
|
|
If Conta IsNot Nothing Then Conta.Dispose()
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
#Region " CANCELAR OC "
|
|
Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click
|
|
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
|
|
If PolizaCancelacion > 0 Then Msg.AppendFormat("<br/><br/><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza de cancelación</a>", PolizaCancelacion)
|
|
|
|
Alert(Msg.ToString, TipoMensaje.MsgInformacion)
|
|
|
|
|
|
EnviarCorreoCambioEstatus(CboE.SelectedValue.ToEntero, CboE.SelectedItem.Text)
|
|
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 = -1
|
|
Dim FolioPolizaNueva = -1
|
|
|
|
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 < Now.Month Or dt.Rows(0)("FechaPol").ToString.ToDate.Year < Now.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
|
|
FolioPolizaNueva = ObjAC.Folio
|
|
|
|
'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
|
|
IdPolizaNueva = 0
|
|
|
|
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 "CARGA DATOS"
|
|
Private Sub CargaDatos(pCveOrdenCompra As Integer)
|
|
Dim objOC As New ClsOC
|
|
If objOC.GetOC(pCveOrdenCompra, UsuarioActual.CveEmpresa) Then
|
|
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
|
|
|
|
'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
|
|
Ddlcliente.SelectedValue = objOC.CveCliente.ToString
|
|
DdlVendedor.SelectedValue = objOC.CveVendedor.ToString
|
|
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.SelectedValue = objOC.CveMoneda.ToString
|
|
DdlPrioridad.SelectedValue = objOC.Prioridad.ToString
|
|
ChkCotizacion.Checked = objOC.RequiereCotizacion
|
|
tabCotizaciones.Enabled = objOC.RequiereCotizacion
|
|
tabCotizaciones.UpdatePanelID = uppOpciones.ID
|
|
|
|
TxtFecha.ToolTip = objOC.Fecha.ToString("dd/MM/yyyy HH:mm")
|
|
TxtFecha.Text = objOC.Fecha.ToString("dd/MM/yyyy")
|
|
|
|
DdlIVA.SelectedValue = (objOC.PorcentajeIVA + 1).ToString
|
|
TxtIVA.Text = objOC.IVA.ToString.FormatoNumero
|
|
LblIVA.Text = objOC.IVA.ToString.FormatoNumero
|
|
|
|
If Math.Abs(objOC.IVA - objOC.SubTotal * objOC.PorcentajeIVA) > 1 Then
|
|
IVAEditado = True
|
|
End If
|
|
|
|
''RETENSIONES
|
|
CargaRetenciones(objOC.RetIVA, objOC.RetISR)
|
|
|
|
lblNombreUsuario.Text = objOC.NombreUsuario
|
|
|
|
LblCodigo.Text = objOC.Codigo
|
|
|
|
|
|
If Not IsNothing(objOC.Tipo) Then
|
|
|
|
Select Case objOC.Tipo.ToUpper
|
|
Case "OC"
|
|
ViewState("TipoOC") = objOC.Tipo
|
|
ViewState("TipoLargo") = "Orden de Compra"
|
|
lblFolio.Text = String.Format("OC {0}", objOC.Folio)
|
|
lblProveedor.Text = objOC.RazonSocial
|
|
trProveedor.Visible = True
|
|
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.SelectedValue = objOC.CveProveedor.ToString
|
|
|
|
If objOC.CveUsuarioAsignado > 0 Then
|
|
TrUsuarioAsignado.Visible = True
|
|
LblUsuarioAsignado.Text = objOC.UsuarioAsignado
|
|
End If
|
|
EditarOC = If(EditarOC, True, False)
|
|
|
|
|
|
Case "REQ"
|
|
ViewState("TipoOC") = objOC.Tipo
|
|
ViewState("TipoLargo") = "Requisición"
|
|
lblFolio.Text = "REQ " + objOC.Folio.ToString
|
|
lblTipoPadreHijo.Text = "OC"
|
|
ChkCotizacion.Visible = True
|
|
DdlProveedores.SelectedValue = objOC.CveProveedor.ToString
|
|
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()
|
|
CargaHistorial()
|
|
|
|
'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(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente))
|
|
|
|
CboE.DataSource = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("Tipo = '{0}' AND TipoTermino <> 2", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente))
|
|
CboE.DataBind()
|
|
|
|
CargaEstatusUsuarios(CveEstatus, True)
|
|
CargaEstatusUsuarios(CveEstatusSiguiente, True)
|
|
CargaEstatusUsuarios(CveEstatusFinalError, True)
|
|
|
|
If CveEstatus = CveEstatusFinalError Then
|
|
CboE.DataSource = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente))
|
|
CboE.DataBind()
|
|
End If
|
|
|
|
If objOC.GetOrdenesDetalle(pCveOrdenCompra) Then
|
|
DtDetalle = objOC.DtResultados
|
|
CargaDatosDetalles()
|
|
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
|
|
|
|
For Each Row As DataRow In DtDetalle.Rows
|
|
If EditarOC AndAlso Row("CveOrdenCompraPadre").ToString.ToEntero > 0 Then
|
|
EditarOC = False
|
|
End If
|
|
Next
|
|
|
|
For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows
|
|
If Row("CveSubProyecto").ToString.ToEntero > 0 Then
|
|
|
|
If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CveEstatusSiguiente)).Rows.Count = 0 Then
|
|
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
|
|
gvCotizaciones.Enabled = False
|
|
DdlProveedores.Enabled = False
|
|
DdlIVA.Enabled = False
|
|
OCCancelable = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion
|
|
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
|
|
|
|
'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 Then
|
|
|
|
|
|
GvD.Columns(9).Visible = True 'No permitir la edicion
|
|
'GvD.Columns(9).Visible = True
|
|
ChkCotizacion.Enabled = True
|
|
TxtDescrip.Enabled = True
|
|
TxtJustificacion.Enabled = True
|
|
TxtFechaEstimadaEntrega.Enabled = True
|
|
txtLugarEntrega.Enabled = True
|
|
gvCotizaciones.Enabled = True
|
|
DdlProveedores.Enabled = True
|
|
DdlIVA.Enabled = True
|
|
|
|
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 Or CveEstatus <> CveEstatusFinalOK) Then
|
|
BtnCancelar.Enabled = True
|
|
BtnCancelarPrevio.Disabled = False
|
|
|
|
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.SelectedValue = 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
|
|
|
|
'For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows
|
|
|
|
' If Row("CveSubProyecto").ToString.ToEntero > 0 AndAlso DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0}", Row("CveSubProyecto"))).Rows.Count > 0 Then
|
|
' BtnCancelarPrevio.Enabled = True
|
|
' End If
|
|
'Next
|
|
|
|
'Si sigue Habilitado el boton, verificar si el estatus es cancelable
|
|
'If BtnCancelarPrevio.Enabled = True Then BtnCancelarPrevio.Enabled = objOC.EsCancelable
|
|
' BtnCancelarPrevio.Enabled = objOC.EsCancelable
|
|
|
|
|
|
|
|
'HplImprimir.Attributes.Add("onclick", "AbrirVentana('/OC/RepImprimirC.aspx?Reporte=OC&OC=" & OC.CveOrdenCompra & "',700,500,'')")
|
|
|
|
'Cuando es el Rol de compras
|
|
'If R.CveEstatus = 3 AndAlso UsuarioActual.CveRol = 6 Then
|
|
' ImgCotizaciones.Visible = True
|
|
'End If
|
|
|
|
|
|
'If OC.CveActivoFijo > 0 Then CboActivoFijo.SelectedValue = OC.CveActivoFijo.ToString
|
|
TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString)
|
|
|
|
BtnGuardar.Visible = True
|
|
trAddDetalle.Visible = True
|
|
fsSeguimiento.Visible = True
|
|
fsHistorial.Visible = True
|
|
|
|
'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
|
|
|
|
GvD.Columns(5).Visible = True
|
|
' tbEstatus.Visible = False
|
|
|
|
ImgAddObs.Attributes.Add("onclick", "javascript: PosicionaObjeto(this.id,'DivEventoBitacora',null,-250,-250); $('#DivEventoBitacora').show(1000);")
|
|
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=1000;"
|
|
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
|
|
'GvD.Columns(9).Visible = True
|
|
ChkCotizacion.Enabled = True
|
|
TxtDescrip.Enabled = True
|
|
TxtJustificacion.Enabled = True
|
|
TxtFechaEstimadaEntrega.Enabled = True
|
|
txtLugarEntrega.Enabled = True
|
|
gvCotizaciones.Enabled = True
|
|
DdlProveedores.Enabled = True
|
|
DdlIVA.Enabled = True
|
|
End If
|
|
|
|
uppEstatus.Update()
|
|
UPPEmp.Update()
|
|
|
|
Else
|
|
ViewState("Tipo") = "REQ"
|
|
ViewState("TipoLargo") = "Requisición"
|
|
End If
|
|
|
|
objOC.Dispose()
|
|
|
|
|
|
End Sub
|
|
Protected Sub CargaDatosDetalles()
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
|
|
CalculaGenerales()
|
|
|
|
CalculaDescuentoGeneral()
|
|
|
|
UPPDetalle.Update()
|
|
CompruebaAgregar()
|
|
CargaSuperior()
|
|
End Sub
|
|
|
|
Protected Sub CargaHistorial()
|
|
Dim objOC As New ClsOC
|
|
|
|
If objOC.GetOrdenesHistorial(CveOrdenCompra) Then
|
|
ViewState("DtHistorial") = objOC.DtResultados
|
|
|
|
GVH.DataSource = DtHistorial.FiltraParametros("CveConceptoHistorialOrdenCompra <> 1")
|
|
GVH.DataBind()
|
|
uppHistorial.Update()
|
|
|
|
End If
|
|
If objOC.GetOrdenesEstatus(CveOrdenCompra) Then
|
|
gvEstatus.DataSource = objOC.DtResultados
|
|
gvEstatus.DataBind()
|
|
|
|
End If
|
|
|
|
uppSeguimientoEstatus.Update()
|
|
|
|
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
|
|
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)
|
|
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
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region " GVD "
|
|
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
If e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate Then
|
|
If UsuarioActual.Empresa.GralSoloProyecto 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
|
|
'EditarOC = False
|
|
e.Row.FCLiteral("LtlLiga").Text = String.Format("<a class='Texto' href='/OC/OC.aspx?OC={0}'>{1}</a>", 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("<a class='Texto' href='/OC/OC.aspx?OC={0}'>{1}</a>", e.Row.DBCampo("CveOrdenCompraHija"), e.Row.DBCampo("FolioOrdenCompraHija"))
|
|
End If
|
|
|
|
'CveCompraDetalle Vinculada
|
|
e.Row.FCLiteral("LtlCompra").Text = String.Format("<a class='Texto' href='../Compras/Compras.aspx?CveCompra={0}'>{1}</a>", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("FolioCompra"))
|
|
If e.Row.DBCampo("CveCompra") <> "" And LblCompra.Visible = False Then
|
|
LblCompra.Visible = True
|
|
GvD.Columns(11).Visible = True
|
|
End If
|
|
|
|
'CargaPresupuestosEgresos
|
|
If UsuarioActual.Empresa.UsaAC And VerificaPresupuesto Then
|
|
e.Row.FCDropDownList("DdlAC1").Visible = True
|
|
e.Row.FCDropDownList("DdlAC1").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"})
|
|
e.Row.FCDropDownList("DdlAC1").DataBind()
|
|
If e.Row.DBCampo("CveProgramaOperativo").ToEntero > 0 Then e.Row.FCDropDownList("DdlAC1").DataSource = e.Row.DBCampo("CveProgramaOperativo")
|
|
|
|
e.Row.FCDropDownList("DdlAC2").Visible = True
|
|
e.Row.FCDropDownList("DdlAC2").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"})
|
|
e.Row.FCDropDownList("DdlAC2").DataBind()
|
|
If e.Row.DBCampo("CveUnidadAdministrativa").ToEntero > 0 Then e.Row.FCDropDownList("DdlAC2").DataSource = e.Row.DBCampo("CveUnidadAdministrativa")
|
|
|
|
e.Row.FCDropDownList("DdlAC3").Visible = True
|
|
e.Row.FCDropDownList("DdlAC3").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"})
|
|
e.Row.FCDropDownList("DdlAC3").DataBind()
|
|
If e.Row.DBCampo("CveFuenteFinanciamiento").ToEntero > 0 Then e.Row.FCDropDownList("DdlAC3").DataSource = e.Row.DBCampo("CveFuenteFinanciamiento")
|
|
|
|
e.Row.FCDropDownList("DdlAC4").Visible = True
|
|
e.Row.FCDropDownList("DdlAC4").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"})
|
|
e.Row.FCDropDownList("DdlAC4").DataBind()
|
|
If e.Row.DBCampo("CveTipoGasto").ToEntero > 0 Then e.Row.FCDropDownList("DdlAC4").DataSource = e.Row.DBCampo("CveTipoGasto")
|
|
|
|
' e.Row.FCLabel("LblClasificacion").Visible = False
|
|
e.Row.FCDropDownList("DdlAC5").Visible = True
|
|
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")
|
|
'e.Row.FCDropDownList("DdlAC5").SelectedValue = e.Row.DBCampo("CveClasificacion")
|
|
|
|
Else
|
|
e.Row.Cells(12).Visible = False
|
|
e.Row.Cells(13).Visible = False
|
|
e.Row.Cells(14).Visible = False
|
|
e.Row.Cells(15).Visible = False
|
|
e.Row.Cells(16).Visible = False
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
|
|
'e.Row.Cells(7).Width = Unit.Pixel(82)
|
|
e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa)
|
|
e.Row.FCDropDownList("DdlPS").DataBind()
|
|
e.Row.FCDropDownList("DdlPS").SelectedValueExist(e.Row.DBCampo("CvePS"))
|
|
|
|
DdlPS_SelectedIndexChanged1(e.Row.FCDropDownList("DdlPS"), EventArgs.Empty)
|
|
|
|
If isWhitFamily() Then
|
|
e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa) 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("Codigo is null OR Codigo = ''")
|
|
Else
|
|
e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
|
|
End If
|
|
e.Row.FCDropDownList("DdlClasificacion").DataBind()
|
|
e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveClasificacion"))
|
|
|
|
Dim dr As DataRow = GlobalDTSubProyectos(e.Row.DBCampo("CveProyecto").ToEntero, e.Row.DBCampo("CveSubProyecto").ToEntero).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa).FiltroPrimero("")
|
|
|
|
If dr IsNot Nothing Then
|
|
If UsuarioActual.Empresa.GralSoloProyecto 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.GralSoloProyecto 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
|
|
|
|
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))
|
|
Else
|
|
|
|
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()
|
|
|
|
CargaDatosDetalles()
|
|
End Sub
|
|
|
|
Protected Sub GvD_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvD.RowEditing
|
|
|
|
GvD.EditIndex = e.NewEditIndex
|
|
'DdlPS_SelectedIndexChanged1(GvD.Rows(e.NewEditIndex).FCDropDownList("CboUnidadMedidaEdit"), EventArgs.Empty)
|
|
CargaDatosDetalles()
|
|
|
|
|
|
'Dim EditingRow As GridViewRow = GvD.Rows(e.NewEditIndex)
|
|
'Dim CboUM As DropDownList = EditingRow.FCDropDownList("CboUnidadMedidaEdit")
|
|
'CboUM.DataSource = GlobalDTUnidadesMedida
|
|
'CboUM.DataBind()
|
|
'CboUM.SelectedValue = EditingRow.DataKey("CveUnidadMedida").ToString
|
|
|
|
'Dim CboClasif As DropDownList = EditingRow.FCDropDownList("DdlClasificacion")
|
|
'CboClasif.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
|
|
'CboClasif.DataBind()
|
|
'CboClasif.SelectedValue = EditingRow.DataKey("CveClasificacion").ToString()
|
|
|
|
'Dim CboPS As DropDownList = EditingRow.FCDropDownList("DdlPS")
|
|
|
|
'Dim filtro As String = ""
|
|
'Dim CveClasificacion = EditingRow.DataKey("CveClasificacion").ToEntero
|
|
'If CveClasificacion > 0 Then
|
|
' If isWhitFamily() Then
|
|
' filtro = String.Format("CveSubFamilia={0}", CveClasificacion)
|
|
' Else
|
|
' filtro = String.Format("CveClasificacion={0}", CveClasificacion)
|
|
' End If
|
|
'End If
|
|
'CboPS.Items.Clear()
|
|
'CboPS.ClearSelection()
|
|
'CboPS.DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltraParametros(filtro, "PS")
|
|
'CboPS.DataBind()
|
|
'CboPS.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
|
'CboPS.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
|
|
|
'CboPS.SelectedValueExist(EditingRow.DataKey("CvePS").ToString())
|
|
|
|
'EditingRow.FCTextBox("TxtObsPS").Text = EditingRow.DataKey("Observacion").ToString()
|
|
|
|
'HdnEditCveActivoFijo.Value = EditingRow.DataKey("CveActivoFijo").ToString
|
|
'HdnEditCodigo.Value = EditingRow.DataKey("Codigo").ToString
|
|
|
|
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 = If(gvr.FCTextBox("TxtImporteEdit").Text.Trim = "", -1, gvr.FCTextBox("TxtImporteEdit").Text.Trim.ToDouble)
|
|
Descuento = If(gvr.FCTextBox("TxtDescuentoEdit").Text.Trim = "", 0, 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
|
|
CvePS = gvr.FCDropDownList("DdlPS").SelectedValue.ToEntero
|
|
PS = gvr.FCDropDownList("DdlPS").SelectedItem.Text
|
|
|
|
CveSubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero
|
|
SubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedItem.Text
|
|
|
|
If UsuarioActual.Empresa.GralSoloProyecto Then
|
|
CveProyecto = -1
|
|
Proyecto = "Seleccione"
|
|
Else
|
|
CveProyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero
|
|
Proyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedItem.Text
|
|
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 = ""
|
|
|
|
'gvr.FCHiddenField("HdnEditCveActivoFijo").Value.ToEntero
|
|
'gvr.FCLabel("LblEditCodigo").Text
|
|
'Dim CveOrdenCompraDetalle As Integer = GvD.DataKeys(e.RowIndex)("CveOrdenCompraDetalle").ToString.ToEntero
|
|
'Dim pCveOrdenCompra As Integer = GvD.DataKeys(e.RowIndex)("CveOrdenCompra").ToString.ToEntero
|
|
Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero)
|
|
'Dim totalanterior As Double = dr(0)("Total").ToString.ToDouble
|
|
|
|
dr(0)("Cantidad") = Cantidad
|
|
dr(0)("CveUnidadMedida") = CveUnidad
|
|
dr(0)("UM") = UM
|
|
dr(0)("CveClasificacion") = CveClasificacion
|
|
dr(0)("Clasificacion") = Clasificacion
|
|
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") = Importe * Cantidad
|
|
|
|
dr(0)("CveActivoFijo") = CveActivoFijo
|
|
dr(0)("Codigo") = 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
|
|
' dr.AcceptChanges()
|
|
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 "GENERAR ORDENES"
|
|
Protected Function GeneraOrdenes(ByRef objOrdenCompra As ClsOC, Conta As ClsContPAQi) As Boolean
|
|
' Dim objOrdenCompra As New ClsOC
|
|
'objOrdenCompra.IniciaTransacSQL()
|
|
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)
|
|
|
|
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(UsuarioActual.CveEmpresa).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, txtLugarEntrega.Text, CveUsuario, UsuarioActual.CveEmpresa, 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) 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
|
|
|
|
LigaOcsTemp = String.Format("{0}<br><a href='/OC/OC.aspx?OC={1}'>{2}</a>", LigaOcsTemp, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio)
|
|
CveOCGeneradasTemp.Add(objOrdenCompra.CveOrdenCompra)
|
|
|
|
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) 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)
|
|
For Each CveOC As Integer In CveOCGeneradasTemp
|
|
CveOCGeneradas.Add(CveOC)
|
|
Next
|
|
End If
|
|
|
|
'ANTERIOR 24 FEBRERO
|
|
'If objOrdenCompra.GetCotizacionesDetalle(-1, CveOrdenCompra) Then
|
|
' Dim DtCotizacionesDetalle As DataTable = objOrdenCompra.DtResultados.FiltraParametros("EsGanadora = 1", "CveCotizacion")
|
|
' If DtCotizacionesDetalle.Rows.Count > 0 Then
|
|
|
|
' For Each Row As DataRow In DtCotizacionesDetalle.Rows
|
|
' Dim CveProveedor As Integer = 0
|
|
|
|
|
|
' If CveCotizacion <> Row("CveCotizacion").ToString.ToEntero Then
|
|
' CveCotizacion = Row("CveCotizacion").ToString.ToEntero
|
|
|
|
' 'Si CveProveedor es NULL, el Ganador fue una Colectiva... Tomar la Colectiva y hacerlo proveedor
|
|
' If IsDBNull(Row("CveProveedor")) Then
|
|
' Dim objProveedor As New ClsCompProveedores
|
|
|
|
' If objProveedor.AddProveedor("", Row("Colectiva").ToString, Row("Colectiva").ToString, "", Row("RFCColectiva").ToString, "", "", "", Row("CorreoColectiva").ToString, "",
|
|
' 0, 0, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, UsuarioActual.CveUsuario, "", "", False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
|
|
' 'Actualizar global dt
|
|
' If objProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1) Then
|
|
' Application("GlobalDTCompProveedores") = objProveedor.DtResultados
|
|
' End If
|
|
' CveProveedor = objProveedor.CveProveedor
|
|
' CveColectiva = Row("CveColectiva").ToString.ToEntero
|
|
|
|
' 'Quitarlo de las Colectivas
|
|
' ' If CveColectiva > 0 Then Dim objColectiva As New ClsGenerales : objColectiva.RemoveColectivas(CveColectiva, UsuarioActual.CveEmpresa) : objColectiva.Dispose()
|
|
' Else
|
|
' HuboError = True
|
|
' End If
|
|
' objProveedor.Dispose()
|
|
' Else
|
|
' CveProveedor = Row("CveProveedor").ToString.ToEntero
|
|
' End If
|
|
|
|
' If HuboError = False Then
|
|
' If objOrdenCompra.AddOrdenCompra("OC", Row("CveSubProyecto").ToString.ToEntero, Row("Descripcion").ToString, Row("Justificacion").ToString, Row("Prioridad").ToString.ToEntero, Now, Row("CveMoneda").ToString.ToEntero, CveEstatusInicialOC,
|
|
' If(Not IsDBNull(Row("FechaEstimadaEntrega")), Row("FechaEstimadaEntrega").ToString, "-1"), If(Row("LugarEntrega").ToString.Trim = "", "-1",
|
|
' Row("LugarEntrega").ToString.Trim), CveUsuario, UsuarioActual.CveEmpresa, 0, pCveProveedor:=CveProveedor, RequiereCotizacion:=ChkCotizacion.Checked,
|
|
' CveCliente:=Ddlcliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
|
|
' PorcentajeIVA:=DdlIVA.SelectedValue.ToDouble - 1, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal) Then
|
|
' 'CveOrdenCompra = objOrdenCompra.CveOrdenCompra
|
|
' 'Ingresar los detalles
|
|
' For Each RowD As DataRow In DtCotizacionesDetalle.FiltraParametros("CveCotizacion = " + CveCotizacion.ToString).Rows
|
|
' If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, RowD("Cantidad").ToString.ToDouble, RowD("CveUnidadMedida").ToString.ToEntero, RowD("CvePS").ToString.ToEntero, RowD("PU").ToString.ToDouble, RowD("CveSubProyecto").ToString.ToEntero, If(Not IsDBNull(RowD("CveActivoFijo")), RowD("CveActivoFijo").ToString.ToEntero, -1), RowD("ObservacionOCD").ToString, CveUsuario, CveOrdenCompra, -1, 0.0) Then
|
|
' HuboError = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' End If
|
|
|
|
' End If
|
|
|
|
' If HuboError = False Then
|
|
' ViewState("LigaOCs") = String.Format("{0}<br><a href='/OC/OC.aspx?OC={1}' class='Texto'>{2}</a>", LigaOCs, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio)
|
|
' CveOCGeneradas.Add(objOrdenCompra.CveOrdenCompra)
|
|
' End If
|
|
' End If
|
|
' Next
|
|
' End If
|
|
'Else
|
|
' HuboError = True
|
|
'End If
|
|
Else
|
|
'cuando no requiere cotizacion
|
|
'se debe de agrupar pr subproyecto,
|
|
'Dim SubProyectos = From d In DtDetalle.AsEnumerable()
|
|
' Group d By Grp = New With {
|
|
' Key .CveSubProyecto = d("CveSubProyecto").ToString.ToEntero
|
|
' } Into Group
|
|
' Select Grp.CveSubProyecto
|
|
|
|
'For Each obj In SubProyectos
|
|
' If objOrdenCompra.AddOrdenCompra("OC", obj.ToEntero, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC,
|
|
' TxtFechaEstimadaEntrega.Text, txtLugarEntrega.Text, CveUsuario, UsuarioActual.CveEmpresa, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero,
|
|
' CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
|
|
' PorcentajeIVA:=DdlIVA.SelectedValue.ToDouble - 1) Then
|
|
|
|
' For Each dr As GridViewRow In GvD.Rows
|
|
' If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr.DataKey("Cantidad").ToString.ToDouble(), dr.DataKey("CveUnidadMedida").ToString.ToEntero, dr.DataKey("CvePS").ToString.ToEntero, dr.DataKey("Importe").ToString.ToDouble, dr.DataKey("CveSubProyecto").ToString.ToEntero(), dr.DataKey("CveActivoFijo").ToString.ToEntero, dr.DataKey("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra, CvePresupuestoEgreso:=dr.FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero) Then
|
|
' HuboError = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
|
|
' If HuboError = False Then
|
|
' ViewState("LigaOCs") = String.Format("{0}<br><a href='/OC/OC.aspx?OC={1}'>{2}</a>", LigaOCs, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio)
|
|
' CveOCGeneradas.Add(objOrdenCompra.CveOrdenCompra)
|
|
' End If
|
|
' End If
|
|
'Next
|
|
|
|
If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC,
|
|
TxtFechaEstimadaEntrega.Text, txtLugarEntrega.Text, CveUsuario, UsuarioActual.CveEmpresa, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, CveCliente:=Ddlcliente.SelectedValue.ToEntero,
|
|
CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
|
|
PorcentajeIVA:=DdlIVA.SelectedValue.ToDouble - 1, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion) 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) Then
|
|
HuboError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If HuboError = False Then
|
|
ViewState("LigaOCs") = String.Format("{0}<br><a href='/OC/OC.aspx?OC={1}'>{2}</a>", LigaOCs, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio)
|
|
CveOCGeneradas.Add(objOrdenCompra.CveOrdenCompra)
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
'Cambiar de estatus a la requisicion -- "Se genero Orden de Compra"
|
|
'If objOrdenCompra.UpdateOrdenCompraEstatus(CveEstatusSiguiente, CveOrdenCompra, UsuarioActual.CveUsuario, "") Then
|
|
' 'EnviarCorreoCambioEstatus(CveEstatusSiguiente, GlobalDTOCEstatus.FiltraParametros("CveEstatus = " + CveEstatusSiguiente.ToString).Rows(0)("Estatus").ToString)
|
|
'End If
|
|
|
|
|
|
'If HuboError = False Then
|
|
' objOrdenCompra.Commit()
|
|
|
|
'GeneraPDF(objOrdenCompra.CveOrdenCompra)
|
|
'Enviar correo
|
|
'EnviarCorreoOrdenCompra(objOrdenCompra.CveOrdenCompra, CveProveedor)
|
|
|
|
'Quitarlo de las Colectivas
|
|
'If CveColectiva > 0 Then Dim objColectiva As New ClsGenerales : objColectiva.RemoveColectivas(Row("CveColectiva").ToString.ToEntero, UsuarioActual.CveEmpresa) : objColectiva.Dispose()
|
|
'Else
|
|
' objOrdenCompra.RollBack()
|
|
'End If
|
|
|
|
Catch ex As Exception
|
|
HuboError = True
|
|
End Try
|
|
|
|
Return Not HuboError
|
|
End Function
|
|
Protected Sub DesHabilitar()
|
|
TxtFechaEstimadaEntrega.Enabled = False
|
|
txtLugarEntrega.Enabled = False
|
|
TxtDescrip.Enabled = False
|
|
TxtJustificacion.Enabled = False
|
|
DdlPrioridad.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
|
|
'btnGeneraOrdenes.Visible = False
|
|
BtnGuardar.Enabled = False
|
|
BtnCancelar.Enabled = False
|
|
'BtnCancelarPrevio.Enabled = False
|
|
DdlProyecto.Enabled = False
|
|
DdlSubProyecto.Enabled = False
|
|
txtPrecioUnitario.Enabled = False
|
|
gvCotizaciones.Enabled = False
|
|
GvD.Enabled = False
|
|
|
|
|
|
'GvD.Columns(5).Visible = False
|
|
GvD.Columns(9).Visible = False
|
|
GvD.Columns(10).Visible = True
|
|
|
|
BtnCancelarPrevio.Disabled = True
|
|
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(UsuarioActual.CveEmpresa)
|
|
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(UsuarioActual.CveEmpresa)
|
|
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(UsuarioActual.CveEmpresa).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, UsuarioActual.CveEmpresa, 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
|
|
|
|
UPPDetalle.Update()
|
|
UpPresupuestosAC.Update()
|
|
End Sub
|
|
Private Sub MuestraPresupuestosEgresos()
|
|
|
|
'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 = 1000
|
|
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()
|
|
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, UsuarioActual.CveEmpresa, 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
|
|
|
|
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, UsuarioActual.CveEmpresa) 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}", Ddl1.SelectedValue.ToString, Ddl2.SelectedValue.ToString, Ddl3.SelectedValue.ToString, Ddl4.SelectedValue.ToString, 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(7).BackColor = Drawing.Color.Green
|
|
Else
|
|
Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia)
|
|
grid.Cells(7).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(7).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
|
|
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", True, False)) > 0 Then
|
|
If Cve(1).ToString.ToUpper = "TRUE" Then
|
|
Dim index = CType(DirectCast(e.CommandSource, Button).NamingContainer, GridViewRow).RowIndex
|
|
Dim dr = DtDetalle.Rows(index)
|
|
|
|
dr("Importe") = DirectCast(e.CommandSource, Button).Text
|
|
dr("Total") = dr("Importe").ToString.ToDecimal * dr("Cantidad").ToString.ToDecimal
|
|
dr("CveProveedor") = Cve(2).ToString.ToEntero
|
|
|
|
'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) <= 0 Then
|
|
TieneError = True
|
|
End If
|
|
|
|
CargaDatosDetalles()
|
|
End If
|
|
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("<a class='Texto thickbox' href='/OC/RepCotizacionesDetalle.aspx?CveOrdenCompra={0}&CveCotizacion={1}&TB_iframe=true&height=600&width=1000;'>{2}</a>", CveOrdenCompra, DtCotizaciones.Rows(i - 1)("CveCotizacion"), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva")))
|
|
'<button onclick='showDivEC({1});' class='btn btn-circle btn-sm red'><i class='fa fa-close'><i/></button>",
|
|
Next
|
|
End If
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
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.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)), True, 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.Enabled = False
|
|
'Btn.Visible = False
|
|
End If
|
|
Next
|
|
|
|
|
|
'Coloreo el más barato
|
|
If CellMasBarato > 0 Then e.Row.Cells(CellMasBarato + 2).BackColor = Drawing.Color.LightBlue
|
|
|
|
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")
|
|
|
|
'Btn.CommandArgument = String.Format("{0}|{1}", e.Row.DBCampo("CveCotizacionDetalle" & i), True)
|
|
|
|
If If(Not IsDBNull(dr("CveProveedor")), dr("CveProveedor").ToString.ToEntero, dr("CveColectiva").ToString.ToEntero) = e.Row.DBCampo("CveProveedorGanador").ToEntero Then
|
|
e.Row.Cells(i + 2).BackColor = Drawing.Color.LightGreen
|
|
Btn.OnClientClick = "return false;"
|
|
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 ObjCotizaciones As New ClsOC
|
|
|
|
''ObjCotizaciones.RemoveCotizacion(HdnCveCotizacion.Value.ToEntero)
|
|
'Alert(String.Format("CveCotizacion: {0}", HdnCveCotizacion.Value))
|
|
'ObjCotizaciones.Dispose()
|
|
Dim Body = GeneraCorreoEliminarCotizacion(HdnCveCotizacion.Value.ToEntero, txtMotivoEliminacion.Text)
|
|
Dim Mail As New ClsSisMail()
|
|
Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, "91danielcota@gmail.com", "SIG - Eliminación de Cotización [Prueba]", Body)
|
|
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, UsuarioActual.CveEmpresa, Codigo, Descripcion, CveTipoActivoFijo, CveSubTipoActivoFijo, "-1", -1, -1, -1, -1, -1, "") 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(UsuarioActual.CveEmpresa) '.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
DdlAFTipoActivoFijo.DataBind()
|
|
DdlAFTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End Sub
|
|
Private Sub CargaSubTipoActivoFijo()
|
|
DdlAFSubTipoActivoFijo.Items.Clear()
|
|
DdlAFSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoActivoFijo = '" & DdlAFTipoActivoFijo.SelectedValue & "'")
|
|
'DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa & " 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, UsuarioActual.CveEmpresa, LblCodigo.Text, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "") 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, UsuarioActual.CveEmpresa, HdnCodAFEdit.Value, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "") 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.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(450)
|
|
e.Row.Cells(4).Width = Unit.Pixel(50)
|
|
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 Extension = Session("FileExtension").ToString
|
|
Dim Archivo = Session("FileUpload").ToString
|
|
Dim Ruta = Session("FileFolder").ToString
|
|
|
|
If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, If(Session("FileExtension").ToString.Length > 0, Session("FileExtension").ToString, "-1"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOC:=CveOrdenCompra) Then
|
|
|
|
'Renombrar archivo
|
|
If Session("FileExtension").ToString.Length > 0 AndAlso Session("FileUpload").ToString.Length > 0 AndAlso Session("FileFolder").ToString.Length > 0 Then
|
|
If Not Directory.Exists(String.Format("{0}Empresas\{1}\OI", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)) Then
|
|
Directory.CreateDirectory(String.Format("{0}Empresas\{1}\OI", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
|
|
End If
|
|
Ruta = String.Format("{0}Empresas\{1}\OI\", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
|
|
System.IO.File.Move(Archivo, String.Format("{0}OI{1}{2}", Ruta, ObjEventoBitacora.CveEvento.ToString, Extension))
|
|
End If
|
|
|
|
GvEB.DataSource = ObjEventoBitacora.DtResultados
|
|
TxtEventoDescripcion.Text = ""
|
|
Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion)
|
|
|
|
'obtener el Evento de bitacora para enviar el correo
|
|
If ObjEventoBitacora.GetEvento(ObjEventoBitacora.CveEvento, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) 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("http://sig.adsistemas.mx/Empresas/{0}/OI/{1}", UsuarioActual.CveEmpresa, ObjEventoBitacora.Archivo))
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
ObjEventoBitacora.Dispose()
|
|
GvEB.DataBind()
|
|
|
|
UPEventoBitacora.Update()
|
|
CargaEventoBitacora()
|
|
End Sub
|
|
Private Sub CargaEventoBitacora()
|
|
|
|
Dim ObjEventoBitacora As New ClsOIEventos()
|
|
If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOC:=CveOrdenCompra) Then
|
|
GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2")
|
|
Else
|
|
GvEB.DataSource = Nothing
|
|
End If
|
|
ObjEventoBitacora.Dispose()
|
|
GvEB.DataBind()
|
|
|
|
UPEventoBitacora.Update()
|
|
End Sub
|
|
Protected Sub CargarArchivo(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AFU.UploadedComplete
|
|
If AFU.HasFile Then
|
|
|
|
Dim UploadFolder As String = String.Format("{0}\Temp\", UsuarioActual.Empresa.Ruta)
|
|
If Not Directory.Exists(UploadFolder) Then
|
|
Directory.CreateDirectory(UploadFolder)
|
|
End If
|
|
Dim Extension As String = System.IO.Path.GetExtension(AFU.PostedFile.FileName)
|
|
|
|
If File.Exists(String.Format("{0}{1}{2}", UploadFolder, UsuarioActual.CveUsuario.ToString, Extension)) Then File.Delete(String.Format("{0}{1}{2}", UploadFolder, UsuarioActual.CveUsuario.ToString, Extension))
|
|
|
|
AFU.SaveAs(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension)
|
|
Session("FileUpload") = UploadFolder & UsuarioActual.CveUsuario.ToString & Extension
|
|
Session("FileExtension") = Extension
|
|
Session("FileFolder") = UploadFolder
|
|
End If
|
|
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=" + 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 " ANTICIPOS "
|
|
Private Sub CargarOptionAnticipos()
|
|
If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then
|
|
option72B.Visible = True
|
|
option72.Visible = True
|
|
trSolicitarAnticipo.Visible = True
|
|
Ddlcliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
|
|
Ddlcliente.DataBind()
|
|
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
|
|
DdlVendedor.DataBind()
|
|
End If
|
|
|
|
Ddlcliente.Items.Insert(0, New ListItem(" - ", "-1"))
|
|
'Ddlcliente.DataBind()
|
|
DdlVendedor.Items.Insert(0, New ListItem(" - ", "-1"))
|
|
'DdlVendedor.DataBind()
|
|
BtnSolicitudAnticipo.Visible = True
|
|
|
|
End Sub
|
|
|
|
Protected Sub btnsolicitaranticipo_Click(sender As Object, e As EventArgs) Handles BtnSolicitarAnticipo.Click
|
|
|
|
If CveOrdenCompra.ToEntero > 0 Then
|
|
Dim Descripcion As String = String.Format("Importe anticipo : {0} {1} ", TxtSAImporte.Text, TxtSAObservaciones.Text)
|
|
Dim objOI As New ClsOIEventos
|
|
|
|
If objOI.AddEventoTarea(String.Format("Solicitud de anticipo (Orden de Compra {0})", lblFolio.Text), Descripcion, 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, UsuarioActual.CveEmpresa) Then
|
|
Alert("La Solicitud ha sido enviada", TipoMensaje.MsgInformacion)
|
|
'GeneraPDF(CveOrdenCompra)
|
|
TxtSAImporte.Text = ""
|
|
TxtSAObservaciones.Text = ""
|
|
TxtSAImPorcentaje.Text = ""
|
|
Dim Param As New List(Of String)
|
|
Dim DtPara As DataTable = GlobalDTUsuarios(DdlSAUsuario.SelectedValue.ToString.ToEntero, UsuarioActual.CveEmpresa)
|
|
Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para
|
|
'Param.Add("caudillo_90@hotmail.com") 'Para
|
|
Param.Add("Anticipo de Orden de Compra") 'Asunto
|
|
Param.Add(GeneraCorreo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", objOI.CveEvento), TxtSAImporte.Text)) 'Body
|
|
Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra))
|
|
' Param.Add(If(Row.DataKey("Comprobante").ToString <> "", String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, Row.DataKey("Comprobante").ToString), "")) 'Archivo Adjunto
|
|
Dim Hilo As New Threading.Thread(AddressOf MandaCorreoanticipo)
|
|
Hilo.Start(Param)
|
|
Else
|
|
|
|
End If
|
|
objOI.Dispose()
|
|
Else
|
|
Alert("Debe tener una orden de compra activa", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
End Sub
|
|
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}", GlobalDTProductosServicios(UsuarioActual.CveEmpresa, -1, -1).FiltroPrimero(String.Format("CvePS={0}", dr("CvePS").ToString.ToEntero))("CveSubFamilia").ToString, dr("CveSubProyecto").ToString)
|
|
'Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTProductosServicios(UsuarioActual.CveEmpresa, -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
|
|
#End Region
|
|
|
|
|
|
#Region " COTIZACIONES "
|
|
Protected Sub VerificaSiRequiereCotizacion()
|
|
If TipoOC = "REQ" Then
|
|
|
|
If ChkCotizacion.Checked Then
|
|
PnlProveedor.Visible = False
|
|
UPProv.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()
|
|
'CVPU.Enabled = True
|
|
End If
|
|
|
|
If CveEstatus = CveEstatusFinalOK Then
|
|
BtnGuardar.Enabled = True : BtnGuardar.Text = String.Format("Guardar{0}", If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, " y Generar OC", "")) : uppOpciones.Update()
|
|
PnlProveedor.Visible = True
|
|
UPProv.Update()
|
|
End If
|
|
End If
|
|
|
|
UPPTab.Update()
|
|
VerificaCotizacionesGanadoras()
|
|
End If
|
|
|
|
'If TipoOC = "REQ" And CveEstatus <> CveEstatusFinalOK And CveEstatus <> CveEstatusFinalError Then
|
|
|
|
' If ChkCotizacion.Checked Then
|
|
' PnlProveedor.Visible = False
|
|
' UPProv.Update()
|
|
' BtnGuardar.Text = "Guardar"
|
|
' tabCotizaciones.Enabled = True
|
|
' Else
|
|
' BtnGuardar.Enabled = True : BtnGuardar.Text = String.Format("Guardar{0}", If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, " y Generar OC", "")) : uppOpciones.Update()
|
|
' PnlProveedor.Visible = True
|
|
' UPProv.Update()
|
|
' End If
|
|
'End If
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
|
|
Public Function isWhitFamily() As Boolean
|
|
Return UsuarioActual.CveEmpresa = 66
|
|
End Function
|
|
|
|
Protected Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProveedores.SelectedIndexChanged
|
|
|
|
End Sub
|
|
|
|
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, UsuarioActual.CveEmpresa) Then
|
|
CargaHistorial()
|
|
Alert("El cambio de proveedor se hizo correctamente", TipoMensaje.MsgInformacion)
|
|
End If
|
|
OC.Dispose()
|
|
End Sub
|
|
Protected Sub CboE_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboE.SelectedIndexChanged
|
|
CargaEstatusUsuarios(CboE.SelectedValue.ToEntero)
|
|
CargaProyectos()
|
|
CargaSubProyectos()
|
|
CargaSuperior()
|
|
UPPDetalle.Update()
|
|
PnlUsuarioAsignado.Visible = False
|
|
|
|
'Si NO requiere cotizacion y el estatus siguiente es el final,
|
|
If TipoOC.ToUpper = "REQ" Then
|
|
|
|
If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso TipoOS = False Then
|
|
BtnGuardar.Text = "Guardar y Generar OC" : uppOpciones.Update()
|
|
PnlProveedor.Visible = True : UPProv.Update()
|
|
|
|
If UsuarioActual.CveEmpresa = 13 Then
|
|
PnlUsuarioAsignado.Visible = True
|
|
DdlUsuariosAsignado.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
|
|
DdlUsuariosAsignado.DataBind()
|
|
DdlUsuariosAsignado.Items.Insert(0, New ListItem(" - ", "-1"))
|
|
|
|
End If
|
|
|
|
'CVPU.Enabled = True
|
|
RVProveedores.Enabled = True
|
|
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()
|
|
|
|
PnlProveedor.Visible = False : UPProv.Update()
|
|
'CVPU.Enabled = False
|
|
End If
|
|
|
|
'temporal
|
|
If ChkCotizacion.Checked = False AndAlso CveEstatus <> CveEstatusFinalOK Then
|
|
PnlProveedor.Visible = True : UPProv.Update()
|
|
'CVPU.Enabled = True
|
|
RVProveedores.Enabled = False
|
|
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()
|
|
'CVPU.Enabled = True
|
|
RVProveedores.Enabled = True
|
|
If CveEstatus <> CveEstatusFinalError Then RegistraScript("$get('divCE').style.display='';PosicionaObjeto('C_CboE','divCE'); ")
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ActivaAC()
|
|
End If
|
|
|
|
'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 "Calcula Generales"
|
|
Private Sub CalculaGenerales()
|
|
Dim Subtotal As Double = DtDetalle.SUM("Total", "Total > 0")
|
|
Dim SubTotalIVA As Double = DtDetalle.SUM("Total", "Total > 0 AND IVAPS <> 0")
|
|
Dim Descuento As Double = DtDetalle.SUM("Descuento")
|
|
Dim DescuentoIVA As Double = DtDetalle.SUM("Descuento", "IVAPS <> 0")
|
|
LblSubTotal.Text = (Subtotal).FormatoNumero
|
|
|
|
'IVA
|
|
'SI EL IVA YA FUE EDITADO CONSERVA EL IVA INGRESADO POR EL USUARIO
|
|
Dim IVA = If(IVAEditado, TxtIVA.Text.ToDouble, If(SubTotalIVA - DescuentoIVA > 0, (SubTotalIVA - DescuentoIVA) * (DdlIVA.SelectedValue.ToDouble - 1), 0))
|
|
If TxtIVA.Visible Then
|
|
TxtIVA.Text = IVA.ToString.FormatoNumero
|
|
Else
|
|
LblIVA.Text = IVA.ToString.FormatoNumero
|
|
End If
|
|
|
|
'RETENCIONES
|
|
Dim Retenciones = 0D
|
|
If UsuarioActual.Empresa.Funcionalidad(111) = "1" Then
|
|
Retenciones = TxtRetIVA.Text.ToDecimal
|
|
Retenciones += TxtRetISR.Text.ToDecimal
|
|
End If
|
|
|
|
LblTotal.Text = (Subtotal - Descuento + IVA - Retenciones).FormatoNumero
|
|
SubTotalOC = (Subtotal - Descuento + IVA - Retenciones).ToString()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " IVA - EDITABLE "
|
|
Private Sub ActivarIVAEditable()
|
|
If UsuarioActual.TienePermisoProceso(141) Then
|
|
TxtIVA.Visible = True
|
|
LblIVA.Visible = False
|
|
End If
|
|
End Sub
|
|
Private Sub AplicaIVA()
|
|
TxtIVA.Text = TxtIVA.Text.FormatoNumero
|
|
IVAEditado = True
|
|
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()
|
|
ImgAplicaRetenciones.ImageUrl = If(TrRetIVA.Visible, "/Metronic/assets/global/img/portlet-collapse-icon.png", "/Metronic/assets/global/img/portlet-expand-icon.png")
|
|
TrRetIVA.Visible = Not TrRetIVA.Visible
|
|
TrRetISR.Visible = Not TrRetISR.Visible
|
|
End Sub
|
|
Private Sub AplicaRetenciones()
|
|
TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero
|
|
TxtRetISR.Text = TxtRetISR.Text.FormatoNumero
|
|
End Sub
|
|
Private Sub CargaRetenciones(RetIVA As Double, RetISR As Double)
|
|
|
|
If RetIVA > 0 Then
|
|
TrRetIVA.Visible = True
|
|
TxtRetIVA.Text = RetIVA.ToString.FormatoNumero
|
|
End If
|
|
|
|
If RetISR > 0 Then
|
|
TrRetISR.Visible = True
|
|
TxtRetISR.Text = RetISR.ToString.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 Porcentaje = TxtDescuento.Text.ToDecimal / DtDetalle.SUM("Total")
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dr("Descuento") = Dr("Total").ToString.ToDecimal * 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)
|
|
Next
|
|
|
|
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
|
|
|
|
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
|
|
Retorno = False
|
|
End If
|
|
|
|
Return Retorno
|
|
End Function
|
|
|
|
Private Sub CalculaDescuentoGeneral()
|
|
TxtDescuento.Text = DtDetalle.SUM("Descuento").ToString.FormatoNumero
|
|
HdnDescuento.Value = TxtDescuento.Text
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
#Region "ENVIAR CORREO"
|
|
Private Sub Notificaciones()
|
|
|
|
'CORREO DE CAMBIA ESTATUS
|
|
If (EsNuevo = False AndAlso CveEstatus <> CboE.SelectedValue.ToEntero) Or EsNuevo = True Then
|
|
Dim RowActual As DataRow = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue))
|
|
If RowActual IsNot Nothing Then CveEstatusSiguiente = RowActual("CveEstatusSiguiente").ToString.ToEntero
|
|
If CveEstatusSiguiente > 0 Then
|
|
EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text)
|
|
End If
|
|
End If
|
|
|
|
'CORREO MODIFICADA
|
|
If EsNuevo = False Then
|
|
Dim Bitacora = DtHistorial.FiltraParametros("CveConceptoHistorialOrdenCompra <> 1").Rows.Count
|
|
Dim objOC As New ClsOC
|
|
If objOC.GetOrdenesHistorial(CveOrdenCompra) Then
|
|
DtHistorial = objOC.DtResultados.FiltraParametros("CveConceptoHistorialOrdenCompra <> 1")
|
|
End If
|
|
objOC.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 Sub
|
|
|
|
|
|
Private Sub MandaCorreo()
|
|
Dim CCPs As New StringBuilder
|
|
|
|
For Each correo As String In CType(ViewState("ArrayCC"), String())
|
|
CCPs.AppendFormat("{0},", correo)
|
|
Next
|
|
|
|
Dim a As String = (ViewState("Asunto").ToString & " --" & ViewState("Para").ToString & " --- " & CCPs.ToString & "--->" & ViewState("ArrayCCNombre").ToString)
|
|
a.GuardaLog()
|
|
|
|
Dim Mail As New ClsSisMail()
|
|
Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, ViewState("Para").ToString, ViewState("Asunto").ToString, ViewState("RutaPDF").ToString, IfNull(ViewState("RutaXML"), "").ToString, CType(ViewState("ArrayCC"), String()), ViewState("Body").ToString)
|
|
End Sub
|
|
Private Sub MandaCorreo2(mybites As Byte(), Asunto As String, Para As String, Body As String, rutaxml As String)
|
|
|
|
Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para)
|
|
a.GuardaLog()
|
|
Dim Mail As New ClsSisMail()
|
|
Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, Para, Asunto, "OrdenCompra.pdf", rutaxml, Nothing, Body, mybites)
|
|
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)
|
|
|
|
'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("CveConceptoHistorialOrdenCompra = 1").Rows
|
|
CorreosCCP.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
Next
|
|
|
|
''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, UsuarioActual.CveEmpresa) 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") = CorreosCCP.Distinct().ToArray
|
|
ViewState("Asunto") = String.Format("SIG. {0} #{1} Bitacora", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("RutaXML") = ""
|
|
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()
|
|
Dim Body As String
|
|
'Dim ArrayCC As String()
|
|
Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString
|
|
Dim CorreosCCP As New List(Of String)
|
|
|
|
'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("CveConceptoHistorialOrdenCompra = 1").Rows
|
|
CorreosCCP.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
Next
|
|
|
|
''Sacar los correos a los que se les notificara
|
|
'Dim objOC As New ClsOC
|
|
''PENDIENTE POR EL SUBPROYECTO
|
|
'If objOC.GetEstatusUsuarios(-1, CveEstatus, -1, -1, UsuarioActual.CveEmpresa) 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, "")
|
|
|
|
ViewState("Para") = Correo
|
|
ViewState("ArrayCC") = CorreosCCP.Distinct().ToArray
|
|
ViewState("Asunto") = String.Format("SIG. {0} #{1} Modificada", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("RutaXML") = ""
|
|
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 Sub
|
|
|
|
Protected Sub EnviarCorreoCambioEstatus(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True)
|
|
Dim strOpciones As New StringBuilder
|
|
If CveUsuario = -1 Then CveUsuario = UsuarioActual.CveUsuario
|
|
Dim Para As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString
|
|
Dim CorreosCCP As New List(Of String)
|
|
Dim CorreosCCPNombre As New List(Of String)
|
|
Dim objUsuarios As New ClsSisUsuarios
|
|
|
|
|
|
'debe de mandar el correo direccionado al siguiente estatus, no el actual
|
|
|
|
'Sacar los correos a los que se les notificara
|
|
If hdnCveSuperior.Value.ToEntero > 0 Then
|
|
'SI TIENE SUPERIOR MANDA CORREO A TODOS LOS DEL SIGUIENTE ESTATUS
|
|
CorreosCCP.Add(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, UsuarioActual.CveEmpresa) 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 < Total.Text.ToDecimal) And (IsDBNull(Row("LimiteSuperior")) OrElse Row("LimiteSuperior").ToString.ToDecimal > Total.Text.ToDecimal) Then
|
|
CorreosCCP.Add(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
|
|
|
|
If pCveEstatus = CveEstatusFinalError Then
|
|
For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialOrdenCompra = 1").Rows
|
|
CorreosCCP.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString)
|
|
Next
|
|
End If
|
|
|
|
'SI TIENE ASIGNADO TAMBIEN SE LE MANDA CORREO
|
|
'If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then
|
|
' CorreosCCP.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString)
|
|
' CorreosCCPNombre.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("nombre").ToString)
|
|
'End If
|
|
|
|
strOpciones.AppendFormat("Se ha cambiado la {0} #{1} al estatus <b>{2}</b><br><br>", TipoLargo, Folio, Estatus)
|
|
|
|
|
|
strOpciones.Append(" <div style='width: 400px'> ")
|
|
strOpciones.Append(" <fieldset> ")
|
|
strOpciones.Append(" <legend>Opciones</legend> ")
|
|
strOpciones.Append(" <table width=""350px""> ")
|
|
|
|
'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(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong>Supervisar</strong></span></a></td></tr> ", StrSupervisa)
|
|
'si se acaba de supervisar y se necesita autorizar
|
|
If pCveEstatus = 2 Then
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong>Autorizar</strong></span></a></td></tr> ", StrAutoriza)
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong> Autorizar con Cotización</strong></span></a></td></tr> ", StrReqCotiza)
|
|
End If
|
|
'si se quiere cancelar
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong>Cancelar</strong></span></a></td></tr> ", StrCancela)
|
|
|
|
strOpciones.Append(" </table> ")
|
|
strOpciones.Append(" </fieldset> ")
|
|
strOpciones.Append(" </div> ")
|
|
|
|
Dim Body As String = GeneraCorreo(CveOrdenCompra, "") 'strOpciones.ToString) 'genero los datos de la OC
|
|
|
|
|
|
Try
|
|
ViewState("Para") = Para
|
|
ViewState("ArrayCC") = CorreosCCP.Distinct().ToArray
|
|
ViewState("Asunto") = String.Format("SIG - La {0} #{1} cambió de estatus", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("Body") = Body
|
|
|
|
ViewState("ArrayCCNombre") = CorreosCCPNombre.Distinct().ToArray
|
|
|
|
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
|
|
|
|
#Region "ENVIAR CORREO USUARIO ASIGNADO"
|
|
|
|
Protected Sub MandaCorreoUsuario(Para As String, CorreosCCP As List(Of 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.Distinct().ToArray
|
|
ViewState("Asunto") = String.Format("SIG - La {0} #{1} se le ha asignado", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("Body") = Body
|
|
|
|
ViewState("ArrayCCNombre") = CorreosCCPNombre.Distinct().ToArray
|
|
|
|
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)
|
|
Dim CorreosCCP As New List(Of String)
|
|
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)
|
|
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><br>", Folio)
|
|
|
|
strOpciones.Append(" <div style='width: 400px'> ")
|
|
strOpciones.Append(" <fieldset> ")
|
|
strOpciones.Append(" <legend>Opciones</legend> ")
|
|
strOpciones.Append(" <table width=""350px""> ")
|
|
|
|
strOpciones.AppendFormat(" <tr><td><a href=""http://sig.adsistemas.mx/OC/OC=""{0}"" ""><span style=""font-size: 15px""><strong>Ir a OC</strong></span></a></td></tr> ", CveOrdenCompra)
|
|
|
|
|
|
strOpciones.Append(" </table> ")
|
|
strOpciones.Append(" </fieldset> ")
|
|
strOpciones.Append(" </div> ")
|
|
|
|
MandaCorreoUsuario(Para, CorreosCCP, CorreosCCPNombre, NotificarAlert)
|
|
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.<br><br>")
|
|
|
|
Dim Body As String = GeneraCorreoProveedor(CveOrdenCompra, CveProveedor) 'genero los datos de la OC
|
|
Dim Correo As String = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros("CveProveedor = " + CveProveedor.ToString)(0)("ContactoMail").ToString
|
|
|
|
Try
|
|
Dim mybites As Byte() = GeneraBytesOC(CveOrdenCompra)
|
|
Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo2(mybites, "SIG - Se Genero una Orden de Compra", Correo, 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, UsuarioActual.CveEmpresa) Then
|
|
strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ")
|
|
strBody.Append("<head> ")
|
|
strBody.Append(" <style type=""text/css""> ")
|
|
strBody.Append(" body ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" margin:0px; ")
|
|
strBody.Append(" padding:0px 0px 0px 0px; ")
|
|
strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ")
|
|
strBody.Append(" font-size: 10px; ")
|
|
strBody.Append(" background-color:#F0F0F0; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" a.Texto ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" font-size:11px; ")
|
|
strBody.Append(" background-color:#F7F6F3; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" font-weight:bold; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Texto ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:center; vertical-align:middle; height:20px;")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .TextoAlterno ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; height:20px;")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .BarraIdentidad ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" color:#FFFFFF; ")
|
|
strBody.Append(" background:#F0F0F0; ")
|
|
strBody.Append(" font-weight:bold; ")
|
|
strBody.Append(" font-size:19px; ")
|
|
strBody.Append(" font-style:oblique; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Titulos ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color: Gray;")
|
|
strBody.Append(" color:White; ")
|
|
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Verde {color: #00CC00;} ")
|
|
strBody.Append(" .Negro {color: #000000;} ")
|
|
strBody.Append(" .Rojo {color: #FF0000;} ")
|
|
strBody.Append(" </style> ")
|
|
strBody.Append("</head> ")
|
|
strBody.Append("<body> ")
|
|
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 550px""> <fieldset> <legend><b>Datos {0}</b></legend> ", TipoLargo)
|
|
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Folio:</td><td style=""width: 125px""><b><a href=""http://sig.adsistemas.mx/OC/OC.aspx?OC={0}"">{1}<a></b></td><td style=""width: 90px""> Estatus: </td><td><b>{2}</b></td> ", objOC.CveOrdenCompra, objOC.Folio, objOC.Estatus)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", objOC.Empresa)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 20px""> ")
|
|
strBody.AppendFormat(" <td>Descripción:</td><td colspan='3'><b>{0}</b></td> ", objOC.Descripcion)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 20px""> ")
|
|
strBody.AppendFormat(" <td>Justificación</td><td colspan=""3""><textarea name=""ctlTJ"" rows=""5"" cols=""20"" readonly=""readonly""id=""ctlTJ"" style=""width: 300px;"">{0}</textarea></td> ", objOC.Justificacion)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
'Cargo el detalle
|
|
If IncluirDetalles = True Then
|
|
strBody.Append(" <div style='width: 550px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Opciones</legend> ")
|
|
strBody.Append(" <table width=""550px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Producto o Servicio</th>")
|
|
strBody.AppendFormat(" <th scope='col' style='width: 100px'>Observacion</th><th scope='col' style='width: 150px'>{0}</th><th scope='col' style='width: 85px'>Activo Fijo</th><th scope='col' style='width: 70px'>P.U.</th><th scope='col' style='width: 85px'>Total</th></tr>", If(UsuarioActual.CveEmpresa = 66, "Proyecto", "Proyecto<br>SubProyecto"))
|
|
|
|
'verifico los permisos según el estatus
|
|
|
|
If objOC.GetOrdenesDetalle(CveOrdenCompra) Then
|
|
For Each dr As DataRow In objOC.DtResultados.Rows
|
|
strBody.AppendFormat("<tr class='Texto'><td>{0}</td><td>{1}</td><td><span style='width: 220px; border-bottom: 1px solid gray;'>{2}</span><br>{3}</td><td>{4}</td><td style='width:150px;'><span style='width: 150px; border-bottom: 1px solid gray;'>{5}</span><br>{6}</td><td>{7}</td><td align='right'>{8}</td><td align='right'>{9}</td></tr>",
|
|
dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("Clasificacion"), dr("PS"), dr("Observacion"), dr("Proyecto"), If(UsuarioActual.CveEmpresa = 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(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
Else
|
|
strBody.Append(" <div style='width: 550px; height: 50px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Bitacora</legend> ")
|
|
strBody.Append(" <table width=""550px""> ")
|
|
strBody.Append(" <tr> ")
|
|
strBody.Append(" <td> ")
|
|
strBody.AppendFormat(" {0}", Bitacora)
|
|
strBody.Append(" </td> ")
|
|
If LigaAdjunto <> "" Then strBody.AppendFormat(" <tr><td>El usuario agrego el siguiente archivo: <a href='{0}'>Adjunto</a></td></tr>", LigaAdjunto)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
End If
|
|
|
|
' strBody.Append(Opciones)
|
|
strBody.Append("</body></html>")
|
|
End If
|
|
|
|
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, UsuarioActual.CveEmpresa)
|
|
CveProveedor = objOC.CveProveedor
|
|
Dim DttDetalle As DataTable = Nothing
|
|
If objOC.GetOrdenesDetalle(CveOrdenCompra) Then
|
|
DttDetalle = objOC.DtResultados
|
|
End If
|
|
|
|
strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ")
|
|
strBody.Append("<head> ")
|
|
strBody.Append(" <style type=""text/css""> ")
|
|
strBody.Append(" body ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" margin:0px; ")
|
|
strBody.Append(" padding:0px 0px 0px 0px; ")
|
|
strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ")
|
|
strBody.Append(" font-size: 10px; ")
|
|
strBody.Append(" background-color:#F0F0F0; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" a.Texto ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" font-size:11px; ")
|
|
strBody.Append(" background-color:#F7F6F3; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" font-weight:bold; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Texto ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:center; vertical-align:middle; height:20px;")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .TextoAlterno ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; height:20px;")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .BarraIdentidad ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" color:#FFFFFF; ")
|
|
strBody.Append(" background:#F0F0F0; ")
|
|
strBody.Append(" font-weight:bold; ")
|
|
strBody.Append(" font-size:19px; ")
|
|
strBody.Append(" font-style:oblique; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Titulos ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color: Gray;")
|
|
strBody.Append(" color:White; ")
|
|
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Verde {color: #00CC00;} ")
|
|
strBody.Append(" .Negro {color: #000000;} ")
|
|
strBody.Append(" .Rojo {color: #FF0000;} ")
|
|
strBody.Append(" </style> ")
|
|
strBody.Append("</head> ")
|
|
strBody.Append("<body> ")
|
|
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 550px""> <fieldset> <legend><b>Datos de Orden de Compra</b></legend> ")
|
|
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Folio:</td><td style=""width: 125px""><b>{0}</b></td><td style=""width: 90px""> Estatus: </td><td><b>{1}</b></td> ", objOC.Folio, objOC.Estatus)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", objOC.Empresa)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 20px""> ")
|
|
strBody.AppendFormat(" <td>Descripción:</td><td colspan='3'><b>{0}</b></td> ", objOC.Descripcion)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
'Cargo el detalle
|
|
|
|
strBody.Append(" <div style='width: 550px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Opciones</legend> ")
|
|
strBody.Append(" <table width=""550px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Descripción</th>")
|
|
strBody.Append(" <th scope='col' style='width: 100px'>Observación</th><th scope='col' style='width: 85px'>Precio</th></tr>")
|
|
|
|
'verifico los permisos según el estatus
|
|
|
|
For Each dr As DataRow In DttDetalle.Rows
|
|
strBody.AppendFormat("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td><td style='width:100px;'>{3}</td><td style='width:85px;'>{4}</td></tr>",
|
|
dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS"), dr("Obs"), dr("Importe").ToString.FormatoNumero)
|
|
|
|
Next
|
|
|
|
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
strBody.Append("</body></html>")
|
|
|
|
Return strBody.ToString
|
|
End Function
|
|
#End Region
|
|
|
|
|
|
#Region "Correo"
|
|
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("<br/ ><p>Motivo de Eliminación</p>")
|
|
strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ")
|
|
strBody.Append("<head> ")
|
|
strBody.Append(" <style type=""text/css""> ")
|
|
strBody.Append(" body ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" margin:0px; ")
|
|
strBody.Append(" padding:0px 0px 0px 0px; ")
|
|
strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ")
|
|
strBody.Append(" font-size: 10px; ")
|
|
strBody.Append(" background-color:#F0F0F0; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" a.Texto ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" font-size:11px; ")
|
|
strBody.Append(" background-color:#F7F6F3; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" font-weight:bold; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Texto ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:center; vertical-align:middle; height:20px;")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .TextoAlterno ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; height:20px;")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .BarraIdentidad ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" color:#FFFFFF; ")
|
|
strBody.Append(" background:#F0F0F0; ")
|
|
strBody.Append(" font-weight:bold; ")
|
|
strBody.Append(" font-size:19px; ")
|
|
strBody.Append(" font-style:oblique; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Titulos ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color: Gray;")
|
|
strBody.Append(" color:White; ")
|
|
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Contenido2 ")
|
|
strBody.Append(" { ")
|
|
strBody.Append(" background-color: White;")
|
|
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
|
|
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
|
|
strBody.Append(" text-decoration:none; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" .Verde {color: #00CC00;} ")
|
|
strBody.Append(" .Negro {color: #000000;} ")
|
|
strBody.Append(" .Rojo {color: #FF0000;} ")
|
|
strBody.Append(" </style> ")
|
|
strBody.Append("</head> ")
|
|
|
|
strBody.Append("<body> ")
|
|
strBody.AppendFormat("<div class='Titulos'>Por medio del presente correo electrónico se notifica que se ha eliminado la cotización con folio {0}</div><br>", ObjCotizacion.Folio)
|
|
strBody.Append("<div class='Contenido2' style='display: table!important'>")
|
|
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 550px""> <fieldset> <legend><b>Datos {0}</b></legend> ", "Cotización")
|
|
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", ObjCotizacion.Empresa)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td>Fecha Eliminación:</td><td><b>{0}</b></td><td> </td><td><b> </b></td> ", Now.ToShortDateString)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
'Cargo el detalle
|
|
strBody.Append(" <div style='width: 550px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Productos a Cotizar</legend> ")
|
|
strBody.Append(" <table width=""550px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Descripción</th>")
|
|
strBody.Append(" </tr>")
|
|
|
|
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("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td></tr>", dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS")) ', dr("Clasificacion"), dr("Codigo"))
|
|
Next
|
|
'For Each dr As GridViewRow In gvCotizaciones.Rows
|
|
' strBody.AppendFormat("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td></tr>", dr.Cells(0).ToString.FormatoNumero, dr.Cells(1).ToString, dr.Cells(2).ToString) ', dr("Clasificacion"), dr("Codigo"))
|
|
'Next
|
|
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
strBody.AppendFormat("<div><p><b>Motivo de eliminación:</b></p></div>", Motivo)
|
|
strBody.AppendFormat("<div><p>{0}</p></div>", Motivo)
|
|
'strBody.AppendFormat("<div>Capture la cotizacion <a href='http://sig.adsistemas.mx/OC/CotizacionEnLinea.aspx?CveOrdenCompra={0}&CveProveedor={1}&Validacion={2}'>AQUI</a></div>", CveOrdenCompra, CveProveedor, Encripta(String.Format("{0}|||{1}", CveOrdenCompra, CveProveedor)))
|
|
'strBody.AppendFormat("<div>Capture la cotizacion <a href='http://sig.adsistemas.mx/OC/CotizacionEnLinea.aspx?P={0}'>AQUI</a></div>", ModExtensiones.Encripta(String.Format("CveCotizacion={0}", CveCotizacion)))
|
|
strBody.Append("</div>")
|
|
strBody.Append("</body></html>")
|
|
ObjCotizacion.Dispose()
|
|
Return strBody.ToString
|
|
End Function
|
|
|
|
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)
|
|
|
|
If Parametros(3) IsNot Nothing AndAlso Parametros(3) <> "" Then
|
|
ArrayAttachment.Add(Parametros(3).ToString)
|
|
End If
|
|
|
|
If Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayAttachment:=ArrayAttachment) Then
|
|
Alert("Correos enviados")
|
|
Else
|
|
Alert("Correos no enviados")
|
|
End If
|
|
End Sub
|
|
|
|
Private Function GeneraCorreo(folio As String, para As String, link As String, importe As String) As String
|
|
Dim strBody As New StringBuilder
|
|
strBody.Append("<!DOCTYPE html>")
|
|
strBody.Append("<html lang=""en""> ")
|
|
strBody.Append("<body class=""page-header-fixed page-quick-sidebar-over-content "">")
|
|
strBody.Append("<style>")
|
|
strBody.Append(".portlet {margin-top: 0px;margin-bottom: 25px;padding: 0px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;-o-border-radius: 4px;border-radius: 4px;padding: 0px !important;border: 1px solid #d78184;border-top: 0;background-color: #cb5a5e;}")
|
|
strBody.Append(".portlet > .portlet-title {border-bottom: 0px solid #eee;padding: 0 10px;margin-bottom: 0px;min-height: 41px;-webkit-border-radius: 4px 4px 0 0;-moz-border-radius: 4px 4px 0 0;-ms-border-radius: 4px 4px 0 0;-o-border-radius: 4px 4px 0 0;border-radius: 4px 4px 0 0;color: #fff;}")
|
|
strBody.Append(".portlet > .portlet-title {background-color: #cb5a5e;}")
|
|
strBody.Append(".portlet > .portlet-title > div {padding: 11px 0 9px 0;}")
|
|
strBody.Append(".portlet > .portlet-title > div {float: left;display: inline-block;font-size: 24px;line-height: 18px;padding: 10px 0;}")
|
|
strBody.Append(".portlet > .portlet-body {background-color: #fff;padding: 10px;} ")
|
|
strBody.Append(".portlet > .portlet-body {clear: both;-webkit-border-radius: 0 0 4px 4px;-moz-border-radius: 0 0 4px 4px;-ms-border-radius: 0 0 4px 4px;-o-border-radius: 0 0 4px 4px;border-radius: 0 0 4px 4px;}")
|
|
strBody.Append(".mitablita td:nth-child(1){width: 100px; font-weight:700;}")
|
|
strBody.Append("a{ color: #666;padding: 3px 9px; line-height: 1.5;background-color: #fff;border: 1px solid #ccc; text-decoration: none;}a:hover{background-color: #ededed;}")
|
|
strBody.Append(".mitablita tr:nth-child(5) td{ text-align: right;}td{min-width:100px; }")
|
|
strBody.Append("</style>")
|
|
strBody.Append(" <div style=""Width:400px;"">")
|
|
strBody.Append(" <div class=""portlet box red"">")
|
|
strBody.Append(" <div class=""portlet-title"">")
|
|
strBody.Append(" <div class=""caption"">")
|
|
strBody.Append(" <i class=""fa fa-cart-plus""></i>Solicitud de anticipo")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" <div class=""portlet-body "">")
|
|
strBody.Append(" <table class=""mitablita"">")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Fecha</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(DateTime.Now.ToString("dd/MM/yy"))
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>De</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(UsuarioActual.Nombre)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Para</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(para)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Folio</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(folio)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <td>Importe:</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(importe)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append("<tr><td colspan=""4"" ><a href=""")
|
|
strBody.Append(link)
|
|
strBody.Append(""">Ver mas</a></td></tr>")
|
|
strBody.Append(" <table>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append("</body>")
|
|
strBody.Append("</html>")
|
|
Return strBody.ToString
|
|
End Function
|
|
#End Region
|
|
|
|
|
|
|
|
End Class
|