438 lines
17 KiB
VB.net
438 lines
17 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
Imports Microsoft.Reporting.WebForms
|
|
|
|
Partial Class Compras_Fletes
|
|
Inherits ClsPaginas
|
|
|
|
#Region "PROPIEDADES"
|
|
Private Property CveFlete As Integer
|
|
Get
|
|
Return ViewState("CveFlete").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveFlete") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtCompras As DataTable
|
|
Get
|
|
Return CType(ViewState("DtCompras"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtCompras") = value
|
|
End Set
|
|
End Property
|
|
#End Region
|
|
|
|
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
|
If Not Page.IsPostBack Then
|
|
|
|
InicializaValores()
|
|
CargaURLParametros()
|
|
|
|
End If
|
|
End Sub
|
|
|
|
|
|
#Region " INICIALIZA VALORES "
|
|
Private Sub InicializaValores()
|
|
DtCompras = New DataTable
|
|
TxtFecha.Text = Now.ToShortDateString
|
|
End Sub
|
|
Private Sub CargaFolio()
|
|
Dim ObjFolios As New ClsGralFolios
|
|
If ObjFolios.GetFolios("FLE", UsuarioActual.CveEmpresa) Then
|
|
If ObjFolios.DtResultados.Rows.Count > 0 Then
|
|
LblFolio.Text = ObjFolios.DtResultados(0)("FActual").ToString
|
|
Else
|
|
Alert("Necesita registrar un folio de fletes", TipoMensaje.MsgAdvertencia)
|
|
BtnGuardar.Enabled = False
|
|
End If
|
|
End If
|
|
ObjFolios.Dispose()
|
|
UpRegistro.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " CARGA DATOS "
|
|
|
|
Private Sub CargaURLParametros()
|
|
If Request("CveFlete") IsNot Nothing AndAlso IsNumeric(Request("CveFlete")) AndAlso Request("CveFlete").ToEntero > 0 Then
|
|
CveFlete = Request("CveFlete").ToEntero
|
|
BtnGuardar.Text = "Guardar"
|
|
CargaFlete()
|
|
BtnEliminar.Visible = True
|
|
Else
|
|
CveFlete = -1
|
|
CargaFolio()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub CargaFlete()
|
|
Dim ObjInv As New ClsInventarios
|
|
|
|
If ObjInv.GetFletes(UsuarioActual.CveEmpresa, CveFlete:=CveFlete) Then
|
|
If ObjInv.DtResultados.Rows.Count > 0 Then
|
|
LblFolio.Text = ObjInv.DtResultados.Rows(0)("Folio").ToString
|
|
TxtDescripcion.Text = ObjInv.DtResultados.Rows(0)("Descripcion").ToString
|
|
TxtFecha.Text = ObjInv.DtResultados.Rows(0)("Fecha").ToString
|
|
|
|
If ObjInv.DtResultados.Rows(0)("CveOC").ToString.ToEntero > 0 Then
|
|
'DdlModalidad.SelectedValue = "1"
|
|
Else
|
|
'DdlModalidad.SelectedValue = "2"
|
|
End If
|
|
'CambiaModalidad()
|
|
'HdnCveOC.Value = ObjInv.DtResultados.Rows(0)("CveOC").ToString
|
|
'HdnCveCompra.Value = ObjInv.DtResultados.Rows(0)("CveCompra").ToString
|
|
|
|
'LbOCProveedor.Text = ObjInv.DtResultados.Rows(0)("RazonSocial").ToString
|
|
'HLOCFolio.Text = ObjInv.DtResultados.Rows(0)("FolioDocumento").ToString
|
|
'HLOCFolio.NavigateUrl = If(HdnCveOC.Value.ToEntero > 0, $"/OC/OC.aspx?OC={HdnCveOC.Value}", $"/Compras/Compras.aspx?CveCompra={HdnCveCompra.Value}")
|
|
'LbOCImporte.Text = $"{ObjInv.DtResultados.Rows(0)("TotalDocumento").ToString.FormatoNumero} {ObjInv.DtResultados.Rows(0)("Moneda").ToString}"
|
|
|
|
If ObjInv.GetFleteDetalle(CveFlete) Then
|
|
DtCompras = ObjInv.DtResultados
|
|
Else
|
|
Alert("Ocurrió un error al cargar el detalle del flete", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
If ObjInv.GetFletesCompras(CveFlete, UsuarioActual.CveEmpresa) Then
|
|
GvComprasVinculadas.DataSource = ObjInv.DtResultados
|
|
End If
|
|
|
|
Else
|
|
Alert("No se encontró el flete", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
Else
|
|
Alert("Ocurrió un error al cargar el flete", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
ObjInv.Dispose()
|
|
CargaGrid()
|
|
GvComprasVinculadas.DataBind()
|
|
UpRegistro.Update()
|
|
|
|
End Sub
|
|
Private Sub CargaGrid()
|
|
GvDatos.DataSource = DtCompras
|
|
GvDatos.DataBind()
|
|
UpComprasGasto.Update()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " VINCULA DOCUMENTO PRINCIPAL - OC | COMPRA "
|
|
|
|
Protected Sub DdlModalidad_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
'CambiaModalidad()
|
|
UpRegistro.Update()
|
|
End Sub
|
|
'Private Sub CambiaModalidad()
|
|
' HdnCveOC.Value = "-1"
|
|
' HdnCveCompra.Value = "-1"
|
|
|
|
' LbOCProveedor.Text = ""
|
|
' HLOCFolio.Text = ""
|
|
' HLOCFolio.NavigateUrl = "#"
|
|
' LbOCImporte.Text = ""
|
|
|
|
' DivVincularOC.Visible = DdlModalidad.SelectedValue = "1"
|
|
' DivVincularCompra.Visible = DdlModalidad.SelectedValue = "2"
|
|
'End Sub
|
|
|
|
'Protected Sub BtnVincularOC_Click(sender As Object, e As EventArgs)
|
|
' VinculaOC()
|
|
'End Sub
|
|
'Private Sub VinculaOC()
|
|
' If HdnCveOC.Value <> "-1" AndAlso IsNumeric(HdnCveOC.Value) AndAlso HdnCveOC.Value.ToEntero > 0 Then
|
|
' Dim ObjInv As New ClsInventarios
|
|
' Dim ObjOC As New ClsOC
|
|
' If ObjInv.GetFletes(UsuarioActual.CveEmpresa, CveOC:=HdnCveOC.Value.ToEntero) AndAlso ObjInv.DtResultados.Rows.Count = 0 Then
|
|
' If ObjOC.GetOC(HdnCveOC.Value.ToEntero, UsuarioActual.CveEmpresa) Then
|
|
' If ObjOC.DtResultados.Rows.Count > 0 Then
|
|
' LbOCProveedor.Text = ObjOC.DtResultados.Rows(0)("RazonSocial").ToString
|
|
' HLOCFolio.Text = $"{ObjOC.DtResultados.Rows(0)("Folio").ToString}"
|
|
' HLOCFolio.NavigateUrl = $"/OC/OC.aspx?OC={HdnCveOC.Value}"
|
|
' LbOCImporte.Text = $"$ {ObjOC.DtResultados.Rows(0)("Total").ToString.FormatoNumero} {ObjOC.DtResultados.Rows(0)("Moneda").ToString}"
|
|
' End If
|
|
' Else
|
|
' HdnCveOC.Value = "-1"
|
|
' End If
|
|
' Else
|
|
' Alert($"La orden de compra ya forma parte del flete: <b>{ObjInv.DtResultados.Rows(0)("Folio")}</b>. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
' End If
|
|
' ObjInv.Dispose()
|
|
' ObjOC.Dispose()
|
|
' End If
|
|
' UpRegistro.Update()
|
|
'End Sub
|
|
'Protected Sub BtnVincularCompra_Click(sender As Object, e As EventArgs)
|
|
' VincularCompra()
|
|
'End Sub
|
|
'Private Sub VincularCompra()
|
|
|
|
' If Not (HdnCveCompra.Value <> "-1" AndAlso IsNumeric(HdnCveCompra.Value) AndAlso HdnCveCompra.Value.ToEntero > 0) Then
|
|
' Alert("No hay compra seleccionaada", TipoMensaje.MsgAdvertencia)
|
|
' Exit Sub
|
|
' End If
|
|
|
|
' Dim ObjCompras As New ClsCompras
|
|
' Dim ObjInv As New ClsInventarios
|
|
' Dim ErrorAgregar = False
|
|
' Dim RowCompras As DataRow = Nothing
|
|
|
|
' If ObjCompras.GetCompras(HdnCveCompra.Value.ToEntero, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
|
|
' RowCompras = ObjCompras.DtResultados.Rows(0)
|
|
' If Not (ObjInv.GetFleteDetalle(-1, HdnCveCompra.Value.ToEntero) AndAlso ObjInv.DtResultados.Rows.Count = 0) Then
|
|
' ErrorAgregar = True
|
|
' Alert($"La compra ya forma parte del flete: <b>{ObjCompras.DtResultados.Rows(0)("Folio")}</b>. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
' End If
|
|
' Else
|
|
' ErrorAgregar = True
|
|
' Alert("Ocurrió un error al cargar la información de la compra. Por favor comuniquese con atención SIG.", TipoMensaje.MsgError)
|
|
' End If
|
|
|
|
' If Not ErrorAgregar Then
|
|
' If DtCompras.FiltraParametros($"CveCompra = {RowCompras("CveCompra").ToString.ToEntero}").Rows.Count > 0 Then
|
|
' ErrorAgregar = True
|
|
' Alert("La compra seleccionada ya es parte del flete. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
' End If
|
|
' End If
|
|
|
|
' If Not ErrorAgregar Then
|
|
' LbOCProveedor.Text = ObjCompras.DtResultados.Rows(0)("RazonSocial").ToString
|
|
' HLOCFolio.Text = $"{ObjCompras.DtResultados.Rows(0)("Folio").ToString}"
|
|
' HLOCFolio.NavigateUrl = $"/Compras/Compras.aspx?CveCompra={HdnCveCompra.Value}"
|
|
' LbOCImporte.Text = $"$ {ObjCompras.DtResultados.Rows(0)("Total").ToString.FormatoNumero} {ObjCompras.DtResultados.Rows(0)("Moneda").ToString}"
|
|
' Else
|
|
' HdnCveCompra.Value = "-1"
|
|
' End If
|
|
|
|
' ObjCompras.Dispose()
|
|
' ObjInv.Dispose()
|
|
|
|
'End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " AGREGA COMPRA GASTO "
|
|
'Protected Sub BtnVincularCompraGasto_Click(sender As Object, e As EventArgs)
|
|
' AgregaCompraGasto()
|
|
'End Sub
|
|
'Protected Sub ImgAgregarCompraGasto_Click(sender As Object, e As ImageClickEventArgs)
|
|
' AgregaCompraGasto()
|
|
'End Sub
|
|
'Private Sub AgregaCompraGasto()
|
|
|
|
' If Not (HdnCveCompraGasto.Value <> "-1" AndAlso IsNumeric(HdnCveCompraGasto.Value) AndAlso HdnCveCompraGasto.Value.ToEntero > 0) Then
|
|
' Alert("No hay compra de gasto seleccionaada", TipoMensaje.MsgAdvertencia)
|
|
' Exit Sub
|
|
' End If
|
|
|
|
' Dim ObjCompras As New ClsCompras
|
|
' Dim ObjInv As New ClsInventarios(ObjCompras.IniciaTransacSQL)
|
|
' Dim ErrorAgregar = False
|
|
' Dim RowCompras As DataRow = Nothing
|
|
|
|
' If ObjCompras.GetCompras(HdnCveCompraGasto.Value.ToEntero, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
|
|
' RowCompras = ObjCompras.DtResultados.Rows(0)
|
|
' If Not (ObjInv.GetFleteDetalle(-1, HdnCveCompraGasto.Value.ToEntero) AndAlso ObjInv.DtResultados.Rows.Count = 0) Then
|
|
' ErrorAgregar = True
|
|
' Alert($"La compra ya forma parte del flete: <b>{ObjCompras.DtResultados.Rows(0)("Folio")}</b>. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
' End If
|
|
' Else
|
|
' ErrorAgregar = True
|
|
' Alert("Ocurrió un error al cargar la información de la compra. Por favor comuniquese con atención SIG.", TipoMensaje.MsgError)
|
|
' End If
|
|
|
|
' If HdnCveCompraGasto.Value.ToEntero = HdnCveOC.Value.ToEntero Then
|
|
' ErrorAgregar = True
|
|
' Alert("La Compra seleccionada como gasto es la orden de compra del pedimento. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
' End If
|
|
|
|
' If Not ErrorAgregar Then
|
|
' If DtCompras.FiltraParametros($"CveCompra = {RowCompras("CveCompra").ToString.ToEntero}").Rows.Count > 0 Then
|
|
' ErrorAgregar = True
|
|
' Alert("La compra seleccionada ya es parte del flete. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
' End If
|
|
' End If
|
|
|
|
' If Not ErrorAgregar Then
|
|
' If Not GvDatos.Rows.Count > 0 Then
|
|
' DtCompras = RowCompras.Table.Clone
|
|
' DtCompras.Columns.Add("CveFleteDetalle", Type.GetType("System.Int32"))
|
|
' End If
|
|
' If CveFlete > 0 Then
|
|
' If Not ObjInv.AddFleteDetalle(CveFlete, RowCompras("CveCompra").ToString.ToEntero) Then
|
|
' ErrorAgregar = True
|
|
' Alert("Ocurrió un error al agregar la compra. Por favor intente de nuevo.", TipoMensaje.MsgError)
|
|
' End If
|
|
' End If
|
|
' End If
|
|
|
|
' If Not ErrorAgregar Then
|
|
' ObjCompras.Commit()
|
|
' DtCompras.ImportRow(RowCompras)
|
|
' CargaGrid()
|
|
' If CveFlete > 0 Then
|
|
' Alert("La orden de compra se agregó correctamente.", TipoMensaje.MsgInformacion)
|
|
' End If
|
|
' Else
|
|
' ObjCompras.RollBack()
|
|
' End If
|
|
|
|
' HdnCveCompraGasto.Value = "-1"
|
|
' ObjCompras.Dispose()
|
|
' ObjInv.Dispose()
|
|
|
|
'End Sub
|
|
Private Sub GvDireccionesEnvio_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
|
|
Dim TieneError = False
|
|
If CveFlete > 0 AndAlso GvDatos.Rows(e.RowIndex).DataKey("CveFleteDetalle").ToEntero > 0 Then
|
|
Dim ObjInv As New ClsInventarios
|
|
|
|
If Not ObjInv.RemoveFleteDetalle(GvDatos.Rows(e.RowIndex).DataKey("CveFleteDetalle").ToEntero) Then
|
|
TieneError = True
|
|
Alert("Ocurrió un error al eliminar el detalle. Por favor intente de nuevo", TipoMensaje.MsgError)
|
|
Else
|
|
Alert("Elflete detalle se eliminó correctamente", TipoMensaje.MsgInformacion)
|
|
End If
|
|
ObjInv.Dispose()
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
DtCompras.Rows.RemoveAt(e.RowIndex)
|
|
DtCompras.AcceptChanges()
|
|
End If
|
|
|
|
CargaGrid()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " GUARDAR "
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
|
|
|
|
'Select Case DdlModalidad.SelectedValue.ToEntero
|
|
' Case 1
|
|
' 'If Not HdnCveOC.Value.ToEntero > 0 Then
|
|
' ' Alert("Tiene que tener vinculada una OC", TipoMensaje.MsgAdvertencia)
|
|
' ' Exit Sub
|
|
' 'End If
|
|
' Case 2
|
|
' 'If Not HdnCveCompra.Value.ToEntero > 0 Then
|
|
' ' Alert("Tiene que tener vinculada una Compra", TipoMensaje.MsgAdvertencia)
|
|
' ' Exit Sub
|
|
' 'End If
|
|
'End Select
|
|
|
|
If Not DtCompras.Rows.Count > 0 Then
|
|
Alert("Tiene que tener compras de gastos agregadas", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim ObjInv As New ClsInventarios
|
|
ObjInv.IniciaTransacSQL()
|
|
Dim ErrorFlete = False
|
|
Dim CveFleteTemporal As Integer = 0
|
|
|
|
If CveFlete < 0 Then
|
|
If ObjInv.AddFlete(LblFolio.Text, TxtDescripcion.Text.Trim, TxtFecha.Text.ToDate, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
|
|
CveFleteTemporal = ObjInv.CveFlete
|
|
Else
|
|
ErrorFlete = True
|
|
End If
|
|
|
|
If CveFleteTemporal > 0 Then
|
|
For Each dr As DataRow In DtCompras.Rows
|
|
If Not ObjInv.AddFleteDetalle(CveFleteTemporal, dr("CveCompra").ToString.ToEntero) Then
|
|
ErrorFlete = True
|
|
End If
|
|
Next
|
|
Else
|
|
ErrorFlete = True
|
|
End If
|
|
Else
|
|
If Not ObjInv.UpdateFlete(CveFlete, TxtDescripcion.Text, TxtFecha.Text.ToDate, -1, -1, UsuarioActual.CveUsuario) Then
|
|
ErrorFlete = True
|
|
End If
|
|
End If
|
|
|
|
If Not ErrorFlete Then
|
|
BtnGuardar.Enabled = False
|
|
ObjInv.Commit()
|
|
If CveFlete > 0 Then
|
|
Alert("Flete actualizado con éxito.", TipoMensaje.MsgInformacion, "document.location.href=""/Inventarios/RepFletes.aspx"";")
|
|
Else
|
|
Alert("Flete agregado con éxito.", TipoMensaje.MsgInformacion, "document.location.href=""/Inventarios/RepFletes.aspx"";")
|
|
End If
|
|
Else
|
|
ObjInv.RollBack()
|
|
Alert("Ocurrió un error al registrar el flete. Por favor vuelva a intentar.", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
ObjInv.Dispose()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " ELIMINAR "
|
|
Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs)
|
|
Dim ObjInv As New ClsInventarios
|
|
ObjInv.IniciaTransacSQL()
|
|
Dim ErrorEliminar = False
|
|
|
|
For Each dr As DataRow In DtCompras.Rows
|
|
If Not ObjInv.RemoveFleteDetalle(dr("CveFleteDetalle").ToString.ToEntero) Then
|
|
ErrorEliminar = True
|
|
End If
|
|
Next
|
|
|
|
If Not ErrorEliminar Then
|
|
If Not ObjInv.RemoveFlete(CveFlete) Then
|
|
ErrorEliminar = True
|
|
End If
|
|
End If
|
|
|
|
If Not ErrorEliminar Then
|
|
Alert("Flete elimnado con éxito.", TipoMensaje.MsgInformacion, "document.location.href=""/Inventarios/RepFletes.aspx"";")
|
|
ObjInv.Commit()
|
|
Else
|
|
ObjInv.RollBack()
|
|
End If
|
|
|
|
ObjInv.Dispose()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
Protected Sub LnkPdf_Click(sender As Object, e As EventArgs)
|
|
|
|
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Fletes.rdlc", UsuarioActual.Empresa.Ruta))
|
|
|
|
If Archivo.Exists Then
|
|
Dim ImporteGrid As Double = DtCompras.SUM("SubTotal")
|
|
'Dim ImporteStr As String = LbOCImporte.Text.Split(" "c)(0)
|
|
'Dim ImporteData As Double = ImporteStr.ToDouble()
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
|
|
params.Add(New ReportParameter("Folio", LblFolio.Text))
|
|
params.Add(New ReportParameter("Descripcion", TxtDescripcion.Text))
|
|
params.Add(New ReportParameter("Fecha", TxtFecha.Text))
|
|
params.Add(New ReportParameter("Modalidad", "Factura de Compra"))
|
|
params.Add(New ReportParameter("Proveedor", ""))
|
|
params.Add(New ReportParameter("FolioModalidad", ""))
|
|
params.Add(New ReportParameter("Importe", (ImporteGrid).ToString()))
|
|
|
|
ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Fletes.rdlc", DtCompras, params, String.Format("Costo Indirecto - {0}", LblFolio.Text), RDSName:="DataSet1")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
End Class
|