Files
SIG/OC/RepCotizaciones.aspx.vb
JORGE LUIS CAUDILLO ESPARZA c35cf91883 Commit inicial Ventas Productivo
2019-08-14 16:40:54 -07:00

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") & "&nbsp;"
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.ToDouble, 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