Inicio PS por caducar y RSCO Por Vencer, Avance descarga Ingresos
This commit is contained in:
515
SAT/SolicitudesIngresoSat.aspx
Normal file
515
SAT/SolicitudesIngresoSat.aspx
Normal file
@@ -0,0 +1,515 @@
|
||||
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="SolicitudesIngresoSat.aspx.cs" Inherits="SAT_SolicitudesIngresoSat" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
||||
<style>
|
||||
.dashboard-stat .visual > i {
|
||||
font-size: 90px;
|
||||
}
|
||||
|
||||
.dashboard-stat .visual > i {
|
||||
opacity: 0.1;
|
||||
filter: alpha(opacity=10);
|
||||
}
|
||||
|
||||
.dashboard-stat.SigData {
|
||||
color: #FFFFFF;
|
||||
background-color: #3598dc;
|
||||
}
|
||||
|
||||
.dashboard-stat.XMLData {
|
||||
color: #FFFFFF;
|
||||
background-color: #900;
|
||||
}
|
||||
|
||||
.dashboard-stat.SigData .more,
|
||||
.dashboard-stat.XMLData .more {
|
||||
color: #FFFFFF;
|
||||
background-color: rgb(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) {
|
||||
color: #333333;
|
||||
background-color: #DDD;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.reporte1 .GVSolicitudTimbreNominaGral tr td:nth-child(n+2),
|
||||
.reporte1 .GVSolicitudTimbreNominaGral tr th:nth-child(n+2) {
|
||||
text-align: right !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reporte1 .GVSolicitudTimbreNominaGral tr th:nth-child(2)
|
||||
/*,.reporte1 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(2) */ {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte1 .GVSolicitudTimbreNominaGral tr th:nth-child(3),
|
||||
.reporte1 .GVSolicitudTimbreNominaGral tr th:nth-child(4),
|
||||
.reporte1 .GVSolicitudTimbreNominaGral tr th:nth-child(5) /*,
|
||||
.reporte1 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(3),
|
||||
.reporte1 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(4),
|
||||
.reporte1 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(5)*/ {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.reporte2 .GVSolicitudTimbreNominaGral tr td:nth-child(n+2),
|
||||
.reporte2 .GVSolicitudTimbreNominaGral tr th:nth-child(n+2) {
|
||||
text-align: right !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reporte2 .GVSolicitudTimbreNominaGral tr th:nth-child(2) /*,
|
||||
.reporte2 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(2)*/ {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte2 .GVSolicitudTimbreNominaGral tr th:nth-child(n+3):not(:nth-child(7)) /*,
|
||||
.reporte2 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(n+3):not(:nth-child(7))*/ {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(n+3) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(4),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(8),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(9),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(n+13):not(:nth-child(n+19)),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(24),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr td:nth-child(n+28):not(:nth-child(n+33)) {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr th:nth-child(2),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr th:nth-child(n+20) /*,
|
||||
.reporte3 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(2),
|
||||
.reporte3 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(n+20)*/ {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr th:nth-child(1),
|
||||
.reporte3 .GVSolicitudTimbreNominaGral tr th:nth-child(n+3):not(:nth-child(n+20)) /*,
|
||||
.reporte3 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(1),
|
||||
.reporte3 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(n+3):not(:nth-child(n+20))*/ {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
.reporte4 .GVSolicitudTimbreNominaGral tr td:nth-child(n+2),
|
||||
.reporte4 .GVSolicitudTimbreNominaGral tr th:nth-child(n+2) {
|
||||
text-align: right !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reporte4 .GVSolicitudTimbreNominaGral tr th:nth-child(2) /*,
|
||||
.reporte4 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(2)*/ {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte4 .GVSolicitudTimbreNominaGral tr th:nth-child(n+3):not(:nth-child(n+6)) /*,
|
||||
.reporte4 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(n+3)*/ {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte5 .GVSolicitudTimbreNominaGral tr th:nth-child(2) /*,
|
||||
.reporte5 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(2)*/ {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte5 .GVSolicitudTimbreNominaGral tr th:nth-child(3) /*,
|
||||
.reporte5 .ADScroller-body .GVSolicitudTimbreNominaGral tr:nth-child(2) td:nth-child(3)*/ {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
.reporte6 .GVSolicitudTimbreNominaGral tr td:nth-child(n) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reporte6 .GVSolicitudTimbreNominaGral tr td:nth-child(n+4),
|
||||
.reporte6 .GVSolicitudTimbreNominaGral tr th:nth-child(n+4) {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.reporte6 .GVSolicitudTimbreNominaGral tr th:nth-child(n+4):not(:nth-child(n+7)) {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte6 .GVSolicitudTimbreNominaGral tr th:nth-child(n+7):not(:nth-child(n+10)) {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.reporte7 .GVSolicitudTimbreNominaGral tr td:nth-child(n+3),
|
||||
.reporte7 .GVSolicitudTimbreNominaGral tr th:nth-child(n+3) {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.reporte7 .GVSolicitudTimbreNominaGral tr th:nth-child(n+3):not(:nth-child(n+6)) {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte7 .GVSolicitudTimbreNominaGral tr th:nth-child(n+6):not(:nth-child(n+9)) {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.reporte8 .GVSolicitudTimbreNominaGral tr td:nth-child(n+6),
|
||||
.reporte8 .GVSolicitudTimbreNominaGral tr th:nth-child(n+6) {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.reporte8 .GVSolicitudTimbreNominaGral tr th:nth-child(n+6):not(:nth-child(n+9)) {
|
||||
background-color: #900;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.reporte8 .GVSolicitudTimbreNominaGral tr th:nth-child(n+9):not(:nth-child(n+12)) {
|
||||
background-color: #3598dc;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
.reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(1),
|
||||
.reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(4) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(2),
|
||||
.reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(3),
|
||||
.reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(n+40) {
|
||||
text-align: right !important;
|
||||
}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
|
||||
Visor solicitudes Ingreso
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
|
||||
<li>
|
||||
<asp:LinkButton ID="LnkDownloadExcel" OnClick="LnkDownloadExcel_Click" runat="server"><i class="fa fa-download"></i>Descargar</asp:LinkButton>
|
||||
</li>
|
||||
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
|
||||
<contenttemplate>
|
||||
<li>
|
||||
<asp:LinkButton ID="LnkShowSolicitudes" OnClick="LnkShowSolicitudes_Click" runat="server">Solicitudes</asp:LinkButton>
|
||||
</li>
|
||||
</contenttemplate>
|
||||
</asp:UpdatePanel>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
|
||||
|
||||
<asp:UpdatePanel ID="upDatosChec" runat="server" UpdateMode="Conditional">
|
||||
<contenttemplate>
|
||||
<div class="portlet solid grey-cascade portlet-filter">
|
||||
<div class="portlet-title portlet-filterT smalltitle">
|
||||
<div class="titlefiltros caption">
|
||||
<div class="row">
|
||||
<label class="col-md-1">Agrupador: </label>
|
||||
<div class="col-md-2">
|
||||
<asp:DropDownList ID="DdlReporte" runat="server" Style="width: 100% !important;" CssClass="select2me" DataValueField="CveUsuario" DataTextField="Nombre">
|
||||
<asp:ListItem Value="1" Text="Por Mes"></asp:ListItem>
|
||||
<asp:ListItem Value="2" Text="Por Comprobante"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
<label class="col-md-1 mediocol">Fecha inicio:</label>
|
||||
<div class="col-md-2">
|
||||
<%--<asp:TextBox ID="TxtPeriodoInicio" Text="0" CssClass="form-control" runat="server"></asp:TextBox>--%>
|
||||
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
|
||||
<asp:TextBox ID="TxtRpdFechaInicio" CssClass="form-control input-sm ADSMaskDate" Style="width: 80px" runat="server"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="LnkRpdFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<ajax:maskededitextender id="MaskedEditExtender3" runat="server" targetcontrolid="TxtRpdFechaInicio" mask="99/99/9999" masktype="Date" displaymoney="Left" acceptnegative="Left"></ajax:maskededitextender>
|
||||
<ajax:calendarextender runat="server" id="CalendarExtender3" targetcontrolid="TxtRpdFechaInicio" popupbuttonid="LnkRpdFechaInicio" popupposition="BottomRight" enabled="True" format="dd/MM/yyyy"></ajax:calendarextender>
|
||||
<asp:RequiredFieldValidator ID="rfvRpdFechaInicio" runat="server" ControlToValidate="TxtRpdFechaInicio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor ingréselo." ValidationGroup="VGReporterepperde"></asp:RequiredFieldValidator>
|
||||
<ajax:validatorcalloutextender id="ValidatorCalloutExtender1" runat="server" highlightcssclass="vco" targetcontrolid="rfvRpdFechaInicio"></ajax:validatorcalloutextender>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-1 mediocol">Fecha fin:</label>
|
||||
<div class="col-md-2">
|
||||
<%--<asp:TextBox ID="TxtPeriodoFin" Text="99" CssClass="form-control" runat="server"></asp:TextBox>--%>
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
|
||||
<asp:TextBox ID="TxtRpdFechaFin" CssClass="form-control input-sm ADSMaskDate" Style="width: 80px" runat="server"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="LnkFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<ajax:maskededitextender id="MaskedEditExtender5" runat="server" targetcontrolid="TxtRpdFechaFin" mask="99/99/9999" masktype="Date" displaymoney="Left" acceptnegative="Left"></ajax:maskededitextender>
|
||||
<ajax:calendarextender runat="server" id="CalendarExtender4" targetcontrolid="TxtRpdFechaFin" popupbuttonid="LnkFechaFin" popupposition="BottomRight" enabled="True" format="dd/MM/yyyy"></ajax:calendarextender>
|
||||
<asp:RequiredFieldValidator ID="rfvRpdFechaFin" runat="server" ControlToValidate="TxtRpdFechaFin" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor ingréselo." ValidationGroup="VGReporterepperde"></asp:RequiredFieldValidator>
|
||||
<ajax:validatorcalloutextender id="ValidatorCalloutExtender2" runat="server" highlightcssclass="vco" targetcontrolid="rfvRpdFechaFin"></ajax:validatorcalloutextender>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2" style="text-align:right">
|
||||
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" Text="Consultar" Visible="true" class="btn btn-primary" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="expand" data-original-title="" title=""></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body" style="display: none">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="portlet light xspadding bordered " id="pnldl">
|
||||
<div class="portlet-title">
|
||||
<div class="caption ">
|
||||
<i class="fa fa-bookmark font-blue"></i>
|
||||
<span class="caption-subject font-blue bold uppercase">Información timbre fiscal </span>
|
||||
</div>
|
||||
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
|
||||
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
|
||||
</div>
|
||||
<div style="float: right;">
|
||||
<asp:TextBox CssClass="TxtBusqueda form-control input-sm" runat="server" onkeyup="FiltrarTablaV2('.TxtBusqueda','.ADScroller-body .GVSolicitudTimbreNominaGral')" Style="display: inline-block; margin-right: -20px; width: 150px;"></asp:TextBox>
|
||||
<a href="javascript:;" onclick="FiltrarTablaV2('.TxtBusqueda','.ADScroller-body .GVSolicitudTimbreNominaGral')" style="margin-top: -3px;" class="btn btn-circle btn-sm font-bold blue"><i class="icon-magnifier" style="font-weight: bold;"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class='portlet-body nomarginleftright form-horizontal form-row-sepe formnombottom <%= clasegrid %>'>
|
||||
|
||||
|
||||
<asp:GridView ID="GvSolicitudesIngreso" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall GVSolicitudTimbreNominaGral" AutoGenerateColumns="true">
|
||||
<columns></columns>
|
||||
</asp:GridView>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</contenttemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
<div id="ModalViewSolicitudes" class="modal ADS fade" role="dialog">
|
||||
<asp:UpdatePanel ID="UPModalViewSolicitudes" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||
<contenttemplate>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">Solicitudes CFDI</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<br />
|
||||
<div class="portlet light xspadding bordered " id="PnlAgregar">
|
||||
<div class="portlet-title">
|
||||
<div class="caption ">
|
||||
<i class="fa fa-bookmark font-blue"></i>
|
||||
<span class="caption-subject font-blue bold uppercase">Solicitar información al sat</span>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="expand" data-original-title="" title=""></a>
|
||||
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body nomarginleftright form-horizontal form-row-sepe formnombottom " style="display: none">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
|
||||
<asp:Label runat="server" Text="Fecha Inicio" AssociatedControlID="txtFechaIAdd"></asp:Label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
<asp:Label runat="server" Text="Fecha Fin" AssociatedControlID="txtFechaFAdd"></asp:Label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
|
||||
<asp:TextBox ID="txtFechaIAdd" CssClass="form-control input-sm ADSMaskDate" Style="" runat="server"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="LnkFechaIAdd" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<ajax:maskededitextender id="MEEFechaIAdd" runat="server" targetcontrolid="txtFechaIAdd" mask="99/99/9999" masktype="Date" displaymoney="Left" acceptnegative="Left"></ajax:maskededitextender>
|
||||
<ajax:calendarextender runat="server" id="CalendarExtender1" targetcontrolid="txtFechaIAdd" popupbuttonid="LnkFechaIAdd" popupposition="BottomRight" enabled="True"></ajax:calendarextender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaIAdd" runat="server" ControlToValidate="txtFechaIAdd" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="VGAdd"></asp:RequiredFieldValidator>
|
||||
<asp:CompareValidator ID="cvFechaIAdd" runat="server" ControlToValidate="txtFechaIAdd" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:validatorcalloutextender id="ValidatorCalloutExtender3" runat="server" highlightcssclass="vco" targetcontrolid="rfvFechaIAdd" width="350px"></ajax:validatorcalloutextender>
|
||||
<ajax:validatorcalloutextender id="ValidatorCalloutExtender4" runat="server" highlightcssclass="vco" targetcontrolid="cvFechaIAdd" width="350px"></ajax:validatorcalloutextender>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
|
||||
<asp:TextBox ID="txtFechaFAdd" CssClass="form-control input-sm ADSMaskDate" Style="" runat="server"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="LnkFechaFAdd" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<ajax:maskededitextender id="MEEFechaFAdd" runat="server" targetcontrolid="txtFechaFAdd" mask="99/99/9999" masktype="Date" displaymoney="Left" acceptnegative="Left"></ajax:maskededitextender>
|
||||
<ajax:calendarextender runat="server" id="CalendarExtender2" targetcontrolid="txtFechaFAdd" popupbuttonid="LnkFechaFAdd" popupposition="BottomRight" enabled="True"></ajax:calendarextender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaFAdd" runat="server" ControlToValidate="txtFechaFAdd" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="VGAdd"></asp:RequiredFieldValidator>
|
||||
<asp:CompareValidator ID="cvFechaFAdd" runat="server" ControlToValidate="txtFechaFAdd" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:validatorcalloutextender id="ValidatorCalloutExtender5" runat="server" highlightcssclass="vco" targetcontrolid="rfvFechaFAdd" width="350px"></ajax:validatorcalloutextender>
|
||||
<ajax:validatorcalloutextender id="ValidatorCalloutExtender6" runat="server" highlightcssclass="vco" targetcontrolid="cvFechaFAdd" width="350px"></ajax:validatorcalloutextender>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="text-right">
|
||||
<asp:LinkButton ID="LnkSolicitarSat" CssClass="btn btn-primary" OnClick="LnkSolicitarSat_Click" runat="server">Solicitar</asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet light xspadding bordered " id="PnlPendientes">
|
||||
<div class="portlet-title">
|
||||
<div class="caption ">
|
||||
<i class="fa fa-bookmark font-blue"></i>
|
||||
<span class="caption-subject font-blue bold uppercase">Solicitudes pendientes de respuesta del SAT </span>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
|
||||
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body nomarginleftright form-horizontal form-row-sepe formnombottom ">
|
||||
|
||||
<asp:GridView ID="GVSolicitudesPendientes" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
|
||||
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
|
||||
DataKeyNames="CveSolicitud,CveSolicitudCFDI,CveSolicitudMetadata,Estatus,Observaciones,FechaInicio,FechaFin,FechaIng,CveUsuarioIng,CveEmpresa">
|
||||
<columns>
|
||||
<asp:TemplateField HeaderText="Folio">
|
||||
<itemtemplate>
|
||||
<asp:Label runat="server" Text='<%# Eval("CveSolicitud")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Fecha Inicio">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# Eval("FechaInicio","{0:dd/MM/yyyy}")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Fecha Fin">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin","{0:dd/MM/yyyy}")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Estatus">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblestatus" runat="server" Text='<%# Eval("EstatusText")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Observaciones">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("Observaciones")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Fecha solicitud">
|
||||
<itemtemplate>
|
||||
<asp:Label runat="server" Text='<%# Eval("FechaIng","{0:dd/MM/yyyy HH:mm}")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Solicitó">
|
||||
<itemtemplate>
|
||||
<asp:Label runat="server" Text='<%# Eval("UsuarioIng")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
</columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet light xspadding bordered " id="PnlTerminads">
|
||||
<div class="portlet-title">
|
||||
<div class="caption ">
|
||||
<i class="fa fa-bookmark font-blue"></i>
|
||||
<span class="caption-subject font-blue bold uppercase">solicitudes respondidas por el sat</span>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
|
||||
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body nomarginleftright form-horizontal form-row-sepe formnombottom ">
|
||||
<asp:GridView ID="GVSolicitudesNominas" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
|
||||
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
|
||||
DataKeyNames="CveSolicitud,idSolicitudCFDI,idSolicitudMetadata,Estatus,Observaciones,FechaInicio,FechaFin,FechaIng,CveUsuarioIng,CveEmpresa">
|
||||
<columns>
|
||||
<asp:TemplateField HeaderText="Folio">
|
||||
<itemtemplate>
|
||||
<asp:Label runat="server" Text='<%# Eval("CveSolicitud")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Fecha Inicio">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# Eval("FechaInicio","{0:dd/MM/yyyy}")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Fecha Fin">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin","{0:dd/MM/yyyy}")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="No CFDI">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("numeroCFDIs")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Observaciones">
|
||||
<itemtemplate>
|
||||
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("Observaciones")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Fecha solicitud">
|
||||
<itemtemplate>
|
||||
<asp:Label runat="server" Text='<%# Eval("FechaIng","{0:dd/MM/yyyy HH:mm}")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Solicitó">
|
||||
<itemtemplate>
|
||||
<asp:Label runat="server" Text='<%# Eval("UsuarioIng")%>'></asp:Label>
|
||||
</itemtemplate>
|
||||
</asp:TemplateField>
|
||||
</columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<asp:LinkButton ID="LnkverificarSolicitudes" CssClass="btn btn-primary" OnClick="LnkverificarSolicitudes_Click" runat="server">Verificar pendientes</asp:LinkButton>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
||||
</div>
|
||||
</contenttemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||
</asp:Content>
|
||||
|
||||
534
SAT/SolicitudesIngresoSat.aspx.cs
Normal file
534
SAT/SolicitudesIngresoSat.aspx.cs
Normal file
@@ -0,0 +1,534 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Extensiones;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
public partial class SAT_SolicitudesIngresoSat : ClsPaginas
|
||||
{
|
||||
#region Propiedades
|
||||
|
||||
public string clasegrid
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ViewState["clasegrid"] == null) { return ""; }
|
||||
else { return ViewState["clasegrid"].ToString(); }
|
||||
}
|
||||
set { ViewState["clasegrid"] = value; }
|
||||
}
|
||||
public string fechaInicio
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ViewState["fechaInicio"] == null) { return ""; }
|
||||
else { return ViewState["fechaInicio"].ToString(); }
|
||||
}
|
||||
set { ViewState["fechaInicio"] = value; }
|
||||
}
|
||||
public string fechaFin
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ViewState["fechaFin"] == null) { return ""; }
|
||||
else { return ViewState["fechaFin"].ToString(); }
|
||||
}
|
||||
set { ViewState["fechaFin"] = value; }
|
||||
}
|
||||
#endregion
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
TxtRpdFechaInicio.Text = string.Format("01/{0:MM/yyyy}", DateTime.Now.AddMonths(-1));
|
||||
TxtRpdFechaFin.Text = string.Format("{0:dd/MM/yyyy}", DateTime.Now.AddMonths(-1).LastDayOfMonth());
|
||||
//LnkConsultar_Click(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
protected void LnkDownloadExcel_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
using (ClsNominas nom = new ClsNominas())
|
||||
{
|
||||
nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin);
|
||||
|
||||
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
|
||||
var libro = wb.AddWorksheet(nom.DtResultados , "Nomina");
|
||||
libro.ColumnsUsed().AdjustToContents();
|
||||
libro.Range(1, 1, 1, nom.DtResultados.Columns.Count).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 153, 153));
|
||||
switch (DdlReporte.SelectedValue.ToString().ToEntero())
|
||||
{
|
||||
case 1:
|
||||
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153,0,0));
|
||||
libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 2:
|
||||
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
libro.Range(1, 3, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
libro.Range(1, 8, 1, 11).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 3:
|
||||
libro.Range(1, 1, 1, 10).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
libro.Range(1, 11, 1, nom.DtResultados.Columns.Count).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
break;
|
||||
case 4:
|
||||
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 5:
|
||||
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
libro.Range(1, 3, 1, 3).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 6:
|
||||
libro.Range(1, 4, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
libro.Range(1, 7, 1, 9).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 7:
|
||||
libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 8:
|
||||
libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
|
||||
libro.Range(1, 9, 1, 12).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
|
||||
break;
|
||||
case 9:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
libro.Row(1).InsertRowsAbove(4);
|
||||
libro.Range(1, 2, 1, 6).Merge().Value = UsuarioActual.Empresa.Empresa;
|
||||
libro.Range(2, 2, 2, 6).Merge().Value = $"Reporte de {DdlReporte.SelectedItem.Text }";
|
||||
libro.Range(3, 2, 3, 6).Merge().Value = $"del {fechaInicio.ToDateTime():dd/MM/yyyy} al {fechaFin.ToDateTime():dd/MM/yyyy}";
|
||||
libro.Range(2, 7, 2, 9).Merge().Value = $"Fecha:{DateTime.Now:dd/MM/yyyy}";
|
||||
libro.Range(3, 7, 3, 9).Merge().Value = $"Hora:{DateTime.Now:HH:mm}";
|
||||
|
||||
System.IO.Stream fs = new System.IO.MemoryStream();
|
||||
wb.SaveAs(fs);
|
||||
fs.Position = 0;
|
||||
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
|
||||
using (System.IO.Stream input = fs)
|
||||
|
||||
{
|
||||
input.CopyTo(memoryStream);
|
||||
}
|
||||
memoryStream.Position = 0;
|
||||
|
||||
Response.Clear();
|
||||
Response.Buffer = true;
|
||||
|
||||
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", $"Visor nómina ( Reporte :{DdlReporte.SelectedValue}) "));
|
||||
Response.BinaryWrite(memoryStream.ToArray());
|
||||
Response.End();
|
||||
}
|
||||
}
|
||||
protected void LnkConsultar_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (ClsNominas nom = new ClsNominas())
|
||||
{
|
||||
fechaInicio = TxtRpdFechaInicio.Text.ToDateTime().ToString("yyyy/MM/dd");
|
||||
fechaFin = TxtRpdFechaFin.Text.ToDateTime().ToString("yyyy/MM/dd");
|
||||
|
||||
nom.SATSolicitudTimbreNominaGral(0, UsuarioActual.CveEmpresa, fechaInicio, fechaFin);
|
||||
if (nom.DtResultados.Rows.Count > 0)
|
||||
{
|
||||
DataRow drow = nom.DtResultados.Rows[0];
|
||||
|
||||
|
||||
//LtlTimbreFiscalTotal.Text = string.Format("{0:N0}", drow["NOXml"]);
|
||||
//LtlTimbreFiscalActivos.Text = string.Format("{0:N0}", drow["NOXmlActivos"]);
|
||||
//LtlTimbreFiscalCancelados.Text = string.Format("{0:N0}", drow["NOXml"].ToString().ToEntero() - drow["NOXmlActivos"].ToString().ToEntero());
|
||||
//LtlSobrerecibosTotal.Text = string.Format("{0:N0}", drow["NOXmlSig"]);
|
||||
//LtlSobrerecibosTimbrados.Text = string.Format("{0:N0}", drow["Timbrados"]);
|
||||
//LtlSobrerecibosSintimbrar.Text = string.Format("{0:N0}", drow["SinTimbrar"]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin);
|
||||
//GvSolicitudesIngreso.DataSource = nom.DtResultados;
|
||||
//GvSolicitudesIngreso.DataBind();
|
||||
clasegrid = string.Format("reporte{0}", DdlReporte.SelectedValue);
|
||||
}
|
||||
upDatosChec.Update();
|
||||
//SATSolicitudTimbreNominaGral
|
||||
}
|
||||
private void cargasolicitudes()
|
||||
{
|
||||
using (ClsNominas nom = new ClsNominas())
|
||||
{
|
||||
|
||||
if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa,CveTipoSolicitud:3))
|
||||
{
|
||||
|
||||
GVSolicitudesPendientes.DataSource = nom.DtResultados.FiltraParametros("Estatus =0");
|
||||
GVSolicitudesPendientes.DataBind();
|
||||
GVSolicitudesNominas.DataSource = nom.DtResultados.FiltraParametros("Estatus =1");
|
||||
GVSolicitudesNominas.DataBind();
|
||||
}
|
||||
}
|
||||
UPModalViewSolicitudes.Update();
|
||||
}
|
||||
protected void LnkShowSolicitudes_Click(object sender, EventArgs e)
|
||||
{
|
||||
cargasolicitudes();
|
||||
this.RegistraScript("$('#ModalViewSolicitudes').modal();");
|
||||
}
|
||||
|
||||
protected void LnkSolicitarSat_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
int idSolicitudCFDI = 0;
|
||||
int idSolicitudMetadata = 0;
|
||||
int estatus = 0;
|
||||
string observaciones = "";
|
||||
DateTime fechaInicio = txtFechaIAdd.Text.ToDateTime();
|
||||
DateTime fechaFin = txtFechaFAdd.Text.ToDateTime();
|
||||
int cveUsuarioIng = UsuarioActual.CveUsuario;
|
||||
int cveEmpresa = UsuarioActual.CveEmpresa;
|
||||
bool Continuar = false;
|
||||
using (ClsNominas nom = new ClsNominas())
|
||||
{
|
||||
Continuar = nom.SolicitudesAdd(idSolicitudCFDI, idSolicitudMetadata, estatus, observaciones, fechaInicio, fechaFin, cveUsuarioIng, cveEmpresa, CveTipoSolicitud:3);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (Continuar)
|
||||
{
|
||||
|
||||
StringBuilder sbResultado = new StringBuilder();
|
||||
|
||||
var api = new GeneralesAPI();
|
||||
|
||||
JToken ObjApiSolicitud = (JToken) api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3);
|
||||
List<string> resultSolicitud = ObjApiSolicitud.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
|
||||
|
||||
List<string> resultVerificacion = new List<string>();
|
||||
|
||||
|
||||
var ResultadoSolicitudOK = bool.Parse(resultSolicitud[0]);
|
||||
var ResultadoVerificaionOK = false;
|
||||
var SeVerifico = false;
|
||||
|
||||
if (ResultadoSolicitudOK)
|
||||
{
|
||||
JToken ObjApiVerificacion = (JToken) api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 3);
|
||||
resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
|
||||
|
||||
ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]);
|
||||
SeVerifico = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (resultSolicitud.Count == 4)
|
||||
{
|
||||
if (ResultadoSolicitudOK)
|
||||
{
|
||||
sbResultado.Append($"Solicitud Generada Correctamente <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.Append($"Se presento un error al generar la solicitud <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.AppendLine("Se presento un error al generar la solicitud (API) <br/>");
|
||||
}
|
||||
|
||||
|
||||
if (SeVerifico && resultVerificacion.Count == 4)
|
||||
{
|
||||
if (ResultadoVerificaionOK)
|
||||
{
|
||||
sbResultado.Append($"Verificación ejecutada correctamente <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API) <br/>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Alert(sbResultado.ToString());
|
||||
}
|
||||
|
||||
if (Continuar)
|
||||
{
|
||||
txtFechaIAdd.Text = "";
|
||||
txtFechaFAdd.Text = "";
|
||||
this.RegistraScript("$('#DModalSolicitudesNominas').modal('hide');");
|
||||
cargasolicitudes();
|
||||
this.Alert("se a envia la solicitud al sat, le enviaremos un correo en cuanto tengamos una respuesta", ModExtensiones.TipoMensaje.ToastInformacion);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void LnkverificarSolicitudes_Click(object sender, EventArgs e)
|
||||
{
|
||||
//var api = new GeneralesAPI();
|
||||
//api.GeneraSolicitud();
|
||||
//api.VerificaSolicitudesNominas();
|
||||
|
||||
|
||||
|
||||
StringBuilder sbResultado = new StringBuilder();
|
||||
|
||||
var api = new GeneralesAPI();
|
||||
|
||||
JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3);
|
||||
List<string> resultSolicitud = ObjApiSolicitud.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
|
||||
|
||||
List<string> resultVerificacion = new List<string>();
|
||||
|
||||
|
||||
var ResultadoSolicitudOK = bool.Parse(resultSolicitud[0]);
|
||||
var ResultadoVerificaionOK = false;
|
||||
var SeVerifico = false;
|
||||
|
||||
if (ResultadoSolicitudOK)
|
||||
{
|
||||
JToken ObjApiVerificacion = (JToken)api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 3);
|
||||
resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
|
||||
|
||||
ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]);
|
||||
SeVerifico = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (resultSolicitud.Count == 4)
|
||||
{
|
||||
if (ResultadoSolicitudOK)
|
||||
{
|
||||
sbResultado.Append($"Solicitud Generada Correctamente <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.Append($"Se presento un error al generar la solicitud <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.AppendLine("Se presento un error al generar la solicitud (API) <br/>");
|
||||
}
|
||||
|
||||
|
||||
if (SeVerifico && resultVerificacion.Count == 4)
|
||||
{
|
||||
if (ResultadoVerificaionOK)
|
||||
{
|
||||
sbResultado.Append($"Verificación ejecutada correctamente <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud[2]}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API) <br/>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Alert(sbResultado.ToString());
|
||||
|
||||
|
||||
|
||||
cargasolicitudes();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public class GeneralesAPI : ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.BaseSIGAPII
|
||||
{
|
||||
public GeneralesAPI(string domainApi = "http://localhost:4001/", string token = "") : base(domainApi, token) { }
|
||||
|
||||
|
||||
public object GeneraSolicitud(int CveEmpresa, int CveTipoSolicitud)
|
||||
{
|
||||
return getData<object>($"GeneraSolicitud/{CveEmpresa}/{CveTipoSolicitud}", null, ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.requestMethod.GET,false);
|
||||
}
|
||||
public object VerificaSolicitudesNominas(int CveEmpresa, int CveTipoSolicitud)
|
||||
{
|
||||
return getData<object>($"VerificaSolicitudesNominas/{CveEmpresa}/{CveTipoSolicitud}", null, ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.requestMethod.GET, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
namespace ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII
|
||||
{
|
||||
|
||||
public enum requestMethod
|
||||
{
|
||||
POST = 1,
|
||||
GET = 2
|
||||
}
|
||||
public class BaseSIGAPII
|
||||
{
|
||||
private const string tituloLog = "ADSNetLibrary.Helpers.Conexiones.SIGAPI";
|
||||
public string domainApi;
|
||||
public string authorization;
|
||||
protected string RouteController = "";
|
||||
protected string FullRoute = "";
|
||||
public string GetRoutbyclass() {
|
||||
string classname = this.GetType().Name;
|
||||
return classname.Substring(0, classname.Length - 3);
|
||||
}
|
||||
public string GetRoute(string path)
|
||||
{
|
||||
if (string.IsNullOrEmpty(FullRoute))
|
||||
{
|
||||
return string.Format("api/{0}/{1}", (string.IsNullOrEmpty(RouteController) ? GetRoutbyclass() : RouteController), path);
|
||||
}
|
||||
else
|
||||
{
|
||||
return string.Format("{0}{1}", FullRoute, path);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// nueva instancia de conexion para una api
|
||||
/// </summary>
|
||||
/// <param name="domainApi"> url de la api</param>
|
||||
/// <param name="authorization"> llenar si se tiene si se desea obtner usuar campos usuario y pasword</param>
|
||||
public BaseSIGAPII(string domainApi, string authorization = null, string fullRoute = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(domainApi))
|
||||
{
|
||||
domainApi = "http://localhost:4001/";//"http://jam.adssistemas.mx:4001/";//Helpers.ModVars.UrlApi;
|
||||
}
|
||||
this.authorization = authorization;
|
||||
this.domainApi = domainApi;
|
||||
this.FullRoute = fullRoute;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Obtiene datos de la api asincrono.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Clase genérica en donde se obtiene la información del SqlDataReader.</typeparam>
|
||||
/// <param name="path">ruta sin domino ejemplo "/api/usuarios/login".</param>
|
||||
/// <param name="requestobject">request object.</param>
|
||||
/// <returns>Lista de objetos.</returns>
|
||||
public async Task<T> getDataAsync<T>(string path, object requestobject, requestMethod reqmet = requestMethod.POST, bool needauthorization = true, bool isfullpath = false) where T : class, new()
|
||||
{
|
||||
T objreturn = null;
|
||||
using (
|
||||
HttpClient client = new HttpClient())
|
||||
{
|
||||
// Setting Base address.
|
||||
client.BaseAddress = new Uri(domainApi);
|
||||
// Setting content type.
|
||||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||
// Setting Authorization.
|
||||
if (needauthorization) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authorization); }
|
||||
client.Timeout = TimeSpan.FromMinutes(15);
|
||||
HttpResponseMessage response = new HttpResponseMessage();
|
||||
|
||||
var strjsonreq = Newtonsoft.Json.JsonConvert.SerializeObject(requestobject);
|
||||
StringContent content = new StringContent(strjsonreq, Encoding.UTF8, "application/json");
|
||||
string route = isfullpath ? path : GetRoute(path);
|
||||
try
|
||||
{
|
||||
|
||||
switch (reqmet)
|
||||
{
|
||||
case requestMethod.POST:
|
||||
response = await client.PostAsync(route, content);
|
||||
break;
|
||||
case requestMethod.GET:
|
||||
response = await client.GetAsync(route);
|
||||
break;
|
||||
}
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
string jsondata = await response.Content.ReadAsStringAsync();
|
||||
|
||||
|
||||
Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings
|
||||
{
|
||||
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
|
||||
MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore
|
||||
};
|
||||
objreturn = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(jsondata, settings);
|
||||
}
|
||||
else {
|
||||
//ModExtensiones.GuardaLog(string.Format("{0}{1}{2}{1}StatusCode:{3}{1}{4}{1}{5}{1}", tituloLog, ModVars.NewLine, route, response.StatusCode, response.RequestMessage, strjsonreq), ModVars.ADSNetLibraryLog);
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
//ModExtensiones.GuardaLog(string.Format("{0}{1}{2}{1}{3}{1}{4}{1}", tituloLog, ModVars.NewLine, route, e, strjsonreq), ModVars.ADSNetLibraryLog);
|
||||
}
|
||||
|
||||
}
|
||||
return objreturn;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Obtiene datos de la api.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Clase genérica en donde se obtiene la información del SqlDataReader.</typeparam>
|
||||
/// <param name="path">ruta sin domino ejemplo "/api/usuarios/login".</param>
|
||||
/// <param name="requestobject">request object.</param>
|
||||
/// <returns>Lista de objetos.</returns>
|
||||
//public T getData<T> (string path, object requestobject, requestMethod reqmet = requestMethod.POST, bool needauthorization = true, bool isfullpath = false) where T : class, new()
|
||||
public T getData<T>(string path, object requestobject, requestMethod reqmet = requestMethod.POST, bool needauthorization = true, bool isfullpath = false) where T : class, new()
|
||||
{
|
||||
return AsyncHelper.RunSync<T>(() => getDataAsync<T>(path, requestobject, reqmet, needauthorization, isfullpath));
|
||||
}
|
||||
}
|
||||
internal static class AsyncHelper
|
||||
{
|
||||
private static readonly TaskFactory _myTaskFactory = new
|
||||
TaskFactory(CancellationToken.None,
|
||||
TaskCreationOptions.None,
|
||||
TaskContinuationOptions.None,
|
||||
TaskScheduler.Default);
|
||||
|
||||
public static TResult RunSync<TResult>(Func<Task<TResult>> func)
|
||||
{
|
||||
return AsyncHelper._myTaskFactory
|
||||
.StartNew<Task<TResult>>(func)
|
||||
.Unwrap<TResult>()
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
}
|
||||
|
||||
public static void RunSync(Func<Task> func)
|
||||
{
|
||||
AsyncHelper._myTaskFactory
|
||||
.StartNew<Task>(func)
|
||||
.Unwrap()
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user