Compare commits

...

No commits in common. "1.0" and "1.1" have entirely different histories.
1.0 ... 1.1

792 changed files with 140489 additions and 323601 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,488 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2013 rel. 2 sp2 (http://www.altova.com) by Roux (DIR. INFO LEGALE ADMINISTRATIVE) -->
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction Journaux Officiels) -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- Version V01 du 10/06/08 -->
<!-- Version V02 du 18/07/2008 adresse et depot passé en optionnel pour les annulation. -->
<!-- Version V03 du 15/04/2010 prise en compte du nouveau numéro de département de la Mayotte (976) -->
<!-- Version V06 du 8/04/2014 prise en compte du nouveau champ descriptif -->
<!-- ********************************************************************************************************************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Bilan_XML_Rediff">
<xs:annotation>
<xs:documentation>Composant Annonce Modifications générales et Radiation pour les Reffuseurs</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="parution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numero de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="listeAvis">
<xs:complexType>
<xs:sequence>
<xs:element name="avis" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="typeAnnonce">
<xs:annotation>
<xs:documentation>Type de l'annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="annonce">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="rectificatif">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="annulation">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="nojo">
<xs:annotation>
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroAnnonce">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Num_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroDepartement" type="Departement_Type">
<xs:annotation>
<xs:documentation>N° de département du Greffe</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tribunal" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Code Greffe qui a procédé à l'avis -</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numeroImmatriculation">
<xs:complexType>
<xs:sequence>
<xs:element name="numeroIdentificationRCS">
<xs:annotation>
<xs:documentation>N° d'identification au format NNN NNN NNN </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:length value="11"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeRCS">
<xs:annotation>
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:length value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
<xs:annotation>
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="denomination" type="NomDenomination_Type">
<xs:annotation>
<xs:documentation>Dénomination</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Sigle</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="formeJuridique" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="adresse" minOccurs="0">
<xs:annotation>
<xs:documentation>Adresse</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="france" type="AdresseFrance_Type">
<xs:annotation>
<xs:documentation>Adresse en France de la société </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="etranger" type="AdresseEtranger_Type">
<xs:annotation>
<xs:documentation>Adresse à l'étranger</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="depot" type="Depot_Type" minOccurs="0"/>
<xs:element name="parutionAvisPrecedent" minOccurs="0">
<xs:annotation>
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nomPublication" type="Alpha_Type"/>
<xs:element name="numeroParution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numéro de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numeroAnnonce" type="Num_Type">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- date -->
<xs:simpleType name="Date_Type">
<xs:annotation>
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="....-..-.."/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateHeure_Type">
<xs:annotation>
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime">
<xs:pattern value="....-..-..T..:..:.."/>
</xs:restriction>
</xs:simpleType>
<!-- string -->
<xs:simpleType name="Alpha_Type">
<xs:annotation>
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AlphaNum_Type">
<xs:annotation>
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
</xs:restriction>
</xs:simpleType>
<!-- number -->
<xs:simpleType name="Num_Type">
<xs:annotation>
<xs:documentation>type N : tous les chiffres</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\d]*"/>
</xs:restriction>
</xs:simpleType>
<!-- technique -->
<xs:simpleType name="NomDenomination_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sigle_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:length value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Departement_Type">
<xs:annotation>
<xs:documentation>code département</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="2"/>
<xs:maxLength value="3"/>
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NumeroGreffe_Type">
<xs:annotation>
<xs:documentation>code Greffe</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:minLength value="4"/>
<xs:maxLength value="6"/>
<xs:pattern value="\d{4,5}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomGreffe_Type">
<xs:annotation>
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Parution_Type">
<xs:restriction base="Num_Type">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AdresseEtranger_Type">
<xs:sequence>
<xs:element name="adresse">
<xs:annotation>
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pays" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom du pays</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AdresseFrance_Type">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Numéro de la voie
Ex : 4</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="typeVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Type de la voie
Ex : rue</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom de la voie
Ex : d'Enfer</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="complGeographique" minOccurs="0">
<xs:annotation>
<xs:documentation>Complément gépgraphique
Ex : Résidence Bel-Air</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BP" minOccurs="0">
<xs:annotation>
<xs:documentation>Boîte postale
Ex : BP 14192</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="localite" minOccurs="0">
<xs:annotation>
<xs:documentation>Localité
Ex : Saint-Chéron</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codePostal" type="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal
Ex : 51290</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ville">
<xs:annotation>
<xs:documentation>Ville/Bureau distributeur
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NumeroImmatriculation_Type">
<xs:annotation>
<xs:documentation>NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris)</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroIdentification">
<xs:annotation>
<xs:documentation>N° d'identification au format NNN NNN NNN</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="11"/>
<xs:pattern value="\d{3} \d{3} \d{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeRCS">
<xs:annotation>
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:length value="3"/>
<xs:enumeration value="RCS"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
<xs:annotation>
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Depot_Type">
<xs:annotation>
<xs:documentation xml:lang="fr">définition d'un dépôt</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:annotation>
<xs:documentation xml:lang="fr"/>
</xs:annotation>
<xs:element name="dateCloture" type="Date_Type">
<xs:annotation>
<xs:documentation>Date de clôture des comptes</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="typeDepot">
<xs:annotation>
<xs:documentation xml:lang="fr">Enumération : Comptes annuels et rapports
Comptes consolidés et rapports
Comptes annuels et consolidés et rapports</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:enumeration value="Comptes annuels et rapports"/>
<xs:enumeration value="Comptes consolidés et rapports"/>
<xs:enumeration value="Comptes annuels, consolidés et rapports"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="descriptif" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="fr">Descriptif à publier
Ex : Cette société a également déposé une déclaration de confidentialité des comptes annuels en application du premier alinéa de l'article L.232-25.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@ -1,134 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 sp1 (http://www.altova.com) by SSI/CTI (JOURNAUX OFFICIELS) -->
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction Journaux Officiels) -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- Version V01 du 29/07/09 -->
<!-- ********************************************************************************************************************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Divers_XML_Rediff">
<xs:annotation>
<xs:documentation>Composant Annonce diverse pour les Reffuseurs</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="parution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numero de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="listeAvis">
<xs:complexType>
<xs:sequence>
<xs:element name="avis" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="typeAnnonce">
<xs:annotation>
<xs:documentation>Type de l'annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="annonce">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="nojo">
<xs:annotation>
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroAnnonce">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Num_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="titreAnnonce" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Titre de l'annonce</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="contenuAnnonce" type="xs:string">
<xs:annotation>
<xs:documentation>Contenu de l'annonce</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- date -->
<xs:simpleType name="Date_Type">
<xs:annotation>
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="....-..-.."/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateHeure_Type">
<xs:annotation>
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime">
<xs:pattern value="....-..-..T..:..:.."/>
</xs:restriction>
</xs:simpleType>
<!-- string -->
<xs:simpleType name="Alpha_Type">
<xs:annotation>
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AlphaNum_Type">
<xs:annotation>
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
</xs:restriction>
</xs:simpleType>
<!-- number -->
<xs:simpleType name="Num_Type">
<xs:annotation>
<xs:documentation>type N : tous les chiffres</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\d]*"/>
</xs:restriction>
</xs:simpleType>
<!-- technique -->
<xs:simpleType name="Parution_Type">
<xs:restriction base="Num_Type">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -1,616 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2013 rel. 2 sp2 (http://www.altova.com) by DIR. INFO LEGALE ADMINISTRATIVE (DIR. INFO LEGALE ADMINISTRATIVE) -->
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction de l'Information Légale et Administrative) -->
<!-- ****************************************************************************************************************************************************************************************** -->
<!-- Modification de la version 3 -->
<!-- Adresse/etranger/pays : optionnel -->
<!-- Ajout d'une séquence de 1 à + pour (personneMorale,personnePhysique, numeroImmatriculation, nonInscrit, inscriptionRM, enseigne, activite, adresse) -->
<!-- Ajout identifiant Reemission -->
<!-- Modification de la version 4 -->
<!-- Supressiont identifiantReemission -->
<!-- Les éléments : numeroAnnonce, numeroIdentificationRCS, codeRCS et nomGreffeImmat ont été typé. -->
<!-- Modification de la version 5 . -->
<!-- Ajout de 3 natures : Arrêts divers, Autres avis de dépôt et Autres jugements et ordonnances -->
<!-- Modification de la version 6 . -->
<!-- Ajout de nouvelles natures
<!_ 31/07/09 Modification nature "Autres jugements et ordonnances" en "Autre jugement et ordonnance" -> -->
<!--
V10 11/09/09 Ajouts de 2 natures :
- Jugement prononçant la résolution du plan de sauvegarde et le redressement judiciaire
- Dépôt de létat des créances et du projet de répartition
-->
<!-- Modification de la version 11 -->
<!-- Changement du numéro de département de la Mayotte en 976 -->
<!-- Modification de la version 12 -->
<!-- Ajout de nouvelles natures de jugement liées à la sauvegarde financière accélérée -->
<!-- Modification de la version 13 -->
<!-- Ajout de l'élément denominationEIRL pour les personnes physiques -->
<!-- Ajout de 8 nouvelles natures de jugement -->
<!-- Modification valeur <codeRCS> -->
<!-- ****************************************************************************************************************************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="PCL_REDIFF">
<xs:annotation>
<xs:documentation>Composant Annonce Procédure Collective pour les Reffuseurs</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="parution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numero de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="annonces">
<xs:complexType>
<xs:sequence>
<xs:element name="annonce" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="typeAnnonce">
<xs:annotation>
<xs:documentation>Type de l'annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="creation">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="rectificatif">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="annulation">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="nojo">
<xs:annotation>
<xs:documentation>Numéro J.O.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroAnnonce" type="Num_Type">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numeroDepartement" type="Departement_Type">
<xs:annotation>
<xs:documentation>N° de département du Greffe</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tribunal" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Code Greffe qui a procédé à l'avis - A transmettre dans le fichier Retour</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="identifiantClient" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Identifiant unique</xs:documentation>
</xs:annotation>
</xs:element>
<xs:sequence maxOccurs="unbounded">
<xs:choice>
<xs:element name="personneMorale">
<xs:complexType>
<xs:sequence>
<xs:element name="denomination" type="NomDenomination_Type">
<xs:annotation>
<xs:documentation>Dénomination</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="formeJuridique" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Sigle</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personnePhysique">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="nom" type="Alpha_Type">
<xs:annotation>
<xs:documentation>Nom de famille (naissance)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="prenom" type="Alpha_Type" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Prénom</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="nomUsage" type="Alpha_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom d'usage</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:element name="denominationEIRL" type="Alpha_Type"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:choice>
<xs:element name="numeroImmatriculation">
<xs:complexType>
<xs:sequence>
<xs:element name="numeroIdentificationRCS">
<xs:annotation>
<xs:documentation>N° d'identification au format NNN NNN NNN ( A transmettre dans le fichier de retour des parutions)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:length value="11"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeRCS">
<xs:annotation>
<xs:documentation>valeurs RCS, RSEIRL, RA, RSAC</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:maxLength value="6"/>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
<xs:annotation>
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
<xs:element name="inscriptionRM" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="numeroIdentificationRM" type="AlphaNum_Type"/>
<xs:element name="codeRM" type="Alpha_Type"/>
<xs:element name="numeroDepartement" type="Departement_Type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="enseigne" type="AlphaNum_Type" minOccurs="0"/>
<xs:element name="activite" type="AlphaNum_Type" minOccurs="0"/>
<xs:element name="adresse" minOccurs="0">
<xs:annotation>
<xs:documentation>Adresse</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="france">
<xs:annotation>
<xs:documentation>Adresse en France de la société </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="numeroVoie" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Code Greffe qui a procédé à l'avis - A transmettre dans le fichier Retour</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="typeVoie" type="Alpha_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Type de la voie
Ex : rue</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="nomVoie" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom de la voie
Ex : d'Enfer </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="complGeographique" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Complément gépgraphique
Ex : Résidence Bel-Air</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="BP" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Boîte postale
Ex : 192</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="localite" type="Alpha_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Localité
Ex : Saint-Chéron</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="codePostal" type="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal
Ex : 51290</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ville" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Ville/Bureau distributeur
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="etranger">
<xs:annotation>
<xs:documentation>Adresse à l'étranger</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="adresse" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="pays" type="Alpha_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom du pays</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:choice>
<xs:element name="jugement" type="Jugement_Type">
<xs:annotation>
<xs:documentation>Publicité</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="jugementAnnule" type="Jugement_Type"/>
</xs:choice>
<xs:element name="parutionAvisPrecedent" minOccurs="0">
<xs:annotation>
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nomPublication" type="Alpha_Type"/>
<xs:element name="numeroParution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numéro de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numeroAnnonce" type="Num_Type">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- date -->
<xs:simpleType name="Date_Type">
<xs:annotation>
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="....-..-.."/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateHeure_Type">
<xs:annotation>
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime">
<xs:pattern value="....-..-..T..:..:.."/>
</xs:restriction>
</xs:simpleType>
<!-- string -->
<xs:simpleType name="Alpha_Type">
<xs:annotation>
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AlphaNum_Type">
<xs:annotation>
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
</xs:restriction>
</xs:simpleType>
<!-- number -->
<xs:simpleType name="Num_Type">
<xs:annotation>
<xs:documentation>type N : tous les chiffres</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\d]*"/>
</xs:restriction>
</xs:simpleType>
<!-- technique -->
<xs:simpleType name="Version_Type">
<xs:annotation>
<xs:documentation>VXX (XX=num de version)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:length value="3"/>
<xs:pattern value="V\d{2}"/>
</xs:restriction>
</xs:simpleType>
<!-- fonctionnel -->
<xs:simpleType name="NomDenomination_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomCommercial_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Enseigne_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
<xs:simpleType name="Sigle_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Activite_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
<xs:simpleType name="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:length value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Departement_Type">
<xs:annotation>
<xs:documentation>code département</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="2"/>
<xs:maxLength value="3"/>
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NumeroGreffe_Type">
<xs:annotation>
<xs:documentation>code Greffe</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:minLength value="4"/>
<xs:maxLength value="6"/>
<xs:pattern value="\d{4,5}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomGreffe_Type">
<xs:annotation>
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatutRCSPP_Type">
<xs:restriction base="xs:token">
<xs:enumeration value="A"/>
<xs:enumeration value="F"/>
<xs:enumeration value="AC"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatutRCSPM_Type">
<xs:restriction base="xs:token">
<xs:enumeration value="B"/>
<xs:enumeration value="C"/>
<xs:enumeration value="D"/>
<xs:enumeration value="F"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Parution_Type">
<xs:restriction base="Num_Type">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Devise_Type">
<xs:restriction base="Alpha_Type">
<xs:enumeration value="EUR"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Jugement_Type">
<xs:annotation>
<xs:documentation>Annonce de Procédure Collective</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="famille">
<xs:annotation>
<xs:documentation>Famille de jugement
Ex : Jugement d'ouverture, extrait de jugement, ...</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:enumeration value="Jugement d'ouverture"/>
<xs:enumeration value="Jugement prononçant"/>
<xs:enumeration value="Arrêt de la Cour d'Appel"/>
<xs:enumeration value="Extrait de jugement"/>
<xs:enumeration value="Avis de dépôt"/>
<xs:enumeration value="Jugement de clôture"/>
<xs:enumeration value="Loi de 1967"/>
<xs:enumeration value="Rétractation sur tierce opposition"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nature">
<xs:annotation>
<xs:documentation>Nature du jugement
Ex : Jugement d'ouverture de redressement judiciaire, jugement nommanbt un organe, ...</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:minLength value="1"/>
<xs:enumeration value="Jugement d'homologation de l'accord"/>
<xs:enumeration value="Jugement de résolution de l'accord homologué"/>
<xs:enumeration value="Jugement d'ouverture d'une procédure de sauvegarde"/>
<xs:enumeration value="Jugement d'extension d'une procédure de sauvegarde"/>
<xs:enumeration value="Jugement de conversion en redressement judiciaire de la procédure de sauvegarde"/>
<xs:enumeration value="Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde"/>
<xs:enumeration value="Jugement mettant fin à la procédure de sauvegarde"/>
<xs:enumeration value="Liste des créances nées après le jugement d'ouverture d'une procédure de redressement judiciaire"/>
<xs:enumeration value="Liste des créances nées après le jugement d'ouverture d'une procédure de liquidation judiciaire"/>
<xs:enumeration value="Dépôt de l'état des créances"/>
<xs:enumeration value="Jugement de clôture de la procédure de sauvegarde"/>
<xs:enumeration value="Jugement arrêtant le plan de sauvegarde"/>
<xs:enumeration value="Jugement modifiant le plan de sauvegarde"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde et la liquidation judiciaire"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde et le redressement judiciaire"/>
<xs:enumeration value="Jugement d'ouverture d'une procédure de redressement judiciaire"/>
<xs:enumeration value="Jugement d'extension d'une procédure de redressement judiciaire"/>
<xs:enumeration value="Jugement modifiant la date de cessation des paiements"/>
<xs:enumeration value="Jugement de conversion en liquidation judiciaire"/>
<xs:enumeration value="Jugement mettant fin à la procédure de redressement judiciaire"/>
<xs:enumeration value="Jugement arrêtant un plan de cession"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de cession et la liquidation judiciaire"/>
<xs:enumeration value="Jugement de plan de redressement"/>
<xs:enumeration value="Jugement modifiant le plan de redressement"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de redressement et la liquidation judiciaire"/>
<xs:enumeration value="Jugement d'ouverture de liquidation judiciaire"/>
<xs:enumeration value="Jugement d'extension de liquidation judiciaire"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de cession"/>
<xs:enumeration value="Dépôt de l'état de collocation"/>
<xs:enumeration value="Jugement de clôture pour extinction du passif"/>
<xs:enumeration value="Jugement de clôture pour insuffisance d'actif"/>
<xs:enumeration value="Jugement de clôture pour insuffisance d'actif et autorisant la reprise des poursuites individuelles"/>
<xs:enumeration value="Jugement autorisant la reprise des poursuites individuelles des créanciers"/>
<xs:enumeration value="Jugement de reprise de la procédure de liquidation judiciaire"/>
<xs:enumeration value="Dépôt du projet de répartition"/>
<xs:enumeration value="Dépôt de l'état des créances et du projet de répartition"/>
<xs:enumeration value="Autres avis de dépôt"/>
<xs:enumeration value="Ordonnance statuant sur les contestations du projet de répartition"/>
<xs:enumeration value="Arrêt de la cour d'appel infirmant une décision soumise à publicité"/>
<xs:enumeration value="Arrêts divers"/>
<xs:enumeration value="Jugement de désignation des organes de la procédure"/>
<xs:enumeration value="Jugement d'interdiction de gérer"/>
<xs:enumeration value="Jugement de faillite personnelle"/>
<xs:enumeration value="Jugement modifiant le plan de continuation"/>
<xs:enumeration value="Jugement modifiant le plan de cession"/>
<xs:enumeration value="Autre jugement et ordonnance"/>
<xs:enumeration value="Dépôt de l'état des créances Loi de 1985"/>
<xs:enumeration value="Jugement accordant un délai pour déposer la liste des créances"/>
<xs:enumeration value="Jugement d'interdiction de gérer Loi de 1985"/>
<xs:enumeration value="Jugement de faillite personnelle Loi de 1985"/>
<xs:enumeration value="Jugement de clôture de la liquidation des biens pour extinction du passif"/>
<xs:enumeration value="Jugement de clôture de la liquidation des biens pour insuffisance d'actif"/>
<xs:enumeration value="Rétractation de jugement d'ouverture sur tierce opposition"/>
<xs:enumeration value="Rétractation de prononcé de redressement judiciaire sur tierce opposition"/>
<xs:enumeration value="Rétractation de prononcé de liquidation judiciaire sur tierce opposition"/>
<xs:enumeration value="Autre jugement d'ouverture"/>
<xs:enumeration value="Autre jugement prononçant"/>
<xs:enumeration value="Autre arrêt de la Cour d'Appel"/>
<xs:enumeration value="Autre jugement de clôture"/>
<xs:enumeration value="Autre jugement de liquidation des biens"/>
<xs:enumeration value="Autre rétractation sur tierce opposition"/>
<xs:enumeration value="Jugement d'ouverture d'une procédure de sauvegarde financière accélérée"/>
<xs:enumeration value="Jugement d'extension d'une procédure de sauvegarde financière accélérée"/>
<xs:enumeration value="Jugement de conversion en redressement judiciaire de la procédure de sauvegarde financière accélérée"/>
<xs:enumeration value="Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde financière accélérée"/>
<xs:enumeration value="Clôture de la procédure à défaut d'arrêté du plan dans le délai"/>
<xs:enumeration value="Jugement mettant fin à la procédure de sauvegarde financière accélérée"/>
<xs:enumeration value="Jugement arrêtant le plan de sauvegarde financière accélérée"/>
<xs:enumeration value="Jugement modifiant le plan de sauvegarde financière accélérée"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde financière accélérée et la liquidation judiciaire"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde accélérée et le redressement judiciaire"/>
<xs:enumeration value="Jugement d'ouverture d'une procédure de sauvegarde accélérée"/>
<xs:enumeration value="Jugement d'extension d'une procédure de sauvegarde accélérée"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde accélérée et la liquidation judiciaire"/>
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde accélérée et redressement judiciaire"/>
<xs:enumeration value="Jugement prononçant la clôture de la procédure de rétablissement professionnel"/>
<xs:enumeration value="Jugement arrêtant le plan de sauvegarde accélérée"/>
<xs:enumeration value="Jugement modifiant le plan de sauvegarde accélérée"/>
<xs:enumeration value="Jugement mettant fin à la procédure de sauvegarde accélérée"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="date" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date du jugement</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="complementJugement" minOccurs="0">
<xs:annotation>
<xs:documentation>Complément du jugement</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@ -1,830 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by djo (JOURNAUX OFFICIELS) -->
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction de l'Information Légale et Administrative) -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- Version V01 du 14/01/08 -->
<!-- V05 du 12/03/08 : ajout norme ISO 4217 pour Devise_Type -->
<!-- V06 du 04/04/08 : Dans les éléments precedentProprietairePM, precedentProprietairePP, -->
<!-- precedentExploitantPP et precedentExploitantPM, les éléments numeroImmatriculation et nonInscrit sont devenus optionnels -->
<!-- V07 du 17/04/08 : ajout champs dateEffet -->
<!-- V09 du 07/10/09 : Longueur maximum de 1000 caractère pour l'élément nomVoie dans Adresse au lieu de 50 -->
<!-- V10 du 15/04/10 : Changement du numéro de département de la Mayotte qui devient 976 -->
<!-- 24/05/13 : Augmentation de la longueur max de NomDenomination_Type à 1000 pour harmoniser avec la schéma d'entrée -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- ********************************************************************************************************************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="urn:un:unece:uncefact:codelist:standard:5:4217:2001" schemaLocation="ISO_CurrencyCode_2001.xsd"/>
<xs:element name="RCS-A_IMMAT">
<xs:annotation>
<xs:documentation>Composant Annonce Immatriculations, Ventes et Créations pour les Reffuseurs</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="parution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numero de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="Date_Type">
<xs:annotation>
<xs:documentation>Date de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="listeAvis">
<xs:complexType>
<xs:sequence>
<xs:element name="avis" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="typeAnnonce">
<xs:annotation>
<xs:documentation>Type de l'annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="annonce">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="rectificatif">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="annulation">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="nojo">
<xs:annotation>
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroAnnonce">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Num_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroDepartement" type="Departement_Type">
<xs:annotation>
<xs:documentation>N° de département du Greffe</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tribunal" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Code Greffe qui a procédé à l'avis -</xs:documentation>
</xs:annotation>
</xs:element>
<xs:sequence>
<xs:element name="personnes">
<xs:complexType>
<xs:sequence>
<xs:element name="personne" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:choice>
<xs:element name="personneMorale">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit">
<xs:simpleType>
<xs:restriction base="Alpha_Type"/>
</xs:simpleType>
</xs:element>
</xs:choice>
<xs:element name="denomination" type="NomDenomination_Type">
<xs:annotation>
<xs:documentation>Dénomination</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="formeJuridique" minOccurs="0">
<xs:annotation>
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomCommercial" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom commercial</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Sigle</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="administration" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>nouvelle situation,ex: Gérants : Dumoulin Bernard</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personnePhysique">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
<xs:element name="nom">
<xs:annotation>
<xs:documentation>Nom de famille (naissance)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="prenom" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Prénom</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomUsage" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom d'usage</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pseudonyme" minOccurs="0">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomCommercial" minOccurs="0">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
</xs:element>
<xs:element name="nationnalite" type="Alpha_Type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="capital" minOccurs="0">
<xs:annotation>
<xs:documentation>Capital de la société</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="montantCapital">
<xs:annotation>
<xs:documentation>Montant du capital</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="devise" type="Devise_Type">
<xs:annotation>
<xs:documentation>Devise (conforme à la norme ISO 4217)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:element name="capitalVariable">
<xs:annotation>
<xs:documentation>Capital variable</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="adresse" minOccurs="0">
<xs:annotation>
<xs:documentation>Adresse</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="france" type="AdresseFrance_Type">
<xs:annotation>
<xs:documentation>Adresse en France de la société </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="etranger" type="AdresseEtranger_Type">
<xs:annotation>
<xs:documentation>Adresse à l'étranger</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:element name="etablissement" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="origineFonds" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Origine du fonds
Ex : Fonds principal acquis par achat au prix stipulé de 28 940 euros, Cette société se constitue, Moitié indivise dépendante d'un fonds complémentaire acquise par apport au montant évalué à 55 000 euros, Création, Fonds acquis par achat, ...</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="qualiteEtablissement" type="Alpha_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Siège social, Etablissement principal, Etablissemennt complémentaire, ..., Fonds complémentaire, Fonds secondaire</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="activite" type="AlphaNum_Type" minOccurs="0"/>
<xs:element name="enseigne" type="AlphaNum_Type" minOccurs="0"/>
<xs:element name="adresse" type="AdresseFrance_Type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="precedentProprietairePM">
<xs:complexType>
<xs:sequence>
<xs:element name="denomination" type="NomDenomination_Type"/>
<xs:choice minOccurs="0">
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="precedentProprietairePP">
<xs:complexType>
<xs:sequence>
<xs:element name="nature" minOccurs="0">
<xs:annotation>
<xs:documentation>Héritier, indivisaire</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nom">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="prenom" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomUsage" minOccurs="0">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:choice minOccurs="0">
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="precedentExploitantPM">
<xs:complexType>
<xs:sequence>
<xs:element name="denomination" type="NomDenomination_Type"/>
<xs:choice minOccurs="0">
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="precedentExploitantPP">
<xs:complexType>
<xs:sequence>
<xs:element name="nature" minOccurs="0">
<xs:annotation>
<xs:documentation>Héritier, indivisaire</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nom">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="prenom" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomUsage" minOccurs="0">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:choice minOccurs="0">
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="parutionAvisPrecedent" minOccurs="0">
<xs:annotation>
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nomPublication" type="Alpha_Type"/>
<xs:element name="numeroParution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numéro de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numeroAnnonce" type="Num_Type">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="acte">
<xs:complexType>
<xs:choice>
<xs:element name="creation">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element name="dateImmatriculation" type="Date_Type" minOccurs="0"/>
<xs:element name="categorieCreation" type="AlphaNum_Type"/>
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date de début d'activité</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="descriptif" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Descriptif de la modification</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="immatriculation">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element name="dateImmatriculation" type="Date_Type" minOccurs="0"/>
<xs:element name="categorieImmatriculation" type="AlphaNum_Type"/>
<xs:element name="dateEffet" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date de début d'activité</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="descriptif" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Descriptif de la modification</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="vente">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element name="dateImmatriculation" type="Date_Type" minOccurs="0"/>
<xs:element name="categorieVente" type="AlphaNum_Type"/>
<xs:element name="dateEffet" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date de début d'activité</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="journal" minOccurs="0">
<xs:annotation>
<xs:documentation>Journal d'annonces légales</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="titre" type="AlphaNum_Type"/>
<xs:element name="date" type="Date_Type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice maxOccurs="2">
<xs:element name="opposition" type="AlphaNum_Type"/>
<xs:element name="declarationCreance" type="AlphaNum_Type"/>
</xs:choice>
<xs:element name="descriptif" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Descriptif de la modification</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- date -->
<xs:simpleType name="Date_Type">
<xs:annotation>
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="....-..-.."/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateHeure_Type">
<xs:annotation>
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime">
<xs:pattern value="....-..-..T..:..:.."/>
</xs:restriction>
</xs:simpleType>
<!-- string -->
<xs:simpleType name="Alpha_Type">
<xs:annotation>
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AlphaNum_Type">
<xs:annotation>
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
</xs:restriction>
</xs:simpleType>
<!-- number -->
<xs:simpleType name="Num_Type">
<xs:annotation>
<xs:documentation>type N : tous les chiffres</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\d]*"/>
</xs:restriction>
</xs:simpleType>
<!-- technique -->
<xs:simpleType name="Version_Type">
<xs:annotation>
<xs:documentation>VXX (XX=num de version)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:length value="3"/>
<xs:pattern value="V\d{2}"/>
</xs:restriction>
</xs:simpleType>
<!-- fonctionnel -->
<xs:simpleType name="NomDenomination_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomCommercial_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sigle_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Activite_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
<xs:simpleType name="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:length value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Departement_Type">
<xs:annotation>
<xs:documentation>code département</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="2"/>
<xs:maxLength value="3"/>
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NumeroGreffe_Type">
<xs:annotation>
<xs:documentation>code Greffe</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:minLength value="4"/>
<xs:maxLength value="6"/>
<xs:pattern value="\d{4,5}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomGreffe_Type">
<xs:annotation>
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatutRCSPP_Type">
<xs:restriction base="xs:token">
<xs:enumeration value="A"/>
<xs:enumeration value="F"/>
<xs:enumeration value="AC"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatutRCSPM_Type">
<xs:restriction base="xs:token">
<xs:enumeration value="B"/>
<xs:enumeration value="C"/>
<xs:enumeration value="D"/>
<xs:enumeration value="F"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Parution_Type">
<xs:restriction base="Num_Type">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Devise_Type">
<xs:restriction base="iso4217:CurrencyCodeContentType"/>
</xs:simpleType>
<xs:complexType name="AdresseEtranger_Type">
<xs:sequence>
<xs:element name="adresse">
<xs:annotation>
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pays" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom du pays</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AdresseFrance_Type">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Numéro de la voie
Ex : 4</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="typeVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Type de la voie
Ex : rue</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom de la voie
Ex : d'Enfer</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000" fixed="false"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="complGeographique" minOccurs="0">
<xs:annotation>
<xs:documentation>Complément gépgraphique
Ex : Résidence Bel-Air</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BP" minOccurs="0">
<xs:annotation>
<xs:documentation>Boîte postale
Ex : BP 14192</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="localite" minOccurs="0">
<xs:annotation>
<xs:documentation>Localité
Ex : Saint-Chéron</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codePostal" type="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal
Ex : 51290</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ville">
<xs:annotation>
<xs:documentation>Ville/Bureau distributeur
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NumeroImmatriculation_Type">
<xs:annotation>
<xs:documentation>NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris)</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroIdentification">
<xs:annotation>
<xs:documentation>N° d'identification au format NNN NNN NNN</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="11"/>
<xs:pattern value="\d{3} \d{3} \d{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeRCS">
<xs:annotation>
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:length value="3"/>
<xs:enumeration value="RCS"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
<xs:annotation>
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@ -1,794 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 sp1 (http://www.altova.com) by SSI/CTI (JOURNAUX OFFICIELS) -->
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction de l'Information Légale et Administrative) -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- Version V01 du 14/01/08 -->
<!-- V04 du 12/03/08 : ajout norme ISO 4217 pour Devise_Type -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- -->
<!-- V05 du 11/04/08 : ajout champs dateEffet -->
<!-- ********************************************************************************************************************************************************************************** -->
<!-- -->
<!-- V08 du 23/01/09 : modification longueur maximum (d 200 à 1000) pour l'élément denomination -->
<!-- *********************************************************************************************************************** -->
<!--
V09 du 30/04/09 : Ajout élément commentaire dans radiationAuRCS -->
<!-- ********************************************************************************************************************************************************************************** -->
<!--
V10 du 11/09/09 : Choix rendu optionnel après les éléments ModificationsGenerales et radiationAuRCS afin de pouvoir trier les radiations et les modifications-->
<!-- ********************************************************************************************************************************************************************************** -->
<!--
V11 du 15/04/10 : Prise en compte du nouveau numéro de département de la Mayotte (976) -->
<!-- ********************************************************************************************************************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="urn:un:unece:uncefact:codelist:standard:5:4217:2001" schemaLocation="ISO_CurrencyCode_2001.xsd"/>
<xs:element name="RCS-B_REDIFF">
<xs:annotation>
<xs:documentation>Composant Annonce Modifications générales et Radiation pour les Reffuseurs</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="parution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numero de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="listeAvis">
<xs:complexType>
<xs:sequence>
<xs:element name="avis" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="typeAnnonce">
<xs:annotation>
<xs:documentation>Type de l'annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="annonce">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="rectificatif">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="annulation">
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="nojo">
<xs:annotation>
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:length value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroAnnonce">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Num_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="numeroDepartement" type="Departement_Type">
<xs:annotation>
<xs:documentation>N° de département du Greffe</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tribunal" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Code Greffe qui a procédé à l'avis -</xs:documentation>
</xs:annotation>
</xs:element>
<xs:sequence>
<xs:element name="personnes">
<xs:complexType>
<xs:sequence>
<xs:element name="personne" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="personneMorale">
<xs:complexType>
<xs:sequence>
<xs:element name="denomination">
<xs:annotation>
<xs:documentation>Dénomination</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="NomDenomination_Type">
<xs:maxLength value="1000" fixed="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="formeJuridique" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="capital" minOccurs="0">
<xs:annotation>
<xs:documentation>Capital de la société</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="montantCapital">
<xs:annotation>
<xs:documentation>Montant du capital</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="devise" type="Devise_Type">
<xs:annotation>
<xs:documentation>Devise (conforme à la norme ISO 4217)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:element name="capitalVariable">
<xs:annotation>
<xs:documentation>Capital variable</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="nomCommercial" type="AlphaNum_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom commercial</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="administration" minOccurs="0">
<xs:annotation>
<xs:documentation>nouvelle situation,ex: Gérants : Dumoulin Bernard</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Sigle</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personnePhysique">
<xs:complexType>
<xs:sequence>
<xs:element name="nom">
<xs:annotation>
<xs:documentation>Nom de famille (naissance)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="prenom" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Prénom</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomUsage" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom d'usage</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pseudonyme" minOccurs="0">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomCommercial" type="AlphaNum_Type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:choice>
<xs:element name="numeroImmatriculation">
<xs:complexType>
<xs:sequence>
<xs:element name="numeroIdentificationRCS">
<xs:annotation>
<xs:documentation>N° d'identification au format NNN NNN NNN </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:length value="11"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeRCS">
<xs:annotation>
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:length value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
<xs:annotation>
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
<xs:element name="activite" type="AlphaNum_Type" minOccurs="0"/>
<xs:element name="adresse" minOccurs="0">
<xs:annotation>
<xs:documentation>Adresse</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="france" type="AdresseFrance_Type">
<xs:annotation>
<xs:documentation>Adresse en France de la société </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="etranger" type="AdresseEtranger_Type">
<xs:annotation>
<xs:documentation>Adresse à l'étranger</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="siegeSocial" minOccurs="0">
<xs:annotation>
<xs:documentation>Siège social de la société</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="france" type="AdresseFrance_Type"/>
<xs:element name="etranger" type="AdresseEtranger_Type"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="etablissementPrincipal" minOccurs="0">
<xs:annotation>
<xs:documentation>Etablissement principal de la société</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="france" type="AdresseFrance_Type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="modificationsGenerales">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="precedentExploitantPM">
<xs:annotation>
<xs:documentation>Precedent exploitant pour une personne morale</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="denomination">
<xs:simpleType>
<xs:restriction base="NomDenomination_Type">
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:choice>
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="precedentExploitantPP">
<xs:annotation>
<xs:documentation>Precedent exploitant pour une personne physique</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nature" minOccurs="0">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nom">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="prenom">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomUsage" minOccurs="0">
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:choice minOccurs="0">
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
<xs:element name="nonInscrit" type="Alpha_Type"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="descriptif">
<xs:annotation>
<xs:documentation>Descriptif de la modification</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date de début d'activité</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateEffet" type="Date_Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="radiationAuRCS">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:choice>
<xs:element name="radiationPP">
<xs:annotation>
<xs:documentation>Radiation pour les Personnes Physiques</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="dateCessationActivitePP" type="Date_Type">
<xs:annotation>
<xs:documentation>Date de cessation d'activité pour les Personnes Physiques</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="radiationPM">
<xs:annotation>
<xs:documentation>Radiation pour les Personnes Morales</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:length value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
<xs:element name="commentaire" minOccurs="0">
<xs:annotation>
<xs:documentation>Commentaire pour les radiations</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="parutionAvisPrecedent" minOccurs="0">
<xs:annotation>
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nomPublication" type="Alpha_Type"/>
<xs:element name="numeroParution" type="Parution_Type">
<xs:annotation>
<xs:documentation>Numéro de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateParution" type="AlphaNum_Type">
<xs:annotation>
<xs:documentation>Date de la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numeroAnnonce" type="Num_Type">
<xs:annotation>
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- date -->
<xs:simpleType name="Date_Type">
<xs:annotation>
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="....-..-.."/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateHeure_Type">
<xs:annotation>
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime">
<xs:pattern value="....-..-..T..:..:.."/>
</xs:restriction>
</xs:simpleType>
<!-- string -->
<xs:simpleType name="Alpha_Type">
<xs:annotation>
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AlphaNum_Type">
<xs:annotation>
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
</xs:restriction>
</xs:simpleType>
<!-- number -->
<xs:simpleType name="Num_Type">
<xs:annotation>
<xs:documentation>type N : tous les chiffres</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\d]*"/>
</xs:restriction>
</xs:simpleType>
<!-- technique -->
<xs:simpleType name="Version_Type">
<xs:annotation>
<xs:documentation>VXX (XX=num de version)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:length value="3"/>
<xs:pattern value="V\d{2}"/>
</xs:restriction>
</xs:simpleType>
<!-- fonctionnel -->
<xs:simpleType name="NomDenomination_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomCommercial_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="70"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sigle_Type">
<xs:annotation>
<xs:documentation>type anySimpleType</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Activite_Type">
<xs:annotation>
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type"/>
</xs:simpleType>
<xs:simpleType name="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:length value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Departement_Type">
<xs:annotation>
<xs:documentation>code département</xs:documentation>
</xs:annotation>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="2"/>
<xs:maxLength value="3"/>
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NumeroGreffe_Type">
<xs:annotation>
<xs:documentation>code Greffe</xs:documentation>
</xs:annotation>
<xs:restriction base="Num_Type">
<xs:minLength value="4"/>
<xs:maxLength value="6"/>
<xs:pattern value="\d{4,5}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NomGreffe_Type">
<xs:annotation>
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
</xs:annotation>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatutRCSPP_Type">
<xs:restriction base="xs:token">
<xs:enumeration value="A"/>
<xs:enumeration value="F"/>
<xs:enumeration value="AC"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatutRCSPM_Type">
<xs:restriction base="xs:token">
<xs:enumeration value="B"/>
<xs:enumeration value="C"/>
<xs:enumeration value="D"/>
<xs:enumeration value="F"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Parution_Type">
<xs:restriction base="Num_Type">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Devise_Type">
<xs:restriction base="iso4217:CurrencyCodeContentType"/>
</xs:simpleType>
<xs:complexType name="AdresseEtranger_Type">
<xs:sequence>
<xs:element name="adresse">
<xs:annotation>
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pays" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom du pays</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AdresseFrance_Type">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Numéro de la voie
Ex : 4</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="typeVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Type de la voie
Ex : rue</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomVoie" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom de la voie
Ex : d'Enfer</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="complGeographique" minOccurs="0">
<xs:annotation>
<xs:documentation>Complément gépgraphique
Ex : Résidence Bel-Air</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BP" minOccurs="0">
<xs:annotation>
<xs:documentation>Boîte postale
Ex : BP 14192</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="localite" minOccurs="0">
<xs:annotation>
<xs:documentation>Localité
Ex : Saint-Chéron</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codePostal" type="CodePostal_Type">
<xs:annotation>
<xs:documentation>Code Postal
Ex : 51290</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ville">
<xs:annotation>
<xs:documentation>Ville/Bureau distributeur
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="AlphaNum_Type">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NumeroImmatriculation_Type">
<xs:annotation>
<xs:documentation>NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris)</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroIdentification">
<xs:annotation>
<xs:documentation>N° d'identification au format NNN NNN NNN</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="11"/>
<xs:pattern value="\d{3} \d{3} \d{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeRCS">
<xs:annotation>
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="Alpha_Type">
<xs:length value="3"/>
<xs:enumeration value="RCS"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
<xs:annotation>
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@ -1,578 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio Developer Edition 9.0.11.3078 (http://www.liquid-technologies.com)-->
<!--
OCTDE_EXPORT_JAL XSD - Schéma d'export des annonces JAL au format XML.
Copyright OCTDE - v3.4 - 11/03/2015
L'ensemble des tables de codes associées aux balises code* sont disponibles dans le fichier : OCTDE_Tables_Codes.xls
Les fichiers JAL en XML livrés sont nommés selon le masque : "Annonces_YYYYMMDD.xml"
Les fichiers PDF livrés sont nommés selon le masque : "<journalID>_YYYYMMDD_<numParution>.pdf"
Dans le cas où il ny a pas de numParution, ce numéro devient 00.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Définition de types -->
<xs:simpleType name="alphaType">
<xs:annotation>
<xs:documentation>Alphabétique : Caractères, ponctuations et symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="alphaNumType">
<xs:annotation>
<xs:documentation>Alphanumérique : Caractères, chiffres, ponctuations et symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; &gt;]*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="numType">
<xs:annotation>
<xs:documentation>Numérique</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[\d]*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="boolType">
<xs:annotation>
<xs:documentation>Booléen (0 ou 1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[0-1]{1}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="typeType">
<xs:annotation>
<xs:documentation>M : Personne Morale; P : Personne Physique</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="M" />
<xs:enumeration value="P" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="capitalType">
<xs:annotation>
<xs:documentation>Type de capital : MINinmum, FIXe, VARiable ou LIBéré (en totalité)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="MIN" />
<xs:enumeration value="FIX" />
<xs:enumeration value="VAR" />
<xs:enumeration value="LIB" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="rubriqueType">
<xs:annotation>
<xs:documentation> Type de rubrique : CoMPTes, CREAtions, MODIFications, PROCedures COLlectives, RADiations, ventes, DIVers,CESsation </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="CMPT" />
<xs:enumeration value="CREA" />
<xs:enumeration value="MODIF" />
<xs:enumeration value="PROCCOL" />
<xs:enumeration value="RAD" />
<xs:enumeration value="VENTE" />
<xs:enumeration value="DIV" />
<xs:enumeration value="CES" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="annonceType">
<xs:annotation>
<xs:documentation> Type d'annonce : Rectificatif, Additif, Suppression, AnnuleEtRemplace, Insertion, Creation </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="RECTIFICATIF" />
<xs:enumeration value="ADDITIF" />
<xs:enumeration value="SUPPRESSION" />
<xs:enumeration value="ANNULEETREMPLACE" />
<xs:enumeration value="INSERTION" />
<xs:enumeration value="CREATION" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sirenType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{9}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="adresseLineType">
<xs:annotation>
<xs:documentation>Ligne d'adresse au format RNVP selon la norme 38 caractères</xs:documentation>
</xs:annotation>
<xs:restriction base="alphaNumType">
<xs:maxLength value="38" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="codePostalType">
<xs:restriction base="alphaNumType">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="departementType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{2,3}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="codePaysIso2Type">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="formeJuridiqueType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{4}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="decimalType">
<xs:restriction base="xs:decimal">
<xs:minExclusive value="0" />
<xs:fractionDigits value="2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="deviseType">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{3}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="adminType">
<xs:restriction base="xs:integer">
<xs:minExclusive value="0" />
<xs:maxInclusive value="9999" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="civiliteType">
<xs:annotation>
<xs:documentation>Ste : Société; Dr : Docteur; M : Monsieur; Mme : Madame; Mlle : Mademoiselle; Me : Maître</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Ste" />
<xs:enumeration value="Dr" />
<xs:enumeration value="M" />
<xs:enumeration value="Mme" />
<xs:enumeration value="Mlle" />
<xs:enumeration value="Me" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="typeActeurType">
<xs:annotation>
<xs:documentation>AB : Societe Absorbante; AC : Acquereur; CD : Cedant; NE : Nouvel Exploitant; PE : Précédent Exploitant</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:length value="2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="roleIntervenantType">
<xs:annotation>
<xs:documentation>A : Administrateur; C :Commissaire au plan; H : Huissier*; J : Juge commissaire; K : Juge commissaire suppléant; L : Liquidateur; M : Mandataire; N : Notaire*; O : Opposition*; R : Représentant des créanciers ; T : conciliaTeur; V : aVocat*; Les intervenants avec une * sont spécifiques aux annonces de ventes</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{1,2}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="adresseType">
<xs:annotation>
<xs:documentation>Adresses structurées. Le tag adresseTexte est utilisé quand l'adresse n'est pas disponible de façon structurée, par exemple pour les adresses à l'étranger.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="numeroVoie" type="alphaNumType" minOccurs="0" />
<xs:element name="indRep" type="alphaNumType" minOccurs="0" />
<xs:element name="typeVoie" type="alphaNumType" minOccurs="0" />
<xs:element name="nomVoie" type="alphaNumType" minOccurs="0" />
<xs:element name="complGeographique" type="alphaNumType" minOccurs="0" />
<xs:element name="boitePostale" type="alphaNumType" minOccurs="0" />
<xs:element name="localite" type="alphaNumType" minOccurs="0" />
<xs:element name="codePostal" type="codePostalType" minOccurs="0" />
<xs:element name="ville" type="alphaNumType" minOccurs="0" />
<xs:element name="departement" type="departementType" minOccurs="0" />
<xs:element name="codePays" type="codePaysIso2Type" minOccurs="0" default="FR" />
<xs:element name="labelPays" type="alphaNumType" minOccurs="0" />
<xs:element name="idVoie" type="numType" minOccurs="0" />
<xs:element name="codeInseeCommune" type="numType" minOccurs="0" />
<xs:element name="adresseTexte" type="alphaNumType" minOccurs="0" />
<!-- <xs:element name="adresseRNVP" type="boolType" minOccurs="0" />-->
<xs:element name="diagAdresse" type="numType" minOccurs="0" />
<xs:element name="topRejet" type="boolType" minOccurs="0" />
<xs:element name="topAmelia" type="boolType" minOccurs="0" />
<xs:element name="adresse_L1" type="adresseLineType" minOccurs="0" />
<xs:element name="adresse_L2" type="adresseLineType" minOccurs="0" />
<xs:element name="adresse_L3" type="adresseLineType" minOccurs="0" />
<xs:element name="adresse_L4" type="adresseLineType" minOccurs="0" />
<xs:element name="adresse_L5" type="adresseLineType" minOccurs="0" />
<xs:element name="adresse_L6" type="adresseLineType" minOccurs="0" />
<xs:element name="adresse_L7" type="adresseLineType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<!-- Définition des éléments -->
<xs:element name="livraisonAnnoncesLegales">
<xs:annotation>
<xs:documentation>Elément racine</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="livraisonInfo" />
<xs:element ref="annonces" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="livraisonInfo">
<xs:annotation>
<xs:documentation>Metadonnées de la livraison</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="dateLivraison" type="xs:date" />
<xs:element name="nbItems" type="xs:integer" />
<xs:element name="codeLivraison" type="alphaNumType" minOccurs="0">
<xs:annotation>
<xs:documentation>Ce tag peut le cas échéant contenir un code permettant d'identifier la livraison fournie.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="annonces">
<xs:annotation>
<xs:documentation>Les annonces de la livraison</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="annonce" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="annonce">
<xs:annotation>
<xs:documentation>Description d'une annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="annonceInfo" />
<xs:element ref="personnes" />
<xs:element ref="evenements" />
<xs:element ref="acteursCession" minOccurs="0" />
<xs:element ref="etablissementsCession" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="annonceInfo">
<xs:annotation>
<xs:documentation>Metadonnées de l'annonce. Certains de ces tags sont specifiques aux Jal (ex: journalID), d'autres spécifiques au Bodacc (ex: nojo), d'autres étant communs à diverses sources</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="adID" type="alphaNumType" minOccurs="0" />
<xs:element name="origine" type="xs:string" minOccurs="0" />
<xs:element name="sourcePdf" type="alphaNumType" minOccurs="0">
<xs:annotation>
<xs:documentation>Nom du fichier PDF contenant l'annonce OCRisée avec lien vers la page de l'annonce si multipage (exemple: myfile.pdf#page=4)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="nomPublication" type="alphaNumType" minOccurs="0" />
<xs:element name="journalID" type="numType" minOccurs="0" />
<xs:element name="dateParution" type="xs:date" minOccurs="0" />
<xs:element name="numParution" type="alphaNumType" minOccurs="0" />
<xs:element name="tribunal" type="alphaNumType" minOccurs="0" />
<xs:element name="texte" type="xs:string" minOccurs="0" />
<xs:element name="rubrique" type="rubriqueType" minOccurs="0" />
<xs:element name="typeAnnonce" type="annonceType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personnes">
<xs:annotation>
<xs:documentation>Les personnes d'une annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="personne" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personne">
<xs:annotation>
<xs:documentation>Infos associées à la personne concernée</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="identite" minOccurs="0" />
<xs:element ref="dirigeants" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="identite">
<xs:annotation>
<xs:documentation>identité d'une personne Physique ou Morale</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
<xs:element name="pseudonyme" type="alphaNumType" minOccurs="0" />
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
<xs:element name="nomUsage" type="alphaNumType" minOccurs="0" />
<xs:element name="dateNaissance" type="xs:date" minOccurs="0" />
<xs:element name="lieuNaissance" type="xs:string" minOccurs="0" />
<xs:element name="sigle" type="alphaNumType" minOccurs="0" />
<xs:element name="type" type="typeType" minOccurs="0" />
<xs:element name="siren" type="sirenType" minOccurs="0" />
<xs:element name="sirenValide" type="boolType" minOccurs="0" />
<xs:element name="codeFormeJuridique" type="formeJuridiqueType" minOccurs="0" />
<xs:element name="capital" type="decimalType" minOccurs="0" />
<xs:element name="capitalType" type="capitalType" minOccurs="0" />
<xs:element name="devise" type="deviseType" minOccurs="0" default="EUR" />
<xs:element name="capitalNbParts" type="numType" minOccurs="0" />
<xs:element name="duree" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="99" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="etablissements" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="etablissement" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="etablissement">
<xs:annotation>
<xs:documentation>Description d'un établissement</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="enseigne" type="alphaNumType" minOccurs="0" />
<xs:element name="activite" type="alphaNumType" minOccurs="0" />
<xs:element name="adresse" type="adresseType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dirigeants" nillable="true">
<xs:annotation>
<xs:documentation>Les dirigeants d'une entreprise</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="dirigeant" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dirigeant">
<xs:annotation>
<xs:documentation>Description d'un dirigeant</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
<xs:element name="nomUsage" type="alphaNumType" minOccurs="0" />
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
<xs:element name="siren" type="sirenType" minOccurs="0" />
<xs:element name="sirenValide" type="boolType" minOccurs="0" />
<xs:element name="codeFonction" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{3}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codeMouvement" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{2}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dateMissionDebut" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>
Date d'effet de début de mission d'un dirigeant (notamment pour les CAC)
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateMissionFin" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>
Date d'effet passée ou à venir de la fin de
mission d'un dirigeant (notamment pour les
CAC)
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="adresse" type="adresseType" minOccurs="0" />
<xs:element name="dateNaissance" type="xs:date" minOccurs="0" />
<xs:element name="lieuNaissance" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="intervenant">
<xs:annotation>
<xs:documentation>Zonage des informations liées à chaque mandataire ou autre intervenant de l'annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
<xs:element name="roleIntervenant" type="roleIntervenantType" minOccurs="0" />
<xs:element name="adresse" type="adresseType" minOccurs="0" />
<xs:element name="finMission" type="boolType" minOccurs="0">
<xs:annotation>
<xs:documentation>Pour cet intervenant, il s'agit d'une fin de mission</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="intervenants">
<xs:annotation>
<xs:documentation>Les intervenants d'une procédure collective</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="intervenant" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="evenements">
<xs:annotation>
<xs:documentation>Les évènements d'une annonce</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="evenement" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="evenement">
<xs:annotation>
<xs:documentation>Description d'un evenement</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="codeEvenement" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{4}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dateDecision" type="xs:date" minOccurs="0" />
<xs:element name="dateEffet" type="xs:date" minOccurs="0" />
<xs:element ref="procedureCollective" minOccurs="0" />
<xs:element ref="rectificatif" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="procedureCollective" nillable="true">
<xs:annotation>
<xs:documentation>Description d'une Procédure Collective</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="dateCessationPaiements" type="xs:date" minOccurs="0" />
<xs:element name="dateFinPlanObs" type="xs:date" minOccurs="0" />
<xs:element name="dureePlanObs" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Pour les annonces de plans ou les annonces avec périodes d'observation, selon les annonces, la durée du plan ou de la période d'observation est communiqué (36 mois, 8 ans, etc...) ou alors la dateFinPlanObs</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="intervenants" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rectificatif">
<xs:annotation>
<xs:documentation>Description d'un rectificatif ou annulation</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nomPublication" type="alphaNumType" minOccurs="0" />
<xs:element name="dateParution" type="xs:date" minOccurs="0" />
<xs:element name="numParution" type="alphaNumType" minOccurs="0" />
<xs:element name="page" type="numType" minOccurs="0" />
<xs:element name="texteRectificatif" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="acteursCession" nillable="true">
<xs:annotation>
<xs:documentation>Les acteurs d'une cession</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="acteurCession" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="acteurCession" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="typeActeur" type="typeActeurType" />
<xs:element name="identiteActeur">
<xs:annotation>
<xs:documentation>identité d'une personne Physique ou Morale</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
<xs:element name="pseudonyme" type="alphaNumType" minOccurs="0" />
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
<xs:element name="nomUsage" type="alphaNumType" minOccurs="0" />
<xs:element name="dateNaissance" type="xs:date" minOccurs="0" />
<xs:element name="lieuNaissance" type="xs:string" minOccurs="0" />
<xs:element name="sigle" type="alphaNumType" minOccurs="0" />
<xs:element name="type" type="typeType" minOccurs="0" />
<xs:element name="siren" type="sirenType" minOccurs="0" />
<xs:element name="sirenValide" type="boolType" minOccurs="0" />
<xs:element name="codeFormeJuridique" type="formeJuridiqueType" minOccurs="0" />
<xs:element name="capital" type="decimalType" minOccurs="0" />
<xs:element name="capitalType" type="capitalType" minOccurs="0" />
<xs:element name="devise" type="deviseType" minOccurs="0" default="EUR" />
<xs:element name="capitalNbParts" type="numType" minOccurs="0" />
<xs:element name="duree" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="99" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="adresse" type="adresseType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="cessionInfo" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cessionInfo" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="montantCession" type="decimalType" minOccurs="0" />
<xs:element name="deviseMontantCession" type="deviseType" minOccurs="0" />
<xs:element name="natureCession" type="alphaNumType" minOccurs="0" />
<xs:element name="dureeCession" type="numType" minOccurs="0" />
<xs:element name="nbParts" type="numType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="etablissementsCession" nillable="true">
<xs:annotation>
<xs:documentation>Les établissements concernés par une cession</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="etablissement" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -1,5 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="006_FR_${DATE}.csv"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/doEtabAct.sql
/var/www/batch/diffusionEntrep.php >> /var/www/log/diffusionEntrep.log

View File

@ -1,515 +0,0 @@
USE jo;
DROP TABLE IF EXISTS jo.etablissements_actmp;
INSERT INTO sdv1.sphinx_idx (nom, createBegin) VALUES ('jo.etablissements_act', NOW());
# Creation de la structure de la table
CREATE TABLE `jo`.`etablissements_actmp` ( `id` bigint( 20 ) NOT NULL,
`source` tinyint( 3 ) unsigned zerofill NOT NULL ,
`source_id` bigint( 20 ) unsigned NOT NULL ,
`triCode` varchar( 6 ) NOT NULL ,
`autre_id` varchar( 15 ) NOT NULL ,
`siren` int( 9 ) unsigned zerofill NOT NULL ,
`nic` mediumint( 5 ) unsigned zerofill NOT NULL,
`actif` tinyint( 1 ) unsigned NOT NULL,
`siege` tinyint( 1 ) unsigned NOT NULL,
`raisonSociale` varchar(80) NOT NULL,
`enseigne` varchar(40) NOT NULL,
`sigle` varchar(20) NOT NULL,
`identite_pre` varchar(255) NOT NULL,
`marques` varchar(255) NOT NULL,
`adr_num` smallint( 4 ) unsigned zerofill NOT NULL,
`adr_btq` char(1) NOT NULL,
`adr_typeVoie` char( 4 ) NOT NULL ,
`adr_libVoie` varchar( 32 ) NOT NULL ,
`adr_comp` varchar( 38 ) NOT NULL ,
`adr_cp` mediumint( 5 ) unsigned zerofill NOT NULL ,
`adr_ville` varchar( 32 ) NOT NULL ,
`adr_dep` char( 3 ) NOT NULL ,
`adr_com` smallint( 3 ) unsigned zerofill NOT NULL ,
`tel` bigint( 10 ) unsigned zerofill NOT NULL ,
`fax` bigint( 10 ) unsigned zerofill NOT NULL ,
`cj` smallint( 4 ) unsigned zerofill NOT NULL ,
`capital` bigint( 15 ) unsigned zerofill NOT NULL ,
`capitalDev` char( 3 ) NOT NULL ,
`capitalSrc` tinyint( 3 ) unsigned zerofill NOT NULL ,
`ape_etab` char( 5 ) NOT NULL ,
`ape_entrep` char( 5 ) NOT NULL ,
`age_entrep` tinyint( 3 ) unsigned NOT NULL ,
`age_etab` tinyint( 3 ) unsigned NOT NULL ,
`tca` tinyint( 1 ) unsigned zerofill NOT NULL ,
`tcaexp` tinyint( 1 ) unsigned zerofill NOT NULL ,
`teff_entrep` tinyint( 2 ) unsigned NULL ,
`teff_etab` tinyint( 2 ) unsigned NULL ,
`rang` smallint( 5 ) unsigned NOT NULL ,
`dateInsert` datetime NOT NULL ,
`dateUpdate` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
PRIMARY KEY (siren,nic) ) ENGINE = MyISAM DEFAULT CHARSET = latin1;
# Copie de la cible des actifs avec siret valide
INSERT IGNORE INTO `jo`.`etablissements_actmp` SELECT * FROM `jo`.`etablissements` WHERE `siren`>0 and `nic`>0 AND actif=1 AND cj NOT IN(1800,2310,2320,2385) ORDER BY siren, nic;
#INSERT IGNORE INTO `jo`.`etablissements_actmp` SELECT * FROM `jo`.`etablissements` WHERE `siren`>0 AND `nic`>0 AND ((actif=1 AND cj NOT IN (1800,2310,2320,2385)) OR siren IN (SELECT siren FROM rncs_entrep WHERE actif=1)) ORDER BY siren, nic;
# Suppression des zones inutiles
ALTER TABLE `etablissements_actmp`
DROP `dateInsert`,
DROP `dateUpdate`;
# Supprimer les non diffusibles insee
DELETE FROM jo.etablissements_actmp WHERE siren in(SELECT siren FROM insee.insee_nondiff WHERE siren NOT IN (SELECT siren FROM jo.rncs_entrep WHERE actif=1));
# Supprimer les Liquidé Radié en Sommeil
DELETE FROM jo.etablissements_actmp WHERE siren IN (SELECT DISTINCT siren FROM jo.annonces WHERE typeEven IN (1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1311, 1312, 1313, 1410, 1417, 1420, 1501, 1503, 1530, 2203, 2206, 2211, 2212, 6000, 6001, 6002, 6003, 6004));
# Suppression des entreprise en cessation juridique Insee
DELETE FROM jo.etablissements_actmp WHERE siren IN (SELECT DISTINCT insSIREN FROM insee.insee_even WHERE insEVE IN ('410'));
# Suppression des etablissements cesses INSEE
#DELETE FROM jo.etablissements_actmp LEFT JOIN insee.insee_even ON etablissements_actmp.siren=insee_even.insSIREN AND etablissements_actmp.nic=insee_even.insNIC WHERE insee_even.insEVE IN ('MPF','MNP','430');
# Supprimer les éblissements hors de France
DELETE FROM `etablissements_actmp` WHERE `adr_dep` =99;
# Suppression des entreprises presentes et inactives au RNCS
DELETE FROM `etablissements_actmp` WHERE siren IN (SELECT siren FROM `rncs_entrep` WHERE actif=0);
# Suppression des etablissements presents et inactifs au RNCS
DELETE etablissements_actmp FROM etablissements_actmp LEFT JOIN rncs_etab ON etablissements_actmp.siren=rncs_etab.siren AND etablissements_actmp.nic=rncs_etab.nic WHERE rncs_etab.actif=0;
# Ajouter les zones dirigants PP PM, bilans, achpost ?
ALTER TABLE etablissements_actmp
ADD nomCommercial VARCHAR(200) NOT NULL,
ADD web VARCHAR(100) NOT NULL,
ADD mail VARCHAR(100) NOT NULL,
ADD isin VARCHAR(12) NOT NULL,
ADD adrDom TINYINT(1) UNSIGNED NOT NULL,
ADD lieuAct TINYINT(2) UNSIGNED NOT NULL,
ADD explen TINYINT(1) UNSIGNED NOT NULL,
ADD explet TINYINT(1) UNSIGNED NOT NULL,
ADD actifEco TINYINT(1) UNSIGNED NOT NULL,
ADD presentRcs TINYINT(1) UNSIGNED NOT NULL,
ADD procolHisto TINYINT(1) UNSIGNED NOT NULL,
ADD tvaIntraCle TINYINT(2) UNSIGNED ZEROFILL NULL DEFAULT NULL,
ADD tvaIntraValide TINYINT(1) UNSIGNED NULL DEFAULT NULL,
ADD ape4_etab CHAR(4) NOT NULL,
ADD ape4_entrep CHAR(4) NOT NULL,
ADD NaceEtab CHAR(5) NOT NULL,
ADD NaceEntrep CHAR(5) NOT NULL,
ADD dateCrea_etab INT(8) UNSIGNED NOT NULL,
ADD dateCrea_ent INT(8) UNSIGNED NOT NULL,
ADD dateImmat INT(8) UNSIGNED NOT NULL,
ADD eff_entrep MEDIUMINT(7) NOT NULL,
ADD eff_etab MEDIUMINT(7) NOT NULL,
ADD distSP VARCHAR(38) NOT NULL,
ADD achPost VARCHAR(38) NOT NULL,
ADD codeCommune CHAR(5) NOT NULL,
ADD rivoli CHAR(5) NOT NULL,
ADD l93_x INT(7) UNSIGNED NULL,
ADD l93_y INT(7) UNSIGNED NULL,
ADD alt MEDIUMINT(9) NULL,
ADD precis TINYINT(1) NULL,
ADD zus CHAR(10) NULL,
ADD zru CHAR(10) NULL,
ADD zfu CHAR(10) NULL,
ADD cucs CHAR(10) NULL,
ADD zrr TINYINT(1) UNSIGNED NOT NULL,
ADD zafr TINYINT(1) UNSIGNED NOT NULL,
ADD dirCiv VARCHAR(4) NOT NULL,
ADD dirNom VARCHAR(20) NOT NULL,
ADD dirPrenom VARCHAR(30) NOT NULL,
ADD dirDateNaiss DATE NOT NULL,
ADD dirFct SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
ADD nbEtab MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbMPubli MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbMarques MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbAnnAsso MEDIUMINT(5) UNSIGNED NOT NULL,
ADD sirenGrp INT(9) UNSIGNED ZEROFILL NULL DEFAULT NULL,
ADD nbActio MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbPart MEDIUMINT(5) UNSIGNED NOT NULL,
ADD bilType ENUM('I','E','R') NOT NULL DEFAULT 'I',
ADD bilAnnee YEAR NOT NULL,
ADD bilCloture DATE NOT NULL,
ADD bilDuree TINYINT(2) UNSIGNED NOT NULL,
ADD bilTca TINYINT(1) UNSIGNED NOT NULL,
ADD bilEE BIGINT(13) NOT NULL,
ADD bilFL BIGINT(13) NOT NULL,
ADD bilFK BIGINT(13) NOT NULL,
ADD bilFR BIGINT(13) NOT NULL,
ADD bilGF BIGINT(13) NOT NULL,
ADD bilGP BIGINT(13) NOT NULL,
ADD bilGU BIGINT(13) NOT NULL,
ADD bilGW BIGINT(13) NOT NULL,
ADD bilHD BIGINT(13) NOT NULL,
ADD bilHH BIGINT(13) NOT NULL,
ADD bilHL BIGINT(13) NOT NULL,
ADD bilHM BIGINT(13) NOT NULL,
ADD bilHN BIGINT(13) NOT NULL,
ADD bilYP INT(8) NOT NULL,
ADD avisCs TINYINT(2) UNSIGNED ZEROFILL NULL DEFAULT NULL,
ADD risque TINYINT(1) UNSIGNED NOT NULL;
# Ajout des codes ISIN
UPDATE jo.etablissements_actmp, sdv1.bourse_isin SET etablissements_actmp.isin=sdv1.code_isin WHERE etablissements_actmp.siren=bourse_isin.siren AND bourse_isin.siren>1000;
# Ajout du code Cedex + ville
CREATE /*TEMPORARY*/ TABLE jo.tmp (
insSIREN INT(9) UNSIGNED ZEROFILL NOT NULL,
insNIC MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
insL6_POST VARCHAR(38) NOT NULL,
PRIMARY KEY (insSIREN,insNIC)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT insSIREN, insNIC, insL6_POST
FROM insee.insee_notices b1
WHERE b1.dateNotice = (
SELECT MAX( b2.dateNotice )
FROM insee.insee_notices b2
WHERE b1.insSIREN = b2.insSIREN
AND b1.insNIC = b2.insNIC
AND b2.insL6_POST LIKE '%CEDEX%' );
UPDATE etablissements_actmp, tmp SET etablissements_actmp.achPost=tmp.insL6_POST WHERE etablissements_actmp.siren=tmp.insSIREN AND etablissements_actmp.nic=tmp.insNIC;
DROP TABLE tmp;
# Ajout des codes NAF4
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
ape4_etab CHAR(4) NOT NULL,
ape4_entrep CHAR(4) NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO `jo`.`tmp` SELECT siren, nic, apet4, apen4 FROM `insee`.`bascule`;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.ape4_etab=tmp.ape4_etab, etablissements_actmp.ape4_entrep=tmp.ape4_entrep
WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic;
DROP TABLE tmp;
# Ajout du nombre d'éblissements Actifs
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nbEtab MEDIUMINT(5) UNSIGNED NOT NULL,
PRIMARY KEY (`siren`)
);
INSERT IGNORE INTO tmp SELECT siren, COUNT(*) as nbEtab FROM etablissements_actmp GROUP BY siren HAVING nbEtab>1;
UPDATE etablissements_actmp SET nbEtab=1;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbEtab=tmp.nbEtab WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
# Ajout de la distribution spéale, de la civilitées PP, des effectifs et date de créion éb
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED NOT NULL,
distSP VARCHAR(38) NOT NULL,
civ TINYINT(1) UNSIGNED NOT NULL,
effEn INT(6) UNSIGNED NOT NULL,
effEt INT(6) UNSIGNED NOT NULL,
dateCrea_etab INT(8) UNSIGNED NOT NULL,
dateCrea_ent INT(8) UNSIGNED NOT NULL,
rivoli CHAR(5) NOT NULL,
actifEco TINYINT(1) UNSIGNED NOT NULL,
lieuAct TINYINT(2) UNSIGNED NOT NULL,
codeCommune CHAR(5) NOT NULL,
explen TINYINT(1) UNSIGNED NOT NULL,
explet TINYINT(1) UNSIGNED NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp
SELECT SIREN, NIC, ADR_DISTSP, IF( CIVILITE=2,'MME',IF(CIVILITE=1,'M','')) AS CIVILITE, EFF_ENT, EFF_ET,
IF(DCRET>19000000,IF(DCRET%100>0,DCRET,DCRET+1),0) AS DCRET,
IF(DCREN>19000000,IF(DCREN%100>0,DCREN,DCREN+1),0) AS DCREN,
CODEVOIE, actifEco, LIEUACT, CONCAT(ADR_DEP,ADR_COM) AS codeCommune,
IF(EXPLEN='O',1,0) AS EXPLEN,
IF(EXPLET='O',1,0) AS EXPLET FROM insee.identite WHERE ACTIF%10=1;
UPDATE etablissements_actmp, tmp SET
etablissements_actmp.distSP=tmp.distSP,
etablissements_actmp.dirCiv=tmp.civ,
etablissements_actmp.eff_entrep=tmp.effEn,
etablissements_actmp.eff_etab=tmp.effEt,
etablissements_actmp.dateCrea_etab=tmp.dateCrea_etab,
etablissements_actmp.dateCrea_ent=tmp.dateCrea_ent,
etablissements_actmp.rivoli=tmp.rivoli,
etablissements_actmp.actifEco=tmp.actifEco,
etablissements_actmp.lieuAct=tmp.lieuAct,
etablissements_actmp.codeCommune=tmp.codeCommune,
etablissements_actmp.explen=tmp.explen,
etablissements_actmp.explet=tmp.explet
WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic;
DROP TABLE tmp;
# Ajout du Téphone si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
tel INT(10) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, telephone
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='tel');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.tel=tmp.tel WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.tel=0;
DROP TABLE tmp;
# Ajout du Fax si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
tel INT(10) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, telephone
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='fax');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.fax=tmp.tel WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.fax=0;
DROP TABLE tmp;
# Ajout du site Web et du mail
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
web VARCHAR(100) NOT NULL,
mail VARCHAR(100) NOT NULL,
PRIMARY KEY (siren)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, web, mail FROM infos_entrep;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.web=tmp.web, etablissements_actmp.mail=tmp.mail WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
# Ajout du Web si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
web VARCHAR(100) NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, infoTel
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='web');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.web=tmp.web WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.web='';
DROP TABLE tmp;
# Ajout du Mail si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
mail VARCHAR(100) NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, infoTel
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='mail');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.mail=tmp.mail WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.mail='';
DROP TABLE tmp;
# Ajout de la civilitédu nom et du prém du principal dirigeant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
dirCiv CHAR(4) NOT NULL,
dirNom CHAR(20) NOT NULL,
dirPrenom CHAR(30) NOT NULL,
dirDateNaiss DATE NOT NULL,
dirFct SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, civilite, nom, prenom, naissance_date, fonction_code
FROM jo.rncs_dirigeants b1
WHERE b1.fonction_code = (
SELECT MAX(b2.fonction_code)
FROM jo.rncs_dirigeants b2
WHERE b1.siren = b2.siren
AND b2.actif=1
AND b2.nom<>''
AND b2.fonction_code BETWEEN 200 AND 2000);
UPDATE etablissements_actmp, tmp SET etablissements_actmp.dirCiv=tmp.dirCiv, etablissements_actmp.dirNom=tmp.dirNom, etablissements_actmp.dirPrenom=tmp.dirPrenom, etablissements_actmp.dirDateNaiss=tmp.dirDateNaiss, etablissements_actmp.dirFct=tmp.dirFct WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.dirNom=rncs_entrep.nom,
etablissements_actmp.dirPrenom=rncs_entrep.prenom,
etablissements_actmp.dirDateNaiss=rncs_entrep.dateNaiss,
etablissements_actmp.dirFct=1050
WHERE etablissements_actmp.siren=rncs_entrep.siren
AND rncs_entrep.actif=1
AND etablissements_actmp.dirNom=''
AND rncs_entrep.nom<>''
AND rncs_entrep.cj<2000;
# Ajout de la date d'immatriculation
UPDATE etablissements_actmp, greffes_identite SET
etablissements_actmp.dateImmat=greffes_identite.dateCreation*1
WHERE etablissements_actmp.siren=greffes_identite.siren;
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.dateImmat=rncs_entrep.dateImma*1
WHERE etablissements_actmp.siren=rncs_entrep.siren;
# Ajout de la présence dans le répertoire RCS
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.presentRcs=1
WHERE etablissements_actmp.siren=rncs_entrep.siren;
# Ajout du nomCommercial
UPDATE etablissements_actmp, rncs_etab SET
etablissements_actmp.nomCommercial=rncs_etab.nomCommercial
WHERE etablissements_actmp.siren=rncs_etab.siren AND etablissements_actmp.nic=rncs_etab.nic;
# Ajout des enseignes RNCS absentes de l'INSEE
UPDATE etablissements_actmp, rncs_etab SET
etablissements_actmp.enseigne=rncs_etab.enseigne
WHERE etablissements_actmp.siren=rncs_etab.siren AND etablissements_actmp.nic=rncs_etab.nic AND etablissements_actmp.enseigne='';
# Ajout des sigles RNCS absents de l'INSEE
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.sigle=rncs_entrep.sigle
WHERE etablissements_actmp.siren=rncs_entrep.siren AND etablissements_actmp.sigle='';
# Ajout des numéros de TVA
UPDATE jo.etablissements_actmp, sdv1.siren_tva SET etablissements_actmp.tvaIntraValide=1, etablissements_actmp.tvaIntraCle=siren_tva.cle
WHERE etablissements_actmp.siren=siren_tva.siren AND siren_tva.cle IS NOT NULL;
UPDATE jo.etablissements_actmp, sdv1.siren_tva SET etablissements_actmp.tvaIntraValide=0
WHERE etablissements_actmp.siren=siren_tva.siren AND siren_tva.cle IS NULL;
# Ajout de l'indicateur Présence de Procol dans l'historique
UPDATE etablissements_actmp, rncs_jugements SET
etablissements_actmp.procolHisto=1
WHERE etablissements_actmp.siren=rncs_jugements.siren;
UPDATE etablissements_actmp, annonces SET
etablissements_actmp.procolHisto=1
WHERE etablissements_actmp.siren=annonces.siren AND etablissements_actmp.procolHisto=0 AND annonces.typeEven BETWEEN 1000 AND 1999;
# Ajout de la cote spéciale GE
UPDATE jo.etablissements_actmp, sdv1.ge_cs2
SET etablissements_actmp.avisCs=REPLACE(REPLACE(REPLACE(REPLACE(ge_cs2.cs,'I','10'),'P','15'),'D','39'),'T','43')
WHERE etablissements_actmp.siren=ge_cs2.siren AND (ge_cs2.dateSuppr=0 OR ge_cs2.dateConf>ge_cs2.dateSuppr)
AND (ge_cs2.dateFin=0 OR ge_cs2.dateFin>NOW()) AND ge_cs2.cs NOT IN (20,22,27,33,34);
# Ajout du niveau de risque
UPDATE etablissements_actmp SET risque=1 WHERE siren IN (SELECT siren FROM scores_surveillance WHERE indiScore<40);
UPDATE etablissements_actmp SET risque=1 WHERE avisCs IN (10, 11, 12, 13, 15, 16, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 50);
UPDATE etablissements_actmp SET risque=1 WHERE procolHisto=1;
UPDATE etablissements_actmp SET risque=1 WHERE actifEco=0 AND siege=1 AND (cj<3000 OR cj>9000);
UPDATE etablissements_actmp SET risque=0 WHERE siren IN (SELECT siren FROM scores_surveillance WHERE indiScore>39);
# Ajout du nombre d'actionnaires et de participations actives
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nbEntrep MEDIUMINT(5) UNSIGNED NOT NULL,
PRIMARY KEY (siren)
);
INSERT IGNORE INTO tmp SELECT siren1 AS siren, COUNT(*) AS nbEntrep FROM liens WHERE siren1>10000 AND actif=1 AND ActionPart=1 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbActio=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
INSERT IGNORE INTO tmp SELECT siren1 AS siren, COUNT(*) AS nbEntrep FROM liens WHERE siren1>10000 AND actif=1 AND ActionPart=2 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbPart=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
# Ajout du nombre de marchés publics gagnés
INSERT IGNORE INTO tmp SELECT siren, COUNT(*) AS nbEntrep FROM boamp_lots WHERE siren>10000 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbMPubli=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
# Ajout du nombre de marques
INSERT IGNORE INTO tmp SELECT sirenDeposant AS siren, COUNT(*) AS nbEntrep FROM bopi.marques WHERE sirenDeposant>10000 GROUP BY sirenDeposant;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbMarques=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
# Ajout du nombre d'annonces JO Associations
INSERT IGNORE INTO tmp SELECT siren, COUNT(*) AS nbEntrep FROM asso WHERE siren>10000 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbAnnAsso=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
DROP TABLE tmp;
# Jonction temporaire des tables zonage et zonageXY
CREATE TABLE tmp
SELECT x.address, x.rivoli, x.l93_x, x.l93_y, x.alt, x.precis, x.adrNum, x.adrIndRep, x.adrTypeVoie, x.adrLibVoie, x.adr_cp, x.adr_ville, z.zus, z.zru, z.zfu, z.cucs
FROM zonageXY x
LEFT JOIN zonage z ON x.address=z.address AND x.adr_cp=z.adr_cp AND x.adr_ville=z.adr_ville
WHERE x.l93_x IS NOT NULL AND x.precis>5 AND x.l93_x>0 AND x.l93_y>0 AND x.address<>'0000' AND x.adr_cp<>'' AND x.adr_cp<>'00000';
ALTER TABLE tmp ADD INDEX (adrNum,adrIndRep,adrTypeVoie,adrLibVoie,adr_cp,adr_ville);
# Mise à jour des Lamberts, de l'altitude et des zones Prioritaires
UPDATE etablissements_actmp, tmp
SET etablissements_actmp.l93_x =tmp.l93_x,
etablissements_actmp.l93_y =tmp.l93_y,
etablissements_actmp.alt =tmp.alt,
etablissements_actmp.precis=tmp.precis,
etablissements_actmp.zus =tmp.zus,
etablissements_actmp.zru =tmp.zru,
etablissements_actmp.zfu =tmp.zfu,
etablissements_actmp.cucs =tmp.cucs
WHERE etablissements_actmp.adr_num =tmp.adrNum AND
etablissements_actmp.adr_btq =tmp.adrIndRep AND
etablissements_actmp.adr_typeVoie=tmp.adrTypeVoie AND
etablissements_actmp.adr_libVoie =tmp.adrLibVoie AND
etablissements_actmp.adr_cp =tmp.adr_cp AND
etablissements_actmp.adr_ville =tmp.adr_ville;
DROP TABLE tmp;
# Ajout des marqueurs ZRR et ZAFR
UPDATE etablissements_actmp, zonageInsee
SET etablissements_actmp.zrr=1
WHERE etablissements_actmp.codeCommune=zonageInsee.codeInsee AND zonageInsee.typeZone='ZRR';
UPDATE etablissements_actmp, zonageInsee
SET etablissements_actmp.zafr=1
WHERE etablissements_actmp.codeCommune=zonageInsee.codeInsee AND zonageInsee.typeZone='ZAFR' AND canton=0;
# Correction du capital si absent (Alsace, Moselle, DOM...)
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
DA BIGINT(20) UNSIGNED NOT NULL,
dateExercice INT(8) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren,dateExercice)
);
INSERT IGNORE INTO jo.tmp
SELECT siren, DA, dateExercice FROM bilans_postes WHERE siren IN (
SELECT siren FROM etablissements_actmp WHERE cj>=2000 AND capital=0 AND capitalDev IN ('','EUR') AND presentRcs=1
) ORDER BY siren ASC, dateExercice DESC;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.capital=tmp.DA WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
# Les controles et zones issue des bilans seront proposees lors de l'extraction !
ALTER TABLE etablissements_actmp
ADD INDEX idxEntrepApeCA(siege,ape_entrep,bilFL),
ADD INDEX idxEntrepApeCommune(siege,ape_entrep,adr_dep,adr_com),
ADD INDEX idxSirenGrpSiege(sirenGrp,siege),
ADD INDEX idxRangSiege(rang,siege);

View File

@ -1 +0,0 @@
mysql -h192.168.3.30 -pscores -N jo < /var/www/batch/clients/exportKompassRisque.sql > /home/data/clients/kompass/sdKompassRisques.txt

View File

@ -1,4 +0,0 @@
SELECT CONCAT(siren, REPLACE(REPLACE(risque,1,'C'),0,' ')) as LigneRisque
FROM etablissements_act
WHERE cj NOT IN (1900, 6540, 9110, 9150) AND siege=1
ORDER BY siren ASC;

View File

@ -1,45 +0,0 @@
2012-10-08-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
0 0 0 /home/data/ftp/creditsafe/recv/col20121008.txt
2012-10-08-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-09-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
0 0 0 /home/data/ftp/creditsafe/recv/col20121009.txt
2012-10-09-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-10-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
274 7563 51565 /home/data/ftp/creditsafe/recv/col20121010.txt
2012-10-10-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-11-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
356 10982 74419 /home/data/ftp/creditsafe/recv/col20121011.txt
2012-10-11-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-12-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
372 11653 79551 /home/data/ftp/creditsafe/recv/col20121012.txt
2012-10-12-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-13-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
397 11746 79537 /home/data/ftp/creditsafe/recv/col20121013.txt
2012-10-13-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-14-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
189 4812 32875 /home/data/ftp/creditsafe/recv/col20121014.txt
2012-10-14-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-15-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
0 0 0 /home/data/ftp/creditsafe/recv/col20121015.txt
2012-10-15-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-16-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
16 377 2637 /home/data/ftp/creditsafe/recv/col20121016.txt
2012-10-16-00-12 - Fin de l'export des procédures collectives pour CreditSafe.

View File

@ -1,14 +0,0 @@
#!/bin/sh
cd /var/www/batch/clients
DATE=`date '+%Y%m%d'`
DATEHEURE=`date '+%Y-%m-%d-%H-%I'`
echo -n "${DATEHEURE} - Début de l'export des procédures collectives pour CreditSafe...
"
mysql -uroot -pscores -h192.168.3.30 jo < exportPCL.sql > /home/data/ftp/creditsafe/recv/col${DATE}.txt
echo -n "Nombre de jugements exportés :
"
wc /home/data/ftp/creditsafe/recv/col${DATE}.txt
DATEHEURE=`date '+%Y-%m-%d-%H-%I'`
echo -n "${DATEHEURE} - Fin de l'export des procédures collectives pour CreditSafe.
"

View File

@ -1,9 +0,0 @@
SELECT siren AS RCS, typeEven as CODE_EVEN, raisonSociale as RAISON_SOCIALE, adresse AS ADRESSE1, CONCAT_WS(' ',codePostal,ville) AS ADRESSE2, dateJugement AS DATE_JUG, CONCAT_WS('/',inter1nom,inter2nom,inter3nom) AS MANDATAIRE, tribunal AS TRIBUNAL, DATE(dateInsert) AS DATE_FRAICHEUR
FROM annonces
WHERE typeEven BETWEEN 1100 AND 1999
AND date(dateInsert)>DATE_SUB(CURDATE(),INTERVAL 2 DAY)
# AND date(dateInsert)>='2010-05-01'
AND ( (source<>'PC' AND (codePostal BETWEEN 57000 AND 57999 OR codePostal BETWEEN 67000 AND 68999)) OR source='GC' );
# source NOT IN('GC','PC') AND typeEven BETWEEN 1100 AND 1999 AND (codePostal BETWEEN 57000 AND 57999 OR codePostal BETWEEN 67000 AND 68999) AND
# date(dateInsert)>DATE_SUB(CURDATE(),INTERVAL 2 DAY);
# dateInsert>20090301000000;

View File

@ -1,3 +0,0 @@
SELECT siren AS RCS, typeEven as CODE_EVEN, raisonSociale as RAISON_SOCIALE, adresse AS ADRESSE1, CONCAT_WS(' ',codePostal,ville) AS ADRESSE2, dateJugement AS DATE_JUG, CONCAT_WS('/',inter1nom,inter2nom,inter3nom) AS MANDATAIRE, tribunal AS TRIBUNAL, DATE(dateInsert) AS DATE_FRAICHEUR
FROM annonces
WHERE (idSaisie >0 OR inter1id >0 OR inter2id >0 OR inter3id >0) AND date(dateInsert)>20081001;

View File

@ -1,31 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('DIR_FTP_RECOCASH', '/home/data/ftp/recocash');
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération du/des flux Recocash...".EOL;
$dh = opendir(DIR_FTP_RECOCASH);
$ret=0;
while (false !== ($filename = readdir($dh))) {
if (substr($filename,0,1)<>'.' && strtolower(substr($filename, -4)<>'.txt')) {
$filename=DIR_FTP_RECOCASH.'/'.$filename;
$dateHeure=date('YmdHis', filectime($filename));
$fpR=fopen($filename, 'r');
$fpW=fopen($filename.'.sdin', 'w');
echo date('Y/m/d - H:i:s') ." - Conversion du fichier $filename".EOL;
while (!feof($fpR)) {
$ligneR = fgets($fpR);
$siren=substr($ligneR,0,9);
$ref=substr($ligneR,9,10);
$ligneW='CLI'.$dateHeure.'0000000000SURBODPRDFTSRECOCASH ';
$ligneW.=' '.$siren;
$ligneW.=' ';
$ligneW.=$ref.EOL;
fwrite($fpW, $ligneW);
}
fclose($fpR);
fclose($fpW);
}
}
echo date ('Y/m/d - H:i:s')." - FIN de la récupération du/des flux Recocash...".EOL;
?>

View File

@ -1,21 +0,0 @@
#!/bin/sh
cd /var/www/batch/clients
DATE=`date '+%Y%m%d'`
DATEHEURE=`date '+%Y-%m-%d-%H-%I'`
echo -n "${DATEHEURE} - Début du chargement de la téléphonie ARCEP...
"
wget -N http://www.arcep.fr/fileadmin/reprise/dossiers/numero/liste-op-dec-num.xls
xls2csv -x liste-op-dec-num.xls -c liste-op-dec-num.csv
echo -n "Nombre d'opérateurs :
"
wc liste-op-dec-num.csv
/var/www/batch/loadCSV.php -e -s=, -d=telephonie -t=operateurs_tmp liste-op-dec-num.csv
wget -N http://www.arcep.fr/fileadmin/wopnum.xls
xls2csv -x wopnum.xls -c wopnum.csv
echo -n "Nombre d'indicatifs :
"
wc wopnum.csv
/var/www/batch/loadCSV.php -e -s=, -d=telephonie -t=indicatifs_tmp wopnum.csv
DATEHEURE=`date '+%Y-%m-%d-%H-%I'`
echo -n "${DATEHEURE} - Fin du chargement de la téléphonie ARCEP.
"

View File

@ -1,15 +0,0 @@
adding: 006_FR_20121014.csv (deflated 75%)
Connected to ftp.giant-net.com (62.58.14.80).
220 Microsoft FTP Service
331 Password required for ftp_sd_fr.
230 User ftp_sd_fr logged in.
200 Type set to I.
Local directory now /var/www/batch/clients
local: 006_FR_20121014.tmp remote: 006_FR_20121014.tmp
227 Entering Passive Mode (62,58,14,80,7,116).
125 Data connection already open; Transfer starting.
226 Transfer complete.
257334860 bytes sent in 619 secs (4.1e+02 Kbytes/sec)
350 File exists, ready for destination name
250 RNTO command successful.
221

View File

@ -1,24 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="006_FR_${DATE}.csv"
FILE_ZIP="006_FR_${DATE}.zip"
FILE_TMP="006_FR_${DATE}.tmp"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/indexFileGiant.sql > /var/www/batch/clients/indexFileGiant.sed
sed -e 's/\\/\\\\/g' /var/www/batch/clients/indexFileGiant.sed > /var/www/batch/clients/indexFileGiant.sed1
sed -e 's/"/\\"/g' /var/www/batch/clients/indexFileGiant.sed1 > /var/www/batch/clients/indexFileGiant.sed2
sed -e "s/'/\\\'/g" /var/www/batch/clients/indexFileGiant.sed2 > /var/www/batch/clients/indexFileGiant.sed3
sed -e 's/\t/\|/g' /var/www/batch/clients/indexFileGiant.sed3 > /var/www/batch/clients/$FILE_CSV
rm -f /var/www/batch/clients/indexFileGiant.sed
rm -f /var/www/batch/clients/indexFileGiant.sed1
rm -f /var/www/batch/clients/indexFileGiant.sed2
rm -f /var/www/batch/clients/indexFileGiant.sed3
zip -jDm /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_CSV
mv /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_TMP
ftp -inv ftp.giant-net.com<<ENDFTP
user ftp_sd_fr Choucroute
bin
lcd /var/www/batch/clients/
put $FILE_TMP
rename $FILE_TMP $FILE_ZIP
bye
ENDFTP

View File

@ -1,19 +0,0 @@
SELECT CONCAT(siren,nic) AS CompanyId,
CONCAT(siren,nic) AS BranchId,
REPLACE(raisonSociale,'|','') AS RegisteredName,
REPLACE(CONCAT(enseigne,' ',sigle,' ',marques),'|','') as TradingNames,
REPLACE(tel,'0000000000','') AS TelephoneNumber,
siren AS CompanyRegisterNumber,
REPLACE(adr_num,'0000','') AS HouseNumber,
adr_btq AS HouseNumberAdd,
REPLACE(CONCAT(adr_typeVoie,' ',adr_libVoie),'|','') AS Street,
adr_cp AS PostCode,
REPLACE(adr_ville,'|','') AS City,
'FR' AS Country,
REPLACE(TRIM(CONCAT(REPLACE(adr_num,'0000',''),' ',adr_btq,' ',adr_typeVoie,' ',adr_libVoie,' ',adr_comp,', ',adr_cp,' ',adr_ville)),'|','') AS EntireAddress,
IF(siege=1,'R','B'/*'T'*/) AS AddressType,
CONCAT(SUBSTRING(ape_etab,1,4),',',SUBSTRING(ape_entrep,1,4)) AS NaceCodes,
REPLACE(CONCAT(cj,' ',c.libelle, ' (',c.libelleEn,')'),'|','') AS LegalForm,
IF(rang=0,1,IF(siege=1,3,2)) AS BoostFactor
FROM etablissements_act, tabFJur c
WHERE presentRcs=1 AND cj=c.code AND LENGTH(raisonSociale)>0;/* AND siren IN (SELECT DISTINCT siren FROM rncs_entrep);*/

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
/var/www/batch/exportKompass.php -1
/var/www/batch/exportKompass.php -3
/var/www/batch/exportKompass.php -4
###/var/www/batch/exportKompass.php -5

View File

@ -1,94 +0,0 @@
2012/10/08 - 00:46:06 - Il y a 152159 siren Kompass en Presta 5...
2012/10/08 - 01:00:49 - 1000/152159 siren traites...
2012/10/08 - 01:14:56 - 2000/152159 siren traites...
2012/10/08 - 01:28:41 - 3000/152159 siren traites...
2012/10/08 - 01:42:28 - 4000/152159 siren traites...
2012/10/08 - 01:56:37 - 5000/152159 siren traites...
2012/10/08 - 02:11:43 - 6000/152159 siren traites...
2012/10/08 - 02:30:33 - 7000/152159 siren traites...
2012/10/08 - 02:47:06 - 8000/152159 siren traites...
2012/10/08 - 03:03:32 - 9000/152159 siren traites...
2012/10/08 - 03:19:35 - 10000/152159 siren traites...
2012/10/08 - 03:35:14 - 11000/152159 siren traites...
2012/10/08 - 03:50:48 - 12000/152159 siren traites...
2012/10/08 - 04:06:43 - 13000/152159 siren traites...
2012/10/08 - 04:21:37 - 14000/152159 siren traites...
2012/10/08 - 04:39:19 - 15000/152159 siren traites...
2012/10/08 - 04:57:05 - 16000/152159 siren traites...
2012/10/08 - 05:15:00 - 17000/152159 siren traites...
2012/10/08 - 05:33:22 - 18000/152159 siren traites...
2012/10/08 - 05:51:16 - 19000/152159 siren traites...
2012/10/08 - 06:05:50 - 20000/152159 siren traites...
2012/10/08 - 06:20:24 - 21000/152159 siren traites...
2012/10/08 - 06:34:55 - 22000/152159 siren traites...
2012/10/08 - 06:49:26 - 23000/152159 siren traites...
2012/10/08 - 07:04:15 - 24000/152159 siren traites...
2012/10/08 - 07:19:03 - 25000/152159 siren traites...
2012/10/08 - 07:33:38 - 26000/152159 siren traites...
2012/10/08 - 07:48:09 - 27000/152159 siren traites...
2012/10/08 - 08:02:47 - 28000/152159 siren traites...
2012/10/08 - 08:17:51 - 29000/152159 siren traites...
2012/10/08 - 08:32:53 - 30000/152159 siren traites...
2012/10/08 - 08:48:07 - 31000/152159 siren traites...
2012/10/08 - 09:02:45 - 32000/152159 siren traites...
2012/10/08 - 09:17:56 - 33000/152159 siren traites...
2012/10/08 - 09:32:35 - 34000/152159 siren traites...
2012/10/08 - 09:47:48 - 35000/152159 siren traites...
2012/10/08 - 10:02:27 - 36000/152159 siren traites...
2012/10/08 - 10:17:37 - 37000/152159 siren traites...
2012/10/08 - 10:32:17 - 38000/152159 siren traites...
2012/10/08 - 10:48:36 - 39000/152159 siren traites...
2012/10/08 - 11:04:52 - 40000/152159 siren traites...
2012/10/08 - 11:20:01 - 41000/152159 siren traites...
2012/10/08 - 11:34:46 - 42000/152159 siren traites...
2012/10/08 - 11:49:51 - 43000/152159 siren traites...
2012/10/08 - 12:04:29 - 44000/152159 siren traites...
2012/10/08 - 12:19:39 - 45000/152159 siren traites...
2012/10/08 - 12:34:13 - 46000/152159 siren traites...
2012/10/08 - 12:49:25 - 47000/152159 siren traites...
2012/10/08 - 13:04:02 - 48000/152159 siren traites...
2012/10/08 - 13:19:14 - 49000/152159 siren traites...
2012/10/08 - 13:33:52 - 50000/152159 siren traites...
2012/10/08 - 13:49:04 - 51000/152159 siren traites...
2012/10/08 - 14:03:41 - 52000/152159 siren traites...
2012/10/08 - 14:19:01 - 53000/152159 siren traites...
2012/10/08 - 14:33:39 - 54000/152159 siren traites...
2012/10/08 - 14:48:49 - 55000/152159 siren traites...
2012/10/08 - 15:03:24 - 56000/152159 siren traites...
2012/10/08 - 15:18:39 - 57000/152159 siren traites...
2012/10/08 - 15:33:14 - 58000/152159 siren traites...
2012/10/08 - 15:48:36 - 59000/152159 siren traites...
2012/10/08 - 16:03:17 - 60000/152159 siren traites...
2012/10/08 - 16:18:27 - 61000/152159 siren traites...
2012/10/08 - 16:33:01 - 62000/152159 siren traites...
2012/10/08 - 16:48:03 - 63000/152159 siren traites...
2012/10/08 - 17:02:35 - 64000/152159 siren traites...
2012/10/08 - 17:17:38 - 65000/152159 siren traites...
2012/10/08 - 17:32:08 - 66000/152159 siren traites...
2012/10/08 - 17:47:12 - 67000/152159 siren traites...
2012/10/08 - 18:01:42 - 68000/152159 siren traites...
2012/10/08 - 18:16:39 - 69000/152159 siren traites...
2012/10/08 - 18:31:33 - 70000/152159 siren traites...
2012/10/08 - 18:47:13 - 71000/152159 siren traites...
2012/10/08 - 19:01:41 - 72000/152159 siren traites...
2012/10/08 - 19:16:49 - 73000/152159 siren traites...
2012/10/08 - 19:31:21 - 74000/152159 siren traites...
2012/10/08 - 19:46:57 - 75000/152159 siren traites...
2012/10/08 - 20:01:36 - 76000/152159 siren traites...
2012/10/08 - 20:16:41 - 77000/152159 siren traites...
2012/10/08 - 20:31:27 - 78000/152159 siren traites...
2012/10/08 - 20:46:39 - 79000/152159 siren traites...
2012/10/08 - 21:01:14 - 80000/152159 siren traites...
2012/10/08 - 21:18:08 - 81000/152159 siren traites...
2012/10/08 - 21:34:45 - 82000/152159 siren traites...
2012/10/08 - 21:51:17 - 83000/152159 siren traites...
2012/10/08 - 22:07:52 - 84000/152159 siren traites...
2012/10/08 - 22:22:52 - 85000/152159 siren traites...
2012/10/08 - 22:37:23 - 86000/152159 siren traites...
2012/10/08 - 22:51:51 - 87000/152159 siren traites...
2012/10/08 - 23:06:26 - 88000/152159 siren traites...
2012/10/08 - 23:20:52 - 89000/152159 siren traites...
2012/10/08 - 23:35:18 - 90000/152159 siren traites...
2012/10/08 - 23:49:45 - 91000/152159 siren traites...
2012/10/09 - 00:04:45 - 92000/152159 siren traites...
2012/10/09 - 00:19:45 - 93000/152159 siren traites...

View File

@ -1,42 +0,0 @@
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status Table is already up to date
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status Table is already up to date
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK

View File

@ -1,5 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="006_FR_${DATE}.csv"
/var/www/batch/repriseActivite.php >> /var/www/log/repriseActivite.log
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/proceduresQ.sql

View File

@ -1,112 +0,0 @@
# Création de la table SQL pour les liens Actionnaires rapides
DROP TABLE IF EXISTS liensFast;
CREATE TABLE liensFast (
sirenFille int(9) unsigned zerofill NOT NULL,
pct double NOT NULL,
sirenMere int(9) unsigned zerofill NOT NULL,
UNIQUE KEY sirenFille(sirenFille,pct,sirenMere),
KEY sirenMere(sirenMere)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT IGNORE INTO liensFast
SELECT Siren1 AS sirenFille, Pmin AS pct, Siren2 AS sirenMere
FROM liens
WHERE Siren1 BETWEEN 10000 AND 999999000 AND actif=1
AND ActionPart=1 AND (Pmin>50 OR MajMin='+') AND Siren2 BETWEEN 10000 AND 999999000;
# Création de la table des montants des ventes
DROP TABLE IF EXISTS scores_ventes;
CREATE TABLE scores_ventes
SELECT id, siren, nic, Bodacc_Date_Parution, Tribunal_Code, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, activite, typeEven, commentaires, dateEffet, publicationNom, publicationDate, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, VenteMt, VenteDev, bienAcqui, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoAdrNum, oppoAdrIndRep, oppoAdrTypVoie, oppoAdrLibVoie, oppoAdrComp, oppoCP, oppoVille, perimetre, dateInsert, dateUpdate
FROM bodacc_detail
WHERE VenteMt>0 AND siren>0 AND dateSuppr=0
ORDER BY id ASC;
ALTER TABLE scores_ventes
ADD nafEn CHAR( 5 ) NOT NULL AFTER nic,
ADD nafEt CHAR( 5 ) NOT NULL AFTER nafEn,
ADD codeCommune CHAR( 5 ) NOT NULL AFTER nafEt,
ADD INDEX idxSiret (siren, nic);
UPDATE jo.scores_ventes, insee.identite
SET scores_ventes.nafEn=identite.APE_ENT,
scores_ventes.nafEt=identite.APE_ETAB,
scores_ventes.codeCommune=CONCAT(IF(identite.ADR_DEP<10,CONCAT('0',identite.ADR_DEP*1),identite.ADR_DEP),identite.ADR_COM)
WHERE scores_ventes.siren>1000 AND scores_ventes.nic>9 AND
scores_ventes.siren=identite.SIREN AND scores_ventes.nic=identite.NIC;
/*
UPDATE jo.scores_ventes, insee.identite
SET scores_ventes.nafEn=identite.APE_ENT,
scores_ventes.nafEt=identite.APE_ETAB,
scores_ventes.codeCommune=CONCAT(IF(identite.ADR_DEP<10,CONCAT('0',identite.ADR_DEP*1),identite.ADR_DEP),identite.ADR_COM)
WHERE scores_ventes.siren>1000 AND scores_ventes.nic=0 AND
scores_ventes.siren=identite.SIREN AND identite.SIEGE=1 AND identite.ACTIF=1;
*/
UPDATE jo.scores_ventes, insee.identite
SET scores_ventes.nafEn=identite.APE_ENT,
scores_ventes.nafEt=identite.APE_ETAB,
scores_ventes.codeCommune=CONCAT(IF(identite.ADR_DEP<10,CONCAT('0',identite.ADR_DEP*1),identite.ADR_DEP),identite.ADR_COM)
WHERE scores_ventes.siren>1000 AND scores_ventes.nic=0 AND
scores_ventes.siren=identite.SIREN AND scores_ventes.codePostal=identite.ADR_CP;
ALTER TABLE scores_ventes
ADD INDEX idxNafEtCommune (nafEt, codeCommune, Bodacc_Date_Parution, VenteMt, VenteDev),
ADD INDEX idxNafEnCommune (nafEn, codeCommune, Bodacc_Date_Parution, VenteMt, VenteDev);
# Création de la table des entreprises les plus consultées
DROP TABLE IF EXISTS jo.rangSiren;
CREATE TABLE jo.rangSiren (
siren int(9) unsigned zerofill NOT NULL,
`rang` mediumint unsigned NOT NULL,
PRIMARY KEY (siren)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT IGNORE INTO jo.rangSiren
SELECT siren, COUNT(*) AS `rang`
FROM sdv1.`logs`
WHERE page='identite' AND siren<>0 GROUP BY siren ORDER BY `rang` DESC;
# Liste des Activites BODACC
DROP TABLE IF EXISTS bodacc_activite;
CREATE TABLE bodacc_activite
SELECT siren, activite
FROM activiteReel
WHERE siren>1000
GROUP BY siren
HAVING MAX(dateSource);
# Ajout d'un index pour les jointures
ALTER TABLE bodacc_activite ADD PRIMARY KEY(siren);
# Ajout de l'APE entreprise
ALTER TABLE bodacc_activite ADD apen5 CHAR(5) NOT NULL AFTER siren;
UPDATE bodacc_activite, etablissements
SET bodacc_activite.apen5=etablissements.ape_entrep
WHERE bodacc_activite.siren=etablissements.siren AND etablissements.actif=1 AND etablissements.siege=1;
# Ajout de l'activite FT
ALTER TABLE bodacc_activite ADD an8 INT(8) UNSIGNED ZEROFILL NOT NULL AFTER apen5;
UPDATE bodacc_activite, telephonie
SET bodacc_activite.an8=telephonie.telephone
WHERE bodacc_activite.siren=telephonie.siren AND telephonie.typeTel='an8';
### Purges diverses
# Suppression des requêtes TVA sans réponses
DELETE FROM sdv1.siren_tva WHERE duree>14 AND cle IS NULL;
OPTIMIZE TABLE sdv1.siren_tva;
# Optimisation de bodacc_sirenage
OPTIMIZE TABLE bodacc_sirenage;
# Historisation des requêtes XML Infogreffe (hors bilans saisit)
INSERT IGNORE INTO historiques.greffes_requetes
SELECT *
FROM jo.greffes_requetes
WHERE dateRequete<DATE(NOW()) AND NOT (TYPE='BS' AND `option`<>'' AND codeErreur='');
DELETE FROM greffes_requetes WHERE dateRequete<DATE(NOW()) AND NOT (TYPE='BS' AND `option`<>'' AND codeErreur='');
OPTIMIZE TABLE greffes_requetes;

View File

@ -1,6 +0,0 @@
ftp -inv ftp.giant-net.com<<ENDFTP
user ftp_sd_fr Choucroute
bin
put $1
bye
ENDFTP

View File

@ -1,13 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE1_CSV="Corporama_Sed_${DATE}.csv"
FILE1_ZIP="Corporama_Sed_${DATE}.csv.gz"
FILE2_CSV="Corporama_Sed_DIR_${DATE}.csv"
FILE2_ZIP="Corporama_Sed_DIR_${DATE}.csv.gz"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockCorporama.sql > /var/www/batch/clients/$FILE1_CSV
gzip /var/www/batch/clients/$FILE1_CSV
mv /var/www/batch/clients/$FILE1_ZIP /home/data/ftp/corporama/recv/$FILE1_ZIP
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockCorporamaDir.sql > /var/www/batch/clients/$FILE2_CSV
gzip /var/www/batch/clients/$FILE2_CSV
mv /var/www/batch/clients/$FILE2_ZIP /home/data/ftp/corporama/recv/$FILE2_ZIP

View File

@ -1,10 +0,0 @@
DROP TABLE IF EXISTS tmp.corporama;
CREATE TABLE tmp.corporama
SELECT concat(e.siren,nic) AS siret, e.siren, siege, raisonSociale, enseigne, sigle, substring(cj,1,2) as fj, if(adr_num<>0, adr_num*1,'') as adr_num, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, bilType, bilAnnee, bilTca, teff_entrep, dateCrea_ent, ape_entrep, IF(capitalDev<>'', CONCAT(capital*1,' ',capitalDev),'') AS capital, REPLACE(tel,'0000000000','') AS tel, REPLACE(fax,'0000000000','') AS fax, REPLACE(web,'http://http://','http://') AS web, activite
FROM jo.etablissements_act e
LEFT JOIN jo.bodacc_activite ON e.siren=bodacc_activite.siren
WHERE e.siren>10000 AND e.nic BETWEEN 10 AND 98000 AND e.cj NOT IN (0,1000,1400,1500,1600,1700,1800,1900,2100,2110,2200,2210,2220,2300,2310,2385,2900)
AND (presentRcs=1 OR e.cj BETWEEN 7000 AND 7999 OR e.cj IN(8310,8311,9110,9150,9220,9221,9223,9224,9230,9260,9300)) AND LENGTH(e.ape_entrep)=5;
ALTER TABLE tmp.corporama ADD INDEX idxSiren(siren);
SELECT siret, siege, raisonSociale, enseigne, sigle, fj, adr_num, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, bilType, bilAnnee, bilTca, teff_entrep, dateCrea_ent, ape_entrep, capital, tel, fax, web, activite
FROM tmp.corporama;

View File

@ -1,3 +0,0 @@
SELECT siren, nom, prenom, fonction_code
FROM jo.rncs_dirigeants
WHERE actif=1 AND nom<>'' AND siren IN (SELECT DISTINCT siren FROM tmp.corporama);

View File

@ -1,23 +0,0 @@
#!/bin/bash
JOUR=`date '+%w'`
if [ $JOUR!=0 ] ; then
echo "Nous ne sommes pas un dimanche"
exit
fi
DATE=`date '+%Y%m%d'`
FILE_CSV="Kadeal_Sed_${DATE}.csv"
FILE_ZIP="Kadeal_Sed_${DATE}.zip"
FILE_TMP="Kadeal_Sed_${DATE}.tmp"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockKadeal.sql > /var/www/batch/clients/$FILE_CSV
#bzip2 < /var/www/batch/clients/$FILE_CSV > /var/www/batch/clients/$FILE_TMP
zip -jDm /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_CSV
#mv /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_TMP
ftp -inv ftp.kadeal.com<<ENDFTP
user kadeal-sds wlGsNXqttq
bin
lcd /var/www/batch/clients/
cd import
put $FILE_ZIP
bye
ENDFTP
#rename $FILE_TMP $FILE_ZIP

View File

@ -1,23 +0,0 @@
# Preparation Dump Kadeal
DROP TABLE IF EXISTS dump_kadeal;
CREATE TABLE dump_kadeal
SELECT e.siren, e.nic, CONCAT(e.siren,e.nic) AS siret, e.siege, e.raisonSociale, e.enseigne, e.sigle, e.marques,
e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie,
REPLACE(TRIM(CONCAT(REPLACE(e.adr_num,'0000',''),' ',e.adr_btq,' ',e.adr_typeVoie,' ',e.adr_libVoie)),'|','') AS adresse1,
e.adr_comp AS adresse2, e.distSP AS adresse3, e.achPost AS adresse4, e.adr_cp, e.adr_ville,
REPLACE( e.tel, '0000000000', '' ) AS tel, REPLACE( e.fax, '0000000000', '' ) AS fax,
mail, REPLACE(web,'http://','') AS web, e.ape_entrep AS NAF,
e.bilTca AS tca, '' AS tcaconso, e.bilAnnee AS datebilan, e.eff_entrep,
CONCAT( e.dirCiv, ' ', e.dirNom, ' ', e.dirPrenom ) AS dirigeant1, e.dirFct AS dirigeant1fct,
'' AS dirigeant2, '' AS dirigeant2fct
FROM etablissements_act e
WHERE e.actif=1 AND e.siren>1000 AND e.cj NOT IN (0,1000,1400,1500,1600,1700,1800,1900,2100,2110,2200,2210,2220,2300,2310,2385,2900,6540,6541)
AND e.cj<7000 AND LENGTH(e.ape_entrep)=5;
ALTER TABLE dump_kadeal ADD INDEX idxSiren(siren);
SELECT siret, siege, raisonSociale, enseigne, sigle, marques,
adr_num, adr_btq, adr_typeVoie, adr_libVoie, adresse1, adresse2, adresse3, adresse4, adr_cp, adr_ville,
tel, fax, mail, /*web,*/ NAF, tca, tcaconso, datebilan, eff_entrep, dirigeant1, dirigeant1fct,
dirigeant2, dirigeant2fct, activite
FROM dump_kadeal e
LEFT JOIN bodacc_activite ON e.siren=bodacc_activite.siren;

View File

@ -1,18 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="Kadeal_Sed_${DATE}.csv"
FILE_ZIP="Kadeal_Sed_${DATE}.bz2"
FILE_TMP="Kadeal_Sed_${DATE}.tmp"
#mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockKadealExport.sql > /var/www/batch/clients/$FILE_CSV
#bzip2 < /var/www/batch/clients/$FILE_CSV > /var/www/batch/clients/$FILE_TMP
#zip -jDm /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_CSV
#mv /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_TMP
ftp -inv ftp.kadeal.com<<ENDFTP
user kadeal-sds wlGsNXqttq
bin
lcd /var/www/batch/clients/
cd import
put $FILE_ZIP
bye
ENDFTP
#rename $FILE_TMP $FILE_ZIP

View File

@ -1,6 +0,0 @@
SELECT siret, siege, raisonSociale, enseigne, sigle, marques,
adr_num, adr_btq, adr_typeVoie, adr_libVoie, adresse1, adresse2, adresse3, adresse4, adr_cp, adr_ville,
tel, fax, mail, /*web,*/ NAF, tca, tcaconso, datebilan, eff_entrep, dirigeant1, dirigeant1fct,
dirigeant2, dirigeant2fct, activite
FROM dump_kadeal e
LEFT JOIN bodacc_activite ON e.siren=bodacc_activite.siren;

View File

@ -1,47 +0,0 @@
; Informations sur la commune
depLu="-{}-1-11-{}-"
comLu="-{}-1-12-{}-"
popLu="-{}-1-14-{}-"
tailleLu="-{}-3-9-{}-"
; Ratio Valeurs Brutes
R801="-{}-1-27-{}-";Total des produits de fonctionnement=A
R802="-{}-1-32-{}-"; Dont impôts locaux
R803="-{}-1-38-{}-"; Autres impots & taxes
R804="-{}-1-44-{}-"; dotation globale de fonctionnement
R805="-{}-1-50-{}-";Total des charges de fonctionnement=B
R806="-{}-1-55-{}-"; dont charges de personnel
R807="-{}-1-61-{}-"; Achats et charges externes
R808="-{}-1-67-{}-"; charges financières
R809="-{}-1-73-{}-"; contingents
R810="-{}-1-79-{}-"; subventions versées
R811="-{}-1-85-{}-";Résultat comptable A-B=R
R812="-{}-1-96-{}-";Total des resources d'investissement=C
R813="-{}-1-101-{}-"; Dont emprunts bancaires et dettes assimilées
R814="-{}-1-107-{}-"; subventions recues
R815="-{}-1-113-{}-"; FCTVA
R816="-{}-1-73-{}-"; retour des biens affectés ?????? TOUS À "73" LIGNE 3373 ??????????????????????????
R817="-{}-1-125-{}-";TOTAL DES EMPLOIS D'INVESTISSEMENT=D
R818="-{}-1-130-{}-"; dont dépenses d'équipement
R819="-{}-1-136-{}-"; remboursement d'emprunts et dettes
R820="-{}-1-73-{}-"; charges a répartir
R821="-{}-1-73-{}-"; immobilisations affectées
R822="-{}-1-154-{}-";Besoin ou capacité de financement =D-C
R823="-{}-1-159-{}-"; en+ solde des opérations pour le compte de tiers
R824="-{}-1-164-{}-";'='besoin ou capacité de financement de la section investissement=E
R825="-{}-1-44-{}-";Résultat d'ensemble = R=E
R826="-{}-1-44-{}-";excédent brut de fonctionnement
R827="-{}-1-44-{}-";Capacité d'autofinancement CAF
R828="-{}-1-44-{}-";CAF nette du remboursement en capital des emprunts
R829="-{}-1-44-{}-";Encours total de la dette au 31/12
R830="-{}-1-44-{}-";annuité de la dette
R831="-{}-1-44-{}-";FONDS DE ROULEMENT
R832="-{}-1-44-{}-";Taxe d'habitation(base)
R833="-{}-1-44-{}-";Taxe foncière sur les propriété baties(base)
R834="-{}-1-44-{}-";Taxe foncière sur les propriété non baties(base)
R835="-{}-1-44-{}-";Cotisation foncière des entreprises
R836="-{}-1-44-{}-";Taxe d'habitation(tx & produits)
R837="-{}-1-44-{}-";Taxe foncière sur les propriété baties(tx & produits)
R838="-{}-1-44-{}-";Taxe foncière sur les propriété non baties(tx & produits)
R839="-{}-1-44-{}-";Compensation relai 2010(tx & produits)
R840="-{}-1-44-{}-";cotis fonc au profit état 2010(tx & produits)
R841="-{}-1-44-{}-";potentiel fiscal

View File

@ -1,11 +0,0 @@
; Informations sur la commune
depLu="-{}-1-11-{}-"
comLu="-{}-1-12-{}-"
popLu="-{}-1-14-{}-"
tailleLu="-{}-3-9-{}-"
; Ratio Valeurs Brutes
R801="-{}-1-27-{}-"
R802="-{}-1-32-{}-"
R803="-{}-1-38-{}-"
R804="-{}-1-44-{}-";blabla

File diff suppressed because it is too large Load Diff

View File

@ -1,138 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL);
$modeDebug=false;
$separator='/t';
$finLigne=false;
$argv=$_SERVER['argv'];
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]... FICHIER
Conversion d'un fichier CSV en fichier Plat format Fixe.
Options :
-v Mode bavard
-s=CHAR séparateur de champs (virgule, point-virgule*, /t=TAB, /p=|, etc...)
-c=CHAR caractère encadrant les zones alphanumériques (inopérationnel)
-l=XXXX Taille maximale d'une ligne
-f=/n Fin de ligne Linux par défaut (Windows /r/n)
(*): Valeurs par défaut !
";
$argv=$_SERVER['argv'];
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v': $modeDebug=true; break;
case 's': $separator=substr($argv[$i],3); break;
case 'c': $chaine=substr($argv[$i],3); break;
case 'l': $lenMaxLine=substr($argv[$i],3); break;
case 'f': $finLigne=substr($argv[$i],3); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !".EOL);
}
} else
$fichier_csv[]=$argv[$i];
}
if ($separator=='/t') {
$separator="\t";
echo "séparateur = TAB\n";
} elseif ($separator=='/p') {
$separator='|';
echo "séparateur = PIPE\n";
} elseif (!isset($separator) || $separator=='') {
$separator=';';
echo "séparateur = '$separator'\n";
} else
echo "séparateur = '$separator'\n";
if ($finLigne=='/r')
$finLigne="\r";
elseif ($finLigne=='/n')
$finLigne="\n";
elseif ($finLigne=='/r/n')
$finLigne="\r\n";
else
$finLigne=EOL;
echo date ('Y/m/d - H:i:s') . " - Début de la conversion...".EOL;
foreach ($fichier_csv as $iFichier=>$nomFichier) {
$fp=fopen($nomFichier, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - Impossible d'ouvrir le fichier : $nomFichier !".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
die();
}
$nbLignes=$iLigne=0;
$tabEntete=$tabTailles=$tabLignes=$tabEntiers=array();
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier $nomFichier...".EOL;
while (($data = fgetcsv($fp, 10000, $separator)) !== FALSE)
{
$nbLignes++;
if ($nbLignes==1)
{ // L'entête contient la structure du fichier
// On compte le nombre de colonnes du fichier
$nbColonnes=count($data);
echo date ('Y/m/d - H:i:s')." - Le fichier '$nomFichier' contient $nbColonnes colonnes.".EOL;
for($i=0; $i<$nbColonnes; $i++) {
$tabEntete[$i]=$data[$i];
$tabEntiers[$i]=1;
}
} else {
// Lecture des tailles maximales des colonnes
for($i=0; $i<$nbColonnes; $i++) {
if (strlen($data[$i])>@$tabTailles[$i]) {
$tabTailles[$i]=strlen($data[$i]);
$tabLignes[$i]=$nbLignes;
}
if ($data[$i]<>'' && strtolower($data[$i])<>strtoupper($data[$i])) $tabEntiers[$i]=0;
}
}
}
echo date ('Y/m/d - H:i:s')." - Le fichier '$nomFichier' contient $nbLignes lignes.".EOL;
foreach ($tabEntete as $i=>$entete) {
if ($tabEntiers[$i]==0) $strInt='alphanum. ';
else $strInt='num. ';
echo "$i - $entete : ". $tabTailles[$i]. " caractères $strInt(ligne ".$tabLignes[$i].')'.EOL;
}
rewind($fp);
$fpOut=fopen(str_replace('.csv','.txt',$nomFichier), 'w');
echo date ('Y/m/d - H:i:s')." - Début de conversion du fichier en texte...".EOL;
while (($data = fgetcsv($fp, 10000, $separator)) !== FALSE)
{
$iLigne++;
$str='';
if ($iLigne>1) {
// Lecture des tailles maximales des colonnes
for($i=0; $i<$nbColonnes; $i++) {
if ($tabEntiers[$i]==0)
$str.=initstr($data[$i], $tabTailles[$i]);
else
$str.=initstr($data[$i], $tabTailles[$i], '0', ALIGN_RIGHT);
}
//fwrite($fpOut, $str.EOL);
fwrite($fpOut, $str.$finLigne);
}
}
echo date ('Y/m/d - H:i:s')." - Conversion réussie du fichier '$nomFichier' en fichier plat ($iLigne lignes).".EOL;
fclose ($fp);
fclose ($fpOut);
}
?>

View File

@ -1,166 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(FWK_PATH.'mail/sendMail.php');
$iGreffe=new MGreffes();
$iInsee=new MInsee();
$iTel=new MTel();
$iDb=new WDB('sdv1');
$sendMail=true;
$strInfoScript='Usage : '.basename($argv[0]). " <option> loginUserDroits FICHIER.csv
Création automatisée de comptes utilisateurs Extranet
Options :
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
-m Ne pas envoyer le mail à l'utilisateur
";
$argv=$_SERVER['argv'];
$tabFichiers=array();
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v': $modeDebug=true; break;
case 'm': $sendMail=false; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichiers[]=$argv[$i];
}
$loginUserDroits=@$tabFichiers[0];
if (!isset($tabFichiers[0]))
die("Compte Extranet/WS non communiqué !".EOL);
$ret=$iDb->select('utilisateurs', 'login,formatMail,pref,droits,lienExtranetMail,nbReponses', "login='$loginUserDroits'", false);
$profil=@$ret[0];
if (!isset($profil['login'])) die("Compte Extranet/WS inexistant : $loginUserDroits !".EOL);
if (!isset($tabFichiers[1])) die("Aucun fichier CSV communiqué !".EOL);
$tabLignes=file($tabFichiers[1]);
$nbLignes=count($tabLignes);
foreach($tabLignes as $i=>$ligne) {
$tabCells=explode("\t", $ligne);
//print_r($tabCells);
if ($i==0 && $tabCells[0]<>'idClient') die('idClient non trouvé en 1ère celule de la 1ère ligne !'.EOL);
elseif ($i==0) continue;
$login=trim(preg_replace('/\s+/','',$tabCells[1]));
$password=trim(preg_replace('/\s+/','',$tabCells[2]));
$email=trim(preg_replace('/\s+/','',$tabCells[3]));
$tabInsert=array( 'idClient' => $tabCells[0],
'login' => $login,
'password' => $password,
'email' => $email,
'referenceParDefaut'=> $tabCells[4],//RéférenceParDéfaut
'nom' => $tabCells[5],
'prenom' => $tabCells[6],
'actif' => 1,
'deleted' => 0,
'typeCompte' => 'PROD', // 'TEST'
'profil' => 'Utilisateur',
'filtre_ip' => '',
'civilite' => 'M', // 'Mme', 'Mlle'
'lang' => 'fr',
'formatMail' => $profil['formatMail'], // 'txt1', 'txt2', 'htm', 'csv', 'xls', 'pdf', 'pdf1'
'pref' => $profil['pref'], // 'naf4 nace news mappy cartes',
'droits' => $profil['droits'], // 'searchent searchdir identite liens etablissements groupe eveninsee avisinsee dirigeants indiscore monprofil',
'lienExtranetMail' => $profil['lienExtranetMail'],
'nbReponses' => $profil['nbReponses'],
'dateDebutCompte' => date('Ymd'),
'dateInsert' => date('YmdHis'),
);
/* raisonSociale
siret
adrNum
adrIndRep
adrTypeVoie
adrLibVoie
adrCp
adrVille
adrComp
tel
fax
mobile
dateInscription
dateValidation
*/
echo date('Y/m/d - H:i:s'). " - Compte n°$i/$nbLignes '".$login."', ";
if ($iDb->insert('utilisateurs', $tabInsert, false)) {
$message="Bonjour,
Dans le cadre du Contrat établi entre UTC Fire & Security Services et Scores & Décisions, nous avons le plaisir de vous remettre les éléments nécessaires afin que vous puissiez utiliser notre extranet.
Adresse site :
http://extranet.scores-decisions.com
Codes d'accès et mot de passe :
Identifiant : ".$login."
Mot de passe : ".$password." (nous vous conseillons de faire un copier/coller de ce mot de passe)
Lors de vos premières connexions, nous vous invitons à modifier votre mot de passe.
=> menu \"OPTIONS\"
=> onglet \"Mes options\"
=> cliquer sur 'Modifier le mot de passe.'
=> saisir votre mot de passe (alphanumérique) et cliquer sur 'modifier'
=> pour valider il est impératif de cliquer sur \"Sauver\" tout en bas de page
Cet accès vous permet :
> la consultation de la base de données
> la consultation des IndiScore,
Nous vous souhaitons bonne réception de ces informations.
Votre interlocuteur privilégié, Monsieur Julien Proust et toute l'équipe support de Scores & Décisions (support@scores-decisions.com) restent à votre écoute.
Bien cordialement
Amel
--
Service Support
SCORES ET DECISIONS
1, rue Clairefontaine - 78120 RAMBOUILLET
tél. support : +33 (0)1 48 00 04 52
tél. standard : +33 (0)1 75 43 80 10
fax bureau : +33 (0)1 75 43 85 74
support@scores-decisions.com
http://www.scores-decisions.com
Scores & Décisions est l'acteur nouvelle génération de linformation et de l'évaluation des entreprises
Pensez à l'environnement avant d'imprimer ce message !
Save paper - think before you print";
if ($sendMail) {
@sendMail('support@scores-decisions.com', $email, "Codes Accès Extranet Scores et Décisions", $message);
@sendMail('support@scores-decisions.com', 'ylenaour@scores-decisions.com', "Codes Accès Extranet Scores et Décisions", $message);
echo "Créé et e-mail envoyé à ".$tabCells[3].EOL;
} else
echo "Créé sans envoi d'e-mail à ".$tabCells[3].EOL;
} elseif (mysql_errno()==1062)
echo "Login déjà existant !".EOL;
else
die('Erreur SQL n° '.mysql_errno().' : '.mysql_error().EOL);
//die();
}
?>

View File

@ -1,379 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('DATE_HEURE_SCRIPT', date('Ymd_His'));
/** @todo
**/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
$repProduction='/mnt/samba/partage/production/';
$modeTest=$envoiGroupe=$envoiGroupePre=false;
$ignoreDateDerExec=$retroActivite=false;
$tableSurveillance='surveillances_site';
//$modeTest=true;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Envoi des messages de surveillance Actes par email (site et WS uniquement).
Options :
-i Ne pas exécuter en réel (pas de MAJ des infos d'exécution et envoi des mails à lenaoury@gmail.com...)
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'i':
//$envoiGroupe=true;
$modeTest=true;
//$tableSurveillance='surveillances_site_old';
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$iDb=new WDB('jo');
$iDb2=new WDB('sdv1');
$nbUtilisateurs=$iDb2->select('utilisateurs u, clients c', 'u.id, u.idClient, LOWER(u.login) AS login, u.password, u.email, u.formatMail, u.lienExtranetMail, u.listeEven', "u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'", true, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbUtilisateurs utilisateurs habilités à recevoir des surveillances...".EOL;
$tabFormat=$tabLienEx=$tabLstEve=$tabHash=array();
while ($uti=$iDb2->fetch(MYSQL_ASSOC)) {
switch ($uti['formatMail']) {
case 'txt2': // MAIL au format texte, 1 mail par envoi
case 'csv': // MAIL au format CSV, 1 mail par envoi
case 'txt1': // MAIL au format texte, 1 mail par annonce (format par défaut)
case 'pdf1': // MAIL au format PDF, 1 mail par envoi
$tabFormat['_'.$uti['login']]=$uti['formatMail'];
break;
default:
$tabFormat['_'.$uti['login']]='txt1';
break;
}
$tabLienEx['_'.$uti['login']]=$uti['lienExtranetMail'];
$tabLstEve['_'.$uti['login']]=explode(';',trim($uti['listeEven']));
sort($tabLstEve['_'.$uti['login']]);
if (count($tabLstEve['_'.$uti['login']])==1 && $tabLstEve['_'.$uti['login']][0]=='')
$tabLstEve['_'.$uti['login']]=array();
$tabHash['_'.$uti['login']]=md5($uti['login'].'|'.$uti['password']);
}
//sort($tabFormat);
//print_r($tabFormat);die();
$iBodacc=new MBodacc();
$iInsee=new MInsee();
echo date ('Y/m/d - H:i:s')." - Début du traitement d'envoi des surveillances Actes.\n";
$fields="CONCAT(s.siren,'-',s.login,'-',s.ref) AS id, s.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, a.codeInterne, a.dateDepot, a.flux, a.codeEven, a.dateInsert";
$where ="1 AND s.source='actes' AND s.siren>1000 AND s.siren=a.siren AND a.dateInsert>=s.dateAjout AND a.dateInsert>=s.dateDerEnvoi AND s.dateSuppr='0000-00-00' AND DATEDIFF(NOW(), a.dateDepot)<=90
AND a.dateInsert>'2010-05-24' ";
$where.=' GROUP BY s.login, s.email, a.siren, a.codeInterne, a.dateDepot
ORDER BY s.login ASC, s.email ASC, a.siren, a.codeInterne, a.dateDepot';
$tables="$tableSurveillance s, rncs_even a";
echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL;
$nbAnnonces=$iDb->select($tables, $fields, $where, true, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAnnonces surveillances Actes à traiter...".EOL;
$emailPre=$loginPre=false;
//die();
require_once('/var/www/html/tests/pdf/html2pdf.class.php');
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
$tabIdentite=$iInsee->getIdentiteLight($annonce['siren']);
//print_r($tabIdentite);
//die();
/*
[id] => 6838322
[Siret] => 55214450300018
[Siege] => 1
[Nom] => AUTOMOBILES PEUGEOT
[Sigle] =>
[Enseigne] =>
[Adresse] => 0075 AV LA GRANDE ARMEE
[Adresse2] =>
[AdresseNum] => 0075
[AdresseBtq] =>
[AdresseVoie] => AV
[AdresseRue] => LA GRANDE ARMEE
[CP] => 75116
[Ville] => PARIS 16
[Tel] => 141193150
[Fax] => 140665414
[FJ] => 5599
[FJ_lib] => Autre SA à conseil d'administration
[Siren] => 552144503
[Nic] => 00018
[Actif] => 1
[NafEtab] => 7010Z
[NafEnt] => 2910Z
[NafEntLib] => Construction de véhicules automobiles
[NafEtabLib] => Activités des sièges sociaux
[AutreId] => 55B14450
[Source] => 002
[SourceId] => 6853244
*/
$fp2=fopen("/var/www/html/factures/pdf/surv_actes_".date('Y-m-d').'.csv', 'a');
fwrite($fp2, implode("\"\t\"", $annonce));
fclose($fp2);
$email=$annonce['email'];
$loginLu=$annonce['login'];
if (!isset($tabFormat['_'.$loginLu])) {
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']." non traitée pour cause de format indéfini pour $loginLu, $email (".$annonce['siren'].' - '.$tabIdentite['Nom'].")\n";
/** Avant de faire un continue, on initialise les variables précédentes obligatoires **/
/*$emailPre=$email;
$loginPre=$loginLu;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;*/
continue;
}
$conversionPdf=$conversionCsv=false;
if ($tabFormat['_'.$loginLu]=='txt2') $envoiGroupe=true;
elseif ($tabFormat['_'.$loginLu]=='csv') { $envoiGroupe=true; $conversionCsv=true; }
elseif ($tabFormat['_'.$loginLu]=='txt1') $envoiGroupe=false;
elseif ($tabFormat['_'.$loginLu]=='pdf1') { $envoiGroupe=true; $conversionPdf=true; }
else die(date('Y/m/d H:i:s')." - Erreur impossible : Format '".$tabFormat['_'.$loginLu]."' non géré pour $loginLu !");
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']." à traiter pour $loginLu, $email (".$annonce['siren'].' - '.$tabIdentite['Nom'].")\n";
echo "Test $envoiGroupe vs $envoiGroupePre, Login $loginLu vs $loginPre, Email $email vs $emailPre, Csv/Pdf=$conversionCsv/$conversionPdf\n";
//$saisie = trim(strtoupper(fgets(STDIN)));
if ( ($envoiGroupe||$envoiGroupePre) && // Envoi groupé demandé ET
( ($loginPre!=false && $loginLu!=$loginPre) || // Login différent OU
($emailPre!=false && $email!=$emailPre) ) // Email différent
) { /** Login souhaitant un seul email pour toutes les annonces **/
$emailEnvoi=$emailPre;
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
if ($conversionPdfPre) {
$html2pdf = new HTML2PDF('P','A4', 'fr');
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>'))).'</page>';
$html2pdf->WriteHTML($messagePdf);
$content=$html2pdf->Output('annonces.pdf', true);
$fichierPdf="/var/www/html/factures/pdf/scores_$loginPre".'_'.date('Y-m-d').".pdf";
$fp=fopen($fichierPdf, 'w');
fwrite($fp, $content);
fclose($fp);
$tabAttached=array($fichierPdf);
} elseif ($conversionCsvPre) {
$tabAttached=array($fichierCsvPre);
} else
$tabAttached=array();
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance des actes déposés", $message, '', $tabAttached)) {
if ($envoiGroupe) $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
echo "UPDATE $tableSurveillance SET dateDerEnvoi=NOW() WHERE $where".EOL;
if (!$modeTest) {
if ($envoiGroupe) $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$loginPre, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d - H:i:s')." - L'annonce n°$idAnn a été envoyé à $emailPre.";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés", $messageInfo, '', $tabAttached);
echo date('Y/m/d - H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.\n";
} else {
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $emailPre !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés - Echec Envoi !", $messageInfo, '', $tabAttached);
echo date('Y/m/d - H:i:s')." - Les annonces n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
}
// Remise à banc du message
$message=$strIdAnn='';
$tabSiren=array();
}
// GESTION DE L'ANNONCE COURANTE
$siren=$annonce['siren'];
$sirenAff=implode(' ', str_split($siren,3));
//$nicAff=$annonce['nicEven'];
$rs=substr($tabIdentite['Nom'],0,30).'...';
//$even=$annonce['insEVE'];
$login=$annonce['login'];
$idAnn=$tabIdentite['id'];
if ($envoiGroupe==false)
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
else {
if ($emailPre==false && $loginPre==false) {
// Première annonce du mail
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
$strIdAnn="$idAnn ";
$tabSiren=array($siren);
} else {
// Nième annonce du mail
$message.= "Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
$strIdAnn.="$idAnn ";
$tabSiren[]=$siren;
}
}
if (trim($annonce['ref'])<>'') {
$message.='Votre référence : '.trim($annonce['ref'])."\r\n";
$message."\r\n";
$rs=substr($tabIdentite['Nom'],0,30).'... ('.trim($annonce['ref']).')';
}
// a.codeInterne, a.dateDepot, a.flux, a.codeEven, t.libEven, t.codEven
$message.='Source : Registre du Commerce en date du '.WDate::dateT('Y-m-d','d/m/Y',$annonce['dateDepot']).'. ';
$message.='Mise à jour en base S&D : '. WDate::dateT('Y-m-d','d/m/Y',$annonce['dateInsert'])."\r\n";
$tabEven=$iDb2->select(
'jo.rncs_even a, jo.tabEvenRncs t',
'a.codeEven, t.libEven, t.codEven',
"siren=$siren AND codeInterne='".$annonce['codeInterne']."' AND dateDepot='".$annonce['dateDepot']."' AND a.codeEven=t.codeEven",
true, MYSQL_ASSOC);
$message.="\r\n";
if (count($tabEven)>1) $message.="OBJETS DU DEPOT :\r\n";
else $message.="OBJET DU DEPOT :\r\n";
foreach ($tabEven as $even) {
$message.=' - '.$even['libEven'].' ('.$even['codEven'].$even['codeEven'].')'."\r\n";
}
$message.="\r\n";
$message.="Adresse du siège : ". $tabIdentite['Adresse'].', '.$tabIdentite['CP'].' '.$tabIdentite['Ville']."\r\n";
$message.="Forme juridique : ". $tabIdentite['FJ_lib'].' ('.$tabIdentite['FJ'].")\r\n";
$message.="Activité de l'entreprise : ". $tabIdentite['NafEntLib'].' ('.$tabIdentite['NafEnt'].")\r\n";
$message.="\r\n";
if ($tabLienEx["_$login"]==1) {
if (WS_VERSION==2)
$url="http://extranet.scores-decisions.com/pieces/actes/siret/$siren";
else
$url="http://extranet.scores-decisions.com/?page=greffes&vue=actes&action=logon&login=$login&siret=$siren&hach=".$tabHash["_$login"];
$message.="\r\nCliquez sur le lien suivant pour une consultation directe de l'évènement sur le site de Scores & Décisions :\r\n<div style=\"font-size: 6pt\"><a href=\"$url\">$url</a></div>\r\n";//d6c3f28eda29a2072b36872476a1d37a
}
$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
if ($conversionCsv) {
$mel=substr(md5(preg_replace('/[^a-z0-9]/i','',$annonce['email'])),0,8);
$fichierCsv='/var/www/html/factures/pdf/actes_'.$login.'_'.$mel.'_'.DATE_HEURE_SCRIPT.'.csv';
if (!file_exists($fichierCsv)) {
$fp=fopen($fichierCsv, 'a');
fwrite($fp, "Siren;Id Acte;Référence;Date parution;Date Entrée en base;Raison sociale;
FJ;NAF;Type Evenement;Libellé Evènement\r\n");
fclose($fp);
}
$fp=fopen($fichierCsv, 'a');
// Ecriture d'une ligne CSV par évènement du dépôt
foreach ($tabEven as $even) {
fwrite($fp, "$siren;$idAnn;".trim($annonce['ref']).';'.
WDate::dateT('Y-m-d','d/m/Y',$annonce['dateDepot']).';'.
WDate::dateT('Y-m-d','d/m/Y',$annonce['dateInsert']).';'.
$tabIdentite['Nom'].';'.$tabIdentite['FJ'].';'.$tabIdentite['NafEnt'].';'.
$even['codEven'].$even['codeEven'].';'.$even['libEven']."\r\n");
}
fclose($fp);
}
if ($envoiGroupe==false) {
/** Profil souhaitant un email par annonce **/
$emailEnvoi=$email;
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
//$emailEnvoi='lenaoury@gmail.com';
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance des actes déposés $sirenAff $nicAff : $rs", $message)) {
if ($envoiGroupe) $where="login='$login' AND email='$emailPre' AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$login' AND email='$email' AND source='actes' AND siren='$siren'";
echo "UPDATE $tableSurveillance SET dateDerEnvoi=NOW() WHERE $where; (1 mail/annonce)".EOL;
if (!$modeTest) {
if ($envoiGroupe) $where="login='$login' AND email='$emailPre' AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$login' AND email='$email' AND source='actes' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d - H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$login, mail=$emailPre/$email, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d - H:i:s')." - L'annonce n°$idAnn a été envoyé à $email.";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés $sirenAff $nicAff : $rs", $messageInfo);
echo date('Y/m/d - H:i:s')." - L'annonce n°$idAnn a été envoyé à $email.\n";
} else {
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $email !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés $sirenAff $nicAff : $rs - Echec Envoi !", $messageInfo);
echo date('Y/m/d - H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $email.\n";
}
}
$emailPre=$email;
$loginPre=$login;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;
$fichierCsvPre=$fichierCsv;
}
/** Envoi du dernier email pour les envois groupés **/
if (($envoiGroupe||$envoiGroupePre) && $emailPre<>false && $loginPre<>false) {
$emailEnvoi=$emailPre;
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
if ($conversionPdf) {
$html2pdf = new HTML2PDF('P','A4', 'fr');
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>'))).'</page>';
$html2pdf->WriteHTML($messagePdf);
$content=$html2pdf->Output('annonces.pdf', true);
$fichierPdf="/var/www/html/factures/pdf/scores_$login".'_'.date('Y-m-d').".pdf";
$fp=fopen($fichierPdf, 'w');
fwrite($fp, $content);
fclose($fp);
$tabAttached=array($fichierPdf);
} elseif ($conversionCsv) {
$tabAttached=array($fichierCsv);
} else $tabAttached=array();
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance des actes déposés", $message, '', $tabAttached)) {
if ($envoiGroupe) $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
echo "UPDATE $tableSurveillance SET dateDerEnvoi=NOW() WHERE $where".EOL;
if (!$modeTest) {
if ($envoiGroupe) $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$login, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.\n";
} else {
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $emailPre !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés - Echec Envoi !", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
}
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement d'envoi des surveillances Actes.\n";
die();
?>

View File

@ -1,99 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL);
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(FWK_PATH.'mail/sendMail.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
global $iDb2,$iDb3,$iLiens,$iBilan,$iInsee,$date;
$iDb=new WDB('jo');
$dateDebut=date('Y-m-d', mktime(0, 0, 0, date('m')-1, 1, date('Y')));
$dateFin =date('Y-m-d', mktime(0, 0, 0, date('m'), 0, date('Y')));
$modeDebug=false;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Traitement du fichier spécifique des radiations pour Cegedim.
Options :
-v Verbosité maximum
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 'v': $modeDebug=true; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
}
} else $tabFichier[]=$argv[$i];
}
}
// Si pas de date de début alors on prend le 1er jour du mois précédent
$mailTo='yves.lauliac@cegedim.fr,didier.pelet@cegedim.fr,chantal.labbe@cegedim.fr,isabelle.huge@cegedim.fr,ylenaour@scores-decisions.com';
//$mailTo='ylenaour@scores-decisions.com';
$nomFichier='/tmp/radiationCegedimSetD_'.substr($dateDebut,0,7).'.csv';
echo date('Y/m/d - H:i:s') ." - Début de la production du fichier Cegedim pour la période $dateDebut à $dateFin.".EOL;
$nbRows=$iDb->select('bodacc_detail',
"siren, nic, LPAD(IF(codePostal=0, codePostalSiege,codePostal),5,'0') as codePostal",
"id>=18000000 AND Bodacc_Date_Parution BETWEEN '$dateDebut' AND '$dateFin' AND Rubrique='radiations'", false, MYSQL_ASSOC, true);
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows radiations Cegedim...".EOL;
$nbLignes=0;
$fp=fopen($nomFichier,'w');
fwrite($fp, "siren;nic;cp".EOL);
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
$siren=$tabTmp['siren'];
$nic=$tabTmp['nic'];
$cp=$tabTmp['codePostal'];
fwrite($fp, "$siren;$nic;$cp".EOL);
$nbLignes++;
}
fclose($fp);
echo date('Y/m/d - H:i:s') ." - Fin de la production du fichier Cegedim ($nbLignes lignes/$nbRows).".EOL;
$tabAttached=array($nomFichier);
$nomFichierBase=basename($nomFichier);
$messageInfo="Bonjour,
Veuillez trouver ci-joint le fichier Scores & Décisions relatif à votre prestation contractuelle.
Le fichier se nomme $nomFichierBase et contient $nbLignes lignes.
Bien Cordialement,
Le service Support.
--
SCORES & DECISIONS
Service support
1, rue de Clairefontaine - 78120 RAMBOUILLET
tél : 33 (0)1 75 43 80 10
fax : 33 (0)1 75 43 85 74
support@scores-decisions.com
http://www.scores-decisions.com/
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises
Pensez à l'environnement avant d'imprimer ce message !
Save paper - think before you print";
@sendMail('production@scores-decisions.com', $mailTo, "Prestation Cegedim Radiation", $messageInfo, '', $tabAttached);
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,503 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMAmabis.php');
include_once(INCLUDE_PATH.'partenaires/classMRnvp.php');
include_once(FWK_PATH.'mail/sendMail.php');
$mailSuivi=true;
$dateJourCmd=false;
$fileInput=$siretInput=false;
$doLockSql=false;
$tailleRNVP=38;
$tabSiret=array();
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Génère le fichier quotidien de diffusion RRG.
Options :
-i Ne pas exécuter en réel (pas de mail ni production de fichiers...)
-l Poser le verrou afin d'indiquer que le traitement SQL tourne
-d:SSAA-MM-JJ Produire le fichier du SSAA-MM-JJ
-s SIREN ou SIRET Ajouter les SIREN ou SIRET donnés en ligne de commande
-f:filename.csv Ajouter les SIREN ou SIRET donnés dans le fichier filename.csv
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'i':
$mailSuivi=false;
break;
case 'd':
$dateJourCmd=substr($argv[$i],3,strlen($argv[$i])-3);
break;
case 'l':
$doLockSql=true;
break;
case 'f':
$fileInput=substr($argv[$i],3,strlen($argv[$i])-3);
break;
case 's':
$siretInput=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} elseif ($argv[$i]>10000 && $siretInput) $tabSiret[]=$argv[$i];
}
}
//$iAmabis=new MAmabis();
$iRnvp=new MRnvp();
$iInsee=new MInsee();
$iRncs=new MRncs();
$iDb=new WDb('tmp');
$iDb2=new WDb('tmp');
$scriptName=basename($argv[0]);
if (count($tabSiret)>0 || $fileInput) {
if ($fileInput) $tabSiret=file($fileInput);
// Ajout de la demande de MAJ du siret
/** @todo
* - MEttre un verrou afin de pouvoir vérifier si le traitement du jour n'est pas en cours (attention à l'étape SQL)
* - Lancer les commandes SQL insert into ...
* - Créer une source MANUEL
*/
if (file_exists(REP_TEMP.basename($scriptName).'.lock')) {
//date('Ymd-His')."$fichier;Traitement PHP du $dateJourSql;$fileName;Export de $nbEtab établissements".EOL);
// $tab2Tmp=explode(';',file_get_contents(REP_TEMP.basename($fichier).'.lock'));
//$date2Tmp=WDate::DateT('YmdHis', 'd/m/Y H:i:s',$tab2Tmp[1]);
// $nbL2Tmp=$tab2Tmp[2];
// $message="Le fichier $fichier est en cours de chargement depuis le $date2Tmp ($nbL2Tmp lignes)...";
echo date('Y/m/d - H:i:s')." - Le traitement RRG est en cours, patienter et recommencer plus tard !!!".EOL;
die();
}
foreach ($tabSiret as $iSiret=>$siret) {
$siren=substr($siret,0,9);
$nic=substr($siret,9,5);
if ($nic>9) $strNic=" AND NIC=$nic ";
$strPre='';
$ret=$iDb->select('tmp.diffusionRRG','dateSurrfa,dateSurrfa*1 AS dateSurrfaYmd, dateFlux,srcFlux,dateInsert,dateUpdate', "SIREN=$siren $strNic ORDER BY dateSurrfa DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (@$ret[0]['dateSurrfaYmd']*1>0) $strPre=' (dernier envoi le '.$ret[0]['dateSurrfa'].')';
$iDb->query("INSERT INTO tmp.diffusionRRG SELECT NULL as idLine, id, SIREN, NIC, 'SED' AS source, TRIM(REPLACE(REPLACE(IF(NOMEN_LONG='',NOM,NOMEN_LONG),'/',' '),'*',' ')) AS rs, insL1_NOMEN AS adrL1, 'N' AS adrL1t, SIGLE, ENSEIGNE AS ens, insL2_COMP AS adrL2, '' AS adrL2t, IF (SIEGE=0,'SEC','PRIN') AS statut, IF (ACTIF=1,'','CESSE') AS situ, '' AS maj, 0 AS dateHexavia, '' AS codVoieHexavia, CONCAT (ADR_DEP, ADR_COM) AS codeInseeCom, '' AS libInseeCom, '' AS cpCom, insL3_CADR AS adrL3, ADR_NUMVOIE AS adrNum, ADR_BTQ AS adrBtq, '' AS adrNum2, '' AS adrBtq2, insL4_VOIE AS adrLibVoie, insL5_DISP AS adrDisp, insL5_DISP AS adrComp, insL6_POST AS adrL6, DCRET AS dateCrea, 'J' AS dateCreaPre, CJ AS fj, '' AS fjLib, APE_ENT AS nafEn, '' AS nafEnLib, APE_ETAB AS nafEt, '' AS nafEtLib, TEL, IF(CIVILITE=1,'M',IF(CIVILITE=2,'MME',CIVILITE)) AS dirCiv, DIR_IDEN AS dirNom, '' AS dirPrenom, '' AS dirFctCode, '' AS dirFctLib, '' AS bilanMil, '' AS bilanFL, EFF_ENT AS effEn, EFF_ET AS effEt, 0 AS nicSiege, '' AS even, '' AS evenLib, '' AS tva, '' AS email, 0 AS siretPre, 0 AS siretSuc, ADDDATE(NOW(), INTERVAL 1 DAY) AS dateSurrfa, 0 AS dateFlux, 'MANUEL' AS srcFlux, dateUpdate AS dateInsert, 0 as dateUpdate FROM insee.identite WHERE SIREN=$siren $strNic");
if (!mysql_errno())
echo date('Y/m/d - H:i:s')." - Siret $siren $nic ajouté avec succès au flux de demain".$strPre.EOL;
else
echo date('Y/m/d - H:i:s')." - Siret $siren $nic non ajouté car erreur SQL N°".mysql_errno().' : '.mysql_error().' !'.EOL;
}
die();
}
if (!$doLockSql) {
$message=date('Y/m/d - H:i:s') ." - Début du traitement RRG...".EOL;
echo date('Y/m/d - H:i:s') ." - Début du traitement RRG...".EOL;
}
/*$iDb=new WDb('sdv1');
$tabRRG=array( 'client' => 'rrg',
'name' => 'HEXAVIA',
'nbLines' => 11948, // Nombre de ligne
'dateBegin' => 20150105200503, // Date de début de traitement au format YmdHis
'dateEnd' => 20150105203052, // Date de fin de traitement au format YmdHis
'fileOut' => 'surrfa_20150105.csv', // Nom du fichier sans le chemin
'depotType' => 'FTP',
'depotDate' => '0000-00-00 00:00:00');
$iDb->insert('flux_fileout', $tabRRG, false);
*/
/*
$nbEtab=$iDb->query("# On efface tout depuis l'init de la presta RRG
DELETE FROM tmp.diffusionRRG WHERE id>0;
# On stock la dernière date de MAJ
SET @lastDateMaj := (SELECT MAX(dateUpdate) FROM tmp.diffusionRRG);
# Ajout des établissements modifiés
INSERT INTO tmp.diffusionRRG SELECT id, SIREN, NIC, 'INS' AS source, TRIM(REPLACE(REPLACE(NOMEN_LONG,'/',' '),'*',' ')) AS rs, insL1_NOMEN AS adrL1, 'N' AS adrL1t, SIGLE, ENSEIGNE AS ens, insL2_COMP AS adrL2, '' AS adrL2t, IF (SIEGE=0,'SEC','PRIN') AS statut, IF (ACTIF=1,'','CESSE') AS situ, '' AS maj, 0 AS dateHexavia, '' AS codVoieHexavia, CONCAT (ADR_DEP, ADR_COM) AS codeInseeCom, '' AS libInseeCom, '' AS cpCom, insL3_CADR AS adrL3, ADR_NUMVOIE AS adrNum, ADR_BTQ AS adrBtq, '' AS adrNum2, '' AS adrBtq2, insL4_VOIE AS adrLibVoie, insL5_DISP AS adrDisp, insL5_DISP AS adrComp, insL6_POST AS adrL6, DCRET AS dateCrea, 'J' AS dateCreaPre, CJ AS fj, '' AS fjLib, APE_ENT AS nafEn, '' AS nafEnLib, APE_ETAB AS nafEt, '' AS nafEtLib, TEL, IF(CIVILITE=0,'',IF(CIVILITE=1,'M','MME')) AS dirCiv, DIR_IDEN AS dirNom, '' AS dirPrenom, '' AS dirFctCode, '' AS dirFctLib, '' AS bilanMil, '' AS bilanFL, EFF_ENT AS effEn, EFF_ET AS effEt, 0 AS nicSiege, '' AS even, '' AS evenLib, '' AS tva, '' AS email, 0 AS siretPre, 0 AS siretSuc, 0 AS idFlux, dateUpdate FROM insee.identite WHERE dateUpdate>=@lastDateMaj ;
# Ajout du code mouvement
UPDATE tmp.diffusionRRG, insee.insee_even
SET diffusionRRG.maj='C'
WHERE diffusionRRG.maj='' AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj AND insee_even.insVMAJ='C';
UPDATE tmp.diffusionRRG, insee.insee_even
SET diffusionRRG.maj='S'
WHERE diffusionRRG.maj='' AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj AND insee_even.insVMAJ='E';
UPDATE tmp.diffusionRRG
SET maj='M'
WHERE maj='';
# Ajout du NIC siège
UPDATE tmp.diffusionRRG, insee.insee_even
SET diffusionRRG.nicSiege=insee_even.insNICSIEGE
WHERE diffusionRRG.nicSiege=0 AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj;
# Ajout des radiations
UPDATE tmp.diffusionRRG, jo.rncs_entrep
SET diffusionRRG.situ='RADIE'
WHERE diffusionRRG.situ='CESSE' AND diffusionRRG.siren=rncs_entrep.siren AND rncs_entrep.actif=0 AND diffusionRRG.dateUpdate>=@lastDateMaj;
# Ajout des libellés FJ et NAF
UPDATE tmp.diffusionRRG, jo.tabFJur
SET diffusionRRG.fjLib=tabFJur.libelle
WHERE diffusionRRG.fj=tabFJur.code AND diffusionRRG.fjLib='';
UPDATE tmp.diffusionRRG, jo.tabNaf5
SET diffusionRRG.nafEnLib=tabNaf5.libNaf5
WHERE diffusionRRG.nafEn=tabNaf5.codNaf5 AND diffusionRRG.nafEnLib='';
UPDATE tmp.diffusionRRG, jo.tabNaf5
SET diffusionRRG.nafEtLib=tabNaf5.libNaf5
WHERE diffusionRRG.nafEt=tabNaf5.codNaf5 AND diffusionRRG.nafEtLib='';
# Ajout des zones Hexavia
SET @lastDateHexa := (SELECT MAX(dateMaj38) FROM villes.hexaviaVilles);
UPDATE tmp.diffusionRRG
SET diffusionRRG.dateHexavia=@lastDateHexa
WHERE diffusionRRG.dateHexavia=0;
UPDATE tmp.diffusionRRG, villes.rnvpSources
SET diffusionRRG.codVoieHexavia=rnvpSources.IdHexavia,
diffusionRRG.libInseeCom=rnvpSources.Ville,
diffusionRRG.cpCom=rnvpSources.Cp
WHERE diffusionRRG.codVoieHexavia='' AND diffusionRRG.id=rnvpSources.source_id AND rnvpSources.source=2;
# Ajout du CA
UPDATE tmp.diffusionRRG, jo.etablissements_act
SET diffusionRRG.bilanMil=etablissements_act.bilAnnee,
diffusionRRG.bilanFL=etablissements_act.bilFL
WHERE diffusionRRG.bilanMil='' AND diffusionRRG.siren=etablissements_act.siren;
*/
$dateDeb=date('Y-m-d H:i:s');
if ($dateJourCmd) {
$dateJourPhp=str_replace('-','',$dateJourCmd);
$dateJourSql=WDate::dateT('Ymd','Y-m-d',$dateJourPhp);
if (!$doLockSql) echo date('Y/m/d - H:i:s') ." - Recherche des établissements a exporter pour le : $dateJourSql...".EOL;
} else {
$dateJourSql=substr($dateDeb,0,10);
$dateJourPhp=str_replace('-','',$dateJourSql);
if (!$doLockSql) {
echo date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL;
echo date('Y/m/d - H:i:s') ." - Recherche des établissements a exporter du jour : $dateJourSql...".EOL;
}
}
$fileName="surrfa_$dateJourPhp.csv";
$anneeBilanVieux=substr($dateJourPhp,0,4)-3;
$fpT=fopen(REP_TEMP.basename($scriptName).'.lock', 'w');
if ($doLockSql) {
fwrite($fpT, date('Ymd-His').";$scriptName;Traitement RRG SQL du $dateJourSql;$fileName".EOL);
fclose($fpT);
die();
}
//$fileName="surrfa_20141231a.csv"; // Créations fait le 11/02/2015
//$fileName="surrfa_20141230b.csv"; // Radiations fait le ???
$fpOut=fopen(REP_TEMP.$fileName,'w');
//Il faudra insérer dans la base de données (sdv1.flux_fileout) lorsque le fichier est généré, les informations suivantes
$nbEtab=$iDb->select('tmp.diffusionRRG','idLine, id, siren, nic, CONCAT(siren, nic) AS siret, source, rs, adrL1, adrL1t, sigle, ens, adrL2, adrL2t, statut, situ, maj, dateHexavia, codVoieHexavia, codeInseeCom, libInseeCom, cpCom, adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, dateCrea, dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, dateFlux, srcFlux, dateInsert, dateUpdate',"siren>0 AND dateSurrfa='$dateJourSql'", false, MYSQL_ASSOC, true);
//$nbEtab=$iDb->select('tmp.diffusionRRG','idLine, id, siren, nic, CONCAT(siren, nic) AS siret, source, rs, adrL1, adrL1t, sigle, ens, adrL2, adrL2t, statut, situ, maj, dateHexavia, codVoieHexavia, codeInseeCom, libInseeCom, cpCom, adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, dateCrea, dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, dateFlux, srcFlux, dateInsert, dateUpdate', "siren>0 AND dateSurrfa='2014-12-30'", false, MYSQL_ASSOC, true);
echo mysql_error().EOL;
echo date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL;
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL;
fwrite($fpT, date('Ymd-His').";$scriptName;Traitement RRG PHP du $dateJourSql;$fileName;Export de $nbEtab établissements".EOL);
fclose($fpT);
$iL=0;
$accesDist=false;
$nbCpVide76310=$nbCpVide=0;
while($tabId=$iDb->fetch(MYSQL_ASSOC)) {
$iL++;
$idLine=$tabId['idLine'];
$siren=$tabId['siren'];
$nic=$tabId['nic'];
$iTva=@new MTva($siren, $accesDist);
$vatNumber=$iTva->vatNumber;
$nomLong=$tabId['rs'];
$iTel=new MTel($accesDist);
$tmp=$iTel->getTel($siren, $nic, true);
//print_r($tmp);
$tel=$mail='';
foreach ($tmp as $tTel) {
if ($tTel['typeTel']=='tel' && $tTel['actif']==1 && $tel=='') $tel=$tTel['telephone'];
if ($tTel['typeTel']=='mail' && $tTel['actif']==1 && $mail=='') $mail=$tTel['infoTel'];
}
// , , , , , adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, , dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, idFlux, dateUpdate
$hexaviaMat=$tabId['codVoieHexavia'];
if ($hexaviaMat<0) $hexaviaMat='';
$tabRnvp=@$iRnvp->normaliseAdresse($nomLong, $tabId['adrL2'], $tabId['adrL3'], $tabId['adrLibVoie'], $tabId['adrDisp'], $tabId['adrL6'], '', $tailleRNVP);
if ($hexaviaMat*1==0)
$hexaviaMat=@$tabRnvp['HexaViaMat'];
$L1tr=$L2tr='N';
if ($hexaviaMat*1>0 && @$tabRnvp['HexaViaMat']*1>0) {
$hexaviaVoie=@$tabRnvp['HexaViaVoie'];
$cp=@substr($tabRnvp['L6'],0,5);
$achPost=@trim(preg_replace('/^\d+/','', $tabRnvp['L6']));
$L1=@$tabRnvp['L1'];
if (@$tabRnvp['L1_tr']==1) $L1tr='O';
//$L1=$iRnvp->normaliseRS($nomLong, $tailleRNVP);
//if ($iRnvp->nomTronque==1) $L1tr='O';
$L2=@$tabRnvp['L2'];
if (@$tabRnvp['L2_tr']==1) $L2tr='O';
$L3=@trim($tabRnvp['L3']);
$L5=@trim($tabRnvp['L5']);
$codCommune=@$tabRnvp['HexaviaComCod'];
$libCommune=@$tabRnvp['HexaviaComLib'];
} else {
$hexaviaVoie=@trim(preg_replace('/^\d+/','', $tabId['adrLibVoie']));
$cp=@substr($tabId['adrL6'],0,5);
$achPost=trim(preg_replace('/^\d+/','', $tabId['adrL6']));
if ($cp<1000) {
$cp=$iRnvp->getCPCommune($tabId['codeInseeCom']);
$achPost=trim(preg_replace('/^\d+/','', $tabId['adrL6']));
$nbCpVide++;
if ($cp<1000) {
$tabRnvp=$iRnvp->normaliseAdresse76310($nomLong, $tabId['adrL2'], $tabId['adrL3'], $tabId['adrLibVoie'], $tabId['adrDisp'], $tabId['adrL6']);
// print_r($tabRnvp);
$cp=substr($tabRnvp['L6'],0,5);
$achPost=trim(preg_replace('/^\d+/','', $tabRnvp['L6']));
$nbCpVide76310++;
//die();
}
echo "$iL/$nbEtab: $vatNumber $nic $L1\t$cp $achPost\t $nbCpVide76310 appels/$nbCpVide CP vides".EOL;
}
$L1=$iRnvp->normaliseRS($nomLong, $tailleRNVP);
if ($iRnvp->nomTronque==1) $L1tr='O';
$L2=$iRnvp->normaliseRS($tabId['adrL2'], $tailleRNVP);
if ($iRnvp->nomTronque==1) $L2tr='O';
$L3=trim($tabId['adrL3']);
$L5=trim($tabId['adrDisp']);
$codCommune=$tabId['codeInseeCom'];// Tester 97x
$libCommune=$iRnvp->getLibCommune($codCommune, $tailleRNVP);
}
//adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp
$adrNum1=preg_replace('/^0+/','',$tabId['adrNum']);
$adrBtq1=$tabId['adrBtq'];
$adrNum2=$adrBtq2='';
if ($adrNum1*1>0) {
$adrNum=$adrNum1*1;
if (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrL3']), $matches)) {
$adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',));
$adrBtq2='';
} elseif (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrDisp']), $matches)) {
$adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',));
$adrBtq2='';
} elseif (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrL2']), $matches)) {
$adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',));
$adrBtq2='';
}
}
$tabAssoc=$iInsee->getSiretAssoc($siren, $nic);
//print_r($tabAssoc);
$tabDirs=$iRncs->getDirigeantsPrin($siren, 1);
if (count($tabDirs)>0) {
$civ=$tabDirs[0]['Civilite'];
$dir1Nom=$tabDirs[0]['Nom'];
$dir1Prenom=$tabDirs[0]['Prenom'];
$dir1Code=$tabDirs[0]['Fonction'];
$dir1Titre=$tabDirs[0]['Titre'];
} elseif ($tabId['fj']<2000) {
$civ=$tabId['dirCiv'];
$dir1Nom=$tabId['dirNom'];
$dir1Prenom=$tabId['dirPrenom'];
$dir1Code=1050;
$dir1Titre='Personne Physique';
}
$dateHexavia=initstr(preg_replace('/^00/','01',WDate::dateT('Y-m-d','dmY',$tabId['dateHexavia'])), 8, '0', ALIGN_RIGHT);
$dateCreation=initstr(WDate::dateT('Y-m-d','dmY',preg_replace('/00$/','01',$tabId['dateCrea'])), 8, '0', ALIGN_RIGHT);
if (!$dateJourCmd) {
if ($tabId['bilanMil']<=$anneeBilanVieux) {
// Aller vérifier s'il n'y a pas un bilan plus récent en base
$tmpBilan=$iDb2->select('jo.bilans_postes','FL, YEAR(dateExercice) AS annee', "siren=$siren AND consolide=0 ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabTmpBil=$tmpBilan[0];
$bilAnnee=$tabTmpBil['annee'];
$bilFL=$tabTmpBil['FL'];
} else {
$bilAnnee=$tabId['bilanMil'];
$bilFL=$tabId['bilanFL'];
}
/*
Rajouter l'estimation de CA dans les cas suivants :
1a. Quand il n'y a pas de bilan
OU 1b. Quand le bilan est trop vieux pour RRG soit (plus de 36 mois)
De plus, on ne donne de CA Estimé que :
2a. Si le NAF est valide (5 positions, différent de vide et de 0000Z)
2b. Si l'effectif est > à 0 OU (effectif<1 ET CJ=1xxx)
2c. Si la date de création >= date de clôture estimée (dernière jour de l'année courante - 2 ans)
Attention, pour les créations récentes (nouvelle demande de RRG) :
3a. Si le NAF est valide (5 positions, différent de vide et de 0000Z)
3b. Si l'effectif est > à 0 OU (effectif<1 ET CJ=1xxx)
3c. Si la date de création EST dans l'année en cours ou dans l'année précédente et pas de bilans REEL
==> Alors donner le CA Estimé qui est donc "prévisionnel" au 31/12 de l'année en cours
*/
} else {
$bilAnnee=$tabId['bilanMil'];
$bilFL=$tabId['bilanFL'];
}
$strOut=initstr($tabId['id']*1, 10 , '0', ALIGN_RIGHT) .'$'. // Identification ORT de l'établissement !
$tabId['siret'].'$'. // Numéro de SIRET
$tabId['source'].'$'. // Source de l'information (INS ou S&D)
trim(str_replace('$',' ',$tabId['rs'])).'$'. // Raison sociale Officielle de l'entreprise
$L1.'$'. // Raison sociale Postale de l'entreprise !
$L1tr.'$'. // Indicateur si la RS postale a été tronquée !
trim(str_replace('$',' ',$tabId['sigle'])).'$'. // Sigle de l'entreprise
trim(str_replace('$',' ',$tabId['ens'])).'$'. // Enseigne officielle de l'établissement
$L2.'$'. // Enseigne postale de l'établissement !
$L2tr.'$'. // Indicateur si l'enseigne postale a été tronquée !
$tabId['statut'].'$'. // Statut de l'établissement
$tabId['situ'].'$'. // Code situation de l'entreprise
$tabId['maj'].'$'. // Flag de Mise à jour de l'établissement ???
$dateHexavia.'$'. // Date d'actualisation du fichier HEXAVIA
$hexaviaMat.'$'. // code voie HEXAVIA
$codCommune.'$'. // Code commune INSEE
$libCommune.'$'. // Libellé de la commune INSEE
$cp.'$'. // Code postal
$L3.'$'. // Complément d'adresse
$adrNum1.'$'. // Numéro dans la voie
$adrBtq1.'$'. // Lettre dans la voie
$adrNum2.'$'. // Numéro dans la voie 2
$adrBtq2.'$'. // Lettre dans la voie 2
$hexaviaVoie.'$'. // Libellé dans la voie
$L5.'$'. // Distribution postale
$L5.'$'. // Complément postal
$achPost.'$'. // Acheminement postal (spécificité RRG : Pas de CP)
$dateCreation.'$'. // Date de création de l'entreprise
'J'.'$'. // Précision de la date de création
$tabId['fj'].'$'. // Code forme juridique
$tabId['fjLib'].'$'. // Libellé forme juridique
$tabId['nafEn'].'$'. // Code NAF Entreprise
$tabId['nafEnLib'].'$'. // Libellé du NAF Entreprise
$tabId['nafEt'].'$'. // Code NAF Etablissement
$tabId['nafEtLib'].'$'. // Libellé du NAF Etablissement
$tel.'$'. // Numéro de téléphone
$civ.'$'. // Civilité du principal dirigeant
$dir1Nom.'$'. // Nom du principal dirigeant
$dir1Prenom.'$'. // Prénom du principal dirigeant
$dir1Code.'$'. // Code Fonction du principal dirigeant ???
$dir1Titre.'$'. // Libellé de la fonction ???
initstr($bilAnnee, 4, '0',ALIGN_RIGHT).'$'. // Année du dernier exercice
$bilFL.'$'. // CA du dernier exercice
$tabId['effEn'].'$'. // Effectif de l'entreprise
$tabId['effEt'].'$'. // Effectif de l'établissement
initstr($tabId['nicSiege']*1, 5, '0', ALIGN_RIGHT).'$'. // Numéro NIC de l'établissement principal
$tabId['even'].'$'. // Code jugement ???
$tabId['evenLib'].'$'. // Libellé code Jugement ???
$vatNumber.'$'. // N° TVA intracommunautaire
$mail.'$'. // Adresse mail de l'entreprise
str_replace('00000000000000','',
initstr(@$tabAssoc['pre']['siren']*1, 9 , '0', ALIGN_RIGHT) .
initstr(@$tabAssoc['pre']['nic']*1, 5 , '0', ALIGN_RIGHT)) .'$'.
str_replace('00000000000000','',
initstr(@$tabAssoc['suc']['siren']*1, 9 , '0', ALIGN_RIGHT) .
initstr(@$tabAssoc['suc']['nic']*1, 5 , '0', ALIGN_RIGHT)) ;
//echo $strOut.EOL;
fwrite($fpOut, $strOut.EOL);
echo "$iL/$nbEtab: $vatNumber $nic (".$tabId['source'].",".$tabId['maj'].") $L1\t$cp $achPost\t$hexaviaMat".EOL;
if (!$dateJourCmd) {
$tabUpdate=array( 'rs' =>trim(str_replace('$',' ',$tabId['rs'])),
'adrL1' =>$L1,
'adrL1t'=>$L1tr,
'sigle' =>trim(str_replace('$',' ',$tabId['sigle'])),
'ens' =>trim(str_replace('$',' ',$tabId['ens'])),
'adrL2' =>$L2,
'adrL2t'=>$L2tr,
'dateHexavia'=>$dateHexavia,
'codVoieHexavia'=>$hexaviaMat,
'codeInseeCom'=>$codCommune,
'libInseeCom'=>$libCommune,
'cpCom'=>$cp,
'adrL3'=>$L3,
'adrNum'=>$adrNum1,
'adrBtq'=>$adrBtq1,
'adrNum2'=>$adrNum2,
'adrBtq2'=>$adrBtq2,
'adrLibVoie'=>$hexaviaVoie,
'adrDisp'=>$L5,
'adrComp'=>$L5,
//'adrL6'=>$achPost,
'tel'=>$tel,
'dirCiv'=>$civ,
'dirNom'=>$dir1Nom,
'dirPrenom'=>$dir1Prenom,
'dirFctCode'=>$dir1Code,
'dirFctLib'=>$dir1Titre,
'bilanMil'=>$bilAnnee,
'bilanFL'=>$bilFL,
//'effEn'=>,
//'even'=>,
//'evenLib'=>,
'tva'=>$vatNumber,
'email'=>$mail,
'siretPre'=>initstr(@$tabAssoc['pre']['siren']*1, 9 , '0', ALIGN_RIGHT).
initstr(@$tabAssoc['pre']['nic']*1, 5 , '0', ALIGN_RIGHT),
'siretSuc'=>initstr(@$tabAssoc['suc']['siren']*1, 9 , '0', ALIGN_RIGHT).
initstr(@$tabAssoc['suc']['nic']*1, 5 , '0', ALIGN_RIGHT),
'dateUpdate'=>$dateDeb,
);
$iDb2->update('diffusionRRG', $tabUpdate, "idLine=$idLine", false);
}
//print_r($tabId);
//die();
}
fclose($fpOut);
$message.=date('Y/m/d - H:i:s') ." - Fin du traitement RRG : export de $iL/$nbEtab établissements.".EOL;
echo date('Y/m/d - H:i:s') ." - Fin du traitement RRG : export de $iL/$nbEtab établissements.".EOL;
if ($mailSuivi) {
if (!copy(REP_TEMP.$fileName, '/mnt/data/clients/rrg/recv/'.$fileName))
$msgLine=date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fileName impossible pour le spécifique RRG !".EOL;
else
$msgLine=date ('Y/m/d - H:i:s')." - Le fichier $fileName a été créé pour RRG...".EOL;
echo $msgLine;
$message.=$msgLine;
unset($iDb);
$iDb=new WDb('sdv1');
$tabRRG=array( 'client' => 'rrg',
'name' => 'HEXAVIA',
'nbLines' => $iL, // Nombre de ligne
'dateBegin' => $dateDeb, // Date de début de traitement au format YmdHis
'dateEnd' => date('YmdHis'), // Date de fin de traitement au format YmdHis
'fileOut' => $fileName, // Nom du fichier sans le chemin
'depotType' => 'FTP',
'depotDate' => '0000-00-00 00:00:00');
$iDb->insert('flux_fileout', $tabRRG, false);
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,suivi@scores-decisions.com', "Prestation RRG", $message);
}
unlink(REP_TEMP.basename($scriptName).'.lock');
die();
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,149 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
function exporte($txt, $lon=false, $sep="\t") {
if ($lon===false) $lon=strlen($txt);
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(FWK_PATH.'mail/sendMail.php');
$iInsee=new MInsee();
$iDb=new WDb('jo');
$codPays3='BEL';
$fpL=fopen('/root/sedLiens.csv','w');
$fpE=fopen('/root/sedEntites.csv','w');
$fpI=fopen('/root/sedIdLocaux.csv','w');
$ret=$iDb->select('jo.liens2', 'idAct, PDetention, Pvote, MajMin, idPar', "actif=1 AND dateSuppr=0 AND (idAct IN (SELECT id FROM liensRef WHERE adresse_pays='$codPays3' AND actif=1 AND dateSuppr=0) OR idPar IN (SELECT id FROM liensRef WHERE adresse_pays='$codPays3' AND actif=1 AND dateSuppr=0) )", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s') . " - Il y a $ret liens '$codPays3' à exporter ...".EOL;
$tDeb=microtime(1);
$tabT=array();
fwrite($fpL, "idActionnaire\tpctDetention\tpctVote\ttype\tidParticipation".EOL);
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
$idAct= $ligne['idAct'];
$tabT[]=$idAct;
$pDet= $ligne['PDetention'];
$pVot= $ligne['Pvote'];
$majMin=$ligne['MajMin'];
$idPar= $ligne['idPar'];
$tabT[]=$idPar;
if ($majMin=='+' && $pDet<=50 && $pVot<=50) $majMin='-';
if ($majMin=='-' && ($pDet>50 || $pVot>50)) $majMin='+';
fwrite($fpL, "$idAct\t$pDet\t$pVot\t$majMin\t$idPar".EOL);
}
fclose($fpL);
$tFin=microtime(1);
echo EOL."Durée Fichier Liens .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
$tabT=array_unique($tabT);
$strIDs=implode(',', $tabT);
$ret=$iDb->select('jo.liensRef', 'id, siren, sirenValide, actif, PpPm, RS, sigle, civilite, nom, prenom, nom_usage, naissance_date, naissance_dept_pays, naissance_lieu, nat, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville, adresse_pays, tel, fax, web, email, cj, ape, capital, deviseCapital, isin, idLoc1Type, idLoc1Num, idLoc2Type, idLoc2Num, idLoc3Type, idLoc3Num', "id IN ($strIDs) ORDER BY id ASC", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s') . " - Il y a $ret entités relatives à '$codPays3' à exporter ...".EOL;
$tDeb=microtime(1);
$tabIdL=array(1);
fwrite($fpE, "id\tsiren\tPpPm\tRS\tsigle\tcivilite\tnom\tprenom\tnom_usage\tnaissance_date\tnaissance_dept_pays\tnaissance_lieu\tnat\tadresse_num\tadresse_btq\tadresse_codvoie\tadresse_libvoie\tadresse_comp\tadresse_cp\tadresse_ville\tadresse_pays\ttel\tfax\tweb\temail\tcj\tape\tcapital\tdeviseCapital\tisin\tidLoc1Type\tidLoc1Num\tidLoc2Type\tidLoc2Num\tidLoc3Type\tidLoc3Num".EOL);
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
$id= $ligne['id'];
$siren= $ligne['siren'];
$isin= $ligne['isin'];
$ppPm= $ligne['PpPm'];
$rs= $ligne['RS'];
$sigle= $ligne['sigle'];
$civ= $ligne['civilite'];
$nom= $ligne['nom'];
$prenom=$ligne['prenom'];
$nomUsa=$ligne['nom_usage'];
$nDate= $ligne['naissance_date'];
$nLieu= $ligne['naissance_lieu'];
$nPaysD=$ligne['naissance_dept_pays'];
$nat= $ligne['nat'];
$adrNum=$ligne['adresse_num'];
$adrBtq=$ligne['adresse_btq'];
$adrVoi=$ligne['adresse_codvoie'];
$adrLib=$ligne['adresse_libvoie'];
$adrCom=$ligne['adresse_comp'];
$adrCP= $ligne['adresse_cp'];
$adrVil=$ligne['adresse_ville'];
$adrPay=$ligne['adresse_pays'];
$tel= $ligne['tel'];
$fax= $ligne['fax'];
$web= $ligne['web'];
$email= $ligne['email'];
$cj= $ligne['cj'];
$ape= $ligne['ape'];
$cap= $ligne['capital'];
$capDev=$ligne['deviseCapital'];
$id1T=$id1N=$id2T=$id2N=$id3T=$id3N='';
if ($ligne['idLoc1Type']>0 && trim($ligne['idLoc1Num'])<>'') {
$id1T=$ligne['idLoc1Type'];
$id1N=$ligne['idLoc1Num'];
$tabIdL[]=$id1T*1;
}
if ($ligne['idLoc2Type']>0 && trim($ligne['idLoc2Num'])<>'') {
$id2T=$ligne['idLoc2Type'];
$id2N=$ligne['idLoc2Num'];
$tabIdL[]=$id2T*1;
}
if ($ligne['idLoc2Type']>0 && trim($ligne['idLoc2Num'])<>'') {
$id3T=$ligne['idLoc3Type'];
$id3N=$ligne['idLoc3Num'];
$tabIdL[]=$id3T*1;
}
if ($siren>1000) {
if ($id1T=='' && $id1N=='') { $id1T=1; $id1N=$siren; }
elseif ($id2T=='' && $id2N=='') { $id2T=1; $id2N=$siren; }
elseif ($id3T=='' && $id3N=='') { $id3T=1; $id3N=$siren; }
}
fwrite($fpE, "$id\t$isin\t$ppPm\t$rs\t$sigle\t$civ\t$nom\t$prenom\t$nomUsa\t$nDate\t$nLieu\t$nPaysD\t$nat\t$adrNum\t$adrBtq\t$adrVoi\t$adrLib\t$adrCom\t$adrCP\t$adrVil\t$adrPay\t$tel\t$fax\t$web\t$email\t$cj\t$ape\t$cap\t$capDev".EOL);
}
fclose($fpE);
$tFin=microtime(1);
echo EOL."Durée Fichier Entites .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
$tabIdL=array_unique($tabIdL);
$strIdsLoc=implode(',', $tabIdL);
print_r($tabIdL);
$ret=$iDb->select('sdv1.tabIdLocal', 'id, idLocal, idLocalLong', "id IN ($strIdsLoc) ORDER BY id ASC", false, MYSQL_ASSOC, true);
echo mysql_error();
echo date ('Y/m/d - H:i:s') . " - Il y a $ret IdLocaux relatifs à '$codPays3' à exporter ...".EOL;
$tDeb=microtime(1);
fwrite ($fpI, "id\tidLocal\tidLocalLong".EOL);
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
$id= $ligne['id'];
$idLoc= $ligne['idLocal'];
$idLong=$ligne['idLocalLong'];
fwrite($fpI, "$id\t$idLoc\t$idLong".EOL);
}
fclose($fpI);
$tFin=microtime(1);
echo EOL."Durée Fichier IdLocaux .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
die();
?>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,192 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<STYLE>
<!--
BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Arial"; font-size:x-small }
-->
</STYLE>
</HEAD>
<BODY TEXT="#000000">
<TABLE CELLSPACING=0 BORDER=0>
<tr>
<td ALIGN="left" colspan="5"><IMG SRC="../docs/logoSD.png" WIDTH=344 HEIGHT=88 HSPACE=48 VSPACE=7/></td>
<td align="right" colspan="3"><b><font size=3 COLOR="#808080">FACTURE ORIGINALE</FONT></b></td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1 COLOR="#000000">SCORES &amp; DECISIONS SAS</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1 COLOR="#808080">S.A.S au capital 612 250&nbsp;&euro;</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>18, rue Saulnier &ndash; 75009 PARIS</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>RCS VERSAILLES B 494 967 938</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>T&eacute;l. : 01 75 43 80 10</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>Fax : 01 75 43 85 74</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>compta@scores-decisions.com</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1 COLOR="#000000">No de TVA : FR 84 494 967 938</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td width=180>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td height=17 BGCOLOR="#808080" colspan=8 align="center">
<table border=2>
<tr><td height=17 align="center" BGCOLOR="#808080" colspan=8><b><font face="Helvetica" size=4 color="#000000">Facture N&deg; <?=$tplt['numFacture']?> du <?=$tplt['dateFacture']?></font></b></td></tr>
</table>
</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>Raison sociale :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['raisonSociale']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>Client N&deg; :</font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['numClient']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>ID client :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['refClient']?></font></b></td>
<td colspan=2 align="left">&nbsp;</td>
<td colspan=3 align="left">&nbsp;</td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>Adresse de facturation :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['adresseFact1']?><br/><?=$tplt['adresseFact2']?><br/><?=$tplt['adresseFact3']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>Adresse de livraison :</font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['adresseLiv1']?><br/><?=$tplt['adresseLiv2']?><br/><?=$tplt['adresseLiv3']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>SIREN :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['siren']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>NIC : </font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['nic']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>N&deg; de TVA :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['numtva']?></font></b></td>
<td colspan=2 align="left">&nbsp;</td>
<td colspan=3 align="left">&nbsp;</td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>Contact :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['signataireNom']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>Correspondant : </font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['correspNom']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>E-mail :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['signataireMail']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>E-mail : </font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['correspMail']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>T&eacute;l&eacute;phone :</font></b></td>
<td colspan=2 align="left" colspan=3><b><font size=1 color="#808080"><?=$tplt['signataireTel']?></font></b></td>
<td colspan=2 align="right" colspan=2><b><font size=1>T&eacute;l&eacute;phone :</font></b></td>
<td colspan=3 align="left" colspan=2><b><font size=1 color="#808080"><?=$tplt['correspTel']?></font></b></td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan=2 style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" HEIGHT=36 align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><FONT FACE="Helvetica" SIZE=2>Intitul&eacute; Prestations</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" size=2>Quantit&eacute;</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" SIZE=2>PU&nbsp;&euro;&nbsp;HT</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" size=2>Prix&nbsp;Total &euro; HT</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><FONT FACE="Helvetica" SIZE=2>TVA&nbsp;&euro;</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" SIZE=2>Avoir / Remise</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><FONT FACE="Helvetica" SIZE=2>Prix&nbsp;Total &euro; TTC</font></b></td>
</tr>
<? foreach ($tplt['ligne'] as $ligne=>$tplt2) { ?>
<tr>
<td colspan=2 style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" headers=35 align="left" VALIGN=MIDDLE><font size=1><?=$tplt2['intitule']?></font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" valign="middle"><font size=1><?=$tplt2['quantite']?></font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['puht'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['totalht'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000" align="right" align="right" valign="middle"><font size=1><?=number_format($tplt2['tva'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['remise'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['totalttc'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
</tr>
<? } ?>
<tr>
<td colspan=2 HEIGHT=35 align="left"><font size=1><BR></FONT></td>
<td align="left"><font size=1><BR></FONT></td>
<td align="left"><font size=1><BR></FONT></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><b><font size=1><?=number_format($tplt['totalht'], 2, ',', ' ')?>&nbsp;&euro;</font></b></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000" align="right" valign="middle"><b><font size=1><?=number_format($tplt['tva'], 2, ',', ' ')?>&nbsp;&euro;</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN="middle"><b><font size=1><?=number_format($tplt['remise'], 2, ',', ' ')?>&nbsp;&euro;</FONT></b></td>
<td STYLE="border-bottom: 1px solid #000000; border-right: 1px solid #000000" align="right" VALIGN="middle"><b><font size=1><?=number_format($tplt['totalttc'], 2, ',', ' ')?>&nbsp;&euro;</font></b></td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td align="right"><b><font size=1>Date de paiement :</FONT></b></td>
<td colspan=7 align="left"><b><font size=1 COLOR="#808080">5 jours a compter de la date de facturation</FONT></b></td>
</tr>
<tr>
<td align="right"><b><font size=1>Conditions d&rsquo;escompte :</FONT></b></td>
<td colspan=7 align="left"><b><font size=1 COLOR="#808080">Pas d'escompte en cas de paiement anticip&eacute;</FONT></b></td>
</tr>
<tr>
<td align="right"><b><font size=1>Taux indicatif de TVA :</FONT></b></td>
<td colspan=7 align="left" SDVAL="0,196" SDNUM="1036;0;0,00%"><b><font size=1 COLOR="#808080">19,60%</FONT></b></td>
</tr>
<tr>
<td align="right"><b><font size=1>P&eacute;nalit&eacute;s de retard :</FONT></b></td>
<td colspan=7 align="left"><b><font size=1 COLOR="#808080">Se r&eacute;f&eacute;rer aux conditions g&eacute;n&eacute;rales de services</FONT></b></td>
</tr>
</table>
</body>
</html>

View File

@ -1,845 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
$nbAdrRnvp=1000000;
$nbAdrRnvp=500000;
define('RNVP_FTP_HOST', 'gobie-d2-75.altima-hosting.fr');
define('RNVP_FTP_LOGIN', 'ScoresEtDecisions');
define('RNVP_FTP_PASS', '7631014530');
define('RNVP_FTP_DIR_GET', '/sortie/');
define('RNVP_FTP_DIR_PUT', '/entree/');
define('RNVP_FTP_LOCALDIR', '/home/data/rnvp/');
define('RNVP_BACKUP_DIR', '/home/data/rnvp/histo/');
$sep="\t";
$eol=EOL;
error_reporting(E_ALL ^ E_NOTICE);
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Gestion de la normalisation des adresses en fonction des sources.
Sans paramètre : réception des adresses normalisées, collecte des nouvelles et envoi pour normalisation.
Options :
-c[:OOO] Collecte des adresses à normaliser dans les differentes sources (OOO source optionnelle)
-e Envoi des adresses à normaliser
-r Reception des adresses normalisée
-m Ne pas envoyer de mail
-v Mode verbose/debug
-l Liste des sources
-s:XXX Renvoyer la source XXX en RNVP (non opérationnel)
-n Renvoyer toutes les adresses non traitées en RNVP
";
$tabSrc=array( 'leiReg'=>array('lib'=>'LEI Registered',
'db'=>'sdv1',
'table'=>'bourse_lei',
'zones'=>"100 AS source, id AS source_id, 0 AS num,
RegisteredName AS L1in, MappedRegisteredName AS L2in, RegisteredAddress2 AS L3in, RegisteredAddress1 AS L4in,
CONCAT(RegisteredAddress3,' ', RegisteredAddress4) AS L5in, CONCAT(RegisteredPostalCode,' ',RegisteredCity) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"RegisteredName<>'' AND RegisteredAddress1<>'' AND RegisteredCity<>'' AND RegisteredCountryCode='FR'
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=100 AND num=0),0)",
'go'=>0,
'idSrc'=>100),
'leiHead'=>array('lib'=>'LEI Headquarters',
'db'=>'sdv1',
'table'=>'bourse_lei',
'zones'=>"100 AS source, id AS source_id, 1 AS num,
RegisteredName AS L1in, HeadquarterAddress2 AS L2in, HeadquarterAddress3 AS L3in, HeadquarterAddress1 AS L4in,
HeadquarterAddress4 AS L5in, CONCAT(HeadquarterPostalCode,' ',HeadquarterCity) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"RegisteredName<>'' AND HeadquarterAddress1<>'' AND HeadquarterCity<>'' AND HeadquarterCountryCode='FR'
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=100 AND num=1),0)",
'go'=>0,
'idSrc'=>100),
'bompadm'=>array('lib'=>'Administrations du BOAMP',
'db'=>'jo',
'table'=>'boamp_detail',
'zones'=>"140 AS source, id AS source_id, 0 AS num,
raisonSociale AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
'' AS L5in, CONCAT(cp,' ',ville) AS L6in, pays AS L7in, dateInsert*1 AS dateInsert",
'where'=>"raisonSociale<>'' AND adresse<>'' AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=140 AND num=0),0)",
'go'=>1,
'idSrc'=>140),
'bompent'=>array('lib'=>'Entreprises du BOAMP',
'db'=>'jo',
'table'=>'boamp_lots',
'zones'=>"140 AS source, id AS source_id, 1 AS num,
nom AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
'' AS L5in, CONCAT(cp,' ',ville) AS L6in, pays AS L7in, dateInsert*1 AS dateInsert",
'where'=>"nom<>'' AND adresse<>'' AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=140 AND num=1),0)",
'go'=>1,
'idSrc'=>140,
'idNum'=>1),
'greffes'=>array('lib'=>'Entreprises Infogreffe',
'db'=>'jo',
'table'=>'greffes_identite',
'zones'=>"4 AS source, id AS source_id, 0 AS num,
nom AS L1in, nomCommercial AS L2in, '' AS L3in, adresse AS L4in,
adresse2 AS L5in, CONCAT(cp,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"nom<>'' AND adresse<>'' AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=4 AND num=0),0)",
'go'=>1,
'idSrc'=>4),
'liens'=>array('lib'=>'Entreprises LiensRef',
'db'=>'jo',
'table'=>'liensRef',
'zones'=>"7 AS source, id AS source_id, 0 AS num,
RS AS L1in, '' AS L2in, '' AS L3in, CONCAT(adresse_num,' ',adresse_btq,' ',adresse_codvoie,' ',adresse_libvoie) AS L4in,
adresse_comp AS L5in, CONCAT(adresse_cp,' ',adresse_ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"id>999 AND sirenValide=0 AND RS<>'' AND adresse_libvoie<>'' AND adresse_ville<>'' AND adresse_pays='FRA'
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=7 AND num=0),0)",
'go'=>1,
'idSrc'=>7),
'rncsjug1'=>array('lib'=>'Jugements RNCS - Mandataire 1',
'db'=>'jo',
'table'=>'rncs_jugements',
'zones'=>"24 AS source, id AS source_id, 0 AS num,
adm1nom AS L1in, '' AS L2in, adm1adr2 AS L3in, adm1adr1 AS L4in,
adm1adr3 AS L5in, CONCAT(adm1adrCP,' ',adm1adrVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"adm1nom<>'' AND adm1adr1<>'' AND adm1adrVille<>'' AND adm1type<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=24 AND num=0),0)",
'go'=>1,
'idSrc'=>24),
'rncsjug2'=>array('lib'=>'Jugements RNCS - Mandataire 2',
'db'=>'jo',
'table'=>'rncs_jugements',
'zones'=>"24 AS source, id AS source_id, 1 AS num,
adm2nom AS L1in, '' AS L2in, adm2adr2 AS L3in, adm2adr1 AS L4in,
adm2adr3 AS L5in, CONCAT(adm2adrCP,' ',adm2adrVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"adm2nom<>'' AND adm2adr1<>'' AND adm2adrVille<>'' AND adm2type<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=24 AND num=1),0)",
'go'=>1,
'idSrc'=>24,
'idNum'=>1),
'rncsetab'=>array('lib'=>'Etablissements RNCS actifs',
'db'=>'jo',
'table'=>'rncs_etab e, rncs_entrep p',
'zones'=>"5 AS source, id AS source_id, 0 AS num,
p.raisonSociale AS L1in, IF(e.nomCommercial<>'',e.nomCommercial,e.enseigne) AS L2in, '' AS L3in, CONCAT(e.adrNumVoie,' ',e.adrIndRep,' ',e.adrTypeVoie,' ',e.adrVoie) AS L4in,
e.adrComp AS L5in, CONCAT(e.cp,' ',e.commune) AS L6in, '' AS L7in, e.dateInsert*1 AS dateInsert",
'where'=>"p.raisonSociale <>'' AND e.adrVoie<>'' AND e.commune<>'' AND e.siren=p.siren AND e.siege>=0 AND p.actif=1 AND e.actif=1
AND e.dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=5),0)",
'go'=>1,
'idSrc'=>24),
'clients'=>array('lib'=>'Sirenage Clients',
'db'=>'jo',
'table'=>'sirenage_clients',
'zones'=>"190 AS source, id AS source_id, 0 AS num,
nom AS L1in, enseigne AS L2in, adresse2 AS L3in, adresse1 AS L4in,
CONCAT(adresse3,' ',adresse4) AS L5in, CONCAT(cp,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"nom<>'' AND (adresse1<>'' OR adresse2<>'' OR adresse3<>'' OR adresse4<>'') AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=190 AND num=0),0)",
'go'=>1,
'idSrc'=>190),
'mand'=>array('lib'=>'Mandataires',
'db'=>'jo',
'table'=>'tabMandataires',
'zones'=>"176 AS source, id AS source_id, 0 AS num,
CONCAT(Nom,' ',Prenom) AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
adresseComp AS L5in, CONCAT(cp,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"Nom<>'' AND adresse<>'' AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=176),0)",
'go'=>1,
'idSrc'=>176),
'asso1'=>array( 'lib'=>'Associations',
'db'=>'jo',
'table'=>'asso',
'zones'=>"3 AS source, id AS source_id, 0 AS num,
Assoc_Nom AS L1in, '' AS L2in, '' AS L3in, Assoc_Adresse AS L4in,
Assoc_AdrComp AS L5in, CONCAT(Assoc_AdrCP,' ',Assoc_AdrVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"Assoc_Nom<>'' AND Assoc_Adresse<>'' AND Assoc_AdrVille<>'' AND Type_Annonce NOT LIKE '%Dissolution%'
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=3 AND num=0),0)",
'go'=>1,
'idSrc'=>3,
'idNum'=>0),
'asso2'=>array( 'lib'=>'Associations (Déménagements)',
'db'=>'jo',
'table'=>'asso',
'zones'=>"3 AS source, id AS source_id, 1 AS num,
Assoc_Nom AS L1in, '' AS L2in, '' AS L3in, Assoc_NAdresse AS L4in,
'' AS L5in, '' AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"Assoc_Nom<>'' AND Assoc_NAdresse<>'' AND Type_Annonce NOT LIKE '%Dissolution%'
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=3 AND num=1),0)",
'go'=>1,
'splitterL4'=>1, // Toute l'adresse est comprise dans la ligne 4
'idSrc'=>3,
'idNum'=>1),
'jal'=>array( 'lib'=>'Annonces en Collecte',
'db'=>'jo',
'table'=>'annonces',
'zones'=>"8 AS source, id AS source_id, 0 AS num,
raisonSociale AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
'' AS L5in, CONCAT(codePostal,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"raisonSociale<>'' AND adresse<>'' AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=8),0)",
'go'=>1,
'idSrc'=>8),
'insee'=>array( 'lib'=>'Etablissements actifs de l\'Insee',
'db'=>'insee',
'table'=>'insee.identite',
'zones'=>"2 AS source, id AS source_id, 0 AS num,
insL1_NOMEN AS L1in, insL2_COMP AS L2in, insL3_CADR AS L3in, insL4_VOIE AS L4in,
insL5_DISP AS L5in, insL6_POST AS L6in, insL7_ETRG AS L7in, dateUpdate*1 AS dateInsert",
'where'=>"insL1_NOMEN<>'' AND insL4_VOIE<>'' AND insL6_POST<>'' AND ACTIF=1
/*AND id NOT IN (SELECT source_id FROM villes.rnvpSources WHERE source=2)*/
AND dateUpdate>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=2),0)",
'go'=>1,
'idSrc'=>2),
'tourisme'=>array('lib'=>'Hotels/Campings',
'db'=>'jo',
'table'=>'tourisme',
'zones'=>"200 AS source, id AS source_id, 0 AS num,
nom AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
'' AS L5in, CONCAT(adrCp,' ',adrVille) AS L6in, '' AS L7in, dateUpdate*1 AS dateInsert",
'where'=>"nom<>'' AND adresse<>'' AND adrVille<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=200),0)",
'go'=>1,
'idSrc'=>200),
'bodacc0'=>array('lib'=>'Bodacc',
'db'=>'jo',
'table'=>'bodacc_detail',
'zones'=>"1 AS source, id AS source_id, 0 AS num,
raisonSociale AS L1in, enseigne AS L2in, nomCommercial AS L3in, adresse AS L4in,
'' AS L5in, CONCAT(codePostal,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"raisonSociale<>'' AND adresse<>'' AND codePostal>0 AND ville<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=0),0)",
'go'=>1,
'idSrc'=>1,
'idNum'=>0),
'bodacc1'=>array('lib'=>'Bodacc (Sièges)',
'db'=>'jo',
'table'=>'bodacc_detail',
'zones'=>"1 AS source, id AS source_id, 1 AS num,
raisonSociale AS L1in, enseigne AS L2in, nomCommercial AS L3in, adresseSiege AS L4in,
'' AS L5in, CONCAT(codePostalSiege,' ',villeSiege) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"raisonSociale<>'' AND adresseSiege<>'' AND codePostalSiege>0 AND villeSiege<>''
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=1),0)",
'go'=>1,
'idSrc'=>1,
'idNum'=>1),
'bodacc2'=>array('lib'=>'Bodacc (Mandataires)',
'db'=>'jo',
'table'=>'bodacc_detail',
'zones'=>"1 AS source, id AS source_id, 2 AS num,
mandNom AS L1in, mandRepr AS L2in, Mandataire AS L3in, mandAdresse AS L4in,
'' AS L5in, CONCAT(mandCP,' ',mandVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"Mandataire<>'' AND mandAdresse<>'' AND mandCP>0
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=2),0)",
'go'=>1,
'idSrc'=>1,
'idNum'=>2),
'bodacc3'=>array('lib'=>'Bodacc (ReprCreanciers)',
'db'=>'jo',
'table'=>'bodacc_detail',
'zones'=>"1 AS source, id AS source_id, 3 AS num,
creaNom AS L1in, creaRepr AS L2in, ReprCreanciers AS L3in, creaAdresse AS L4in,
'' AS L5in, CONCAT(creaCP,' ',creaVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"ReprCreanciers<>'' AND creaAdresse<>'' AND creaCP>0
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=3),0)",
'go'=>1,
'idSrc'=>1,
'idNum'=>3),
'bodacc4'=>array('lib'=>'Bodacc (Administrateurs)',
'db'=>'jo',
'table'=>'bodacc_detail',
'zones'=>"1 AS source, id AS source_id, 4 AS num,
admNom AS L1in, admRepr AS L2in, administrateur AS L3in, admAdresse AS L4in,
'' AS L5in, CONCAT(admCP,' ',admVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"administrateur<>'' AND admAdresse<>'' AND admCP>0
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=4),0)",
'go'=>1,
'idSrc'=>1,
'idNum'=>4),
'bodacc5'=>array('lib'=>'Bodacc (Oppositions)',
'db'=>'jo',
'table'=>'bodacc_detail',
'zones'=>"1 AS source, id AS source_id, 5 AS num,
oppoNom AS L1in, oppoRepr AS L2in, oppositions AS L3in, oppoAdresse AS L4in,
'' AS L5in, CONCAT(oppoCP,' ',oppoVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"oppositions<>'' AND oppoAdresse<>'' AND oppoCP>0
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=5),0)",
'go'=>1,
'idSrc'=>1,
'idNum'=>5),
'rcMonaco'=>array('lib'=>'RC Monaco',
'db'=>'tmp',
'table'=>'rcMonaco',
'zones'=>"30 AS source, id AS source_id, 0 AS num,
IF(rs='',nomPrenom,rs) AS L1in, etabEns AS L2in, ensAdr1 AS L3in, ensAdr2 AS L4in, ensAdr3 AS L5in, ensAdr4 AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
'where'=>"(rs<>'' OR nomPrenom<>'') AND (ensAdr1 IS NOT NULL OR ensAdr2 IS NOT NULL OR ensAdr3 IS NOT NULL OR ensAdr4 IS NOT NULL)
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=30),0)",
'go'=>1,
'idSrc'=>30),
/* 'qualifelec'=>array('lib'=>'Qualifelec',
'db'=>'sdv1',
'table'=>'qualifelec',
'zones'=>"id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, mail, web, DATE(dateInsert)*1 AS dateInsert, tel, fax",
'where'=>"siret>100000000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
'go'=>1,
'idSrc'=>211),
'qualipaysage'=>array('lib'=>'Qualipaysage',
'db'=>'sdv1',
'table'=>'qualipaysage',
'zones'=>"id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, mail, web, DATE(dateInsert)*1 AS dateInsert, tel, fax",
'where'=>"siret>100000000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
'go'=>1,
'idSrc'=>212),
'qualibat'=>array('lib'=>'Qualibat',
'db'=>'sdv1',
'table'=>'qualibat',
'zones'=>"id, siren, NULL AS nic, '' AS poste, email AS mail, web, DATE(dateInsert)*1 AS dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(tel,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(fax,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS fax",
'where'=>"siren>1000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR email<>'' OR web<>'')",
'go'=>1,
'idSrc'=>213),
'ecoartisan'=>array('lib'=>'EcoArtisan',
'db'=>'sdv1',
'table'=>'ecoartisan',
'zones'=>"id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, mail, web, DATE(dateInsert)*1 AS dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(tel,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(fax,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS fax,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(mob,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS mob",
'where'=>"siret>100000000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mob<>'' OR mail<>'' OR web<>'')",
'go'=>1,
'idSrc'=>214),
'finess'=>array('lib'=>'Finess',
'db'=>'sante',
'table'=>'finess',
'zones'=>"id, SUBSTRING(SIRET,1,9) AS siren, SUBSTRING(SIRET,10,5) AS nic, '' AS poste, '' AS mail, '' AS web, DATE(NOW())*1 AS dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(Tel,'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(Fax,'-',''),' ',''),',',''),'.','') AS fax",
'where'=>"SIRET>1000 AND recupTel=0 AND (Tel<>'' OR Fax<>'')",
'go'=>1,
'idSrc'=>210),
'cncc'=>array('lib'=>'CNCC',
'db'=>'sdv1',
'table'=>'tabCNCC',
'zones'=>"id, siren, nic, '' AS poste, mail, web, dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(Tel,'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(Fax,'-',''),' ',''),',',''),'.','') AS fax",
'where'=>"siren>100 AND nic>9 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
'go'=>1,
'idSrc'=>300),
'amf_mairies'=>array('lib'=>'AMFM',
'db'=>'jo',
'table'=>'villes',
'zones'=>"id, siren, nic, '' AS poste, '' AS mail, web, dateMajAMF AS dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
'where'=>"siren>100 AND nic>9 AND recupTel=0 AND (tel<>'' OR fax<>'' OR web<>'')",
'go'=>1,
'idSrc'=>400),
'banatic'=>array('lib'=>'Banatic',
'db'=>'insee',
'table'=>'banatic_coor',
'zones'=>"id, sirenGrp AS siren, NULL AS nic, '' AS poste, mail, web, dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
'where'=>"sirenGrp>100 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
'go'=>1,
'idSrc'=>52),
'infos_entrep'=>array('lib'=>'InfosEntrep',
'db'=>'jo',
'table'=>'infos_entrep',
'zones'=>"id, siren, nic, '' AS poste, mail, web, dateUpdate AS dateInsert,
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
'where'=>"siren>1000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
'go'=>1,
'idSrc'=>175),*/
);
//$tabZones=array('tel', 'fax', 'mob', 'mail', 'web', 'an8');
$verbose=$noMail=$collecteAdr=$recupRnvp=$envoiRnvp=$envoiRnvpAll=$listeSrc=$sourceCollecteOnly=false;
$purgeFtp=30; // Purger les fichiers sur le FTP qui ont plus de X jours
$tabFichiers=$tabFichiersCmd=array();
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1) {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v':
$verbose=true;
break;
case 'm':
$noMail=true;
break;
case 'c':
$collecteAdr=true;
$sourceCollecteOnly=trim(substr($argv[$i],3));
if ($sourceCollecteOnly=='') $sourceCollecteOnly=false;
//die($sourceCollecteOnly);
break;
case 'r':
$recupRnvp=true;
break;
case 'e': // Envoi des adresses à normaliser
case 's': // Renvoyer la source XXX en RNVP (non opérationnel)
case 'n': // Renvoyer toutes les adresses non traitées en RNVP
$envoiRnvp=true;
if (substr($argv[$i],1,1)=='s') {
$tmp=substr($argv[$i],3,strlen($argv[$i])-3);
$envoiSrc=@$tabSrc[$tmp]['idSrc'];
$envoiNum=@$tabSrc[$tmp]['idNum']*1;
if ($envoiSrc==0) die("Source '$tmp' inexistante !".EOL);
$nbAdrRnvp=20000000;
} elseif (substr($argv[$i],1,1)=='n') {
$nbAdrRnvp=1000000;
$envoiRnvpAll=true;
}
break;
case 'l':
$listeSrc=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
else {
$tabFichiersCmd[]=$argv[$i];
// $envoiRnvp=true;
}
}
} else
$collecteAdr=$recupRnvp=$envoiRnvp=true;
$iDb=new WDB('jo');
$iDb2=new WDB('villes');
$iInsee=new MInsee();
if ($listeSrc) {
foreach ($tabSrc as $codSrc=>$tabSrcDet) {
$idSrc=$tabSrcDet['idSrc'];
$nomSrc=$tabSrcDet['lib'];
$srcActive=$tabSrcDet['go'];
if($srcActive) echo "Actif\t";
else echo "INACTIF\t";
echo "$idSrc\t$codSrc\t$nomSrc".EOL;
}
die();
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de RNVP...".EOL;
if ($recupRnvp) {
echo date('Y/m/d - H:i:s') ." - Reception des adresses normalisées...".EOL;
$message=date('Y/m/d - H:i:s') ." - Début de réception des adresses normalisées.".EOL;
$tDeb=microtime(1);
$fc = ftp_connect(RNVP_FTP_HOST);
if (!$fc) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de se connecter à '".RNVP_FTP_HOST."' !". EOL);
$fl = ftp_login($fc, RNVP_FTP_LOGIN, RNVP_FTP_PASS);
if (!$fl) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de s'authentifier à '".RNVP_FTP_HOST."' !". EOL);
// CHARGEMENT ET D'UN FICHIER
$contents = ftp_nlist($fc, RNVP_FTP_DIR_GET);
if ($contents) {
foreach($contents as $k => $server_file) {
$dwl=false;
$tailleDist = ftp_size($fc, $server_file);
$dateDist = ftp_mdtm($fc, $server_file);
$server_fileName=basename($server_file);
if (file_exists(RNVP_FTP_LOCALDIR . $server_fileName)) {
$dateLoc=filemtime(RNVP_FTP_LOCALDIR . $server_fileName);
$tailleLoc=filesize(RNVP_FTP_LOCALDIR . $server_fileName);
}
if ($tailleDist<>@$tailleLoc &&
preg_match('/\.txt\.Rnvp\.(Rejets|20).*OK/i', $server_fileName) && substr($server_fileName,-5)<>'.flag') {
$tDeb = microtime(true);
if (ftp_get($fc, RNVP_FTP_LOCALDIR.basename($server_file), $server_file, FTP_BINARY)) {
$tFin = microtime(true);
$tDur = round($tFin-$tDeb,3);
$tailleDistKo=round($tailleDist/1024,1);
$tRatio=@round($tailleDistKo/$tDur,1);
echo date ('Y/m/d - H:i:s')." - Fichier distant $server_fileName téléchargé avec succès : $tailleDistKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
$message.=date('Y/m/d - H:i:s') ." - Fichier distant $server_fileName téléchargé avec succès : $tailleDistKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
$dwl=true;
}
} elseif (($tailleDist==@$tailleLoc && preg_match('/\.txt\.Rnvp\.(Rejets|20).*OK/i', $server_fileName)) || substr($server_fileName,-5)=='.flag')
$dwl=true;
if ($dwl && date('Ymd',$dateDist)<date('Ymd')) {
if (ftp_delete($fc, $server_file)) {
echo date ('Y/m/d - H:i:s')." - Fichier distant $server_fileName effacé avec succès ($tailleDistKo Ko)".EOL;
$message.=date('Y/m/d - H:i:s') ." - Fichier distant $server_fileName effacé avec succès ($tailleDistKo Ko)".EOL; }
}
}
}
// Fermeture de la connexion
ftp_close($fc);
echo date('Y/m/d - H:i:s') ." - Fin des transferts FTP.".EOL;
$message.=date('Y/m/d - H:i:s') ." - Fin des transferts FTP.".EOL;
$dh = opendir(RNVP_FTP_LOCALDIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && preg_match('/\.txt\.Rnvp\.(Rejets|20).*OK/i', $filename))
$tabFichiers[] = RNVP_FTP_LOCALDIR.$filename;
}
sort($tabFichiers);
$tabPays=array();
$tabTmp=$iDb2->select('jo.tabPays','codPays3, libPays', '1', false, MYSQL_ASSOC);
foreach($tabTmp as $i=>$tabTmp2) {
$tabPays[$tabTmp2['codPays3']]=$tabTmp2['libPays'];
}
$nbRows=count($tabTmp);
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows pays en table...".EOL;
foreach ($tabFichiers as $iFic=>$filename) {
$nbUpdate=0;
if (file_exists(REP_TEMP.basename($filename).'.lock')) {
$tab2Tmp=explode(';',file_get_contents(REP_TEMP.basename($filename).'.lock'));
$date2Tmp=WDate::DateT('YmdHis', 'd/m/Y H:i:s',$tab2Tmp[0]);
$nbL2Tmp=$tab2Tmp[2];
$nbLignesTot=trim($tab2Tmp[3]);
// fwrite($fpT, date('Ymd-His')."$fichier;$dateInsert;$nbLignes;
$messageLigne=date('Y/m/d - H:i:s')." - Le fichier n°$iFic ($filename) est en cours de chargement depuis le $date2Tmp ($nbL2Tmp/$nbLignesTot lignes chargées)...".EOL;
echo $messageLigne;
$message.=$messageLigne;
//if (!$stopSiErreur) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement Adresses RNVP - ERREUR !!!', $message);
continue;
//}
}
$fp=fopen($filename, 'r');
if ($fp) {
$nbLignes=$nbLignesTot=0;
if (preg_match('/\.txt\.Rnvp\.(Rejets|20)(.*)\.OK/i', $filename, $matches)) {
// RNVP_SED_20141219_135641.txt.Rnvp.20141219142501062.OK
if ($matches[1]=='Rejets') {
$codeRetourRnvp='KO';
$dateRetourRnvp=substr($matches[2],1,14);
} else {
$codeRetourRnvp='OK';
$dateRetourRnvp='20'.substr($matches[2],0,12);
}
while (!feof($fp)) {
$a = fgets($fp, 4096);
$nbLignesTot++;
}
$nbLignesTot--; // On enlève la ligne d'entête
//if ($codeRetourRnvp<>'KO') {
$ret2=$iDb2->select('villes.rnvpSources', 'COUNT(*) AS nb', "dateRetourRnvp=$dateRetourRnvp AND codeRetour='$codeRetourRnvp'", false, MYSQL_ASSOC);
$nbLignesBase=$ret2[0]['nb']*1;
if ($nbLignesTot>0 && $nbLignesBase>=floor($nbLignesTot*0.995)) {
if ($verbose) echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes et a déjà été chargé ($nbLignesBase lignes en base).".EOL;
fclose($fp);
continue;
} elseif ($nbLignesTot==0) {
if ($verbose) echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' est vide !".EOL;
continue;
} else {
echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes".EOL;
$ratio=floor($nbLignesTot*0.995);
echo date('Y/m/d - H:i:s') ." - en base : $nbLignesBase lignes (rapport = $ratio).".EOL;
echo date('Y/m/d - H:i:s') ." - $nbLignesBase > $ratio ?".EOL;
if ($verbose) die();
}
} else continue;
//if ($codeRetourRnvp<>'KO') continue;
echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes ($nbLignesBase déjà chargées).".EOL;
$message.=date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes ($nbLignesBase déjà chargées).".EOL;
rewind($fp);
$entete = fgets($fp, 4096);
$tabEntete=explode("\t", $entete);
//echo $entete.EOL;
//print_r($tabEntete);
//die();
while (!feof($fp)) {
/** Ajout/Maj des infos du verrou **/
if ($nbLignes==0 || $nbLignes%100000==0) {
$fpT=fopen(REP_TEMP.basename($filename).'.lock', 'w');
fwrite($fpT, date('YmdHis').";$filename;$nbLignes;$nbLignesTot".EOL);
fclose($fpT);
}
$nbLignes++;
//if ($nbLignes<$numReprise) continue;
$ligne = fgets($fp, 4096);
$tabLigne=explode("\t", $ligne);
$tabUpdate=array('dateRetourRnvp'=>$dateRetourRnvp,'codeRetour'=>$codeRetourRnvp);
foreach ($tabLigne as $iCol=>$valeur)
$tabUpdate[trim($tabEntete[$iCol])]=$valeur;
//print_r($tabUpdate);
unset($tabUpdate['Rang']); // => R010
unset($tabUpdate['IdElfy']);// => 1010
unset($tabUpdate['CMedia']);
$tabUpdate['L1rnvp']=strtoupper($tabUpdate['TNP']); unset($tabUpdate['TNP']);
if (isset($tabUpdate['NOM_OUTPUT']) && $tabUpdate['L1rnvp']=='' && $tabUpdate['NOM_OUTPUT']<>'')
$tabUpdate['L1rnvp']=trim($tabUpdate['NOM_OUTPUT']);
unset($tabUpdate['NOM_OUTPUT']);
$tabUpdate['L2rnvp']=strtoupper($tabUpdate['CNom']); unset($tabUpdate['CNom']);
if (isset($tabUpdate['ENSEIGNE_OUTPUT']) && $tabUpdate['L2rnvp']=='' && $tabUpdate['ENSEIGNE_OUTPUT']<>'')
$tabUpdate['L2rnvp']=trim($tabUpdate['ENSEIGNE_OUTPUT']);
unset($tabUpdate['ENSEIGNE_OUTPUT']);
$tabUpdate['L3rnvp']=strtoupper($tabUpdate['CAdrs']); unset($tabUpdate['CAdrs']);
$tabUpdate['L4rnvp']=strtoupper($tabUpdate['Adrs']); unset($tabUpdate['Adrs']);
$tabUpdate['L5rnvp']=strtoupper($tabUpdate['LieuDit']); unset($tabUpdate['LieuDit']);
$tabUpdate['L6rnvp']=strtoupper($tabUpdate['CpVille']); unset($tabUpdate['CpVille']);
if ($tabUpdate['Pays']<>'' && $tabUpdate['Pays']<>'FRA')
$tabUpdate['L6rnvp']=strtoupper($tabPays[$tabUpdate['Pays']]);
unset($tabUpdate['PAYS_OUTPUT']);
$id=$tabUpdate['REF_OUTPUT']; unset($tabUpdate['REF_OUTPUT']);
if ($id==0) continue; // Fin de fichier / Ligne vide
/** Zones non renseignées (option non comprise) **/
unset($tabUpdate['TDM']);
unset($tabUpdate['TourneeFacteur']);
unset($tabUpdate['Codageo_Iris']);
unset($tabUpdate['Codageo_X']);
unset($tabUpdate['Codageo_Y']);
unset($tabUpdate['Codageo_precision']);
unset($tabUpdate['Codageo_Cq']);
unset($tabUpdate['StatAge']);
unset($tabUpdate['CivCourt']);
unset($tabUpdate['CivLong']);
unset($tabUpdate['Sex']);
unset($tabUpdate['Nom']);
unset($tabUpdate['Prenom']);
unset($tabUpdate['CQtnp']);
/** Zones inutiles, chronospace **/
unset($tabUpdate['RSoc_Input']);
unset($tabUpdate['Ville38']);
unset($tabUpdate['LibDept']);
unset($tabUpdate['Prefecture']);
unset($tabUpdate['RegionAdministrative']);
//echo "Mise à jour de l'id=$id ...".mysql_errno().' : '.mysql_error().EOL;
//print_r($tabUpdate);
$ret2=$iDb2->update('rnvpSources', $tabUpdate, "id=$id", false, 1, true);
if (!mysql_errno()) $nbUpdate++;
else {
print_r($tabUpdate);
echo "Erreur n°".mysql_errno()." lors de la mise à jour de la ligne id=$i (".mysql_error().")".EOL;
}
}
fclose($fp);
// Suppression du verrou
unlink(REP_TEMP.basename($filename).'.lock');
if (bzip2($filename,RNVP_BACKUP_DIR.basename($filename))) {
unlink($filename);
$messageLigne=date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic ($filename) vient d'être historisé.".EOL;
echo $messageLigne;
$message.=$messageLigne;
}
$message.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbUpdate lignes d'adresses sur $nbLignes.". EOL;
}
}
//print_r($tabFichiers);
//die();
if (!$noMail) {
$message.=date('Y/m/d - H:i:s') ." - Fin de réception des adresses RNVP.".EOL;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Traitement RNVP - Envoi en RNVP", $message);
}
echo date('Y/m/d - H:i:s') ." - Fin de la réception des adresses RNVP.".EOL;
}
if ($collecteAdr) {
echo date('Y/m/d - H:i:s') ." - Recherche des nouvelles adresses par sources...".EOL;
foreach ($tabSrc as $src=>$tabSrcDet) {
if ($tabSrcDet['go']==0) {
echo date('Y/m/d - H:i:s') ." - On ne traite pas les adresses '".$tabSrcDet['lib']."'".EOL;
continue;
}
if ($sourceCollecteOnly) {
if ($sourceCollecteOnly<>$src) {
//echo date('Y/m/d - H:i:s') ." - On ne traite pas les adresses '".$tabSrcDet['lib']."'".EOL;
continue;
}
}
echo date('Y/m/d - H:i:s') ." - Traitement des adresses '".$tabSrcDet['lib']."' (Source ".$tabSrcDet['idSrc'].")".EOL;
unset($iDb);
$iDb=new WDB($tabSrcDet['db']);
//enum('an8', 'domaines', 'fax', 'logo', '', 'mob', 'tel', 'web')
$nb=$iDb->select($tabSrcDet['table'], $tabSrcDet['zones'],$tabSrcDet['where'], false,MYSQL_ASSOC,true);
/*
echo "SELECT ".$tabSrcDet['zones']."
FROM ".$tabSrcDet['table']."
WHERE ".$tabSrcDet['where'].";".EOL;
*/
if (mysql_errno()<>0) die(mysql_error().EOL);
echo date ('Y/m/d - H:i:s')." - Il y a $nb ligne(s) d'adresses '".$tabSrcDet['lib']."' à traiter...".mysql_error().EOL;
$j=0;
while ($tabAdr=$iDb->fetch(MYSQL_ASSOC)) {
$j++;
$source = $tabAdr['source'];
$source_id = $tabAdr['source_id'];
$num = $tabAdr['num'];
// Retraitement des adresses dont toutes les informations sont sur la même ligne
if (isset($tabSrcDet['splitterL4']) && $tabSrcDet['splitterL4']==1) {
$adrL4=$tabAdr['L4in'];
$tabAdr2=$iInsee->structureVoie($adrL4);
$tabAdr['L3in']=@$tabAdr2['adrComp0'];
$tabAdr['L4in']=@$tabAdr2['num'].' '.@$tabAdr2['indRep'].' '.@$tabAdr2['typeVoie'].' '.@$tabAdr2['libVoie'];
$tabAdr['L5in']=@$tabAdr2['adrComp1'];
$tabAdr['L6in']=@$tabAdr2['cp'].' '.@$tabAdr2['ville'];
//print_r($tabAdr);
//die($adrL4);
}
if ($iDb2->insert('rnvpSources', $tabAdr, false) || $iDb2->getLastErrorNum()==1062) {
if ($iDb2->getLastErrorNum()<>1062) @$nbInsert[$src]++;
/*elseif ($iDb2->getLastErrorNum()==1062) {
$ret2=$iDb2->select('villes.rnvpSources', 'id', "source=$source AND source_id=$source_id AND num=$num", false, MYSQL_ASSOC);
$id=$ret2[0]['id'];
$iDb2->query("INSERT IGNORE INTO villes.rnvpHisto SELECT * FROM villes.rnvpSources WHERE id=$id;", false);
$iDb2->query("DELETE FROM villes.rnvpSources WHERE id=$id;", false);
@$nbUpdate[$src]++;
if (!$iDb2->insert('rnvpSources', $tabAdr, false)) die($iDb2->getLastError());
}*/
@$nbTot[$src]++;
} else die($iDb2->getLastError());
}
}
print_r($nbInsert);
print_r($nbUpdate);
print_r($nbTot);
if (!$noMail) {
$message=date('Y/m/d - H:i:s') ." - Fin de la récupération des Adresses des différentes sources :".EOL;
foreach ($tabSrc as $src=>$tTmp)
if (@$nbTot[$src]>0)
$message.=" Adresses '$src' :\t".@$nbInsert[$src].' ajouts et '.@$nbUpdate[$src].' MAJ / '.@$nbTot[$src].' adresses'.EOL;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Traitement RNVP - Récupération des adresses", $message);
}
echo date('Y/m/d - H:i:s') ." - Fin de la recherche des adresses par sources.".EOL;
}
if ($envoiRnvp || $envoiRnvpAll) {
$dateEnvoirRnvp=date('Ymd_His');
$dateEnvoirRnvpInt=str_replace('_','',$dateEnvoirRnvp);
$nbExport=0;
if ($envoiSrc>0) {
$sqlWhereRnvp=" source=$envoiSrc AND num=$envoiNum ";
} elseif ($envoiRnvpAll) {
$sqlWhereRnvp=" dateEnvoiRnvp<>0 AND dateRetourRnvp=0 ";
} else
$sqlWhereRnvp=" dateEnvoiRnvp=0 ";
if (count($tabFichiersCmd)==1)
$fileNameOut=$tabFichiersCmd[0];
else {
$fileNameOut="RNVP_SED_$dateEnvoirRnvp.txt";
echo date('Y/m/d - H:i:s') ." - Sélection des adresses à envoyer en RNVP.".EOL;
$message=date('Y/m/d - H:i:s') ." - Début de la sélection des adresses à envoyer en RNVP.".EOL;
$tabTmp=$iDb2->select('villes.rnvpSources','COUNT(*) AS nb', $sqlWhereRnvp, false, MYSQL_ASSOC);
$nbExport=$tabTmp[0]['nb'];
echo date('Y/m/d - H:i:s') ." - Il y a $nbExport lignes d'adresses à envoyer en RNVP...".EOL;
}
$fileNameFlag=substr($fileNameOut,0,-4).'.flag';
$fileNameZip=substr($fileNameOut,0,-4).'.zip';
if ($nbExport>0 && count($tabFichiersCmd)==0) {
$nb=$iDb->exportCSV("SELECT id AS REF,
TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L1in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')) AS NOM,
TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L2in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')) AS ENSEIGNE,
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L3in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS ADRESSE1,
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L4in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS ADRESSE2,
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L5in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS ADRESSE3,
SUBSTRING(L6in,1,5) AS CP,
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING(L6in,6,LENGTH(L6in)),'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS VILLE,
TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L7in,'F-',''),'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')) AS PAYS FROM villes.rnvpSources WHERE $sqlWhereRnvp ORDER BY id ASC LIMIT 0,$nbAdrRnvp;", RNVP_FTP_LOCALDIR.$fileNameOut,$sep,$eol);
$iDb->query("UPDATE villes.rnvpSources SET dateEnvoiRnvp=$dateEnvoirRnvpInt WHERE $sqlWhereRnvp ORDER BY id ASC LIMIT $nbAdrRnvp;", false);
echo mysql_error().EOL;
$sizeO=filesize(RNVP_FTP_LOCALDIR.$fileNameOut);
file_put_contents(RNVP_FTP_LOCALDIR.$fileNameFlag, "$fileNameOut");
$sizeK=round($sizeO/1024,1);
echo date('Y/m/d - H:i:s') ." - Export de $nb lignes d'adresses ($sizeK Ko).". EOL;
}
if (count($tabFichiersCmd)==1 || $nbExport>0) {
if (count($tabFichiersCmd)==1)
echo date('Y/m/d - H:i:s') ." - Export du fichier '$fileNameOut'...". EOL;
$sizeO=filesize(RNVP_FTP_LOCALDIR.$fileNameOut);
$sizeK=round($sizeO/1024,1);
$tDeb=microtime(1);
$fc = ftp_connect(RNVP_FTP_HOST);
if (!$fc) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de se connecter à '".RNVP_FTP_HOST."' !". EOL);
$fl = ftp_login($fc, RNVP_FTP_LOGIN, RNVP_FTP_PASS);
if (!$fl) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de s'authentifier à '".RNVP_FTP_HOST."' !". EOL);
//CHARGEMENT ET D'UN FICHIER
$fup = ftp_put($fc, RNVP_FTP_DIR_PUT.$fileNameOut, RNVP_FTP_LOCALDIR.$fileNameOut, FTP_BINARY);
//VERIFICATION DU BON CHARGEMENT DU FICHIER
if (!$fup) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de déposer '".RNVP_FTP_LOCALDIR.$fileNameOut."' vers '".RNVP_FTP_HOST."' !". EOL);
$duree=round(microtime(1)-$tDeb,1);
$fup = ftp_put($fc, RNVP_FTP_DIR_PUT.$fileNameFlag, RNVP_FTP_LOCALDIR.$fileNameFlag, FTP_BINARY);
if (!$fup) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de déposer '".RNVP_FTP_LOCALDIR.$fileNameFlag."' vers '".RNVP_FTP_HOST."' !". EOL);
if (count($tabFichiersCmd)==1)
echo date('Y/m/d - H:i:s') ." - Upload du fichier '$fileNameOut' ($sizeK Ko) en $duree secondes.". EOL;
else
echo date('Y/m/d - H:i:s') ." - Upload de $nb lignes d'adresses ($sizeK Ko) en $duree secondes.". EOL;
//FERMETURE DE LA CONNEXION
ftp_close($fc);
if (bzip2(RNVP_FTP_LOCALDIR.$fileNameOut,RNVP_BACKUP_DIR.$fileNameOut)) {
unlink(RNVP_FTP_LOCALDIR.$fileNameOut);
$messageLigne=date ('Y/m/d - H:i:s') . " - Le fichier '$fileNameOut' vient d'être historisé.".EOL;
echo $messageLigne;
$message.=$messageLigne;
}
if (!$noMail) {
$message.=date('Y/m/d - H:i:s') ." - Fin de l'envoi vers la RNVP.".EOL;
if (count($tabFichiersCmd)==1)
$message.=date('Y/m/d - H:i:s') ." - Upload du fichier '$fileNameOut' ($sizeK Ko) en $duree secondes.". EOL;
else
$message.=date('Y/m/d - H:i:s') ." - Upload de $nb lignes d'adresses ($sizeK Ko) en $duree secondes.". EOL;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Traitement RNVP - Envoi en RNVP", $message);
}
} else
echo date('Y/m/d - H:i:s') ." - Il n'y a aucune adresse à envoyer en RNVP !".EOL;
echo date('Y/m/d - H:i:s') ." - Fin de l'envoi vers la RNVP.".EOL;
}
echo date('Y/m/d - H:i:s') ." - FIN du programme de RNVP.".EOL;
die();
?>

View File

@ -1,247 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'common/controles.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(FWK_PATH.'mail/sendMail.php');
function getNextDate($dateCour, $nbJours=7) {
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
return $nextDate;
}
$urlBase='http://www.zonebourse.com';// 593
$url='/bourse/actions/a-9/';
$tabUrlZones=array( 8=> array('lib'=>'Amérique du Nord','url'=>'/bourse/actions/Amerique-du-Nord-8/',),
10=>array('lib'=>'Amérique du Sud', 'url'=>'/bourse/actions/Amerique-du-Sud-10/',),
3=>array('lib'=>'Europe', 'url'=>'/bourse/actions/Europe-3/',),
4=>array('lib'=>'Afrique', 'url'=>'/bourse/actions/Afrique-4/',),
5=>array('lib'=>'Moyen-Orient', 'url'=>'/bourse/actions/Moyen-Orient-5/',),
6=>array('lib'=>'Asie', 'url'=>'/bourse/actions/Asie-6/',),
7=>array('lib'=>'Océanie', 'url'=>'/bourse/actions/Oceanie-7/',),
);
$tabUrlPays=array();
$pays=$zone=false;
function getInfosAnnonce($annonceHtml) {
$tabRet=array();
$tabRet['raisonSociale']=trim(str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml,'<dd><label>Société : </label><strong>', '<strong>', '</strong></dd>'))));
$tabRet['isin']=strtoupper(trim(strtr(@getTextInHtml($annonceHtml, '<dd><label>ISIN : </label>', '</label>', '</dd>'), array(':'=>'',' '=>''))));
$tabRet['docDesc']=trim(@getTextInHtml($annonceHtml, '<div class="r_desc">', 'class="r_desc">', '</div>'));
$tabRet['docDate']=WDate::DateT('d/m/Y','Y-m-d', trim(@getTextInHtml($annonceHtml, '<span class="date">', 'class="date">', '</span>'))).' '.trim(@getTextInHtml($annonceHtml, '<span class="heure">', 'class="heure">', '</span>')).':00';
$tabRet['docCategorie']=utf8_decode(strip_tags('<a href="'.trim(str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<div class="resultat_HitGroup">', '<a href="', '</div>'))))));
$tabRet['docTitre']=utf8_decode(trim(str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml, '<dd><label>Titre du document : </label>', '"> ', '</a></dd>')))));
$tabRet['docLangue']=trim(@getTextInHtml($annonceHtml, '<dd><label>Langue : </label>', '</label>', '</dd>'));
$tabRet['pdfLink']=str_replace('https://', 'http://', str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<a href="http://www.info-financiere.fr/', 'href="', '">'))));
return $tabRet;
}
$iPage=1; // Reprendre à la page 1
$tempsMinEntreRequetes=7;
$tempsMaxEntreRequetes=21;
$modeDebug=false;
set_time_limit(0);
$lastJO=$dateDebut=$dateFin=$dateF=$dateCour=$load=false;
$iDb=new WDB('tmp');
$iInsee=new MInsee();
$iBourse=new MBourse();
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
Recupère les dernières annonces BOAMP sur le site de la DJO.
Sans aucun paramètre, récupération des dernières Annonces.
Sinon:
-r:XXX Reprendre à la page n°XXX
-n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes)
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
-z(:NN) Liste des zones/Zones à traiter
-p(:NN) Liste des pays de la zone/Pays à traiter
-d Verbosité debug
-c Chargement détaillé
";/*
-l Dernières parutions uniquement (*)
-d:JJ/MM/AAAA Date de début de publication
-f:JJ/MM/AAAA Date de fin de publication
";*/
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true;
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$modeDebug=true;
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
$lastJO=false;
break;
case 'r':
$iPage=substr($argv[$i],3)*1;
break;
case 'n':
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
break;
case 'i':
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
break;
case 'c':
$load=true;
break;
case 'z':
$zone=substr($argv[$i],3)*1;
if ($zone==0) {
echo 'Liste des zones :'.EOL;
foreach ($tabUrlZones as $iZ=>$tZ) echo " - $iZ = ".$tZ['lib'].EOL;
die();
} else
$url=$tabUrlZones[$zone]['url'];
break;
case 'p':
$pays=substr($argv[$i],3)*1;
//if ($pays==0) $pays=-1;
break;
case '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
$tabZones=array('nom2'=>'<title>(.*):(?:.*)Zone bourse</title>',
'ticker'=>'<title>(?:.*):(?:.*)\| (.*) \| (?:.*) \| Zone bourse</title>',
'isin2'=>'<title>(?:.*):(?:.*)\| (?:.*) \| (.*) \| Zone bourse</title>',
'isin3'=>'<title>(?:.*):(?:.*)\| (.*) \| Zone bourse</title>',
'adr1'=>'<nobr><b>Coordonnées société</b></nobr></td></tr>(?:.*)<tr><td class="std_txt" style="padding-top:4px">(.*)<br>(?:.*)<br>(?:.*)<br><br>',
'adr2'=>'<nobr><b>Coordonnées société</b></nobr></td></tr>(?:.*)<tr><td class="std_txt" style="padding-top:4px">(?:.*)<br>(.*)<br>(?:.*)<br><br>',
'adr3'=>'<nobr><b>Coordonnées société</b></nobr></td></tr>(?:.*)<tr><td class="std_txt" style="padding-top:4px">(?:.*)<br>(?:.*)<br>(.*)<br><br>',
'tel'=>'<br>Téléphone : (.*)<br>',
'fax'=>'<br>Fax : (.*)<br>',
'web'=>'<br>Internet : <a class="pageprofil_link_blue" href="(.*)"',
'isin'=>'- Code Isin : </td>\s+<td align="left" style="padding-left:10px">&nbsp;(.*)</td>',
'bloomberg'=>'- Code Bloomberg : </td>\s+<td align="left" style="padding-left:10px;padding-top:5px">&nbsp;(.*)</td>',
'reuteurs'=>'- Code Reuters : </td>\s+<td align="left" style="padding-left:10px;padding-top:5px">&nbsp;(.*)</td>',
'datastream'=>'- Code Datastream : </td>\s+<td valign="top" align="left" style="padding-left:10px;padding-top:5px">&nbsp;(.*)</td>',
);
$tabTmp=$iDb->select('jo.tabPays','codPays,codPays3', '1', false, MYSQL_ASSOC);
foreach($tabTmp as $i=>$tabTmp2) {
$tabPays[$tabTmp2['codPays']]=$tabTmp2['codPays3'];
}
$nbRows=count($tabTmp);
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows pays en base.".EOL;
while (true) {
$urlCour=$urlBase.$url.'?Req=&p='.$iPage;
$referer='';
$page=getUrl($urlCour, '', '', $referer, false);
$body=$page['body'];
$referer=$urlCour;
if ($zone>0 && $pays!==false && empty($tabUrlPays) && preg_match_all('/<div class="tabSTab4" style="(?:.*)"><a class="" href="(.*)"\s+?>(.*)<\/a><\/div>/Uis', $body, $matches)) {
foreach($matches[1] as $i=>$url2) {
//print_r($matches);
if (preg_match('/\-(\d+)\/$/Uis', str_replace($url,'',$url2), $matches2)) $idPays=$matches2[1];
//die ($idPays);
$tabUrlPays[$idPays]=array('lib'=>html_entity_decode($matches[2][$i]),'url'=>$url2);
}
if ($pays==0) {
echo "Liste des pays de la zone $zone (".$tabUrlZones[$zone]['lib'].') :'.EOL;
foreach ($tabUrlPays as $iZ=>$tZ) echo " - $iZ = ".$tZ['lib'].EOL;
} else {
$url=$tabUrlPays[$pays]['url'];
//die($url);
continue;
}
die();
}
if (preg_match_all('/<tr\s+><td class="large30 center"(?:.*)<img width="16" height="16" title="(.*)" src="\/images\/png-country\/16x16\/(.*)png"><\/td>(?:.*)<a href="(.*)"(?:.*)<\/a><\/td><td class="large200 center"(?:.*)<span title="(.*)">(?:.*)<\/font><\/td><td class="large70 right pright20"(?:.*)>(.*)<\/td>(?:.*)<\/a><\/td>\s+<\/tr>/Uis', $body, $matches)) {
// print_r($matches[0]);
foreach($matches[2] as $iLigne=>$codePays) {
$codePays=substr(strtoupper($codePays),0,2);
$libPays=$matches[1][$iLigne];
$societe=$matches[3][$iLigne];
$activite=html_entity_decode($matches[4][$iLigne]);
$capitalisation=str_replace(' ','',$matches[5][$iLigne]);
$urlDetail='http://www.zonebourse.com'.$societe.'societe/';
$ret=$iDb->select('zonebourse', 'idZb, LENGTH(html) AS htm, isin', "nom='$societe'",false);
if (@$ret[0]['idZb']*1==0 || @$ret[0]['htm']*1==0) {
$page2=getUrl($urlDetail, '', '', $referer, false);
$tabInsert=@html2array($page2['body'], $tabZones);
$tmpNom=explode('-', str_replace('/','',$societe));
$nbMots=count($tmpNom);
$idZb=end($tmpNom);
$rs='';
foreach ($tmpNom as $iN=>$mot)
if ($iN<$nbMots-1)
$rs.=$mot.' ';
$rs=trim($rs);
$tabInsert['ligne']=$iLigne;
$tabInsert['page']=$iPage;
$tabInsert['paysIso2']=$codePays;
$tabInsert['codPays3']=$tabPays[$codePays];
$tabInsert['paysLib']=$libPays;
$tabInsert['idZb']=$idZb;
$tabInsert['nom']=$societe;
$tabInsert['raisonSociale']=$rs;
$tabInsert['url']=$urlDetail;
$tabInsert['activite']=$activite;
if ($capitalisation<>'-')
$tabInsert['capitalisation']=str_replace(',','.',$capitalisation)*1.0;
$tabInsert['html']=$page2['body'];
if (!isset($tabInsert['isin']) || $tabInsert['isin']=='')
$tabInsert['isin']=@trim($tabInsert['isin2']);
if (strlen($tabInsert['isin'])<>12)
$tabInsert['isin']=@trim($tabInsert['isin3']);
//print_r($tabInsert);
//die();
if (strlen($tabInsert['isin'])<>12)
unset($tabInsert['isin']);
unset($tabInsert['isin2']);
unset($tabInsert['isin3']);
$update=false;
$isin=$tabInsert['isin'];
if (!isValidIsin($isin)) die("Code ISIN $isin invalide !".EOL);
if (@$ret[0]['idZb']*1==0)
echo "AJOUT $iPage\t$iLigne\t$codePays\t$isin\t$societe\t$urlDetail\t$activite\t$capitalisation".EOL;
else {
$update=true;
echo "COMPL $iPage\t$iLigne\t$codePays\t$isin\t$societe\t$urlDetail\t$activite\t$capitalisation".EOL;
}
if (!$update) $iDb->insert('zonebourse', $tabInsert, false);
else $iDb->update('zonebourse', $tabInsert, "nom='$societe'",false);
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
} else {
$isin=@$ret[0]['isin'];
echo "Passe $iPage\t$iLigne\t$codePays\t$isin\t$societe\t$urlDetail\t$activite\t$capitalisation".EOL;
}
//die();
}
randsleep($tempsMinEntreRequetes*3, $tempsMaxEntreRequetes*3);
}
else break;
$iPage++;
}
echo date('Y/m/d - H:i:s') ." - Fin du traitement de récupération de tous les ISIN.".EOL;
die();
?>

View File

@ -1,926 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
$table='annonces';
/*
ALTER TABLE `annonces` ADD `inter5type` CHAR( 1 ) NOT NULL AFTER `inter4nom`,
ADD `inter5id` SMALLINT( 5 ) UNSIGNED ZEROFILL NOT NULL AFTER `inter5type`,
ADD `inter5nom` VARCHAR( 255 ) NOT NULL AFTER `inter5id`;
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'common/ftp.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(FWK_PATH.'mail/sendMail.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
define('CSF_FTP_DIR', '/home/data/ftp/creditsafe/send/');
define('CSF_BACKUP_DIR', '/home/data/jal/creditsafe/');
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Chargement des annonces Ventes/LG provenant des évènements Insee.
Options :
-j Ne pas charger les jugements INPI S&D en Amont
-c Ne pas charger les défaillances CSF
-d Mode debug (Verbosité au maximum)
-i Ne pas poser de questions interactives.
-t Charger en test (implique -j -d)
";
$iDb=new WDB('jo');
$iInsee=new MInsee();
$iBodacc=new MBodacc();
$iRncs=new MRncs();
$iGreffe=new MGreffes();
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=$nbSiretRetraitement=0;
$modeDebug=false; // Mode débug
$questions=true; // Questions interactives autorisées
$loadInpiLocal=true; // Charger d'abord les derniers jugements INPI IMR locaux
$loadCSF=true; // Charger les jugements Greffes via CSF
$tabFichier=$tabFichLigneCmd=array();
$message=''; // Initialisation du mail d'exécution du traitement
$argv=$_SERVER['argv'];
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $modeDebug=true; break;
case 'i': $questions=false; break;
case 'j': $loadInpiLocal=false; break;
case 'c': $loadCSF=false; break;
case 't': $table='annonces2';
$modeDebug=$questions=true;
$loadInpiLocal=false;
break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichLigneCmd[]=$argv[$i];
}
if (count($tabFichLigneCmd)==0) {
$dh = opendir(CSF_FTP_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.csv')
$tabFichier[] = $filename;
}
sort($tabFichier);
} else $tabFichier=$tabFichLigneCmd;
$nbAnnUpdateJ=$nbAnnInsertJ=0; // Jugements
$nbAnnUpdateE=$nbAnnInsertE=0; // Evènements
$tabTmp=$iDb->select($table, 'MAX(dateInsert) AS lastInsert',"source='II'", false, MYSQL_ASSOC);
$dateMaj=$tabTmp[0]['lastInsert'];
$dateMaj='2013-09-01 02:00:00';
echo date('Y/m/d - H:i:s') ." - Dernier chargement des annonces de ventes/LG Insee le $dateMaj.".EOL;
$tabEvenInseeSED=array( '3' => '5500,5103',
'D' => '2870,2892',
'E' => '2870,2893',
'G' => '2870,2892',
'H' => '2870,2893',
'I' => '2406',
'J' => '5500,5106',
'VP'=> '5500,5200',
);
/**
** Jugements INPI
**/
/*
insSIEGE, insAUXILT, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET,
insSAISONAT, insACTIVNAT, insENSEIGNE, insL2_COMP, insNUMVOIE, insINDREP,
insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET,
insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH,
insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN,
insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insMENSEIGNE, insMAPET, insMNATURE,
insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT,
dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insDREACTEN, insEXPLEN, insDEFEN, insMONOREG,
insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insDAPEN
*/
$AnnDb=$iDb->select('insee.insee_even',
"insSIREN AS siren, insNIC AS nic, siretValide AS sirenValide, insDESTINAT AS DESTINAT, insEVE, insDATEVE AS dateJugement, insDATEMAJ,
idFlux AS dateSource, dateInsert, 'II' AS source, insL1_NOMEN AS raisonSociale,
insL4_VOIE AS Adresse, insCODPOS AS codePostal, insLIBCOM AS ville,
insSIRETPS, insSIRETASS, insTYPETAB, insTRAN, insNICTRAN, insORIGINE, id",
"dateInsert>'$dateMaj' AND DATEDIFF(NOW(), insDATEVE)<=90 AND insDESTINAT IN (3,5,'D','E','G','H','I','J','VP') AND id>23000000
AND dateInsert<'2013-09-11 01:00:00';", false, MYSQL_ASSOC);
// ", false, MYSQL_ASSOC);
/*
DESTINAT => typeEven
*/
$nbAnnonces=count($AnnDb);
$message.="Il y a $nbAnnonces annonce(s) de ventes/LG Insee depuis le dernier chargement du $dateMaj :\r\n";
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonce(s) de ventes/LG Insee depuis le dernier chargement du $dateMaj.".EOL;
// Il ne doit pas déjà y avoir d'annonces du même type dans l'année !
$dateVentePre=WDate::getNextDate(date('Ymd'), -360);
foreach ($AnnDb as $i=>$tabInsert) {
$siren=$tabInsert['siren'];
$nic=$tabInsert['nic'];
$siret=''.$siren.''.$nic;
$id=$tabInsert['id']*1;
$dateJugement=$tabInsert['dateJugement'];
$strEven=$tabEvenInseeSED[trim($tabInsert['DESTINAT'])];
$typeEtab='Etablissement';
if (trim($tabInsert['DESTINAT'])=='G' || trim($tabInsert['DESTINAT'])=='H' ||
trim($tabInsert['DESTINAT'])=='I' || trim($tabInsert['DESTINAT'])=='J')
$typeEtab.=' agricole';
/** On récupère les annonces légales liés à cet évènement **/
if (trim($tabInsert['DESTINAT'])=='3' || trim($tabInsert['DESTINAT'])=='J' || trim($tabInsert['DESTINAT'])=='VP')
$tabVentes=@$iInsee->getAnnoncesLegales($siren, 0, 'V', false);
else
$tabVentes=@$iInsee->getAnnoncesLegales($siren, 0, 'G', false);
unset($tabInsert['DESTINAT']);
$tabEven=explode(',', $strEven);
$tabInsert['typeEven']=$tabEven[0];
unset($tabEven[0]);
$tabInsert['strEven']=@implode(',', $tabEven);
$tabTmp=@$iInsee->getIdentiteEntreprise($siren, $tabInsert['nic']);
$tabInsert['tribunal']=$tabTmp['Tribunal'];
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - $i/$nbAnnonces - Even $strEven sur $siren le $dateJugement : ";
/** On recherche s'il y a eu une annonce légale de Ventes/Cessions ou LG en tant que vendeur au cours de N derniers mois **/
if (count($tabVentes)>0) {
$vte=@$tabVentes[0];
$dateVente=@$vte['dateJugement'];
if ($dateVente=='0000-00-00') $dateVente=@$vte['dateEffet'];
if ($dateVente=='0000-00-00') $dateVente=@$vte['DateParution'];
$dateVente=WDate::dateT('Y-m-d','Ymd', $dateVente);
if ($dateVente>=$dateVentePre) {
if ($modeDebug) echo "Annonce de vente récente déjà en base : $dateVente".EOL;
continue;
} elseif ($dateVente<=20010101) {
// Cas impossible car on prend aussi DatePArution
if ($modeDebug) echo "Annonce de vente sans date : $dateVente".EOL;
continue;
}
}
$siretPS=$siretAS=0;
$idDeb=$id-150000;
$idFin=$id+150000;
$tabInsert['complement']='';
if ($tabInsert['insSIRETPS']>1000000000) {
// Si le siret est inactif, on ne l'affiche pas !
$sirenPS=substr($tabInsert['insSIRETPS'],0,9);
$nicPS=substr($tabInsert['insSIRETPS'],9,5);
$tabId=@$iInsee->getIdentiteLight($sirenPS,$nicPS);
if ($tabId['Actif']==1) {
$tabInsert['complement'].='Successeur : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville'].' ('.$tabInsert['insSIRETPS'].'). ';
$siretPS=1;
}
}
if ($tabInsert['insSIRETASS']>1000000000) {
// Si le siret est inactif, on ne l'affiche pas !
$sirenAS=substr($tabInsert['insSIRETASS'],0,9);
$nicAS=substr($tabInsert['insSIRETASS'],9,5);
$tabId=@$iInsee->getIdentiteLight($sirenAS,$nicAS);
if ($tabId['Actif']==1) {
$tabInsert['complement'].='Entitée associée : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville'].' ('.$tabInsert['insSIRETASS'].'). ';
$siretAS=1;
}
}
if ($siretPS==0 && $siretAS==0) {
// Recherche d'un siret associé sur un autre évènement proche (15 jours)
$AnnDb2=$iDb->select('insee.insee_even', "insSIREN AS siren, insNIC AS nic, insSIRETPS, insSIRETASS",
"id BETWEEN $idDeb AND $idFin AND id<>$id AND ( (insSIREN=$siren AND insNIC=$nic AND (insSIRETPS>1000000000 OR insSIRETASS>1000000000) ) OR insSIRETPS=$siret or insSIRETASS=$siret)", false, MYSQL_ASSOC);
$tabTmp=@$AnnDb2[0];
if (count($tabTmp)>0) {
if ($siret==$tabTmp['insSIRETPS']) {
// Notre établissement est le prédécesseur d'un nouvel établissement, si ce siret est inactif, on ne l'affiche pas !
$sirenPS=$tabTmp['siren'];
$nicPS=$tabTmp['nic'];
$tabId=@$iInsee->getIdentiteLight($sirenPS,$nicPS);
if ($tabId['Actif']==1) {
$tabInsert['complement'].='Successeur : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville']." ($sirenPS $nicPS). ";
$siretPS=1;
}
} elseif ($siret==$tabTmp['insSIRETASS']) {
// Notre établissement est le siret associé d'un nouvel établissement, si ce siret est inactif, on ne l'affiche pas !
$sirenAS=$tabTmp['siren'];
$nicAS=$tabTmp['nic'];
$tabId=@$iInsee->getIdentiteLight($sirenAS,$nicAS);
if ($tabId['Actif']==1) {
$tabInsert['complement'].='Entitée associée : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville']." ($sirenAS $nicAS). ";
$siretPS=1;
}
} /*else {
print_r($AnnDb2);
echo 'Rechercher un siret associé sur un autre évènement antérieur !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'.EOL;
die();
}*/
}
// echo mysql_error().EOL;
}
$tabInsert['complement'].=$typeEtab.' concerné : '. $tabInsert['Adresse'] .', '. $tabInsert['codePostal'] .' '. $tabInsert['ville'].' ('. $tabInsert['nic'].')';
if ($modeDebug) echo $tabInsert['complement'].EOL;
if (trim($tabInsert['tribunal'])=='') $tabInsert['tribunal']='INCONU';
//print_r($tabInsert);
unset($tabInsert['nic']);
unset($tabInsert['insEVE']);
unset($tabInsert['insDATEMAJ']);
unset($tabInsert['id']);
unset($tabInsert['insSIRETPS']);
unset($tabInsert['insSIRETASS']);
unset($tabInsert['insTYPETAB']);
unset($tabInsert['insTRAN']);
unset($tabInsert['insNICTRAN']);
unset($tabInsert['insORIGINE']);
if (!$iDb->insert($table, array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))))) {
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
print_r($tabInsert);
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'insertion du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
}
}
/*
$tabTmp=$iDb->select($table, 'id, siren, typeEven, dateJugement, dateCessationPaiement, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom,
/*inter5type, inter5id, inter5nom,* dateSource, dateInsert, source, tribunal, raisonSociale',"siren=$siren AND ABS(DATEDIFF(dateJugement, '$dateJugement'))<60 AND typeEven=$typeEven", false, MYSQL_ASSOC);
echo date ('Y/m/d - H:i:s') ." - Mise à jour du jugement $typeEven en date du $dateJugement pour $siren : ".count($tabTmp).EOL;
$tabEnbase=$tabTmp[0];
if (isset($tabEnbase['id'])) {
$dateJugementEnBase=$tabEnbase['dateJugement'];
// On garde la source Originel
unset($tabInsert['source']);
unset($tabInsert['dateInsert']);
if ($dateJugementEnBase<>$dateJugement) {
if ($tabEnbase['source']<>'GC') {
echo "ATTENTION : JUGEMENT UN AUTRE JOUR DEJA EN BASE ($dateJugementEnBase<>$dateJugement) :".EOL;
}
}
else
echo 'JUGEMENT le même JOUR déjà en base :'.EOL;
// On liste les types de mandataires enregistrés par les greffes ou autre
$tabMandEnBase=$tabMandSav=array();
for ($iMand=1;$iMand<6;$iMand++)
if (trim($tabEnbase['inter'.$iMand.'type'])<>'')
$tabMandEnBase[$iMand]=trim($tabEnbase['inter'.$iMand.'type']);
// On garde les infos mandataires déjà en base et correctement renseignées
for ($iInsert=1;$iInsert<5;$iInsert++) {
for ($iMand=1; $iMand<6 && isset($tabMandEnBase[$iMand]);$iMand++)
if (in_array($tabInsert['inter'.$iInsert.'type'], $tabMandEnBase)) {
if ($tabInsert['inter'.$iInsert.'type']==$tabMandEnBase[$iMand]) {
if ($tabEnbase['inter'.$iMand.'type']<>'')
$tabMandSav[$tabMandEnBase[$iMand]]['type'] =$tabInsert['inter'.$iInsert.'type'];
else
$tabMandSav[$tabMandEnBase[$iMand]]['type'] =$tabInsert['inter'.$iMand.'type'];
if ($tabEnbase['inter'.$iMand.'id']*1==0)
$tabMandSav[$tabMandEnBase[$iMand]]['id'] =$tabInsert['inter'.$iInsert.'id'];
else
$tabMandSav[$tabMandEnBase[$iMand]]['id'] =$tabEnbase['inter'.$iMand.'id'];
if ($tabEnbase['inter'.$iMand.'nom']<>'')
$tabMandSav[$tabMandEnBase[$iMand]]['nom'] =$tabInsert['inter'.$iInsert.'nom'];
else
$tabMandSav[$tabMandEnBase[$iMand]]['nom'] =$tabInsert['inter'.$iMand.'nom'];
}
} else {
$tabMandSav[$tabMandEnBase[$iMand]]['type'] =$tabEnbase['inter'.$iMand.'type'];
$tabMandSav[$tabMandEnBase[$iMand]]['id'] =$tabEnbase['inter'.$iMand.'id'];
$tabMandSav[$tabMandEnBase[$iMand]]['nom'] =$tabEnbase['inter'.$iMand.'nom'];
}
}
$iInsert=1;
foreach ($tabMandEnBase as $typeMand) {
$tabInsert['inter'.$iInsert.'type']=$tabMandSav[$typeMand]['type'];
$tabInsert['inter'.$iInsert.'id']=$tabMandSav[$typeMand]['id'];
$tabInsert['inter'.$iInsert.'nom']=$tabMandSav[$typeMand]['nom'];
$iInsert++;
if ($iInsert==6) {
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, plus de 4 intervenants dans la procédure pour $siren".EOL.print_r($tabMandSav, true).EOL.
"Annonce en base :".EOL.
print_r($tabEnbase, true).EOL.
"Informations à mettre à jour :".EOL.
print_r($tabInsert, true).EOL);
//die("Trop d'intervenants".EOL);
}
}
echo 'EN BASE :'.EOL;
print_r($tabEnbase);
echo 'MODIFICATIONS :'.EOL;
print_r($tabInsert);
echo 'Mandataires :'.EOL;
print_r($tabMandSav);
if ($modeDebug) $line = trim(fgets(STDIN));
// On met toujours la date INPI en base !
if (!$iDb->update($table, $tabInsert,"siren=$siren AND dateJugement='$dateJugementEnBase' AND typeEven=$typeEven", false, MYSQL_ASSOC)) {
echo date ('Y/m/d - H:i:s') ." - A la mise à jour sur $table :".EOL;
print_r($tabInsert);
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
} else {
$nbAnnUpdateJ++;
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
}
} else {
if (// Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!!
$tabInsert['typeEven']*1==1505 || // Appel de jugement
$tabInsert['typeEven']*1==1506 || // Infirmation Jugement
$tabInsert['typeEven']*1==1507 || // Extrait d'arrêt de la cour d'appel
$tabInsert['typeEven']*1==1515 || // Arrêt divers
$tabInsert['typeEven']*1==1517 || // Rectification d'une erreur matérielle
$tabInsert['typeEven']*1==1520 || // Ordonnance
$tabInsert['typeEven']*1==1525 || // Appel du ministère public
$tabInsert['typeEven']*1==1999) { // Autre procol)
$tabInsert['sirenValide']=0;
echo date ('Y/m/d - H:i:s')." - Ligne $i : Annonce INPI à retraiter manuellement ". $tabInsert['siren'] .' !'.EOL;
$nbSiretRetraitement++;
}
if (!$iDb->insert($table, array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))))) {
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
print_r($tabInsert);
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'insertion du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
}
/*
echo 'JUGEMENT LE MEME JOUR DEJA EN BASE :'.EOL;
print_r($tabEnbase);
echo 'MODIFICATIONS :'.EOL;
print_r($tabInsert);
$line = trim(fgets(STDIN));
}
} else
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'ajout du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
} else {*
$nbAnnInsertJ++;
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Ajout du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
}
}
$message.=" $nbAnnInsertJ ajouts et $nbAnnUpdateJ mises à jours sur $nbAnnonces annonces et $nbSiretRetraitement annonces à retraiter !\r\n\r\n".EOL;
*/
die();
if (count($tabFichier)>0 || count($tabFichLigneCmd)>0) {
if (!$loadCSF)
die(date ('Y/m/d - H:i:s') . " - On ignore le chargement des défaillances".EOL);
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des défaillances".EOL;
function getCodeEven($codeEven) {
global $tabCodeEven;
return $tabCodeEven[$codeEven];
}
for ($i=0; isset($tabFichier[$i]); $i++)
{
$nomFichier =$tabFichier[$i];
$fp=fopen(CSF_FTP_DIR.$nomFichier, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter (".$nomFichier.")".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
die();
}
$nbLignes=0; // Nombre de ligne du fichier
while (!feof($fp))
{
$nbLignes++;
$a = trim(fgets($fp, 1024));
}
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier ($nbLignes lignes à traiter) !".EOL;
//$finFichier=false;
$ligne=1;
rewind($fp);
/** Traitement de la 1ère ligne **/
$a = trim(fgets($fp, 2048));
$tab=explode("\t", $a);
$erreur='';
if (strtoupper($tab[ 0])<>'REF_CLIENT') $erreur.='Ligne 1, Champ 1 : libellé REF_CLIENT attentu';
if (strtoupper($tab[ 1])<>'DATE_FRAICHEUR') $erreur.='Ligne 1, Champ 2 : libellé DATE_FRAICHEUR attentu';
if (strtoupper($tab[ 2])<>'RCS') $erreur.='Ligne 1, Champ 3 : libellé RCS attentu';
if (strtoupper($tab[ 3])<>'RAISON_SOCIALE') $erreur.='Ligne 1, Champ 4 : libellé RAISON_SOCIALE attentu';
if (strtoupper($tab[ 4])<>'ADRESSE1') $erreur.='Ligne 1, Champ 5 : libellé ADRESSE1 attentu';
if (strtoupper($tab[ 5])<>'ADRESSE2') $erreur.='Ligne 1, Champ 6 : libellé ADRESSE2 attentu';
if (strtoupper($tab[ 6])<>'ADRESSE3') $erreur.='Ligne 1, Champ 7 : libellé ADRESSE3 attentu';
if (strtoupper($tab[ 7])<>'CCJ_CSFR') $erreur.='Ligne 1, Champ 8 : libellé CCJ_CSFR attentu';
if (strtoupper($tab[ 8])<>'CCJ_DATE') $erreur.='Ligne 1, Champ 9 : libellé CCJ_DATE attentu';
if (strtoupper($tab[ 9])<>'TRIBUNAL') $erreur.='Ligne 1, Champ 10 : libellé TRIBUNAL attentu';
if (strtoupper($tab[10])<>'MANDATAIRE') $erreur.='Ligne 1, Champ 11 : libellé MANDATAIRE attentu';
if (strtoupper($tab[11])<>'REF_CSFR') $erreur.='Ligne 1, Champ 12 : libellé REF_CSFR attentu';
//Ref_client date_fraicheur RCS Raison_sociale adresse1 adresse2 adresse3 CCJ_CSFR
//CCJ_date Tribunal mandataire Ref_csfr
if ($erreur<>'') {
echo date ('Y/m/d - H:i:s') . " - Erreur : $erreur !".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
die();
}
//$dateInsert=date('YmdHis');
while (!feof($fp))
{
$ligne++;
$a = trim(fgets($fp, 1024));
if ($a=='') continue;
//if ($modeDebug) echo "Ligne $ligne Déb: '$a'".EOL;
//unset($tabErreur); $nbErr=0;
$tab=explode("\t", $a);
$tabAnn=array();
if ($tab[0]<>'SandD')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs REF_CLIENT différent de 'SandD' (".$tab[0].') !'.EOL;
$siren=$tabAnn['siren'] = $tab[2];
if (!$iInsee->valideSiren($tabAnn['siren'])) {
$tabAnn['sirenValide']=0;
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs SIREN invalide ". $tabAnn['siren'] .' !'.EOL;
$nbSiretInvalides++;
} else {
$tabAnn['sirenValide']=1;
$nbSiretValides++;
}
$tabAnn['raisonSociale'] = $tab[3];
if (strlen($tabAnn['raisonSociale'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs RAISON_SOCIALE de longueur ". strlen($tabAnn['raisonSociale']) .' !'.EOL;
$tabAnn['adresse'] = $tab[4];
$cpVille = $tab[5];
$tabAnn['codePostal'] = substr($cpVille,0,5);
$tabAnn['ville'] = trim(substr($cpVille,5));
$dep=substr($cpVille,0,2)*1;
if (!$iInsee->isDepartement($dep)) {
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Département '$dep' inconnu !".EOL;
//die($a);
//echo '?';
//$line = trim(fgets(STDIN));
}
$dateIn = $tab[1];
if (strlen($dateIn)<>19)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs DATE_FRAICHEUR de longueur ". strlen($dateIn) .' !'.EOL;
$tabAnn['dateSource'] = /*@WDate::dateT('Y-m-d','Y-m-d',*/$dateIn/*)*/;
/* $dateIn = $tab[6];
$dateOut=@WDate::dateT('m/d/Y','Y-m-d',$dateIn);
if ($dateIn<>'') $tabAnn['naissance_date']=$dateOut;
else $tabAnn['naissance_date']='0000-00-00';*/
$dateJugeKbis = $tab[8];
if (strlen($dateJugeKbis)<>19)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CCJ_DATE de longueur ".strlen($dateJugeKbis).' !'.EOL;
else
$dateJugeKbis=Wdate::dateT('Y-m-d', 'Ymd', $dateJugeKbis);
$codeJugementCSF = $tab[7];
$tabAnn['typeEven'] = getCodeEven($codeJugementCSF)*1;
if ($tabAnn['typeEven']==0) {
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CCJ_CSFR (Code Jugement CSF) inconnu '$codeJugementCSF' !".EOL;
}
$source= trim($tab[11]);
if ($source=='G' || $source=='I'/* || $source=='P'*/) {
//if ($modeDebug) echo "Ligne $ligne SRC: '$a'".EOL;
$tribunal = trim($tab[9]);
$tabAnn['tribunal'] = $iBodacc->getTribunalCode('TRIBUNAL DE COMMERCE '.strtr(strtoupper(' '.$tribunal.' '),array(' ST '=>' SAINT ')), $dep);
//if ($modeDebug) echo "Ligne $ligne TRI1: '$a'".EOL;
if (!$tabAnn['tribunal']) {
$tabAnn['tribunal'] = $iBodacc->getTribunalCode('TRIBUNAL DE COMMERCE '.strtr(strtoupper(' '.$tribunal.' '),array(' ST '=>' SAINT ')), 0);
//if ($modeDebug) echo "Ligne $ligne TRI2: '$a'".EOL;
if (!$tabAnn['tribunal']) {
if ($tribunal=='AIX') $tabAnn['tribunal']='AIXC';
elseif ($tribunal=='MONT DE MARSAN') $tabAnn['tribunal']='MONTMC';
elseif ($tribunal=='SALON DE PROVENCE') $tabAnn['tribunal']='SALONC';
elseif ($tribunal=='BAGNERES DE BIGORRE') $tabAnn['tribunal']='BAGNEC';
elseif ($tribunal=='OLORON STE MARIE') $tabAnn['tribunal']='OLOROC';
elseif ($tribunal=='LE PUY EN VELAY') $tabAnn['tribunal']='LEPUYC';
elseif ($tribunal=='CLERMONT L HERAULT') $tabAnn['tribunal']='CLHERC';
elseif ($source=='G' && $tribunal=='' && $dep==23) $tabAnn['tribunal']='GUEREC';
elseif ($source=='G' && $tribunal=='' && $dep==26) $tabAnn['tribunal']='ROMANC';
elseif ($source=='G' && $tribunal=='' && $dep==27) $tabAnn['tribunal']='BERNAC';
elseif ($source=='G' && $tribunal=='' && $dep==48) $tabAnn['tribunal']='MENDEC';
elseif ($source=='G' && $tribunal=='' && $tabAnn['siren']>100) {
//if ($modeDebug) echo "Ligne $ligne TRI3: '$a'".EOL;
$tabIdentite=@$iInsee->getIdentiteEntreprise($tabAnn['siren'],0,0,false,false);
//if ($modeDebug) echo "Ligne $ligne TRI4: '$a'".EOL;
$tabTribunaux=$iBodacc->getTribunauxParCommune($tabIdentite['Dept'].$tabIdentite['codeCommune']);
//if ($modeDebug) echo "Ligne $ligne TRI5: '$a'".EOL;
foreach ($tabTribunaux as $trib)
if ($trib['triType']=='C' && $trib['triStatut']=='Actif') {
$tabAnn['tribunal']=$trib['triCode'];
break;
}
//if ($modeDebug) echo "Ligne $ligne TRI6: '$a'".EOL;
if (!$tabAnn['tribunal']) {
foreach ($tabTribunaux as $trib)
if ($trib['triType']=='G' && $trib['triStatut']=='Actif') {
$tab['tribunal']=$trib['triCode'];
break;
}
}
//if ($modeDebug) echo "Ligne $ligne TRI9: '$a'".EOL;
}
elseif ($source=='P' && $dep>0 && $dep<977) {
$tabIdentite=@$iInsee->getIdentiteEntreprise($tabAnn['siren'],0,0,false,false);
$tabTribunaux=$iBodacc->getTribunauxParCommune($tabIdentite['Dept'].$tabIdentite['codeCommune']);
// En fonction du département 67,68 et de la CJ 1xxx non commerçant, Associations : TGI
foreach ($tabTribunaux as $trib)
if ($trib['triType']=='C' && $trib['triStatut']=='Actif') {
$tabAnn['tribunal']=$trib['triCode'];
break;
}
if (!$tabAnn['tribunal']) {
foreach ($tabTribunaux as $trib)
if ($trib['triType']=='G' && $trib['triStatut']=='Actif') {
$tab['tribunal']=$trib['triCode'];
break;
}
}
if (!$tabAnn['tribunal']) {
foreach ($tabTribunaux as $trib)
if ($trib['triType']=='M' && $trib['triStatut']=='Actif') {
$tab['tribunal']=$trib['triCode'];
break;
}
}
if (!$tabAnn['tribunal']) {
foreach ($tabTribunaux as $trib)
if ($trib['triType']=='P' && $trib['triStatut']=='Actif') {
$tab['tribunal']=$trib['triCode'];
break;
}
}
}
else {
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes : Tribunal CSF inconnu '$tribunal' (Dept.=$dep, source=$source) !".EOL;
$tabAnn['tribunal']=$tribunal.'*';
if ($source<>'P' && $source<>'I') { /* On insert le jugement uniquement si on l'a pas déjà en base ! */
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren']." : '$a' - Problème de tribunal".EOL;
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement CSF : Problème de tribunal', "Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
}
}
}
}
if ($source=='I') {
$tabAnn['source'] = 'JC';
$tabAnn['dateJugement'] = $dateJugeKbis;
$tabIdentite=@$iInsee->getIdentiteEntreprise($tabAnn['siren'],0,0,false,false);
if ($tabIdentite['SituationJuridique']<>'P') {
if ($dateJugeKbis>date('Ymd',mktime(0,0,0,date('m')-6,date('d'),date('Y')))) {
if ($tabAnn['typeEven']<>1445) {
// L'entreprise n'est pas connue comme en Procol et le jugement à mois de 6 mois !
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes, source JC, siren=".$tabAnn['siren']." : '$a'".EOL;
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', 'Chargement CSF : Procol inconnue', "Ligne $ligne/$nbLignes, source Kairos via CSF, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
} else continue;
} else continue;
} else {
// Provisoirement, on ignore l'annonce car déjà en procol
/** @todo
Si dernière annonce = SV, RJ, LJ prendre la nouv. annonce si suite du jugement
**/
continue;
}
} else {
$tabAnn['source'] = $source.'C';
$texte = trim(@$tab[10]);
/*JUGEMENT DU TRIBUNAL DE COMMERCE DE EVRY EN DATE DU 15/02/2010 A PRONONCÉ LA LIQUIDATION JUDICIAIRE, SOUS LE NUMÉRO 2010J00041 DÉSIGNE LIQUIDATEUR LA SCP YVES COUDRAY-CHRISTOPHE ANCEL, EN LA PERSONNE DE MAÎTRE ANCEL, MANDATAIRE JUDICIAIRE ASSOCIÉ 9 BOULEVARD DE L'EUROPE 91050 ÉVRY CEDEX , JUGE COMMISSAIRE M. CHIKAR , JUGE COMMISSAIRE SUPPLÉANT M. HAMON , MET FIN À LA MISSION DE L'ADMINISTRATEUR ME TULIER RUE RENÉ CASSIN IMMEUBLE LE MAZIÈRE - 4ÈME ÉTAGE 91000 EVRY
*/
$regExDate='((?:\d{1,2}|1er)(?:\/|\.|-)\d{1,2}(?:\/|\.|-)\d{4,4})';
$regExDate2='((?:\d{1,2}|1er)(?:\/|\.|-)\d{1,2}(?:\/|\.|-)\d{2,2})';
$regExDateLong='(([0-9]{1,2}|1er)\s+(janvier|février|fevrier|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre|decembre)\s+([0-9]{4,4}))';
//SUIVANT JUGEMENT RENDU LE 27 AVRIL 2010, LE TRIBUNAL DE COMMERCE DE BOBIGNY A PRONONCE L'OUVERTURE D'UNE PROCEDURE DE REDRESSEMENT JUDICIAIRE
if (preg_match("/(JGT|JUGEMENT|prononc|ORDONNANCE).{1,75}\s+EN\s+DATE\s+DU\s+$regExDate/Uis", $texte, $matches)) {
//echo $texte.EOL;
$dateJuge=$matches[2];
echo "A, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
/*print_r($matches);
die();*/
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).{1,120}(?:DU|RENDUE? LE)\s+$regExDate/Uis", $texte, $matches)) {
$dateJuge=$matches[2];
echo "B1, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).{1,120}(?:DU|RENDUE? LE)\s+$regExDate2/Uis", $texte, $matches)) {
$dateJuge=$matches[2];
echo "B2, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
} elseif (preg_match("/DATE\s+D(?:\+|')EFFET(?:\s+\:?\s+)$regExDate/Uis", $texte, $matches)) {
$dateJuge=$matches[1];
echo "C, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
/* print_r($matches);
die();*/
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).{1,120}(?:DU|RENDUE? LE)\s+$regExDateLong/Ui", $texte, $matches)) {
$dateJuge=Wdate::dateT('dMY', 'd/m/Y',$matches[2]);
echo "D, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
/*print_r($matches);
die();*/
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).RENDU.{1,80}(?: DU| LE)\s+$regExDate/Uis", $texte, $matches)) {
$dateJuge=$matches[2];
echo "D2, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
} elseif (preg_match("/JGT|JUGEMENT.{1,55}\s+$regExDate\s+/Ui", $texte, $matches)) {
$dateJuge=$matches[1];
echo "E, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
/*print_r($matches);
die();*/
//
} elseif (preg_match("/Arr.t de la Cour d.Appel (?:.*) du\s+$regExDate\s+/Uis", $texte, $matches)) {
$dateJuge=$matches[1];
echo "F, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
} else {
/*
Ordonnance de Monsieur le Président de la Chambre des Procédures Collectives du Tribunal de Commerce de Vienne en date du 02/02/2010 décidant de l'APPLICATION DE LA LIQUIDATION JUDICIAIRE SIMPLIFIEE
410946008 : Jugement kbis du 20100413. DATE TEXTE !
*/
echo "$siren : Jugement kbis du $dateJugeKbis. DATE TEXTE NON TROUVEE !!!".EOL;
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, date texte non trouvée pour le siren $siren :
$texte
Jugement kbis du ".$tabAnn['dateJugement'].EOL);
echo $texte.EOL;
if ($modeDebug || $questions) {
while(1) {
echo "Entrez la date du jugement au format JJ/MM/AAAA ?".EOL;
$dateJuge = trim(fgets(STDIN));
$line=Wdate::dateT('d/m/Y', 'Ymd',strtr($dateJuge, array('.'=>'/','-'=>'/')));
if ($line>=0 && $line<date('Ymd')) break;
}
}
else die("$siren : Jugement kbis du $dateJugeKbis. DATE TEXTE !".EOL);
}//JUGEMENT DU TRIBUNAL DE COMMERCE DE EVRY EN DATE DU 08/02/2010 A PRONONCÉ LA LIQUIDATION JUDICIAIRE,
$dateJuge=Wdate::dateT('d/m/Y', 'Ymd',strtr($dateJuge, array('.'=>'/','-'=>'/')));
$dateJugeMin=date('Ymd', mktime(0, 0, 0,
WDate::dateT('Ymd','m',$dateJugeKbis),
WDate::dateT('Ymd','d',$dateJugeKbis)-60,
WDate::dateT('Ymd','Y',$dateJugeKbis)));
if ($dateJuge>=$dateJugeMin && $dateJuge<=$dateJugeKbis)
$tabAnn['dateJugement']=$dateJuge;
else
$tabAnn['dateJugement']=$dateJugeKbis;
echo "Date de jugement RETENUE : ".$tabAnn['dateJugement'].EOL;
echo $texte.EOL;
//if ($modeDebug) $line = trim(fgets(STDIN));
if (preg_match('/Arr.t.{1,15}Cour.{1,15}Appel.{1,75}INFIRM/is', $texte, $matches)) {
if (preg_match('INFIRM/is', $texte, $matches))
$tabAnn['typeEven']=1506; // Rétractation de jugement => Infirmation Jugement
else
$tabAnn['typeEven']=1507; // Arret de la cours d'appel
$tabAnn['sirenValide']=0;
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Annonce à retraiter manuellement ". $tabAnn['siren'] .' !'.EOL;
$nbSiretRetraitement++;
} elseif (// Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!!
$tabAnn['typeEven']*1==1505 || // Appel de jugement
$tabAnn['typeEven']*1==1506 || // Infirmation Jugement
$tabAnn['typeEven']*1==1507 || // Extrait d'arrêt de la cour d'appel
$tabAnn['typeEven']*1==1515 || // Arrêt divers
$tabAnn['typeEven']*1==1517 || // Rectification d'une erreur matérielle
$tabAnn['typeEven']*1==1520 || // Ordonnance
$tabAnn['typeEven']*1==1525 || // Appel du ministère public
$tabAnn['typeEven']*1==1999) { // Autre procol)
$tabAnn['sirenValide']=0;
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Annonce à retraiter manuellement ". $tabAnn['siren'] .' !'.EOL;
$nbSiretRetraitement++;
}
if (preg_match('/CESSATION.{1,35}PAIEMENTS(.*)/is', $texte, $matches)) {
if (preg_match("/FIXE AU\s+$regExDate.{1,15}CESSATION.{1,35}PAIEMENTS/is", $texte, $matches2))
$tabAnn['dateCessationPaiement']=Wdate::dateT('d/m/Y', 'Ymd',trim(strtr($matches2[1], array('.'=>'/','-'=>'/'))));
elseif (preg_match("/FIXE AU\s+$regExDateLong.{1,15}CESSATION.{1,35}PAIEMENTS/is", $texte, $matches2))
$tabAnn['dateCessationPaiement']=Wdate::dateT('dMY', 'Ymd', $matches2[1]);
elseif (preg_match("/\s+$regExDate/Uis", substr($matches[1],0,35), $matches))
$tabAnn['dateCessationPaiement']=Wdate::dateT('d/m/Y', 'Ymd',trim(strtr($matches[1], array('.'=>'/','-'=>'/'))));
elseif (preg_match("/\s+$regExDateLong/Ui", $texte, $matches))
$tabAnn['dateCessationPaiement']=Wdate::dateT('dMY', 'Ymd',$matches[1]);
}
$jugeCommissaire=$jugeCommissaireSup='';
if (preg_match('/JUGE.{1,5}COMMISSAIRE(.*)JUGE.{1,5}COMMISSAIRE.{1,5}SUPPL(?:è|é|E)ANT(.*)$/Uis', $texte, $matches)) {
$jugeCommissaire=strtr(strtoupper($matches[1]),array('TITULAIRE'=>'',':'=>'',','=>''));
$jugeCommissaireSup=strtr(strtoupper(preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',$matches[2])),array('TITULAIRE'=>'',':'=>'',','=>''));
} elseif (preg_match('/JUGE.{1,5}COMMISSAIRE.{1,5}SUPPL(?:è|é|E)ANT(.*)$/Uis', $texte, $matches)) {
$jugeCommissaireSup=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1])),array(':'=>''));
} elseif (preg_match('/JUGE.{1,5}COMMISSAIRE(.*)$/Uis', $texte, $matches)) {
$jugeCommissaire=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1]),array('TITULAIRE'=>'',':'=>'')));
}
$adm=$mand=$liq='';
if (preg_match('/ADMINISTRATEUR(.*)MANDATAIRE(.*)$/Uis', $texte, $matches)) {
preg_match('/^(.*\d{5,5}.*,)/Uis', $matches[1], $matches);
$adm=strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'',':'=>'',','=>''));
preg_match('/^(.*\d{5,5}.*,)/Uis', $matches[2], $matches);
$mand=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
} elseif (preg_match('/ADMINISTRATEUR(.*)$/Uis', $texte, $matches)) {
$adm=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
}
if (preg_match('/MANDATAIRE(.*)$/Uis', $texte, $matches)) {
preg_match('/^(.*\d{5,5}.*(,|)$)/Uis', $matches[1], $matches);
$mand=preg_replace('/(,|LIQUIDATEUR|ADMINISTRATEUR).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
}
if (preg_match('/LIQUIDATEUR(.*)$/Uis', $texte, $matches)) {
preg_match('/^(.*\d{5,5}.*(,|)$)/Uis', $matches[1], $matches);
$liq=preg_replace('/(,|MANDATAIRE|ADMINISTRATEUR).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
}
$numero='';
if (preg_match('/NUM(?:E|é|è)RO\s+([A-Z0-9\.\/,-]{8,20})\s+/Uis', $texte, $matches)) {
$tabAnn['numero']=trim(strtoupper($matches[1]));
}
/*
OUVERTURE PERIODE D'OBSERVATION DE SIX MOIS
OUVRE UNE PÉRIODE D'OBSERVATION EXPIRANT LE 28/07/2010
DATE D'EFFET : 27/01/2010
MET FIN À LA MISSION DE L'ADMINISTRATEUR ME AVEZOU 5 BD DE L'EUROPE 91050 EVRY CEDEX
DÉSIGNE LIQUIDATEUR LA SCP YVES COUDRAY-CHRISTOPHE ANCEL, EN LA PERSONNE DE MAÎTRE ANCEL, MANDATAIRE JUDICIAIRE ASSOCIÉ 9 BOULEVARD DE L'EUROPE 91050 ÉVRY CEDEX ,
SUIVANT ORDONNANCE RENDUE LE 15 JANVIER 2010 PAR LE TRIBUNAL DE COMMERCE DE NANTES, MR LE JUGE-COMMISSAIRE A MIS FIN A LA MISSION DE ME A. DOLLEY, MANDATAIRE JUDICIAIRE.
*/
$iMand=1;
if (trim($adm)<>'') {
$tabAnn['inter'.$iMand.'type']='A';
//$tabAnn['inter'.$iMand.'id']=?;
$tabAnn['inter'.$iMand.'nom']=trim($adm);
$iMand++;
}
if (trim($mand)<>'') {
$tabAnn['inter'.$iMand.'type']='M';
//$tabAnn['inter'.$iMand.'id']=?;
$tabAnn['inter'.$iMand.'nom']=trim($mand);
$iMand++;
}
if (trim($liq)<>'') {
$tabAnn['inter'.$iMand.'type']='L';
//$tabAnn['inter'.$iMand.'id']=?;
$tabAnn['inter'.$iMand.'nom']=trim($liq);
$iMand++;
}
if (trim($jugeCommissaire)<>'') {
$tabAnn['inter'.$iMand.'type']='J';
//$tabAnn['inter'.$iMand.'id']=?;
$tabAnn['inter'.$iMand.'nom']=trim($jugeCommissaire);
$iMand++;
}
if (trim($jugeCommissaireSup)<>'') {
$tabAnn['inter'.$iMand.'type']='K';
//$tabAnn['inter'.$iMand.'id']=?;
$tabAnn['inter'.$iMand.'nom']=trim($jugeCommissaireSup);
$iMand++;
}
if ($iMand==1)
$tabAnn['annonce']=strtolower($texte);
else
$tabAnn['infosBrutes']=strtoupper($texte);
/*
JUGE COMMISSAIRE : MONSIEUR SWIDERSKI,
JUGE COMMISSAIRE : MONSIEUR NOEL,
ADMINISTRATEUR : SCP THEVENOT PERDEREAU EN LA PERSONNE DE ME THEVENOT 131 BD MALESHERBES 75017 PARIS, AVEC POUR MISSION : d'assister,
MANDATAIRE JUDICIAIRE : MAITRE COURTOUX DIDIER 62 BD DE SÉBASTOPOL 75003 PARIS,
PERIODE D'OBSERVATION EXPIRANT LE 26/03/2010,
Juge Commissaire Mme Lefebvre H. ,
Juge Commissaire suppléant M. Bejui F. ,
Administrateur Me Bleriot Philippe 26 Chemin de la Madeleine 93000 Bobigny avec pour mission de : d'assister le débiteur dans ses actes de gestion ,
Mandataire judiciaire SCP Moyrand - Bally en la personne de Maître Pascal Bally 14/16 Rue de Lorraine 93000 Bobigny
période d'observation expirant le 26/07/2010 .
*/
//if ($tabAnn['complement']<>'') $tabAnn['complement']='Mandataire : '.$tabAnn['complement'];
}
//$tabAnn['dateInsert']=$dateInsert;
if (isset($tabAnn['tribunal']) && strlen($tabAnn['tribunal'])<3) $tabAnn['tribunal']='INCONU';
if (isset($tabAnn['inter5id']) || isset($tabAnn['inter5type']) || isset($tabAnn['inter5nom'])) {
unset($tabAnn['inter5type']);
unset($tabAnn['inter5id']);
unset($tabAnn['inter5nom']);
}
$tabTmp=$iDb->select($table, 'id, siren, sirenValide, strEven, raisonSociale, adresse, codePostal, ville, dateSource, dateJugement, typeEven, tribunal, source, complement',"siren='".$tabAnn['siren']."' AND dateJugement='".$tabAnn['dateJugement'] ."' AND typeEven =".$tabAnn['typeEven'], false, MYSQL_ASSOC);
if (count($tabTmp)==0) {
$iDb->insert($table, array_merge($tabAnn,array('dateInsert'=>date('YmdHis'))));
if (mysql_errno()>0) {
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
print_r($tabAnn);
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
if ($modeDebug) $line = trim(fgets(STDIN));
else die("ERREUR SQL".EOL);
}
$nbInsert++;
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Insertion du jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .'!'.EOL;
} else {
$tabAnnEnBase=$tabTmp[0];
$even=$tabAnnEnBase['typeEven'];
$trib=trim($tabAnnEnBase['tribunal']);
$comp=trim($tabAnnEnBase['complement']);
if ($tabAnn['typeEven']<>$even) {
print_r($tabAnn);
echo(date ('Y/m/d - H:i:s') . " - Jugement différent $even par rapport à ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL);
}
if (strlen($trib)>1 && $trib<>'INCONU' && $tabAnn['tribunal']<>$trib) {
echo (date ('Y/m/d - H:i:s') . " - Nouveau tribunal différent ".$tabAnn['tribunal']." par rapport à $trib pour l'annonce ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL);
unset($tabAnn['tribunal']);
}
if (strlen($comp)==0 && @$tabAnn['complement']<>'') {
//$tabAnn['complement']=$tabAnn['complement'];
echo (date ('Y/m/d - H:i:s') . " - Ajout du complément ".$tabAnn['complement'].' pour '. $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL);
} elseif (strlen($comp)>1 && $tabAnn['complement']<>$comp) {
echo date ('Y/m/d - H:i:s') . " - Complément différent ".$tabAnn['complement'].EOL;
echo "par rapport à $comp ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL;
$sortie=false;
if ($questions) {
while($sortie==false) {
echo 'Voulez vous conserver l\'ancien mandataire ? (Oui/Ajout/Non)';
$line = trim(fgets(STDIN));
if ($line=='O' || $line=='o') { $sortie=true; unset($tabAnn['complement']); }
elseif ($line=='N' || $line=='n' || $line=='') { $sortie=true; }
elseif ($line=='A' || $line=='a') { $sortie=true; $tabAnn['complement']="$comp, ".$tabAnn['complement'];}
}
}
}
echo date ('Y/m/d - H:i:s') . " - MAJ du jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .'!'.EOL;
if (count($tabTmp)>1) {
print_r($tabAnn);
echo date ('Y/m/d - H:i:s') . " - ERREUR : Jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' présent plusieurs fois !'.EOL;
//die();
}
$iDb->update($table,$tabAnn,'id='.$tabAnnEnBase['id']);
if (mysql_errno()>0) {
echo date ('Y/m/d - H:i:s') ." - A la mise à jour sur $table :".EOL;
print_r($tabAnn);
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
if ($modeDebug) $line = trim(fgets(STDIN));
else die("ERREUR SQL 2".EOL);
}
/*echo mysql_error().EOL."En base:".EOL;
print_r($tabAnnEnBase);
echo mysql_error().EOL."A mettre à jour :".EOL;
print_r($tabAnn);
echo "?";
$sdfqsd=trim(fgets(STDIN));*/
$nbUpdate++;
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Ligne $ligne : MAJ du jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .'!'.EOL;
}
}
//if ($modeDebug) echo "Ligne $ligne Fin: '$a'".EOL;
}
fclose ($fp);
echo date ('Y/m/d - H:i:s')." - Le fichier n°$i, $nomFichier vient d'être chargé : $nbInsert ajouts et $nbUpdate MAJ !".EOL;
if ($table=='annonces2') {
echo date ('Y/m/d - H:i:s')." - Chargement en test. Arrêt du traitement...".EOL;
die("TABLE ANNONCE 2".EOL);
}
if (bzip2(CSF_FTP_DIR.$nomFichier, CSF_BACKUP_DIR.$nomFichier)) {
unlink(CSF_FTP_DIR.$nomFichier);
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
}
}
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siren/siret invalides et $nbSiretRetraitement annonces à retraiter !".EOL;
$message.="Le fichier n°$i, $nomFichier vient d'être chargé :\r\n";
$message.=" $nbInsert ajouts et $nbUpdate mises à jours sur $nbLignes lignes ($nbSiretInvalides siren/siret invalides et $nbSiretRetraitement annonces à retraiter).".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des défaillances.".EOL;
}
else {
$message.="Aucun fichier CSF à traiter !\r\n";
echo date ('Y/m/d - H:i:s') . " - Aucun fichier CSF à traiter !".EOL;
}
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement annonces Greffes', $message);
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement annonces Greffes', $message);
echo date ('Y/m/d - H:i:s') . " - Fin du traitement.".EOL;
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,238 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
$modeDebug=$modeSirenBanque=false;
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Mise à jour des listes des sociétés de gestion agrées par l'AMF
Options :
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
-b Sirenage des codes banques non encore sirenés
-r=13S00000 Traiter ce numéro de RCI
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
";*/
$argv=$_SERVER['argv'];
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v': $modeDebug=true; break;
case 'b': $modeSirenBanque=true; break;
//case 'r': $modeRCI=trim(substr($argv[$i],3,strlen($argv[$i])-1)); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
$iDb=new WDB('insee');
$table='BDF_Etabs';
/*$urlBase='http://www.amf-france.org/bio/rech_SG.aspx';
$referer='http://www.rci.gouv.mc/index.jsp';
$urlRecherche='10088';
*/
$retrait=1;
$urlDetail="https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination=&siren=&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=21&cib=";
$tabZones =array('id'=>"&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=(.*)\">(?:.*)</a></td></tr></table>");
$tabZones2=array( 'nom' => '<strong>D&eacute;nomination sociale : </strong>(.*)</p>',
'denomination' => '<li>D&eacute;nomination sociale : <span>(.*)</span></li>',
'nomCom' => '<li>Nom commercial : <span>(.*)</span></li>',
'fjLib' => '<li>Forme juridique : <span>(.*)</span></li>',
'bdfFibCodeEtab'=> '<li class="pre-espacement">Code banque \(CIB\) : <span>(.*)</span></li>',
'siren' => '</span></li><li>SIREN : <span>(.*)</span></li></ul>',
'typAgentFi' => '</ul><strong class="description">(.*)</strong><ul class="nopuce">',
'natAutor' => '<li>Nature d\'autorisation : <span>(.*)</span></li>',
'natExercice' => '<li>Nature d\'exercice : <span>(.*)</span></li>',
'adresse' => '<li class="pre-espacement post-espacement">Adresse du si&egrave;ge social : <span>(.*)</span></li>',
'CP' => '<li>Code postal : <span>(.*)</span></li>',
'Ville' => '<li>Ville : <span>(.*)</span></li>',
'paysLib' => '<li>Pays : <span>(.*)</span></li>');
//
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL;
$modeSirenBanque=true;
if ($modeSirenBanque) {
$ret=$iDb->select($table, 'bdfFibCodeEtab, bdfFibDenom40', "1/*siren<1000 AND bdfFibCodeEtab>23585*/ AND preRegafi IS NULL AND idRegafi IS NULL ORDER BY bdfFibCodeEtab", false);
$nbLet=count($ret);
foreach ($ret as $tFiche) {
@$nbDone++;
$id=$tFiche['bdfFibCodeEtab'];
$nom=$tFiche['bdfFibDenom40'];
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : Code Banque $id - $nom = ";
$referer="https://www.regafi.fr/spip.php?page=advancedsearch&id_secteur=1";
$urlFiche="https://www.regafi.fr/spip.php?page=results&type=advanced&id_secteur=1&lang=fr&denomination=&siren=&cib=$id&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait";
$page=getUrl($urlFiche, '', '', $referer, false);
$body=$page['body'];
if (preg_match('/<strong>Nombre de r&eacute;sultats \:<\/strong> 0<\/p>/', $body, $matches)) {
$iDb->update($table, array('preRegafi'=>0), "bdfFibCodeEtab=$id");
echo 'Non trouvé !'.EOL;
if ($modeDebug) randsleep(1,2);
else randsleep(60,120);
continue;
}
//print_r($page);die();
$tabUpdate=@html2array($body, $tabZones);
//print_r($tabUpdate);die();
// Détail
$referer=$urlFiche;
//https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination&siren&cib&bic&nom&siren_agent&num&cat=0&retrait=0&pg=57&page=af&id=7571
$idRegafi=$tabUpdate['id'];
$urlFiche="https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination=&siren=&cib=$id&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=".$idRegafi;
$page=getUrl($urlFiche, '', '', $referer, false);
$body=$page['body'];
//print_r($page);die();
$tabUpdate=@html2array($body, $tabZones2);
//print_r($tabUpdate);die();
echo $tabUpdate['nom'].' - '.@$tabUpdate['siren'].EOL;
unset($tabUpdate['nom']);
$tabUpdate['idRegafi']=$idRegafi;
$tabUpdate['preRegafi']=1;
if (@$tabUpdate['siren']>1000 || $idRegafi>0) {
$tabUpdate['sirenValide']=1;
$tabUpdate['denomination']=strtr($tabUpdate['denomination'],array('&#039;'=>"'"));
$tabUpdate['nomCom']=@strtr($tabUpdate['nomCom'],array('&#039;'=>"'"));
$tabUpdate['adresse']=@strtr($tabUpdate['adresse'],array('&#039;'=>"'"));
$tabTypAgentFi=array();
if (preg_match("/ablissement de cr.{1,10}alis.{1,5}/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CRS';
elseif (preg_match("/Etablissement de cr.{1,5}t/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CR';
if (preg_match("/Non prestataire de services d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='NSI';
elseif (preg_match("/Prestataire de services d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='SI';
if (preg_match("/Banque mutualiste ou coop.{1,5}tive/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='BQM';
elseif (preg_match("/Banque/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='BQ';
if (preg_match("/Caisse de cr.{1,5}t municipal et .{1,5}blissement assimilable/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CM';
if (preg_match("/Entreprise d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EI';
if (preg_match("/Etablissement de monnaie.{1,5}ctronique/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EM';
if (preg_match("/Soci.{1,5} de financement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='SF';
if (preg_match("/Etablissement de paiement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EP';
if (preg_match("/Institution financi.{1,5} sp.{1,5}alis/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='IFS';
if (preg_match("/Compagnie financi.{1,5} holding/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CFH';
if (preg_match("/Changeur manuel/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CHM';
if (count($tabTypAgentFi)==0) die('Je ne connais pas '.$tabUpdate['typAgentFi'].EOL);
$iDb->update($table, $tabUpdate, "bdfFibCodeEtab=$id");
}
if ($modeDebug) randsleep(1,2);
else {
randsleep(60,120);
if (date('H')>19) die();
}
}
}
die();
shuffle($tabLet);
file_put_contents (REP_TEMP.$table, serialize($tabLet));
die();
echo count($tabLet);
//serialize
print_r($tabLet);
die();
$tabHtml=html2array($body, $tabZones);
print_r($tabHtml);
die();
$ret=$iDb->select($table, 'agrementNum', '1', false);
foreach ($ret as $tAgrNum) {
$agrNum=$tAgrNum['agrementNum'];
echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
}
for($i=$iDeb;;$i++) {
$tabInsert=array('id'=>$i);
$url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15";
$page=getUrl($url, '', '', '', false);
$referer=$url;
$body=$page['body'];
print_r($page);
die();
$tabHtml=html2array($body, $tabZones);
foreach ($tabHtml as $zone=>$data) {
if (is_array($data)) {
foreach ($data as $j=>$tabInsert2) {
$tabInsert2['id']=$i;
$tabInsert2['num']=$j;
$tabInsert2['dateInsert']=date('YmdHis');
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
if (mysql_errno()==1062) {
unset($tabInsert2['dateInsert']);
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
} else {
print_r($tabInsert2);
die(mysql_error());
}
}
}
} else
$tabInsert[$zone]=$data;
}
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
$nbVides++;
if ($nbVides<20) continue;
else {
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
die();
}
}
$nbVides=0;
unset($tabInsert['qualifs']);
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
$urlLogo='http://www.qualifelec.fr/';
die($tabInsert['urlImg']);
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
$extension=substr(strrchr($urlLogo,'.'),1);
if (!file_exists("/home/data/logos/$siren.$extension")) {
$referer='';
$tDeb=microtime(true);
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
$duree=round(microtime(true)-$tDeb,3);
$body=$page['body'];
$taille=round(strlen($body)/1024,1);
file_put_contents("/home/data/logos/$siren.$extension",$body);
}
}
}
unset($tabInsert['urlImg']);
$tabInsert['dateInsert']=date('YmdHis');
if (!$iDb->insert($table, $tabInsert, false)) {
if (mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
$iDb->update($table, $tabInsert, "id=$i", false);
} else {
print_r($tabInsert);
die(mysql_error());
}
}
//die();
$nb=count($tabInsert);
$nb2=@count($tabInsert2);
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
if ($modeDebug) randsleep(1,2);
else randsleep(7,21);
}
die();
?>

View File

@ -1,558 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice)
** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
**
** Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
**/
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/PHPExcel.php');
$referer='http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcfeaf.jsp';
$iDb=new WDB();
$iDbI=new WDB('insee');
$iInsee=new MInsee();
$doCFE=$doAMF=$doBanatic=$modeDebug=false;
/*
$url='http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01000&type=all';
$page=getUrl($url, '', '', $referer, false, 'www.justice.gouv.fr');
die($page['body']);
*/
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Mise à jour des liens actionnaires et participations.
Options :
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
-a Traiter les Maires AMF (Noms des maires, tel, fax, web mairies)
-b Traiter la base Banatic (EPCI, Président, tel, fax...)
-c Traiter les CFE
";
$argv=$_SERVER['argv'];
//$tabSiren=array();
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v': $modeDebug=true; break;
case 'a': $doAMF=true; break;
case 'b': $doBanatic=true; break;
case 'c': $doCFE=true; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}// else $tabSiren[]=$argv[$i];
}
if ($doBanatic) {
$urlBase='https://www.banatic.interieur.gouv.fr/V5/fichiers-en-telechargement/';
$url=$urlBase.'fichiers-telech.php';
$page=getUrl($url, '', '', '', false);
$body=$page['body'];
$dateMAJ=false;
//$urlGrpListe=$urlGrpCoord=$urlGrpCompe=$urlGrpPerim='';
$tabRegions=array( 93=>231300021, // REGION PROVENCE-ALPES-COTE D'AZUR
25=>231400011, // REGION DE BASSE NORMANDIE
94=>232000018, // COLLECTIVITE TERRITORIALE DE CORSE
26=>232100016, // REGION DE BOURGOGNE
43=>232500017, // REGION DE FRANCHE-COMTE
73=>233100015, // REGION DE MIDI PYRENEES
72=>233300011, // REGION D'AQUITAINE
91=>233400019, // REGION DU LANGUEDOC-ROUSSILLON
53=>233500016, // REGION BRETAGNE
52=>234400034, // REGION DES PAYS DE LA LOIRE
24=>234500023, // REGION CENTRE
21=>235100013, // REGION CHAMPAGNE-ARDENNE
41=>235700010, // REGION DE LORRAINE
31=>235900016, // REGION NORD PAS DE CALAIS
83=>236300018, // REGION D'AUVERGNE
42=>236700019, // REGION D ALSACE
82=>236900015, // REGION RHONE ALPES
11=>237500079, // REGION ILE DE FRANCE
23=>237600010, // REGION DE HAUTE NORMANDIE
22=>238000038, // REGION PICARDIE
54=>238600019, // REGION POITOU CHARENTES
74=>238708507, // REGION LIMOUSIN
1=>239710015, // CONSEIL REGIONAL DE LA GUADELOUPE
2=>239720014, // REGION DE MARTINIQUE
3=>239730013, // REGION GUYANE
4=>239740012, // REGION REUNION
);
$tabZones=array(
// Toutes les infos de cette table sont dans 'banatic_coord'
'banatic_liste'=> array( "Région siège"=>'region',
"Département siège"=>'dept',
"Arrondissement siège"=>'arrond',
"Commune siège"=>'commune',
"N° SIREN"=>'sirenGrp',
"Nom du groupement"=>'nomGrp',
"Nature juridique"=>'nJur',
"Syndicat à la carte"=>'syndCarte',
"Groupement interdépartemental"=>'grpInterDep',
"Date de création"=>'dateCrea',
"Date d'effet"=>'dateEffet',
"Mode de répartition des sièges"=>'repSieges',
"Autre mode de répartition des sièges"=>'modeRep',
"Nombre de membres"=>'nbMbr',
"Population"=>'popu',
"Nombre de compétences exercées"=>'nbrComp',
"Mode de financement"=>'modeFin',
"Civilité Président"=>'presCiv',
"Prénom Président"=>'presPre',
"Nom Président"=>'presNom',
),
'banatic_comp'=> array( "Région siège"=>'region',
"Département siège"=>'dept',
"Arrondissement siège"=>'arrond',
"Commune siège"=>'commune',
"N° SIREN"=>'sirenGrp',
"Nom du groupement"=>'nomGrp',
"Nature juridique"=>'nJur',
"Syndicat à la carte"=>'syndCarte',
"Groupement interdépartemental"=>'grpInterDep',
"Date de création"=>'dateCrea',
"Date d'effet"=>'dateEffet',
"Mode de répartition des sièges"=>'repSieges',
"Autre mode de répartition des sièges"=>'modeRep',
"Nombre de membres"=>'nbMbr',
"Population"=>'popu',
"Nombre de compétences exercées"=>'nbrComp',
"Mode de financement"=>'modeFin',
"DGF Bonifiée"=>'dgf',
"DSC"=>'dsc',
"REOM"=>'reom',
"Autre redevance"=>'autreRdv',
"TEOM"=>'teom',
"Autre taxe"=>'autreTx',
"Civilité Président"=>'presCiv',
"Prénom Président"=>'presPre',
"Nom Président"=>'presNom',
"Adresse du siège_1"=>'adr1',
"Adresse du siège_2"=>'adr2',
"Adresse du siège_3"=>'adr3',
//"Code postal du siège - Ville du siège"=>'cpVille',
"Code postal du siège Ville du siège"=>'cpVille',
"Téléphone du siège"=>'tel',
"Fax du siège"=>'fax',
"Courriel du siège"=>'mail',
"Site internet"=>'web',
"Adresse annexe_1"=>'annAdr1',
"Adresse annexe_2"=>'annAdr2',
"Adresse annexe_3"=>'annAdr3',
//"Code postal annexe - Ville annexe"=>'annCpVille',
"Code postal annexe Ville annexe"=>'annCpVille',
"Téléphone annexe"=>'annTel',
"Fax annexe"=>'annFax',
),
'banatic_peri'=> array( "Région siège"=>'region',
"Département siège"=>'dept',
"Arrondissement siège"=>'arrond',
"Commune siège"=>'commune',
"N° SIREN"=>'sirenGrp',
"Nom du groupement"=>'nomGrp',
"Nature juridique"=>'nJur',
"Syndicat à la carte"=>'syndCarte',
"Groupement interdépartemental"=>'grpInterDep',
"Date de création"=>'dateCrea',
"Date d'effet"=>'dateEffet',
"Mode de répartition des sièges"=>'repSieges',
"Autre mode de répartition des sièges"=>'modeRep',
"Nombre de membres"=>'nbMbr',
"Population"=>'popu',
"Nombre de compétences exercées"=>'nbrComp',
"Mode de financement"=>'modeFin',
"DGF Bonifiée"=>'dgf',
"DSC"=>'dsc',
"REOM"=>'reom',
"Autre redevance"=>'autreRdv',
"TEOM"=>'teom',
"Autre taxe"=>'autreTx',
"Civilité Président"=>'presCiv',
"Prénom Président"=>'presPre',
"Nom Président"=>'presNom',
"Adresse du siège_1"=>'adr1',
"Adresse du siège_2"=>'adr2',
"Adresse du siège_3"=>'adr3',
"Code postal du siège Ville du siège"=>'cpVille',
"Téléphone du siège"=>'tel',
"Fax du siège"=>'fax',
"Courriel du siège"=>'mail',
"Site internet"=>'web',
"Adresse annexe_1"=>'annAdr1',
"Adresse annexe_2"=>'annAdr2',
"Adresse annexe_3"=>'annAdr3',
"Code postal annexe Ville annexe"=>'annCpVille',
"Téléphone annexe"=>'annTel',
"Fax annexe"=>'annFax',
"Type"=>'typeMbr',
"Siren membre"=>'sirenMbr',
"Nom membre"=>'nomMbr',
"Représentation-substitution"=>'reprMbr',
"Compétence conservée"=>'compConsMbr',
"Population membre"=>'popuMbr',
"Adhésion siren"=>'sirenAdh',
"Adhésion nom"=>'nomAdh',
"Adhésion population"=>'popuAdh',
),
);
$tabBanatic=array(// 1=>array('table'=>'banatic_liste', 'lib'=>'Liste des groupements'),
// 2=>array('table'=>'banatic_coord', 'lib'=>'Coordonnées des groupements'),
3=>array('table'=>'banatic_comp', 'lib'=>'Compétences des groupements'),
4=>array('table'=>'banatic_peri', 'lib'=>'Périmètre des EPCI à fiscalité propre'),
);
if (preg_match('/<p class="s_titre">Donn..?es mises ..? jour le \:&nbsp;<span>(.*)<\/span><\/p>/Uis', $body, $matches))
$dateMAJ=$matches[1];
if (preg_match('/<li><span>France<\/span>\s+<ul>\s+<li class="file">(.*)<\/li>\s+<li class="file">(.*)<\/li>\s+<li class="file">(.*)<\/li>\s+<li class="file">(.*)<\/li>\s+<\/ul>\s+<\/li>/Uis', $body, $matches)) {
//print_r($matches);
foreach($tabBanatic as $iFichier=>$tabFichier) {
if (preg_match('/<a href="(.*)" class="doc">/Uis', $matches[$iFichier], $matches2)) $tabBanatic[$iFichier]['url']=$urlBase.$matches2[1];
echo (date('Y/m/d - H:i:s') .' - Téléchargement de "'. $tabBanatic[$iFichier]['url'] .'"'. EOL);
$page=getUrl($tabBanatic[$iFichier]['url'], '', '', $url, false);
$body=$page['body'];
if(file_put_contents('/tmp/'.$tabBanatic[$iFichier]['table'].'.csv', $body)) {
echo (date('Y/m/d - H:i:s') .' - Ecriture de "'. $tabBanatic[$iFichier]['table'] .'"'. EOL);
// Chargement de la table
$row = 0;
$sirenPre=$deptPre=0;
if (($handle = fopen('/tmp/'.$tabBanatic[$iFichier]['table'].'.csv', 'r')) !== FALSE) {
while (($data = fgetcsv($handle, 2054, "\t")) !== FALSE) {
$num = count($data);
if ($row==0) {
$tabEntetes=$tabEntetesComp=array();
for ($c=0; $c<$num; $c++) {
if (isset($tabZones[$tabBanatic[$iFichier]['table']][trim($data[$c])]))
$tabEntetes[$c]=$tabZones[$tabBanatic[$iFichier]['table']][trim($data[$c])];
elseif ($tabBanatic[$iFichier]['table']=='banatic_comp' && $c>39)
// $tabEntetes[$c]=$data[$c];
$tabEntetesComp[$c]=trim($data[$c]);
elseif ($tabBanatic[$iFichier]['table']=='banatic_peri' && $c>48)
$tabEntetesComp[$c]=trim($data[$c]);
else {
$taille=strlen($data[$c]);
for($z=0; $z<$taille; $z++) {
$car=substr($data[$c],$z,1);
echo "$z:$car=chr(".ord($car).')'.EOL;
}
die(print_r($data,1).$tabBanatic[$iFichier]['table'].EOL.'c='.$c.EOL.$data[$c].EOL.$tabZones['banatic_peri'][$data[$c]].EOL.print_r($tabZones['banatic_peri'],1));
}
}
} else {
$tabInsert=$tabInsertComp=array();
for ($c=0; $c<$num; $c++)
if (isset($tabEntetes[$c]))
$tabInsert[$tabEntetes[$c]]=$data[$c];
elseif (($tabBanatic[$iFichier]['table']=='banatic_comp' && $c>39 && $data[$c]==1) ||
($tabBanatic[$iFichier]['table']=='banatic_peri' && $c>48 && $data[$c]==1))
$tabInsertComp[]=$tabEntetesComp[$c];
//$iDbI->insert($tabBanatic[$iFichier]['table'], $tabInsert, false);
if ($tabBanatic[$iFichier]['table']=='banatic_comp' ||
$tabBanatic[$iFichier]['table']=='banatic_peri') {
$tabInsert['dateInsert']=date('YmdHis');
/** Nettoyage des données **/
switch(trim(str_replace('.','',$tabInsert['presCiv']))) {
case 'Monsieur':
case 'Mr':
case 'M':
$tabInsert['presCiv']='M'; break;
case 'Madame':
case 'Mme':
$tabInsert['presCiv']='Mme'; break;
case 'Mademoiselle':
case 'Melle':
case 'Mlle':
$tabInsert['presCiv']='Mlle'; break;
}
$tabInsert['tel']=strtr($tabInsert['tel'],array('.'=>'',' '=>''));
if (strlen($tabInsert['tel'])<10) unset($tabInsert['tel']);
$tabInsert['fax']=strtr($tabInsert['fax'],array('.'=>'',' '=>''));
if (strlen($tabInsert['fax'])<10) unset($tabInsert['fax']);
$tabInsert['annTel']=strtr($tabInsert['annTel'],array('.'=>'',' '=>''));
if (strlen($tabInsert['annTel'])<10) unset($tabInsert['annTel']);
$tabInsert['annFax']=strtr($tabInsert['annFax'],array('.'=>'',' '=>''));
if (strlen($tabInsert['annFax'])<10) unset($tabInsert['annFax']);
$tmp=explode(' - ', $tabInsert['region']);
$tabInsert['region']=$tmp[0];
$tabInsert['regionLib']=$tmp[1];
$tabInsert['sirenRegion']=$tabRegions[$tmp[0]*1];
$tmp=explode(' - ', $tabInsert['dept']);
$tabInsert['dept']=$tmp[0];
$tabInsert['deptLib']=$tmp[1];
if ($tabInsert['dept']==$deptPre) $tabInsert['sirenDept']=$sirenDeptPre;
else {
$ret2=$iDb->select( 'etablissements_old', 'siren', "source=2 AND siege=1 AND actif=1 AND adr_dep='".$tabInsert['dept']."' AND capital>=0 AND cj=7220 AND siren BETWEEN 200000000 AND 299999999", false, MYSQL_ASSOC);
$tabInsert['sirenDept']=$sirenDeptPre=@$ret2[0]['siren'];
$deptPre=$tabInsert['dept'];
}
$tmp=explode(' - ', $tabInsert['arrond']);
$tabInsert['arrond']=$tmp[0];
$tabInsert['arrondLib']=$tmp[1];
$tmp=explode(' - ', $tabInsert['commune']);
$tabInsert['commune']=$tmp[0];
$tabInsert['communeLib']=$tmp[1];
if (@$tabInsert['sirenGrp']>1000) {
if ($sirenPre==$tabInsert['sirenGrp']) $tabInsert['nicGrp']=$nicPre;
else {
$siren=$tabInsert['sirenGrp'];
$ret2=$iDb->select( 'etablissements_old', 'nic', "source=2 AND siege=1 AND actif=1 AND siren=$siren", false, MYSQL_ASSOC);
$tabInsert['nicGrp']=@$ret2[0]['nic'];
$sirenPre=$siren; $nicPre=$tabInsert['nicGrp'];
}
}
if (@$tabInsert['sirenMbr']>1000) {
$siren=$tabInsert['sirenMbr'];
$ret2=$iDb->select( 'etablissements_old', 'nic, adr_dep, adr_com', "source=2 AND siege=1 AND actif=1 AND siren=$siren", false, MYSQL_ASSOC);
$tabInsert['nicMbr']=@$ret2[0]['nic'];
$dep1=@$ret2[0]['adr_dep']*1;
if ($dep1>96)
$tabInsert['codeInsee']=@substr($ret2[0]['adr_dep'],0,2).$ret2[0]['adr_com'];
elseif($dep1>0 && $dep1<10)
$tabInsert['codeInsee']='0'.$dep1.''.$ret2[0]['adr_com'];
else
$tabInsert['codeInsee']=''.$dep1.''.@$ret2[0]['adr_com'];
}
if (@$tabInsert['sirenAdh']>1000) {
$siren=$tabInsert['sirenAdh'];
$ret2=$iDb->select( 'etablissements_old', 'nic', "source=2 AND siege=1 AND actif=1 AND siren=$siren", false, MYSQL_ASSOC);
$tabInsert['nicAdh']=@$ret2[0]['nic'];
}
if ($tabBanatic[$iFichier]['table']=='banatic_comp')
$iDbI->insert('banatic_coor', $tabInsert, false);
elseif($tabBanatic[$iFichier]['table']=='banatic_peri')
$iDbI->insert('banatic_peri', $tabInsert, false);
// Ajout des compétences
foreach ($tabInsertComp as $iComp=>$cComp) {
$iDbI->insert('banatic_comp', array('sirenGrp'=>$tabInsert['sirenGrp'], 'codComp'=>$cComp, 'dateInsert'=>date('YmdHis')), false);
mysql_error();
}
//$tabInsertComp[]=$tabEntetes[$c];
}
/*print_r($tabInsert);
print_r($tabInsertComp);
die();*/
}
$row++;
}
fclose($handle);
}
}
//convertXLStoCSV('/tmp/'.$tabBanatic[$iFichier]['table'].'.xls','/tmp/'.$tabBanatic[$iFichier]['table'].'.csv');
}
print_r($tabBanatic);
}
//print_r($page);
die($dateMAJ.EOL);
}
//$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee BETWEEN 85068 AND 91000 GROUP BY codeInsee');// "`Code Insee`<'10000'");
$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','siren IS NULL ORDER BY codeInsee ASC');// "`Code Insee`<'10000'");
foreach ($lstCom as $i=>$tabCom) {
$numInsee=$tabCom['codeInsee'];
$dep=substr($numInsee,0,2);
if ($dep==97) {
$dep=substr($numInsee,0,3);
$com=substr($numInsee,3,2);
} else
$com=substr($numInsee,2,3);
if ($doCFE) {
$url="http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/Controleur.jsp?ddd=$dep&ccc=$com&service=lcfer&type=NULL&Valider=Valider";
$page=getUrl($url, '', '', $referer, false, 'annuaire-cfe.insee.fr');
$body=$page['body'];
if (strpos($body, "<P>Erreur rencontrée : java.lang.NullPointerException</P>")==0)
{
//print_r($page);
$cookie=$page['header']['Set-Cookie'];
$page=getUrl('http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcferf.jsp', $cookie, '', $url, false, 'annuaire-cfe.insee.fr');
$body=$page['body'];
if (preg_match('/<font size="2" face="Arial, Helvetica, sans-serif" color="#D01010">(?:.*)([\d]{2,3})(?:.*)- (.*) \/ (.*)<\/b><\/font><\/td>/Uis', $body, $matches)) {
$depLu=$matches[1];
$depLib=$matches[2];
$comLib=$matches[3];
}
/*<b>01
- AIN / L' ABERGEMENT CLEMENCIAT</b></font></td>*/
$tabTmp=explode('<tr bgcolor="#FFFFFF">',$body);
//print_r($tabTmp);die();
$sleep=false;
foreach ($tabTmp as $j=>$tabTrib) {
if ($j<2) continue;
if (preg_match('/<td valign="top" width="48%"> <font face="Arial, Helvetica, sans-serif" size="2">(?:.*)<b>(.*)<\/b><br>(.*)<\/font>/Uis', $tabTrib, $results)) {
$libTri=strip_tags($results[1]);
if (preg_match("/^Chambre de commerce et d'industrie$/i", $libTri)) $typeTri='O';// CCI
elseif (preg_match("/^Chambre de métiers et de l'artisanat/i", $libTri)) $typeTri='T';// CM
elseif (preg_match("/^Chambre de métiers/i", $libTri)) $typeTri='T';// CM
elseif (preg_match("/^Greffe du tribunal de commerce/i", $libTri)) continue;//$typeTri='C';// TC
elseif (preg_match("/^Chambre d'agriculture/i", $libTri)) $typeTri='R';// AGR
elseif (preg_match("/^Chambre nationale de la batellerie artisanale/i", $libTri)) $typeTri='N';// BAR
elseif (preg_match("/^URSSAF/i", $libTri)) $typeTri='U';// URS
elseif (preg_match("/^Centre des impôts/i", $libTri)) $typeTri='Z';// CDI
else die("Libellé CFE '$libTri' inconnu !");
} else die('Erreur fatale');/*</b><br>
1 RUE JOSEPH BERNIER<br>
01000 BOURG EN BRESSE<br>
Tél : 04 74 32 13 00<br>
Fax : 04 74 21 42 63<br>
<a href="http://WWW.AIN.CCI.FR" target="_new">WWW.AIN.CCI.FR</a>
</font>*/
if (preg_match_all('/(.*)(?:<br>|<\/a>)/Uis', $results[2], $results)) {
//print_r($results);die();
$results2=$results[1];
$adresse1=trim($results2[0]);
$adresse2=trim($results2[1]);
if (substr($adresse2,0,5)*1>0) {
$adresse2='';
$i=1;
} else $i=2;
$cpVille=trim(@$results2[$i]);
$cp=substr($cpVille,0,5)*1;
$ville=trim(substr($cpVille,5));
$tel=str_replace(' ','',strtr(@$results2[$i+1], 'TélFax :.',' '))*1;
$fax=str_replace(' ','',strtr(@$results2[$i+2], 'TélFax :.',' '))*1;
if (preg_match('/<a href="(.*)"/Ui', trim(@$results2[$i+3]), $results2)) $web=strtolower($results2[1]);
if ($web=='http://') $web='';
$id=md5($typeTri.$adresse1.$cp.$ville);
$str=$tabCom['codeInsee'].";1;$depLu;$depLib;$comLib;$id;$typeTri;$adresse1;$adresse2;$cp;$ville;$cpVille;$tel;$fax;$web";
$trib=$iDb->select('tribunaux', 'triId, triCode, triType, triNom, triCP, triTel, triFax', "triType='$typeTri' AND triCommentaire='$id'");
if (isset($trib[0]['triId'])) {
$id=$trib[0]['triId'];
$code=$trib[0]['triCode'];
$nom=$trib[0]['triNom'];
} else {
// Il faut insérer la fiche ID de la compétence
$tabAdr=$iInsee->structureVoie($adresse1);
$tabInsert=array('triType'=>$typeTri,
'triNom'=> $libTri,
'triCP'=>$cp,
'triWeb'=>$web,
'triAdrNum'=>$tabAdr['num'],
'triAdrIndRep'=>@$tabAdr['indRep'],
'triAdrTypeVoie'=>$tabAdr['typeVoie'],
'triAdrVoie'=>$tabAdr['libVoie'],
'triAdrComp'=>$adresse2,
'triVille'=>$ville,
'triTel'=>$tel,
'triFax'=>$fax,
'triCommentaire'=>$id,
);
$id=$iDb->insert('tribunaux', $tabInsert);
$code='';
$nom=$libTri;
print_r($tabInsert);
$sleep=true;
}
echo $str;
if ($id>0) {
$ret=$iDb->insert('tribunauxInsee', array('CodeInsee'=>$tabCom['codeInsee'],'triId'=>$id));
if (!$ret) {
echo ' Déjà en base.';
}
else {
echo ' ===> INSERE !!!';
$sleep=true;
}
echo "\n";
}
}
}
} else {
$str=$tabCom['codeInsee'].";0;;;".$tabCom['LibCom']."\n";
echo $str;
}
}
if ($doAMF) {
$url="http://www.amf.asso.fr/annuaire/index.asp?refer=commune&dep_n_id=$dep&NUM_INSEE=$numInsee";
$page=getUrl($url, '', '', $referer, false);
$body=$page['body'];
//print_r($page);
$civ=$nom=$prenom=$tel=$fax=$web='';
$siren=0;
if (preg_match('/T&eacute;l&eacute;phone \: <strong>(.*)<\/strong>/Uis', $body, $matches)) {
//print_r($page);
$tel=$matches[1];
//die($tel);
}
if (preg_match('/Fax \: <strong>(.*)<\/strong>/Uis', $body, $matches))
$fax=$matches[1];
if (preg_match('/<p>Site web : <a href="(.*)" target="_blank">/Uis', $body, $matches))
$web=$matches[1];
//http://www.yeun-elez.com/brasparts.php" target="_blank"><span style="color:#"><strong>www.yeun-elez.com/brasparts.php</strong>
if (preg_match('/<div style="padding-bottom\:30px; padding-top\:10px;">Nom du Maire \: <strong>(.*)<\/strong><\/div>/Uis', $body, $matches)) {
$tabNom=explode('&nbsp;', $matches[1]);
$civ=$tabNom[0];
$prenom=$tabNom[1];
$nom=$tabNom[2];
if (isset($tabNom[3])) die();
//$depLib=$matches[2];
//$comLib=$matches[3];
}
$ret2=$iDb->select( 'etablissements_old',
'id, siren, nic, cj, raisonSociale, adr_ville, adr_dep, adr_com, dateInsert*1 AS dateInsert, dateUpdate*1 AS dateUpdate',
"source=2 AND siege=1 AND actif=1 AND adr_dep=$dep AND capital>=0 AND cj=7210 AND adr_com=$com AND siren BETWEEN 200000000 AND 299999999", false, MYSQL_ASSOC);
$siren=@$ret2[0]['siren'];
$nic=@$ret2[0]['nic'];
//$rsAct=$ret2[0]['raisonSociale'];
$tabUpdate=array( 'siren' => $siren,
'nic' => $nic,
'tel' => $tel,
'fax' => $fax,
'web' => $web,
'maireCiv' => $civ,
'maireNom' => $nom,
'mairePrenom'=> $prenom,
'dateMajAMF'=>date('Ymd'));
echo $tabCom['codeInsee'].";0;;;".$tabCom['LibCom'].";$siren;$nic;$tel;$fax;$web;$civ $nom $prenom".EOL;
if (!$iDb->update('villes', $tabUpdate, "codeInsee='$numInsee'", false))
die(mysql_error());
//M.&nbsp;Hugues&nbsp;FOURAGE</strong></div>
if (!$modeDebug) randsleep(7, 21);
}
}
function convertXLStoCSV($infile,$outfile)
{
$fileType = PHPExcel_IOFactory::identify($infile);
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($infile);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->save($outfile);
}
die();
?>

View File

@ -1,721 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(FWK_PATH.'mail/sendMail.php');
/*
00150 Taux de change DGI
00151 Taux de change BCE
00152 Taux de change Douanes
00153 Taux de change Banque Mondiale
00159 Taux de change S&D Taux de change du site http://fxtop.com
*/
/** Taux de change DGI (Source 150)
**/
// Données relatives aux taux (Fichier txt - 272,0 Ko)
$urlListeTauxDGI='http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/tauxtxt';
// Données relatives aux monnaies (Fichier txt - 18,2 Ko)
$urlListeDevDGI='http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/monnaietxt';
// Données relatives aux pays (Fichier txt - 29,0 Ko)
//http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/paystxt
// Données relatives aux barèmes des frais de mission des personnels civils de l'État (Fichier txt - 64,5 Ko)
//http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/missiontxt
/** Taux de change BCE (Source 151)
**/
$urlListeTauxBCE='https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip';
// Histo http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip
/** Taux de change des Douanes (Source 152)
**/
$urlListeTauxDouanes='https://pro.douane.gouv.fr/download/downloadurl.asp?file=dropbo/drop.zip';
//$urlListeTauxDouanesIni='https://pro.douane.gouv.fr/debweb/cf.srv?etape=initTelechargementTauxTaux';
//$urlListeTauxDouanesBase='https://pro.douane.gouv.fr/debweb/';
/** Taux de change de la Banque Mondiale (Source 153)
**/
$urlListeTauxBqMonde='http://api.worldbank.org/v2/fr/indicator/pa.nus.fcrf?downloadformat=csv';
//http://fxtop.com/dev/submithisto.php?FORMAT=CSV&MA=0&YA=1&C1=EUR&C2=USD&A=1&DD1=01&MM1=01&YYYY1=2004&DD2=31&MM2=03&YYYY2=2014&LANG=fr
$modeDebug=$listeTaux=false;
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
Recupère l'historique des cours des devises par rapport à l'euro sur différents serveurs.
options :
-v Mode verbose
-l Liste les derniers taux
";/*
Sans aucun paramètre, récupère le dernier cours pour chaque devise par rapport à l'euro.
Sinon:
-d:JJ/MM/AAAA Date de début de période (*)
-f:JJ/MM/AAAA Date de fin de période (*)
-n:X Intervalle MIN en secondes entre les requêtes (défaut=$tmin)
-i:X \" MAX \" \" \" \" \" (défaut=$tmax)
-p Récupération de la dernière liste des pays (par défaut, une fois par mois, le 1er du mois)
-h Récupération de l'historique complet
-c=DEV Récupération limité à la devise passée en paramètre
* : par défaut, le programme récupère le dernier cour pour le jour précédent !
";*/
//$tabCurrency=array();
$argv=$_SERVER['argv'];
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v': $modeDebug=true; break;
case 'l': $listeTaux=true; break;
case '-': die($strInfoProg); break;
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
}
}/* else {
$tabCurrency[]=$argv[$i];
}*/
}
$iDb=new WDb('sdv1');
$iDb2=new WDb();
if ($listeTaux) {
$ret=$iDb2->select('tabDevises', 'devIso', "devNewIso='' ORDER BY devIso ASC", false, MYSQL_ASSOC);
$tabDevises=array();
foreach ($ret as $i=>$tmp) {
$tabDevises[$tmp['devIso']]=array();
}
$ret=$iDb->select('devise_cours', 'devise, source, `date`*1 AS dateJour, valeur, DATE(dateInsert) as jourInsert', '`date`>=20100101 GROUP BY devise, `date`, source', false, MYSQL_ASSOC);
foreach ($ret as $i=>$tmp) {
switch($tmp['source']*1) {
// Taux de change DGI
case 150: $tabDevises[$tmp['devise']][$tmp['dateJour']]['DGI']=$tmp['valeur']; break;
// Taux de change BCE
case 151: $tabDevises[$tmp['devise']][$tmp['dateJour']]['BCE']=$tmp['valeur']; break;
// Taux de change Douanes
case 152: $tabDevises[$tmp['devise']][$tmp['dateJour']]['DOU']=$tmp['valeur']; break;
// Taux de change BQM
case 153: $tabDevises[$tmp['devise']][$tmp['dateJour']]['BQM']=$tmp['valeur']; break;
default; continue; break;
}
}
//print_r($tabDevises);
$dateDeb='20040101';
$dateDeb='20100101';
$dateFin=date('Ymd');
echo "Devise\tDateCour\tTxDGI\tTxBCE\tTxDouane\tTxBanqueMondiale".EOL;
foreach ($tabDevises as $devise=>$tabDates) {
$dateCour=$dateDeb;
$txDGI_pre=$txBCE_pre=$txDOU_pre=$txBQM_pre='-';
while ($dateCour<$dateFin) {
echo "$devise\t$dateCour\t";
if (isset($tabDevises[$devise][$dateCour]['DGI'])) echo $tabDevises[$devise][$dateCour]['DGI']; else echo $txDGI_pre;
echo "\t";
if (isset($tabDevises[$devise][$dateCour]['BCE'])) echo $tabDevises[$devise][$dateCour]['BCE']; else echo $txBCE_pre;
echo "\t";
if (isset($tabDevises[$devise][$dateCour]['DOU'])) echo $tabDevises[$devise][$dateCour]['DOU']; else echo $txDOU_pre;
echo "\t";
if (isset($tabDevises[$devise][$dateCour]['BQM'])) echo $tabDevises[$devise][$dateCour]['BQM']; else echo $txBQM_pre;
echo EOL;
if (isset($tabDevises[$devise][$dateCour]['DGI'])) $txDGI_pre=$tabDevises[$devise][$dateCour]['DGI'];
if (isset($tabDevises[$devise][$dateCour]['BCE'])) $txBCE_pre=$tabDevises[$devise][$dateCour]['BCE'];
if (isset($tabDevises[$devise][$dateCour]['DOU'])) $txDOU_pre=$tabDevises[$devise][$dateCour]['DOU'];
if (isset($tabDevises[$devise][$dateCour]['BQM'])) $txBQM_pre=$tabDevises[$devise][$dateCour]['BQM'];
$dateCour=getNextDate($dateCour,1);
}
}
die();
}
$strMailInfo='Résultat des téléchargements et de la consolidation des différents taux de change en date du '.date('d/m/Y').' :'.EOL;
$nbInsertDGI=$nbInsertBCE=$nbInsertDouanes=$nbInsertBqMonde=0;
$nbUpdateDGI=$nbUpdateBCE=$nbUpdateDouanes=$nbUpdateBqMonde=0;
$dateDevDGI =$dateDevBCE =$dateDevDouanes =$dateDevBqMonde =0;
/** Chargement des Taux Historiques de la DGI
**/
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la DGI...'. EOL);
$page=getUrl($urlListeTauxDGI, '', '', '', false);
if ($page['code']==200) {
if ($modeDebug) echo (date('Y/m/d - H:i:s') .' - Lecture des devises de la DGI...'. EOL);
$tabTmp=explode(EOL, utf8_decode($page['body']));
foreach($tabTmp as $iL=>$tL) {
$tC=explode("\t", $tL);
if (count($tC)<3) break;
// print_r($tC);
$devIso=substr($tC[0],-3);
$dateDev=WDate::DateT('d/m/Y','Ymd',$tC[1]);
$taux=1.0*(substr($tC[2],0,3).'.'.substr($tC[2],3,10));
//echo "$iL:$devIso".EOL;
if ($dateDev>$dateDevDGI) $dateDevDGI=$dateDev;
$tabInsert=array( 'devise'=>$devIso,
'source'=>150,
'date' =>$dateDev,
'valeur'=>$taux,
);
//print_r($tabInsert);die();
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
$nbInsertDGI++;
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=150 AND `date`='$dateDev'", false))
$nbUpdateDGI++;
//die(print_r($tabInsert, 1));
}
$dateDevDGI=WDate::DateT('Ymd','d/m/Y',$dateDevDGI);
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la DGI : $nbInsertDGI taux ajoutés et $nbUpdateDGI validations.". EOL);
$strMailInfo.=" - ajout de $nbInsertDGI taux pour les devises DGI ($nbUpdateDGI taux déjà en base, derniers taux du $dateDevDGI),".EOL;
} else
$strMailInfo.=" - ERREUR lors de la récupération du flux DGI !".EOL;
/** Chargement des Taux Historiques de la BCE
**/
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la BCE...'. EOL);
$page=getUrl($urlListeTauxBCE, '', '', '', false);
if ($page['code']==200) {
if (file_put_contents('/tmp/urlListeTauxBCE.zip',$page['body'])) {
$zip = new ZipArchive();
$zip->open('/tmp/urlListeTauxBCE.zip');
//echo "Nombre de fichiers : " . $zip->numFiles . "\n";
for ($i=0; $i<$zip->numFiles;$i++) {
//echo "index : $i\n";
$filename = $zip->getNameIndex($i);
//print_r($zip->statIndex($i));
if ($zip->extractTo('/tmp/', $filename)) {
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture des devises de la BCE (Extraction réussie de $filename)...".EOL;
$tabTmp=file("/tmp/$filename");
foreach($tabTmp as $iL=>$tL) {
$tC=explode(',', $tL);
if ($iL==0) {//print_r($tC);
// Gestion de l'entête (Noms des Devises)
$tabNomDev=array();
foreach($tC as $iC=>$iDev) {
if ($iC==0) continue;
if (trim($iDev)<>'') $tabNomDev[$iC]=trim($iDev);
}
} else {
foreach($tC as $iC=>$iDev) {
if ($iC==0) {
$dateDev=$iDev;
continue;
}
if (isset($tabNomDev[$iC])) {
if ($iDev<>0) $taux=1/$iDev;
else $taux=null;
if (str_replace('-','',$dateDev)>$dateDevBCE) $dateDevBCE=str_replace('-','',$dateDev);
$tabInsert=array( 'devise'=>$tabNomDev[$iC],
'source'=>151,
'date' =>$dateDev,
'valeur'=>$taux,
);
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
$nbInsertBCE++;
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=151 AND `date`='$dateDev'", false))
$nbUpdateBCE++;
}
}
}
}
}
}
}
$dateDevBCE=WDate::DateT('Ymd','d/m/Y',$dateDevBCE);
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la BCE : $nbInsertBCE taux ajoutés et $nbUpdateBCE validations.". EOL);
$strMailInfo.=" - ajout de $nbInsertBCE taux pour les devises BCE ($nbUpdateBCE taux déjà en base, derniers taux du $dateDevBCE),".EOL;
} else
$strMailInfo.=" - ERREUR lors de la récupération du flux BCE !".EOL;
/** Chargement des Taux Historiques de la Douane
**/
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la Douane...'. EOL);
$page=getUrl($urlListeTauxDouanes, '', '', '', false);
if ($page['code']==200) {
if (file_put_contents('/tmp/urlListeTauxDouanes.zip',$page['body'])) {
$zip = new ZipArchive();
$zip->open('/tmp/urlListeTauxDouanes.zip');
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la Douane : ".$zip->numFiles." fichiers à traiter.".EOL;
for ($i=0; $i<$zip->numFiles;$i++) {
//echo "index : $i\n";
$filename = $zip->getNameIndex($i);
//print_r($zip->statIndex($i));
if ($zip->extractTo('/tmp/', $filename)) {
// if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la Douane : Extraction réussie de $filename".EOL;
if ($filename=='DEVISE.xml') {
$strXml=file_get_contents("/tmp/$filename");
if (preg_match_all('/<ligne><CHAMP1>(.*)<\/CHAMP1><CHAMP2>(.*)<\/CHAMP2><CHAMP3>(.*)<\/CHAMP3><CHAMP4>(.*)<\/CHAMP4><CHAMP5>(.*)<\/CHAMP5><\/ligne>/Uis',$strXml, $matches)) {
foreach ($matches[1] as $iX=>$iDevise) {
$devIso=$matches[2][$iX];
$libDevise=utf8_decode($matches[3][$iX]);
$tabUpdate=array( 'devIdDouane' => $iDevise,
'devLibDouane' => $libDevise,
'devDateDebDouane' => @WDate::DateT('d/m/Y','Y-m-d',$matches[4][$iX]),
'devDateFinDouane' => @WDate::DateT('d/m/Y','Y-m-d',$matches[5][$iX]));
$ret=$iDb2->select('tabDevises', 'count(*) as nb', "devIso='$devIso'", false);
if (@$ret[0]['nb']*1==0) {
$iDb2->insert('tabDevises', array_merge($tabUpdate, array('devIso'=>$devIso, 'dateInsert'=>date('YmdHis'))), false);
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la Douane : Ajout d'une devise ($devIso - $libDevise)".EOL;
$strMailInfo.=" - INFORMATION lors de la mise à jour des devises de la Douane, ajout d'une devise ($devIso - $libDevise),".EOL;
}
else
$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso'", false);
if (preg_match('/\s\((.*)\)/Ui', $libDevise, $matches2)) {
$tabUpdate=array( 'division' => $matches2[1]);
if (!$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso' AND division IS NULL", false))
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
}
}
}
} elseif($filename=='COURSDEVISE.xml') {
$strXml=file_get_contents("/tmp/$filename");
if (preg_match_all('/<ligne><CHAMP1>(.*)<\/CHAMP1><CHAMP2>(.*)<\/CHAMP2><CHAMP3>(.*)<\/CHAMP3><CHAMP4>(.*)<\/CHAMP4><\/ligne>/Uis',$strXml, $matches)) {
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture des devises de la Douane (Extraction réussie de $filename)...".EOL;
$ret=$iDb2->select('tabDevises', 'devIdDouane, devIso', 'devIdDouane IS NOT NULL', false);
$tabDevDouanes=array();
foreach ($ret as $tmpRet)
$tabDevDouanes[$tmpRet['devIdDouane']]=$tmpRet['devIso'];
foreach ($matches[1] as $iX=>$iDevise) {
$devIso=$tabDevDouanes[$iDevise];
$dateDev=@WDate::DateT('d/m/Y','Ymd',$matches[3][$iX]);
if ($matches[2][$iX]*1==0) continue;
if ($dateDev>$dateDevDouanes) $dateDevDouanes=$dateDev;
$taux=1/$matches[2][$iX];
$tabInsert=array( 'devise'=>$devIso,
'source'=>152,
'date' =>$dateDev,
'valeur'=>$taux,
);
//print_r($tabInsert);die();
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
$nbInsertDouanes++;
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=152 AND `date`='$dateDev'", false))
$nbUpdateDouanes++;
}
$dateDevDouanes=WDate::DateT('Ymd','d/m/Y',$dateDevDouanes);
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la Douane : $nbInsertDouanes taux et $nbUpdateDouanes validations.". EOL);
$strMailInfo.=" - ajout de $nbInsertDouanes taux pour les devises de la Douane ($nbUpdateDouanes taux déjà en base, derniers taux du $dateDevDouanes),".EOL;
} else
$strMailInfo.=" - ERREUR lors de la récupération du flux Douanes !".EOL;
}
}
}
}
} else
$strMailInfo.=" - ERREUR lors de la récupération du flux Douanes !".EOL;
/** Taux de change de la Banque Mondiale (Source 153)
**/
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la Banque Mondiale...'. EOL);
$page=getUrl($urlListeTauxBqMonde, '', '', '', false);
if ($page['code']==200) {
if (file_put_contents('/tmp/urlListeTauxBqMonde.zip',$page['body'])) {
$zip = new ZipArchive();
$zip->open('/tmp/urlListeTauxBqMonde.zip');
//echo "Nombre de fichiers : " . $zip->numFiles . "\n";
for ($i=0; $i<$zip->numFiles;$i++) {
//echo "index : $i\n";
$filename = $zip->getNameIndex($i);
//print_r($zip->statIndex($i));
if ($zip->extractTo('/tmp/', $filename)) {
//echo "Extraction réussie de $filename".EOL;
if ($filename=='pa.nus.fcrf_Indicator_fr_csv_v2.csv') {
// Chargement des liens Pays ==> Devise
$ret=$iDb2->select('tabPays', 'codPays3, devise', "codPays3 IS NOT NULL AND devise<>''", false);
$tabPaysDev=array();
foreach ($ret as $tmpRet)
$tabPaysDev[$tmpRet['codPays3']]=$tmpRet['devise'];
//print_r($tabPaysDev);die();
// Lecture des Tx Annuels de la Banque Mondiale
// echo "Extraction réussie de $filename".EOL;
// if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la : Chargemenet des taux...".EOL;
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture des devises de la Banque Mondiale (Extraction réussie de $filename)...".EOL;
$tabTmp=file("/tmp/$filename");
$iL2=0;
$tabAnnees=$tabPays=$txUsdEur=array();
foreach($tabTmp as $iL=>$tL) {
$tC=explode('","', '",'.utf8_decode(trim($tL)).'"');
if (count($tC)<4) continue;
foreach($tC as $iC=>$tC) {
if ($iC==2 && $tC<>'Country Code') $pays=$tC;
elseif ($iC>4) {
if ($iL2==0) {
if ($tC<>'') $tabAnnees[$iC]=$tC;
}
elseif (isset($tabAnnees[$iC]) && isset($tabPaysDev[$pays]))
$tabPays[$tabPaysDev[$pays]][$tabAnnees[$iC]]=$tC;
elseif ($pays=='EMU')
@$txUsdEur[$tabAnnees[$iC]]=$tC;
}
}
$iL2++;
}
//print_r($txUsdEur);die();
// Conversion USD / EUR des devises
foreach ($tabPays as $devIso=>$tabAnnees) {
foreach ($tabAnnees as $annee=>$tauxUSD) {
if ($tauxUSD=='' || $txUsdEur[$annee]*1==0) continue;
// echo 'Tx USD.EUR='.$txUsdEur[$annee].EOL;
//if ($txUsdEur[$annee]=='')
//if ($devIso<>'USD') // ?
$taux=1/($tauxUSD/$txUsdEur[$annee]);
$dateDev=$annee.'1231';
if ($dateDev>$dateDevBqMonde) $dateDevBqMonde=$dateDev;
$tabInsert=array( 'devise'=>$devIso,
'source'=>153,
'date' =>$dateDev,
'valeur'=>$taux,
);
//print_r($tabInsert);//die();
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
$nbInsertBqMonde++;
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=153 AND `date`='$dateDev'", false))
$nbUpdateBqMonde++;
}
}
}
}
}
}
$dateDevBqMonde=WDate::DateT('Ymd','d/m/Y',$dateDevBqMonde);
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la Banque Mondiale : $nbInsertBqMonde taux et $nbUpdateBqMonde validations.". EOL);
$strMailInfo.=" - ajout de $nbInsertBqMonde taux pour les devises Banque Mondiale ($nbUpdateBqMonde taux déjà en base, derniers taux du $dateDevBqMonde),".EOL;
} else
$strMailInfo.=" - ERREUR lors de la récupération du flux Banque Mondiale !".EOL;
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'Chargement des devises', $strMailInfo);
die();
$page=getUrl($urlListeDevDGI, '', '', '', false);
if ($page['code']==200) {
$tabTmp=explode(EOL, utf8_decode($page['body']));
foreach($tabTmp as $iL=>$tL) {
$tC=explode("\t", $tL);
if (count($tC)<6) break;
print_r($tC);
$devIso=substr($tC[0],-3);
echo "$iL:$devIso".EOL;
$tabUpdate=array( 'devNomDGI' => $tC[1],
'devRemDGI' => $tC[3].$tC[4],
'devPrincipale' => $tC[5]);
if (!$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso'", true)) {
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
}
}
/* if (file_put_contents('/tmp/urlListeDevDGI.txt',$page['body'])) {
$zip = new ZipArchive();
$zip->open('/tmp/urlListeDevDGI.zip');
echo "Nombre de fichiers : " . $zip->numFiles . "\n";
for ($i=0; $i<$zip->numFiles;$i++) {
echo "index : $i\n";
$filename = $zip->getNameIndex($i);
//print_r($zip->statIndex($i));
if ($zip->extractTo('/tmp/', $filename)) {
echo "Extraction réussie de $filename".EOL;
$tabTmp=file("/tmp/$filename");
foreach($tabTmp as $iL=>$tL) {
$tC=explode("\t", $tL);
// print_r($tC);
$devIso=$tC[0];
echo "$iL:$devIso".EOL;
$tabUpdate=array( 'devNomDGI' => $tC[1],
'devDGI' => $tC[2],
'devRemDGI' => $tC[3].$tC[4],
'devActive' => $tC[5]);
if (!$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso'", true)) {
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
}
}
}
}
}*/
}
die();
print_r($page);
die();
$body=$page['body'];
$repImgDrapeaux='/home/data/logos/drapeaux/';
$tabJour=array(0=>'Dim', 1=>'Lun', 2=>'Mar', 3=>'Mer', 4=>'Jeu', 5=>'Ven', 6=>'Sam');
function getPrevDate($dateCour, $nbJours=1) {
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)-$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
return $nextDate;
}
$tmin=10;
$tmax=60;
set_time_limit(0);
$pays=$history=false;
$dateDeb=getPrevDate(date('Ymd'), rand(2,10));
$dateF=getPrevDate(date('Ymd'));
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
Recupère les cours des devises par rapport à l'euro.
Sans aucun paramètre, récupère le dernier cours pour chaque devise par rapport à l'euro.
Sinon:
-d:JJ/MM/AAAA Date de début de période (*)
-f:JJ/MM/AAAA Date de fin de période (*)
-n:X Intervalle MIN en secondes entre les requêtes (défaut=$tmin)
-i:X \" MAX \" \" \" \" \" (défaut=$tmax)
-p Récupération de la dernière liste des pays (par défaut, une fois par mois, le 1er du mois)
-h Récupération de l'historique complet
-c=DEV Récupération limité à la devise passée en paramètre
* : par défaut, le programme récupère le dernier cour pour le jour précédent !
";
$tabCurrency=array();
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $dernierCour=true;
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$dateDebut=substr($argv[$i],3,10);
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
break;
case 'n':
$tmin=trim(substr($argv[$i],3))*1;
if ($min<0) $tmin=0;
break;
case 'i':
$tmax=trim(substr($argv[$i],3))*1;
if ($tmax<5) $tmax=2;
break;
case 'p':
$pays=true;
break;
case 'h':
$history=true;
break;
case '-':
die($strInfoProg);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else {
$tabCurrency[]=$argv[$i];
}
}
}
/** Une fois par mois, récupéreation de la liste des pays et de leur devises
**/
if($pays || date('d')*1==1) {
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des pays et de leur devise !'. EOL);
$crea=$maj=0;
$url= 'http://fxtop.com/fr/showpays.php3';
$referer= '';
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
$body=$page['body'];
$referer='http://fxtop.com/fr/showpays.php3';
$strTmp=@getTextInHtml($body, '<TABLE border=1 cellpadding=0 cellSpacing=0 >', ' >', '</TABLE>');
$tabTmp=explode('<TR><TD>', $strTmp);
foreach ($tabTmp as $i=>$strTmp) {
$tabLigne=explode('</TD><TD>', $strTmp);
if ($i==0) {
if (trim($strTmp)<>'')
die(date('Y/m/d - H:i:s') .' - ERREUR : La première ligne du tableau n\'est pas vide : "'.$strTmp.'" trouvé !'. EOL);
continue;
} elseif ($i==1) {
// On vérifie que les noms de colonnes et les devises attendues sont les bonnes
if (trim(strip_tags($tabLigne[0]))<>'Pays')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Pays" attendue mais "'.strip_tags($tabLigne[0]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[1]))<>'Zone')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Zone" attendue mais "'.strip_tags($tabLigne[1]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[2]))<>'Devise')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Devise" attendue mais "'.strip_tags($tabLigne[2]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[3]))<>'Drapeau')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Drapeau" attendue mais "'.strip_tags($tabLigne[3]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[4]))<>'Code Nic')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Code Nic" attendue mais "'.strip_tags($tabLigne[4]).'" trouvé !'. EOL);
} else {
$libPays=trim(strip_tags($tabLigne[0]));
$libZone=trim(strip_tags($tabLigne[1]));
$devise =trim(strip_tags($tabLigne[2]));
$urlDrap=$tabLigne[3];
$strTmp=str_replace('<IMG SRC="../ico/', 'http://fxtop.com/ico/', $urlDrap);
$tabTmp2=explode('"', $strTmp);
$url=$tabTmp2[0];
$codPays=trim(strip_tags($tabLigne[4]));
$ficImgDrapeaux=basename($url);
if (!file_exists($repImgDrapeaux.$ficImgDrapeaux)) {
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
$body=$page['body'];
$fp=fopen($repImgDrapeaux.$ficImgDrapeaux, 'wb');
fwrite($fp, $page['body']);
fclose($fp);
$taille=filesize($repImgDrapeaux.$ficImgDrapeaux);
echo(date('Y/m/d - H:i:s') ." - Drapeaux $codPays : $ficImgDrapeaux ($libPays) créé ($taille octets).". EOL);
}
$tabUpdate=array( 'libPaysMajAuto'=>$libPays,
'zone'=>$libZone,
'drapeau'=>$ficImgDrapeaux,
'devise'=>$devise,
);
$tabInsert=array_merge($tabUpdate, array('codPays'=>$codPays, 'dateInsert'=>date('YmdHis')));
if (!$iDb2->insert('tabPays', $tabInsert)) {
if (!$iDb2->update('tabPays', $tabUpdate, "codPays='$codPays'", true)) {
if (mysql_errno()<>1062)
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
} else
$maj++;
} else {
echo (date('Y/m/d - H:i:s') ." - Création du pays $libPays ($codPays) en $libZone !". EOL);
$crea++;
}
}
}
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des pays et de leur devise : $crea création(s) / $maj MAJ.". EOL);
}
/** Récupération de la liste des devises
**/
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour de la liste des devise !'. EOL);
$crea=$maj=0;
$tabDevisesSite=array();
$url= 'http://fxtop.com/fr/historique-taux-change.php';
$referer= '';
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
$body=$page['body'];
$strTmp=@getTextInHtml($body, '<select name=C1 >', 'C1 >', '</select>');
$tabTmp=preg_split('/<option (selected | )value="/i', $strTmp);
foreach ($tabTmp as $i=>$strTmp) {
$tabLigne=explode('">', $strTmp);
if ($i==0) {
if (trim($strTmp)<>'')
die(date('Y/m/d - H:i:s') .' - ERREUR : La première ligne du tableau n\'est pas vide : "'.$strTmp.'" trouvé !'. EOL);
continue;
} else {
$devise =trim($tabLigne[0]);
$libDevPays=trim(strip_tags($tabLigne[1]));
if ($devise<>'' && $devise<>'EUR') $tabDevisesSite[]=$devise;
$tabUpdate=array( 'devIso'=>$devise,
'devNomPays'=>$libDevPays,
);
if (!$iDb->update('devise_liste', $tabUpdate, "devIso='$devise'", true)) {
if (!$iDb->insert('devise_liste', $tabUpdate)) {
if (mysql_errno()<>1062)
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
} else {
echo (date('Y/m/d - H:i:s') ." - Création de la devise $devise pour $libDevPays !". EOL);
$crea++;
}
} else $maj++;
}
}
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises : $crea création(s) / $maj MAJ.". EOL);
/** Récupération d'une devise ou de toutes les devises
**/
if ( !is_array($tabCurrency) || count($tabCurrency)==0 ) {
//$tabDevises=mysql_select('tabPays', 'DISTINCT(devise) as dev', "devise<>'EUR' AND devise<>''");
// AND devise NOT IN ('AED','AFA','XCD','ALL','AMD','ANG','AON')
$tabDevises=array();
shuffle($tabDevisesSite);
foreach ($tabDevisesSite as $i=>$deviseSite)
$tabDevises[]=array(0=>$deviseSite);
unset($tabDevisesSite);
} else {
foreach ($tabCurrency as $currency) {
if (in_array ($currency, $tabDevisesSite))
$tabDevises[]=array(0=>$currency);
else
die(date('Y/m/d - H:i:s') ." - ERREUR : Devise '$currency' non gérée par le site distant !". EOL);
}
}
/** Récupération de l'historique des cours ou du cours précédent
**/
if ($history) $dateDeb='19900101';
$DD1=WDate::dateT('Ymd','d', $dateDeb);
$MM1=WDate::dateT('Ymd','m', $dateDeb);
$YYYY1=WDate::dateT('Ymd','Y', $dateDeb);
$DD2=WDate::dateT('Ymd','d', $dateF);
$MM2=WDate::dateT('Ymd','m', $dateF);
$YYYY2=WDate::dateT('Ymd','Y', $dateF);
foreach ($tabDevises as $tabDevise) {
$devise=$tabDevise[0];
if ($dateDeb==$dateF)
echo (date('Y/m/d - H:i:s') ." - Récupération du cour du $devise par rapport à l'euro pour le $DD1/$MM1/$YYYY1...". EOL);
else
echo (date('Y/m/d - H:i:s') ." - Récupération du cour du $devise par rapport à l'euro pour la période du $DD1/$MM1/$YYYY1 au $DD2/$MM2/$YYYY2...". EOL);
$url= "http://fxtop.com/fr/historique-taux-change.php?A=1&B=1&P=&I=1&C1=$devise&C2=EUR&DD1=$DD1&MM1=$MM1&YYYY1=$YYYY1&DD2=$DD2&MM2=$MM2&YYYY2=$YYYY2&btnOK=Chercher";
$referer= 'http://fxtop.com/fr/historique-taux-change.php';
randsleep($tmin, $tmax);
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
$body=$page['body'];
$strTmp=@getTextInHtml($body, '<BR><TABLE border=1><TR><TD><STRONG>Date</STRONG></TD><TD><STRONG>', '<STRONG>', '</TABLE>');
$tabTmp=explode('</TD></TR><TR><TD>', $strTmp);
$nbCours=0;
foreach ($tabTmp as $i=>$strTmp) {
$tabLigne=explode('</TD><TD>', $strTmp);
if ($i==0) {
// On vérifie que les noms de colonnes et les devises attendues sont les bonnes
if (strip_tags($tabLigne[0])<>'Date')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Date" attendue mais "'.strip_tags($tabLigne[0]).'" trouvé !'. EOL);
if (strip_tags($tabLigne[1])<>$devise.'/EUR')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "'.$devise.'/EUR" attendue mais "'.strip_tags($tabLigne[1]).'" trouvé !'. EOL);
} else {
$date=$tabLigne[0];
if ($i==1) $dateMax=$date;
$conv=$tabLigne[1];
//echo "$devise;$date;$conv\n";
$nbCours++;
$tabInsert=array( 'devise'=>$devise,
'date'=>$date,
'valeur'=>$conv,
);
if (!$iDb->insert('devise_cours', $tabInsert))
if (mysql_errno()<>1062)
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
}
}
$dateMin=$date;
if ($nbCours==1)
echo (date('Y/m/d - H:i:s') ." - Devise $devise : 1 valeur ($conv) du $dateMin au $dateMax...". EOL);
else
echo (date('Y/m/d - H:i:s') ." - Devise $devise : $nbCours valeurs du $dateMin au $dateMax...". EOL);
}
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
function getNextDate($dateCour, $nbJours=7) {
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
return $nextDate;
}
?>

View File

@ -1,263 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'common/dbf_class.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(FWK_PATH.'mail/sendMail.php');
$urlBase='http://www.collectivites-locales.gouv.fr/files/files/gestion_locale_dgfip/national/FANTOIR.zip';
$db_name='insee';
$j=0;
$modeDebug=$finFichier=false;
$getFantoir=true;
$tabFichiers=array();
$separator=',';
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [FICHIERS]
Récupération du RECME (Répertoire des Entreprises Contrôlées Majoritairement par l'État).
Options :
-d Récupération du dernier FANTOIR sur le site http://www.collectivites-locales.gouv.fr/
-t Récupération de tous les derniers RECME sur le site de l'INSEE
-v Mode bavard
";
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $getFantoir=false; break;
// case 't': $nbRecme=999; break;
case 'v': $modeDebug=true; break;
default: die('Option '. $argv[$i] . " inconnue !".EOL);
}
} else {
$tabFichiers[$j]=$argv[$i];
$j++;
}
}
if ($getFantoir) {
$filename=REP_TEMP.'FANTOIR.zip';
if (file_exists($filename) && date('Ymd',filemtime($filename))==date('Ymd'))
echo date ('Y/m/d - H:i:s')." - Le dernier fichier FANTOIR a déjà été récupéré.".EOL;
else {
echo date ('Y/m/d - H:i:s')." - Recherche du dernier FANTOIR...".EOL;
$tDeb=microtime(1);
$url=$urlBase;
$page=getUrl($url, '', '', '', false);
$referer=$url;
$body=$page['body'];
$duree=round(microtime(1)-$tDeb,1);
$tailleMo=round(strlen($body)/(1024*1024),1);
echo date ('Y/m/d - H:i:s')." - Récupération du dernier FANTOIR en $duree s ($tailleMo Mo).".EOL;
file_put_contents($filename, $body);
}
$filename2=REP_TEMP.'FANTOIR.txt';
if (file_exists($filename2) && date('Ymd',filemtime($filename2))==date('Ymd') && filesize($filename2)>filesize($filename)*7) {
echo date ('Y/m/d - H:i:s')." - Le dernier fichier FANTOIR a déjà été décompressé avec succès.".EOL;
$tabFichiers[]=$filename2;
} else {
echo date ('Y/m/d - H:i:s')." - Décompression du fichier à traiter : ". basename($filename) .EOL;
$zip = zip_open($filename);
if (is_resource($zip)) {
while ($zip_entry = zip_read($zip)) {
$tDeb = microtime(true);
$filenameGz=zip_entry_name($zip_entry);
$fp = fopen(REP_TEMP.$filenameGz, "w");
if (zip_entry_open($zip, $zip_entry, "r")) {
$tailleGz=zip_entry_compressedsize($zip_entry);
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
fwrite($fp,"$buf");
zip_entry_close($zip_entry);
fclose($fp);
} else
die(date ('Y/m/d - H:i:s') . " - ERREUR 1 : Décompression impossible de $filenameGz !".EOL);
$tailleGz=round($tailleGz/1024,1);
$tailleUnz=round(filesize(REP_TEMP.$filenameGz)/1024,1);
$tFin = microtime(true);
$tDur = round($tFin-$tDeb,1);
echo date ('Y/m/d - H:i:s')." - Fichier $filenameGz décompressé : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressés)".EOL;
$fichierZip=$filename;
$tabFichiers[]=REP_TEMP.$filenameGz;
}
zip_close($zip);
} else
die(date ('Y/m/d - H:i:s') . " - ERREUR 2 : Décompression impossible de ". basename($filename).' !'.EOL);
}
}
$iDb=new WDB($db_name);
for ($nbFichiers=0; isset($tabFichiers[$nbFichiers]); $nbFichiers++) {
$finFichier=false;
$nomFichier=$tabFichiers[$nbFichiers];
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $tabFichiers[$nbFichiers] ."...".EOL;
$fp=fopen($nomFichier, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$nbFichiers à traiter '".$nomFichier."'".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
die();
}
$dateInsert=date('YmdHis');
$nbLignes=0; // Nombre de ligne du fichier
while (!feof($fp))
{
$nbLignes++;
$a = trim(fgets($fp, 256));
}
echo date ('Y/m/d - H:i:s')." - Fichier n°$nbFichiers, $nomFichier : $nbLignes lignes à traiter...".EOL;
$nbLignes=$nbErreurs=0;
rewind($fp);
$tabDep=$tabCom=array();
while (!feof($fp))
{
$nbLignes++;
$a = trim(fgets($fp, 256));
$codDepartement = trim(substr($a, 0, 2 )); // Code Département
$codDirection = trim(substr($a, 2, 1 )); // Code Direction dans le département
$codCommune = trim(substr($a, 3, 3 )); // Code Commune
$idVoieCommune = trim(substr($a, 6, 4 )); // Identifiant de la voie dans la commune
$cleRivoli = trim(substr($a, 10, 1 )); // Clé Rivoli (Numérique pour les voies, Axxx=Ens. immobiliers, Bxxx à Wxxx pour les lieux-dits, Xxxx=Pseudo Voies, Yxxx ou Zxxx=Voies provisoires à annuler)
$libDirOuCommune= trim(substr($a, 11, 30 )); // Libellé de la Direction/Commune
$voieNature = substr($a, 11, 4 ); // Code nature de la voie
$voieLib = substr($a, 15, 26 ); // Libellé de la voie
$typeCommune = substr($a, 42, 1 ); // Type Commune (N=Rurale, R=recensée)
$carRUR = substr($a, 45, 1 ); // Caractère RUR (3=pseudo-recensée)
$voieCar = substr($a, 48, 1 ); // Caractère de la voie (0=publique, 1=privée)
$popCar = substr($a, 49, 1 ); // Caractère de population (blanc si < 3000hab, * sinon)
$popReel = substr($a, 52, 7 ); // Population Réelle
$popApar = substr($a, 59, 7 ); // Population à part
$popFic = substr($a, 66, 7 ); // Population fictive
$annulationCar = substr($a, 73, 1 ); // Caractère d'annulation (Q=annulation avec transfert)
$annulationDate = substr($a, 74, 7 )*1; // Date d'annulation
if ($annulationDate==0) $annulationDateYmd=0;
else $annulationDateYmd = date('Ymd', mktime(0, 0, 0, 1, substr($a,77,3), substr($a,74,4)));// Date d'annulation
$creationArticle= substr($a, 81, 7 )*1; // Date de création de l'article
if ($creationArticle==0) $creationArticleYmd=0;
else $creationArticleYmd= date('Ymd', mktime(0, 0, 0, 1, substr($a,85,3), substr($a,81,4))); // Date de création de l'article
$codeMajic = substr($a, 103, 5 ); // Code identifiant MAJIC de la voie = FANTOIR = RIVOLI
$typeVoie = substr($a, 108, 1 ); // Type de voie (1=voie, 2=ensemble immobilier, 3=lieu-dit, 4=pseudo-voie, 5=voie provisoire)
$lieuDitCar = substr($a, 109, 1 ); // Caractère du lieu-dit (1=lieu-dit bâti, 0 sinon)
$derMotLibVoie = substr($a, 112, 8 ); // Dernier mot entièrement alphabétique du libellé de la voie
if ($codDepartement=='EN') {
// Entête du fichier
// ENEVERS 2014050120141220000000
$origineFichier=trim(substr($a, 1, 24 )); // L'origine du fichier : caractère et libellé du CSI (Nevers).
$dateTopad =trim(substr($a, 25, 8 )); // Références du fichier origine : (n° de version du fichier TOPO de la base TOPAD).
$dateFantoir =trim(substr($a, 33, 7 ))*1; // La date de production du fichier.
if ($dateFantoir>0)
$dateFantoirYmd=date('Ymd', mktime(0, 0, 0, 1, substr($dateFantoir,4,3), substr($dateFantoir,0,4)));
/* b. ARTICLE FIN (DERNIER ENREGISTREMENT)
IDENTIFIANT : 1,10 A 9999999999
IL ENREGISTRE LE NOMBRE D'ARTICLES ECRITS SUR LE FICHIER.*/
continue;
} elseif($codDepartement=='99') {
// Fin du fichier
//9999999999 7586976109370537549812000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
$finFichier=true;
continue;
}
elseif ($codDepartement=='') break;
elseif ($codCommune=='') {
$tabInsert=array( 'numDep' => $codDepartement,
'numDir' => $codDirection,
'libDep' => $libDirOuCommune,
'dateFantoirYmd'=> $dateFantoirYmd,
'dateTopad' => $dateTopad,
'origineFantoir'=> $origineFichier,
'dateInsert' => $dateInsert,
);
$db_table='fantoirDep';
echo "Ligne $nbLignes, DEP='$codDepartement' Dir='$codDirection:$cleRivoli:$libDirOuCommune'".EOL;
} elseif ($idVoieCommune=='') {
$tabInsert=array( 'numDep' => $codDepartement,
'numDir' => $codDirection,
'codCom' => $codCommune,
'codComInsee' => $codDepartement.''.$codCommune,
'libCom' => $libDirOuCommune,
'typeCom' => $typeCommune,
'carRUR' => $carRUR,
'popReel' => $popReel,
'popApar' => $popApar,
'popFic' => $popFic,
'popCar' => $popCar,
'annulCar' => $annulationCar,
'annulDat' => $annulationDate,
'annulDatYmd' => $annulationDateYmd,
'dateCre' => $creationArticle,
'dateCreYmd' => $creationArticleYmd,
'dateFantoirYmd'=> $dateFantoirYmd,
'dateInsert' => $dateInsert,
);
$db_table='fantoirCom';
echo "Ligne $nbLignes, Commune='$codDepartement $codCommune' : '$libDirOuCommune' ($typeCommune,$carRUR) Population=$popReel/$popApar/$popFic($popCar)".EOL;
} else {
$tabInsert=array( 'numDep' => $codDepartement,
'numDir' => $codDirection,
'codCom' => $codCommune,
'codComInsee' => $codDepartement.''.$codCommune,
'idVoieCom' => $idVoieCommune,
'cleRivoli' => $cleRivoli,
'voieNature' => $voieNature,
'voieLib' => $voieLib,
'voieCar' => $voieCar,
'typeCom' => $typeCommune,
'carRUR' => $carRUR,
'popReel' => $popReel,
'popApar' => $popApar,
'popFic' => $popFic,
'popCar' => $popCar,
'annulCar' => $annulationCar,
'annulDat' => $annulationDate,
'annulDatYmd' => $annulationDateYmd,
'dateCre' => $creationArticle,
'dateCreYmd' => $creationArticleYmd,
'codeMajic' => $codeMajic,
'typeVoie' => $typeVoie,
'lieuDitCar' => $lieuDitCar,
'derMotLibVoie' => $derMotLibVoie,
'dateFantoirYmd'=> $dateFantoirYmd,
'dateInsert' => $dateInsert,
);
$db_table='fantoirVoi';
//echo "Ligne $nbLignes, Commune='$codDepartement $codCommune' : '$libDirOuCommune' ($typeCommune,$carRUR) Population=$popReel/$popApar/$popFic($popCar)".EOL;
}
$ret=$iDb->insert($db_table, $tabInsert);
if ($ret!=1) {
unset($tabInsert['dateInsert']);
$strUpdate="numDep='$codDepartement' AND numDir=$codDirection";
switch($db_table) {
case 'fantoirCom': $strUpdate.=" AND codCom='$codCommune'"; break;
case 'fantoirVoi': $strUpdate.=" AND codCom='$codCommune' AND idVoieCom='$idVoieCommune'"; break;
}
$ret=$iDb->update($db_table, $tabInsert, $strUpdate);
if ($ret!=1) {
echo date ('Y/m/d - H:i:s') . " - ERREUR n°".mysql_errno()." à l'insertion de la ligne n°$nbLignes dans la table '$db_table' :".EOL;
print_r($tabInsert);
die(mysql_error());
}
}
}
fclose ($fp);
}
if ($finFichier)
die(date ('Y/m/d - H:i:s')." - Fin du traitement avec succès.".EOL);
echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL;
?>

View File

@ -1,287 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
function exporte($txt, $lon=false, $sep="\t") {
if ($lon===false) $lon=strlen($txt);
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(FWK_PATH.'mail/sendMail.php');
$xml = new SimpleXMLElement('/mnt/data/sources/inpi/marques/stock-ST66/ST66_000022.xml', Null, True);
$requestProducerDateTime=(string)$xml->TransactionHeader->SenderDetails->RequestProducerDateTime[0];
$transactionCode=(string)$xml->TradeMarkTransactionBody->TransactionContentDetails->TransactionCode[0];
//die($requestProducerDateTime.EOL.$transactionCode.EOL);
//var_dump($xml);
//print_r($xml);
//$nodes = $xml->xpath('//');
//$t=$xml->Transaction->TradeMarkTransactionBody->->TradeMark[0];// as $tradeMark) {
// print_r($t);
$i=0;
while(isset($xml->TradeMarkTransactionBody->TransactionContentDetails->TransactionData->TradeMarkDetails->TradeMark[$i])) {
$tradeMark=$xml->TradeMarkTransactionBody->TransactionContentDetails->TransactionData->TradeMarkDetails->TradeMark[$i];
$tabInsert=array();
/** Gestion de la marque **/
$tabInsert['operationCode']=(string)$tradeMark['operationCode'];
$tabInsert['RegistrationOfficeCode']=(string)$tradeMark->RegistrationOfficeCode;
$tabInsert['ApplicationNumber']=(string)$tradeMark->ApplicationNumber;
$tabInsert['ApplicationDate']=(string)$tradeMark->ApplicationDate;
$tabInsert['FilingPlace']=(string)$tradeMark->FilingPlace;
$tabInsert['ApplicationLanguageCode']=(string)$tradeMark->ApplicationLanguageCode;
$tabInsert['ExpiryDate']=(string)$tradeMark->ExpiryDate;
$tabInsert['MarkCurrentStatusCode']=(string)$tradeMark->MarkCurrentStatusCode;
$tabInsert['KindMark']=(string)$tradeMark->KindMark;
if ($tabInsert['KindMark']<>'Collective') $tabInsert['KindMark']='Individuelle';
$tabInsert['MarkFeature']=(string)$tradeMark->MarkFeature;
if ($tabInsert['MarkFeature']=='') $tabInsert['MarkFeature']='Word';
$tabInsert['Comment']=(string)$tradeMark->Comment;
$tabInsert['MarkVerbalElementText']=(string)$tradeMark->WordMarkSpecification->MarkVerbalElementText;
$tabInsert['MarkTranslation']=(string)$tradeMark->WordMarkSpecification->MarkTranslation;
$tabInsert['MarkTransliteration']=(string)$tradeMark->WordMarkSpecification->MarkTransliteration;
$tabInsert['MarkDescriptionDetails']=(string)$tradeMark->MarkDescriptionDetails->MarkDescription;
$tabInsert['PreviousRegistrationDetails']=(string)$tradeMark->PreviousRegistrationDetails->PreviousRegistration->PreviousRegistrationNumber;
/** Gestion des Classes de produits **/
$j=0;
while(isset($tradeMark->GoodsServicesDetails->GoodsServices[$j])) {
$goodsServices=$tradeMark->GoodsServicesDetails->GoodsServices[$j];
if ($j==0) $tabInsert['ClassificationKindCode']=(string)$goodsServices->ClassificationKindCode;
$k=0;
while (isset($goodsServices->ClassDescriptionDetails->ClassDescription[$k])) {
$tabClass=array();
$classDescription=$goodsServices->ClassDescriptionDetails->ClassDescription[$k];
$tabClass['ClassNumber']=(string)$classDescription->ClassNumber;
$tabClass['GoodsServicesDescription']=(string)$classDescription->GoodsServicesDescription;
$tabInsert['GoodsServices'][]=$tabClass;
$k++;
}
$j++;
}
/** Gestion des Images **/
$tabInsert['MarkImageFileName']=(string)$tradeMark->MarkImageDetails->MarkImage->MarkImageFilename;
$tabInsert['MarkImageFileFormat']=(string)$tradeMark->MarkImageDetails->MarkImage->MarkImageFileFormat;
$tabInsert['MarkImageCategory']=(string)$tradeMark->MarkImageDetails->MarkImage->MarkImageCategory;
if ($tabInsert['MarkImageFileName']<>'') $tabInsert['MarkFeature']='Combined';
/** Gestion des Déposants "Applicant" **/
$j=0;
while(isset($tradeMark->ApplicantDetails->Applicant[$j])) {
$applicant=$tradeMark->ApplicantDetails->Applicant[$j];
$tabApplicant=array();
$tabApplicant['ApplicantIdentifier']=(string)$applicant->ApplicantIdentifier;
if ($tabApplicant['ApplicantIdentifier']*1>1000) die();
$tabApplicant['ApplicantSequenceNumber']=(string)$applicant->ApplicantSequenceNumber;
$tabApplicant['ApplicantLastName']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Name->FormattedName->LastName;
$tabApplicant['ApplicantOrganizationName']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Name->FormattedName->OrganizationName;
$tabApplicant['AddressCountryCode']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Address->AddressCountryCode;
$tabApplicant['AddressBuilding']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Address->FormattedAddress->AddressBuilding;
$tabApplicant['AddressStreet']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Address->FormattedAddress->AddressStreet;
$tabApplicant['AddressCity']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Address->FormattedAddress->AddressCity;
$tabApplicant['AddressPostcode']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Address->FormattedAddress->AddressPostcode;
$tabApplicant['AddressState']=(string)$applicant->ApplicantAddressBook->FormattedNameAddress->Address->FormattedAddress->AddressState;
$tabInsert['Applicant'][]=$tabApplicant;
$j++;
}
echo $i.EOL;
if ($tabInsert['MarkDescriptionDetails']<>'' || $tabInsert['MarkImageFileName']<>'') {
print_r($tabInsert);
}
var_dump($tradeMark);
$i++;
}
//->TransactionContentDetails->TransactionData->TradeMarkDetails->TradeMark[0];// as $tradeMark) {
//}
//var_dump($tradeMarks);
/*
* SimpleXMLElement Object
(
[TransactionHeader] => SimpleXMLElement Object
(
[SenderDetails] => SimpleXMLElement Object
(
[RequestProducerDateTime] => 2014-04-02T17:23:40
)
)
[TradeMarkTransactionBody] => SimpleXMLElement Object
(
[TransactionContentDetails] => SimpleXMLElement Object
(
[TransactionCode] => Requete:SELECT MRQ_NO_INT,MRQ_TYPE,MRQ_STATUT,MRQ_DFV,CLV_CPM,MRQ_XML_FRM,MRQ_XML FROM MARK2 WHERE MRQ_TYPE='F' AND MRQ_STATUT
!= 'SM' AND MRQ_STATUT != 'SU' AND MRQ_TYPE='F' ORDER BY MRQ_ID
[TransactionData] => SimpleXMLElement Object
(
[TradeMarkDetails] => SimpleXMLElement Object
(
[TradeMark] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
[""]=>
object(SimpleXMLElement)#4 (1) {
["TransactionContentDetails"]=>
object(SimpleXMLElement)#6 (2) {
["TransactionCode"]=>
string(192) "Requete:SELECT MRQ_NO_INT,MRQ_TYPE,MRQ_STATUT,MRQ_DFV,CLV_CPM,MRQ_XML_FRM,MRQ_XML FROM MARK2 WHERE MRQ_TYPE='F' AND MRQ_STATUT != 'SM' AND MRQ_STATU
T != 'SU' AND MRQ_TYPE='F' ORDER BY MRQ_ID "
["TransactionData"]=>
object(SimpleXMLElement)#7 (1) {
["TradeMarkDetails"]=>
object(SimpleXMLElement)#8 (1) {
[""]=>
*/
echo count($nodes).' noeuds'.EOL;
foreach($nodes as $ua) {
echo $ua['operationCode'].EOL;
echo $ua->RegistrationOfficeCode . "\n";
echo $ua->ApplicationNumber. "\n";
echo $ua->ApplicationDate. "\n";
echo $ua->FilingPlace. "\n";
echo $ua->ApplicationLanguageCode. "\n";
echo $ua->MarkCurrentStatusCode. "\n";
echo $ua->WordMarkSpecification->MarkVerbalElementText. "\n";
echo $ua->MarkImageDetails->MarkImage->MarkImageFilename. "\n";
echo $ua->MarkImageDetails->MarkImage->MarkImageFileFormat. "\n";
echo $ua->GoodsServicesDetails->GoodsServices->ClassificationKindCode. "\n";
}
die();
$iInsee=new MInsee();
$iDbR=new WDb('historiques');
$iDbW=new WDb('villes');
$iAmabis=new MAmabis();
$k=0;
$tabAbbr=array('A','DU','D','DE','DES','L','LE','LES','LA','AU','AUX','UN','UNE','RUE','ST','STE','SUR','SOUS','MAIS','OU','ET','DONC','OR','NI','CAR');
//$ret=$iDbR->select('fichier_france_entiere_201409_D_1', 'SIREN, L1_NOMEN, NOMEN_LONG', "SIEGE=1 AND LENGTH(NOMEN_LONG)>38 /*AND SIREN<300000000*/", false, MYSQL_ASSOC, true);
$ret=$iDbR->select('insee.insee_even', 'insSIREN AS SIREN, insL1_NOMEN AS L1_NOMEN, insNOMEN_LONG AS NOMEN_LONG', "insSIEGE=1 AND LENGTH(insNOMEN_LONG)>38 AND idFlux>='2014-10-01'", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s') . " - Il y a $ret raisons sociales à tester...".EOL;
$tDeb=microtime(1);
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
$k++;
$siren=$ligne['SIREN'];
$nomLongs=$ligne['NOMEN_LONG'];
$nomCourt=$ligne['L1_NOMEN'];
// On ignore les RS juste tronquées
if (substr($nomLongs,0,38)==$nomCourt) continue;
//$nomCourt=preg_replace('/[^A-Z0-9%\'\"\-&\*\/\s]/','',trim(strtoupper($nomLong)));
$tabMotsCourt=split("[^[:alpha:]]+", $nomCourt);
$tabMotsCourt=array_diff($tabMotsCourt, $tabAbbr);
$tabMotsLongs=split("[^[:alpha:]]+", $nomLongs);
$tabMotsLongs=array_diff($tabMotsLongs, $tabAbbr);
echo "$k/$ret - $siren $nomLongs ==> $nomCourt".EOL;
//print_r($tabMotsLongs);
foreach($tabMotsCourt as $iC=>$motC) {
if (!isset($tabMotsCourt[$iC+1])) break; // Le dernier mot peut être tronqué alors on ignore !
$trouve=0;
$lenC=strlen($motC);
if ($lenC<3) continue;
echo "Mot Court : '$motC'";
$tabInserts=array();
foreach ($tabMotsLongs as $iL=>$motL) {
$lenL=strlen($motL);
if ($lenL<=3) continue;
if ($iL>=$iC && $motC<>$motL && $lenL>$lenC && (substr($motC,0,$lenC)==substr($motL,0,$lenC) || substr($motC,0,6)==substr($motL,0,6))) {
$trouve++;
echo "= Mot Long : '$motL'".EOL;
$tabInserts[]=array('abrCode'=>$motC,
'abrLib'=>$motL,
'abrType'=>'N',
'abrOfficiel'=>0,
'siren'=>$siren,
'nomLong'=>$nomLongs,
'nomCourt'=>$nomCourt,
'dateInsert'=>date('YmdHis'),
);
}
}
if ($trouve==0) echo EOL;
elseif ($trouve==1) {
foreach ($tabInserts as $tabInsert) {
if (!$iDbW->insert('tabAbreviations', $tabInsert, false)) {
$abrCode2=addslashes($motC);
$abrLib2 =addslashes($motL);
$ret2=$iDbW->select('tabAbreviations', 'nbOcc', "abrCode='$abrCode2' AND abrLib='$abrLib2'", false);
$tabInsert['nbOcc']=@$ret2[0]['nbOcc']*1+1;
unset($tabInsert['dateInsert']);
$iDbW->update('tabAbreviations', $tabInsert, "abrCode='$abrCode2' AND abrLib='$abrLib2'", false);
}
echo mysql_error();
}
}
}
continue;
$codeCommune=$ligne['ADR_DEP'].$ligne['ADR_COM'];
$adrTypVoie=$ligne['ADR_TYPVOIE'];
$adrLibVoie=$ligne['ADR_LIBVOIE'];
$codeVoieI=$ligne['CODEVOIE'];
// / 4271 1
$libCom=$ligne['ADR_LIBCOM'];
echo date ('Y/m/d - H:i:s') . " - $siren $nic\t$codeCommune\t$libCom\t$adrTypVoie\t$adrLibVoie\t$codeVoieI=";
$tRDeb=microtime(1);
$codeVoieC=$iInsee->getCodeVoieRivoli($codeCommune, $adrTypVoie, $adrLibVoie);
echo $codeVoieC." ?\t";
$tNDeb=microtime(1);
$dureeR+=$tNDeb-$tRDeb;
$tabAdrNorm=$iAmabis->normaliseAdresse($ligne['insL1_NOMEN'], $ligne['insL2_COMP'], $ligne['insL3_CADR'], $ligne['insL4_VOIE'], $ligne['insL5_DISP'], $ligne['insL6_POST'], $ligne['insL7_ETRG'], 38, false);
$dureeN+=microtime(1)-$tNDeb;
//print_r($tabAdrNorm);
echo @$tabAdrNorm['HexaViaMat'].EOL;
}
$tFin=microtime(1);
echo EOL."Durée Rivoli .......... =".round($dureeR,3).' secondes'.EOL;
echo EOL."Durée Normalisation ... =".round($dureeN,3).' secondes'.EOL;
echo EOL."Durée TOTALE .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
// print_r($iInsee->getIdentiteEntreprise(800046823,12));
die();
?>

View File

@ -1,348 +0,0 @@
#!/usr/bin/php -c/var/www/ws/batch/config/php_batch_sd.ini
<?php
$table='annonces';
function wsLog($service, $siret='', $ref='') {}
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(FWK_PATH.'mail/sendMail.php');
define('RNCS_IMR_FTP_HOST', '194.5.119.252');
define('RNCS_IMR_FTP_LOGIN', 'score');
define('RNCS_IMR_FTP_PASS', '1eUauTJZ');
define('RNCS_IMR_FTP_DIR', '/var/home_ftp/score/Send/');
define('RNCS_IMR_FTP_LOCALDIR', '/home/data/rncs/extelia/');
define('RNCS_IMR_BACKUP_DIR', '/home/data/rncs/imr/');
$strInfoScript='Usage : '.basename($argv[0]). " <option> [FICHIERS]
Chargement du/des informations complémentaires en provenance des actes Infogreffe (license RNCS IMR).
Options :
-d Mode debug (Verbosité au maximum)
-q Ne pas mettre à jour les listes d'évènements commandés ce jour
-b Ne pas mettre à jour les listes des nouveaux bilans PDF
-j Ne pas collecter les évènements INPI (annonces JAL Inpi)
-s:AAAAMMJJ Reprendre le chargement des annonces JAL Inpi à compter du AAAAMMJJ
Reprendre les actes INPI du AAAAMMJJ
-i:XXX Reprendre les accès aux évènements Infogreffe à la ligne XXX
";
$iDb=new WDB();
$iDbR=new WDB('');
global $iInsee;
$iInsee=new MInsee();
$iRncs=new MRncs();
$iGreffes=new MGreffes();
//$iWs=new WsEntreprise();
$nbInsert=$nbDeja=0;
$nbNatu=$nbDeci=0;
$modeDebug=false; // Par défaut, pas de message de debug
$iReprise=false; // Reprendre les accès Infogreffe à la ligne d'évènenement nouveaux reçu XXX
$message=''; // Initialisation du contenu du message d'information
$loadInpiLocal=true; // Par défaut on charge les évènements INPI (génération des annonces JAL)
$jourStock=0; // Jour du stock SSAMMJJ (génération des annonces JAL à partir du ...)
$loadActesDuJour=true; // Par défaut on charge les listes d'évènements commandés ce jour par l'extranet
$loadBilans=true; // Par défaut on charge les listes de bilans IMAGES disponibles
$argv=$_SERVER['argv'];
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $modeDebug=true; break;
case 's': $jourStock=substr($argv[$i],3,8); break;
case 'j': $loadInpiLocal=false; break;
case 'q': $loadActesDuJour=false; break;
case 'b': $loadBilans=false; break;
case 'i': $iReprise=substr($argv[$i],3); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break;
}
} else $tabFichLigneCmd[]=$argv[$i];
}
echo date ('Y/m/d - H:i:s') . " - Début du traitement des évènements INPI".EOL;
$strDateFlux='';
if ($jourStock>0) {
$dateMaj=WDate::dateT('Ymd', 'Y-m-d', $jourStock);
$strDateFlux=" AND dateFlux='$dateMaj' ";
$message.="Forçage du dernier chargement de la collecte INPI en date du $dateMaj...\r\n";
echo date ('Y/m/d - H:i:s') . " - Forçage de l'accès aux évènements Infogreffe en date du $dateMaj...".EOL;
}
// Date du dernier chargement INPI
$tabTmp=$iDb->select('rncs_chargements', "nomFichier, dateFlux, nbEvenAnn", "1 $strDateFlux ORDER BY dateFlux DESC LIMIT 0,1", true, MYSQL_ASSOC);
echo "SELECT nomFichier, dateFlux, nbEvenAnn
FROM rncs_chargements
WHERE 1 $strDateFlux ORDER BY dateFlux DESC LIMIT 0,1;".mysql_error().EOL;
$dateMaj=$tabTmp[0]['dateFlux'];
$nomFichier=$tabTmp[0]['nomFichier'];
$nbEvenAnn=$tabTmp[0]['nbEvenAnn'];
//die("dateMaj='$dateMaj', nomFichier='$nomFichier', nbEvenAnn=$nbEvenAnn");
/* $iDb->update('rncs_chargements', array(''=>@$iEven*1), "nomFichier='$nomFichier'");*/
// Nombre d'évènements chargés
echo "SELECT e.siren, e.codeInterne, e.dateDepot, e.codeEven, t.libEven, t.codEven, e.flux
FROM rncs_even e, tabEvenRncs t
WHERE e.flux='$dateMaj' AND e.codeEven=t.codeEven /*AND codEven>0*/ GROUP BY siren, dateDepot, codeEven;".EOL;
$nbEven=$iDbR->select( 'rncs_even e, tabEvenRncs t',
"e.siren, e.codeInterne, e.dateDepot, e.codeEven, t.libEven, t.codEven, e.flux",
"e.flux='$dateMaj' AND e.codeEven=t.codeEven /*AND codEven>0*/ GROUP BY siren, dateDepot, codeEven",
true, MYSQL_ASSOC, true);
echo mysql_error();
// Nombre d'évènements déjà mis à jour (complétés)
$tabTmp=$iDb->select('rncs_even_info', "count(*) AS nb", "flux='$dateMaj'", true, MYSQL_ASSOC);
$nbEvenMaj=$tabTmp[0]['nb'];
if ($nbEvenMaj>$nbEven && !$iReprise && $nbEvenAnn>0) {
$message.="Le dernier chargement INPI date du $dateMaj et contient $nbEvenMaj évènements déjà mis à jour sur les $nbEven évènements du jour !\r\n";
echo date ('Y/m/d - H:i:s') . " - Le dernier chargement INPI date du $dateMaj et contient $nbEvenMaj évènements déjà mis à jour sur les $nbEven évènements du jour !.".EOL;
//die('ici1');
} else {
$message.="Le dernier chargement INPI date du $dateMaj et contient $nbEven nouveaux évènements dont $nbEvenMaj à jour.\r\n";
echo date ('Y/m/d - H:i:s') . " - Le dernier chargement INPI date du $dateMaj et contient $nbEven nouveaux évènements dont $nbEvenMaj à jour.".EOL;
//die('ici2');
$sirenPre=false;
$iEven=-1;
while($even=$iDbR->fetch(MYSQL_ASSOC)) {
$iEven++;
//foreach ($AnnDb as $iEven=>$even) {
if ($iEven<$iReprise) continue;
echo "$iEven/$nbEven:".$even['siren'].' le '.$even['dateDepot'].': '.$even['codeEven'].' '.$even['libEven'].' ('.$even['codeInterne'].') ... ';
$tabActes=@$iGreffes->getListeActes($even['siren']);
foreach ($tabActes as $acte) {
//echo $even['siren'].' - '.$even['dateDepot'].'='.$acte['depot_date'].EOL;
if ($even['dateDepot']==$acte['depot_date']) {
echo $acte['acte_nature'].' - '.$acte['acte_decision'];
if ($acte['acte_date']=='0000-00-00')
$dateActe=$even['dateDepot'];
else
$dateActe=$acte['acte_date'];
$tabInsert=array(
'siren' => $even['siren'],
'codeInterne' => $even['codeInterne'],
'dateDepot' => $even['dateDepot'],
'codeEven' => $even['codeEven'],
'flux' => $even['flux'],
'depot_num' => $acte['depot_num'],
'depot_date' => $acte['depot_date'],
'acte_num' => $acte['acte_num'],
'acte_date' => $dateActe,
'acte_type' => $acte['acte_type'],
'acte_lib' => $acte['acte_lib'],
'acte_pages' => $acte['acte_pages'],
'acte_nature' => $acte['acte_nature'],
'acte_decision' => $acte['acte_decision'],
'collecte' => $even['codEven'],
);
if ($iDb->insert('rncs_even_info', $tabInsert)) {
$nbInsert++;
if ($acte['acte_nature']<>'') $nbNatu++;
if ($acte['acte_decision']<>'') $nbDeci++;
} else
$nbDeja++;
}
//print_r($acte);
}
echo EOL;
// if (!$iGreffes->enCache && $sirenPre<>$even['siren']) randsleep(1,3);
$sirenPre=$even['siren'];
}
$message.="$nbInsert évènements avec compléments ajoutés et $nbDeja évènements déjà en base ($nbNatu natures et $nbDeci décisions.\r\n";
echo date('Y/m/d - H:i:s') ." - $nbInsert évènements avec compléments ajoutés et $nbDeja évènements déjà en base ($nbNatu natures et $nbDeci décisions.".EOL;
$iDb->update('rncs_chargements', array('nbEvenAnn'=>@$iEven*1), "nomFichier='$nomFichier'");
}
if ($loadInpiLocal) {
/**
** Evènements importants en collecte INPI
**/
if ($jourStock>0) {
$dateMaj=WDate::dateT('Ymd', 'Y-m-d', $jourStock).' 00:00:00';
$message.="Forçage du dernier chargement de la collecte INPI en date du $dateMaj...\r\n";
echo date ('Y/m/d - H:i:s') . " - Forçage du dernier chargement de la collecte INPI en date du $dateMaj...".EOL;
}
$AnnDb=$iDb->select('rncs_even_info j, rncs_entrep e, tabEvenRncs l',
"j.siren, e.sirenValide, l.codEven AS typeEven, j.acte_date AS dateJugement, j.depot_date AS dateSource,
j.dateInsert, 'PP' AS source, e.triCode AS tribunal, e.raisonSociale, l.codeEven AS codeEvenRncs,
j.acte_nature, j.acte_decision",
"j.dateInsert>'$dateMaj' AND j.siren=e.siren AND DATEDIFF(NOW(), j.dateDepot)<=60 AND
j.codeEven=l.codeEven AND
(l.codEven>0
OR j.acte_decision LIKE '%FUSION%' OR j.acte_decision LIKE '%ABSORPTION%'
OR j.acte_decision LIKE '%TRANSMISSION%UNIVERSELLE%PATRIMOINE%'
OR j.acte_decision LIKE '%DISSOLUTION%' OR j.acte_nature LIKE '%DISSOLUTION%'
OR j.acte_decision LIKE '%MISE%SOMMEIL%'
) ",
false, MYSQL_ASSOC);
$nbAnnonces=count($AnnDb);
$message.="Il y a $nbAnnonces évènements INPI IMR depuis le dernier chargement du $dateMaj :\r\n";
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces évènements INPI IMR depuis le dernier chargement du $dateMaj.".EOL;
foreach ($AnnDb as $i=>$tabInsert) {
$siren=$tabInsert['siren'];
$dateJugement=$tabInsert['dateJugement'];
if ($dateJugement=='0000-00-00') $tabInsert['dateJugement']=$tabInsert['dateSource'];
$typeEven=$tabInsert['typeEven']*1;
$strEven='';
if ($typeEven==0) {//projet de fusion par absorption
if (preg_match('/(FUSION|ABSORPTION)/i', $tabInsert['acte_decision'], $matches)) {
if (preg_match('/PROJET/i', $tabInsert['acte_decision'], $matches)) $typeEven=2726;
else $typeEven=2725;
} elseif (preg_match('/TRANSMISSION.{1,3}UNIVERSELLE.{1,5}PATRIMOINE/i', $tabInsert['acte_decision'], $matches))
$typeEven=2620;
elseif (preg_match('/DISSOLUTION/i', $tabInsert['acte_decision'], $matches) ||
preg_match('/DISSOLUTION/i', $tabInsert['acte_nature'], $matches) )
$typeEven=2203;
elseif (preg_match('/MISE.{1,9}SOMMEIL/i', $tabInsert['acte_decision'], $matches)) {
if (preg_match('/REPRISE/i', $tabInsert['acte_decision'], $matches)) $typeEven=2316;
else $typeEven=2206;
}
} elseif (preg_match('/(FUSION|ABSORPTION)/i', $tabInsert['acte_decision'], $matches)) {
if (preg_match('/PROJET/i', $tabInsert['acte_decision'], $matches)) $strEven=2726;
else $strEven=2725;
}
$tabInsert['complement']='';
if ($typeEven==2100 || $typeEven==2101 || $typeEven==2102) { // Modification de capital
$tabIdentite=$iRncs->getInfosEntrep($siren);
$tabInsert['montant']=$tabIdentite['capital'];
//$tabInsert['actionsNb'] ='';
} elseif ($typeEven==2305) { // Modification de la dénomination
$tabIdentite=$iRncs->getInfosEntrep($siren);
$tabInsert['complement'].="Nouvelle dénomination : ".$tabIdentite['raisonSociale'].'. ';
if ($tabIdentite['sigle']<>'')
$tabInsert['complement'].="Sigle : ".$tabIdentite['sigle'].'. ';
} elseif ($typeEven==2307) { // Modification de la forme juridique
$tabIdentite=$iRncs->getInfosEntrep($siren);
$tabInsert['nouvFJ']=$tabIdentite['cj'];
} elseif ($typeEven==2315) {
switch ($tabInsert['codeEvenRncs']*1) {
case 34: $tabInsert['complement'].='Changement de Gérant : '; break;
case 37: $tabInsert['complement'].='Changement de Président : '; break;
case 40: $tabInsert['complement'].='Modification du Conseil d\'Administration : '; break;
case 81: $tabInsert['complement'].='Changement de Commissaire aux Comptes : '; break;
default: $tabInsert['complement'].='Administration : '; break;
}
$dirs=$iInsee->getDirigeants($siren);
foreach ($dirs as $nb=>$dir) {
$tabInsert['complement'].=$dir['Titre'].' : '.@$dir['Civilite'].' '.$dir['Nom'].' '.$dir['Prenom'];
if (($nb+1)<count($dirs))
$tabInsert['complement'].=', ';
else
$tabInsert['complement'].='. ';
}
} elseif ($typeEven==2320) { // RECONSTITUTION DE LA L'ACTIF NET
if (preg_match('/MOITIE/i', $tabInsert['acte_nature'], $matches))
$typeEven=2321;
} elseif ($typeEven==2203 &&
(preg_match('/SANS/i', $tabInsert['acte_nature'], $matches)) ||
(preg_match('/SANS/i', $tabInsert['acte_decision'], $matches))
)
// On ignore l'annonce
continue;
unset($tabInsert['codeEvenRncs']);
//if ($tabInsert['acte_nature']<>'') $tabInsert['complement'].=$tabInsert['acte_nature'].' ';
if ($tabInsert['acte_decision']<>'') $tabInsert['complement'].=strtolower($tabInsert['acte_decision']).' ';
unset($tabInsert['acte_nature']);
unset($tabInsert['acte_decision']);
if ($strEven<>'') $tabInsert['strEven']=$strEven;
//echo "$siren $dateJugement $typeEven".EOL;
$tabTmp=@$iInsee->getIdentiteLight($tabInsert['siren']);
$tabInsert['typeEven'] = $typeEven;
if ($typeEven==0) {
print_r($tabInsert);
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des évènements Greffes', "Erreur typeEven=0 ligne n°$i ($dateMaj)".EOL.print_r($tabInsert,true));
//die();
}
$tabInsert['adresse'] = $tabTmp['Adresse'];
$tabInsert['codePostal'] = $tabTmp['CP'];
$tabInsert['ville'] = $tabTmp['Ville'];
if (!$iDb->insert($table, $tabInsert)) {
if (mysql_errno()==1062) {
$tabTmp=$iDb->select($table, 'id, siren, typeEven, dateJugement, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, dateSource, dateInsert, source, tribunal, raisonSociale',"siren=$siren AND dateJugement='$dateJugement' AND typeEven=$typeEven", false, MYSQL_ASSOC);
$tabEnbase=@$tabTmp[0];
if ($tabEnbase['source']=='PC') {
unset($tabInsert['source']);
unset($tabInsert['dateInsert']);
if (!$iDb->update($table, $tabInsert,"siren=$siren AND dateJugement='$dateJugement' AND typeEven=$typeEven", false, MYSQL_ASSOC))
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour de l'évènement $typeEven en date du $dateJugement pour $siren...".EOL;
else $nbAnnUpdateE++;
}
} else
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'ajout de l'évènement $typeEven en date du $dateJugement pour $siren...".EOL;
} else {
$nbAnnInsertE++;
echo date('Y/m/d - H:i:s') ." - Ajout de l'évènement $typeEven en date du $dateJugement pour $siren...".EOL;
@$tabCptAnn[$typeEven]++;
}
}
$message.=" $nbAnnInsertE ajouts et $nbAnnUpdateE mises à jours sur $nbAnnonces annonces.\r\n\r\n".EOL;
$message.=EOL.print_r(@$tabCptAnn, true);
}
if ($loadActesDuJour) {
$today=date('Y-m-d').' 00:00:00';
$nbDepotsTot=0;
$tabActes=$iDb->select( 'sdv1.logs', "siren",
"`page`='greffe_actes' AND dateHeure>='$today' GROUP BY siren",
false, MYSQL_ASSOC);
shuffle($tabActes);
$nbActesQuoti=count($tabActes);
foreach ($tabActes as $i=>$acte) {
echo "$i/$nbActesQuoti: Mise à jour de la liste des actes pour ".$acte['siren'].'... ';
$nbDepots=count(@$iGreffes->getListeActes($acte['siren']));
echo "$nbDepots dépot(s).".EOL;
// if (!$iGreffes->enCache) randsleep(1,3);
$nbDepotsTot+=$nbDepots;
}
$message.="$nbActesQuoti listes d'évènements mises à jours pour un total de $nbDepotsTot dépots (listes du jour).\r\n";
echo date('Y/m/d - H:i:s') ." - $nbActesQuoti listes d'évènements mises à jours pour un total de $nbDepotsTot dépots (listes du jour).".EOL;
}
if ($loadBilans) {
$tabTmp=$iDb->select('bilans_deposes','MAX(DATE(dateInsert)) AS lastMAJ', '1', true, MYSQL_ASSOC);
$lastUpdate=$tabTmp[0]['lastMAJ'];
$message.="La dernière mise à jour des bilans Greffes date du $lastUpdate !\r\n";
echo date ('Y/m/d - H:i:s') . " - La dernière mise à jour des bilans Greffes date du $lastUpdate !".EOL;
$bilansDep=$iDb->select('bilans_deposes', "siren, nicSiege, dateProvPartenaire, dateExercice, dureeExercice, monnaie, chiffreAffaire", "dateInsert>'$lastUpdate 00:00:00'", true, MYSQL_ASSOC);
echo mysql_error();
$nbBilans=count($bilansDep);
$message.="Il y a $nbBilans listes de bilans PDF à mettre à jour !\r\n";
echo date ('Y/m/d - H:i:s') . " - Il y a $nbBilans listes de bilans PDF à mettre à jour !".EOL;
foreach ($bilansDep as $iBilan=>$bil) {
$tabActes=@$iGreffes->getBilansImages($bil['siren']);
// if (!$iGreffes->enCache) randsleep(1,3);
}
$message.="Fin de la mise à jour des listes de bilans PDF.\r\n";
echo date ('Y/m/d - H:i:s') . " - Fin de la mise à jour des listes de bilans PDF.".EOL;
/** @todo Charger les listes de bilans commandés ce jour **/
}
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des informations Greffes', $message);
die();
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,800 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
// ftp://ftp.gmeiutility.org/GMEIPlatform/CombinedLocalOperatingUnits/CommonFormat/GloballyAccepted/Full/
// ftp://ftp.gmeiutility.org/GMEIPlatform/CombinedLocalOperatingUnits/CommonFormat/GloballyAccepted/Delta/
function xml2assoc($xml) {
$assoc = null;
while($xml->read()){
switch ($xml->nodeType) {
case XMLReader::END_ELEMENT: return $assoc;
case XMLReader::ELEMENT:
$assoc[$xml->name][] = array('value' => $xml->isEmptyElement ? '' : xml2assoc($xml));
if($xml->hasAttributes){
$el =& $assoc[$xml->name][count($assoc[$xml->name]) - 1];
while($xml->moveToNextAttribute()) $el['@'.$xml->name] = $xml->value;
}
break;
case XMLReader::TEXT:
case XMLReader::CDATA: $assoc .= $xml->value;
}
}
return $assoc;
}/*
function xml2assoc($xml, array &$target = array()) {
while ($xml->read()) {
switch ($xml->nodeType) {
case XMLReader::END_ELEMENT:
return $target;
case XMLReader::ELEMENT:
$name = $xml->name;
$target[$name] = $xml->hasAttributes ? array() : '';
if (!$xml->isEmptyElement) {
$target[$name] = array();
xml2assoc($xml, $target[$name]);
}
if ($xml->hasAttributes)
while($xml->moveToNextAttribute())
$target[$name]['@'.$xml->name] = $xml->value;
break;
case XMLReader::TEXT:
case XMLReader::CDATA:
$target = $xml->value;
}
}
return $target;
}
*/
function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) {
$iDb=new WDB($db);
//if ($modeDebug) echo date('Y/m/d - H:i:s')." - Chargement de la table $table...".EOL;
$tabTailles=$tabTypes=$champ=array();
if ($table=='') $table=basename($nomFichier);
$fp = fopen($nomFichier, 'r');
$nbLignes=$nbInsert=0;
while (($data = fgetcsv($fp, 15000, ';')) !== FALSE) {
$nbLignes++;
if ($nbLignes==1) {
// On compte le nombre de colonnes du fichier
$nbColonnes=count($data);
$sql="CREATE TABLE IF NOT EXISTS `$table` (";
for($i=0; $i<$nbColonnes; $i++) {
if ($i==($nbColonnes-1) && trim($data[$i])=='') {
$nbColonnes--;
break;
} else {
$num=0;
while (in_array($data[$i], $champ)) {
$data[$i]=$data[$i].'_'.$i;
}
$sql.='`'.$data[$i].'` LONGTEXT,';
$tabTailles[$i]=0;
$champ[$i]=$data[$i];
}
}
$sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
$sql.=") TYPE=MYISAM COMMENT='".basename($nomFichier)." du ".date('d/m/Y H:i', filemtime($nomFichier))." (".round(filesize($nomFichier)/1024)." ko)';";
if ($create) {
$sql0="DROP TABLE IF EXISTS `$table`;";
$iDb->query($sql0);
if ($iDb->query($sql))
'';//echo date ('Y/m/d - H:i:s')." - Création de la table $table OK...".EOL;
else {
echo $iDb->getLastError().EOL;
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $table !".EOL."Requête SQL = $sql".EOL);
}
}
if ($reload) {
$sql="TRUNCATE TABLE `$table`;";
if ($iDb->query($sql))
'';//echo date ('Y/m/d - H:i:s')." - Création de la table $table OK...".EOL;
else {
echo $iDb->getLastError().EOL;
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $table !".EOL."Requête SQL = $sql".EOL);
}
}
continue;
}
$tabDataToInsert=array();
for($i=0; $i<$nbColonnes; $i++) {
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
if (strlen($data[$i])>$tabTailles[$i])
$tabTailles[$i]=strlen($data[$i]);
if (gettype($data[$i])=='string') {
if (is_numeric($data[$i])) {
if (round($data[$i]*1)<>($data[$i]*1))
$tabTypes[$i][]='double';
else
$tabTypes[$i][]='integer';
} else
$tabTypes[$i][]='string';
} else $tabTypes[$i][]=gettype($data[$i]);
}
$ret=$iDb->insert($table, $tabDataToInsert);
if ($ret!=1) {
echo date ('Y/m/d - H:i:s') . ' - ERREUR n°'.mysql_errno()." à l'insertion de la ligne n°$i : ". implode(';', $data) ." !".EOL;
echo date ('Y/m/d - H:i:s') . ' - '.mysql_error() .EOL;
}
unset($tabDataToInsert);
}
fclose($fp);
if ($create) {
// On réduit la taille des colonnes au max de chaque champ
for($i=0; $i<$nbColonnes; $i++) {
if ($tabTailles[$i]<256) {
$tabTmp=array_unique($tabTypes[$i]);
//print_r($tabTmp);
if (count($tabTmp)==1) {
reset($tabTmp);
switch (current($tabTmp)) {
case 'boolean': $strType='BOOL'; break;
case 'integer': $strType="BIGINT(".$tabTailles[$i].")"; break;
case 'double': $strType='DOUBLE'; break;
default: $strType="VARCHAR(".$tabTailles[$i].")";break;
}
}
$sql="ALTER TABLE `$table` CHANGE `".$champ[$i]."` `".$champ[$i]."` $strType NULL DEFAULT NULL ";
if ($iDb->query($sql))
echo '';//date ('Y/m/d - H:i:s')." - Taille du champ $i (". $champ[$i] .") passée à ". $tabTailles[$i] ."...".EOL;
else
echo '';//date ('Y/m/d - H:i:s')." - Impossible de modifier la taille du champ $i (". $champ[$i] .") à ". $tabTailles[$i] ." !".EOL;
}
}
}
return $nbLignes;
}
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/dates.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTIONS]
Téléchargement et mise à jour d'informations en provenance de Bases Internet.
Options:
-d Mode debug
-t Traiter tous les fichiers à mettre à jour (*)
-r Traiter les fichiers Risques (prim.net)
-x Traiter les fichiers Imports/Exports des Douanes
-p Traiter les fichiers du Registre français des émissions polluantes
-f Traiter le fichier Finess (Etablissements de Santé)
(*): Valeur par défaut !
";
$modeDebug=false;
$tAll=true;
$tRisks=$tXport=$tPollu=$tSante=false;
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $modeDebug=true; break;
case 't': $tAll=true; break;
case 'r': $tAll=false; $tRisks=true; break;
case 'x': $tAll=false; $tXport=true; break;
case 'p': $tAll=false; $tPollu=true; break;
case 'f': $tAll=false; $tSante=true; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else {
$tabFichier[$j]=$argv[$i];
$j++;
}
}
}
if ($tAll) $tRisks=$tXport=$tPollu=$tSante=true;
$iDb=new WDB('sdv1');
echo date('Y/m/d - H:i:s')." - Début du script...".EOL;
$tabSrcLei=array(
/* 'lu'=>array( //'https://www.gmeiutility.org/actions/DailyFileDownload/?termsAndConditions=true&fileName=20150119T064922.zip&downloadFile=Envoyer'
//'urlBase'=>'https://www.geiportal.org/customer',
'urlListe'=>'https://www.gmeiutility.org/actions/DailyFileDownload/',
'listeReg'=>'/<td><a href="\.(.*)">(LEI_Full_(?:.*))<\/a>/Uim',
'listeUrl'=>1,
),
'de'=>array( 'urlBase'=>'https://www.geiportal.org/customer',
'urlListe'=>'https://www.geiportal.org/customer/index.php?a=sea&act=downloadcff&lang=en',
'listeReg'=>'/<td><a href="\.(.*)">(LEI_Full_(?:.*))<\/a>/Uim',
'listeUrl'=>1,
),*/
'fr'=>array( 'urlBase'=>'https://lei-france.insee.fr',
'urlListe'=>'https://lei-france.insee.fr/telechargement',
'listeReg'=>'/<td headers="dateFichier">\s+(.*)<\/td>\s+<td headers="dateNom">\s+<a href="(.*)">(.*)<\/a>/Uis',
'listeUrl'=>2,
),
);
$tabFichier=array();
foreach ($tabSrcLei as $pays=>$tabSrc) {
$url=$tabSrc['urlListe'];
$regex=$tabSrc['listeReg'];
$fichier=REP_TEMP.'lei_'.$pays.'_'.date('Ymd').'.zip';
if (!(file_exists($fichier) && date('Ymd',filemtime($fichier))==date('Ymd'))) {
$page=getUrl($url);
if ($page['code']<>200) die('Code retour finess différent de 200 !'.EOL);
$cookie=$page['header']['Set-Cookie'];
$referer=$url;
$body=$page['body'];
// print_r($page);
// die();
if (preg_match($regex, $body, $matches)) {
$url=$tabSrc['urlBase'].$matches[$tabSrc['listeUrl']];
$tdeb=microtime(1);
// $url='http://finess.sante.gouv.fr/finess/jsp/liste.do?order=CSVEQUIP&noFiness=&export=complet';
echo date('Y/m/d - H:i:s')." - Début de récupération de l'URL : $url".EOL;
$page=getUrl($url, $cookie, '', $referer);
$tfin=microtime(1);
$duree=round($tfin-$tdeb,1);
$tailleKo=round(strlen($page['body'])/1024,1);
$debit=round((strlen($page['body'])/($tfin-$tdeb))/1024,1);
$strXml=$page['body'];
file_put_contents($fichier, $strXml);
unset($strXml);
echo date('Y/m/d - H:i:s')." - Fin de la récupération du fichier $fichier de $tailleKo Ko en $duree s ($debit Ko/s).".EOL;
}
} else {
$tailleKo=round(filesize($fichier)/1024,1);
echo date('Y/m/d - H:i:s')." - Fichier $fichier de $tailleKo Ko déjà téléchargé.".EOL;
}
$zip = new ZipArchive;
if ($zip->open($fichier) === TRUE) {
for ($i=0; $i<$zip->numFiles;$i++) {
$tabIndex[$i]=$zip->statIndex($i);
/* if ($modeDebug){
echo date('Y/m/d - H:i:s')." - Fichier ".basename($tabIndex['name'])."en cache datant du ".date('d/m/Y H:i:s', filectime('/tmp/'.$tabIndex['name']))." (".round(filesize('/tmp/'.$tabIndex['name'])/1024,1)." ko)".EOL;
echo date('Y/m/d - H:i:s')." - Fichier dans l'archive téléchargée datant du ".date('d/m/Y H:i:s', $tabIndex['mtime'])." (".round($tabIndex['size']/1024,1)." ko)".EOL;
}*/
}
//print_r($tabIndex);die();
$zip->extractTo(REP_TEMP);
$zip->close();
$fichierXml=$tabIndex[0]['name'];
}
//ini_set('memory_limit', -1);
echo memory_get_usage ().' octets'.EOL;
echo date('Y/m/d - H:i:s')." - Fin de la décompression du fichier $fichierXml.".EOL;
/*
$xml_string=file_get_contents(REP_TEMP.$fichierXml);
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
print_r($array);
die();
*/
/*
$racine = simplexml_load_file(REP_TEMP.$fichierXml);
$header = $racine->{'lei:LEIData'}->{'lei:LEIHeader>'}->{'lei:ContentDate'};
echo $header.EOL;
die();
/*
<lei:ContentDate>2015-01-18T20:30:11.854+01:00</lei:ContentDate>
<lei:Originator>969500Q2MA9VBQ8BG884</lei:Originator>
<lei:FileContent>LOU_FULL_PUBLISHED</lei:FileContent>
<lei:DeltaStart>2015-01-17T08:30:11.000+01:00</lei:DeltaStart>
<lei:RecordCount>20828</lei:RecordCount>
</lei:LEIHeader>
<lei:LEIRecords>
<lei:LEIRecord>
*
$count = count($node->children());
$liste = $header->children();
$first = $liste[0]; // Premier élément fils
// Lecture de tous les paragraphe
foreach($liste as $nom => $element){
echo "Le nom $nom contient \"".$element."\"<br/>";
}
die();
*/
$reader = new XMLReader();
if (!$reader->open(REP_TEMP.$fichierXml))
die("Failed to open : $fichierXml".EOL);
$assoc = xml2assoc($reader);
$reader->close();
unset($reader);
$header=$assoc['lei:LEIData'][0]['value']['lei:LEIHeader'][0]['value'];
$tabInsertFichier=array(
'LEIDataFile'=> $fichierXml,
'OriginIso2'=> $pays,
'ContentDate'=> $header['lei:ContentDate'][0]['value'],
'Originator'=> $header['lei:Originator'][0]['value'],
'FileContent'=> $header['lei:FileContent'][0]['value'],
'DeltaStart'=> @$header['lei:DeltaStart'][0]['value'],
'RecordCount'=> @$header['lei:RecordCount'][0]['value'],
'NextVersion'=> @$header['lei:NextVersion'][0]['value'],
'Extension'=> @$header['lei:Extension'][0]['value'],
);
unset($header);
$records=$assoc['lei:LEIData'][0]['value']['lei:LEIRecords'][0]['value']['lei:LEIRecord'];
$nbNode=count($records);
unset($assoc);
echo memory_get_usage ().' octets'.EOL;
print_r($tabInsertFichier);
echo date('Y/m/d - H:i:s')." - Fin de la lecture 1 du fichier $fichierXml : $nbNode noeuds.".EOL;
foreach ($records as $i=>$record) {
$record=$record['value'];
$lei=$record['lei:LEI'][0]['value'];
$entity=$record['lei:Entity'][0]['value'];
$legalName=utf8_decode($entity['lei:LegalName'][0]['value']);
$registration=$record['lei:Registration'][0]['value'];
$extension=@$record['lei:Extension'][0]['value'];
$tabInsert=array( 'LEI'=> $lei,
'LegalName'=> $legalName,
'OtherName'=> @utf8_decode($entity['lei:OtherEntityNames'][0]['value']['lei:OtherEntityName'][0]['value']),
'OtherNameType'=> @$entity['lei:OtherEntityNames'][0]['value']['lei:OtherEntityName'][0]['@type'],
'LegalAddress1'=> utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line1'][0]['value']),
'LegalAddress2'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line2'][0]['value']),
'LegalAddress3'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line3'][0]['value']),
'LegalAddress4'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line4'][0]['value']),
'LegalAddressCity'=> utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:City'][0]['value']),
'LegalAddressRegion'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Region'][0]['value']),
'LegalAddressCountry'=> utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Country'][0]['value']),
'LegalAddressPostalCode'=> @$entity['lei:LegalAddress'][0]['value']['lei:PostalCode'][0]['value'],
'HeadAddress1'=> utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line1'][0]['value']),
'HeadAddress2'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line2'][0]['value']),
'HeadAddress3'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line3'][0]['value']),
'HeadAddress4'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line4'][0]['value']),
'HeadAddressCity'=> utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:City'][0]['value']),
'HeadAddressRegion'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Region'][0]['value']),
'HeadAddressCountry'=> utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Country'][0]['value']),
'HeadAddressPostalCode'=> @$entity['lei:HeadquartersAddress'][0]['value']['lei:PostalCode'][0]['value'],
'BusinessRegisterEntityID'=> @$entity['lei:BusinessRegisterEntityID'][0]['value'],
'LegalJurisdiction'=> @$entity['lei:LegalJurisdiction'][0]['value'],
'LegalForm'=> @utf8_decode($entity['lei:LegalForm'][0]['value']),
'AssociatedEntityName'=> @$entity['lei:AssociatedEntity'][0]['value']['lei:AssociatedEntityName'][0]['value'],
'AssociatedEntityLEI'=> @$entity['lei:AssociatedEntity'][0]['value']['lei:AssociatedLEI'][0]['value'],
'AssociatedEntityType'=> @$entity['lei:AssociatedEntity'][0]['value']['@type'],
'EntityStatus'=> $entity['lei:EntityStatus'][0]['value'],
'EntityExpirationDate'=> @$entity['EntityExpirationDate'][0]['value'],
'EntityExpirationReason'=> @$entity['EntityExpirationReason'][0]['value'],
'SuccessorEntityName'=> @$entity['lei:SuccessorEntity'][0]['value']['lei:SuccessorEntityName'][0]['value'],
'SuccessorEntityLEI'=> @$entity['lei:SuccessorEntity'][0]['value']['lei:SuccessorLEI'][0]['value'],
'SuccessorEntityType'=> @$entity['lei:SuccessorEntity'][0]['value']['@type'],
'EntityNextVersion'=> @$entity['lei:NextVersion'][0]['value'],
'InitialRegistrationDate'=> $registration['lei:InitialRegistrationDate'][0]['value'],
'LastUpdateDate'=> $registration['lei:LastUpdateDate'][0]['value'],
'RegistrationStatus'=> $registration['lei:RegistrationStatus'][0]['value'],
'NextRenewalDate'=> $registration['lei:NextRenewalDate'][0]['value'],
'ManagingLOU'=> $registration['lei:ManagingLOU'][0]['value'],
'ValidationSources'=> @$registration['lei:ValidationSources'][0]['value'],
'RegistrationNextVersion'=> @$registration['lei:NextVersion'][0]['value'],
'NextVersion'=> @$record['lei:NextVersion'][0]['value'],
'FundNumber'=> @$extension['leifr:FundNumber'][0]['value'],
'FundManagerBusinessRegisterID'=> @$extension['leifr:FundManagerBusinessRegisterID'][0]['value'],
'siren'=> @$extension['leifr:SIREN'][0]['value'],
'NACEClassCode'=> @$extension['leifr:EconomicActivity'][0]['value']['leifr:NACEClassCode'][0]['value'],
'SousClasseNAF'=> @$extension['leifr:EconomicActivity'][0]['value']['leifr:SousClasseNAF'][0]['value'],
'LegalFormCodification'=> @$extension['leifr:LegalFormCodification'][0]['value'],
'dateInsert'=> $tabInsertFichier['ContentDate'],
);
$ret=$iDb->insert('bourse_lei', $tabInsert, false);
//echo mysql_error().EOL;
if (!$ret) {
//echo mysql_errno().' : '.mysql_error().EOL;
if (mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
$iDb->update('bourse_lei', $tabInsert, "LEI='$lei'", false);
echo date('Y/m/d - H:i:s')." - $i/$nbNode : Update $lei\t$legalName".EOL;
}
} else
date('Y/m/d - H:i:s')." - $i/$nbNode : INSERT $lei\t$legalName".EOL;
}
die();
/*
$xml_string=file_get_contents(REP_TEMP.$fichierXml);
$xml = simplexml_load_string($xml_string);
//$sxml = simplexml_load_file(REP_TEMP.$fichierXml);
print_r($xml);
die();
foreach($sxml as $node) {
$lei = htmlspecialchars((string)$node->{'lei:LEI'}, ENT_QUOTES);
$leiEnt= htmlspecialchars((string)$node->{'lei:Entity'} , ENT_QUOTES);
echo "$lei\t$leiEnt".EOL;
}
die();
$assoc = xml2assoc($reader);
$reader->close();
unset($reader);
$nbNode=count($assoc[0]['val'][1]['val']);
echo memory_get_usage ().' octets'.EOL;
echo date('Y/m/d - H:i:s')." - Fin de la lecture 1 du fichier $fichierXml : $nbNode noeuds.".EOL;
foreach($assoc[0]['val'][1]['val'] as $i=>$record) {
//print_r($record);
$newRecord=convertArray($record);
print_r($newRecord);
}
//print_r($assoc);
die();
// create a new object
$parser = new SimpleLargeXMLParser();
// load the XML
$parser->loadXML(REP_TEMP.$fichierXml);
//$array = $parser->parseXML("//myFirstNode/color-palettes/color[@type='hex']"); // get all colors in hex format
//$array = $parser->parseXML("//myFirstNode/first-100-numbers/number[@n>'50']"); // get all numbers bigger then 50
//$array = $parser->parseXML("//myFirstNode/searchengines"); // get all search engines
//$array = $parser->parseXML("//myFirstNode"); // get all XML file
$array = $parser->parseXML(); // get all XML file - faster if you specify the first node
// in case you also need the attibutes (with values) you need to pass the 2rd parameter as true
// the array structure will change in this case
//$array = $parser->parseXML("//myFirstNode/color-palettes/color[@type='hex']", true); // get all colors in hex format
//$array = $parser->parseXML("//myFirstNode/first-100-numbers/number[@n>'50']", true); // get all numbers bigger then 50
//$array = $parser->parseXML("//myFirstNode/searchengines", true); // get all search engines
//$array = $parser->parseXML("//myFirstNode", true); // get all XML file
// in case you have special XML files (like RSS or Atom feeds) you need to register the namespaces
//$parser->registerNamespace("atom", "http://www.w3.org/2005/Atom"); // register the namespace
//$array = $parser->parseXML("//atom:feed/atom:entry"); //
echo memory_get_usage ().' octets'.EOL;
echo date('Y/m/d - H:i:s')." - Fin de la lecture 2 du fichier $fichierXml : $nbNode noeuds.".EOL;
//print "<pre>";
print_r($array);
//print "</pre>";
die();
foreach ($assoc[0]['childs'][1]['childs'] as $i=>$record) {
print_r($record);
}
//print_r($assoc);
die();
/*
while($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'lei:LEIHeader') {
$address = $reader->getAttribute('address');
$lattitude = $reader->getAttribute('lat');
$longitude = $reader->getAttribute('lng');
}
$reader->close();
*/
$nbNode=0;
$tabNode=array();
while($reader->read())
{
if ($reader->name === 'lei:LEIHeader') {
//parse column node to into $columns array
echo "Header".EOL;
}
if($reader->nodeType == XMLReader::ELEMENT) $nodeName = $reader->name;
if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA)
{
/*
<lei:LEIHeader>
<lei:ContentDate>2015-01-15T20:30:13.455+01:00</lei:ContentDate>
<lei:Originator>969500Q2MA9VBQ8BG884</lei:Originator>
<lei:FileContent>LOU_FULL_PUBLISHED</lei:FileContent>
<lei:DeltaStart>2015-01-14T08:30:13.000+01:00</lei:DeltaStart>
<lei:RecordCount>20801</lei:RecordCount>
</lei:LEIHeader>
*/
$tabNode[$nodeName]=array(
'value'=>$reader->value,
'nbAttribute'=>$reader->attributeCount,
);
$attributeCount ;
/* if ($nodeName == 'LEI') {
$id = $reader->value;
echo $reader->readString().EOL;
die();
}
if ($nodeName == 'LegalName') $tab =
if ($nodeName == 'AssociatedEntityName') $title = $reader->value;
/* if ($nodeName == 'author') $author = $reader->value;
if ($nodeName == 'isbn') $isbn = $reader->value;
if ($nodeName == 'image') $image = $reader->value;
if ($nodeName == 'ean') $ean = $reader->value;
if ($nodeName == 'published') $published = $reader->value;
if ($nodeName == 'publisher') $publisher = $reader->value;
if ($nodeName == 'pages') $pages = $reader->value;
if ($nodeName == 'price') $price = $reader->value;
if ($nodeName == 'description') $description = $reader->value;
if ($nodeName == 'status') $status = $reader->value;*
$ean = '';*/
}
//echo "$id\t$url\t$title".EOL;
if($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'lei:LEIRecord')
{
//echo "Node $nbNode:".EOL;
$tabNodes[$nbNode]=$tabNode;
$nbNode++;
$tabNode=array();
}
}
$reader->close();
echo date('Y/m/d - H:i:s')." - Fin de la lecture du fichier $fichierXml : $nbNode noeuds.".EOL;
print_r($tabNodes);
//$nbNode
die();
$xmLei = simplexml_load_file(REP_TEMP.$fichierXml);
echo file_get_contents(REP_TEMP.$fichierXml);
die();
//echo memory_get_peak_usage();
print_r($xmLei);
echo memory_get_usage ().' octets'.EOL;
die();
}
die();
echo date('Y/m/d - H:i:s')." - Fin du script...".EOL;
function xml2array($xml, $name)
{
print "<NOEUD>".EOL;
$tree = null;
print("I'm inside " . $name . EOL);
while($xml->read())
{
if($xml->nodeType == XMLReader::END_ELEMENT)
{
print "</NOEUD 2>".EOL;
return $tree;
}
else if($xml->nodeType == XMLReader::ELEMENT)
{
$node = array();
print("Adding " . $xml->name .EOL);
//$node['tag'] = $xml->name;
//$node[$xml->name]='';
if($xml->hasAttributes) {
$attributes = array();
while($xml->moveToNextAttribute())
{
print("Adding attr " . $xml->name ." = " . $xml->value . EOL);
$attributes[$xml->name] = $xml->value;
}
$node['attr'] = $attributes;
}
if(!$xml->isEmptyElement)
{
$childs = xml2array($xml, $xml->name);
if (count($childs)<=1)// && !is_array($childs[0]))
$node[$xml->name] = $childs[0];
else
$node[$xml->name] = $childs;
}
print($node[$xml->name]. " added".EOL);
$tree[] = $node;
}
else if($xml->nodeType == XMLReader::TEXT)
{
$tree[]= $xml->value;
/*
$node = array();
$node['text'] = $xml->value;
$tree[] = $node;*/
print "text added = " . $xml->value .EOL;
}
}
print "returning " . count($tree) . " childs".EOL;
print "</NOEUD 1>".EOL;
return $tree;
}
/*
function xml2assoc(&$xml) {
$assoc = NULL;
$n = 0;
while($xml->read()){
if($xml->nodeType == XMLReader::END_ELEMENT) break;
if($xml->nodeType == XMLReader::ELEMENT and !$xml->isEmptyElement){
$assoc[$n]['name'] = $xml->name;
if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value;
$assoc[$n]['val'] = xml2assoc($xml);
$n++;
}
else if($xml->isEmptyElement){
$assoc[$n]['name'] = $xml->name;
if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value;
$assoc[$n]['val'] = "";
$n++;
}
else if($xml->nodeType == XMLReader::TEXT) $assoc = $xml->value;
}
return $assoc;
}
*/
class SimpleLargeXMLParser {
/**
* DOMDocument
*
* @var DOMDocument
*/
protected $XMLDoc;
/**
* DOMXPath
*
* @var DOMXPath
*/
protected $XPath;
/**
* Namespaces to register for XPath
*
* @var array
*/
protected $namespaces = array();
public function __construct() {
$this->XMLDoc = new DOMDocument();
$this->XMLDoc->xmlStandalone = true;
$this->XMLDoc->preserveWhiteSpace = false;
}
public function registerNamespace ($prefix, $namspaceURI) {
$this->XPath->registerNamespace($prefix, $namspaceURI);
}
public function loadXML ($source) {
$load = $this->XMLDoc->Load($source);
$this->XPath = new DOMXPath($this->XMLDoc);
return $load;
}
/**
* Parse an XML
*
* @param string $source
* @param string $query
* @param bool $getAttributes
* @return array
*/
public function parseXML ($query = false, $getAttributes = false) {
$return = array();
if ($query == false || $query == "//") { // no query defined - get the root
$query = "*";
}
$components = $this->XPath->query($query);
if ($components instanceof DOMNodeList) {
foreach ($components as $component) {
if ($component instanceof DOMElement) {
$return[] = self::getChildern($component, $getAttributes);
}
}
}
return $return;
}
/**
* Get the childrens of a DOM node as array or as a string if the node does not have childrens
*
* @param DOMElement $node
* @param bool $getAttributes
* @return array / string
*/
protected static function getChildern (DOMElement $node, $getAttributes) {
$getAttributes = (bool)$getAttributes;
if ($node->hasChildNodes()) {
$return = array();
foreach ($node->childNodes as $n) {
if ($n instanceof DOMText) {
if ($getAttributes === true) {
$value = $node->nodeValue;
$attributes = array();
foreach ($node->attributes as $attrNode) {
$attributes[$attrNode->name] = $attrNode->value;
}
$return[$node->nodeName] = array('value'=>$value, 'attributes'=>$attributes);
} else {
$return = $node->nodeValue;
}
} elseif ($n instanceof DOMElement) {
if ($getAttributes === true) {
$value = self::getChildern($n, $getAttributes);
$attributes = array();
foreach ($n->attributes as $attrNode) {
$attributes[$attrNode->name] = $attrNode->value;
}
$return[$n->nodeName][] = array('value'=>$value, 'attributes'=>$attributes);
} else {
$return[$n->nodeName][] = self::getChildern($n, false);
}
}
}
return $return;
} else {
return $node->nodeValue;
}
}
}
?>

View File

@ -1,743 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
$tabTetesRecme=array(
'2006 187300017',
'2006 187300017',
'2006 301374963',
'2006 302097191',
'2006 302421193',
'2006 302977145',
'2006 306771494',
'2006 313320244',
'2006 313402455',
'2006 313643793',
'2006 315065292',
'2006 318186756',
'2006 321777021',
'2006 326094471',
'2006 326817442',
'2006 326981156',
'2006 329297097',
'2006 330715368',
'2006 331057471',
'2006 331596270',
'2006 332737220',
'2006 349250027',
'2006 352751143',
'2006 352973622',
'2006 356000000',
'2006 381856723',
'2006 381984921',
'2006 385290309',
'2006 388202533',
'2006 390199669',
'2006 391406956',
'2006 391718970',
'2006 412280737',
'2006 421671587',
'2006 428822852',
'2006 432766947',
'2006 440546018',
'2006 441133808',
'2006 451930051',
'2006 483790069',
'2006 485389811',
'2006 488203696',
'2006 490946886',
'2006 491041794',
'2006 542008677',
'2006 542085907',
'2006 542089750',
'2006 542094354',
'2006 542107651',
'2006 552016628',
'2006 552017303',
'2006 552049447',
'2006 552081317',
'2006 572104891',
'2006 582056149',
'2006 582056511',
'2006 588502310',
'2006 602001786',
'2006 602019903',
'2006 642006589',
'2006 642036941',
'2006 662006543',
'2006 662012491',
'2006 662043116',
'2006 672049020',
'2006 692039514',
'2006 692041585',
'2006 712013432',
'2006 712032143',
'2006 775558489',
'2006 775604853',
'2006 775641418',
'2006 775663438',
'2006 775665599',
'2006 775665607',
'2006 775665912',
'2006 775685019',
'2006 775688229',
'2006 775700198',
'2006 775701253',
'2006 775722879',
'2006 776056467',
'2006 781804141',
'2006 783595036',
'2006 784276180',
'2006 784301111',
'2006 784396079',
'2006 784804593',
'2006 788058030',
'2006 946751641',
'2006 962504049',
'2007 180089013',
'2007 187300017',
'2007 301374963',
'2007 302097191',
'2007 302421193',
'2007 302977145',
'2007 304992993',
'2007 306771494',
'2007 313320244',
'2007 313402455',
'2007 313643793',
'2007 315065292',
'2007 318186756',
'2007 321777021',
'2007 326094471',
'2007 326817442',
'2007 326981156',
'2007 329297097',
'2007 330715368',
'2007 331057471',
'2007 331596270',
'2007 332737220',
'2007 349250027',
'2007 352751143',
'2007 352973622',
'2007 356000000',
'2007 381856723',
'2007 381984921',
'2007 385290309',
'2007 388202533',
'2007 390199669',
'2007 391406956',
'2007 391718970',
'2007 412280737',
'2007 421671587',
'2007 428684963',
'2007 428822852',
'2007 432766947',
'2007 440546018',
'2007 441133808',
'2007 451930051',
'2007 483790069',
'2007 485389811',
'2007 488203696',
'2007 490946886',
'2007 491041794',
'2007 542008677',
'2007 542085907',
'2007 542089750',
'2007 542094354',
'2007 542107651',
'2007 552016628',
'2007 552017303',
'2007 552049447',
'2007 552081317',
'2007 572104891',
'2007 582056149',
'2007 582056511',
'2007 588502310',
'2007 602001786',
'2007 602019903',
'2007 642006589',
'2007 642036941',
'2007 662006543',
'2007 662043116',
'2007 672049020',
'2007 692039514',
'2007 692041585',
'2007 712013432',
'2007 712032143',
'2007 775558489',
'2007 775604853',
'2007 775641418',
'2007 775663438',
'2007 775665599',
'2007 775665607',
'2007 775665912',
'2007 775685019',
'2007 775688229',
'2007 775700198',
'2007 775701253',
'2007 775722879',
'2007 776056467',
'2007 781804141',
'2007 783595036',
'2007 784276180',
'2007 784301111',
'2007 784396079',
'2007 784804593',
'2007 788058030',
'2007 946751641',
'2007 962504049',
'2008 187300017',
'2008 301374963',
'2008 302097191',
'2008 302421193',
'2008 302977145',
'2008 304992993',
'2008 306771494',
'2008 313320244',
'2008 313402455',
'2008 313643793',
'2008 315065292',
'2008 318186756',
'2008 321777021',
'2008 326094471',
'2008 326817442',
'2008 326981156',
'2008 329297097',
'2008 330715368',
'2008 331057471',
'2008 331596270',
'2008 332737220',
'2008 349250027',
'2008 352751143',
'2008 352973622',
'2008 356000000',
'2008 381856723',
'2008 381984921',
'2008 385290309',
'2008 388202533',
'2008 390199669',
'2008 391406956',
'2008 391718970',
'2008 412280737',
'2008 421671587',
'2008 428684963',
'2008 428822852',
'2008 432766947',
'2008 440546018',
'2008 441133808',
'2008 451930051',
'2008 483790069',
'2008 485389811',
'2008 488203696',
'2008 490946886',
'2008 491041794',
'2008 493292403',
'2008 493425136',
'2008 501524029',
'2008 542008677',
'2008 542085907',
'2008 542089750',
'2008 542094354',
'2008 552016628',
'2008 552017303',
'2008 552049447',
'2008 552081317',
'2008 572104891',
'2008 582056149',
'2008 582056511',
'2008 588502310',
'2008 602001786',
'2008 642006589',
'2008 642036941',
'2008 662006543',
'2008 662043116',
'2008 672049020',
'2008 692039514',
'2008 692041585',
'2008 712013432',
'2008 712032143',
'2008 775558489',
'2008 775604853',
'2008 775641418',
'2008 775663438',
'2008 775665599',
'2008 775665607',
'2008 775665912',
'2008 775685019',
'2008 775688229',
'2008 775700198',
'2008 775701253',
'2008 775722879',
'2008 776056467',
'2008 781804141',
'2008 783595036',
'2008 784276180',
'2008 784301111',
'2008 784396079',
'2008 784804593',
'2008 788058030',
'2008 946751641',
'2008 962504049',
'2009 160020012',
'2009 180036147',
'2009 187300017',
'2009 301374963',
'2009 302097191',
'2009 302421193',
'2009 302977145',
'2009 304992993',
'2009 313320244',
'2009 313402455',
'2009 315065292',
'2009 318186756',
'2009 321777021',
'2009 326094471',
'2009 326817442',
'2009 330715368',
'2009 331596270',
'2009 332737220',
'2009 349250027',
'2009 352751143',
'2009 352973622',
'2009 356000000',
'2009 381856723',
'2009 381984921',
'2009 385290309',
'2009 388202533',
'2009 390199669',
'2009 391406956',
'2009 391718970',
'2009 412280737',
'2009 421671587',
'2009 428684963',
'2009 428822852',
'2009 432766947',
'2009 440546018',
'2009 441133808',
'2009 451930051',
'2009 483790069',
'2009 485389811',
'2009 487607202',
'2009 493292403',
'2009 493425136',
'2009 493479489',
'2009 501524029',
'2009 507542652',
'2009 542008677',
'2009 542085907',
'2009 542089750',
'2009 542094354',
'2009 552016628',
'2009 552017303',
'2009 552049447',
'2009 552081317',
'2009 572104891',
'2009 582056149',
'2009 582056511',
'2009 588502310',
'2009 602001786',
'2009 642006589',
'2009 642036941',
'2009 662006543',
'2009 662043116',
'2009 672049020',
'2009 692039514',
'2009 692041585',
'2009 712013432',
'2009 712032143',
'2009 775558489',
'2009 775604853',
'2009 775641418',
'2009 775663438',
'2009 775665599',
'2009 775665607',
'2009 775665912',
'2009 775685019',
'2009 775688229',
'2009 775700198',
'2009 775701253',
'2009 775722879',
'2009 776056467',
'2009 781804141',
'2009 783595036',
'2009 784276180',
'2009 784301111',
'2009 784396079',
'2009 784804593',
'2009 788058030',
'2009 946751641',
'2009 962504049',
'2010 160020012',
'2010 180020034',
'2010 180036147',
'2010 301374963',
'2010 302097191',
'2010 302421193',
'2010 302977145',
'2010 303091086',
'2010 304992993',
'2010 313320244',
'2010 313402455',
'2010 315065292',
'2010 318186756',
'2010 326094471',
'2010 326817442',
'2010 330715368',
'2010 331596270',
'2010 332737220',
'2010 349250027',
'2010 352751143',
'2010 352973622',
'2010 356000000',
'2010 381856723',
'2010 381984921',
'2010 385290309',
'2010 388202533',
'2010 390199669',
'2010 391406956',
'2010 391718970',
'2010 391790961',
'2010 412280737',
'2010 421671587',
'2010 428684963',
'2010 428822852',
'2010 432766947',
'2010 440546018',
'2010 441133808',
'2010 451930051',
'2010 483790069',
'2010 484360250',
'2010 485389811',
'2010 487607202',
'2010 493292403',
'2010 493425136',
'2010 493479489',
'2010 501524029',
'2010 507542652',
'2010 508364155',
'2010 542008677',
'2010 542085907',
'2010 542089750',
'2010 542094354',
'2010 552016628',
'2010 552017303',
'2010 552049447',
'2010 552081317',
'2010 572104891',
'2010 582056149',
'2010 582056511',
'2010 588502310',
'2010 602001786',
'2010 642006589',
'2010 642036941',
'2010 662006543',
'2010 662043116',
'2010 672049020',
'2010 692039514',
'2010 692041585',
'2010 712013432',
'2010 712032143',
'2010 775558489',
'2010 775604853',
'2010 775641418',
'2010 775663438',
'2010 775665599',
'2010 775665607',
'2010 775665912',
'2010 775685019',
'2010 775688229',
'2010 775700198',
'2010 775701253',
'2010 775722879',
'2010 775729155',
'2010 776056467',
'2010 781804141',
'2010 783595036',
'2010 784276180',
'2010 784301111',
'2010 784396079',
'2010 784804593',
'2010 788058030',
'2010 946751641',
'2010 962504049',
'2011 160020012',
'2011 180020034',
'2011 180036147',
'2011 301374963',
'2011 302097191',
'2011 302421193',
'2011 302977145',
'2011 304992993',
'2011 313320244',
'2011 313402455',
'2011 315065292',
'2011 318186756',
'2011 326094471',
'2011 326817442',
'2011 330715368',
'2011 331596270',
'2011 349250027',
'2011 352751143',
'2011 352973622',
'2011 356000000',
'2011 381856723',
'2011 381984921',
'2011 385290309',
'2011 388202533',
'2011 390199669',
'2011 391406956',
'2011 391718970',
'2011 391790961',
'2011 412280737',
'2011 421671587',
'2011 428684963',
'2011 428822852',
'2011 432766947',
'2011 440546018',
'2011 441133808',
'2011 451930051',
'2011 483790069',
'2011 485389811',
'2011 487607202',
'2011 493292403',
'2011 493425136',
'2011 493479489',
'2011 501524029',
'2011 507542652',
'2011 508364155',
'2011 519587851',
'2011 527946537',
'2011 542085907',
'2011 542089750',
'2011 542094354',
'2011 552016628',
'2011 552017303',
'2011 552049447',
'2011 552081317',
'2011 572104891',
'2011 582056511',
'2011 588502310',
'2011 642006589',
'2011 642036941',
'2011 662043116',
'2011 672049020',
'2011 692039514',
'2011 692041585',
'2011 712013432',
'2011 712032143',
'2011 775558489',
'2011 775604853',
'2011 775663438',
'2011 775665599',
'2011 775665607',
'2011 775665912',
'2011 775685019',
'2011 775688229',
'2011 775700198',
'2011 775701253',
'2011 775722879',
'2011 775729155',
'2011 776056467',
'2011 781804141',
'2011 783595036',
'2011 784276180',
'2011 784301111',
'2011 784396079',
'2011 784804593',
'2011 788058030',
'2011 946751641',
'2011 962504049',
);
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'common/dbf_class.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(FWK_PATH.'mail/sendMail.php');
$urlBase='http://www.insee.fr';
$db_name='insee';
$db_table='insee_tabRecme';
$j=0;
$nbRecme=999; // Récupération de tous les RECME
$modeDebug=false;
$fichier_csv=array();
$separator=',';
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [FICHIERS]
Récupération du RECME (Répertoire des Entreprises Contrôlées Majoritairement par l'État).
Options :
-d Récupération du dernier RECME sur le site de l'INSEE
-t Récupération de tous les derniers RECME sur le site de l'INSEE
-v Mode bavard
";
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $nbRecme=1; break;
case 't': $nbRecme=999; break;
case 'v': $modeDebug=true; break;
default: die($strInfoScript); break;//'Option '. $argv[$i] . " inconnue !".EOL);
}
} else {
$fichier_csv[$j]=$argv[$i];
$j++;
}
}
if (count($fichier_csv)==0) {
/*$tabZones=array('url1'=>"<ul class=\"liens\"><li><a href=\"(detail.asp?ref_id=ir-recme$annee.*)\">(?:.*)</a></li>",
'url2'=>"<li><a href=\"(detail.asp?ref_id=ir-recme$annee.*)\">Le répertoire des entreprises contrôlées majoritairement par l'État (RECME)</a></li>",
);
*/
echo date ('Y/m/d - H:i:s')." - Recherche du dernier RECME...".EOL;
for($annee=date('Y')-2; $annee>2005; $annee--) {
$url=$urlBase."/fr/themes/detail.asp?ref_id=ir-recme$annee&page=irweb/recme$annee/dd/recme$annee".'_repertoire.htm';
$page=getUrl($url, '', '', '', false);
$referer=$url;
$body=$page['body'];
if (!preg_match_all('/<tr><td class="num">T(\d\d\d\d)<\/td>\s+<td class=apnum>Le Recme (\d\d\d\d)<\/td>\s+<td class="vm"><a href="(.*\.dbf)" title=\'T&eacute(?:.*)au format dBase \'><img class="tele" alt=\'T&eacute(?:.*)gif"><\/a>/Uim', $body, $matches)) {
echo date ('Y/m/d - H:i:s')." - Pas de RECME pour l'année $annee !".EOL;
randsleep(7,21);
continue;
} else
echo date ('Y/m/d - H:i:s')." - Le dernier RECME disponible est celui de l'année $annee.".EOL;
randsleep(7,21);
foreach($matches[2] as $i=>$millesime)
$tabUrlRecme[$millesime]=$urlBase.$matches[3][$i];
foreach($tabUrlRecme as $millesime=>$url) {
$nbTent=1;
while(1) {
echo date ('Y/m/d - H:i:s')." - Téléchargement du RECME de l'année $millesime...".EOL;
if ($modeDebug && $nbTent<=1) echo date ('Y/m/d - H:i:s')." - URL='$url'".EOL;
$page=getUrl($url, '', '', $referer, false);
if ($page['code']<>404) break;
$nbTent++;
echo date ('Y/m/d - H:i:s')." - Attente avant la prochaine tentative de téléchargement n°$nbTent du RECME de l'année $millesime...".EOL;
randsleep(7,21);
}
if ($nbTent==1) randsleep(7,21);
$body=$page['body'];
$len=strlen($body);
$fichierDbf=REP_TEMP.'RECME_'.$millesime.'.dbf';
$fichierCsv=REP_TEMP.'RECME_'.$millesime.'.csv';
if (file_put_contents($fichierDbf, $body)) {
echo date ('Y/m/d - H:i:s')." - Récupération du RECME $millesime au format DBF : $len octets".EOL;
@unlink($fichierCsv);
@system ('dbf2csv --header '.$fichierDbf.' --outfile='.$fichierCsv);
if (!file_exists($fichierCsv)) die("Erreur lors de la conversion du fichier DBF en CSV".EOL);
$nbLignes=count(file($fichierCsv));
echo date ('Y/m/d - H:i:s')." - Conversion du RECME $millesime au format CSV : $nbLignes lignes".EOL;
$fichier_csv[]=$fichierCsv;
} else
die("Erreur lors de l'écriture du fichier DBF en local".EOL);
}
// print_r($matches);
// print_r($tabUrlRecme);
if (count($tabUrlRecme)>=10) break;
}
}
//die();
$iDb=new WDB($db_name);
for ($nbFichiers=0; isset($fichier_csv[$nbFichiers]); $nbFichiers++) {
$nbLignes=0;
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $fichier_csv[$nbFichiers] ."...".EOL;
$anneeRecme=substr($fichier_csv[$nbFichiers],-8);
$anneeRecme=substr($anneeRecme,0,4)*1;
$fp = fopen($fichier_csv[$nbFichiers], 'r');
while (($data = fgetcsv($fp, 3000, $separator)) !== FALSE) {
$nbLignes++;
if ($nbLignes==1) {
// L'entête contient la structure du fichier
// On compte le nombre de colonnes du fichier
$nbColonnes=count($data);
//$sql="CREATE TABLE IF NOT EXISTS `$nom_table` (";
for($i=0; $i<$nbColonnes; $i++) {
//$sql.='`'.$data[$i].'` LONGTEXT,';
$tabTailles[$i]=0;
$champ[$i]=$data[$i];
}
/* $sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
$sql.=") ENGINE = MYISAM COMMENT = '$comment'";
if ($dropBefore)
$iDb->query("DROP TABLE IF EXISTS `$nom_table`");
if ($iDb->query($sql))
echo date ('Y/m/d - H:i:s')." - Création de la table $nom_table OK...".EOL;
else {
echo $iDb->getLastError().EOL;
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $nom_table !".EOL."Requête SQL = $sql".EOL);
}*/
continue;
}
$tabDataToInsert=array();
for($i=0; $i<$nbColonnes; $i++) {
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
if (strlen($data[$i])>$tabTailles[$i])
$tabTailles[$i]=strlen($data[$i]);
}
$cp=$ville=$dep=$reg=$ape='';
$lienDirect=0;
$siren=@trim($tabDataToInsert['N'])*1;
if ($siren==0) $siren=@trim($tabDataToInsert['SIREN'])*1;
$dep=@trim($tabDataToInsert['D']);
if ($dep=='') $dep=@trim($tabDataToInsert['DEPARTEMEN']);
$reg=@trim($tabDataToInsert['R']);
if ($reg=='') $reg=@trim($tabDataToInsert['REGION']);
$ape=@trim($tabDataToInsert['APE']);
if ($ape=='') $ape=@trim($tabDataToInsert['APE_REV2']);
$cpVille=@trim($tabDataToInsert['COMMUNE']);
if ($cpVille=='') $cpVille=@trim($tabDataToInsert['CODE_POSTA']);
if(preg_match('/^(\d+)\s(.*)$/Ui', $cpVille, $matches)) {
$cp=$matches[1];
$ville=$matches[2];
} else
$ville=$cpVille;
if (in_array("$anneeRecme $siren", $tabTetesRecme)) $lienDirect=1;
$tabInsert=array( 'siren' => $siren,
'raisonSociale' => trim($tabDataToInsert['RAISON_SOC']),
'adresse' => trim($tabDataToInsert['ADRESSE']),
'cp' => $cp,
'commune' => $ville,
'dept' => $dep,
'region' => $reg,
'cj' => trim($tabDataToInsert['CJ']),
'ape' => $ape,
'annee' => $anneeRecme,
'lienDirect' => $lienDirect,
);
/*print_r($tabInsert);
die();
*/
if ($iDb->insert($db_table, $tabInsert, false))
if (!$iDb->update($db_table, $tabInsert, "annee=$anneeRecme AND siren=$siren", false))
echo date ('Y/m/d - H:i:s') . " - ERREUR à la MAJ de la ligne n°$i : ". implode(';', $data) ." !".EOL;
//unset($tabDataToInsert);
}
fclose ($fp);
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL;
?>

View File

@ -1,728 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'common/ftp.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
/*
Serveur FTP :
Votre identifiant :
Votre mot de passe : 5h-P,z5(*/
define('AMABIS_FTP_URL', 'ftp.amabis.com');
define('AMABIS_FTP_USER', 'refgeo_pack_H');
define('AMABIS_FTP_PASS', '5h-P,z5(');
define('AMABIS_FTP_REMOTE_DIR', '*.gz');
define('AMABIS_LOCAL_DIR', '/home/data/amabis/');
$strInfoScript='Usage : '.basename($argv[0]). " <option> FICHIERS...
Chargement des fichiers référentiels SNA via Amabis.
Options :
-d Mode debug (Verbosité au maximum)
-j Ne pas récupérer les derniers fichiers sur le FTP de l'Insee
-u Forcer la mise à jour la table identite de l'insee
-s=20080430 Réappliquer les évènements depuis cette date
";
$iDb=new WDB('villes');
//$iInsee=new MInsee();
$modeDebug=$dateReprise=false;
$ftpStep=true;
$updateInsee=false;
$tabFichier=array();
$nomFichierCharges=array();
$nbLignesCharges=$nbSiretInvalidesCharges=0;
//Initialistation des variables
$argv=$_SERVER['argv'];
//if ($_SERVER['argc']==1) die("Non géré pour l'instant : chargera les derniers fichiers EVEN non chargés !".EOL);
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $modeDebug=true; break;
case 'j': $ftpStep=false; break;
case 'u': $updateInsee=true; break;
case 's': $dateReprise=substr($argv[$i],3,8); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichier[]=$argv[$i];
}
/*
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des évènements INSEE".EOL;
$db_table='cedexa';
if ($ftpStep) {
/* Récupération des flux FTP *
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux FTP de l'INSEE...".EOL;
$ret=ftp_mget(AMABIS_FTP_URL, AMABIS_FTP_USER, AMABIS_FTP_PASS, AMABIS_FTP_REMOTE_DIR, AMABIS_LOCAL_DIR, true);
if ($ret===false)
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux INSEE en FTP incorrecte !".EOL);
else
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux INSEE en FTP ($ret fichiers récupérés).".EOL;
}
/** Liste des fichiers quotidiens de l'Insee
**
$dh = opendir(AMABIS_LOCAL_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -7)=='.txt.gz')
$tabFichier[] = $filename;
}
*/
//$tabToIdentite=array();
/** Chargement des fichiers si nécessaire
**/
for ($i=0; isset($tabFichier[$i]); $i++)
{
$nomFichier =$tabFichier[$i];
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier".EOL;
$fp=fopen($nomFichier, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter '".$nomFichier."'".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
die();
}
$nbLignes=0; // Nombre de ligne du fichier
while (!feof($fp))
{
$a = fgets($fp, 1024);
if ($nbLignes==0) {
/*19/02/2012©LA POSTE HEXAPOSTE COMPLET 32
19/02/2012©LA POSTE HEXAPOSTE COMPLET 38
21/07/2014©LA POSTE HEXAVIA MISE A JOUR 38
19/02/2012©LA POSTE HEXACLE COMPLET
P19/02/2012©LA POSTE HEXALIGNE3 COMPLET 38
P19/02/2012©LA POSTE HEXALIGNE3 COMPLET 32
019-02-2012CEDEXA COMPLET 38
019-02-2012CEDEXA COMPLET 32
0000019-02-2012ROUDIS2000 COMPLET 38
0000019-02-2012ROUDIS2000 COMPLET 32
*/
if (strpos($a, 'HEXAPOSTE')) { $produit='HEXAPOSTE'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,0,10)); }
elseif (strpos($a, 'HEXAVIA')) { $produit='HEXAVIA'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,0,10)); }
elseif (strpos($a, 'HEXACLE')) { $produit='HEXACLE'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,0,10)); }
elseif (strpos($a, 'HEXALIGNE3')) { $produit='HEXALIGNE3'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,1,10)); }
elseif (strpos($a, 'CEDEXA')) { $produit='CEDEXA'; $dateFlux=WDate::dateT('d-m-Y','Y-m-d', substr($a,1,10)); }
elseif (strpos($a, 'ROUDIS2000')) { $produit='ROUDIS'; $dateFlux=WDate::dateT('d-m-Y','Y-m-d', substr($a,5,10)); }
if (strpos($a, 'COMPLET')) { $stock=1; $libStock='STOCK';}
elseif (strpos($a, 'MISE A JOUR')) {$stock=0; $libStock='Mise à jour';}
if (strpos($a, ' 32 ')) $norme=32;
elseif (strpos($a, ' 38 ')) $norme=38;
}
$nbLignes++;
}
echo date ('Y/m/d - H:i:s')." - $libStock $produit en norme $norme en date du $dateFlux ($nbLignes lignes à traiter)".EOL;
$nbLignesTot=$nbLignes++;
$nbLignes=0;
$nbInsert=$nbUpdate=$nbErreurs=array();
rewind($fp);
// On ignore la ligne 1
$a = fgets($fp, 1024);
while (!feof($fp))
{
$nbLignes++;
$a = trim(fgets($fp, 1024));
if ($produit=='HEXAVIA') {
$codeLigne = strtoupper(substr($a, 0, 1));
@$nbInput[$codeLigne]++;
$k1=$k2=false;
if ($norme==32) $tabUpdate=array('dateMaj32'=>$dateFlux);
else $tabUpdate=array('dateMaj38'=>$dateFlux);
if ($codeLigne=='L') {
$table='hexaviaVilles';
$tabUpdate['idAdr56'] =$k1=trim(substr($a, 1, 6));
$tabUpdate['codeInseeCom'] =trim(substr($a, 7, 5));
$strWhere="idAdr56='$k1'";
if ($norme==32) {
$tabUpdate['libCom32'] =trim(substr($a, 28,32));
$tabUpdate['codeInseeGlobal'] =trim(substr($a, 60, 5));
$tabUpdate['indPluridis'] =trim(substr($a, 65, 1));
$tabUpdate['libLigne5n32'] =trim(substr($a, 66,32));
$tabUpdate['indRoudis'] =trim(substr($a, 98, 1));
$tabUpdate['codePostal'] =trim(substr($a, 99, 5));
$tabUpdate['libLigne6n32'] =trim(substr($a,104,26));
$tabUpdate['codeInseePre'] =trim(substr($a,130, 5));
$tabUpdate['codeMaj32'] =trim(substr($a,135, 1));
} elseif ($norme==38) {
$tabUpdate['libCom38'] =trim(substr($a, 28,38));
$tabUpdate['codeInseeGlobal'] =trim(substr($a, 66, 5));
$tabUpdate['indPluridis'] =trim(substr($a, 71, 1));
$tabUpdate['libLigne5n38'] =trim(substr($a, 72,38));
$tabUpdate['indRoudis'] =trim(substr($a,110, 1));
$tabUpdate['codePostal'] =trim(substr($a,111, 5));
$tabUpdate['libLigne6n38'] =trim(substr($a,116,32));
$tabUpdate['codeInseePre'] =trim(substr($a,148, 5));
$tabUpdate['codeMaj38'] =trim(substr($a,153, 1));
}
} elseif ($codeLigne=='V') {
$table='hexaviaVoies';
$tabUpdate['idAdr56'] =$k1=trim(substr($a, 1, 6));
$tabUpdate['codeInseeCom'] =trim(substr($a, 7, 5));
$tabUpdate['codeVoie'] =$k2=trim(substr($a, 12, 8));
$tabUpdate['derElemVoie'] =trim(substr($a, 40,20));
$strWhere="idAdr56='$k1' AND codeVoie='$k2'";
if ($norme==32) {
$tabUpdate['libVoie32'] =trim(substr($a, 60,27));
$tabUpdate['typeVoie'] =trim(substr($a, 87, 4));
$tabUpdate['descLibVoie'] =trim(substr($a, 91,10));
$tabUpdate['indStand32'] =trim(substr($a,101, 1));
$tabUpdate['indScind'] =trim(substr($a,102, 1));
$tabUpdate['indHomo'] =trim(substr($a,103, 1));
$tabUpdate['codePostal'] =trim(substr($a,104, 5));
$tabUpdate['numImpMin'] =trim(substr($a,109, 4));
$tabUpdate['numImpMinExt'] =trim(substr($a,113, 1));
$tabUpdate['numImpMax'] =trim(substr($a,115, 4));
$tabUpdate['numImpMaxExt'] =trim(substr($a,120, 1));
$tabUpdate['numPairMin'] =trim(substr($a,121, 4));
$tabUpdate['numPairMinExt'] =trim(substr($a,125, 1));
$tabUpdate['numPairMax'] =trim(substr($a,127, 4));
$tabUpdate['numPairMaxExt'] =trim(substr($a,131, 1));
$tabUpdate['codeRoudis'] =trim(substr($a,132, 5));
$tabUpdate['codeMaj32'] =trim(substr($a,142, 1));
} elseif ($norme==38) {
$tabUpdate['libVoie38'] =trim(substr($a, 60,32));
$tabUpdate['typeVoie'] =trim(substr($a, 92, 4));
if ($tabUpdate['typeVoie']=='') unset($tabUpdate['typeVoie']);
$tabUpdate['descLibVoie'] =trim(substr($a, 96,10));
$tabUpdate['indStand38'] =trim(substr($a,106, 1));
$tabUpdate['indScind'] =trim(substr($a,107, 1));
$tabUpdate['indHomo'] =trim(substr($a,108, 1));
$tabUpdate['codePostal'] =trim(substr($a,109, 5));
$tabUpdate['numImpMin'] =trim(substr($a,114, 4));
$tabUpdate['numImpMinExt'] =trim(substr($a,118, 1));
$tabUpdate['numImpMax'] =trim(substr($a,120, 4));
$tabUpdate['numImpMaxExt'] =trim(substr($a,124, 1));
$tabUpdate['numPairMin'] =trim(substr($a,126, 4));
$tabUpdate['numPairMinExt'] =trim(substr($a,130, 1));
$tabUpdate['numPairMax'] =trim(substr($a,132, 4));
$tabUpdate['numPairMaxExt'] =trim(substr($a,136, 1));
$tabUpdate['codeRoudis'] =trim(substr($a,137, 5));
$tabUpdate['codeMaj38'] =trim(substr($a,147, 1));
}
} elseif ($codeLigne=='W') {
$table='hexaviaSyno';
$tabUpdate['codeInseeCom'] =trim(substr($a, 7, 5));
$tabUpdate['codeVoie'] =$k1=trim(substr($a, 12, 8));
$tabUpdate['codeVoieSyno'] =$k2=trim(substr($a, 20, 8));
$tabUpdate['derElemVoie'] =trim(substr($a, 40,20));
$strWhere="codeVoie='$k1' AND codeVoieSyno='$k2'";
if ($norme==32) {
$tabUpdate['libVoieSyn32'] =trim(substr($a, 60,27));
$tabUpdate['typeVoieSyn'] =trim(substr($a, 87, 4));
$tabUpdate['descLibVoieSyn'] =trim(substr($a, 91,10));
$tabUpdate['indStand32'] =trim(substr($a,101, 1));
$tabUpdate['codeMaj32'] =trim(substr($a,107, 1));
$tabUpdate['typeAppel'] =trim(substr($a,108, 1));
} elseif ($norme==38) {
$tabUpdate['libVoieSyn38'] =trim(substr($a, 60,32));
$tabUpdate['typeVoieSyn'] =trim(substr($a, 92, 4));
if ($tabUpdate['typeVoieSyn']=='') unset($tabUpdate['typeVoieSyn']);
$tabUpdate['descLibVoieSyn'] =trim(substr($a, 96,10));
$tabUpdate['indStand38'] =trim(substr($a,106, 1));
$tabUpdate['codeMaj38'] =trim(substr($a,112, 1));
$tabUpdate['typeAppel'] =trim(substr($a,113, 1));
}
}
$ret=$iDb->select($table, "COUNT(*) AS nbRec", $strWhere, false, MYSQL_ASSOC);
if ($ret[0]['nbRec']>0) {
$ret=$iDb->update($table, $tabUpdate, $strWhere, false);
@$nbUpdate[$table]++;
} else {
$tabUpdate['dateInsert']=date('YmdHis');
$ret=$iDb->insert($table, $tabUpdate, false);
@$nbInsert[$table]++;
if ($ret===false) {
echo date ('Y/m/d - H:i:s') . " - ERREUR n°". mysql_errno()." à l'insertion : ".mysql_error().'!'.EOL;
@$nbErreurs[$table]++;
}
}
}
if ($nbLignes%100000==0) {
//echo date ('Y/m/d - H:i:s')." - Fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot : $nbInsert ajouts, $nbUpdate MAJ et $nbErreurs erreurs).".EOL;
foreach ($nbInsert as $key=>$nb)
echo date ('Y/m/d - H:i:s')." - Fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot : $key $nb ajouts, ".@(1*$nbUpdate[$key]).' MAJ et '.@(1*$nbErreurs[$key]).' erreurs).'.EOL;
}
}
print_r($nbInput[$codeLigne]);
echo date ('Y/m/d - H:i:s')." - Fin du traitement du fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot lignes traitées)".EOL;
echo date ('Y/m/d - H:i:s')." - $libStock $produit en norme $norme ($dateFlux)".EOL;
foreach ($nbInsert as $key=>$nb)
echo date ('Y/m/d - H:i:s')." - Fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot : $key : $nb ajouts, ".@(1*$nbUpdate[$key]).' MAJ et '.@(1*$nbErreurs[$key]).' erreurs.'.EOL;
die();
gzclose($fp);
echo date ('Y/m/d - H:i:s')." - Le fichier n°$i, $nomFichier vient d'être chargé.".EOL;
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siret invalides !".EOL;
$nomFichierCharges[]=$nomFichier;
$nbLignesCharges=$nbLignes;
$nbSiretInvalidesCharges=$nbSiretInvalides;
}
echo date ('Y/m/d - H:i:s') . " - Au total : $nbLignes lignes traitées dont $nbSiretInvalides siret invalides !".EOL;
echo date ('Y/m/d - H:i:s') . " - Chargement des évènements terminé";
die();
/**********************************************************************************************************************************
* MISE A JOUR DE LA TABLE IDENTITE
**********************************************************************************************************************************/
if ($updateInsee) {
echo ', début de mise à jour de la table identite.'.EOL;
$fieldsR='insSIREN, insNIC, insEVE, insDATEVE, insTYPETAB, insORIGINE, insDESTINAT, insTRAN, insNICTRAN, insL1_NOMEN, insNOMEN, insL2_COMP, insENSEIGNE, insSIGLE, insSIEGE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insLIBCOM, insCODPOS, insL3_CADR, insL5_DISP, insAUXILT, insSAISONAT, insCJ, insCIVILITE, insDCRET, insDCREN, insAPEN700, insAPET700, insNBETEXPL, insTEFEN, insCODEVOIE, insDEPCOM, insTEL, insEFENCENT, insTEFET, insEFETCENT, insL7_ETRG, insAPRM, insACTIVNAT, insORIGINE, insMODET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insMODEN, insPRODPART, insEXPLEN, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insDAPEN, dirNom, dirNomUsage, dirPrenom, insDATEMAJ';
// on lit R pour mettre à jour W
$fieldsW='SIREN, NIC, IDENTITE_PRE, ACTIF, NOM, NOM2, ENSEIGNE, SIGLE, SIEGE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, AUXILT, SAISONAT, CJ, CIVILITE, DCRET, DCREN, APE_ENT, APE_ETAB, NBETAB, TEFF_ENT, TCA, CODEVOIE, ADR_DEP, ADR_COM, TEL, EFF_ENT, TEFF_ET, EFF_ET, PAYS, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, DAPET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, DEFEN, MONOREG, REGIMP, MONOACT, DAPEN, DIR_FCT, DIR_IDEN, DATE_MAJ';
if (!$dateReprise)//$tabToIdentite
sort($tabToIdentite);
else
$tabToIdentite=array($dateReprise);
foreach ($tabToIdentite as $idFlux) {
//$idFlux='20080114';
if (!$dateReprise) {
echo date ('Y/m/d - H:i:s') . " - Début du chargement du flux $idFlux...".EOL;
$ret=$iDbR->select('insee_even', $fieldsR, "idFlux=$idFlux ORDER BY idFlux ASC, insSIREN ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s') . " - Chargement du flux $idFlux : $ret lignes à mettre à jour...".EOL;
} else {
echo date ('Y/m/d - H:i:s') . " - Chargement des flux quotidiens depuis $idFlux...".EOL;
$ret=$iDbR->select('insee_even', $fieldsR, "idFlux>=$idFlux ORDER BY idFlux ASC, insSIREN ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
// $ret=$iDbR->select('insee_even', $fieldsR, "idFlux>=$idFlux AND LENGTH(insL2_COMP)>30 ORDER BY idFlux ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
/* $ret=$iDbR->select('insee_even', $fieldsR, "insSIREN IN (100800002,987310505) AND idFlux IN (20040426, 20080114) ORDER BY idFlux ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);*/
echo date ('Y/m/d - H:i:s') . " - $ret lignes à mettre à jour...".EOL;
}
$k=$nbInsert=$nbUpdate=$nbDBl=0;
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
$k++;
$siren=$ligne['insSIREN'];
$nic =$ligne['insNIC'];
$ret2=$iDbW->select('identite', $fieldsW, "SIREN=$siren AND NIC=$nic");
$cpt=count($ret2);
if ($cpt>0) $etab=$ret2[0];
else $etab=array('IDENTITE_PRE'=>'',
'NOM'=>'',
'ENSEIGNE'=>'',
'SIGLE'=>'');
$cj1=substr($ligne['insCJ'],0,1)*1;
if ($cj1==1) {
$arrDir=array( 'DIR_FCT'=>'PP',
'DIR_IDEN'=> strtoupper(trim($ligne['dirNom'])).' '.
ucwords(strtolower(trim($ligne['dirPrenom']))));
} else
$arrDir=array();
$even=trim($ligne['insEVE'])*1;
$typEtab=trim($ligne['insTYPETAB'])*1;
if ($even==0) {
switch(''.trim($ligne['insEVE'])) {
case 'MPF':
case 'MNP':
case 'MSA':
case 'MAS':
case 'MAC':
case 'M00':
case '00': $even=780; break;
case 'M0C':
case 'CC': $even=110; break; // Création d'une entreprise
case 'M0F':
case 'FF': $even=410; break; // Fermeture de l'entreprise
case 'OC': $even=130; break; // Création d'un établissement
case 'RC': $even=120; break; // Réactivation d'une entreprise par création d'un établissement
case 'M0R':
case 'RR': $even=120; break; // Réactivation d'une entreprise par réactivation d'un établissement
case 'OA': $even=145; break; // Activation économique d'un étab par adjonction de moyens de production
case 'OD': $even=430; break; // Désactivation économique d'un étab par suppression de moyens de prod.
case 'OF': $even=430; break; // Fermeture d'un établissement
case 'TC': $even=510; $typEtab=11; break; // Création de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
case 'TR': $even=510; $typEtab=11; break;
case 'T0': $even=510; $typEtab=11; break;
case 'TA': $even=510; $typEtab=11; break;
case 'TF': $even=510; $typEtab=10; break; // Fermeture d'un établissement dans le cadre d'un transfert
case 'TD': $even=510; $typEtab=10; break; // Désactivation économique d'un établissement (ordinaire devient singulier) par suppression de moyens de production dans le cadre d'un transfert
default:
if (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='C') $even=130;
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='A') $even=145;
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='D') $even=430;
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='F') $even=430;
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='R') $even=120;
else echo ("Erreur code sur Siren $siren $nic : code Even=\"".trim($ligne['insEVE']).'"'.EOL);
break;
}
}
//$even=780
$origine=trim($ligne['insORIGINE']);
$destinat=trim($ligne['insDESTINAT']);
$dateFerEN=$dateFerET=-1; // Rar défaut, on n'y touche pas
switch ($even) {
case 110: // Création ou réactivation Création d'une entreprise
case 120: // Réactivation d'une entreprise
case 125: // Réactivation d'une entreprise suite à une mise à jour du répertoire
case 130: // Création d'un établissement
case 145: // Reprise d'activité dans un établissement suite à une mise à jour du répertoire
switch ($typEtab) {
case 15: // Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique
case 23: // Établissement fermé (hors transfert)
case 25: // Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique
$dateFerET=$ligne['insDATEVE'];
$actif=0;
break;
default:
$dateFerET=$dateFerEN=0;
$actif=1;
break;
}
break;
case 400: // Suppression d'un double
//$dateFerET=$dateFerEN=0;
$actif=-1;
continue; // On ignore les suppressions de doublons
break;
case 410: // Cessation juridique de l'entreprise
case 420: // Absence d'activité de l'entreprise (cessation économique de l.entreprise)
$dateFerET=$ligne['insDATEVE'];
$dateFerEN=$ligne['insDATEVE'];
$actif=0;
/** @todo, il faudrait fermer tous les étabs **/
break;
case 425: // Absence d'activité d'une entreprise suite à une mise à jour au répertoire
case 430: // Fermeture d'un établissement
case 435: // Fermeture d'un établissement suite à une mise à jour au répertoire
switch ($typEtab) {
case 13: // Siège fermé (hors transfert)
case 15: // Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique
case 23: // Établissement fermé (hors transfert)
case 25: // Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique
$dateFerET=$ligne['insDATEVE'];
$actif=0;
break;
case 14: // Siège modifié (hors transfert) : modification de l'activité principale avec activation économique
case 16: // Siège modifié (hors transfert) : modification de l'APE de l'établissement
case 17: // Siège modifié (hors transfert) : modification de l'identification de l'établissement
case 19: // Siège modifié (hors transfert) : autre modification de l'établissement
case 24: // Établissement modifié (hors transfert) : modification de l'activité principale avec activation économique
$dateFerET=$dateFerEN=0;
$actif=1;
break;
default:
$actif=-1;
break;
}
break;
case 510: // Création de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
case 520: // Création de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert
case 530: // Modification de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
case 540: // Modification de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert
switch ($typEtab) {
case 9: // Siège après transfert non créé
case 8: // Siège avant transfert non fermé
case 11: // Siège après transfert créé
case 12: // Siège créé (hors transfert)
case 14: // Siège modifié (hors transfert) : modification de l'activité principale avec activation économique
case 21: // Établissement après transfert créé
case 22: // Établissement créé (hors transfert)
case 24: // Établissement modifié (hors transfert) : modification de l'activité principale avec activation économique
case 30: // Établissement avant transfert non fermé
case 31: // Établissement après transfert non créé
//echo "case even=$even, typeEtab=$typEtab\n";
$dateFerET=$dateFerEN=0;
$actif=1;
break;
case 10: // Siège avant transfert fermé
case 13: // Siège fermé (hors transfert)
case 15: // Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique
case 20: // Établissement avant transfert fermé
case 23: // Établissement fermé (hors transfert)
case 25: // Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique
case 32: // Établissement supprimé
//echo "case even=$even, typeEtab=$typEtab\n";
$dateFerET=$ligne['insDATEVE'];
$actif=0;
break;
default:
$actif=-1;
break;
/*
Que fait on pour ces codes ?
16 Siège modifié (hors transfert) : modification de l'activité principale de l'établissement
17 Siège modifié (hors transfert) : modification de l'identification de l'établissement
19 Siège modifié (hors transfert) : autre modification de l'établissement
26 Établissement modifié (hors transfert) : autre modification de l'activité principale de l'établissement
27 Établissement modifié (hors transfert) : modification de l'identification de l'établissement
29 Établissement modifié (hors transfert) : modification d.une autre variable de l'établissement*/
}
break;
case 610: // Modification d'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production
case 640: // Modification d'activité au niveau de l'établissement associée à une activation économique par adjonction de moyens de production
$actif=1;
break;
case 620: // Modification d'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production
case 621: // Modification d'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d'erreur
$dateFerET=$ligne['insDATEVE'];
$dateFerEN=$ligne['insDATEVE'];
$actif=0;
break;
case 650: // Modification d'activité au niveau de l'établissement associée à une désactivation économique par suppression de moyens de production
$dateFerET=$ligne['insDATEVE'];
$actif=0;
break;
//case 781:
case 795: // SIREN non diffusible
$actif=1;
break;
default:
$actif=-1;
/*631 Autre modification d'activité du SIREN associé
661 Autre modification d'activité au niveau de l'établissement
710 Modification de l'identification du SIREN
711 Modification de l'identification du SIREN suite à correction d'erreur
720 Modification de l'adresse ou de l'identification de l'établissement
780 Autre modification entraînant la mise à jour d'au moins une variable du répertoire
781 Autre modification entraînant la mise à jour d'au moins une variable du répertoire suite à correction d'erreur*/
}
//echo "$k : [$siren $nic\t$even\t$destinat\t$typEtab\t$origine\t($actif)]".EOL;
/** Si on n'a pas pu déterminé l'état actif ou inactif, on test si la variable DESTINAT est renseignée !
**/
if ($actif==-1 && (trim($ligne['insEVE'])=='MPF' || trim($ligne['insEVE'])=='MNP')) {
// Etablisement présumé fermé mais on laisse actif juridiquement
$actif=-1;
}
elseif ($actif==-1 && ( $destinat*1==3 || // Vendu
$destinat=='B' || // Fermé
$destinat=='C' || // Supprimé
$destinat=='D' || // Mise en location-gérance de la totalité du fonds
$destinat=='F' || // Cessation d'activité (pour les liasses agricoles)
$destinat=='I' || // Transmission au conjoint (pour les liasses agricoles)
$destinat=='J' || // Cession (pour les liasses agricoles)
$destinat=='G' ) ) // Mise en location-gérance de la totalité des terres et des bâtiments agricoles (pour les liasses agricoles)
{
$dateFerET=$ligne['insDATEVE'];
$actif=0;
}
elseif ($actif==-1 && ( $destinat*1==7 || // Maintien d'activité, l'établissement devient siège
$destinat*1==8 || // Maintien d'activité, l'établissement devient principal
$destinat=='A' || // Maintien d'activité, l'établissement devient secondaire
$destinat=='E' || // Mise en location-gérance d'une partie du fonds
$destinat=='VP' || // suppression partielle d'activité par vente
$destinat=='DP' || // suppression partielle d'activité par disparition
$destinat=='RP' || // suppression partielle d'activité par reprise par le propriétaire
$destinat=='H') ) // Mise en location-gérance d'une partie des terres et des bâtiments agricoles (pour les liasses agricoles)
{
$actif=1;
}
else {
if ($modeDebug)
echo "$k : $siren $nic\t$even\t$destinat\t$typEtab\t$origine\t($actif)".EOL;
}
/*
9 Autre
NR Non renseigné
*/
if ($actif==-1) $arrActif=array();
else $arrActif=array('ACTIF'=>$actif);
if ($dateFerET<>-1) $arrActif=array_merge($arrActif, array('dateFerET'=>$dateFerET));
if ($dateFerEN<>-1) $arrActif=array_merge($arrActif, array('dateFerEN'=>$dateFerEN));
/** Zone Identité précédente
** contenant tous les anciens nom, sigle et/ou enseigne concaténés
** n'ai jamais affiché mais sert pour l'indexation au niveau de la recherche
** On ne se sert pas de $tabEve['insMENSEIGNE'] =substr($a,543,1);//Indicateur de mise à jour de l'enseigne de l'établissement
** $tabEve['insMNOMEN']=substr($a,658,1);//Indicateur de mise à jour du nom ou de la raison sociale
** $tabEve['insMSIGLE']=substr($a,659,1);//Indicateur de mise à jour du sigle
**/
$identite_pre=trim($etab['IDENTITE_PRE']);
$nomEntrep=trim(strtr($ligne['insNOMEN'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
$nomEntrepEnBase=substr(trim(strtr($etab['NOM'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°'))),0,38);
if ($nomEntrepEnBase<>$nomEntrep && $nomEntrepEnBase<>'') {
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $siren $nic - NOM En base : / MAJ : $nomEntrepEnBase".EOL;
if (strlen($identite_pre)==0)
$identite_pre=$nomEntrepEnBase;
else
$identite_pre.=','.$nomEntrepEnBase;
}
$nomEtab=trim(strtr($ligne['insENSEIGNE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
$nomEtabEnBase=trim(strtr($etab['ENSEIGNE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
if ($nomEtabEnBase<>$nomEtab && $nomEtabEnBase<>'') {
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $siren $nic - ENSEIGNE En base : / MAJ : $nomEtabEnBase".EOL;
if (strlen($identite_pre)==0)
$identite_pre=$nomEtabEnBase;
else
$identite_pre.=','.$nomEtabEnBase;
}
$sigEntrep=trim(strtr($ligne['insSIGLE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
$sigEntrepEnBase=trim(strtr($etab['SIGLE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
if ($sigEntrepEnBase<>$sigEntrep && $sigEntrepEnBase<>'') {
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $siren $nic - SIGLE En base : / MAJ : $sigEntrepEnBase".EOL;
if (strlen($identite_pre)==0)
$identite_pre=$sigEntrepEnBase;
else
$identite_pre.=','.$sigEntrepEnBase;
}
$arrBase=array( 'NOM'=> trim($ligne['insNOMEN']), // Raison Sociale de l'entreprise
'NOM2'=> trim($ligne['insL2_COMP']), // Enseigne de l'établissement ou sigle de l'entreprise ou enfin, nom commercial (Intermarché)
'ENSEIGNE'=> trim($ligne['insENSEIGNE']), // Nom de l'établissement ou enseigne
'SIGLE'=> trim($ligne['insSIGLE']), // Sigle
'SIEGE'=> $ligne['insSIEGE'], // Siège
'IDENTITE_PRE'=>$identite_pre,
'ADR_NUMVOIE'=> trim($ligne['insNUMVOIE']), // N° dans la voie
'ADR_BTQ'=> trim($ligne['insINDREP']), // BTQ
'ADR_TYPVOIE'=> trim($ligne['insTYPVOIE']), // Type de voie
'ADR_LIBVOIE'=> trim($ligne['insLIBVOIE']), // Lib Voie
'ADR_CP'=> trim($ligne['insCODPOS']), // Code Postal
'ADR_LIBCOM'=> trim($ligne['insLIBCOM']), // Commune
'ADR_COMP'=> trim($ligne['insL3_CADR']), // Complément d'adresse
'ADR_DISTSP'=> trim($ligne['insL5_DISP']), // Distribution Spéciale
'AUXILT'=> trim($ligne['insAUXILT']), //
'SAISONAT'=> $ligne['insSAISONAT'], //
'CJ'=> trim($ligne['insCJ']),
'CIVILITE'=> trim($ligne['insCIVILITE']), // Sexe 0=Entrep, 1=Homme, 2=Femme
'DCRET'=> trim($ligne['insDCRET']), // Date de création de l'établissemennt
'DCREN'=> trim($ligne['insDCREN']), // Date de création de l'entreprise
'APE_ENT'=> trim($ligne['insAPEN700']), // Code NAF de l'entreprise (cf. table APE)
'APE_ETAB'=> trim($ligne['insAPET700']), // Code NAF de l'établissement (cf. table APE)
'NBETAB'=> trim($ligne['insNBETEXPL']), // Nombre d'établissement de l'entreprise
'TEFF_ENT'=> trim($ligne['insTEFEN']), // Tr Eff Entrep
// 'TCA'=> trim($ligne['insTCA']), // Tr CA
'CODEVOIE'=> trim($ligne['insCODEVOIE']), // Ce RIVOLI
'ADR_DEP'=> trim(substr($ligne['insDEPCOM'],0,2))*1,
'ADR_COM'=> trim(substr($ligne['insDEPCOM'],2,3))*1,
'EFF_ENT'=> trim($ligne['insEFENCENT']), // Eff Entrep
'TEFF_ET'=> trim($ligne['insTEFET']), // Tr Eff Etablissement
'EFF_ET'=> trim($ligne['insEFETCENT']), // Eff Etablissement
'PAYS'=> trim($ligne['insL7_ETRG']), // Pays si différent de france
'APRM'=> trim($ligne['insAPRM']), // Répertoire Métier
'ACTIVNAT'=> trim($ligne['insACTIVNAT']),
'ORIGINE'=> trim($ligne['insORIGINE']),
'MODET'=> trim($ligne['insMODET']),
'EXPLET'=> trim($ligne['insEXPLET']),
'DAPET'=> trim($ligne['insDAPET']),
'LIEUACT'=> trim($ligne['insLIEUACT']),
'ACTISURF'=> trim($ligne['insACTISURF']),
'DEFET'=> trim($ligne['insDEFET']),
'MODEN'=> trim($ligne['insMODEN']),
'PRODPART'=> trim($ligne['insPRODPART']),
'EXPLEN'=> trim($ligne['insEXPLEN']),
'DEFEN'=> trim($ligne['insDEFEN']),
'MONOREG'=> trim($ligne['insMONOREG']),
'REGIMP'=> trim($ligne['insREGIMP']),
'MONOACT'=> trim($ligne['insMONOACT']),
'DAPEN'=> trim($ligne['insDAPEN']),
'DATE_MAJ'=> substr(''.$ligne['insDATEMAJ'].'',0,8),
);
if ($cpt==0) {
/**
** On ajoute la fiche de l'établissement
**/
$arrTel=array( 'TEL'=> trim($ligne['insTEL'])); // Téléphone de l'établissement
$tabInsert=array( 'SIREN'=> $ligne['insSIREN'],
'NIC'=> $ligne['insNIC'],
);
$tabInsert=array_merge($tabInsert, $arrTel, $arrDir, $arrBase, $arrActif);
// echo date ('Y/m/d - H:i:s')." - Siret $siren $nic en cours d'ajout".EOL;
$retInsert=$iDbW->insert('identite', $tabInsert, true);
if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error());
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic ajouté".EOL;
$nbInsert++;
} else {
/**
** On modifie la fiche de l'établissement
**/
$tel=trim($ret2[0]['TEL']);
if (trim($ligne['insTEL'])<>'' && $tel=='')
$arrTel=array( 'TEL'=> trim($ligne['insTEL'])); // Téléphone de l'établissement
else
$arrTel=array();
$tabUpdate=array_merge($arrTel, $arrDir, $arrBase, $arrActif);
$retUpdate=$iDbW->update('identite', $tabUpdate, "SIREN=$siren AND NIC=$nic", false);
if (!$retUpdate) die('Erreur lors de MAJ Mysql n°'. mysql_errno() .' : '.mysql_error());
//if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic modifié".EOL;
$nbUpdate++;
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt fiche(s) modifiée(s)".EOL;
if ($cpt>1) {
//die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL);
$tabSirenDoubles[]=$siren;// RAF
$fp=fopen('doublons.txt', 'a');
fwrite($fp, "$siren $nic : $cpt lignes\n");
fclose($fp);
//print_r($ret2);
echo date ('Y/m/d - H:i:s')." - Doublons sur $siren $nic : $cpt lignes".EOL;
$nbDBl++;
}
}
}
echo date ('Y/m/d - H:i:s') . " - Fin du chargement du flux $idFlux : $k lignes traités ($nbInsert ajouts, $nbUpdate maj et $nbDBl doublons).".EOL;
}
echo date ('Y/m/d - H:i:s') . " - Fin de la mise à jour de la table identité".EOL;
} else echo ', la table identite n\'est pas mise à jour !'.EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des évènements INSEE".EOL;
$message="Fichier évènements '".implode(',', $nomFichierCharges)."' :
- $nbLignesCharges lignes traitées,
- $nbSiretInvalidesCharges siret invalides,
- $nbErreurs erreurs lors des insertions.
";
if ($updateInsee) {
$message.="
Table identité :
- $nbInsert créations,
- $nbUpdate mises à jour
";
}
$message.=EOL;
/** Ajout du fichier info de l'INSEE **/
foreach ($nomFichierCharges as $nomFichier) {
$message.="Informations INSEE pour '$nomFichier' :".EOL;
$message.=file_get_contents(AMABIS_LOCAL_DIR.str_replace('*','', AMABIS_FTP_REMOTE_DIR).str_replace('EVE.DJ','EVE.NJ',$nomFichier)).EOL;
$message.=EOL;
}
sendMail('webmaster@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Fin du traitement de chargement INSEE', $message);
die();
?>

View File

@ -1,55 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'common/curl.php');
/*include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(FWK_PATH.'mail/sendMail.php');
*/
$body=file_get_contents ('/root/sic/sic.txt');
if (preg_match_all('/<p style="(?:.*)">SIC code (.*)\: <b>(.*)<\/b>(?:.*)<td class="d1">Nace<\/td><td class="d2">(.*)<\/td>/Uis',$body,$matches)) {
foreach ($matches[1] as $i=>$sic_code) {
$sic_lib=$matches[2][$i];
$nace_code=$matches[3][$i];
echo "$sic_code\t$sic_lib\t$nace_code".EOL;
}
//print_r($matches);
die();
}
die();
echo simpleWhois('indiscore', 'fr', true);
die();
$tab = array( 'toto.com',
'momo.com',
'yoyo.fr',
'65qs4df56q4qsdqsd.com',
'koko.net',
'zozo.net',
'soso.net',
'qoqo.net',
'qs56d4qs56d4qs65d4qs564.net',
'xoxo.net',
'coco.com',
'hoho.fr',
'nono.net',
'dodo.com',
);
// Récupération des résultats
$output = false;
// Exécution
if($tab){
foreach($tab as $host){
list($domain, $tdl) = split(".", $host, 2); // le 2 permet de s'arreter après le 1er point ce qui permet d'avoir des extenssion du type .com.fr
$output[$host] = simpleWhois($domain, $tdl);
}
}
// Affichage "brut" des données traitées
if($output){
print_r($output);
}
?>

File diff suppressed because one or more lines are too long

View File

@ -1,9 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /pdf/ann/a_07_2009.pdf was not found on this server.<P>
<P>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.
</BODY></HTML>

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /pdf/ann/a_7_2009.pdf was not found on this server.<P>
<P>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.
</BODY></HTML>

View File

@ -1,738 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice)
** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
**
** Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
**/
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'mail/sendMail.php');
$referer='';
$iDb=new WDB();
$iInsee=new MInsee();
/*
508 Affiches Parisiennes et Departementales
512 La Gazette du Palais
380 La Gazette Nord/Pas-de-Calais
556 La Semaine de l'Ile-de-France (L'informateur de Seine-et-Oise)
550 Le Moniteur de Seine-et-Marne
468 Le Tout Lyon et le Moniteur Judiciaire Reunis
447 Les Affiches d'Alsace et de Lorraine (Les Affiches moniteur)
714 Les Nouvelles Publications Economiques et Juridiques
524 Les Petites Affiches
353 Les Tablettes Lorraines
15 Picardie La Gazette
31 TPBM - Semaine Provence
*/
/*
POST http://www.affiches-parisiennes.com/recherche.php
En-têtes requête:
Host[www.affiches-parisiennes.com]
Referer[http://www.affiches-parisiennes.com/recherche.php]
Cookie[__utma=42089205.1609474598.1234288314.1234456089.1234462062.6; __utmz=42089205.1234288314.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmc=42089205; PHPSESSID=71dd9ce3d97225b4fd16ac96f41aa91a; __utmb=42089205]
Données POST:
rec_option[on]
recherche[]
cible[txt]
operateur[OFF]
departement[]
interval_1[11%2F02%2F2009]
v_i_1[00%2F00%2F0000]
interval_2[12%2F02%2F2009]
v_i_2[11%2F02%2F2009]
rubrique[DISSOLUTIONS]
reference[]
clic[1]
limit[20]
submit.x[97]
submit.y[14]
submit[lancer+la+recherche]
*/
/*
ACTES DE VENTES
OPPOSITIONS
UNIQUES GERANCES
ANNONCES ET AVIS DIVERS
ACHAT VENTE LOCATION
ANNONCES ET AVIS DIVERS
OFFRE DE REPRISE
VENTES DIVERSES
AVIS AU PUBLIC
ANNONCES ADMINISTRATIVES
APPEL D\'OFFRES
AVIS AU PUBLIC
CESSATION DE GARANTIE
AVIS RELATIFS AU PERSONNES
AVIS DIVERS
AVIS DIVERS (Insaisissabilite)
CHANGEMENT DE REGIME
CHANGEMENTS DE NOM
JUGEMENTS
ORDONNANCES
CREANCES SALARIALES
CREANCES SALARIALES
EXPROPRIATION
NOUVELLE RUBRIQUE
INFORMATIONS DES TRIBUNAUX
TRIBUNAL DE COMMERCE DE BOBIGNY
TRIBUNAL DE COMMERCE DE CRETEIL
TRIBUNAL DE COMMERCE DE NANTERRE
TRIBUNAL DE COMMERCE DE PARIS
TRIBUNAL DE GRANDE INSTANCE DE CRETEIL
TRIBUNAL DE GRANDE INSTANCE DE DRAGUIGNAN
TRIBUNAL DE GRANDE INSTANCE DE PARIS
PERSONNES
AVIS DIVERS (Insaisissabilit)
DECLARATION D\'ABSENCE
INSAISISSABILITE
SOCIETES
APPORTS
APPORTS PARTIEL D\'ACTIF
APPORTS-FUSIONS
AVIS AUX ACTIONNAIRES
AVIS AUX ASSOCIES
AVIS AUX SOCIETAIRES
AVIS AUX SOCIETES
AVIS DE SOCIETES
AVIS FINANCIERS
BILAN
CESSIONS DE PARTS
CLOTURES DE LIQUIDATION
CONTINUATION
CONVOCATIONS
DISSOLUTIONS
EMISSIONS D\'ACTIONS
FORMATION
FUSIONS
MISES EN SOMMEIL
MODIFICATIONS
NOMINATION DE REPRESENTANT DE LA MASSE
NOMINATIONS D\'ADMINISTRATEUR JUDICIAIRE
NOMINATIONS D\'ADMINISTRATEUR PROVISOIRE
PROJETS DE FUSION
PROJETS DE SCISSION
PROJETS D\'APPORTS PARTIEL D\'ACTIF
PROROGATIONS
PROROGATIONS DE DUREE
PROROGATIONS DE MISSION D\'ADM PROVISOIR
SCISSION
TRANSFERTS DE SIEGE
TRANSFORMATIONS
*/
/*<div id="recherche">
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003262</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">RESCH ET FILS</div>
<div class="p1"><span class="gras">Société en nom collectif</span></div>
<div class="p1">Au capital de 8.400 euros</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">15, avenue Olivier-d'Ormesson</div>
<div class="pp">94490 ORMESSON-SUR-MARNE</div>
<div class="p1">441 607 793 R.C.S. Créteil</div>
</div>
<br>
<div class="txt">
<div class="pp">L'AGE des Associés réunie le 31/12/2008, a décidé de dissoudre par anticipation la Société à compter du 1<sup>er</sup> janvier 2009. Elle a nommé comme Coliquidateurs M. Arnaud RESCH, né le 18 mai 1967 à Paris (75010), de nationalité française, demeurant à Saint-Maur-des-Fossés (94100), 1, rue Léopold-Sédar-Senghor, et M. Eric RESCH, né le 4 mars 1974 à Saint-Maur-des-Fossés (94100), de nationalité française, demeurant à Saint-Maur-des-Fossés (94100), 99, avenue Joffre, et leur a conféré les pouvoirs les plus étendus pour réaliser l'actif et acquitter le passif.</div>
<div class="p1">Le siège de liquidation est fixé au siège social.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003220</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">KALISTO</div>
<div class="p1"><span class="gras">SARL</span> au capital de 7.500 euros</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">7, rue Hector-Malot
94120 FONTENAY-SOUS-BOIS</div>
<div class="p1">451 398 598 R.C.S. Créteil</div>
</div>
<br>
<div class="txt">
<div class="pp">L'A.G.E. du 5/01/2009 a prononcé la dissolution anticipée de la Société, M. Djordje KALINOVIC, demeurant 7, rue Hector-Malot, 94120 Fontenay-sous-Bois, a été nommé Liquidateur. Le siège de liquidation est fixé au siège social.</div>
<div class="p1">Mention au RCS de Créteil.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003249</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">SCI ECLIPSE</div>
<div class="p1"><span class="gras">Société civile</span></div>
<div class="p1">Au capital de 1.372,04 euros</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">23, rue Delizy ­ 93500 PANTIN</div>
<div class="p1">424 305 878 R.C.S. Bobigny</div>
</div>
<br>
<div class="txt">
<div class="pp">L'A.G.E. du 3/11/2008, a prononcé la dissolution anticipée de la Société et ce à compter du 28/10/2008. M. Bernard ISABET, demeurant 44, rue Duguay-Trouin, 22590 Pordic, a été nommé Liquidateur. Le siège de liquidation est fixé au siège social.</div>
<div class="p1">Mention au RCS de Bobigny.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003320</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">SNC LES JARDINS DE LALANDE</div>
<div class="p1"><span class="gras">Société en nom collectif</span></div>
<div class="p1">Au capital de 1.000 euros</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">45&nbsp;bis, route des Gardes
92190 MEUDON</div>
<div class="p1">438 842 254 R.C.S. Nanterre</div>
</div>
<br>
<div class="txt">
<div class="pp">L'Assemblée Générale Extraordinaire réunie le 1<sup>er</sup> décembre 2008 a décidé la dissolution anticipée de la Société, à compter du même jour et sa mise en liquidation amiable sous le régime conventionnnel dans les conditions prévues par les statuts et les délibérations de ladite Assemblée.</div>
<div class="pp">Elle a nommé comme Liquidateur, la Société GROUPE FRANCE TERRE, Société anonyme au capital de 2.473.990 euros, ayant son siège social&nbsp;: Le Mail du Point-du-Jour, 235, avenue Le Jour-se-Lève, 92100 Boulogne-Billancourt, 307 558 601 RCS Nanterre, en qualité de Liquidateur pour toute la durée de la liquidation, avec les pouvoirs les plus étendus tels que déterminés par la loi et les statuts pour procéder aux opérations de liquidation, réaliser l'actif, acquitter le passif, et l'a autorisé à continuer les affaires en cours et à en engager de nouvelles pour les besoins de la liquidation.</div>
<div class="pp">Le siège de la liquidation est fixé Le Mail du Point-du-Jour, 235, avenue Le Jour-se-Lève, 92100 Boulogne-Billancourt.</div>
<div class="pp">C'est à cette adresse que la correspondance devra être envoyée et que les actes et documents concernant la liquidation devront être notifiés.</div>
<div class="p1">Les actes et pièces relatifs à la liquidation seront déposés au greffe du Tribunal de commerce de Nanterre, en annexe au Registre du commerce et des sociétés.</div>
</div>
<div class="sig">
<div class="p1">&nbsp;Pour avis,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LE LIQUIDATEUR.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003162</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">SOCIETE LJMA</div>
<div class="p1"><span class="gras">Société à responsabilité limitée</span></div>
<div class="p1">Au capital de 3.000&nbsp;</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">11&nbsp;ter, rue Gustave-Rey</div>
<div class="pp">92250 LA GARENNE-COLOMBES</div>
<div class="p1">502 648 231 R.C.S. Nanterre</div>
</div>
<br>
<div class="txt">
<div class="pp">Suite à l'A.G.E. du 29 décembre 2008, il a été prononcé la dissolution anticipée de la Société à compter du 29 décembre 2008. M. LEBRUN Jean Marc, demeurant 11&nbsp;ter, rue Gustave-Rey, 92250 La Garenne-Colombes, a été nommé en qualité de Liquidateur. Le siège de liquidation est fixé au siège social de la Société&nbsp;: 11&nbsp;ter, rue Gustave-Rey, 92250 La Garenne-Colombes.</div>
<div class="p1">Pour avis et mention au RCS de Nanterre.</div>
</div>
<div class="sig">
<div class="p1">LE GERANT.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003332</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">CHLOE</div>
<div class="p1"><span class="gras">Société à responsabilité limitée</span></div>
<div class="p1">Au capital de 7.700&nbsp;</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">111, avenue Victor-Hugo ­ 75016 PARIS</div>
<div class="p1">441 015 799 R.C.S. Paris</div>
</div>
<br>
<div class="txt">
<div class="pp">L'AGE du 30/11/2008 à 10 heures a prononcé la dissolution anticipée&nbsp;; nommé en qualité de Liquidateur, M. ARFI Thierry, demeurant 110, rue Petit, 75019 Paris. Le siège de liquidation, ainsi que toute correspondance sont fixés au siège de la Société.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003233</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">JV INTERNATIONAL</div>
<div class="p1"><span class="gras">EURL</span> au capital de 500&nbsp;</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">13, rue Charles-Tellier ­ 75016 PARIS</div>
<div class="p1">501 159 909 R.C.S. Paris</div>
</div>
<br>
<div class="txt">
<div class="pp">L'AGE du 23/01/2009 a décidé la dissolution de la Société et sa mise en liquidation amiable à compter du même jour, nommé en qualité de Liquidateur M. VARRET Jean, demeurant 13, rue Charles-Tellier, 75016 Paris, et fixé le siège de liquidation au 13, rue Charles-Tellier, 75016 Paris. Modification au RCS de Paris.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003212</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">GOUSSET BENJAMIN SARL</div>
<div class="p1"><span class="gras">Société à responsabilité limitée
à capital variable</span></div>
<div class="p1">Au capital de 7.500&nbsp;</div>
<div class="p1">Siège social&nbsp;:</div>
<div class="pp">21, rue Henry-Monnier ­ 75009 PARIS</div>
<div class="p1">450 500 533 R.C.S. Paris</div>
</div>
<br>
<div class="txt">
<div class="pp">Aux termes d'une Assemblée Générale Extraordinaire en date du 31 janvier 2009, les Associés ont décidé la dissolution anticipée de ladite Société. M. GOUSSET Benjamin, demeurant au 35, rue de Douaï, 75009 Paris, est nommé Liquidateur. Le siège de la liquidation est fixé au 21, rue Henry-Monnier, 75009 Paris. C'est à cette adresse que la correspondance devra être adressée et que les actes et documents devront être notifiés. Les actes et pièces relatifs à la liquidation seront déposés au Registre du commerce et des sociétés de Paris. Pour avis et mention, Le Liquidateur, GOUSSET Benjamin.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="400">
<tbody><tr>
<td align="left" bgcolor="#ffffff">
Annonce n°K003158</td>
<td align="left" bgcolor="#ffffff" width="20">
<a href="#top"><img src="img/a_top.gif" alt="haut de page" border="0"></a></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">
Parue dans le journal Affiches Parisiennes n°17 du 11/02/2009.</td>
</tr>
</tbody></table>
<table align="center" bgcolor="#999999" border="0" cellpadding="1" cellspacing="0" width="400">
<tbody><tr>
<td>
<table align="center" bgcolor="#ffffff" border="0" cellpadding="10" cellspacing="0" width="400">
<tbody><tr>
<td bgcolor="#ffffff">
<div class="chap">
<div class="cp15">PIERRE DEMPURE CONSULTANT</div>
<div class="p1"><span class="gras">SARL</span> au capital de 7.622,45&nbsp;</div>
<div class="p1">57, rue Laugier ­ 75017 PARIS</div>
<div class="p1">482 777 216 R.C.S. Paris</div>
</div>
<br>
<div class="txt">
<div class="pp">Par AGE du 30/12/2008, il a été décidé de dissoudre la Société à compter de ce jour. M. Pierre DEMPURE, Gérant, est nommé Liquidateur. Le siège de liquidation est fixé au siège social. Mention au RCS de Paris.</div>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
--------------------------
</div>*/
die();
$urlBase='http://www.lecho-legales.com';
$page=getUrl($urlBase, '', '', $referer);
$referer=$url;
$cookie=$page['header']['Set-Cookie'];
if (preg_match('/AdminX=(.*);/Ui', $cookie, $matches))
$AdminX=$matches[1];
$url=$urlBase.$page['header']['Location'];
$page=getUrl($url, '', '', $referer);
$referer=$url;
//randsleep(2,7);
//$url=$urlBase."/XAds/index.php?type_3=on&acces=direct&AdminX=$AdminX&actionID=do_recherche";
$url=urlencode('http://www.lecho-legales.com/XAds/index.php?type_3=on&actionID=do_recherche');
//die($url);
$page=getUrl($url, '', $cookie, $referer);
die(print_r($page));
/*
<td> &nbsp;&nbsp;<img src="/XMain/graphics/graphics_ECHOREP/VieDesSocietes.gif" border="0" alt="" /></a>
</td>
</tr>
<tr valign="middle" align="center">
<td><a href="/XMain/../XAds/index.php?type_4=on&acces=direct&AdminX=a0729df88fa72d2b4dbd057f1c448688&amp;actionID=do_recherche"> &nbsp;&nbsp;<img src="/XMain/graphics/graphics_ECHOREP/DecisionsDesTribunaux.gif"
*/
die(print_r($page));
$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee BETWEEN 85068 AND 91000 GROUP BY codeInsee');// "`Code Insee`<'10000'");
foreach ($lstCom as $i=>$tabCom) {
$numInsee=$tabCom['codeInsee'];
$dep=substr($numInsee,0,2);
if ($dep==97) {
$dep=substr($numInsee,0,3);
$com=substr($numInsee,3,2);
} else
$com=substr($numInsee,2,3);
$url="http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/Controleur.jsp?ddd=$dep&ccc=$com&service=lcfer&type=NULL&Valider=Valider";
$page=getUrl($url, '', '', $referer, false, 'annuaire-cfe.insee.fr');
$body=$page['body'];
if (strpos($body, "<P>Erreur rencontrée : java.lang.NullPointerException</P>")==0)
{
//print_r($page);
$page=getUrl('http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcferf.jsp', $cookie, '', $url, false, 'annuaire-cfe.insee.fr');
$body=$page['body'];
if (preg_match('/<font size="2" face="Arial, Helvetica, sans-serif" color="#D01010">(?:.*)([\d]{2,3})(?:.*)- (.*) \/ (.*)<\/b><\/font><\/td>/Uis', $body, $matches)) {
$depLu=$matches[1];
$depLib=$matches[2];
$comLib=$matches[3];
}
/*<b>01
- AIN / L' ABERGEMENT CLEMENCIAT</b></font></td>*/
$tabTmp=explode('<tr bgcolor="#FFFFFF">',$body);
//print_r($tabTmp);die();
$sleep=false;
foreach ($tabTmp as $j=>$tabTrib) {
if ($j<2) continue;
if (preg_match('/<td valign="top" width="48%"> <font face="Arial, Helvetica, sans-serif" size="2">(?:.*)<b>(.*)<\/b><br>(.*)<\/font>/Uis', $tabTrib, $results)) {
$libTri=strip_tags($results[1]);
if (preg_match("/^Chambre de commerce et d'industrie$/i", $libTri)) $typeTri='O';// CCI
elseif (preg_match("/^Chambre de métiers et de l'artisanat/i", $libTri)) $typeTri='T';// CM
elseif (preg_match("/^Chambre de métiers/i", $libTri)) $typeTri='T';// CM
elseif (preg_match("/^Greffe du tribunal de commerce/i", $libTri)) continue;//$typeTri='C';// TC
elseif (preg_match("/^Chambre d'agriculture/i", $libTri)) $typeTri='R';// AGR
elseif (preg_match("/^Chambre nationale de la batellerie artisanale/i", $libTri)) $typeTri='N';// BAR
elseif (preg_match("/^URSSAF/i", $libTri)) $typeTri='U';// URS
elseif (preg_match("/^Centre des impôts/i", $libTri)) $typeTri='Z';// CDI
else die("Libellé CFE '$libTri' inconnu !");
} else die('Erreur fatale');/*</b><br>
1 RUE JOSEPH BERNIER<br>
01000 BOURG EN BRESSE<br>
Tél : 04 74 32 13 00<br>
Fax : 04 74 21 42 63<br>
<a href="http://WWW.AIN.CCI.FR" target="_new">WWW.AIN.CCI.FR</a>
</font>*/
if (preg_match_all('/(.*)(?:<br>|<\/a>)/Uis', $results[2], $results)) {
//print_r($results);die();
$results2=$results[1];
$adresse1=trim($results2[0]);
$adresse2=trim($results2[1]);
if (substr($adresse2,0,5)*1>0) {
$adresse2='';
$i=1;
} else $i=2;
$cpVille=trim(@$results2[$i]);
$cp=substr($cpVille,0,5)*1;
$ville=trim(substr($cpVille,5));
$tel=str_replace(' ','',strtr(@$results2[$i+1], 'TélFax :.',' '))*1;
$fax=str_replace(' ','',strtr(@$results2[$i+2], 'TélFax :.',' '))*1;
if (preg_match('/<a href="(.*)"/Ui', trim(@$results2[$i+3]), $results2)) $web=strtolower($results2[1]);
if ($web=='http://') $web='';
$id=md5($typeTri.$adresse1.$cp.$ville);
$str=$tabCom['codeInsee'].";1;$depLu;$depLib;$comLib;$id;$typeTri;$adresse1;$adresse2;$cp;$ville;$cpVille;$tel;$fax;$web";
$trib=$iDb->select('tribunaux', 'triId, triCode, triType, triNom, triCP, triTel, triFax', "triType='$typeTri' AND triCommentaire='$id'");
if (isset($trib[0]['triId'])) {
$id=$trib[0]['triId'];
$code=$trib[0]['triCode'];
$nom=$trib[0]['triNom'];
} else {
// Il faut insérer la fiche ID de la compétence
$tabAdr=$iInsee->structureVoie($adresse1);
$tabInsert=array('triType'=>$typeTri,
'triNom'=> $libTri,
'triCP'=>$cp,
'triWeb'=>$web,
'triAdrNum'=>$tabAdr['num'],
'triAdrIndRep'=>@$tabAdr['indRep'],
'triAdrTypeVoie'=>$tabAdr['typeVoie'],
'triAdrVoie'=>$tabAdr['libVoie'],
'triAdrComp'=>$adresse2,
'triVille'=>$ville,
'triTel'=>$tel,
'triFax'=>$fax,
'triCommentaire'=>$id,
);
$id=$iDb->insert('tribunaux', $tabInsert);
$code='';
$nom=$libTri;
print_r($tabInsert);
$sleep=true;
}
echo $str;
if ($id>0) {
$ret=$iDb->insert('tribunauxInsee', array('CodeInsee'=>$tabCom['codeInsee'],'triId'=>$id));
if (!$ret) {
echo ' Déjà en base.';
}
else {
echo ' ===> INSERE !!!';
$sleep=true;
}
echo "\n";
}
}
}
} else {
$str=$tabCom['codeInsee'].";0;;;".$tabCom['LibCom']."\n";
echo $str;
}
/*if ($sleep) randsleep(5, 15);//7,21);
else randsleep(2, 7);*/
// sleep(2);
}
die();
?>

View File

@ -1,255 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice)
** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
**
** Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
**/
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'mail/sendMail.php');
if (!preg_match('/getJal(.*)\.php/Ui', $argv[0], $matches))
die(date('Y/m/d - H:i:s') ." - ERREUR : Les scripts JAL doivent s'appeler getJalXXX.php !".EOL);
else
$numJal=$matches[1];
$referer='';
$iDb=new WDB();
$iInsee=new MInsee();
//550 Le Moniteur de Seine-et-Marne
$tabTmp=$iDb->select('tabJAL', 'nomJal, parution, aboAnnuel, sedDateAbo, sedIdDerJal, sedTailleDerJal, sedDateDerJal',"id=$numJal", false, MYSQL_ASSOC);
$tabJal=$tabTmp[0];
echo date('Y/m/d - H:i:s') ." - Début du script pour le JAL $numJal (".$tabJal['nomJal'].')'.EOL;
$parutionNumJal=(date('W')*1-1);
$parutionAnnee=date('Y');
/*
$parutionNumJal=51;
$parutionAnnee=2008;
*/
$fichier='a_'.$parutionNumJal.'_'.$parutionAnnee.'.pdf';
echo date('Y/m/d - H:i:s') ." - Le fichier PDF à récupérer devrait être $fichier.".EOL;
$url='http://www.lemoniteur77.com/pdf/ann/'.$fichier;
$page=getUrl($url);
/*print_r($page);
die();*/
if ($page['code']*1==200) {
$pdf=$page['body'];
@mkdir(JAL_LOCAL_DIR);
@mkdir(JAL_LOCAL_DIR.$numJal);
$localFile=JAL_LOCAL_DIR.$numJal.'/'.$fichier;
if ($tabJal['sedIdDerJal']==$fichier && $tabJal['sedTailleDerJal']==strlen($pdf))
echo date('Y/m/d - H:i:s') ." - Le fichier $fichier à déjà été traité !".EOL;
else {
file_put_contents($localFile, $pdf);
$taille=filesize($localFile);
$messageInfo="Voici les annonces du journal correspondant";
$iDb->update('tabJAL', array('sedDateDerJal'=>date('YmdHis'),
'sedTailleDerJal'=>$taille,
'sedIdDerJal'=>$fichier), "id=$numJal");
echo date('Y/m/d - H:i:s') ." - Le fichier $fichier a été chargé ($taille octes).".EOL;
@sendMail('no-response@scores-decisions.com', 'buzuk@scores-decisions.com', "JAL : Le Moniteur de Seine-et-Marne", $messageInfo, '', array($localFile));
}
} else
echo date('Y/m/d - H:i:s') ." - Aucun fichier PDF intitulé $fichier n'est disponible !".EOL;
exec('cd '.JAL_LOCAL_DIR.$numJal.';pdftohtml -xml -q '.$localFile);
$str=file_get_contents(str_replace('.pdf','.xml',$localFile));
$str=utf8_decode(str_replace('â', "'",strip_tags($str)));
$tabAnn=preg_split('/- N° \D\d{6,6} -/', $str);
foreach ($tabAnn as $i=>$ann) {
$ann=preg_replace('/-\s+/', '', $ann);
/*
if(($a = strpos($ann,"'")) !== false) {
echo $ann.EOL;
for ($a2=$a-3; $a2<$a+2; $a2++)
echo "Pos $a2 (".substr($ann,$a2,1).') : asc='.ord(substr($ann,$a2,1)).EOL;
die();
}*/
$ann=strtr($ann, array(chr(39).chr(130).'¬'=>'euros',"\n"=>' ',"\r"=>' ',"\t"=>' ',chr(160)=>' ','€™'=>'',"'™¦"=>''));
$ann=trim(preg_replace('/ +/', ' ', $ann));
if (preg_match('/Le Moniteur de Seine et Marne(?:.*) au ((?:1er|1 er|\d{1,2})(?: |\/)(?:\d{1,2}|janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre)(?: |\/)\d{4,4})/Uis',$ann,$matches))
$parutionDate=WDate::dateT('dMY', 'Ymd', str_replace(' ','', $matches[1]));
// '™¦'™¦'™¦'™¦'™¦'™¦'™¦'™¦'™¦'™¦ SOCIÉTÉS Formations
$ann=preg_replace('/(Le Moniteur de Seine et Marne.*$)|(SOCIÉTÉS$)|(Dissolutions$)|(Fusion$)|(Locations-Gérances$)|(FONDS DE COMMERCE.*$)|(AVIS RELATIFS AUX PERSONNES.*$)|(ANNONCES ADMINISTRATIVES.*$)|(AVIS FINANCIERS.*$)/U','',$ann);
$vente_montant=$vente_devise='';
$tabSiren=$tabEven=$tabDates=array();
if (preg_match_all("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/", $ann, $matches)) {
foreach ($matches[1] as $siren) {
$siren=preg_replace('/\D/', '', $siren);
if ($iInsee->valideSiren($siren))
//if ($iInsee->sirenExiste($siren))
$tabSiren[]=$siren;
}
}
if (preg_match_all("/((?:1er|1 er|\d{1,2})(?: |\/)(?:\d{1,2}|janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre)(?: |\/)(?:20|)\d{2,2})/", $ann, $matches)) {
foreach ($matches[1] as $dates)
$tabDates[]=$dates;
}
/* if (preg_match('/Le\s+Moniteur\s+de\s+Seine\s+et\s+Marne\s+n°(.*)-/Uis', $ann, $matches)) {
$numParJal=$matches[1];
echo " ----- $numParJal -----".EOL;
}*/
//if (preg_match('/AGE|acte|SSP.{1,57}((1er|\d{1,2})\/\d{1,2}\/\d{2,4})/Uis', $ann, $matches))
/*
MELUNC C TC
MEAUXC C TC MEAUX
MONTEC C TC MONTEREAU
PROVIC C TC PROVINS*/
if (preg_match('/RCS (MELUN|MEAUX|MONTEREAU|PROVINS)/Uis', $ann, $matches) ||
preg_match('/DE (MELUN|MEAUX|MONTEREAU|PROVINS)/Uis', $ann, $matches))
$tribunalCode=strtoupper(substr($matches[1],0,5)).'C';
if (preg_match('/\sASSOCIATION\s/', $ann, $matches))
die("association : $ann".EOL);
if (preg_match('/constitu(?:tion|é|er|ée|er).{1,7}/Uis', $ann, $matches) && count($tabSiren)==0)
$tabEven[]="CONSTITUTION".EOL;
elseif (preg_match('/d.cid.{1,13}poursui.{1,13}activit|223(\s|\.|-)42|225(\s|\.|-)248|226(\s|\.|-)1|210(\s|\.|-)15|223(\s|\.|-)36|225(\s|\.|-)166/Uis', $ann, $matches))
$tabEven[]=2319; // PERTE DE LA MOITIE DU CAPITAL SOCIAL
elseif (preg_match('/dissolution|dissoudre/Uis', $ann, $matches) &&
!preg_match('/communaut(é|e)|mariage|matrimonial/Uis', $ann, $matches))
$tabEven[]=2202; // DISSOLUTION
elseif (preg_match('/ scission| scindée/Uis', $ann, $matches))
$tabEven[]=2740; // SCISSION
elseif (preg_match('/ fusion|absorption|absorbé|absorber|absorbant/Uis', $ann, $matches))
$tabEven[]=2725; // FUSION
elseif (preg_match('/communaut(é|e)|mariage|matrimonial/Uis', $ann, $matches))
$tabEven[]=2401; // CHANGEMENT DE REGIME MATRIMONIAL
elseif (preg_match('/(cl.tur.{1,25}liquidation|liquidation.{1,25}cl.tur)/Uis', $ann, $matches))
$tabEven[]=2211; // CLOTURE DE LIQUIDATION (PAS une RLJ)
elseif (preg_match('/location.{0,8}g.rance/Uis', $ann, $matches))
$tabEven[]=2840; // LOCATION GERANCE
elseif (preg_match('/(g.rance.{0,8}mandat|mandat.{0,8}g.rance)/Uis', $ann, $matches))
$tabEven[]=2875; // LOCATION GERANCE
elseif (preg_match("/(.*)prix([\D]{1,17})([0-9\.,\s]*)([\D]*)/i", $ann, $tabTmp) ||
preg_match("/(.*)montant([\D]{1,17})([0-9\.,\s]*)([\D]*)/i", $ann, $tabTmp) ||
preg_match("/(.*)(é|e)valu([\D]{1,17})([0-9\.,\s]*)([\D]*)/i", $ann, $tabTmp) ||
preg_match("/(.*)(é|e)stim([\D]{1,17})([0-9\.,\s]*)([\D]*)/i", $ann, $tabTmp)) {
$vente_montant=trim(str_replace(' ','', str_replace(',','.',$tabTmp[3])));
$vente_devise =trim($tabTmp[4]);
}elseif (preg_match("/(.*)ind(.)mni([\D]*)([0-9\.,\s]*)([\D]*)/i", $ann, $tabTmp)) {
$vente_montant=str_replace(' ','', str_replace(',','.',$tabTmp[4]));
$vente_devise =trim($tabTmp[5]);
}
if ( preg_match("/eur/i", $vente_devise) && !preg_match("/(wir|suisse|che)/i",$vente_devise) ) {
$vente_devise='EURO';
$tabEven[]=5999;//"VENTE/CESSION $vente_montant $vente_devise".EOL;
} elseif (preg_match('/( à cédé | ont vendu à | opposition )/Uis', $ann, $matches))
$tabEven[]=5999; // VENTE/CESSION
if (count($tabEven)==0) {
if (preg_match('/transf(?:e|é)r(?:er|t|é).{1,25}si(?:è|é|e)ge/Uis', $ann, $matches) ||
preg_match('/si(?:è|é|e)ge.{1,30}transf(?:e|é)r(?:er|t|é)/Uis', $ann, $matches))
$tabEven[]=2901; // TRANSFERT DE SIEGE
if (preg_match('/objet\s+social|activit(e|é)|Objet.{1,13}statuts|statuts.{1,13}Objet/Uis', $ann, $matches))
$tabEven[]=2313; // MODIFICATION DE L'ACTIVITE
if (preg_match("/\s(mise...jour|nouvel|nouveau|modification|adjonction|ancien|cha.g|ajout|d.part|nomination|d.mis(si|is)on|r.vocation|Entrée|Changement).{0,25}(survenue|).{0,25}(administration|administrateur| repr.sentant|g.ran|commissaire|direct..r|membre|conseil|surveillance|pr.sident|associ|PDG|contr.leur|Suppl.ant|direction|dirigeant)/Ui", $ann, $matches))
$tabEven[]=2315; // MODIFICATION DE L'ADMINISTRATION
if (preg_match('/dénomination/Uis', $ann, $matches))
$tabEven[]=2305; // MODIFICATION DE LA RAISON SOCIALE
if (preg_match('/cession.{1,7}parts/Uis', $ann, $matches))
$tabEven[]=2635; // CESSION DE PARTS SOCIALES
if (preg_match('/(r.duir|r.duction|diminu).{1,13}capital/Uis', $ann, $matches))
$tabEven[]=2100; // DIMINUTION DE CAPITAL
elseif (preg_match('/augment.{1,13}capital|capital.{1,23}augment/Uis', $ann, $matches))
$tabEven[]=2102; // AUGMENTATION DE CAPITAL
elseif (preg_match("/((modifi|ancien|change|nouveau|porté|porter).{1,33}capital|capital.{1,33}(modifi|ancien|change|nouveau|porté|porter))/i", $ann, $matches))
$tabEven[]=2101; // MODIFICATION DE CAPITAL
if (preg_match('/(dur(é|e)(e|r).{1,13}soci(é|e)t(é|e)/Uis', $ann, $matches))
$tabEven[]=2306; // DUREE DE LA SOCIETE
if (preg_match("/(modification|ancienne|changement).{1,23}forme.{1,23}juridique/Uis", $ann, $matches))
$tabEven[]=2307; // MODIFICATION FJ
elseif (preg_match("/transformation.{1,55}en /Uis", $ann, $matches))
$tabEven[]=2307; // MODIFICATION FJ
}
if (count($tabSiren)>0) {
if (count($tabEven)==0) $tabeven=2318;
$tabAnnonces[]=array('siren'=>array_unique($tabSiren),
'dates'=>array_unique($tabDates),
'tribunal'=>$tribunalCode,
'texte'=>$ann,
'even'=>$tabEven);
}
}
/*
die(print_r($tabAnnonces));
*/
foreach ($tabAnnonces as $ann) {
foreach ($ann['siren'] as $siren) {
$entrep=@$iInsee->getIdentiteEntreprise($siren);
$tabEven2=array();
$tabEven=$ann['even'];
for($i=1; isset($tabEven[$i]);$i++)
$tabEven2[]=$tabEven[$i];
$strEven=implode(';',$tabEven2);
$tabDates=array();
foreach ($ann['dates'] as $dates) {
if (WDate::dateT('dMY', 'Ymd', str_replace(' ','', $dates))*1>((date('Y')-2)*10000+101))
$tabDates[]=WDate::dateT('dMY', 'Ymd', str_replace(' ','', $dates));
elseif (WDate::dateT('d/m/Y', 'Ymd', $dates)*1>((date('Y')-2)*10000+101))
$tabDates[]=WDate::dateT('d/m/Y', 'Ymd', $dates);
}
sort($tabDates);
$tabInsert=array(// 'idAnn'=>
'siren'=> $siren,
'typeEven'=> $tabEven[0],
'strEven'=> $strEven,
'raisonSociale'=> $entrep['Nom'],
'adresse'=> $entrep['Adresse'],
'codePostal'=> $entrep['CP'],
'ville'=> $entrep['Ville'],
'dateJugement'=> $tabDates[0],
/*`dateCessationPaiement` , `inter1type` , `inter1id` , `inter1nom` , `inter2type` , `inter2id` , `inter2nom` , `inter3type` , `inter3id` , `inter3nom` , `*/
'tribunal'=> $ann['tribunal'],
'montant'=> $vente_montant,
'annonce'=> $ann['texte'],
'source'=> 'JS',
'parutionIdJal'=> $numJal,
'parutionNum'=> $parutionNumJal,
'dateSource'=> $parutionDate,
'idSaisie'=> 0,
);
$ret=$iDb->insert('annonces', $tabInsert);
print_r($tabInsert);
echo $ret.EOL;
}
}
?>

View File

@ -1,378 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
if (!defined('VERSION_FICHIER_IDENTITE'))
define('VERSION_FICHIER_IDENTITE','0106');
/**
* @todo
* 2. Pouvoir faire du multiligne avec : 106 Libell� du P�rim�tre de la vente
* 5. JugesCommissaires � int�grer correctement
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'conversion/bilAltares.php');
include_once(FWK_PATH.'mail/sendMail.php');
$optionEOL=EOL;
$stock=$dateDebut=$idClientTodo=false;
$dateDebutCmd=false;
$iInsee=new MInsee();
$iDb=new WDB('jo');
$iDb2=new WDB('sdv1');
$iBodacc=new MBodacc();
$iRncs=new MRncs();
/*
$tabZonesToCheck=array('Nom','Enseigne','Sigle');
$tabTmp=$iDb->select('sirenage_clients','id, refClient, nom, siren, sirenValide, sirenExiste, nic, nicValide, nicExiste, enseigne, adresse1, adresse2, adresse3, cp, ville',"idClient=173 AND idFlux=46 AND siren>1000 AND sirenValide=0 AND sirenExiste=1", false, MYSQL_ASSOC);
//$tabTmp=$iDb->select('sirenage_clients','id, refClient, nom, siren, sirenValide, sirenExiste, nic, nicValide, nicExiste, enseigne, adresse1, adresse2, adresse3, cp, ville',"idClient=173 AND idFlux=45 AND siren>1000 AND sirenValide=0 AND sirenExiste=1", false, MYSQL_ASSOC);
$nbTotal=count($tabTmp);
foreach($tabTmp as $i=>$tabSirenage) {
//print_r($tabSirenage);
//die();
$siren=$tabSirenage['siren'];
$nic=$tabSirenage['nic'];
$nom=$tabSirenage['nom'];
$id=$tabSirenage['id'];
$cp=$tabSirenage['cp'];
$sirenValide=$nicValide=0;
$sirenExiste=$nicExiste=0;
if ($iInsee->valideSiren($siren, $nic)) {
$sirenValide=1;
$nicValide=1;
if ($siren>1000) $tabIdI=$iInsee->getIdentiteLight($siren, $nic);
} elseif ($iInsee->valideSiren($siren)) {
$sirenValide=1;
if ($siren>1000) $tabIdI=$iInsee->getIdentiteLight($siren);
}
if ($siren>1000 && $siren==$tabIdI['Siren']) $sirenExiste=1;
if ($nic>9 && $nic==$tabIdI['Nic']) $nicExiste=1;
$resirener=false;
if ($sirenExiste /*&& $nicExiste*) {
$raisonSociale =trim(strtoupper(trimAccent(strtr($nom, array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', 'Pseudonyme'=>'', "'"=>'', ':'=>'',' N� '=>' ',' N�e '=>' ','/ACHE/'=>' ','Pr�c�dent propri�taire'=>' ')))));
$raisonSociale=strtr($raisonSociale, array('SOCIETE EN LIQUIDATION'=>'', 'EN LIQUIDATION'=>'', 'SOCIETE A RESPONSABILITE LIMITEE'=>'SARL','DENOMINATION'=>'', 'SUCCESSION'=>''));
$len =strlen($raisonSociale);
$tabMots=preg_split('/ +/', $raisonSociale);
$mots=count($tabMots);
foreach($tabZonesToCheck as $zone) {
$raisonSocialeI=trim(strtoupper(strtr(trimAccent($tabIdI[$zone]), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>''))));
$levI=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI));
$delI=$levI/$len;
$lenI=strlen($raisonSocialeI);
$tabMotsI=preg_split('/ +/', $raisonSocialeI);
$motsI=count(array_diff($tabMots,$tabMotsI));
$diffI=$motsI/$mots;
//die();
if ($delI<0.5 && $diffI<=0.5) {
echo "$zone '".$tabIdI[$zone]."' identique à $raisonSociale".EOL;
break;
}
}
if ($delI<0.5 && $diffI<=0.5 && substr($cp,0,2)==$tabIdI['Dept']) {
$nic=$tabIdI['Nic'];
$nicValide=$nicExiste=1;
$tabUpdate=array( //'siren' => $siren,
'nic' => $nic,
'sirenValide' => $sirenValide,
//'sirenExiste' => $sirenExiste,
'nicValide' => $nicValide,
'nicExiste' => $nicExiste,
);
//print_r($tabUpdate);
//die();
$iDb->update('sirenage_clients', $tabUpdate,"id=$id");
echo mysql_error();
$iDb->delete('bodacc_sirenage', "idTable='sirenage_clients' AND idAnn=$id");
echo mysql_error();
//print_r($tabSirenage);
echo "$i/$nbTotal : siren $siren - AJOUT DU NIC $nic.".EOL;
//print_r($tabUpdate);
//die();
if ($i%1000==0)
echo "$i/$nbTotal : $nbSirenValide siren valides dont $nbSirenExiste existants".EOL;
}
continue;
echo "$delI >=0.5 ? && $diffI >0.5 ?".EOL;
print_r($tabIdI);
die();
if ($delI>=0.5 && $diffI>0.5) {
$tabIdR=$iRncs->getInfosEntrep($siren);
if (@$tabIdR['raisonSociale']=='') {
$resirener=true;
}
else {
$raisonSocialeR=trim(strtoupper(strtr(trimAccent($tabIdR['raisonSociale']), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>''))));
$levR=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeR));
$delR=$levR/$len;
$tabMotsR=preg_split('/ +/', $raisonSocialeR);
$motsR=count(array_diff($tabMots,$tabMotsR));
$diffR=$motsR/$mots;
if ($delR>0.5 && $diffR>0.5)
$resirener=true;
}
}
if ($resirener) {
$nbSirenAvalider++;
$sirenValide=0;
$nicValide=0;
}
}
if ($sirenValide) $nbSirenValide++;
if ($sirenExiste) $nbSirenExiste++;
if ($nicValide) $nbNicValide++;
if (nicExiste) $nbNicExiste++;
$tabUpdate=array( 'siren' => $siren,
'nic' => $nic,
'sirenValide' => $sirenValide,
'sirenExiste' => $sirenExiste,
'nicValide' => $nicValide,
'nicExiste' => $nicExiste,
);
//print_r($tabInsert);
//die();
$iDb->update('sirenage_clients', $tabUpdate,"id=$id");
//print_r($tabUpdate);
//die();
if ($i%1000==0)
echo "$i/$nbTotal : $nbSirenValide siren valides dont $nbSirenExiste existants".EOL;
}
die();
*/
/**
$len =strlen($raisonSociale);
$tabMots=preg_split('/ +/', $raisonSociale);
$mots=count($tabMots);
$levI=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI));
$delI=$levI/$len;
$lenI=strlen($raisonSocialeI);
$tabMotsI=preg_split('/ +/', $raisonSocialeI);
$motsI=count(array_diff($tabMots,$tabMotsI));
$diffI=$motsI/$mots;
echo "$raisonSociale\t$raisonSocialeI\t$delI >=0.5 ?\t$diffI >0.5?".EOL;
die();
*
*
* SELECT `siren` , `nic` , `codePostal` , `codePostalSiege` , `typeEven`
FROM `bodacc_detail`
WHERE `id` >=18000000
AND `Bodacc_Date_Parution` >= '2013-06-01'
AND `Rubrique` = CONVERT( _utf8 'radiations'
USING latin1 )
COLLATE latin1_swedish_ci
LIMIT 0 , 30
*/
/*
$tabLignes=file('/root/sql/cegedimCPradiations.csv');
foreach($tabLignes as $ligne) {
$tabLigne=explode("\t", $ligne);
$siren=$tabLigne[0];
if ($siren<1000) continue;
$nic=$tabLigne[1];
$cp=$tabLigne[2];
$cpSiege=$tabLigne[3];
$ann=$tabLigne[5];
if (preg_match('/Adresse du si.ge social \:(.*)\s+(\d\d\d\d\d)\s+/Ui', $ann, $matches))
$cpSiege=$matches[2];
echo "$siren\t$nic\t";
if ($cp>$cpSiege) echo $sp.EOL;
else echo $cpSiege.EOL;
/*
print_r($tabLigne);
die();
$siren=$tabLigne[0];
if ($siren<1000) continue;
$ref=$tabLigne[2];
$cp=trim($tabLigne[3]);
$tabId=@$iInsee->getIdentiteLight($siren);
$siege=$tabId['Siege'];
$nic=$tabId['Nic'];
$cpLu=$tabId['CP'];
if ($cp<>$cpLu) $nic=0;
echo "$siren\t$nic\t$ref\t$cp\t$cpLu".EOL;
//if (@$tabId['actif']==0) $typeJuge='';
//print_r($tabId);
//print_r($tabLigne);
//die();
**
$tabLignes=file('/root/sql/SICLIrecherchenic20130924.csv');
$nbLignes=count($tabLignes);
foreach($tabLignes as $iLigne=>$ligne) {
$tabLigne=explode(",", $ligne);
$siren=$tabLigne[0];
if ($siren<1000) continue;
$nic='';
$ref=$tabLigne[2];
$cp=trim($tabLigne[3]);
$dep=substr($cp,0,2);
if ($dep>95) $dep=substr($cp,0,3);
$tabRep=@$iInsee->getEtablissements($siren, $nic, $deb=0, $nbRep=20, $maxRep=200, $dep);
if ($tabRep['nbReponses']==1) {
$tabId=$tabRep['reponses'][0];
$siege=$tabId['Siege'];
$nic=$tabId['Nic'];
$cpLu=$tabId['CP'];
$actif=$tabId['Actif'];
$ok=1;
} elseif ($tabRep['nbReponses']>1) {
$ok=0;
foreach ($tabRep['reponses'] as $iRep=>$tabId) {
$siege=$tabId['Siege'];
$nic=$tabId['Nic'];
$cpLu=$tabId['CP'];
$actif=$tabId['Actif'];
if ($cp==$cpLu) {
$ok=1;
break;
}
}
}
if ($nic*1<>0 && $ok) echo "$iLigne/$nbLignes\t$siren\t$nic\t$ref\t$cp\t$cpLu".EOL;
}
die();
**/
$repIn='/root/franchise/';
$fichierIn=false;
$dh = opendir($repIn);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -5)=='.html') {
$fichierIn = $filename;
$tabTmp=explode('-', $fichierIn);
$idIn=str_replace('.html','',end($tabTmp));
$htmlIn=file_get_contents($repIn.$fichierIn);
//echo $fichierIn.' ('.strlen($htmlIn)." octets pour l'id $idIn)".EOL;
$enseigne=$secteurNom=$secteurLien=$activiteNom=$activiteLien=$rs=$adresse='';
if (preg_match('/<h1>Franchise \: (.*)<\/h1>/Uis', $htmlIn, $matches))
$enseigne=trim(strip_tags($matches[1]));
if (preg_match('/Toute l\'actualité du secteur <a href=\'(.*)\'>(.*)<\/a>/Uis', $htmlIn, $matches)) {
$secteurLien=trim($matches[1]);
$secteurNom =trim($matches[2]);
}
if (preg_match('/Toute l\'actualit� de l\'activit� <a href=\'(.*)\'>(.*)<\/a>/Uis', $htmlIn, $matches)) {
$activiteLien=trim($matches[1]);
$activiteNom =trim($matches[2]);
}
if (preg_match('/Contact<\/a><\/td>(?:.*)<div style="padding\: 14px;"><h1 style=\'color\: #c50c1f;\'>(.*)<\/h1>(.*)<\/p><\/div>/Uis', $htmlIn, $matches)) {
$rs=trim($matches[1]);
$adresse=trim($matches[2]);
if (strlen($rs)>1000 || strlen($adresse)>1000) {
if (preg_match('/<td onclick="location\.href=\'(http\:\/\/www\.franchise\-magazine\.com\/franchise\/(?:.*)\/contact\.html)\'"/Uis', $htmlIn, $matches)) {
$url=$matches[1];
$tabTmp=explode("'", $url);
$url=end($tabTmp);
//die($url);
$page=getUrl($url, '', '', '', false);
$body=$page['body'];
if (preg_match('/Contact<\/a><\/td>(?:.*)<div style="padding\: 14px;"><h1 style=\'color\: #c50c1f;\'>(.*)<\/h1>(.*)<\/p><\/div>/Uis', $body, $matches)) {
$rs=trim($matches[1]);
$adresse=trim($matches[2]);
}
}
}
}
echo "$fichierIn\t$idIn\t$enseigne\t$secteurNom\t";
$tabUpdate=array( 'secteurFmag'=>$secteurNom);
if ($iDb2->update('franchiseurs', $tabUpdate,"idFmag=$idIn", false))
echo 'OK'.EOL;
else
echo 'K.O. !!!'.EOL;
echo mysql_error();
//echo "$fichierIn\t$idIn\t$enseigne\t$secteurNom\t$secteurLien\t$activiteNom\t$activiteLien\t$rs\t$adresse".EOL;
}
}
die();
/*
foreach ($tabLignes as $i=>$ligne) {
$ecrireLignePre=false;
$typeLigne=substr($ligne, 0, 3)*1;
$siren=$ref=$typeJuge=$dateJuge='';
switch ($typeLigne) {
case 100: // Structure Bodacc
/*Identit� du vendeur Rubrique Siren acheteur Raison Sociale Adresse du fonds *
$ligne100++;
$siren = substr($ligne, 13, 9 ); // Siren de l'entreprise concern�e par l'an
*/
?>

View File

@ -1,132 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
function exporte($txt, $lon=false, $sep="\t") {
if ($lon===false) $lon=strlen($txt);
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(INCLUDE_PATH.'partenaires/classMRnvp.php');
include_once(FWK_PATH.'mail/sendMail.php');
$iInsee=new MInsee();
$iDbR=new WDb('historiques');
$iDbW=new WDb('villes');
$iRnvp=new MRnvp();
$k=0;
$tabAbbr=array('A','DU','D','DE','DES','L','LE','LES','LA','AU','AUX','UN','UNE','RUE','ST','STE','SUR','SOUS','MAIS','OU','ET','DONC','OR','NI','CAR');
//$ret=$iDbR->select('fichier_france_entiere_201409_D_1', 'SIREN, L1_NOMEN, NOMEN_LONG', "SIEGE=1 AND LENGTH(NOMEN_LONG)>38 /*AND SIREN<300000000*/", false, MYSQL_ASSOC, true);
$ret=$iDbR->select('insee.insee_even', 'insSIREN AS SIREN, insL1_NOMEN AS L1_NOMEN, insNOMEN_LONG AS NOMEN_LONG', "insSIEGE=1 AND LENGTH(insNOMEN_LONG)>38 AND idFlux>='2014-10-01'", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s') . " - Il y a $ret raisons sociales à tester...".EOL;
$tDeb=microtime(1);
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
$k++;
$siren=$ligne['SIREN'];
$nomLongs=$ligne['NOMEN_LONG'];
$nomCourt=$ligne['L1_NOMEN'];
// On ignore les RS juste tronquées
if (substr($nomLongs,0,38)==$nomCourt) continue;
//$nomCourt=preg_replace('/[^A-Z0-9%\'\"\-&\*\/\s]/','',trim(strtoupper($nomLong)));
$tabMotsCourt=split("[^[:alpha:]]+", $nomCourt);
$tabMotsCourt=array_diff($tabMotsCourt, $tabAbbr);
$tabMotsLongs=split("[^[:alpha:]]+", $nomLongs);
$tabMotsLongs=array_diff($tabMotsLongs, $tabAbbr);
echo "$k/$ret - $siren $nomLongs ==> $nomCourt".EOL;
//print_r($tabMotsLongs);
foreach($tabMotsCourt as $iC=>$motC) {
if (!isset($tabMotsCourt[$iC+1])) break; // Le dernier mot peut être tronqué alors on ignore !
$trouve=0;
$lenC=strlen($motC);
if ($lenC<3) continue;
echo "Mot Court : '$motC'";
$tabInserts=array();
foreach ($tabMotsLongs as $iL=>$motL) {
$lenL=strlen($motL);
if ($lenL<=3) continue;
if ($iL>=$iC && $motC<>$motL && $lenL>$lenC && (substr($motC,0,$lenC)==substr($motL,0,$lenC) || substr($motC,0,6)==substr($motL,0,6))) {
$trouve++;
echo "= Mot Long : '$motL'".EOL;
$tabInserts[]=array('abrCode'=>$motC,
'abrLib'=>$motL,
'abrType'=>'N',
'abrOfficiel'=>0,
'siren'=>$siren,
'nomLong'=>$nomLongs,
'nomCourt'=>$nomCourt,
'dateInsert'=>date('YmdHis'),
);
}
}
if ($trouve==0) echo EOL;
elseif ($trouve==1) {
foreach ($tabInserts as $tabInsert) {
if (!$iDbW->insert('tabAbreviations', $tabInsert, false)) {
$abrCode2=addslashes($motC);
$abrLib2 =addslashes($motL);
$ret2=$iDbW->select('tabAbreviations', 'nbOcc', "abrCode='$abrCode2' AND abrLib='$abrLib2'", false);
$tabInsert['nbOcc']=@$ret2[0]['nbOcc']*1+1;
unset($tabInsert['dateInsert']);
$iDbW->update('tabAbreviations', $tabInsert, "abrCode='$abrCode2' AND abrLib='$abrLib2'", false);
}
echo mysql_error();
}
}
}
continue;
$codeCommune=$ligne['ADR_DEP'].$ligne['ADR_COM'];
$adrTypVoie=$ligne['ADR_TYPVOIE'];
$adrLibVoie=$ligne['ADR_LIBVOIE'];
$codeVoieI=$ligne['CODEVOIE'];
// / 4271 1
$libCom=$ligne['ADR_LIBCOM'];
echo date ('Y/m/d - H:i:s') . " - $siren $nic\t$codeCommune\t$libCom\t$adrTypVoie\t$adrLibVoie\t$codeVoieI=";
$tRDeb=microtime(1);
$codeVoieC=$iInsee->getCodeVoieRivoli($codeCommune, $adrTypVoie, $adrLibVoie);
echo $codeVoieC." ?\t";
$tNDeb=microtime(1);
$dureeR+=$tNDeb-$tRDeb;
$tabAdrNorm=$iRnvp->normaliseAdresse($ligne['insL1_NOMEN'], $ligne['insL2_COMP'], $ligne['insL3_CADR'], $ligne['insL4_VOIE'], $ligne['insL5_DISP'], $ligne['insL6_POST'], $ligne['insL7_ETRG'], 38, false);
$dureeN+=microtime(1)-$tNDeb;
//print_r($tabAdrNorm);
echo @$tabAdrNorm['HexaViaMat'].EOL;
}
$tFin=microtime(1);
echo EOL."Durée Rivoli .......... =".round($dureeR,3).' secondes'.EOL;
echo EOL."Durée Normalisation ... =".round($dureeN,3).' secondes'.EOL;
echo EOL."Durée TOTALE .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
// print_r($iInsee->getIdentiteEntreprise(800046823,12));
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,346 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/*
$raisonSociale="SCORES ET DECISIONS";
$raisonSocialeI="SCORES & DECISIONS";
$tabMots=preg_split('/ +/', $raisonSociale);
$tabMotsI=preg_split('/ +/', $raisonSocialeI);
$lev=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI));
$len =strlen($raisonSociale);
$delT=$lev/$len;
print_r(array_diff($tabMots,$tabMotsI));
die($delT);*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Récupère en FTP les annonces BODACC A, B et C depuis le serveur des JO.
Options :
-t:NOMFICHIER.TLS Nom du fichier local à -intégrer directement
(prévoir l'UPDATE des annonces BODACC déjà en base lorsque nous serons en PROD)
-j Ne se connecte pas au FTP des JO
-A -B -C Chargement des annonces limités au BODACC A, B ou C
".
// -n:XXX Numéro du Bodacc
// -d:JJ/MM/AAAA Rechargement des annonces BODACC depuis cette date
// -f:JJ/MM/AAAA Rechargement des annonces BODACC jusqu'à cette date
" -l Derniers BODACC non intégrés uniquement (*)
-m Force la date d'insertion à celle de la récupération des fichiers Bodacc (cas d'un rechargement complet)
-r (inopérant) Rechargement des annonces déjà en base
-e EFFACEMENT DE TOUTES LES ANNONCES correspondantes déjà en base (et non mise à jour)
-n Continuer au fichier suivant en cas d'erreur
-s Ignorer la validation du Schéma XML
-u Ne pas dézipper l'archive XML (en cas de XML incorrect, erreur du Bodacc)
-w Mettre à jour les SIREN des Associations avec Waldec non sirenées
-p Mettre à jour les SIREN des Marchés Publics non sirenées
-d Retraitement à posteriori des codes évènements du Bodacc
-i Ne pas poser de questions interactives.
-v Mode verbeux
(*) Option par défaut si aucun argument n'est passé.
";
// ==> ATTENTION : faire cette opération en connaissance de cause car les liens entres annonces seront perdus !!!
$lastJO=$dateDebut=$dateFin=$dateDeb=$fichierTLS=$numBodaccIN=false;
$tabBodaccF=array(); // Tableau des Bodacc à recharger
$update=false; // Par défaut, si une annonce est déjà en base, on ne la met pas à jour !!!
$erase=false; // Par déaut, on n'efface pas les annonces
$ftpStep=true; // Par défaut, on se connecte au FTP des JO
$forceDateInsertABodacc=false; // Par défaut, la date d'insertion des annonces n'est pas calée sur celle des fichiers Bodacc (en cas de réinitilaisation)
$forceContinue=false; // Par défaut, on arrête au fichier courant en cas d'erreur
$validateSchema=true; // Par défaut, on Valide le Schéma XML
$unTaz=true; // Par défaut, on dézippe l'archive XML, sinon, on prend le .xml local (en cas de XML incorrect)
$strMailInfo=''; // Coprs du mail d'information
$copieWaldec=false; // Par défaut, on ne recopie pas les SIREN des Associations avec Waldec non sirenées
$copieSirenBoamp=false; // Par défaut, on ne recopie pas les SIREN des LOTS BOAMP
$doMajBodacc=false; // Par défaut, on ne retraite pas les annonces BODACC sauf si Bodacc chargé
$noQuestion=false; // Par défaut, le script peut poser des questions interactives !
$modeDebug=false; // Par défaut, ne pas être trop verbeux
$nbInsertLots=$nbInsertAvis=0; // Nombre de lots et avis insérés BOAMP + MAPA
$nbMtRecup=0; // Nombre de lots avec récupération/retraitement du montant
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true; // Fonctionnement normal du script, càd : on charge les derniers BODACC non encore intégrés
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'A':
case 'a':
$tabBodaccF[]='A';
break;
case 'B':
case 'b':
$tabBodaccF[]='B';
break;
case 'C':
case 'c':
$tabBodaccF[]='C';
break;
/*case 'd':
$dateDebut=substr($argv[$i],3,10);
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;*/
case 'e':
$erase=true;
break;
case 'w':
$copieWaldec=true;
break;
case 'p':
$copieSirenBoamp=true;
break;
case 'd':
$doMajBodacc=true;
break;
/*case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
break;*/
case 'j':
$ftpStep=false;
break;
case 'l':
$lastJO=true;
break;
case 'm':
$forceDateInsertABodacc=true;
break;
case 'n':
//die('$forceContinue');
$forceContinue=true;
break;
case 'r':
$update=true;
break;
case 't':
$fichierTLS=trim(substr($argv[$i],3));
break;
/*case 'n':
$numBodaccIN=trim(substr($argv[$i],3));
break;*/
case 's':
$validateSchema=false;
break;
case 'u':
$unTaz=false;
break;
case 'i':
$noQuestion=true;
break;
case 'v':
$modeDebug=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
}
}
}
if (count($tabBodaccF)==0) $tabBodaccF=array('A','B','C','ASSO','BOMP A','BOMP B','BOMP C','MAPA','DEFENSE');
$strBodacc=implode(', ', $tabBodaccF);
$strDates='';
if ($lastJO==true) $strLast=' derniers';
else $strLast='';
/*else {
$dateCour=$dateDeb;
$strLast='';
if ($dateDebut==false || $dateFin==false)
die($strInfoScript);
else
$strDates="du $dateDebut au $dateFin";
}*/
$iDb=new WDB();
$iBodacc=new MBodacc();
$iInsee=new MInsee();
echo date ('Y/m/d - H:i:s') . " - Mise à jour des intervenants...".EOL;
$sirMand=$sirGrp=$rechGrpMand=$newMand=false;
$sirGrp=true;
if ($newMand) {
$nbAbsent=0;
$tabTmp=$iDb->select('tabMandataires', "DISTINCT sirenMand", "sirenMand>1000 AND TYPE IN ('A','M')", false, MYSQL_ASSOC);
$nbMand=count($tabTmp);
echo date ('Y/m/d - H:i:s') . " - Il y a $nbMand SIREN d'intervenants de type ADM/MAND connus.".EOL;
$tabMand=array();
foreach ($tabTmp as $iMand=>$mand) {
$tabMand[]=$mand['sirenMand'];
}
$strSiren=implode(',',$tabMand);
$tabTmp2=$iDb->select('etablissements_tmp', "siren,nic,actif,siege,raisonSociale,adr_num,adr_btq,adr_typeVoie,adr_libVoie,adr_comp,adr_cp,adr_ville, tel, fax", "siren IN ($strSiren) AND actif=1 ORDER BY siren ASC, nic ASC", false, MYSQL_ASSOC);
$nbEtab=count($tabTmp2);
echo date ('Y/m/d - H:i:s') . " - Il y a $nbEtab SIRET d'intervenants dans l'INSEE...".EOL;
$tabSirenMand=array();
foreach ($tabTmp2 as $iE=>$etab) {
$siren=$etab['siren'];
$nic=$etab['nic'];
$tabTmp=$iDb->select('tabMandataires', "sirenGrp, sirenMand, nicMand, Nom, Prenom, type, stagiaire, coursAppel, coursAppel2, tribunal, Statut", "sirenMand=$siren", false, MYSQL_ASSOC);
$tM=$tabTmp[0];
$tabSirenMand['_'.$siren]=array('sirenGrp'=>$tM['sirenGrp'],
'Nom'=>$tM['Nom'],
'Prenom'=>$tM['Prenom'],
'type'=>$tM['type'],
'coursAppel'=>$tM['coursAppel'],
'coursAppel2'=>$tM['coursAppel2'],
'tribunal'=>$tM['tribunal'],
'Statut'=>$tM['Statut']);
}
foreach ($tabTmp2 as $iE=>$etab) {
$siren=$etab['siren'];
$nic=$etab['nic'];
$tabTmp=$iDb->select('tabMandataires', "sirenGrp, sirenMand, nicMand, Nom, Prenom, type, stagiaire, coursAppel, coursAppel2, tribunal, Statut", "sirenMand=$siren AND nicMand=$nic", false, MYSQL_ASSOC);
$mandExiste=count($tabTmp);
if ($mandExiste==0) {
$tabId=@$iInsee->getIdentiteEntreprise($siren, $nic);
$tabInsert=array( 'sirenGrp'=> $tabSirenMand['_'.$siren]['sirenGrp'],
'sirenMand'=> $siren,
'nicMand'=> $nic,
'Nom'=> $tabSirenMand['_'.$siren]['Nom'],
'Prenom'=> $tabSirenMand['_'.$siren]['Prenom'],
'type'=> $tabSirenMand['_'.$siren]['type'],
'coursAppel'=> $tabSirenMand['_'.$siren]['coursAppel'],
'coursAppel2'=> $tabSirenMand['_'.$siren]['coursAppel2'],
'tribunal'=> $tabSirenMand['_'.$siren]['tribunal'],
'Statut'=> $tabSirenMand['_'.$siren]['Statut'],
'adresse'=> $tabId['Adresse'],
'adresseComp'=> $etab['adr_comp'],
'cp'=> $etab['adr_cp'],
'ville'=> $etab['adr_ville'],
'tel'=> $tabId['Tel'],
'fax'=> $tabId['Fax'],
'email'=> $tabId['Mail'],
'web'=> $tabId['Web'],
'dateInsert'=> date('YmdHis'));
//print_r($tabId);
print_r($tabInsert);
$iDb->insert('tabMandataires', $tabInsert, false);
echo mysql_error().EOL;
$nbAbsent++;
echo "$siren $nic : Mandataire absent de la base".EOL;
}
}
echo date ('Y/m/d - H:i:s') . " - Il y a $nbAbsent/$nbEtab SIRET d'intervenants absents en base !".EOL;
die();
}
if ($sirMand || $sirGrp || $rechGrpMand) {
if ($sirMand)
$tabTmp=$iDb->select('tabMandataires', "sirenMand, nicMand, id, sirenGrp, nicGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact",
"sirenMand>100 AND nicMand=0 AND TYPE IN ('A','M') ORDER BY sirenMand ASC", false, MYSQL_ASSOC);
elseif ($sirGrp)
$tabTmp=$iDb->select('tabMandataires', "sirenMand, nicMand, id, sirenGrp, nicGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact",
"sirenGrp>100 AND nicGrp=0 AND TYPE IN ('A','M') ORDER BY sirenGrp ASC", false, MYSQL_ASSOC);
elseif ($rechGrpMand)
$tabTmp=$iDb->select('tabMandataires', "sirenMand, nicMand, id, sirenGrp, nicGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact",
"sirenMand>100 AND sirenGrp=0 AND TYPE IN ('A','M') ORDER BY sirenMand ASC", false, MYSQL_ASSOC);
// Rechercher une société civille à l'adresse
$nbMand=count($tabTmp);
foreach ($tabTmp as $iMand=>$mand) {
$sirenMand=$mand['sirenMand'];
$idMand=$mand['id'];
$sirenGrp=$mand['sirenGrp'];
print_r($mand);
$cp1=$mand['cp'];
$dep1=substr($cp1,0,2);
$ville1=$mand['ville'];
$adrNum1=$siren2=-1;
if (preg_match('/\s(\d+)\D+/',' '.$mand['adresse'],$matches)) {
$adrNum1=$matches[1];
}
echo "$iMand/$nbMand: $adrNum1".EOL;
if ($sirMand) $siren2=$sirenMand;
elseif ($sirGrp) $siren2=$sirenGrp;
if ($siren2>-1)
$tabTmp2=$iDb->select('etablissements_tmp', "siren,nic,actif,siege,raisonSociale,/*enseigne,sigle,identite_pre,marques*/adr_num,adr_btq,adr_typeVoie,adr_libVoie,adr_comp,adr_cp,adr_ville", "siren=$siren2 ORDER BY nic ASC", true, MYSQL_ASSOC);
else {
$tabTmp3=@$iInsee->rechercheEtab('', $mand['adresse'], $dep1, $ville1, '', '', 0, 200, 200, true, true);
$tabTmp2=array();
if ($tabTmp3['nbReponses']==0) continue;
foreach (@$tabTmp3['reponses'] as $iR=>$tR) {
if ( ($tR['FJ']>=6500 && $tR['FJ']<6600) ||
$tR['FJ']==5370 ||
$tR['FJ']==5385 ||
$tR['FJ']==5470 ||
$tR['FJ']==5485 ||
$tR['FJ']==5570 ||
$tR['FJ']==5585 ||
$tR['FJ']==5670 ||
$tR['FJ']==5685 ||
$tR['FJ']==5770 ||
$tR['FJ']==5785 ) {
$tabTmp2[]=array( 'siren'=> $tR['Siren'],
'nic'=> $tR['Nic'],
'actif'=> $tR['Actif'],
'siege'=> $tR['Siege'],
'raisonSociale'=> $tR['Nom'],
'adr_num'=> '',
'adr_btq'=> '',
'adr_typeVoie'=> '',
'adr_libVoie'=> $tR['Adresse'],
'adr_comp'=> $tR['Adresse2'],
'adr_cp'=> $tR['CP'],
'adr_ville'=> $tR['Ville'],
);
}
}
// if ($tabTmp3['nbReponses']>0) continue;//die();
}
$tabNic=array();
foreach ($tabTmp2 as $iC=>$choix) {
$siren2=$choix['siren'];
$nic2=$choix['nic'];
$tabNic[]=$nic2;
$actif=$choix['actif'];
$adr2=preg_replace('/s+/',' ', $choix['adr_num'].' '.$choix['adr_btq'].' '.$choix['adr_typeVoie'].' '.$choix['adr_libVoie'].' '.$choix['adr_comp'].', '.$choix['adr_cp'].' '.$choix['adr_ville']);
if ($cp1==$choix['adr_cp'] && $adrNum1==$choix['adr_num'] ||
$dep1=substr($choix['adr_cp'],0,2) && strpos($ville1,$choix['adr_ville'])===true) { $nicTrouve=$nic2; $strNicTrouv='***';}
else $strNicTrouv='';
if ($rechGrpMand) echo "$siren2";
echo "$nic2 $strNicTrouv\t".$choix['raisonSociale']."\t$actif $adr2".EOL;
}
//continue;
while(true){
$iC2=$iC+1;
if ($rechGrpMand) echo "Saisir le SIRET correspondant (0 pour ne rien saisir) parmis les $iC2 résultats ?".EOL;
else echo "Saisir le NIC correspondant (0 pour ne rien saisir) parmis les $iC2 résultats ?".EOL;
$saisie = trim(strtoupper(fgets(STDIN)))*1;
if ($saisie<0) break;
elseif ($saisie>100000000) {
$iDb->update('tabMandataires', array('sirenGrp'=>substr($saisie,0,9), 'nicGrp'=>substr($saisie,9,5)), "id=$idMand", false);
break;
}
elseif ($rechGrpMand) break;
elseif ($saisie>9 || ($saisie==0 && $iC2==1) || ($saisie==0 && $iC2>1 && $nicTrouve>9)) {
if ($saisie==0 && $iC2==1) $saisie=$nic2;
elseif ($saisie==0 && $iC2>1 && $nicTrouve>9) $saisie=$nicTrouve;
if ($sirGrp && in_array($saisie, $tabNic))
$iDb->update('tabMandataires', array('nicGrp'=>$saisie), "id=$idMand", false);
elseif ($sirMand && in_array($saisie, $tabNic))
$iDb->update('tabMandataires', array('nicMand'=>$saisie), "id=$idMand", false);
break;
} elseif ($saisie==0) break;
}
}
}
die();
?>

View File

@ -1,4 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="Plans_Cessions_${DATE}.csv"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/prod/listeReprisesPlanCession.sql > /var/www/html/boffice/diversProd/$FILE_CSV

View File

@ -1,5 +0,0 @@
SELECT id, siren, idSirenage, Bodacc_Date_Parution, Tribunal_Code, typeAnnonce, raisonSociale, typeEven, dateEffet, dateJugement
FROM jo.bodacc_detail
WHERE dateSuppr=0 AND dateInsert>=DATE_SUB(NOW(),INTERVAL 1 WEEK)
AND typeEven
IN ( 1408, 1411, 1412, 1415, 1425, 1511, 4500, 6005, 6500 );

View File

@ -1,173 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMRnvp.php');
//include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(FWK_PATH.'mail/sendMail.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Traitement de renvoi des mails non encore partis.
Options :
-u Supprimer le verrou
";
$argv=$_SERVER['argv'];
$scriptName=basename($argv[0]);
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'u':
unlink(REP_TEMP.basename($scriptName).'.lock');
echo date('Y/m/d - H:i:s')." - Suppression du verrou.".EOL;
die();
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} elseif ($argv[$i]>10000 && $siretInput) $tabSiret[]=$argv[$i];
}
}
$iDb=new WDb('sdv1');
$iDb2=new WDb('sdv1');
$rep=$iDb->select('sdmails', 'id, `from`, `to`, subject, texte, html, fichiers, modeCli, essais, dateEnvoi, dateInsert', "dateEnvoi=0 ORDER BY id DESC/*AND `to`='ylenaour@scores-decisions.com'*/", false);
$nbRenvois=count($rep);
echo date ('Y/m/d - H:i:s')." - Il y a $nbRenvois mail(s) à renvoyer à leur(s) destinataire(s)...".EOL;
if (file_exists(REP_TEMP.basename($scriptName).'.lock')) {
$tabLock=explode(';', file_get_contents(REP_TEMP.basename($scriptName).'.lock'));
if (substr($tabLock[0],0,8)==date('Ymd')) {
echo date('Y/m/d - H:i:s')." - Le traitement de renvoi des mails est en cours, patienter et recommencer plus tard !!!".EOL;
die();
} else {
unlink(REP_TEMP.basename($scriptName).'.lock');
echo date('Y/m/d - H:i:s')." - Suppression d'un ancien verrou (".substr($tabLock[0],0,8).")...".EOL;
}
}
$fpT=fopen(REP_TEMP.basename($scriptName).'.lock', 'w');
fwrite($fpT, date('Ymd-His').";$scriptName;Renvoi des mails en cours depuis le ".date('Ymd-His').EOL);
fclose($fpT);
foreach ($rep as $i=>$tMail) {
$id=$tMail['id'];
$to=$tMail['to'];
$subject=$tMail['subject'];
$tabAttachedFiles=explode(',',$tMail['fichiers']);
$nbFichiers=count($tabAttachedFiles);
//if ($modeDbug) echo date ('Y/m/d - H:i:s')." - $i2/$nbRenvois : Tentative de renvoi du mail à $to - $subject ($nbFichiers PJ) en date du ".$tMail['dateInsert'].EOL;
@sendMail2( $tMail['from'], $tMail['to'], $tMail['subject'], $tMail['texte'], $tMail['html'], $tabAttachedFiles, $id,
$tMail['essais'], $tMail['dateInsert']);
$i2=$i+1;
echo date ('Y/m/d - H:i:s')." - $i2/$nbRenvois : Le mail n°$id a été renvoyé à $to - $subject ($nbFichiers PJ) en date du ".$tMail['dateInsert'].EOL;
}
unlink(REP_TEMP.basename($scriptName).'.lock');
echo date ('Y/m/d - H:i:s')." - Fin de renvoi des $nbRenvois mail(s).".EOL;
die();
function sendMail2($from, $to, $subject, $text='', $html='', $tabAttachedFiles=array(), $idMail, $nbEssais=0, $dateInsertIni=0)
{
global $iDb2;
$to=preg_split("/[\s,;]+/", $to);
require_once('Mail.php');
require_once('Mail/mime.php');
$headers=array( 'From'=>$from,
'To'=>$to,
'Subject'=>$subject,
'Content-Transfer-Encoding'=>'8bit',
'MIME-Version'=>'1.0',
'Date'=>date('D, d M Y H:i:s O'),
'Message-ID'=>'<'.md5(date('YmdHis')).'@mail.scores-decisions.com>',
'X-Priority'=>3,
'X-Mailer'=>'PHP v'.phpversion(),
);
$mime = new Mail_mime();
$footer="";
if ($text<>'') $mime->setTXTBody($text.$footer);
if ($html<>'') $mime->setHTMLBody($html);
foreach ($tabAttachedFiles as $file)
$mime->addAttachment($file);
//do not ever try to call these lines in reverse order
$body = $mime->get();
$headers = $mime->headers($headers);
$params=array( 'host'=>'smtpauth.online.net', // SMTP_HOST
'port'=>25, //SMTP_PORT,
);
$params=array( 'host'=>SMTP_HOST,
'port'=>SMTP_PORT,
);
if (SMTP_USER=='' && SMTP_PASS=='')
$params['auth'] = false;
else {
$params['username'] = SMTP_USER;
$params['password'] = SMTP_PASS;
}
//$nbEssais=0;
while (1) {
// Create the mail object using the Mail::factory method
$mail_object = Mail::factory('smtp', $params);
// Trying to send the mail
$send = $mail_object->send($to, $headers, $body);
$nbEssais++;
if (PEAR::isError($send)) {
/** @todo tester les différents codes erreur **/
echo date('Y-m-d H:i:s'). " sendMail.php - essai #$nbEssais : ".$send->getMessage().EOL;
if (preg_match('/too many connections|421/i', $send->getMessage()))
sleep($nbEssais);
else {
$strTo=implode(';', $to);
file_put_contents( '/var/www/log/sendMailError.log',
date('Y-m-d H:i:s')."\t#$nbEssais\t$strTo\t".$send->getMessage().EOL,
FILE_APPEND);
break;
}
} else {
$dateHeureEnvoi=date('YmdHis');
/** Si nous sommes en mode CLI, alors on fait en sorte de ne pas atteindre
la limite des 25 mails par minute (ramené à 100 / minute)
**/
if (MODE_EXEC==MODE_CLI) usleep(500000);
break;
}
}
$cli=0;
if (MODE_EXEC==MODE_CLI) $cli=1;
$tabUpdate=array( 'essais'=> $nbEssais,
'dateInsert'=>$dateInsertIni,
'dateEnvoi'=>$dateHeureEnvoi,
);
$iDb2->update('sdmails',$tabUpdate,"id=$idMail", false);
return true;
}
?>

View File

@ -1,597 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'partenaires/classMAmabis.php');
//include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(FWK_PATH.'mail/sendMail.php');
/*include_once(INCLUDE_PATH.'partenaires/classMTel.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
$adrL4='5 RUE DES FRERES LUMIERES';
if(preg_match('/(^(\d{0,4})\s?([a-z]{0,1}))\s(.*)$/i', $adrL4, $matches)) {
print_r($matches);
$numVoieRep=$matches[1];
$numVoie=$matches[2];
$indRep=$matches[3];
$libVoie=$matches[4];
}
die();*/
$iAmabis=new MAmabis();
$iInsee=new MInsee();
$iBodacc=new MBodacc();
$iDbR=new WDb('tmp');
$iDbW=new WDb('insee');
$nbNic=$nbSiege=$nbInsert=0;
/*
CREATE TABLE tmp.siretInsee ENGINE = MYISAM
SELECT SIREN, NIC, CONCAT(SIREN,NIC) AS siret, id, APE_ENT, APE_ETAB, ACTIF FROM insee.identite;
ALTER TABLE tmp.siretInsee ADD tva CHAR(13) NOT NULL, ADD email VARCHAR(80) NOT NULL, ADD INDEX idxSirenNic(SIREN,NIC), ADD INDEX idxSiret(siret);
UPDATE tmp.siretInsee, sdv1.siren_tva SET siretInsee.tva =CONCAT('FR',siren_tva.cle,siretInsee.siren)
WHERE siretInsee.siren=siren_tva.siren;
UPDATE tmp.siretInsee, jo.telephonie SET siretInsee.email=telephonie.infoTel
WHERE siretInsee.siren=telephonie.siren AND siretInsee.nic=telephonie.nic AND telephonie.typeTel='mail';
*/
$nbSiret=$iDbR->select( 'tmp.siretIn2RRG r, tmp.siretInsee s',
'r.siret, s.siren, s.id, s.APE_ENT, s.APE_ETAB, s.ACTIF, s.tva, s.email',
'r.siret=s.siret AND r.siret>1000000000', false, MYSQL_ASSOC, true);
echo "Export de $nbSiret établissements...".EOL;
$numRow=0;
$fp=fopen('/root/siretRRGoutSED_siretmanquants.csv','w');
while($entrep=$iDbR->fetch(MYSQL_ASSOC)) {
$numRow++;
$siret=$entrep['siret'];
$siren=$entrep['siren'];
$id=$entrep['id'];
$apet=$entrep['APE_ETAB'];
$apen=$entrep['APE_ENT'];
$actif=$entrep['ACTIF'];
if ($actif==10) $actif=0;
elseif ($actif==11) $actif=1;
$tva=$entrep['tva'];
if($tva=='') {
$iTva=@new MTva($siren, false);
$tva=@$iTva->vatNumber;
}
$email=$entrep['email'];
$txt=$siret.'$'.$id.'$'.$apet.'$'.$apen.'$'.$actif.'$'.$tva.'$'.$email.EOL;
fwrite ($fp, $txt);
echo date('Y/m/d - H:i:s') . " - $numRow/$nbSiret : $txt";
}
die();
$tabTmp=$iDbR->select(
'siretInRRGinconnus2',
"siret, siren, nic, siretNew, sirenInconnu, cj, nafEn, nafEt, tel, sigle, hexavia, L1_NOM, L2_ENSEIGNE, L3_CADR, L4_VOIE, L5_DISP, L6_ACHPOST",
"sirenInconnu=1 OR (nic BETWEEN 10 AND 89999) ORDER BY siret ASC", false, MYSQL_ASSOC);
$nbEntites=count($tabTmp);
echo "Il y a $nbEntites à créer".EOL;
foreach ($tabTmp as $i=>$etab) {
$siren=$etab['siren'];
$nic=$etab['nic'];
$cj=$etab['cj'];
$nafEn=$etab['nafEn'];
$nafEt=$etab['nafEt'];
$tel=$etab['tel'];
$sigle=trim(preg_replace('/s+/',' ',$etab['sigle']));
$hexavia=$etab['hexavia'];
$L1=trim(preg_replace('/s+/',' ',$etab['L1_NOM']));
$L2=trim(preg_replace('/s+/',' ',$etab['L2_ENSEIGNE']));
$L4=trim(preg_replace('/s+/',' ',$etab['L3_CADR']));
$L3=trim(preg_replace('/s+/',' ',$etab['L4_VOIE']));
$L6=trim(preg_replace('/s+/',' ',$etab['L6_ACHPOST']));
if(trim($L4)=='' && trim($L3)<>'') {
$L4tmp=$L4;
$L4=$L3;
$L3=$L4tmp;
}
$siege=0;
$id=false;
if ($etab['sirenInconnu']==1) {
$tabTmp=$iDbR->select(
'siretInRRGinconnus2',
"nic",
"siren=$siren", false, MYSQL_ASSOC);
$nbSiren=count($tabTmp);
if ($nbSiren==1) $siege=1;
} else {
$tabId=@$iInsee->getIdentiteLight($siren);
if ($nafEn=='') $nafEn=$tabId['NafEnt'];
if ($nafEt=='') $nafEt=$tabId['NafEtab'];
if ($cj==0) $cj=$tabId['FJ'];
if ($tabId['Nic']*1<10 && $tabId['Source']*1==2) {
// Mettre le bon NIC dans la table identite
$lev4=similar_text ($L4,$tabId['Adresse'], $percent4);
$lev6=similar_text ($L6,$tabId['CP'].' '.$tabId['Ville'], $percent6);
echo "$L4 <=> ".$tabId['Adresse']." ($lev4 / $percent4)".EOL;
echo "$L6 <=> ".$tabId['CP'].' '.$tabId['Ville']." ($lev6 / $percent6)".EOL;
if ($percent4>80 && $percent6>80) {
$id=$tabId['SourceId'];
echo date('Y/m/d H:i:s')." - $i/$nbEntites : $siren $nic\t$L1 $L4, $L6 ($id) remplace le nic à 00000".EOL;
$nbNic++;
$iDbW->update('identite', array('NIC'=>$nic), "id=$id", false);
continue;
}
} elseif ($tabId['Nic']*1<10 || ($tabId['Nic']*1>$nic && $tabId['Nic']<60) || ($cj>=1000 && $cj<2000) || ($cj>=10 && $cj<20)) {
$siege=1;
} /*else {
print_r($etab);
print_r($tabId);
die();
}*/
}
if ($siege==1) $nbSiege++;
$codeVoie='';
$indPublipo='';
$tabAdr=$iInsee->structureVoie($L4);
$numVoie=@$tabAdr['num'];
$indRep=@$tabAdr['indRep'];
$typeVoie=@$tabAdr['typeVoie'];
$libVoie=@$tabAdr['libVoie'];
$ret=$iDbR->select( 'villes.hexaviaVoies v, villes.hexaviaVilles c',
"c.codeInseeCom, c.libCom38, c.libLigne5n38, c.libLigne6n38, v.idAdr56, v.codeVoie, v.libVoie38, v.typeVoie, v.codePostal",
"v.idAdr56=c.idAdr56 AND codeVoie=$hexavia",false, MYSQL_ASSOC);
if (count($ret)>0) {
$tAdr=$ret[0];
$codeCom=$tAdr['codeInseeCom'];
$libCom=$tAdr['libCom38'];
$cp=$tAdr['codePostal'];
$L5=$tAdr['libLigne5n38'];
$indPublipo=1;
} elseif ($hexavia*1>0) {
// Rechercher le code commune
$cp=trim(substr($L6,0,6));//$tAdr['codePostal'];
$libCom=trim(substr($L6,6,38));//$tAdr['libCom38'];
$codeCom=$iAmabis->getCodCommune($libCom, $cp);
$L5='';//$tAdr['libLigne5n38'];
$indPublipo=1;
} else {
// Rechercher les lignes 5 et 6
$adrRnvp=@$iAmabis->normaliseAdresse($L1, $L2, $L3, $L4, '', $L6);
//print_r($adrRnvp);
$codeCom=$adrRnvp['HexaviaComCod'];
$libCom=$adrRnvp['HexaviaComLib'];
$cp=$adrRnvp['HexaviaCP'];
$L5=$adrRnvp['libLigne5'];
$hexavia=@$adrRnvp['HexaViaMat'];
if ($hexavia*1==0) {
$cp=trim(substr($L6,0,6));//$tAdr['codePostal'];
$libCom=trim(substr($L6,6,38));//$tAdr['libCom38'];
$L5='';//$tAdr['libLigne5n38'];
}
else $indPublipo=1;
}
$codeVoie=$iInsee->getCodeVoieRivoli($codeCom, $typeVoie, $libVoie);
$pays='';
$civ=0;
$dirFct=$dirNom='';
$tabPP=array();
if (($cj>=1000 && $cj<2000) || ($cj>=10 && $cj<20)) {
$tabPP=$iBodacc->getNomPrenomGenre($L1);
//echo $L1.EOL;
if ($tabPP['Genre']=='M') $civ=1;
elseif ($tabPP['Genre']=='F') $civ=2;
$dirNom=$L1;
}
//identite
$tabInsert=array(
'SIREN'=>$siren,
'NIC'=>$nic,
'ACTIF'=>0,
'actifEco'=>0,
'NOM'=>substr($L1,0,60),
'NOM2'=>substr($L1,60,38),
'SIGLE'=>$sigle,
'ENSEIGNE'=>substr($L2,0,60),
'ADR_NUMVOIE'=>$numVoie,
'ADR_BTQ'=>$indRep,
'ADR_TYPVOIE'=>$typeVoie,
'ADR_LIBVOIE'=>$libVoie,
'ADR_LIBCOM'=>$libCom,
'ADR_CP'=>$cp,
'ADR_COMP'=>$L3,
'ADR_DISTSP'=>$L5,
'PAYS'=>$pays,
'CJ'=>$cj,
'APE_ENT'=>$nafEn,
'APE_ETAB'=>$nafEt,
'TEL'=>$tel,
'ADR_DEP'=>substr($codeCom,0,2),
'ADR_COM'=>substr($codeCom,2,3),
'CODEVOIE'=>$codeVoie,
'NOMEN_LONG'=>$L1,
/* 'insL1_NOMEN'=>,
'insL2_COMP'=>,
'insL3_CADR'=>,
'insL4_VOIE'=>,
'insL5_DISP'=>,
'insL6_POST'=>,
'insL7_ETRG'=>,*/
'DIR_FCT'=>$dirFct,
'DIR_IDEN'=>$dirNom,
'CIVILITE'=>$civ,
'insIND_PUBLIPO'=>$indPublipo,
'dateUpdate'=>0,
);
if ($iDbW->insert('identite', $tabInsert, false))
$nbInsert++;
echo date('Y/m/d H:i:s')." - $i/$nbEntites : $siren $nic\t$L1 $L4, $L6 (OK)".EOL;
// print_r($etab);
/* siretNew,
* sirenInconnu,
* L5_DISP,
* L6_ACHPOST
***/
/*
APRM`,
ACTIVNAT`,
ORIGINE`,
MODET`,
EXPLET`,
DAPET`,
LIEUACT`,
ACTISURF`,
DEFET`,
MODEN`,
PRODPART`,
EXPLEN`,
DEFEN`,
MONOREG`,
REGIMP`,
MONOACT`,
DAPEN`,
DCREN`,
SIEGE`,
AUXILT`,
SAISONAT`,
NBETAB`,
PROCOL`,
PROCOL_TYPE`,
PROCOL_DATE`,
CAPITAL`,
EFF_ENT`,
NUMRC`,
FAX`,
DIR_DATEN`,
DIR_LIEUN`,
CAPITAL_DATE`,
CAPITAL_DEV`,
DCRET`,
TEFF_ENT`
TCA`,
TCAEXP`,
EFF_ET`,
TEFF_ET`,
dateMajRNVP`,
insCATEGORIE`,
RPET`,
ARRONET`,
CTONET`,
DU`,
TU`,
UU`,
EPCI`,
TCD`,
ZEMET`,
CEDEX`,
NOM_COM`,
NATETAB`,
DREACTET`,
AMINTRET`,
PRODET`,
DREACTEN`,
AMINTREN`,
PRODEN`,
ESAANN`,
ESAAPEN`,
IDENTITE_PRE`,
dateFerEN`,
dateFerET
*/
//print_r($etab);
//print_r($tabInsert);
//print_r($tabAdr);
//print_r($tabPP);
//die();
}
echo "Traitement de $nbEntites entités :".EOL;
echo " - $nbNic nic corrigés".EOL;
echo " - $nbInsert siret ajoutés".EOL;
echo " - $nbSiege sièges défini".EOL;
die();
//$tabIn=file('/root/surrfaenr20140716_2500.csv');
$tabIn=file('/root/sirenTestsRRG.csv');
//$tabIn=file('/root/sirenTestsRRG2.csv');
$fpOut=fopen('/root/sirenTestsRRGout.txt','w');
$dateHexavia='00000000';
$dureeId=$dureeRnvp=0;
$tDeb0=microtime(1);
$tailleRNVP=38;
foreach($tabIn as $i=>$ligne) {
$tabL=explode('$',$ligne);
//if ($tabL[14]<>'') {
$siret=$tabL[1];
// $siret='42405982200256';
//$siret='45102847600021';
$siren=substr($siret,0,9);
$nic=substr($siret,9,5);
//$nom32=$tabL[4];
$tDeb1=microtime(1);
$tabId=@$iInsee->getIdentiteEntreprise($siren,$nic);
//print_r($tabId);die();
$tFin=microtime(1);
$dureeId+=$tFin-$tDeb1;
//echo 'Je cherche :'.@$tabL[14]." (RS=$nom32, $siren $nic à ".$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville'].")".EOL;
$tDeb2=$tFin;
$nomLong=strtr($tabId['Nom'],array('*'=>' ','/'=>' '));
$tabRnvp=@$iAmabis->normaliseAdresse($nomLong, $tabId['L2_COMP'], $tabId['L3_CADR'], $tabId['L4_VOIE'], $tabId['L5_DISP'], /*$tabId['L6_POST']*/$tabId['CP'].' '.$tabId['Ville'], $tabId['L7_ETRG'], $tailleRNVP);
$tFin=microtime(1);
$dureeRnvp+=$tFin-$tDeb2;
/*if ($siren==498431303) {
print_r($tabId);
print_r($tabRnvp);
die();
}*/
if ($tabId['Siege']==1) $statutEtab='PRIN'; else $statutEtab='SEC';
if ($tabId['Actif']==1) {
$actif='';
$mvt='M';
} else {
$actif='CESSE';
$mvt='S';
if ($tabId['EtabActifRCS']==0 && $tabId['EntActiveRCS']==1) $actif='RADIE';
elseif ($tabId['DateMajRCS']<>'' && ($tabId['EtabActifRCS']==0 || $tabId['EntActiveRCS']==0)) $actif='RADIE';
}
if ($dateHexavia*1==0)
$dateHexavia=initstr(preg_replace('/^00/','01',WDate::dateT('Y-m-d','dmY',$tabRnvp['HexaviaDateRef'])), 8, '0', ALIGN_RIGHT);
if (@$tabRnvp['HexaViaMat']*1==0)
$tabRnvp=array();
$hexaviaMat=@$tabRnvp['HexaViaMat'];
$L1tr=$L2tr='N';
if (strlen($L2)<strlen($tabId['L2_COMP'])) $L2tr='O';
if ($hexaviaMat*1>0) {
$hexaviaVoie=@$tabRnvp['HexaViaVoie'];
$cp=@substr($tabRnvp['L6'],0,5);
$L1=@$tabRnvp['L1'];
if (@$tabRnvp['L1_tr']==1) $L1tr='O';
//$L1=$iAmabis->normaliseRS($nomLong, $tailleRNVP);
//if ($iAmabis->nomTronque==1) $L1tr='O';
$L2=@$tabRnvp['L2'];
if (@$tabRnvp['L2_tr']==1) $L2tr='O';
$L3=@trim($tabRnvp['L3']);
$L5=@trim($tabRnvp['L5']);
$codCommune=@$tabRnvp['HexaviaComCod'];
$libCommune=@$tabRnvp['HexaviaComLib'];
$achPost=@trim(preg_replace('/^\d+/','', $tabRnvp['L6']));
} else {
$hexaviaMat='';
$hexaviaVoie=@trim(preg_replace('/^\d+/','', $tabId['L4_VOIE']));
if ($hexaviaVoie=='')
$hexaviaVoie=@trim(preg_replace('/^\d+/','', $tabId['Adresse']));
$cp=@substr($tabId['L6_POST'],0,5);
$L1=$iAmabis->normaliseRS($nomLong, $tailleRNVP);
if ($iAmabis->nomTronque==1) $L1tr='O';
$L2=$iAmabis->normaliseRS($tabId['L2_COMP'], $tailleRNVP);
if ($iAmabis->nomTronque==1) $L2tr='O';
$L3=trim($tabId['L3_CADR']);
$L5=trim($tabId['L5_DISP']);
$codCommune=$tabId['Dept'].$tabId['codeCommune'];// Tester 97x
$libCommune=$iAmabis->getLibCommune($codCommune, $tailleRNVP);
$achPost=trim(preg_replace('/^\d+/','', $tabId['L6_POST']));
}
$dir1Nom=trim($tabId['dir1Nom']);
if ($dir1Nom=='') $dir1Nom=trim($tabId['dir1NomPrenom']);
$codeEven=$libEven='';
if ($tabId['SituationJuridique']<>'') {
if ($tabId['SituationJuridique']=='P' || $tabId['SituationJuridique']=='PL') {
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
foreach ($tabProCol as $iProcol=>$procol) {
foreach ($procol['evenements'] as $even) {
if ($iProcol==0) {
$libEven=$even['LibEven'];
$codeEven=$even['CodeEven'];
break(2);
}
}
}
} elseif (substr($tabId['SituationJuridique'],0,1)=='R') {
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'R', false);
foreach ($tabProCol as $iProcol=>$procol) {
foreach ($procol['evenements'] as $even) {
if ($iProcol==0) {
$libEven=$even['LibEven'];
$codeEven=$even['CodeEven'];
break(2);
}
}
}
} elseif (substr($tabId['SituationJuridique'],0,1)=='D') {
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'D', false);
foreach ($tabProCol as $iProcol=>$procol) {
foreach ($procol['evenements'] as $even) {
if ($iProcol==0) {
$libEven=$even['LibEven'];
$codeEven=$even['CodeEven'];
break(2);
}
}
}
}
} else {
$codeEven='';
$libEven='';
}
/** Si le Bilan est trop ancien, faire une estimation du CA **/
$millesime='';
if (@$tabId['bilanFL']<>'') $millesime=@$tabId['bilanAnnee'];
$caReelOuEstime=@$tabId['bilanFL'].'';
if (WDate::nbMoisEntre(@$tabId['bilanDate'],date('Ymd'))>=36 && $tabId['FJ']<7000) {
$millesime=date('Y')-2; // Effectif N-2 à l'INSEE
$effectif=$tabId['Effectif']*1;
if ($effectif==0) $effectif=$tabId['bilanYP']*1;
if ($effectif==0) $effectif=$tabId['EffectifEtab']*1;
if ($effectif==0 && $tabId['FJ']<2000) $effectif=1;
if ($effectif==0) die(EOL."Pas d'effectif pour estimer le CA".EOL.print_r($tabId,1)."Pas d'effectif pour estimer le CA".EOL);
$caReelOuEstime=$iInsee->getCAnafEffectif($tabId['NafEnt'], $effectif);
}
$adrNum1=preg_replace('/^0+/','',$tabId['AdresseNum']);
$adrBtq1=$tabId['AdresseBtq'];
$adrNum2=$adrBtq2='';
if ($adrNum1*1>0) {
$adrNum=$adrNum1*1;
//die($adrNum);
if (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['Adresse2']), $matches)) {
$adrNum2=strtr($matches[1],array('AU '=>'','A '=>'','/'=>'','-'=>'',));
if ($adrNum2*1<>$adrNum2) die(EOL.$tabId['Adresse2'].' => '.$matches[1].EOL);
$adrBtq2='';
}
}
//print_r($tabId);die();
$dateCreation=initstr(WDate::dateT('Ymd','dmY',preg_replace('/00$/','01',$tabId['DateCreaEn'])), 8, '0', ALIGN_RIGHT);
if (substr($tabId['DateCreaEn'],0,6)*1==190101 && substr($tabId['dateImmat'],0,4)*1>1900)
$dateCreation=initstr(WDate::dateT('Ymd','dmY',$tabId['dateImmat']), 8, '0', ALIGN_RIGHT);
if (substr($dateCreation,5,4)*1<=1900)
$dateCreation=initstr(WDate::dateT('Ymd','dmY',preg_replace('/00$/','01',$tabId['DateCreaEt'])), 8, '0', ALIGN_RIGHT);
$strOut=//initstr($tabId['Source']*1, 3 , '0', ALIGN_RIGHT) .
//initstr($tabId['SourceId']*1, 12 , '0', ALIGN_RIGHT) .'$'. // Identification ORT de l'établissement !
initstr($tabId['SourceId']*1, 10 , '0', ALIGN_RIGHT) .'$'. // Identification ORT de l'établissement !
$tabId['Siret'].'$'. // Numéro de SIRET
'INS'.'$'. // Source de l'information (INS ou S&D)
$nomLong.'$'. // Raison sociale Officielle de l'entreprise
$L1.'$'. // Raison sociale Postale de l'entreprise !
$L1tr.'$'. // Indicateur si la RS postale a été tronquée !
$tabId['Sigle'].'$'. // Sigle de l'entreprise
$tabId['Enseigne'].'$'. // Enseigne officielle de l'établissement
$L2.'$'. // Enseigne postale de l'établissement !
$L2tr.'$'. // Indicateur si l'enseigne postale a été tronquée !
$statutEtab.'$'. // Statut de l'établissement
$actif.'$'. // Code situation de l'entreprise
$mvt.'$'. // Flag de Mise à jour de l'établissement ???
$dateHexavia.'$'. // Date d'actualisation du fichier HEXAVIA
$hexaviaMat.'$'. // code voie HEXAVIA
$codCommune.'$'. // Code commune INSEE
$libCommune.'$'. // Libellé de la commune INSEE
$cp.'$'. // Code postal
$L3.'$'. // Complément d'adresse
$adrNum1.'$'. // Numéro dans la voie
$adrBtq1.'$'. // Lettre dans la voie
$adrNum2.'$'. // Numéro dans la voie 2
$adrBtq2.'$'. // Lettre dans la voie 2
$hexaviaVoie.'$'. // Libellé dans la voie
$L5.'$'. // Distribution postale
$L5.'$'. // Complément postal
$achPost.'$'. // Acheminement postal (spécificité RRG : Pas de CP)
$dateCreation.'$'. // Date de création de l'entreprise
'J'.'$'. // Précision de la date de création
$tabId['FJ'].'$'. // Code forme juridique
$tabId['FJ_lib'].'$'. // Libellé forme juridique
$tabId['NafEnt'].'$'. // Code NAF Entreprise
$tabId['NafEntLib'].'$'. // Libellé du NAF Entreprise
$tabId['NafEtab'].'$'. // Code NAF Etablissement
$tabId['NafEtabLib'].'$'. // Libellé du NAF Etablissement
strtr($tabId['Tel'],array('.'=>'','-'=>'',' '=>'')).'$'. // Numéro de téléphone
$tabId['dir1Genre'].'$'. // Civilité du principal dirigeant
$dir1Nom.'$'. // Nom du principal dirigeant
$tabId['dir1Prenom'].'$'. // Prénom du principal dirigeant
$tabId['dir1Code'].'$'. // Code Fonction du principal dirigeant ???
$tabId['dir1Titre'].'$'. // Libellé de la fonction ???
$millesime.'$'. // Année du dernier exercice
$caReelOuEstime.'$'. // CA du dernier exercice
$tabId['Effectif'].'$'. // Effectif de l'entreprise
$tabId['EffectifEtab'].'$'. // Effectif de l'établissement
substr($tabId['SiretSiege'],-5).'$'. // Numéro NIC de l'établissement principal
$codeEven.'$'. // Code jugement ???
$libEven.'$'. // Libellé code Jugement ???
$tabId['TvaNumero'].'$'. // N° TVA intracommunautaire
$tabId['Mail'].'$'. // Adresse mail de l'entreprise
str_replace('00000000000000','',
initstr(@$tabId['AutreSiret']['pre']['siren']*1, 9 , '0', ALIGN_RIGHT) .
initstr(@$tabId['AutreSiret']['pre']['nic']*1, 5 , '0', ALIGN_RIGHT)) .'$'.
str_replace('00000000000000','',
initstr(@$tabId['AutreSiret']['suc']['siren']*1, 9 , '0', ALIGN_RIGHT) .
initstr(@$tabId['AutreSiret']['suc']['nic']*1, 5 , '0', ALIGN_RIGHT)) ;
echo $strOut.EOL;
/* if ($siren==335134011 || $siren==408599074) {
print_r($tabId);
die();
}*/
fwrite($fpOut, $strOut.EOL);
/*if ($siren==393669858) {
print_r($tabRnvp);
die();
}*/
//if ($rep['idHexaVia']>0 && $rep['idHexaVia']<>$tabL[14]) die();
//}
}
$dureeTot=microtime(1)-$tDeb0;
//$rep=$iAmabis->getZonage('17 AV JEAN MOULIN', 93140, 'BONDY',true, false);
echo "Durée Identite ........ ". round($dureeId,3) .' secondes.'.EOL;
echo "Durée RNVP ............ ". round($dureeRnvp,3) .' secondes.'.EOL;
echo "Durée TOTALE .......... ". round($dureeTot,3) .' secondes.'.EOL;
die();
ini_set('soap.wsdl_cache_enabled', 0);
$client = new SoapClient(null, //'http://www.amabis.com/ama.wsdl',//null, //
array( 'location' => 'http://sw4.amabis.com:5101',
'uri' => 'http://sw4.amabis.com:5101',
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
'connection_timeout'=> 2,
)
);
print_r($client->__getFunctions());
?>

View File

@ -1,146 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(FWK_PATH.'mail/sendMail.php');
$iInsee=new MInsee();
$iDbR=new WDb('insee');
$iAmabis=new MAmabis();
//$strBin=file_get_contents(
$filename = '/var/www/batch/FR2992519A1.s33';
$tabFile=array('filename'=>basename($filename),'filenameNoExt'=>str_replace('.s33','',basename($filename)));
$tabFile['offPub']=substr($tabFile['filename'],0,2); // OFFICE DE PUBLICATION
$tabFile['docType']=substr($tabFile['filenameNoExt'],-2); // CODE DU TYPE DE DOCUMENT
$tabFile['docNum']=substr($tabFile['filenameNoExt'],2,strlen($tabFile['filenameNoExt'])-4); // NUMÉRO DU DOCUMENT (8 DERNIÈRES POSITIONS)
$fp=fopen($filename, "r");
$fileSize=filesize($filename);
$strBin = fread($fp, $fileSize);
fclose($fp);
$strAsc= iconv("IBM-1047","ISO8859-1", $strBin); // EBCDIC->ASCII conversion
file_put_contents('/var/www/batch/FR2992519A1.asc', $strAsc);
$lastPos=0;
$iPagePre=0;
$imgBin='';
$tabTot=array();
while(true) {
$i++;
//echo $strAsc;
$enteteBin=substr($strBin,$lastPos,256);
$enteteAsc=substr($strAsc,$lastPos,256);
//echo "$i:$enteteAsc".EOL;
$tab=array();
//$tab['enrSize']= bindec(substr($enteteBin, 0, 4)); // LONGUEUR DENREGISTREMENT
$tabTmp=unpack("n", substr($enteteBin, 0, 4)); // LONGUEUR DENREGISTREMENT
$tab['enrSize']=$tabTmp[1];
$tab['enrSize2']= substr($enteteAsc, 4, 5); // LONGUEUR DENREGISTREMENT
$tab['offPub']= substr($enteteAsc, 9, 2); // OFFICE DE PUBLICATION
$tab['docType']= substr($enteteAsc, 11, 2); // CODE DU TYPE DE DOCUMENT
$tab['docNum']= substr($enteteAsc, 13, 8); // NUMÉRO DU DOCUMENT (8 DERNIÈRES POSITIONS)
$tab['docPage']= substr($enteteAsc, 21, 4); // NUMÉRO DE PAGE
$tab['docCadre']= substr($enteteAsc, 25, 4); // NUMÉRO DU CADRE
$tabTmp=unpack("n", substr($enteteBin, 29, 2)); // NUMÉRO DORDRE DE LENREGISTREMENT
$tab['docNumOrd']=$tabTmp[1];
$tab['docNum9']= substr($enteteAsc, 31, 1); // POSITION 9 DU NUMÉRO DE DOCUMENT
$tab['docNum10']= substr($enteteAsc, 32, 1); // POSITION 10 DU NUMÉRO DE DOCUMENT
$tab['docCorr']= substr($enteteAsc, 33, 4); // CODE DE CORRECTION
$tab['docNumLong']= substr($enteteAsc, 37,12); // NUMÉRO DE DOCUMENT COMPLET
$tab['docRefEch1']= substr($enteteAsc, 49, 2); // AUTRES (UTILISATION POUR LÉCHANGE)
$tab['docRefInt1']= substr($enteteAsc, 51,20); // AUTRES (UTILISATION INTERNE)
$tab['offOri']= substr($enteteAsc, 71, 2); // OFFICE DORIGINE
$tab['dateEx']= substr($enteteAsc, 73, 6); // DATE DEXTRACTION
$tab['etatEnr']= substr($enteteAsc, 79, 1); // ÉTAT DE LENREGISTREMENT
$tab['docPageTot']= substr($enteteAsc, 80, 4); // TOTAL DES PAGES
$tab['docCadreTot']=substr($enteteAsc, 84, 4); // NUMÉRO DE FIN DE CADRE
$tmbTmp=unpack("n", substr($enteteBin, 88, 2)); // TOTAL DES ENREGISTREMENTS
$tab['enrNbTot']=$tabTmp[1];
$tab['docRev']= substr($enteteAsc, 90, 1); // DOCUMENT DE RÉVISION
$tab['docYTot']= substr($enteteAsc, 91, 3); // HAUTEUR DU DOCUMENT
$tab['docXTot']= substr($enteteAsc, 94, 3); // LARGEUR DU DOCUMENT
$tab['dateExLong']= substr($enteteAsc, 97, 8); // DATE COMPLÈTE DEXTRACTION (CCYYMMDD)
$tab['datePub']= substr($enteteAsc, 105, 8); // DATE DE PUBLICATION (CCYYMMDD)
$tab['docRefEch2']= substr($enteteAsc, 113, 4); // AUTRES (UTILISATION POUR LÉCHANGE)
$tab['docRefInt2']= substr($enteteAsc, 117,20); // AUTRES (UTILISATION INTERNE)
$tab['indBiblio']= substr($enteteAsc, 137, 1); // EXISTENCE DE DONNÉES BIBLIOGRAPHIQUES
$tab['indRevend']= substr($enteteAsc, 138, 1); // EXISTENCE DE REVENDICATION
$tab['indDessin']= substr($enteteAsc, 139, 1); // EXISTENCE DE DESSIN
$tab['indModif']= substr($enteteAsc, 140, 1); // EXISTENCE DE MODIFICATION
$tab['indDesc']= substr($enteteAsc, 141, 1); // EXISTENCE DE DESCRIPTION
$tab['indAbrege']= substr($enteteAsc, 142, 1); // EXISTENCE DABRÉGÉ
$tab['indRapRech']= substr($enteteAsc, 143, 1); // EXISTENCE DE RAPPORT DE RECHERCHE
$tab['docRefEch3']= substr($enteteAsc, 144,20); // AUTRES (UTILISATION POUR LÉCHANGE)
$tab['docRefInt3']= substr($enteteAsc, 164,20); // AUTRES (UTILISATION INTERNE, P. EX. SYMBOLES CIB)
$tab['typeData']= substr($enteteAsc, 184, 1); // TYPE DE DONNÉES
$tab['imgComp']= substr($enteteAsc, 185, 2); // MÉTHODE DE COMPRESSION DES DONNÉES IMAGES
$tab['facteurK']= substr($enteteAsc, 187, 2); // CODE DU FACTEUR K
$tab['resolution']= substr($enteteAsc, 189, 2); // RÉSOLUTION
$tab['cadreYsize']= substr($enteteAsc, 191, 3); // HAUTEUR DU CADRE
$tab['cadreXsize']= substr($enteteAsc, 194, 3); // LARGEUR DU CADRE
$tab['nbLiCadreY']= substr($enteteAsc, 197, 4); // NOMBRE DE LIGNES DANS LA HAUTEUR DU CADRE
$tab['nbLiCadreX']= substr($enteteAsc, 201, 4); // NOMBRE DE LIGNES DANS LA LARGEUR DU CADRE
$tab['rotation']= substr($enteteAsc, 205, 1); // CODE DE ROTATION
$tab['cadreX']= substr($enteteAsc, 206, 4); // COORDONNÉES DU CADRE SUR LAXE DES X
$tab['cadreY']= substr($enteteAsc, 210, 4); // COORDONNÉES DU CADRE SUR LAXE DES Y
$tab['cadreStat']= substr($enteteAsc, 214, 1); // STATUT DU CADRE
$tab['version']= substr($enteteAsc, 215, 3); // IDENTIFICATION DE LA VERSION
$tabTmp=unpack("N", substr($enteteBin, 218, 4)); // LONGUEUR TOTALE DES DONNÉES IMAGES
$tab['imgSizeTot']=$tabTmp[1];
$tab['docRefEch4']= substr($enteteAsc, 222,12); // AUTRES (UTILISATION POUR LÉCHANGE)
$tab['docRefInt4']= substr($enteteAsc, 234,20); // AUTRES (UTILISATION INTERNE)
$tabTmp=unpack("n", substr($enteteBin, 254, 2)); // LONGUEUR DES DONNÉES IMAGES
$tab['imgSize']=$tabTmp[1];
$tab['imgBrute']= substr($strBin, $lastPos+256,$tab['imgSize']); // DONNÉES IMAGES
$iPage=$tab['docPage'];
$iCadre=$tab['docCadre'];
$iImage=$tab['imgSize'];
if ($iPage==$iPagePre) {
$imgBin.=$tab['imgBrute'];
$iImageCalc+=$iImage;
} else {
if ($iPagePre>0) {
$imgAsc= iconv("IBM-1047","ISO8859-1", $imgBin); // EBCDIC->ASCII conversion
file_put_contents("/var/www/batch/FR2992519A1-$iPagePre.bin", $imgBin);
file_put_contents("/var/www/batch/FR2992519A1-$iPagePre.asc", $imgAsc);
}
$imgBin=$tab['imgBrute'];
$iImageCalc=$iImage;
}
$tPage=$tab['docPageTot'];
$tCadre=$tab['docCadreTot'];
$tImage=$tab['imgSizeTot'];
echo "$i:\t$iPage/$tPage\t$iCadre/$tCadre\t$iImage/$tImage";
if ($iImageCalc==$tImage) echo " ($iImageCalc)";
echo EOL;
$tabTot[]=$tab;
$lastPos=$lastPos+256+$tab['imgSize'];
if ($lastPos>=$fileSize) break;
$iPagePre=$iPage;
}
?>

View File

@ -1,64 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'mail/sendMail.php');
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Test le serveur de mail
Options :
-v Debug mode (maximum vervose)
-f From
-t To
-c Copy
".// -h Hidden Copy
"
-s Subject
-m Message
-j Joined document
";
$from='Service Support Scores et Decisions <support@scores-decisions.com>';
$to='"KD-OJF"<ylenaour@scores-decisions.com>,"KD-POUET"<aferreira@scores-decisions.com>';
$sujet="Test de mail Scores et Decisions";
$message="Bonjour,
Dans le cadre de la mise en place d'une nouvelle prestation, merci d'accuser réception
de ce message afin de vérifier la bonne réception sur ces 2 mails distincts :
KD - OJF <ojf.paris@klesia.fr>
KD - Stephane LAFORGE <drgc.paris1@klesia.fr>
Bien cordialement,
Amélia
";
//Initialistation des variables
$argv=$_SERVER['argv'];
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'v': $modeDebug=true; break;
case 'n': $nbTests=substr($argv[$i],3,strlen($argv[$i])-3)*1; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichier[]=$argv[$i];
}
echo date ('Y/m/d - H:i:s') . " - Lancement de $nbTests test(s) d'envoi d'emails...".EOL;
// for ($i=0; $i<$nbTests; $i++) {
$sujet ="Mail de test numéro $i/$nbTests";
$message="Contenu du test numéro $i/$nbTests";
echo date ('Y/m/d - H:i:s') . " - Envoi du $sujet ";
if (@sendMail($from, $to, $sujet, $message))
echo "ok.";
else
echo "ERREUR";
echo EOL;
// }
die();
?>

Binary file not shown.

View File

@ -1 +0,0 @@
PROJCS["RGF93_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",44.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0]]

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,102 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
if (!defined('VERSION_FICHIER_IDENTITE'))
define('VERSION_FICHIER_IDENTITE','0106');
/**
* @todo
* 2. Pouvoir faire du multiligne avec : 106 Libellé du Périmètre de la vente
* 5. JugesCommissaires à intégrer correctement
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'conversion/bilAltares.php');
include_once(FWK_PATH.'mail/sendMail.php');
$optionEOL=EOL;
$stock=$dateDebut=$idClientTodo=false;
$dateDebutCmd=false;
$iInsee=new MInsee();
$ftpDir='/home/data/ftp/recocash/send/';
$ftpOut='/home/data/ftp/recocash/recv/';
$ftpBackup='/home/data/clients/recocash/';
$tabDir=array();
$dh = opendir($ftpDir);
while (false !== ($filename = readdir($dh))) {
/** On scan chaque répertoire FTP client à la recherche d'un fichier send.fmt
**/
if ($filename<>'.' && $filename<>'..' && substr($filename,0,12)=='CREANCES_CO_')
$tabDir[] = $filename;
}
sort($tabDir);
//print_r($tabDir);
foreach ($tabDir as $iFic=>$filename) /** On scan chaque répertoire send des FTP clients à la recherche de nouveaux fichiers **/
{
$tabLignes=file($ftpDir.$filename);
$nbLignes=count($tabLignes);
$strOut='';
$nbSirenValide=$nbSirenErreur=$nbTel=$nbProcol=0;
echo date ('Y/m/d - H:i:s') . " - Traitement du traitement '$filename' de $nbLignes...".EOL;
foreach($tabLignes as $iLigne=>$ligne) {
$siren=substr($ligne,0,9)*1;
$ref=trim(substr($ligne,9));
$codeProcol='';
/** Contrôle de la validité du siren **/
if ($iInsee->valideSiren($siren)) {
$nbSirenValide++;
} else {
$codeProcol='KO';
$nbSirenErreur++;
}
$tabId=@$iInsee->getIdentiteEntreprise($siren);
//print_r($tabId);
$tel=$tabId['Tel'];
if ($tel<>'') $nbTel++;
if ($codeProcol=='') $codeProcol=$tabId['SituationJuridique'];
if ($codeProcol=='' && $tabId['Actif']==0) $codeProcol='IN';
if ($codeProcol=='' && $tabId['ActifEco']==0) $codeProcol='IE';
if ($codeProcol<>'') $nbProcol++;
/*
vide
P En Procédure Collective
PL Plan en cours
PA Appel de jugement
D Dissolution
R Radiation
RR Radiation du RCS
RP Radiation Publiée
A Société absorbée
IE Société inactive Economiquement à l'Insee
IN Société inactive Juridiquement à l'Insee
*/
$strOut.= initstr($siren, 9 , '0', ALIGN_RIGHT) . // Siren reco
initstr($ref, 17 ) . // Référence reco
initstr($codeProcol, 2 ) . // Facultatif - Code Procol
initstr($tel, 20 ) . // Facultatif - Téléphone
EOL;
echo ($strOut);
}
if ($nbLignes>0) {
$filenameOut=str_replace('CREANCES_CO_','CREANCES_CO_RETOUR_', $ftpOut.$filename);
if (file_put_contents($filenameOut,$strOut))
move($ftpDir.$filename, $ftpBackup.$filename);
echo date ('Y/m/d - H:i:s') . " - Ecriture du fichier '$filenameOut' de $nbLignes ($nbSirenValide siren valides, $nbSirenErreur siren erronnés, $nbTel téléphones, $nbProcol Procol)...".EOL;
}
}
if ($iFic==0) echo 'Aucun Fichier à traiter'.EOL;
?>

View File

@ -1,4 +0,0 @@
SELECT `actif` AS `Etablissements Actifs`, COUNT(*) AS `Nombre d'enreg`
FROM `etablissements_old`
GROUP BY `actif`
ORDER BY `actif`;

View File

@ -1 +0,0 @@
SELECT Bodacc_Annee_Parution, Bodacc_Code, count(Num_Annonce) as `Nombre d'annonces` FROM `bodacc` GROUP BY Bodacc_Annee_Parution, Bodacc_Code;

View File

@ -1,6 +0,0 @@
SELECT ape_entrep AS `NAF Entreprise`, libNaf5, COUNT(*) AS `Nombre d'établissements`
FROM etablissements_old e
LEFT JOIN tabNaf5 ON tabNaf5.codNaf5=e.ape_entrep
WHERE LENGTH(ape_entrep)=5
GROUP BY ape_entrep
ORDER BY ape_entrep;

View File

@ -1,6 +0,0 @@
SELECT ape_etab AS `NAF Etablissement, libNaf5, COUNT(*) AS `Nombre d'établissements`
FROM etablissements_old e
LEFT JOIN tabNaf5 ON tabNaf5.codNaf5=e.ape_etab
WHERE LENGTH(ape_etab)=5
GROUP BY ape_etab
ORDER BY ape_etab;

View File

@ -1,6 +0,0 @@
SELECT e.cj, libelle, COUNT(*) AS `Nombre d'établissements`
FROM etablissements_old e
LEFT JOIN tabFJur ON tabFJur.code = e.cj
WHERE e.cj>1000
GROUP BY e.cj
ORDER BY e.cj;

View File

@ -1 +0,0 @@
INFO;SIREN;ID_ANNONCE;RUBRIQUE;CODE_BALISE;TEXTE;

View File

@ -1,4 +0,0 @@
SELECT source, COUNT(*) AS `Nombre d'établissements`
FROM `etablissements_old`
GROUP BY `source`
ORDER BY `source`;

View File

@ -1,175 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('DATE_HEURE_SCRIPT', date('Ymd_His'));
/**
* @todo
* 1. Numéroter toutes les procédures OK
* 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc
* 101 Commentaire
* 102 Activite déclaré au Bodacc
* 103 texte rectificatif
* 104 Annonce complète au format texte
* 105 Structure Dirigeants BODACC
* 106 Libellé du Périmètre de la vente
* 3.
* 5. JugesCommissaires à intégrer correctement
Noms et prénoms des dirigeants de l'entreprise ' Anum. ?
Raison sociale du vendeur Anum. 255
Siren du vendeur (en cas de Vente/Cessions) Num. 9
Indicateur de correction du SIREN vendeur (si C, le siren diffusé au BODACC est faut mais S&D a affecté le bon SIREN) ' Car. 1
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
$repProduction='/mnt/samba/partage/production/';
$modeTest=$envoiGroupe=$envoiGroupePre=false;
$ignoreDateDerExec=$retroActivite=$ignoreInfosRS=false;
$mailAnomalie=false;
$tableSurveillance='surveillances_site';
//$modeTest=true;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Envoi des communiqués relatifs aux groupes gérés par les différents opérateurs
(ce traitement ce lance automatiquement pour le lundi à 6h).
Options :
-d=SSAAMMJ(JHHIISS) Diffusion depuis le SSAAMMJJ ou SSAAMMJJHHIISS
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'i':
//$envoiGroupe=true;
$modeTest=true;
$strEmailsTest='lenaoury@gmail.com;fzicaro@scores-decisions.com';
//$tableSurveillance='surveillances_site_old';
break;
case 'd': $dateDebutCmd=strtr(substr($argv[$i],3),array('-'=>'',':'=>''))*1; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
}
}
}
}
$iDb=new WDB('jo');
$iBodacc=new MBodacc();
$iInsee=new MInsee();
$iDb2=new WDB('sdv1');
$iBourse=new MBourse();
$dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -7));
$messageDebut="Bonjour,
Veuillez trouver ci-dessous la liste des modifications relatives à votre abonnement Scores & Décisions.
";
$nbUtilisateurs=$iDb2->select('utilisateurs u, clients c', 'u.id, u.idClient, LOWER(u.login) AS login, u.password, u.email, u.formatMail, u.lienExtranetMail, u.listeEven', "u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'", true, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbUtilisateurs utilisateurs habilités à recevoir des surveillances...".EOL;
$tabFormat=$tabLienEx=$tabLstEve=$tabHash=array();
while ($uti=$iDb2->fetch(MYSQL_ASSOC)) {
switch ($uti['formatMail']) {
case 'txt2': // MAIL au format texte, 1 mail par envoi
case 'csv': // MAIL au format CSV, 1 mail par envoi
case 'txt1': // MAIL au format texte, 1 mail par annonce (format par défaut)
case 'pdf1': // MAIL au format PDF, 1 mail par envoi
$tabFormat['_'.$uti['login']]=$uti['formatMail'];
break;
default:
$tabFormat['_'.$uti['login']]='txt1';
break;
}
$tabLienEx['_'.$uti['login']]=$uti['lienExtranetMail'];
$tabLstEve['_'.$uti['login']]=explode(';',trim($uti['listeEven']));
sort($tabLstEve['_'.$uti['login']]);
if (count($tabLstEve['_'.$uti['login']])==1 && $tabLstEve['_'.$uti['login']][0]=='')
$tabLstEve['_'.$uti['login']]=array();
$tabHash['_'.$uti['login']]=md5($uti['login'].'|'.$uti['password']);
}
//sort($tabFormat);
//print_r($tabFormat);die();
echo date ('Y/m/d - H:i:s')." - Début du traitement d'envoi des communiqués".EOL;
$rep=$iDb->query("
SELECT companyIsin, companySiren, companyName, pressReleaseDate, pressReleaseTitle, pressReleaseText, pressReleaseHtml, pressReleaseAttachments, pressReleaseUrl
FROM presse.articles
WHERE companyIsin<>'' AND pressReleaseDate>='$dateDebut'
UNION
SELECT isin AS companyIsin, 0 AS companySiren, '' AS companyName, dateRss AS pressReleaseDate, titre AS pressReleaseTitle, description AS pressReleaseText, article AS pressReleaseHtml, '' AS pressReleaseAttachments, lien AS pressReleaseUrl
FROM presse.pqr_articles
WHERE isin<>'' AND LENGTH(isin)=12 AND dateRss>='$dateDebut'", false, MYSQL_ASSOC, true);
$nbNews=$iDb->getNumRows();
echo date ('Y/m/d - H:i:s')." - Il y a $nbNews communiqués à traiter...".EOL;
while ($news=$iDb->fetch(MYSQL_ASSOC)) {
$isin=$news['companyIsin'];
$siren=$news['companySiren']*1;
if ($siren<1000) $siren=@$iBourse->getCodeSiren($isin);
$nom=strtoupper($news['companyName']);
$dateHeure=$news['pressReleaseDate'];
$titre=strtr($news['pressReleaseTitle'],array('&#39;'=>"'","\'"=>"'"));
if ($nom=='') {
$tabTmp=explode(' : ', $titre);
$nom=strtoupper($tabTmp[0]);
}
$titre2=strtoupper($news['pressReleaseTitle']);
$texte=strtr($news['pressReleaseText'],array('&#39;'=>"'","\'"=>"'"));
if ($texte=='') {
$texte=strtr(strip_tags($news['pressReleaseHtml']),array('&#39;'=>"'","\'"=>"'"));
$typeCom='HTML';
} else
$typeCom='TXT';
echo "$isin\t$siren\t$nom\t$dateHeure\t$titre ($typeCom)\t";
if ($siren<1000) $siren=-1;
/*if (substr($isin,0,2)<>'FR' && $siren<1000) echo "HORS périmètre !";
else*/if (preg_match('/annuel|rapport|r.f.rence|mise . disposition|communiqu|capital|OPA|OPV|fusion|acqui|rapprochement|achat|absorbe|fusionne|contr.le|offre|ach.te|met la main|vend|actionnaire|majoritaire|participation|prend les r.nes|vente/Uis',$titre)) {
$tabTmp=$iDb2->select( 'jo.liensRef r, jo.liensDoc d, sdv1.utilisateurs u',
'r.id, d.periDoc, d.docRef, d.dateDocRef, d.dateInsert, d.idInsert, u.nom, u.prenom, d.id AS idDoc, u.id AS idUti, LOWER(u.login) AS login, u.email',
"(r.siren='$siren' OR r.isin='$isin') AND r.id=d.idNum AND d.idType='Entreprise' AND (d.idInsert=u.id OR d.idUpdate=u.id) GROUP BY u.id /*LIMIT 0,1*/", false, MYSQL_ASSOC);
$nbUti=count($tabTmp);
if ($nbUti>0) echo "$nbUti utilisateurs à avertir";
else echo "Pas encore suivi";
foreach ($tabTmp as $iSuivi=>$infos) {
if ($infos['email']<>'') {
@sendMail('infoslegales@scores-decisions.com', trim($infos['email']).',ylenaour@scores-decisions.com,mpurcarin@scores-decisions.com', "Suivi du groupe $nom : $titre",
$message = "Bonjour ".$infos['prenom'].",
Voici ci-dessous un communiqué relatif au groupe $nom pour lequel vous faites le suivi des liens inter-entreprises.
TITRE: $titre2
GROUPE: $nom
ISIN: $isin
SIREN: $siren
DATE: $dateHeure".EOL.EOL.$texte);
}
}
} else echo "SANS INTERET !";
echo EOL;
}
die();
?>

Some files were not shown because too many files have changed in this diff Show More