Files
SIG/Inventarios/Fletes.aspx.vb

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