extranet/www/pages/greffes2.php

592 lines
18 KiB
PHP

<?php
if (!$_SESSION['connected'])
{
echo ('Vous devez être connecté afin de pouvoir utiliser cette fonctionnalité');
}
else
{
require_once 'default/_includes/mysql.php';
require_once 'common/dates.php';
require_once 'common/curl.php';
require_once 'theme/theme.php';
require_once 'user/user.php';
require_once 'infogreffe/infogreffews.php';
//Login de l'utilisateur
$login = strtolower($_SESSION['tabInfo']['login']);
//Siren
$siren = substr($_REQUEST['siret'],0,9);
$cj = $_SESSION['tabInfo']['entrep']['fj'];
$dep = substr(''.$_SESSION['tabInfo']['entrep']['codeCommune'],0,2);
//Raison sociale depuis la session
$raisonSociale = $_SESSION['tabInfo']['entrep']['raisonSociale'];
//TODO : Raison sociale depuis l'url (cas des associations ?)
isset($_REQUEST['rs'])? $raisonSociale = $_REQUEST['rs'] : '';
(isset($_REQUEST['vue']) && !empty($_REQUEST['vue'])) ? $vue=$_REQUEST['vue'] : $vue='';
isset($_REQUEST['action'])? $vecteur=strtoupper($_REQUEST['action']) : $vecteur='XL';
isset($_REQUEST['ref'])? $ref=$_REQUEST['ref'] : $ref = '';
isset($_REQUEST['ajax'])? $ajax=true : $ajax=false;
$idCommande = 0;
//Debug
$firephp->log($siren, 'siren');
$firephp->log($vecteur, 'vecteur');
$firephp->log($vue, 'vue');
$firephp->log($ajax, 'ajax');
//Spécificité associations
$association_cj = array(
'9150', // Association syndicale libre
'9220', // Association déclarée
'9221', // Association déclarée "entreprises d'insertion par l'économique"
'9222', // Association intermédiaire
'9223', // Groupement d'employeurs
'9230', // Association déclarée reconnue d'utilité publique
'9240', // Congrégation
'9260', // Association de droit local
'9300', // Fondation
);
//Erreur bloquante infogreffe
$erreurStop = array(6, 14, 25, 45, 999);
//Gestion du mode commande téléchargement
if($vecteur==strtoupper('fichier'))
{
//Connection au webservice
$client = new SoapClient(null, array(
'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => WEBSERVICE_URL,
'uri' => WEBSERVICE_URI,
'login' => $_SESSION['tabInfo']['login'],
'password' => $_SESSION['tabInfo']['password'],
));
$error = '';
switch($vue)
{
case 'actes':
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, $ref);
$info = unserialize(urldecode($_REQUEST['info']));
$firephp->log($info,'info');
$message.= '<br/><a href="./datafile.php?q=acte-'.$siren.'-'.$ref.'.pdf&type=pdf" target="_blank">Ouvrir le fichier '.$info['type'].' </a>';
break;
case 'bilans':
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, $ref);
$info = unserialize(urldecode($_REQUEST['info']));
$firephp->log($info,'info');
$message.= '<br/><a href="./datafile.php?q=bilan-'.$siren.'-'.$ref.'.pdf&type=pdf" target="_blank">Ouvrir le bilan millésime '.$info['type'].'</a>';
break;
}
echo $message;
}
elseif($vecteur=='T')
{
//Connection au webservice
$client = new SoapClient(null, array(
'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => WEBSERVICE_URL,
'uri' => WEBSERVICE_URI,
'login' => $_SESSION['tabInfo']['login'],
'password' => $_SESSION['tabInfo']['password'],
));
$firephp->info('DL fichier');
//Enregistrement dans la bdd des informations concernant l'acte
$error = '';
switch($vue)
{
case 'actes':
$reponse = getGreffeActes($siren, $vecteur, $ref);
$firephp->log($reponse, 'getGreffeActes');
if(empty($reponse['error'])) $items = $reponse['result']['actes'];
else $error = $reponse['error']['errNum'].' - '.$reponse['error']['errMsg'];
if($error=='')
{
$firephp->log($items, 'items');
$info = unserialize(urldecode($_REQUEST['info']));
foreach($items as $item)
{
$firephp->log($info, 'info');
if($item['num_acte']==$info['num_acte'])
{
$firephp->info('ACTE DL');
$firephp->log($item, 'item');
if($item['url_acces']!==false)
{
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, $ref);
$message.= '<br/><a href="./datafile.php?q='.$item['url_acces'].'&type=pdf" target="_blank">Ouvrir le fichier '.$item['type_acte_libelle'].' </a>';
}
else
{
$message.= '<br/>Impossible de télécharger le fichier '.$item['type_acte_libelle'].' auprès de notre partenaire.';
}
}
}
echo $message;
}
else
{
echo '<br/>Erreur : '.$error;
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, 'Erreur '.$reponse['error']['errNum']);
}
break;
case 'bilans':
$reponse = getGreffeBilans($siren, $vecteur, $ref);
$firephp->log($reponse, 'reponse');
if(empty($reponse['error'])) $items = $reponse['result']['bilan'];
else $error = $reponse['error']['errNum'].' - '.$reponse['error']['errMsg'];
if($error=='')
{
$firephp->log($items, 'items');
$info = unserialize(urldecode($_REQUEST['info']));
foreach($items as $item)
{
$firephp->log($info, 'info');
$firephp->info('ACTE DL');
$firephp->log($item, 'item');
if($item['url_acces']!==false)
{
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, $ref);
$message.= '<br/><a href="./datafile.php?q='.$item['url_acces'].'&type=pdf" target="_blank">Ouvrir le bilan millésime '.$item['millesime'].'</a>';
}
else
{
$message.= '<br/>Impossible de télécharger le fichier auprès de notre partenaire.';
}
}
echo $message;
}
else
{
echo '<br/>Erreur : '.$error;
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, 'Erreur '.$reponse['error']['errNum']);
}
break;
}
}
elseif($vecteur=='C')
{
//Connection au webservice
$client = new SoapClient(null, array(
'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => WEBSERVICE_URL,
'uri' => WEBSERVICE_URI,
'login' => $_SESSION['tabInfo']['login'],
'password' => $_SESSION['tabInfo']['password'],
));
//Connection à la base de données
$con = mysql_pconnect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if (!($con === false))
{
if (mysql_select_db(MYSQL_DB, $con) === false)
echo ('<!--Could not select database: ' . mysql_error() .'-->');
}
$dejaCommande = false;
$noemail = false;
$sameLogin = false;
//Génération de l'idCommande
$rep = mysql_select('commandes', ' idCommande, login, emailCommande, dateCommande', "siren=$siren AND refDocument='$ref'");
if (count($rep)==0)
{
isset($_REQUEST['info'])? $info = unserialize(urldecode($_REQUEST['info'])) : $info = false;
$lib = empty($info['decision'])? '' : $info['decision'];
$dejaCommande = false;
$tabCommande = array(
'idUser' => $_SESSION['tabInfo']['id'],
// emailCommande
'login' => $login,
'siren' => $siren,
'refDocument' => $ref,
'libDocument' => $lib,
'dateCommande' => date('YmdHis')
);
}
else
{
$dejaCommande = true;
if ($rep[0]['login']==$login)
{
$dateCommande = WDate::dateT('Y-m-d', 'd/m/Y',$rep[0]['dateCommande']);
$idCommande = $rep[0]['idCommande'];
if(empty($rep[0]['emailCommande'])) $noemail = true;
$sameLogin = true;
}
}
$firephp->log($dejaCommande,'dejaCommande');
$firephp->log($tabCommande,'tabCommande');
//Commande non enregistré dans la base
if(!$dejaCommande)
{
//Enregistrement dans la bdd des informations de la commande
$idCommande = mysql_insert('commandes', $tabCommande);
if(INFOGREFFE_DEBUG) $idCommande = $idCommande.'_TEST';
//Commande
switch($vue)
{
case 'actes':
$reponse = getGreffeActes($siren, $vecteur, $ref, $idCommande);
break;
case 'bilans':
$reponse = getGreffeBilans($siren, $vecteur, $ref, $idCommande);
break;
case 'statuts':
$reponse = getGreffeStatut($siren, $vecteur, $ref, $idCommande);
break;
}
if(in_array($erreurStop, $reponse['error']))
{
$error = $reponse['error']['errNum'].' - '.$reponse['error']['errMsg'];
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, $ref);
}else{
$noemail = true;
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, 'Erreur '.$reponse['error']['errNum']); //erreur
}
}
if($error!='')
{
?>
<h2>Erreur</h2>
<p><?=$error?></p>
<?php
}
elseif($noemail)
{
//Demande de l'adresse mail
?>
<h2>Saisir une adresse email</h2>
<p>Votre commande a été enregistré. Merci de préciser votre adresse email pour recevoir le document ou revenez plus tard pour le télécharger</p>
Siren : <?=substr($siren,0,3).' '.substr($siren,3,3).' '.substr($siren,6,3)?><br/>
Réference commande : G<?=$idCommande?><br/>
<br/>
<form name="commande" action="./?page=greffes&vue=<?=$vue?>&siret=<?=$siren?>" method="post">
<input type="hidden" name="action" value="sauvemail"/>
<label>Adresse email du destinataire</label>
<input name="emailCommande" type="text" value="<?=$_SESSION['tabInfo']['email']?>" size="40"/><br/>
<br/>
<a href='#' id='TB_closeWindowButton' title='Close'>Fermer sans enregistrer</a>
&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Valider"/>
</form>
<?php
}elseif(!$noemail && $dejaCommande && $sameLogin)
{
?>
<h2>Document déjà commandé</h2>
<p>Vous avez déjà commandé ce document.</p>
<?php
}elseif(!$noemail && $dejaCommande && !$sameLogin)
{
?>
<h2>Document déjà commandé</h2>
<p>Une commande est déjà en cours, le document sera disponible sous peu.</p>
<?php
}
$ajax = true;
}
elseif($vecteur==strtoupper('sauvemail'))
{
if( !empty($_REQUEST['emailCommande'])
&& preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#',
$_REQUEST['emailCommande'])
)
{
$email = $_REQUEST['emailCommande'];
$login = $_SESSION['tabInfo']['login'];
$ip = $_SESSION['tabInfo']['ip'];
$fp=fopen(PATH_LOGS.'commande_greffe.csv', 'a');
fwrite($fp, date('Y/m/d H:i:s').";$siren;".$email.';'.$login.';'.$email.';'.$ip."\n");
fclose($fp);
//Connection à la base de données
$con = mysql_pconnect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if (!($con === false))
{
if (mysql_select_db(MYSQL_DB, $con) === false)
echo ('<!--Could not select database: ' . mysql_error() .'-->');
}
$tabCommande = array( 'emailCommande' => $email );
mysql_update('commandes', $tabCommande, "login='$login' AND siren='$siren'");
$message = '<p>Votre commande à été mise à jour.</p>';
}
}elseif($vecteur==strtoupper('commande'))
{
//Connection au webservice
$client = new SoapClient(null, array(
'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => WEBSERVICE_URL,
'uri' => WEBSERVICE_URI,
'login' => $_SESSION['tabInfo']['login'],
'password' => $_SESSION['tabInfo']['password'],
));
if(!empty($_REQUEST['email']) /*&& mailCommande($_REQUEST['email'], $siren, 'asso')*/)
{
$erreur = false;
$fp=fopen(PATH_LOGS.'commande_asso.csv', 'a');
fwrite($fp, date('Y/m/d H:i:s').";$siren;".$_REQUEST['email'].';'.$login.';'.$_SESSION['tabInfo']['email'].';'.$_SESSION['tabInfo']['ip']."\n");
fclose($fp);
$infoAsso = array(
'Siren' => $siren,
'idEntreprise' => $idEntreprise,
'RaisonSociale' => $raisonSociale,
);
$infoDemande = array(
'Ref' => $_REQUEST['reference'],
'Tel' => $_REQUEST['tel'],
'Email' => $_REQUEST['email'],
);
$firephp->log($infoDemande,'infoDemande');
$firephp->log($infoAsso,'infoAsso');
try {
$O = $client->commandeAsso($siren, $infoAsso, $infoDemande);
$annee = substr($O['results']['dateCommande'],0,4);
$mois = substr($O['results']['dateCommande'],4,2);
$jour = substr($O['results']['dateCommande'],6,2);
$heure = substr($O['results']['dateCommande'],8,2);
$minutes = substr($O['results']['dateCommande'],10,2);
$ref = $O['results']['refCmde'];
if( isset($ref) && !empty($ref) )
{
$message = 'Votre demande à été prise en compte le '.$jour.'/'.$mois.'/'.$annee.' à '.$heure.' h '.$minutes.' sous la référence <b>'.$ref.'</b>.';
}
$firephp->log($O,'O');
} catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$_SESSION['tabInfo']);
$erreur = true;
}
if($erreur)
{
$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.";
}
}
//Arrêt du script pour les méthodes en ajax
if($ajax==true) exit;
//Raison sociale inexacte
if ($siren != $tabInfo['entrep']['siren'])
{
require_once 'scoresws/scoresws.php';
$etab = scoresws_identitelight($siret, $siren, $idEntreprise);
if(!empty($etab))
{
$tabEntrep = array();
$tabEntrep['raisonSociale'] = $etab['Nom'];
$tabEntrep['siren'] = $etab['Siren'];
$tabEntrep['siret'] = $etab['Siret'];
$tabEntrep['tva'] = $etab['TvaNumero'];
$tabEntrep['isin'] = $etab['Isin'];
$tabEntrep['AutreId'] = $etab['AutreId'];
$tabEntrep['active'] = $etab['Statut'];
$tabEntrep['Source'] = $etab['Source'];
$tabEntrep['SourceId'] = $etab['SourceId'];
$tabEntrep['codeCommune'] = $etab['Dept'].$etab['codeCommune'];
$tabEntrep['nafEn'] = $etab['NafEnt'];
$tabEntrep['nafEt'] = $etab['NafEtab'];
$tabEntrep['fj'] = $etab['FJ'];
$_SESSION['tabInfo']['entrep'] = $tabEntrep;
$raisonSociale = $etab['Nom'];
}
}
$vecteur = 'XL';
//Actes, bilans hors cas association
if( !in_array($cj, $association_cj) )
{
switch($vue)
{
case 'actes':
$titreh2 = htmlspecialchars('Actes & Statuts');
if(!in_array($cj, $association_cj))
{
$table_header = array('Date', 'Type', 'Décisions');
$reponse = getGreffeActes($siren, $vecteur, $ref);
if(!empty($reponse['error'])) $error = $reponse['error'];
$table_content = theme_greffeactes($reponse['result'], $table_header);
//Enregistrement des logs auprès du webservice
}
break;
case 'bilans':
$titreh2 = htmlspecialchars('Compte Annuels');
$table_header = array('Date de clôture', 'Type', 'Décisions');
if(!in_array($cj, $association_cj))
{
$reponse = getGreffeBilans($siren, $vecteur, $ref);
if(!empty($reponse['error'])) $error = $reponse['error'];
$table_content = theme_greffebilans($reponse['result'], $table_header);
//Enregistrement des logs auprès du webservice
}
break;
default:
//Mode non supporté
$message = 'Paramètres incorrectes!';
break;
}
}else{
$titreh2 = htmlspecialchars('Actes & Statuts');
}
?>
<link rel="stylesheet" href="./css/thickbox.css" type="text/css" media="screen" />
<div id="center">
<h1>PI&Egrave;CES OFFICIELLES</h1>
<table>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Num&eacute;ro identifiant Siren</td>
<td width="350" class="StyleInfoData"><?=substr($siren,0,3).' '.substr($siren,3,3).' '.substr($siren,6,3)?></td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Raison Sociale</td>
<td width="350" class="StyleInfoData"><?=$raisonSociale?></td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td colspan="2" width="550" class="StyleInfoData">
<?php
require_once 'surveillance/surveillance.php';
echo getSurveillance('actes', $siret);
?>
</td>
</tr>
</table>
<?php
if(isset($message)&& !empty($message))
{
?>
<div><?=$message?></div>
<?php
}
?>
<h2><?=$titreh2?></h2>
<?php
//Spécificités des associations
if ( in_array($cj, $association_cj) )
{
?>
<table>
<tr>
<td width="30">&nbsp;</td>
<td width="550" colspan="2" class="StyleInfoData">Il n'est pas possible de visualiser les statuts des associations en ligne.</td>
</tr>
<?php
if ($action!='commande' && preg_match('/ACTES/i', $_SESSION['tabInfo']['droits']))
{
?>
<tr>
<td width="30">&nbsp;</td>
<td width="550" colspan="2" class="StyleInfoData"><br/><br/>
<form action="./?page=greffes&action=commande&siret=<?=$siret?>&idEntreprise=<?=$idEntreprise?>" method="post">
<p>Commander les statuts de l'association (d&eacute;lai approximatif de 15 jours)</p><br/>
<br/>Votre référence <input type="text" name="reference" value="" /><br/>
<br/>Votre téléphone <input type="text" name="tel" value="" maxlength="14" />
<br/>Adresse email du destinataire <input name="email" type="text" value="<?=$tabInfo['email']?>" size="20"/>
&nbsp;&nbsp;&nbsp;
<input
class="imgButton"
type="image"
src="./img/boutton_valider_off.gif"
name="submit" onmouseover="this.src='./img/boutton_valider_on.gif'"
onmouseout="this.src='./img/boutton_valider_off.gif'"
title="Commander les statuts de l'association...">
</form>
</td>
</tr>
<?
}elseif (!preg_match('/ACTES/i', $_SESSION['tabInfo']['droits'])){
?>
<tr>
<td width="30">&nbsp;</td>
<td width="550" colspan="2" class="StyleInfoData">Vous n'avez pas les droits nécessaires pour commander des status.</td>
</tr>
<?php
}
?>
</table>
<?php
}else{
?>
<script type="text/javascript">
$(document).ready(function()
{
$('span.fichier > a').each(function(){
$(this).click(function(event){
var objet = $(this).parent('span');
objet.html('<br/>Chargement du fichier...');
var url = $(this).attr('href');
$.post( url+'&ajax=true', function (data, textStatus)
{
if( data=='' || data=='FALSE' || textStatus=='timeout' )
{
data = '<br/>Le chargement du fichier a échoué';
}
objet.html(data);
});
event.preventDefault();
return false;
});
});
$('a.multiactes').each(function(){
$(this).click(function(event){
var url = $(this).attr('href');
var objet = $(this).parent('td');
objet.html('Commande en cours...');
$.post( url+'&ajax=true', function (data, textStatus)
{
if( data=='' || data=='FALSE' || textStatus=='timeout' )
{
data = 'Erreur lors de la requete.';
}
objet.html(data);
});
event.preventDefault();
return false;
});
});
});
</script>
<?php
if(isset($error))
{
?>
<?=$error['errNum']?> - <?=$error['errMsg']?>
<?php
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, 'Erreur '.$error['errNum']);
}
else
{
echo theme_table($table_content, array('class'=>'greffe'));
if(!INFOGREFFE_DEBUG) $client->setLog('greffe_'.$vue, $siret, 0, $ref);
} // Test error
} //
} // Fin test connecté
?>
</div>