This commit is contained in:
Antonio Gonzalez
2020-05-23 00:32:43 -07:00
24 changed files with 1802 additions and 1279 deletions

View File

@@ -306,13 +306,14 @@ Public Class ClsOIEventos
End Function
Public Function GetUnoaUnoCuestionario(cveUnoaUnoCuestionario As Int32, cveUsuario As Int32) As Boolean
Public Function GetUnoaUnoCuestionario(cveUnoaUnoCuestionario As Integer, cveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_UnoaUnoCuestionarioGet", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveUnoaUnoCuestionario", SqlDbType.Int).Value = (cveUnoaUnoCuestionario)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveEmpresa", SqlDbType.Int).Value = (CveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
@@ -337,7 +338,7 @@ Public Class ClsOIEventos
End Try
Return retorno
End Function
Public Function AddUnoaUnoCuestionario(Cuestionario As String, Comentario As String, CveUsuario As Integer, ListPreguntas As List(Of Integer)) As Boolean
Public Function AddUnoaUnoCuestionario(Cuestionario As String, Comentario As String, CveUsuario As Integer, ListPreguntas As List(Of Integer), CveEmpresa As Integer) As Boolean
Dim retorno As Boolean = False
Dim xmlPreguntas As System.Xml.Linq.XDocument = Nothing
@@ -349,6 +350,7 @@ Public Class ClsOIEventos
.Add("@Cuestionario", SqlDbType.VarChar).Value = (Cuestionario)
.Add("@Comentario", SqlDbType.VarChar).Value = (Comentario)
.Add("@CveUsuario", SqlDbType.Int).Value = (CveUsuario)
.Add("@CveEmpresa", SqlDbType.Int).Value = (CveEmpresa)
.Add("@xmlPreguntas", SqlDbType.Xml).Value = If(xmlPreguntas Is Nothing, DBNull.Value, DirectCast(xmlPreguntas.ToString(), Object))
End With
Try

View File

@@ -73,8 +73,9 @@ Public Class ClsPaginas
'UsuarioActual = DirectCast(Session("UsuarioSIG"), Usuario)
If Context.Session("UsuarioSIG") Is Nothing Then
Usuario.CerrarSession()
Return Nothing
Else
UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario)
Return CType(Context.Session("UsuarioSIG"), Usuario)
End If
Catch ex As Exception
Usuario.CerrarSession()
@@ -3626,14 +3627,13 @@ Public Class ClsPaginas
PaginaDict.Add("/Default2.aspx".ToUpper(), -1)
PaginaDict.Add("/CargaCuentas.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Tareas.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepProyectos.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Proyecto.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Tablero.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/TableroDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/UnoaUno.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/UnoaUnoConfiguracion.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/ConvocatoriaDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepReuniones.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepProyectos.aspx".ToUpper(), 907)
PaginaDict.Add("/OI/Proyecto.aspx".ToUpper(), 907)
PaginaDict.Add("/OI/Tablero.aspx".ToUpper(), 910)
PaginaDict.Add("/OI/TableroDetalle.aspx".ToUpper(), 910)
PaginaDict.Add("/OI/UnoaUno.aspx".ToUpper(), 909)
PaginaDict.Add("/OI/ConvocatoriaDetalle.aspx".ToUpper(), 908)
PaginaDict.Add("/OI/RepReuniones.aspx".ToUpper(), 908)
PaginaDict.Add("/AdSistemasTeam/ProcedimientosAlmacenados.aspx".ToUpper(), -1)
PaginaDict.Add("/OS/CatOrdenesServiciosCaracteristicas.aspx".ToUpper(), -1)
PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), -1)

View File

@@ -4217,16 +4217,14 @@ Namespace Modelos
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
If RequiereAceptacion Then
CancelacionFecha = Now.Date
CancelacionAcuse = ""
CveEstatus = 20
Else
CancelacionFecha = ObjCancelacion.CancelacionFecha
CancelacionAcuse = ObjCancelacion.CancelacionAcuse
CveEstatus = 5
End If
CancelacionAcuse = ObjCancelacion.CancelacionAcuse
Else
Retorno.Mensaje = "La factura no se pudo cancelar ante el SAT."
Retorno.Mensaje = "Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>Origen del error: WebService www.sat.gob.mx"
Retorno.TipoMensaje = TipoMensaje.MsgError
Return Retorno
@@ -4568,22 +4566,21 @@ Namespace Modelos
'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN GENERAL
If Not ErrorCancelar AndAlso ListaRemisionesCancelar IsNot Nothing AndAlso ListaRemisionesCancelar.Count > 0 Then
For Each CveRemision As Integer In ListaRemisionesCancelar
For Each RowDevolucion As DataRow In DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}", DistinctColumns:={"CveRemision", "CveAlmacen", "CveAlmacenDestino"}).Rows
Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}")
Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}")
Dim RowDevolucion As DataRow = DtDevRemision.FiltraParametros("", DistinctColumns:={"CveRemision", "CveAlmacen", "CveAlmacenDestino"}).Rows(0)
CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN GENERAL
If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision, ObjVentas, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
Exit For
End If
'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN GENERAL
If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision, ObjVentas, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
Exit For
End If
DtDevRemision.Dispose()
Next
DtDevRemision.Dispose()
Next
End If
@@ -5030,22 +5027,34 @@ Namespace Modelos
End If
'ENTRADA A (ALMACEN GENERAL)
Dim DtEntradaDetalle As DataTable = Nothing
If Not ErrorCancelar Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaDevRem, UsuarioActual.CveEmpresa) Then
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
DtEntradaDetalle = ObjInventario.DtResultados.Copy()
End If
End If
If Not ErrorCancelar Then
If DtEntradaDetalle IsNot Nothing Then
For Each Dr As DataRow In DtEntradaDetalle.Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString) Then
ErrorCancelar = True
Exit For
End If
Next
Else
ErrorCancelar = True
End If
End If
If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveRemision) Then
ErrorCancelar = True
If Not ErrorCancelar Then
If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveRemision) Then
ErrorCancelar = True
End If
End If
Return Not ErrorCancelar
End Function

View File

@@ -3417,7 +3417,7 @@ Partial Class Contratos_Default
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo)
Else
@@ -3741,7 +3741,7 @@ Partial Class Contratos_Default
#Region " IMPRIMIR DOCUMENTO - SABE "
Public Sub DescarFormato(documento As String)
Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim PathRoot As String = Server.MapPath("/")
Dim PathSource As String
Dim pathDesti As String

BIN
Imagenes/Bell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -483,43 +483,10 @@
</div>
</div>
</div>
<asp:UpdatePanel ID="UPPTareas" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-6 col-sm-6">
<div class="col-md-4 col-sm-4">
<asp:UpdatePanel ID="UPPTareas" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<%-- <div class="portlet light ">
<div class="portlet-title">
<div class="caption">
<i aria-hidden="true" class="icon-list font-blue-steel"></i>
<span class="caption-subject font-blue-steel bold uppercase">OI </span><span style="color: #999; font-size: 10px;"></span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
</div>
<div class="portlet-body">
<div>
<asp:GridView ID="GVOI" runat="server" GridLines="None" CssClass=" Widthall ScrollAD" AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label runat="server" ID="LblTipo"></asp:Label>&nbsp;
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="scroller-footer">
<div class="btn-arrow-link pull-right">
<a href="/OI/RepTareas.aspx">Ir a tareas <i class="icon-arrow-right"></i></a>
</div>
</div>
</div>
</div>--%>
<div class="portlet light ">
<div class="portlet-title">
@@ -565,9 +532,78 @@
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="col-md-2 col-sm-2">
<div class="portlet light ">
<div class="portlet-title">
<div class="caption">
<i aria-hidden="true" class="icon-list font-blue-steel"></i>
<span class="caption-subject font-blue-steel bold uppercase">Eventos </span><span style="color: #999; font-size: 10px;"></span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="portlet-body">
<div>
<%--<asp:GridView ID="GVOI" runat="server" GridLines="None" CssClass=" Widthall ScrollAD" AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label runat="server" ID="LblTipo"></asp:Label>&nbsp;
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>--%>
<div class="inbox-sidebar">
<a href="javascript:;" data-title="Compose" class="btn red compose-btn btn-block">
<i class="fa fa-edit"></i>Eventos </a>
<ul class="list-group">
<li class="list-group-item ">
<div class="row">
<div class="col-xs-9">Tareas</div>
<div class="col-xs-3"><span class="badge badge-success">
<asp:Literal ID="ltlTotalTareas" runat="server">0</asp:Literal></span> </div>
</div>
</li>
<li class="list-group-item ">
<div class="row">
<div class="col-xs-9">Convocatorias</div>
<div class="col-xs-3"><span class="badge badge-info">
<asp:Literal ID="LtlTotalConvocatorias" runat="server">0</asp:Literal></span></div>
</div>
</li>
<li class="list-group-item ">
<div class="row">
<div class="col-xs-9">Minutas</div>
<div class="col-xs-3"><span class="badge badge-warning">
<asp:Literal ID="LtlTotalMinutas" runat="server">0</asp:Literal></span> </div>
</div>
</li>
<li class="list-group-item ">
<div class="row">
<div class="col-xs-9">Proyectos</div>
<div class="col-xs-3"><span class="badge badge-danger">
<asp:Literal ID="LtlTotalProyetos" runat="server">0</asp:Literal></span></div>
</div>
</li>
</ul>
</div>
</div>
<div class="scroller-footer">
</div>
</div>
</div>
</div>
</div>
<%-- DIRECTORIO TELEFONICO --%>
@@ -739,7 +775,8 @@
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Folio Fiscal">
<ItemTemplate>
<div style="white-space: nowrap">
<asp:Label runat="server" Text='<%# Eval("FolioFiscal")%>'> </asp:Label></div>
<asp:Label runat="server" Text='<%# Eval("FolioFiscal")%>'> </asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Serie Folio" DataField="SerieFolio" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Center" />
@@ -789,7 +826,8 @@
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Folio Fiscal">
<ItemTemplate>
<div style="white-space: nowrap">
<asp:Label runat="server" Text='<%# Eval("FolioFiscal")%>'> </asp:Label></div>
<asp:Label runat="server" Text='<%# Eval("FolioFiscal")%>'> </asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Serie Folio" DataField="SerieFolio" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Center" />
@@ -1105,7 +1143,7 @@
<asp:Label CssClass="unoaunoold" runat="server" Text='<%# Eval("RespuestaOld")%>'> </asp:Label>
<br />
<asp:TextBox ID="TxtComentarios" CssClass="form-control" Text='<%# Eval("Respuesta")%>' TextMode="MultiLine" Rows="3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvTxtComentarios" runat="server" ControlToValidate="TxtComentarios" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Campo es necesario, por favor ingréselo." ValidationGroup="GrpGuardarUnoAUno"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RfvTxtComentarios" runat="server" ControlToValidate="TxtComentarios" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Responda el cuestionario para poder guardar" ValidationGroup="GrpGuardarUnoAUno"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoTxtCFecha" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtComentarios" Width="350px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>

View File

@@ -1419,13 +1419,22 @@ Partial Class Inventarios_TraspasoAlmacen
CargaRecepcion()
End Sub
Private Sub CargaRecepcion()
Dim ObjInventarios As New ClsInventarios
Dim Dtt As DataTable = Nothing
FolioBusqueda = If(TxtFolioRecepcion.Text = "", -1, TxtFolioRecepcion.Text.ToEntero)
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, -1, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, FolioBusqueda, UsuarioActual.CveEmpresa) Then
Dtt = ObjInventarios.DtResultados.FiltraParametros(String.Format("CveTipoAlmacenDestino <> 4"))
Else
Alert("Ocurrió un error al consultar los movimientos transitorios. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Dtt = Nothing
End If
ObjInventarios.Dispose()
If Dtt IsNot Nothing Then
If TxtFolioRecepcion.Text.Trim <> "" Then
CveMovimientoSalida = ObjInventarios.DtResultados.FiltroPrimeroValor("CveMovimiento", "").ToEntero
@@ -1433,14 +1442,7 @@ Partial Class Inventarios_TraspasoAlmacen
CveAlmacenDestino = DdlAlmacenRecepcion.SelectedValue.ToEntero
CveAlmacenTransitorio = DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero
'CveUsuarioResponsable = DdlResponsableRecepcion.SelectedValue.ToEntero
Else
Alert("Ocurrió un error al consultar los movimientos transitorios. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Dtt = Nothing
End If
ObjInventarios.Dispose()
If Dtt IsNot Nothing Then
GvDatosRecepcion.DataSource = Dtt
GvDatosRecepcion.DataBind()

View File

@@ -135,7 +135,14 @@
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkUpUsuarios" OnClick="LnkUpUsuarios_Click" Visible="true" runat="server"><i class="fa fa-pencil"></i> Actualizar Participantes</asp:LinkButton></li>
<asp:LinkButton ID="LnkUpUsuarios" OnClick="LnkUpUsuarios_Click" Visible="true" runat="server"><i class="fa fa-pencil"></i> Actualizar Participantes</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkOpenModalAsistencia" OnClick="LnkOpenModalAsistencia_Click" Visible="false" runat="server"><i class="fa fa-users"></i>Asistencia</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkEnviarCorreo" OnClick="LnkEnviarCorreo_Click" Visible="false" runat="server"><i class="fa fa-paper-plane-o"></i>Enviar correo</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
@@ -430,7 +437,7 @@
</asp:GridView>
</div>
<div class="modal-footer">
<asp:LinkButton ID="BtnReasignarTarea" OnClick="BtnReasignarTarea_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<%--<asp:LinkButton ID="BtnReasignarTarea" OnClick="BtnReasignarTarea_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>--%>
<asp:LinkButton ID="BtnUpMiembros" OnClick="BtnUpMiembros_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<button data-dismiss="modal" class="btn btn-danger">Cancelar</button>
</div>
@@ -438,7 +445,62 @@
</asp:UpdatePanel>
</div>
</div>
<div id='<%= iddivTomarAsistencia %>' class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpTomarASistencia" class="modal-content " tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span> </button>
<h4 class="modal-title" style="text-align: left">
<asp:Literal ID="Literal1" runat="server">Actualizar miembros</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="text-right" style="">
<asp:TextBox ID="TxtTomarAsistencia" runat="server" CssClass="form-control input-sm" Style="display: inline-block; margin-right: -20px; width: 150px;" CausesValidation="true"></asp:TextBox>
<a href="javascript:;" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GvTomarAsistencia" runat="server" AutoGenerateColumns="false" DataKeyNames="CveUsuario,Nombre,CveRol" data-txtBuscador='<%# string.Format("#{0}",TxtTomarAsistencia.ClientID) %>'
CssClass="table table-striped table-advance table-hover Widthall ScrollAD ConBuscador" GridLines="None" data-height="200"
OnRowDataBound="GvTomarAsistencia_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" Width="50px" />
<HeaderTemplate>
Asistió
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="ChkAsistio" CssClass="ChkOk" Checked='<%# Eval("Asistencia").ToString()=="1" %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>Usuario</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlNombre" runat="server" Text='<%# Eval("Nombre") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>Rol</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlRol" runat="server" Text='<%# Eval("Rol") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div class="form-group form-md-line-input">
<asp:TextBox ID="TxtAsistentesExternos" runat="server" CssClass="form-control" CausesValidation="true" TextMode="MultiLine" Rows="2"></asp:TextBox>
<asp:Label runat="server" Text="Externos" AssociatedControlID="TxtAsistentesExternos"></asp:Label>
</div>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkUpAsistencia" OnClick="LnkUpAsistencia_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<button data-dismiss="modal" class="btn btn-danger">Cancelar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<script src="/Metronic/assets/global/plugins/ckeditor/ckeditor.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">

View File

@@ -11,8 +11,10 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
{
#region Propiedades
public const string iddivAgregarTema = "divModalAgregartema";
public const string iddivAgregarTema = "divModalAgregartema";
public const string iddivTomarAsistencia = "iddivTomarAsistencia";
public const string iddivAgregarMiembros = "iddivAgregarMiembros";
public int CveEventoMinuta { get { return ViewState["CveEventoMinuta"] != null ? ViewState["CveEventoMinuta"].ToString().ToEntero() : 0; } set { ViewState["CveEventoMinuta"] = value; } }
public int RCveEvento { get { return ViewState["RCveEvento"] != null ? ViewState["RCveEvento"].ToString().ToEntero() : 0; } set { ViewState["RCveEvento"] = value; } }
public int RCveEventoPadre { get { return ViewState["RCveEventoPadre"] != null ? ViewState["RCveEventoPadre"].ToString().ToEntero() : 0; } set { ViewState["RCveEventoPadre"] = value; } }
public bool EsNuevo { get { return Convert.ToBoolean(ViewState["EsNuevo"]); } set { ViewState["EsNuevo"] = value; } }
@@ -30,18 +32,19 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
cargaUsuarios();
if (Request["CveEvento"] != null)
{
RCveEvento = Request["CveEvento"].ToString().ToEntero();
{
RCveEvento = Request["CveEvento"].ToString().ToEntero();
}
if (Request["CveEventoPadre"] != null)
{
RCveEventoPadre = Request["CveEventoPadre"].ToString().ToEntero();
RCveEventoPadre = Request["CveEventoPadre"].ToString().ToEntero();
}
if (RCveEvento > 0)
{
LnkEnviarCorreo.Visible = true;
EsNuevo = false;
LnkGuardar.Visible = false;
//LnkGuardar.Visible = false;
loadConvocatoria();
}
}
@@ -79,6 +82,8 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
{
System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0];
CveEventoHijo = drow["CveEvento"].ToString().ToEntero();
CveEventoMinuta = drow["CveEvento"].ToString().ToEntero();
LnkOpenModalAsistencia.Visible = true;
}
if (ObjOI_E.GetEventos2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados.Rows.Count > 0)
{
@@ -87,6 +92,7 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
pnlmiembrosvista.Visible = true;
TxtAsunto.Text = drow["Asunto"].ToString();
TxtDescripcion.Text = drow["Descripcion"].ToString();
TxtAsistentesExternos.Text = drow["Asistencia"].ToString();
TxtDuracion.Text = drow["Duracion"].ToString();
DdlPrioridad.SelectedValueExist(drow["Prioridad"].ToString());
txtFechaI.Text = string.Format("{0:dd/MM/yyyy HH:mm}", drow["FechaInicio"]);
@@ -99,7 +105,7 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
CveUsuarioDe = drow["CveUsuarioDe"].ToString().ToEntero();
int CveEventoEstatus = drow["CveEventoEstatus"].ToString().ToEntero();
bool permisoeditar = UsuarioActual.CveUsuario == CveUsuarioDe || UsuarioActual.CveUsuario == CveUsuarioIng;
LnkIniciar.Visible = permisoeditar && (CveEventoHijo <=0);
LnkIniciar.Visible = permisoeditar && (CveEventoHijo <= 0);
HypIrMinuta.Visible = (CveEventoHijo > 0);
HypIrMinuta.NavigateUrl = string.Format("/OI/MinutaDetalle.aspx?CveEvento={0}", CveEventoHijo);
TxtAsunto.Enabled = permisoeditar;
@@ -197,7 +203,6 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
this.RegistraScript(string.Format("$('#{0}').modal()", iddivAgregarMiembros));
LtlTituloUsuarios.Text = "Actualizar miembros";
BtnUpMiembros.Visible = true;
BtnReasignarTarea.Visible = false;
DdlModera.SelectedValueExist(CveUsuarioDe.ToString());
foreach (GridViewRow gvRow in GVUsuarios.Rows)
{
@@ -209,8 +214,8 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
chkCCpara.Enabled = true;
if ( (CveUsuario == CveUsuarioDe))
{
if ((CveUsuario == CveUsuarioDe))
{
if (CveUsuario == CveUsuarioDe)
{
chkCCpara.Checked = true;
@@ -234,8 +239,8 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
{
if (gvRow.RowType == DataControlRowType.DataRow)
{
int CveUsuario = gvRow.DataKey("CveUsuario").ToString().ToEntero();
CheckBox chkCCpara = gvRow.FCCheckBox("ChkCCP");
int CveUsuario = gvRow.DataKey("CveUsuario").ToString().ToEntero();
CheckBox chkCCpara = gvRow.FCCheckBox("ChkCCP");
if (chkCCpara.Checked)
{
listaCCP.Add(CveUsuario);
@@ -271,84 +276,85 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
protected void LnkGuardar_Click(object sender, EventArgs e)
{
string errorMessage = "";
if (EsNuevo)
int cveUsuarioDe = DdlModerador.SelectedValue.ToEntero();
List<int> listaCCP = new List<int>();
int cveUsuarioPara = -1;
//string Nombrepara = "";
string Nombrede = "";
foreach (GridViewRow gvRow in GVUsuariosB.Rows)
{
int cveUsuarioDe = DdlModerador.SelectedValue.ToEntero();
List<int> listaCCP = new List<int>();
int cveUsuarioPara = -1;
//string Nombrepara = "";
string Nombrede = "";
foreach (GridViewRow gvRow in GVUsuariosB.Rows)
if (gvRow.RowType == DataControlRowType.DataRow)
{
if (gvRow.RowType == DataControlRowType.DataRow)
int CveUsuario = gvRow.DataKey("CveUsuario").ToString().ToEntero();
CheckBox chkCCpara = gvRow.FCCheckBox("ChkCCP");
if (CveUsuario == cveUsuarioDe)
{
int CveUsuario = gvRow.DataKey("CveUsuario").ToString().ToEntero();
CheckBox chkCCpara = gvRow.FCCheckBox("ChkCCP");
if (CveUsuario == cveUsuarioDe)
{
Nombrede = gvRow.DataKey("Nombre").ToString();
}
if (chkCCpara.Checked)
{
listaCCP.Add(CveUsuario);
//cveUsuarioDe = CveUsuario;
}
Nombrede = gvRow.DataKey("Nombre").ToString();
}
if (chkCCpara.Checked)
{
listaCCP.Add(CveUsuario);
//cveUsuarioDe = CveUsuario;
}
}
OITipoEventos cveTipoEvento = OITipoEventos.Convocatorias;
string asunto = TxtAsunto.Text;
string descripcion = TxtDescripcion.Text;
int prioridad = DdlPrioridad.SelectedValue.ToEntero();
string fechaInicio = "";
if (txtFechaI.Text.ToDateTimeExcat().Year <= 1999)
}
OITipoEventos cveTipoEvento = OITipoEventos.Convocatorias;
string asunto = TxtAsunto.Text;
string descripcion = TxtDescripcion.Text;
int prioridad = DdlPrioridad.SelectedValue.ToEntero();
string fechaInicio = "";
if (txtFechaI.Text.ToDateTimeExcat().Year <= 1999)
{
if (txtFechaI.Text.ToDateTimeExcat("dd/MM/yyyy").Year <= 1999)
{
if (txtFechaI.Text.ToDateTimeExcat("dd/MM/yyyy").Year <= 1999)
{
errorMessage = "No se ingresó una fecha de inicio valida";
errorMessage = "No se ingresó una fecha de inicio valida";
}
else
{
fechaInicio = txtFechaI.Text.ToDateTimeExcat("dd/MM/yyyy").ToString("yyyy/MM/dd HH:mm");
}
}
else
{
fechaInicio = txtFechaI.Text.ToDateTimeExcat().ToString("yyyy/MM/dd HH:mm");
fechaInicio = txtFechaI.Text.ToDateTimeExcat("dd/MM/yyyy").ToString("yyyy/MM/dd HH:mm");
}
string fechaFin = "";
if (txtFechaF.Text.ToDateTimeExcat().Year <= 1999)
}
else
{
fechaInicio = txtFechaI.Text.ToDateTimeExcat().ToString("yyyy/MM/dd HH:mm");
}
string fechaFin = "";
DateTime dfechaF;
if ((dfechaF=txtFechaF.Text.ToDateTimeExcat()).Year <= 1999)
{
if ((dfechaF = txtFechaF.Text.ToDateTimeExcat("dd/MM/yyyy")).Year <= 1999)
{
if (txtFechaF.Text.ToDateTimeExcat("dd/MM/yyyy").Year <= 1999)
{
errorMessage = "No se ingresó una fecha fin valida";
errorMessage = "No se ingresó una fecha fin valida";
}
else
{
fechaFin = string.Format("{0:yyyy/MM/dd} 23:59", txtFechaF.Text.ToDateTimeExcat("dd/MM/yyyy"));
}
}
else
{
fechaFin = txtFechaF.Text.ToDateTimeExcat().ToString("yyyy/MM/dd HH:mm");
fechaFin = string.Format("{0:yyyy/MM/dd} 23:59", dfechaF);
}
int cveRevision = DdlTema.SelectedValue.ToEntero();
string archivoname = "";
string rutaarchivoOri = "";
}
else
{
fechaFin = dfechaF.ToString("yyyy/MM/dd HH:mm");
}
int cveRevision = DdlTema.SelectedValue.ToEntero();
string archivoname = "";
string rutaarchivoOri = "";
int cveUsuarioIng = UsuarioActual.CveUsuario;
int cveEmpresa = UsuarioActual.CveEmpresa;
bool Continuar = false;
int Folio = -1;
int CveEvento = -1;
if (cveUsuarioDe <= 0)
{
errorMessage = "Asegúrese de seleccionar al menos un miembro \"C C Para\"";
}
int cveUsuarioIng = UsuarioActual.CveUsuario;
int cveEmpresa = UsuarioActual.CveEmpresa;
int Folio = -1;
int CveEvento = -1;
if (cveUsuarioDe <= 0)
{
errorMessage = "Asegúrese de seleccionar al menos un miembro \"C C Para\"";
}
if (EsNuevo)
{
bool Continuar = false;
if (errorMessage.Length == 0)
{
@@ -356,7 +362,7 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
using (ClsOIEventos objOI = new ClsOIEventos())
{
objOI.IniciaTransacSQL();
Continuar = objOI.AddOI_Eventos2(cveTipoEvento, asunto, descripcion, prioridad, cveUsuarioDe, cveUsuarioPara, fechaInicio, fechaFin, cveRevision, archivoname, listaCCP, chkList, cveUsuarioIng, cveEmpresa, CorreoExterno: TxtCorreoExterno.Text, Acuerdos: TxtOrdendeldia.Text.Replace("< ", "<"), Lugar: TxtLugar.Text,CveEventoPadre: (RCveEventoPadre>0? RCveEventoPadre:-1),Duracion:TxtDuracion.Text);
Continuar = objOI.AddOI_Eventos2(cveTipoEvento, asunto, descripcion, prioridad, cveUsuarioDe, cveUsuarioPara, fechaInicio, fechaFin, cveRevision, archivoname, listaCCP, chkList, cveUsuarioIng, cveEmpresa, CorreoExterno: TxtCorreoExterno.Text, Acuerdos: TxtOrdendeldia.Text.Replace("< ", "<"), Lugar: TxtLugar.Text, CveEventoPadre: (RCveEventoPadre > 0 ? RCveEventoPadre : -1), Duracion: TxtDuracion.Text);
CveEvento = objOI.CveEvento;
Folio = objOI.Folio;
@@ -367,7 +373,8 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
if (Continuar)
{
objOI.Commit();
ObjEventosCorreo o = objOI.objCorreo;
enviarConvocatoria(CveEvento);
//ObjEventosCorreo o = objOI.objCorreo;
//string mailbody = MailgetBodyNuevatarea(o.Folio, o.Link, o.Asunto, o.Descripcion, string.Format("{0:dd/MM/yyyy}", fechaInicio.ToDateTime()), string.Format("{0:HH:mm horas}", fechaInicio.ToDateTime()), string.Format("{0:dd/MM/yyyy}", fechaFin.ToDateTime()), string.Format("{0:HH:mm horas}", fechaFin.ToDateTime()), o.Prioridad, o.Tema, Nombrede, Nombrepara);
//EnviarCorreo(UsuarioActual.Empresa, o.AsuntoCorreo, mailbody, o.mailPara, "");
}
@@ -400,77 +407,29 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
}
else
{
bool Continuar = true;
using (ClsOIEventos objOI = new ClsOIEventos())
{
objOI.IniciaTransacSQL();
Continuar = objOI.UP_Eventos2(RCveEvento, asunto, descripcion, prioridad, fechaInicio, fechaFin, cveRevision, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
if (Continuar)
{
//string asunto = TxtAsunto.Text;
//string descripcion = TxtDescripcion.Text;
//int prioridad = DdlPrioridad.SelectedValue.ToEntero();
//string fechaInicio = "";
//if (txtFechaI.Text.ToDateTimeExcat().Year <= 1999)
//{
// if (txtFechaI.Text.ToDateTimeExcat("dd/MM/yyyy").Year <= 1999)
// {
// errorMessage = "No se ingresó una fecha de inicio valida";
// }
// else
// {
// fechaInicio = txtFechaI.Text.ToDateTimeExcat("dd/MM/yyyy").ToString("yyyy/MM/dd HH:mm");
// }
//}
//else
//{
// fechaInicio = txtFechaI.Text.ToDateTimeExcat().ToString("yyyy/MM/dd HH:mm");
//}
//string fechaFin = "";
//if (txtFechaF.Text.ToDateTimeExcat().Year <= 1999)
//{
// if (txtFechaF.Text.ToDateTimeExcat("dd/MM/yyyy").Year <= 1999)
// {
// errorMessage = "No se ingresó una fecha fin valida";
// }
// else
// {
// fechaFin = string.Format("{0:yyyy/MM/dd} 23:59", txtFechaF.Text.ToDateTimeExcat("dd/MM/yyyy"));
// }
//}
//else
//{
// fechaFin = txtFechaF.Text.ToDateTimeExcat().ToString("yyyy/MM/dd HH:mm");
//}
//int cveRevision = DdlTema.SelectedValue.ToEntero();
//bool Continuar = true;
//using (ClsOIEventos objOI = new ClsOIEventos())
//{
// objOI.IniciaTransacSQL();
// Continuar = objOI.UP_Eventos2(RCveEvento, asunto, descripcion, prioridad, fechaInicio, fechaFin, cveRevision, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
// if (Continuar)
// {
// objOI.Commit();
// string Nombrede = "";
// string Nombrepara = "";
// System.Data.DataTable dt = get_GlobalDTUsuarios(CveUsuario: CveUsuarioDe, CveEmpresa: UsuarioActual.CveEmpresa);
// if (dt.Rows.Count > 0)
// {
// Nombrede = dt.Rows[0]["Nombre"].ToString();
// }
// dt = get_GlobalDTUsuarios(CveUsuario: CveUsuarioDe, CveEmpresa: UsuarioActual.CveEmpresa);
// if (dt.Rows.Count > 0)
// {
// Nombrepara = dt.Rows[0]["Nombre"].ToString();
// }
// ObjEventosCorreo o = objOI.objCorreo;
// string mailbody = MailgetBodyNuevatarea(o.Folio, o.Link, o.Asunto, o.Descripcion, string.Format("{0:dd/MM/yyyy}", fechaInicio.ToDateTime()), string.Format("{0:HH:mm} horas", fechaInicio.ToDateTime()), string.Format("{0:dd/MM/yyyy}", fechaFin.ToDateTime()), string.Format("{0:HH:mm} horas", fechaFin.ToDateTime()), o.Prioridad, o.Tema, Nombrede, Nombrepara, "Tarea Actualizada");
// //string mailbody = MailgetBodyActualizartarea(o.Folio, o.Link, o.Asunto, o.Descripcion, o.Fechai, o.Fechaf, o.Prioridad, o.Tema);
// EnviarCorreo(UsuarioActual.Empresa, o.AsuntoCorreo, mailbody, o.mailPara, "");
// }
// else
// {
// objOI.RollBack();
// Continuar = false;
// }
//}
Continuar= objOI.UpdateEventoMinuta(asunto, descripcion, TxtOrdendeldia.Text.Replace("< ", "<"), dfechaF, "-1", RCveEvento);
}
if (Continuar)
{
objOI.Commit();
enviarConvocatoria(RCveEvento);
Alert("Convocatoria actualizada");
}
else
{
objOI.RollBack();
Continuar = false;
}
}
}
if (errorMessage.Length > 0)
@@ -534,8 +493,8 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0];
ObjOI_E.IniciaTransacSQL();
Continuar = ObjOI_E.AddOI_Eventos2(OITipoEventos.Minuta, drow["Asunto"].ToString(), drow["descripcion"].ToString(), drow["Prioridad"].ToString().ToEntero(), drow["cveUsuarioDe"].ToString().ToEntero(),
drow["cveUsuarioPara"].ToString().ToEntero(), string.Format("{0:yyyy/MM/dd HH:mm}", drow["fechaInicio"]),string.Format("{0:yyyy/MM/dd HH:mm}", drow["fechaFin"]), drow["cveRevision"].ToString().ToEntero(), "",
LCveUsuarioCCP, new List<string>(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CorreoExterno: drow["CorreoExterno"].ToString(), Lugar: drow["Lugar"].ToString(),CveEventoPadre:RCveEvento);
drow["cveUsuarioPara"].ToString().ToEntero(), string.Format("{0:yyyy/MM/dd HH:mm}", drow["fechaInicio"]), string.Format("{0:yyyy/MM/dd HH:mm}", drow["fechaFin"]), drow["cveRevision"].ToString().ToEntero(), "",
LCveUsuarioCCP, new List<string>(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CorreoExterno: drow["CorreoExterno"].ToString(), Lugar: drow["Lugar"].ToString(), CveEventoPadre: RCveEvento);
CveEvento = ObjOI_E.CveEvento;
Folio = ObjOI_E.Folio;
if (CveEvento == 0)
@@ -557,13 +516,226 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
}
if (Continuar)
{
this.Alert("Se ha agregadó la nueva convocatoria", ModExtensiones.TipoMensaje.MsgInformacion, string.Format("location.replace(\"/OI/MinutaDetalle.aspx?CveEvento={0}\");", CveEvento));
CveEventoMinuta = CveEvento;
LnkOpenModalAsistencia.Visible = true;
UpAcciones.Update();
this.Alert(string.Format("Se ha iniciado la minuta<br /> para ir a la minuta <a href=\"/OI/MinutaDetalle.aspx?CveEvento={0}\">click aquí</a>", CveEvento), ModExtensiones.TipoMensaje.ToastInformacion, "", 0);
LnkOpenModalAsistencia_Click(null,null);
}
}
protected void BtnReasignarTarea_Click(object sender, EventArgs e)
protected void LnkOpenModalAsistencia_Click(object sender, EventArgs e)
{
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
GvTomarAsistencia.DataSource = null;
if (ObjOI_E.GetEventosUsuario2(CveEventoMinuta, UsuarioActual.CveEmpresa)) { GvTomarAsistencia.DataSource = ObjOI_E.DtResultados; }
}
GvTomarAsistencia.DataBind();
UpTomarASistencia.Update();
RegistraScript(string.Format("$('#{0}').modal();", iddivTomarAsistencia));
}
protected void LnkUpAsistencia_Click(object sender, EventArgs e)
{
List<int> listaasistencia = new List<int>();
foreach (GridViewRow gvRow in GvTomarAsistencia.Rows)
{
if (gvRow.RowType == DataControlRowType.DataRow)
{
int CveUsuario = gvRow.DataKey("CveUsuario").ToString().ToEntero();
CheckBox ChkAsistio = gvRow.FCCheckBox("ChkAsistio");
if (ChkAsistio.Checked)
{
listaasistencia.Add(CveUsuario);
}
}
}
bool continuar = false;
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
continuar = (ObjOI_E.UPMinutasAsistentes(CveEventoMinuta, UsuarioActual.CveEmpresa, TxtAsistentesExternos.Text, UsuarioActual.CveUsuario, listaasistencia));
}
if (continuar)
{
if (CveEventoMinuta > 0)
{
Alert(string.Format("se ingresó la asistencia correctamente.<br /> para ir a la minuta <a href=\"/OI/MinutaDetalle.aspx?CveEvento={0}\">click aquí</a>", CveEventoMinuta));
}
else
{
Alert("se ingresó la asistencia correctamente.");
}
RegistraScript(string.Format("$('#{0}').modal('hide');", iddivTomarAsistencia));
}
}
protected void GvTomarAsistencia_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.CssClass = "items";
}
}
private string GetDominio(string addstr = "")
{
return string.Format("{0}/{1}", HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""), addstr);
}
private string MailgetBodyConvocatoria(int RCveEvento)
{
int Folio = 0; string Link = ""; string Asunto = ""; string Acuerdos = ""; string Descripcion = ""; DateTime DFechai = DateTime.MinValue; DateTime DFechaf = DateTime.MinValue;
string UsuarioDe = "";
string UsuarioPara = "";
string UsuarioDeAbr = "";
System.Data.DataTable dttareas;
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
if (ObjOI_E.GetEventos2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados.Rows.Count > 0)
{
System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0];
UsuarioDe = drow["NombreRegistro"].ToString();
Folio = drow["Folio"].ToString().ToEntero();
Link = GetDominio(string.Format("OI/ConvocatoriaDetalle.aspx?CveEvento={0}", RCveEvento));
Asunto = drow["Asunto"].ToString();
Descripcion = drow["Descripcion"].ToString();
Acuerdos = drow["Acuerdos"].ToString();
DateTime.TryParse(drow["FechaInicio"].ToString(), out DFechai);
DateTime.TryParse(drow["FechaFin"].ToString(), out DFechaf);
//OIE.[CveEvento], OIE.[CveTipoEvento], OIE.[Folio], OIE.[Asunto], OIE.[Descripcion], OIE.[Prioridad], OIE.[CveUsuarioDe], OIE.[CveUsuarioPara],
//OIE.[CveEventoEstatus], OIE.[FechaInicio], OIE.[FechaFin], OIE.[FechaRealTermino], OIE.[CveRevision], OIE.[Archivo], OIE.[FechaIng],
//OIE.[CveUsuarioIng], OIE.[CveEmpresa], OIE.[CveUsuarioModifico], OIE.[Avance] NombreRegistro
}
ObjOI_E.GetEventos2(-1, UsuarioActual.CveEmpresa, RCveEvento);
dttareas = ObjOI_E.DtResultados;
}
if (UsuarioDe != null)
{
string[] str = UsuarioDe.Split(' ');
if (str.Length > 0 && str[0].Length > 0)
{
UsuarioDeAbr = str[0].Substring(0, 1).ToUpper();
}
if (str.Length > 1 && str[1].Length > 0)
{
UsuarioDeAbr = string.Format("{0}{1}", UsuarioDeAbr, str[1].Substring(0, 1).ToUpper());
}
}
string UsuariParaAbr = "";
if (UsuarioPara != null)
{
string[] str = UsuarioPara.Split(' ');
if (str.Length > 0 && str[0].Length > 0)
{
UsuariParaAbr = str[0].Substring(0, 1).ToUpper();
}
if (str.Length > 1 && str[1].Length > 0)
{
UsuariParaAbr = string.Format("{0}{1}", UsuariParaAbr, str[1].Substring(0, 1).ToUpper());
}
}
StringBuilder StrMail = new StringBuilder();
StrMail.Append("<html><head><meta charset=\"UTF-8\"></head><body>");
StrMail.Append(" <div style=\"text-align: center;\">");
StrMail.Append(" <div style=\"display: inline-block; width: 800px; text-align: left;\">");
StrMail.Append(" <div style=\"padding: 25px 10px 5px 10px; color: #6C6C6C; font-size: 40px; font-weight: bold;\">SIG Notificaciones</div>");
StrMail.Append(" <div style=\"border: 1px solid #ED7D31;\"></div>");
StrMail.Append(" <div style=\"padding: 10px 10px; text-align: center;\">");
StrMail.Append(" <table style=\"width: 100%\">");
StrMail.Append(" <tr>");
StrMail.Append(" <td style=\"width: 60%; text-align:left;\" >");
StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Moderador:</span>");
StrMail.Append($" <span style=\"color: #ED7D31; font-size: 22px;font-weight: bold;\">{UsuarioDeAbr}</span>");
StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{UsuarioDe}</span><br />");
StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Fecha:</span>");
StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{DFechai: dd} de {DFechai: MMMM yyyy HH:mm}</span><br />");
StrMail.Append(" </td>");
StrMail.Append(" <td style=\"width: 20%;\">");
StrMail.Append(" <span style=\"color: #8877A9; font-size: 25px; font-weight: bold;\">Convocatoria </span>");
StrMail.Append(" </td>");
StrMail.Append(" <td style=\"width: 100px;\">");
StrMail.Append(" <img src=\"Bell.png\" style=\"width: 100px;height: 100px;\">");
StrMail.Append(" </td>");
StrMail.Append(" </tr>");
StrMail.Append(" </table>");
StrMail.Append(" <div style=\"text-align: left;color:#262626\">");
StrMail.Append("");
StrMail.Append(" <div style=\"background-color: #D9D9D9; padding: 5px;\">");
StrMail.Append($" <span style=\"font-size: 32px; \">{Asunto}</span>");
StrMail.Append(" </div>");
StrMail.Append(" <div style=\"background-color: #D9D9D9; padding: 5px; padding: 5px; padding-bottom: 25px;\">");
StrMail.Append(" <span style=\"font-size: 18px; font-weight: bold;\">Folio:</span>");
StrMail.Append($" <span style=\"font-size: 18px;\">{Folio}</span>");
StrMail.Append(" </div>");
StrMail.Append(" <div style=\"background-color: #D9D9D9; padding: 5px; padding-bottom: 40px;\">");
StrMail.Append($" <span style=\"font-size: 18px;\">{Descripcion}</span>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append(" <br />");
StrMail.Append(" <div style=\"background-color: #D0CECE; padding: 5px;\">");
StrMail.Append(" <span style=\"font-size: 20px; color: #70AD47; font-weight: bold;\">ORDEN DEL DÍA</span>");
StrMail.Append(" </div>");
StrMail.Append(" <div style=\"text-align: left;color:#262626\">");
StrMail.Append(Acuerdos);
StrMail.Append(" </div>");
StrMail.Append(" <br />");
StrMail.Append(" <br />");
StrMail.Append(" <br />");
StrMail.Append($" <a href=\"{Link}\" style=\"padding: 10px 20px; text-align: center;\">Minuta</a>");
StrMail.Append(" <br />");
StrMail.Append(" <br />");
StrMail.Append(" <div>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append("</html></body>");
return StrMail.ToString();
}
private void enviarConvocatoria(int RCveEvento)
{
string Body;
Body = MailgetBodyConvocatoria(RCveEvento);
string ArrayCC = "";
//ViewState("Para") = GlobalDTUsuarios(CveUsuarioIng)(0)("correo").ToString;
//ViewState("Asunto") = string.Format("SIG - Minuta {0}", TxtAsunto.Text);
//ViewState("Body") = Body;
//System.Threading.Thread Hilo = new System.Threading.Thread(MandaCorreo);
//Hilo.Start();
string abre = "";
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
if (ObjOI_E.GetEventosUsuario2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados != null && ObjOI_E.DtResultados.Rows.Count > 0)
{
foreach (System.Data.DataRow item in ObjOI_E.DtResultados.Rows)
{
if (item["Correo"].ToString().Trim().Length > 0)
ArrayCC = string.Format("{0}{1}{2}", ArrayCC, abre, item["Correo"].ToString().Trim());
abre = ";";
}
}
}
List<ClsSisMail.ArchivoMail> LSRutasMail = new List<ClsSisMail.ArchivoMail>();
ClsSisMail.ArchivoMail mailfile = new ClsSisMail.ArchivoMail { Ruta = string.Format("{0}Imagenes\\Bell.png", ModExtensiones.DirectorioBaseEmpresas), NombreArchivo = "Bell.png" };
LSRutasMail.Add(mailfile);
ClsSisMail.ArchivoMail itemMail = new ClsSisMail.ArchivoMail();
ClsSisMail Mail = new ClsSisMail();
Mail.SendMail(EmpresaNotificaciones, get_GlobalDTUsuarios(UsuarioActual.CveUsuario).Rows[0]["correo"].ToString() + TxtCorreoExterno.Text, TxtAsunto.Text, Body, CCP: ArrayCC, Archivos: LSRutasMail);
}
protected void LnkEnviarCorreo_Click(object sender, EventArgs e)
{
enviarConvocatoria(RCveEvento);
Alert("Se Envió por correo la convocatoria", ModExtensiones.TipoMensaje.MsgInformacion);
}
}

View File

@@ -519,7 +519,7 @@
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="LnkAgregarAgenda" OnClick="LnkAgregarAgenda_Click" CssClass="btn btn-default" runat="server">Agregar</asp:LinkButton>
<asp:LinkButton ID="LnkAgregarAgenda" OnClick="LnkAgregarAgenda_Click" ValidationGroup="GrpAgenda" CssClass="btn btn-default" runat="server">Agregar</asp:LinkButton>
</div>
</div>
</div>
@@ -528,12 +528,12 @@
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtAgendaAsunto" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvAgendaAsunto" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAgendaAsunto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvAgendaAsunto" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAgendaAsunto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgenda"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Asunto:" AssociatedControlID="TxtAgendaAsunto"></asp:Label>
</div>
<div class="form-group form-md-line-input">
<asp:TextBox ID="TxtAgendaDescripcion" runat="server" CssClass="form-control" CausesValidation="true" TextMode="MultiLine" Rows="2"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvAgendaDescripcion" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAgendaDescripcion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvAgendaDescripcion" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAgendaDescripcion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgenda"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Descripción" AssociatedControlID="TxtAgendaDescripcion"></asp:Label>
</div>
@@ -547,7 +547,7 @@
<div class="col-sm-3">
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
<asp:TextBox ID="txtAgendaFechaI" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px "></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvAgendaFechaI" runat="server" ControlToValidate="txtAgendaFechaI" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvAgendaFechaI" runat="server" ControlToValidate="txtAgendaFechaI" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpAgenda"></asp:RequiredFieldValidator>
<asp:Label AssociatedControlID="txtAgendaFechaI" runat="server" Text="Fecha Inicio"></asp:Label>
<%--<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999 99:99" MaskType="DateTime" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>--%>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="rfvAgendaFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
@@ -569,7 +569,7 @@
<div class="col-sm-3" style="display: none;">
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
<asp:TextBox ID="txtAgendaFechaF" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px " placeholder=""></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvAgendaFechaF" runat="server" ControlToValidate="txtAgendaFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RfvAgendaFechaF" runat="server" ControlToValidate="txtAgendaFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpAgenda"></asp:RequiredFieldValidator>
<asp:Label AssociatedControlID="txtAgendaFechaF" runat="server" Text="Fecha Fin"></asp:Label>
<%--<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999 99:99" MaskType="DateTime" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>--%>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="RfvAgendaFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
@@ -583,7 +583,7 @@
<asp:ListItem Text="Media" Value="2" class="itemmedia"></asp:ListItem>
<asp:ListItem Text="Alta" Value="3" class="itemalta"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvAgendaPrioridad" runat="server" ControlToValidate="DdlAgendaPrioridad" Display="None" ErrorMessage="El campo <b>''Prioridad''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RfvAgendaPrioridad" runat="server" ControlToValidate="DdlAgendaPrioridad" Display="None" ErrorMessage="El campo <b>''Prioridad''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgenda"></asp:RequiredFieldValidator>
<asp:Label runat="server" AssociatedControlID="DdlAgendaPrioridad">Prioridad:</asp:Label>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" TargetControlID="RfvAgendaPrioridad" HighlightCssClass="vco" Width="300px"></ajax:ValidatorCalloutExtender>
</div>

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,20 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepReuniones.aspx.cs" Inherits="OI_RepReuniones" %>
<%@ Import Namespace="Extensiones" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.nowhitespace{
white-space : nowrap;
}
th{
text-align:left;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reuniones
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
@@ -26,7 +36,7 @@
<ajax:TabPanel ID="TabReuniones" runat="server">
<HeaderTemplate>
Reuniones
Convocatorias
</HeaderTemplate>
<ContentTemplate>
@@ -35,7 +45,7 @@
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate">
<div class="tools">
<asp:Button ID="Button1" runat="server" Text="Consultar" OnClick="Button1_Click" class="btn btn-primary" />
<asp:Button ID="BtnCargarReunion" runat="server" Text="Consultar" OnClick="BtnCargarReunion_Click" class="btn btn-primary" />
</div>
<div class="titlefiltros caption ">
<ul class="list-inline text-size-12">
@@ -75,21 +85,33 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:GridView ID="GVConvocatoria" Width="100%" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Registros" ShowHeaderWhenEmpty="true"
<asp:GridView ID="GVConvocatoria" Width="100%" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Registros" ShowHeaderWhenEmpty="true" DataKeyNames="CveEvento"
CssClass="table table-striped table-advance table-hover Widthall" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="FechaInicio" DataFormatString="{0:yyyy/MM/dd HH:mm}" ItemStyle-Width="100" />
<asp:TemplateField HeaderText="Asunto">
<asp:BoundField HeaderText="Fecha" DataField="FechaInicio" DataFormatString="{0:dd/MM/yyyy HH:mm}" ItemStyle-CssClass="nowhitespace" ItemStyle-Width="100" />
<asp:TemplateField HeaderText="Asunto / Tema">
<ItemTemplate>
<a href='<%# Eval("CveEvento","/OI/ConvocatoriaDetalle.aspx?CveEvento={0}")%>'> <%#Eval("Asunto")%></a>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Estatus" DataField="EventoEstatus" />
<asp:BoundField HeaderText="Moderador" DataField="UsuarioDe" />
<asp:BoundField HeaderText="Tema" DataField="Revision" />
<asp:BoundField HeaderText="Lugar" />
<asp:TemplateField>
<%--<asp:BoundField HeaderText="Tema" DataField="Revision" />--%>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Lugar">
<ItemTemplate>
<%--<asp:Literal ID="LtlParticipantes" runat="server" Text='<%# Eval("Lugar")%>'></asp:Literal>--%>
<asp:Literal ID="LtlLugar" runat="server" Text='<%# Eval("Lugar")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="30" >
<ItemTemplate>
<asp:HyperLink ID="hypIrMinuta" Visible='<%# Eval("CveEventoHijo").ToString().ToEntero() >0 %>' NavigateUrl='<%# Eval("CveEventoHijo","/OI/MinutaDetalle.aspx?CveEvento={0}")%>' runat="server" CssClass="btn btn-circle btn-sm blue" data-toggle="tooltip" title="ir a minuta">Ir</asp:HyperLink>
<asp:LinkButton ID="LnkAddMinuta" runat="server" OnClick="LnkAddMinuta_Click" Visible='<%# !(Eval("CveEventoHijo").ToString().ToEntero() >0) %>' CssClass="btn btn-circle btn-sm green" data-toggle="tooltip" title="Iniciar minuta"><i class="fa fa-plus"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="30">
<ItemTemplate>
<asp:LinkButton ID="LnkEnviarRecordatorio" runat="server" OnClick="LnkEnviarRecordatorio_Click" CssClass="btn btn-circle btn-sm green" data-toggle="tooltip" title="Enviar recordatorio"><i class="fa fa-paper-plane"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
@@ -44,7 +45,7 @@ public partial class OI_RepReuniones : ClsPaginas
FechaF = TxtCFechaFin.Text.ToDate();
if (ObjProspectos.GetRepEventos(-1, 11, -1, "-1", "-1", -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FechaI, FechaF))
{ GVConvocatoria.DataSource = ObjProspectos.DtResultados.FiltraParametros("","FechaInicio DESC"); }
{ GVConvocatoria.DataSource = ObjProspectos.DtResultados.FiltraParametros("", "FechaInicio DESC"); }
}
GVConvocatoria.DataBind();
@@ -135,10 +136,232 @@ public partial class OI_RepReuniones : ClsPaginas
UpContenido.Update();
}
protected void Button1_Click(object sender, EventArgs e)
protected void BtnCargarReunion_Click(object sender, EventArgs e)
{
CargaDatosReunion();
UpContenido.Update();
}
protected void LnkAddMinuta_Click(object sender, EventArgs e)
{
GridViewRow gvrow = (GridViewRow)((LinkButton)sender).NamingContainer;
int RCveEvento = gvrow.DataKey("CveEvento").ToEntero();
bool Continuar = false;
int CveEvento = -1;
List<int> LCveUsuarioCCP = new List<int>();
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
if (ObjOI_E.GetEventosUsuario2(RCveEvento, UsuarioActual.CveEmpresa))
{
LCveUsuarioCCP.Clear();
foreach (System.Data.DataRow item in ObjOI_E.DtResultados.Select("CveEvento >0"))
{
int CveUsuario = item["CveUsuario"].ToString().ToEntero();
LCveUsuarioCCP.Add(CveUsuario);
}
}
}
int Folio = -1;
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
if (ObjOI_E.GetEventos2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados.Rows.Count > 0)
{
System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0];
ObjOI_E.IniciaTransacSQL();
Continuar = ObjOI_E.AddOI_Eventos2(OITipoEventos.Minuta, drow["Asunto"].ToString(), drow["descripcion"].ToString(), drow["Prioridad"].ToString().ToEntero(), drow["cveUsuarioDe"].ToString().ToEntero(),
drow["cveUsuarioPara"].ToString().ToEntero(), string.Format("{0:yyyy/MM/dd HH:mm}", drow["fechaInicio"]), string.Format("{0:yyyy/MM/dd HH:mm}", drow["fechaFin"]), drow["cveRevision"].ToString().ToEntero(), "",
LCveUsuarioCCP, new List<string>(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CorreoExterno: drow["CorreoExterno"].ToString(), Lugar: drow["Lugar"].ToString(), CveEventoPadre: RCveEvento);
CveEvento = ObjOI_E.CveEvento;
Folio = ObjOI_E.Folio;
if (CveEvento == 0)
{
Continuar = false;
}
if (Continuar) { Continuar = ObjOI_E.UpdateEstatusEvento2(2, -1, RCveEvento, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); }
if (Continuar)
{
ObjOI_E.Commit();
ObjEventosCorreo o = ObjOI_E.objCorreo;
}
else
{
ObjOI_E.RollBack();
Continuar = false;
}
}
}
if (Continuar)
{
BtnCargarReunion_Click(null, null);
this.Alert(string.Format("Se ha iniciado la minuta<br /> para ir a la minuta <a href=\"/OI/MinutaDetalle.aspx?CveEvento={0}\">click aquí</a>", CveEvento), ModExtensiones.TipoMensaje.ToastInformacion, "", 0);
}
}
protected void LnkEnviarRecordatorio_Click(object sender, EventArgs e)
{
GridViewRow gvrow = (GridViewRow)((LinkButton)sender).NamingContainer;
int RCveEvento = gvrow.DataKey("CveEvento").ToEntero();
enviarConvocatoria(RCveEvento);
Alert("se ha enviado la convocatoria",ModExtensiones.TipoMensaje.ToastInformacion);
}
private string GetDominio(string addstr = "")
{
return string.Format("{0}/{1}", HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""), addstr);
}
private void enviarConvocatoria(int RCveEvento)
{
string Body;
Asuntoconvocatoria = "Convocatoria: ";
Body = MailgetBodyConvocatoria(RCveEvento);
string ArrayCC = "";
//ViewState("Para") = GlobalDTUsuarios(CveUsuarioIng)(0)("correo").ToString;
//ViewState("Asunto") = string.Format("SIG - Minuta {0}", TxtAsunto.Text);
//ViewState("Body") = Body;
//System.Threading.Thread Hilo = new System.Threading.Thread(MandaCorreo);
//Hilo.Start();
string abre = "";
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
if (ObjOI_E.GetEventosUsuario2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados != null && ObjOI_E.DtResultados.Rows.Count > 0)
{
foreach (System.Data.DataRow item in ObjOI_E.DtResultados.Rows)
{
if (item["Correo"].ToString().Trim().Length > 0)
ArrayCC = string.Format("{0}{1}{2}", ArrayCC, abre, item["Correo"].ToString().Trim());
abre = ";";
}
}
}
List<ClsSisMail.ArchivoMail> LSRutasMail = new List<ClsSisMail.ArchivoMail>();
ClsSisMail.ArchivoMail mailfile = new ClsSisMail.ArchivoMail { Ruta = string.Format("{0}Imagenes\\Bell.png", ModExtensiones.DirectorioBaseEmpresas), NombreArchivo = "Bell.png" };
LSRutasMail.Add(mailfile);
ClsSisMail.ArchivoMail itemMail = new ClsSisMail.ArchivoMail();
ClsSisMail Mail = new ClsSisMail();
Mail.SendMail(EmpresaNotificaciones, get_GlobalDTUsuarios(UsuarioActual.CveUsuario).Rows[0]["correo"].ToString() , Asuntoconvocatoria, Body, CCP: ArrayCC, Archivos: LSRutasMail);
}
private string Asuntoconvocatoria;
private string MailgetBodyConvocatoria(int RCveEvento)
{
int Folio = 0; string Link = ""; string Asunto = ""; string Acuerdos = ""; string Descripcion = ""; DateTime DFechai = DateTime.MinValue; DateTime DFechaf = DateTime.MinValue;
string UsuarioDe = "";
string UsuarioPara = "";
string UsuarioDeAbr = "";
System.Data.DataTable dttareas;
using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{
if (ObjOI_E.GetEventos2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados.Rows.Count > 0)
{
System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0];
UsuarioDe = drow["NombreRegistro"].ToString();
Folio = drow["Folio"].ToString().ToEntero();
Link = GetDominio(string.Format("OI/ConvocatoriaDetalle.aspx?CveEvento={0}", RCveEvento));
Asuntoconvocatoria = string.Format("Convocatoria: {0}", drow["Asunto"].ToString());
Asunto = drow["Asunto"].ToString();
Descripcion = drow["Descripcion"].ToString();
Acuerdos = drow["Acuerdos"].ToString();
DateTime.TryParse(drow["FechaInicio"].ToString(), out DFechai);
DateTime.TryParse(drow["FechaFin"].ToString(), out DFechaf);
//OIE.[CveEvento], OIE.[CveTipoEvento], OIE.[Folio], OIE.[Asunto], OIE.[Descripcion], OIE.[Prioridad], OIE.[CveUsuarioDe], OIE.[CveUsuarioPara],
//OIE.[CveEventoEstatus], OIE.[FechaInicio], OIE.[FechaFin], OIE.[FechaRealTermino], OIE.[CveRevision], OIE.[Archivo], OIE.[FechaIng],
//OIE.[CveUsuarioIng], OIE.[CveEmpresa], OIE.[CveUsuarioModifico], OIE.[Avance] NombreRegistro
}
ObjOI_E.GetEventos2(-1, UsuarioActual.CveEmpresa, RCveEvento);
dttareas = ObjOI_E.DtResultados;
}
if (UsuarioDe != null)
{
string[] str = UsuarioDe.Split(' ');
if (str.Length > 0 && str[0].Length > 0)
{
UsuarioDeAbr = str[0].Substring(0, 1).ToUpper();
}
if (str.Length > 1 && str[1].Length > 0)
{
UsuarioDeAbr = string.Format("{0}{1}", UsuarioDeAbr, str[1].Substring(0, 1).ToUpper());
}
}
string UsuariParaAbr = "";
if (UsuarioPara != null)
{
string[] str = UsuarioPara.Split(' ');
if (str.Length > 0 && str[0].Length > 0)
{
UsuariParaAbr = str[0].Substring(0, 1).ToUpper();
}
if (str.Length > 1 && str[1].Length > 0)
{
UsuariParaAbr = string.Format("{0}{1}", UsuariParaAbr, str[1].Substring(0, 1).ToUpper());
}
}
StringBuilder StrMail = new StringBuilder();
StrMail.Append("<html><head><meta charset=\"UTF-8\"></head><body>");
StrMail.Append(" <div style=\"text-align: center;\">");
StrMail.Append(" <div style=\"display: inline-block; width: 800px; text-align: left;\">");
StrMail.Append(" <div style=\"padding: 25px 10px 5px 10px; color: #6C6C6C; font-size: 40px; font-weight: bold;\">SIG Notificaciones</div>");
StrMail.Append(" <div style=\"border: 1px solid #ED7D31;\"></div>");
StrMail.Append(" <div style=\"padding: 10px 10px; text-align: center;\">");
StrMail.Append(" <table style=\"width: 100%\">");
StrMail.Append(" <tr>");
StrMail.Append(" <td style=\"width: 60%; text-align:left;\" >");
StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Moderador:</span>");
StrMail.Append($" <span style=\"color: #ED7D31; font-size: 22px;font-weight: bold;\">{UsuarioDeAbr}</span>");
StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{UsuarioDe}</span><br />");
StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Fecha:</span>");
StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{DFechai: dd} de {DFechai: MMMM yyyy HH:mm}</span><br />");
StrMail.Append(" </td>");
StrMail.Append(" <td style=\"width: 20%;\">");
StrMail.Append(" <span style=\"color: #8877A9; font-size: 25px; font-weight: bold;\">Convocatoria </span>");
StrMail.Append(" </td>");
StrMail.Append(" <td style=\"width: 100px;\">");
StrMail.Append(" <img src=\"Bell.png\" style=\"width: 100px;height: 100px;\">");
StrMail.Append(" </td>");
StrMail.Append(" </tr>");
StrMail.Append(" </table>");
StrMail.Append(" <div style=\"text-align: left;color:#262626\">");
StrMail.Append("");
StrMail.Append(" <div style=\"background-color: #D9D9D9; padding: 5px;\">");
StrMail.Append($" <span style=\"font-size: 32px; \">{Asunto}</span>");
StrMail.Append(" </div>");
StrMail.Append(" <div style=\"background-color: #D9D9D9; padding: 5px; padding: 5px; padding-bottom: 25px;\">");
StrMail.Append(" <span style=\"font-size: 18px; font-weight: bold;\">Folio:</span>");
StrMail.Append($" <span style=\"font-size: 18px;\">{Folio}</span>");
StrMail.Append(" </div>");
StrMail.Append(" <div style=\"background-color: #D9D9D9; padding: 5px; padding-bottom: 40px;\">");
StrMail.Append($" <span style=\"font-size: 18px;\">{Descripcion}</span>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append(" <br />");
StrMail.Append(" <div style=\"background-color: #D0CECE; padding: 5px;\">");
StrMail.Append(" <span style=\"font-size: 20px; color: #70AD47; font-weight: bold;\">ORDEN DEL DÍA</span>");
StrMail.Append(" </div>");
StrMail.Append(" <div style=\"text-align: left;color:#262626\">");
StrMail.Append(Acuerdos);
StrMail.Append(" </div>");
StrMail.Append(" <br />");
StrMail.Append(" <br />");
StrMail.Append(" <br />");
StrMail.Append($" <a href=\"{Link}\" style=\"padding: 10px 20px; text-align: center;\">Minuta</a>");
StrMail.Append(" <br />");
StrMail.Append(" <br />");
StrMail.Append(" <div>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append(" </div>");
StrMail.Append("</html></body>");
return StrMail.ToString();
}
}

File diff suppressed because one or more lines are too long

View File

@@ -55,7 +55,8 @@
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkSeguir" OnClick="LnkSeguir_Click" CssClass="" runat="server"><i class ="fa fa-eye"></i>Seguir</asp:LinkButton></li>
<asp:LinkButton ID="LnkSeguir" OnClick="LnkSeguir_Click" CssClass="" runat="server"><i class ="fa fa-eye"></i>Seguir</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
@@ -185,7 +186,7 @@
<asp:Label CssClass="unoaunoold" runat="server" Text='<%# Eval("RespuestaOld")%>'> </asp:Label>
<br />
<asp:TextBox ID="TxtComentarios" CssClass="form-control" Text='<%# Eval("Respuesta")%>' TextMode="MultiLine" Rows="3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvTxtComentarios" runat="server" ControlToValidate="TxtComentarios" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Campo es necesario, por favor ingréselo." ValidationGroup="GrpGuardarUnoAUno"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RfvTxtComentarios" runat="server" ControlToValidate="TxtComentarios" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Responda el cuestionario para poder guardar." ValidationGroup="GrpGuardarUnoAUno"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoTxtCFecha" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtComentarios" Width="350px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>
@@ -217,7 +218,7 @@
</div>
<div class="modal-body">
<ajax:TabContainer ID="TabContainerSeguir" ClientIDMode="static" CssClass="tab-wizard" runat="server" Width="100%" OnActiveTabChanged="TabContainerSeguir_ActiveTabChanged">
<ajax:TabContainer ID="TabContainerSeguir" CssClass="tab-wizard" runat="server" Width="100%" OnActiveTabChanged="TabContainerSeguir_ActiveTabChanged" AutoPostBack="true">
<ajax:TabPanel ID="TabPreguntas" runat="server" HeaderText="Preguntas">
<ContentTemplate>
@@ -265,12 +266,12 @@
<asp:BoundField HeaderText="Vinculada a" DataField="PreguntaVinculo" />
<asp:TemplateField ItemStyle-Width="30">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Editar" OnClick="LnkEditarPregunta_Click" CssClass="btn btn-circle btn-sm green btn-xs" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
<asp:LinkButton data-toggle="tooltip" title="Editar" OnClick="LnkEditarPregunta_Click" CssClass="btn btn-circle green btn-xs" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="30">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="LnkEliminarPregunta_Click" CssClass="btn btn-circle btn-sm red btn-xs" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar la Pregunta?" data-btn-ok-label="si" />
<asp:LinkButton runat="server" OnClick="LnkEliminarPregunta_Click" CssClass="btn btn-circle red btn-xs" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar la Pregunta?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>

View File

@@ -213,7 +213,7 @@ public partial class OI_UnoaUno : ClsPaginas
LnkGuardarPregunta.Text = "Actualizar";
LnkCancelarPregunta.Visible = true;
upPreguntas.Update();
openmodalseguir();
//openmodalseguir();
}
protected void LnkCancelarPregunta_Click(object sender, EventArgs e)
{
@@ -221,7 +221,7 @@ public partial class OI_UnoaUno : ClsPaginas
LnkGuardarPregunta.Text = "Guardar";
LnkCancelarPregunta.Visible = false;
upPreguntas.Update();
openmodalseguir();
//openmodalseguir();
}
protected void LnkEliminarPregunta_Click(object sender, EventArgs e)
{
@@ -244,7 +244,7 @@ public partial class OI_UnoaUno : ClsPaginas
Alert("La pregunta se ha eliminado correctamente", ModExtensiones.TipoMensaje.ToastInformacion);
CargarPreguntas();
}
openmodalseguir();
//openmodalseguir();
}
protected void LnkGuardarPregunta_Click(object sender, EventArgs e)
@@ -276,7 +276,7 @@ public partial class OI_UnoaUno : ClsPaginas
LnkCancelarPregunta.Visible = false;
Alert("La pregunta se ha agregado correctamente", ModExtensiones.TipoMensaje.ToastInformacion);
}
openmodalseguir();
//openmodalseguir();
}
#endregion
@@ -285,14 +285,14 @@ public partial class OI_UnoaUno : ClsPaginas
{
using (ClsOIEventos ObjUnoa = new ClsOIEventos())
{
ObjUnoa.GetUnoaUnoCuestionario(-1, UsuarioActual.CveUsuario);
ObjUnoa.GetUnoaUnoCuestionario(-1, UsuarioActual.CveUsuario,UsuarioActual.CveEmpresa );
DtPreguntas = ObjUnoa.DtResultados;
DdlCuestionario.DataSource = ObjUnoa.DtResultados;
}
//GVCuestionario.DataBind();
DdlCuestionario.DataBind();
DdlCuestionario.Items.Insert(0, new ListItem("Seleccione", "-1"));
openmodalseguir();
//openmodalseguir();
}
protected void LnkGuardarCuestionario_Click(object sender, EventArgs e)
{
@@ -323,7 +323,7 @@ public partial class OI_UnoaUno : ClsPaginas
}
else
{
continuar = ObjUnoa.AddUnoaUnoCuestionario(Cuestionario, Comentario, UsuarioActual.CveUsuario, lPreguntas);
continuar = ObjUnoa.AddUnoaUnoCuestionario(Cuestionario, Comentario, UsuarioActual.CveUsuario, lPreguntas, UsuarioActual.CveEmpresa );
msg = "El cuestionario se ha agregado correctamente";
}
}
@@ -334,7 +334,7 @@ public partial class OI_UnoaUno : ClsPaginas
DdlCuestionario_SelectedIndexChanged(null, null);
Alert(msg, ModExtensiones.TipoMensaje.ToastInformacion);
}
openmodalseguir();
//openmodalseguir();
}
@@ -384,7 +384,7 @@ public partial class OI_UnoaUno : ClsPaginas
UpCuestionario.Update();
CargarSeguirA();
UpSeguirA.Update();
openmodalseguir();
//openmodalseguir();
}
//protected void LnkCancelarCuestionario_Click(object sender, EventArgs e)
//{
@@ -516,26 +516,7 @@ public partial class OI_UnoaUno : ClsPaginas
}
openmodalseguir();
}
//protected void LnkEliminarCuestionarioUser_Click(object sender, EventArgs e)
//{
// bool continuar = true;
// int cveUnoaUnoCuestionario = DdlCuestionario.SelectedValue.ToEntero();
// int CveSeguir = DdlUsuario.SelectedValue.ToEntero();
// using (ClsOIEventos ObjUnoa = new ClsOIEventos())
// {
// continuar = ObjUnoa.AddUnoaUnoCuestionario_Usuarios(cveUnoaUnoCuestionario, UsuarioActual.CveUsuario, CveSeguir);
// }
// if (continuar)
// {
// //CcveUnoaUnoCuestionario = -1;
// Alert("El cuestionario se ha eliminado correctamente", ModExtensiones.TipoMensaje.ToastInformacion);
// CargarSeguirA();
// }
// openmodalseguir();
//}
protected void TabContainerSeguir_ActiveTabChanged(object sender, EventArgs e)
@@ -553,7 +534,7 @@ public partial class OI_UnoaUno : ClsPaginas
LnkGuardarSeguirA.Visible = true;
}
}
openmodalseguir();
//openmodalseguir();
UpSeguirA.Update();
}

View File

@@ -1,81 +0,0 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="UnoaUnoConfiguracion.aspx.cs" Inherits="OI_UnoaUnoConfiguracion" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Configuración Uno a Uno
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li ><asp:LinkButton ID = "LinkButton1" OnClick ="LnkAgregarUnoa_Click" runat = "server" ><i class="fa fa-plus"></i>Etiqueta</asp:LinkButton></li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" Runat="Server">
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="C" Runat="Server">
<asp:UpdatePanel ID="upDatosUnoa" runat ="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:GridView ID="GVUnoaUnoEtiqueta" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
datakeynames="CveUnoaUnoEtiqueta,Etiqueta,CveUnoaUnoEtiquetaVinculo,CveGrupo,CveEmpresa,Empresa">
<Columns>
<asp:BoundField HeaderText="Etiqueta" DataField="Etiqueta" />
<asp:TemplateField ItemStyle-Width="50">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Editar" ID="LnkEditar" OnClick="LnkEditarUnoa_Click" CssClass="btn btn-circle btn-sm green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="50">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" OnClick="LnkEliminarUnoa_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el UnoaUnoEtiqueta?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DModalUnoaUnoEtiqueta" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UPModalUnoa" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" >
<div class="modal-header ">
<div class="modal-btn">
</div>
<h4 class="modal-title"><asp:Literal ID="ltlUnoatitulo" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-4 truncate ">Etiqueta</div>
<div class="col-md-8">
<asp:TextBox ID="TxtUnoaetiqueta" CssClass="form-control input-sm " runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvUnoaetiqueta" runat="server" ControlToValidate="TxtUnoaetiqueta" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Etiqueta''</b> es necesario, por favor ingréselo." ValidationGroup="VGMUnoa"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoUnoaetiqueta" runat="server" HighlightCssClass="vco" TargetControlID="RfvUnoaetiqueta"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<div class="col-md-4 truncate ">Vinculo </div>
<div class="col-md-8">
<asp:DropDownList ID="DdlUnoaetiqueta1" CssClass="form-control input-sm select2me " runat="server" DataTextField="Etiqueta" DataValueField="CveUnoaUnoEtiqueta" style="width: 100%" ></asp:DropDownList>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnUnoaADD" OnClick="BtnUnoaADD_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGMUnoa" />
<asp:Button ID="BtnUnoaEdit" OnClick="BtnUnoaEdit_Click" runat="server" Text="Actualizar" CssClass="btn btn-primary" ValidationGroup="VGMUnoa" ></asp:Button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content9" ContentPlaceHolderID="JS" Runat="Server">
</asp:Content>

View File

@@ -1,132 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Extensiones;
public partial class OI_UnoaUnoConfiguracion : ClsPaginas
{
#region Propiedades
private int CcveUnoaUnoEtiqueta
{
get { return (ViewState["CcveUnoaUnoEtiqueta"] == null) ? 0 : Convert.ToInt32(ViewState["CcveUnoaUnoEtiqueta"]); }
set { ViewState["CcveUnoaUnoEtiqueta"] = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaUnoaUnoEtiqueta();
}
}
protected void CargaUnoaUnoEtiqueta()
{
using (ClsOIEventos ObjUnoa = new ClsOIEventos())
{
ObjUnoa.GetUnoaUnoEtiqueta(-1, UsuarioActual.CveEmpresa);
GVUnoaUnoEtiqueta.DataSource = ObjUnoa.DtResultados;
DdlUnoaetiqueta1.DataSource = ObjUnoa.DtResultados;
}
GVUnoaUnoEtiqueta.DataBind();
DdlUnoaetiqueta1.DataBind();
DdlUnoaetiqueta1.Items.Insert(0,new ListItem("Seleccione","-1"));
upDatosUnoa.Update();
}
protected void LimpiaUnoaUnoEtiqueta()
{
TxtUnoaetiqueta.Text = "";
DdlUnoaetiqueta1.SelectedIndex = 0;
UPModalUnoa.Update();
}
protected void LnkEditarUnoa_Click(object sender, EventArgs e)
{
LimpiaUnoaUnoEtiqueta();
ltlUnoatitulo.Text = "Actualizar Etiqueta";
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
CcveUnoaUnoEtiqueta = gvRow.DataKey("CveUnoaUnoEtiqueta").ToEntero();
string etiqueta = gvRow.DataKey("Etiqueta");
int cveUnoaUnoEtiquetaVinculo = gvRow.DataKey("CveUnoaUnoEtiquetaVinculo").ToEntero();
int cveGrupo = gvRow.DataKey("CveGrupo").ToEntero();
int cveEmpresa = gvRow.DataKey("CveEmpresa").ToEntero();
TxtUnoaetiqueta.Text = etiqueta.ToString();
DdlUnoaetiqueta1.SelectedValue = "-1";
DdlUnoaetiqueta1.SelectedValueExist(cveUnoaUnoEtiquetaVinculo.ToString());
this.RegistraScript("$('#DModalUnoaUnoEtiqueta').modal();");
BtnUnoaADD.Visible = false;
BtnUnoaEdit.Visible = true;
UPModalUnoa.Update();
}
protected void LnkAgregarUnoa_Click(object sender, EventArgs e)
{
ltlUnoatitulo.Text = "Agregar Etiqueta";
this.RegistraScript("$('#DModalUnoaUnoEtiqueta').modal();");
LimpiaUnoaUnoEtiqueta();
BtnUnoaADD.Visible = true;
BtnUnoaEdit.Visible = false;
UPModalUnoa.Update();
}
protected void BtnUnoaADD_Click(object sender, EventArgs e)
{
string etiqueta = TxtUnoaetiqueta.Text;
int cveUnoaUnoEtiquetaVinculo = DdlUnoaetiqueta1.SelectedValue.ToEntero();
int cveGrupo = 1;
int cveEmpresa = UsuarioActual.CveEmpresa;
bool Continuar = false;
using (ClsOIEventos ObjUnoa = new ClsOIEventos())
{
Continuar=ObjUnoa.AddUnoaUnoEtiqueta(etiqueta, cveUnoaUnoEtiquetaVinculo, cveGrupo, cveEmpresa);
}
if (Continuar)
{
this.RegistraScript("$('#DModalUnoaUnoEtiqueta').modal('hide');");
LimpiaUnoaUnoEtiqueta();
CargaUnoaUnoEtiqueta();
UPModalUnoa.Update();
this.Alert("La Etiqueta se ha agregado");
}
}
protected void BtnUnoaEdit_Click(object sender, EventArgs e)
{
string etiqueta = TxtUnoaetiqueta.Text;
int cveUnoaUnoEtiquetaVinculo = DdlUnoaetiqueta1.SelectedValue.ToEntero();
int cveGrupo = 1;
int cveEmpresa = UsuarioActual.CveEmpresa;
bool Continuar = false;
using (ClsOIEventos ObjUnoa = new ClsOIEventos())
{
Continuar = ObjUnoa.UpUnoaUnoEtiqueta(CcveUnoaUnoEtiqueta, etiqueta, cveUnoaUnoEtiquetaVinculo, cveGrupo, cveEmpresa);
}
if (Continuar)
{
this.RegistraScript("$('#DModalUnoaUnoEtiqueta').modal('hide');");
LimpiaUnoaUnoEtiqueta();
UPModalUnoa.Update();
CargaUnoaUnoEtiqueta();
this.Alert("La Etiqueta se ha actualizado");
}
}
protected void LnkEliminarUnoa_Click(object sender, EventArgs e)
{
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
CcveUnoaUnoEtiqueta = gvRow.DataKey("CveUnoaUnoEtiqueta").ToEntero();
bool Continuar = false;
using (ClsOIEventos ObjUnoa = new ClsOIEventos())
{
Continuar = ObjUnoa.RemoveUnoaUnoEtiqueta(CcveUnoaUnoEtiqueta);
}
if (Continuar)
{
CargaUnoaUnoEtiqueta();
this.Alert("La Etiqueta se ha Eliminado");
}
}
}

View File

@@ -395,13 +395,13 @@
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input">
<asp:TextBox ID="TxtNoExt" runat="server" CssClass="form-control" MaxLength="15"></asp:TextBox>
<asp:TextBox ID="TxtNoExt" runat="server" CssClass="form-control" MaxLength="40"></asp:TextBox>
<label for="<%= TxtNoExt.ClientID.ToString()%>">No. Ext. </label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input">
<asp:TextBox ID="TxtNoInt" runat="server" CssClass="form-control" MaxLength="15"></asp:TextBox>
<asp:TextBox ID="TxtNoInt" runat="server" CssClass="form-control" MaxLength="50"></asp:TextBox>
<label for="<%= TxtNoInt.ClientID.ToString()%>">No. Int.</label>
</div>
</div>

View File

@@ -2342,12 +2342,12 @@
<label for="<%= TxtCPCliente.ClientID.ToString()%>">Código Postal:</label>
</div>
<div class="form-group form-md-line-input input-iconright col-xs-4">
<asp:TextBox ID="TxtNumExtCliente" CssClass="form-control " runat="server" MaxLength="20" CausesValidation="true"></asp:TextBox>
<asp:TextBox ID="TxtNumExtCliente" CssClass="form-control " runat="server" MaxLength="40" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVNoEC" runat="server" ControlToValidate="TxtNumExtCliente" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Número Exterior''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarCliente"></asp:RequiredFieldValidator>
<label for="<%= TxtNumExtCliente.ClientID.ToString()%>">Número Exterior:</label>
</div>
<div class="form-group form-md-line-input input-iconright col-xs-4">
<asp:TextBox ID="TxtNumIntCliente" CssClass="form-control " runat="server" MaxLength="20" CausesValidation="true"></asp:TextBox>
<asp:TextBox ID="TxtNumIntCliente" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<label for="<%= TxtNumIntCliente.ClientID.ToString()%>">Número Interior:</label>
</div>
</div>

View File

@@ -1,134 +1,161 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepCancelacionesPorRespuesta.aspx.cs" Inherits="Ventas_RepCancelacionesPorRespuesta" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Cancelaciones por Respuesta
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkValidar" OnClick="LnkValidar_Click" runat="server"><i class="fa fa-check"></i>Verificar Cancelaciones</asp:LinkButton></li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
<span class="caption-subject bold uppercase" style="line-height: 2;">Facturas Pendientes Por Respuesta</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 rowpadding">
<div class="row">
<div class="col-md-12">
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
<div style="margin-right: 15px">
<input type="text" id="TxtBusqueda1" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda1','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron solicitudes de cancelación"
DataKeyNames="CveVenta,CveCliente,Folio,TipoDocto,Nombre,FolioFiscal,Total,SubTotal,RFCCliente"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%">
<Columns>
<asp:BoundField HeaderText="Cliente" DataField="Nombre" ItemStyle-Width="25%" />
<asp:BoundField HeaderText="Folio Fiscal" DataField="FolioFiscal" ItemStyle-Width="265px" />
<asp:HyperLinkField HeaderText="Serie Folio" DataTextField="SerieFolio" DataNavigateUrlFields="CveVenta" ItemStyle-Width="100px" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="80px" />
<asp:BoundField HeaderText="Importe" DataField="Total" DataFormatString="{0:N2}" ItemStyle-Width="90px" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Mon" DataField="Abreviatura" ItemStyle-Width="30px" />
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="BtnValidar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
</div>
</div>
</div>
</div>
<div id="DivRefacturar" runat="server" visible="false" class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
<span class="caption-subject bold uppercase" style="line-height: 2;">Facturas Pendientes Por Refacturar</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 rowpadding">
<div class="row">
<div class="col-md-12">
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
<div style="margin-right: 15px">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvRefacturaciones.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvRefacturaciones.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:GridView ID="GvRefacturaciones" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron solicitudes de cancelación"
DataKeyNames="CveVenta,CveCliente,Folio,TipoDocto,Nombre,FolioFiscal,Total,SubTotal,RFCCliente"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%" OnRowDataBound="GvDatos_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Cliente" DataField="Nombre" ItemStyle-Width="25%" />
<asp:BoundField HeaderText="Folio Fiscal" DataField="FolioFiscal" ItemStyle-Width="265px" />
<asp:HyperLinkField HeaderText="Serie Folio" DataTextField="SerieFolio" DataNavigateUrlFields="CveVenta" ItemStyle-Width="100px" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="80px" />
<asp:BoundField HeaderText="Importe" DataField="Total" DataFormatString="{0:N2}" ItemStyle-Width="90px" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Mon" DataField="Abreviatura" ItemStyle-Width="30px" />
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="BtnValidarRefacturacion_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField HeaderText="Refacturación" Text="Refacturar" DataNavigateUrlFields="CveVenta" ItemStyle-Width="100px" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveDevolucion={0}&NuevaFactura=1" />
<%-- <asp:TemplateField ItemStyle-Width="35px" HeaderText="Refacturar">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="BtnRefacturar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>--%>
</Columns>
<RowStyle CssClass="Texto" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
</div>
</div>
</div>
</div>
<asp:Button ID="BtnRefacturarDocumento" runat="server" ClientIDMode="Static" Text="Refacturar Documento" Style="display: none;" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepCancelacionesPorRespuesta.aspx.cs" Inherits="Ventas_RepCancelacionesPorRespuesta" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Cancelaciones por Respuesta
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkValidar" OnClick="LnkValidar_Click" runat="server"><i class="fa fa-check"></i>Verificar Cancelaciones</asp:LinkButton></li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12" style="vertical-align: middle;" align="center">
<div style="z-index: 5; position: relative;">
<div id="DivAdvertencia" clientidmode="Static" runat="server" class="alert alert-warning" style="padding: 5px; margin-bottom: 5px; padding-right: 25px;">
<button type="button" class="close" data-dismiss="alert" style="margin-top: 5px;" aria-hidden="true"></button>
<strong style="font-size: 20px; margin-right: 25px;">Información: </strong>
<asp:Literal Text="Para que el documento se cancele sin aceptación por parte del cliente tendrá que transcurrir 72 horas hábiles" runat="server" ID="LtlAdvertencia"></asp:Literal>
</div>
</div>
</div>
</div>
<div class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
<span class="caption-subject bold uppercase" style="line-height: 2;">Facturas Pendientes Por Respuesta</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 rowpadding">
<div class="row">
<div class="col-md-12">
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
<div style="margin-right: 15px">
<input type="text" id="TxtBusqueda1" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda1','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron solicitudes de cancelación"
DataKeyNames="CveVenta,CveCliente,Folio,TipoDocto,Nombre,FolioFiscal,Total,SubTotal,RFCCliente"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%">
<Columns>
<asp:BoundField HeaderText="Cliente" DataField="Nombre" ItemStyle-Width="25%" />
<asp:BoundField HeaderText="Folio Fiscal" DataField="FolioFiscal" ItemStyle-Width="265px" />
<asp:HyperLinkField HeaderText="Serie Folio" DataTextField="SerieFolio" DataNavigateUrlFields="CveVenta" ItemStyle-Width="100px" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="80px" />
<asp:BoundField HeaderText="Importe" DataField="Total" DataFormatString="{0:N2}" ItemStyle-Width="90px" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Mon" DataField="Abreviatura" ItemStyle-Width="30px" />
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
<asp:BoundField HeaderText="Fecha Solicitud" DataField="FechaCambioEstatus" ItemStyle-Width="160px" />
<asp:BoundField HeaderText="Fecha Cancelacion" DataField="FechaCancelacion" ItemStyle-Width="160px" />
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="BtnValidar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
</div>
</div>
</div>
</div>
<div id="DivRefacturar" runat="server" visible="false" class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
<span class="caption-subject bold uppercase" style="line-height: 2;">Facturas Pendientes Por Refacturar</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 rowpadding">
<div class="row">
<div class="col-md-12">
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
<div style="margin-right: 15px">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvRefacturaciones.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvRefacturaciones.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:GridView ID="GvRefacturaciones" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron solicitudes de cancelación"
DataKeyNames="CveVenta,CveCliente,Folio,TipoDocto,Nombre,FolioFiscal,Total,SubTotal,RFCCliente"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%" OnRowDataBound="GvDatos_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Cliente" DataField="Nombre" ItemStyle-Width="25%" />
<asp:BoundField HeaderText="Folio Fiscal" DataField="FolioFiscal" ItemStyle-Width="265px" />
<asp:HyperLinkField HeaderText="Serie Folio" DataTextField="SerieFolio" DataNavigateUrlFields="CveVenta" ItemStyle-Width="100px" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="80px" />
<asp:BoundField HeaderText="Importe" DataField="Total" DataFormatString="{0:N2}" ItemStyle-Width="90px" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Mon" DataField="Abreviatura" ItemStyle-Width="30px" />
<asp:BoundField HeaderText="Fecha Solicitud" DataField="FechaCambioEstatus" ItemStyle-Width="160px" />
<asp:BoundField HeaderText="Fecha Cancelacion" DataField="FechaCancelacion" ItemStyle-Width="160px" />
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="BtnValidarRefacturacion_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField HeaderText="Refacturación" Text="Refacturar" DataNavigateUrlFields="CveVenta" ItemStyle-Width="100px" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveDevolucion={0}&NuevaFactura=1" />
</Columns>
<RowStyle CssClass="Texto" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
</div>
</div>
</div>
</div>
<asp:Button ID="BtnRefacturarDocumento" runat="server" ClientIDMode="Static" Text="Refacturar Documento" Style="display: none;" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="BtnEnviarMailCancelacion" runat="server" ClientIDMode="Static" Text="Enviar Mail Cliente" Style="display: none;" OnClick="BtnEnviarMailCancelacion_Click" />
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script>
<script type="text/javascript">
function BtnRefacturarDocumento() {
$('#BtnRefacturarDocumento').click();
function BtnRefacturarDocumento() {
$('#BtnRefacturarDocumento').click();
}
</script>
</asp:Content>
function BtnEnviarMailCancelacion() {
$('#BtnEnviarMailCancelacion').click();
}
$(document).ready(function () {
if ($('#DivAdvertencia')) {
$("#DivAdvertencia").pulsate("destroy");
jQuery('#DivAdvertencia').pulsate({
color: "#faebcc"
});
}
});
</script>
</asp:Content>

View File

@@ -10,7 +10,8 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using Extensiones;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms;
public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
{
private DataTable DtVentas
@@ -75,7 +76,16 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
string Nombre = GvRow.DataKey("Nombre");
if (CveVenta > 0)
{
Alert(VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total));
var resp = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total);
if (resp.EnviarAcuse)
{
Alert(resp.Mensaje,TipoMensaje.MsgConfirmacion,"BtnEnviarMailCancelacion();");
}
else
{
Alert(resp.Mensaje);
}
}
CargaDatos();
}
@@ -92,28 +102,53 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
string Folio = GvRow.DataKey("Folio");
string TipoDocto = GvRow.DataKey("TipoDocto");
string Nombre = GvRow.DataKey("Nombre");
if (CveVenta > 0)
{
Alert(VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total, true));
var respuesta = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total, true);
Alert(respuesta.Mensaje);
CargaDatos();
//if (respuesta.IrARefacturar)
//{
// Server.Transfer(respuesta.LigaRefacturacion);
//}
//else
//{
// Alert(respuesta.Mensaje);
// CargaDatos();
//}
}
CargaDatos();
}
private string VerificarVigenciaSAT(int CveVenta, int CveCliente, string Folio, string TipoDocto, string uuid, string emisor, string receptor, string total, bool EsRefacturacion = false)
private MRespuestaSAT VerificarVigenciaSAT(int CveVenta, int CveCliente, string Folio, string TipoDocto, string uuid, string emisor, string receptor, string total, bool EsRefacturacion = false)
{
var retorno = new MRespuestaSAT()
{
Mensaje = "",
EnviarAcuse = false,
LigaRefacturacion = "",
IrARefacturar = false
};
var sb = new StringBuilder();
var CancelacionAcuse = "";
var CancelacionFecha = DateTime.Now;
string CancelacionAcuse = "";
DateTime CancelacionFecha = DateTime.Now;
int CveEstatus = 4;
try
{
var resp = Timbrado.VerificarVigenciaSAT(uuid, UsuarioActual.Empresa.RFC, receptor, total, UsuarioActual.Empresa.FacturaProduccion);
var resp = Timbrado.VerificarVigenciaSAT(uuid, UsuarioActual.Empresa.RFC, receptor, total, true);
if (resp != null)
{
if (resp.Estado == null)
{
sb.Append("No se pudo comprobar el estado de la factura. El servicio del sat no esta disponible");
return sb.ToString();
retorno.Mensaje = sb.ToString();
return retorno;
}
sb.AppendFormat("Folio Fiscal: {0} <br/>", uuid);
@@ -124,12 +159,22 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
if (!UsuarioActual.Empresa.FacturaProduccion && (string.IsNullOrEmpty(uuid) || uuid.Contains("test")))
{
var FueCancelado = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC).Mensaje;
var respCancelacion = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion);
sb.AppendFormat("{0} <br/>", FueCancelado);
if (CveEstatus.Contiene(4, 5) && EsRefacturacion)
sb.AppendFormat("{0} <br/>", respCancelacion.Mensaje);
if (!respCancelacion.HuboError)
{
Response.Redirect(string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta));
retorno.EnviarAcuse = true;
sb.Append("El Documento se canceló correctamente.");
sb.Append($"</br> <a href='/Compras/PopUpVerFactura.aspx?P={Encripta($"OP=CAN&CVEVTA={CveVenta}")}' class='Texto' target='_blank'>Imprimir Acuse</a>");
sb.Append("</br></br> ¿Desea enviar el Acuse de Cancelación al Cliente?");
}
if (respCancelacion.CveEstatus.Contiene(4, 5) && EsRefacturacion)
{
retorno.IrARefacturar = true;
retorno.LigaRefacturacion = string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta);
}
}
else
@@ -137,30 +182,28 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
if ((resp.EsCancelable.ToUpper() == "NO CANCELABLE"))
{
sb.Append("Esta factura no es cancelable.");
return sb.ToString();
retorno.Mensaje = sb.ToString();
return retorno;
}
if (resp.Estado.ToUpper().Trim() == "CANCELADO" || resp.EstatusCancelacion.ToUpper() == "PLAZO VENCIDO")
{
CveEstatus = 5;
var solicitud = new WSGF.Service1SoapClient();
var acuse = solicitud.GetAcuse(emisor, "rene.molina@adsistemas.mx", "rene2018", uuid);
if (acuse.Estado == 0)
var respCancelacion = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion);
sb.AppendFormat("{0} <br/>", respCancelacion.Mensaje);
if (!respCancelacion.HuboError)
{
var xmlAcuse = new System.Xml.XmlDocument();
xmlAcuse.LoadXml(DecodeBase64(acuse.CfdiB64));
CancelacionAcuse = xmlAcuse.GetElementsByTagName("SignatureValue")[0].InnerText;
CancelacionFecha = xmlAcuse.SelectSingleNode("Acuse").Attributes["Fecha"].Value.ToDate();
sb.Append("El Documento se canceló correctamente.");
sb.Append($"</br> <a href='/Compras/PopUpVerFactura.aspx?P={Encripta($"OP=CAN&CVEVTA={CveVenta}")}' class='Texto' target='_blank'>Imprimir Acuse</a>");
sb.Append("</br></br> ¿Desea enviar el Acuse de Cancelación al Cliente?");
}
var FueCancelado = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion).Mensaje;
sb.AppendFormat("{0} <br/>", FueCancelado);
if (CveEstatus.Contiene(4, 5) && EsRefacturacion)
if (respCancelacion.CveEstatus.Contiene(4, 5) && EsRefacturacion)
{
Response.Redirect(string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta));
retorno.IrARefacturar = true;
retorno.LigaRefacturacion = string.Format("Ventas.aspx?CveDevolucion={0}&NuevaFactura=1", CveVenta);
}
}
else if (resp.EstatusCancelacion.ToUpper() == "SOLICITUD RECHAZADA")
@@ -183,16 +226,19 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
else
{
sb.Append("No se pudo comprobar la vigencia de la factura.");
return sb.ToString();
retorno.Mensaje = sb.ToString();
return retorno;
}
}
catch (Exception ex)
{
sb.Append("Error al consumir el servicio: " + ex.Message);
return sb.ToString();
sb.Append("Error al consumir el servicio: " + ex.Message);
retorno.Mensaje = sb.ToString();
return retorno;
}
return sb.ToString();
retorno.Mensaje = sb.ToString();
return retorno;
}
private Modelos.Factura.MCancelacionVentaMensaje CancelarDocumento(int CveVenta, int CveEstatus, int CveCliente, string Folio, string FolioFiscal, string CancelacionAcuse, DateTime CancelacionFecha, string TipoComprobante, double Total, int CvePACCancelacion, bool EsRefacturacion = false)
{
@@ -209,181 +255,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
return retorno;
}
//private int GenerarPolizaAC(ClsContPAQi ObjAC, int CveVenta, string Folio, int CveCliente, string TipoComprobante, DateTime Fecha, bool CancelacionIngreso = false)
//{
// int CtaCliente = 0;
// int OrdenPago = 0;
// string NombreCliente = "";
// var ObjClientes = new ClsClientes();
// if (ObjClientes.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa))
// {
// CtaCliente = ObjClientes.IdCtaContClientes;
// NombreCliente = ObjClientes.NombreComercial;
// }
// ObjClientes.Dispose();
// var ObjVentas = new ClsVentas();
// if (ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa))
// {
// if (ObjVentas.DtResultados.Rows.Count > 0)
// {
// OrdenPago = ObjVentas.DtResultados.Rows[0]["Num3"].ToEntero();
// }
// }
// int Retorno = 0;
// int IDPoliza = 0;
// bool ErrorAC = false;
// string Concepto = string.Format("GD {0}", NombreCliente);
// int Paridad = 1;
// bool TipoMovto = false;
// if (CancelacionIngreso)
// {
// Concepto = string.Format("Cancelación GD {0}", NombreCliente);
// Paridad = -1;
// TipoMovto = true;
// }
// var TipoPoliza = TipoComprobante.Contiene("OP", "Com") ? 3 : 1;
// DataRow dr = null;
// int CtaISSSTESON = 643;
// int CtaISPT = 1745;
// var AC = new ClsAC();
// //var ObjAC = new ClsContPAQi(UsuarioActual.Empresa);
// //ObjAC.IniciaTransacSQL();
// IDPoliza = ObjAC.AddPoliza(TipoPoliza, Concepto, 0, 0, UsuarioActual.CveUsuario, Fecha);
// if (IDPoliza > 0)
// {
// if (TipoComprobante == "OP")
// {
// //Orden de PAGO
// if (OrdenPago == 1)
// {
// //ISSSTESON
// if (ObjAC.AddMovimiento(IDPoliza, CtaCliente, false, (Paridad * 0d), "", Concepto, 0, Fecha, ""))
// {
// if (!ObjAC.AddMovimiento(IDPoliza, CtaISSSTESON, true, (Paridad * 0d), "", Concepto, 0, Fecha, ""))
// {
// ErrorAC = true;
// }
// }
// else
// {
// ErrorAC = true;
// }
// }
// else
// {
// //ISPT
// if (ObjAC.AddMovimiento(IDPoliza, CtaCliente, false, (Paridad * 0d), "", Concepto, 0, Fecha, ""))
// {
// if (!ObjAC.AddMovimiento(IDPoliza, CtaISPT, true, (Paridad * 0d), "", Concepto, 0, Fecha, ""))
// {
// ErrorAC = true;
// }
// }
// else
// {
// ErrorAC = true;
// }
// }
// }
// else
// {
// //NORMAL
// DataTable Detalles = null;
// DataTable DTPresupuestoIngresos = null;
// if (ObjVentas.GetVentaDetalle(CveVenta))
// {
// Detalles = ObjVentas.DtResultados.Copy();
// }
// if (AC.GetPresupuestoIngresos(-1, DateTime.Now.Year, true, UsuarioActual.CveEmpresa))
// {
// DTPresupuestoIngresos = AC.DtResultados.Copy();
// }
// if (Detalles != null && DTPresupuestoIngresos != null)
// {
// var query = from gvr in Detalles.AsEnumerable()
// group gvr by gvr["CvePresupuestoIngreso"].ToString().ToEntero() into g
// select new { TotalImporte = g.Sum((x) => x["Total"].ToString().ToDouble()), CvePresupuestoIngreso = g.Key };
// foreach (var item in query)
// {
// dr = DTPresupuestoIngresos.FiltroPrimero(string.Format("CvePresupuestoIngreso = {0}", item.CvePresupuestoIngreso));
// if (dr != null)
// {
// Concepto = string.Format("{0} - {1}: {2}", NombreCliente, TipoComprobante, Folio);
// if (ObjAC.AddMovimiento(IDPoliza, dr["IdCuentaPorEjecutar"].ToString().ToEntero(), false, (Paridad * item.TotalImporte), "", Concepto, 0, Fecha, ""))
// {
// if (ObjAC.AddMovimiento(IDPoliza, dr["IdCuentaDevengado"].ToString().ToEntero(), true, (Paridad * item.TotalImporte), "", Concepto, 0, Fecha, ""))
// {
// // CARGO la deuda del cliente
// if (ObjAC.AddMovimiento(IDPoliza, CtaCliente, TipoMovto, item.TotalImporte, "", Concepto, 0, Fecha, ""))
// {
// // abono,
// if (!ObjAC.AddMovimiento(IDPoliza, dr["IdCuentaMatriz"].ToString().ToEntero(), !TipoMovto, item.TotalImporte, "", Concepto, 0, Fecha, ""))
// {
// ErrorAC = true;
// break;
// }
// }
// else
// {
// ErrorAC = true;
// break;
// }
// }
// else
// {
// ErrorAC = true;
// break;
// }
// }
// else
// {
// ErrorAC = true;
// break;
// }
// }
// else
// {
// ErrorAC = true;
// break;
// }
// }
// }
// else
// {
// ErrorAC = true;
// }
// }
// }
// else
// {
// ErrorAC = true;
// }
// if (!ErrorAC)
// {
// ObjAC.AjustaPoliza(IDPoliza);
// Retorno = IDPoliza;
// }
// else
// {
// Alert("Error al Agregar la Póliza de AC.", TipoMensaje.MsgError);
// }
// AC.Dispose();
// ObjVentas.Dispose();
// return Retorno;
//}
private string DecodeBase64(string strXMLCodificado)
{
try
@@ -429,8 +301,124 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
{
if (e.Row.DBCampo("PuedeRefacturar").ToString().ToEntero() == 0)
{
e.Row.Cells[8].Text = "";
e.Row.Cells[10].Text = "";
}
}
}
public void BtnEnviarMailCancelacion_Click(object sender, EventArgs e)
{
ImprimeCancelacion(CveVenta);
}
public void ImprimeCancelacion(int CveVenta)
{
var Archivo = new System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas + @"Empresas\Grales\Formatos\AcuseCancelacion.rdlc");
if (Archivo.Exists)
{
var ObjFactura = new Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa);
string SelloCancelacion = "";
string FechaCancelacion = "";
DataTable DtDatos = null;
using (ClsVentas ObjVentas = new ClsVentas())
{
if (ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa))
{
DtDatos = ObjVentas.DtResultados.Copy();
DataRow drv = DtDatos.Rows[0];
SelloCancelacion = drv["SelloCancelacion"].ToString();
FechaCancelacion = drv["FechaCancelacion"].ToString().ToDateTime().ToString("dd/MM/yyyy HH:mm:ss");
}
}
List<ReportParameter> parametros = new List<ReportParameter>();
parametros.Add(new ReportParameter("FechaCancelacion", FechaCancelacion.ToString()));
parametros.Add(new ReportParameter("FolioFiscal", ObjFactura.FolioFiscal));
parametros.Add(new ReportParameter("RFCEmisor", UsuarioActual.Empresa.RFC));
parametros.Add(new ReportParameter("SelloCancelacion", SelloCancelacion));
byte[] ObjetoPDF = StreamPDF(@"Empresas\Grales\Formatos\AcuseCancelacion.rdlc", DtDatos, parametros, "AcuseCancelacion" + CveVenta);
List<ClsSisMail.ArchivoMail> LSRutasMail = new List<ClsSisMail.ArchivoMail>();
string Asunto = string.Empty;
string Cuerpo = string.Empty;
StringBuilder sb = new StringBuilder();
if (UsuarioActual.CveEmpresa == 119)
{
sb.Append("<!DOCTYPE html>");
sb.Append("<html>");
sb.Append("<head>");
sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>");
sb.Append(" <title>Acuse De Cancelación</title>");
sb.Append(" <meta charset=\"utf-8\" />");
sb.Append("</head>");
sb.Append("<body>");
sb.Append(" <font face=\"calibri\">");
sb.Append($" Estimado Cliente <b>{ObjFactura.Cliente.Nombre}</b>,<br /><br />");
sb.Append($" Le informamos que Agroquímicos JAM, S.A. DE C.V ha cancelado el CFDI <b>{ObjFactura.SerieFolio}</b>, el cual ha quedado sin Efectos Fiscales y encontrará adjunto en este correo el Acuse de <br />");
sb.Append($" cancelación del SAT.<br />");
sb.Append(" POR LO QUE PEDIMOS ELIMINARLO Y NO INCLUIRLO EN SU CONTABILIDAD, YA QUE PUEDE REPRESENTAR UN PROBLEMA FISCAL PARA USTED O SU EMPRESA CUANDO EL SAT REALICE UNA FUTURA AUDITORIA <br /> ");
sb.Append(" EN SU CONTABILIDAD. </font> ");
sb.Append(" <font face=\"calibri\" size=\"2\">");
sb.Append(" <br /><br /><br /><br /><br />");
sb.Append(" <i>Este correo se generó automaticamente, favor de no responder este mensaje.</i>");
sb.Append(" </font>");
sb.Append("</body>");
sb.Append("</html>");
}
else
{
sb.Append("<!DOCTYPE html>");
sb.Append("<html>");
sb.Append("<head>");
sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>");
sb.Append(" <title>Acuse De Cancelación</title>");
sb.Append(" <meta charset=\"utf-8\" />");
sb.Append("</head>");
sb.Append("<body>");
sb.Append(" <font face=\"calibri\">");
sb.Append($" Estimado Cliente <b>{ObjFactura.Cliente.Nombre}</b>,<br /><br />");
sb.Append($" A través del presente medio la Empresa <b>{UsuarioActual.Empresa.Empresa} - {UsuarioActual.Empresa.RFC}</b>, canceló el documento tipo <b>{ObjFactura.TipodeComprobante}</b> <br />");
sb.Append($" con folio <b>{ObjFactura.SerieFolio}</b> y el Importe de <b>${ObjFactura.Total}</b>. <br /><br />");
sb.Append(" Le hacemos llegar el acuse de cancelación. </font> ");
sb.Append(" <font face=\"calibri\" size=\"2\">");
sb.Append(" <br /><br /><br /><br /><br />");
sb.Append(" <i>Este correo se generó automaticamente, favor de no responder este mensaje.</i>");
sb.Append(" </font>");
sb.Append("</body>");
sb.Append("</html>");
}
Asunto = $"Acuse de Cancelacion {ObjFactura.SerieFolio}";
Cuerpo = sb.ToString();
string DisplayName = "";
if (UsuarioActual.CveEmpresa == 119)
DisplayName = "Facturación Agroquímicos JAM";
LSRutasMail.Add(new ClsSisMail.ArchivoMail() { ArchivoBinario = ObjetoPDF, NombreArchivo = $"AcuseCancelacion{ObjFactura.SerieFolio}.pdf" });
ClsSisMail ObjMail = new ClsSisMail();
if (ObjMail.SendMail(UsuarioActual.Empresa, ObjFactura.Cliente.Mail, Asunto, Cuerpo, "", LSRutasMail, Displayname: DisplayName))
{
Alert("El acuse de cancelación ha sido envíado correctamente.");
}
else
{
Alert("El acuse de cancelación no pudo ser enviado.",TipoMensaje.MsgError);
}
}
}
}
public class MRespuestaSAT
{
public bool EnviarAcuse { get; set; }
public string LigaRefacturacion { get; set; }
public bool IrARefacturar { get; set; }
public string Mensaje { get; set; }
}

View File

@@ -6326,12 +6326,12 @@
<label for="<%= TxtCPCliente.ClientID.ToString()%>">Código Postal:</label>
</div>
<div class="form-group form-md-line-input input-iconright col-xs-4">
<asp:TextBox ID="TxtNumExtCliente" CssClass="form-control " runat="server" MaxLength="20" CausesValidation="true"></asp:TextBox>
<asp:TextBox ID="TxtNumExtCliente" CssClass="form-control " runat="server" MaxLength="40" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVNoEC" runat="server" ControlToValidate="TxtNumExtCliente" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Número Exterior''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarCliente"></asp:RequiredFieldValidator>
<label for="<%= TxtNumExtCliente.ClientID.ToString()%>">Número Exterior:</label>
</div>
<div class="form-group form-md-line-input input-iconright col-xs-4">
<asp:TextBox ID="TxtNumIntCliente" CssClass="form-control " runat="server" MaxLength="20" CausesValidation="true"></asp:TextBox>
<asp:TextBox ID="TxtNumIntCliente" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<label for="<%= TxtNumIntCliente.ClientID.ToString()%>">Número Interior:</label>
</div>
</div>

View File

@@ -10,6 +10,7 @@ Imports System.Security.Cryptography.X509Certificates
Imports System.Globalization
Imports System.Net.Http
Imports Newtonsoft.Json.Linq
Imports System.Diagnostics
Partial Class Ventas
Inherits ClsPaginas
@@ -7011,11 +7012,18 @@ Partial Class Ventas
'End If
'Esquema viejo, evitamos que aparezca por surtir
If ErrorList.Count = 0 Then
'MARCAR VENTA ANTERIOR
If Not ObjInventario.ActualizarEsDevolucionVenta(CveDevolucion, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
'MARCAR VENTA ANTERIOR
If VentaSaldoAlmacenNC <> 0 OrElse DevolucionAlmacenNC = 2 Then
If Not ObjInventario.ActualizarEsDevolucionVenta(ObjFactura.CveVenta, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
End If
End If
End If
End If
@@ -10152,10 +10160,10 @@ Partial Class Ventas
Exit For
Else
ViewState("SeGuardoPrePoliza") = True
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then
ErrorPrepoliza = True
Exit For
End If
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then
ErrorPrepoliza = True
Exit For
End If
'se hace acreditamiento de impuestos
'IVA X TRASLADAR
Dim EsAnticipoEspecial As Boolean = False
@@ -10208,10 +10216,10 @@ Partial Class Ventas
End If
End If
End If
End If
End If
Next
End If
@@ -13289,7 +13297,7 @@ Partial Class Ventas
End If
Else
Alert("Se presento un error al cancelar el complemento.")
Alert("Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>Origen del error: WebService www.sat.gob.mx", TipoMensaje.MsgError)
End If
ObjBanco.Dispose()
@@ -16154,6 +16162,8 @@ Partial Class Ventas
End If
MovDetalle.Dispose()
OcurrioError = Not GeneroMovimientoAlmacen
End If
End If
@@ -16167,7 +16177,7 @@ Partial Class Ventas
End If
Next
OcurrioError = Not GeneroMovimientoAlmacen
End If
End If
@@ -16321,7 +16331,7 @@ Partial Class Ventas
CveMovimientoDetalleEntrada = MovDet("CveMovimientoDetalle").ToString().ToEntero()
End If
If ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, PU, -1, CveSeccionAlmacen:=CVeSeccionAlmacen, Serie:=Serie, Lote:=Lote, FechaCaducidad:=FechaCaducidad, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
If ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, PU, -1, CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, FechaCaducidad:=FechaCaducidad, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
ContadorMovtosDetalles += 1
Else
OcurrioError = True
@@ -17022,7 +17032,21 @@ Partial Class Ventas
Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
Dim RFCReceptor As String = LblRFC.Text.Trim
Dim SWatch As New Stopwatch
SWatch.Start()
Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
SWatch.Stop()
Dim SegundosRespuesta As Double = SWatch.ElapsedMilliseconds / 1000
SegundosRespuesta = SegundosRespuesta.ToEntero
If SegundosRespuesta >= 5 Then
Alert($"Los servicios de validacion del SAT presentan lentitud en la respuesta [{ SegundosRespuesta } s].", TipoMensaje.ToastError, "")
End If
If Vigencia IsNot Nothing Then
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
@@ -17990,17 +18014,30 @@ Partial Class Ventas
Private Function ValidaPagosContado() As Boolean
Dim Retorno = False
Dim AmortizacionNC As Decimal = 0
'SI ES AMORTIZACION POR NOTA DE CREDITO DEBE SUMAR LA TOTALIDAD PARA COMPARAR EL PAGO
If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
For Each gvr As GridViewRow In GVAnticipos.Rows
If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then
AmortizacionNC += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal
End If
Next
End If
Dim TienePagos As Boolean = ((Not (DtPagos Is Nothing OrElse DtPagos.Rows.Count = 0)) AndAlso (DtPagos IsNot Nothing AndAlso DtPagos.Rows.Count > 0)) OrElse AmortizacionNC > 0
'SI LA VENTA ES NUEVA VALIDAR TAMBIEN LOS PAGOS DE CONTADO
If UsuarioActual.CveEmpresa = 141 AndAlso CveVenta <= 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") Then
If Not PermiteCredito AndAlso (DtPagos Is Nothing OrElse DtPagos.Rows.Count = 0) AndAlso TxtTotal.Text.ToDecimal > 0 Then
If Not PermiteCredito AndAlso Not TienePagos AndAlso TxtTotal.Text.ToDecimal > 0 Then
Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia)
Retorno = True
Return Retorno
End If
If Not PermiteCredito AndAlso (DtPagos IsNot Nothing AndAlso DtPagos.Rows.Count > 0) AndAlso TxtTotal.Text.ToDecimal > 0 Then
Dim TotalPago As Decimal = DtPagos.SUM("Importe").ToDecimal()
If Not PermiteCredito AndAlso TienePagos AndAlso TxtTotal.Text.ToDecimal > 0 Then
Dim TotalPago As Decimal = DtPagos.SUM("Importe").ToDecimal() + AmortizacionNC
If TotalPago < TxtTotal.Text.ToDecimal Then
Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia)
@@ -18013,15 +18050,15 @@ Partial Class Ventas
'SI TIENE SALDO PENDIENTE VALIDA SI TIENE PAGOS
If Me.SaldoVenta > 0 Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso (UsuarioActual.Empresa.Funcionalidad(531) = "1") AndAlso (Not PermiteCredito) AndAlso (DtPagos Is Nothing OrElse DtPagos.Rows.Count = 0) And TxtTotal.Text.ToDecimal > 0 Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso (UsuarioActual.Empresa.Funcionalidad(531) = "1") AndAlso (Not PermiteCredito) AndAlso Not TienePagos And TxtTotal.Text.ToDecimal > 0 Then
Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia)
Retorno = True
End If
If UsuarioActual.CveEmpresa = 141 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") Then
If Not PermiteCredito AndAlso DtPagos IsNot Nothing AndAlso DtPagos.Rows.Count > 0 AndAlso TxtTotal.Text.ToDecimal > 0 Then
Dim TotalPago As Decimal = DtPagos.SUM("Importe").ToDecimal()
If Not PermiteCredito AndAlso TienePagos AndAlso TxtTotal.Text.ToDecimal > 0 Then
Dim TotalPago As Decimal = DtPagos.SUM("Importe").ToDecimal() + AmortizacionNC
If TotalPago < TxtTotal.Text.ToDecimal Then
Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia)
@@ -18035,18 +18072,18 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(572) = "1" Then
Dim TotalNC As Decimal = If(ListaNCDesc IsNot Nothing AndAlso ListaNCDesc.Count > 0, LblTotalNC.Text.Trim().ToDecimal(), 0)
If TotalNC > 0 Then
If (DtPagos.SUM("Importe").ToString().ToDecimal + Total - TxtCambio.Text.ToDecimal) > TotalNC Then
If (DtPagos.SUM("Importe").ToString().ToDecimal() + AmortizacionNC + Total - TxtCambio.Text.ToDecimal) > TotalNC Then
Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia)
Retorno = True
End If
Else
If (DtPagos.SUM("Importe").ToString().ToDecimal + Total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then
If (DtPagos.SUM("Importe").ToString().ToDecimal() + AmortizacionNC + Total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then
Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia)
Retorno = True
End If
End If
Else
If (DtPagos.SUM("Importe").ToString().ToDecimal + Total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then
If (DtPagos.SUM("Importe").ToString().ToDecimal() + AmortizacionNC + Total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then
Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia)
Retorno = True
End If
@@ -19165,6 +19202,7 @@ Partial Class Ventas
End If
End If
ObjVentas.Dispose()
End Sub
Private Sub MostrarCondicionesCancelacion()
@@ -19199,7 +19237,19 @@ Partial Class Ventas
Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
Dim RFCReceptor As String = LblRFC.Text.Trim
Dim SWatch As New Stopwatch
SWatch.Start()
Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
SWatch.Stop()
Dim SegundosRespuesta As Double = SWatch.ElapsedMilliseconds / 1000
SegundosRespuesta = SegundosRespuesta.ToEntero
If SegundosRespuesta >= 5 Then
Alert($"Los servicios de validacion del SAT presentan lentitud en la respuesta [{ SegundosRespuesta } s].", TipoMensaje.ToastAdventencia, "")
End If
If Vigencia IsNot Nothing Then
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
Alert("Esta factura no es cancelable.", TipoMensaje.MsgAdvertencia)
@@ -19259,7 +19309,7 @@ Partial Class Ventas
CancelacionAcuse = ObjCancelacion.CancelacionAcuse
CveEstatus = 5
Else
Alert("La factura no se pudo cancelar ante el SAT", TipoMensaje.MsgError)
Alert("Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>Origen del error: WebService www.sat.gob.mx", TipoMensaje.MsgError)
Exit Sub
End If
Else
@@ -19379,6 +19429,8 @@ Partial Class Ventas
Dim resp As Modelos.Factura.MCancelacionVentaMensaje = Nothing
If ObjFacturaCancelacion IsNot Nothing AndAlso ObjFacturaCancelacion.CveVenta > 0 Then
Dim SWatch As New Stopwatch
SWatch.Start()
If EsRefacturacion Then
resp = ObjFacturaCancelacion.CancelarPorRefacturacion()
@@ -19397,16 +19449,25 @@ Partial Class Ventas
resp = ObjFacturaCancelacion.CancelarFactura(ChkDevAlm.Checked, ListaRemisionesCancelar)
End If
SWatch.Stop()
Dim SegundosRespuesta As Double = SWatch.ElapsedMilliseconds / 1000
SegundosRespuesta = SegundosRespuesta.ToEntero
If SegundosRespuesta >= 5 Then
Alert($"Los servicios de cancelación del SAT presentan lentitud en la respuesta [{ SegundosRespuesta } s].", TipoMensaje.ToastAdventencia, "")
End If
If resp.CveEstatus = 5 AndAlso Not EsRefacturacion Then
Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnEnviarMailCancelacion();", TextoConfirmacion:="&nbsp;&nbsp;&nbsp;&nbsp;Si&nbsp;&nbsp;&nbsp;&nbsp;", TextoCancelacion:="&nbsp;&nbsp;&nbsp;&nbsp;<a onclick='Recargar()'>No</>&nbsp;&nbsp;&nbsp;&nbsp;")
Else
If EsRefacturacion Then
If resp.CveEstatus = 20 Then
ObjFacturaCancelacion.Dispose()
Response.Redirect($"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={CveVenta}")
Server.Transfer($"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={CveVenta}")
ElseIf resp.CveEstatus.Contiene(4, 5) Then
ObjFacturaCancelacion.Dispose()
Response.Redirect($"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1")
Server.Transfer($"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1")
Else
Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();")
End If