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 = NowADS().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.DtResultados.Rows(0)("CveEstatus").ToString.ToEntero = 0 Then LnkCerrarFlete.Visible = True End If 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: {ObjInv.DtResultados.Rows(0)("Folio")}. 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: {ObjCompras.DtResultados.Rows(0)("Folio")}. 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: {ObjCompras.DtResultados.Rows(0)("Folio")}. 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 Protected Sub LnkCerrarFlete_Click(sender As Object, e As EventArgs) Dim ObjInv As New ClsInventarios If ObjInv.UpdateFleteCierre(CveFlete, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then Alert("Costo Indirecto cerrado correctamente.", TipoMensaje.MsgInformacion, $" location.href = ""./Fletes.aspx?CveFlete={CveFlete}"" ") End If ObjInv.Dispose() End Sub End Class