public void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) { EntidadesConosud dc = Contexto; if (e.Argument == "Update") { long id = long.Parse(RadGrid1.SelectedValue.ToString()); Entidades.Empresa EmpUpdate = (from L in dc.Empresa where L.IdEmpresa == id select L).FirstOrDefault <Entidades.Empresa>(); int cant = (from l in dc.Empresa where l.CUIT.Trim() == txtCUIT.Text.Trim() && l.IdEmpresa != id select l).Count(); txtCUIT.Attributes.Remove("NroExistente"); if (cant > 0) { txtCUIT.Attributes.Add("NroExistente", true.ToString()); upNroCUIT.Update(); return; } else { txtCUIT.Attributes.Add("NroExistente", false.ToString()); upNroCUIT.Update(); } if (EmpUpdate != null) { /// Controles Tipo TextBox EmpUpdate.RazonSocial = txtRazonSocial.Text.Trim(); EmpUpdate.RepresentanteTecnico = txtTecnico.Text.Trim(); EmpUpdate.PrestacionEmergencia = txtPrestacionEmergencias.Text.Trim(); EmpUpdate.Direccion = txtDireccion.Text.Trim(); EmpUpdate.Telefono = txtTelefono.Text.Trim(); EmpUpdate.Emergencia = txtEmergencias.Text.Trim(); EmpUpdate.CorreoElectronico = txtEmail.Text.Trim(); /// Controles Tipo Telerik EmpUpdate.CUIT = txtCUIT.Text; /// Controles Tipo Fecha EmpUpdate.FechaAlta = txtFechaAlta.SelectedDate; dc.SaveChanges(); } FiltrarEmpresas(txtApellidoLegajo.Text.Trim()); return; } if (e.Argument == "delete") { long id = long.Parse(RadGrid1.SelectedValue.ToString()); Entidades.Empresa EmpDelete = (from L in Contexto.Empresa where L.IdEmpresa == id select L).FirstOrDefault <Entidades.Empresa>(); /// Saco a todos los lejos asociados a la empresa. List <Legajos> legajosAsociados = EmpDelete.Legajos.ToList(); foreach (Legajos leg in legajosAsociados) { leg.objEmpresaLegajo = null; } /// Saco a todos vehiculos asociados List <VahiculosyEquipos> VehiculosAsociados = EmpDelete.VahiculosyEquipos.ToList(); foreach (VahiculosyEquipos vec in VehiculosAsociados) { vec.objEmpresa = null; } /// Saco el usario a asociado a la empresa List <SegUsuario> SegUsuairoEmp = (from L in Contexto.SegUsuario where L.IdEmpresa == id select L).ToList <SegUsuario>(); foreach (SegUsuario item in SegUsuairoEmp) { item.Empresa = null; } int j = EmpDelete.ContratoEmpresas.Count(); while (j > 0) { Entidades.ContratoEmpresas _ContratoEmpresas = EmpDelete.ContratoEmpresas.Take(1).First(); //if (!_ContratoEmpresas.ComentariosGral.IsLoaded) { _ContratoEmpresas.ComentariosGral.Load(); } List <ComentariosGral> comentsGrales = _ContratoEmpresas.ComentariosGral.ToList(); foreach (ComentariosGral itemComent in comentsGrales) { Contexto.DeleteObject(itemComent); } int j2 = _ContratoEmpresas.CabeceraHojasDeRuta.Count(); while (j2 > 0) { Entidades.CabeceraHojasDeRuta _CabeceraHojasDeRuta = _ContratoEmpresas.CabeceraHojasDeRuta.Take(1).First(); int j3 = _CabeceraHojasDeRuta.HojasDeRuta.Count(); while (j3 > 0) { Entidades.HojasDeRuta _HojasDeRuta = _CabeceraHojasDeRuta.HojasDeRuta.Take(1).First(); Contexto.DeleteObject(_HojasDeRuta); j3--; } int j4 = _CabeceraHojasDeRuta.ContEmpLegajos.Count(); while (j4 > 0) { ContEmpLegajos _Leghoja = _CabeceraHojasDeRuta.ContEmpLegajos.Take(1).First(); Contexto.DeleteObject(_Leghoja); j4--; } Contexto.DeleteObject(_CabeceraHojasDeRuta); j2--; } Contexto.DeleteObject(_ContratoEmpresas); j--; } Contexto.DeleteObject(EmpDelete); try { Contexto.SaveChanges(); FiltrarEmpresas(txtApellidoLegajo.Text.Trim()); } catch { ScriptManager.RegisterStartupScript(this, this.GetType(), "eliminacionEmpresa", "radalert('La emprsa no puede ser eliminada ya que posee mucha información asociada, por favor tome contacto con el administrador del sistema.',300,150)", true); FiltrarEmpresas(txtApellidoLegajo.Text.Trim()); } } if (e.Argument == "Insert") { Entidades.Empresa EmpInsert = new Entidades.Empresa(); int cant = (from l in dc.Empresa where l.CUIT == txtCUIT.Text.Trim() select l).Count(); if (cant > 0) { txtCUIT.Attributes.Add("NroExistente", true.ToString()); upNroCUIT.Update(); return; } else { txtCUIT.Attributes.Add("NroExistente", false.ToString()); upNroCUIT.Update(); } /// Controles Tipo TextBox EmpInsert.RazonSocial = txtRazonSocial.Text.Trim(); EmpInsert.RepresentanteTecnico = txtTecnico.Text.Trim(); EmpInsert.PrestacionEmergencia = txtPrestacionEmergencias.Text.Trim(); EmpInsert.Direccion = txtDireccion.Text.Trim(); EmpInsert.Telefono = txtTelefono.Text.Trim(); EmpInsert.Emergencia = txtEmergencias.Text.Trim(); EmpInsert.CorreoElectronico = txtEmail.Text.Trim(); /// Controles Tipo Telerik EmpInsert.CUIT = txtCUIT.Text; /// Controles Tipo Fecha EmpInsert.FechaAlta = txtFechaAlta.SelectedDate; dc.AddToEmpresa(EmpInsert); dc.SaveChanges(); } FiltrarEmpresas(txtApellidoLegajo.Text.Trim()); }
public static List <dynamic> GetLegajos(string filtroApellido, string FiltroDNI, string TipoUsuario, string IdEmpresa, int take = 15) { using (EntidadesConosud Contexto = new EntidadesConosud()) { List <ContEmpLegajos> Todos = new List <ContEmpLegajos>(); List <Legajos> DatosLegajosFiltrados; if (TipoUsuario == "Cliente") { long idEmpresa = long.Parse(IdEmpresa); if (filtroApellido.Trim().ToLower() != "") { DatosLegajosFiltrados = (from emp in Contexto.Legajos where emp.Apellido.ToLower().StartsWith(filtroApellido.ToLower()) && emp.EmpresaLegajo == idEmpresa orderby emp.Apellido select emp).Take(take).ToList(); } else if (FiltroDNI.Trim().ToLower() != "") { DatosLegajosFiltrados = (from emp in Contexto.Legajos where emp.NroDoc.StartsWith(FiltroDNI.Trim()) && emp.EmpresaLegajo == idEmpresa orderby emp.Apellido select emp).Take(take).ToList(); } else { DatosLegajosFiltrados = (from emp in Contexto.Legajos where emp.EmpresaLegajo == idEmpresa orderby emp.Apellido select emp).Take(take).ToList(); } } else { if (filtroApellido.Trim().ToLower() != "") { DatosLegajosFiltrados = (from emp in Contexto.Legajos where emp.Apellido.ToLower().StartsWith(filtroApellido.ToLower()) orderby emp.Apellido select emp).Take(take).ToList(); } else if (FiltroDNI.Trim().ToLower() != "") { DatosLegajosFiltrados = (from emp in Contexto.Legajos where emp.NroDoc.StartsWith(FiltroDNI.Trim()) orderby emp.Apellido select emp).Take(take).ToList(); } else { DatosLegajosFiltrados = (from emp in Contexto.Legajos orderby emp.Apellido select emp).Take(take).ToList(); } } List <long> idsLegajos = DatosLegajosFiltrados.Select(w => w.IdLegajos).Distinct().ToList(); var contEmpLegajos = (from e in Contexto.ContEmpLegajos where idsLegajos.Contains(e.IdLegajos.Value) group e by new { e.IdLegajos, e.ContratoEmpresas.IdEmpresa } into g select new { g.Key, contratos = g, cab = g.Select(w => w.CabeceraHojasDeRuta) }).ToList(); /// Esta lógica es para determinar el contrato actual de cada legajo y si no esta asignado /// a ningun contrato se bueca el ultimo en el que estuvo foreach (Legajos leg in DatosLegajosFiltrados) { List <ContEmpLegajos> TotalContratosLegajo = null; var ContratosExistentes = contEmpLegajos.Where(w => w.Key.IdLegajos == leg.IdLegajos && w.Key.IdEmpresa == leg.EmpresaLegajo.Value).Select(w => w.contratos).ToList().FirstOrDefault(); if (ContratosExistentes != null) { TotalContratosLegajo = ContratosExistentes.ToList(); ContEmpLegajos contFinal = null; ContEmpLegajos Ultimo = TotalContratosLegajo.Where(w => w.FechaTramiteBaja.HasValue).OrderBy(w => w.FechaTramiteBaja).LastOrDefault(); // Si ultimo es null indica que el legajo esta asociado a un contrato actualmente. if (Ultimo == null) { var ultimoContrato = TotalContratosLegajo.OrderBy(w => w.CabeceraHojasDeRuta.Periodo).LastOrDefault(); contFinal = TotalContratosLegajo.Where(w => w.IdContratoEmpresas == ultimoContrato.IdContratoEmpresas).OrderBy(w => w.CabeceraHojasDeRuta.Periodo).FirstOrDefault(); } else { bool encontrado = false; foreach (ContEmpLegajos item in TotalContratosLegajo) { if (encontrado) { contFinal = item; break; } else if (item.IdContEmpLegajos == Ultimo.IdContEmpLegajos) { encontrado = true; } } } Todos.Add(contFinal); } } var datos = (from d in DatosLegajosFiltrados select new { //d = d, Apellido = d.Apellido, DesEstudiosBasicos = !d.EstudiosBasicos.HasValue ? "No Apto" : !d.EstudiosBasicos.Value ? "No Apto" : "Apto", DesComplementarioRacs = !d.ComplementarioRacs.HasValue ? "No Apto" : !d.ComplementarioRacs.Value ? "No Apto" : "Apto", DesAdicionalQuimicos = !d.AdicionalQuimicos.HasValue ? "No Apto" : !d.AdicionalQuimicos.Value ? "No Apto" : "Apto", dc = Todos.Where(w => w != null && w.IdLegajos == d.IdLegajos).Select(w => new { w.ContratoEmpresas.Contrato.Codigo, Periodo = string.Format("{0:MM/yyyy}", w.CabeceraHojasDeRuta.Periodo), w.Legajos.IdLegajos, FechaVencimiento = w.ContratoEmpresas.Contrato.Prorroga.HasValue && w.ContratoEmpresas.Contrato.Prorroga.Value > w.ContratoEmpresas.Contrato.FechaVencimiento ? w.ContratoEmpresas.Contrato.Prorroga.Value.ToShortDateString() : w.ContratoEmpresas.Contrato.FechaVencimiento.Value.ToShortDateString(), CategoriaContrato = "Contrato: " + w.ContratoEmpresas.Contrato.objCategoria.Descripcion, Contratista = w.ContratoEmpresas.EsContratista.Value ? w.ContratoEmpresas.Empresa.RazonSocial : w.ContratoEmpresas.Contrato.ContratoEmpresas.Where(c => c.EsContratista.Value).FirstOrDefault().Empresa.RazonSocial, SubContratista = !w.ContratoEmpresas.EsContratista.Value ? w.ContratoEmpresas.Empresa.RazonSocial : "", }).FirstOrDefault() }).ToList(); return(datos.ToList <dynamic>()); } }
public static void GeneracionXmlLegajos(string ruta) { EntidadesConosud dbLocal = new EntidadesConosud(); List <Legajos> legajos = (from L in dbLocal.Legajos select L).ToList <Legajos>(); //.Include("objContEmpLegajos") //.Include("objContEmpLegajos.CabeceraHojasDeRuta") //.Include("objContEmpLegajos.ContratoEmpresas") //.Include("objContEmpLegajos.ContratoEmpresas.Empresa") //.Include("objContEmpLegajos.ContratoEmpresas.Contrato") List <Entidades.Empresa> emps = (from L in dbLocal.Empresa select L).ToList <Entidades.Empresa>(); List <Entidades.Contrato> conts = (from L in dbLocal.Contrato select L).ToList <Entidades.Contrato>(); List <Entidades.ContratoEmpresas> ContratoEmpresas = (from L in dbLocal.ContratoEmpresas select L).ToList <Entidades.ContratoEmpresas>(); List <Entidades.CabeceraHojasDeRuta> CabeceraHojasDeRuta = (from L in dbLocal.CabeceraHojasDeRuta select L).ToList <Entidades.CabeceraHojasDeRuta>(); List <Entidades.ContEmpLegajos> ContEmpLegajos = (from L in dbLocal.ContEmpLegajos select L).ToList <Entidades.ContEmpLegajos>(); XDocument xDoc = new XDocument( new XElement("searchable_index", from pt in legajos select new XElement("item", pt.NroDoc))); IEnumerable <XElement> childList = from el in xDoc.Elements().Elements() select el; foreach (XElement item in childList) { Legajos current = legajos.Where(P => P.NroDoc == item.Value).FirstOrDefault <Legajos>(); //Legajos current = (from P in legajos // where P.NroDoc == item.Value // select P).FirstOrDefault<Legajos>(); item.SetValue(current.Apellido + ", " + current.Nombre); if (current.objContEmpLegajos.Count > 0) { ContEmpLegajos ultimo = (from C in current.objContEmpLegajos where C.FechaTramiteBaja == null orderby C.CabeceraHojasDeRuta.Periodo select C).LastOrDefault <ContEmpLegajos>(); if (ultimo == null) { item.Add(new XAttribute("contrato", "Sin Contrato")); item.Add(new XAttribute("UltimoPeriodo", "")); } else { string UltiPeriodoAsignado = ultimo.CabeceraHojasDeRuta.Periodo.Year.ToString() + "/" + string.Format("{0:00}", ultimo.CabeceraHojasDeRuta.Periodo.Month); //ContratoEmpresas currentContEmp = (from C in dbLocal.ContratoEmpresas.Include("Empresa").Include("Contrato") // where C.IdContratoEmpresas == idContEmpresa // select C).First<ContratoEmpresas>(); item.Add(new XAttribute("contrato", ultimo.ContratoEmpresas.Contrato.Codigo + " - " + ultimo.ContratoEmpresas.Empresa.RazonSocial)); item.Add(new XAttribute("UltimoPeriodo", UltiPeriodoAsignado)); } } else { item.Add(new XAttribute("contrato", "Sin Contrato")); item.Add(new XAttribute("UltimoPeriodo", "")); } item.Add(new XAttribute("NroDocumento", current.NroDoc)); item.Add(new XAttribute("IdLegajo", current.IdLegajos)); } xDoc.Save(ruta + @"\Legajos.xml"); }
public void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) { if (e.Argument == "ActualizarGrilla") { CargarGrilla(); } else if (e.Argument == "DeleteSelected") { DateTime periodo = DateTime.Parse(cboPeriodos.Text + "/01"); long idContratoEmpresa = Convert.ToInt32(cboContratistas.SelectedValue); long idLegajo = long.Parse(gvLegajosAsociados.Items[gvLegajosAsociados.SelectedItems[0].DataSetIndex].GetDataKeyValue("Legajos.IdLegajos").ToString()); long idContempLeg = long.Parse(gvLegajosAsociados.Items[gvLegajosAsociados.SelectedItems[0].DataSetIndex].GetDataKeyValue("IdContEmpLegajos").ToString()); EntidadesConosud dc = new EntidadesConosud(); var contEmpLegajos = from C in dc.ContEmpLegajos where C.ContratoEmpresas.IdContratoEmpresas == idContratoEmpresa && C.Legajos.IdLegajos == idLegajo && C.CabeceraHojasDeRuta.Periodo >= periodo select C; foreach (Entidades.ContEmpLegajos cont in contEmpLegajos) { if (idContempLeg == cont.IdContEmpLegajos) { cont.FechaTramiteBaja = DateTime.Now; } else { dc.DeleteObject(cont); } } /// Limpio la fecha de vencimiento de la credencial. var legajo = (from L in dc.Legajos where L.IdLegajos == idLegajo select L).FirstOrDefault(); legajo.CredVencimiento = null; dc.SaveChanges(); CargarGrilla(); ScriptManager.RegisterStartupScript(upGrilla, typeof(UpdatePanel), "acr", "ActualizarXML();", true); } else if (e.Argument == "CargaGrilla") { CargarGrilla(); } else if (e.Argument != "undefined") { DateTime periodo = DateTime.Parse(cboPeriodos.Text + "/01"); long idContratoEmpresa = Convert.ToInt32(cboContratistas.SelectedValue); //long idEstado = 15; long idLegajo = long.Parse(e.Argument); long idEmpresa = long.Parse(cboEmpresas.SelectedValue); EntidadesConosud dcLocal = new EntidadesConosud(); var cabeceras = (from C in dcLocal.CabeceraHojasDeRuta.Include("ContratoEmpresas") where C.Periodo >= periodo && C.ContratoEmpresas.IdContratoEmpresas == idContratoEmpresa //&& C.Estado.IdClasificacion == idEstado select C).ToList(); Entidades.Legajos legAsociado = (from L in dcLocal.Legajos where L.IdLegajos == idLegajo select L).First <Entidades.Legajos>(); Contrato contratoAsignado = cabeceras.FirstOrDefault().ContratoEmpresas.Contrato; foreach (Entidades.CabeceraHojasDeRuta cab in cabeceras) { List <ContEmpLegajos> legajosExistentes = cab.ContEmpLegajos.ToList(); ContEmpLegajos legAsigndoExistente = legajosExistentes.Where(w => w.IdLegajos == legAsociado.IdLegajos).FirstOrDefault(); if (legAsigndoExistente == null) { Entidades.ContEmpLegajos ContEmpLeg = new Entidades.ContEmpLegajos(); ContEmpLeg.Legajos = legAsociado; ContEmpLeg.ContratoEmpresas = cab.ContratoEmpresas; ContEmpLeg.CabeceraHojasDeRuta = cab; dcLocal.AddToContEmpLegajos(ContEmpLeg); } else { legAsigndoExistente.FechaTramiteBaja = null; } } /// 91: Categoria del contrato Auditable al ingreso, se debe colocar como /// vencimiento de la credencial la fecha de asignación mas un mes, caso contrario /// la fecha de vencimiento del contrato. if (contratoAsignado.objCategoria.IdClasificacion != 91) { if (contratoAsignado.Prorroga.HasValue) { legAsociado.CredVencimiento = contratoAsignado.Prorroga; } else { legAsociado.CredVencimiento = contratoAsignado.FechaVencimiento; } } else { legAsociado.CredVencimiento = DateTime.Now.AddMonths(1); } dcLocal.SaveChanges(); txtNroDocToolTip.Text = ""; CargarGrilla(); } }