public ActionResult LiquidarCreate(int ID)
        {
            ViaticoWS.Viatico viaticoObtenido = new ViaticoWS.Viatico();
            LiquidacionesWS.Liquidar liquidacionObtenida = new LiquidacionesWS.Liquidar();
            LiquidacionesWS.Solicitud solicitudObtenida = new LiquidacionesWS.Solicitud();
            LiquidacionesWS.SolicitudDetalle solicitudDetalleObtenida = new LiquidacionesWS.SolicitudDetalle();
            LiquidacionesWS.SolicitudDetallePK solicitudDetallePKObtenida = new LiquidacionesWS.SolicitudDetallePK();
            LiquidacionesWS.TipoViatico tipoViaticoObtenida = new LiquidacionesWS.TipoViatico();
            LiquidacionesWS.Ubigeo ubigeoOri = new LiquidacionesWS.Ubigeo();
            LiquidacionesWS.Ubigeo ubigeoDest = new LiquidacionesWS.Ubigeo();

            viaticoObtenido = proxy2.ObtenerSolicitud(ID);

            solicitudObtenida.Co_Solicitud = viaticoObtenido.CodigoSolicitud;
            solicitudObtenida.Fe_Solicitud = viaticoObtenido.FechaSolicitud;
            solicitudObtenida.Co_EmpSolicitante = viaticoObtenido.CodigoEmpleadoSolicitante;

            ubigeoOri.CodigoUbigeo = viaticoObtenido.ubigeoOrigen.CodigoUbigeo;
            ubigeoOri.NoDescripcion = viaticoObtenido.ubigeoOrigen.NoDescripcion;
            solicitudObtenida.ubigeoOrigen = ubigeoOri;

            ubigeoDest.CodigoUbigeo = viaticoObtenido.ubigeoDestino.CodigoUbigeo;
            ubigeoDest.NoDescripcion = viaticoObtenido.ubigeoDestino.NoDescripcion;
            solicitudObtenida.ubigeoDestino = ubigeoDest;

            solicitudObtenida.Fe_Salida = viaticoObtenido.FechaSalida;
            solicitudObtenida.Fe_Retorno = viaticoObtenido.FechaRetorno;
            solicitudObtenida.Tx_Sustento = viaticoObtenido.SustentoViaje;
            solicitudObtenida.Ss_TotalSolicitado = viaticoObtenido.TotalSolicitado;

            LiquidacionesWS.SolicitudDetalle[] item = new LiquidacionesWS.SolicitudDetalle[viaticoObtenido.Detalles.Count];
            //LiquidacionesWS.LiquidarDetalle[] item = new LiquidacionesWS.LiquidarDetalle[viaticoObtenido.Detalles.Count];

            for (int i = 0; i < viaticoObtenido.Detalles.Count; i++)
            {
                item[i] = new SolicitudDetalle();
                //item[i] = new LiquidarDetalle();
                item[i].PK = new SolicitudDetallePK();
                //item[i].PK = new LiquidarDetallePK();
                item[i].PK.TipoViatico = new TipoViatico();

                item[i].PK.TipoViatico.Co_TipoViatico = viaticoObtenido.Detalles[i].PK.TipoViatico.Co_TipoViatico;
                item[i].PK.TipoViatico.No_Descripcion = viaticoObtenido.Detalles[i].PK.TipoViatico.No_Descripcion;
                item[i].PK.Solicitud = viaticoObtenido.Detalles[i].PK.Viatico;
                item[i].Ss_MontoSolicitado = viaticoObtenido.Detalles[i].Ss_MontoSolicitado;
            }

            solicitudObtenida.Detalles = item;

            liquidacionObtenida.solicitud = solicitudObtenida;

            return View(liquidacionObtenida);
        }
示例#2
0
        public JsonResult AgregarOEditarEmpleado(string NroIdentificacion, string NombresEmpleado, string ApellidosEmpleado,
                                                 string NumeroDias, string NumeroDiasDisponibles, bool EsEdit,
                                                 bool EsModal, string FechaInicio, string FechaFin,
                                                 string DataActual, string oRespuestaSAP, string SabadoHabil,
                                                 string CorreoSolicitante, string CorreoJefeSolicitante, string CodigoEmpleado,
                                                 string Sociedad, string MinimoDias, string InicioFecha,
                                                 string FinFecha, string DiasFestivosSabadosDomingos, string oRespuestaMotor,
                                                 string oMinimoDiasCorreoCompensacion, string oCorreoCompensacion)
        {
            RespuestaSAPModels      oRespuestaSAPModels   = new RespuestaSAPModels();
            RespuestaMotorModels    oRespuestaMotorModels = new RespuestaMotorModels();
            List <SolicitudDetalle> oLstSolicitudDetalle  = new List <SolicitudDetalle>();

            try
            {
                oLstSolicitudDetalle = JsonConvert.DeserializeObject <List <SolicitudDetalle> >(DataActual);

                if (!EsEdit)
                {
                    //Se valida si ya la cedula ha sido agregada
                    int Existe = oLstSolicitudDetalle
                                 .Where(w => w.nmroDcmnto == NroIdentificacion).Count();

                    if (Existe == 0)
                    {
                        if (!EsModal)
                        {
                            oRespuestaSAPModels = JsonConvert.DeserializeObject <RespuestaSAPModels>(oRespuestaSAP);

                            oRespuestaMotorModels = JsonConvert.DeserializeObject <RespuestaMotorModels>(oRespuestaMotor);
                            double   oMinimoDias  = 0;
                            DateTime oInicioFecha = new DateTime();
                            DateTime oFinFecha    = new DateTime();

                            foreach (var oReglas in oRespuestaMotorModels.Reglas)
                            {
                                switch (oReglas.Prmtro)
                                {
                                case "NroMinDias":
                                    oMinimoDias = Convert.ToDouble(oReglas.Vlr_Slda);
                                    break;

                                case "DiasMinCalendario":
                                    oInicioFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda));
                                    break;

                                case "DiasMaxCalendario":
                                    oFinFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda));
                                    break;
                                }
                            }

                            //Aqui se agregan los items desde la pantalla principal
                            if (oRespuestaSAPModels != null && oRespuestaSAPModels.Details.Count > 0)
                            {
                                oLstSolicitudDetalle.Add(new SolicitudDetalle
                                {
                                    nmroDcmnto           = NroIdentificacion,
                                    nmbrs_slctnte        = HttpUtility.HtmlDecode(NombresEmpleado),
                                    apllds_slctnte       = HttpUtility.HtmlDecode(ApellidosEmpleado),
                                    nmbre_cmplto         = HttpUtility.HtmlDecode(NombresEmpleado) + " " + HttpUtility.HtmlDecode(ApellidosEmpleado),
                                    fcha_inco_vccns      = Convert.ToDateTime(FechaInicio),
                                    fcha_fn_vcc          = Convert.ToDateTime(FechaFin),
                                    nmro_ds              = int.Parse(NumeroDias),
                                    sbdo_hbl             = oRespuestaSAPModels.Details[0].SabadoHabil == "NO" ? false : true,
                                    fcha_hra_aprvc       = DateTime.Now,
                                    fcha_hra_rgstro_nvdd = DateTime.Now,
                                    crreo_slctnte        = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorp) ? oRespuestaSAPModels.Details[0].CorreoCorp : oRespuestaSAPModels.Details[0].CorreoPersonal,
                                    crreo_jfe_slctnte    = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorpJefe) ? oRespuestaSAPModels.Details[0].CorreoCorpJefe : oRespuestaSAPModels.Details[0].CorreoPersonalJefe,
                                    codEmpldo            = oRespuestaSAPModels.Details[0].NroPersonal,
                                    idEstdoSlctd         = 1,
                                    scdd                         = oRespuestaSAPModels.Details[0].Sociedad,
                                    nmro_ds_dspnbls              = double.Parse(NumeroDiasDisponibles),
                                    MinimoDias                   = oMinimoDias,
                                    InicioFecha                  = oInicioFecha,
                                    FinFecha                     = oFinFecha,
                                    DiasFestivosSabadosDomingos  = DiasFestivosSabadosDomingos,
                                    NroMinDiasCorreoCompensacion = int.Parse(oMinimoDiasCorreoCompensacion),
                                    CorreoCompensacion           = oCorreoCompensacion
                                });

                                oMensajeRespuesta = new MensajeRespuesta
                                {
                                    Codigo    = "1",
                                    Mensaje   = "Empleado agregado correctamente a la lista",
                                    Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet)
                                };
                            }
                            else
                            {
                                oMensajeRespuesta = new MensajeRespuesta
                                {
                                    Codigo    = "2",
                                    Mensaje   = "No fue posible adicionar el empleado a la lista. Contacte al administrador del sistema",
                                    Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet)
                                };

                                Logger.Error("No fue posible deserializar el Objeto de la respuesta de SAP " +
                                             "Nro. Documento: " + NroIdentificacion +
                                             "Era Modal Anotadores: " + EsModal);
                            }
                        }
                        else
                        {
                            //Aqui se agrega desde la pantalla modal
                            oLstSolicitudDetalle.Add(new SolicitudDetalle
                            {
                                nmroDcmnto           = NroIdentificacion,
                                nmbrs_slctnte        = HttpUtility.HtmlDecode(NombresEmpleado),
                                apllds_slctnte       = HttpUtility.HtmlDecode(ApellidosEmpleado),
                                nmbre_cmplto         = HttpUtility.HtmlDecode(NombresEmpleado) + " " + HttpUtility.HtmlDecode(ApellidosEmpleado),
                                fcha_inco_vccns      = Convert.ToDateTime(FechaInicio),
                                fcha_fn_vcc          = Convert.ToDateTime(FechaFin),
                                nmro_ds              = int.Parse(NumeroDias),
                                sbdo_hbl             = SabadoHabil == "NO" ? false : true,
                                fcha_hra_aprvc       = DateTime.Now,
                                fcha_hra_rgstro_nvdd = DateTime.Now,
                                crreo_slctnte        = CorreoSolicitante,
                                crreo_jfe_slctnte    = CorreoJefeSolicitante,
                                codEmpldo            = CodigoEmpleado,
                                idEstdoSlctd         = 1,
                                scdd                         = Sociedad,
                                nmro_ds_dspnbls              = double.Parse(NumeroDiasDisponibles),
                                MinimoDias                   = double.Parse(MinimoDias),
                                InicioFecha                  = Convert.ToDateTime(InicioFecha),
                                FinFecha                     = Convert.ToDateTime(FinFecha),
                                DiasFestivosSabadosDomingos  = DiasFestivosSabadosDomingos,
                                NroMinDiasCorreoCompensacion = int.Parse(oMinimoDiasCorreoCompensacion),
                                CorreoCompensacion           = oCorreoCompensacion
                            });

                            oMensajeRespuesta = new MensajeRespuesta
                            {
                                Codigo    = "1",
                                Mensaje   = "Empleado agregado correctamente a la lista",
                                Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet)
                            };
                        }
                    }
                    else
                    {
                        oMensajeRespuesta = new MensajeRespuesta
                        {
                            Codigo    = "3",
                            Mensaje   = "El empleado ya se encuentra agregado en la lista. Verifique la información e inténtelo de nuevo",
                            Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet)
                        };
                    }
                }
                else
                {
                    //Aqui se hacen las ediciones
                    SolicitudDetalle oSolicitudDetalle = new SolicitudDetalle();

                    if (oLstSolicitudDetalle != null && oLstSolicitudDetalle.Count > 0)
                    {
                        foreach (var item in oLstSolicitudDetalle)
                        {
                            if (item.nmroDcmnto == NroIdentificacion)
                            {
                                item.nmro_ds         = int.Parse(NumeroDias);
                                item.fcha_inco_vccns = Convert.ToDateTime(FechaInicio);
                                item.fcha_fn_vcc     = Convert.ToDateTime(FechaFin);
                                break;
                            }
                        }
                    }

                    oMensajeRespuesta = new MensajeRespuesta
                    {
                        Codigo    = "1",
                        Mensaje   = "Empleado actualizado correctamente",
                        Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet)
                    };
                }

                return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet));
            }
            catch (Exception Ex)
            {
                oMensajeRespuesta = new MensajeRespuesta
                {
                    Codigo    = "-1",
                    Mensaje   = "Ocurrió un error. Por favor contacte al administrador del sistema",
                    Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet)
                };

                Logger.Error("Ocurrió un error interno agregando o editando el empleado en la pantalla de anotador. " +
                             "Nro. Documento: " + NroIdentificacion +
                             "Exception: " + Ex);

                return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet));
            }
        }