public ActionResult Edit(Finiquito model, HttpPostedFileBase[] files, string[] documento) { try { var id_reg = model.id_baja; var id_nov = _db.Finiquito.FirstOrDefault(x => x.id_baja == id_reg).id_novedad; var novedad = _db.Novedad.FirstOrDefault(x => x.id_novedad == id_nov); novedad.fecha_mod = DateTime.Now; novedad.estado = "P"; novedad.usuario_mod = SesionLogin().id; var usu = _db.Usuario.FirstOrDefault(x => x.id == model.id_usu); Avisos aviso = _db.Avisos.FirstOrDefault(x => x.id_novedad == novedad.id_novedad); aviso.titulo_aviso = "Baja"; aviso.desc_aviso = usu.Nom_usu; aviso.fecha_aviso = model.fecha_fin; _db.Avisos.Attach(aviso); _db.Entry(aviso).State = System.Data.Entity.EntityState.Modified; _db.Set <Finiquito>().AddOrUpdate(model); //_db.Finiquito.Attach(model); //_db.Entry(model).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); if (files[0] == null) { return(JsonExito()); } else { int i = 0; foreach (var item in files)// TODO { Documento documento_ = new Documento(); documento_.Novedad = novedad; documento_.Cliente = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); documento_.id_novedad = model.id_novedad; documento_.categoria = documento[i]; documento_.id_usu = SesionLogin().id; documento_.Novedad.Tipo_novedad = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == novedad.tipo_nov); try { helper.createFile(item, documento_); } catch (Exception e) { App_Start.ErrorService.LogError(e); } i++; } return(JsonExito()); } } catch (Exception e) { return(JsonError(e.Message, e)); } }
public async System.Threading.Tasks.Task <ActionResult> ProcesaDocumentoPendiente(Finiquito model, HttpPostedFileBase[] files, int id_novedad) { try { var novedad = _db.Novedad.FirstOrDefault(x => x.id_novedad == id_novedad); var finiquito = _db.Finiquito.Where(x => x.id_novedad == id_novedad); novedad.estado = "P"; novedad.fecha_mod = DateTime.Now; novedad.usuario_mod = SesionLogin().id; _db.Entry(novedad).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); var clien = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); if (files[0] == null) { throw new Exception("Debe Ingresar un documento"); } else { int i = 0; foreach (var item in files)// TODO { Documento documento_ = new Documento(); documento_.Novedad = novedad; documento_.Cliente = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); documento_.id_novedad = id_novedad; documento_.categoria = finiquito.First().causal; documento_.id_usu = SesionLogin().id; documento_.Novedad.Tipo_novedad = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == novedad.tipo_nov); try { helper.createFile(item, documento_); } catch (Exception e) { App_Start.ErrorService.LogError(e); } i++; } //return JsonExito(); } var usuarios_payroll = (from u in _db.Usuario join uc in _db.Usuario_Cliente on u.id equals uc.id_usu where uc.id_cliente == novedad.id_cliente && u.id_tipo_usu == 2 && u.estado == 1 select u).ToList(); if (!usuarios_payroll.Any()) { throw new Exception(App_GlobalResources.Pay_Lenguaje.no_hay_contraparte); } var list_usu = (from f in _db.Finiquito join u in _db.Usuario on f.id_usu equals u.id where f.id_novedad == novedad.id_novedad select u).ToList(); List <Task> sendTask = new List <Task>(); foreach (var item in usuarios_payroll) { var mensaje_esp = ""; //var mensaje_ing = ""; foreach (var f in list_usu)//Recorre todos lo finiquitos asociados a una novedad. { mensaje_esp = mensaje_esp + "</br></br>Nombre completo: " + f.Nom_usu + " " + " .</br> Rut: " + f.rut + "."; //mensaje_ing = mensaje_ing + "</br></br>Full Name: " + f.Nom_usu + " " + " .</br> ID Card: " + f.rut + " .</br>"; } //string detalle = "Dear" + item.Nom_usu + ",</br></br>Please be informed that " + SesionLogin().Nom_usu + "received information from " + clien.nom_emp + " regarding the following employment termination(s): " + mensaje_ing + "</br></br>Kind regards and thanks, </br></br>*Please note that this email is an automated notification, which is unable to receive replies. If you have any questions please contact your Payroll team.</br></br>-----------------------</br>"; string detalle = ""; string mensaje = "Estimado(a): " + item.Nom_usu + ",</br>Te informamos que con fecha " + novedad.fecha_novedad.ToLongDateString() + " " + SesionLogin().Nom_usu + " ha cargado información en el Portal Payroll correspondiente al siguiente finiquito: " + mensaje_esp + "</br></br>Favor no olvide considerar esta información para el proceso de remuneraciones para " + clien.nom_emp + "</br></br>Saludos y gracias, </br></br>Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes.</br>"; await Helper.SendEmail("*****@*****.**", item.email, clien.Nom_cor_emp + " | Información de Finiquitos", mensaje, detalle); helper.registraEmail(item.id, "*****@*****.**", item.email, clien.Nom_cor_emp + " | Información de Finiquitos", mensaje + " " + detalle); await Task.WhenAll(sendTask); } return(JsonExito()); } catch (Exception err) { return(JsonError(err.Message, err)); } }
public async System.Threading.Tasks.Task <ActionResult> finiquitarMasivo(int?[] listado_usuarios, HttpPostedFileBase[] files, int?id_cliente /*, string causal*/, string comentarios /*,DateTime fecha_fin*/) { try { if (listado_usuarios == null) { throw new Exception("Debe seleccionar a un colaborador."); } Novedad novedad = new Novedad(); novedad.id_cliente = (int)id_cliente; novedad.fecha_mod = DateTime.Now; novedad.tipo_nov = 6; novedad.fecha_novedad = DateTime.Now; novedad.usuario_mod = SesionLogin().id; novedad.estado = "P"; novedad.comentario = comentarios; _db.Novedad.Add(novedad); _db.SaveChanges(); Finiquito finiquito = new Finiquito(); Documento docu = new Documento(); foreach (var usuario in listado_usuarios)// TODO { finiquito.Novedad = novedad; finiquito.fecha_fin = DateTime.Now; //Debo ingresar una fecha finiquito.causal = "CAUSAFORTUITO"; //Debo ingresar una causa (Cambios a revisas post revision de nick y philip) finiquito.id_novedad = novedad.id_novedad; finiquito.id_usu = (int)usuario; _db.Finiquito.Add(finiquito); _db.SaveChanges(); } docu.Novedad = novedad; docu.Cliente = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); docu.categoria = "CAUSAFORTUITO"; docu.id_novedad = novedad.id_novedad; docu.id_usu = SesionLogin().id; docu.estado_aprov = "P"; docu.id_cliente = (int)id_cliente; docu.Novedad.Tipo_novedad = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == novedad.tipo_nov); var clien = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); _db.SaveChanges(); try { helper.createFile(files[0], docu); } catch (Exception e) { App_Start.ErrorService.LogError(e); } var usuarios_payroll = (from u in _db.Usuario join uc in _db.Usuario_Cliente on u.id equals uc.id_usu where uc.id_cliente == novedad.id_cliente && u.id_tipo_usu == 2 && u.estado == 1 select u).ToList(); if (!usuarios_payroll.Any()) { throw new Exception(App_GlobalResources.Pay_Lenguaje.no_hay_contraparte); } var list_usu = (from f in _db.Finiquito join u in _db.Usuario on f.id_usu equals u.id where f.id_novedad == novedad.id_novedad select u).ToList(); List <Task> sendTask = new List <Task>(); foreach (var item in usuarios_payroll) { var mensaje_esp = ""; //var mensaje_ing = ""; foreach (var f in list_usu)//Recorre todos lo finiquitos asociados a una novedad. { mensaje_esp = mensaje_esp + "</br></br>Nombre completo: " + f.Nom_usu + " " + " .</br> Rut: " + f.rut + "."; //mensaje_ing = mensaje_ing + "</br></br>Full Name: " + f.Nom_usu + " " + " .</br> ID Card: " + f.rut + " .</br>"; } //string detalle = "Dear" + item.Nom_usu + ",</br></br>Please be informed that " + SesionLogin().Nom_usu + "received information from " + clien.nom_emp + " regarding the following employment termination(s): " + mensaje_ing + "</br></br>Kind regards and thanks, </br></br>*Please note that this email is an automated notification, which is unable to receive replies. If you have any questions please contact your Payroll team.</br></br>-----------------------</br>"; string detalle = ""; string mensaje = "Estimado(a): " + item.Nom_usu + ",</br>Te informamos que con fecha " + novedad.fecha_novedad.ToLongDateString() + " " + SesionLogin().Nom_usu + " ha cargado información en el Portal Payroll correspondiente al siguiente finiquito: " + mensaje_esp + "</br></br>Favor no olvide considerar esta información para el proceso de remuneraciones para " + clien.nom_emp + "</br></br>Saludos y gracias, </br></br>Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes.</br>"; await Helper.SendEmail("*****@*****.**", item.email, clien.Nom_cor_emp + " | Información de Finiquitos", mensaje, detalle); helper.registraEmail(item.id, "*****@*****.**", item.email, clien.Nom_cor_emp + " | Información de Finiquitos", mensaje + " " + detalle); await Task.WhenAll(sendTask); } return(JsonExitoMsg("Registro cursado con éxito!", "Mensaje")); } catch (Exception e) { return(JsonError(e.Message, e)); } }
public async System.Threading.Tasks.Task <ActionResult> Create(Finiquito model, HttpPostedFileBase[] files, string[] documento, int id_cliente_, int id_usuario_) { try { var clie = _db.Cliente.FirstOrDefault(x => x.id_cliente == id_cliente_); Novedad novedad = new Novedad(); novedad.usuario_mod = SesionLogin().id; novedad.id_cliente = clie.id_cliente; novedad.fecha_mod = DateTime.Now; novedad.tipo_nov = 6; novedad.fecha_novedad = DateTime.Now; novedad.estado = "P"; novedad.comentario = model.Novedad.comentario; model.Novedad = novedad; model.id_usu = id_usuario_; model.fecha_fin = DateTime.Now; //Debo ingresar una fecha model.causal = "CAUSAFORTUITO"; //Debo ingresar una causa (Cambios a revisas post revision de nick y philip) var usu = _db.Usuario.FirstOrDefault(x => x.id == model.id_usu); _db.Novedad.Add(novedad); _db.SaveChanges(); model.id_novedad = novedad.id_novedad; _db.Finiquito.Add(model); _db.SaveChanges(); if (files[0] == null) { return(JsonExito()); } int i = 0; foreach (var item in files)// TODO { if (item == null || documento[i] == "") { break; } else { Documento documento_ = new Documento(); documento_.Novedad = novedad; documento_.Cliente = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); documento_.id_novedad = model.id_novedad; documento_.categoria = documento[i]; documento_.id_usu = SesionLogin().id; documento_.Novedad.Tipo_novedad = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == novedad.tipo_nov); try { helper.createFile(item, documento_); } catch (Exception e) { App_Start.ErrorService.LogError(e); } i++; } } int id_nov = model.id_novedad; //var casillas = (from nov in _db.Novedad join uc in _db.Usuario_Cliente on nov.id_cliente equals uc.id_cliente // join u in _db.Usuario on uc.id_usu equals u.id where u.id_tipo_usu == 2 && nov.id_novedad == id_nov // select u).ToList(); var usuarios_payroll = (from u in _db.Usuario join uc in _db.Usuario_Cliente on u.id equals uc.id_usu where uc.id_cliente == novedad.id_cliente && u.id_tipo_usu == 2 && u.estado == 1 select u).ToList(); if (!usuarios_payroll.Any()) { throw new Exception(App_GlobalResources.Pay_Lenguaje.no_hay_contraparte); } List <Task> sendTask = new List <Task>(); foreach (var item in usuarios_payroll) { string mensaje = "Estimado(a) :" + item.Nom_usu + ",</br></br>Te informamos que en nuestro Payroll Portal, se ha generado una solicitud de finiquito con fecha de hoy " + DateTime.Now.ToShortDateString() + ", a continuación la informacion del colaborador, </br></br>Nombre completo: " + usu.Nom_usu + ".</ br > Rut: " + usu.rut + ".</ br > Empresa: " + clie.nom_emp + ".</br></br>Agradeceríamos que lo revisaras. </br></br>Saludos y gracias, </br></br></br></br>Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes. </br></br>"; string detalle = "</br></br> Dear Mr./ Ms. " + item.Nom_usu + ",</br></br>We inform you that in our Payroll Portal, A settlement request has been generated with today's date" + DateTime.Now.ToShortDateString() + ", below the information of the collaborator, </br></br>Full name: " + usu.Nom_usu + ".</ br > Card Id: " + usu.rut + ".</ br > Company: " + clie.nom_emp + ".</br></br>We would appreciate it if you would review it. </br></br>Greetings and thank you, </br></br>This email is informative, please do not reply to this email address, as it´s not able to receive messages. </br></br>"; sendTask.Add(App_Start.Helper.SendEmail("*****@*****.**", item.email, "Solicitud de finiquito terminada / Completed settlement request", mensaje, detalle)); helper.registraEmail(item.id, "*****@*****.**", item.email, "Solicitud de finiquito terminada / Completed settlement request", mensaje + " " + detalle); } await Task.WhenAll(sendTask); return(JsonExito()); //if (!helper.ValidaIngresoNovedad(id_cliente_)) //{ // return JsonExitoMsg("Este registro se proceso pero conlleva un SNR ", "SNR"); //} //else //{ // return JsonExito(); //} } catch (Exception err) { return(JsonError(err.Message, err)); } }
public async System.Threading.Tasks.Task <ActionResult> aprobacion(int id, int[] ArregloIds) { try { var fini_aprobados = (from f in _db.Finiquito where ArregloIds.Contains(f.id_baja) && f.id_novedad == id select f).ToList(); var fini_no_aprobados = (from f in _db.Finiquito where !ArregloIds.Contains(f.id_baja) && f.id_novedad == id select f).ToList(); var usuarios_no_acuse_recivo_esp = ""; var usuarios_no_acuse_recivo_ing = ""; var finiquito = _db.Finiquito.FirstOrDefault(item => item.id_novedad == id); var novedad = _db.Novedad.FirstOrDefault(x => x.id_novedad == finiquito.id_novedad); var clie = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente); var doc = finiquito.id_novedad; var documento = _db.Documento.FirstOrDefault(item => item.id_novedad == doc); if (fini_no_aprobados.Any()) { var id_cliente = fini_no_aprobados.First().Novedad.id_cliente; Novedad nueva_novedad = new Novedad(); nueva_novedad.id_cliente = id_cliente; nueva_novedad.fecha_mod = fini_no_aprobados.First().Novedad.fecha_mod; nueva_novedad.tipo_nov = 6; nueva_novedad.fecha_novedad = fini_no_aprobados.First().Novedad.fecha_novedad; nueva_novedad.usuario_mod = SesionLogin().id; nueva_novedad.estado = "R"; nueva_novedad.comentario = fini_no_aprobados.First().Novedad.comentario; _db.Novedad.Add(nueva_novedad); _db.SaveChanges(); List <Finiquito> lista_fini = new List <Finiquito>(); foreach (var fini in fini_no_aprobados)// TODO { var nuevo_finiquito = new Finiquito(); nuevo_finiquito.Novedad = nueva_novedad; nuevo_finiquito.fecha_fin = fini.fecha_fin; nuevo_finiquito.causal = fini.causal; nuevo_finiquito.id_novedad = nueva_novedad.id_novedad; nuevo_finiquito.id_usu = fini.id_usu; lista_fini.Add(nuevo_finiquito); } foreach (var f in fini_no_aprobados)//Recorre todos lo finiquitos asociados a una novedad. { usuarios_no_acuse_recivo_esp = usuarios_no_acuse_recivo_esp + "</br></br> Nombre completo: " + f.Usuario.Nom_usu + " " + " .</br> Rut: " + f.Usuario.rut + "."; usuarios_no_acuse_recivo_ing = usuarios_no_acuse_recivo_ing + "</br></br>Full name: " + f.Usuario.Nom_usu + " " + " .</br>ID Card: " + f.Usuario.rut + "."; } _db.Finiquito.AddRange(lista_fini); _db.Finiquito.RemoveRange(fini_no_aprobados); _db.SaveChanges(); } finiquito.Novedad.estado = "A"; finiquito.Novedad.fecha_mod = DateTime.Now; finiquito.Novedad.usuario_mod = SesionLogin().id; _db.Entry(finiquito).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); var usu_contraparte = (from u in _db.Usuario join uc in _db.Usuario_Cliente on u.id equals uc.id_usu where uc.id_cliente == novedad.id_cliente && u.id_tipo_usu == 1 && u.estado == 1 && u.id_cliente == novedad.id_cliente select u).ToList(); if (!usu_contraparte.Any()) { throw new Exception(App_GlobalResources.Pay_Lenguaje.no_hay_contraparte); } List <Task> sendTask = new List <Task>(); foreach (var item in usu_contraparte) { var mensaje_esp = ""; var mensaje_ing = ""; foreach (var f in fini_aprobados)//Recorre todos lo finiquitos asociados a una novedad. { mensaje_esp = mensaje_esp + "</br></br>Nombre completo: " + f.Usuario.Nom_usu + " " + " .</br> Rut: " + f.Usuario.rut + "."; mensaje_ing = mensaje_ing + "</br></br>Full name: " + f.Usuario.Nom_usu + " " + " .</br>ID Card: " + f.Usuario.rut + " ."; } if (fini_no_aprobados.Any()) { //Email OK string mensaje = "Dear " + item.Nom_usu + ",</br></br> Please be informed that " + SesionLogin().Nom_usu + ", received information from" + clie.nom_emp + " regarding the following employment termination(s):" + mensaje_ing + "</br></br>We have not yet received the termination Agreement(s) for the following individuals: " + usuarios_no_acuse_recivo_ing + " </br></br>Best regards, </br></br>*Please note that this email is an automated notification, which is unable to receive replies. If you have any questions please contact your Payroll team.</br></br>-----------------------</br>"; string detalle = "</br></br> Estimado(a) " + item.Nom_usu + ",</br> </br>Te informamos que " + SesionLogin().Nom_usu + ", ha recibido la información de la empresa " + clie.nom_emp + " sobre el/los siguiente(s) finiquit(os): " + mensaje_esp + "</br></br>Con respecto a los siguientes trabajadores el documento de respaldo adjunto no venía" + usuarios_no_acuse_recivo_esp + "</br>Saludos y gracias,</br></br>Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes. </br></br>"; await Helper.SendEmail("*****@*****.**", item.email, "Information Received | Información Recibida", mensaje, detalle); helper.registraEmail(item.id, "*****@*****.**", item.email, "Information Received | Información Recibida", mensaje + " " + detalle); } else { // Email OK string mensaje = "Dear " + item.Nom_usu + ",</br></br> Please be informed that " + SesionLogin().Nom_usu + ", received information from" + clie.nom_emp + " regarding the following employment termination(s):" + mensaje_ing + "</br></br>Best regards, </br></br>*Please note that this email is an automated notification, which is unable to receive replies. If you have any questions please contact your Payroll team.</br></br>-----------------------</br>"; string detalle = "</br></br> Estimado(a) " + item.Nom_usu + ",</br> </br>Te informamos que " + SesionLogin().Nom_usu + ", ha recibido la información de la empresa " + clie.nom_emp + " sobre el/los siguiente(s) finiquit(os): " + mensaje_esp + "</br>Saludos y gracias,</br></br>Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes. </br></br>"; await Helper.SendEmail("*****@*****.**", item.email, "Information Received | Información Recibida", mensaje, detalle); helper.registraEmail(item.id, "*****@*****.**", item.email, "Information Received | Información Recibida", mensaje + " " + detalle); } } await Task.WhenAll(sendTask); _db.SaveChanges(); return(JsonExitoMsg("Aprobado", "Finiquito")); } catch (Exception e) { return(JsonError(e.Message, e)); } }