func NewInactiveDonors(p P) *E {
	e := NewSupporter(p)

	//Salsa gets confused with the contents of the "&include=" in selective places.
	//This is one of those times.
	e.DisableInclude = true

	//The table is a join between donations and supporters.
	e.TableName = "supporter(supporter_KEY)donation"

	//The output filename needs to change to protect existing supporter records.
	//Not really.  It just makes accounting easier.
	e.CsvFilename = "inactive_donors.csv"

	//We are counting donations.
	e.CountTableName = "donation"

	//Add a  condition that looks for inactive supporters.
	c := e.Conditions
	c = append(c, "supporter.Receive_Email<1")

	//Add a condition that looks for valid donations.
	c = append(c, "donation.RESULT IN 0,-1")

	e.Conditions = c
	return e
}
//NewInactiveDonors instantiates an envionrment to copy inactive supporters with
//donation history to CSV files.  Inctive supporters have a good email address but
//have either opted out or been opted out (i.e. Receive_Email < 1).  Processing uses
//the donation table as a guide to find inactive supporters.
NewInactiveDonors instantiates an envionrment to copy inactive supporters with
donation history to CSV files.  Inctive supporters have a good email address but
have either opted out or been opted out .  Processing uses
the donation table as a guide to find inactive supporters.
// NewInactiveDonors instantiates an envionrment to copy inactive supporters with // donation history to CSV files . Inctive supporters have a good email address but // have either opted out or been opted out ( i . e . Receive_Email < 1 ) . Processing uses // the donation table as a guide to find inactive supporters .
func NewInactiveDonors(p P) *E {
	e := NewSupporter(p)
	e.DisableInclude = true
	e.TableName = "supporter(supporter_KEY)donation"
	e.CsvFilename = "inactive_donors.csv"
	e.CountTableName = "donation"
	c := e.Conditions
	c = append(c, "supporter.Receive_Email<1")
	c = append(c, "donation.RESULT IN 0,-1")
	e.Conditions = c
	return e
}
func NewInactiveDonors ( p P ) * E { e := NewSupporter ( p ) e . DisableInclude = true e . TableName = " " e . CsvFilename = " " e . CountTableName = " " c := e . Conditions c = append ( c , " " ) c = append ( c , " " ) e . Conditions = c return e }
NewInactiveDonors instantiates an envionrment to copy inactive supporters with
donation history to CSV files.
NewInactiveDonors instantiates an envionrment to copy inactive supporters with donation history to CSV files .
//Salsa gets confused with the contents of the "&include=" in selective places. //This is one of those times. //The table is a join between donations and supporters. //The output filename needs to change to protect existing supporter records. //Not really.  It just makes accounting easier. //We are counting donations. //Add a  condition that looks for inactive supporters. //Add a condition that looks for valid donations.