getRequest(); $this->siret = $request->getParam('siret'); $this->id = $request->getParam('id', 0); $this->entrep = new SessionEntreprise($this->siret, $this->id); } public function indexAction(){} /** * Commande de status association */ public function cmdassociationAction() { $user = new Scores_Utilisateur(); $request = $this->getRequest(); $email = $request->getParam('email', ''); if(!empty($email)) { $erreur = false; $c = Zend_Registry::get('config'); $fp=fopen(realpath($c->profil->path->data).'/log/commande_asso.csv', 'a'); fwrite($fp, date('Y/m/d H:i:s').";$siren;".$email.';'.$login.';'.$user->getEmail().';'.$user->getIpAddress()."\n"); fclose($fp); $siren = substr($this->siret, 0, 9); $infoAsso = new stdClass(); $infoAsso->siren = $siren; $infoAsso->waldec = ''; $infoAsso->idEntreprise = $this->id; $infoAsso->raisonSociale = $this->entrep->getRaisonSociale(); $infoDemande = new stdClass(); $infoDemande->reference = $request->getParam('reference'); $infoDemande->email = $email; $infoDemande->tel = $request->getParam('tel'); $infoDemande->fax = ''; $infoDemande->nom = ''; $infoDemande->service = ''; $infoDemande->societe = ''; $infoDemande->adresse = ''; $infoDemande->cp = ''; $infoDemande->ville = ''; $ws = new WsScores(); $reponse = $ws->setCmdAsso($infoAsso, $infoDemande); //@todo : vérfier les logs de facturation Zend_Registry::get('firebug')->info($reponse); $annee = substr($reponse->commande->dateCommande,0,4); $mois = substr($reponse->commande->dateCommande,4,2); $jour = substr($reponse->commande->dateCommande,6,2); $heure = substr($reponse->commande->dateCommande,8,2); $minutes = substr($reponse->commande->dateCommande,10,2); $ref = $reponse->commande->refCmd; if( isset($ref) && !empty($ref) ) { $message = 'Votre demande à été prise en compte le '.$jour.'/'.$mois.'/'.$annee.' à '.$heure.' h '.$minutes.' sous la référence '.$ref.'.'; } else { $message = 'Une erreur s\'est produite lors du passage de votre commande.'; } } else { $message="ERREUR : Veuillez saisir une adresse email valide pour la commande de pièces."; } $this->view->assign('message', $message); $this->view->assign('siren', substr($this->siret, 0,9)); $this->view->assign('siret', $this->siret); $this->view->assign('id', $this->id); $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); } /** * Affichage liste d'actes infogreffe */ public function actesAction() { $this->view->headScript()->appendFile('/themes/default/scripts/pieces.js', 'text/javascript'); $user = new Scores_Utilisateur(); //Catégorie Juridique $cj = $this->entrep->getFormeJuridique(); if( in_array($cj, $this->association_cj) ) { $this->_forward('associationactes'); } $request = $this->getRequest(); $siren = substr($this->siret,0,9); $vecteur = 'XL'; $ref = ''; //Récupération de la liste des infos du RNCS $ws = new WsScores(); $rncsDepots = $ws->getListeDepots($siren); //Affichage des actes disponible $infogreffe = new Infogreffe(); $reponse = $infogreffe->getGreffeActes($siren, $vecteur, $ref); /* * Construire la réponse pour affichage * Date, Type, Décisions, */ $infosActes = array(); if (is_array($reponse['result']) && count($reponse['result'])>0) { $items = $reponse['result']; //Traitement dernier statut à jour if(array_key_exists(0, $items)) { $acteS = $items[0]['actes'][0]; //Commande enregistré dans la bdd et fichier existe $lienCommande = ''; $checkFile = false; if( $user->checkModeEdition() ) { $lib = 'Voir le dernier ficher dans le système.'; $commandes = new Application_Model_Commandes(); $rowset = $commandes->select('*') ->where('siren = ?', $siren) ->order('dateCommande DESC'); $rows = $commandes->fetchAll($rowset); } else { $lib = 'Télécharger votre dernière commande.'; $commandes = new Application_Model_Commandes(); $rowset = $commandes->select('*') ->where('siren = ?', $siren) ->where('login = ?', $user->getLogin()) ->order('dateCommande DESC'); $rows = $commandes->fetchAll($rowset); } $rows = $commandes->fetchAll($rowset); $nbCommandes = count($rows); if ($nbCommandes>0) { foreach($rows as $commande) { if(substr($commande->refDocument, 0, 3) == 'ST-') { $ref = trim($commande->refDocument); $c = Zend_Registry::get('config'); $refFile = realpath($c->profil->path->data).'/pdf'. '/acte-'.$siren.'-'.trim($commande->refDocument).'.pdf'; $checkFile = true; break; } } } if( $checkFile && file_exists($refFile) ) { $lienCommande = '
'. ''.$lib.''; } //Génération du lien de commande suivant le mode de diffusion switch($acteS['mode']) { case 'C': if( $user->checkPerm('actes') ) { $title = 'Commander le document correspondant'; $href = $this->view->url(array( 'controller' => 'pieces', 'action' => 'statuts', 'mode' => 'C', 'siret' => $siren, 'ref' => $acteS['ref'], )); } else { $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; $href = '#'; } break; } $infosStatut['mode'] = $acteS['mode']; $infosStatut['lib'] = $acteS['type_lib']; $infosStatut['ref'] = $acteS['ref']; $infosStatut['href'] = $href; $infosStatut['title'] = $title; $infosStatut['decision'] = 'Le dernier statut à jour'; $infosActes[] = $infosStatut; //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'], 'info' => urlencode(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'], 'info' => urlencode(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 = ''; $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'; } $data.= '
'; if(!empty($acte['decision'])) { $data.= $acte['decision']; } if ($rncsDepots!==false) { if (count($rncsDepots->item)>0) { foreach($rncsDepots->item as $d) { $date = WDate::dateT('Y-m-d', 'd/m/Y', $d->DateDepot); if ($date==$depot['date_depot']){ $data.= '
- '.$d->LibDepot; } } } } $infosActe['decision'] = $data; } $infosActes[] = $infosActe; } // Fin acte } // Fin depot } else { $this->view->assign('ErreurMessage', $reponse['error']['errNum'].' - '.$reponse['error']['errMsg']); } $this->view->assign('ModeEdition', $user->checkModeEdition()); $this->view->assign('InfosActes', $infosActes); $this->view->assign('siren', $siren); $this->view->assign('siret', $this->siret); $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); $this->view->assign('surveillance', $user->checkPerm('survbilan')); } /** * Affichage liste de bilans infogreffe */ public function bilansAction() { $user = new Scores_Utilisateur(); $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('associationbilans'); } else { $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); $infosBilans = array(); if (is_array($reponse['result']) && 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' => urlencode(serialize($infos)), )); $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', 'info' => urlencode(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', 'info' => urlencode(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; } } else { $this->view->assign('ErreurMessage', $reponse['error']['errNum'].' - '.$reponse['error']['errMsg']); } $this->view->assign('ModeEdition', $user->checkModeEdition()); $this->view->assign('InfosBilans', $infosBilans); $this->view->assign('siren', $siren); $this->view->assign('siret', $this->siret); $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); $this->view->assign('surveillance', $user->checkPerm('survactes')); } } /** * Affichage formulaire de commande courrier S&D */ public function cmdcourrierAction() { //Désactivation affichage $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $dejaCommande = $request->getParam('dejaCommande', false); $noemail = $request->getParam('noemail', false); $sameLogin = $request->getParam('sameLogin', false); $typeCommande = $request->getParam('typeCommande', ''); $idCommande = $request->getParam('idCommande', ''); Zend_Registry::get('firebug')->info('cmdcourrier'); if(!$dejaCommande || ($dejaCommande && $noemail) ) { $user = new Scores_Utilisateur(); $siren = $request->getParam('siret', 0); $info = $request->getParam('info', 0); $ref = $request->getParam('ref', ''); $vue = $request->getParam('vue', ''); $this->view->assign('siren', $siren); $this->view->assign('info', $info); $this->view->assign('typeCommande', $typeCommande); $this->view->assign('idCommande', $idCommande); $this->view->assign('ref', $ref); $this->view->assign('vue', $vue); $this->view->assign('email', $user->getEmail()); $this->renderScript('pieces/cmdcourrier.phtml'); } elseif(!$noemail && $dejaCommande && $sameLogin) { $this->view->assign('typeCommande', $typeCommande); $this->view->assign('idCommande', $idCommande); $this->renderScript('pieces/cmdcourrier-cmd1.phtml'); } elseif(!$noemail && $dejaCommande && !$sameLogin) { $this->renderScript('pieces/cmdcourrier-cmd2.phtml'); } } public function cmdfacticeAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $ref = $request->getParam('ref', ''); $siren = substr($this->siret,0,9); $user = new Scores_Utilisateur(); $tabCommande = array( 'idUser' => $user->getId(), 'emailCommande' => '', 'login' => $user->getLogin(), 'siren' => $siren, 'refDocument' => $ref, 'libDocument' => '', 'typeCommande' => 'G', 'dateCommande' => date('YmdHis'), 'statutCommande' => 0, ); //Enregistrement dans la bdd des informations de la commande $commande = new Application_Model_Commandes(); $idCommande = $commande->insert($tabCommande); echo "Commande factice sous le numéro : G".$idCommande; } /** * Enregistrement d'une commande de pièces par courrier */ public function sauvcmdAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $info = $request->getParam('info', ''); $email = $request->getParam('emailCommande', ''); $idCommande = $request->getParam('idCommande', ''); $type = $request->getParam('type', ''); $vue = $request->getParam('vue', ''); $ref = $request->getParam('ref', ''); $siren = substr($this->siret,0,9); $ws = new WsScores(); $info = !empty($info) ? unserialize(urldecode($_REQUEST['info'])) : $info = false; $lib = empty($info['decision']) ? '' : $info['decision']; if (!empty($email)) { $user = new Scores_Utilisateur(); $login = $user->getLogin(); $ip = $user->getIpAddress(); $c = Zend_Registry::get('config'); $fp = fopen($c->profil->path->data.'/log/commande_greffe.csv', 'a'); fwrite($fp,date('Y/m/d H:i:s').";$siren;".$ref.';'.$login.';'.$email.';'.$ip."\n"); fclose($fp); $tabCommande = array( 'idUser' => $user->getId(), 'emailCommande' => $email, 'login' => $login, 'siren' => $siren, 'refDocument' => $ref, 'libDocument' => $lib, 'typeCommande' => $type, 'dateCommande' => date('YmdHis') ); if (APPLICATION_ENV != 'development') { //Enregistrement dans la bdd des informations de la commande $commande = new Application_Model_Commandes(); $idCommande = $commande->insert($tabCommande); //Suppression fichier de vérouillage $c = Zend_Registry::get('config'); $lockFile = $c->profil->path->cache.'/'.$siren.'-'.$ref.'.txt'; if (file_exists($lockFile)) { unlink($lockFile); } if($type=='G') { $infogreffe = new Infogreffe(); //Commande switch($vue) { case 'actes': $reponse = $infogreffe->getGreffeActes($siren, 'C', $ref, $idCommande); break; case 'bilans': $reponse = $infogreffe->getGreffeBilans($siren, 'C', $ref, $idCommande); break; case 'statuts': $reponse = $infogreffe->getGreffeStatut($siren, 'C', $ref, $idCommande); break; } } if( isset($reponse) && !empty($reponse['error']) && $reponse['error']['errNum']!=17 ) { $message = $reponse['error']['errNum'].' - '.$reponse['error']['errMsg']; $ws->setLog('greffe_'.$vue, $siren, 0, 'Erreur '.$reponse['error']['errNum']); } else { $ws->setLog('greffe_'.$vue, $siren, 0, $ref.'/'.$type.$idCommande); $commande->update(array('statutCommande'=>0), "idCommande=$idCommande"); $message = 'Votre commande a été enregistré le '. date('d').'/'.date('m').'/'.date('Y'). ' à '.date('G').' h '.date('i'). ' sous la référence '.$type.$idCommande; //Envoi mail de commande courrier if($type=='C') { require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('support'); $mail->setSubject('[COMMANDE PIECES] - '.'COMMANDE DE '.strtoupper($vue)); $mail->setBodyTexte( 'COMMANDE DE '.strtoupper($vue). ' en courrier manuel
'.EOL. 'Ref Scores et Décision : '.$ref.EOL. 'pour login '.$login.EOL ); $mail->send(); } } } else { print_r($tabCommande); } } else { $message = 'Votre commande n\'a pas été prise en compte.'. 'Vous n\'avez pas saisie d\'adresse email'; } $this->view->assign('message', $message); $this->view->assign('siret', $this->siret); $this->view->assign('siren', $this->siren); $session = new SessionEntreprise($this->siret, $this->id); $this->view->assign('raisonSociale', $session->getRaisonSociale()); $user = new Scores_Utilisateur(); $this->view->assign('surveillance', $user->checkPerm('survactes')); } public function statutsAction() { $this->_helper->layout()->disableLayout(); $request = $this->getRequest(); $dejaCommande = $request->getParam('dejaCommande', false); $noemail = $request->getParam('noemail', false); $sameLogin = $request->getParam('sameLogin', false); $typeCommande = $request->getParam('typeCommande', ''); $idCommande = $request->getParam('idCommande', ''); $user = new Scores_Utilisateur(); $siren = $request->getParam('siret', 0); $info = $request->getParam('info', 0); $ref = $request->getParam('ref', ''); $this->view->assign('siren', $siren); $this->view->assign('info', $info); $this->view->assign('typeCommande', $typeCommande); $this->view->assign('idCommande', $idCommande); $this->view->assign('ref', $ref); $this->view->assign('vue', 'statuts'); $this->view->assign('email', $user->getEmail()); } /** * Commande de bilan */ public function bilanAction() { $user = new Scores_Utilisateur(); if (!$user->checkPerm('ACTES')){ $this->_forward('perms', 'error'); } //Désactivation affichage $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $vecteur = $request->getParam('mode'); $info = $request->getParam('info'); $ref = $request->getParam('ref'); $siren = substr($this->siret,0,9); $ws = new WsScores(); switch($vecteur) { //Traitement courrier manuel par S&D case 'courrier': $dejaCommande = false; $noemail = false; $sameLogin = false; $idCommande = 0; //Vérification des commandes if (preg_match('/^([0-9]{4})[_sociaux-|_-]/', $ref, $matches)) { $searchRef = '^'.$matches[1].'[_-|_sociaux-]'; } elseif (preg_match('/^([0-9]{4})_consolide-/', $ref, $matches)) { $searchRef = '^'.$matches[1].'_consolide-'; } else { $searchRef = $ref; } $commandes = new Application_Model_Commandes(); $rowset = $commandes->select('idCommande, login, emailCommande, dateCommande') ->where("siren=$siren AND refDocument='$searchRef'"); $rows = $commandes->fetchAll($rowset); if (count($rows)!=0) { $dejaCommande = true; if ($rows[0]->login==$user->getLogin()) { $dateCommande = WDate::dateT('Y-m-d','d/m/Y',$rows[0]->dateCommande); $idCommande = $rows[0]['idCommande']; if(empty($rows[0]->emailCommande)) $noemail = true; $sameLogin = true; } } $params = array( 'idCommande' => $idCommande, 'dejaCommande' => $dejaCommande, 'noemail' => $noemail, 'sameLogin' => $sameLogin, 'siren' => $siren, 'info' => $info, 'vue' => 'bilans', ); $this->_forward('cmdcourrier', 'pieces', null, $params); break; //Téléchargement du fichier déjà sur le serveur case 'fichier': $ws->setLog('greffe_bilans', $siren, 0, $ref); $info = unserialize($info); require_once 'Infogreffe/Infogreffe.php'; $infogreffe = new Infogreffe(); $path = $infogreffe->bilanPath($ref); $file = $infogreffe->bilanFilename($siren, $ref); $href = '/fichier/pdf/'.$file; echo '
Ouvrir le bilan millésime '.$info['type'].''; break; //Commande en courrier chez infogreffe case 'C': $dejaCommande = false; $noemail = false; $sameLogin = false; $idCommande = 0; $commandes = new Application_Model_Commandes(); $rowset = $commandes->select('idCommande, login, emailCommande, dateCommande') ->where("siren=$siren AND refDocument='$ref' AND statutCommande!=9"); $rows = $commandes->fetchAll($rowset); if (count($rows)!=0) { $dejaCommande = true; if ($rows[0]->login==$user->getLogin()) { $dateCommande = WDate::dateT('Y-m-d','d/m/Y',$rows[0]->dateCommande); $idCommande = $rows[0]->idCommande; if(empty($rows[0]->emailCommande)) $noemail = true; $sameLogin = true; } } $params = array( 'idCommande' => $idCommande, 'dejaCommande' => $dejaCommande, 'noemail' => $noemail, 'sameLogin' => $sameLogin, 'siren' => $siren, 'info' => $info, 'vue' => 'bilans', ); $this->_forward('cmdcourrier', 'pieces', null, $params); break; //Commande en téléchargement chez infogreffe case 'T': //Vérification que le fichier ne soit pas en erreur $erreur = new Application_Model_CommandesErreur(); $sql = $erreur->select() ->from($erreur, array('url', 'dateCommande')) ->where("siren='$siren' AND type='bilan' AND ref='$ref' AND erreur!=''"); $repErreur = $erreur->fetchAll($sql)->toArray(); if (count($repErreur)>0){ //Téléchagement require_once 'Infogreffe/Infogreffe.php'; $infogreffe = new Infogreffe(); $path = $infogreffe->bilanPath($ref); $fichier = $infogreffe->bilanFilename($siren, $ref); if ($infogreffe->dl($path.$fichier, $repErreur[0]['url'], false)) { $erreur->update(array('erreur'=>''), "siren='$siren' AND type='bilan' AND ref='$ref'"); $ws->setLog('greffe_bilans', $siren, 0, $ref); echo '
Ouvrir le fichier '.$info['type_lib'].' '; } else { echo '
Impossible de télécharger le fichier auprès de notre partenaire.'; } } else { require_once 'Infogreffe/Infogreffe.php'; $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!='') { $ws->setLog('greffe_bilans', $siren, 0, 'Erreur '.$reponse['error']['errNum']); echo '
Erreur : '.$error; } else { foreach($items as $item) { if($item['url_acces']!==false) { $ws->setLog('greffe_bilans', $siren, 0, $ref); $path = $infogreffe->bilanPath($ref); $href = '/fichier/pdf/'.$item['url_acces']; echo '
Ouvrir le bilan millésime '.$item['millesime'].''; } else { $ws->setLog('greffe_bilans', $siren, 0, 'Erreur telechargement '.$ref); $message = '
Impossible de télécharger le fichier auprès de notre partenaire.'; //Envoi Mail avec reférence erreur require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('supportdev'); $mail->addToKey('supportdev'); $sujet = "[ERREUR TELECHARGEMENT INFOGREFFE] - ".date('d')."/".date('m')."/".date('Y'); $mail->setSubject($sujet); $emailTxt = $sujet.$message; $emailTxt.= '
'.print_r($reponse, 1); $mail->setBodyHtml($emailTxt); $mail->send(); echo $message; } } } } break; } } /** * Commande d'acte */ public function acteAction() { $user = new Scores_Utilisateur(); if (!$user->checkPerm('ACTES')){ $this->_forward('perms', 'error'); } //Désactivation affichage $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $vecteur = $request->getParam('mode'); $info = $request->getParam('info'); $ref = $request->getParam('ref'); $siren = substr($this->siret,0,9); $ws = new WsScores(); switch($vecteur) { //Commande courrier manuel S&D case 'courrier': $dejaCommande = false; $noemail = false; $sameLogin = false; $idCommande = 0; //Vérification des commandes if (preg_match('/^([0-9]{4})[_sociaux-|_-]/', $ref, $matches)) { $searchRef = '^'.$matches[1].'[_-|_sociaux-]'; } elseif (preg_match('/^([0-9]{4})_consolide-/', $ref, $matches)) { $searchRef = '^'.$matches[1].'_consolide-'; } else { $searchRef = $ref; } $commandes = new Application_Model_Commandes(); $rowset = $commandes->select('idCommande, login, emailCommande, dateCommande') ->where("siren=$siren AND refDocument='$searchRef'"); $rows = $commandes->fetchAll($rowset); if (count($rows)!=0) { $dejaCommande = true; if ($rows[0]['login']==$user->getLogin()) { $dateCommande = WDate::dateT('Y-m-d','d/m/Y',$rows[0]['dateCommande']); $idCommande = $rows[0]->idCommande; if(empty($rows[0]->emailCommande)) $noemail = true; $sameLogin = true; } } $params = array( 'idCommande' => $idCommande, 'dejaCommande' => $dejaCommande, 'noemail' => $noemail, 'sameLogin' => $sameLogin, 'siren' => $siren, 'info' => $info, 'vue' => 'actes', ); $this->_forward('cmdcourrier', 'pieces', null, $params); break; // Téléchargement du fichier sur le serveur case 'fichier': $ws->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; //Commande courrier infogreffe case 'C': $dejaCommande = false; $noemail = false; $sameLogin = false; $idCommande = 0; $commandes = new Application_Model_Commandes(); $rowset = $commandes->select('idCommande, login, emailCommande, dateCommande') ->where("siren=$siren AND refDocument='$ref' AND statutCommande!=9"); $rows = $commandes->fetchAll($rowset); if (count($rows)!=0) { $dejaCommande = true; if ($rows[0]->login==$user->getLogin()) { $dateCommande = WDate::dateT('Y-m-d','d/m/Y',$rows[0]->dateCommande); $idCommande = $rows[0]->idCommande; if(empty($rows[0]->emailCommande)) $noemail = true; $sameLogin = true; } } $params = array( 'idCommande' => $idCommande, 'dejaCommande' => $dejaCommande, 'noemail' => $noemail, 'sameLogin' => $sameLogin, 'siren' => $siren, 'info' => $info, 'vue' => 'actes', ); $this->_forward('cmdcourrier', 'pieces', null, $params); break; //Commande fichier infogreffe case 'T': //Vérification que le fichier ne soit pas en erreur $erreur = new Application_Model_CommandesErreur(); $sql = $erreur->select() ->from($erreur, array('url', 'dateCommande')) ->where("siren='$siren' AND type='acte' AND ref='$ref' AND erreur!=''"); $repErreur = $erreur->fetchAll($sql)->toArray(); if (count($repErreur)>0){ //Téléchagement $fichier = 'acte-'.$siren.'-'.$ref.'.pdf'; $infogreffe = new Infogreffe(); require_once 'Infogreffe/Infogreffe.php'; $infogreffe = new Infogreffe(); $path = $infogreffe->actePath($ref); $fichier = $infogreffe->acteFilename($siren, $ref); if ($infogreffe->dl($fichier, $repErreur[0]['url'], false)) { $erreur->update(array('erreur'=>''), "siren='$siren' AND type='acte' AND ref='$ref'"); $ws->setLog('greffe_actes', $siren, 0, $ref); echo '
Ouvrir le fichier '.$info['type_lib'].' '; } else { echo '
Impossible de télécharger le fichier auprès de notre partenaire.'; } } else { $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!='') { $ws->setLog('greffe_actes', $siren, 0, 'Erreur '.$reponse['error']['errNum']); echo '
Erreur : '.$error; } else { foreach($items as $item) { Zend_Registry::get('firebug')->info($items); if($item['url_acces']!==false) { Zend_Registry::get('firebug')->info($item['url_acces']); $ws->setLog('greffe_actes', $siren, 0, $ref); $href = '/fichier/pdf/'.$item['url_acces']; echo '
Ouvrir le fichier '.$item['type_acte_libelle'].' '; } else { $ws->setLog('greffe_actes', $siren, 0, 'Erreur telechargement '.$ref); $message = '
Impossible de télécharger le fichier '.$item['type_acte_libelle'].' auprès de notre partenaire.'; //Enregistrement de l'erreur dans la bdd //Envoi Mail avec reférence erreur require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('supportdev'); $mail->addToKey('supportdev'); $sujet = "[ERREUR TELECHARGEMENT INFOGREFFE] - ".date('d')."/".date('m')."/".date('Y'); $mail->setSubject($sujet); $emailTxt = $sujet.$message; $emailTxt.= '
'.print_r($reponse, 1); $mail->setBodyHtml($emailTxt); $mail->send(); echo $message; } } } } break; } } /** * Commande de pièces, kbis, privileges, nantissements */ public function commandeAction() { $request = $this->getRequest(); $this->view->headScript()->appendFile('/themes/default/scripts/pieces.js', 'text/javascript'); $siren = substr($this->siret, 0, 9); $session = new SessionEntreprise($this->siret, $this->id); $user = new Scores_Utilisateur(); $permKbis = false; $kbisErrCJ = false; $kbisErrDEP = false; if ($user->checkPerm('kbis')) { $permKbis = true; //Vérification que le kbis est disponible if ( substr($session->getFormeJuridique(),0,1) == 7 || substr($session->getFormeJuridique(),0,1) == 8 || substr($session->getFormeJuridique(),0,1) == 9 || in_array($session->getFormeJuridique(), array_merge( array(1300,1500,1600,1700,1800,1900), $this->association_cj) ) ){ $kbisErrCJ = true; } //=> Département $dep = substr($session->getCodeCommune(),0,2); if ( in_array($dep, array('00','57','67','68','97','98')) ) { $kbisErrDEP = true; } } $permPriv = false; if ($user->checkPerm('privileges')){ $permPriv = true; } $permSurvPriv = false; if ($user->checkPerm('survpriv')){ $permSurvPriv = true; } $message = ''; //Validation du formulaire if ($request->isPost() && $request->getParam('op')=='kbis') { $ref = $request->getParam('ref'); $method = $request->getParam('method'); switch($method) { case 'M': $email = $request->getParam('emailKbisM', ''); //Vérification des champs if (!empty($email)) { //Envoi du mail require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('support'); $mail->setSubject('[COMMANDE PIECES] - KBIS par email'); $mail->setBodyTexte( 'COMMANDE DE PIECES - Demande de kbis par email
'.EOL. 'Demande pour recevoir le KBIS de SIREN :'. ''. $this->siret.'
'.EOL. 'pour login '.$user->getLogin().'('.$email.')
'.EOL. 'Référence : '.$ref ); $mail->send(); //Enregistrement dans la bdd $commandesKbis = new Application_Model_CommandesKbis(); $data = array( 'idUser' => $user->getId(), 'login' => $user->getLogin(), 'email' => $email, 'societe' => '', 'nom' => '', 'adresse' => '', 'cp' => '', 'ville' => '', 'siren' => substr($this->siret,0,9), 'raisonSociale' => $this->entrep->getRaisonSociale(), 'type' => 'M', 'dateCommande' => date('Y-m-d H:i:s'), ); $commandesKbis->insert($data); $message = 'Votre demande de reception de Kbis par email a été prise en compte'; $ws = new WsScores(); $ws->setLog('kbis', $this->siret, 0, 'mail'); } else { $message = 'Erreur : adresse email non renseignée.'; $this->view->assign('ref', $ref); $this->view->assign('method', $method); $this->view->assign('emailKbisM', $email); } break; case 'C': $email = $ref = $request->getParam('emailKbisC', ''); //Vérification des champs $fields = array('societe', 'nom', 'prenom', 'adresse', 'cp', 'ville'); $params = $request->getParams(); $error = false; foreach($fields as $field) { if(empty($params[$field])) $error = true; } if(!$error) { //Envoi du mail require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('support'); $mail->setSubject('[COMMANDE PIECES] - KBIS par courrier'); $mail->setBodyTexte( 'COMMANDE DE PIECES - Demande de kbis par courrier'.EOL. 'Demande pour recevoir le kbis de SIREN : '. ''. $this->siret.'
'.EOL. 'pour login '.$user->getLogin(). '('.$email.')'.'
'.EOL. 'Societe :'.$params['societe'].'
'.EOL. 'Nom : '.$params['nom'].'
'.EOL. 'Prenom : '.$params['prenom'].'
'.EOL. 'Adresse : '.$params['adresse'].'
'.EOL. 'CP : '.$params['cp'].'
'.EOL. 'Ville : '.$params['ville'] ); $mail->send(); //Enregistrement dans la bdd $commandesKbis = new Application_Model_CommandesKbis(); $data = array( 'idUser' => $user->getId(), 'login' => $user->getLogin(), 'email' => $email, 'societe' => $params['societe'], 'nom' => $params['nom'].' '.$$params['prenom'], 'adresse' => $params['adresse'], 'cp' => $params['cp'], 'ville' => $params['ville'], 'siren' => substr($this->siret,0,9), 'raisonSociale' => $this->entrep->getRaisonSociale(), 'type' => 'C', 'dateCommande' => date('Y-m-d H:i:s'), ); $commandesKbis->insert($data); $message = 'Votre commande à été prise en compte, vous recevrez ce document sous 3/5 jours'; $ws = new WsScores(); $ws->setLog('kbis', $this->siret, 0, 'courrier'); } else { $message = 'Erreur : Tous les champs doivent être renseigner.'; $this->view->assign('emailKbisC', $email); $this->view->assign('method', $method); $this->view->assign('societe', $params['societe']); $this->view->assign('nom', $params['nom']); $this->view->assign('prenom', $params['prenom']); $this->view->assign('adresse', $params['adresse']); $this->view->assign('cp', $params['cp']); $this->view->assign('ville', $params['ville']); } break; } $this->view->assign('message', $message); } if ($request->isPost() && $request->getParam('op')=='privileges') { $ref = $request->getParam('ref'); $privileges = $request->getParam('privileges'); $email = $request->getParam('email', ''); if (!empty($email)) { if ( in_array('SprivSurv',$privileges) ) { $ws = new WsScores(); $ws->setSurveillance($this->siret, $email, $ref, 'privileges'); $privilegesLog = join('-', $privileges); } $key = array_search('SprivSurv', $privileges); if ($key!==FALSE) unset($privileges[$key]); if (count($privileges)>0) { $privilegesJ = join(', ', $privileges); $privilegesLog = join('-', $privileges); require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('support'); $mail->setSubject('[COMMANDE PIECES] - PRIVILEGES par email'); $mail->setBodyTexte( 'COMMANDE DE PRIVILEGES - par email
'.EOL. 'Demande pour recevoir ('.$privilegesJ.') pour SIREN : '. ''. $this->siret.'
'.EOL. 'pour login '.$user->getLogin().'('.$email.')
'.EOL. 'Référence : '.$ref ); $mail->send(); } $message = 'Votre commande a bien été prise en compte, vous recevrez ces documents sur votre e-mail.'; $ws = new WsScores(); $ws->setLog('privileges', $this->siret, 0, 'mail:'.$privilegesLog); } else { $message = 'Erreur : adresse email non renseignée.'; $this->view->assign('ref', $ref); $this->view->assign('privileges', $privileges); $this->view->assign('email', $email); } $this->view->assign('message', $message); } $this->view->assign('KbisErreurCJ', $kbisErrCJ); $this->view->assign('KbisErreurDEP', $kbisErrDEP); $this->view->assign('permKbis', $permKbis); $this->view->assign('permKbis', $permKbis); $this->view->assign('permPriv', $permPriv); $this->view->assign('permSurvPriv', $permSurvPriv); $this->view->assign('user', $user); $this->view->assign('siren', $siren); $this->view->assign('siret', $this->siret); $this->view->assign('raisonSociale', $session->getRaisonSociale()); } /** * Affichage status association */ public function associationactesAction() { $user = new Scores_Utilisateur(); $siren = substr($this->siret, 0,9); $c = Zend_Registry::get('config'); $path = $c->profil->path->data.'/association/actes'; $actes = array(); if ( !empty($siren) || intval($siren)==0 ){ foreach (glob("$path/ST-".$siren."-*.pdf") as $filename) { preg_match('/ST-([0-9]{9})-([0-9]{8})\.pdf$/', $filename, $matches); $date = $matches[2]; if ( $user->checkPerm('actes') ) { $href = $this->view->url(array( 'controller'=>'pieces', 'action'=>'associationacte', 'fichier'=> basename($filename), )); $title = 'Télécharger le document correspondant'; } else { $href = '#'; $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; } $actes[$date] = array( 'date' => substr($date,6,2).'/'.substr($date,4,2).'/'.substr($date,0,4), 'type' => 'Statut', 'href' => $href, 'descision' => '', ); } } $session = new SessionEntreprise($this->siret); if (substr($session->AutreId,0.1)=='W'){ foreach (glob("$path/ST-".$session->AutreId."-*.pdf") as $filename) { preg_match('/ST-(.*)-([0-9]{8})\.pdf$/', $filename, $matches); $date = $matches[2]; $actes[$date] = array( 'date' => substr($date,6,2).'/'.substr($date,4,2).'/'.substr($date,0,4), 'type' => 'Statut', 'fichier' => $filename, 'descision' => '', ); } } krsort($actes); $this->view->assign('actes', $actes); $this->view->assign('ModeEdition', $user->checkModeEdition()); $this->view->assign('email', $user->getEmail()); $this->view->assign('siren', $siren); $this->view->assign('siret', $this->siret); $this->view->assign('id', $this->id); $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); } /** * Enter description here ... */ public function associationacteAction() { //Désactivation affichage $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $siren = substr($this->siret, 0,9); $request = $this->getRequest(); $file = $request->getParam('fichier'); $ws = new WsScores(); $ws->setLog('greffe_actes', $siren, 0, 'Acte association'); $href = $this->view->url(array( 'controller'=>'fichier', 'action'=>'pdfassociation', 'type'=>'actes', 'fichier'=>$file, )); echo '
Cliquez ici pour ouvrir le fichier'; exit; } /** * Enter description here ... */ public function associationbilansAction() { $user = new Scores_Utilisateur(); $siren = substr($this->siret,0,9); $bilans = array(); if ( !empty($siren) || intval($siren)==0 ){ require_once 'Scores/WsScores.php'; $ws = new WsScores(); $reponse = $ws->getPiecesBilans($siren); $listBilans = $reponse->result->item; Zend_Registry::get('firebug')->info($listBilans); $decision = ''; foreach ( $listBilans as $item) { if ( $user->checkPerm('actes') ) { if ( !empty($item->File) ) { $href = $this->view->url(array( 'controller'=>'telechargement', 'action'=>'bilan', 'siren'=> $siren, 'dateCloture'=> $item->DateCloture, 'reference'=> $item->File, ), null, true); $title = 'Télécharger le document correspondant'; } else { $href = '#'; $title = 'Document inexistant.'; } } else { $href = '#'; $title = 'Vous n\'avez pas les droits nécessaires pour commander le document correspondant.'; } $decision = $item->Type; if ( !empty($item->NumberOfPages) ) { $decision.= ', '.$item->NumberOfPages.' pages'; } $bilans[] = array( 'date' => substr($item->DateCloture,6,2).'/'.substr($item->DateCloture,4,2).'/'.substr($item->DateCloture,0,4), 'type' => 'Bilan '.substr($item->DateCloture,0,4), 'href' => $href, 'title' => $title, 'decision' => $decision, ); } } $this->view->assign('bilans', $bilans); $this->view->assign('ModeEdition', $user->checkModeEdition()); $this->view->assign('siren', substr($this->siret, 0,9)); $this->view->assign('siret', $this->siret); $this->view->assign('id', $this->id); $this->view->assign('raisonSociale', $this->entrep->getRaisonSociale()); } /** * Enter description here ... */ public function associationbilanAction() { //Désactivation affichage $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $siren = $request->getParam('siren'); $diffusion = $request->getParam('diffusion'); $dateCloture = $request->getParam('dateCloture'); $reference = $request->getParam('reference'); //Récupération du l'URL $ws = new WsScores(); $url = $ws->getPiecesBilan($siren, $diffusion, $dateCloture, $reference); //Téléchargement du fichier if( $url !== false) { echo '
Cliquez ici pour ouvrir le fichier'; } else { echo '
Fichier indisponible !'; } } /** * Gestion téléchargement des kbis */ public function kbisAction() { //On bascule soit vers kbispasserelle ou vers kbis infogreffe $this->_forward('kbispasserelle', 'pieces', null, $this->getRequest()->getParams()); } /** * Téléchargement de kbis par la passerelle SD */ public function kbispasserelleAction() { $request = $this->getRequest(); $params = $request->getParams(); $user = new Scores_Utilisateur(); $session = new SessionEntreprise($params['siret']); $this->view->assign('raisonSociale', $session->getRaisonSociale()); $this->view->assign('siren', $params['siret']); $this->view->assign('email', $user->getEmail()); $this->view->assign('login', $user->getLogin()); //Mail if (isset($params['op']) && $params['op']=='mailkbis') { if(!empty($params['email'])) { require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('support'); $mail->setSubject('[COMMANDE PIECES] - KBIS par email après essai(s) de téléchargement'); $mail->setBodyTexte( 'COMMANDE DE PIECES - Demande de kbis par email après essai(s) de téléchargement
'.EOL. 'Demande pour recevoir le kbis de SIREN : '. ''. $this->siret.'
'.EOL. 'pour login '.$user->getLogin().'('.$params['email'].')
' ); $ws = new WsScores(); $ws->setLog('kbis', $this->siret, 0, 'mail'); $this->view->assign('message',"Votre demande de reception de Kbis par email à été prise en compte"); } else { $this->view->assign('message',"Votre demande n'a pas été prise en compte vous n'avez pas saisi d'email."); } } //Téléchargement else { $start = $params['start']; $siren = substr($params['siret'],0,9); $c = Zend_Registry::get('config'); $path = $c->profil->path->files. '/'; if (file_exists($path.'kbis-'.$siren.'.pdf') && date('Ymd', filemtime($path.'kbis-'.$siren.'.pdf'))==date('Ymd') && filesize($path.'kbis-'.$siren.'.pdf')>2000 ) { $msg = 'Visualiser le Kbis '; $this->view->assign('message', $msg); $ws = new WsScores(); $ws->setLog('kbis', $siren, 0, 'direct'); } else { require_once 'Scores/WsScores.php'; $ws = new WsScores(); $info = $ws->getKbis($siren); if ( substr($info,0,7)=='http://' ) { //Suppression du fichier si il existe if(file_exists($path.'kbis-'.$siren.'.pdf')) unlink($path.'kbis-'.$siren.'.pdf'); //On check si le fichier est présent sur l'url require_once 'common/curl.php'; $page = getUrl($info, '', '', '', false); //Fichier non disponible if ( $page['code']==408 || $page['code']==400 || substr($page['body'],0,4)!='%PDF' ) { $this->view->assign('message',"Impossible de récupérer le fichier"); $this->view->assign('mail',true); //Ecriture du fichier sur le serveur en local } else { $body = $page['body']; $fp = fopen($path.'kbis-'.$siren.'.pdf', 'w'); fwrite($fp, $body); fclose($fp); $msg = 'Visualiser le Kbis '; $this->view->assign('message', $msg); } } else { $this->view->assign('mail',true); $this->view->assign('message', $info); } } } } /** * A supprimer * @param unknown_type $siren */ function getKbis($siren) { $user = new Scores_Utilisateur(); $client = new SoapClient(null, array( 'trace' => 1, 'soap_version' => SOAP_1_1, 'location' => 'http://78.31.45.206:8088/ws/', 'uri' => 'http://78.31.45.206:8088/', 'login' => $user->getLogin(), 'password' => $user->getPassword(), )); //ini_set('default_socket_timeout', 120); //timeout 2 min $return = FALSE; try { $O = $client->getKbis($siren,1,0); $kbis = $O['result']; $return = $kbis['Url']; } catch (SoapFault $fault) { Zend_Registry::get('firebug')->info($fault); } return $return; } /** * Téléchargement de kbis par infogreffe */ public function kbisinfogreffeAction() { } /** * Affiche les privilèges en surveillance */ public function privilegesAction() { $request = $this->getRequest(); $type = $request->getParam('type', null); $siren = substr($this->siret, 0, 9); $detail = false; if (!empty($type)){ $detail = true; } $session = new SessionEntreprise($this->siret, $this->id); $ws = new WsScores(); if ($detail){ $infos = $ws->getPrivilegesDetail($siren, array($type)); $this->view->assign('detail', $detail); } else { $infos = $ws->getPrivilegesCumul($siren); } Zend_Registry::get('firebug')->info($infos); $this->view->assign('privileges', $infos->result->item); $this->view->assign('siren', $siren); $this->view->assign('siret', $this->siret); $this->view->assign('raisonSociale', $session->getRaisonSociale()); $user = new Scores_Utilisateur(); $this->view->assign('surveillance', $user->checkPerm('survpriv')); } }