281 lines
11 KiB
VB.net
281 lines
11 KiB
VB.net
|
|
Imports System.Data
|
|
Imports System.Drawing
|
|
Imports Extensiones
|
|
|
|
Partial Class RepCotizaciones
|
|
Inherits ClsPaginas
|
|
|
|
|
|
#Region "Propiedades"
|
|
|
|
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 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 NumCotizaciones As Integer
|
|
Get
|
|
NumCotizaciones = ViewState("NumCotizaciones").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("NumCotizaciones") = 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
|
|
|
|
#End Region
|
|
|
|
|
|
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
|
|
If Not Page.IsPostBack Then
|
|
TxtFolio.Focus()
|
|
Form.DefaultButton = BtnConsultar.UniqueID
|
|
If Not Request("CveOrdenCompra") Is Nothing AndAlso Request("CveOrdenCompra").ToString.ToEntero > 0 Then
|
|
CveOrdenCompra = Request("CveOrdenCompra").ToEntero
|
|
CargaDatosPorCve(CveOrdenCompra)
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaDatosPorCve(pCveOrdenCompra As Integer)
|
|
Dim objOrdenCompra As New ClsOC
|
|
|
|
If objOrdenCompra.GetOC(pCveOrdenCompra, UsuarioActual.CveEmpresa) Then
|
|
CargaDatos(objOrdenCompra)
|
|
End If
|
|
|
|
objOrdenCompra.Dispose()
|
|
End Sub
|
|
|
|
Private Sub CargaDatosPorFolio(pFolio As Integer)
|
|
Dim objOrdenCompra As New ClsOC
|
|
|
|
If objOrdenCompra.GetOC(-1, UsuarioActual.CveEmpresa, pFolio, UsuarioActual.CveSubProyecto, "REQ") Then
|
|
If objOrdenCompra.CveOrdenCompra > 0 Then
|
|
CargaDatos(objOrdenCompra)
|
|
Else
|
|
Alert(String.Format("No se encontro la Requisición con Folio {0}", pFolio), TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
End If
|
|
|
|
objOrdenCompra.Dispose()
|
|
End Sub
|
|
|
|
Private Sub CargaDatos(objOrdenCompra As ClsOC)
|
|
CveOrdenCompra = objOrdenCompra.CveOrdenCompra
|
|
TxtFolio.Text = objOrdenCompra.Folio.ToString
|
|
|
|
LblFolio.Text = objOrdenCompra.Folio.ToString
|
|
LblDescrip.Text = objOrdenCompra.Descripcion
|
|
TxtJustificacion.Text = objOrdenCompra.Justificacion
|
|
|
|
LblEmpresa.Text = objOrdenCompra.Empresa
|
|
|
|
LblProyecto.Text = objOrdenCompra.Proyecto
|
|
|
|
LblSubProyecto.Text = objOrdenCompra.SubProyecto
|
|
|
|
|
|
LblEstatus.Text = objOrdenCompra.Estatus
|
|
If UsuarioActual.TienePermisoProceso(69) Then
|
|
HplAgregar.NavigateUrl = "/OC/RepCotizacionesDetalle.aspx?CveOrdenCompra=" & CveOrdenCompra.ToString & "&TB_iframe=true&height=370&width=720;"
|
|
HplAgregar.Visible = True
|
|
End If
|
|
|
|
|
|
|
|
'ImgAddFactura.Enabled = True
|
|
divOC.Visible = True
|
|
btnGeneraOrdenes.Visible = True
|
|
CargaDetalle(CveOrdenCompra)
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaDetalle(pCveOrdenCompra As Integer)
|
|
|
|
Dim Cot As New ClsOC
|
|
Dim Ds As DataSet = Cot.GetCotizacionesTabla(pCveOrdenCompra)
|
|
|
|
For i = 1 To 10
|
|
GvD.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
|
|
GvD.Columns(i + 2).Visible = True
|
|
Next
|
|
|
|
GvD.DataSource = Ds.Tables(0)
|
|
GvD.DataBind()
|
|
|
|
End If
|
|
|
|
Cot.Dispose()
|
|
|
|
End Sub
|
|
|
|
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
|
|
CargaDatosPorFolio(TxtFolio.Text.ToEntero)
|
|
End Sub
|
|
|
|
Protected Sub GvD_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvD.RowCommand
|
|
|
|
''Registro el proveedor seleccionado en la orden de compra
|
|
If e.CommandName = "RegProv" Then
|
|
|
|
If e.CommandArgument.ToString <> "" Then
|
|
|
|
Dim Cve As String() = e.CommandArgument.ToString.Split("|"c)
|
|
Dim OC As New ClsOC
|
|
OC.UpdateCotizacionDetalleGanadora(Cve(0).ToEntero, CType(Cve(1), Boolean))
|
|
OC.Dispose()
|
|
CargaDetalle(CveOrdenCompra)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.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 href='/OC/RepCotizacionesDetalle.aspx?OC={0}&CveCotizacion={1}'>{2}</a>", CveOrdenCompra, DtCotizaciones.Rows(i - 1)("CveCotizacion"), DtCotizaciones.Rows(i - 1)("RazonSocial"))
|
|
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("Btn" & i)
|
|
'Btn.Text = e.Row.DBCampo("PrecioUnitario" & i).ToDouble.ToString("N2")
|
|
'Btn.Visible = True
|
|
'Btn.OnClientClick = "return false;"
|
|
e.Row.Cells(2 + i).Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2") & " "
|
|
Next
|
|
Else
|
|
|
|
|
|
'If e.Row.DBCampo("CveProveedor") = "" Then
|
|
If e.Row.DBCampo("CveCotizacionDetalleGanadora").ToEntero = 0 Then
|
|
|
|
Dim CellMasBarato As Integer = -1
|
|
Dim Monto As Double = -1
|
|
For i As Integer = 1 To NumCotizaciones
|
|
|
|
If e.Row.DBCampo("PU" & i).ToDouble > 0 Then
|
|
Dim Btn As Button = e.Row.FCButton("Btn" & i)
|
|
Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2")
|
|
Btn.Visible = True
|
|
Btn.CommandArgument = String.Format("{0}|{1}", e.Row.DBCampo("CveCotizacionDetalle" & i), True)
|
|
Btn.Style.Add("cursor:", "pointer")
|
|
|
|
If Monto.ToString = "-1" Then
|
|
Monto = e.Row.DBCampo("PU" & i).ToDouble
|
|
CellMasBarato = i
|
|
End If
|
|
If e.Row.DBCampo("PU" & i).ToDouble < Monto Then
|
|
CellMasBarato = i
|
|
Monto = e.Row.DBCampo("PU" & i).ToDouble
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
'Coloreo el más barato
|
|
If CellMasBarato > 0 Then e.Row.Cells(CellMasBarato + 2).BackColor = Color.LightBlue
|
|
|
|
Else
|
|
Dim i As Integer = 1
|
|
For Each dr As DataRow In DtCotizaciones.Rows
|
|
Dim Btn As Button = e.Row.FCButton("Btn" & i)
|
|
Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2")
|
|
|
|
If dr("CveProveedor").ToString = e.Row.DBCampo("CveProveedorGanador") Then
|
|
e.Row.Cells(i + 2).BackColor = Color.LightGreen
|
|
Btn.Visible = True
|
|
Btn.OnClientClick = "return false;"
|
|
End If
|
|
i = i + 1
|
|
Next
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub btnGeneraOrdenes_Click(sender As Object, e As EventArgs) Handles btnGeneraOrdenes.Click
|
|
'Dim objOrdenCompra As New ClsOC
|
|
Dim objCotizacion As New ClsOC
|
|
Dim Prioridad As Integer = 1
|
|
Dim CveMoneda As Integer = 1
|
|
Dim HuboError As Boolean = False
|
|
|
|
objCotizacion.IniciaTransacSQL()
|
|
|
|
If objCotizacion.GetCotizacionesDetalle(-1, CveOrdenCompra) Then
|
|
Dim DtCotizacionesDetalle As DataTable = objCotizacion.DtResultados.FiltraParametros("EsGanadora = 1", "CveCotizacion")
|
|
If DtCotizacionesDetalle.Rows.Count > 0 Then
|
|
Dim CveCotizacion As Integer = 0
|
|
Dim CveOrdenCompra As Integer = 0
|
|
|
|
Dim CveEstatusInicialOC As Integer = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(" Tipo = 'O' AND TipoTermino = 3").Rows(0)("CveEstatus").ToString.ToEntero
|
|
|
|
For Each Row As DataRow In DtCotizacionesDetalle.Rows
|
|
If CveCotizacion <> Row("CveCotizacion").ToString.ToEntero Then
|
|
CveCotizacion = Row("CveCotizacion").ToString.ToEntero
|
|
|
|
If objCotizacion.AddOrdenCompra("OC", Row("CveSubProyecto").ToString.ToEntero, Row("Descripcion").ToString, Row("Justificacion").ToString, Prioridad, Now, CveMoneda, CveEstatusInicialOC, Row("FechaEstimadaEntrega").ToString, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Row("CveProveedor").ToString.ToEntero, -1) Then
|
|
CveOrdenCompra = objCotizacion.CveOrdenCompra
|
|
|
|
'Ingresar los detalles
|
|
For Each RowD As DataRow In DtCotizacionesDetalle.FiltraParametros("CveCotizacion = " + CveCotizacion.ToString).Rows
|
|
If Not objCotizacion.AddOrdenCompraDetalle(CveOrdenCompra, RowD("Cantidad").ToString.ToDecimal, RowD("CveUnidadMedida").ToString.ToEntero, RowD("CvePS").ToString.ToEntero, 0, -1, If(Not IsDBNull(Row("CveActivoFijo")), Row("CveActivoFijo").ToString.ToEntero, -1), Row("Observacion").ToString, UsuarioActual.CveUsuario) Then
|
|
HuboError = True
|
|
End If
|
|
Next
|
|
Else
|
|
HuboError = True
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
|
|
If Not HuboError Then objCotizacion.Commit() Else objCotizacion.RollBack()
|
|
|
|
objCotizacion.Dispose()
|
|
'objOrdenCompra.Dispose()
|
|
End Sub
|
|
End Class
|