401 lines
18 KiB
VB.net
401 lines
18 KiB
VB.net
Option Strict On
|
|
Option Explicit On
|
|
|
|
Imports System.Data
|
|
Imports System.Net
|
|
Imports Extensiones
|
|
|
|
Partial Class PopOCCotizacionesDetalle
|
|
Inherits ClsPaginas
|
|
|
|
#Region "Propiedades"
|
|
|
|
Friend 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 CveOrdenCompra As Integer
|
|
Get
|
|
CveOrdenCompra = ViewState("CveOrdenCompra").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveOrdenCompra") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property CveCotizacion As Integer
|
|
Get
|
|
CveCotizacion = ViewState("CveCotizacion").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveCotizacion") = 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 Adjunto As String
|
|
Get
|
|
Adjunto = ViewState("Adjunto").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("Adjunto") = 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
|
|
|
|
CType(Me.Master, Site).EsPopup = True
|
|
CType(Me.Master, BaseMasterPage).PopupWidth = 1000
|
|
If Not Request("CveOrdenCompra") Is Nothing AndAlso Request("CveOrdenCompra").ToString.ToEntero > 0 Then
|
|
|
|
CveOrdenCompra = Request("CveOrdenCompra").ToEntero
|
|
CargaProveedoresClasificaciones()
|
|
CargaProveedores()
|
|
CargaMonedas()
|
|
|
|
If Request("CveCotizacion") Is Nothing Then
|
|
EsNuevo = True
|
|
CveCotizacion = -1
|
|
CargaOCDetalle(CveOrdenCompra)
|
|
TxtFecha.Text = Now.ToShortDateString
|
|
Else
|
|
EsNuevo = False
|
|
GvDC.DataKeyNames = {"CveOrdenCompra", "CvePS", "Cantidad", "CveUnidadMedida", "CveCotizacionDetalle", "CveOrdenCompraDetalle"}
|
|
CveCotizacion = Request("CveCotizacion").ToEntero
|
|
CargaCotizacionDetalle(CveCotizacion)
|
|
End If
|
|
BtnGuardar.Visible = True
|
|
BtnEliminar.Visible = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
|
|
#Region " INICIALIZA VALORES - CARGA COMBOS "
|
|
Protected Sub CargaProveedoresClasificaciones()
|
|
CboClasificacionProveedor.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa)
|
|
CboClasificacionProveedor.DataBind()
|
|
|
|
CboClasificacionProveedor.Items.Insert(0, New ListItem("Clasificacion de Proveedor", "-1"))
|
|
End Sub
|
|
Protected Sub CboClasificacionProveedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboClasificacionProveedor.SelectedIndexChanged
|
|
CargaProveedores()
|
|
End Sub
|
|
Protected Sub CargaProveedores()
|
|
CboProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedorClasificacion = {0} OR {0} = -1", CboClasificacionProveedor.SelectedValue))
|
|
CboProveedores.DataBind()
|
|
End Sub
|
|
|
|
Protected Sub CargaMonedas()
|
|
ddlMoneda.DataSource = GlobalDTMonedas()
|
|
ddlMoneda.DataBind()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "C A R G A D A T O S "
|
|
Private Sub CargaOCDetalle(pCveOrden As Integer)
|
|
Dim objOC As New ClsOC
|
|
|
|
If objOC.GetOrdenesDetalle(pCveOrden) Then
|
|
DtDetalle = objOC.DtResultados
|
|
End If
|
|
|
|
' GvD.DataKeyNames = {"CveOrdenCompra", "CveOrdenCompraDetalle"}
|
|
GvDC.DataSource = DtDetalle
|
|
GvDC.DataBind()
|
|
|
|
|
|
objOC.Dispose()
|
|
End Sub
|
|
|
|
Private Sub CargaCotizacionDetalle(pCveCotizacion As Integer)
|
|
|
|
Dim objCotizacion As New ClsOC
|
|
If objCotizacion.GetCotizaciones(-1, pCveCotizacion) Then
|
|
If objCotizacion.CveUsuario = 0 Then Deshabilitar()
|
|
|
|
TxtFolio.Text = objCotizacion.Folio.ToString
|
|
CboProveedores.SelectedValue = objCotizacion.CveProveedor.ToString
|
|
TxtFecha.Text = objCotizacion.Fecha.ToShortDateString
|
|
ddlMoneda.SelectedValue = objCotizacion.CveMoneda.ToString
|
|
TxtDiasCredito.Text = objCotizacion.DiasCredito.ToString
|
|
Adjunto = objCotizacion.Adjunto
|
|
If objCotizacion.Adjunto <> "" Then
|
|
'HplArchivo.NavigateUrl = String.Format("/Empresas/{0}/Cotizaciones/{1}", UsuarioActual.CveEmpresa, objCotizacion.Adjunto)
|
|
LnkArchivo.Visible = True
|
|
End If
|
|
|
|
If objCotizacion.GetCotizacionesDetalle(pCveCotizacion) Then
|
|
DtDetalle = objCotizacion.DtResultados
|
|
GvDC.DataSource = DtDetalle
|
|
GvDC.DataBind()
|
|
|
|
End If
|
|
End If
|
|
|
|
objCotizacion.Dispose()
|
|
|
|
End Sub
|
|
|
|
Protected Sub Deshabilitar()
|
|
CboClasificacionProveedor.Enabled = False
|
|
CboProveedores.Enabled = False
|
|
ddlMoneda.Enabled = False
|
|
TxtDiasCredito.Enabled = False
|
|
TxtFecha.Enabled = False
|
|
TxtFolio.Enabled = False
|
|
'FUArchivo.Enabled = False
|
|
|
|
If UsuarioActual.TienePermisoProceso(146) Then
|
|
GvDC.Enabled = True
|
|
Else
|
|
GvDC.Enabled = False
|
|
End If
|
|
|
|
BtnGuardar.Enabled = False
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#Region " GUARDAR "
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
|
|
|
|
Dim objCotizacion As New ClsOC
|
|
objCotizacion.IniciaTransacSQL()
|
|
Dim TieneError = False
|
|
|
|
Dim FileExtension As String = ""
|
|
Dim Filesgral As List(Of Archivo) = TxtArchivo.getfiles().Archivos
|
|
Dim Filename As String = ""
|
|
For Each fileItem As Archivo In Filesgral
|
|
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)) '.Replace(".", "")
|
|
Filename = fileItem.filename
|
|
Next
|
|
|
|
|
|
Try
|
|
If EsNuevo Then
|
|
If objCotizacion.AddCotizacion(CveOrdenCompra, CboProveedores.SelectedValue.ToEntero, -1, TxtFolio.Text, TxtFecha.Text, FileExtension, ddlMoneda.SelectedValue.ToEntero,
|
|
TxtDiasCredito.Text.ToEntero, UsuarioActual.CveUsuario) Then
|
|
|
|
'verificar que exista el directorio
|
|
If Not System.IO.Directory.Exists(String.Format("{0}Cotizaciones/", UsuarioActual.Empresa.Ruta)) Then
|
|
System.IO.Directory.CreateDirectory(String.Format("{0}Cotizaciones/", UsuarioActual.Empresa.Ruta))
|
|
End If
|
|
|
|
If Filename <> "" Then
|
|
Filename.FilesMove(objCotizacion.CveCotizacion.ToString(), String.Format("{0}Cotizaciones", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase:=False)
|
|
End If
|
|
|
|
For Each dr As GridViewRow In GvDC.Rows
|
|
TieneError = Not objCotizacion.AddCotizacionDetalle(objCotizacion.CveCotizacion, dr.DataKey("CvePS").ToEntero, dr.FCTextBox("TxtPU").Text.ToDecimal, dr.DataKey("Cantidad").ToDecimal,
|
|
dr.DataKey("CveUnidadMedida").ToEntero, dr.FCTextBox("txtCantidadSurtir").Text.ToDecimal,
|
|
If(dr.FCTextBox("txtFechaEntrega").Text.Trim = "" Or dr.FCTextBox("txtFechaEntrega").Text = "__/__/____", "-1",
|
|
dr.FCTextBox("txtFechaEntrega").Text), dr.FCTextBox("txtObservacion").Text.ToString, dr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero)
|
|
If TieneError = True Then Exit For
|
|
Next
|
|
End If
|
|
Else
|
|
|
|
If objCotizacion.UpdateCotizacion(CboProveedores.SelectedValue.ToEntero, -1, TxtFolio.Text, TxtFecha.Text, FileExtension, ddlMoneda.SelectedValue.ToEntero, TxtDiasCredito.Text.ToEntero, UsuarioActual.CveUsuario, CveCotizacion) Then
|
|
|
|
'verificar que exista el directorio
|
|
If Not System.IO.Directory.Exists(String.Format("{0}Cotizaciones/", UsuarioActual.Empresa.Ruta)) Then
|
|
System.IO.Directory.CreateDirectory(String.Format("{0}Cotizaciones/", UsuarioActual.Empresa.Ruta))
|
|
End If
|
|
|
|
If Filename <> "" Then
|
|
Filename.FilesMove(CveCotizacion.ToString(), String.Format("{0}Cotizaciones", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase:=False)
|
|
End If
|
|
|
|
For Each dr As GridViewRow In GvDC.Rows
|
|
If dr.DataKey("CveCotizacionDetalle").ToEntero > 0 Then
|
|
TieneError = Not objCotizacion.UpdateCotizacionDetalle(dr.DataKey("CveCotizacionDetalle").ToEntero, dr.FCTextBox("TxtPU").Text.ToDecimal, dr.FCTextBox("txtCantidadSurtir").Text.ToDecimal, dr.FCTextBox("txtFechaEntrega").Text, dr.FCTextBox("txtObservacion").Text.ToString)
|
|
Else
|
|
Dim strTemp = dr.DataKey("CveOrdenCompraDetalle").ToString
|
|
|
|
If dr.FCTextBox("txtCantidadSurtir").Text.ToString.ToDouble > 0 Then
|
|
If dr.FCTextBox("TxtPU").Text.ToDouble > 0 Then TieneError = Not objCotizacion.AddCotizacionDetalle(CveCotizacion, dr.DataKey("CvePS").ToEntero, dr.FCTextBox("TxtPU").Text.ToDecimal, dr.DataKey("Cantidad").ToDecimal, dr.DataKey("CveUnidadMedida").ToEntero, dr.FCTextBox("txtCantidadSurtir").Text.ToString.ToDecimal, If(dr.FCTextBox("txtFechaEntrega").Text.Trim = "" Or dr.FCTextBox("txtFechaEntrega").Text = "__/__/____", "-1", dr.FCTextBox("txtFechaEntrega").Text), dr.FCTextBox("txtObservacion").Text.ToString, dr.DataKey("CveOrdenCompraDetalle").ToEntero)
|
|
End If
|
|
|
|
End If
|
|
If TieneError = True Then Exit For
|
|
Next
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
TieneError = True
|
|
OnError("Se presento un error al guardar la cotización", ex)
|
|
End Try
|
|
|
|
If Not TieneError Then
|
|
objCotizacion.Commit()
|
|
Alert(If(EsNuevo, "Cotización Guardada.", "Cotización Actualizada."), TipoMensaje.MsgInformacion)
|
|
Else
|
|
objCotizacion.RollBack()
|
|
End If
|
|
|
|
objCotizacion.Dispose()
|
|
RegistraScript("Ir();")
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
#Region " ELIMINAR "
|
|
Private Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click
|
|
Dim objCotizacion As New ClsOC
|
|
Dim TieneError = False
|
|
|
|
If Not objCotizacion.RemoveCotizacionDetalle(CveCotizacion) Then
|
|
TieneError = True
|
|
End If
|
|
|
|
If Not TieneError Then Alert("Cotización Eliminada.", TipoMensaje.MsgInformacion)
|
|
|
|
objCotizacion.Dispose()
|
|
RegistraScript("Ir();")
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#Region " G V D "
|
|
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDC.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
e.Row.FCTextBox("TxtPU").Attributes.Add("onchange", String.Format("$get('{0}').value = FormatNumber(parseFloat(this.value) * parseFloat($get('{1}').value), 2, true, true, true);", e.Row.FCTextBox("TxtImporte").ClientID, e.Row.FCTextBox("TxtCant").ClientID))
|
|
e.Row.FCCalendarExtender("CEFechaEntrega").StartDate = Date.Now
|
|
' e.Row.FCTextBox("TxtPU").Attributes.Add("onchange", String.Format("$get('{0}').value = FormatNumber(parseFloat(this.value) * parseFloat($get('{1}').value), 2, true, true, true);", e.Row.FCTextBox("TxtImporte").ClientID, e.Row.FCTextBox("TxtCant").ClientID))
|
|
|
|
'Page.ClientScript.RegisterExpandoAttribute(e.Row.FCCustomValidator("CVFechaEntrega").ClientID, "txtCantidadSurtir", e.Row.FCTextBox("txtCantidadSurtir").ClientID, False)
|
|
'Page.ClientScript.RegisterExpandoAttribute(e.Row.FCCustomValidator("CVPU").ClientID, "txtCantidadSurtirPU", e.Row.FCTextBox("txtCantidadSurtir").ClientID, False)
|
|
|
|
'e.Row.FCCustomValidator("CVFechaEntrega").ClientValidationFunction = "javascript:textValidation(source, arguments);return true;" '"if ($get('" + e.Row.FCTextBox("TxtCantidadSurtir").ClientID + "').value == 0) {arguments.IsValid=true;} else {arguments.IsValid=false;}"
|
|
|
|
Try
|
|
Dim CantidadSurtir = e.Row.DBCampo("CantidadSurtir").ToString
|
|
Dim FechaEntrga = e.Row.DBCampo("CantidadSurtir").ToString
|
|
Dim Observacion = e.Row.DBCampo("CantidadSurtir").ToString
|
|
Dim rfvCatiad As RangeValidator = e.Row.FCRangeValidator("RVCantidad")
|
|
|
|
If CantidadSurtir.ToEntero = 0 Then
|
|
rfvCatiad.Visible = False
|
|
End If
|
|
|
|
e.Row.FCTextBox("txtCantidadSurtir").Text = e.Row.DBCampo("CantidadSurtir").ToString
|
|
e.Row.FCTextBox("TxtFechaEntrega").Text = If(e.Row.DBCampo("FechaEntrega").ToDate.Year = 1, "", e.Row.DBCampo("FechaEntrega").ToDate.ToString("dd/MM/yyyy"))
|
|
e.Row.FCTextBox("txtObservacion").Text = e.Row.DBCampo("Observacion").ToString
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
e.Row.FCRangeValidator("RVCantidad").MaximumValue = e.Row.DBCampo("Cantidad")
|
|
e.Row.FCTextBox("TxtPU").Attributes.Add("onkeyup", String.Format("CalculaImporte({0},this,{1})", e.Row.FCTextBox("TxtCantidadSurtir").ClientID, e.Row.FCTextBox("TxtImporte").ClientID))
|
|
e.Row.FCTextBox("TxtCantidadSurtir").Attributes.Add("onkeyup", String.Format("CalculaImporte(this,{0},{1})", e.Row.FCTextBox("TxtPU").ClientID, e.Row.FCTextBox("TxtImporte").ClientID))
|
|
|
|
'SOLO SI ES UNA COTIZACION YA REGISTRADA DESAHABILITAMOS EL ROW CUANDO YA ESTA CARGADO, PERMISO PARA EDITAR
|
|
If CveCotizacion > 0 Then
|
|
Dim EsGanadora As String = e.Row.DBCampo("EsGanadora").ToString
|
|
If (UsuarioActual.TienePermisoProceso(146) AndAlso EsGanadora = "False") Or (UsuarioActual.TienePermisoProceso(146) AndAlso EsGanadora = "") Then
|
|
e.Row.Enabled = True
|
|
Else
|
|
e.Row.Enabled = False
|
|
End If
|
|
End If
|
|
|
|
Dim TxtCantidadSurtir As TextBox = e.Row.FCTextBox("TxtCantidadSurtir")
|
|
Dim txtFechaEntrega As TextBox = e.Row.FCTextBox("txtFechaEntrega")
|
|
Dim TxtPU As TextBox = e.Row.FCTextBox("TxtPU")
|
|
Dim TxtObservacion As TextBox = e.Row.FCTextBox("TxtObservacion")
|
|
|
|
TxtCantidadSurtir.Attributes.Add("onkeyup", "validacionRow(this,1)")
|
|
txtFechaEntrega.Attributes.Add("onkeyup", "validacionRow(this,2)")
|
|
TxtPU.Attributes.Add("onkeyup", "validacionRow(this,1)")
|
|
TxtObservacion.Attributes.Add("onkeyup", "validacionRow(this,1)")
|
|
|
|
Dim ControlesId As String = String.Format("'{0},{1},{2},{3}'", TxtCantidadSurtir.ClientID, txtFechaEntrega.ClientID, TxtPU.ClientID, TxtObservacion.ClientID)
|
|
e.Row.Attributes.Add("data-controles", ControlesId)
|
|
|
|
Dim RFVCantidadSurtir As RequiredFieldValidator = e.Row.FCRequiredFieldValidator("RFVCantidadSurtir")
|
|
Dim RVCantidad As RangeValidator = e.Row.FCRangeValidator("RVCantidad")
|
|
'Dim CVPU As CustomValidator = e.Row.FCCustomValidator("CVPU")
|
|
Dim CVImgFechaEntrega As CompareValidator = e.Row.FCCompareValidator("CVImgFechaEntrega")
|
|
Dim RFVTxtPU As RequiredFieldValidator = e.Row.FCRequiredFieldValidator("RFVTxtPU")
|
|
'Dim RFVtxtFechaEntrega As RequiredFieldValidator = e.Row.FCRequiredFieldValidator("RFVtxtFechaEntrega")
|
|
|
|
If TxtCantidadSurtir.Text.ToDouble > 0 Or TxtPU.Text.ToDouble > 0 Then
|
|
RFVTxtPU.Enabled = True
|
|
RVCantidad.Enabled = True
|
|
RFVCantidadSurtir.Enabled = True
|
|
End If
|
|
|
|
If GvDC.DataKeyNames.Contains("CveContizacionDetalle") Then
|
|
If e.Row.DataKey("CveContizacionDetalle").ToString.ToEntero > 0 Then
|
|
RFVCantidadSurtir.Enabled = True
|
|
RVCantidad.Enabled = True
|
|
' CVPU.Enabled = True
|
|
CVImgFechaEntrega.Enabled = True
|
|
RFVTxtPU.Enabled = True
|
|
'RFVtxtFechaEntrega.Enabled = True
|
|
End If
|
|
|
|
End If
|
|
|
|
'Dim ValidadoresId As String = String.Format("{0},{1},{2},{3}", RFVCantidadSurtir.ClientID, RVCantidad.ClientID, CVImgFechaEntrega.ClientID, RFVTxtPU.ClientID)
|
|
'e.Row.Attributes.Add("data-validadores", ValidadoresId)
|
|
|
|
|
|
Dim asdasdasd As String = ""
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
Protected Sub LnkArchivo_Click(sender As Object, e As EventArgs)
|
|
If Not String.IsNullOrEmpty(Adjunto) Then
|
|
Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, "Cotizaciones\" & Adjunto)
|
|
Dim Archivo As New System.IO.FileInfo(filePath)
|
|
|
|
If Archivo.Exists Then
|
|
HttpContext.Current.Response.Clear()
|
|
HttpContext.Current.Response.ClearContent()
|
|
HttpContext.Current.Response.ContentType = "application/octet-stream"
|
|
HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + System.IO.Path.GetFileName(filePath))
|
|
HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString())
|
|
HttpContext.Current.Response.TransmitFile(filePath)
|
|
HttpContext.Current.Response.Flush()
|
|
HttpContext.Current.Response.End()
|
|
|
|
Archivo = Nothing
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
End Class
|