private void GenerarContratos(ContratosImp ContImp, EntidadesConosud dc) { int HayEmpresa = (from E in dc.Empresa where E.CUIT.Replace("-", "").Contains(ContImp.CUIT_FK.Replace("-", "")) select E).Count(); if (HayEmpresa > 0) { /// Creo el contrato Entidades.Contrato newContrato = new Entidades.Contrato(); newContrato.Codigo = ContImp.Codigo; newContrato.FechaInicio = DateTime.Parse(ContImp.FechaInicio); newContrato.FechaVencimiento = DateTime.Parse(ContImp.FechaVencimiento); newContrato.Prorroga = ContImp.Prorroga; newContrato.Servicio = ContImp.Servicio.ToLower(); newContrato.TipoContrato = (from T in dc.Clasificacion where T.Tipo == "Tipo Contrato" && T.Descripcion.Contains(ContImp.TipoContrato) select T).FirstOrDefault <Entidades.Clasificacion>(); newContrato.Contratadopor = (from T in dc.Clasificacion where T.Tipo == "Contratado por" && T.Descripcion.Contains(ContImp.ContratadoPor) select T).FirstOrDefault <Entidades.Clasificacion>(); /// Creo el Contrato Empresa Entidades.ContratoEmpresas _ContEmp = new Entidades.ContratoEmpresas(); _ContEmp.EsContratista = true; _ContEmp.Contrato = newContrato; _ContEmp.Empresa = (from E in dc.Empresa where E.CUIT.Replace("-", "").Contains(ContImp.CUIT_FK.Replace("-", "")) select E).First <Entidades.Empresa>(); /// Creo las Hojas de Ruta DateTime FFin = DateTime.Now; if (newContrato.Prorroga.HasValue) { FFin = newContrato.Prorroga.Value; } else { FFin = newContrato.FechaVencimiento.Value; } DateTime FechaInicio = new DateTime(newContrato.FechaInicio.Value.Year, newContrato.FechaInicio.Value.Month, 1); Helpers.GenerarHojadeRuta(dc, FechaInicio, FFin, _ContEmp); /// Creo los contrato empresa para las subcontratista List <ContratoEmpresasImp> contratosSubContratistas = (from C in dc.ContratoEmpresasImp where C.Contratista.Replace("-", "") == _ContEmp.Empresa.CUIT.Replace("-", "") && C.NroContrato == _ContEmp.Contrato.Codigo select C).ToList <ContratoEmpresasImp>(); foreach (ContratoEmpresasImp item in contratosSubContratistas) { Entidades.Empresa SubContratista = (from E in dc.Empresa where E.CUIT.Replace("-", "").Contains(item.SubContratista.Replace("-", "")) select E).FirstOrDefault <Entidades.Empresa>(); if (SubContratista != null) { /// creo el contrato empresa para el subcontratista Entidades.ContratoEmpresas _ContEmpSub = new Entidades.ContratoEmpresas(); _ContEmpSub.EsContratista = false; _ContEmpSub.Empresa = SubContratista; newContrato.ContratoEmpresas.Add(_ContEmpSub); /// Creo las Hojas de Ruta FFin = DateTime.Now; if (newContrato.Prorroga.HasValue) { FFin = newContrato.Prorroga.Value; } else { FFin = newContrato.FechaVencimiento.Value; } FechaInicio = new DateTime(newContrato.FechaInicio.Value.Year, newContrato.FechaInicio.Value.Month, 1); Helpers.GenerarHojadeRuta(dc, FechaInicio, FFin, _ContEmpSub); } } dc.AddToContrato(newContrato); } }
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 void GenerarHojadeRuta(ObjectContext pContext, DateTime FInicio, DateTime FFin, Entidades.ContratoEmpresas pContratoEmpresas) { string queryString = @"SELECT VALUE CabeceraHojasDeRuta FROM EntidadesConosud.CabeceraHojasDeRuta AS CabeceraHojasDeRuta"; ObjectQuery <Entidades.CabeceraHojasDeRuta> CabeceraHojasDeRutaQuery1 = new ObjectQuery <Entidades.CabeceraHojasDeRuta>(queryString, pContext); DateTime FechaInicio = FInicio; DateTime FechaFinal = FFin; int ultimonrocarpeta = 1; try { ultimonrocarpeta = CabeceraHojasDeRutaQuery1.Max(c => c.NroCarpeta); ultimonrocarpeta += 1; } catch { } long id = Convert.ToInt64(Helpers.EstadosHoja.NoAprobada); IEnumerable <KeyValuePair <string, object> > entityKeyValues = new KeyValuePair <string, object>[] { new KeyValuePair <string, object>("IdClasificacion", id) }; EntityKey key = new EntityKey("EntidadesConosud.Clasificacion", entityKeyValues); Entidades.Clasificacion _est = (Entidades.Clasificacion)pContext.GetObjectByKey(key); /// Guardo la ultima cabecera antes de generar las nuevas para /// luego obtener los legados de la mism. Entidades.CabeceraHojasDeRuta UltimaCabecera = null; if (pContratoEmpresas.IdContratoEmpresas > 0) { if (!pContratoEmpresas.CabeceraHojasDeRuta.IsLoaded) { pContratoEmpresas.CabeceraHojasDeRuta.Load(); } UltimaCabecera = pContratoEmpresas.CabeceraHojasDeRuta.OrderBy(w => w.Periodo).Last(); } while (GeneraxFecha(ref FechaInicio, ref FechaFinal)) { if (UltimaCabecera == null || !(UltimaCabecera.Periodo.Month == FechaFinal.Month && UltimaCabecera.Periodo.Year == FechaFinal.Year)) { /// control por las dudas que el primer periodo que se intenta crear ya existe. if (UltimaCabecera == null || string.Format("{0:MMyyyy}", FechaInicio) != string.Format("{0:MMyyyy}", UltimaCabecera.Periodo)) { /// controlo que el periodo que se esta intentando crear no exista ya. if (!pContratoEmpresas.CabeceraHojasDeRuta.Any(w => string.Format("{0:MMyyyy}", w.Periodo) == string.Format("{0:MMyyyy}", FechaInicio))) { /// Genero la cabecera de hoja de ruta Entidades.CabeceraHojasDeRuta _CabHojaRuta = new Entidades.CabeceraHojasDeRuta(); _CabHojaRuta.ContratoEmpresas = pContratoEmpresas; _CabHojaRuta.Estado = _est; _CabHojaRuta.Periodo = FechaInicio; _CabHojaRuta.NroCarpeta = ultimonrocarpeta; _CabHojaRuta.Estimacion = string.Empty; _CabHojaRuta.EsFueraTermino = false; pContext.AddObject("EntidadesConosud.CabeceraHojasDeRuta", _CabHojaRuta); queryString = @"SELECT VALUE Plantilla FROM EntidadesConosud.Plantilla AS Plantilla"; ObjectQuery <Entidades.Plantilla> PlantillaQuery1 = new ObjectQuery <Entidades.Plantilla>(queryString, pContext); /// Genero los items de las hojas de ruta foreach (Entidades.Plantilla plan in PlantillaQuery1.Select(p => p)) { Entidades.HojasDeRuta _HojasDeRuta = new Entidades.HojasDeRuta(); _HojasDeRuta.Plantilla = plan; _HojasDeRuta.HojaAprobado = false; _HojasDeRuta.HojaComentario = string.Empty; _HojasDeRuta.AuditadoPor = string.Empty; _HojasDeRuta.DocComentario = string.Empty; _CabHojaRuta.HojasDeRuta.Add(_HojasDeRuta); pContext.AddObject("EntidadesConosud.HojasDeRuta", _HojasDeRuta); } /// Asocio los legajos a la nueva cabecera if (UltimaCabecera != null) { if (!UltimaCabecera.ContEmpLegajos.IsLoaded) { UltimaCabecera.ContEmpLegajos.Load(); } foreach (Entidades.ContEmpLegajos itemContLeg in UltimaCabecera.ContEmpLegajos) { if (!itemContLeg.LegajosReference.IsLoaded) { itemContLeg.LegajosReference.Load(); } Entidades.ContEmpLegajos newContLeg = new Entidades.ContEmpLegajos(); newContLeg.ContratoEmpresas = pContratoEmpresas; newContLeg.Legajos = itemContLeg.Legajos; _CabHojaRuta.ContEmpLegajos.Add(newContLeg); pContext.AddObject("EntidadesConosud.ContEmpLegajos", newContLeg); } } } } } FechaInicio = FechaInicio.AddMonths(1); ultimonrocarpeta += 1; } }
protected void LinkButtonEliminar_OnClick(object sender, EventArgs e) { try { int i = RadGrid1.SelectedItems[0].DataSetIndex - (this.RadGrid1.CurrentPageIndex * this.RadGrid1.PageSize); string IdContrato = RadGrid1.Items[i].GetDataKeyValue("IdContrato").ToString(); long id = Convert.ToInt64(IdContrato); //if ((from h in Contexto.HojasDeRuta // where h.CabeceraHojasDeRuta.ContratoEmpresas.Contrato.IdContrato == id // && h.HojaFechaAprobacion != null // select h).Count() > 0) //{ // string scriptstring = "radalert('<h4>No se puede eliminar el contrato porque tiene cargada infomacion en su hoja de ruta!</h4>', 330, 100, 'Contratos');"; // ScriptManager.RegisterStartupScript(this, this.GetType(), "radalert", scriptstring, true); // return; //} Entidades.Contrato _contrato = (from c in Contexto.Contrato .Include("ContratoEmpresas.CabeceraHojasDeRuta.HojasDeRuta") where c.IdContrato == id select c).First(); int j = _contrato.ContratoEmpresas.Count(); while (j > 0) { Entidades.ContratoEmpresas _ContratoEmpresas = _contrato.ContratoEmpresas.Take(1).First(); if (!_ContratoEmpresas.ComentariosGral.IsLoaded) { _ContratoEmpresas.ComentariosGral.Load(); } List <ComentariosGral> coment = _ContratoEmpresas.ComentariosGral.ToList(); foreach (ComentariosGral itemComent in coment) { Contexto.DeleteObject(itemComent); } if (!_ContratoEmpresas.Contrato.DatosDeSueldos.IsLoaded) { _ContratoEmpresas.Contrato.DatosDeSueldos.Load(); } List <DatosDeSueldos> infoSueldos = _ContratoEmpresas.Contrato.DatosDeSueldos.ToList(); foreach (DatosDeSueldos itemsueldo in infoSueldos) { Contexto.DeleteObject(itemsueldo); } 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--; } Contexto.DeleteObject(_CabeceraHojasDeRuta); j2--; } Contexto.DeleteObject(_ContratoEmpresas); j--; } Contexto.DeleteObject(_contrato); Contexto.SaveChanges(); this.CargarSessionContratos(); this.RadGrid1.Rebind(); } catch (Exception err) { string scriptstring = "radalert('<h4>" + err.InnerException.Message.Substring(0, 150) + "</h4>', 630, 100, 'Contratos');"; ScriptManager.RegisterStartupScript(this, this.GetType(), "radalert", scriptstring, true); } }
private void InsertContrato(GridEditFormInsertItem editedItem) { #region Genero el CONTRATO con los datos ingresado por el usuario long idCategoria_Ingresada = 0; GridEditManager editMan = editedItem.EditManager; string codigo_Ingresado = ((TextBox)editedItem.FindControl("TextBoxCodigo")).Text; string servicio_Ingresado = ((TextBox)editedItem.FindControl("TextBoxServicio")).Text; long idContratista_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("RadComboBoxContratista")).SelectedValue); long idTipoContrato_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboTipoContrato")).SelectedValue); long idContratadoPor_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboContratadoPor")).SelectedValue); DateTime fechaInicioContrato_Ingresado = DateTime.Parse((editedItem.FindControl("TextBoxFechaInicio") as TextBox).Text); DateTime fechaFinContrato_Ingresado = DateTime.Parse((editedItem.FindControl("TextBoxFechaVencimiento") as TextBox).Text); DateTime? fechaPorrogaContrato_Ingresado = null; if (((RadComboBox)editedItem.FindControl("cboCategoria")).SelectedValue != "") { idCategoria_Ingresada = long.Parse(((RadComboBox)editedItem.FindControl("cboCategoria")).SelectedValue); } if ((editedItem.FindControl("TextBoxProrroga") as TextBox).Text != "") { fechaPorrogaContrato_Ingresado = DateTime.Parse((editedItem.FindControl("TextBoxProrroga") as TextBox).Text); } if ((from c in Contexto.Contrato where c.Codigo == codigo_Ingresado.Trim() select c).Count() > 0) { string scriptstring = "radalert('<h4>No se puede crear el contrato ya que el nro del mismo ya existe!</h4>', 330, 100, 'Contratos');"; ScriptManager.RegisterStartupScript(this, this.GetType(), "radalert", scriptstring, true); return; } Entidades.Contrato _Contrato = new Entidades.Contrato(); _Contrato.Codigo = codigo_Ingresado; _Contrato.Servicio = servicio_Ingresado; _Contrato.FechaInicio = fechaInicioContrato_Ingresado; _Contrato.FechaVencimiento = fechaFinContrato_Ingresado; _Contrato.Contratadopor = Contexto.Clasificacion.Where(w => w.IdClasificacion == idContratadoPor_Ingresado).FirstOrDefault(); _Contrato.TipoContrato = Contexto.Clasificacion.Where(w => w.IdClasificacion == idTipoContrato_Ingresado).FirstOrDefault(); if (idCategoria_Ingresada > 0) { _Contrato.objCategoria = Contexto.Clasificacion.Where(w => w.IdClasificacion == idCategoria_Ingresada).FirstOrDefault(); } #endregion #region Genero el CONTRATO-EMPRESA con los datos ingresado por el usuario Entidades.ContratoEmpresas _ContEmp = new Entidades.ContratoEmpresas(); IEnumerable <KeyValuePair <string, object> > entityKeyValues = new KeyValuePair <string, object>[] { new KeyValuePair <string, object>("IdEmpresa", idContratista_Ingresado) }; EntityKey key = new EntityKey("EntidadesConosud.Empresa", entityKeyValues); Entidades.Empresa _emp = (Entidades.Empresa)Contexto.GetObjectByKey(key); _ContEmp.EsContratista = true; _ContEmp.Contrato = _Contrato; _ContEmp.Empresa = _emp; Contexto.AddObject("EntidadesConosud.ContratoEmpresas", _ContEmp); #endregion #region Genero el ENCABEZADO Y LAS HOJAS con los datos ingresado por el usuario DateTime FFin = DateTime.Now; if (_Contrato.Prorroga.HasValue) { FFin = _Contrato.Prorroga.Value; } else { FFin = _Contrato.FechaVencimiento.Value; } DateTime FechaInicio = new DateTime(_Contrato.FechaInicio.Value.Year, _Contrato.FechaInicio.Value.Month, 1); Helpers.GenerarHojadeRuta(Contexto, FechaInicio, FFin, _ContEmp); #endregion Contexto.SaveChanges(); CargarSessionContratos(); }
private void InsertContrato(GridEditFormInsertItem editedItem) { #region Genero el CONTRATO con los datos ingresado por el usuario GridEditManager editMan = editedItem.EditManager; string codigo_Ingresado = (editMan.GetColumnEditor("Codigo") as GridTextBoxColumnEditor).Text; string servicio_Ingresado = (editMan.GetColumnEditor("Servicio") as GridTextBoxColumnEditor).Text; long idContratista_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboContratista")).SelectedValue); long idTipoContrato_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboTipoContrato")).SelectedValue); long idContratadoPor_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboContratadoPor")).SelectedValue); long idCategoria_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboCategoria")).SelectedValue); long idArea_Ingresado = long.Parse(((RadComboBox)editedItem.FindControl("cboArea")).SelectedValue); string GestorNombre_Ingresado = ((TextBox)editedItem.FindControl("txtNombreGestor")).Text; string GestorEmail_Ingresado = ((TextBox)editedItem.FindControl("txtEmailGestor")).Text; string FiscalNombre_Ingresado = ((TextBox)editedItem.FindControl("txtNombreFiscales")).Text; string FiscalEmail_Ingresado = ((TextBox)editedItem.FindControl("txtEmailFiscales")).Text; DateTime fechaInicioContrato_Ingresado = DateTime.Parse((editedItem.FindControl("TextBoxFechaInicio") as TextBox).Text); DateTime fechaFinContrato_Ingresado = DateTime.Parse((editedItem.FindControl("TextBoxFechaVencimiento") as TextBox).Text); DateTime?fechaPorrogaContrato_Ingresado = null; if ((editedItem.FindControl("TextBoxProrroga") as TextBox).Text != "") { fechaPorrogaContrato_Ingresado = DateTime.Parse((editedItem.FindControl("TextBoxProrroga") as TextBox).Text); } Entidades.Contrato _Contrato = new Entidades.Contrato(); _Contrato.Codigo = codigo_Ingresado.Trim(); _Contrato.Servicio = servicio_Ingresado; _Contrato.FechaInicio = fechaInicioContrato_Ingresado; _Contrato.FechaVencimiento = fechaFinContrato_Ingresado; _Contrato.Contratadopor = idContratadoPor_Ingresado; _Contrato.TipoContrato = idTipoContrato_Ingresado; _Contrato.Categoria = idCategoria_Ingresado; _Contrato.Area = idArea_Ingresado; _Contrato.GestorNombre = GestorNombre_Ingresado; _Contrato.GestorEmail = GestorEmail_Ingresado; _Contrato.FiscalNombre = FiscalNombre_Ingresado; _Contrato.FiscalEmail = FiscalEmail_Ingresado; #endregion #region Genero el CONTRATO-EMPRESA con los datos ingresado por el usuario Entidades.ContratoEmpresas _ContEmp = new Entidades.ContratoEmpresas(); IEnumerable <KeyValuePair <string, object> > entityKeyValues = new KeyValuePair <string, object>[] { new KeyValuePair <string, object>("IdEmpresa", idContratista_Ingresado) }; EntityKey key = new EntityKey("EntidadesConosud.Empresa", entityKeyValues); Entidades.Empresa _emp = (Entidades.Empresa)Contexto.GetObjectByKey(key); _ContEmp.EsContratista = true; _ContEmp.Contrato = _Contrato; _ContEmp.Empresa = _emp; Contexto.AddObject("EntidadesConosud.ContratoEmpresas", _ContEmp); #endregion #region Genero el ENCABEZADO Y LAS HOJAS con los datos ingresado por el usuario DateTime FFin = DateTime.Now; if (_Contrato.Prorroga.HasValue) { FFin = _Contrato.Prorroga.Value; } else { FFin = _Contrato.FechaVencimiento.Value; } DateTime FechaInicio = new DateTime(_Contrato.FechaInicio.Value.Year, _Contrato.FechaInicio.Value.Month, 1); Helpers.GenerarHojadeRuta(Contexto, FechaInicio, FFin, _ContEmp); #endregion Contexto.SaveChanges(); CargarSessionContratos(); RadGrid1.Rebind(); }
protected void btnEliminar_Click(object sender, EventArgs e) { try { /// Logica: /// Dar la posibilidad de asignar y desadignar las empresas a un contrato haciendo que las hojas de ruta /// respondan a las fechas de ejecución de la accion: /// Asignacion: solo se dejan las hojas de ruta desde la fecha de sistema hasta la finalización del contratl. /// Desasignacion: se deben eliminar las hojas de ruta y sus relaciones desde el mes siguiente a la ejecución de dicha acción. Entidades.EntidadesConosud dcAux = new Entidades.EntidadesConosud(); foreach (GridDataItem item in gvSubContratistas.Items) { if ((item.FindControl("chkSeleccion") as CheckBox).Checked) { int año = txtFechaBaja.SelectedDate.Value.AddMonths(1).Year; int mes = txtFechaBaja.SelectedDate.Value.AddMonths(1).Month; DateTime fechaEliminacion = new DateTime(año, mes, 1, 0, 0, 0); long IdContratoEmpresas = long.Parse(gvSubContratistas.Items[item.DataSetIndex].GetDataKeyValue("IdContratoEmpresas").ToString()); List <Entidades.CabeceraHojasDeRuta> cabEliminar = (from C in dcAux.CabeceraHojasDeRuta where (C.Periodo >= fechaEliminacion) && C.ContratoEmpresas.IdContratoEmpresas == IdContratoEmpresas select C).ToList <Entidades.CabeceraHojasDeRuta>(); foreach (Entidades.CabeceraHojasDeRuta cab in cabEliminar) { long IdCabeceraEliminar = cab.IdCabeceraHojasDeRuta; /// Eliminacion de los legajos asociados var contratoLegajos = (from CL in dcAux.ContEmpLegajos where CL.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta == IdCabeceraEliminar select CL); foreach (ContEmpLegajos itemContLeg in contratoLegajos) { dcAux.DeleteObject(itemContLeg); } /// YA NO SE DEBERIAN BORRAR LOS COMENTARIO GENERALES /// YA QUE ES POSIBLE QUE QUEDEN HOJAS DE RUTA ANTERIORES /// AL MES ACTUAL. ///// Eliminacion de los comentarios generales asociados a la hoja de ruta //var ComentariosGrales = (from CL in dcAux.ComentariosGral // where CL.ContratoEmpresas.IdContratoEmpresas == IdContratoEmpresas // select CL); //foreach (ComentariosGral itemComent in ComentariosGrales) //{ // dcAux.DeleteObject(itemComent); //} // Eliminacion del contrato empresa dcAux.DeleteObject(cab); } dcAux.SaveChanges(); /// Si despues de eliminar las cabeceras seleccionadas, la empresa subcontratista /// se queda sin cabeceras, entoces borro el contrato de la misma, ya que no tiene /// sentido que siga asignado. List <Entidades.CabeceraHojasDeRuta> CabEliminar = (from C in dcAux.CabeceraHojasDeRuta where C.ContratoEmpresas.IdContratoEmpresas == IdContratoEmpresas select C).ToList <Entidades.CabeceraHojasDeRuta>(); if (CabEliminar.Count == 0) { // Eliminacion de los comentarios Generales var ComentariosGrales = (from CL in dcAux.ComentariosGral where CL.ContratoEmpresas.IdContratoEmpresas == IdContratoEmpresas select CL); foreach (ComentariosGral itemComent in ComentariosGrales) { dcAux.DeleteObject(itemComent); } // Eliminacion del contrato empresa Entidades.ContratoEmpresas ContratoEliminar = (from C in dcAux.ContratoEmpresas where C.IdContratoEmpresas == IdContratoEmpresas select C).FirstOrDefault(); dcAux.DeleteObject(ContratoEliminar); dcAux.SaveChanges(); } } } ScriptManager.RegisterStartupScript(Page, typeof(Page), "ocultar", "CloseWindows();", true); } catch { } }