Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mapping pedigrees to Family Tree Maker #43

Open
RyanONeill1970 opened this issue Mar 6, 2017 · 2 comments
Open

Mapping pedigrees to Family Tree Maker #43

RyanONeill1970 opened this issue Mar 6, 2017 · 2 comments
Assignees
Labels

Comments

@RyanONeill1970
Copy link
Member

FTM uses _FREL and _MREL instead of the standard PEDI pedigree tags. When loaded and resaved this causes the new file to fail the content comparison tests as we have inferred 'Birth' as the pedigree but not written it out to the new file.

This issues occurs on the FAM record type and a test case file is available at FTM-pedigree-mapping.ged

@RyanONeill1970 RyanONeill1970 self-assigned this Mar 6, 2017
RyanONeill1970 added a commit that referenced this issue Mar 6, 2017
Include spouse sealing in record rewriter tests for #2.
Split new test file out for child pedigree for #43.
RyanONeill1970 added a commit that referenced this issue Mar 6, 2017
* Empty test class and test data for spouse sealing.

* New (obscure) record type can now be imported / exported (LDS Spouse Sealing)
Closes #2

* Tidy up copyright notices.

* Fix missing repo record from GEDCOM test file for #2.

* Add missing equivalence checks for GedcomAddress.

* Rename spouse sealing test data to split out for issue #42.
Include spouse sealing in record rewriter tests for #2.
Split new test file out for child pedigree for #43.
@kman73
Copy link

kman73 commented Apr 13, 2023

Multipart fix:

  1. In GedcomRecordReader ReadGedcom above line 378:

`// set pedigree here to allow for ADOP/FOST in the FAM tag
// FAM record overrides link status if they differ
famLink.Pedigree = family.GetLinkageType(childID);
famLink.FatherPedigree = family.GetHusbandLinkageType(childID);
famLink.MotherPedigree = family.GetWifeLinkageType(childID);

// handles proper assigning of pedigree
if(famLink.FatherPedigree == PedegreeLinkageType.Birth && famLink.MotherPedigree == PedegreeLinkageType.Birth)
{
famLink.Pedigree = PedegreeLinkageType.Birth;
}
else if (famLink.FatherPedigree == PedegreeLinkageType.Adopted && famLink.MotherPedigree == PedegreeLinkageType.Birth)
{
famLink.Pedigree = PedegreeLinkageType.FatherAdopted;
}
else if (famLink.FatherPedigree == PedegreeLinkageType.Birth && famLink.MotherPedigree == PedegreeLinkageType.Adopted)
{
famLink.Pedigree = PedegreeLinkageType.MotherAdopted;
}
else if (famLink.FatherPedigree == PedegreeLinkageType.Adopted && famLink.MotherPedigree == PedegreeLinkageType.Adopted)
{
famLink.Pedigree = PedegreeLinkageType.Adopted;
}
else if (famLink.FatherPedigree == PedegreeLinkageType.Foster && famLink.MotherPedigree == PedegreeLinkageType.Foster)
{
famLink.Pedigree = PedegreeLinkageType.Foster;
}`

  1. In GedcomFamilyLink line 97:

//remove/quote out the mother/father pedigree setting
public PedegreeLinkageType Pedigree { get { return _Pedigree; } set { if (value != _Pedigree) { _Pedigree = value; //FatherPedigree = value; <- these was causing Unknown entries //MotherPedigree = value; Changed(); } } }

  1. In GedcomFamilyRecord line 1111:

//This will output FTM standard

// only output _FREL / _MREL value here, // real PEDI goes on the FAMC on the INDI tag GedcomFamilyLink link = null; if (child.ChildInFamily(_XrefID, out link)) { switch (link.Pedigree) { case Gedcom.PedegreeLinkageType.Birth: sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_FREL Natural"); sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_MREL Natural"); break; case Gedcom.PedegreeLinkageType.FatherAdopted: sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_FREL Adopted"); sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_MREL Natural"); break; case Gedcom.PedegreeLinkageType.MotherAdopted: sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_FREL Natural"); sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_MREL Adopted"); break; case Gedcom.PedegreeLinkageType.Adopted: sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_FREL Adopted"); sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_MREL Adopted"); break; case Gedcom.PedegreeLinkageType.Unknown: sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_FREL Unknown"); sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_MREL Unknown"); break; case Gedcom.PedegreeLinkageType.Foster: sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_FREL Foster"); sw.Write(Environment.NewLine); sw.Write(levelPlusTwo); sw.Write("_MREL Foster"); break; } }

@RyanONeill1970
Copy link
Member Author

Thank you, I'll have a look at merging this in at some point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants