From 9578d5fe67edae26c43e20a3cf59bb2e5a824d76 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 14 Sep 2020 12:30:14 -0700 Subject: [PATCH 1/8] -- fecha en anexo del catalogo --- App_Code/ClsContPAQi.vb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/App_Code/ClsContPAQi.vb b/App_Code/ClsContPAQi.vb index 860bd5889..aaa18df7f 100644 --- a/App_Code/ClsContPAQi.vb +++ b/App_Code/ClsContPAQi.vb @@ -6231,7 +6231,7 @@ Public Class ClsContPAQi With SqlAdapter.SelectCommand.Parameters .Add("@FechaI", SqlDbType.Date).Value = FechaI - .Add("@FechaF", SqlDbType.Date).Value = FechaF + .Add("@FechaF", SqlDbType.DateTime).Value = String.Format("{0} 23:59:59", FechaF.ToShortDateString).ToDateTime .Add("@IdCuentaPadre", SqlDbType.Int).Value = IdCuenta .Add("@OpcionCuentas", SqlDbType.Int).Value = OpcionCuentas .Add("@Tipo", SqlDbType.Int).Value = TipoMovtos @@ -10585,7 +10585,7 @@ Public Class ClsContPAQi StrSQL.Append(" ( ") StrSQL.Append(" @IdCtaSup INT, ") StrSQL.Append(" @FechaI DATE, ") - StrSQL.Append(" @FechaF DATE, ") + StrSQL.Append(" @FechaF DATETIME, ") StrSQL.Append(" @Tipo INT, ") StrSQL.Append(" @SegmentoNegocio INT = -1 ") StrSQL.Append(" ) ") @@ -10776,7 +10776,7 @@ Public Class ClsContPAQi StrSQL.Append(" ( ") StrSQL.Append(" @IdCtaSup INT, ") StrSQL.Append(" @FechaI DATE, ") - StrSQL.Append(" @FechaF DATE, ") + StrSQL.Append(" @FechaF DATETIME, ") StrSQL.Append(" @Tipo INT, ") StrSQL.Append(" @SegmentoNegocio INT = -1 ") StrSQL.Append(" ) ") @@ -10883,7 +10883,7 @@ Public Class ClsContPAQi StrSQL.Append(" ( ") StrSQL.Append(" @IdCtaSup INT, ") StrSQL.Append(" @FechaI DATE, ") - StrSQL.Append(" @FechaF DATE, ") + StrSQL.Append(" @FechaF DATETIME, ") StrSQL.Append(" @Tipo INT, ") StrSQL.Append(" @SegmentoNegocio INT = -1 ") StrSQL.Append(" ) ") @@ -11140,7 +11140,7 @@ Public Class ClsContPAQi StrSQL.Append(" ( ") StrSQL.Append(" @IdCtaSup INT, ") StrSQL.Append(" @FechaI DATE, ") - StrSQL.Append(" @FechaF DATE, ") + StrSQL.Append(" @FechaF DATETIME, ") StrSQL.Append(" @CveMoneda INT = 1 ") StrSQL.Append(" ) ") StrSQL.Append(" RETURNS FLOAT ") From f6115c4b61a60dd433a5565a6bab4ef5e32b3beb Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Mon, 14 Sep 2020 19:34:01 -0700 Subject: [PATCH 2/8] Orden de trabajo --- AF/CatTiposServiciosActividades.aspx.cs | 8 +- AF/OrdenTrabajo.aspx | 140 ++++++++----- AF/OrdenTrabajo.aspx.vb | 37 +++- AF/OrdenTrabajoAsignacion.aspx | 237 ++++++++++++++++++++++ AF/OrdenTrabajoAsignacion.aspx.vb | 227 ++++++++++++++++++++++ AF/RepOrdenTrabajo.aspx | 248 ++++++++++++++++++++++++ AF/RepOrdenTrabajo.aspx.vb | 187 ++++++++++++++++++ App_Code/ClsAF.vb | 37 +++- App_Code/ClsBancos.vb | 2 +- App_Code/ClsPaginas.vb | 5 + 10 files changed, 1060 insertions(+), 68 deletions(-) create mode 100644 AF/OrdenTrabajoAsignacion.aspx create mode 100644 AF/OrdenTrabajoAsignacion.aspx.vb create mode 100644 AF/RepOrdenTrabajo.aspx create mode 100644 AF/RepOrdenTrabajo.aspx.vb diff --git a/AF/CatTiposServiciosActividades.aspx.cs b/AF/CatTiposServiciosActividades.aspx.cs index 80f1e0df3..1c4801f17 100644 --- a/AF/CatTiposServiciosActividades.aspx.cs +++ b/AF/CatTiposServiciosActividades.aspx.cs @@ -33,7 +33,7 @@ public partial class AF_CatTiposServiciosActividades : ClsPaginas private void CargaDatos() { ClsAF ObjAF = new ClsAF(); - if (ObjAF.GetTiposServiciosActividades(-1, -1)) + if (ObjAF.GetTiposServiciosActividades(-1, -1,-1)) { GvDatos.DataSource = ObjAF.DtResultados; GvDatos.DataBind(); @@ -74,7 +74,7 @@ public partial class AF_CatTiposServiciosActividades : ClsPaginas GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); CveTipoServicioActividad = GvRow.DataKey("CveTipoServicioActividad").ToEntero(); ClsAF ObjAF = new ClsAF(); - if (ObjAF.DeleteTiposServiciosActividades(CveTipoServicioActividad)) + if (ObjAF.DeleteTiposServiciosActividades(CveTipoServicioActividad, UsuarioActual.CveEmpresa)) { CargaDatos(); UpDatos.Update(); @@ -89,14 +89,14 @@ public partial class AF_CatTiposServiciosActividades : ClsPaginas ClsAF ObjAF = new ClsAF(); if (BtnAgregarTipoServicio.Text == "Agregar") { - if (ObjAF.AddTiposServiciosActividades(DdlActividades.SelectedValue.ToEntero(),TxtDuracion.Text.ToEntero(),TxtObservaciones.Text)) + if (ObjAF.AddTiposServiciosActividades(DdlActividades.SelectedValue.ToEntero(),-1,TxtDuracion.Text.ToDecimal(),TxtObservaciones.Text)) { Alert("Se agregó la Actividad del Tipo de Servicio correctamente"); } } else { - if (ObjAF.UpdateTiposServiciosActividades(CveTipoServicioActividad,DdlActividades.SelectedValue.ToEntero(),TxtDuracion.Text.ToEntero(),TxtObservaciones.Text)) + if (ObjAF.UpdateActividades(DdlActividades.SelectedValue.ToEntero(),TxtDuracion.Text.ToEntero(),TxtObservaciones.Text)) { Alert("Se actualizó la Actividad del Tipo de Servicio correctamente"); } diff --git a/AF/OrdenTrabajo.aspx b/AF/OrdenTrabajo.aspx index 6128ed0b5..9756fc76c 100644 --- a/AF/OrdenTrabajo.aspx +++ b/AF/OrdenTrabajo.aspx @@ -137,67 +137,91 @@
+ +
+
+
+ + -
- -
+
+
+
+
+ + + +
+
+ +
+ +
- + Baja Media Alta -
- - -
- - -
- - - - -
- - - - - - - -
- -
- -
- - - - -
- - - <%----%> - - <%----%> -
-
- +
+
+
+ + +
+ + + + +
+ + + + + + + +
+ +
+
+
+ +
+ + + + +
+ + + <%----%> + + <%----%> + +
+ +
+
+ +
+ +
+ +
@@ -235,7 +259,7 @@ @@ -248,7 +272,7 @@ - + @@ -256,15 +280,25 @@ - - Faltante - + Faltante - + + + +
+
+ +
+
+ +
+
+ +
- + +
diff --git a/AF/OrdenTrabajo.aspx.vb b/AF/OrdenTrabajo.aspx.vb index 522701bf7..f0bfa4347 100644 --- a/AF/OrdenTrabajo.aspx.vb +++ b/AF/OrdenTrabajo.aspx.vb @@ -50,12 +50,16 @@ Partial Class AF_OrdenTrabajo If Request("CveOrdenTrabajo") IsNot Nothing Then CveOrdenTrabajo = Request("CveOrdenTrabajo").ToEntero - DVFechaFin.Visible = True - Tab.Visible = True + If CveOrdenTrabajo > 0 Then - CargaDatos() + DVFechaFin.Visible = True + DVFolioAsignado.Visible = True + DVEstatus.Visible = True + Tab.Visible = True + CargaDatos() + End If End If @@ -78,7 +82,7 @@ Partial Class AF_OrdenTrabajo DdlAF.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa, -1) DdlAF.DataBind() - + DdlAF.Items.Insert(0, New ListItem("Seleccione uno", "-1")) Dim ObjAF As New ClsAF @@ -127,7 +131,8 @@ Partial Class AF_OrdenTrabajo If ObjAF.DtResultados IsNot Nothing AndAlso ObjAF.DtResultados.Rows.Count > 0 Then - LblFolio.Text = $"Folio OT: {ObjAF.DtResultados(0)("Folio").ToString}" + LblFolio.Text = ObjAF.DtResultados(0)("Folio").ToString + LblAsiganado.Text = ObjAF.DtResultados(0)("NombreCompleto").ToString DdlSubProyecto.SelectedValueExist(ObjAF.DtResultados(0)("CveSubProyecto").ToString) DdlAF.SelectedValueExist(ObjAF.DtResultados(0)("CveAF").ToString) @@ -197,6 +202,16 @@ Partial Class AF_OrdenTrabajo Else + If DdlOrdenesTrabajoEstatus.SelectedValue.ToEntero = 3 Then + If txtFechaF.Text.Length = 0 Then + Alert("La fecha fin es requerida.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + + + + Dim ObjAF As New ClsAF ObjAF.IniciaTransacSQL() Dim ErrorProceso As Boolean = False @@ -210,7 +225,7 @@ Partial Class AF_OrdenTrabajo FechaFinal = txtFechaF.Text.ToDate End If - If Not ObjAF.UpdateOrdenesTrabajo(CveOrdenTrabajo, DdlTipoServicio.SelectedValue.ToEntero, DdlAF.SelectedValue.ToEntero, TxtServicio.Text.Trim, DdlSubProyecto.SelectedValue.ToEntero, DdlPrioridad.SelectedValue.ToEntero, txtFechaI.Text.ToDate, FechaFinal, MaxFecha, DdlOrdenesTrabajoEstatus.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If Not ObjAF.UpdateOrdenesTrabajo(CveOrdenTrabajo, DdlTipoServicio.SelectedValue.ToEntero, DdlAF.SelectedValue.ToEntero, TxtServicio.Text.Trim, DdlSubProyecto.SelectedValue.ToEntero, DdlPrioridad.SelectedValue.ToEntero, txtFechaI.Text.ToDate, FechaFinal, MaxFecha, DdlOrdenesTrabajoEstatus.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1) Then ErrorProceso = True End If @@ -394,12 +409,16 @@ Partial Class AF_OrdenTrabajo Protected Sub GvMaterial_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.Header Then + If e.Row.RowType = DataControlRowType.DataRow Then If GvMaterial.Columns(4).Visible Then - Dim HLOC As HyperLink = e.Row.FCHyperLink("HLOC") - HLOC.NavigateUrl = $"../OC/OC.aspx?CveOrdenTrabajo={CveOrdenTrabajo}" + If e.Row.DataKey("Faltante").ToDecimal > 0 Then + Dim HLOC As HyperLink = e.Row.FCHyperLink("HLOC") + HLOC.Visible = True + HLOC.NavigateUrl = $"../OC/OC.aspx?CveOrdenTrabajo={CveOrdenTrabajo}" + End If + End If diff --git a/AF/OrdenTrabajoAsignacion.aspx b/AF/OrdenTrabajoAsignacion.aspx new file mode 100644 index 000000000..7253a443f --- /dev/null +++ b/AF/OrdenTrabajoAsignacion.aspx @@ -0,0 +1,237 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="OrdenTrabajoAsignacion.aspx.vb" Inherits="AF_OrdenTrabajoAsignacion" %> + + + + + + + + + + + + Ordenes de trabajo Asignación + + + + + + + + +
+
+
+ + + + + + +
+
+ +
+ + +
+ : +
+
+ +
+ +
Activo Fijo:
+
+ +
+ +
Tipo Servicio:
+
+ +
+ + +
Fecha Inicio:
+
+
+ + + + +
+ + + <%-- + --%> +
+ + +
Fecha Fin:
+
+ + +
+ + + + +
+ + + +
+ + +
+ + +
+
+
+
+
Prioridad:
+
+ + Todas + Baja + Media + Alta + +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + +
+
+ + +
+ + + + + + diff --git a/AF/OrdenTrabajoAsignacion.aspx.vb b/AF/OrdenTrabajoAsignacion.aspx.vb new file mode 100644 index 000000000..9bcbb867a --- /dev/null +++ b/AF/OrdenTrabajoAsignacion.aspx.vb @@ -0,0 +1,227 @@ +Option Explicit On +Option Strict On + +Imports System.Data +Imports Extensiones +Imports Microsoft.Reporting.WebForms + +Partial Class AF_OrdenTrabajoAsignacion + Inherits ClsPaginas + +#Region " PROPIEDADES" + + Property DT_Cabeceras As DataTable + Get + + If ViewState("DT_Cabeceras") Is Nothing Then + + Return New DataTable + Else + Return DirectCast(ViewState("DT_Cabeceras"), DataTable) + End If + + End Get + Set(value As DataTable) + ViewState("DT_Cabeceras") = value + End Set + End Property + + + Property DT_Datos As DataTable + Get + + If ViewState("DT_Datos") Is Nothing Then + Return New DataTable + Else + Return DirectCast(ViewState("DT_Datos"), DataTable) + End If + + End Get + Set(value As DataTable) + ViewState("DT_Datos") = value + End Set + End Property + +#End Region + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + + CargaCombos() + CargaDatos() + + Dim FechaActual As Date = Now + + + 'TxtFechaF.Text = $"{FechaActual.Day.ToString("00")}/{FechaActual.Month.ToString("00")}/{FechaActual.Year}" + TxtFechaF.Text = "" + FechaActual = FechaActual.AddDays(-30) + TxtFechaI.Text = $"{FechaActual.Day.ToString("00")}/{FechaActual.Month.ToString("00")}/{FechaActual.Year}" + + End If + End Sub + + +#Region " CARGA PARAMETROS " + +#End Region + +#Region " CARGA COMBOS " + Protected Sub CargaCombos() + + CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto) + + DdlAF.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa, -1) + DdlAF.DataBind() + + DdlAF.Items.Insert(0, New ListItem("Todos", "-1")) + + Dim ObjAF As New ClsAF + + If ObjAF.GetTiposServicios(-1, -1, -1, UsuarioActual.CveEmpresa) Then + DdlTipoServicio.DataSource = ObjAF.DtResultados + Else + DdlTipoServicio.DataSource = Nothing + End If + + ObjAF.Dispose() + DdlTipoServicio.DataBind() + DdlTipoServicio.Items.Insert(0, New ListItem("Todos", "-1")) + + UpFiltro.Update() + + + End Sub + + +#End Region + +#Region " CARGA DATOS " + Protected Sub BtnFiltrar_Click(sender As Object, e As EventArgs) + CargaDatos() + + End Sub + + +#End Region + +#Region " GV DATOS " + + Private Sub CargaDatos() + + Dim FechaInicio, FechaFin As Date + + FechaInicio = TxtFechaI.Text.ToDate + + + FechaFin = MaxFecha + If TxtFechaF.Text.Length = 10 Then + FechaFin = TxtFechaF.Text.ToDate + End If + + + Dim ObjAF As New ClsAF + + If ObjAF.GetOrdenesTrabajo(-1, DdlTipoServicio.SelectedValue.ToEntero, -1, DdlAF.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlPrioridad.SelectedValue.ToEntero, FechaInicio, FechaFin, MaxFecha, -1, UsuarioActual.CveEmpresa) Then + + GvDatos.DataSource = ObjAF.DtResultados + + If ObjAF.DtResultados.Rows.Count > 0 Then + BtnGuardar.Enabled = True + Else + BtnGuardar.Enabled = False + End If + + Else + GvDatos.DataSource = Nothing + BtnGuardar.Enabled = False + End If + + ObjAF.Dispose() + + GvDatos.DataBind() + UpDatos.Update() + + End Sub + + + + + Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound + + If e.Row.RowType = DataControlRowType.DataRow Then + + Dim CvePersonal As Integer = e.Row.DataKey("CvePersonal").ToEntero + Dim DdlPersonal As DropDownList = e.Row.FCDropDownList("DdlPersonal") + + DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa, -1).FiltraParametros("CveEstatusPersonal = 1") + DdlPersonal.DataBind() + DdlPersonal.Items.Insert(0, New ListItem("Seleccione Uno", "-1")) + + DdlPersonal.SelectedValueExist(CvePersonal) + + + End If + + End Sub + +#End Region + + + + + Protected Sub LnkEliminarMetricaValor_Click(sender As Object, e As EventArgs) + + End Sub + + + + Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) + + + Dim ObjAf As New ClsAF + Dim ErrorProceso As Boolean = False + Dim CountAsiganados As Integer = 0 + + + ObjAf.IniciaTransacSQL() + + For Each GvRow As GridViewRow In GvDatos.Rows + If GvRow.RowType = DataControlRowType.DataRow Then + + Dim CvePersonal As Integer = GvRow.DataKey("CvePersonal").ToEntero + Dim DdlPersonal As DropDownList = GvRow.FCDropDownList("DdlPersonal") + Dim CveOrdenTrabajo As Integer = GvRow.DataKey("CveOrdenTrabajo").ToEntero + + If DdlPersonal.SelectedValue.ToEntero > 0 AndAlso (DdlPersonal.SelectedValue.ToEntero <> CvePersonal) Then + + If Not ObjAf.UpdateOrdenesTrabajo(CveOrdenTrabajo, -1, -1, "-1", -1, -1, MinFecha, MaxFecha, MaxFecha, -1, UsuarioActual.CveEmpresa, DdlPersonal.SelectedValue.ToEntero) Then + ErrorProceso = True + Else + CountAsiganados = CountAsiganados + 1 + End If + + End If + + End If + Next + + If Not ErrorProceso Then + + ObjAf.Commit() + + If CountAsiganados > 0 Then + Alert($"{CountAsiganados} ordenes de trabajo asignadas.") + Else + Alert($"No se asigno ninguna orden de trabajo.", TipoMensaje.MsgAdvertencia) + End If + + Else + ObjAf.RollBack() + End If + + ObjAf.Dispose() + + + End Sub +End Class diff --git a/AF/RepOrdenTrabajo.aspx b/AF/RepOrdenTrabajo.aspx new file mode 100644 index 000000000..de459d883 --- /dev/null +++ b/AF/RepOrdenTrabajo.aspx @@ -0,0 +1,248 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepOrdenTrabajo.aspx.vb" Inherits="AF_RepOrdenTrabajo" %> + + + + + + + + + + + + Reporte ordenes de trabajo + + + + + + + + +
+
+
+ + + + + + +
+
+ +
+ +
+ Folio: +
+
+ +
+ +
+ : +
+
+ +
+ +
Activo Fijo:
+
+ +
+ +
Tipo Servicio:
+
+ +
+ + + +
+ + +
+
+
+
+ + +
Personal:
+
+ +
+ + + +
Fecha Inicio:
+
+
+ + + + +
+ + + <%-- + --%> +
+ + +
Fecha Fin:
+
+ + +
+ + + + +
+ + + +
+ +
Estatus:
+
+ + +
+ + +
Prioridad:
+
+ + Todas + Baja + Media + Alta + +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + diff --git a/AF/RepOrdenTrabajo.aspx.vb b/AF/RepOrdenTrabajo.aspx.vb new file mode 100644 index 000000000..d4be6f652 --- /dev/null +++ b/AF/RepOrdenTrabajo.aspx.vb @@ -0,0 +1,187 @@ +Option Explicit On +Option Strict On + +Imports System.Data +Imports Extensiones +Imports Microsoft.Reporting.WebForms + +Partial Class AF_RepOrdenTrabajo + Inherits ClsPaginas + +#Region " PROPIEDADES" + + Property DT_Cabeceras As DataTable + Get + + If ViewState("DT_Cabeceras") Is Nothing Then + + Return New DataTable + Else + Return DirectCast(ViewState("DT_Cabeceras"), DataTable) + End If + + End Get + Set(value As DataTable) + ViewState("DT_Cabeceras") = value + End Set + End Property + + + Property DT_Datos As DataTable + Get + + If ViewState("DT_Datos") Is Nothing Then + Return New DataTable + Else + Return DirectCast(ViewState("DT_Datos"), DataTable) + End If + + End Get + Set(value As DataTable) + ViewState("DT_Datos") = value + End Set + End Property + +#End Region + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + + CargaCombos() + CargaDatos() + + Dim FechaActual As Date = Now + + + 'TxtFechaF.Text = $"{FechaActual.Day.ToString("00")}/{FechaActual.Month.ToString("00")}/{FechaActual.Year}" + TxtFechaF.Text = "" + FechaActual = FechaActual.AddDays(-30) + TxtFechaI.Text = $"{FechaActual.Day.ToString("00")}/{FechaActual.Month.ToString("00")}/{FechaActual.Year}" + + End If + End Sub + + +#Region " CARGA PARAMETROS " + +#End Region + +#Region " CARGA COMBOS " + Protected Sub CargaCombos() + + CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto) + + DdlAF.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa, -1) + DdlAF.DataBind() + + DdlAF.Items.Insert(0, New ListItem("Todos", "-1")) + + Dim ObjAF As New ClsAF + + If ObjAF.GetTiposServicios(-1, -1, -1, UsuarioActual.CveEmpresa) Then + DdlTipoServicio.DataSource = ObjAF.DtResultados + Else + DdlTipoServicio.DataSource = Nothing + End If + + If ObjAF.GetOrdenesTrabajoEstatus(UsuarioActual.CveEmpresa) Then + DdlOrdenesTrabajoEstatus.DataSource = ObjAF.DtResultados + Else + DdlOrdenesTrabajoEstatus.DataSource = Nothing + End If + + ObjAF.Dispose() + + DdlTipoServicio.DataBind() + DdlTipoServicio.Items.Insert(0, New ListItem("Todos", "-1")) + + DdlOrdenesTrabajoEstatus.DataBind() + DdlOrdenesTrabajoEstatus.Items.Insert(0, New ListItem("Todos", "-1")) + + + + + DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa, -1).FiltraParametros("CveEstatusPersonal = 1") + DdlPersonal.DataBind() + DdlPersonal.Items.Insert(0, New ListItem("Todos", "-1")) + + + UpFiltro.Update() + + + End Sub + + +#End Region + +#Region " CARGA DATOS " + Protected Sub BtnFiltrar_Click(sender As Object, e As EventArgs) + CargaDatos() + + End Sub + + +#End Region + +#Region " GV DATOS " + + Private Sub CargaDatos() + + + Dim FechaInicio, FechaFin As Date + Dim Folio As Integer = If(TxtFolio.Text.ToEntero > 0, TxtFolio.Text.ToEntero, -1) + FechaInicio = TxtFechaI.Text.ToDate + + + If DdlOrdenesTrabajoEstatus.SelectedValue.ToEntero = 3 AndAlso TxtFechaF.Text.Trim.Length = 0 Then + FechaFin = MaxFecha.AddDays(1) + Else + FechaFin = MaxFecha + End If + + + If TxtFechaF.Text.Length = 10 Then + FechaFin = TxtFechaF.Text.ToDate + End If + + + Dim ObjAF As New ClsAF + + If ObjAF.GetOrdenesTrabajo(-1, DdlTipoServicio.SelectedValue.ToEntero, Folio, DdlAF.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlPrioridad.SelectedValue.ToEntero, FechaInicio, FechaFin, MaxFecha, DdlOrdenesTrabajoEstatus.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + GvDatos.DataSource = ObjAF.DtResultados + Else + GvDatos.DataSource = Nothing + End If + + ObjAF.Dispose() + + GvDatos.DataBind() + UpDatos.Update() + + End Sub + + + + + Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound + + If e.Row.RowType = DataControlRowType.DataRow Then + + End If + + End Sub + +#End Region + + + + + Protected Sub LnkEliminarMetricaValor_Click(sender As Object, e As EventArgs) + + End Sub + + + + + +End Class diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index c70e0c563..274b51195 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -4239,6 +4239,40 @@ Public Class ClsAF End Function + 'Public Function GetOrdenesTrabajoAsignacion(CveSubProyecto As Integer, CveAF As Integer, CveTipoServicio As Integer, FechaInicio As Date, FechaFin As Date, Prioridad As Integer, CveEmpresa As Integer) As Boolean + + ' Dim Retorno As Boolean = False + + ' DataAdapter("PA_AF_OrdenesTrabajoAsignacionGet") + + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveOrdenTrabajo", SqlDbType.Int).Value = CveOrdenTrabajo + ' .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + + ' .Add("@CveAF", SqlDbType.Int).Value = CveAF + ' .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + ' .Add("@Prioridad", SqlDbType.Int).Value = Prioridad + ' .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio + '' .Add("@FechaFin", SqlDbType.Date).Value = FechaFin + + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + + + + ' End With + + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch ex As Exception + ' OnError("Ocurrió un error al consultar las ordenes de trabajo", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' End Try + + ' Return Retorno + + 'End Function + + Public Function AddOrdenesTrabajo(CveTipoServicio As Integer, CveAF As Integer, Servicio As String, CveSubProyecto As Integer, Prioridad As Integer, FechaInicio As Date, FechaFin As Date, FechaFinReal As Date, CveEstatusOT As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False @@ -4279,7 +4313,7 @@ Public Class ClsAF - Public Function UpdateOrdenesTrabajo(CveOrdenTrabajo As Integer, CveTipoServicio As Integer, CveAF As Integer, Servicio As String, CveSubProyecto As Integer, Prioridad As Integer, FechaInicio As Date, FechaFin As Date, FechaFinReal As Date, CveEstatusOT As Integer, CveEmpresa As Integer) As Boolean + Public Function UpdateOrdenesTrabajo(CveOrdenTrabajo As Integer, CveTipoServicio As Integer, CveAF As Integer, Servicio As String, CveSubProyecto As Integer, Prioridad As Integer, FechaInicio As Date, FechaFin As Date, FechaFinReal As Date, CveEstatusOT As Integer, CveEmpresa As Integer, CvePersonal As Integer) As Boolean Dim Retorno As Boolean = False @@ -4299,6 +4333,7 @@ Public Class ClsAF .Add("@FechaFinReal", SqlDbType.Date).Value = FechaFinReal .Add("@CveEstatusOT", SqlDbType.Int).Value = CveEstatusOT .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal End With diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index af063505a..1ed92ca05 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -4723,7 +4723,7 @@ Public Class ClsBancos strBody.AppendFormat(" ") - For Each dr As DataRow In DtResultados.FiltraParametros("CveConceptoContable IN (17,312) AND CveCompra > 0").Rows + For Each dr As DataRow In DtResultados.FiltraParametros("CveConceptoContable IN (17,312,308) AND CveCompra > 0").Rows strBody.AppendFormat(" ") strBody.AppendFormat(" {0}", dr("Fecha").ToString.ToDate.ToShortDateString()) strBody.AppendFormat(" {0}", dr("SerieFolio").ToString) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 35bf0d9b8..632aa983b 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3964,6 +3964,11 @@ Public Class ClsPaginas PaginaDict.Add("/AF/TipoOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/RepOrdenTrabajo.aspx".ToUpper(), -1) + PaginaDict.Add("/AF/OrdenTrabajoAsignacion.aspx".ToUpper(), -1) + + + + #End Region 'AIMMGM From a59492940ea934cb768d4b4627302c905791dba7 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Sep 2020 09:55:33 -0700 Subject: [PATCH 3/8] -- comparativo de impuestos --- App_Code/ClsContabilidad.vb | 21 +++++++++++++++++++ Contabilidad/RepIVA.aspx | 42 +++++++++++++++++++++++++++++++++++++ Contabilidad/RepIVA.aspx.cs | 21 +++++++++++++++++++ 3 files changed, 84 insertions(+) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index e9188b31e..d7c9a2928 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -5542,6 +5542,27 @@ Public Class ClsContabilidad Return Retorno End Function + + Public Function GetRepIVAComparativo(FechaInicio As Date, FechaFin As Date, CveUsuarioConsulta As Integer, Conciliado As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Conta_ImpuestosComparativo") + With SqlAdapter.SelectCommand.Parameters + .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio + .Add("@FechaFin", SqlDbType.Date).Value = FechaFin + .Add("@CveUsuarioConsulta", SqlDbType.Int).Value = CveUsuarioConsulta + .Add("@Conciliado", SqlDbType.Int).Value = Conciliado + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el reporte de IVA Comparativo.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + Public Function GetRepIVAAcumulado(FechaInicio As Date, FechaFin As Date, Conciliado As Integer, TipoImpuesto As Integer, CveUsuarioConsulta As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Conta_IVAAcumulado") diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 6c146f4f5..df71f1fcc 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -40,6 +40,13 @@
  • Generales del proveedor
  • + + +
  • + Comparativo +
  • +
    +
    @@ -271,6 +278,41 @@
    + + + + + diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index dae766096..969d38b25 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -332,6 +332,27 @@ public partial class Contabilidad_RepIVA : ClsPaginas Response.End(); } + + + protected void LnkModalCompara_Click(object sender, EventArgs e) + { + + ClsContabilidad Objconta = new ClsContabilidad(); + + int Conciliado = DdlTipoMovto.SelectedValue.ToEntero(); + + if (Objconta.GetRepIVAComparativo(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveUsuario, Conciliado, UsuarioActual.CveEmpresa )) + { + GvCompara.DataSource = Objconta.DtResultados; + } + + Objconta.Dispose(); + GvCompara.DataBind(); + RegistraScript("$('#ModalCompara').modal('show')"); + UpCompara.Update(); + } + + protected string LV(string Valor) { return (Valor.ToDecimal() > 0) ? Valor.ToDecimal().ToString().FormatoNumero(0).Replace(",", string.Empty) : ""; From 8f1f3f84d4acf655def329036b1b843ddaa84dc3 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Sep 2020 09:55:52 -0700 Subject: [PATCH 4/8] -- globaldttipogasto --- App_Code/ClsPaginas.vb | 24 +++- Ashx/SIGWeb.ashx | 2 +- Compras/CatTipoGasto.aspx.cs | 31 +++-- Global.asax | 8 +- Ventas/Clientes.aspx | 235 +++++++++++++++++------------------ Ventas/Clientes.aspx.vb | 23 ++-- 6 files changed, 174 insertions(+), 149 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 35bf0d9b8..0f1360d65 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -192,20 +192,34 @@ Public Class ClsPaginas Application("GlobalDTNomConceptos") = value End Set End Property - Property GlobalDTTiposGastos(CveEmpresa As Integer) As DataTable + Property GlobalDTTiposGastos(CveEmpresa As Integer, Optional Estatus As Integer = 1) As DataTable Get + Dim AppNombre As String = String.Format("GlobalDTTiposGastos-{0}", CveEmpresa) + 'sino existe, recarga los datos + If Application(AppNombre) Is Nothing Then + Dim ObjCompra As New ClsCompras() + If ObjCompra.GetTipoGasto(-1, -1) Then Application(AppNombre) = ObjCompra.DtResultados Else Application(AppNombre) = Nothing + ObjCompra.Dispose() + End If + If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTTiposGastos"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) + + Dim StrSQL As New StringBuilder + StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) + If Estatus >= 0 Then StrSQL.AppendFormat(" AND CveEstatus = {0} ", Estatus) + + Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTTiposGastos = Dv.ToTable Dv.Dispose() Else - GlobalDTTiposGastos = DirectCast(Application("GlobalDTTiposGastos"), DataTable) + GlobalDTTiposGastos = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Application("GlobalDTTiposGastos") = value + Dim AppNombre As String = String.Format("GlobalDTTiposGastos-{0}", CveEmpresa) + Application(AppNombre) = value End Set + End Property Property GlobalDTMFActividad(CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional CveActividad As Integer = -1) As DataTable Get diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index e53a90a5f..af213df24 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -620,7 +620,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState 'verifica existencias - If Pagina.Contiene("ventas/ventas", "oc/oc", "inv/traspaso") AndAlso CveEmpresa.Contiene(72, 80, 119, 140, 141, 152) Then + If Pagina.Contiene("ventas/ventas", "oc/oc", "inv/traspaso") AndAlso CveEmpresa.Contiene(72, 80, 119, 140, 141, 152, 153) Then UsaGlobal = False Dim objInv As New ClsInventarios diff --git a/Compras/CatTipoGasto.aspx.cs b/Compras/CatTipoGasto.aspx.cs index 4ffb4c9b7..9f5ac4687 100644 --- a/Compras/CatTipoGasto.aspx.cs +++ b/Compras/CatTipoGasto.aspx.cs @@ -33,7 +33,7 @@ public partial class Compras_CatTipoGasto : ClsPaginas private void CargaDatos() { ClsCompras ObjCompras = new ClsCompras(); - if (ObjCompras.GetTipoGasto(-1,UsuarioActual.CveEmpresa)) + if (ObjCompras.GetTipoGasto(-1, UsuarioActual.CveEmpresa)) { GvDatos.DataSource = ObjCompras.DtResultados; GvDatos.DataBind(); @@ -41,6 +41,17 @@ public partial class Compras_CatTipoGasto : ClsPaginas ObjCompras.Dispose(); } + private void RecargarGlobal() + { + set_GlobalDTTiposGastos(UsuarioActual.CveEmpresa, -1, null); + //ClsCompras ObjCompras = new ClsCompras(); + //if (ObjCompras.GetTipoGasto(-1, -1)) + //{ + // set_GlobalDTTiposGastos(UsuarioActual.CveEmpresa, ObjCompras.DtResultados); + //} + //ObjCompras.Dispose(); + } + protected void BtnAgregarTipoGastoD_Click(object sender, EventArgs e) { BtnAgregarTipoGasto.Text = "Agregar"; @@ -74,6 +85,7 @@ public partial class Compras_CatTipoGasto : ClsPaginas Alert("Se eliminó el Tipo de Gasto correctamente"); } ObjCompras.Dispose(); + RecargarGlobal(); } protected void BtnAgregarTipoGasto_Click(object sender, EventArgs e) @@ -81,23 +93,22 @@ public partial class Compras_CatTipoGasto : ClsPaginas ClsCompras ObjCompras = new ClsCompras(); if (BtnAgregarTipoGasto.Text == "Agregar") { - if (ObjCompras.AddTipoGasto(TxtTipoGasto.Text,ChkEstatus.Checked,DateTime.Now.ToString(),UsuarioActual.CveUsuario,UsuarioActual.CveEmpresa)) + if (ObjCompras.AddTipoGasto(TxtTipoGasto.Text, ChkEstatus.Checked, DateTime.Now.ToString(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) { - CargaDatos(); - UpDatos.Update(); - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposD")); Alert("Se agregó el Tipo de Gasto correctamente"); } - }else + } + else { - if (ObjCompras.UpdateTipoGasto(CveTipoGasto,TxtTipoGasto.Text,ChkEstatus.Checked,-1,-1)) + if (ObjCompras.UpdateTipoGasto(CveTipoGasto, TxtTipoGasto.Text, ChkEstatus.Checked, -1, -1)) { - CargaDatos(); - UpDatos.Update(); - RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposD")); Alert("Se actualizó el Tipo de Gasto correctamente"); } } ObjCompras.Dispose(); + CargaDatos(); + RecargarGlobal(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposD")); } } \ No newline at end of file diff --git a/Global.asax b/Global.asax index 86b5d58d8..857349e12 100644 --- a/Global.asax +++ b/Global.asax @@ -138,10 +138,10 @@ GuardaLogAsax(String.Format("Globalasax 7:{0}", DateTime.Now)) '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - 'C A R G A - T I P O G A S T O S - Using ObjCompra As New ClsCompras() - If ObjCompra.GetTipoGasto(-1, -1) Then Application("GlobalDTTiposGastos") = ObjCompra.DtResultados Else Application("GlobalDTTiposGastos") = Nothing - End Using + ''C A R G A - T I P O G A S T O S + 'Using ObjCompra As New ClsCompras() + ' If ObjCompra.GetTipoGasto(-1, -1) Then Application("GlobalDTTiposGastos") = ObjCompra.DtResultados Else Application("GlobalDTTiposGastos") = Nothing + 'End Using GuardaLogAsax(String.Format("Globalasax 8:{0}", DateTime.Now)) '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 428706e48..b9895d553 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -1007,129 +1007,10 @@
    -
    - -
    - - - - - -
    -
    - -
    - -
    - - - - - -
    -
    - - -
    - -
    - - - - - -
    -
    - - - -
    - -
    - - - - - -
    -
    - - -
    - -
    - - - - - -
    -
    - - -
    - -
    - - - - - -
    -
    - - - - -
    - -
    - - - - - -
    -
    -
    - -
    - - - - - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    -
    -
    - - Cuentas y conceptos -
    -
    -
    -
    -
    -
    -
    -
    - +
    + - + @@ -1137,9 +1018,119 @@ + +
    +
    +
    + +
    + + + + + +
    +
    + +
    + +
    + + + + + +
    +
    + + +
    + +
    + + + + + +
    +
    + + + +
    + +
    + + + + + +
    +
    + + +
    + +
    + + + + + +
    +
    + + +
    + +
    + + + + + +
    +
    + + + + +
    + +
    + + + + + +
    +
    +
    + +
    + + + + + +
    +
    +
    + +
    + + + + + +
    +
    +
    +
    + diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 59800645b..0aecf49c4 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -791,7 +791,7 @@ Partial Class Clientes If Request("ATI") IsNot Nothing AndAlso IsNumeric(Request("ATI")) Then Tab.ActiveTabIndex = Request("ATI").ToEntero End If - CargaCuentasyConceptos() + 'CargaCuentasyConceptos() Else 'Configuración de Modalidad Insert @@ -1079,13 +1079,13 @@ Partial Class Clientes DdlMonedaExtranjeraAnticipos.Attributes.Add("onclick", "CargaCuentas(9);") End Sub - Private Sub CargaCuentasyConceptos() + Private Sub CargaCuentasConceptos() Dim ObjConta As New ClsContabilidad - If ObjConta.GetCuentasyConceptos(CveCliente) Then - GvCuentasContable.DataSource = ObjConta.DtResultados + If ObjConta.GetCuentasConceptos(6, UsuarioActual.CveEmpresa, CveCliente:=CveCliente) Then + GvCta.DataSource = ObjConta.DtResultados End If ObjConta.Dispose() - GvCuentasContable.DataBind() + GvCta.DataBind() UpCuentaConceptos.Update() End Sub Protected Sub BtnCargarCuentas_Click(sender As Object, e As EventArgs) Handles BtnCargarCuentas.Click @@ -1681,8 +1681,17 @@ Partial Class Clientes End If CargaEventoBitacora() - - 'Ocultamos la mayoria de informacion si es no-frecuente + If UsuarioActual.Empresa.Funcionalidad(300) = "1" Then + CargaCuentasConceptos() + divCuentas.Visible = True + divCuentasContp.Visible = False + Else + divCuentas.Visible = False + divCuentasContp.Visible = True + End If + + + 'Ocultamos la mayoria de informacion si es no-frecuente If ObjClientes.TipoCliente = 2 Then TabFiscalContable.Visible = False TabCxC.Visible = False From be490d8d7579821dd6a1e100311ae95aa4dfa0de Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Sep 2020 09:56:34 -0700 Subject: [PATCH 5/8] -- propiedad datetime --- Contabilidad/RepAnexoCatalogo.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/RepAnexoCatalogo.aspx.vb b/Contabilidad/RepAnexoCatalogo.aspx.vb index e33be02b4..bb8aba1fe 100644 --- a/Contabilidad/RepAnexoCatalogo.aspx.vb +++ b/Contabilidad/RepAnexoCatalogo.aspx.vb @@ -26,7 +26,7 @@ Partial Class AC_RepAnexoCatalogo ViewState("FechaInicio") = value End Set End Property - Private Property FechaFin As Date + Private Property FechaFin As DateTime Get FechaFin = ViewState("FechaFin").ToString.ToDate End Get From c6784a5fa3b1f2fcbb77749617a7d0026ae6ffb0 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Sep 2020 09:57:39 -0700 Subject: [PATCH 6/8] -- valor seleccionado en proyecto --- Ventas/Ventas.aspx.vb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 122b2b6c1..b633d917d 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -14534,7 +14534,10 @@ Partial Class Ventas End Sub Private Sub RecargaSucursalPartidas() Dim CveSubProyecto As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero() - Dim SubProyecto As String = DdlSubProyectoDatos.SelectedItem.Text + Dim SubProyecto As String = "" + If CveSubProyecto > 0 Then + SubProyecto = DdlSubProyectoDatos.SelectedItem.Text + End If If TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count > 0 Then For Each Row As DataRow In TmpDT.Rows @@ -15233,8 +15236,6 @@ Partial Class Ventas Row("CvePS") = CvePS Row("Obs") = Obs - - Dim DrPS As DataRow = Nothing DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1 From 6a01bb4c44b86dbcc8a6307f628a694e2424c33f Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Sep 2020 09:58:44 -0700 Subject: [PATCH 7/8] -validacion de acreedor requerido --- Bancos/PopIECompras.aspx.vb | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index b305df95f..a2dc11030 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1415,6 +1415,12 @@ Partial Class Bancos_PopIECompras CveConcepto2 = 41 CveProveedor2 = DdlAcreedor.SelectedValue.ToEntero CveIE = -1 + 'verifica que se halla selccionado algun acreedor + If DdlAcreedor.SelectedValue.ToEntero <= 0 Then + Inserta = False + Alert("Debe especificar el Acreedor.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If Case "6" 'Ventas ImportePagado = TxtImporte.Text.Trim.ToDecimal CveProveedor2 = CveProveedor @@ -3312,18 +3318,18 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = 0 End Select - If ImporteMovimiento <> 0 Then + If ImporteMovimiento <> 0 AndAlso MsgError = "" Then 'Conta ContPAQ If IdCtaContable = 0 Then CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) idCuentaContabilizacion = 0 End If - 'Conta SIG - If CveCuenta = 0 Then - CuentasContablesInvalidasSIG.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) - CveCuentaContabilizacion = 0 - End If + ''Conta SIG + 'If CveCuenta = 0 Then + ' CuentasContablesInvalidasSIG.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) + ' CveCuentaContabilizacion = 0 + 'End If If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, If(ConceptoContable = 30, TxtFolio.Text.Trim, TxtObservaciones.Text), ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, -1, CveCompra, -1, CveProveedor:=CveProveedor2, ImporteMX:=ImporteMX, CveCuenta:=CveCuenta, TipoCambio:=TimpocambioGeneral, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeImpuesto) Then MsgError = "No se pudo insertar la póliza" @@ -3333,7 +3339,7 @@ Partial Class Bancos_PopIECompras Next - If ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then + If MsgError = "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then If ObjMov.ValorPolizaDescuadre > 0 Then MsgError = ObjMov.MensajePolizaDescuadre GuardaLogAD($"Bancos/PopIECompras | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") From 4f8ad1f3da1092fb1e6f4456ff8e850a9b5af373 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Sep 2020 10:14:41 -0700 Subject: [PATCH 8/8] -- cambio en formatos --- .../Grales/Formatos/RepIVAAcreditable.rpt | Bin 147456 -> 147456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Empresas/Grales/Formatos/RepIVAAcreditable.rpt b/Empresas/Grales/Formatos/RepIVAAcreditable.rpt index af959d4b5e60fb42e21f7bcb9b770006a474d038..4b5e50a9bbdf893e2a570dc2ee2ba23aa3967d21 100644 GIT binary patch delta 22370 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 I;SAva3s9%9Fwp-RNI*bmKMM4RukY{g|2{ z?;Ik15*svS5E%aC?C&pO4)Z6rfJ_Sm=9O#5dAHvu<5QFvz;`r^r`Qs z8bPWD9$5=6r{O#zDiJivNRBqi-AFk51-#*_40j)eO$-R8$meKmzoE;z03PfF4<;n_ zkGqnaHdwj9OZko!onHa-5;&ZBp}dmbTB;8uZJ4^vcN!Yr*DbQ3n8)_U4%Y4?Ip6U5 zWfSsT=zEu;@Ea|MG};a`}*4=xBbNU)m^f3CuysnIN-L}U%v zt6=0^PNEvhY~u zJ4`L;j4TOz!i9S}8D{{$;1HHFoC&5GB%u>hMY7;T_cP81rm0aoq@dh-N8-Y0+o^ieCe$ z59?+jyU7@CL|;f)Fwx%l{IFAiVLGWY3(Xu0!{c35#jh1_7#YZ!RyzI&1$jDJuGms> z)mR6z%xMu`kwi9B0a$@8|D@Dz(l!~{X>1ORw=iww)L!YM*!Dl@D6c}R5MiVP_|fk9 z6P<~UMm!i_3bCL%vDk3Z#@E?%-MTGmA~WtNo(o94waBXpGraF^MK(D4xvgU3oHHZ9 zaWizba8GH*S$1{AL)Py~&cyXwrkqn=h-!lSrpWy?_D^iv0cT)!`wzZ+iVilkJdl-b zLTxOA)rrRBBIpwlHhc>+XPm8G%`|4Y1S6o;q=uS8x@yJ9`ftx14HM>WIGU3kgjE4Q#Y(Y9u9zo z#9)7?KQ^AofJ&MLEX~`jBOsC!J^PWMQoHYvx!zKla!yV5#|7OF&g|BYw+0aQGI;Vz zP^SpjBqI)@T3^3Vhy#B-=tN0WXrG27$8FSI9hjHMasfAEy36j{_16@26+^i@r5(Jj zairR5ci+FZ#yMyuIsS3zqX{mA?gcH;8zzyL=L@dk8xRyy~IwfQ7(+@_^FMOBP7%zmxz(_ygDv>_99) zoIkU`54B*LVFEwd=0E*^hQN>5Js|%t)967v0jLgvfq;RAh!q$HNRvB7_4Wz|$ucaIW>dp@PzL4mxjW~2{GvtDBzdXv&H-jWbM~Gp_7xoIZVJBXZY31Kl5)mv zfY3JhmIuG2v;0vDR@HY118>JU=5!SyUpy9O+;FhGE|wuW0nP4Kfn&6p+pUb23NH~D zr*;7b>z8(oHP~AhlzFcK0wXW$;^^;i9$mav+YpDTli6*jnq<4_=gI1f;wnLgAr>!u zB@NAhdZ0xyEI_jPppz7Y^vy4OYWfpAKymFrgrbmzH(%=)Yy^{MT_`zVX4IQowg~~N z80-k5%_c-5{O^8*Hlb}ky-C9`Av6^(^Qi8hNV*M5nCS?Z>*@oG%1K8#T%-@}27O9R zOf}!&1IFncq2<#-;FRbN35ejE2KY9@@I+!o^^(N2Z{EE{KBS?E^sQgq4TzSZ0R0UL z{+C9o#<@lDu?HqhuS(kzIQkA-Q7mGcUD9?hq>O=~%fE1=+edkR?NB{Pw{99{RODG* zb7)$GQi6moBII{DqG0!J&Ny}Qx-y4%FG|6rW9LJ4STGRMm~w{_Y8uI`XT6TSIU5e| zNp=hL#5=zOu=Lr=o+U^{VgJx@12C+be`!$1y-Uu?qD=Gh-dK#$d$%y-s}(RF?Zq~_ zEW@EvnLziy-(Rrlgl|k%O7{;#w;1#TJ(fU7cM`q63~;%4KAfTmL8h9JV-X=YEcKXN zeal1*=pUO<*FwxtuXDQujDW&?CY`{=bZa)sf)I14)oUNRf;+z{6+Y!b0gO3%&&ygl z<)wswFL^NP`L9tZw6Z_xTDo#`+6)T~lc*1#vD!n3@01wT{w@M8#%P#tM}zJu2h#J2 zXEhF#j^d?$HaBfM1B;T@ZghWf^ODenw3!j>P(AOdK&=YA+KS1H_+3E5v|3uDC1VB2#!<_!|C2JDw z3tCxH^LCs`e>E$$m@ba5BlE_uTMx&0!6j@kY`>e8%C+y5Y@}8!C*MVJY5bsm#m*Eg z!Gu;2*1#)cl&kxP;@`1n3cu@{?EJ*9!-VZ9^9>*b5@AN(t?)j&HybP+W@1})z|t5J z@d%BHf)XS9Mv1&aG(hcKI^zZPd+l3VMV~AA02Smg8T=E%Xh|jj-KZ}u-l!Box)XYO z!DXq*VZW8edaQl`cC_fs6$|pQa0WL3bzm{9Gi*;`Lqo3u`XzH7S5}+dBBHFm)fi5+ z5ZVj|^6)g1<$*Er+nReWEyI;mn$$z|-{RkYB9-2FESA+;Q$&kOTw;vO!C|Le|n>!+?Y3(KJrI%Xuk(N|IUDPYY8j`<6Q;Ux?JpVveMmzr& zF~Nz+ndz217k5Zsdg^LN(F!4mNhh@n80LmfIJPk;&{>?ytQt=~?_+c9AcNA+F}!WK zyKg2^H-h9HdIiA0W+OPne#={^nkpCKaaZYK*$Hv@wC0?myBE~38Z;_Ydh8ZayX)Xm z=w-0;$c=uQcrmQFwaSox{DFNWfwJub_;xRMOPHvIIUrYuN5oo*=5G(M3GWVgDho&a zlQG1ZZd}c%pn|mZev}t?d=sMI$NdCO`MA$>HJQnfQUH`n(I7((Hxan!a_@=oHl<;l z!eu_RRaD!qc4kNO>m+%=_4+JiM>*~uLO)B1o{F=MyP z+KEyRI4^h48noY*lykwlcY`b)>9K0gGdT0i4=%t2*kq%9Nvd~``7FUN zP%{_R8##V;+0BF_R3}?xIb0S({>={A(sc;@g$jV#KCi2#@8UAjn~aSv%)x~D}q9cmLY$WzQ8h>EWaJ3 zN8~80ti$M4aEHbuouozC>X+u$60i^&S_1~sN@mK;cv-It7WCCS!(jZ?Liu-2l*M%g zqX+OAV7Vvp+vcPeT|_Jp$W7ObYI}wOCwy3<@p#^Ltko&cj0nzK0-Fh~A?`u8XU7>c zZ>i6zxMSs zP-A?+&Za<4b%Ho7%zH0-77^9#a|UQqiDAo?rAS9O4{JJ3o$|}GY z#GbdqL0*W1JfU*2g`Q1P%|?e%$;YH-RrApy; z<{|-#gR~j;fZ7jjKe|o&!2UMKfGohW1M$LAcNqqmIdI{xKb!Z|4PycNeA|Pk@x3KY z81_WBRDZ)unaR-guqXnbASEB;k)P&)NJC4lC4qCX@S<_T$UP?14gMv}vnVuci|Yj! zVUGtq8}st^@!C^gpfY}me=!5#(ali@J!(o`s5Y!G(2sj(Bd-&V_K8k8^WXpm>{E^E zO^?@H(e5esb}GqIihD&;a!@i}eVjRd`9ubjDBsu%;zQJDIMap$JnxyWi{Jj>V>a+a z0|{VbBre*sRxiP54DWJ&el=c9G9pc~iA@wZStX-5!-IBGA!0&OehH{n?+{_}8aWc27Ow`dubC0I!PfWjd~E~zqHrYuHo3@I)F zXfTgGSLN40rvWzH=wz}vO2M=-y3$eeCbNi&5QLZ{Z<&F2$H$EDhq$>8v6CWy#S-;l z_QVfUq6BpcQ9C3Vwk8{iZ?Zh(l)~}@^QI5+{j|G!NPX6^hf$e`#$$k(shtg{knaLj zpGc#`aG)oB>mDS5wNyAN%ruatA;+`G{Vv3ZwED{Omu-;6I$3(mO?p|amtt;+GakHufZ9yLAFa^O=SSpD}nOgVtl1sa!`6BQm>UzEm=uBH{ZxC5a{q1XyZh>$$scQ8ATh3`>+a(-8Ycsi#|n7 z$d)tGqK7q4O!(FT*i=&iXP0KEYh-EOaxteZ12E;rdG;lz`}2(Sa0CXaQmki8|0Hv| z#xa)Obf#FzpF9A;$B3yYyjgu%8-~yJDP4o%DsyisYkxf~$QQLDai{(~vLEQMqDL~K zNqsRx(x#j223AGz>*WHLY~m$u7iID!DtLTZ@swbNgcoD&Z@v9TIc3*N^zvhsHRu7L zw3&J>jqUX%%*}K2uSNnhVdCZaY5!}||MOb_2q@75O#(nQ!;pj%jiNF20g2NYa6QRw zr0O6$d|>qFWo{^+EFUI$xp7JTH2xE|irQNNYHH*dWu|&7Hfx1D8N9j(r$YDD)?ht}R%j$S?lcd?G`?zkzgszp zrmVDqofRNA@?=e9BiuvirMGT)OnhQ%wNe;=50gz3avA#lc#;=RS#o6^f>I&2Othc% zIY|>Y-{h2g21JEq-3J&aIfb=Xx&+e+#eZ)>_+)@$O zW(vLg>ve*v#b3sAK1q$)`eJ{os18hQsmJ%20OlLHI&u@;V1!>}cTeRkL?mfoFy$|v zi4hh@8LNRHEDq-nb5e3RVr;*_y@krNb|`byty1q<@T=Dtkr{K+6(>NwCPq8#Vx{~8 z=^HRuD>FZ=dedM5cOODY4GIqhsrLQ7Jn+@9oX;I`b>FvwJyr-X0NJ&hC=?I)#Bti0 zb=kEXAy;1kr-Ixzugaf7e>n>TOeX>iuH!ivTuW8skv7ZhYS0Mz;7B#0#`p6tr}l{2 zp(u4h@@4kSdPEJa<(xRcS48$|@oLwN( ze3Q!#B@tRwfbO4c#r^BIZ2w5Ok!SWTYHGnrS;cZ3Q=h$W0B_@SxbL%ir25G&6CBAL zS9o_c&{h$$yO0f<-(GH-g>S!ZBwzY=T7)iE%WYWYcGq$ZY=R%xDeZDlt$LO4;yilt zKYeDKbYLhBf^~jvpB1y;jsS4>vQALaL+`%=eq#%#9Bic@iNP17Q08{NJ>9~`^+vKK}MW23Vdtwgm z4=bT;m&rCKv0B$&<)QjtOi*4}oY?KDW*^-fRB(T3qTLT^9Xy_34U_FXizLk>k0T`z zidvkkfHXx~g*M8LJpO9^@w{55+PUKK$Bub*nwHTiP}??R0|Ne4ZR?bn&Io6lSX0dx zf|e@g0th%}B6r1Daj3|wb62v;5XPfhghOk zQ^2hS!&Zpt&e<9Di71lr)R;4t)1aw;s+4Ao48+c1)lo`Y;BU?IzEiTh5_h}J@>nti z*s~%N+zXa>I93pIxIJERNR>Xqc{_Xqz;q0W04xgsZUC|$o?jLOrEOLx2{xy}B4J6v z9_}ImSW>|)Tb~wR!{>RyROF&-wDe>KAIgJnLdrBHWX?6{K4Lo-jSHEoCSIO1CbNNrQ=e zzz6S?o~ZS57`!TbJif`!a>L+We!;1+^Ziv&M4a8@M&d5Qy1Dg;B%-0QGqRC)%zb@9 zJ(#Jtz)HT^)Z*Ey*&*~nZkzQr+C{LnUgPKB!Kvb*jdTL*kgGf+bXQp;g@N~&$0h3N zda$;u{j-_pbAO=hVEkDVKX<>RxkjpMgDZX{NXjN~YXXT2ILFVE0zJ`_#2UdMn)-i= z)DDgR&58d=0)dSZT}c4|gP%)e|MvrBMZs@FjHmVL+=+~jPc=DZMI1i9x-pUSd$FVN zL0=~DU1{(6f#t7C!FETAkAkvOf*juiy4V=8H6$t?OV#TLn=Q?u)JNs-B(JHp`tB1V zN^N|Sae<{(3$&VP%wPOa(-f3Z1>27dC&H+VHmpGFsdqVmF5s6+W?g4B)iScus@drr ze!e5CR~}28e)ivItd4Zm?0!71zdwOrH}32W%xuBcg7-tGrX&{H*tE~$Vb5>w#yi4Q z$gJ{;j8Kl6?wMaN85puF-PrpES7uk=`J zrISg^iL?;2vhQhGqIk|I4|yXU?+D?op%Hf7Boibv0xr3nK4ZY=e;hz|*CuhtkX{PE zkM;aUT6<;NTa?@18MO%58yGvnf_JLP{_#vv$X8wg?lkl?*aw1C@nwhBpTfz7aU1CG z8LPq)|9}jP*yYLx@7gyb&IO4TAt1-wxV_TM>5D%mV> z(f?ADv%pFJOPS07>j>QaZ20%X{SOa6JpSKfM0%_QU%RA3uEl@b$z09L@aP zO7kpm8Zh90R(|~axAXXiiytn3xccGxhyT3%XZiex|J&PtRzZKP{NLXGv;K1o1a$ht zfA{|R!~gMi23q%vF+QoGJM-NtF8f(4NF~-PEaek`6Otn|e7E(UTK#qi?@m(D(v(C% z)l%-RcVsh9|5i+{PCe$=h0|8P%nWPls9jjmj@H+Lu}do2-%Ngav;xBzB;Y$|qwz&R zA-;vhu~e7VtEl8>cNDCt{`oiZ3Qj5bIaYjo7|0_&2Xy?q5eeLg)(F*izQb5Nq9Qhg z{?8hqXH^UctqwHsq?Ynu4A#3A&AChSenOFVCQ5ke+v>TnnWPIw)qWnbt@gUZX#r<@ z`3eQHGSEC#YrbrPuc3sQTS1EM9*1&6Z(Q%FiV0<|HLN04UWvv*ULu*)%54%D znIqb>_z`U$P>hIe(zoF+D1iB>;s8M^FFQOSCJGVqHHBm$P}8^GVJOG@Tn}r1bZ5J* zQw9|4iTvo4fCqZB^zjvn^1J7SFca}YhX6gIKHysG5BCNde97LBw7wbjn#h$x@Fx%B zimm;Wr0_92isivTyX|mZSWP-im_+Y|$KRDH^hwGmYi+c#`zd#HtHR%0zusBt-n`^& zJV}cJ=m}P-{_Oa17qFet&|6X!cu6_yv`MF#Vey7miUgy%q^6wcmRdb=YeUb1`{-&v5wTk4<4EmOT50?_} z<4TttFTLpWDpsQ7B4*mtPWaNBn9gJ16~W_$ab_Kr|BIy0q5<8OQkfS}(rs?1nCUm*?Vg4FxZA^crrryaw%SY$!Q3ojJR8z(L}ks;l4nGQc~bt zsjE61&X?h};PhLy7k=+PQ*R_nGjo4$kdL7Q;AGn3@T~5)Q01PCwU+J^QgRZ7N-Uez zz`+jKxR->|VLBV@iMnO0vb*!(Z#`)@o_`u_?VE{=9PZ4RRnm(zXGWNt<>@(9{{SHy z?<*%?1XVKp{d-*Q-nLphfS8PmGw|PDG5^Df3sp%#%qu7_iJGLDy+&42FT9JoI#h2J zK(tgbEQVvPev3gCBLt@^C*ct2DSl6F2v5Nchke$ITgi|pYZR3*1~Epc$w;3(htr0x zKG+9^?h42$9}PJNv@Nr?DtO(5#M)X>vdqaz6Gru$30upVD1afx_uL?vQ6`IE-)qcA z9n2Ft|9kP%#f1D1zWzM)Qm%RQfD>XgfW>_+LGk1hzPeZKY+)meEfDebZ6ISYr=J8k z0rq?EGwEVuce@X=(2#okuU^xK!zJ^rs39gHp|#FSe*V_W5fkn zACH{b?cJY7w%d%LxV=mx2=XEU8@yNe!6#mC8Feic^-p(nhQYNJkl>wi-5q*H57DWtx;9PNe% z!Am&;%29Aa7)Z6=&FVc=(8we$wYq6yCY^S#pvfTElm4o&<5bxHjZ z{Rc*(^9)|t*F(%Q^u)yh^}rrdX|ol}*{y#6+)c80&I<*aTDae~!;`Jo1vJU0&%;s!?FD>^ciPl6SvDm0`K1#AqXBrgGFI3mX`41! zBrYqO?8K>Dc~(6RKEW-=o;X)5hD>Q z_E12Tbg?59Q1P5aFC)}|ZQ%)(Cgbp#m$4+uSc0CwSIJp98(xqd+AV8a7Lc<#VlVU- z!E(#|frj>Ud6+#3-P#4RsbgO;R0l>yORkww z)4yR_%#}c=+`2C-)c)og2O{xDK4GZN?r!YCFzacGqh+Co>`((ohI{+#k*G9|Oc|Jw zn|m)VeG!0`%!?i;T5dwzek2Xl6d_IVj4 zltM%0bq=0*%Zc@uf(zbRf09&OWQA34>+j&XK;;Fyy7FI{=IMkAx(D)Jz%N7_=osJ%o1 z@{B1kP6|$w_58xdxkPG>lG`&hzk*fMcqqU^GZRtHonx$O=wo%f1Vt@G?d-OW6rE2# z8^X84{SyLc{mjYg^)20ueQEo2%$F=uUv~{37Zok1R~qv$RKMI%CBAxW_arg#$+JKx z*F@f5(&2w6gVjE2;vY~zhgy!6L|2y(XFFi8_M9aegkoPT1RUOjj%3wPC&_#W=xVUN zzi@%l{QVP&K`>K$*MN}#|F6A5w}R1`#}&*T60wZ`5-2-jZ5UfWmKR^T)+}5?)$B~L zVpr9s|I!6(@pj5SlPgx^1(q-TjYiE^kiKXY7Xd%akE))4@9g;QbWNRBP zd8+d-v0}3ABj=JKB1+M+i4dNk9|!?HG^zMh!S+JA%Rc`l7Bs%8#s!q{KdbsQKn6*& zt~sF(p?-o(b09D#Yzt@ssp?Ie+M?vv+jTKeb?!D8+F# zy}&*;A1S#{1VgdW8mvY1LE8>6_kEX^X(gl+E#Dz1cA}k>sb10%0X}(-n|p|$rrz=n zL(Jt*;xDU+1ip#66HOdABd4>3EJy^g1GAZU<+c%gsi}Z?!EVgybzpeMQ^M8~bRBDC zd`NkGi1?0E#D-zh@_h?Uha#nGqUd%Fqk>u;;ciqu0CVHrmchRuAO{ENWRmW%m~*b! zrescb27K{(3J;iI7f5S8a~DlLwl0fP8mIpvEF7)**gIoPIY4ZGCIVc9hg!M0*C85+ zZIDEd2KqjvSLAl6?ID#ZP3uUk%!OH*_6#{PibGj&kV580JO<*5W9G49Rc!S4 z`*={9>6od8XxEb*)YAZ_Z>}kOS3{ovZQo)F3kO@=wBd$FWIX00J)9CBC_OFgkxxt* z{MPPz<;QB4(R3%^Zbk759=$yL;+5+(o@G3FVX-t%X<(+1wcOqA9*iT8_;y%& z;-5)3NA~Zmg=R|_stgWiyA|i0-t$e$gaisoej?uw+1Gf7i6jF6nHzXLb2zSo@pENm zx5Rj<_-Il7f?@e6fMEM-i8;P0E>5nr6ESuOYq?D8nf@t3yP z$Ov8OqEMwylI^OOD2G^T?G!wib=Zu6JOGlJ=Rb>xvf&EZuAEFKVl z|28DOru}a-{5K^w&gxBAF4sQnc(XSTdQVvhdnsdO^lC*v|0+|$v!e%R5bnx2?yJdo z0oO~()tQG0`tRN&Wr8pNm)8~F{TTq#6)~Uc6di%Xo90VIk*JCX`@mr^fQj z@23d&QH-&G!o4X1X*RMg=#=1AQqvI}yae&gq0@7OAk=ymTHyc-XJu#z8N# zf;t;Sc^@Cxy%fhP-O1EfCmv(4+ZU*{>P(Gfsnh9u_02ECh$Yg#H|QJiCzHAaWvig( zWaieK=t>Oo?HT6zCEFq8;8;Wiabv(4Fi1}s^u+4|rck~hlmm6FOLjZ61k=Qb*IpnE zYq@3Yo6InnCKlw0b9a+diP5r+85JbkECp5W=9HJbpE$5M{-(aX8}}YF;dZqC7Eg7E zpCU0#S61B7TOORPN8;7A(8aI3!$Nl^*jB&2DT>JEV4OF>rbLU4UEE1e2?0P&*NNdd z!MI0G41fUTyqY(Amh2f$CVeDyKN>=}%zf~-Wg8xrftMY*O|7=#DR_AaH;4fVt3UcV zK?=8`sf?Ur?n#scK0i+=PwfmV^B|weygtz)tjS2 z0L{AGU=-{TF(I;D8dg%#G`j8(dLAdhd8;<$y=iBYh2xF6xP&e)8Siz2!=j9)IsPU? zUt#?ijE!IvQ$N;dqDOtyE|Cx_3>|%gH-2c*|AQjdsEo+T8W#X9Z+*QatQv|ED=;iS z=)ert!zIAJDG^ikVxVcD^@V-l;Y&veJ}H+cR~Twe0~V4CjlV-1==)uz%6hv7Gvx-{6(iYQb06 zl=k9lYBIrX9I#u;HmV}woTVqE^xOy6<4@*ni;Fa@G-I#0+rP+VMu;RQs3y+g97RHn)+#xm9|QS0JGh?9%nM7h=9arU0JLdKIfO-Id7r0c8_TPX@eRt|ej z@Lj*THDVkij2sdO^teZ!V+puTfFUstVcZ*lYKx^GZ;#*q^-<(m&2G((>_jv}NPyrf zt3mGd3`>yr%HGaFwqJNhwGF_Mvm$5FWq1oClC{;SZTr%`msypP%|EO% z*na=&w2RMNHd|8el=+%vSqrL;wYi@iu`2&1yRFhHA3QU~JXqf&Db~zlGsR0qJihg~ zcomJ((O@^G2zP7VPg!Rm)S=_e<#ZGtf1Q4UwgTw5(zFR3m#a^g4|2>BEz4di9fxs$ zhd3RvA4KjG21a+U|3vW_8EKA{MY7o+&g|mMrgQoen-s@UCh>5*xDG$N~x60#lQ`G7yFlltkU;JI?3or{~V5q_(?It_o}T8nan4 zdj_EK$5_C}Rawwp6_Oq1FczdAL@>N_RIap!0QFKEN67AOw2M5`)Xc+yU%L`(8`r1V zt`42UMdBxwlA*tVn00hVdODjz`ZWWj_ob`(i1!uBT$}?o#&U@^*z?#vc}`=;z|TjPfzc!Wn|>ay>l8 zXRSW{zM=9-H)TQ;*H|V-AnNMBhkq|S6m`*XCxZ%B@uVf)t{5)#djc~WF4@@`%mlEx z$TK;SrxM}VuE|m#9WN^XEvpj=x77`4n6CYo1#%4ZGsT6?ns zKM6_i5)b>LBw% zW1>@mkH$@aW!TWyKpGReU9XG;;{v2+u8|7(@jQZ7ORyk1d!#sbBR2L)B&!#lYv8Vg zQhV&eaE2ewQwOxc=VQ_kOT!ab-$R(>U{U7Z)-{$VZ+!uS0OjxA7&;QNH+P{a{$d2H zNp)5HjB`aipv)3+mEN=@Oq*!f07Y{_TCIudO|Z_*`vD{bhmo>nX42F@=X2P^4!3 zjLN1rWjd5fRRKftnAV>-q74$ktp*RT-1E&9IIMM@cT;jDtCI}|C!xzpvMs^<^-^^w zjgxIXo~X@<@)mSUIRePbzyZWI7KU^^56Tto=d@;tEx-gm6cR}Gn3R)rIsTKM*}4P= z%bLX3hif&TSrA3}=c6UYZ{)tl`dC;v*AI{>wdpunHlBWdLmNk)K4^rFswy_~__MvM zz0;doNpOs3_i`Pz(GWZvC&FY0-{RV3>-(E^O6%8EwrNgYyGsq)l`w!irx*qEyWowh ziK#XT6)JqJ%cEE{26yWY9JV+;kcrP_cw*5|<%G-mu+CJ0tn?wWefwx>a5HEl-QoOO zYNO_<5IEvM^(YY}0&T~jS6d2*gyFiwEki|1zfJ}Cge}5IDpn@-2^wPrex2aP7N@!Mq`4hna>$a9gZbGZ_7ab6>R>D=rf0zRdC#>lpdjbjOr4c znwjH@j;qt%%udfO%GDVTEOb%|&N@F@l4aQ@v*F%tJ-2f2mVnQY=QzP8oqy|nx&C{m z9?y<-2k}ceyYGp6tpH-1 zs(vDcpu+VO;s!uS?BkyQW9gG{?dEweSlDk;LG>mQpB?0}O*8UpQP>bmRfl}7`L@`r z`qqGFq+>X@aPj9#?2kJ0RB+;|o^e*SIhW;p4Z?I9t(NJ%WP7T-=OUQOD=>Z&zdU4* z(}KNqQk-odE98POouR}+6W6_6DVvaa@ddF}9WoOn8fm~2ldx<_nSF;a3C!vaTpDSN2@ zWWS`<)u!2nRhEm!H{@2{4R2{>H$_m%xWBRPO;&|<6CoAw<8~krB9?d8`{9j-35*CM6C0hk2n$QRFl@!OdZ35?zA5uE*B!}p$5v|?i#R4`npjmdpufTB#(P(o@%ilrc z*uD!O(2}(8k^{ay6y}8o4R`_huC&Kd8qA9|l&;DB;_YT=KG^y;90Pwlc5|a(%fY|HY_E8dWXxWbhYD zxTcLX-2Q0(%iz%sqL0#^qVNbNKkPa*!;c6!872wBm5TkKxA7T9Nhv>NtP1@01kZCd z71=G&Q}$@8|6}rC*T!N&j^Ufv`z|?ql&7r6arSg{zGNwWv?`;Bh*PnR7Ln^O*ytEB zR%9i;@OH^)DWcLtFL#m(cXeEPc{m$s)hd9M)nyP$3;NSQqgste8^z5wd8FmQ932ku zBa^OX<*l%G9+}~E`!G2hXTC$X6|=Z{WC*($04)BzGr69iBkyKt-qK| z_hT61CtkY)Ql*nKzf`7E7H~(*cc|cefU?ahsP98;`dcud^beo^&(bdvBW3%j#)K&( z>RIE1nl?Mh2ML(DozJlY-<)3I`?duW3aPv`;l<@Qxv%J(-p6aXJUO4~g! z_E+P@_-k75%e)P%%MQ279|`m~tvkwcF=Wp>i{?HORN*0L2AFtU5{CrY*SA45Q+b#6 zZKF7R2N`_uisNPYYa?N`oL4DU(BGIE|6q5H8`u9~L*4qj#e9gYW3)eaXNfxM`B^ZU z*_izyZHX#CDiV(by$;bonAkxAC_Crwv#LKi4I5+j-ELXAb@DdgaQJy~XPr+XIg_d; z!wnj8w1^B5>gv0y+szI1l*6K`>Blzo$Tt|F>H}BSv|=HOlc$1ZCi@P;fd$m~j5Y=m zlH=jr_O89hWV~C=JabUx6JqH4tsnF%=q%Bp(Y28*?+rx^lPS`H_kjgM5)(|EAm4 zuxM50U?R&pB*P9*d|HfM@qO$rHY@Gvoq@3bU2vuY9He_&x9N%*!LfvZ%`PK#0%y58 zLcKnpA0qXa{+#}RjPPJM%~HFDM`{7;ypaH^DKIiS;`9tmalS0^FJU4wDE0qOz4T5v zI`O5DM$-@1=#)ktN31!1E;%d)e5`iEZm0MXw!oI2xV7-L}1W4gz zk0{2J=Q&HU`1lZAawl^|4GZ2LuA9CoX0c;1dDx~uB(l(qm#EvsSHt*^FcK1mcV8*3 zPZ8^v`r!(pjq^;C2DV)r^gc$Hm2Y4Hh+iY6S8_3V`so0V0G}1I9*i6TQy7&Pa;)Oz z_hY!2PBaRVSSd`ARTaUQfBIS~W&eZ=MNM;?nf#Nc+xq>$9CaFAQ7XU1GS^tedkK@) zTH0eELn=Z{q(FL$7@)YD>}#eU*>xLrxC^89?t0UlGZ6)>gsOT5NsV+AfA3(iOdc`9 z2Dpr?LGiNHvIR!d9NA_sY(TjYpF-9E zc36i=PCDK$h|3L9X@9#*y)GAs`^V-c(z3ex$1dH2Gnpc94<(a(ZaJ&}Yr_Leo*;`% zJYP5T`b`M%5eCER>+GF!_bGKbE5y84TA1H0nV(=@oscJ^;( z^%prxi=YB4xag4-3oeZjdvh&=l}S3)e0$apLR+rhs(FGc4cc1DPQ8>z;sxW?sX z9Y%A~uJ03^A)ZK5)u*(wRc7OMeH@HD~C4G9R)) znP2nEHURD$sz&-hA3y=bnSoCV=Q)81)r@$~a*7i0R}Fl=nq zBNB3RI`6Bk_SDyl&E%(XA~4V`&Usa+q_osyb~iq+fGt_s)G!YBDd6q~?jfLle&4J6 z5dk-H&2wjYcNH56q42Aqm=^{f!ECBbN&z~zQOsQUR8`bVS|9=VEyuzcFKNnr($t=a zEY2h%V2PLz-sb}HnW{DXwWtrMdJBmHul_B~Ny+1}@*RsVV|`8U#vbj1I#%dq)FXxk z-i%W02@R!7aK90=Zq!8*Z49H}e76XkIqzw2spx`_&lq}9g#`WG(yC7TgT_jsiOgMi z>vfE?5I3!uv-AKA?SJ3Lyi3WG*1WJhBw@%XyO>l#xdN^}5w=-t5#VO0uYS@%DPDNq zxudH4svX{D4H{;u8>+?!{Dwzn-im(Orq9^EV7?pTHaLKL`kbjqpR9!>d?)g_rH-Gu zl|f)CrBebwRlH}h2=-B#@R=j;GcGCHca9o$#s83VFjdRXMec?t}(u0K;(9xf#?z6x1BoKc^QFB7VYmaV_$`8eQcLxc^3{ z7%kjASy8WbwUfmqaQ-%`dbe>ChOG}jCX>PfZ~XpkJ43ao4pO(}T63dF1E$bo90)!6 zf|v-TA!Q|Oi>5tGg z#a~?CFWkQ#?HI=rSN%D%8}dUZp=oPXTl(We)r^S0Ib^0G4bYH()*d+QJvkf5l?dQ7 zuGD6X{6&P{M%9zuikn!*sRViQ=m>V3f$`=rIU@qo-NA+Wmi8Ijf*L zzBP-(L4&)y1()C&Bsjqd?(Xi=xVuY&I|K=GaCdhLc5s3Pf!JK{*Ear%nCvTWPq=(&7=jf!O;6&!ZtF>Of zw4Zr_e%1f9{QadeZEYH!kU&-gXmbt|zbIR8FzVv)1a^XUUWyh!VMab%Cdqo1G`IE; z*8tnUQr9G-eE%sZwOC6T8$P9j=|dam%0zG%U}}NEYm%Nug7gzJ4B}c0JP`J9y)7zh z>5n%gHksq^S4USqFV<_{Tck^tO}~bhfz22idCY*zro~d15{CU;6cmr&Z%hlTYX*N zMlCElE)q4SeT=_iUt7^2P+X{bhVrR|Q4O(9i7hnpXYG1m!|A&Z6j4_3`JU%Y-qnum zavxod`=F?aoHY*S&M@Z6B}=NS@G*Zcc~H0Y66MzeZkz@2I~Iv<=QxidR!JXZp>?=%w8qANoaidVY&mjJuoX)TE@1|tC1>E5 zpG@NbMMWOCEO6&I8^B+CNB~g~!ob)dsC+J9cK|~8TH%-JQ0{(B=gno8iRu-v?jSPU zycmRn&Yn)73q@DxTR51uxa0Svl43{AxkU?FEZA_X$H)edfBzH^SbO@I?lvlMDL!Lg zs)go{qU4`a(VM81zN0EqieHv&OL25<#agE)ExT}lq9FR75pG&0ZSpn< zf4N4eaX*TK)ucsUhx07LYO)r-lxovTQj%b{0hPg}UJF)1&naY;h>E`Kyv)c}3u6xn zgIjU4_?$M?=$BI^L{_RnM6KyL_%fg>Ibm1d29D(xI z&rWQeW+V~ew!w6iQ}kQxGVP-7EvefR^iTNFVXtggTQ5HHzojKcy7%GNCw^>c`i?`p z!k%sCq_cZrGa^-Pqrcl5EY+y#C-JG=HekSyAtWYeRt{pAo(#LcA6zdHJ%v&a5ohD* z=SBH*TA;`feSucS_}_n5fb(CVji7oD@512TYH0rD6KBYF8A)v#D$d zQ(Gq#5>8oxLfTXcf1zZPA(QilqdGf0xU4tBQJ7zrJX2N-UGqrvk}pgyy$p$|`aKTg ztz-1&@gX(@{C1xGc-k`~g2ITa;lQH%z)J*``BTuBvyvw{DEV^etz4yPtbX8O`$mo? z8uZ-5b8c-(DoG!EOHn+%iP-txwwD0$*|J~%X~4lc{N`f=kj7?r;ERdAx~abhF^+l9}jBZ7B?U4D-8lh-@2 zhS(h&4FW^f=hh-h#W<8_l0snPuv*4N^INc_Brke)|A(Vqlj|qn*SOvpud(W|M6m=( zRf^oYY65I$!~^h#g!C*B0<vxS?J_h~fHj(GXi0aS;lO z!D|#PkTKk|RIOaHfRw!zU2y1^+@9^G3frvm=aaBE3|#0Q8v(nwg24LR=*f9~1%37U zRed?G2Q+dS7wV6pOBxz1rzOo_5m2OaKmEP+xF$=pRj|zyrP!>veSa5z9WM^?7_2v5D`Ok%2}T=NPm-*Oh+>;!HOxla#}Dl`6{XQJ50Bv6HW_4h^=&5)!8KR7SsHUq9BVB}{zs^oPl#O~T1 zMk!4zR+zm^#uyRzgxc5R2=dn?vrM&If)0Q?U!^#mqbL_4eW4{2Yxy|pW|9fEJZoif zlQv>gMS%SrH?onu18W<>dKb*EZzgv8s7ZAyCpT1yz*1{;!C;UdVs9w*O(L%jXH5cHk4DC$n zed)&Sty|D>%Feb*7DtHU1eLF*n?ZIB#ZYSV?dAR0xVYaTcX=t=WqTswO;h8idm{1x ziq>8CEf_SX3p(|Vwr<@=RhdBB5_{fCs6d+NF@%4NdzLrp4eyk%U^9mm4dT)?b>#adHFv4sM~_~w8+i;qjYUShwss$l za~2#qFb8I>N$MHsNb7QTg0!v71<`u#Utg2B<==hT94&tBe>8ojli}ZA;6_`)QYH%5 zg4aWm{ths9J#kZAC4Ze+F*WzY7+WF0^|LD_)O!;W2)Uf}jZ5r)7`Az1xOVQjC;CvS z@Um|^#Q;6%U7%#=AxqZ!Mh?kMJ%XedJ?4iThl30aE9jOQ&`Ql^qm+Jn;3NCd!qx~k zLO4ldnQurwX2*l_QX7+V_)(HA)diEwY1RCOj;Yl);55!bm<$Rk#_DvYS~r)6bGK>2lz+t~<%qQ*W)PLffWRTC*EgKL_byHpWpA0~Gf|_EvOfXa2 zZ7NQ@!_Po~a6i~e*6DtgQR|ho@F1skX+(t{h7&8Nr0d4!oB?R< z@D22iCNT;F>y5Vw+g_-mmj=%QUX(Dao?tSeqnh=-J_(F)j295INV?YDGJ9jPAbE1l zOY8)$C?v2(prpxB(^xZsMQ$1DJjaIz#Lq4eM&s>cxI~bmDHU(!R{XyPlZ6-L9Bs)A z>oDgtlqqPM8*rx<#h5%7^w1&H)@|c}DyE`wX_G z$gpnx!fzIb1nE!}gcq11hyx+Z!CDqd$9PHet1>>AS*`n7Ix##tj;srBbEk%4Jp2wQVre=ZU;AHj{LyjHuVQ2e$c10ce4YsC2_pGVS%TYk#c_9H zr~+7Y-=zkn1XVC+|IpY-^1NG`mC*-^rt$ThuO|vpadWYPA3LVM#rx$q3DjyED`X!= zfPGP|c}k{hxkSHYfu=$eWC2mx@4L1UZ}nHcixF@3w|2B;6W#Y_loXXBu;2_iL}Vz1 zpd}W?OZ;&6CZQBcp54nbE5BOz>wOaz2U^3yf|zYx@VDOIb7`(o!sheFbev!t*U=`* zt@^>nLm|%8?Rl+X1>kMo`FV4ePTn)uw6;+OJAY=~L*vNnUA$~}%mmtktRuOIPHv<0 z7?vYk^^gk?NMO|P zxuU~YJBqxmSV3$=>DFUsSBg^%osJunn(-%r#CL5wx&j#InAT@Z7KU@4 z&1q{}J(nt?6OycHMSg@pB3q{$;&(*$X?)))RE|# zAc>|r+k=Z9hqa<#%~UcB>7VYli%d9pZ6=5nb z(bted-4V6Ruuu}H$i+;V$sSWVxkWC8lXNwDX){=u1P9}u?prf5NOMyfvT+iZKW^9Oic@LuCPXf1|g% z5A>|R$?#7<>tS_eWU|GRxIG_cUKg1lW?gN1jL=;;ike`b-jnI!) z`V^iKo_Hzf*lyW&7@K7RxwFd%oyt=78g7(*n%bN(sSp_A8bMdRinqw(i(h^y5j5QM zmdMJjAq3j<=rg}X*%mDf>_9j8Qqi=Ii&Mg3rxE~-JgncSNCl)hSp-UBN7)hw3yOW3 z!$#qr#Kz!3k){o?$T_-RT((8LzcDg{ z0yNd{AbHbi5A9m+a;YCw8OmxyA&R=3y%3iI!LS8)aV4SPik~EbgCkOAIU@MQ=esf< zm8>J?^U2HgatrLiD}mSRE|wqrdnLX><#bZ+MSE5LRP9;i)&eW}4f$g*uS#V|FrIc%qvp(`tK%J%w;89h1wvLjX7n!&Y^!w82oQJ3K$je}rkdPC+HQ&r5zQf|gDffr7M zS2>)U3D@iukwSsshPp{MA~Ko!OY#+mFbr*}I<4l#9Lh>YnAJ!BKK8ln-l*EQ5kRM% zMaK z?}pl4Jf9Dad;{E1;ml{(^tTz*ynx^ft{Mo{av`-0}&}HsQ}5EPXO zFtVync`%&&7LwY3Io^uzD?#8d7h9-j@lcDc&=-TYrup4xriFK&2fusb0bUnugz-T| z6!2f0_ZpQ0@^m(UuAcl~QRBa1>T#mfv|1rq(JU=LQvCQ{n{u;n>oyh6C52SjG`>6( z6y%3!^cY+AHgKJ-5SA7r9*q>b*CQn(U)kA@>)2h%*^Zum=vk^5@~+XpyGT2zxv`Y3 zf?8&l{T1AHt#y4oP9P({2cRo3Vcom%b)R{)#xJpDtJ}9RIVmp^EEnP!RcHfA`*xby z?syIJ4pd8IKWQw#9|koO6P|kUjn0uC3$MQPhd*nv9j(x@w2qKnNeOqRP-;gGsoAM= z8kuIcG=^u=H4m3RSs5!P!P^*uXTSq=OI`s1GtcGZu?FJYzeWgnfG7fO!c)BSWSCs# zTFtNR_|9$%m~P&bQg+bxOBPMwDmDnz@xpM2(W4X|oP(=Jp}DFGq!-mrA-4x0M0I1* zQMq%U@NfVJr{%r|=e;PM^Q4c%I9QQI`+xOS-bBo5OQhdOQA z&8oJQ(@aMvNZ2g^j`~WJgLc`qBw0S|MC-eIgFA}FW1kFvD1;%#q}6MbfM;Uqejv?O z-U_HH2E<=3u@Vm^1RGRI=x}I$E>{d2Nx~GSS?`JsvoGzZ?n;?qPhpNIiYklT4xu79 z;TNzYHK1^Me9Zf3hMTLOqKG}ZBq3G4d1^Js8FgQLb-m0Dj7lPTpad2PQw1}Zx1PIJTi|V zDo2W+;omfRs=g+X6%0W7v0{25-)6Kun=pmPFNUyDtJ#K2KU33p^HT46ef=oYLn#SW zD;Y)Zpl>S!7_kF`^i4wuqKu=S#eK~YuLNlvEcW??669`u(Oi7wdqdpF$OS%DbPiIZ zG$brHd4sxB1V|%;2RdUkGM}oe)jptynZ*;1lhjMYloQKSW*}H`42_ePeW_*4w`CE9 zB^f^VUobB$-3qXf*ecr9on>&-L=#^x;RY+yU+#?pByz zybmOD71R^1LwnJdNEPT%9s=@@g~0C-EXoM8R{|?%Qm4O8Ia4c)1Y$X7Dr0rzfHb7O zI*9qswy$HvFJv^ruMByLpBPZNE#OCMmwYz@4k{7o3H^uUtF>ThT>9}?egxg(vcS&C zj3|C`Wm=Ey%_Q&cK5uIIWK`O4%OewqqIlCE6R(@|E+ZlC8tl9(;>YqxnM&ND;6PG0Y1A9_e8Tv5_f@g!rC=n|%iq99*WA>Z1!l zU>7l~0{ac5C<)s{vlc75IVW*)X~w>F8^MHe9XW7lG3sPXfWuYbw|FacoZ7jeWL-z) z?Nlr+A|u@AL1$e@Lqdy%W*a-QD_WGFA3)Cqs@ztHnbEKOf>?)|>EL%7+M4KE;U;Wl zPwzfB*{xCqct0Q$R0$4kmK*&#(o$ImU`yq6E;XIN&3@nKj8JS~ie%!hAD@a5J-<%R zTQ3wh2Zp7%IGMu)Sk+iimm7oQGM($zK0Aq3_*UUjk6B=Nq`te7xm+dXL@^8B94FJ_(_Dg(gY&qFu1^X6#>Gg=DD3%r zZ3Vv?Y9253)noE4ZHVlm%I|%JE#@`%aB*VVbl!*E_qRyfu@9>m^)JxR>3ASJw7M{! ze*;`7vHt;Z@j$OQ{{Y;-ED!Hb{jo^Dru<=ftp8?tf5g9l59d$+>$d+}f5(42#vcvq zPhmr6bWKBx*E`uk|I6}khWkhS^ZftK^8a_Pzn1^M{a@Fg`;2E&kQdxv{^*jCGzl%A zBEX0Oo*@IVL%;d^%DI(9XGkM*