JAM - cargar adjunto de comprobación

This commit is contained in:
2024-11-22 21:03:55 -07:00
parent 6ce42e3328
commit 06c85ad5d6
3 changed files with 262 additions and 31 deletions

View File

@@ -1245,6 +1245,28 @@ Public Class ClsMovimientos
Return Retorno Return Retorno
End Function End Function
Public Function UpdateReembolsoComprobante(CveComprobacion As Integer, Comprobante As String) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Comp_ReembolosoComprobanteUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveComprobacion", SqlDbType.Int).Value = CveComprobacion
.Add("@Comprobante", SqlDbType.VarChar).Value = Comprobante
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el comprobante.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function GetAcreedoresSaldosDetalles(CveProveedor As Integer, CveMoneda As Integer, CveEmpresa As Integer) As Boolean Public Function GetAcreedoresSaldosDetalles(CveProveedor As Integer, CveMoneda As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False

View File

@@ -10,6 +10,11 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.v-center {
display: flex !important;
align-items: center;
}
</style> </style>
</asp:Content> </asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server"> <asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
@@ -30,7 +35,10 @@
<i class="fa fa-print"></i> Imprimir Reembolso <i class="fa fa-print"></i> Imprimir Reembolso
</asp:LinkButton> </asp:LinkButton>
</li> </li>
<li></li>
<li>
<asp:HyperLink ID="HLAgregarComprobante" NavigateUrl="#" Visible="false" data-toggle="modal" data-target="#DivArchivo" runat="server"><i class='fa fa-file-o'></i> Cargar Comprobante</asp:HyperLink>
</li>
</ContentTemplate> </ContentTemplate>
<Triggers> <Triggers>
<asp:PostBackTrigger ControlID="LnkImprimir" /> <asp:PostBackTrigger ControlID="LnkImprimir" />
@@ -123,38 +131,59 @@
<asp:UpdatePanel ID="UPCompras" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UPCompras" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="row" runat="server" id="divUnificar" visible="false"> <div class="row" runat="server" id="divUnificar" visible="false" style="margin-top: -5px; padding-left: 0px; padding-right: 0px; margin-bottom: 5px;">
<div class="col-md-12" runat="server" style="margin-top: 2px; padding-left: 0px; padding-right: 0px;"> <div class="col-md-4">
<div class="row v-center">
<label class="col-md-1">Concepto:</label> <div class="col-md-2">
<div class="col-md-3"> Concepto:
<asp:TextBox ID="TxtConcepto" CssClass="form-control input-sm" Width="100%" runat="server" Style="margin-top: 5px;" /> </div>
<div class="col-md-10">
<asp:TextBox ID="TxtConcepto" CssClass="form-control input-sm" Width="100%" runat="server" />
</div>
</div>
</div> </div>
<label class="col-md-1">Fecha:</label> <div class="col-md-2">
<div class="col-md-1"> <div class="row v-center">
<asp:TextBox runat="server" ID="TxtFechaUnificacion" Width="75px"></asp:TextBox> <div class="col-md-2">
Fecha:
</div>
<div class="col-md-6">
<asp:TextBox ID="TxtFechaUnificacion" Width="100%" CssClass="form-control input-sm" runat="server"></asp:TextBox>
<ajax:MaskedEditExtender ID="MEEFechaUnificacion" runat="server" TargetControlID="TxtFechaUnificacion" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender> <ajax:MaskedEditExtender ID="MEEFechaUnificacion" runat="server" TargetControlID="TxtFechaUnificacion" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
</div> </div>
</div>
</div>
<div class="col-md-1"> <div class="col-md-1">
<div class="row v-center">
<div class="col-md-12 input-sm">
<asp:LinkButton ID="LbkUnificar" runat="server"> <asp:LinkButton ID="LbkUnificar" runat="server">
<i class="fa fa-refresh"></i> Unificar <i class="fa fa-refresh"></i> Unificar
</asp:LinkButton> </asp:LinkButton>
</div> </div>
</div>
<div id="DivVincularEgreso" runat="server"> </div>
<label class="col-md-1">Egreso x Comprobar:</label> <div class="col-md-1" id="DivAdjunto" runat="server" visible="false">
<div class="col-md-2"> <div class="row">
<div class="col-md-12 input-sm">
<asp:LinkButton ID="LnkDescargarAdjunto" runat="server">
<i class="fa fa-download"></i> Adjunto
</asp:LinkButton>
</div>
</div>
</div>
<div id="DivVincularEgreso" runat="server" class="col-md-4 v-center">
<div class="row">
<label class="col-md-2">Egreso x Comprobar:</label>
<div class="col-md-4">
<asp:DropDownList ID="DdlCheque" CssClass="form-control input-sm select2me" Width="100%" AppendDataBoundItems="true" runat="server" DataTextField="FolioFecha" DataValueField="CveIE"></asp:DropDownList> <asp:DropDownList ID="DdlCheque" CssClass="form-control input-sm select2me" Width="100%" AppendDataBoundItems="true" runat="server" DataTextField="FolioFecha" DataValueField="CveIE"></asp:DropDownList>
</div> </div>
<div class="col-md-1"> <div class="col-md-6">
<asp:LinkButton data-toggle="tooltip" data-placement="top" ToolTip="Vincular Egreso" runat="server" ID="BtnVincularEgreso" OnClick="BtnVincularEgreso_Click" Text="<i class='fa fa-check' style='color:green'></i>" CssClass="btn btn-default btn-circle btn-xs" /> <asp:LinkButton data-toggle="tooltip" data-placement="top" ToolTip="Vincular Egreso" runat="server" ID="BtnVincularEgreso" OnClick="BtnVincularEgreso_Click" Text="<i class='fa fa-check' style='color:green'></i>" CssClass="btn btn-default btn-circle btn-xs" />
</div> </div>
</div> </div>
</div>
</div> </div>
</div> </div>
@@ -247,8 +276,64 @@
</Columns> </Columns>
</asp:GridView> </asp:GridView>
</ContentTemplate> </ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkDescargarAdjunto" />
</Triggers>
</asp:UpdatePanel> </asp:UpdatePanel>
<div id="DivArchivo" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<asp:UpdatePanel ID="UpConcepto" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Cargar Comprobante</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div class="portlet light xspadding bordered whitoutcol" style="width: 100%;">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Cargar Comprobante </span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body formnombottom">
<h4>Arrastre o haga click para subir el archivo</h4>
<br />
<div class="row">
<div class="col-md-11" style="margin-left: 30px; margin-right: 30px; margin-bottom: 20px;">
<asp:TextBox ID="TxtComprobante" CssClass="ADSdropzone hidden" Text="" data-maxFile="1" runat="server"></asp:TextBox>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<div class="row">
<div class="col-md-12" style="text-align: right">
<asp:Button ID="BtnCargarComprobante" runat="server" CssClass="btn btn-success" Text="Procesar"></asp:Button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content> </asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript"> <script type="text/javascript">

View File

@@ -2,6 +2,8 @@
Option Strict On Option Strict On
Imports System.Data Imports System.Data
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports System.IO
Imports Extensiones Imports Extensiones
Imports Microsoft.Reporting.WebForms Imports Microsoft.Reporting.WebForms
@@ -52,12 +54,31 @@ Partial Class Compras_RepRembolsoComprobaciones
ViewState("DtCheques") = value ViewState("DtCheques") = value
End Set End Set
End Property End Property
Private Property CveComprobacion As Integer
Get
Return (IfNull(ViewState("CveComprobacion"), "-1", ViewState("CveComprobacion"))).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("CveComprobacion") = value
End Set
End Property
Private Property Comprobante As String
Get
Return (IfNull(ViewState("Comprobante"), "", ViewState("Comprobante"))).ToString()
End Get
Set(value As String)
ViewState("Comprobante") = value
End Set
End Property
#End Region #End Region
Private Sub Compras_RepRembolsoComprobaciones_Load(sender As Object, e As EventArgs) Handles Me.Load Private Sub Compras_RepRembolsoComprobaciones_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then If Not Page.IsPostBack Then
ViewState("CveMoneda") = 1 ViewState("CveMoneda") = 1
CveComprobacion = -1
'Cargar Filtros 'Cargar Filtros
Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa)
dt = dt.FiltraParametros(String.Format("CveTipoCuenta = 1")) 'caja chica = 1 dt = dt.FiltraParametros(String.Format("CveTipoCuenta = 1")) 'caja chica = 1
@@ -199,6 +220,10 @@ Partial Class Compras_RepRembolsoComprobaciones
End Sub End Sub
Protected Sub CargaDatos() Protected Sub CargaDatos()
CveComprobacion = -1
Comprobante = ""
Dim ObjMovtos As New ClsMovimientos Dim ObjMovtos As New ClsMovimientos
GvCxP.Visible = True GvCxP.Visible = True
@@ -214,6 +239,11 @@ Partial Class Compras_RepRembolsoComprobaciones
DtDatos = ObjMovtos.DtResultados DtDatos = ObjMovtos.DtResultados
GvCxP.DataSource = DtDatos GvCxP.DataSource = DtDatos
If DtDatos IsNot Nothing Then
CveComprobacion = DtDatos.FiltroPrimeroValor("CveComprobacion").ToEntero()
Comprobante = DtDatos.FiltroPrimeroValor("Comprobante")
End If
'cargo si tiene cheques pendientes sin amortizar 'cargo si tiene cheques pendientes sin amortizar
If CvePersonal > 0 Then If CvePersonal > 0 Then
If DtDatos.Rows.Count > 0 AndAlso TxtNumeroReembolso.Text.Trim <> "" Then If DtDatos.Rows.Count > 0 AndAlso TxtNumeroReembolso.Text.Trim <> "" Then
@@ -244,8 +274,20 @@ Partial Class Compras_RepRembolsoComprobaciones
ObjMovtos.Dispose() ObjMovtos.Dispose()
GvCxP.DataBind() GvCxP.DataBind()
If Not String.IsNullOrEmpty(Comprobante) Then
DivAdjunto.Visible = True
Else
DivAdjunto.Visible = False
End If
LnkImprimir.Visible = True LnkImprimir.Visible = True
NumeroReembolso = TxtNumeroReembolso.Text NumeroReembolso = TxtNumeroReembolso.Text
If UsuarioActual.CveEmpresa = 119 AndAlso UsuarioActual.CveRol = 1 Then
HLAgregarComprobante.Visible = True
End If
If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then
If NumeroReembolso <> "" AndAlso CvePersonal > 0 AndAlso DtDatos.MAX("CvePrePolizaComprobacionSinBancos").ToEntero > 0 Then If NumeroReembolso <> "" AndAlso CvePersonal > 0 AndAlso DtDatos.MAX("CvePrePolizaComprobacionSinBancos").ToEntero > 0 Then
DivVincularEgreso.Visible = True DivVincularEgreso.Visible = True
@@ -351,4 +393,86 @@ Partial Class Compras_RepRembolsoComprobaciones
ObjIE.Dispose() ObjIE.Dispose()
End Sub End Sub
Protected Sub BtnCargarComprobante_Click(sender As Object, e As System.EventArgs) Handles BtnCargarComprobante.Click
GuardarArchivoAdjunto()
End Sub
Private Sub GuardarArchivoAdjunto()
If Not TxtComprobante.getfiles().Archivos.Count > 0 Then
Alert("Tiene que cargar un archivo.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TxtNumeroReembolso.Text = "" Then
Alert("Debe asignar un numero de reembolso de subir el archivo.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtComprobante.getfiles().Archivos
Dim Filename As String = ""
Dim fileItem As Archivo = Filesgral(0)
Try
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Dim Adjunto = String.Format("{0}-{1}.{2}", CveComprobacion, TxtNumeroReembolso.Text, FileExtension)
Dim Path As String
Path = String.Format("{0}Comprobaciones", UsuarioActual.Empresa.Ruta)
If Not Directory.Exists(Path) Then
Directory.CreateDirectory(Path)
End If
Path += $"/{Adjunto}"
If File.Exists(Path) Then
File.Delete(Path)
End If
My.Computer.FileSystem.MoveFile(fileItem.FileUrl, Path)
If File.Exists(Path) Then
Using ObjMov As New ClsMovimientos
If ObjMov.UpdateReembolsoComprobante(CveComprobacion, Adjunto) Then
Alert("Documento cargado")
End If
End Using
End If
Catch ex As Exception
OnError("Error al cargar archivo", ex)
End Try
RegistraScript("$('#DivArchivo').modal('hide');", "A1")
CargaDatos()
End Sub
Protected Sub LnkDescargarAdjunto_Click(sender As Object, e As System.EventArgs) Handles LnkDescargarAdjunto.Click
Dim ruta As String = HttpContext.Current.Request.ApplicationPath
ruta = String.Format("{0}Comprobaciones", UsuarioActual.Empresa.Ruta)
ruta += $"/{Comprobante}"
Dim Archivo As New System.IO.FileInfo(ruta)
Try
If Archivo IsNot Nothing Then
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", String.Format("attachment; filename={0}", Archivo.Name))
HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString())
HttpContext.Current.Response.TransmitFile(ruta)
Response.Flush() ' send it to the client to download
HttpContext.Current.Response.SuppressContent = True
HttpContext.Current.ApplicationInstance.CompleteRequest()
Response.End()
Else
Alert("El archivo no existe", TipoMensaje.MsgAdvertencia)
End If
End If
Catch ex As Exception
End Try
End Sub
End Class End Class