Ajout du service Extraction (structure)

This commit is contained in:
Michael RICOIS 2011-10-18 09:48:14 +00:00
parent e5f13726b0
commit cb3493627e
5 changed files with 305 additions and 0 deletions

View File

@ -0,0 +1,3 @@
[0.1]
actif = true;
defaut = true;

View File

@ -0,0 +1,6 @@
Type[] = "InfoEntete"
Type[] = "Dico"
Type[] = "Etat"
Type[] = "ListeCommandes"
Type[] = "Commande"
Type[] = "CommandesCriteres"

View File

@ -0,0 +1,140 @@
<?php
require_once 'WsScore/WsScore.php';
require_once realpath(dirname(__FILE__)).'/Types.php';
class Extraction extends WsScore
{
/*
Table SQL pour gérér la queue
=============================
Numéro de commande
reference
enteteIn
format json, xml, file
dataIn
enteteOut
isValid => 0
error
dateAdded
dateStart
nbLigne => nombre de ligne dans le fichier
nbLigneT => nombre de ligne traités
dateStop
*/
/**
* Enregistrement d'une commande avec ces paramètres
* @param InfoEntete[] $infoEntete
* Liste des colonnes qui seront fournis, il est nécessaire d'identifier la ou les colonnes clés SIREN/SIRET/NIC
* @param string[] $infoEnrichissement
* Liste des clés, dans l'ordre, provenant du dictionnaire pour la génération du fichier d'enrichissement
* @param string $data
* Tableau des données
* @param string $format
* Format du tableau de données json/
* @param string $reference
* @return string
*/
public function setCommande($infoEntete = null, $infoEnrichissement = null, $data = null, $format = 'json', $reference = '')
{
return $numCommande;
}
/**
* Retourne les clés possibles et leurs libellés pour le fichier d'enrichissement
* @param string $categorie
* @param string $cle
* @return Dico[]
*/
public function getDataDico($categorie = null, $cle = null)
{
/*
Dictionnaire de données - getDataDico
=======================
Catégorie Clé Libellé Commentaires bdd.table
Identite siren Siren de l'entreprise
*/
$output = array();
$dico = new Dico();
return $output;
}
/**
* Validation préalable de la commande
* @param string $numCommande
* @param string $type algorithme, existe
* @param boolean $rejet Si true alors création d'un fichier uniquement des rejets
* @return string chaine vide ou chemin vers fichier de rejet
*/
public function getValidation($numCommande, $type = 'algorithme', $rejet = false)
{
/*
Validation SIREN/SIRET - getValidation
======================
Vérifier les SIREN/SIRET/SIREN+NIC
Numéro de commande
Validité suivant algorithme ? Présence dans la base (attention ressources) ?
enrichir le nic si vide (prendre le siege)
rejet = false/true
Renvoyer le fichier original avec les lignes en erreur
ou Renvoyer seulement les lignes en erreur
Seulement pour validation, alors on marque comme complete
Créer le fichier pour l'extraction et place le marqueur de démarrage
*/
}
/**
* Retourne l'état de la commande à tout instant
* @param string $numCommande
* @return Etat
*/
public function getEtat($numCommande)
{
$etat = new Etat();
//Lecture de la base de données
return $etat;
}
/**
* Liste des commmandes
* @param CommandesCriteres $criteres
* @param integer $position
* @return ListeCommandes
*/
public function getCommandes($criteres, $position = 0)
{
/*
Liste des commandes
Toutes
Par numCommande
Par réference
Par date (intervalle)
*/
}
/**
* Enter description here ...
* @param string $numCommande
*/
public function getFichierEnrichit($numCommande)
{
/*
L'enrichissement est réalisé par l'intermédiaire d'une tache cron
Récuperer le fichier (chemin) par le numéro de commande
Retourne url ou erreur
*/
}
}

View File

@ -0,0 +1,152 @@
<?php
class InfoEntete
{
/**
* Nom de la colonne d'entete
* @var string
*/
public $lib;
/**
* Définir si la colonne est une clé
* siren / siret / nic
* @var string
*/
public $cle = null;
}
class Dico
{
/**
* Catégorie de la variable
* @var string
*/
public $categorie;
/**
* Clé de la variable
* @var string
*/
public $cle;
/**
* Libellé de la variable
* @var string
*/
public $lib;
}
class Etat
{
/**
* Enter description here ...
* @var string
*/
public $numCommande;
/**
* Enter description here ...
* @var boolean
*/
public $valid;
/**
* Enter description here ...
* @var integer
*/
public $nbLigneTotal;
/**
* Enter description here ...
* @var integer
*/
public $nbLigneTraite;
/**
* Enter description here ...
* @var string
*/
public $dateAjout;
/**
* Enter description here ...
* @var string
*/
public $dateStart;
/**
* Enter description here ...
* @var string
*/
public $dateStop;
}
class CommandesCriteres
{
/**
* Type de recherche : <br/>
* - Numéro de commande : num
* - Référence : ref
* - Date : date
* @var string
*/
public $searchType = '';
/**
* Critères pour la recherche de commande
* Par date AAAAMM ou AAAAMMJJ-AAAAMMJJ
* @var string
*/
public $search = '';
}
class ListeCommandes
{
/**
* Liste des commandes
* @var Commande[]
*/
public $list;
/**
* Nombre de commandes retournées
* @var integer
*/
public $nb;
/**
* Nombre total de commandes
* @var integer
*/
public $nbTotal;
}
class Commande
{
/**
* Numéro de commande
* @var string
*/
public $numCommande;
/**
* Référence spécifié lors de la commande
* @var string
*/
public $reference;
/**
* Date de la commande
* @var string
*/
public $date;
/**
* Etat de la commande : Invalide, En attente, En cours, En erreur, Terminé
* @var string
*/
public $etat;
}

View File

@ -8,3 +8,7 @@ idClient = 1;
[gestion]
actif = true;
idClient = 1;
[extraction]
actif = true;
idClient = 1;