clear
set more off

import delimited "text_2007.txt", encoding(utf8) delimiters(";")

* Merge all variables into a single one
gen a =  ""
foreach var of varlist v*{
replace a = a + " " + `var'
drop `var'
}
replace a = stritrim(strtrim(a))

egen filename = ends(a), punct("END_FILENAME") head
egen b = ends(a), punct("END_FILENAME") tail
drop a
ren b a

gen flag1 = strpos(a,"INFORMATION")
gen flag2 = strpos(a,"de la société") + length("de la société")
gen diff = flag2 - flag1

replace a = subinstr(a,substr(a,flag1,flag2-flag1),"TAG",1)
egen header = ends(a), punct("TAG") head
egen b = ends(a), punct("TAG") tail
drop a
ren b a

* Remove useless text
foreach expression in "LA PRESENTE DECLARATION N™A PAS FAIT L™OBJET D™UN CONTROLE DE L™AMF ET EST ETABLIE SOUS LA RESPONSABILITE EXCLUSIVE DU DECLARANT ." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informat ique, aux fichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accè s aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biai s de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informat ique, aux fichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accè s aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données nécessaires au traitement des courriers reçus par l™AMF sont enregistrées dans un fichier informatisé réservé à son usage exclusif pour l™a ccomplissement de ses missions. Les personnes physiques concernées peuvent exercer leur droit d™accès aux données et, le cas échéant, les faire rectifier en s™adressant à la Direction des Émetteurs de l'AMF." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informatique, aux fichie rs et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informat ique, aux fichiers et aux libertés, les personnesphysiques concernées peuvent exercer leur droit d™accè s aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informatique, aux fichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données nécessaires au traitement des courriers reçus par l™AMF sont enregistrées dans un fichier informatisé réservé à son usage exclusif pour l™a ccomplissement de ses missions. Les personnes physiquesconcernées peuvent exercer leur droit d™accès aux données et, le cas échéant, les faire rectifier en s™adressant à la Direction des Émetteurs de l'AMF." ///
					"Les données à caractère personnel collectées par le biai s de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informat ique, aux fichiers et aux libertés, les personnesphysiques concernées peuvent exercer leur droit d™accè s aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"suite à erreur dans la déclaration reçue" ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informatique, aux fichiers et aux libertés, les per sonnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier 1978 relative à l™informat ique, aux fichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accè s aux données, et le cas échéant, les faire rectifier en s™adressant à la Dirction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce fo rmulaire font l™objet d™un trai tement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la lo i n° 78-17 du 6 janvier 1978 relative à l™informatique, aux f ichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas échéant, les faire recti fier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel co llectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Confor mément à la loi n° 78-17 du 6 janvier 1978 relative à l™informatique, aux fichier s et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas échéant, les faire rectifier en s™adre ssant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformément à la loi n° 78-17 du 6 janvier1978 relative à l™informatique, aux fichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas échéant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce fo rmulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformé ment à la loi n° 78-17 du 6 janvier 1978 relative à l™informa tique, aux fichiers et aux libertés, les pers onnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas éché ant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF." ///
					"Les données à caractère personnel collectées par le biais de ce formulaire font l™objet d™un traitement informatique réservé à l™usage exclusif de l™AMF pour l™accomplissement de ses missions. Conformé ment à la loi n° 78-17 du 6 janvier 1978 relative à l™informa tique, aux fichiers et aux libertés, les personnes physiques concernées peuvent exercer leur droit d™accès aux données, et le cas éché ant, les faire rectifier en s™adressant à la Direction des Emetteurs à l™AMF."{
		replace a = subinstr(a,"`expression'","",1)
	}
*

/* 2007 */ drop if regexm(lower(a),"annulée et remplacée") // These documents simply signal that another document replaces a previous one
drop if regexm(header,"ANNULE")

replace a = subinstr(a,"F.MARC DE LACHARRIERE (FIMALAC) Rectificatif à INFORMATION 207D0885 en date du 13 février 2007 DECLARANT :","Rectificatif à INFORMATION 207D0885 en date du 13 février 2007 FIMALAC DECLARANT :",1) // Specific case for 2007

/* 2007 */ gen flag3 =  ustrpos(a,"2006",strpos(a,"en date")) if regexm(lower(a),"rectificatif") 
/* 2007 */ replace flag3 =  ustrpos(a,"2007",strpos(a,"en date")) if regexm(lower(a),"rectificatif") & (((ustrpos(a,"2007",strpos(a,"en date")) < flag3 ) & ustrpos(a,"2007",strpos(a,"en date")) != 0) | flag3 == 0)

gen correction = substr(a,1,flag3 + 5) if regexm(lower(a),"rectificatif")
replace a = subinstr(a,correction,"",1) if regexm(lower(a),"rectificatif")

replace a = subinstr(a,"DECLARANT : Personne liée à","Personne liée à",1) // Specific case for 2007
replace a = subinstr(a,"DECLARANT : Personnes liées à","Personnes liées à",1) // Specific case for 2007
replace a = subinstr(a,"DE LARANT","DECLARANT",1) // Specific case for 2007

/* 2007 */gen declarant = regexm(a,"DECLARANT")
replace a = subinstr(a,"DECLARANT","TAG",1) if declarant ==  1
replace a = subinstr(a,"TAG ET PERSONNE LIEE A","TAG",1) // Specific case for 2006 and 2007
replace a = subinstr(a,"TAG ET PERSONNES LIEES A","TAG",1) // Specific case for 2007

gen linked = 0
/* 2007 */ foreach expression in "PERSONNES LEES A" "PERSONNES LIEES A" "PERSONNES LIEES" "PERSONNES LIEE A" "PERSONNEE LIEE A" ///
						"Personnes liées à" "Personne liée à" "SOCIETE LIEE A" ///
						"PERSONNE LIEE A" "PERSONNE LIEE" "PERSONNE LIÉE A"{
	replace linked = 1 if regexm(a,"`expression'")
	replace a = subinstr(a,"`expression'","TAG",1)
	}
*
 
tab linked declarant // Diagonal must be 0-0

egen company_name = ends(a), punct("TAG") head
egen b = ends(a), punct("TAG") tail
drop a
ren b a

egen people = ends(a), punct("INSTRUMENT FINANCIER") head
egen b = ends(a), punct("INSTRUMENT FINANCIER") tail
drop a
ren b a

egen instrument = ends(a), punct("NATURE DE L™OPÉRATION") head
egen b = ends(a), punct("NATURE DE L™OPÉRATION") tail
drop a
ren b a

egen operation = ends(a), punct("DATE DE L™OPÉRATION") head
egen b = ends(a), punct("DATE DE L™OPÉRATION") tail
drop a
ren b a

egen transactiondate = ends(a) if regexm(a,"DATE DE RECEPTION DE LA DECLARATION"), punct("DATE DE RECEPTION DE LA DECLARATION") head
egen transactiondate2 = ends(a) if ~regexm(a,"DATE DE RECEPTION DE LA DECLARATION"), punct("LIEU DE L™OPÉRATION") head
egen b = ends(a) if regexm(a,"DATE DE RECEPTION DE LA DECLARATION"), punct("DATE DE RECEPTION DE LA DECLARATION") tail
egen b2 = ends(a) if ~regexm(a,"DATE DE RECEPTION DE LA DECLARATION"), punct("LIEU DE L™OPÉRATION") tail

egen receptiondate = ends(b) if transactiondate != "" , punct("LIEU DE L™OPÉRATION") head
egen b3 = ends(b) if transactiondate != "", punct("LIEU DE L™OPÉRATION") tail
replace a = b2 if b2 != ""
replace a = b3 if b3 != ""

replace transactiondate = transactiondate2 if transactiondate == ""
drop b b2 b3 transactiondate2

egen market = ends(a) if regexm(a,"PRIX UNITAIRE"), punct("PRIX UNITAIRE") head
egen b = ends(a) if ~regexm(a,"PRIX UNITAIRE"), punct("PARITE DE L™ECHANGE") head
replace market = b if market == "" & b != ""
drop b

egen c = ends(a) if regexm(a,"PRIX UNITAIRE"), punct("PRIX UNITAIRE") tail
egen c2 = ends(a) if ~regexm(a,"PRIX UNITAIRE"), punct("PARITE DE L™ECHANGE") tail
drop a
ren c a
replace a = c2 if c2 != "" & a == ""
drop c2

replace a = subinstr(a,"MONTANT DE L™OPÉRATION","MONTANT DE L™OPERATION",.)

egen price = ends(a), punct("MONTANT DE L™OPERATION") head
egen b = ends(a), punct("MONTANT DE L™OPERATION") tail
drop a
ren b a

gen amount = a if ~regexm(a,"PRIX UNITAIRE")
replace a = "" if ~regexm(a,"PRIX UNITAIRE")

/* 2007 */
*******************************************************
replace amount = "1 222 511,40 •" if regexm(header,"207D7151")
replace amount = "1 781 491 •" if regexm(header,"207D6396")
replace amount = "1 703 279,20 •" if regexm(header,"207D4470")
replace amount = "4 295 499 •" if regexm(header,"207D2160")
replace amount = "1 638 000 •" if regexm(header,"207D0134")

replace price = "1,2 •" if regexm(header,"207D5085")
replace price = "11,50 •" if regexm(header,"207D5086")

egen c = ends(price), punct("cours de cl") head
replace price = c if price != c

replace price = "92,71$" if regexm(header,"207D2514")
replace price = "92,5$" if regexm(header,"207D2513")
*******************************************************

ren transactiondate transactiondate_1

keep filename header correction declarant linked company_name people instrument operation transactiondate_* receptiondate market price* amount*

* Variable: market
replace market = stritrim(strtrim(subinstr(market,":","",.)))
replace market = "Nasdaq Stock Market" if regexm(lower(market),"nasdaq")
replace market = "Bourse du Luxembourg" if regexm(market,"Luxembourg")
replace market = "Bourse de Madrid" if regexm(market,"Madrid")
replace market = "Euronext Bruxelles" if regexm(market,"Bruxelles")
replace market = "Euronext Amsterdam" if regexm(market,"Amsterdam")
replace market = "Los Angeles Stock Exchange" if regexm(lower(market),"californie") | regexm(lower(market),"los angeles")
replace market = "Houston Stock Exchange" if regexm(lower(market),"houston")
replace market = "New York Stock Exchange" if regexm(lower(market),"etats") // Assume US is New York (6 observations in 2007)
replace market = "Virt-X (virtual exchange)" if regexm(lower(market),"virt-x")
replace market = "Hors marché" if regexm(lower(market),"hors marché") | regexm(lower(market),"non applicable") | regexm(lower(market),"inscription") | regexm(lower(market),"transfert") | regexm(lower(market),"portzamparc") | regexm(lower(market),"hartford")
replace market = "Euronext Paris" if regexm(lower(market),"paris")

* Variable: currency
gen currency = "USD" if regexm(price,"\\$") & ~regexm(price,"•")
replace currency = "EUR" if ~regexm(price,"\\$") & (regexm(price,"•") | regexm(amount,"•")) 
replace currency = "MAD" if (regexm(price,"MAD") | regexm(amount,"MAD")) & currency == ""
count if currency == "" // Should return 0, except special cases (exchange of stocks etc.)
 
* Variable: instrument
replace instrument = "Actions" if regexm(lower(instrument),"action")
replace instrument = "Autre" if instrument != "Actions"
 
* Variable: operation
*Let us treat options separetley, for example "achats d'options de vente" ou "achat d'options d'achat"

replace operation = "Cession" if inlist(filename, "207D0866.pdf", "207D1914.pdf", "207D2142.pdf", "207D6146.pdf")   
replace operation = "Autre" if inlist(filename, "207D1589.pdf", "207D1590.pdf", "207D0867.pdf", "207D1915.pdf", "207D2141.pdf", "207D2690.pdf", "207D6147.pdf") 
/*
207D0866.pdf	: Acquisition d™options de vente (put)
207D0867.pdf	: Cession d™options d™achat (call)
207D1589.pdf	: Opération de couverture de stock-options : tunnel
207D1590.pdf	: Opération de couverture de stock-options : tunnel
207D1914.pdf	: Acquisition d™options de vente
207D1915.pdf	: Cession d™options d™achat
207D2141.pdf	: Cession d™options d™achat (call) à échéance du 29 juin 2007
207D2142.pdf	: Acquisition d™options de vente (put) à échéance du 29 juin 2007
207D2690.pdf	: Cession à terme de 300 000 actions avec option de livraison en espèces à échéance 31 mars 2008
207D6146.pdf	: Acquisition d™options de vente
207D6147.pdf	: Cession d™options d™achat
*/

replace operation = "Autre" if regexm(lower(operation),"autres types")
replace operation = "Autre" if regexm(lower(operation),"option")
replace operation = "Autre" if regexm(lower(operation),"suite à fusion par absorption")
replace operation = "Autre" if regexm(lower(operation),"l'offre publique d'achat")
replace operation = "Autre" if regexm(lower(operation),"augmentation de capital")

replace operation = "Acquisition" if regexm(lower(operation),"acquisition") | regexm(lower(operation),"aquisition")
replace operation = "Echange" if regexm(lower(operation),"echange")
replace operation = "Echange" if regexm(lower(operation),"transfert")
replace operation = "Souscription" if regexm(lower(operation),"souscriptio")
replace operation = "Autre" if regexm(lower(operation),"annulation")
replace operation = "Autre" if regexm(lower(operation),"résiliation") | regexm(lower(operation),"remboursement") | regexm(lower(operation),"couverture")
replace operation = "Cession" if regexm(lower(operation),"cession") | regexm(lower(operation),"vente") | regexm(lower(operation),"donation")
replace operation = "Cession" if regexm(lower(operation),"levée")
replace operation = "Acquisition" if regexm(lower(operation),"achat")
replace operation = "Acquisition" if regexm(lower(operation),"apport")
replace operation = "Distribution" if regexm(lower(operation),"attribution") | regexm(lower(operation),"distribution")

* Variable: price
foreach expression in "(1)" "(2)" "(3)" ":" "•" "$" "US" "MAD"{
foreach var of varlist price*{
replace `var' = subinstr(`var',"`expression'","",.)
}
}

replace price = "10,40" if regexm(header,"207D0134")
replace price = "0,22" if regexm(header,"207D4823")
replace price = "13,41" if regexm(header,"207D2515")
replace price = "29,70" if regexm(header,"207D3497")
replace price = "36,34" if regexm(header,"207D2612")
replace price = "38,7567" if regexm(header,"207D2793")
replace price = "76" if regexm(header,"207D3587")
replace price = "80,23" if regexm(header,"207D3688")
replace price = "80,89" if regexm(header,"207D3081")
replace price = "82,718" if regexm(header,"207D2702")
replace price = "82,81" if regexm(header,"207D2703")
replace price = "82,98" if regexm(header,"207D3581")
replace price = "83,17" if regexm(header,"207D2891")
replace price = "84,13" if regexm(header,"207D2687")
replace price = "90,215" if regexm(header,"207D6929")

foreach var of varlist price*{
gen `var'_num = real(subinstr(subinstr(`var'," ","",.),",",".",.))
drop `var'
ren `var'_num `var'
}
ren price price_1

* Variable: amount
foreach var of varlist amount*{
foreach expression in "(1)" "(2)" "(3)" ":" "•" "$" "US" "ç" "MAD"{
replace `var' = subinstr(`var',"`expression'","",.)
}
replace `var' = subinstr(`var',`"""',"",.)
}

replace amount = "206 700 000" if regexm(header,"207D0295") 
replace amount = "225 000 000" if regexm(header,"207D6349") 
replace amount = "591 500 000" if regexm(header,"207D0133")
replace amount = "7 000 000" if regexm(header,"207D1135")

foreach var of varlist amount*{
gen `var'_num = real(subinstr(subinstr(`var'," ","",.),",",".",.))
drop `var'
ren `var'_num `var'
}
ren amount amount_1

* Variable: correction
egen a = ends(correction), punct("INFORMATION") tail
egen b = ends(a), punct("en date") head
drop a correction
ren b correction
replace correction = "207D4343" if regexm(correct,"RALLYE 207D4343")
replace correction = stritrim(strtrim(correction))
replace correction = substr(correction,1,8)

* Variable: company_name
replace company = subinstr(company,":","",.)
replace company = subinstr(company,`"™"',"'",.)
replace company = subinstr(company,"+","",.)
replace company = stritrim(strtrim(company))

* Variables: datereleased isin id_doc
replace header = stritrim(strtrim(header))
foreach expression in "A "{
replace header = subinstr(header,"`expression'","",1) if substr(header,1,length("`expression'")) == "`expression'"
}
replace header = stritrim(strtrim(header))

egen id_doc = ends(header), punct(" ") head
egen a = ends(header), punct(" ") tail

replace a = subinstr(a,"- ","-",1)
replace a = subinstr(a,"FR ","FR",1)

egen isin = ends(a), punct("-") head
egen datereleased = ends(a), punct(" ") tail

replace datereleased = stritrim(strtrim(lower(datereleased)))

replace isin = "" if length(isin)> 15

* Variable: transactiondate_1 receptiondate transactiondate_2 transactiondate_3
foreach var of varlist transactiondate receptiondate{
replace `var' = stritrim(strtrim(subinstr(`var',":","",.)))
}

replace transactiondate_1 = "3 janvier 2007" if regexm(header,"207D0133")
replace transactiondate_1 = "27 avril 2007" if regexm(header,"207D2571")
replace transactiondate_1 = "23 février 2007"  if regexm(header,"207D1389") | regexm(header,"207D1388")

* Variables: people_ status_
egen temp = ends(people), punct("ée à") tail
replace people = temp if temp != ""
drop temp

egen temp = ends(people), punct("ées à") tail
replace people = temp if temp != ""
drop temp

replace people = stritrim(strtrim(subinstr(people,":","",.)))

********************************************************************************
* Lines 325 to 334
* 30 anonymised corrections
*
*
*
*
*
*
********************************************************************************

egen people_1 = ends(people), punct(",") head
egen b = ends(people), punct(",") tail
order a b
drop a
egen a = ends(b), punct(",") head
drop b

replace a = "Membre du Conseil d'administration" if regexm(lower(a),"président") & regexm(lower(a),"général") & regexm(lower(a),"banque")
replace a = "Président Directeur général" if (regexm(lower(a),"prés") & (regexm(lower(a),"général") | regexm(lower(a),"énér"))) | (regexm(lower(a),"chairman") & regexm(lower(a),"execu"))
replace a = "Directeur général" if (regexm(lower(a),"direc") & regexm(lower(a),"ral") & ~regexm(lower(a),"pré")) | (regexm(lower(a),"ecteur") & regexm(lower(a),"ral"))
replace a = "(Vice-)Président du directoire" if (regexm(lower(a),"pré") |regexm(lower(a),"ésident")) & regexm(lower(a),"irectoire")
replace a = "(Vice-)Président du Conseil de surveillance" if regexm(lower(a),"surveill") & regexm(lower(a),"prési")
replace a = "Membre du Conseil de surveillance" if regexm(lower(a),"surveill") & ~regexm(lower(a),"prési")
replace a = "Directeur" if ((regexm(lower(a),"directeur") | regexm(lower(a),"directrice")) & ~regexm(lower(a),"général")) | (regexm(lower(a),"ector") | (regexm(lower(a),"ecteur") & ~regexm(lower(a),"ral")))
replace a = "Membre du Conseil d'administration" if regexm(lower(a),"représentant")
replace a = "Membre du Conseil d'administration" if (regexm(lower(a),"memb") & regexm(lower(a),"admi")) | (regexm(lower(a),"admin") & regexm(lower(a),"teu")) | (regexm(lower(a),"administrate")) | (regexm(lower(a),"admnistrateur"))
replace a = "Membre du Directoire" if (regexm(lower(a),"memb") | regexm(lower(a),"mbre")) & regexm(lower(a),"oire")
replace a = "Membre du Conseil d'administration" if regexm(lower(a),"admi") & regexm(lower(a),"teur")
replace a = "Gérant" if regexm(lower(a),"gérant") | regexm(lower(a),"commandité")
replace a = "Associé" if regexm(lower(a),"associé")
replace a = "Dirigeant" if regexm(lower(a),"fonc") & regexm(lower(a),"rigeant")
replace a = "Président d'Honneur" if regexm(lower(a),"honneur")
replace a = "(Vice-)Président du Conseil d'administration" if regexm(lower(a),"prési") & regexm(lower(a),"admin")
replace a = "Président Directeur général" if regexm(lower(a),"pres") & regexm(lower(a),"chief")
replace a = "(Vice-)Président du Conseil d'administration" if regexm(lower(a),"chairman") | regexm(lower(a),"presi")
replace a = "Actionnaire" if regexm(lower(a),"action")
replace a = "Directeur général" if regexm(lower(a),"chief")
replace a = "Membre du Comité exécutif" if regexm(lower(a),"exé")
replace a = "Membre du Comité stratégique" if regexm(lower(a),"egic")
replace a = "Membre du Comité de direction" if regexm(lower(a),"ection") & ~regexm(lower(a),"collab")
replace a = "(Vice-)Président du Conseil d'administration" if (regexm(lower(a),"senior")) | (regexm(lower(a),"sident") & ~regexm(lower(a),"conseil") & ~regexm(lower(a),"rect") & ~regexm(lower(a),"honneur"))
replace a = "Membre du Conseil d'administration" if regexm(lower(a),"siège") | a == " Membre du Conseil"
replace a = "Directeur général" if regexm(lower(a),"énéral dé") | regexm(lower(a),"dga") | regexm(lower(a),"corporate fi") | regexm(lower(a),"éral fi")
replace a = "Autre" if regexm(lower(a),"responsable") | regexm(lower(a),"auto") | regexm(lower(a),"collab") | regexm(lower(a),"conseiller") | regexm(lower(a),"ité des opéra") | regexm(lower(a),"tratrice") | regexm(lower(a),"chercheur") | regexm(lower(a),"cadre dirigeant")
replace a = "Censeur" if regexm(lower(a),"censeur")
replace a = "Secrétaire Général" if regexm(lower(a),"secrétaire général")
replace a = "Membre du Comité stratégique" if regexm(lower(a),"gique")
replace a = "Membre du Conseil d'administration" if regexm(lower(a),"board member")
replace a = "Directeur" if regexm(a,"teu r Marketing et Strat") | regexm(a,"Executive VP sales") 
replace a = "Membre du Conseil d'administration" if (regexm(lower(a),"admin") & ~regexm(lower(a),"ési")) | (regexm(lower(a),"minis") & regexm(lower(a),"membre"))  | (regexm(lower(a),"bureau") & regexm(lower(a),"membre"))
replace a = "(Vice-)Président du Conseil d'administration" if (regexm(lower(a),"admin") & regexm(lower(a),"ési")) | regexm(lower(a),"evp klm") | regexm(lower(a),"svp")
replace a = "Membre du Comité de direction" if regexm(lower(a),"mité") & regexm(lower(a),"rec")
replace a = "Membre du Comité stratégique" if regexm(lower(a),"mité") & regexm(lower(a),"groupe")
replace a = "Membre du Management board" if regexm(lower(a),"management board")

forvalues i = 2(1)6{
gen people_`i' = ""
gen status_`i' = ""
}

* Special cases

********************************************************************************
* Lines 388 to 537
* 144 anonymised corrections
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
********************************************************************************

replace a = "" if substr(a,1,1) == " "

ren a status_1

forvalues i = 2(1)6{
local j = `i' - 1 
replace status_`i' = status_`j' if status_`i' == "" & status_`j' != "" & people_`i' != ""
}

* Order and reorganize variables
********************************

drop header people

order filename id_doc correction isin company_name declarant linked people_* status_* ///
	  receptiondate datereleased transactiondate_1 ///
	  instrument operation* market currency price_1

foreach var of varlist *{
capture confirm string var `var'
if _rc==0 {
replace `var' = stritrim(strtrim(`var'))
}
}

* Saving
********
compress
save "clean/temp_2007", replace
