public ActionResult EditingDelete([ModelBinder(typeof(DevExpressEditorsBinder))] ro_HorasProfesores_det_Info info_det)
        {
            detalle.DeleteRow(info_det.Secuencia);
            ro_HorasProfesores_Info model = new ro_HorasProfesores_Info();

            model.detalle = detalle.get_list();
            return(PartialView("_GridViewPartial_importacion_horas_det", model));
        }
        public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] ro_HorasProfesores_det_Info info_det)
        {
            if (ModelState.IsValid)
            {
                detalle.UpdateRow(info_det);
            }
            ro_HorasProfesores_Info model = new ro_HorasProfesores_Info();

            model.detalle = detalle.get_list();
            return(PartialView("_GridViewPartial_importacion_horas_det", model));
        }
        public void AddRow(ro_HorasProfesores_det_Info info_det)
        {
            ro_rubro_tipo_Bus bus_rub      = new ro_rubro_tipo_Bus();
            var              info_rubro    = bus_rub.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdRubro);
            ro_empleado_Bus  bus_emppleado = new ro_empleado_Bus();
            ro_empleado_Info info_empleado = new ro_empleado_Info();

            info_empleado = bus_emppleado.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdEmpleado);

            List <ro_HorasProfesores_det_Info> list = get_list();

            info_det.Secuencia      = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;
            info_det.ru_descripcion = info_rubro.ru_descripcion;
            info_det.pe_apellido    = info_empleado.pe_apellido + " " + info_empleado.pe_nombre;

            list.Add(info_det);
        }
        public void UpdateRow(ro_HorasProfesores_det_Info info_det)
        {
            ro_rubro_tipo_Bus bus_rub = new ro_rubro_tipo_Bus();
            var info_rubro            = bus_rub.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdRubro);

            ro_empleado_Bus  bus_emppleado = new ro_empleado_Bus();
            ro_empleado_Info info_empleado = new ro_empleado_Info();

            info_empleado = bus_emppleado.get_info(Convert.ToInt32(SessionFixed.IdEmpresa), info_det.IdEmpleado);

            ro_HorasProfesores_det_Info edited_info = get_list().Where(m => m.Secuencia == info_det.Secuencia).First();

            edited_info.NumHoras       = info_det.NumHoras;
            edited_info.Valor          = info_det.Valor;
            edited_info.ValorHora      = info_det.ValorHora;
            edited_info.IdRubro        = info_det.IdRubro;
            edited_info.IdEmpleado     = info_empleado.IdEmpleado;
            edited_info.ru_descripcion = info_rubro.ru_descripcion;
            edited_info.pe_apellido    = info_empleado.pe_apellido + " " + info_empleado.pe_nombre;
        }
        public static void FileUploadComplete(object sender, DevExpress.Web.FileUploadCompleteEventArgs e)
        {
            ro_FormulaHorasRecargo_Bus busformulas = new ro_FormulaHorasRecargo_Bus();
            var formula_horas = busformulas.get_info(Convert.ToInt32(SessionFixed.IdEmpresa));

            if (formula_horas == null)
            {
                return;
            }
            int cont = 0;
            ro_empleado_info_list              empleado_info_list = new ro_empleado_info_list();
            ro_HorasProfesores_detLis_Info     EmpleadoNovedadCargaMasiva_detLis_Info = new ro_HorasProfesores_detLis_Info();
            List <ro_HorasProfesores_det_Info> lista_novedades       = new List <ro_HorasProfesores_det_Info>();
            ro_rubros_calculados_Bus           bus_rubros_calculados = new ro_rubros_calculados_Bus();
            var rubros_calculados = bus_rubros_calculados.get_info(Convert.ToInt32(SessionFixed.IdEmpresa));
            ro_rubro_tipo_Info_list ro_rubro_tipo_Info_list = new ro_rubro_tipo_Info_list();
            ro_jornada_Data         odata_j = new ro_jornada_Data();
            decimal IdTransaccionSession    = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);

            var    lst_jornada = odata_j.get_list(Convert.ToInt32(SessionFixed.IdEmpresa), false);
            double horas_mat   = 0;
            string jornada     = "";
            string IdRubro     = "";
            string cedula      = "";

            if (rubros_calculados == null)
            {
                return;
            }
            Stream stream = new MemoryStream(e.UploadedFile.FileBytes);

            if (stream.Length > 0)
            {
                IExcelDataReader reader = null;
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                while (reader.Read())
                {
                    if (!reader.IsDBNull(0) && cont != 0)
                    {
                        cedula  = reader.GetString(0);
                        IdRubro = Convert.ToString(reader.GetValue(3));

                        jornada = Convert.ToString(reader.GetValue(2));
                        ro_rubro_tipo_Info rubros = new ro_rubro_tipo_Info();
                        var empleado = empleado_info_list.get_list(IdTransaccionSession).Where(v => v.pe_cedulaRuc == cedula).FirstOrDefault();

                        if (empleado != null)
                        {
                            if (empleado.Valor_horas_matutino == null)
                            {
                                empleado.Valor_horas_matutino = 0;
                            }
                            if (empleado.Valor_horas_vespertina == null)
                            {
                                empleado.Valor_horas_vespertina = 0;
                            }
                            if (empleado.Valor_horas_brigada == null)
                            {
                                empleado.Valor_horas_brigada = 0;
                            }
                            if (empleado.Valor_hora_adicionales == null)
                            {
                                empleado.Valor_hora_adicionales = 0;
                            }
                            if (empleado.Valor_hora_control_salida == null)
                            {
                                empleado.Valor_hora_control_salida = 0;
                            }



                            rubros = ro_rubro_tipo_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)).FirstOrDefault(v => v.rub_codigo == IdRubro);
                            if (rubros != null)
                            {
                                ro_HorasProfesores_det_Info info = new ro_HorasProfesores_det_Info
                                {
                                    NumHoras       = Convert.ToDouble(reader.GetValue(4)),
                                    pe_cedulaRuc   = cedula,
                                    pe_apellido    = empleado.Empleado,
                                    em_codigo      = empleado.em_codigo,
                                    IdSucursal     = empleado.IdSucursal,
                                    Secuencia      = cont,
                                    IdEmpleado     = empleado.IdEmpleado,
                                    IdRubro        = rubros.IdRubro,
                                    ru_descripcion = rubros.ru_descripcion,
                                };

                                if (info.IdRubro == "63")
                                {
                                }
                                if (info.IdRubro == rubros_calculados.IdRubro_horas_matutina)
                                {
                                    info.ValorHora = Convert.ToDouble(empleado.Valor_horas_matutino);
                                }

                                if (info.IdRubro == rubros_calculados.IdRubro_horas_vespertina)
                                {
                                    info.ValorHora = Convert.ToDouble(empleado.Valor_horas_vespertina);
                                }

                                if (info.IdRubro == rubros_calculados.IdRubro_horas_control_salida)
                                {
                                    info.ValorHora = Convert.ToDouble(empleado.Valor_hora_control_salida);
                                }


                                if (info.IdRubro == rubros_calculados.IdRubro_horas_brigadas)
                                {
                                    info.ValorHora = Convert.ToDouble(empleado.Valor_horas_brigada);
                                }

                                if (info.IdRubro == rubros_calculados.IdRubro_horas_adicionales)
                                {
                                    info.ValorHora = Convert.ToDouble(empleado.Valor_hora_adicionales);
                                }

                                horas_mat      = info.NumHoras;
                                info.Valor     = Convert.ToDouble(info.ValorHora * info.NumHoras);
                                info.Secuencia = lista_novedades.Count() + 1;
                                if (jornada != null && jornada != "")
                                {
                                    info.IdJornada = lst_jornada.Where(v => v.codigo == jornada).FirstOrDefault().IdJornada;
                                }
                                if (info.Valor > 0)
                                {
                                    lista_novedades.Add(info);
                                }
                            }
                        }
                    }
                    cont++;
                }
            }



            foreach (var item in empleado_info_list.get_list(IdTransaccionSession))
            {
                double mat_mas_ves = lista_novedades.Where(v => v.IdEmpleado == item.IdEmpleado && (v.IdRubro == rubros_calculados.IdRubro_horas_matutina || v.IdRubro == rubros_calculados.IdRubro_horas_vespertina)).Sum(v => v.NumHoras);

                #region horas recargo
                if ((mat_mas_ves) * (formula_horas.Dividendo / formula_horas.Divisor) > 0)
                {
                    if (rubros_calculados.IdRubro_horas_recargo != null)
                    {
                        var rubros = ro_rubro_tipo_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)).FirstOrDefault(v => v.IdRubro == rubros_calculados.IdRubro_horas_recargo);
                        if (rubros != null)
                        {
                            ro_HorasProfesores_det_Info info = new ro_HorasProfesores_det_Info
                            {
                                pe_cedulaRuc   = item.pe_cedulaRuc,
                                pe_apellido    = item.Empleado,
                                IdSucursal     = item.IdSucursal,
                                em_codigo      = item.em_codigo,
                                Secuencia      = cont,
                                IdEmpleado     = item.IdEmpleado,
                                IdRubro        = rubros_calculados.IdRubro_horas_recargo,
                                ru_descripcion = rubros.ru_descripcion
                            };
                            info.ValorHora = 1.32;
                            info.NumHoras  = (Math.Round(Convert.ToDouble((mat_mas_ves) * (formula_horas.Dividendo / formula_horas.Divisor))) - 160);
                            info.Valor     = 1.32 * info.NumHoras;
                            info.Secuencia = lista_novedades.Count() + 1;
                            if (info.Valor > 0)
                            {
                                lista_novedades.Add(info);
                            }
                        }
                    }
                }
                #endregion



                EmpleadoNovedadCargaMasiva_detLis_Info.set_list(lista_novedades);
            }
        }