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(); //Filtrage if($type!='-' && count($commandes)>0){ $outputCommandes = array(); foreach ($commandes as $commande){ FB::log($commande->refDocument, 'ref'); if (filtreTypeCommande($type, $commande->refDocument)){ $outputCommandes[] = $commande; } } } } //Résultat return $outputCommandes; } 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; } return $identifiant; } function tableTypeCommande($type){ switch($type){ case 'greffe-actes': case 'greffe-bilans': $table = 'Commandes'; break; case 'greffe-kbis': 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)); $dateTFin = mktime(0, 0, 0, date('m', $date)+1, 0, date('Y', $date)); $dateDebut = date('Y-m-d H:i:s',$dateTDebut); $dateFin = date('Y-m-d H:i:s',$dateTFin); $q = Doctrine_Query::create() ->from($table) ->Where('dateCommande > ? ', $dateDebut) ->andWhere('dateCommande < ? ', $dateFin); if (preg_match('/([A-Z])-([0-9]{1,})/', $etat, $matches)){ $q->andWhere('statutCommande = ?', $matches[2]); } else { switch($etat){ case 'commande': $q->andWhere('statutCommande = ?', 0); $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!=''){ $q->andWhere('typeCommande = ?', $mode); } if (!hasModeEdition()){ $q->andWhere('login = ?', $_SESSION['tabInfo']['login']); } //Résultat $commandes = $q->execute(); FB::log($commandes->toArray(), 'commandes'); //Filtrage if($type!='-' && count($commandes)>0){ $outputCommandes = array(); foreach ($commandes as $commande){ FB::log($commande->refDocument, 'ref'); if (filtreTypeCommande($type, $commande->refDocument)){ $outputCommandes[] = $commande; } } } return $outputCommandes; 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 = ''; try { $O = $client->getIdentite($siren, 0, false); $rs = $O['result']['Nom']; } catch (SoapFault $fault) { require_once 'soaperror.php'; processSoapFault($client,$fault,$tabInfo); } return $rs; } /** * Retourne le contenu HTML pour l'affichage de la commande * @param unknown_type $commande */ function afficheCommande($commande, $type){ static $compteur = 0; 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.= '
'. ''. 'Placer cette commande en erreur'. ''. '
'; $colspan = 1; } /* * Formulaire pour modifier l'état d'une commande courrier S&D */ $contenuEtat = ''; if ($typeCommande=='C' && hasModeEdition()){ $cStatuts = listStatus(); $contenuEtat.= '
' . '' . '
'; $contenuEtat.= 'Générer le courrier'; } /* * Affichage */ if ($compteur%2){ $class = ' even'; }else{ $class = ' odd'; } $compteur++; $output = ''. ''. '' . $typeCommande . $commande->idCommande . '' . ''; if ($colspan == 1){ $output.= ''.$contenuLien . $contenuEtat.''; } $output.= ''; $hrefExtranet = documentLienExtranet($commande->siren, $commande->refDocument, 'greffe'); $output.= ''. ' '. '
'. $commande->siren.'
'. '
'.raisonSociale($commande->siren).'
'. ' '. ' '. '
Document : '.$documentLib.'
'. '
Informations : '.$commande->libDocument.'
'; /* 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 */ if ($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)); $output.= '
'; if (hasModeEdition() || $dateMoinsMoins>$dateReception){ $filename = documentFilename($commande->siren, $commande->refDocument, 'greffe'); if (file_exists(PATH_DATA.'/pdf/'.$filename)){ $output.= ''. 'Télécharger le fichier de votre commande'; } else { $output.= 'Erreur : Le fichier n\'a pas été trouvé.'; } } else { $output.= 'Consulter les pièces pour afficher le document'; } $output.= '
'; } /* * Affichage du commentaire d'erreur sur la commande */ if ($commande->statutCommande==9){ $output.= '
'. 'Erreur sur la commande : '.$commande->commentaire. '
'; } $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 .= ' '. ' '. '
Email : '.$commande->emailCommande.'
'. '
Etat : '.documentStatut($commande).'
'. '
Date de commande : '.$dateCommande.'
'. '
Date de reception : '.$dateReception.'
'. ' '. ''; return $output; }