From 970ce252fb4b1ecc2b78456f31aa439993ff53f4 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 7 Apr 2021 15:42:20 -0700 Subject: [PATCH 1/7] mejoras. manejo de existencia con decimales --- Inventarios/AjustesSeccionAlmacen.aspx | 2 +- Inventarios/AjustesSeccionAlmacen.aspx.vb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Inventarios/AjustesSeccionAlmacen.aspx b/Inventarios/AjustesSeccionAlmacen.aspx index 054cd4912..de1c2cc0a 100644 --- a/Inventarios/AjustesSeccionAlmacen.aspx +++ b/Inventarios/AjustesSeccionAlmacen.aspx @@ -88,7 +88,7 @@ <%----%> - + diff --git a/Inventarios/AjustesSeccionAlmacen.aspx.vb b/Inventarios/AjustesSeccionAlmacen.aspx.vb index 11eaa4b15..45bd0b5fa 100644 --- a/Inventarios/AjustesSeccionAlmacen.aspx.vb +++ b/Inventarios/AjustesSeccionAlmacen.aspx.vb @@ -212,11 +212,11 @@ Partial Class Inventarios_AjustesSeccionAlmacen Next 'inserto la prepoliza - If CveMovimientoEntrada > 0 AndAlso CveMovimientoSalida > 0 Then + If Not ErrorMovInv AndAlso CveMovimientoEntrada > 0 AndAlso CveMovimientoSalida > 0 Then Dim Concepto As String = "Ajuste Sección" Dim IdCtaContableOrigen As Integer = 0 Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/AjusteAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - Dim importe As Decimal = resultado.SUMD("Total").RoundAD + Dim importe As Decimal = resultado.SUMD("Total").RoundSQL Dim contabilizable As Boolean = False If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, Concepto, 68, Concepto, Fecha, IdCtaContableOrigen, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=contabilizable, ImporteMX:=importe) Then ErrorMovInv = True From 7b594fd4e9f44d13d24ba8a728f63c37a16d7d7a Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Wed, 7 Apr 2021 19:30:41 -0700 Subject: [PATCH 2/7] Modificacion para la busqueda del PS --- Inventarios/EntradasSalidas.aspx.vb | 65 +++++++++++++++++------------ 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index c6c92e476..fb992b66b 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -4581,6 +4581,7 @@ Partial Class Inventarios_EntradasSalidas NumRow = 0 Dim RowNoEncontrados As String = "" Dim NumAgregados As Integer = 0 + Dim PSTemp As DataTable = GlobalDTPS(UsuarioActual.CveEmpresa) For Each Row As DataRow In dt.Rows Dim Cantidad As Decimal = Row("Cantidad").ToString.ToDecimal @@ -4596,6 +4597,7 @@ Partial Class Inventarios_EntradasSalidas Dim CvePS As Integer = 0 Dim CveUM As Integer = 0 + Dim DataTemp As DataTable NumRow = NumRow + 1 @@ -4607,36 +4609,48 @@ Partial Class Inventarios_EntradasSalidas If Codigo <> "" Then - Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c) - If StrArray.Length > 0 Then - If CBool(StrArray(0)) = True Then - CvePS = StrArray(1).ToEntero - Else - RowNoEncontrados &= StrArray(1) & "<\BR>" - End If - End If - 'ElseIf CodigoBarras <> "" Then - ' Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c) - ' If StrArray.Length > 0 Then - ' If CBool(StrArray(0)) = True Then - ' CvePS = StrArray(1).ToEntero - ' Else - ' RowNoEncontrados &= StrArray(1) & "<\BR>" - ' End If - ' End If - ElseIf ProductoServicio <> "" Then - Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c) - If StrArray.Length > 0 Then - If CBool(StrArray(0)) = True Then - CvePS = StrArray(1).ToEntero - Else - RowNoEncontrados &= StrArray(1) & "<\BR>" - End If + DataTemp = PSTemp.FiltraParametros(String.Format("Codigo = '{0}'", Codigo)) + CvePS = DataTemp.FiltroPrimeroValor("CvePS", "").ToEntero + DataTemp.Dispose() + If CvePS = 0 Then + RowNoEncontrados &= Codigo & "<\BR>" End If Else RowNoEncontrados &= "<\BR>    - En la fila " & NumRow & " no se especificó código, código de barras ó descripción." End If + + 'If Codigo <> "" Then + ' Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c) + ' If StrArray.Length > 0 Then + ' If CBool(StrArray(0)) = True Then + ' CvePS = StrArray(1).ToEntero + ' Else + ' RowNoEncontrados &= StrArray(1) & "<\BR>" + ' End If + ' End If + ' 'ElseIf CodigoBarras <> "" Then + ' ' Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c) + ' ' If StrArray.Length > 0 Then + ' ' If CBool(StrArray(0)) = True Then + ' ' CvePS = StrArray(1).ToEntero + ' ' Else + ' ' RowNoEncontrados &= StrArray(1) & "<\BR>" + ' ' End If + ' ' End If + 'ElseIf ProductoServicio <> "" Then + ' Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c) + ' If StrArray.Length > 0 Then + ' If CBool(StrArray(0)) = True Then + ' CvePS = StrArray(1).ToEntero + ' Else + ' RowNoEncontrados &= StrArray(1) & "<\BR>" + ' End If + ' End If + 'Else + ' RowNoEncontrados &= "<\BR>    - En la fila " & NumRow & " no se especificó código, código de barras ó descripción." + 'End If + If CvePS > 0 Then Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).Rows(0) @@ -4644,7 +4658,6 @@ Partial Class Inventarios_EntradasSalidas CveUM = DrPS("CveUnidadMedida").ToString().ToEntero() UM = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimeroValor("UnidadMedida", $"CveUnidadMedida={CveUM}") End If - AddNew(CvePS, ProductoServicio, CveUM, UM, Cantidad, PrecioUnitario, Serie.Replace(" ", String.Empty), "", "-1", "-1", "", Lote, Caducidad.ToDate, CveSeccionAlmacen, SeccionAlmacen, CargarGV:=False) From 98da05e00ef3014827ad9ec3ee05674fc4d6a796 Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Wed, 7 Apr 2021 19:31:19 -0700 Subject: [PATCH 3/7] Cambios visuales para mostrar el boton de guardar --- Bancos/DepositosCaja.aspx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Bancos/DepositosCaja.aspx b/Bancos/DepositosCaja.aspx index 1569f6be1..05ca350a2 100644 --- a/Bancos/DepositosCaja.aspx +++ b/Bancos/DepositosCaja.aspx @@ -125,15 +125,14 @@ +
+
+ Importe seleccionado: $00.00 +
+
-
-
-
- Importe seleccionado: $00.00 -
-
-
+
From 82bcde1451873026650be2883025fc58a88b49a0 Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Wed, 7 Apr 2021 20:24:58 -0700 Subject: [PATCH 4/7] Traspaso de saldos --- App_Code/ClsContabilidad.vb | 24 ++++++- Contabilidad2/CatCuentas.aspx | 2 +- Contabilidad2/CatCuentas.aspx.vb | 104 ++++++++++++++++++++++++++----- 3 files changed, 113 insertions(+), 17 deletions(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 23f649d54..bde65432e 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -4543,7 +4543,7 @@ Public Class ClsContabilidad Public Function UpdateCuenta(CveCuenta As Integer, Nombre As String, Tipo As String, CtaMayor As Integer, CveMoneda As Integer, Optional DigAgrupador As Integer = -1, Optional CveAgrupadorSAT As Integer = -1, Optional NomIdioma As String = "", Optional CveConceptoAdmin As Integer = -1, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CveClasificacion As Integer = -1, Optional PorcentajeImpuesto As Decimal = -1, - Optional CveBancoCuenta As Integer = -1, Optional CveAlmacen As Integer = -1) As Boolean + Optional CveBancoCuenta As Integer = -1, Optional CveAlmacen As Integer = -1, Optional Afectable As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Conta_UpdateCuentas") @@ -4564,6 +4564,7 @@ Public Class ClsContabilidad .Add("@PorcentajeImpuesto", SqlDbType.Money).Value = PorcentajeImpuesto .Add("@CveBancoCuenta", SqlDbType.Int).Value = CveBancoCuenta .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen + .Add("@Afectable", SqlDbType.Int).Value = Afectable End With Try @@ -6398,5 +6399,26 @@ Public Class ClsContabilidad #End Region + Public Function UpdateTraspasoPrepoliza(CveEmpresa As Integer, CveCuenta As Integer, CveCuentaNueva As Integer) As Boolean + Dim Retorno = False + + DataAdapter("PA_Conta_Traspaso_Prepolizas") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta + .Add("@CveCuentaNueva", SqlDbType.Int).Value = CveCuentaNueva + + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + Me.OnError("Ocurrió un error al obtener traspasar las Prepolizas", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + End Class \ No newline at end of file diff --git a/Contabilidad2/CatCuentas.aspx b/Contabilidad2/CatCuentas.aspx index 24cf2ec21..9f026eb56 100644 --- a/Contabilidad2/CatCuentas.aspx +++ b/Contabilidad2/CatCuentas.aspx @@ -225,7 +225,7 @@
- + diff --git a/Contabilidad2/CatCuentas.aspx.vb b/Contabilidad2/CatCuentas.aspx.vb index c8c3f3b34..4c55dd786 100644 --- a/Contabilidad2/CatCuentas.aspx.vb +++ b/Contabilidad2/CatCuentas.aspx.vb @@ -31,6 +31,24 @@ Partial Class Contabilidad2_CatCuentas ViewState("idsel") = value End Set End Property + + Private Property CvePadre As Integer + Get + Return ViewState("CvePadre").ToString.ToEntero() + End Get + Set(value As Integer) + ViewState("CvePadre") = value + End Set + End Property + + Private Property Afectable As Boolean + Get + Return ViewState("Afectable").ToString + End Get + Set(value As Boolean) + ViewState("Afectable") = value + End Set + End Property #Region "Contabilidadnew" Private Property CveProveedor As Integer Get @@ -168,6 +186,7 @@ Partial Class Contabilidad2_CatCuentas Protected Sub agregar_Click(sender As Object, e As EventArgs) Handles ArbolCuentas.addclick LimpiarCampos() Dim dt As New DataTable + 'IDSelected = HdnID.Value.ToEntero() "ul" + itempadre.Cve; Dim obj As ADServerControl.DragableItem = DirectCast(sender, ADServerControl.DragableItem) IDSelected = obj.Cve @@ -182,6 +201,12 @@ Partial Class Contabilidad2_CatCuentas DTcuenta.SelectedValue = dr("Tipo").ToString() DcuentaMayor.SelectedValue = dr("CtaMayor").ToString LblSubCuenta.Text = dr("Nombre").ToString + Afectable = dr("Afectable").ToString + CvePadre = dr("CvePadre").ToString.ToEntero + End If + + If Afectable Then + Alert("Se va crear una subcuenta en una cuenta afectable", TipoMensaje.MsgAdvertencia) End If TxtCuenta.Enabled = True @@ -298,7 +323,6 @@ Partial Class Contabilidad2_CatCuentas Dim CveAlmacen As Integer = DdlAlmacen.SelectedValue.ToEntero() If DdlAgrupadorSAT.SelectedValue.ToEntero > 0 Then - If ObjConta.UpdateCuenta(IDSelected.ToEntero, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToString.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString, CveConceptoAdmin:=CveConceptoAdmin, CveProveedor:=CveProveedor, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeImpuesto, @@ -372,18 +396,66 @@ Partial Class Contabilidad2_CatCuentas 'Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa) Dim ObjConta As New ClsContabilidad - - Dim ObjConta2 As ClsContPAQi - - Dim CuentaEfectivo As Integer = 0 Dim Afectable As Integer = 1 'If(DcuentaMayor.SelectedValue <> 2, 0, 1) ' cuando sea tipo 2, va a ser afectable Tcuenta.Text.Replace("-", "") Dim idnew As Integer = 0 + Dim CveConceptoContable As Integer = DdlConcepto.SelectedValue.ToEntero() + Dim row As DataRow = Nothing + Dim CveTipoSaldo As Integer = 0 + Dim PorcentajeIVA As Decimal = -1 + Dim drt As DataRow + Dim CveConceptoAdmin As Integer = -1 + Dim CveProveedor As Integer = -1 + Dim CveCliente As Integer = -1 + Dim CveClasificacion As Integer = -1 + Dim PorcentajeImpuesto As Decimal = -1 + Dim CveBancoCuenta As Integer = -1 + Dim CveAlmacen As Integer = -1 + Dim CvePersonal As Integer = -1 + If DdlAgrupadorSAT.SelectedValue.ToEntero > 0 Then - idnew = ObjConta.AddCuenta(IDSelected, TxtCuenta.Text.Replace("-", ""), Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, - DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString) + + If CveConceptoContable > 0 Then + row = DtConceptosconta.FiltroPrimero(String.Format("CveConceptoContable={0}", CveConceptoContable)) + CveTipoSaldo = row("CveTipoSaldo").ToString.ToEntero() + End If + If Not IsNothing(row) Then + If CveTipoSaldo = 3 Then + PorcentajeIVA = TxtPorcentaje.ToEntero / 100 + End If + End If + + If Afectable Then + If ObjConta.GetCuentas(IDSelected, "-1", -1, UsuarioActual.CveEmpresa) Then + drt = ObjConta.DtResultados.FiltroPrimero(String.Format("CveCuenta={0}", IDSelected)) + CveConceptoAdmin = IIf(drt("CveConceptoAdmin").ToString.ToEntero = 0, -1, drt("CveConceptoAdmin").ToString.ToEntero) + CveProveedor = IIf(drt("CveProveedor").ToString.ToEntero = 0, -1, drt("CveProveedor").ToString.ToEntero) + CveCliente = IIf(drt("CveCliente").ToString.ToEntero = 0, -1, drt("CveCliente").ToString.ToEntero) + CveClasificacion = IIf(drt("CveClasificacion").ToString.ToEntero = 0, -1, drt("CveClasificacion").ToString.ToEntero) + PorcentajeImpuesto = IIf(drt("PorcentajeImpuesto").ToString.ToEntero = 0, -1, drt("PorcentajeImpuesto").ToString.ToEntero) + CveBancoCuenta = IIf(drt("CveBancoCuenta").ToString.ToEntero = 0, -1, drt("CveBancoCuenta").ToString.ToEntero) + 'CveAlmacen = IIf(drt("CveAlmacen").ToString.ToEntero = 0, -1, drt("CveAlmacen").ToString.ToEntero) + 'CvePersonal = IIf(drt("CvePersonal").ToString.ToEntero = 0, -1, drt("CvePersonal").ToString.ToEntero) + End If + + idnew = ObjConta.AddCuenta(CvePadre, TxtCuenta.Text.Replace("-", ""), Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, + DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString, CveConceptoAdmin:=CveConceptoAdmin, CveProveedor:=CveProveedor, CveCliente:=CveCliente, + CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeImpuesto, CveBancoCuenta:=CveBancoCuenta) + If idnew > 0 Then + If ObjConta.UpdateTraspasoPrepoliza(UsuarioActual.CveEmpresa, IDSelected, idnew) Then + ObjConta.RollBack() + ObjConta.Dispose() + Exit Sub + End If + End If + + Else + idnew = ObjConta.AddCuenta(IDSelected, TxtCuenta.Text.Replace("-", ""), Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, + DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString, PorcentajeImpuesto:=PorcentajeIVA) + End If + Else Alert("Es necesario agregar el campo 'Agrupador SAT'", TipoMensaje.MsgError) End If @@ -401,14 +473,12 @@ Partial Class Contabilidad2_CatCuentas End If - Dim codigoPadre As String = DtDatos.FiltroPrimeroValor("Codigo", $"CveCuenta={IDSelected}") 'Tsubcuenta.Text + codigoPadre = DtDatos.FiltroPrimeroValor("Codigo", $"CveCuenta={IDSelected}") 'Tsubcuenta.Text If UsuarioActual.Empresa.TipoContabilidad = 2 Then ObjConta2 = New ClsContPAQi(UsuarioActual.Empresa) If ObjConta2.GetCuentas(-1, "-1", -1) Then - Dim IdPadre As Integer = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"Codigo='{codigoPadre}'").ToEntero - Dim IdAgrupador As Integer - + IdPadre = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"Codigo='{codigoPadre}'").ToEntero If ObjConta2.GetAgrupadoresSAT() Then IdAgrupador = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"CodigoNombre='{DdlAgrupadorSAT.SelectedItem.Text}'").ToEntero End If @@ -453,17 +523,20 @@ Partial Class Contabilidad2_CatCuentas End If ArbolCuentas.additem(objul, idnew, IDSelected, String.Format("{0} - {1}", TxtCuenta.Text, Tnombre.Text)) - LimpiarCampos() - updatos.Update() + CargaDatos() - Alert("La cuenta se guardo correctamente") End If + If ObjConta2 IsNot Nothing Then ObjConta2.Dispose() + End If + LimpiarCampos() + updatos.Update() + Alert("La cuenta se guardo correctamente") + End If ObjConta.Dispose() - If ObjConta2 IsNot Nothing Then ObjConta2.Dispose() End Sub @@ -564,6 +637,7 @@ Partial Class Contabilidad2_CatCuentas Case 2 pnlOpcion2.Visible = True Case 3 + pnlOpcion2.Visible = True pnlOpcion3.Visible = True If DdlClasificacion.Items.Count < 2 Then DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=1) From dd300743d1cbab65781777233adc754e8597588a Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Wed, 7 Apr 2021 20:25:46 -0700 Subject: [PATCH 5/7] Nueva vista: ReconstruirCostos --- App_Code/ClsPaginas.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ef3c9b60c..060485b51 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4680,6 +4680,8 @@ Public Class ClsPaginas PaginaDict.Add("/Inventarios/RepTraspasoAlmacen.aspx".ToUpper(), 688) PaginaDict.Add("/Inventarios/EntregasPorRealizar.aspx".ToUpper(), 728) PaginaDict.Add("/Inventarios/CatAlmacenClasificacionSecciones.aspx".ToUpper(), 764) + PaginaDict.Add("/Inventarios/ReconstruirCostos.aspx".ToUpper(), 764) + #End Region #Region "MF" From 5b6d9975e6e35c534da54cc6d68c8c15733d45c3 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Thu, 8 Apr 2021 11:50:56 -0700 Subject: [PATCH 6/7] --- Nomina/Nomina2.aspx | 7 +- Nomina/Nomina2.aspx.cs | 427 ++++++++++++++++++++++++++++++++++++++++- RH/Personal.aspx | 52 +++-- RH/Personal.aspx.vb | 8 +- Scripts/custom.js | 2 +- vwd.webinfo | 4 + 6 files changed, 471 insertions(+), 29 deletions(-) diff --git a/Nomina/Nomina2.aspx b/Nomina/Nomina2.aspx index 220284e94..cc836c276 100644 --- a/Nomina/Nomina2.aspx +++ b/Nomina/Nomina2.aspx @@ -145,7 +145,10 @@ Registrar provisión
  • - Ver provisón + Layout banco +
  • +
  • + Ver provisión
  • Timbrar todos @@ -187,6 +190,8 @@ + + diff --git a/Nomina/Nomina2.aspx.cs b/Nomina/Nomina2.aspx.cs index 432514595..204cd6a0e 100644 --- a/Nomina/Nomina2.aspx.cs +++ b/Nomina/Nomina2.aspx.cs @@ -11,6 +11,8 @@ using static Extensiones.ModExtensiones; using System.Drawing; using iTextSharp.text.pdf; using System.IO; +using System.Data.SqlClient; +using System.Configuration; public partial class Nomina_Nomina2 : ClsPaginas { @@ -370,14 +372,15 @@ public partial class Nomina_Nomina2 : ClsPaginas DataRow drow = objnom.DtResultados.Rows[0]; int Estatus = drow["Estatus"].ToString().ToEntero(); int CvePrePolizaProvision = drow["CvePrePolizaProvision"].ToString().ToEntero(); - LnkConceptoEmpleado.Visible = true; - LnkAutorizar.Visible = (Estatus == 1); - LnkRegistrarProvision.Visible = (Estatus > 2) && CvePrePolizaProvision<0; + LnkConceptoEmpleado.Visible = (Estatus == 1); + LnkAutorizar.Visible = true;// (Estatus == 1); + LnkRegistrarProvision.Visible = (Estatus > 2) && CvePrePolizaProvision < 0; LnkConceptoEmpleado.Visible = (Estatus < 2); LnkCargaAsistenciaMasiva.Visible = (Estatus < 2); LnkModalPlantillaNomina.Visible = (Estatus < 2); - LnkTimbrarTodos.Visible = (Estatus > 1); + LnkTimbrarTodos.Visible = (Estatus > 2); + LnkLayoutContable.Visible = (Estatus > 2); LnkProvisionNomina.Visible = CvePrePolizaProvision > 0; LnkProvisionNomina.NavigateUrl = $"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaProvision}&Tipo=NOMPROV"; UpAccciones.Update(); @@ -396,7 +399,7 @@ public partial class Nomina_Nomina2 : ClsPaginas continuar = true; } - LnkTimbrarTodos.Visible = dtempleados.Rows.Count >0 && dtempleados.COUNT("CvePersonal", "SeTimbro=0 AND CvePersonal >0")>0; + LnkTimbrarTodos.Visible = dtempleados.Rows.Count > 0 && dtempleados.COUNT("CvePersonal", "SeTimbro=0 AND CvePersonal >0") > 0; } } @@ -2711,7 +2714,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } paragraphh = new GemBox.Document.Paragraph(document, string.Format("Fecha Ingr:{0:dd/MM/yyyy}, S.D.:{1:N2}, S.D.I.:{2:N2}, S.B.C.:{3:N2} ", drow2["FechaIngreso"], drow2["SalarioDiario"], drow2["SalarioDiarioIntegrado"], drow2["SalarioDiarioIMSS"])); cell.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; - paragraphh = new GemBox.Document.Paragraph(document, string.Format("Días pagados:{0}, Retardos: {1}, Ausencias:{2} ", drow2["DiasLaborados"], drow2["DiasRetardos"], drow2["DiasFaltados"])); cell.Blocks.Add(paragraphh); + paragraphh = new GemBox.Document.Paragraph(document, string.Format("Días pagados:{0}, Retardos: {1}, Ausencias:{2}, Centro de costos: {3}", drow2["DiasLaborados"], drow2["DiasRetardos"], drow2["DiasFaltados"], drow2["SubProyecto"])); cell.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; row = new GemBox.Document.Tables.TableRow(document); @@ -5266,11 +5269,421 @@ public partial class Nomina_Nomina2 : ClsPaginas using (ClsNominas objnom = new ClsNominas()) { - if (objnom.PrimaRiesgoUP(UsuarioActual.CveEmpresa,TxtFechaPRT.Text.ToDateTime(),TxtPrimaRiesgo.Text.ToDecimal())) + if (objnom.PrimaRiesgoUP(UsuarioActual.CveEmpresa, TxtFechaPRT.Text.ToDateTime(), TxtPrimaRiesgo.Text.ToDecimal())) { } } loadtablas(); } + private void CrearLayout(DataTable DTNomina) + { + StringBuilder sb = new StringBuilder(); + StringBuilder SbErrores = new StringBuilder(); + bool ErroresValidaciones = false; + + + SbErrores.AppendLine("Se detectaron los siguientes errores en la generación del layout"); + + foreach (DataRow dRow in DTNomina.Rows) + { + string RFC = dRow["RFC"].ToString(); + string Nombre = dRow["Nombre"].ToString(); + string BancoNumCuenta = dRow["BancoNumCuenta"].ToString(); + decimal Importe = dRow["Importe"].ToString().ToDecimal(); + + + + if (RFC.Trim().Length == 0) + SbErrores.AppendLine($"El RFC es requerido del empleado {Nombre}
    "); + + System.Text.RegularExpressions.Match Coincidencia = System.Text.RegularExpressions.Regex.Match(RFC, @"/^([A-Z,Ñ,&]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$/"); + if (!Coincidencia.Success) + { + SbErrores.AppendLine($"El RFC {RFC} del empleado {Nombre} no es valido
    "); + ErroresValidaciones = true; + } + + if (BancoNumCuenta.Trim().Length != 10) + { + SbErrores.AppendLine($"Empleado {Nombre} numero de cuenta incorrecto, la cuenta debe de tener 10 caracteres
    "); // Bancomer 10 caracteres + ErroresValidaciones = true; + } + + + if (Importe <= 0) + { + SbErrores.AppendLine($"Empleado {Nombre} el importe debe de ser mayor a 0 importe {Importe}"); // importe mayot a 0 + ErroresValidaciones = true; + } + } + + ErroresValidaciones = false; + + if (!ErroresValidaciones) + { + int Count = 1; + foreach (DataRow dRow in DTNomina.Rows) + { + StringBuilder SbLinea = new StringBuilder(); + + string RFC = dRow["RFC"].ToString(); + string Nombre = dRow["Nombre"].ToString(); + string BancoNumCuenta = dRow["BancoNumCuenta"].ToString(); + decimal Importe = dRow["Importe"].ToString().ToDecimal().RoundSQL(2); + + SbLinea.Append(Count.ToString("000000000")); + SbLinea.Append(RFC.Trim().PadRight(16)); + SbLinea.Append("03"); + SbLinea.Append(BancoNumCuenta.Trim().PadRight(20)); + SbLinea.Append(Importe.ToString("0000000000000.00").Replace(".", "")); + + + if (Nombre.Trim().Length > 40) + Nombre = Nombre.Substring(0, 40); + + SbLinea.Append(Nombre.Trim().PadRight(40)); + + SbLinea.Append("012"); + SbLinea.Append("000"); + + sb.AppendLine(SbLinea.ToString()); + + + Count = Count + 1; + } + + + Response.Clear(); + Response.ClearHeaders(); + Response.AppendHeader("Content-Length", sb.ToString()); + Response.ContentType = "text/plain"; + //Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina{DateTime.Now.ToString("yyyyMMddhhmmss").ToString()}.txt\""); + Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina {DdlPeriodo.SelectedItem.Text }.txt\""); + Response.Write(sb.ToString()); + Response.End(); + } + else + Alert(SbErrores.ToString(), TipoMensaje.MsgAdvertencia); + } + protected void LnkLayoutContable_Click(object sender, EventArgs e) + { + + using (ClsClaseBasez objbase = new ClsClaseBasez()) + { + if (objbase.runQuerystr($"PA_NomDispersiondenomina @CvePeriodo ={CvePeriodoSeleccionado}, @CveEmpresa ={UsuarioActual.CveEmpresa}")) + { + CrearLayout(objbase.DtResultados); + } + } + } +} + +class ClsClaseBasez : IDisposable +{ + protected SqlConnection SqlConexion; + protected SqlDataAdapter SqlAdapter; + protected DataTable datos; + protected DataSet DTSet; + public DataTable DtResultados + { + get + { + return datos; + } + } + public DataSet DTSetResultados + { + get + { + return DTSet; + } + } + protected bool disposedValue = false; + protected bool EsTransaccion = false; + public string MyCurrentError; + // REGISTRAR CONEXIÓN + private int CveConexion = 0; + + public ClsClaseBasez(ClsClaseBasez adsObj = null) + { + if (adsObj != null && adsObj.SqlAdapter != null && adsObj.SqlAdapter.SelectCommand != null && adsObj.SqlAdapter.SelectCommand.Transaction != null) + { + SqlConexion = adsObj.SqlConexion; + SqlAdapter = adsObj.SqlAdapter; + EsTransaccion = true; + } + else + { + SqlConexion = new SqlConnection(); + SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings["Conexion"].ConnectionString; + try + { + SqlConexion.Open(); + SqlAdapter = new SqlDataAdapter("", SqlConexion); + ConexionAdd(); + } + catch (Exception ex) + { + this.OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex); + } + } + } + + public void SqlDataAdapter(string StrSQL, CommandType TipoComando = CommandType.StoredProcedure) + { + if (SqlConexion.State == ConnectionState.Open) + { + SqlAdapter.SelectCommand.Parameters.Clear(); + SqlAdapter.SelectCommand.CommandText = StrSQL; + SqlAdapter.SelectCommand.CommandType = TipoComando; + datos = new DataTable(); + DTSet = new DataSet(); + } + } + protected void DataAdapter(string StrSQL, CommandType TipoComando = CommandType.Text) + { + + // if (SqlAdapter.SelectCommand == null) + // { + // if ((sqlCommand != null)) + // { + // SqlAdapter.SelectCommand = sqlCommand; + // } + // else + // { + // SqlAdapter.SelectCommand = new SqlCommand(); + // } + // SqlAdapter.SelectCommand.Connection = SqlConexion; + // } + + if (SqlConexion.State == ConnectionState.Open) + { + SqlAdapter.SelectCommand.Parameters.Clear(); + SqlAdapter.SelectCommand.CommandText = StrSQL; + SqlAdapter.SelectCommand.CommandType = TipoComando; + datos = new DataTable(); + DTSet = new DataSet(); + } + } + + private void ConexionAdd() + { + if (ConfigurationManager.AppSettings["RegistraConexion"] != null && ConfigurationManager.AppSettings["RegistraConexion"].ToString() == "1") + { + try + { + SqlDataAdapter("PA_Sis_RegistrarConexion"); + { + var withBlock = SqlAdapter.SelectCommand.Parameters; + withBlock.Add("@Clase", SqlDbType.VarChar).Value = this.GetType().Name; + withBlock.Add("@Modulo", SqlDbType.VarChar).Value = string.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString(), HttpContext.Current.Request.QueryString.ToString()); + withBlock.Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output; + } + SqlAdapter.Fill(datos); + CveConexion = SqlAdapter.SelectCommand.Parameters["@IDConexion"].Value.ToString().ToEntero(); + } + catch (Exception ex) + { + this.OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()); + } + } + } + + private void ConexionClose() + { + if (CveConexion > 0 && ConfigurationManager.AppSettings["RegistraConexion"] != null && ConfigurationManager.AppSettings["RegistraConexion"].ToString() == "1") + { + SqlDataAdapter(string.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text); + + try + { + SqlAdapter.Fill(datos); + } + catch (Exception ex) + { + this.OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()); + } + CveConexion = 0; + } + } + protected void addParameters(string name, SqlDbType tipo, object valor) + { + if (SqlConexion.State == ConnectionState.Open) + SqlAdapter.SelectCommand.Parameters.Add(name, tipo).Value = valor; + } + + public bool runQuerystr(string Query, List Listaparametros = null, string msgError = "", bool mostrarError = true) + { + bool retorno = false; + try + { + if (SqlConexion.State == ConnectionState.Open) + { + SqlAdapter.SelectCommand.Parameters.Clear(); + SqlAdapter.SelectCommand.CommandText = Query; + SqlAdapter.SelectCommand.CommandType = CommandType.Text; + datos = new DataTable(); + if (Listaparametros != null) + { + foreach (parametroQuery pr in Listaparametros) + { + SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection; + } + } + + SqlAdapter.Fill(datos); + retorno = true; + } + else + { + string InfoAdicional = "Se intenta realizar una conexion con una conexion cerrada"; + InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}"; + ModExtensiones.GuardaLog(InfoAdicional); + } + } + catch (SqlException sqEx) + { + retorno = false; + setOnError(msgError, sqEx); + } + catch (Exception ex) + { + retorno = false; + setOnError(msgError, ex); + } + return retorno; + } + public int ExecQuery(string Query, List Listaparametros = null, string msgError = "", bool mostrarError = true) + { + int retorno = -1; + try + { + if (SqlConexion.State == ConnectionState.Open) + { + SqlAdapter.SelectCommand.Parameters.Clear(); + SqlAdapter.SelectCommand.CommandText = Query; + SqlAdapter.SelectCommand.CommandType = CommandType.Text; + if (Listaparametros != null) + { + foreach (parametroQuery pr in Listaparametros) + { + SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection; + } + } + + retorno = SqlAdapter.SelectCommand.ExecuteNonQuery(); + } + else + { + string InfoAdicional = "Se intenta realizar una conexion con una conexion cerrada"; + InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}"; + this.GuardaLog(InfoAdicional); + } + } + catch (SqlException sqEx) + { + retorno = -1; + setOnError(msgError, sqEx); + } + catch (Exception ex) + { + retorno = -1; + setOnError(msgError, ex); + } + return retorno; + } + + + protected bool RunQuery(string msgOnError) + { + bool retorno = false; + + try + { + SqlAdapter.Fill(datos); + retorno = true; + } + catch (Exception ex) + { + retorno = false; + + setOnError(msgOnError, ex); + } + return retorno; + } + protected bool RunQueryDS(string msgOnError) + { + bool retorno = false; + + try + { + SqlAdapter.Fill(DTSet); + retorno = true; + } + catch (Exception ex) + { + retorno = false; + + setOnError(msgOnError, ex); + } + return retorno; + } + public void setOnError(string Mensaje, Exception Exeption) + { + string InfoAdicional = ""; + if (SqlAdapter != null && SqlAdapter.SelectCommand != null && SqlAdapter.SelectCommand.Parameters != null) + InfoAdicional = SqlAdapter.SelectCommand.Parameters.ParametrosInfo(); + MyCurrentError = string.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString(), "\r\n", InfoAdicional); + this.OnError(Mensaje, Exeption, InfoAdicional); + } + public void IniciaTransacSQL() + { + SqlAdapter.SelectCommand.Transaction = SqlConexion.BeginTransaction(); + EsTransaccion = true; + } + + public void Commit() + { + SqlAdapter.SelectCommand.Transaction.Commit(); + SqlConexion.Close(); + } + + public void RollBack() + { + SqlAdapter.SelectCommand.Transaction.Rollback(); + SqlConexion.Close(); + } + public void Dispose() + { + ConexionClose(); + if ((SqlConexion != null)) + { + if (SqlConexion.State == ConnectionState.Open) + { + try + { + if ((SqlAdapter != null)) + SqlAdapter.Dispose(); + + SqlConexion.Close(); + } + catch (Exception ex) + { + this.OnError("Ocurrió un error al intentar cerrar la base de datos.", ex); + } + } + SqlConexion.Dispose(); + } + + if (datos != null) + datos.Dispose(); + if (SqlAdapter != null) + SqlAdapter.Dispose(); + + if (DTSet != null) + DTSet.Dispose(); + + GC.SuppressFinalize(this); + } } \ No newline at end of file diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 1c0531a67..87b4dd413 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -2240,30 +2240,30 @@ Por Paternidad, con Goce de Sueldo Viaje de Trabajo Incapacidad pagada por la empresa - Por horas, asunto personal sin Goce de Sueldo + Por horas, asunto personal sin Goce de Sueldo - -
  • + +
    - + - + -
    +
    -
    +
    <%-- --%> -
    +
    @@ -2271,17 +2271,17 @@ <%-- --%> - -
    + +
    -
    - -
    +
    + +
    -
    +
    - +
    diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 0989f8ad6..4617e3a44 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -4455,15 +4455,17 @@ Partial Class RH_Personal End Sub Protected Sub BtnSolicitarVacaciones_Click(sender As Object, e As EventArgs) Handles BtnSolicitarVacaciones.Click - Dim fInicio As Date = TxtFechaInicioVac.Text.ToDate - Dim fFin As Date = TxtFechaFinVac.Text.ToDate + Dim fInicio As Date = TxtFechaInicioVac.Text.ToDate() + Dim fFin As Date = TxtFechaFinVac.Text.ToDate() + Dim fechapago As String = TxtFechaPago.Text.ToDate().ToString("yyyy/MM/dd") + Dim diasinhabil As Integer = Txtdiasinabiles.Text.ToEntero() 'Dim motivoVacaciones As String = TxtMotivoVacaciones.Text If fInicio <= fFin Then VacFolioActual = VacFolioActual + 1 Dim objRH As New ClsRH 'Dim continuar As Boolean = objRH.SolicitudVacacionesAdd(CvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual, motivoVacaciones) - Dim continuar As Boolean = objRH.SolicitudVacacionesAdd(CvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual) + Dim continuar As Boolean = objRH.SolicitudVacacionesAdd(CvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual, FechaPago:=fechapago, diasinabiles:=diasinhabil) If objRH.DtResultados.Rows.Count > 0 Then Dim ShowError As String = objRH.DtResultados.Rows(0)("ShowError").ToString() If ShowError.Length > 0 Then diff --git a/Scripts/custom.js b/Scripts/custom.js index 74eac68b9..28dd940bc 100644 --- a/Scripts/custom.js +++ b/Scripts/custom.js @@ -1086,7 +1086,7 @@ function ADDropzone(txtid) { document.getElementById(txtid + '-paste').onpaste = function (event) { var __This = myDropzone; var objfiles = JSON.parse(TxtField.val()); - if (objfiles.length < maxFile) { + if ((maxFile != null) || (maxFile < 1) || objfiles.length < maxFile) { // use event.originalEvent.clipboard for newer chrome versions var items = (event.clipboardData || event.originalEvent.clipboardData).items; //console.log(JSON.stringify(items)); // will give you the mime types diff --git a/vwd.webinfo b/vwd.webinfo index 450c2d100..67035e8a8 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -212,6 +212,10 @@ + + + + From f7d6ed0090e094669f8dec913fb6b0d8fc5a2af1 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 8 Apr 2021 12:06:54 -0700 Subject: [PATCH 7/7] - --- Compras/ReembolsosComprobaciones.aspx.vb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index 9c1333df2..8dcb566a5 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -431,6 +431,10 @@ Partial Class Compras_ReembolsosComprobaciones Next + 'rmf. codigo temporal + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + ValFechaDocumento = False + End If If ValFechaDocumento Then Alert(FoliosFechasValFechaDocumento.ToString, TipoMensaje.MsgAdvertencia)