ViniciusConsultor / controlhoras

Automatically exported from code.google.com/p/controlhoras
1 stars 0 forks source link

Regla de Redondeo de Hs en Cierre de Servicio #53

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Modulo que cambia:

Requerimiento:
1. Por el tema CIERRES DE SERVICIOS como sabes no manejamos minutos, ósea que 
pagamos o 0hs, 0.5hs o 1 según esta regla:
TABLA REDONDEO
EJEMPLOS
- 0 <= 15      --> 0   Ejemplo: 1:10:00  queda 1:00:00
- 15 <= 30    -->30  Ejemplo: 1:20:00 queda 1:30:00
- 30 <= 45    --> 30 Ejemplo: 1:37:00 queda 1:30:00
- 45 <= 60    --> 1    Ejemplo: 1:49:00 queda 2:00:00

A ver si se puede manejar que controle cuando quiere cargar un cierre que no 
cumpla con  esta regla salte un cartel de error para avisarle al operador.

Original issue reported on code.google.com by juanga...@gmail.com on 21 Apr 2011 at 12:44

GoogleCodeExporter commented 8 years ago
Se envia consulta al cliente:
Consulta: En que momento se carga un cierre de Servicio? Es cuando se modifican 
las Hs en el Control Diario?  
Que se debe hacer, opciones:
            1- Avisar y no hacer el cambio indicado por el usuario.
            2- Avisar y hacer el cambio indicado.
            3- Corregir Automaticamente el horario ingresado siguiendo la regla indicada. 

Original comment by juanga...@gmail.com on 21 Apr 2011 at 12:44

GoogleCodeExporter commented 8 years ago
Se modifica el EscalafonForm, metodo dgEscalafon_CellEndEdit, agregando el 
siguiente codigo:

...
DateTime dti, dtf;

                                 dti = DateTime.ParseExact(LastCellChanged.Value.ToString().Substring(0, 5), @"HH:mm", DateTimeFormatInfo.InvariantInfo);
                                 dtf = DateTime.ParseExact(LastCellChanged.Value.ToString().Substring(8, 5), @"HH:mm", DateTimeFormatInfo.InvariantInfo);
                                 if(dti.Minute % 30 != 0 || dtf.Minute % 30 != 0)
                                 {
                                    dgEscalafon.Rows[LastCellChanged.RowIndex].Cells[j].Value = oldvalor;
                                    dgEscalafon.Focus();
                                    dgEscalafon.CurrentCell = dgEscalafon.Rows[LastCellChanged.RowIndex].Cells[j];
                                    dgEscalafon.Rows[LastCellChanged.RowIndex].Cells[j].Selected = true;
                                    MessageBox.Show(this, "Las Horas deben ser con 0 o 30 minutos.", "Error Horario", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                 }
                                 else
                                 {
                                     CargarHorarioCelda(j, oldvalor, dgEscalafon.Rows[LastCellChanged.RowIndex].Cells[j].Value.ToString());
                                  }

Y se edita tambien el Form CambiarHoraFuncionario, operacion btnAceptar_Click 
agregando el siguiente codigo:

if (HoraNueva.Minute % 30 != 0)
                    {
                        throw new Exception("La Hora nueva debe ser con 0 o 30 minutos.");
                    }

Original comment by juanga...@gmail.com on 21 Apr 2011 at 11:00