409 lines
16 KiB
VB.net
409 lines
16 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
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
|
|
|
|
Else
|
|
Alert("No se encontró el flete", TipoMensaje.MsgInformacion)
|
|
End If
|
|
Else
|
|
Alert("Ocurrió un error al cargar el flete", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
ObjInv.Dispose()
|
|
CargaGrid()
|
|
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, HdnCveOC.Value.ToEntero, HdnCveCompra.Value.ToEntero, 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, HdnCveOC.Value.ToEntero, HdnCveCompra.Value.ToEntero, 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
|
|
|
|
|
|
|
|
|
|
End Class
|