From a36262ccf4aa583779cc1fadc985d6ea5f4302db Mon Sep 17 00:00:00 2001 From: "cyril@cym.fr" <> Date: Wed, 3 Apr 2013 17:49:09 +0000 Subject: [PATCH] 1er depot du plugin 'factures et devis' pour SPIP3 --- .gitattributes | 25 ++ base/factures.php | 81 +++++ fabrique_factures.php | 297 ++++++++++++++++++ factures_administrations.php | 53 ++++ factures_autorisations.php | 113 +++++++ factures_pipelines.php | 16 + formulaires/configurer_factures.html | 16 + formulaires/editer_facture.html | 17 + formulaires/editer_facture.php | 146 +++++++++ lang/facture_fr.php | 50 +++ lang/factures_fr.php | 20 ++ lang/paquet-factures_fr.php | 14 + paquet.xml | 29 ++ prive/objets/contenu/facture.html | 68 ++++ prive/objets/liste/factures.html | 33 ++ prive/objets/liste/factures_associer.html | 69 ++++ .../liste/factures_associer_fonctions.php | 18 ++ prive/objets/liste/factures_lies.html | 60 ++++ .../objets/liste/factures_lies_fonctions.php | 17 + .../contenu/configurer_factures.html | 7 + prive/squelettes/contenu/facture_edit.html | 30 ++ prive/themes/spip/images/facture-12.png | Bin 0 -> 475 bytes prive/themes/spip/images/facture-16.png | Bin 0 -> 581 bytes prive/themes/spip/images/facture-24.png | Bin 0 -> 1209 bytes prive/themes/spip/images/facture-32.png | Bin 0 -> 1166 bytes prive/themes/spip/images/facture-new-16.png | Bin 0 -> 651 bytes 26 files changed, 1179 insertions(+) create mode 100644 base/factures.php create mode 100644 fabrique_factures.php create mode 100644 factures_administrations.php create mode 100644 factures_autorisations.php create mode 100644 factures_pipelines.php create mode 100644 formulaires/configurer_factures.html create mode 100644 formulaires/editer_facture.html create mode 100644 formulaires/editer_facture.php create mode 100644 lang/facture_fr.php create mode 100644 lang/factures_fr.php create mode 100644 lang/paquet-factures_fr.php create mode 100644 paquet.xml create mode 100644 prive/objets/contenu/facture.html create mode 100644 prive/objets/liste/factures.html create mode 100644 prive/objets/liste/factures_associer.html create mode 100644 prive/objets/liste/factures_associer_fonctions.php create mode 100644 prive/objets/liste/factures_lies.html create mode 100644 prive/objets/liste/factures_lies_fonctions.php create mode 100644 prive/squelettes/contenu/configurer_factures.html create mode 100644 prive/squelettes/contenu/facture_edit.html create mode 100644 prive/themes/spip/images/facture-12.png create mode 100644 prive/themes/spip/images/facture-16.png create mode 100644 prive/themes/spip/images/facture-24.png create mode 100644 prive/themes/spip/images/facture-32.png create mode 100644 prive/themes/spip/images/facture-new-16.png diff --git a/.gitattributes b/.gitattributes index 8e948c5..8e421e4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,26 @@ * text=auto !eol +base/factures.php -text +/fabrique_factures.php -text +/factures_administrations.php -text +/factures_autorisations.php -text +/factures_pipelines.php -text +formulaires/configurer_factures.html -text +formulaires/editer_facture.html -text +formulaires/editer_facture.php -text +lang/facture_fr.php -text +lang/factures_fr.php -text +lang/paquet-factures_fr.php -text +/paquet.xml -text +prive/objets/contenu/facture.html -text +prive/objets/liste/factures.html -text +prive/objets/liste/factures_associer.html -text +prive/objets/liste/factures_associer_fonctions.php -text +prive/objets/liste/factures_lies.html -text +prive/objets/liste/factures_lies_fonctions.php -text +prive/squelettes/contenu/configurer_factures.html -text +prive/squelettes/contenu/facture_edit.html -text +prive/themes/spip/images/facture-12.png -text svneol=unset#image/png +prive/themes/spip/images/facture-16.png -text svneol=unset#image/png +prive/themes/spip/images/facture-24.png -text svneol=unset#image/png +prive/themes/spip/images/facture-32.png -text svneol=unset#image/png +prive/themes/spip/images/facture-new-16.png -text svneol=unset#image/png diff --git a/base/factures.php b/base/factures.php new file mode 100644 index 0000000..f45eb41 --- /dev/null +++ b/base/factures.php @@ -0,0 +1,81 @@ + 'facture', + 'principale' => "oui", + 'field'=> array( + "id_facture" => "bigint(21) NOT NULL", + "id_organisation" => "int(11) DEFAULT NULL", + "id_type_document" => "int(11) NOT NULL DEFAULT '1'", + "num_facture" => "varchar(50) NOT NULL", + "num_devis" => "varchar(50) DEFAULT NULL", + "date_facture" => "datetime DEFAULT NULL", + "libelle_facture" => "mediumtext", + "conditions" => "text NOT NULL", + "reglement" => "varchar(50) DEFAULT NULL", + "delais_validite" => "int(11) DEFAULT NULL", + "fin_validite" => "datetime DEFAULT NULL", + "montant" => "decimal(18,2) DEFAULT NULL", + "nb_heures_vendues" => "decimal(18,2) DEFAULT NULL", + "nota_bene" => "mediumtext", + "maj" => "TIMESTAMP" + ), + 'key' => array( + "PRIMARY KEY" => "id_facture", + ), + 'titre' => "'' AS titre, '' AS lang", + #'date' => "", + 'champs_editables' => array(), + 'champs_versionnes' => array(), + 'rechercher_champs' => array(), + 'tables_jointures' => array(), + + + ); + + return $tables; +} + + + +?> \ No newline at end of file diff --git a/fabrique_factures.php b/fabrique_factures.php new file mode 100644 index 0000000..ff0c14d --- /dev/null +++ b/fabrique_factures.php @@ -0,0 +1,297 @@ + + array ( + 'version' => 5, + ), + 'paquet' => + array ( + 'nom' => 'Factures & devis', + 'slogan' => 'Facturer et faire des devis avec SPIP', + 'description' => 'Factures & devis permet d\'éditer, imprimer, archiver facilement vos devis et factures.', + 'prefixe' => 'factures', + 'version' => '1.0.0', + 'auteur' => 'Cyril Marion', + 'auteur_lien' => '', + 'licence' => 'GNU/GPL', + 'categorie' => 'divers', + 'etat' => 'dev', + 'compatibilite' => '[3.0.7;3.0.*]', + 'documentation' => '', + 'administrations' => 'on', + 'schema' => '1.0.0', + 'formulaire_config' => 'on', + 'formulaire_config_titre' => '', + 'fichiers' => + array ( + 0 => 'autorisations', + 1 => 'pipelines', + ), + 'inserer' => + array ( + 'paquet' => '', + 'administrations' => + array ( + 'maj' => '', + 'desinstallation' => '', + 'fin' => '', + ), + 'base' => + array ( + 'tables' => + array ( + 'fin' => '', + ), + ), + ), + 'scripts' => + array ( + 'pre_copie' => '', + 'post_creation' => '', + ), + 'exemples' => '', + ), + 'objets' => + array ( + 0 => + array ( + 'nom' => 'Factures', + 'nom_singulier' => 'Facture', + 'genre' => 'masculin', + 'logo_variantes' => '', + 'table' => 'spip_factures', + 'cle_primaire' => 'id_facture', + 'cle_primaire_sql' => 'bigint(21) NOT NULL', + 'table_type' => 'facture', + 'champs' => + array ( + 0 => + array ( + 'nom' => 'Id organisation', + 'champ' => 'id_organisation', + 'sql' => 'int(11) DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 1 => + array ( + 'nom' => 'Id type document', + 'champ' => 'id_type_document', + 'sql' => 'int(11) NOT NULL DEFAULT \'1\'', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 3 => + array ( + 'nom' => 'Num facture', + 'champ' => 'num_facture', + 'sql' => 'varchar(50) NOT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 4 => + array ( + 'nom' => 'Num devis', + 'champ' => 'num_devis', + 'sql' => 'varchar(50) DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 5 => + array ( + 'nom' => 'Date facture', + 'champ' => 'date_facture', + 'sql' => 'datetime DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 7 => + array ( + 'nom' => 'Libelle facture', + 'champ' => 'libelle_facture', + 'sql' => 'mediumtext', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 8 => + array ( + 'nom' => 'Conditions', + 'champ' => 'conditions', + 'sql' => 'text NOT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 9 => + array ( + 'nom' => 'Reglement', + 'champ' => 'reglement', + 'sql' => 'varchar(50) DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 10 => + array ( + 'nom' => 'Delais validite', + 'champ' => 'delais_validite', + 'sql' => 'int(11) DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 11 => + array ( + 'nom' => 'Fin validite', + 'champ' => 'fin_validite', + 'sql' => 'datetime DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 13 => + array ( + 'nom' => 'Montant', + 'champ' => 'montant', + 'sql' => 'decimal(18,2) DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 15 => + array ( + 'nom' => 'Nb heures vendues', + 'champ' => 'nb_heures_vendues', + 'sql' => 'decimal(18,2) DEFAULT NULL', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + 16 => + array ( + 'nom' => 'Nota bene', + 'champ' => 'nota_bene', + 'sql' => 'mediumtext', + 'recherche' => '', + 'saisie' => '', + 'explication' => '', + 'saisie_options' => '', + ), + ), + 'champ_titre' => '', + 'champ_date' => '', + 'statut' => '', + 'chaines' => + array ( + 'titre_objets' => 'Factures', + 'titre_objet' => 'Facture', + 'info_aucun_objet' => 'Aucun facture', + 'info_1_objet' => 'Un facture', + 'info_nb_objets' => '@nb@ factures', + 'icone_creer_objet' => 'Créer un facture', + 'icone_modifier_objet' => 'Modifier ce facture', + 'titre_logo_objet' => 'Logo de ce facture', + 'titre_langue_objet' => 'Langue de ce facture', + 'titre_objets_rubrique' => 'Factures de la rubrique', + 'info_objets_auteur' => 'Les factures de cet auteur', + 'retirer_lien_objet' => 'Retirer ce facture', + 'retirer_tous_liens_objets' => 'Retirer tous les factures', + 'ajouter_lien_objet' => 'Ajouter ce facture', + 'texte_ajouter_objet' => 'Ajouter un facture', + 'texte_creer_associer_objet' => 'Créer et associer un facture', + 'texte_changer_statut_objet' => 'Ce facture est :', + ), + 'table_liens' => '', + 'vue_liens' => + array ( + 0 => 'spip_auteurs', + 1 => 'spip_contacts', + 2 => 'spip_organisations', + ), + 'roles' => '', + 'auteurs_liens' => '', + 'vue_auteurs_liens' => '', + 'autorisations' => + array ( + 'objet_creer' => '', + 'objet_voir' => '', + 'objet_modifier' => '', + 'objet_supprimer' => '', + 'associerobjet' => '', + ), + 'boutons' => + array ( + 0 => 'menu_edition', + 1 => 'outils_rapides', + ), + ), + ), + 'images' => + array ( + 'paquet' => + array ( + 'logo' => + array ( + 0 => + array ( + 'extension' => '', + 'contenu' => '', + ), + ), + ), + 'objets' => + array ( + 0 => + array ( + 'logo' => + array ( + 0 => + array ( + 'extension' => 'png', + 'contenu' => 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAxJREFUeNq8V1tME0EUvdsWLG21UnzwLg9FLMHgI6JAqIKJ/mj8IvFbEhM14iPxFY3gBz5iNHyoUfk1wJ9KTIgKEdFqUARFI9qIIoqBSEILGPva9c7SXWfp7rYW9CSTmbmzO3PuuXNndhmO40DAjaamaqwqscyDKMEwjAbxg2PZup0VFZfCPi8QuN7YWJWcmHimtLBQHxMTw0RLoPvNGzAaDNDd2+v1BwJHK8OQ0AgNJFK5buXKOTE6HQOEVJSlf2AA0tPSYEVeXqxOqz2Lqh6KlIDVYDBoiB4zKQRevx9SUlIgz2YjJGpvNDYeioTArBQCHxIgJSkxEZbn5sbqdLpaDPEROQI6ocGyrOhBS2srX6ehF3q9HpwfP4ovzDWZIN9mA0dnJ9/fUl4umdBkNIJrYgLi4uL4/iIkwXJcbF9f3+lrDQ2wa8eOc7IEaA82l5VJJs2yWkOYC8/QWUSQmZ4OTqcTMrOyAEPK2xYuXjxF4t27vdhVIQAzRyaSxVSEz/394B4fF+0ZSMzj9carh4CbDQoAVswCUqajq6eHVSZAheDBw4dgW7YMBoeGYBy9SE9N5dUZ/Po1ZNL5ZjNY0btXvb18vyA/Hz5hKv7yeGB5Tg70oH3Thg3iGooEOEqBcrudr8kuppGTna3otfAOQYLFIrEL85I11BUIttva22HtmjW8Vx70hECr0cASJPAeNxi/MTMy4Nv37+I4DXIQEfvwyAjfLwuSU1WA3gMbS0v5uqiwMOSF5KSkP7FG6dVgy82VZAqrpgCRR2DY3tHB15b4eDBiXtOxT0lOBpfbDROY6zSyMe1GR0dhzOWS2Mg5siAhIcIQBAmUlpRIUwvljgSEnBxEBcKGAP4tVENA74HHT57M6sIlxcUREMDFaYmKiookDzocjhBbpGNsJCHgpp2E5EW5yZSgNvbX5wDBuvXrJQ8+e/o0xKY09vruJfj04jbfDgQCcOuedurU9PlMdbuvurFZX3Xlw0HVu0DuXlC7K+gxsvie44fB6/HCr8mf8HNiEibdk6RmsD/X8eg++e48qHgdz5RAxuptcLn2vKiAVjulgM/n4xjWRw6Q+rC34UwIfO66E6UC9IRyi6ikGj1mVVLAiwpw/0GBgX+twNuWOvjS1SzaiZfDwZ1OYExIVVDAiwr45RWYvglfPn8eQkCwDXXegn0nj8l5yPfRQ6iqqY5egQL8FlBD7I/toodyMCflyI6HU8DpGhsrMJvNmnBn++DLZqUYBxV4gAqc+msF6lvb2i7Y7Xa9xWJRJZG2amsYBZZKxom6Ab+f49iAhwHWRyvA0HHfX1NDmO3Ekqf61TvSZDpQfYKJYg8I4+N4FM8LIUADySh/+w/fvBj8jVfCB/INqzIu3gW/BRgAh/RYXDg93aEAAAAASUVORK5CYII=', + ), + ), + ), + ), + ), +); + +?> \ No newline at end of file diff --git a/factures_administrations.php b/factures_administrations.php new file mode 100644 index 0000000..d0391c7 --- /dev/null +++ b/factures_administrations.php @@ -0,0 +1,53 @@ + \ No newline at end of file diff --git a/factures_autorisations.php b/factures_autorisations.php new file mode 100644 index 0000000..5135e4f --- /dev/null +++ b/factures_autorisations.php @@ -0,0 +1,113 @@ + \ No newline at end of file diff --git a/factures_pipelines.php b/factures_pipelines.php new file mode 100644 index 0000000..4d7a81c --- /dev/null +++ b/factures_pipelines.php @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/formulaires/configurer_factures.html b/formulaires/configurer_factures.html new file mode 100644 index 0000000..c4d5a17 --- /dev/null +++ b/formulaires/configurer_factures.html @@ -0,0 +1,16 @@ +
+ +

<:factures:cfg_titre_parametrages:>

+ + [

(#ENV*{message_ok})

] + [

(#ENV*{message_erreur})

] + +
+
+ #ACTION_FORMULAIRE{#ENV{action}} + + +

 

+
+
+
\ No newline at end of file diff --git a/formulaires/editer_facture.html b/formulaires/editer_facture.html new file mode 100644 index 0000000..84d6ebf --- /dev/null +++ b/formulaires/editer_facture.html @@ -0,0 +1,17 @@ +
+ [

(#ENV**{message_ok})

] + [

(#ENV*{message_erreur})

] + + [(#ENV{editable}) +
+ #ACTION_FORMULAIRE{#ENV{action}} + +
    + +
+ [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + +

+
+ ] +
\ No newline at end of file diff --git a/formulaires/editer_facture.php b/formulaires/editer_facture.php new file mode 100644 index 0000000..94c9162 --- /dev/null +++ b/formulaires/editer_facture.php @@ -0,0 +1,146 @@ + $id_facture), array($objet => $id_objet)); + if (isset($res['redirect'])) { + $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_facture, '&'); + } + } + } + return $res; + +} + + +?> \ No newline at end of file diff --git a/lang/facture_fr.php b/lang/facture_fr.php new file mode 100644 index 0000000..5085101 --- /dev/null +++ b/lang/facture_fr.php @@ -0,0 +1,50 @@ + 'Ajouter ce facture', + + // I + 'icone_creer_facture' => 'Créer un facture', + 'icone_modifier_facture' => 'Modifier ce facture', + 'info_1_facture' => 'Un facture', + 'info_aucun_facture' => 'Aucun facture', + 'info_factures_auteur' => 'Les factures de cet auteur', + 'info_nb_factures' => '@nb@ factures', + + // L + 'label_conditions' => 'Conditions', + 'label_date_facture' => 'Date facture', + 'label_delais_validite' => 'Delais validite', + 'label_fin_validite' => 'Fin validite', + 'label_id_organisation' => 'Id organisation', + 'label_id_type_document' => 'Id type document', + 'label_libelle_facture' => 'Libelle facture', + 'label_montant' => 'Montant', + 'label_nb_heures_vendues' => 'Nb heures vendues', + 'label_nota_bene' => 'Nota bene', + 'label_num_devis' => 'Num devis', + 'label_num_facture' => 'Num facture', + 'label_reglement' => 'Reglement', + + // R + 'retirer_lien_facture' => 'Retirer ce facture', + 'retirer_tous_liens_factures' => 'Retirer tous les factures', + + // T + 'texte_ajouter_facture' => 'Ajouter un facture', + 'texte_changer_statut_facture' => 'Ce facture est :', + 'texte_creer_associer_facture' => 'Créer et associer un facture', + 'titre_facture' => 'Facture', + 'titre_factures' => 'Factures', + 'titre_factures_rubrique' => 'Factures de la rubrique', + 'titre_langue_facture' => 'Langue de ce facture', + 'titre_logo_facture' => 'Logo de ce facture', +); + +?> \ No newline at end of file diff --git a/lang/factures_fr.php b/lang/factures_fr.php new file mode 100644 index 0000000..0d11bbf --- /dev/null +++ b/lang/factures_fr.php @@ -0,0 +1,20 @@ + 'Factures & devis', + + // C + 'cfg_exemple' => 'Exemple', + 'cfg_exemple_explication' => 'Explication de cet exemple', + 'cfg_titre_parametrages' => 'Paramétrages', + + // T + 'titre_page_configurer_factures' => 'Factures & devis', +); + +?> \ No newline at end of file diff --git a/lang/paquet-factures_fr.php b/lang/paquet-factures_fr.php new file mode 100644 index 0000000..50d9635 --- /dev/null +++ b/lang/paquet-factures_fr.php @@ -0,0 +1,14 @@ + 'Factures & devis permet d\'éditer, imprimer, archiver facilement vos devis et factures.', + 'factures_nom' => 'Factures & devis', + 'factures_slogan' => 'Facturer et faire des devis avec SPIP', +); + +?> \ No newline at end of file diff --git a/paquet.xml b/paquet.xml new file mode 100644 index 0000000..c2267c6 --- /dev/null +++ b/paquet.xml @@ -0,0 +1,29 @@ + + + + Factures & devis + + Cyril Marion + + GNU/GPL + + + + + + + + + + \ No newline at end of file diff --git a/prive/objets/contenu/facture.html b/prive/objets/contenu/facture.html new file mode 100644 index 0000000..ed4ad9b --- /dev/null +++ b/prive/objets/contenu/facture.html @@ -0,0 +1,68 @@ + + +[
+ + (#ID_ORGANISATION) +
] + +[
+ + (#ID_TYPE_DOCUMENT) +
] + +[
+ + (#NUM_FACTURE) +
] + +[
+ + (#NUM_DEVIS) +
] + +[
+ + (#DATE_FACTURE) +
] + +[
+ + (#LIBELLE_FACTURE) +
] + +[
+ + (#CONDITIONS) +
] + +[
+ + (#REGLEMENT) +
] + +[
+ + (#DELAIS_VALIDITE) +
] + +[
+ + (#FIN_VALIDITE) +
] + +[
+ + (#MONTANT) +
] + +[
+ + (#NB_HEURES_VENDUES) +
] + +[
+ + (#NOTA_BENE) +
] + + \ No newline at end of file diff --git a/prive/objets/liste/factures.html b/prive/objets/liste/factures.html new file mode 100644 index 0000000..77bbb9f --- /dev/null +++ b/prive/objets/liste/factures.html @@ -0,0 +1,33 @@ +[(#SET{defaut_tri,#ARRAY{ + id_facture,1, + points,-1 +}})] +#ANCRE_PAGINATION +
+ + [] + + + + + + + + + + + + + + + + +
(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{facture:info_1_facture,facture:info_nb_factures}})
[(#TRI{,<:facture:label_:>,ajax})][(#TRI{id_facture,<:info_numero_abbreviation:>,ajax})]
[(#CHEMIN_IMAGE{facture-16.png}|balise_img)][(#LOGO_FACTURE|image_reduire{20,26})][(#RANG). ]#[(#AUTORISER{modifier,facture,#ID_FACTURE}|?{ + #ID_FACTURE, + #ID_FACTURE + })]
+[

(#PAGINATION{prive})

] +
+
[ +
(#ENV*{sinon,''})
+] \ No newline at end of file diff --git a/prive/objets/liste/factures_associer.html b/prive/objets/liste/factures_associer.html new file mode 100644 index 0000000..d5b1738 --- /dev/null +++ b/prive/objets/liste/factures_associer.html @@ -0,0 +1,69 @@ +[(#SET{defaut_tri,#ARRAY{ + multi id_organisation,1, + id_facture,1 +}}) +] +#SET{exclus,#ENV**{exclus,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}} +#SET{debut,#ENV{debutfaca,#EVAL{_request("debutfaca");}}} + +[(#REM) En cas de pagination indirecte @32, il faut refaire le set car la boucle +a mis a jour la valeur avec la page reelle] +#SET{debut,#ENV{debutfaca,#EVAL{_request("debutfaca");}}} +#SET{afficher_lettres,#TRI|=={'multi id_organisation'}|oui} +#ANCRE_PAGINATION +
+ +[] + + #SET{p,''} + [ + (#ID_ORGANISATION**|extraire_multi|initiale|unique|oui) + [(#SET{p,#GET{p}|concat{ + #SELF|parametre_url{debutfaca,@#ID_FACTURE}|ancre_url{paginationfaca}|afficher_initiale{#ID_ORGANISATION**|extraire_multi|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}} + }})] + ]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}[ + (#SET{p, + #GET{p}|concat{ + #REM|afficher_initiale{#REM,#TOTAL_BOUCLE,#GET{debut},#ENV{nb,10}} + } + })] + [] + + + + + + + + + + + + + + +
(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{facture:info_1_facture,facture:info_nb_factures}}) + + + + + + +

(#GET{p})

[(#TRI{multi id_organisation,<:facture:label_id_organisation:>,ajax})]
[(#LOGO_FACTURE|image_reduire{20,20})]#ID_ORGANISATION + +
+[

(#PAGINATION{prive})

] +
+
[(#ENV{recherche}|oui) +
+[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})] + + + + + + +
+] \ No newline at end of file diff --git a/prive/objets/liste/factures_associer_fonctions.php b/prive/objets/liste/factures_associer_fonctions.php new file mode 100644 index 0000000..0b42fdd --- /dev/null +++ b/prive/objets/liste/factures_associer_fonctions.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/prive/objets/liste/factures_lies.html b/prive/objets/liste/factures_lies.html new file mode 100644 index 0000000..9989f32 --- /dev/null +++ b/prive/objets/liste/factures_lies.html @@ -0,0 +1,60 @@ +[(#SET{defaut_tri,#ARRAY{ + multi id_organisation,1, + id_facture,1 +}}) +] +#SET{selection,#ENV**{selection,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}} +#SET{debut,#ENV{debutfacl,#EVAL{_request("debutfacl");}}} + +[(#REM) En cas de pagination indirecte @32, il faut refaire le set car la boucle +a mis a jour la valeur avec la page reelle] +#SET{debut,#ENV{debutfacl,#EVAL{_request("debutfacl");}}} +#SET{afficher_lettres,#TRI|=={'multi id_organisation'}|oui} +#ANCRE_PAGINATION +
+ +[] + + #SET{p,''} + [ + (#ID_ORGANISATION**|extraire_multi|initiale|unique|oui) + [(#SET{p,#GET{p}|concat{ + #SELF|parametre_url{debutfacl,@#ID_FACTURE}|ancre_url{paginationfacl}|afficher_initiale{#ID_ORGANISATION**|extraire_multi|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}} + }})] + ]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}[ + (#SET{p, + #GET{p}|concat{ + #REM|afficher_initiale{#REM,#TOTAL_BOUCLE,#GET{debut},#ENV{nb,10}} + } + })] + [] + + + + + + + + + + + + + + + +
(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{facture:info_1_facture,facture:info_nb_factures}})

(#GET{p})

[(#TRI{multi id_organisation,<:facture:label_id_organisation:>,ajax})]
[(#LOGO_FACTURE|image_reduire{20,20})]#ID_ORGANISATION + [(#ENV{editable}|oui) + + ] +
+[

(#PAGINATION{prive})

] +[(#GRAND_TOTAL|>{3}|oui)
] +
+
+
+ [(#ENV*{titre,<:facture:info_aucun_facture:>})] +
+ \ No newline at end of file diff --git a/prive/objets/liste/factures_lies_fonctions.php b/prive/objets/liste/factures_lies_fonctions.php new file mode 100644 index 0000000..086fc9c --- /dev/null +++ b/prive/objets/liste/factures_lies_fonctions.php @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/prive/squelettes/contenu/configurer_factures.html b/prive/squelettes/contenu/configurer_factures.html new file mode 100644 index 0000000..a786f07 --- /dev/null +++ b/prive/squelettes/contenu/configurer_factures.html @@ -0,0 +1,7 @@ +[(#AUTORISER{configurer,_factures}|sinon_interdire_acces)] + +

<:factures:titre_page_configurer_factures:>

+ +
+ #FORMULAIRE_CONFIGURER_FACTURES +
\ No newline at end of file diff --git a/prive/squelettes/contenu/facture_edit.html b/prive/squelettes/contenu/facture_edit.html new file mode 100644 index 0000000..953b613 --- /dev/null +++ b/prive/squelettes/contenu/facture_edit.html @@ -0,0 +1,30 @@ +[(#ID_OBJET|oui) + [(#AUTORISER{modifier,facture,#ID_FACTURE}|sinon_interdire_acces)] +][(#ID_OBJET|non) + [(#AUTORISER{creer,facture}|sinon_interdire_acces)] +] + +#SET{redirect,#ENV{redirect}|sinon{#ID_FACTURE|?{#ID_FACTURE|generer_url_entite{facture},#URL_ECRIRE{factures}}}} + +
+
+ [(#ID_FACTURE|oui) + [(#GET{redirect}|icone_verticale{Retour,facture,'',left retour[(#ENV{retourajax,''}|oui)ajax preload]})] + ] + [ + [(#ID_FACTURE|?{<:facture:icone_modifier_facture:>,<:facture:icone_creer_facture:>})] +

(#ENV{titre,#INFO_ID_ORGANISATION{facture,#ID_FACTURE}|sinon{<:info_sans_titre:>}})

+ ] +
+ +#SET{redirect,#ENV{redirect,#ID_FACTURE|generer_url_entite{facture}}} +[(#ENV{retourajax,''}|oui) + #SET{redirect,'javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();'} +
+] + [(#FORMULAIRE_EDITER_FACTURE{#ENV{id_facture,oui}, #GET{redirect}, #ENV{associer_objet}})] +[(#ENV{retourajax,''}|oui) +
+ +] +
\ No newline at end of file diff --git a/prive/themes/spip/images/facture-12.png b/prive/themes/spip/images/facture-12.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf5865e6ada2027ae015c4f55ea53478d2610d4 GIT binary patch literal 475 zcmV<10VMv3P)rx9l0zi^Tq6w>h=LAozyT;Z1T_UMMVd%%DB%JSaRZ{r zj%{q>wP$C4GedzT{ygdFRiCFmoSzSlhr^F$S>ETr{8%pIYPA|g?_WGQJzWFn#m&vV zJBNo4Zyy|(!C$?5bYyx}l^>s+JQJiVAttF+ze6c_)g|!xA3=#qW zrVW7v*gPjM3KS4xWJhZNlv0>H{{y6L**M2|JO&`kGPKq>=P1h(fU2qxku3;;5F`D5 zAAr0l$n%`}Y{qVx@%{5#d=fg>lUMKFJU%lbLW~h>?e7O;FxHY~8OCJ9W{GcVV!Q4t zT^J)Ggp}}g4Zx;eBA1_V^-pGvqpEhvREL?Gn#JX$G}aiGKsvo%4&YaF>d6-nPd#6t zZ&hdoP1D586k;9>hhM*4T)a+NKLWrn%RyZ~jcv2z8y7cg8&yiC_1UGD+qh7fptQv==VC_Z-f1-*b)v__Vk8WMy@A8%T4_X?ou1qSt%A zxxW5-I<5e|9UOG-luEhliUAJGWl&20tyZ@lZfv}o#0`L0WU=Xa)J{&QHyRvQDl|Qh z<4OfBf)-&o8c`?|j6$*a;=}Il(+MCAptZ(zU0m0l`PFq@v+vZQLhKLwuCbI>+ zOaQUgv^0!XJ|cpSV`c!c)@TuY-)F%zxd;L*%fb%=1h8$JFp4k?1Ix0AwN3y@3)x(b zY;JZDH>T&YyqxGO0o7V933fUi9LJf{R{<_t7|&pGfjQl4);ap}mec)@G=JDaPEV6W_3$ez{K7Os{4<|H%Y*!Flv48!!XP*_P4nK8 zZ6}H0c^10!md7TOHKYL+VB`JH&So?mW+sW1=%{r6ZuZf{v1lCt8KpoeBLV&ga<41+ T?kC%700000NkvXXu0mjfE<*!; literal 0 HcmV?d00001 diff --git a/prive/themes/spip/images/facture-24.png b/prive/themes/spip/images/facture-24.png new file mode 100644 index 0000000000000000000000000000000000000000..5f665c7776d8538b2e001e5a557653894038fcee GIT binary patch literal 1209 zcmV;q1V;ObP)AR*C2D58oKi6Si}5)CvIREQcO1U(7} zDi@KG#!Wu?i<}Q%?rXo_+kKD1cZ=_AB*Zj3GdnZ?H~*RU41k;4+YJRD z8m8HQ07(*Rl@)(`mNB;mw~6Xx3L>cw6V ze06hs``nQLMNwE9Od%!RUXM`_5QHJ!e!sNCIHud{p#Y^dN+|$jQE+@^g_9c_?}b8q zzjf=@I|l(Q0HqWf5P8naejm49r&6gf3IYH;*TpnVMnS+U^Ydl0=eq3mdNdmimX?<( zisFqI&z^k=ygLP;wMJ`=<2Y+~1ZkEr@!8cXLdud30NdVQG9d)@dYz56HEOnvkP_eX*uH(6LjX!^ zl-5Wo3Bz!oE+KI1b)q;X&+{o-0KzE3G);!15e?rbieo(2ojT0)475h%Ihhb-LNFSQ z=o$vgtrq>k0N?XaO3@h%%H$}HY4|>m+ie`jDYxusinOL?+qkYvv(ez#@-jk70A4+F zhFnUN)+_;4%L2ndj{h$%EKs#=lu{H&b)d&Wn*a=lLu$1ej^mUGX_}H{SsBClUJQrB zavKi;D5X$ipjxel@B3x3y6fWB>t%vjsQ}>nKFMg02fth=c-h7@O?tn3B;7sdyHDS` z-rBhM%?BTSy)$*uwAR?RjW-4u4u{m|=1P0gZ7wCA?<0q8R^}5_U)3QC0@&S!v7TiaDtd|vChWkIg&6U31i|gqPN$j-gG&A?lqDyA`T XwlES1B@+&500000NkvXXu0mjfHasrI literal 0 HcmV?d00001 diff --git a/prive/themes/spip/images/facture-32.png b/prive/themes/spip/images/facture-32.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9927abac99e6dc77f92a14dd80a5ca7f757e3d GIT binary patch literal 1166 zcmV;91abR`P)pfx`>K1u-VvsW;BV!~}vDBpQtn6C)Bu zW4v49h4CIFCa6GwNhf0ErfLE?%fjz!DgH7^MV9~5D2jz^{ zK{}n5e)suKWMD&u&Gv~VflMYNcYp4}1pu552S%fjkQ6?S_;7CiV8A9NIswMBZQ#BZdZ}eWxoY|!^7cM4<59vt#=sn`x&2_qNcVM zlgT98XCFLZbYx^|yT{{H#;cEDt<`}Vw;P>K$NjM}LgBD%_qbdv#bWm5@#-U3rx|cN zow%LO9Q&<-fs8f*#Sosqbcx1>1}3Mc35UbDs;d#eitVDfXoo3hBJpko)yUL!;D>69(EK}go z`r_rwJlEXJ?ZH9f@i+h_dOcg~>hO(>08s1k@aN2o>{r6&bP|upnVp*hpz{&Af(j^S z;DwG30NPqwayC>|R?2I)%a!9-qH)_c06A}_kOD#onc?N09suk%8)mavb@q;`DuSU9 zkw`?9sIIn_g@pwI!Jx`!G#c4dUalgNmw<8zJKEb-K{Xyv!A_Or@?ZVjy?K*qp^)!C-va>8 zx3;PRf9>tfv1$1RemKQ={}}+%=`^Q*DgnTfOj>$JyTe-=I=gFIUOS>DuuOq`auxcm zQ2NIE&+ztpM@hsJ#G*?qMWRGQQI;Z6V$mhbwcd+eIRutJNY+BY^Xvh>{`gZ_fs&Gk z3M7+Bq>_@zmWIymZ0r+J;Qo#8i&Q|FFkcbP@@k)3OMyfZN%|iY@IPqrO@-v5zA1hvg9nH;o z`hScK^DoOC=7Y7eKCi!^0vpZdd%-|pht+B=SR7#T=Gj7LjQ7fU4j=z;RSL+@@<06k zx26{sK5O5-+hn)rJYH28{_!g&Z=Tiko9)#^7azYNgb<`tDRer0Ot06alsBPH`R{mS zVxntwa`KJ8!{P0P2soy{vm810ez7yawcegc>+9ca%ptH^j9vTo)U5AfmzKY@tn%JJ gp_#2(ex(Bc0{kQ(Dg_n?;Q#;t07*qoM6N<$f(j`>H2?qr literal 0 HcmV?d00001 diff --git a/prive/themes/spip/images/facture-new-16.png b/prive/themes/spip/images/facture-new-16.png new file mode 100644 index 0000000000000000000000000000000000000000..2c04c6c48e8488b929581d87f21070ed7ee5c426 GIT binary patch literal 651 zcmV;60(AX}P)C2g9tNnREDopv%1EG`xuUFzs6j=G3~poKy+SQnRObSrhRg9SnCAbu=S z3M$1y(bj4|Q<|ntsU*+5w8`sB`tEgT@-W06xbVLm{vYSus{p)-$D?iS?W2I3Q|kR{ z^mrrp)+Z#W3bwm`w(ZVAQU1H ze1e|M0*NS;*iyF1Yhe?onXU89@S~ z>i8dAxz<%p0`YI;Y>K_5kL2@t4mSei(kt|JxGFSRFVO7wliuBR8e5B>Xk#6ZYEsxM zP|E7i5k^sz`UGaNxajeC2AW%1oJM)y5Bd7Ym5`!Fpb@S;pPIUEmCL?rqs>~5T)E)C lQB5p`C;~o30Yy