541 lines
14 KiB
PHP
541 lines
14 KiB
PHP
<?php
|
|
require_once 'common/dates.php';
|
|
require_once 'dbbootstrap.php';
|
|
require_once realpath(dirname(__FILE__)).'/constantes.php';
|
|
require_once realpath(dirname(__FILE__)).'/infogreffews.php';
|
|
|
|
/**
|
|
* Recherche les commandes suivant le numéro de commande et/ou le siren
|
|
* @param unknown_type $type
|
|
* @param $siren
|
|
* @param $num
|
|
*/
|
|
function commandesRecherche($num, $siren, $type = '-'){
|
|
setDbConn('sdv1');
|
|
$q = Doctrine_Query::create();
|
|
|
|
//Recherche par numéro de commande
|
|
if (!empty($num)){
|
|
$table = tableNumCommande($num);
|
|
$identifiant = identifiantTable($table);
|
|
$q->from($table)->where($identifiant.' = ?', substr($num,1));
|
|
if (!hasModeEdition()){
|
|
$q->andWhere('login = ?', $_SESSION['tabInfo']['login']);
|
|
}
|
|
$commandes = $q->execute();
|
|
$outputCommandes = array();
|
|
foreach ($commandes as $commande){
|
|
if (filtreIdentifiantCommande($num, $commande)){
|
|
$outputCommandes[] = $commande;
|
|
}
|
|
}
|
|
//Recherche par numéro siren et type de commande
|
|
} elseif (!empty($siren)) {
|
|
$table = tableTypeCommande($type);
|
|
$q->from($table)->where('siren = ?', $siren);
|
|
if (!hasModeEdition()){
|
|
$q->andWhere('login = ?', $_SESSION['tabInfo']['login']);
|
|
}
|
|
}
|
|
$commandes = $q->execute();
|
|
|
|
//Résultat
|
|
return $commandes;
|
|
}
|
|
|
|
function filtrage(){
|
|
|
|
}
|
|
|
|
function filtreIdentifiantCommande($num, $commande){
|
|
$return = false;
|
|
switch(substr($num,0,1)){
|
|
case 'G':
|
|
if ($commande->typeCommande == 'G' ||
|
|
$commande->typeCommande == ''){
|
|
$return = true;
|
|
}
|
|
break;
|
|
case 'C':
|
|
if ($commande->typeCommande == 'C'){
|
|
$return = true;
|
|
}
|
|
break;
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
|
|
function filtreTypeCommande($type, $ref){
|
|
$return = false;
|
|
switch($type){
|
|
case 'greffe-actes':
|
|
if (preg_match('/^([0-9a-zA-Z]{2}-).*?$/', $ref, $matches)){
|
|
$return = true;
|
|
}
|
|
break;
|
|
case 'greffe-bilans':
|
|
if (preg_match('/^([0-9]{4}_).*?$/', $ref, $matches)){
|
|
$return = true;
|
|
}
|
|
break;
|
|
case 'greffe-kbis':
|
|
|
|
break;
|
|
case 'greffe-priv':
|
|
|
|
break;
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
function tableNumCommande($num){
|
|
switch(substr($num,0,1)){
|
|
case 'G':
|
|
case 'C':
|
|
$table = 'Commandes';
|
|
break;
|
|
}
|
|
return $table;
|
|
}
|
|
|
|
function identifiantTable($nomTable){
|
|
switch($nomTable){
|
|
case 'Commandes':
|
|
$identifiant = 'idCommande';
|
|
break;
|
|
case 'CommandesPieces':
|
|
$identifiant = 'id';
|
|
break;
|
|
case 'CommandesKbis':
|
|
$identifiant = 'id';
|
|
break;
|
|
}
|
|
return $identifiant;
|
|
}
|
|
|
|
function tableTypeCommande($type){
|
|
switch($type){
|
|
case 'greffe-actes':
|
|
case 'greffe-bilans':
|
|
$table = 'Commandes';
|
|
break;
|
|
case 'greffe-kbis':
|
|
$table = 'CommandesKbis';
|
|
break;
|
|
case 'greffe-priv':
|
|
$table = 'CommandesPieces';
|
|
break;
|
|
}
|
|
return $table;
|
|
}
|
|
|
|
function documentLib($ref, $info, $type){
|
|
global $typeActes;
|
|
$lib = 'Inconnu';
|
|
switch($type){
|
|
case 'greffe':
|
|
if (preg_match('/^([0-9a-zA-Z]{2}-).*?$/', $ref, $matches)){
|
|
if (substr($ref,0,3)=='ST-'){
|
|
$lib = 'DERNIER STATUS À JOUR';
|
|
} else {
|
|
$explodedRef = explode('-', $ref);
|
|
$date = new WDate();
|
|
$dateref = $date->dateT('Ymd','d/m/Y',$explodedRef[1]);
|
|
$depot = ', Dépôt n°'.$explodedRef[6].' au '.$dateref;
|
|
$lib = $typeActes['a'.substr($ref,0,2)].$depot;
|
|
}
|
|
} elseif (preg_match('/^([0-9]{4}).*?$/', $ref, $matches)){
|
|
$lib = 'Bilan de '.$matches[1];
|
|
}
|
|
break;
|
|
}
|
|
return $lib;
|
|
}
|
|
|
|
function documentInfo($ref, $info, $type){}
|
|
|
|
|
|
function documentFilename($siren, $ref, $type){
|
|
$filename = '';
|
|
switch($type){
|
|
case 'greffe':
|
|
if (preg_match('/^([0-9a-zA-Z]{2}-).*?$/', $ref, $matches)){
|
|
$filename = infogreffe_acte_filename($siren, $ref);
|
|
} elseif (preg_match('/^([0-9]{4}).*?$/', $ref, $matches)){
|
|
$filename = infogreffe_bilan_filename($siren, $ref);
|
|
}
|
|
break;
|
|
}
|
|
return $filename;
|
|
}
|
|
|
|
function documentLienExtranet($siren, $ref, $type){
|
|
$lien = '#';
|
|
switch($type){
|
|
case 'greffe':
|
|
if (preg_match('/^([0-9a-zA-Z]{2}-).*?$/', $ref, $matches)){
|
|
$lien = './?page=greffes&vue=actes&siret='.$siren;
|
|
FB::log('');
|
|
} elseif (preg_match('/^([0-9]{4}).*?$/', $ref, $matches)){
|
|
$lien = './?page=greffes&vue=bilans&siret='.$siren;
|
|
}
|
|
break;
|
|
}
|
|
return $lien;
|
|
}
|
|
|
|
function documentStatut($commande){
|
|
$statut = 'En cours...';
|
|
if ($commande->dateReception != '0000-00-00 00:00:00'){
|
|
$statut = 'Envoyé';
|
|
}
|
|
if ($commande->statutCommande==9 &&
|
|
$commande->dateReception=='0000-00-00 00:00:00'){
|
|
$statut = 'Erreur';
|
|
}
|
|
return $statut;
|
|
}
|
|
|
|
|
|
/**
|
|
*
|
|
* @param unknown_type $type
|
|
* @param unknown_type $etat
|
|
* @param unknown_type $date
|
|
*/
|
|
function commandesListe($type, $etat, $date, $mode = ''){
|
|
setDbConn('sdv1');
|
|
$table = tableTypeCommande($type);
|
|
|
|
$dateTDebut = mktime(0, 0, 0, date('m', $date), 1, date('Y', $date));
|
|
$dateDebut = date('Y-m',$dateTDebut);
|
|
|
|
$q = Doctrine_Query::create()
|
|
->from($table)
|
|
->Where('dateCommande LIKE ? ', $dateDebut.'%');
|
|
|
|
if (preg_match('/([A-Z])-([0-9]{1,})/', $etat, $matches)){
|
|
$q->andWhere('statutCommande = ?', $matches[2]);
|
|
} else {
|
|
switch($etat){
|
|
case 'commande':
|
|
$q->andWhere('statutCommande != ?', 9);
|
|
$q->andWhere('dateReception = ?', '0000-00-00 00:00:00');
|
|
break;
|
|
case 'reception':
|
|
$q->andWhere('dateReception != ?', '0000-00-00 00:00:00');
|
|
break;
|
|
case 'erreur':
|
|
$q->andWhere('statutCommande = ?', 9);
|
|
$q->andWhere('dateReception = ?', '0000-00-00 00:00:00');
|
|
break;
|
|
}
|
|
}
|
|
if ( $mode!='-' ){
|
|
if ( $mode == 'G' ) {
|
|
$q->andWhereIn('typeCommande', array('', $mode));
|
|
} else {
|
|
if ( $table == 'CommandesKbis' || $table == 'CommandesPieces' ){
|
|
$q->andWhere('type = ?', $mode);
|
|
} else {
|
|
$q->andWhere('typeCommande = ?', $mode);
|
|
}
|
|
}
|
|
}
|
|
if ( !hasModeEdition() ){
|
|
$q->andWhere('login = ?', $_SESSION['tabInfo']['login']);
|
|
}
|
|
FB::log($q->getSqlQuery(), 'QUERY');
|
|
FB::log($q->getFlattenedParams(), 'PARAMS');
|
|
//Résultat
|
|
$commandes = $q->execute();
|
|
|
|
return $commandes;
|
|
}
|
|
|
|
function listStatus(){
|
|
$q = Doctrine_Query::create()
|
|
->from('CommandesStatut')
|
|
->where('typeCommande = ?', 'C')
|
|
->orderBy('ordre ASC');
|
|
$cStatuts = $q->execute();
|
|
return $cStatuts;
|
|
}
|
|
|
|
|
|
/**
|
|
* Retourne la raison sociale à partir du siren
|
|
* @param unknown_type $siren
|
|
*/
|
|
function raisonSociale($siren){
|
|
global $client;
|
|
$rs = '<a href="./?page=saisieajax&q=greffescmd/rs" alt="'.$siren.
|
|
'" class="rs">Obtenir la raison sociale</a>';
|
|
return $rs;
|
|
}
|
|
|
|
/**
|
|
* Retourne le contenu HTML pour l'affichage de la commande
|
|
* @param array $commande
|
|
* @param array $type
|
|
*/
|
|
function afficheCommande($commande, $type){
|
|
|
|
static $compteur = 0;
|
|
$output = '';
|
|
|
|
switch ($type) {
|
|
/*
|
|
* Traitement de l'affichage des kbis par email ou courrier
|
|
*/
|
|
case 'greffe-kbis':
|
|
FB::log($commande->id, 'commande');
|
|
$colspan = 3;
|
|
// Affichage
|
|
if ($compteur%2){
|
|
$class = ' even';
|
|
}else{
|
|
$class = ' odd';
|
|
}
|
|
$compteur++;
|
|
|
|
// Formulaire pour modifier l'état d'une commande courrier S&D
|
|
$contenuEtat = '';
|
|
if ( $commande->type=='C' && hasModeEdition() ){
|
|
$contenuEtat.= '<a href="./?page=saisieajax&q=gencourrier/K'.
|
|
$commande->id.'"target="_blank">Générer le courrier</a>';
|
|
}
|
|
if ( ($commande->type=='C' || $commande->type='M') &&
|
|
hasModeEdition() ){
|
|
$cStatuts = listStatus();
|
|
$contenuEtat.= '<div>' .
|
|
'<label>Changer l\'état : </label>' .
|
|
'<select class="changeEtatC" name="Etat'.$commande->id.'">';
|
|
if($commande->statutCommande == 0){
|
|
$contenuEtat.='<option value="0">Non traité</option>';
|
|
}
|
|
foreach ($cStatuts as $cStatut)
|
|
{
|
|
$selected = '';
|
|
//Selection du statut en cours
|
|
if($cStatut->id == $commande->statutCommande)
|
|
{
|
|
$selected = 'selected';
|
|
}
|
|
$contenuEtat.= '<option value="'.
|
|
'K'.$commande->id.'-'.$cStatut->id.'" '.
|
|
$selected.'>'.$cStatut->libStatut.'</option>';
|
|
}
|
|
$contenuEtat.= '</select></div>';
|
|
|
|
$colspan = 1;
|
|
}
|
|
// Fin formulaire
|
|
|
|
$output = '<tr class="un'.$class.'">'.
|
|
'<td style="vertical-align:bottom;" colspan="'.$colspan.'">'.
|
|
'<b>K' . $commande->id . '</b>' .
|
|
'</td>';
|
|
if ($colspan == 1){
|
|
$output.= '<td colspan="2">' . $contenuEtat . '</td>';
|
|
}
|
|
$output.= '</tr>';
|
|
|
|
$output.= '<tr class="deux'.$class.'">'.
|
|
' <td>'.
|
|
' <div><a href="./?page=identite&siret='.$commande->siren.'" target="_blank">'.
|
|
$commande->siren.'</a></div>'.
|
|
' <div><b>'.$commande->raisonSociale.'</b></div>'.
|
|
' </td>'.
|
|
' <td>';
|
|
|
|
if ( $commande->type=='C' ) {
|
|
$output.= 'Commmande de kbis original par courrier.';
|
|
//Affichage de l'adresse
|
|
$adresseKbis = strtoupper($commande->societe) . '<br/>' .
|
|
$commande->nom . '<br/>' .
|
|
$commande->adresse . '<br/>' .
|
|
$commande->cp . ' ' . $commande->ville;
|
|
$output.= '<br/>'.$adresseKbis;
|
|
} elseif ( $commande->type=='M' ) {
|
|
$output.= 'Commmande de kbis par email.';
|
|
}
|
|
|
|
$output.= ' </td>';
|
|
|
|
$date = new WDate();
|
|
$dateCommande = $date->dateT('Y-m-d','d/m/Y',substr($commande->dateCommande,0,10));
|
|
$dateReception = $date->dateT('Y-m-d','d/m/Y',substr($commande->dateReception,0,10));
|
|
$output.= ' <td>'.
|
|
' <div>Email : '.$commande->email.'</div>'.
|
|
' <div>Etat : ' . '' . '</div>'.
|
|
' <div>Date de commande : '.$dateCommande.'</div>'.
|
|
' <div>Date de reception : '.$dateReception.'</div>'.
|
|
' </td>'.
|
|
'</tr>';
|
|
|
|
|
|
break;
|
|
|
|
case 'greffe-bilans';
|
|
case 'greffe-actes':
|
|
|
|
if ($type!='-' && filtreTypeCommande($type, $commande->refDocument)){
|
|
|
|
if ($commande->typeCommande=='' || $commande->typeCommande=='G'){
|
|
$typeCommande = 'G';
|
|
} elseif ($commande->typeCommande=='C'){
|
|
$typeCommande = 'C';
|
|
}
|
|
|
|
$documentLib = documentLib(
|
|
$commande->refDocument,
|
|
$commande->libDocument,
|
|
'greffe');
|
|
|
|
$colspan = 3;
|
|
|
|
/*
|
|
* Lien pour placer une erreur sur la commande en mode edition
|
|
*/
|
|
$contenuLien = '';
|
|
if ($commande->statutCommande!=9 &&
|
|
$commande->dateReception=='0000-00-00 00:00:00' &&
|
|
hasModeEdition()){
|
|
$contenuLien.= '<div>'.
|
|
'<a class="changeEtat" title="Erreur sur la commande" target="_blank" '.
|
|
'href="./?page=saisieajax&q=greffescmd/erreur/'.$commande->idCommande.'">'.
|
|
'Placer cette commande en erreur'.
|
|
'</a>'.
|
|
'</div>';
|
|
$colspan = 1;
|
|
}
|
|
|
|
/*
|
|
* Formulaire pour modifier l'état d'une commande courrier S&D
|
|
*/
|
|
$contenuEtat = '';
|
|
if ($typeCommande=='C' && hasModeEdition()){
|
|
$cStatuts = listStatus();
|
|
$contenuEtat.= '<div>' .
|
|
'<label>Changer l\'état : </label>' .
|
|
'<select class="changeEtatC" name="Etat'.$commande->idCommande.'">';
|
|
if($commande->statutCommande == 0)
|
|
{
|
|
$contenuEtat.='<option value="0">Non traité</option>';
|
|
}
|
|
foreach ($cStatuts as $cStatut)
|
|
{
|
|
$selected = '';
|
|
//Selection du statut en cours
|
|
if($cStatut->id == $commande->statutCommande)
|
|
{
|
|
$selected = 'selected';
|
|
}
|
|
//Ne pas afficher les états précedents et les états suivant +2
|
|
if( $cStatut->ordre == $commande->statutCommande ||
|
|
$cStatut->ordre == $commande->statutCommande+1 ){
|
|
$contenuEtat.= '<option value="'.
|
|
'C'.$commande->idCommande.'-'.$cStatut->id.'" '.
|
|
$selected.'>'.$cStatut->libStatut.'</option>';
|
|
}
|
|
}
|
|
$contenuEtat.= '</select></div>';
|
|
|
|
$contenuEtat.= '<a href="./?page=saisieajax&q=gencourrier/C'.
|
|
$commande->idCommande.'"target="_blank">Générer le courrier</a>';
|
|
}
|
|
|
|
|
|
/*
|
|
* Affichage
|
|
*/
|
|
if ($compteur%2){
|
|
$class = ' even';
|
|
}else{
|
|
$class = ' odd';
|
|
}
|
|
$compteur++;
|
|
|
|
$output = '<tr class="un'.$class.'">'.
|
|
'<td style="vertical-align:bottom;" colspan="'.$colspan.'">'.
|
|
'<b>' . $typeCommande . $commande->idCommande . '</b>' .
|
|
'</td>';
|
|
|
|
if ($colspan == 1){
|
|
$output.= '<td colspan="2">'.$contenuLien . $contenuEtat.'</td>';
|
|
}
|
|
$output.= '</tr>';
|
|
|
|
$hrefExtranet = documentLienExtranet($commande->siren, $commande->refDocument, 'greffe');
|
|
|
|
$output.= '<tr class="deux'.$class.'">'.
|
|
' <td>'.
|
|
' <div><a href="'.$hrefExtranet.'" target="_blank">'.
|
|
$commande->siren.'</a></div>'.
|
|
' <div>'.raisonSociale($commande->siren).'</div>'.
|
|
' </td>'.
|
|
' <td>'.
|
|
' <div><u>Document :</u> '.$documentLib.'</div>'.
|
|
' <div>Informations : '.$commande->libDocument.'</div>';
|
|
|
|
/* Affichage du lien vers le document pdf - en mode edition et si la
|
|
* date de reception est de moins d'un mois pour les clients
|
|
*/
|
|
$filename = documentFilename(
|
|
$commande->siren,
|
|
$commande->refDocument,
|
|
'greffe');
|
|
if (hasModeEdition()){
|
|
if (file_exists(PATH_DATA.'/pdf/'.$filename)){
|
|
$output.= '<div><a href="./pdf/'.$filename.'">'.
|
|
'Document disponible</a></div>';
|
|
}
|
|
} elseif ($commande->dateReception != '0000-00-00 00:00:00'){
|
|
$dateMoinsMois = mktime(0, 0, 0,
|
|
date('m')-1,
|
|
date('d'),
|
|
date('Y'));
|
|
$dateReception = mktime(0, 0, 0,
|
|
substr($commande->dateReception,4,2),
|
|
substr($commande->dateReception,6,2),
|
|
substr($commande->dateReception,0,4));
|
|
|
|
if ($dateMoinsMoins>$dateReception){
|
|
if (file_exists(PATH_DATA.'/pdf/'.$filename)){
|
|
$output.= '<div><a href="./pdf/'.$filename.'">'.
|
|
'Télécharger le fichier de votre commande</a></div>';
|
|
} else {
|
|
$output.= '<div>Erreur : Le fichier n\'a pas été trouvé.</div>';
|
|
}
|
|
} else {
|
|
$output.= '<div>Consulter les pièces pour afficher le document</div>';
|
|
}
|
|
}
|
|
/*
|
|
* Affichage du commentaire d'erreur sur la commande
|
|
*/
|
|
if ($commande->statutCommande==9){
|
|
$output.=
|
|
'<div>'.
|
|
'Erreur sur la commande : '.$commande->commentaire.
|
|
'</div>';
|
|
}
|
|
|
|
$date = new WDate();
|
|
$dateCommande = $date->dateT('Y-m-d','d/m/Y',substr($commande->dateCommande,0,10));
|
|
$dateReception = $date->dateT('Y-m-d','d/m/Y',substr($commande->dateReception,0,10));
|
|
$output .= ' </td>'.
|
|
' <td>'.
|
|
' <div>Email : '.$commande->emailCommande.'</div>'.
|
|
' <div>Etat : '.documentStatut($commande).'</div>'.
|
|
' <div>Date de commande : '.$dateCommande.'</div>'.
|
|
' <div>Date de reception : '.$dateReception.'</div>'.
|
|
' </td>'.
|
|
'</tr>';
|
|
}
|
|
break;
|
|
}
|
|
return $output;
|
|
} |