public bool ingresaPersonaFamilia(List <clsasignarfamilia> lista, clsRepresentante repre) { using (TransactionScope trans = new TransactionScope()) { try { REPRESENTANTE r = new REPRESENTANTE(); r.IDPERSONA = repre.IDPERSONA; bd.REPRESENTANTE.InsertOnSubmit(r); bd.SubmitChanges(); PERIODO actualFamilia = new PERIODO(); actualFamilia.FECHAINICIOPERIODO = DateTime.Now; actualFamilia.IDTIPOPERIODO = 2; actualFamilia.NOMBREPERIODO = "NOMBRE"; bd.PERIODO.InsertOnSubmit(actualFamilia); bd.SubmitChanges(); PERSONA_FAMILIA pf = new PERSONA_FAMILIA(); pf.IDFAMILIA = lista.First().CodigoFamilia; PERIODO_PERSONA_FAMILIA ppf = new PERIODO_PERSONA_FAMILIA(); ppf.IDFAMILIA = lista.First().CodigoFamilia; ppf.IDPERIODO = actualFamilia.IDPERIODO; foreach (clsasignarfamilia relacion in lista) { pf.IDPERSONA = relacion.CodigoPersona; bd.PERSONA_FAMILIA.InsertOnSubmit(pf); bd.SubmitChanges(); ppf.IDPERSONA = relacion.CodigoPersona; if (ppf.IDPERSONA == repre.IDPERSONA) { ppf.REPRESENTANTE = true; } else { ppf.REPRESENTANTE = false; } bd.PERIODO_PERSONA_FAMILIA.InsertOnSubmit(ppf); bd.SubmitChanges(); } trans.Complete(); return(true); } catch (Exception ex) { return(false); } finally { clsConexion.cerrarConexion(); } } }
public bool modificarMiembrosFamilia(List <clsasignarfamilia> nuevaLista, clsRepresentante objRepresentante) { nuevaLista = nuevaLista.Distinct().ToList(); try { using (TransactionScope trans = new TransactionScope()) { bool existe = bd.REPRESENTANTE.Any(r => r.IDPERSONA == objRepresentante.IDPERSONA); if (!existe) { REPRESENTANTE nuevoRep = new REPRESENTANTE(); nuevoRep.IDPERSONA = objRepresentante.IDPERSONA; bd.REPRESENTANTE.InsertOnSubmit(nuevoRep); bd.SubmitChanges(); } PERIODO anterior = bd.PERIODO_PERSONA_FAMILIA.Where(ppf => ppf.IDFAMILIA == nuevaLista.First().CodigoFamilia&& ppf.PERIODO.ESTADOPERIODO == true && ppf.PERIODO.IDTIPOPERIODO == 2).Select(ppf => ppf.PERIODO).First(); anterior.FECHAFINPERIODO = DateTime.Now; anterior.ESTADOPERIODO = false; bd.SubmitChanges(); PERIODO nuevoPeriodo = new PERIODO(); nuevoPeriodo.ESTADOPERIODO = true; nuevoPeriodo.IDTIPOPERIODO = 2; nuevoPeriodo.FECHAINICIOPERIODO = DateTime.Now; nuevoPeriodo.NOMBREPERIODO = nuevaLista.Select(n => n.NombreFamilia).First().ToUpper() + " - " + nuevoPeriodo.FECHAINICIOPERIODO.ToString().ToUpper(); bd.PERIODO.InsertOnSubmit(nuevoPeriodo); bd.SubmitChanges(); foreach (clsasignarfamilia relacion in nuevaLista) { if (!bd.PERSONA_FAMILIA.Any(pf => pf.IDPERSONA == relacion.CodigoPersona && pf.IDFAMILIA == relacion.CodigoFamilia)) { PERSONA_FAMILIA nuevaPF = new PERSONA_FAMILIA(); nuevaPF.IDFAMILIA = relacion.CodigoFamilia; nuevaPF.IDPERSONA = relacion.CodigoPersona; bd.PERSONA_FAMILIA.InsertOnSubmit(nuevaPF); } PERIODO_PERSONA_FAMILIA nuevaPPF = new PERIODO_PERSONA_FAMILIA(); nuevaPPF.IDPERSONA = relacion.CodigoPersona; nuevaPPF.IDFAMILIA = relacion.CodigoFamilia; nuevaPPF.IDPARENTEZCO = relacion.CodigoParentezco; nuevaPPF.IDPERIODO = nuevoPeriodo.IDPERIODO; if (relacion.CodigoPersona == objRepresentante.IDPERSONA) { nuevaPPF.REPRESENTANTE = true; } else { nuevaPPF.REPRESENTANTE = false; } if (!bd.PERIODO_PERSONA_FAMILIA.Any(p => p.IDFAMILIA == nuevaPPF.IDFAMILIA && p.IDPERSONA == nuevaPPF.IDPERSONA && p.IDPERIODO == nuevaPPF.IDPERIODO)) { bd.PERIODO_PERSONA_FAMILIA.InsertOnSubmit(nuevaPPF); } bool esMenor = bd.MENOREDAD.Any(men => men.IDPERSONA == relacion.CodigoPersona); if (esMenor) { MENOREDAD menor = bd.MENOREDAD.Where(men => men.IDPERSONA == relacion.CodigoPersona).First(); menor.IDREPRESENTANTE = bd.REPRESENTANTE.Where(rep => rep.IDPERSONA == objRepresentante.IDPERSONA).First().IDREPRESENTANTE; } } bd.SubmitChanges(); trans.Complete(); return(true); } } catch (Exception ex) { return(false); } }