Mensaje de Error "The Porcentaje field is required." en la pantalla de Descuentos Ciclicos.


Evolution:1.10.0.8
Browsers:Google Chrome: 54.0.2840.99 m
 FireFox: v.49.0.2
 Microsoft Edge: 38.14393.0.0

Descripción: Se presenta un error reportando que el porcentaje es requerido, y "Adding a value to a 'datetime' column caused an overflow", tal como se muesta a continuación:

The Porcentaje field is required.

System.Data.SqlClient.SqlException (0x80131904): Adding a value to a 'datetime' column caused an overflow.The statement has been terminated.
 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
 at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
 at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
 at System.Data.SqlClient.SqlDataReader.get_MetaData()
 at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
 at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
 at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
 at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
 at Microsoft.Practices.EnterpriseLibrary.Data.Database.DoLoadDataSet(IDbCommand command, DataSet dataSet, String[] tableNames)
 at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DbCommand command, DataSet dataSet, String[] tableNames)
 at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteDataSet(DbCommand command)
 at Aseinfo.VH4.Salarios.Controllers.DescuentoCiclicoController.CalcularNivelEndeudamiento(DescuentoCiclico descuentoCiclico, Nullable`1 codigoEmpleo, String codigoVisualTipoDescuento, String codigoMoneda, Nullable`1 codigoAgrupador) in C:\vh4\VH4\SalariosControllers\DescuentoCiclicoController.cs:line 641
 at lambda_method(Closure , ControllerBase , Object[] )
 at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
 at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
 at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
 at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)ClientConnectionId:86503d3f-fd54-4902-8d29-e263cf00ce1cError Number:517,State:1,Class:16

El error se da para un empleado en particular, el cual ya posee un descuento cíclico programado (Seguro Medico Familiar) con fecha de inicio 03/11/2015 y con la siguiente configuracion de cuotas: Descuento Ciclico: Oscar Rueda - Seguro Medico Familiar

Regularmente este tipo de descuento cíclico se hace por "monto y numero de cuotas indefinidas" con el valor USD$ 82.42, pero en este caso, le aplicaron la primera cuota proporcional y por ello configuraron de esa forma.

El problema se da al intentar agregar un nuevo descuento cíclico de cualquier otro tipo y/o configuración de cuotas. Como el error que hace referencia a problema de fecha, he revisado las fechas en el expediente, empleo, estructura salarial, descuento cíclico, etc. y todo esa bien.

Entre mis pruebas cambie la configuración del descuento que ya tenia este empleado de Seguro Medico a "Monto y Cuotas" indefinidas, ahí si deja registrar el segundo descuento sin problemas.

Adjunto el archivo de la traza de error en formato json proporcionado por elmah. Error Desc. Cíclico

asked 29 Nov '16, 09:47

Valentino%20Lopez's gravatar image

Valentino Lopez
(suspended)
accept rate: 42%

edited 01 Dec '16, 17:24

sbarahona's gravatar image

sbarahona ♦♦
(suspended)


Creo que tendrías que separar los errores.

El excepción que pusiste NO corresponde con el error del porcentaje requerido.

El mensaje de "The Porcentaje field is required." se da porque está validando que el campo porcentaje no puede quedar en blanco; sin embargo, el textbox del porcentaje seguramente está oculto porque está seleccionado monto y cuotas específicos.

Esto ya lo reproduje, y se da cuando por alguna razón se marca que el descuento se hará por un porcentaje de un agrupador, pero luego se cambia el checkbox de "Cuotas y monto indefinido", sin haber cambiado el radio que determina que es Porcentaje o Valor.

O probablemente si el registro se migró, la configuración de las banderas en la base, provoca que el formulario seleccione Porcentaje en lugar de Valor y al intentar guardar chequea el textbox vacio.

Esto ya lo reporte para que sea corregido en el próximo hotfix (1.10.0.9).


Sobre el error de la fecha, el stack trace reporta que el fuente fallo al ejecutar el procedimiento sal.cne_calc_nivel_endeuda, por lo que tendrías que desactivar el chequeo del nivel de endeudamiento, o revisar el procedimiento si lo modificaste para encontrar porque se da un overflow al procesar fechas.

link

answered 01 Dec '16, 10:11

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

edited 01 Dec '16, 10:20

Muchas Gracias Fernando, fíjate que para el caso del error de porcentaje, el registro no fue migrado ni se hizo la modificación indicada pero igual se muestra junto con el otro error. Para el SP mencionado, este no ha sido modificado, pero probé cambiar la cantidad de cuotas especificadas en el descuento previo (de 999999 a 999) y con ello ya no dio el error, parece entonces que alguna operación en dicho procedimiento por la cantidad tan grande de cuotas es la que genera el error.

(01 Dec '16, 16:12) Valentino Lopez Valentino%20Lopez's gravatar image
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×9

Asked: 29 Nov '16, 09:47

Seen: 1,542 times

Last updated: 01 Dec '16, 17:24

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática