protected void Cargar_PLANILLA(string idUser, string idSolicitud) { string lugar = ""; DB_VT_Planilla regP = new DB_VT_Planilla(); VT_Planilla p = new VT_Planilla(); VT_PlanillaDia pd = new VT_PlanillaDia(); VT_SolicitudDestino sd1 = new VT_SolicitudDestino(); VT_SolicitudDestino sd2 = new VT_SolicitudDestino(); DB_VT_Solicitud s1 = new DB_VT_Solicitud(); DB_AP_Registro_Org aux = new DB_AP_Registro_Org(); DataTable dt = new DataTable(); DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); int numero = s1.DB_Numero_Filas_SOLICITUD(idSolicitud);// se modifico query con 'cont>0' decimal contdias = Convert.ToDecimal("0"); p.Id_Solicitud = idSolicitud; p.Tot_Num_Dias = 0; p.Tot_Num_Dias15 = 0; p.Pago_Total = 0; p.Pago_Total15 = 0; p.Rc_Iva = 13; /*********************************************************** OJO AQUI HAY QUE PONER LOS PARAMETROS DE GESTION ******/ p.Liquido_Pagable = 0; p.Num_Cheque = "0"; p.Tasa_Cambio = 0; p.Fecha = DateTime.Now; p.Fecha_Atendido = DateTime.Now; p.MontoPorDia = 1; regP.DB_Registrar_PLANILLA(p); int idplani = Convert.ToInt32(aux.DB_MaxId("VIAT_PLANILLA", "Id_Planilla")); /**************************************************************/ DB_VT_Solicitud sol = new DB_VT_Solicitud(); dt = sol.DB_Seleccionar_SOLICITUD(idSolicitud); /************************************************************/ DB_AdminUser us = new DB_AdminUser(); dt1 = us.DB_Desplegar_USUARIO(idUser); /******************************************************/ DB_VT_Categoria cat = new DB_VT_Categoria(); string aux1 = dt1.Rows[0][11].ToString(); string aux2 = dt.Rows[0][3].ToString(); dt2 = cat.DB_Seleccionar_CATEGORIA(Convert.ToInt32(dt1.Rows[0][11].ToString()), dt.Rows[0][3].ToString()); /***************************************************************/ //DB_VT_Solicitud sol = new DB_VT_Solicitud(); int contador = 1; int auxiliar = 0; for (int i = 1; i <= (numero); i++) { sd1 = s1.DB_Seleccionar_SOLICITUD_DESTINO(idSolicitud, i); sd2 = s1.DB_Seleccionar_SOLICITUD_DESTINO(idSolicitud, (i + 1)); int dias = sol.DB_NumDHM(Convert.ToDateTime(sd1.Fecha_Salida.ToString()), Convert.ToDateTime(sd2.Fecha_Salida.ToString()), "DD"); if (sd1.Fecha_Salida.ToString("dd/MM/yyyy") == sd2.Fecha_Salida.ToString("dd/MM/yyyy")) { if (numero == 2) { contdias = Convert.ToDecimal("0.5"); pd.Id_Planilla = idplani; pd.Cont = contador; pd.Num_Dias = contdias; if (sd1.Zona == "Interdepartamental") { pd.Area = "Interdepartamental"; pd.Monto = contdias * Convert.ToDecimal(dt2.Rows[0][3].ToString()); } else { pd.Area = "Al interior del Departamento"; pd.Monto = contdias * Convert.ToDecimal(dt2.Rows[0][4].ToString()); } pd.Destino = sd1.Destino + " " + sd1.Lugar; pd.Observacion = "SIN PERNOCTE"; pd.FechaDia = sd1.Fecha_Salida; regP.DB_Registrar_PLANILLADIA(pd); contador++; break; } else { pd.Destino = sd1.Destino + " " + sd1.Lugar; } } else { if (sd1.Tramo == "Salida") { contdias = s1.DB_NumDHM(sd1.Fecha_Salida, sd2.Fecha_Salida, "DD"); for (int j = 0; j < contdias; j++) { pd.Id_Planilla = idplani; pd.Cont = contador; pd.Num_Dias = 1; if (sd1.Zona == "Interdepartamental") { pd.Area = "Interdepartamental"; pd.Monto = 1 * Convert.ToDecimal(dt2.Rows[0][3].ToString()); } else { pd.Area = "Al interior del Departamento"; pd.Monto = 1 * Convert.ToDecimal(dt2.Rows[0][4].ToString()); } pd.Destino = sd1.Destino + " " + sd1.Lugar; pd.Observacion = "CON PERNOCTE"; pd.FechaDia = sd1.Fecha_Salida.AddDays(j); regP.DB_Registrar_PLANILLADIA(pd); auxiliar = j; contador++; } } else { contdias = s1.DB_NumDHM(Convert.ToDateTime(sd1.Fecha_Salida.ToString("dd/MM/yyyy") + " " + "08:00:00"), sd1.Fecha_Salida, "HH"); if (contdias > 4) /*************************************** OJO aqui calculamos por hora mayor a 4 horas se contabiliza como medio dia*/ { contdias = Convert.ToDecimal("0.5"); pd.Id_Planilla = idplani; pd.Cont = contador; pd.Num_Dias = contdias; if (sd1.Zona == "Interdepartamental") { pd.Area = "Interdepartamental"; pd.Monto = contdias * Convert.ToDecimal(dt2.Rows[0][3].ToString()); } else { pd.Area = "Al interior del Departamento"; pd.Monto = contdias * Convert.ToDecimal(dt2.Rows[0][4].ToString()); } pd.Destino = sd1.Destino + " " + sd1.Lugar; pd.Observacion = "SIN PERNOCTE"; pd.FechaDia = sd1.Fecha_Salida.AddDays(0); regP.DB_Registrar_PLANILLADIA(pd); contador++; } else { contdias = Convert.ToDecimal("0.0"); pd.Id_Planilla = idplani; pd.Cont = contador; pd.Num_Dias = contdias; if (sd1.Zona == "Interdepartamental") { pd.Area = "Interdepartamental"; pd.Monto = contdias * Convert.ToDecimal(dt2.Rows[0][3].ToString()); } else { pd.Area = "Al interior del Departamento"; pd.Monto = contdias * Convert.ToDecimal(dt2.Rows[0][4].ToString()); } pd.Destino = sd1.Destino + " " + sd1.Lugar; pd.Observacion = "No se cumplió el periodo de 4 horas que se considera como medio día de viatico"; pd.FechaDia = sd1.Fecha_Salida.AddDays(0); regP.DB_Registrar_PLANILLADIA(pd); contador++; } } } } }