From 9227e031a767703895f4dd32cccd62afa4313fd9 Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Wed, 11 May 2011 13:38:14 +0000 Subject: [PATCH] =?UTF-8?q?Pr=C3=A9liminaire=20int=C3=A9gration=20Infogref?= =?UTF-8?q?fe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/FichierController.php | 18 + application/controllers/PiecesController.php | 488 ++++++- .../views/default/scripts/pieces/acte.phtml | 13 + .../views/default/scripts/pieces/actes.phtml | 66 + .../default/scripts/pieces/associations.phtml | 108 ++ .../views/default/scripts/pieces/bilan.phtml | 1 + .../views/default/scripts/pieces/bilans.phtml | 67 + .../views/default/scripts/pieces/header.phtml | 18 + library/Infogreffe/Infogreffe.php | 1210 +++++++++++++++++ library/Infogreffe/config.ini | 15 + library/Infogreffe/infogreffe.wsdl | 80 ++ public/themes/default/scripts/pieces.js | 109 ++ public/themes/default/styles/pieces.css | 56 + 13 files changed, 2236 insertions(+), 13 deletions(-) create mode 100644 application/views/default/scripts/pieces/acte.phtml create mode 100644 application/views/default/scripts/pieces/actes.phtml create mode 100644 application/views/default/scripts/pieces/associations.phtml create mode 100644 application/views/default/scripts/pieces/bilan.phtml create mode 100644 application/views/default/scripts/pieces/bilans.phtml create mode 100644 application/views/default/scripts/pieces/header.phtml create mode 100644 library/Infogreffe/Infogreffe.php create mode 100644 library/Infogreffe/config.ini create mode 100644 library/Infogreffe/infogreffe.wsdl create mode 100644 public/themes/default/scripts/pieces.js create mode 100644 public/themes/default/styles/pieces.css diff --git a/application/controllers/FichierController.php b/application/controllers/FichierController.php index af4d8d96f..53f18d3e4 100644 --- a/application/controllers/FichierController.php +++ b/application/controllers/FichierController.php @@ -14,6 +14,9 @@ class FichierController extends Zend_Controller_Action exit; } + /** + * Gestion du chargement des logos + */ public function logoAction() { $file = $this->getRequest()->getParam('fichier'); @@ -42,6 +45,9 @@ class FichierController extends Zend_Controller_Action exit; } + /** + * Gestion du chargement des images du cache + */ public function imgcacheAction() { $content_type = 'image/png'; @@ -62,6 +68,9 @@ class FichierController extends Zend_Controller_Action } } + /** + * Gestion du chargement des fichiers des marques + */ public function marqueAction() { $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path'); @@ -81,4 +90,13 @@ class FichierController extends Zend_Controller_Action } } + /** + * Gestion des fichiers Actes et Bilans + */ + public function pdfAction() + { + + + } + } \ No newline at end of file diff --git a/application/controllers/PiecesController.php b/application/controllers/PiecesController.php index e8fcb429c..a30fbe889 100644 --- a/application/controllers/PiecesController.php +++ b/application/controllers/PiecesController.php @@ -1,28 +1,489 @@ getRequest(); - $this->siret = $request->getParam('siret'); - $this->id = $request->getParam('id', 0); - require_once 'Scores/WsScores.php'; + require_once 'Scores/WsScores.php'; require_once 'Scores/Utilisateur.php'; require_once 'Scores/SessionEntreprise.php'; require_once 'common/dates.php'; + require_once 'Infogreffe/Infogreffe.php'; + + $request = $this->getRequest(); + $this->siret = $request->getParam('siret'); + $this->id = $request->getParam('id', 0); + $this->entrep = new SessionEntreprise($this->siret, $this->id); } - public function indexAction() + public function indexAction(){} + + public function commandeassociationAction() { - + } + public function assocationAction() + { + + } + + public function actesAction() + { + $this->view->headLink()->appendStylesheet('/themes/default/styles/pieces.css', 'all'); + $this->view->headScript()->appendFile('/themes/default/scripts/pieces.js', 'text/javascript'); + + //Catégorie Juridique + $cj = $this->entrep->getFormeJuridique(); + if( in_array($cj, $this->association_cj) ) { + $this->_forward($action); + } + + $user = new Utilisateur(); + + $request = $this->getRequest(); + + $siren = substr($this->siret,0,9); + $vecteur = 'XL'; + $ref = ''; + + //Affichage des actes disponible + $infogreffe = new Infogreffe(); + $reponse = $infogreffe->getGreffeActes($siren, $vecteur, $ref); + //Gestion des erreurs dans la réponse + + /* + * Construire la réponse pour affichage + * Date, Type, Décisions, + */ + $infosActes = array(); + + if (count($reponse['result'])>0) { + + $items = $reponse['result']; + //Traitement dernier statut à jour + if(array_key_exists(0, $items)) + { + $acteS = $items[0]; + $lienCommande = cmdDernierStatut($siren, $acteS); + $data = ''; + $data.= $acteS['actes'][0]['type_lib'].' '; + //Génération du lien de commande suivant le mode de diffusion + $params = 'vue=statuts&siret='.$siren.'&ref='.$acteS['actes'][0]['ref']; + switch($acteS['actes'][0]['mode']) + { + case 'C': + if(hasPerm('actes', $_SESSION['tabInfo'])) + { + $href = './?page=greffes&q=c&'.$params; + $title = 'Commander le document correspondant'; + } + else + { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + $data.= ' courrier'; + break; + } + $cells[] = array( 'data'=> $data.$lienCommande , 'attrs'=>array('class'=>'type') ); + //=> Cellule 3 + $data = 'Le dernier statut à jour'; + $cells[] = array( 'data'=> $data, 'attrs'=>array('class'=>'decision') ); + $rows[] = array( 'data' => $cells ); + //Suppression du dernier statut à jour + unset($items[0]); + } + //Fin traitement dernier statut à jour + + //Traitement des actes normaux + foreach($items as $key => $depot) + { + $infosActe = array(); + //Parcours standard des actes pour affichage + foreach($depot['actes'] as $num => $acte) + { + $infosActe['date'] = $acte['date_acte']; + $infosActe['mode'] = $acte['mode']; + $infosActe['lib'] = $acte['type_lib']; + $infosActe['ref'] = $acte['ref']; + + $infos = array( + 'num_acte' => $acte['num_acte'], + 'date_acte' => $acte['date_acte'], + 'type' => $acte['type'], + 'type_lib' => $acte['type_lib'], + 'decision' => $acte['decision'] + ); + + switch($acte['mode']) + { + case 'fichier': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'acte', + 'mode' => 'fichier', + 'siret' => $siren, + 'ref' => $acte['ref'], + )); + $title = 'Télécharger le document correspondant'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + case 'T': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'acte', + 'mode' => 'T', + 'siret' => $siren, + 'ref' => $acte['ref'], + )); + $title = 'Télécharger le document correspondant'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + case 'C': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'acte', + 'mode' => 'C', + 'siret' => $siren, + 'ref' => $acte['ref'], + 'infos' => serialize($infos) + )); + $title = 'Recevoir le document directement par mail (sous 3/5 jours ouvrés)'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + case 'courrier': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'acte', + 'mode' => 'courrier', + 'siret' => $siren, + 'ref' => $acte['ref'], + 'infos' => serialize($infos) + )); + $title = 'Recevoir le document directement par mail (sous 15 jours ouvrés)'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + } + + $infosActe['href'] = $href; + $infosActe['title'] = $title; + + $infosActe['decision'] = ''; + if($depot['num_depot']>=0) + { + $data = ''; + if(!empty($acte['decision'])) + { + $data.= $acte['decision'].'
'; + } + $data.= 'Dépot n°'.$depot['num_depot'].' du '.$depot['date_depot']; + if($acte['nbpages_acte']>1) { + $data.= ', '.$acte['nbpages_acte'].' pages'; + } elseif($acte['nbpages_acte']==1) { + $data.= ', '.$acte['nbpages_acte'].' page'; + } + $infosActe['decision'] = $data; + } + + $infosActes[] = $infosActe; + } // Fin acte + } // Fin depot + + } + + $this->view->assign('InfosActes', $infosActes); + $this->view->assign('siren', $siren); + $this->view->assign('siret', $this->siret); + $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); + } + + public function bilansAction() + { + $this->view->headLink()->appendStylesheet('/themes/default/styles/pieces.css', 'all'); + $this->view->headScript()->appendFile('/themes/default/scripts/pieces.js', 'text/javascript'); + + //Catégorie Juridique + $cj = $this->entrep->getFormeJuridique(); + if( in_array($cj, $this->association_cj) ) { + $this->_forward($action); + } + + $user = new Utilisateur(); + + $request = $this->getRequest(); + + $siren = substr($this->siret,0,9); + $vecteur = 'XL'; + $ref = ''; + + //Affichage des bilans disponible + $infogreffe = new Infogreffe(); + $reponse = $infogreffe->getGreffeBilans($siren, $vecteur, $ref); + //Gestion des erreurs dans la réponse + + /* + echo '
';
+		print_r($reponse);
+		echo '
'; + exit; + */ + + $infosBilans = array(); + + if (count($reponse['result'])>0) { + + $items = $reponse['result']; + foreach($items as $key => $item) + { + $infosBilan = array(); + $infosBilan['date'] = $item['date_cloture']; + $infosBilan['type'] = 'Comptes millésime '.$item['millesime']; + $infosBilan['mode'] = $item['mode']; + $infos = array( + 'date_cloture' => $item['date_cloture'], + 'type' => $item['millesime'], + 'decision' => $item['num_depot'] + ); + switch($item['mode']) + { + case 'fichier'; + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'bilan', + 'siret' => $siren, + 'ref' => $item['ref'], + 'mode' => 'fichier', + 'info' => serialize($info), + )); + $title = 'Télécharger le document correspondant'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + case 'T': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'bilan', + 'siret' => $siren, + 'ref' => $item['ref'], + 'mode' => 'T', + )); + $title = 'Télécharger le document correspondant'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + case 'C': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'bilan', + 'siret' => $siren, + 'ref' => $item['ref'], + 'mode' => 'C', + 'infos' => serialize($infos), + )); + $title = 'Recevoir le document directement par mail (sous 3/5 jours ouvrés)'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + case 'courrier': + if ( $user->checkPerm('actes') ) { + $href = $this->view->url(array( + 'controller' => 'pieces', + 'action' => 'bilan', + 'siret' => $siren, + 'ref' => $item['ref'], + 'mode' => 'courrier', + 'infos' => serialize($infos), + )); + $title = 'Recevoir le document directement par mail (sous 15 jours ouvrés)'; + } else { + $href = '#'; + $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; + } + break; + } + $infosBilan['href'] = $href; + $infosBilan['title'] = $title; + + $infosBilan['decision'] = 'Dépot n°'.$item['num_depot']; + + $infosBilans[] = $infosBilan; + } + } + + $this->view->assign('InfosBilans', $infosBilans); + $this->view->assign('siren', $siren); + $this->view->assign('siret', $this->siret); + $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); + } + + public function statutsAction(){} + + public function bilanAction() + { + //Désactiver Affichage + + $request = $this->getRequest(); + $vecteur = $request->getParam('mode'); + $info = $request->getParam('info'); + $ref = $request->getParam('ref'); + $siren = substr($this->siret,0,9); + + switch($vecteur) { + + case 'fichier': + //$client->setLog('greffe_bilans', $siren, 0, $ref); + $info = unserialize($info); + if(file_exists(PATH_DATA.'/pdf/bilan-'.$siren.'-'.$ref.'.pdf')){ + $suffixe = 'bilan'; + }elseif(file_exists(PATH_DATA.'/pdf/acte-'.$siren.'-'.$ref.'.pdf')){ + $suffixe = 'acte'; + } + $href = '/fichier/pdf/'.$suffixe.'-'.$siren.'-'.$ref.'.pdf'; + echo '
Ouvrir le bilan millésime '.$info['type'].''; + break; + break; + + case 'T': + $infogreffe = new Infogreffe(); + $reponse = $infogreffe->getGreffeBilans($siren, $vecteur, $ref); + + if(empty($reponse['error'])) { + $items = $reponse['result']['bilan']; + } + else { + $error = $reponse['error']['errNum'].' - '.$reponse['error']['errMsg']; + } + + if ($error!='') { + //$client->setLog('greffe_bilans', $siren, 0, 'Erreur '.$reponse['error']['errNum']); + echo '
Erreur : '.$error; + exit; + } + + $info = unserialize(urldecode($info)); + foreach($items as $item) { + if($item['url_acces']!==false) { + //$client->setLog('greffe_bilan', $siren, 0, $ref); + $href = '/fichier/pdf/'.$item['url_acces']; + echo '
Ouvrir le bilan millésime '.$item['millesime'].''; + } + else + { + //$client->setLog('greffe_bilans', $siren, 0, 'Erreur telechargement '.$ref); + echo '
Impossible de télécharger le fichier auprès de notre partenaire.'; + } + } + break; + } + exit; + } + + public function acteAction() + { + //Désactiver Affichage + + $request = $this->getRequest(); + $vecteur = $request->getParam('mode'); + $info = $request->getParam('info'); + $ref = $request->getParam('ref'); + $siren = substr($this->siret,0,9); + + switch($vecteur) { + + case 'fichier': + //$client->setLog('greffe_actes', $siren, 0, $ref); + $info = unserialize(urldecode($info)); + $href = '/fichier/pdf/acte-'.$siren.'-'.$ref.'.pdf'; + echo '
Ouvrir le fichier '.$info['type_lib'].' '; + exit; + break; + + case 'T': + + $infogreffe = new Infogreffe(); + $reponse = $infogreffe->getGreffeActes($siren, $vecteur, $ref); + + if (empty($reponse['error'])) { + $items = $reponse['result']['actes']; + } else { + $error = $reponse['error']['errNum'].' - '.$reponse['error']['errMsg']; + } + + if ($error!='') { + //$client->setLog('greffe_acte', $siren, 0, 'Erreur '.$reponse['error']['errNum']); + echo '
Erreur : '.$error; + exit; + } + + foreach($items as $item) { + if($item['num_acte']==$info['num_acte']) { + if($item['url_acces']!==false) { + //$client->setLog('greffe_actes', $siren, 0, $ref); + $href = '/fichier/pdf/'.$item['url_acces']; + echo '
Ouvrir le fichier '.$item['type_acte_libelle'].' '; + exit; + } else { + //$client->setLog('greffe_actes', $siren, 0, 'Erreur telechargement '.$ref); + echo '
Impossible de télécharger le fichier '.$item['type_acte_libelle'].' auprès de notre partenaire.'; + exit; + } + } + } + break; + } + exit; + } + + + + /** + * Commande de pièces, kbis, privileges, nantissements + */ public function commandeAction() { - $this->view->headLink() - ->appendStylesheet('/themes/default/styles/pieces.css', 'all'); - $this->view->headScript() - ->appendFile('/themes/default/scripts/pieces.js', 'text/javascript'); + $this->view->headLink()->appendStylesheet('/themes/default/styles/pieces.css', 'all'); + $this->view->headScript()->appendFile('/themes/default/scripts/pieces.js', 'text/javascript'); $siren = substr($this->siret, 0, 9); @@ -41,19 +502,20 @@ class PiecesController extends Zend_Controller_Action if ($user->checkPerm('survpriv')){ $permSurvPriv = true; } - $this->view->assign('permKbis', $permKbis); $this->view->assign('permPriv', $permPriv); $this->view->assign('permSurvPriv', $permSurvPriv); - $this->view->assign('siren', $siren); $this->view->assign('siret', $this->siret); $this->view->assign('raisonSociale', $session->getRaisonSociale()); } - + + /** + * Affiche les privilèges en surveillance + */ public function privilegesAction() { $request = $this->getRequest(); diff --git a/application/views/default/scripts/pieces/acte.phtml b/application/views/default/scripts/pieces/acte.phtml new file mode 100644 index 000000000..72afeb3ec --- /dev/null +++ b/application/views/default/scripts/pieces/acte.phtml @@ -0,0 +1,13 @@ +
+partial('pieces/header.phtml', array( + 'siren' => $this->siren, + 'raisonSociale' => $this->raisonSociale +))?> + +

Actes & Status

+
+ + +
+ +
\ No newline at end of file diff --git a/application/views/default/scripts/pieces/actes.phtml b/application/views/default/scripts/pieces/actes.phtml new file mode 100644 index 000000000..027a15510 --- /dev/null +++ b/application/views/default/scripts/pieces/actes.phtml @@ -0,0 +1,66 @@ +
+ +

PIÈCES OFFICIELLES

+
+ + + + + + + + + + + +
  + Numéro identifiant Siren + + SirenTexte($this->siren)?> +
 Raison SocialeraisonSociale?>
+
+ +

Actes & Status

+
+ + + + + + +InfosActes as $acte):?> + + + + + + + +
DateTypeDécisions
+ + + PDF + + + + + Courrier + + +
+
+ +
\ No newline at end of file diff --git a/application/views/default/scripts/pieces/associations.phtml b/application/views/default/scripts/pieces/associations.phtml new file mode 100644 index 000000000..2bfa20d01 --- /dev/null +++ b/application/views/default/scripts/pieces/associations.phtml @@ -0,0 +1,108 @@ +
+ +

PIÈCES OFFICIELLES

+
+ + + + + + + + + + + +
  + Numéro identifiant Siren + + SirenTexte($this->siren)?> +
 Raison SocialeraisonSociale?>
+
+ +

Actes & Status

+ + + + + + + + + + + + + + + + + +
 Il n'est pas possible de visualiser les statuts des associations en ligne.
  + +
+

Commander les statuts de l'association (délai approximatif de 15 jours)

+
Votre référence
+
Votre téléphone
+
Adresse email du destinataire + +
+ +
+
  + + Envoyer un actes + + +
+ + +
\ No newline at end of file diff --git a/application/views/default/scripts/pieces/bilan.phtml b/application/views/default/scripts/pieces/bilan.phtml new file mode 100644 index 000000000..b3d9bbc7f --- /dev/null +++ b/application/views/default/scripts/pieces/bilan.phtml @@ -0,0 +1 @@ + + +

PIÈCES OFFICIELLES

+
+ + + + + + + + + + + +
  + Numéro identifiant Siren + + SirenTexte($this->siren)?> +
 Raison SocialeraisonSociale?>
+
+ +

Compte annuels

+
+ + + + + + +InfosBilans as $bilan):?> + + + + + + + +
Date de clôtureTypeDécisions
+ + + + PDF + + + + + Courrier + + +
+
+ + \ No newline at end of file diff --git a/application/views/default/scripts/pieces/header.phtml b/application/views/default/scripts/pieces/header.phtml new file mode 100644 index 000000000..558286693 --- /dev/null +++ b/application/views/default/scripts/pieces/header.phtml @@ -0,0 +1,18 @@ +

PIÈCES OFFICIELLES

+
+ + + + + + + + + + + +
  + Numéro identifiant Siren + + partial()->view->SirenTexte($this->siren)?> +
 Raison SocialeraisonSociale?>
\ No newline at end of file diff --git a/library/Infogreffe/Infogreffe.php b/library/Infogreffe/Infogreffe.php new file mode 100644 index 000000000..0bd83c293 --- /dev/null +++ b/library/Infogreffe/Infogreffe.php @@ -0,0 +1,1210 @@ +"ERREUR LORS DE L'ACCES A LA BASE DES PIECES OFFICIELLES. MERCI DE REESSAYER !", + 1=>"REQUETE INTERDITE", + 2=>"CODE EMETTEUR INVALIDE", + 3=>"CODE ABONNE OU MOT DE PASSE INVALIDE", + 4=>"MOT DE PASSE INVALIDE", + 5=>"ABONNE INTERDIT", + 6=>"DOSSIER NON TROUVE DANS LA BASE DES PIECES OFFICIELLES", + 7=>"Type d'inscription invalide", + 8=>"Kbis indisponible pour le siren", + 9=>"Etat d'endettement indisponible pour le siren", + 10=>"Impossible de faire aboutir la demande", + 11=>"IMPOSSIBLITE DE GENERER LE FLUX XML DU KBIS", + 12=>"IMPOSSIBLITE DE GENERER LE FLUX XML DE L ETAT ENDETTEMENT", + 13=>"L ETAT ENDETTEMENT NE POSSEDE AUCUN DEBITEUR", + 14=>"IMPOSSIBILITE DE GENERER LA COMMANDE", + 15=>"DEMANDE ETAT COMPLET IMPOSSIBLE", + 16=>"LA PRISE EN CHARGE DU MAIL EST EFFECTIVE", + 17=>"LA PRISE EN CHARGE DE VOTRE COMMANDE EST EFFECTIVE", // LA PRISE EN CHARGE DE VOTRE COURRIER EST EFFECTIVE + 18=>"DERNIER STATUT A JOUR INDISPONIBLE", + 19=>"BILAN COMPLET INDISPONIBLE", + 20=>"PAS DE COMPTES ANNUELS POUR LES CRITERES DONNES : SOIT LE MILLESIME DEMANDE N'A PAS ETE DEPOSE, SOIT L'ENTREPRISE N'EST PAS TENUE DE DEPOSER SES COMPTES", + 21=>"PAS DE DERNIER STATUT A JOUR", + 22=>"LES MODES DE DIFFUSIONS DEMANDES SONT FERMES", + 23=>"SOCIETE NON TENUE DE DEPOSER SES COMPTES", + 24=>"SIREN INVALIDE", + 25=>"SIREN NON TROUVE DANS LA BASE DES PIECES OFFICIELLES", + 26=>"COMPTE NON DEPOSES", + 27=>"COMPTES DEPOSES MAIS BILAN SAISI INDISPONIBLE : COMMANDE BILAN COMPLET POSSIBLE", + 28=>"REQUETE SUR LES SURVEILLANCES REALISEES", + 29=>"ACCUSES DE RECEPTIONS DISPONIBLES", + 30=>"REVELATIONS DISPONIBLES", + 31=>"PORTEFEUILLE DISPONIBLE", + 32=>"AUCUN ACCUSE DE RECEPTION DISPONIBLE", + 33=>"AUCUNE REVELATIONS DISPONIBLES", + 34=>"AUCUN PORTEFEUILLE DISPONIBLE", + 35=>"TRANCHE HORAIRE DEPASSEE", + 36=>"BILAN INDISPONIBLE-PERIODE DE CONSERVATION DEPASSEE", + 37=>"BILAN SAISI INDISPONIBLE", + 38=>"STATUTS A JOUR INDISPONIBLES POUR ENVOI EMAIL", + 39=>"BILAN COMPLET INDISPONIBLE POUR TELECHARGEMENT", + 40=>"STATUTS A JOUR INDISPONIBLES POUR ENVOI EMAIL", + 41=>"STATUTS A JOUR INDISPONIBLES POUR TELECHARGEMENT", + 42=>"ACTE INDISPONIBLE", + 43=>"ACTES INDISPONIBLES POUR ENVOI EMAIL", + 44=>"ACTES INDISPONIBLES POUR TELECHARGEMENT", + 45=>"AUCUN ACTE TROUVE POUR CE SIREN", + 46=>"AUCUN ACTE TROUVE AVEC CES CRITERES", + 47=>"SERVICE COURRIER INDISPONIBLE", + 48=>"SERVICE MAIL INDISPONIBLE", + 49=>"SERVICE TELECHARGEMENT INDISPONIBLE", + 50=>"UNE PARTIE DE LA COMMANDE INDISPONIBLE EN TELECHARGEMENT ET MAIL", + 51=>"ADRESSE EMAIL OBLIGATOIRE POUR COMMANDE MAIL", + 52=>"ADRESSE POSTALE OBLIGATOIRE POUR COMMANDE COURRIER", + 53=>"LA COMMANDE EN COURRIER SEUL DE L'ETAT EN MATIERE DE PROCEDURE COLLECTIVE N'EST PAS PERMISE", + 54=>"IMPOSSIBILITE DE GENERER LE FLUX XML DU CERTIFICAT", + 55=>"SOCIETE NE FAISANT PAS L'OBJET D'UNE PROCEDURE COLLECTIVE", + 56=>"IDENTIFICATION DU DOCUMENT INVALIDE POUR LA PROCEDURE EN COURS SUR CETTE ENTREPRISE", + 57=>"DOCUMENT INDISPONIBLE POUR LE NUMERO DE GESTION", + 58=>"AUCUN DOCUMENT TROUVE POUR LE NUMERO DE GESTION", + 59=>"DOCUMENT INDISPONIBLE POUR TELECHARGEMENT", + 60=>"IDENTIFICATION INCOMPLETE DU DOCUMENT", + 61=>"AUCUNE INSCRITPTION MODIFICATIVE TROUVEE", + 62=>"HISTORIQUE DES MODIFICATIONS AU RCS INDISPONIBLE", + 63=>"IMPOSSIBLITE DE GENERER LE FLUX XML D'HISTORIQUE DE MODIFICATIONS AU RCS", + 64=>"HISTORIQUE DE MODIFICATIONS AU RCS INDISPONIBLE", + 65=>"LES MODES DE DIFFUSION SPECIFIES SONT INVALIDES", + 66=>"LE DEPARTMENT SAISI EST INVALIDE", + 67=>"LA RECHERCHE EST LIMITE A UN VOLUME DE 100 ENTREPRISES", + 68=>"LE NUMERO DE GESTION N'EST PAS SUFFISANT POUR CETTE REQUETE", + 69=>"LE NUMERO DE GESTION EST INVALIDE", + 70=>"LA SELECTION DES ETABLISSSMENTS RADIES OU SECONDAIRES DOIT UTILISER UNE VALEUR DE TYPE BOOLEAN true OU false", + 81=>"DOCUMENT INDISPONIBLE POUR LES NON INSCRITS AU RCS", + 999=>"SERVICE INDISPONIBLE", + ); + + protected $typActes = array( + 'a00'=>'MODIFICATION', + 'a01'=>'MODIFICATION', + 'a02'=>'DISSOLUTION', + 'a03'=>'CONSTITUTION', + 'a04'=>'STATUTS CONSTITUTIFS', + 'a06'=>'STATUTS A JOUR', + 'a07'=>'STATUTS A JOUR', + 'a08'=>'STATUTS A JOUR ET DECLARATION DE CONFORMITE', + 'a09'=>'STATUTS APRES TRANSFERT DE SIEGE', + 'a1D'=>'AUGMENTATION ET REDUCTION CAPITAL', + 'a25'=>'AUGMENTATION DE CAPITAL', + 'a26'=>'REDUCTION DE CAPITAL', + 'a31'=>'TRANSFERT SIEGE SOCIAL HORS RESSORT O', + 'a33'=>'CHANGEMENT DE GERANT', + 'a39'=>'CHANGEMENT DE COMMISSAIRE AUX COMPTES', + 'a77'=>'CONTINUATION MALGRE LA PERTE DE LA MOITIE DU CAPITAL', + 'aA1'=>'STATUTS', + 'aAA'=>'ACTE', + 'aAB'=>'ACTE MODIFICATIF', + 'aAC'=>'ACTE RECTIFICATIF', + 'aAD'=>'ACTE SOUS SEING PRIVE', + 'aAE'=>'AMPLIATION', + 'aAG'=>'AVENANT', + 'aAH'=>'AVENANT AUX STATUTS', + 'aAI'=>'ATTESTATION', + 'aAJ'=>'ANNEXES', + 'aAK'=>'ATTESTATION BANCAIRE', + 'aAP'=>'PROJET APPORT PARTIEL D"ACTIF', + 'aAT'=>'DELIVRANCE DE L"INFORMATION FAITE AU CONJOINT SUR LES CONSEQUENCES DES DETTES', + 'aCA'=>'CERTIFICAT', + 'aCB'=>'COMPTES DE CLOTURE DE LIQUIDATION', + 'aCD'=>'CONTRAT', + 'aCE'=>'CONVENTION', + 'aCF'=>'CERTIFICAT DE SOUSCRIPTION D"ACTIONS', + 'aDA'=>'DECISION DE GERANCE', + 'aDB'=>'DECISION DE L"ASSOCIE UNIQUE', + 'aDC'=>'DECISION DES ASSOCIES', + 'aDE'=>'DECLARATION DE CONFORMITE', + 'aDF'=>'DECLARATION DE SOUSCRIPTION ET DE VERSEMENT', + 'aDH'=>'DECLARATION DE CONFORMITE (ART.374 L24/07/1966)', + 'aDI'=>'DECISION DE L"ACTIONNAIRE UNIQUE', + 'aDP'=>'DECISION DU PRESIDENT', + 'aEA'=>'EXPEDITION', + 'aEB'=>'EXPEDITION NOTARIEE', + 'aEC'=>'EXTRAIT DU PROCES-VERBAL', + 'aFU'=>'PROJET DE FUSION', + 'aIF'=>'PROJET APPORT PARTIEL D"ACTIF', + 'aJA'=>'JUGEMENT', + 'aLA'=>'LETTRE', + 'aLB'=>'LISTE DES SIEGES SOCIAUX ANTERIEURS', + 'aLC'=>'LETTRE DE DEMISSION', + 'aLD'=>'LETTRE DE NOMINATION', + 'aLF'=>'LISTE DES SOUSCRIPTEURS', + 'aLS'=>'CERTIFICAT DE DEPOT DES FONDS AVEC LISTE DES SOUSCRIPTEURS', + 'aNA'=>'NOMINATION DE REPRESENTANT', + 'aO9'=>'NOMINATION DE GERANT(S)', + 'aOA'=>'ORDONNANCE', + 'aOB'=>'ORDONNANCE DE REFERE', + 'aOC'=>'ORDONNANCE DU PRESIDENT', + 'aOD'=>'ORDONNANCE SUR REQUETE', + 'aOE'=>'ORDONNANCE', + 'aPA'=>'PROCES VERBAL', + 'aPC'=>'PROCES VERBAL D"ASSEMBLEE CONSTITUTIVE', + 'aPD'=>'PROCES VERBAL D"ASSEMBLEE DU DIRECTOIRE', + 'aPE'=>'PROCES VERBAL D"ASSEMBLEE GENERALE', + 'aPF'=>'PROCES VERBAL D"ASSEMBLEE GENERALE EXTRAORDINAIRE', + 'aPG'=>'PROCES VERBAL D"ASSEMBLEE GENERALE ORDINAIRE', + 'aPH'=>'PROCES VERBAL D"ASSEMBLEE MIXTE', + 'aPI'=>'PROCES VERBAL D"ASSEMBLEES ORDINAIRE ET EXTRAORDINAIRE', + 'aPL'=>'PROCES VERBAL DIRIGEANT SOCIAL', + 'aPM'=>'PROCES VERBAL DU CONSEIL D"ADMINISTRATION', + 'aPN'=>'PROCES VERBAL DU CONSEIL DE SURVEILLANCE', + 'aPO'=>'PROCES VERBAL DE LA GERANCE', + 'aPT'=>'PROJET DE TRAITE D"APPORT', + 'aPU'=>'PROJET DE FUSION', + 'aPV'=>'PV D"ASSEMBLEE', + 'aQ2'=>'CONSTITUTION DE LA SOCIETE', + 'aR1'=>'CESSION DE PARTS (OU DONATION)', + 'aR4'=>'TRAITE DE FUSION', + 'aRA'=>'RAPPORT', + 'aRB'=>'RAPPORT COMMISSAIRE AUX COMPTES', + 'aRC'=>'RAPPORT COMMISSAIRE FUSION', + 'aRE'=>'RAPPORT CR/CPTES TRANSFORM. STE', + 'aRG'=>'RAPPORT DU COMMISSAIRE A LA FUSION', + 'aRH'=>'RAPPORT DU COMMISSAIRE A LA SCISSION', + 'aRI'=>'RAPPORT DU COMMISSAIRE A LA TRANSFORMATION', + 'aRK'=>'RAPPORT DU COMMISSAIRE AUX APPORTS', + 'aRL'=>'RAPPORT DU COMMISSAIRE AUX APPORTS ET A LA FUSION', + 'aRQ'=>'RAPPORT GERANCE', + 'aRS'=>'RAPPORT SPECIAL DU CONSEIL D"ADMINISTRATION', + 'aRU'=>'PROJET', + 'aTA'=>'TRAITE', + 'aTB'=>'TRAITE D"APPORT-FUSION', + 'aTC'=>'TRAITE DE FUSION', + 'aUA'=>'ATTESTATION DU CONJOINT COMMUN EN BIENS', + ); + + protected $url; + protected $uri; + protected $user; + protected $pass; + protected $filetime = 8; + + protected $pathCacheXML = ''; + protected $pathData = ''; + + public function __construct() + { + $config = parse_ini_file(realpath(dirname(__FILE__)).'/config.ini', true); + if ($mode=='debug'){ + $this->url = $config['DEBUG']['WS_URL']; + $this->uri = $config['DEBUG']['WS_URI']; + $this->user = $config['DEBUG']['WS_USER']; + $this->pass = $config['DEBUG']['WS_PASS']; + $this->pathCacheXML = $config['DEBUG']['PATH']; + $this->filetime = $config['DEBUG']['FILETIME']; + } else { + $this->url = $config['PROD']['WS_URL']; + $this->uri = $config['PROD']['WS_URI']; + $this->user = $config['PROD']['WS_USER']; + $this->pass = $config['PROD']['WS_PASS']; + $this->pathCacheXML = $config['PROD']['PATH']; + $this->filetime = $config['PROD']['FILETIME']; + } + if (!is_dir($this->pathCacheXML)){ + mkdir($this->pathCacheXML); + } + $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path'); + $this->pathData = realpath($config->data); + } + + /** + * Retourne le libellé des erreurs infogreffe + */ + public function getErrInfoGref($code = '') + { + if (empty($code)) + return $this->tabErrInfoGref; + + return $this->tabErrInfoGref[$code]; + } + + /** + * Retourne le libellé d'un acte + */ + public function getTypActes($code = '') + { + if (empty($code)) + return $this->typActes; + + return $this->typActes[$code]; + } + + + + /** + * Génére une chaîne xml pour la requête soap défini suivant les paramètres d'infogreffe + * @param string $siren + * @param int $idCommande + * @param string $type + * @param string $vecteur + * @param string or array $option + * @return string + */ + public function requeteXML($siren, $idCommande, $type, $vecteur, $option) + { + $xmlStr = ''; + $xml = new SimpleXMLElement(''); + $emetteur = $xml->addChild('emetteur'); + $emetteur->addChild('code_abonne', $this->user); + $emetteur->addChild('mot_passe', $this->pass); + $emetteur->addChild('reference_client', 'G'.$idCommande); //Générer l'identifiant de commande + $code_requete = $emetteur->addChild('code_requete'); + $code_requete->addChild('type_profil', 'A'); + $code_requete->addChild('origine_emetteur', 'IC'); + $code_requete->addChild('nature_requete', 'C'); // C = Commande de documents + $code_requete->addChild('type_document', $type); // KB = Kbis, PN = privilèges et nantissements, BI = Bilan complet, BS = bilan saisi, ST = Dernier Statut à jour, AC = Acte, SD = Surveillance Demande et Accusé, SR = Surveillance Révélation, SP = Surveillance Portefeuille, FA = Recherche PCL, FI = Inventaire, FJ = Jugement, FO = Ordonnance, FD = Dépôt divers, LE = Liste Etablissements + $code_requete->addChild('type_requete', 'S'); // S = Simple + + $mode_diffusion = $code_requete->addChild('mode_diffusion'); + // Mode de diffusion : C = Courrier, T = Téléchargement, M = Mail, XL = XML + if ($vecteur=='XL' && $option=='') + { + //On ajoute tout les types de diffusions pour $vecteur = XL + $mode_diffusion->addChild('mode')->addAttribute('type', 'C'); + $mode_diffusion->addChild('mode')->addAttribute('type', 'T'); + } + $mode_diffusion->addChild('mode')->addAttribute('type', $vecteur); + + $code_requete->addChild('media', 'WS'); + + $commande = $xml->addChild('commande'); + $commande->addChild('num_siren', $siren); + + // Commande de documents : bilan saisie ou bilan complet + if ( ($type=='BS' || $type=='BI') && $option!='' ) + { + //Format de la variable option pour la commande de type BI ou BS + /* + 0 => millesime + 1 => date_cloture + 2 => greffe + 3 => dossier_millesime + 4 => dossier_statut + 5 => dossier_chrono + 6 => num_depot + */ + $ref = explode('-', $option); + $commande->addChild('greffe',$ref[2]); + $commande->addChild('dossier_millesime',$ref[3]); + $commande->addChild('dossier_statut',$ref[4]); + $commande->addChild('dossier_chrono',$ref[5]); + $commande->addChild('num_depot',$ref[6]); + $commande->addChild('date_cloture', WDate::dateT('Ymd','d/m/Y', $ref[1])); + + $fichierOption = $option; + + $this->logFile(array($siren, $idCommande, $type, $vecteur, $option)); + + } + // Commande de documents : actes + elseif ( $type=='AC' && !empty($option) ) + { + //Format de la variable option pour commande type AC + /* + 0 => type_acte + 1 => date de référence + 2 => greffe + 3 => dossier_millesime + 4 => dossier_statut + 5 => dossier_chrono + 6 => num_depot + 7 => num_acte + */ + $ref = explode('-', $option); + $num_actes = explode('|', $ref[7]); + $commande->addChild('greffe',$ref[2]); + $commande->addChild('dossier_millesime', $ref[3]); + $commande->addChild('dossier_statut', $ref[4]); + $commande->addChild('dossier_chrono', $ref[5]); + $commande->addChild('num_depot', $ref[6]); + $liste_actes = $commande->addChild('liste_actes'); + if(is_array($num_actes) && count($num_actes)>1) + { + foreach($num_actes as $num_acte) + { + $liste_actes->addChild('acte')->addAttribute('num', $num_acte); + } + $fichierOption = $ref[0].'-'.$ref[1].'-'.$ref[2].'-'.$ref[3].'-'.$ref[4].'-'.$ref[5].'-'.$ref[6]; + } + else + { + $liste_actes->addChild('acte')->addAttribute('num', $ref[7]); + $fichierOption = $option; + } + $this->logFile(array($siren, $idCommande, $type, $vecteur, $option)); + } + + $xmlStr = str_replace('', '', $xml->asXML()); + empty($option) ? + $fichier = $type.'-'.$siren.'.xml' : + $fichier = $type.'-'.$siren.'-'.$fichierOption.'.xml'; + file_put_contents($this->pathCacheXML.'/'.$fichier.'.query', $xmlStr); + //Retourne le xml sous forme de chaîne de caractères + return $xmlStr; + } + + /** + * Requête le webservice infogreffe + * @param unknown_type $xml + * @return unknown_type + */ + function getProduitsXML($xml) + { + $req = utf8_encode($xml); + $post = ''.$req.''; + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $this->url); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE); + curl_setopt($ch, CURLOPT_POST, TRUE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post); + $reponseXML = curl_exec($ch); + $reponseXML = str_replace("", '', $reponseXML); + $reponseXML = str_replace('','', $reponseXML); + return $reponseXML; + + } + + /** + * Format la chaine xml de liste des actes + * @param string $xml + * @return array + */ + function parsexmlActes($xml) + { + $doc = new DOMDocument(); + $doc->loadXML($xml); + + $liste_depot_acte = $doc->getElementsByTagName('liste_depot_acte')->item(0); + $depot_actes = $liste_depot_acte->getElementsByTagName('depot_acte'); + $actes = array(); + foreach($depot_actes as $depot_acte) + { + $acte = array(); + + $acte['num_gest'] = array(); + $num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0); + $acte['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $acte['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $acte['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $acte['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + + $acte['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue; + $acte['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue; + $acte['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue; + + $infoActes = $depot_acte->getElementsByTagName('acte'); + $acte['depot'] = array(); + foreach($infoActes as $infoActe) + { + $actenum = array(); + $actenum['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue; + $actenum['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue; + $actenum['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue; + $actenum['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue; + $actenum['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue; + $decision = $infoActe->getElementsByTagName('decision')->item(0); + if($decision) + { + $actenum['decision'] = array(); + $actenum['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue; + $actenum['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue; + } + + $actenum['mode_diffusion'] = array(); + $mode_diffusion = $infoActe->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode'); + foreach($mode_diffusion as $mode) + { + $actenum['mode_diffusion'][] = $mode->getAttribute('type'); + } + $acte['depot'][] = $actenum; + }//Fin listes des infos acte + + //Génération de l'index pour le tri + if(!empty($acte['date_depot'])){ $date = $acte['date_depot']; } + else { $date = ''; } + + if(!empty($date)) + { + $datef = substr($date,0,4).substr($date,5,2).substr($date,8,2); + $key = $datef.'-'.$acte['num_depot']; + //Affectation liste générale avec un index permettant le tri + $actes[$key] = $acte; + } + //Prise en compte de l'acte -1 + if($acte['num_depot']==-1) + { + $actes[0] = $acte; + } + + } + + //Tri suivant la date d'acte ou de depot + krsort($actes); + return $actes; + } + + /** + * Formate la chaine xml de commande d'un acte en mode téléchargement + * @param string $xml + * @return array + */ + function parsexmlActesT($xml) + { + $doc = new DOMDocument(); + $doc->loadXML($xml); + + $depot_acte = $doc->getElementsByTagName('depot_acte')->item(0); + + $info = array(); + $info['num_gest'] = array(); + + $num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0); + + $info['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $info['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $info['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $info['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + + $info['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue; + $info['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue; + $info['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue; + + $infoActes = $depot_acte->getElementsByTagName('acte'); + $info['actes'] = array(); + foreach($infoActes as $infoActe) + { + $actenum = array(); + $actenum['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue; + $actenum['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue; + $actenum['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue; + $actenum['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue; + $actenum['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue; + + $decision = $infoActe->getElementsByTagName('decision')->item(0); + if($decision) + { + $actenum['decision'] = array(); + $actenum['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue; + $actenum['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue; + } + $actenum['url_acces'] = htmlspecialchars_decode($infoActe->getElementsByTagName('url_acces')->item(0)->nodeValue); + $info['actes'][] = $actenum; + } + return $info; + } + + /** + * Formatte la chaine xml de liste des bilans + * @param unknown_type $xml + * @return unknown_type + */ + function parsexmlBilans($xml) + { + $doc = new DOMDocument(); + $doc->loadXML($xml); + + $liste_bilan_complet = $doc->getElementsByTagName('liste_bilan_complet')->item(0); + $bilan_complet = $liste_bilan_complet->getElementsByTagName('bilan_complet'); + + $bilans = array(); + foreach($bilan_complet as $element) + { + $bilan = array(); + + $bilan['num_gest'] = array(); + $num_gest = $element->getElementsByTagName('num_gest')->item(0); + $bilan['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $bilan['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $bilan['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $bilan['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + + $bilan['num_siren'] = $element->getElementsByTagName('num_siren')->item(0)->nodeValue; + $bilan['date_cloture'] = $element->getElementsByTagName('date_cloture')->item(0)->nodeValue; + $bilan['date_cloture_iso'] = $element->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue; + $bilan['millesime'] = $element->getElementsByTagName('millesime')->item(0)->nodeValue; + $bilan['num_depot'] = $element->getElementsByTagName('num_depot')->item(0)->nodeValue; + $bilan['type_comptes'] = $element->getElementsByTagName('type_comptes')->item(0)->nodeValue; + + $mode_diffusion = $element->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode'); + foreach($mode_diffusion as $mode) + { + $bilan['mode_diffusion'][] = $mode->getAttribute('type'); + } + + //Génération de l'index pour le tri + $date = $bilan['date_cloture_iso']; + if(!empty($date)) + { + $datef = substr($date,0,4).substr($date,5,2).substr($date,8,2); + //Affectation liste générale avec un index permettant le tri + $bilans[$datef] = $bilan; + } + } + krsort($bilans); + return $bilans; + } + + function parsexmlBilansT($xml) + { + $doc = new DOMDocument(); + $doc->loadXML($xml); + $bilan_complet = $doc->getElementsByTagName('bilan_complet')->item(0); + $bilan = array(); + $bilan['num_gest'] = array(); + $num_gest = $bilan_complet->getElementsByTagName('num_gest')->item(0); + $bilan['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $bilan['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $bilan['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $bilan['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + $bilan['num_siren'] = $bilan_complet->getElementsByTagName('num_siren')->item(0)->nodeValue; + $bilan['date_cloture'] = $bilan_complet->getElementsByTagName('date_cloture')->item(0)->nodeValue; + $bilan['date_cloture_iso'] = $bilan_complet->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue; + $bilan['millesime'] = $bilan_complet->getElementsByTagName('millesime')->item(0)->nodeValue; + $bilan['num_depot'] = $bilan_complet->getElementsByTagName('num_depot')->item(0)->nodeValue; + $bilan['type_comptes'] = $bilan_complet->getElementsByTagName('type_comptes')->item(0)->nodeValue; + $bilan['url_acces'] = $bilan_complet->getElementsByTagName('url_acces')->item(0)->nodeValue; + return array( 'bilan' => $bilan ); + } + + /** + * Formatte le tableau complet des actes pour envoyer seulement les informations nécessaires + * @param $actes + * @return unknown_type + */ + function formatActes($actes) + { + $tabActes = array(); + //Pour chaque depot + foreach($actes as $key => $depot) + { + //Pour chaque acte dans le depot + foreach($depot['depot'] as $acte) + { + //Recherche du fichier suivant le siren, le type de document et la reference + $file_exist = false; + $ref = $this->acteRef($acte, $depot); + if (strlen($depot['num_siren'])==8){ + $siren = '0'.$depot['num_siren']; + } else { + $siren = $depot['num_siren']; + } + $fichier = $this->path.'/pdf/'.$this->acteFilename($siren,$ref); + if( file_exists($fichier) && filesize($fichier)>0 ) + { + $mode = 'fichier'; + $file_exist = true; + } + + //Génération date (date_acte peut être vide) + if(!empty($acte['date_acte'])){ $date = WDate::dateT('Y-m-d', 'Ymd', $acte['date_acte']); } + else { $date = WDate::dateT('Y-m-d', 'Ymd', $depot['date_depot']); } + + //Suppression du mode courrier si le mode telechargement existe + $modes = $acte['mode_diffusion']; + if(is_array($modes) && !$file_exist) + { + //Pas de modes + $nomode = true; + if(in_array('T',$modes)) + { + $mode = 'T'; + //Reference multiacte + $ref_multi = $this->acteRef($acte, $depot, true); + $tabActe['ref_multi'] = $ref_multi; + $nomode = false; + } + elseif(in_array('C',$modes)) + { + $mode = 'C'; + //Reference identique + $nomode = false; + } + if($nomode && ( substr($date,0,4)>date('Y')-5 ) ) + { + $mode = 'courrier'; + } + } + + //Assignation + $tabActe['num_acte'] = $acte['num_acte']; + $tabActe['nbpages_acte'] = $acte['nbpages_acte']; + $tabActe['type'] = $acte['type_acte']; + $tabActe['type_lib'] = $acte['type_acte_libelle']; + $tabActe['decision'] = $acte['decision']['libelle']; + $tabActe['date_acte'] = ($date!='') ? WDate::dateT('Ymd', 'd/m/Y', $date) : ''; + $tabActe['mode'] = $mode; + $tabActe['ref'] = $ref; + + $tabActes[$key]['actes'][] = $tabActe; + } + + $tabActes[$key]['num_depot'] = $depot['num_depot']; + $tabActes[$key]['date_depot'] = WDate::dateT('Y-m-d', 'd/m/Y', $depot['date_depot']); + + } + return $tabActes; + } + + function formatActesT($actes) + { + $tabActes = array(); + $tabActe = array(); + foreach($actes['actes'] as $acte) + { + //Génération date (date_acte peut être vide) + if(!empty($acte['date_acte'])){ $date = WDate::dateT('Y-m-d', 'Ymd', $acte['date_acte']); } + else { $date = WDate::dateT('Y-m-d', 'Ymd', $actes['date_depot']); } + + $tabActe = ''; + + $tabActe['type_acte'] = $acte['type_acte']; + $tabActe['type_acte_libelle'] = $acte['type_acte_libelle']; + $tabActe['decision'] = $acte['decision']; + $tabActe['date_acte'] = $date; + $tabActe['num_acte'] = $acte['num_acte']; + $tabActe['url_acces'] = $acte['url_acces']; + + $tabActes['actes'][] = $tabActe; + } + + $tabActes['num_gest'] = $actes['num_gest']; + $tabActes['num_siren'] = $actes['num_siren']; + $tabActes['num_depot'] = $actes['num_depot']; + $tabActes['date_depot'] = $actes['date_depot']; + return $tabActes; + } + + /** + * + * @param unknown_type $bilans + * @return unknown_type + */ + function formatBilans($bilans) + { + //Organisation du tableau des bilans + $tabBilans = array(); + foreach($bilans as $key => $bilan) + { + $mode = ''; + $nomode = true; + //Recherche du fichier suivant le siren, le type de document et la reference + $file_exist = false; + $ref = $this->bilanRef($bilan); + if (strlen($bilan['num_siren'])==8){ + $siren = '0'.$bilan['num_siren']; + } else { + $siren = $bilan['num_siren']; + } + + //Cas de fichier correspondant à la référence + $fichier = $this->path.'/pdf/'.$this->bilanFilename($siren,$ref); + if( file_exists($fichier) && filesize($fichier)>0 ) + { + $mode = 'fichier'; + $file_exist = true; + $nomode = false; + } + + //Cas de fichier ne correspondant pas à la référence (_sociaux ou pas) + //Si AAAA_sociaux- alors on cherche sans + if (preg_match('/^[0-9]{4}_sociaux-/', $ref)){ + $refR = str_replace('_sociaux-', '_-', $ref); + $fichier = $this->path.'/pdf/'.$this->bilanFilename($siren,$refR); + if( file_exists($fichier) && filesize($fichier)>0 ) + { + $mode = 'fichier'; + $file_exist = true; + $nomode = false; + $ref = $refR; + } + //Si AAAA_- alors on cherche avec + } elseif (preg_match('/^[0-9]{4}_-/', $ref)){ + $refR = str_replace('_-', '_sociaux-', $ref); + $fichier = $this->path.'/pdf/'.$this->bilanFilename($siren,$refR); + if( file_exists($fichier) && filesize($fichier)>0 ) + { + $mode = 'fichier'; + $file_exist = true; + $nomode = false; + $ref = $refR; + } + } + + //Cas de fichier en acte (a faire disparaitre) + $fichier = $this->path.'/pdf/acte-'.$siren.'-'.$ref.'.pdf'; + if( file_exists($fichier) && filesize($fichier)>0 ) + { + $mode = 'fichier'; + $file_exist = true; + $nomode = false; + } + //Suppression du mode courrier si le mode telechargement existe + $modes = $bilan['mode_diffusion']; + + if(is_array($modes) && !empty($modes) && !$file_exist ) + { + if(in_array('T',$modes)) { $mode = 'T'; $nomode = false;} + elseif(in_array('C',$modes)){ $mode = 'C'; $nomode = false;} + } + if($nomode && ( substr($bilan['date_cloture'],6,4)>date('Y')-5 ) ) + { + $mode = 'courrier'; + } + //Valeurs de retour + $tabBilans[$key]['millesime'] = $bilan['millesime']; + $tabBilans[$key]['date_cloture'] = $bilan['date_cloture']; + $tabBilans[$key]['type'] = $bilan['type_comptes']; + $tabBilans[$key]['num_depot'] = $bilan['num_depot']; + $tabBilans[$key]['mode'] = $mode; + $tabBilans[$key]['ref'] = $ref; + } + return $tabBilans; + } + + /** + * Liste tous les actes pour un siren et gere les commandes + * @param string $siren + * @param string $typeCommande + * @param string $ref + * @return array + */ + function getGreffeActes($siren, $typeCommande = '', $ref = '', $idCommande = 0) + { + $inErreur = false; + $error = ''; + $result = array(); + + if(empty($typeCommande)) $typeCommande = 'XL'; + $type = 'AC'; // Type actes + + if($typeCommande=='XL') + { + $fichier = $this->pathCacheXML.'/'.$type.'-'.$siren.'.xml'; + if (file_exists($fichier)){ + $xmlReponse = file_get_contents($fichier); + if ($this->erreur($xmlReponse)){ + $inErreur = true; + } + } + if (!file_exists($fichier) || $this->filetimeover($fichier) || $inErreur){ + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + file_put_contents($fichier, $xmlReponse); + } + if(!$this->erreur($xmlReponse)) + { + //Tableau d'actes + $actes = $this->parsexmlActes($xmlReponse); + $result = $this->formatActes($actes); + } + } + //Commande d'un acte en mode téléchargement + elseif($typeCommande=='T') + { + $option = explode('-', $ref); + $num_actes = explode('|', $ref[7]); + if(is_array($num_actes) && count($num_actes)>1){ + $fichierOption = $ref[0].'-'.$ref[1].'-'.$ref[2].'-'. + $ref[3].'-'.$ref[4].'-'.$ref[5].'-'.$ref[6]; + }else{ + $fichierOption = $ref; + } + $fichier = $this->pathCacheXML.'/'.$type.'-'.$siren.'-'.$fichierOption.'.xml'; + if( !file_exists($fichier) || $this->filetimeover($fichier) ){ + $firephp->info('Mode telechargement'); + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + file_put_contents($fichier, $xmlReponse); + }else{ + $xmlReponse = file_get_contents($fichier); + } + if(!$this->erreur($xmlReponse)) + { + $items = $this->parsexmlActesT($xmlReponse); + $items = $this->formatActesT($items); + //Pour chaque acte téléchagement des documents + $result = array(); + $actes = $items['actes']; + unset($items['actes']); + $result = $depot = $items; + + $num_gest = + $result['num_gest']['greffe'].'-'. + $result['num_gest']['dossier_millesime'].'-'. + $result['num_gest']['dossier_statut'].'-'. + $result['num_gest']['dossier_chrono'].'-'. + $result['num_depot']; + + foreach($actes as $acte) + { + if(!empty($acte['date_acte'])){ $date = $acte['date_acte']; } + else { $date = WDate::dateT('Y-m-d', 'Ymd', $result['date_depot']); } + + $ref = $acte['type_acte'].'-'.$date.'-'.$num_gest.'-'.$acte['num_acte']; + + $fichier = $this->acteFilename($siren, $ref); + + //Si le fichier existe, on modifie l'url + if( file_exists($this->path.'/pdf/'.$fichier) ){ + $acte['url_access'] = $fichier; + }else{ + $fichierdl = $this->dl($fichier, $acte['url_acces']); + $acte['url_acces'] = $fichierdl; + } + $result['actes'][] = $acte; + } + } + } + //Commande d'un acte en mode courrier + elseif($typeCommande=='C') + { + //On génére un idCommande suivant la valeur en bdd + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + } + //Default mode erreur + else + { + //Paramètres incorrect + sendMail( + "Erreur : getGreffeActes", + "getGreffeActes($siren, $typeCommande , $ref, $idCommande )", + array('email' => EMAIL_SUPPORTDEV, 'name' => 'Support'), + array('email' => EMAIL_SUPPORTDEV, 'name' => 'Support') + ); + } + //Gestion du retour infogreffe + if($this->erreur($xmlReponse)) + { + $error = $this->erreurMsg($xmlReponse); + } + return array('error' => $error , 'result' => $result ); + } + + /** + * Retourne si le fichier est périmé ou non + * @param string $fichier + * @return boolean + */ + function filetimeover($fichier) + { + $timeover = false; + $dateFile = filemtime($fichier); + $now = mktime(date('G'), date('i'), date('s'), date('m') , date('d'), date('Y')); + $maxTime = mktime(date('G',$dateFile)+$this->filetime, date('i',$dateFile), date('s',$dateFile), date("m",$dateFile), date("d",$dateFile), date("Y",$dateFile)); + if($now>$maxTime) $timeover = true; + return $timeover; + } + + /** + * Détermine si la chaine xml de retour est un message d'information ou d'erreur + * @param string $xml + * @return boolean + */ + function erreur($xml) + { + if (!empty($xml)){ + $doc = new DOMDocument(); + $load = $doc->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING); + $output = false; + if (!$load){ $output = true;} + }else{ + sendMail( + "Erreur : infogreffe_erreur", + "Pas de reponse xml infogreffe", + array('email' => EMAIL_SUPPORTDEV, 'name' => 'Support'), + array('email' => EMAIL_SUPPORTDEV, 'name' => 'Support') + ); + $output = true; + } + return $output; + } + + /** + * Renvoi le code erreur infogreffe ainsi que le message + * @param string $xml + * @return boolean + */ + function erreurMsg($xml) + { + $errNum = ''; + $errMsg = ''; + if (!empty($xml)){ + $doc = new DOMDocument(); + $load = $doc->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING); + if (!$load) { + FB::info('Test erreur infogreffe'); + $tmp = explode('-', $xml); + $errNum = $tmp[0]*1; + $errMsg = $this->tabErrInfoGref[$errNum]; + if ($errNum == '23'){ + $fj = $_SESSION['tabInfo']['entrep']['fj']; + $nafEn = $_SESSION['tabInfo']['entrep']['nafEn']; + if ( (substr($fj,0,2)=='53' || + substr($fj,0,2)=='54' || + substr($fj,0,2)=='55' || + substr($fj,0,2)=='56' || + substr($fj,0,2)=='57' ) && $fj!=5306 && $fj!=5307 && + ( $nafEn!='6411Z' || + $nafEn!='6419Z' || + $nafEn!='6621Z' || + $nafEn!='6622Z' || + $nafEn!='6629Z' || + $nafEn!='6512Z' || + $nafEn!='6520Z' || + $nafEn!='6530Z' || + $nafEn!='6512Z' || + $nafEn!='8430A' || + $nafEn!='8430B' || + $nafEn!='6420Z' || + $nafEn!='6430Z' || + $nafEn!='6611Z' || + $nafEn!='8430B' || + $nafEn!='6612Z' || + $nafEn!='6630Z') ){ + $errMsg = 'Aucun bilan disponible.'; + } + } elseif( $errNum == '5' ){ + $errMsg = 'Service partenaire indisponible.'; + } + } + } + return array( 'errNum' => $errNum , 'errMsg' => $errMsg ); + } + + /** + * Demande le dernier statut à jour auprès d'infogreffe seulement si disponible pour le siren + * Acte possédant un num_depot = 9999999999 + * @param $siren + * @param $typeCommande + * @return unknown_type + */ + function getGreffeStatut($siren, $typeCommande = '', $ref = '', $idCommande = 0) + { + $type = 'ST'; //Type document statut + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + //Gestion du retour infogreffe + if($this->erreur($xmlReponse)) + { + $error = $this->erreurMsg($xmlReponse); + } + return array('error' => $error , 'result' => $result ); + } + + /** + * Liste tous les bilans et gere les commandes + * @param unknown_type $siren + * @param unknown_type $typeCommande + * @param unknown_type $ref + * @return unknown_type + */ + function getGreffeBilans($siren, $typeCommande = '', $ref = '', $idCommande = 0) + { + $inErreur = false; + $error = ''; + $result = ''; + + if(empty($typeCommande)) $typeCommande = 'XL'; + $type = 'BI'; + if($typeCommande=='XL') + { + $fichier = $this->path.$type.'-'.$siren.'.xml'; + if (file_exists($fichier)){ + $xmlReponse = file_get_contents($fichier); + if ($this->erreur($xmlReponse)){ + $inErreur = true; + } + } + if (!file_exists($fichier) || $this->filetimeover($fichier) || $inErreur){ + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + file_put_contents($fichier, $xmlReponse); + } + if(!$this->erreur($xmlReponse)){ + $bilans = $this->parsexmlBilans($xmlReponse); + $result = $this->formatBilans($bilans); + } + } + //Commande d'un acte en mode téléchargement + elseif($typeCommande=='T') + { + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + if(!$this->erreur($xmlReponse)) + { + $items = $this->parsexmlBilansT($xmlReponse); + $result = array(); + $bilan = $items['bilan']; + $fichier = $this->bilanFilename($siren, $ref); + $fichierdl = $this->dl($fichier, $bilan['url_acces']); + $bilan['url_acces'] = $fichierdl; + $result['bilan'][] = $bilan; + } + } + //Commande d'un acte en mode courrier + elseif($typeCommande=='C') + { + //On génére un idCommande suivant la valeur en bdd + $xmlRequete = $this->requeteXML($siren, $idCommande, $type, $typeCommande, $ref); + $xmlReponse = $this->getProduitsXML($xmlRequete); + } + //Default mode erreur + else + { + //Paramètres incorrect + sendMail( + "Erreur : getGreffeBilans", + "getGreffeBilans($siren, $typeCommande, $ref, $idCommande )", + array('email' => EMAIL_SUPPORTDEV, 'name' => 'Support'), + array('email' => EMAIL_SUPPORTDEV, 'name' => 'Support') + ); + } + //Gestion du retour infogreffe + if($this->erreur($xmlReponse)) + { + $error = $this->erreurMsg($xmlReponse); + } + //Si résultat vide, renvoyé erreur Aucun bilans disponible + if (is_array($result) && empty($result)){ + $error = array( + 'errNum' => '45' , + 'errMsg' => 'AUCUN BILAN TROUVE POUR CE SIREN' ); + } + return array( 'error' => $error , 'result' => $result ); + } + + + function acteRef($acte, $depot, $multi = false) + { + if($depot['num_depot']>0) + { + //Numéro de gestion + $num_gest = + $depot['num_gest']['greffe'].'-'. + $depot['num_gest']['dossier_millesime'].'-'. + $depot['num_gest']['dossier_statut'].'-'. + $depot['num_gest']['dossier_chrono'].'-'. + $depot['num_depot']; + + if($multi===true) + { + //Générer la ref multiactes pour le mode téléchargement + $tabActeNum = array(); + foreach($depot['depot'] as $acte) + { + if(in_array('T', $acte['mode_diffusion'])) + { + $tabActeNum[] = $acte['num_acte']; + } + } + $num_acte = implode('|', $tabActeNum); + } + else + { + $num_acte = $acte['num_acte']; + } + + //Génération date (date_acte peut être vide) + if(!empty($acte['date_acte'])){ $date = WDate::dateT('Y-m-d', 'Ymd', $acte['date_acte']); } + else { $date = WDate::dateT('Y-m-d', 'Ymd', $depot['date_depot']); } + return $acte['type_acte'].'-'.$date.'-'.$num_gest.'-'.$num_acte; + } + else + { + //Dernier STATUT A JOUR + $dateRef = date('Y').date('m').date('d'); + return 'ST-'.$dateRef.'-'. + $depot['num_gest']['greffe'].'-'. + $depot['num_gest']['dossier_millesime'].'-'. + $depot['num_gest']['dossier_statut'].'-'. + $depot['num_gest']['dossier_chrono']; + } + } + + function acteFilename($siren, $ref) + { + return 'acte-'.$siren.'-'.$ref.'.pdf'; + } + + function bilanRef($bilan) + { + $ref = + $bilan['millesime'].'_'. + $bilan['type_comptes'].'-'. + WDate::dateT('Y-m-d', 'Ymd', $bilan['date_cloture_iso']).'-'. + $bilan['num_gest']['greffe'].'-'. + $bilan['num_gest']['dossier_millesime'].'-'. + $bilan['num_gest']['dossier_statut'].'-'. + $bilan['num_gest']['dossier_chrono'].'-'. + $bilan['num_depot']; + return $ref; + } + + function bilanFilename($siren, $ref) + { + return 'bilan-'.$siren.'-'.$ref.'.pdf'; + } + + /** + * Télécharge les fichiers d'infogreffe, et renvoi le nom du fichier ou false + * @param string $fichier + * @param string $url + * @return string or false + */ + function dl($fichier, $url) + { + $return = false; + $path = $this->pathData.'/pdf/'; + if(!file_exists($path.$fichier) || !filesize($path.$fichier)>2000) + { + $page = getUrl($url, '', '', '', false, '', '',0,1); + if (substr($page['body'],0,4)!='%PDF') + { + $page2=parse_response($page['body']); + $body=$page2['body']; + } else { + $body=$page['body']; + } + if( ($page['code']!=408 || $page['code']!=400) && substr($body,0,4)=='%PDF') + { + //Ecriture du fichier sur le serveur en local + file_put_contents($path.$fichier, $body); + $return = $fichier; + } + }else{ + $return = $fichier; + } + return $return; + } + + function logfile($info){ + $file = $this->pathData.'/log/infogreffe-'.date('Ym').'.log'; + if( !file_exists($file) ){ + $entetes = array('date', 'login', 'siren', 'idCommande', 'type', 'vecteur', 'option'); + $fp = fopen($file, 'w'); + fputcsv($fp, $entetes, "\t"); + fclose($fp); + } + $preinfo = array(date('Y-m-d H:i:s'), $_SESSION['tabInfo']['login']); + $result = array_merge($preinfo, $info); + $fp = fopen($file, 'a'); + fputcsv($fp, $result, "\t"); + fclose($fp); + } + + +} \ No newline at end of file diff --git a/library/Infogreffe/config.ini b/library/Infogreffe/config.ini new file mode 100644 index 000000000..9010d867a --- /dev/null +++ b/library/Infogreffe/config.ini @@ -0,0 +1,15 @@ +[PROD] +WS_URL = "https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE" +WS_URI = "https://webservices.infogreffe.fr/" +WS_USER = "85000109" +WS_PASS = "166" +FILETIME = 8 +PATH = APPLICATION_PATH "/../cache/infogreffe/" + +[DEBUG] +WS_URL = "https://wsrcte.extelia.fr/WSContextInfogreffe/INFOGREFFE" +WS_URI = "https://wsrcte.extelia.fr/" +WS_USER = "85000109" +WS_PASS = "160409" +FILETIME = 8 +PATH = APPLICATION_PATH "/../cache/infogreffe/" diff --git a/library/Infogreffe/infogreffe.wsdl b/library/Infogreffe/infogreffe.wsdl new file mode 100644 index 000000000..afa384728 --- /dev/null +++ b/library/Infogreffe/infogreffe.wsdl @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Service Soap Experian, Service Produit + + + + + diff --git a/public/themes/default/scripts/pieces.js b/public/themes/default/scripts/pieces.js new file mode 100644 index 000000000..e40fd0333 --- /dev/null +++ b/public/themes/default/scripts/pieces.js @@ -0,0 +1,109 @@ +$(document).ready(function(){ + + $('input[type=radio][name=method]').click(function() + { + var value = $('input[type=radio][name=method]:checked').val(); + $('input[type=radio][name=method]').each(function(){ + if($(this).val()!=value) { + $('#kbis'+$(this).val()).css('display', 'none'); + } + }); + if(value=='M' || value=='C') { + if($('#kbis'+value).css('display')=='none') { + $('#kbis'+value).css('display', 'inline'); + } + } else { + window.location.href = value; + } + }); + + $('input.type[type=checkbox]').click(function() + { + var nbCheck = 0; + $('input.type[type=checkbox]:checked').each(function() + { + nbCheck++; + }); + if( nbCheck>0 ) + { + $('#privilegesM').css('display', 'block'); + }else{ + $('#privilegesM').css('display', 'none'); + } + }); + + $('form[name=kbis]').submit(function(){ + var method = $('input[name=method]:checked').val(); + if(method=='C') + { + return true; + }else{ + var eMail = jQuery('input[name=email]', this).val(); + if(!checkEmail(eMail)){ + alert('Veuillez saisir une adresse email.'); + return false; + } else { return true; } + } + + }); + + $('form[name=privileges]').submit(function(){ + var eMail = jQuery('input[name=email]', this).val(); + if(!checkEmail(eMail)){ + alert('Veuillez saisir une adresse email.'); + return false; + } else { return true; } + }); + + $('.dialogcmd').live('click', function(){ + var href = $(this).attr('href'); + if (href!='#') { + var title = $(this).attr('title'); + var dialogOpts = { + bgiframe: true, + title: title, + width: 550, + height: 300, + modal: true, + open: function(event, ui) { + $(this).html('Chargement...'); + $(this).load(href); + }, + buttons: { + Valider: function() { + if ($('form[name=commande]').length){ + $('form[name=commande]').submit(); + $('#dialogcmd').dialog('option','buttons',''); + $('#dialogcmd > #output').html('Commande en cours, Veuillez patienter ...'); + } else { + $(this).dialog('close'); + } + }, + Annuler: function() { $(this).dialog('close'); } + }, + close: function() { $('#dialogcmd').remove(); } + }; + $('
').dialog(dialogOpts); + return false; + } + }); + + $('span.fichier > a').live('click', function(e){ + e.preventDefault(); + var url = $(this).attr('href'); + if (url!='#'){ + var objet = $(this).parent('span'); + objet.html('
Chargement du fichier...'); + $.post(url, function (data, textStatus){ + if( data=='' || data=='FALSE' || textStatus=='timeout' ) + { + data = '
Le chargement du fichier a échoué'; + } + objet.replaceWith(data); + }); + } + }); + + + +}); \ No newline at end of file diff --git a/public/themes/default/styles/pieces.css b/public/themes/default/styles/pieces.css new file mode 100644 index 000000000..dded301a4 --- /dev/null +++ b/public/themes/default/styles/pieces.css @@ -0,0 +1,56 @@ +.marge {margin-left:30px;} +#identite { margin-left:30px; } +form { } +form em { color:#FF0000;} +fieldset {border:0; margin:0; padding:0;} +fieldset legend{ padding:0 0 0 10px;} +.fieldgrp{clear:both; margin:0 0 .5em 30px; overflow:hidden;} +.fieldgrp:after{content:"."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } +.fieldgrp label{font-weight:bold; margin-left:30px; width:80px; clear:both; padding:0 10px 0 0; line-height:22px;_padding-top:3px; float:left; display:block; font-size:108%;} +.fieldgrp label span{font-weight:normal;} +.fieldgrp label abbr{color:#4B911C; font-size:120%; vertical-align:middle;} +.field { float:left; padding:0 10px 0 0; line-height:22px; _padding-top:3px;} +.field .longfield{width:215px;} +.field .longfield-select{width:220px;} +.field .smallfield{width:95px;} +.field .medfield{width:110px;} +.field span { display:block; } +.field input, .field select{ font-size:110%; margin:2px 0; } +.field input[type="radio"] { margin:0 5px 0 5px; border:0; } +input[type="checkbox"] { margin:0 5px 0 5px; border:0; } +.submit {text-align:center;} +.noborder {border:none;} +#message {margin:10px 0 10px 30px;} + + +table.greffe { + width:90%; + margin:5px 10px; + border-collapse:collapse; +} + +table.greffe th { + border:1px solid #000000; + padding:8px 4px 8px 4px; + background-color:#eeeeee; + text-align: center; +} + +table.greffe .date { text-align: center; } + +table.greffe td.date { + background-color:#2b2b8b; + color:white; + font-weight:bold; +} + +table.greffe td { + border:1px solid #000000; + padding:8px 4px 8px 4px; +} + +table.greffe td.decision { width:50%; } + +table.greffe td.type { + text-align:center; +} \ No newline at end of file