From 1aa530ce07ebec55e8f77a31f7ba71173cafbe20 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 21 Aug 2020 17:21:58 -0700 Subject: [PATCH 01/10] Deshabilitar saldo de anticipo si el saldo es 0 --- Ventas/Ventas.aspx.vb | 57 ++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 24724ab95..ade3b1824 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3771,6 +3771,7 @@ Partial Class Ventas InicializaDTAnticiposAmortizacion() ChkAplicaNCAnticipo.Enabled = False Else + ChkAplicaNCAnticipo.Enabled = False ChkAplicaNCAnticipo.Checked = False End If 'If DbRowVenta("SaldoAnticipo").ToString().ToDouble <= 0 Then ChkAplicaNCAnticipo.Checked = False : ChkAplicaNCAnticipo.Enabled = False @@ -25937,39 +25938,39 @@ Partial Class Ventas If CveVenta <= 0 OrElse EsCreaApartirDe Then If TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count > 0 Then - For Each RowServicio As DataRow In TmpDT.Rows - Dim tClienteRetIVA = ClienteRetIVA - If tClienteRetIVA <= 0 Then - If DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then - tClienteRetIVA = 0.106667D - ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then - tClienteRetIVA = 0.04D - ElseIf DdlTipoRetencion.SelectedValue.Contiene("4") AndAlso CBool(RowServicio("EsOutSourcing").ToString()) Then - tClienteRetIVA = 0.06D - End If - ViewState("ClienteRetIVA") = tClienteRetIVA + For Each RowServicio As DataRow In TmpDT.Rows + Dim tClienteRetIVA = ClienteRetIVA + If tClienteRetIVA <= 0 Then + If DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then + tClienteRetIVA = 0.106667D + ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then + tClienteRetIVA = 0.04D + ElseIf DdlTipoRetencion.SelectedValue.Contiene("4") AndAlso CBool(RowServicio("EsOutSourcing").ToString()) Then + tClienteRetIVA = 0.06D End If - - Dim TotalCalculableImpuestos As Decimal = (RowServicio("Cantidad").ToString().ToDecimal() * RowServicio("PU").ToString().ToDecimal()) - RowServicio("Descuento").ToString().ToDecimal() - RowServicio("ImporteRetIVA") = (TotalCalculableImpuestos * ClienteRetIVA).RoundSQL() - RowServicio("PorcentajeRetIVA") = ClienteRetIVA - - Next - TxtRetIVA.Text = TmpDT.SUM("ImporteRetIVA").ToDecimal().FormatoNumero(2) - Dim PorcentajeRetIVA = (TmpDT.MAX("PorcentajeRetIVA").ToDecimal() * 100) - LblRetIVA.Text = PorcentajeRetIVA.FormatoNumero(2) - If PorcentajeRetIVA > 0 Then - TrRetIVA.Style.Add("display", "") - UsuarioActual.Empresa.MostrarRetIVA = True - DdlTipoRetencion.Visible = True + ViewState("ClienteRetIVA") = tClienteRetIVA End If - GvPS.DataSource = TmpDT - GvPS.DataBind() - + Dim TotalCalculableImpuestos As Decimal = (RowServicio("Cantidad").ToString().ToDecimal() * RowServicio("PU").ToString().ToDecimal()) - RowServicio("Descuento").ToString().ToDecimal() + RowServicio("ImporteRetIVA") = (TotalCalculableImpuestos * ClienteRetIVA).RoundSQL() + RowServicio("PorcentajeRetIVA") = ClienteRetIVA + Next + TxtRetIVA.Text = TmpDT.SUM("ImporteRetIVA").ToDecimal().FormatoNumero(2) + Dim PorcentajeRetIVA = (TmpDT.MAX("PorcentajeRetIVA").ToDecimal() * 100) + LblRetIVA.Text = PorcentajeRetIVA.FormatoNumero(2) + If PorcentajeRetIVA > 0 Then + TrRetIVA.Style.Add("display", "") + UsuarioActual.Empresa.MostrarRetIVA = True + DdlTipoRetencion.Visible = True End If + GvPS.DataSource = TmpDT + GvPS.DataBind() + + + End If + End If UpPS.Update() @@ -26166,7 +26167,7 @@ Partial Class Ventas Private Sub CargaAuxiliarClienteCxC(CveCliente As Integer, CveVenta As Integer) Dim ObjMovtos As New ClsMovimientos() If ObjMovtos.GetCxCClienteAuxiliar(CveCliente, CveVenta) Then - DtDatos = ObjMovtos.DtResultados + DTDatos = ObjMovtos.DtResultados GVAuxiliar.DataSource = ObjMovtos.DtResultados Else GVAuxiliar.DataSource = Nothing From 0e282bfe516c43316e9e14fe632e9094f64f43e4 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 22 Aug 2020 11:17:35 -0700 Subject: [PATCH 02/10] =?UTF-8?q?continuaci=C3=B3n=20de=20documentos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AF/CatCheckList.aspx | 16 ++ AF/CatCheckList.aspx.cs | 14 ++ AF/CatCheckListActividades.aspx | 76 ++++++++ AF/CatCheckListActividades.aspx.cs | 108 ++++++++++++ App_Code/ClsAF.vb | 161 +++++++++++++++++ App_Code/ClsPaginas.vb | 1 + App_Code/DtDatos.xsd | 28 +-- App_Code/DtDatos.xss | 4 +- Empresas/Grales/Formatos/RepIVA.rpt | Bin 131072 -> 131072 bytes .../Grales/Formatos/RepIVAAcreditable.rpt | Bin 131072 -> 131072 bytes OI/CatDocumentoCategoria.aspx | 8 +- OI/CatDocumentoSubCategoria.aspx | 12 +- OI/DocumentoDetalle.aspx | 22 +-- OI/DocumentoDetalle.aspx.cs | 166 ++++++++++++------ OI/Documentos.aspx | 17 +- 15 files changed, 535 insertions(+), 98 deletions(-) create mode 100644 AF/CatCheckList.aspx create mode 100644 AF/CatCheckList.aspx.cs create mode 100644 AF/CatCheckListActividades.aspx create mode 100644 AF/CatCheckListActividades.aspx.cs diff --git a/AF/CatCheckList.aspx b/AF/CatCheckList.aspx new file mode 100644 index 000000000..c7c954225 --- /dev/null +++ b/AF/CatCheckList.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CatCheckList.aspx.cs" Inherits="AF_CatCheckList" %> + + + + + + + + +
+
+ +
+
+ + diff --git a/AF/CatCheckList.aspx.cs b/AF/CatCheckList.aspx.cs new file mode 100644 index 000000000..4742625b9 --- /dev/null +++ b/AF/CatCheckList.aspx.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +public partial class AF_CatCheckList : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} \ No newline at end of file diff --git a/AF/CatCheckListActividades.aspx b/AF/CatCheckListActividades.aspx new file mode 100644 index 000000000..e4179f25a --- /dev/null +++ b/AF/CatCheckListActividades.aspx @@ -0,0 +1,76 @@ +<%@ Page Title="AF - Catálogo de Actividades de CheckList" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatCheckListActividades.aspx.cs" Inherits="AF_CatCheckListActividades" %> + +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + Catálogo de Actividades de CheckList + + + + +
  • + +
  • + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AF/CatCheckListActividades.aspx.cs b/AF/CatCheckListActividades.aspx.cs new file mode 100644 index 000000000..f21d58f7a --- /dev/null +++ b/AF/CatCheckListActividades.aspx.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using Extensiones; +using System.Data; + +public partial class AF_CatCheckListActividades : ClsPaginas +{ + private int CveCheckListActividad + { + get + { + return ViewState["CveCheckListActividad"].ToString().ToEntero(); + } + + set + { + ViewState["CveCheckListActividad"] = value; + } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + CargaDatos(); + } + } + + private void CargaDatos() + { + ClsAF ObjAF = new ClsAF(); + if (ObjAF.GetCheckListActividad(-1, -1)) + { + GvDatos.DataSource = ObjAF.DtResultados; + GvDatos.DataBind(); + } + + if (ObjAF.GetCheckListActividadGrupo(-1)) + { + DdlCheckListActividadGrupo.DataSource = ObjAF.DtResultados; + DdlCheckListActividadGrupo.DataBind(); + DdlCheckListActividadGrupo.Items.Insert(0, new ListItem("Seleccione", "-1")); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarActividadCheckListD_Click(object sender, EventArgs e) + { + BtnAgregarActividadCheckList.Text = "Agregar"; + TxtCheckListActividad.Text = ""; + DdlCheckListActividadGrupo.SelectedValueExist(-1); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposServiciosD")); + } + + protected void LnkEditar_Click(object sender, EventArgs e) + { + BtnAgregarActividadCheckList.Text = "Actualizar"; + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListActividad = GvRow.DataKey("CveCheckListActividad").ToEntero(); + TxtCheckListActividad.Text = GvRow.DataKey("CheckListActividad"); + DdlCheckListActividadGrupo.SelectedValueExist(GvRow.DataKey("CveCheckListActividadGrupo")); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposServiciosD")); + } + + protected void LnkEliminar_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListActividad = GvRow.DataKey("CveCheckListActividad").ToEntero(); + ClsAF ObjAF = new ClsAF(); + if (ObjAF.DeleteCheckListActividad(CveCheckListActividad)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + Alert("Se eliminó la Actividad de CheckList correctamente"); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarActividadCheckList_Click(object sender, EventArgs e) + { + ClsAF ObjAF = new ClsAF(); + if (BtnAgregarActividadCheckList.Text == "Agregar") + { + if (ObjAF.AddCheckListActividad(TxtCheckListActividad.Text, DdlCheckListActividadGrupo.SelectedValue.ToEntero())) + { + Alert("Se agregó la Actividad de CheckList correctamente"); + } + } + else + { + if (ObjAF.UpdateCheckListActividad(CveCheckListActividad, TxtCheckListActividad.Text, DdlCheckListActividadGrupo.SelectedValue.ToEntero())) + { + Alert("Se actualizó la Actividad de CheckList correctamente"); + } + } + ObjAF.Dispose(); + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + } +} \ No newline at end of file diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index c8f341270..ebb78452a 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -3995,6 +3995,167 @@ Public Class ClsAF Return Retorno End Function + Public Function GetCheckListActividad(CveCheckListActividad As Integer, CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function AddCheckListActividad(CheckListActividad As String, CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CheckListActividad", SqlDbType.NVarChar).Value = CheckListActividad + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateCheckListActividad(CveCheckListActividad As Integer, CheckListActividad As String, CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + .Add("@CheckListActividad", SqlDbType.NVarChar).Value = CheckListActividad + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteCheckListActividad(CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function GetCheckList(CveCheckList As Integer, CveTipoServicio As Integer, CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckList", SqlDbType.Int).Value = CveCheckList + .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function AddCheckList(CveTipoServicio As Integer, CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateCheckList(CveCheckList As Integer, CveTipoServicio As Integer, CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckList", SqlDbType.Int).Value = CveCheckList + .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteCheckList(CveCheckList As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckList", SqlDbType.Int).Value = CveCheckList + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ddee3fb68..0b5f11d3e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3958,6 +3958,7 @@ Public Class ClsPaginas PaginaDict.Add("/AF/CatActividades.aspx".ToUpper(), 768) PaginaDict.Add("/AF/CatCheckListActividadesGrupos.aspx".ToUpper(), 769) PaginaDict.Add("/AF/CatCheckListTipo.aspx".ToUpper(), 770) + PaginaDict.Add("/AF/CatCheckListActividades.aspx".ToUpper(), 771) PaginaDict.Add("/AF/TipoOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajo.aspx".ToUpper(), -1) diff --git a/App_Code/DtDatos.xsd b/App_Code/DtDatos.xsd index f4839bec3..f64700eb6 100644 --- a/App_Code/DtDatos.xsd +++ b/App_Code/DtDatos.xsd @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -137,7 +137,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -179,7 +179,7 @@ - + @@ -215,7 +215,7 @@ - + @@ -235,12 +235,12 @@ - + - + @@ -256,7 +256,7 @@ - + diff --git a/App_Code/DtDatos.xss b/App_Code/DtDatos.xss index 3d21fe6c6..e0a664890 100644 --- a/App_Code/DtDatos.xss +++ b/App_Code/DtDatos.xss @@ -4,7 +4,7 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + @@ -16,7 +16,7 @@ - + diff --git a/Empresas/Grales/Formatos/RepIVA.rpt b/Empresas/Grales/Formatos/RepIVA.rpt index 9010bd4687d4535bed3da15f6b9728a52993a4fa..d3b3d6240ee26e52583433e6c65c94422af9a48c 100644 GIT binary patch delta 9929 zcmZ8{V{j#0ux(Ckdt%#8Cbn(cwoYu@#>BR5&BXR3nbd+**~udCMXuHJvUR&}rL zpdi?wAlM`p(g(2rHB>OLm;XY*fA|K0K>s)U^dBCZR6qb!yHE8E$P6`!f9xE|uYl6H z7Gv;60Pz3Mg1%Gye+<2TX|oj%1(9AXCdcFi9&e*N+{F+gv{7Eq{fm-TbxTQN&`Jt^ z71Nvnz7U?iv~phbCq2L`ybIfL&8F$(V9e5WjYz!Z{X;ZJVBquxWJ>g+fH|1XJ(Fer zn2|7d!!*3~)%7hbE}6RmQnKysqe%I(m~PV4c4M)D1dvG4*@eV!&c$omsms#trkKuV zzFN(E$oYDGA)t6@;)TjbXWhxHKC=w3o`qwoV0%xddGXS#c8Y2k^7lwcwtzJZ<*{HWDb1^JwiBo z+kYfDhqCbYlmw%Io5*;)eKuhP%B4qiTWgm1Z#q-RF4fH&y=a-Efg>6OP|2UHow>|g z%)kKOf22<~&~p*7eT0ANhWfB+ZGi5*6DW zby(%O#CJ!Jn0bojqzcpGnoYOxmDY~rFB!hvv0RfU5D{|ZDIUbfUi|(Pptp; z;B&zvHluj}O02*Ds{x(|Kgb8=u0M@Bd{GgN*;R1NWlNO3kK>FgOQZL|{H z*~w8cWow@r5dO2QMW8v=X=peMC{My_`h2nR*TyB8%(j({oirs#P3=Mh=c2dx=?wBn zeTEbh%OgXJ2HuZL3fG8{bZ1c{C`y*fJy7VG@Z8w|2@D%;H<#{cB&}A@dCZx(MC^vz z1HzCo+e#sFh8A~+azgmRYrnCz`XfQA)f@Mw@~F+L#p35=A;^~A6>7yE9&d47uUIc3 z$wJ&EdsDe54Fb*3=MP{~~aAW}=_>eC?YcZH!RYx3!Ts z5$@aE1CV2@67yFM@12#9O4%#Rt0YVxm*q}QwK{bl-g@_6{=nY-JH=@wE6JR)xfgPM z8unMzAIJNm51|2@iMWxR2y(JneHVjJ;k7X~(duc17}$j{q5gQ%@4(N`tBx>%iQFun5?`j&$!c*>KsC;Y_8i6(;% z`*G3?j;G-fFw3fO5tiw>PQPM@z8@;}4UUd6Wew#bIp^_LWH#p}XqDprI*2D105EG? zc)gKaez9F=y5qJdNkoaWZqk!%P3m|j5`{kay5iSGK>dLf_X62T{F?XSe>-MKt+i?JIeAHtUex|eb5+v1Y9h3cRrcF*#gl`@@4Zd_=LJ%9 zUBZkA(Y2qb) zG)@nme+QVbc83IolB}T@G7|paU#8o^*jC1Es|2nly&SE_A5hdoY!c|0o6fD@jflIT zkig%|x6ciALDjED&3CIP^4rq?6oYirEiWmqIyNE+dYKLE&t)&_l4Mlo3fpWDGozH| zpJ~3AJze%|t^)%XhBtV{_Oy;@_TbEu_tli=>ADH#gr_26V3i#)w*~!;L2t)(gZ^WY z)CKh0#ZbdGF-%o)fgzhmA5EQadyY4`Z_Nf0Amh7{{_>}>T)cROv8D0B^yhUJKY|vN zby6;^2uWqyoUK!EO!$b`91|nS&+dSuG@W)h=QgVRH7~C4rjuRN?OJgQXE4d+2W!IV zvlAo9PTTvYw3efw3c3#W!Q#tP_j!f-s07{|%cq(fA!o{Kq#KSF_E4}O#Kz>MC`r8U ziS$Qk%yK5WshA`+>-or84AMPOW@v>lO8v31@m)GKL!yuBX75j44>`3a0M3+`O&UpGPintoy*hNkxJZ9)M?; z8fmtHHNV!w{wBzfY=sW~@X=J@K<|vaom5|Ts;T{VQkQR+l_JE&+i2gwtjS=FS}*;* zI7hQT@Dq8l#X@mb4{pki)kR`SEn7#0$F}4P^E>6K zJ?Tkj|3y4t&3?sgs#@6OTp=CDqm za3Au!)l;!BT18rmNl-Z0K)$!5n`#rcD3DFmj0t$zW&O87{21Q5tBHU zCTTM|E%|fy@aB?KfjQ)gGz0|urSqW3jnHUDID!v$DlI%00^-@vOH({K+YT8EZ#YET- zm^Dg@7XS}W0;o%*W|n%vBLa6IS%G*I!sR3^ge`pFP7#+^(Dvh&-T`*CqLFyS zB)t5Pj_8{33+X9N6m-KSM*C?xo2R#do9H@_P{Wwm>`!Bt+Z8o2dahtyIh6tl(FKDzvK27cchi%26Yb}402 z>1#fi>fh9-$sa8H(nV@o)#b37p?l}gUz+G@}boQ+ggf?Kd=($-WZYspQG;vLpknpLy zT4hJAA>gi)leaBUS}h2F56tU78Kh?MAbzBH_D_i6f;ha}RIldI5=bS=xH6Q@93Jo| z&u~yv2!ULEK7LXxadnTgLEzv&Od#5nmOGwji8c7FyAxSye{ z5ezOBPWdF#q`b*6KYZvQlpGq!OShvZn|VdPMtGQ{f349&ipRlPa-h~ALzOkCxbQ>o zCj)`6WHy^mfv7@kmCVRJ^!aJvSRB2x%9!>jdBB&&7p)Y-uQCP#H&_5QdaPw~<|2XXGFm=HmyFY~^j#IgqS6g@w*I&{C%>(ku)h-Qz%Shgf@+ZV?Q6LgQTJet4==3{PgwjN>-_o&eSzIEEAh&uxG zYz(ln26xakFqD>t4cOv6oFDfPy&+1yLR41IXYp6EbL53el+gO4p7q( z;uZdI)lbATTPVD3uTr`LeJ~FNf*K@;FfPGNHhf3Re60t(Rt_AyY0Q5&^`^hV53h@D zZ6F!<<-{T-PJQ;z@GS&PF|l&b2z`7_hPnas`VkO*G|*nYp*ZQ6W?5&!-rbELZJ;ms zop-EDv-JTe0aKHU|L&fVvnGd`MI@EP3o%iSj=zm!rt4)2Lr|rs6Ld)%;|p6tt!11g z)8wWiZ=1h@Y}EKSZ=!w{Wu*uw!N-w5K-|mE3>h}uUJ9B3LHBl7jvM^vvUv5uMn#5t>n!necK`ez-aoV_FfZ zZntkiEro1$^=e%XeN!&QLQv@c!_@F&iDH!oawCH5X_2O0*_yVgSQW{-G^1DXvm^1y z2eYPD#p(43nRO?ZM1S1pfO(1N3Vbh>lnf_T7;6wnL;qdW>_N4OL&?WkyF>EVxAn~> zm)|3FEoWj%cB?AiS*~$h??Qv)V^wZBZ#7At7@B6MYJFf>52I}&n@VA@eHg-~Gsm38 z!A?2n$nZZ7C0%`?)qLlyW+`qb`qXQaIdwvE(MPhh4#SmPS|Z5mnu&;OoQOvcBiqq& zvK9xrjWkt(Zbq~z^(9;bZ+Ex3mYFa_1bUENp_7oRw{C<)x=YB0N%XPu`s0kHZ$f0K zXZKldyYAXt7BGR0H+-j$&DAfn`Hcew zERxBp4fEj8z$MOyIaU(?Q1N7zQO|l&SWz{n+Lqju3X^bb5NFqR69>d`$3c=5hwzNF z!e((0;_8)6mu#o+44CgKPu<$tK56ExHY#n^dxRF5KynTYOqGUoge2F3X1Uw3wk~9| z%*dQf&I48YHaeF>Ryx8aDTBp|SgRlf^UQTiaAAR7Y@R+Yg;dZLS`Wf!7beVRYk_fX zDg5JG0k9$13#?hJ=d#-ZxNDYeRK^Sg(u0Q=4MyE&Lf=~=s5l-st7w#8% zI#+A(odB-wzO3J61*o!4uiE`NNU7-^C!}T}t>ZDYN}*FDdsz6hw7EiIyQ>J?IvtYL zMC3rBx~0U@@-lLw22=T2ap`ksYyT%_zuw|sIRo9RoYMjG@;T%$XbGD>Z9>C{ndhUu zZ#DNF2a@3z*2ZU%bhk?W3@CD_@rd>)pT62-0iq`%jE4MB&&ynjT`smDR&OboSZ35K z?boM=7*Fs{cmJNSL{VBr@X)C~K#^K+IedyKhUsQmi)UKkZdEjp*}o~7}m-a<$~6UkjXQ^ z{(EQz@7ZLiVBz0{?Q7LRO2=rMcVt=9c)4Mot9th6qe>j3!{ytGg8BAUks5|(sv zra<(o|6@pU4EhZ5qkiRQ)nc@;BkvC&k@PB>muuHw`OYwnU`&oQ+np;v)h{GwUQbUB*;7O6n>1Z|0?g2iAG*Ji(;vyG*#5 zK(Uov%^Q;{|my0%(+K>R=Y|uq?hWCpRb}X?vW4d$W zCi(OBpTcv=I0o|l^OjSsDBqL6k|SmCF%sQd(&(Re3A@Y$pTQDlvcVrDCDfwkwcCJ%1+Y zPXczCYBE2<1AZukX?p}oDV_i{cnkI4)Q?n<&bD>Tzw5>f4_u)U`0qptnQlB^>a5`F z^%DbXtoj65cxC{d1x#(WT4N(v#1lq{N=5TLNFO=QqJu^U@gg+nM${~O5AaY0TtAT6 z!TkLLe;UP@8^VW+K6_4xk8H&I{0T27sQ~iX_f))kOv5yvDMD}1hVeVBgo^PY{nD2} z&(#Osn|1tA(A*!jKS0dL)SmZeWx5!|LUeXdE5x&P{p()3b)pS^ z(=z-i%NJzKH;Fl4612ZFn6#QYP{S8$fc5xzh|8*?SfpXH-MLS6x`Fh(7b;Zj zmm*2}4oa0DV3~XK!KJoD=78%Svdh7KL_FhJ~5j=c^c2-XUd#lqPh5q!d`iB$;03Mq7BxbWIXg8 z62Gv3rxjseRyeiTV^$>AesrkV-<+-QxCIVrOH)18z%_;=Pj#b+`)|xhC>|+|;}c!W z4BaTfZeykoy3zrbH?7M;pgn3yW4(q+`v#bFw@a}d<_6t{`^vEa4{TCw$2HUCZVr6Y zewM0Pa?2fe+W0tTuXwF#mr$@TT}+_e)rjMvPjxm5;khg@plVO6-Tv*-Dt|bg%u9B1h5m_sT-#6!|Le+l*tZh z`*E`OR8vH`$U5?PCO_XPmWwmKvs7%BSvmhukrz>o)q0Otpo6ls<=K-d%c*?$gSU2nexSgpr%}&%;j8I{ME5{);C8gm}Z*K8<~a zkq9{BVvgeFC}g6h&Y0v!yiAMWrxW^yUK99la2+if>0kapyX(r?h-za&DBBR6#wUK=acZBq(W;ZEIUYH}ay)fo&O%fPu=^XZqqwbmfSPG32kgn5_e8*M7kou&{PF zx9%pb#8lnHxgCgo*%eKgW3k z84db8!(Dhh`<+(p%T2ouF|s?w5SSwGucuM_aHOKlk8RAywb4211OrwR(lT8KYK7Md zHR-I)@;k^^Ul9OQQ3De+3DSXOFXHwCeV4mQJ6m$xWvwY(5_@k~llGXHXBLdBn!`!FZl|Xj6~t0cmF=tb0=9YBHAc-9-?GM~VG61sjgJrq>ovN0!VlYj z;0DBgiNM|Srw{^K%1XO8tZ}Yk)drh;4CnHN{eVYSc{g^#gIYc0c$zBu!9%(-mzwXM zSs|l{H!I7v{rUtOO6yeV@lxH%i>GeAZCOQKiuM<@iN zuGr|(!FFneG~)c8_lLT*>_RUz!%nXxFKc$qX!tD+8~B9qJ@<>VGgu=K>8*2($)ywa zNXI$Fk~NWJ=Ni6ITmYNb<_siJiemMF?zeO4tHjvt4V3=0W#iqPUQ1FxuF3S%~XC7 z-Oii7$S>V6|7Z2A2j2JsF+Wf@zjfFK^`rsWbxTrOy6j3yXvMek=f*al3S&WXN$+64 zqg{g?((!Dzu;tDRTn0~ej%3xtPUU3V%7SG)XguFURaA4ODFGZ#C+BT)7p^KqxIx{yor`Tn zeaTNb8Ky_EE7%2CDwH)|5p+chE69XKkR7oIu=7Kb>j_uw501c(ACCL!iHxeK_D0%i z9e4)>Z);YX8%#xZ(W8P_s(ik>m z^$0Ya>c@;e0958)%3aJiKhLk?v{0ZLPGKlbUy-K><>y~pEZBfMG-NycOGEVgzpZm zZP%uFqjPw%H~q#eB4(94RT?BkN}XN^K*R8#_WWD^81baFK^WKa$(wq?mpS&kQVYUO zWLEn9QS4)kX;0}zxmlGc&Ra3#t<8Zt4D-5iGvnPC?~x@yq|($sRO3s8c9x!Y{yFnn z$Ql=THq)zrDdA9~0jALw2<&K$s>^<;<;FdSSXj_8)0C;1TbZ~73miGTtXCU zCyuo=#!ul2JPeHxUuck-WQJ(CZun5vVRr{$N*CpMZkYVa+Z$bKNC?&;ZNBn*lSf&R z>rP}xl`U!!h#k3o*MCb(mHIlg`=+HjPdEXN2?KQL%tc`wY3bp(*sE0YnDM9I)R`iz z3#K`_Gl5Jq4Mpz`a$rI*8Du;(VY^VlPji+ycZV#MGu{@E!yk#zZ^&)q+`Ob-N| zf$_R%-ooCM4Aua+@i1@miwaWdDvu~BwL<%bDKE|bc~geyjv3T3rzkcc+GeQt9yrkN zau3Ya+*XZqaeQNU6jz|3w&WD3KWcpckA0Xe?;!LpcYrc zl2Hw-y+LtJ;keB27y3hMe%i3%32tEckO{H*=HyrOaE=1FWYE^=c>jZ|d0H|G`jUwc=mm@~xo~B#Urj zw~}BeD>qr?SiEx32yY`BcRpCF9cLAK9mY2$C`NfDD7734TC~bz64(Jv{1+JeUQeQv zi6-xkX5%&3Ha%*Ae1dx7SIM!9L|x-$`&c>QV3P}W@2R#W&Om%E)4k1UO?8XPPQSvZ zMRz!uOU;kF$E`nKDr1}JRR%?Pu&m_*-8vYNR>9K;BPVQ9$?$Wo3kpImPb)nvWn*}5 z(zv=#fn6(5A)#~yIonIi?I*B-M<`w6#W8CfQc$oHWu>BXLQrpwX0_bHh^o7_6di7+ zr5r{-;DjA<${uO6%ZZC?kNkG!K|o;TcKv`&eK~SW@hWo`^buomN1-Y22l4&`9^Rm$ zD(@A{ppBXy29%I}mHN@LCDYfp8YnYU_oF-?+Rzz%4zxCs8t%mOh;Wdtm%1tJs zTCyc%4Z8UbH8QMtJSoY@pv#eqvh5fbmEU1_;kkqW=B3zJu&CekoL8H>T|Z#~{M+Bn zW34QD|JsXuJcp#MH@N?nmjd)D${zRQnUCwQJR=*LxOKs;d)_E@jHA{ZL}%y{xUJGV z=g1^z}Qlb3ljfs=*-VUlX_Q4upkCMs@|Dh)^f3uQt`8ykx73dma z5cAw(HSAM|!u^qWfUm2WCT`DcFqSqUr~mgOlqdcz%4pSt+=~?0MbZ&pXd)?04bQ<~ zbt9)|19%aE*4OtYNIyK;c`#3JMaRW{fSC~#vh>ddVN#!5vEuBKf<5PHC55G@!ueaI z)^b%V?;qO<1{1T9;Ju6{5P&RSg5UP$;z*BN7FEyic_Qe3#q`rmStnvP)9uy3jEC$c zn}qkoJ45yB;h);h3l>oqNYB4Q2;68Kc93YemNg)7u?hv^E3}E~p DU(6<# delta 9877 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 H5cB~8n71Yp diff --git a/Empresas/Grales/Formatos/RepIVAAcreditable.rpt b/Empresas/Grales/Formatos/RepIVAAcreditable.rpt index eb0fede9e2362e8f42fceb0f7cdee6aed7266715..d29e92534b27050110049160dfad8d6789f43df4 100644 GIT binary patch delta 10830 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 W0{{R302!Bh&;fn{8@KuF0S6O@xY6VQ diff --git a/OI/CatDocumentoCategoria.aspx b/OI/CatDocumentoCategoria.aspx index e935eec64..96ca36b67 100644 --- a/OI/CatDocumentoCategoria.aspx +++ b/OI/CatDocumentoCategoria.aspx @@ -14,7 +14,7 @@
  • - +
  • @@ -25,8 +25,8 @@ - - + + @@ -44,7 +44,7 @@
    diff --git a/OI/DocumentoDetalle.aspx b/OI/DocumentoDetalle.aspx index fd583dbd4..43ef51987 100644 --- a/OI/DocumentoDetalle.aspx +++ b/OI/DocumentoDetalle.aspx @@ -29,8 +29,8 @@
    - - +
    +

    @@ -47,18 +47,9 @@
    -
    +
    -
    -
    -
    - - - - - -
    -
    +
    @@ -83,7 +74,7 @@
    - +
    @@ -104,7 +95,7 @@ @@ -144,6 +135,7 @@ +
    diff --git a/OI/DocumentoDetalle.aspx.cs b/OI/DocumentoDetalle.aspx.cs index a2119cdbb..c832920f0 100644 --- a/OI/DocumentoDetalle.aspx.cs +++ b/OI/DocumentoDetalle.aspx.cs @@ -11,6 +11,7 @@ using System.Text; public partial class OI_DocumentoDetalle : ClsPaginas { + #region "PROPIEDADES" private int CveUsuarioResponsable { get @@ -96,6 +97,8 @@ public partial class OI_DocumentoDetalle : ClsPaginas Cargar(); } } + #endregion + #region "CARGAS" private void CargarCveDocumento() { @@ -107,6 +110,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas else { this.CveDocumento = -1; + this.CveUsuarioResponsable = -1; } } @@ -124,6 +128,9 @@ public partial class OI_DocumentoDetalle : ClsPaginas case "Publicado": Alert("Documento publicado"); break; + case "Rechazado": + Alert("Documento rechazado"); + break; } } @@ -157,8 +164,11 @@ public partial class OI_DocumentoDetalle : ClsPaginas foreach (GridViewRow Usuario in UsuariosEnGrid) { int CveUsuario = Usuario.DataKey("CveUsuario").ToEntero(); - string FechaAprobacion = Usuarios.FiltroPrimeroValor("FechaAprobacion", string.Format("CveUsuario = {0}", CveUsuario)); + string Filtro = string.Format("CveUsuario = {0}", CveUsuario); + string FechaAprobacion = Usuarios.FiltroPrimeroValor("FechaAprobacion", Filtro); Usuario.FCCheckBox("ChkAprobar").Checked = FechaAprobacion != "" || (UsuarioActual.CveUsuario == CveUsuarioResponsable && CveUsuario == UsuarioActual.CveUsuario); + string Adjunto = Usuarios.FiltroPrimeroValor("Adjunto", Filtro); + Usuario.FCLinkButton("LkbDescargarPropuesta").Visible = Adjunto != ""; } } } @@ -207,7 +217,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas DdlCategoria.SelectedValue = Documento["CveCategoria"].ToString(); CargarSubCategoria(); DdlSubCategoria.SelectedValue = Documento["CveSubCategoria"].ToString(); - DdlEstatus.SelectedValue = Documento["CveEstatus"].ToString(); + LblEstatus.Text =$"Estatus: {Documento["Estatus"].ToString()}"; TxtVersion.Text = Documento["Version"].ToString(); TxtResponsable.Text = Documento["Responsable"].ToString(); TxtObs.InnerText = Documento["Observacion"].ToString(); @@ -246,7 +256,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas { LkbGuardar.Visible = false; LkbActualizar.Visible = true; - LkbPublicar.Visible = true; + LkbPublicar.Visible = VerificarAprobaciónParticipantes() && UsuarioActual.CveUsuario == CveUsuarioResponsable; GvUsuarios.Columns[1].Visible = false; GvUsuarios.Columns[2].Visible = true; GvUsuarios.Columns[3].Visible = true; @@ -273,7 +283,6 @@ public partial class OI_DocumentoDetalle : ClsPaginas { TxtDescripcion.Enabled = false; DdlSubCategoria.Enabled = false; - DdlEstatus.Enabled = false; TxtVersion.Enabled = false; TxtResponsable.Enabled = false; TxtObs.Disabled = true; @@ -284,8 +293,11 @@ public partial class OI_DocumentoDetalle : ClsPaginas private void ConfigurarSegunEstatus() { - bool MostrarSegunAprobado = (DdlEstatus.SelectedValue == "2"); - DivBotonesAcciones.Visible = !MostrarSegunAprobado; + bool MostrarSegunAprobado = (LblEstatus.Text == "Estatus: Aprobado"); + bool MostrarSegunRechazado = (LblEstatus.Text == "Estatus: Rechazado"); + bool MostrarSegunEnProceso = (LblEstatus.Text == "Estatus: En Proceso"); + LkbActualizar.Visible = !(MostrarSegunRechazado) && (UsuarioActual.CveUsuario == this.CveUsuarioResponsable); + DivBotonesAcciones.Visible = !(MostrarSegunAprobado || MostrarSegunRechazado); UpAgregar.Visible = MostrarSegunAprobado; } @@ -310,12 +322,9 @@ public partial class OI_DocumentoDetalle : ClsPaginas } } - private void EstatusMostrar(bool Mostrar) + private void MostrarBotonRechazar() { - DivEstatus.Visible = Mostrar; - brEstatus.Visible = Mostrar; - DivEstatusInicial.Visible = !Mostrar; - brEstatusInicial.Visible = !Mostrar; + LkbRechazar.Visible = (LblEstatus.Text == "Estatus: En Proceso" && this.CveUsuarioResponsable == UsuarioActual.CveUsuario); } private void Cargar() @@ -326,7 +335,6 @@ public partial class OI_DocumentoDetalle : ClsPaginas CargarUsuarios(); if (this.CveDocumento > 0) { - EstatusMostrar(true); if (CargarDocumentoYaExistente()) { CargarUsuariosParticipantes(); @@ -335,6 +343,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas ConfigurarGridUsuariosParticipantes(); ConfigurarCamposDetalleSegunUsuario(); CargarMensajeNuevoEditado(); + MostrarBotonRechazar(); } } ConfigurarSegunEstatus(); @@ -344,39 +353,45 @@ public partial class OI_DocumentoDetalle : ClsPaginas #region "GENERAR DOCUMENTO" protected void LblGuardar_Click(object sender, EventArgs e) { - ClsOIEventos ObjOI = new ClsOIEventos(); - ObjOI.IniciaTransacSQL(); - bool TieneError = false; - - //Esta variable es requerida más adelante - int CveDocumento = 0; - string RutaArchivo = "-1"; - string CorreosNotificacion = ""; - byte[] ArchivoNotifiacion = null; - - CveDocumento = GuardarDocumento(ref ObjOI, ref TieneError);//Se crea el Documento - if (!TieneError) { RutaArchivo = AsignarArchivoAlDocumento(CveDocumento, ref ObjOI, ref TieneError); }//Se guarda el archivo fisico y se asigna al Documento generado - if (!TieneError) { CorreosNotificacion = GuardarUsuariosQueAutorizan(CveDocumento, RutaArchivo, ref ObjOI, ref TieneError); }//asignamos a los usuarios que participaran en aprovar este documento - if (!TieneError) + if(TxtDocumentoFile.Text != "[]") { - ArchivoNotifiacion = GenerarArchivoByte(CveDocumento, RutaArchivo); - NotificarPorCorreo(CorreosNotificacion, RutaArchivo, ArchivoNotifiacion); - } + ClsOIEventos ObjOI = new ClsOIEventos(); + ObjOI.IniciaTransacSQL(); + bool TieneError = false; - //Gestión de errores y resultados - if (!TieneError) + //Esta variable es requerida más adelante + int CveDocumento = 0; + string RutaArchivo = "-1"; + string CorreosNotificacion = ""; + byte[] ArchivoNotifiacion = null; + + CveDocumento = GuardarDocumento(ref ObjOI, ref TieneError);//Se crea el Documento + if (!TieneError) { RutaArchivo = AsignarArchivoAlDocumento(CveDocumento, ref ObjOI, ref TieneError); }//Se guarda el archivo fisico y se asigna al Documento generado + if (!TieneError) { CorreosNotificacion = GuardarUsuariosQueAutorizan(CveDocumento, RutaArchivo, ref ObjOI, ref TieneError); }//asignamos a los usuarios que participaran en aprovar este documento + if (!TieneError) + { + ArchivoNotifiacion = GenerarArchivoByte(CveDocumento, RutaArchivo); + NotificarPorCorreo(CorreosNotificacion, RutaArchivo, ArchivoNotifiacion, CveDocumento); + } + + //Gestión de errores y resultados + if (!TieneError) + { + ObjOI.Commit(); + string ParamMensaje = LkbGuardar.Text == "Guardar" ? "Nuevo" : "NuevaVersion";//Esto indica la acción de usuario la cual se mostrará como alert al cargar la página + Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}&Mensaje={1}", CveDocumento, ParamMensaje)); + } + else + { + ObjOI.RollBack(); + Alert(this.ErrorMensaje, ModExtensiones.TipoMensaje.MsgError); + UpCliente.Update(); + } + ObjOI.Dispose(); + }else { - ObjOI.Commit(); - string ParamMensaje = LkbGuardar.Text == "Guardar" ? "Nuevo" : "NuevaVersion";//Esto indica la acción de usuario la cual se mostrará como alert al cargar la página - Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}&Mensaje={1}", CveDocumento, ParamMensaje)); + Alert("Es necesario cargar un Documento",ModExtensiones.TipoMensaje.MsgAdvertencia); } - else - { - ObjOI.RollBack(); - Alert(this.ErrorMensaje, ModExtensiones.TipoMensaje.MsgError); - UpCliente.Update(); - } - ObjOI.Dispose(); } private int GuardarDocumento(ref ClsOIEventos ObjOI, ref bool TieneError) @@ -444,6 +459,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas { string Archivo = ActualizarArchivoEnDirectorio(); ActualizarDocumentoYaExistente(Archivo); + TxtDocumentoFile.Text = ""; Cargar(); UpCliente.Update(); Alert("Documento actualizado"); @@ -468,8 +484,8 @@ public partial class OI_DocumentoDetalle : ClsPaginas private void ActualizarDocumentoYaExistente(string ArchivoFisico) { ClsOIEventos ObjOI = new ClsOIEventos(); - if (!ObjOI.UpdateDocumento(this.CveDocumento, DdlSubCategoria.SelectedValue.ToEntero(), TxtDescripcion.Text, TxtObs.InnerText, TxtVersion.Text, DdlEstatus.SelectedValue.ToEntero(), - ArchivoFisico, UsuarioActual.Nombre, ModExtensiones.MinFecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) + if (!ObjOI.UpdateDocumento(this.CveDocumento, DdlSubCategoria.SelectedValue.ToEntero(), TxtDescripcion.Text, TxtObs.InnerText, TxtVersion.Text, 1, ArchivoFisico, + UsuarioActual.Nombre, ModExtensiones.MinFecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) { Alert("Error al actualizar", ModExtensiones.TipoMensaje.MsgError); } @@ -554,9 +570,21 @@ public partial class OI_DocumentoDetalle : ClsPaginas #endregion #region "NOTIFICACIONES CORREO" - private void NotificarPorCorreo(string Para, string NombreArchivo, byte[] Adjunto) + private string GenerarCuerpoCorreo(int CveDocumento) { - string Descripcion = TxtDescripcion.Text; + string URL = string.Format("{0}/OI/DocumentoDetalle.aspx?CveDocumento={1}", HttpContext.Current.Request.Url.Host,CveDocumento); + StringBuilder body = new StringBuilder(); + body.Append("Ha sido invitado a revisar la generación de un documento
    "); + body.Append($"Documento: {TxtDescripcion.Text},
    "); + body.Append($"Categoria: {DdlCategoria.SelectedItem.Text},
    "); + body.Append($"Subcategoria: {DdlSubCategoria.SelectedItem.Text},
    "); + body.Append($"Detalles del Documento"); + return body.ToString(); + } + + private void NotificarPorCorreo(string Para, string NombreArchivo, byte[] Adjunto, int CveDocumento) + { + string Descripcion = GenerarCuerpoCorreo(CveDocumento); string Asunto = "Se le ha agregado como participante en el desarrollo de un Documento"; string a = string.Format("{0} -- {1} --- {2}", Descripcion, Para, ""); a.GuardaLog(); @@ -658,7 +686,16 @@ public partial class OI_DocumentoDetalle : ClsPaginas { string Archivo = SubirPropuestaEnDirectorio(this.CveUsuarioSeleccionado); - ActualizarUsuario(this.CveAsignacion, Archivo); + bool UsuarioActualizado = ActualizarUsuario(this.CveAsignacion, Archivo); + if (UsuarioActualizado) + { + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarPropuesta")); + Alert("La propuesta se realizó correctamente"); + CargarUsuariosParticipantes(); + CargarUsuariosAutorizo(); + ConfigurarGridUsuariosParticipantes(); + UpDatosUsuarios.Update(); + } } private string SubirPropuestaEnDirectorio(int CveUsuario) @@ -671,6 +708,12 @@ public partial class OI_DocumentoDetalle : ClsPaginas { try { + string AdjuntoYaCargado = GetUsuarioParticipante(CveUsuario)["Adjunto"] == null ? "": GetUsuarioParticipante(CveUsuario)["Adjunto"].ToString(); + string RutaBuscar = string.Format(@"{0}DocumentosRepo\{1}\{2}", UsuarioActual.Empresa.Ruta, this.CveDocumento, AdjuntoYaCargado); + if (File.Exists(RutaBuscar)) + { + File.Delete(RutaBuscar); + } string NombreArchivo = fileItem.filenameO; fileNameReturn = string.Format("{0}_{1}", CveUsuario, NombreArchivo); string RutaDestino = string.Format(@"{0}DocumentosRepo\{1}\{2}_{3}", UsuarioActual.Empresa.Ruta, this.CveDocumento, CveUsuario, NombreArchivo); @@ -685,14 +728,16 @@ public partial class OI_DocumentoDetalle : ClsPaginas return fileNameReturn; } - private void ActualizarUsuario(int CveAutorizacion, string Archivo) + private bool ActualizarUsuario(int CveAutorizacion, string Archivo) { ClsOIEventos ObjOI = new ClsOIEventos(); if (!ObjOI.UpdateDocumentoAutorizacion(CveAutorizacion, this.CveDocumento, TxtComentarios.InnerText, Archivo, ModExtensiones.MinFecha)) { Alert("Error al actualizar el archivo subido propuesto por el usuario"); + return false; } ObjOI.Dispose(); + return true; } #endregion @@ -705,6 +750,10 @@ public partial class OI_DocumentoDetalle : ClsPaginas DataRow Usuario = GetUsuarioParticipante(CveUsuario); AprobacionDeUsuario(Usuario, SelectedCheckBox.Checked); + + LkbPublicar.Visible = VerificarAprobaciónParticipantes() && UsuarioActual.CveUsuario == CveUsuarioResponsable; + UpCliente.Update(); + } private void AprobacionDeUsuario(DataRow Usuario, bool Autorizar) @@ -728,7 +777,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas ObjOI.Dispose(); } - protected void LkbPublicar_Click(object sender, EventArgs e) + private bool VerificarAprobaciónParticipantes() { GridViewRowCollection Usuarios = GvUsuarios.Rows; bool Aprobado = true; @@ -740,6 +789,12 @@ public partial class OI_DocumentoDetalle : ClsPaginas break; } } + return Aprobado; + } + + protected void LkbPublicar_Click(object sender, EventArgs e) + { + bool Aprobado = VerificarAprobaciónParticipantes(); if (Aprobado) { @@ -771,8 +826,21 @@ public partial class OI_DocumentoDetalle : ClsPaginas GvUsuarios.Columns[1].Visible = true; GvUsuarios.Columns[2].Visible = false; GvUsuarios.Columns[3].Visible = false; - EstatusMostrar(false); UpCliente.Update(); } #endregion + + #region "Rechazar" + protected void LkbRechazar_Click(object sender, EventArgs e) + { + ClsOIEventos ObjOI = new ClsOIEventos(); + if (ObjOI.UpdateDocumento(this.CveDocumento, DdlSubCategoria.SelectedValue.ToEntero(), TxtDescripcion.Text, TxtObs.InnerText, TxtVersion.Text, 3, "-1", TxtResponsable.Text, + DateTime.Now, -1, -1, UsuarioActual.CveEmpresa)) + { + Alert("Documento cancelado"); + } + ObjOI.Dispose(); + Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}&Mensaje={1}", this.CveDocumento, "Rechazado")); + } + #endregion } \ No newline at end of file diff --git a/OI/Documentos.aspx b/OI/Documentos.aspx index 5e37a8679..2e54f8905 100644 --- a/OI/Documentos.aspx +++ b/OI/Documentos.aspx @@ -14,13 +14,13 @@
  • - +
  • - Imprimir PDF + PDF
  • - Imprimir Excel + Excel
  • @@ -32,13 +32,14 @@ EmptyDataText="No se encontraron Documentos Registrados" ToolTip="Listado de Documentos" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center; width: 100%" GridLines="None" OnRowDataBound="GvDatos_RowDataBound"> - + - - - + + + - + + From 839e8438f95a4df6be32474827377be04eac7247 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Sat, 22 Aug 2020 12:00:45 -0700 Subject: [PATCH 03/10] T129 Auditoria SAT --- AF/TipoOrdenTrabajo.aspx | 205 +++++--- AF/TipoOrdenTrabajo.aspx.vb | 357 +++++++++++++- App_Code/ClsAF.vb | 20 +- App_Code/ClsCompProveedores.vb | 24 +- App_Code/ClsEdocumentacion.vb | 5 +- Compras/Proveedores.aspx | 4 +- Compras/RepDocumentacionProveedor.aspx | 32 +- Compras/RepDocumentacionProveedor.aspx.vb | 22 +- Edoc/CatDocumentosContratos.aspx | 56 +-- Edoc/CatTipoContratos.aspx | 2 +- Edoc/Contratos.aspx | 137 +++++- Edoc/Contratos.aspx.vb | 89 +++- PortalProveedor/PortalProveedor.aspx | 5 +- PortalProveedor/PortalProveedor.aspx.vb | 564 +++++++++++----------- 14 files changed, 1092 insertions(+), 430 deletions(-) diff --git a/AF/TipoOrdenTrabajo.aspx b/AF/TipoOrdenTrabajo.aspx index e6ebb33b7..907178821 100644 --- a/AF/TipoOrdenTrabajo.aspx +++ b/AF/TipoOrdenTrabajo.aspx @@ -39,15 +39,21 @@ - - - - - Registro Revisión + Tipo Servicio + + + +
  • + +
  • +
    +
    + +
    @@ -90,9 +96,7 @@
    - - @@ -100,13 +104,13 @@
    -
    - +<%--
    + -
    +
    --%> @@ -125,28 +129,43 @@ - +
    - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
    @@ -156,49 +175,73 @@
    -
    +
    - - + + - - - - - - + + + + + + + + - - + + + + + + + + + + + + + + + + +
    - +
    - - + + + + - - - - - - + + + + + + - - + + + + + + + +
    @@ -209,13 +252,60 @@ - - - - - - + + + @@ -262,13 +352,14 @@
    +
    - + diff --git a/AF/TipoOrdenTrabajo.aspx.vb b/AF/TipoOrdenTrabajo.aspx.vb index 71b84d52f..f559d1da8 100644 --- a/AF/TipoOrdenTrabajo.aspx.vb +++ b/AF/TipoOrdenTrabajo.aspx.vb @@ -12,20 +12,59 @@ Partial Class AF_TipoOrdenTrabajo #Region " PROPIEDADES" - Property CveOrdenTrabajo As Integer + Property CveTipoServicio As Integer Get - If ViewState("CveOrdenTrabajo") Is Nothing Then + If ViewState("CveTipoServicio") Is Nothing Then Return -1 Else - Return ViewState("CveOrdenTrabajo").ToString.ToEntero + Return ViewState("CveTipoServicio").ToString.ToEntero End If End Get Set(value As Integer) - ViewState("CveOrdenTrabajo") = value + ViewState("CveTipoServicio") = value + End Set + End Property + + Property DTMateriales As DataTable + Get + If ViewState("DTMateriales") Is Nothing Then + Return New DataTable + Else + Return DirectCast(ViewState("DTMateriales"), DataTable) + End If + End Get + Set(value As DataTable) + ViewState("DTMateriales") = value End Set End Property + Property DTActividades As DataTable + Get + If ViewState("DTActividades") Is Nothing Then + Return New DataTable + Else + Return DirectCast(ViewState("DTActividades"), DataTable) + End If + End Get + Set(value As DataTable) + ViewState("DTActividades") = value + End Set + End Property + + + Property DTACheckList As DataTable + Get + If ViewState("DTACheckList") Is Nothing Then + Return New DataTable + Else + Return DirectCast(ViewState("DTACheckList"), DataTable) + End If + End Get + Set(value As DataTable) + ViewState("DTACheckList") = value + End Set + End Property #End Region @@ -34,8 +73,12 @@ Partial Class AF_TipoOrdenTrabajo If Not Page.IsPostBack Then - If Request("CveOrdenTrabajo") IsNot Nothing Then - CveOrdenTrabajo = Request("CveOrdenTrabajo").ToEntero + If Request("CveTipoServicio") IsNot Nothing Then + CveTipoServicio = Request("CveTipoServicio").ToEntero + End If + + If CveTipoServicio = -1 Then + CrearTablas() End If CargaCombos() @@ -43,11 +86,57 @@ Partial Class AF_TipoOrdenTrabajo End Sub + + Property IndexMaterial As Integer + Get + If ViewState("IndexMaterial") Is Nothing Then + Return -1 + Else + Return ViewState("IndexMaterial").ToString.ToEntero + End If + End Get + Set(value As Integer) + ViewState("IndexMaterial") = value + End Set + End Property + + + + Property IndexActividades As Integer + Get + If ViewState("IndexActividades") Is Nothing Then + Return -1 + Else + Return ViewState("IndexActividades").ToString.ToEntero + End If + End Get + Set(value As Integer) + ViewState("IndexActividades") = value + End Set + End Property + + Property IndexCheckList As Integer + Get + If ViewState("IndexCheckList") Is Nothing Then + Return -1 + Else + Return ViewState("IndexCheckList").ToString.ToEntero + End If + End Get + Set(value As Integer) + ViewState("IndexCheckList") = value + End Set + End Property + + + + #Region " CARGA PARAMETROS " #End Region #Region " CARGA COMBOS " + Protected Sub CargaCombos() Dim ObjAF As New ClsAF @@ -65,6 +154,52 @@ Partial Class AF_TipoOrdenTrabajo UpFiltro.Update() + DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + + If CveTipoServicio <= 0 Then + CargaActividades() + + End If + + End Sub + + + + + +#End Region + +#Region "CREAR TABLAS" + + Private Sub CrearTablas() + 'CveTipoServicioMaterial CveTipoServicio Cantidad CveUM CvePS Tipo + + Dim DtTempMaterial As New DataTable + Dim DtTempActividades As New DataTable + + DtTempMaterial.Columns.Add("CveTipoServicioMaterial", GetType(Integer)) + DtTempMaterial.Columns.Add("CveTipoServicio", GetType(Integer)) + DtTempMaterial.Columns.Add("Cantidad", GetType(Decimal)) + DtTempMaterial.Columns.Add("CveUM", GetType(Integer)) + DtTempMaterial.Columns.Add("CvePS", GetType(Integer)) + DtTempMaterial.Columns.Add("Tipo", GetType(Integer)) + DtTempMaterial.Columns.Add("PS", GetType(String)) + DtTempMaterial.Columns.Add("Abreviatura", GetType(String)) + DtTempMaterial.AcceptChanges() + + DTMateriales = DtTempMaterial + + + 'CveTipoServicioActividad CveActividad Duracion Observaciones + + DtTempActividades.Columns.Add("CveTipoServicioActividad", GetType(String)) + DtTempActividades.Columns.Add("CveActividad", GetType(String)) + DtTempActividades.Columns.Add("Duracion", GetType(Decimal)) + DtTempActividades.Columns.Add("Observaciones", GetType(String)) + DtTempActividades.AcceptChanges() + + DTActividades = DtTempActividades End Sub @@ -72,6 +207,7 @@ Partial Class AF_TipoOrdenTrabajo #End Region + #Region " CARGA DATOS " 'Protected Sub BtnFiltrar_Click(sender As Object, e As EventArgs) ' CargaDatos() @@ -85,6 +221,61 @@ Partial Class AF_TipoOrdenTrabajo Private Sub CargaDatos() + CargaMateriales() + CargaActividades() + CargaCheckList() + + End Sub + + Private Sub CargaMateriales() + + If CveTipoServicio > 0 Then + + Dim ObjAF As New ClsAF + + If ObjAF.GetTiposServiciosMaterial(-1, CveTipoServicio) Then + GvMaterial.DataSource = DTMateriales + + Else + GvMaterial = Nothing + End If + + ObjAF.Dispose() + + GvMaterial.DataBind() + Else + GvMaterial.DataSource = DTMateriales + GvMaterial.DataBind() + End If + + UpGvMaterial.Update() + + End Sub + + Private Sub CargaActividades() + + Dim ObjAF As New ClsAF + + If CveTipoServicio <= 0 Then + + If ObjAF.GetActividades(-1, -1, -1, UsuarioActual.CveEmpresa) Then + GvActividades.DataSource = ObjAF.DtResultados + Else + GvActividades.DataSource = Nothing + End If + + End If + + ObjAF.Dispose() + + GvActividades.DataBind() + + UpGvActividades.Update() + + End Sub + + Private Sub CargaCheckList() + Dim ObjAF As New ClsAF @@ -94,7 +285,6 @@ Partial Class AF_TipoOrdenTrabajo End Sub - Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then @@ -110,9 +300,6 @@ Partial Class AF_TipoOrdenTrabajo - Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) - - End Sub @@ -277,4 +464,154 @@ Partial Class AF_TipoOrdenTrabajo + Protected Sub LnkAgregarMaterial_Click(sender As Object, e As EventArgs) + + RegistraScript("$('#ModalMateriales').modal('show');") + ResetModalMaterial() + End Sub + + Private Sub ResetModalMaterial() + + DdlPS.txtValue.Value = "" + DdlPS.txtText.Value = "" + TxtCantidad.Text = "" + + UpModalMaterialesBody.Update() + + End Sub + + + + + Protected Sub BtnGuardarMaterial_Click(sender As Object, e As EventArgs) + + If DdlPS.txtValue.Value.ToString.ToEntero <= 0 Then + Alert("Debe seleccionar un producto o servicio", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim CveUnidadMedida As Integer = -1 + Dim CvePS As Integer = DdlPS.txtValue.Value.ToEntero + Dim Tipo As Integer = -1 + Dim UMAbreviatura As String = "" + + Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") + CveUnidadMedida = drPS("CveUM").ToString.ToEntero + Tipo = drPS("CveTipoPS").ToString.ToEntero + UMAbreviatura = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Abreviatura", $"CveUnidadMedida = {CveUnidadMedida}") + + If CveTipoServicio > 0 Then + + Dim ObjAF As New ClsAF + + If ObjAF.AddTiposServiciosMaterial(CveTipoServicio, TxtCantidad.Text.ToDecimal, CveUnidadMedida, CvePS, Tipo) Then + Alert("Material agregado correctamente") + End If + + ObjAF.Dispose() + + Else + + Dim nRow As DataRow = DTMateriales.NewRow + + nRow("CveTipoServicioMaterial") = -1 + nRow("CveTipoServicio") = -1 + nRow("Cantidad") = TxtCantidad.Text.ToEntero + nRow("CveUM") = CveUnidadMedida + nRow("CvePS") = DdlPS.txtValue.Value.ToEntero + nRow("Tipo") = Tipo + nRow("Abreviatura") = UMAbreviatura + nRow("PS") = DdlPS.txtText.Value + + DTMateriales.Rows.Add(nRow) + Alert("Material agregado correctamente") + + End If + + CargaMateriales() + + ResetModalMaterial() + + RegistraScript("$('#ModalMateriales').modal('hide');") + + End Sub + + Protected Sub LnkEliminarMaterial_Click(sender As Object, e As EventArgs) + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).BindingContainer, GridViewRow) + If CveTipoServicio > 0 Then + + + Dim CveTipoServicioMaterial As Integer = GvRow.DataKey("CveTipoServicioMaterial").ToEntero + + Dim ObjAF As New ClsAF + If ObjAF.DeleteTiposServiciosMaterial(CveTipoServicioMaterial, UsuarioActual.CveEmpresa) Then + Alert("Material agregado correctamente") + End If + ObjAF.Dispose() + Else + + + Dim dr As DataRow = DTMateriales.Rows(GvRow.RowIndex) + dr.Delete() + DTMateriales.AcceptChanges() + Alert("Material agregado correctamente") + End If + + CargaMateriales() + + End Sub + + Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) + + Dim ObjAF As New ClsAF + Dim ErrorProceso As Boolean = False + Dim SBError As New StringBuilder + + ObjAF.IniciaTransacSQL() + + 'validacion? + + + + If ObjAF.AddTiposServicios(TxtTipoServicio.Text.Trim, DdlTipoMantenimiento.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + + + CveTipoServicio = ObjAF.CveTipoServicio + + For Each GvRow As GridViewRow In GvMaterial.Rows + + If Not ObjAF.AddTiposServiciosMaterial(CveTipoServicio, GvRow.DataKey("Cantidad").ToDecimal, GvRow.DataKey("CveUM").ToEntero, GvRow.DataKey("CvePS").ToEntero, GvRow.DataKey("Tipo").ToEntero) Then + ErrorProceso = True + Exit For + End If + + Next + + For Each GvRow As GridViewRow In GvActividades.Rows + + Dim Chk As CheckBox = GvRow.FCCheckBox("Chk") + Dim Horas As Decimal = GvRow.FCTextBox("").Text.ToDecimal + + + If ObjAF.AddTiposServiciosActividades(GvRow.DataKey("").ToEntero) Then + + Next + + + End If + + + If ErrorProceso Then + ObjAF.RollBack() + Else + ObjAF.Commit() + Alert("Tipo servicio guardado correctamente.", TipoMensaje.MsgInformacion) + End If + + + ObjAF.Dispose() + + End Sub + End Class diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index e1402fd73..08b1f4e28 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -89,10 +89,12 @@ Public Class ClsAF Public Property CveGrupoAF As Integer Public Property CveAFPadre As Integer Public Property CveDispositivo As Integer - Public Property MedidaVehicular As Integer - + Public Property MedidaVehicular As Integer + Public Property CveTipoServicio As Integer + + #End Region - + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) If TransaccionCompartida Is Nothing Then @@ -3502,7 +3504,7 @@ Public Class ClsAF Public Function AddTiposServicios(Nombre As String, CveTipoMantenimiento As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False - + CveTipoServicio = -1 DataAdapter("PA_AF_TiposServicioAdd") With SqlAdapter.SelectCommand.Parameters @@ -3510,10 +3512,16 @@ Public Class ClsAF .Add("@CveTipoMantenimiento", SqlDbType.Int).Value = CveTipoMantenimiento .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveTipoServicio", SqlDbType.Int).Direction = ParameterDirection.Output + + End With Try SqlAdapter.Fill(Data) + + CveTipoServicio = SqlAdapter.SelectCommand.Parameters("@CveTipoServicio").Value.ToString.ToEntero + Retorno = True Catch ex As Exception OnError("Ocurrió un error al agregar los tipos servicios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) @@ -3715,13 +3723,15 @@ Public Class ClsAF Return Retorno End Function - Public Function DeleteTiposServiciosMaterial(CveTipoServicioMaterial As Integer) As Boolean + Public Function DeleteTiposServiciosMaterial(CveTipoServicioMaterial As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_AF_TiposServiciosMaterialDelete") With SqlAdapter.SelectCommand.Parameters .Add("@CveTipoServicioMaterial", SqlDbType.Int).Value = CveTipoServicioMaterial + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With Try diff --git a/App_Code/ClsCompProveedores.vb b/App_Code/ClsCompProveedores.vb index 7532b38b7..388666a47 100644 --- a/App_Code/ClsCompProveedores.vb +++ b/App_Code/ClsCompProveedores.vb @@ -1785,6 +1785,27 @@ Public Class ClsCompProveedores End Function + Public Function GetContratoProvedores(CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + + DataAdapter("PA_Prov_SAT_ContratosProveedoresGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al Obtener los contratos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function RemoveContrato(CveContrato As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False @@ -1812,7 +1833,7 @@ Public Class ClsCompProveedores - Public Function AddRePresentanteLegal(RepresentanteLegal As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Public Function AddRePresentanteLegal(RepresentanteLegal As String, CveUsuario As Integer, CveEmpresa As Integer, CveProveedor As Integer) As Boolean Dim Retorno As Boolean = False @@ -1822,6 +1843,7 @@ Public Class ClsCompProveedores .Add("@RepresentanteLegal", SqlDbType.VarChar).Value = RepresentanteLegal .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor End With Try diff --git a/App_Code/ClsEdocumentacion.vb b/App_Code/ClsEdocumentacion.vb index 878dbc95b..b06f629cf 100644 --- a/App_Code/ClsEdocumentacion.vb +++ b/App_Code/ClsEdocumentacion.vb @@ -458,7 +458,8 @@ Public Class ClsEdocumentacion Return Retorno End Function - Public Function DocumentacionElectronicaAuditoriaGet(CveProveedor As Integer, FechaInicio As Date, FechaFin As Date, CveEmpresa As Integer, Optional Modulo As Integer = 3, Optional Estatus As Integer = -1) As Boolean + Public Function DocumentacionElectronicaAuditoriaGet(CveProveedor As Integer, FechaInicio As Date, FechaFin As Date, CveEmpresa As Integer, Optional Modulo As Integer = 3, Optional Estatus As Integer = -1, Optional CveSubProyecto As Integer = -1, + Optional CveTipoContrato As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Edoc_DocumentacionElectronicaAuditoriaGet") @@ -471,6 +472,8 @@ Public Class ClsEdocumentacion .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@Modulo", SqlDbType.Int).Value = Modulo .Add("@Estatus", SqlDbType.Int).Value = Estatus + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@CveTipoContrato", SqlDbType.Int).Value = CveTipoContrato End With Try diff --git a/Compras/Proveedores.aspx b/Compras/Proveedores.aspx index c1496d8c6..7cd807988 100644 --- a/Compras/Proveedores.aspx +++ b/Compras/Proveedores.aspx @@ -604,11 +604,11 @@
    --%> -
    +
    - Representastes Legales + Representantes Legales
    diff --git a/Compras/RepDocumentacionProveedor.aspx b/Compras/RepDocumentacionProveedor.aspx index f4f0139f4..14fed4ef1 100644 --- a/Compras/RepDocumentacionProveedor.aspx +++ b/Compras/RepDocumentacionProveedor.aspx @@ -94,7 +94,32 @@
    -
    +
    + + + +
    +
    + +
    +
    + + Todos + +
    + +
    Perfil:
    +
    + + Todos + +
    + + + +
    +
    +
    @@ -125,7 +150,10 @@
    - + + + + diff --git a/Compras/RepDocumentacionProveedor.aspx.vb b/Compras/RepDocumentacionProveedor.aspx.vb index 5a05ce29e..5e8e053ac 100644 --- a/Compras/RepDocumentacionProveedor.aspx.vb +++ b/Compras/RepDocumentacionProveedor.aspx.vb @@ -212,8 +212,20 @@ Partial Class Proveedores_RepDocumentacionProveedor DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Todos" - DdlProveedores.SelectedValue = "-1" - + DdlProveedores.SelectedValue = "-1" + + CargarCentrosDeCosto(Nothing, DdlSubProyectoFiltro, Nothing, LblSubProyectoFiltro) + + Dim ObjProveedor As New ClsCompProveedores + + If ObjProveedor.GetTiposContratos(-1, UsuarioActual.CveEmpresa, 1) Then + DdlTipoContratoFiltro.DataSource = ObjProveedor.DtResultados + End If + ObjProveedor.Dispose() + + DdlTipoContratoFiltro.DataBind() + DdlTipoContratoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub @@ -247,7 +259,7 @@ Partial Class Proveedores_RepDocumentacionProveedor Dim obEDoc As New ClsEdocumentacion - If obEDoc.DocumentacionElectronicaAuditoriaGet(CveProveedor, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, 3, DdlEstatus.SelectedValue.ToEntero) Then + If obEDoc.DocumentacionElectronicaAuditoriaGet(CveProveedor, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, 3, DdlEstatus.SelectedValue.ToEntero, DdlSubProyectoFiltro.SelectedValue.ToEntero, DdlTipoContratoFiltro.SelectedValue.ToEntero) Then GvDocumentos.DataSource = obEDoc.DtResultados Else GvDocumentos.DataSource = Nothing @@ -269,6 +281,10 @@ Partial Class Proveedores_RepDocumentacionProveedor Protected Sub GvDocumentos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocumentos.RowDataBound + If e.Row.RowType = DataControlRowType.Header Then + e.Row.FCLabel("LblSubProyecto").Text = LblSubProyectoFiltro.Text + End If + If e.Row.RowType = DataControlRowType.DataRow Then Dim Adjunto As String = e.Row.DBCampo("Adjunto").ToString diff --git a/Edoc/CatDocumentosContratos.aspx b/Edoc/CatDocumentosContratos.aspx index 96906ac70..357a66069 100644 --- a/Edoc/CatDocumentosContratos.aspx +++ b/Edoc/CatDocumentosContratos.aspx @@ -27,34 +27,36 @@ - - -
    - - - - - - - - - - - - - - - - - - - - - - +
    +
    + + -
    + + + + + + + + + + + + + + + + + + + + +
    +
    + + diff --git a/Edoc/CatTipoContratos.aspx b/Edoc/CatTipoContratos.aspx index ff3e1493a..9fa61d2e9 100644 --- a/Edoc/CatTipoContratos.aspx +++ b/Edoc/CatTipoContratos.aspx @@ -30,7 +30,7 @@
    + ToolTip="Listado de Genero" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" GridLines="None" > diff --git a/Edoc/Contratos.aspx b/Edoc/Contratos.aspx index bc9e9b3c4..78c6db7bb 100644 --- a/Edoc/Contratos.aspx +++ b/Edoc/Contratos.aspx @@ -21,17 +21,77 @@ - + + + + +
    +
    + +
    + + "> + +
    +
    +
    + + +
    +
    + + Todos + +
    + +
    Proveedor:
    +
    + + +
    + +
    Perfil:
    +
    + + Todos + +
    + +
    +
    +
    + <%--
    +
    + +
    Estatus:
    +
    + + + Todos + Vigente + Rescindido + Suspendido + Terminado + + +
    +
    +
    --%> + +
    + + + -
    - + @@ -40,7 +100,10 @@ - + + + + @@ -121,7 +184,7 @@
    - + @@ -137,7 +200,7 @@
    -
    + Sub Proyecto:
    @@ -147,7 +210,7 @@
    -
    +
    @@ -157,11 +220,17 @@

    -
    -
    -
    - -
    +
    + + + + + + + -
    -
    - -
    + + + + +
    + + + +
    + + +
    @@ -172,14 +241,16 @@ -
    - - + +
    +
    @@ -191,9 +262,27 @@ -
    - + +
    + + <%--
    + +
    + +
    +
    + +
    + +
    + + +
    +
    --%>
    @@ -202,7 +291,7 @@ -
    +
      @@ -243,7 +332,7 @@
    - diff --git a/Edoc/Contratos.aspx.vb b/Edoc/Contratos.aspx.vb index 153298752..46bd9fa4b 100644 --- a/Edoc/Contratos.aspx.vb +++ b/Edoc/Contratos.aspx.vb @@ -23,8 +23,10 @@ Partial Class Proveedores_Contratos Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then - CargaDatos() + CargaCombos() + CargaDatos() + End If @@ -35,7 +37,7 @@ Partial Class Proveedores_Contratos Dim ObjProv As New ClsCompProveedores - If ObjProv.GetContrato(-1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + If ObjProv.GetContrato(-1, DdlSubProyectoFiltro.SelectedValue.ToEntero, DdlProveedorFiltro.SelectedValue.ToEntero, DdlTipoContratoFiltro.SelectedValue.ToEntero, -1, -1, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjProv.DtResultados Else GvDatos.DataSource = Nothing @@ -50,18 +52,24 @@ Partial Class Proveedores_Contratos Private Sub CargaCombos() 'CargaProveedores + + + DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Todos" DdlProveedores.SelectedValue = "-1" - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'DdlSubProyecto.Items.Clear() + 'DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) + 'DdlSubProyecto.DataBind() + 'DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto) + CargarCentrosDeCosto(Nothing, DdlSubProyectoFiltro, Nothing, LblSubProyectoFiltro) + DdlTipoContrato.Items.Clear() Dim ObjProveedor As New ClsCompProveedores @@ -69,15 +77,26 @@ Partial Class Proveedores_Contratos If ObjProveedor.GetTiposContratos(-1, UsuarioActual.CveEmpresa, 1) Then DdlTipoContrato.DataSource = ObjProveedor.DtResultados + DdlTipoContratoFiltro.DataSource = ObjProveedor.DtResultados End If + If ObjProveedor.GetContratoProvedores(UsuarioActual.CveEmpresa) Then + DdlProveedorFiltro.DataSource = ObjProveedor.DtResultados + End If + + ObjProveedor.Dispose() DdlTipoContrato.DataBind() + DdlTipoContratoFiltro.DataBind() + DdlProveedorFiltro.DataBind() DdlTipoContrato.Items.Insert(0, New ListItem("Seleccione", "-1")) - CargaRepresentantes() + DdlTipoContratoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + DdlProveedorFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + + End Sub @@ -96,6 +115,10 @@ Partial Class Proveedores_Contratos DdlTipoContrato.SelectedValueExist("-1") DdlSubProyecto.SelectedValueExist("-1") + + + DDlRePresentanteLegal.Items.Clear() + DDlRePresentanteLegal.Items.Add(New ListItem("Seleccione uno", "-1")) DDlRePresentanteLegal.SelectedValueExist("-1") TxtFechaInicio.Text = "" @@ -104,6 +127,11 @@ Partial Class Proveedores_Contratos BtnAgregarModalContrato.Text = "Agregar" + CheckActiveSection.Visible = False + ChkEstatus.Enabled = True + + + UpModalContrato.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarContrato")) @@ -119,8 +147,13 @@ Partial Class Proveedores_Contratos DdlProveedores.txtValue.Value = GvRow.DataKey("CveProveedor") DdlProveedores.txtText.Value = GvRow.DataKey("NombreComercial") + DdlTipoContrato.SelectedValueExist(GvRow.DataKey("CveTipoContrato")) DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto")) + + + CargaRepresentantes(GvRow.DataKey("CveProveedor").ToEntero) + DDlRePresentanteLegal.SelectedValueExist(GvRow.DataKey("CveRepresentanteLegal")) TxtFechaInicio.Text = GvRow.DataKey("FechaInicio").ToString.ToDate().ToString("dd/MM/yyyy") @@ -128,9 +161,12 @@ Partial Class Proveedores_Contratos ChkEstatus.Checked = Boolean.Parse(GvRow.DataKey("Estatus")) - BtnAgregarModalContrato.Text = "Actualizar" + CheckActiveSection.Visible = True + + + UpModalContrato.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarContrato")) @@ -183,10 +219,6 @@ Partial Class Proveedores_Contratos End If - - - - End Sub Protected Sub LnkGvEliminar_Click(sender As Object, e As EventArgs) @@ -221,25 +253,32 @@ Partial Class Proveedores_Contratos Protected Sub BtnAgregarRepresentante_Click(sender As Object, e As EventArgs) + Dim CveProveedor As Integer = DdlProveedores.txtValue.Value.ToEntero + + If CveProveedor <= 0 Then + Alert("Debe de seleccionar un proveedor", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Dim ObjProv As New ClsCompProveedores - If ObjProv.AddRePresentanteLegal(TxtRepresentanteLegal.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + If ObjProv.AddRePresentanteLegal(TxtRepresentanteLegal.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedor) Then Alert("Se agrego representante correctamente.") TxtRepresentanteLegal.Text = "" End If ObjProv.Dispose() - CargaRepresentantes() + CargaRepresentantes(CveProveedor) End Sub - Private Sub CargaRepresentantes() + Private Sub CargaRepresentantes(CveProveedor As Integer) Dim ObjProv As New ClsCompProveedores - If ObjProv.GetRePresentanteLegal(-1, UsuarioActual.CveEmpresa) Then + If ObjProv.GetRePresentanteLegal(-1, UsuarioActual.CveEmpresa, CveProveedor) Then GvRepresentante.DataSource = ObjProv.DtResultados DDlRePresentanteLegal.DataSource = ObjProv.DtResultados Else @@ -263,6 +302,7 @@ Partial Class Proveedores_Contratos Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim CveRepresentanteLegal As Integer = GvRow.DataKey("CveRepresentanteLegal").ToEntero + Dim CveProveedor As Integer = GvRow.DataKey("CveProveedor").ToEntero Dim ObjProv As New ClsCompProveedores If ObjProv.RemoveRePresentanteLegal(CveRepresentanteLegal, UsuarioActual.CveEmpresa) Then @@ -271,7 +311,22 @@ Partial Class Proveedores_Contratos ObjProv.Dispose() - CargaRepresentantes() + CargaRepresentantes(CveProveedor) + + End Sub + Protected Sub DdlProveedores_selectedindexchange(sender As Object, e As EventArgs) + + Dim CveProveedor As Integer = DdlProveedores.txtValue.Value.ToEntero + CargaRepresentantes(CveProveedor) + End Sub + Protected Sub btConsultar_Click(sender As Object, e As EventArgs) + CargaDatos() + End Sub + Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) + + If e.Row.RowType = DataControlRowType.Header Then + e.Row.FCLabel("LblSubProyecto").Text = LblSubProyectoFiltro.Text + End If End Sub End Class diff --git a/PortalProveedor/PortalProveedor.aspx b/PortalProveedor/PortalProveedor.aspx index e6ef26273..16c1ca692 100644 --- a/PortalProveedor/PortalProveedor.aspx +++ b/PortalProveedor/PortalProveedor.aspx @@ -69,6 +69,7 @@ + @@ -799,13 +800,13 @@ <%---2020/02/06 - Auditoria--%> - + -
    +
    diff --git a/PortalProveedor/PortalProveedor.aspx.vb b/PortalProveedor/PortalProveedor.aspx.vb index fe6e0251c..4b1f46663 100644 --- a/PortalProveedor/PortalProveedor.aspx.vb +++ b/PortalProveedor/PortalProveedor.aspx.vb @@ -284,8 +284,16 @@ Partial Class Portal_PortalProveedor ' CargaUsuariosPortal() End If + + If UsuarioActual.TienePermisoProceso(305) Then + + TabAuditoria.Visible = True + + End If + 'CARGA TAB CONTRASENIA PARA TODOS LOS USUARIOS If UsuarioActual.CvePlataforma = 7 Then TabContraseña.Visible = True + End If End Sub @@ -647,289 +655,289 @@ Partial Class Portal_PortalProveedor GvCxPHistorial.DataBind() ' UpDatos.Update() - End Sub - + End Sub + #End Region - - + + #Region "Usuarios Portal" - - 'Private Sub CargaUsuariosPortal() - ' Dim ObjUsrs As New ClsSisUsuarios() - ' If ObjUsrs.GetUsuariosPortal(-1, -1, CveProveedor) Then - ' Dim dtUsr As DataTable = ObjUsrs.DtResultados - ' 'Dim dr As DataRow = dtUsr.FiltroPrimero(String.Format("CveUsuario = {0}", UsuarioActual.CveUsuario)) - ' 'If dr IsNot Nothing Then - - ' ' If True Then TabHistorial.Visible = True 'dr("Permiso1").ToString = "True" - ' ' If True Then TabCxP.Visible = True - ' ' If True Then TabAnticipos.Visible = True - ' ' If True Then TabBancos.Visible = True - ' ' If True Then TabSistema.Visible = True - - ' 'End If - - ' 'dtUsr = dtUsr '.FiltraParametros("Usuario <> 'Admin' AND CveUsuarioPortal <> " & UsuarioActual.CveUsuario) - - ' ViewState("OrdenUsuarios") = "" - ' GvUsuariosPortal.DataSource = dtUsr - ' ViewState("DTUsuariosProveedor") = dtUsr - ' Else - ' GvUsuariosPortal.DataSource = Nothing - ' ViewState("DTUsuariosProveedor") = Nothing - ' End If - ' ObjUsrs.Dispose() - ' GvUsuariosPortal.DataBind() - 'End Sub - - - 'Private Sub CargaGridUsuarios(Orden As String) - ' If CType(ViewState("DTUsuariosProveedor"), DataTable).Rows.Count > 0 Then - ' If Orden <> String.Empty Then - ' Dim DV As New DataView(CType(ViewState("DTUsuariosProveedor"), DataTable), "", Orden, DataViewRowState.CurrentRows) - ' GvUsuariosPortal.DataSource = DV.ToTable() '.FiltraParametros("Nombre <> 'Administrador' AND CveUsuario <> " & UsuarioActual.CveUsuario) - ' DV.Dispose() - ' Else - ' GvUsuariosPortal.DataSource = CType(ViewState("DTUsuariosProveedor"), DataTable) '.FiltraParametros("Nombre <> 'Administrador' AND CveUsuario <> " & UsuarioActual.CveUsuario) - ' End If - ' End If - ' GvUsuariosPortal.DataBind() - ' UPPUsuarios.Update() - 'End Sub - - ''ajustar el tamaño de las celdas de la GvUsuarios Portal - 'Protected Sub GvUsuariosPortal_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvUsuariosPortal.RowDataBound - ' If e.Row.RowType = DataControlRowType.DataRow Then - - ' 'El usuario Admin no se puede editar ni eliminar - ' If e.Row.DataKey("Nombre") = "Admin" Then - ' e.Row.FCLinkButton("imgE").Visible = False - ' e.Row.FCLinkButton("imgD").Visible = False - ' e.Row.FCLinkButton("imgC").Visible = False - ' End If - - ' If e.Row.RowIndex = 0 Then - ' '' e.Row.Cells(0).Width = Unit.Pixel(120) - ' 'e.Row.Cells(0).Width = Unit.Pixel(120) - ' 'e.Row.Cells(1).Width = Unit.Pixel(150) - ' 'e.Row.Cells(2).Width = Unit.Pixel(55) - ' 'e.Row.Cells(3).Width = Unit.Pixel(55) - ' 'e.Row.Cells(4).Width = Unit.Pixel(55) - ' 'e.Row.Cells(5).Width = Unit.Pixel(55) - ' 'e.Row.Cells(6).Width = Unit.Pixel(55) - ' 'e.Row.Cells(7).Width = Unit.Pixel(55) - - ' 'e.Row.Cells(8).Width = Unit.Pixel(75) - ' 'e.Row.Cells(9).Width = Unit.Pixel(100) - ' 'e.Row.Cells(10).Width = Unit.Pixel(150) - ' End If - ' End If - 'End Sub - - ''Editar usuarios - 'Protected Sub GvUsuariosPortal_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles GvUsuariosPortal.RowEditing - ' GvUsuariosPortal.EditIndex = e.NewEditIndex - ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then - ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) - ' Else - ' CargaGridUsuarios("") - ' End If - 'End Sub - - 'Protected Sub GvUsuariosPortal_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GvUsuariosPortal.RowUpdating - ' Dim ObjUsuario As New ClsSisUsuarios - ' Dim Nombre, Correo As String - ' Dim Estatus As Boolean - ' Dim gvr As GridViewRow = GvUsuariosPortal.Rows(e.RowIndex) - - ' 'Usuario = gvr.FCLiteral("LtlUUsuario").Text.Trim - ' Nombre = gvr.FCTextBox("TxtUsuarioPortalEdit").Text.Trim - ' Correo = gvr.FCTextBox("TxtCorreoEdit").Text.Trim - ' Estatus = gvr.FCCheckBox("ChkEstatus").Checked - - ' Dim CveUsuarioPortal As Integer = gvr.DataKey("CveUsuario").ToEntero - ' Dim pCveProveedor As Integer = gvr.DataKey("CveProveedor").ToEntero - - ' If ObjUsuario.UpdateUsuarioPortal(Correo, Nombre, Correo, Estatus, "-1", -1, CveProveedor, CveUsuarioPortal, UsuarioActual.CveUsuario) Then - ' GvUsuariosPortal.EditIndex = -1 - ' ObjUsuario.GetUsuariosPortal(-1, -1, CveProveedor) '.FiltraParametros("Usuario <> 'Admin' AND CveUsuarioPortal <> " & UsuarioActual.CveUsuario) - ' ViewState("DTUsuariosProveedor") = ObjUsuario.DtResultados - ' End If - ' ObjUsuario.Dispose() - - ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then - ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) - ' Else - ' CargaGridUsuarios("") - ' End If - - 'End Sub - - ''Cancelar Edición - 'Protected Sub GvUsuariosPortal_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs) Handles GvUsuariosPortal.RowCancelingEdit - ' GvUsuariosPortal.EditIndex = -1 - ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then - ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) - ' Else - ' CargaGridUsuarios("") - ' End If - 'End Sub - - ''Restablecer contraseña - 'Protected Sub GvUsuariosPortal_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvUsuariosPortal.RowCommand - - ' If e.CommandName = "RestablecerContraseña" Then - ' Dim cveUsuarioPortal As Integer = e.CommandArgument.ToString.ToEntero - ' Dim Usuario As New ClsSisUsuarios - ' If Usuario.GetUsuariosPortal(cveUsuarioPortal, -1, -1) Then - ' Dim dr As DataRow = Usuario.DtResultados.FiltroPrimero("") - - ' If Usuario.UpdateUsuarioPortal(dr("Usuario").ToString, dr("Nombre").ToString, dr("Correo").ToString, CType(dr("Estatus"), Boolean), ContraseñaPredeterminadaEncriptada, -1, CveProveedor, cveUsuarioPortal, UsuarioActual.CveUsuario) Then - ' GvUsuariosPortal.EditIndex = -1 - ' ViewState("DTUsuariosProveedor") = Usuario.DtResultados '.FiltraParametros("Usuario <> 'Admin' AND CveUsuarioPortal <> " & UsuarioActual.CveUsuario) - ' Alert("Contraseña Restablecida.
    La nueva contraseña es: """ & ContraseñaPredeterminada & "") - ' End If - ' End If - ' Usuario.Dispose() - ' End If - - ' If e.CommandName = "ReenviarCorreo" Then - ' Dim cveUsuarioPortal As Integer = e.CommandArgument.ToString.ToEntero - ' Dim Usuario As New ClsSisUsuarios - ' Usuario.IniciaTransacSQL() - ' Dim TieneError = False - - ' If Usuario.GetUsuariosPortal(cveUsuarioPortal, -1, -1) Then - ' Dim dr As DataRow = Usuario.DtResultados.FiltroPrimero("") - - ' 'ACTUALIZA USUARIO, CONTRASEÑA Y ESTATUS - ' If Not Usuario.UpdateUsuarioPortal(dr("Usuario").ToString, dr("Nombre").ToString, dr("Correo").ToString, True, ContraseñaPredeterminadaEncriptada, -1, CveProveedor, cveUsuarioPortal, UsuarioActual.CveUsuario) Then - ' TieneError = True - ' Alert("Ocurrió un error al actualizar el usuario. Por favor vuelva a intentar.", TipoMensaje.MsgError) - ' End If - - ' 'MANDA CORREO ACTIVACION - ' If Not TieneError Then - ' Dim ObjParametro As SisParametro = GlobalDTParametros(SisParametros.URL) - ' Dim Liga As String = ObjParametro.Cadena1 & "LogIn.aspx" - ' Dim LigaActivar = Liga & "?p=" & Encripta("CveU=" & cveUsuarioPortal & "&Clave=" & "-acceso-" & "&Opcion=Activar&Hora=" & DateTime.Now.Ticks & "&CveE=" & UsuarioActual.CveEmpresa) - - ' Dim ObjMail As New ClsSisMail() - - ' If dr("Correo").ToString <> "" Then - ' Dim Correos As String() = dr("Correo").ToString.Split(New Char() {";"c}) - ' Dim Texto = "" - ' For Each Correo As String In Correos - ' Texto = String.Format("Direccion de Acceso: Portal del Proveedor
    Usuario: {2}
    Haga click para activar su cuenta Activar", Liga, CveProveedor, dr("Usuario").ToString, LigaActivar) - ' 'If Not ObjMail.MandaCorreo(EmpresaNotificaciones, Correo, "Activación de cuenta", "", "", {""}, Texto) Then - ' If Not ObjMail.SendMail(EmpresaNotificaciones, Correo, "Activación de cuenta", Texto) Then - ' Alert("Error al mandar el correo. Por favor vuelva a intentar", TipoMensaje.MsgError) - ' TieneError = True - ' Exit For - ' End If - ' Next - - ' Else - ' Alert("No se ha registrado ningún correo al usuario.", TipoMensaje.MsgAdvertencia) - ' TieneError = True - ' End If - ' End If - - ' If Not TieneError Then - ' Usuario.Commit() - ' ViewState("DTUsuariosProveedor") = Usuario.DtResultados - ' Alert(String.Format("Se envio correo al usuario y se restablecio contraseña .
    La nueva contraseña es: ""{0}""", ContraseñaPredeterminada), TipoMensaje.MsgInformacion) - ' Else - ' Usuario.RollBack() - ' End If - - ' End If - ' Usuario.Dispose() - ' End If - - 'End Sub - - ''Eliminar Usuarios - 'Protected Sub GvUsuariosPortal_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GvUsuariosPortal.RowDeleting - ' Dim Usuario As New ClsSisUsuarios - ' If Usuario.RemoveUsuarioPortal(GvUsuariosPortal.DataKeys(e.RowIndex).Value.ToString().ToEntero()) Then - ' GvUsuariosPortal.EditIndex = -1 - ' ViewState("DTUsuariosProveedor") = Usuario.DtResultados - ' End If - ' Usuario.Dispose() - ' Alert("Usuario Eliminado") - ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then - ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) - ' Else - ' CargaGridUsuarios("") - ' End If - 'End Sub - - ''Agregar Usuario - 'Protected Sub LnkAgregarUsuario_Click(sender As Object, e As EventArgs) Handles LnkAgregarUsuario.Click - ' Dim ObjUsuario As New ClsSisUsuarios - ' Dim CvePlataforma As Integer = 7 - - ' ObjUsuario.IniciaTransacSQL() - - ' Dim CveUsuario As Integer = ObjUsuario.AddUsuarioPortal(TxtCorreo.Text.Trim, ContraseñaPredeterminadaEncriptada, TxtNombrePortal.Text.Trim, TxtCorreo.Text.Trim, -1, CveProveedor, CvePlataforma, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - ' If CveUsuario > 0 Then - ' If ObjUsuario.UpdateUsuariosModulos(CveUsuario, 1201, True, UsuarioActual.CveUsuario) Then - ' If ObjUsuario.GetUsuariosPortal(-1, -1, CveProveedor) Then - ' ViewState("DTUsuariosProveedor") = ObjUsuario.DtResultados.FiltraParametros("Nombre <> 'Admin' AND CveUsuario <> " & UsuarioActual.CveUsuario) - ' End If - - ' TxtNombrePortal.Text = "" - ' TxtCorreo.Text = "" - ' Alert("Usuario Creado.
    El usuario accesará con la contraseña '" & ContraseñaPredeterminada & "'") - ' ObjUsuario.Commit() - ' Else - ' ObjUsuario.RollBack() - ' End If - ' Else - ' ObjUsuario.RollBack() - ' Alert("No se ha podido registrar al nuevo Usuario, Verifique si el Usuario ya está registrado") - ' End If - - ' ObjUsuario.Dispose() - ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then - ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) - ' Else - ' CargaGridUsuarios("") - ' End If - 'End Sub - + + 'Private Sub CargaUsuariosPortal() + ' Dim ObjUsrs As New ClsSisUsuarios() + ' If ObjUsrs.GetUsuariosPortal(-1, -1, CveProveedor) Then + ' Dim dtUsr As DataTable = ObjUsrs.DtResultados + ' 'Dim dr As DataRow = dtUsr.FiltroPrimero(String.Format("CveUsuario = {0}", UsuarioActual.CveUsuario)) + ' 'If dr IsNot Nothing Then + + ' ' If True Then TabHistorial.Visible = True 'dr("Permiso1").ToString = "True" + ' ' If True Then TabCxP.Visible = True + ' ' If True Then TabAnticipos.Visible = True + ' ' If True Then TabBancos.Visible = True + ' ' If True Then TabSistema.Visible = True + + ' 'End If + + ' 'dtUsr = dtUsr '.FiltraParametros("Usuario <> 'Admin' AND CveUsuarioPortal <> " & UsuarioActual.CveUsuario) + + ' ViewState("OrdenUsuarios") = "" + ' GvUsuariosPortal.DataSource = dtUsr + ' ViewState("DTUsuariosProveedor") = dtUsr + ' Else + ' GvUsuariosPortal.DataSource = Nothing + ' ViewState("DTUsuariosProveedor") = Nothing + ' End If + ' ObjUsrs.Dispose() + ' GvUsuariosPortal.DataBind() + 'End Sub + + + 'Private Sub CargaGridUsuarios(Orden As String) + ' If CType(ViewState("DTUsuariosProveedor"), DataTable).Rows.Count > 0 Then + ' If Orden <> String.Empty Then + ' Dim DV As New DataView(CType(ViewState("DTUsuariosProveedor"), DataTable), "", Orden, DataViewRowState.CurrentRows) + ' GvUsuariosPortal.DataSource = DV.ToTable() '.FiltraParametros("Nombre <> 'Administrador' AND CveUsuario <> " & UsuarioActual.CveUsuario) + ' DV.Dispose() + ' Else + ' GvUsuariosPortal.DataSource = CType(ViewState("DTUsuariosProveedor"), DataTable) '.FiltraParametros("Nombre <> 'Administrador' AND CveUsuario <> " & UsuarioActual.CveUsuario) + ' End If + ' End If + ' GvUsuariosPortal.DataBind() + ' UPPUsuarios.Update() + 'End Sub + + ''ajustar el tamaño de las celdas de la GvUsuarios Portal + 'Protected Sub GvUsuariosPortal_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvUsuariosPortal.RowDataBound + ' If e.Row.RowType = DataControlRowType.DataRow Then + + ' 'El usuario Admin no se puede editar ni eliminar + ' If e.Row.DataKey("Nombre") = "Admin" Then + ' e.Row.FCLinkButton("imgE").Visible = False + ' e.Row.FCLinkButton("imgD").Visible = False + ' e.Row.FCLinkButton("imgC").Visible = False + ' End If + + ' If e.Row.RowIndex = 0 Then + ' '' e.Row.Cells(0).Width = Unit.Pixel(120) + ' 'e.Row.Cells(0).Width = Unit.Pixel(120) + ' 'e.Row.Cells(1).Width = Unit.Pixel(150) + ' 'e.Row.Cells(2).Width = Unit.Pixel(55) + ' 'e.Row.Cells(3).Width = Unit.Pixel(55) + ' 'e.Row.Cells(4).Width = Unit.Pixel(55) + ' 'e.Row.Cells(5).Width = Unit.Pixel(55) + ' 'e.Row.Cells(6).Width = Unit.Pixel(55) + ' 'e.Row.Cells(7).Width = Unit.Pixel(55) + + ' 'e.Row.Cells(8).Width = Unit.Pixel(75) + ' 'e.Row.Cells(9).Width = Unit.Pixel(100) + ' 'e.Row.Cells(10).Width = Unit.Pixel(150) + ' End If + ' End If + 'End Sub + + ''Editar usuarios + 'Protected Sub GvUsuariosPortal_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles GvUsuariosPortal.RowEditing + ' GvUsuariosPortal.EditIndex = e.NewEditIndex + ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then + ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) + ' Else + ' CargaGridUsuarios("") + ' End If + 'End Sub + + 'Protected Sub GvUsuariosPortal_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GvUsuariosPortal.RowUpdating + ' Dim ObjUsuario As New ClsSisUsuarios + ' Dim Nombre, Correo As String + ' Dim Estatus As Boolean + ' Dim gvr As GridViewRow = GvUsuariosPortal.Rows(e.RowIndex) + + ' 'Usuario = gvr.FCLiteral("LtlUUsuario").Text.Trim + ' Nombre = gvr.FCTextBox("TxtUsuarioPortalEdit").Text.Trim + ' Correo = gvr.FCTextBox("TxtCorreoEdit").Text.Trim + ' Estatus = gvr.FCCheckBox("ChkEstatus").Checked + + ' Dim CveUsuarioPortal As Integer = gvr.DataKey("CveUsuario").ToEntero + ' Dim pCveProveedor As Integer = gvr.DataKey("CveProveedor").ToEntero + + ' If ObjUsuario.UpdateUsuarioPortal(Correo, Nombre, Correo, Estatus, "-1", -1, CveProveedor, CveUsuarioPortal, UsuarioActual.CveUsuario) Then + ' GvUsuariosPortal.EditIndex = -1 + ' ObjUsuario.GetUsuariosPortal(-1, -1, CveProveedor) '.FiltraParametros("Usuario <> 'Admin' AND CveUsuarioPortal <> " & UsuarioActual.CveUsuario) + ' ViewState("DTUsuariosProveedor") = ObjUsuario.DtResultados + ' End If + ' ObjUsuario.Dispose() + + ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then + ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) + ' Else + ' CargaGridUsuarios("") + ' End If + + 'End Sub + + ''Cancelar Edición + 'Protected Sub GvUsuariosPortal_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs) Handles GvUsuariosPortal.RowCancelingEdit + ' GvUsuariosPortal.EditIndex = -1 + ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then + ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) + ' Else + ' CargaGridUsuarios("") + ' End If + 'End Sub + + ''Restablecer contraseña + 'Protected Sub GvUsuariosPortal_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvUsuariosPortal.RowCommand + + ' If e.CommandName = "RestablecerContraseña" Then + ' Dim cveUsuarioPortal As Integer = e.CommandArgument.ToString.ToEntero + ' Dim Usuario As New ClsSisUsuarios + ' If Usuario.GetUsuariosPortal(cveUsuarioPortal, -1, -1) Then + ' Dim dr As DataRow = Usuario.DtResultados.FiltroPrimero("") + + ' If Usuario.UpdateUsuarioPortal(dr("Usuario").ToString, dr("Nombre").ToString, dr("Correo").ToString, CType(dr("Estatus"), Boolean), ContraseñaPredeterminadaEncriptada, -1, CveProveedor, cveUsuarioPortal, UsuarioActual.CveUsuario) Then + ' GvUsuariosPortal.EditIndex = -1 + ' ViewState("DTUsuariosProveedor") = Usuario.DtResultados '.FiltraParametros("Usuario <> 'Admin' AND CveUsuarioPortal <> " & UsuarioActual.CveUsuario) + ' Alert("Contraseña Restablecida.
    La nueva contraseña es: """ & ContraseñaPredeterminada & "") + ' End If + ' End If + ' Usuario.Dispose() + ' End If + + ' If e.CommandName = "ReenviarCorreo" Then + ' Dim cveUsuarioPortal As Integer = e.CommandArgument.ToString.ToEntero + ' Dim Usuario As New ClsSisUsuarios + ' Usuario.IniciaTransacSQL() + ' Dim TieneError = False + + ' If Usuario.GetUsuariosPortal(cveUsuarioPortal, -1, -1) Then + ' Dim dr As DataRow = Usuario.DtResultados.FiltroPrimero("") + + ' 'ACTUALIZA USUARIO, CONTRASEÑA Y ESTATUS + ' If Not Usuario.UpdateUsuarioPortal(dr("Usuario").ToString, dr("Nombre").ToString, dr("Correo").ToString, True, ContraseñaPredeterminadaEncriptada, -1, CveProveedor, cveUsuarioPortal, UsuarioActual.CveUsuario) Then + ' TieneError = True + ' Alert("Ocurrió un error al actualizar el usuario. Por favor vuelva a intentar.", TipoMensaje.MsgError) + ' End If + + ' 'MANDA CORREO ACTIVACION + ' If Not TieneError Then + ' Dim ObjParametro As SisParametro = GlobalDTParametros(SisParametros.URL) + ' Dim Liga As String = ObjParametro.Cadena1 & "LogIn.aspx" + ' Dim LigaActivar = Liga & "?p=" & Encripta("CveU=" & cveUsuarioPortal & "&Clave=" & "-acceso-" & "&Opcion=Activar&Hora=" & DateTime.Now.Ticks & "&CveE=" & UsuarioActual.CveEmpresa) + + ' Dim ObjMail As New ClsSisMail() + + ' If dr("Correo").ToString <> "" Then + ' Dim Correos As String() = dr("Correo").ToString.Split(New Char() {";"c}) + ' Dim Texto = "" + ' For Each Correo As String In Correos + ' Texto = String.Format("Direccion de Acceso: Portal del Proveedor
    Usuario: {2}
    Haga click para activar su cuenta Activar", Liga, CveProveedor, dr("Usuario").ToString, LigaActivar) + ' 'If Not ObjMail.MandaCorreo(EmpresaNotificaciones, Correo, "Activación de cuenta", "", "", {""}, Texto) Then + ' If Not ObjMail.SendMail(EmpresaNotificaciones, Correo, "Activación de cuenta", Texto) Then + ' Alert("Error al mandar el correo. Por favor vuelva a intentar", TipoMensaje.MsgError) + ' TieneError = True + ' Exit For + ' End If + ' Next + + ' Else + ' Alert("No se ha registrado ningún correo al usuario.", TipoMensaje.MsgAdvertencia) + ' TieneError = True + ' End If + ' End If + + ' If Not TieneError Then + ' Usuario.Commit() + ' ViewState("DTUsuariosProveedor") = Usuario.DtResultados + ' Alert(String.Format("Se envio correo al usuario y se restablecio contraseña .
    La nueva contraseña es: ""{0}""", ContraseñaPredeterminada), TipoMensaje.MsgInformacion) + ' Else + ' Usuario.RollBack() + ' End If + + ' End If + ' Usuario.Dispose() + ' End If + + 'End Sub + + ''Eliminar Usuarios + 'Protected Sub GvUsuariosPortal_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GvUsuariosPortal.RowDeleting + ' Dim Usuario As New ClsSisUsuarios + ' If Usuario.RemoveUsuarioPortal(GvUsuariosPortal.DataKeys(e.RowIndex).Value.ToString().ToEntero()) Then + ' GvUsuariosPortal.EditIndex = -1 + ' ViewState("DTUsuariosProveedor") = Usuario.DtResultados + ' End If + ' Usuario.Dispose() + ' Alert("Usuario Eliminado") + ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then + ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) + ' Else + ' CargaGridUsuarios("") + ' End If + 'End Sub + + ''Agregar Usuario + 'Protected Sub LnkAgregarUsuario_Click(sender As Object, e As EventArgs) Handles LnkAgregarUsuario.Click + ' Dim ObjUsuario As New ClsSisUsuarios + ' Dim CvePlataforma As Integer = 7 + + ' ObjUsuario.IniciaTransacSQL() + + ' Dim CveUsuario As Integer = ObjUsuario.AddUsuarioPortal(TxtCorreo.Text.Trim, ContraseñaPredeterminadaEncriptada, TxtNombrePortal.Text.Trim, TxtCorreo.Text.Trim, -1, CveProveedor, CvePlataforma, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + ' If CveUsuario > 0 Then + ' If ObjUsuario.UpdateUsuariosModulos(CveUsuario, 1201, True, UsuarioActual.CveUsuario) Then + ' If ObjUsuario.GetUsuariosPortal(-1, -1, CveProveedor) Then + ' ViewState("DTUsuariosProveedor") = ObjUsuario.DtResultados.FiltraParametros("Nombre <> 'Admin' AND CveUsuario <> " & UsuarioActual.CveUsuario) + ' End If + + ' TxtNombrePortal.Text = "" + ' TxtCorreo.Text = "" + ' Alert("Usuario Creado.
    El usuario accesará con la contraseña '" & ContraseñaPredeterminada & "'") + ' ObjUsuario.Commit() + ' Else + ' ObjUsuario.RollBack() + ' End If + ' Else + ' ObjUsuario.RollBack() + ' Alert("No se ha podido registrar al nuevo Usuario, Verifique si el Usuario ya está registrado") + ' End If + + ' ObjUsuario.Dispose() + ' If ViewState("OrdenUsuarios").ToString() <> String.Empty Then + ' CargaGridUsuarios(ViewState("OrdenUsuarios").ToString()) + ' Else + ' CargaGridUsuarios("") + ' End If + 'End Sub + #End Region - - + + #Region "O R D E N A M I E N T O" - 'Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) - ' Dim Orden As String = "" - ' Dim Campo As String = "" - ' Dim Literal As Literal = Nothing - ' Const OrdenInicial As String = "" - ' Dim Arg(2) As String - - ' Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) - ' Campo = Arg(0) - ' Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) - - ' If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then - ' ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) - ' Literal.Text = String.Format("") - ' Else - ' ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) - ' Literal.Text = String.Format("") - ' End If - ' Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString - ' ViewState("Orden") = Orden - ' CargaGridUsuarios(Orden) - 'End Sub - + 'Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) + ' Dim Orden As String = "" + ' Dim Campo As String = "" + ' Dim Literal As Literal = Nothing + ' Const OrdenInicial As String = "" + ' Dim Arg(2) As String + + ' Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) + ' Campo = Arg(0) + ' Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) + + ' If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then + ' ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) + ' Literal.Text = String.Format("") + ' Else + ' ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) + ' Literal.Text = String.Format("") + ' End If + ' Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString + ' ViewState("Orden") = Orden + ' CargaGridUsuarios(Orden) + 'End Sub + #End Region - - + + #Region " BANCOS" Protected Sub BtnExcelGvBancosCuentas_Click(sender As Object, e As EventArgs) Dim retorno As Byte() = ImprimirReporteGvBancosCuentas("EXCEL") From 22f796debdcfc3c572bfc57e877df3d323841163 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Sat, 22 Aug 2020 12:16:51 -0700 Subject: [PATCH 04/10] correcion etiqeuta Tipo Contrato --- Edoc/Contratos.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Edoc/Contratos.aspx b/Edoc/Contratos.aspx index 78c6db7bb..89cf0b08c 100644 --- a/Edoc/Contratos.aspx +++ b/Edoc/Contratos.aspx @@ -51,7 +51,7 @@
    -
    Perfil:
    +
    Tipo Contrato:
    Todos From 87f1c826aff49aa409b7a5f8a4f30bdea4ba5f64 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 22 Aug 2020 12:35:04 -0700 Subject: [PATCH 05/10] - --- OI/DocumentoDetalle.aspx.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OI/DocumentoDetalle.aspx.cs b/OI/DocumentoDetalle.aspx.cs index c832920f0..f16ec0e2b 100644 --- a/OI/DocumentoDetalle.aspx.cs +++ b/OI/DocumentoDetalle.aspx.cs @@ -16,7 +16,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas { get { - return ViewState["CveUsuarioResponsable"].ToString().ToEntero(); + return ViewState["CveUsuarioResponsable"] == null ? -1 : ViewState["CveUsuarioResponsable"].ToString().ToEntero(); } set @@ -230,6 +230,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas }else { this.CveDocumento = -1; + Alert("No se encontró el Documento", ModExtensiones.TipoMensaje.MsgAdvertencia); } } ObjOI.Dispose(); From da2dc0883f823b0e4ea014753ed1fb445eca5035 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 22 Aug 2020 13:31:01 -0700 Subject: [PATCH 06/10] =?UTF-8?q?cat=C3=A1logo=20de=20checklist=20listo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AF/CatCheckList.aspx | 84 +++++++++++++++++++++++++----- AF/CatCheckList.aspx.cs | 110 +++++++++++++++++++++++++++++++++++++++- App_Code/ClsPaginas.vb | 1 + 3 files changed, 181 insertions(+), 14 deletions(-) diff --git a/AF/CatCheckList.aspx b/AF/CatCheckList.aspx index c7c954225..790db7f2a 100644 --- a/AF/CatCheckList.aspx +++ b/AF/CatCheckList.aspx @@ -1,16 +1,74 @@ -<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CatCheckList.aspx.cs" Inherits="AF_CatCheckList" %> +<%@ Page Title="AF - Catálogo de CheckList" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatCheckList.aspx.cs" Inherits="AF_CatCheckList" %> - +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + Catálogo de CheckList + + + + +
  • + +
  • - - - - - -
    -
    - + + + + + + + + + + + + + + + + + + + + + - - - + + + \ No newline at end of file diff --git a/AF/CatCheckList.aspx.cs b/AF/CatCheckList.aspx.cs index 4742625b9..d488bf25c 100644 --- a/AF/CatCheckList.aspx.cs +++ b/AF/CatCheckList.aspx.cs @@ -4,11 +4,119 @@ using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using Extensiones; +using System.Data; -public partial class AF_CatCheckList : System.Web.UI.Page +public partial class AF_CatCheckList : ClsPaginas { + private int CveCheckList + { + get + { + return ViewState["CveCheckList"].ToString().ToEntero(); + } + + set + { + ViewState["CveCheckList"] = value; + } + } + protected void Page_Load(object sender, EventArgs e) { + if (!IsPostBack) + { + CargaDatos(); + } + } + private void CargaDatos() + { + ClsAF ObjAF = new ClsAF(); + if (ObjAF.GetCheckList(-1, -1, -1)) + { + GvDatos.DataSource = ObjAF.DtResultados; + GvDatos.DataBind(); + } + + DdlTipoServicio.Items.Clear(); + if (ObjAF.GetTiposServicios(-1,-1,-1,UsuarioActual.CveEmpresa)) + { + DdlTipoServicio.DataSource = ObjAF.DtResultados; + DdlTipoServicio.DataBind(); + DdlTipoServicio.Items.Insert(0, new ListItem("Seleccione","-1")); + } + + DdlCheckListActividad.Items.Clear(); + if (ObjAF.GetCheckListActividad(-1, -1)) + { + DdlCheckListActividad.DataSource = ObjAF.DtResultados; + DdlCheckListActividad.DataBind(); + DdlCheckListActividad.Items.Insert(0, new ListItem("Seleccione", "-1")); + } + + ObjAF.Dispose(); + } + + protected void BtnAgregarCheckListD_Click(object sender, EventArgs e) + { + BtnAgregarCheckList.Text = "Agregar"; + DdlTipoServicio.SelectedValueExist(-1); + DdlCheckListActividad.SelectedValueExist(-1); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposServiciosD")); + } + + protected void LnkEditar_Click(object sender, EventArgs e) + { + BtnAgregarCheckList.Text = "Actualizar"; + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckList = GvRow.DataKey("CveCheckList").ToEntero(); + DdlTipoServicio.SelectedValueExist(GvRow.DataKey("CveTipoServicio")); + DdlCheckListActividad.SelectedValueExist(GvRow.DataKey("CveCheckListActividad")); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposServiciosD")); + } + + protected void LnkEliminar_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckList = GvRow.DataKey("CveCheckList").ToEntero(); + ClsAF ObjAF = new ClsAF(); + if (ObjAF.DeleteCheckList(CveCheckList)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + Alert("Se eliminó el CheckList correctamente"); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarCheckList_Click(object sender, EventArgs e) + { + ClsAF ObjAF = new ClsAF(); + if (BtnAgregarCheckList.Text == "Agregar") + { + if (ObjAF.AddCheckList(DdlTipoServicio.SelectedValue.ToEntero(), DdlCheckListActividad.SelectedValue.ToEntero())) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + Alert("Se agregó el CheckList correctamente"); + } + } + else + { + if (ObjAF.UpdateCheckList(CveCheckList, DdlTipoServicio.SelectedValue.ToEntero(), DdlCheckListActividad.SelectedValue.ToEntero())) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + Alert("Se actualizó el CheckList correctamente"); + } + } + ObjAF.Dispose(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); } } \ No newline at end of file diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 0b5f11d3e..1e93bc42a 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3959,6 +3959,7 @@ Public Class ClsPaginas PaginaDict.Add("/AF/CatCheckListActividadesGrupos.aspx".ToUpper(), 769) PaginaDict.Add("/AF/CatCheckListTipo.aspx".ToUpper(), 770) PaginaDict.Add("/AF/CatCheckListActividades.aspx".ToUpper(), 771) + PaginaDict.Add("/AF/CatCheckList.aspx".ToUpper(), 772) PaginaDict.Add("/AF/TipoOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajo.aspx".ToUpper(), -1) From b046dd6a8a558109033fada90e3597e1592a2e82 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 22 Aug 2020 14:19:33 -0700 Subject: [PATCH 07/10] Registo mercancia Almacen Administrativo --- Compras/Compras.aspx | 1 + Compras/Compras.aspx.vb | 51 ++++++++++++++++++++++++---- Inventarios/RecepcionAlmacen.aspx.vb | 32 +++++++++++------ 3 files changed, 67 insertions(+), 17 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index a58e8d78b..2fc14f0ad 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -467,6 +467,7 @@ + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 51c1fb889..a28d0e56b 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -2986,10 +2986,17 @@ Partial Class Compras_Compras 'ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2)") 'solo muestra tipo material y herramientas 'ddlAlmacen.DataBind() - ddlAlmacenAdd.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2,7,14,19)") 'solo muestra tipo material y herramientas - ddlAlmacenAdd.DataBind() + Dim DtAlmacenes = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2,7,14,19)") - DdlAlmacenDevolucion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2,7,14,19)") 'solo muestra tipo material y herramientas + If DdlTipoCompra.SelectedValue = "10" Then + ddlAlmacenAdd.DataSource = DtAlmacenes.FiltraParametros("Modalidad = 0") + DdlAlmacenDevolucion.DataSource = DtAlmacenes.FiltraParametros("Modalidad = 0") + Else + ddlAlmacenAdd.DataSource = DtAlmacenes + DdlAlmacenDevolucion.DataSource = DtAlmacenes + End If + + ddlAlmacenAdd.DataBind() DdlAlmacenDevolucion.DataBind() DdlAlmacenDevolucion.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -6411,6 +6418,13 @@ Partial Class Compras_Compras idCuentaContabilizacion = 0 End If + 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If DdlTipoCompra.SelectedValue = "10" Then + SeContabiliza = False + IdCtaContable = 0 + CveCuenta = 0 + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True End If @@ -6611,6 +6625,13 @@ Partial Class Compras_Compras idCuentaContabilizacion = 0 End If + 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then + SeContabiliza = False + IdCtaContable = 0 + CveCuenta = 0 + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True End If @@ -10117,9 +10138,18 @@ Partial Class Compras_Compras End If End If If importeMovimiento <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveCuenta:=CveCuenta) Then + Dim SeContabiliza As Boolean = True + 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If DdlTipoCompra.SelectedValue = "10" Then + SeContabiliza = False + IdCtaContable = 0 + CveCuenta = 0 + End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True End If + End If Next End If @@ -11589,6 +11619,10 @@ Partial Class Compras_Compras StrAlmacenes = "CveTipoAlmacen IN (21)" End If + If DdlTipoCompra.SelectedValue.ToEntero = 10 Then + StrAlmacenes = $"Modalidad = 0" + End If + e.Row.FCDropDownList("ddlAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("ddlAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1")) e.Row.FCDropDownList("ddlAlmacen").DataBind() @@ -18715,7 +18749,12 @@ Partial Class Compras_Compras If CveCuenta = 0 Then CuentasContablesInvalidasSIG.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, Concepto, 68, Concepto, FechaMovimiento, Row("IdCtaContable").ToString.ToEntero, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveMovimientoAlmacen:=Row("CveMovimiento").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(TipoCambioActual = 1, 0, ImporteMovimiento), CveCuenta:=Row("CveCuenta").ToString.ToEntero) Then + Dim SeContabiliza As Boolean = True + 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If DdlTipoCompra.SelectedValue = "10" Then + SeContabiliza = False + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, Concepto, 68, Concepto, FechaMovimiento, Row("IdCtaContable").ToString.ToEntero, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveMovimientoAlmacen:=Row("CveMovimiento").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(TipoCambioActual = 1, 0, ImporteMovimiento), CveCuenta:=Row("CveCuenta").ToString.ToEntero, Contabilizable:=SeContabiliza) Then TieneError = True Exit For End If @@ -19625,7 +19664,7 @@ Partial Class Compras_Compras Protected Sub DdlTipoCompra_SelectedIndexChanged(sender As Object, e As EventArgs) - If DdlTipoCompra.SelectedValue.ToEntero = 9 Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada + If DdlTipoCompra.SelectedValue.ToEntero.Contiene(9, 10) Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada CargaGvInv() End If diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index d094c150b..0a668c649 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -458,7 +458,7 @@ Partial Class Inventarios_RecepcionAlmacen ''' ''' ''' Parametro sin espacios y separado por comas ["1,2,3,21"] - Private Sub CargaAlmacenes(CveSubProyecto As Integer, Optional CveTiposAlmacen As String = "") + Private Sub CargaAlmacenes(CveSubProyecto As Integer, Optional CveTiposAlmacen As String = "", Optional CveTipoCompra As Integer = -1) Dim StrAlmacenes As String = "" If UsuarioActual.CveSubProyecto = 8804 Then 'AGS @@ -467,6 +467,10 @@ Partial Class Inventarios_RecepcionAlmacen StrAlmacenes = $"CveTipoAlmacen IN ({If(CveTiposAlmacen.Length > 0, CveTiposAlmacen, "1,2,15,6")}) {If(CveSubProyecto > 0, $"And CveSubProyecto = {CveSubProyecto}", "")}" End If + If CveTipoCompra = 10 Then + StrAlmacenes = $"Modalidad = 0" + End If + DdlAlmacen.Items.Clear() DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1")) @@ -854,13 +858,18 @@ Partial Class Inventarios_RecepcionAlmacen CveTipoCompra = ObjCompras.DtResultados.Rows(0)("CveTipoCompra").ToString.ToEntero If TipoMovimiento = 3 Then - CargaAlmacenes(-1, "21,2") + CargaAlmacenes(-1, "21,2", CveTipoCompra) End If If CveTipoCompra = 9 Then - CargaAlmacenes(-1, "21") + CargaAlmacenes(-1, "21", CveTipoCompra) End If + If CveTipoCompra = 10 Then + CargaAlmacenes(-1, CveTipoCompra:=CveTipoCompra) + End If + + RecibidaCompleta = False @@ -879,9 +888,9 @@ Partial Class Inventarios_RecepcionAlmacen CargaSoloUsados = True DtRecepcion = ObjInventario.DtResultados.Copy() If UsuarioActual.CveRol = 1 Then - CargaAlmacenes(-1, "22,24") + CargaAlmacenes(-1, "22,24", CveTipoCompra) Else - CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22") + CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra) End If Else DtRecepcion = ObjInventario.DtResultados.Copy() @@ -952,9 +961,9 @@ Partial Class Inventarios_RecepcionAlmacen Else LtAdvertencia.Text = "La mercancía sera traspasada ha apartados" If CargaSoloUsados Then - CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22") + CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra) Else - CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero) + CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, CveTipoCompra:=CveTipoCompra) End If End If End If @@ -2113,7 +2122,8 @@ Partial Class Inventarios_RecepcionAlmacen Next IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacen}").ToEntero - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, MovAlmacen, DtCostos.SUMD("Total").RoundSQL, Concepto, 68, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=DtCostos.SUMD("Total").RoundSQL, Contabilizable:=EsContabilizable) Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, MovAlmacen, DtCostos.SUMD("Total").RoundSQL, Concepto, 68, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=DtCostos.SUMD("Total").RoundSQL, Contabilizable:=If(CveTipoCompra = 10, False, EsContabilizable)) Then Retorno = False End If @@ -2734,7 +2744,7 @@ Partial Class Inventarios_RecepcionAlmacen Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero CvePrePoliza = ObjConta.AddPrePolizas("Inventario/RecepcionAlmacen", 74, TotalCosto, TotalCosto, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CvePrePoliza > 0 Then - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveSubProyecto:=CveSubProyecto, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen, Contabilizable:=EsContabilizable) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveSubProyecto:=CveSubProyecto, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen, Contabilizable:=If(CveTipoCompra = 10, False, EsContabilizable)) Then 'AGREGA POR CONCEPTO POR CVEOCDETALLE If CveOCSurtir > 0 Then @@ -2906,7 +2916,7 @@ Partial Class Inventarios_RecepcionAlmacen CvePrePoliza = ObjConta.AddPrePolizas("Inventario/RecepcionAlmacen-NC", 74, TotalCosto, TotalCosto, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CvePrePoliza > 0 Then If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalNC, SerieFolio, CveConceptoContableNC, SerieFolio, Fecha, IdCtaContableNC, -1, CveCompra:=CveCompraSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalNC, Contabilizable:=EsContabilizable) Then - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto * -1, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto * -1, CveCuenta:=CveCuentaAlmacen, Contabilizable:=EsContabilizable) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto * -1, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto * -1, CveCuenta:=CveCuentaAlmacen, Contabilizable:=If(CveTipoCompra = 10, False, EsContabilizable)) Then If DifCostoNC <> 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DifCostoNC * -1, SerieFolio, 69, SerieFolio, Fecha, IdCtaContableClasificacion, -1, CveClasificacion:=CveClasificacionDifCostoNC, CveCompra:=CveCompraSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=DifCostoNC * -1, CveCuenta:=CveCuentaClasificacion, Contabilizable:=EsContabilizable, CveSubProyecto:=CveSubProyecto) Then ErrorMovInv = True @@ -3198,7 +3208,7 @@ Partial Class Inventarios_RecepcionAlmacen Dim PorcentajeRecepcionCompras As Decimal = TotalCosto / DtTempCompras.SUMD("SubTotalTC") Dim ConceptoPartida As String = String.Format("{0}- Inv#{1}", HLFolio.Text, InvFolio) - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, InvFolio, 68, InvFolio, FechaMovto, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, InvFolio, 68, InvFolio, FechaMovto, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen, Contabilizable:=If(CveTipoCompra = 10, False, True)) Then 'se recorren las facturas a descontar el recepción If DtTempCompras IsNot Nothing AndAlso DtTempCompras.Rows.Count > 0 Then From 9eb2b41f6e6f95be9787f14774f1980235e1457c Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Mon, 24 Aug 2020 11:54:10 -0700 Subject: [PATCH 08/10] - --- Edoc/Contratos.aspx | 10 ++++++++++ Edoc/Contratos.aspx.vb | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/Edoc/Contratos.aspx b/Edoc/Contratos.aspx index 89cf0b08c..ca690e7c6 100644 --- a/Edoc/Contratos.aspx +++ b/Edoc/Contratos.aspx @@ -16,7 +16,17 @@
  • +
  • + PDF +
  • +
  • + Excel +
  • + + + + diff --git a/Edoc/Contratos.aspx.vb b/Edoc/Contratos.aspx.vb index 46bd9fa4b..87fd7d107 100644 --- a/Edoc/Contratos.aspx.vb +++ b/Edoc/Contratos.aspx.vb @@ -3,6 +3,7 @@ Imports System.Data Imports System.Linq Imports Extensiones +Imports Microsoft.Reporting.WebForms Partial Class Proveedores_Contratos Inherits ClsPaginas @@ -20,6 +21,15 @@ Partial Class Proveedores_Contratos End Set End Property + Protected Property DtDatos As DataTable + Get + Return CType(ViewState("DtDatos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtDatos") = value + End Set + End Property + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then @@ -39,6 +49,7 @@ Partial Class Proveedores_Contratos If ObjProv.GetContrato(-1, DdlSubProyectoFiltro.SelectedValue.ToEntero, DdlProveedorFiltro.SelectedValue.ToEntero, DdlTipoContratoFiltro.SelectedValue.ToEntero, -1, -1, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjProv.DtResultados + DtDatos = ObjProv.DtResultados Else GvDatos.DataSource = Nothing End If @@ -329,4 +340,31 @@ Partial Class Proveedores_Contratos End If End Sub + + Protected Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click + Imprimir("PDF") + End Sub + + Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click + Imprimir("Excel") + End Sub + + Private Sub Imprimir(Formato As String) + Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + + Dim params As New List(Of ReportParameter) + + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + + Dim Filtro As String = String.Format("{0}: {1}   Proveedor: {2}   Tipo Contrato: {3}", LblSubProyectoFiltro.Text, DdlSubProyectoFiltro.SelectedItem.Text, DdlProveedorFiltro.SelectedItem.Text, DdlTipoContratoFiltro.SelectedItem.Text) + params.Add(New ReportParameter("Filtro", Filtro)) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", logouri)) + End If + ImprimirPDF("Empresas/Grales/Formatos/RepContratosGen.rdlc", DtDatos, params, "Reporte de Contratos", Formato) + End Sub End Class From 0d9e3574f924afe7086cd507597e047e1ab1033c Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Mon, 24 Aug 2020 16:23:19 -0700 Subject: [PATCH 09/10] - --- Ventas/Clientes.aspx | 2 ++ Ventas/Clientes.aspx.vb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 71897ac72..25ab45b50 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -2378,6 +2378,7 @@ Archivos + @@ -2385,6 +2386,7 @@ Reenviar Complemento + <%-- diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index d9da7cfae..d2e4de5ff 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -2013,6 +2013,7 @@ Partial Class Clientes ObjBancos.Dispose() End If e.Row.BackColor = Drawing.Color.LightGray + e.Row.Font.Bold = True End If If e.Row.DBCampo("CveVenta") = "" And e.Row.DBCampo("Banco") = "" Then @@ -6328,6 +6329,7 @@ Partial Class Clientes Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("AgrupadoPor", String.Format("Cliente: {0}", TxtNombreComercial.Text))) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) If Imagen.Exists Then From 19b3ce181f6777e3a9fd4ee449e8abfde492fed9 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Mon, 24 Aug 2020 18:55:17 -0700 Subject: [PATCH 10/10] nuevo filtro de busqueda --- App_Code/ClsOC.vb | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 4a1cd26ba..b12725805 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -1729,9 +1729,11 @@ Public Class ClsOC 'End Function #End Region - Public Function GetOrdenesCompraRep(Tipo As String, CveProyecto As Integer, CveSubProyecto As Integer, CveClasificacion As Integer, CveEstatus As Integer, - FechaInicio As Date, FechaFin As Date, CveOrdenCompra As Integer, CveProveedor As Integer, Folio As Integer, CveUsuarioRegistro As Integer, CveUsuario As Integer, CveEmpresa As Integer, CvePS As Integer, Optional PendientePorSurtir As Boolean = False, Optional CveCliente As Integer = -1, Optional Guia As String = "-1", Optional CveActivoFijo As Integer = -1, - Optional SoloSubProyectosConPermiso As Boolean = False, Optional CveUsuarioAutorizo As Integer = -1, Optional TopSelect As Integer = 10000) As Boolean + Public Function GetOrdenesCompraRep(Tipo As String, CveProyecto As Integer, CveSubProyecto As Integer, CveClasificacion As Integer, CveEstatus As Integer, FechaInicio As Date, + FechaFin As Date, CveOrdenCompra As Integer, CveProveedor As Integer, Folio As Integer, CveUsuarioRegistro As Integer, CveUsuario As Integer, + CveEmpresa As Integer, CvePS As Integer, Optional PendientePorSurtir As Boolean = False, Optional CveCliente As Integer = -1, Optional Guia As String = "-1", + Optional CveActivoFijo As Integer = -1, Optional SoloSubProyectosConPermiso As Boolean = False, Optional CveUsuarioAutorizo As Integer = -1, + Optional CveUsuarioAsignado As Integer = -1, Optional EntregaDirecta As Integer = -1, Optional TopSelect As Integer = 10000) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraRep") @@ -1757,6 +1759,8 @@ Public Class ClsOC .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo .Add("@SoloSubProyectosConPermiso", SqlDbType.Bit).Value = SoloSubProyectosConPermiso .Add("@CveUsuarioAutorizo", SqlDbType.Int).Value = CveUsuarioAutorizo + .Add("@CveUsuarioAsignado", SqlDbType.Int).Value = CveUsuarioAsignado + .Add("@EntregaDirecta", SqlDbType.Int).Value = EntregaDirecta .Add("@TopSelect", SqlDbType.Int).Value = TopSelect End With @@ -1863,7 +1867,7 @@ Public Class ClsOC End Function Public Function GetOrdenesPendientes(pTipo As String, pTipoBusqueda As Integer, pCveEmpresa As Integer, pCveProyecto As Integer, pCveSubProyecto As Integer, pCveEstatusCompra As Integer, - pCveUsuario As Integer, CveCliente As Integer, Optional SoloSubProyectosConPermiso As Boolean = False) As Boolean + pCveUsuario As Integer, CveCliente As Integer, Optional SoloSubProyectosConPermiso As Boolean = False, Optional CveUsuarioAsignado As Integer = -1, Optional EntregaDirecta As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraPendientes") @@ -1878,6 +1882,8 @@ Public Class ClsOC .Add("@CveCliente", SqlDbType.Int).Value = CveCliente .Add("@TipoBusqueda", SqlDbType.Int).Value = pTipoBusqueda .Add("@SoloSubProyectosConPermiso", SqlDbType.Bit).Value = SoloSubProyectosConPermiso + .Add("@CveUsuarioAsignado", SqlDbType.Int).Value = CveUsuarioAsignado + .Add("@EntregaDirecta", SqlDbType.Int).Value = EntregaDirecta End With Try