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 0000000..ecf5865 Binary files /dev/null and b/prive/themes/spip/images/facture-12.png differ diff --git a/prive/themes/spip/images/facture-16.png b/prive/themes/spip/images/facture-16.png new file mode 100644 index 0000000..3f17b39 Binary files /dev/null and b/prive/themes/spip/images/facture-16.png differ diff --git a/prive/themes/spip/images/facture-24.png b/prive/themes/spip/images/facture-24.png new file mode 100644 index 0000000..5f665c7 Binary files /dev/null and b/prive/themes/spip/images/facture-24.png differ diff --git a/prive/themes/spip/images/facture-32.png b/prive/themes/spip/images/facture-32.png new file mode 100644 index 0000000..7b9927a Binary files /dev/null and b/prive/themes/spip/images/facture-32.png differ 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 0000000..2c04c6c Binary files /dev/null and b/prive/themes/spip/images/facture-new-16.png differ