Changeset 43887 in spip-zone


Ignore:
Timestamp:
Jan 26, 2011, 1:57:04 PM (10 years ago)
Author:
esj@…
Message:

spipal. Les notions de TVA et de quantité n'ont pas de sens dans le cas d'un don et non d'une vente. On allège le squelette de la balise dynamique dans ce cas là, et on continue à rationaliser le code.

Location:
_plugins_/spipal
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipal/action/spipal_proposer.php

    r43509 r43887  
    1313if (!defined('_ECRIRE_INC_VERSION')) return;
    1414
    15 include_spip("inc/spipal_tabledata");
    16 
    1715function action_spipal_proposer_dist() {
    1816    $securiser_action = charger_fonction('securiser_action', 'inc');
    19     $arg = $securiser_action();
     17    $arg = intval($securiser_action());
    2018   
    21     $action     = _request('action_vente');
    22     if ( $action ) {
     19    $action     =  _request('action_vente');
     20    if (!$action )
     21      sql_delete('spip_spipal_produits', "id_article=" . $arg);
     22    else  {
    2323        $_REQUEST['id_article'] = $arg;
    24         $_REQUEST['don']        = ($action == AV_VENTE_DON )?1:0;
    25         $action      = est_a_vendre($_REQUEST['id_article'])?'maj':'creer';
     24        $_REQUEST['don']        = $action;
    2625
    27         if ( !_request('ref_produit') )
    28           $_REQUEST['ref_produit'] = $_REQUEST['id_article'];
    29         mbt_maj_table_depuis_form('spip_spipal_produits', $action);
     26        if ( !_request('ref_produit') )   $_REQUEST['ref_produit'] = $arg;
     27
     28        include_spip("inc/spipal_tabledata");
     29        $trouver_table = charger_fonction('trouver_table', 'base');
     30        $desc = $trouver_table('spip_spipal_produits');
     31        if (est_payable($arg))
     32          maj_item('spip_spipal_produits', $desc);
     33        else declare_item('spip_spipal_produits', $desc);
    3034    }
    31     else {
    32       supprimer_item('spip_spipal_produits', 'id_article', $arg);
    33     }
    34 
    3535}
    3636
  • _plugins_/spipal/balise/formulaire_payer.php

    r43783 r43887  
    2828        if (!is_numeric($row['quantite'])) $row['quantite'] = 1;
    2929
    30         $row['taxes'] = $don ? 0
     30        $row['taxes'] = $row['don'] <=1 ? 0
    3131          : round($row['prix_unitaire_ht'] * $row['tva'] / 100, 2);
    3232        $row['prix_unitaire_ttc'] = $row['taxes'] + $row['prix_unitaire_ht'];
  • _plugins_/spipal/formulaires/payer.html

    r43660 r43887  
    55        <input type="hidden" name="item_number" value="#ENV{ref_produit}" />
    66        <input type="hidden" name="business" value="#META{/spipal/compte_paypal}" />
    7  [(#ENV{don}|=={1}|?{'', ' '})
    8             <input type="hidden" name="quantity" value="1" />
    9             [(#ENV{prix_unitaire_ttc}|=={0}|?{
    10                 <input type="hidden" name="amount" value="0" />
    11                 ,
    12                 <input type="text" name="amount" size="5" style="text-align: right" value="#ENV{prix_unitaire_ttc}" />
    13             })]
    14             <select name="currency_code">
    15                 <option value="EUR">EUR</option>
    16                 <!-- <option value="USD">USD</option> -->
    17             </select>
    18             <img src="https://www.paypal.com/<:spipal:lang_lang:>/i/btn/x-click-but04.gif" style="margin: 0px; border: 0px none transparent; cursor:pointer; vertical-align: middle;" onclick="document.getElementById('_xclick').submit();" alt=""/>
    19 ][(#ENV{don}|=={1}|?{' ', ''})
    20             <input type="text" name="quantity" value="#ENV{quantity}" size="5" readonly="readonly" style="text-align: center" /> x
    21             <input type="text" name="amount_ttc" size="5" style="text-align: right" disabled="disabled" value="[(#ENV{prix_unitaire_ttc})"] />
    22             <input type="hidden" name="amount" size="5" style="text-align: right" value="#ENV{prix_unitaire_ht}" />
    23             <input type="text" name="currency_code" value="#ENV{monnaie}" readonly="readonly" size="3"/>
    24             <img src="https://www.paypal.com/<:spipal:lang_lang:>/i/btn/x-click-but02.gif" style="margin: 0px; border: 0px none transparent; cursor:pointer; vertical-align: middle;" onclick="document.getElementById('_xclick').submit();" />
     7 [(#ENV{don}|>{1}|?{'', ' '})
     8                <input type="hidden" name="quantity" value="1" />
     9                <input type="[(#ENV{prix_unitaire_ttc}|=={0}|?{hidden,text})]"
     10                        name="amount"
     11                        value="#ENV{prix_unitaire_ttc}"
     12                        size="5" style="text-align: right"  />
     13][(#ENV{don}|>{1}|?{' ', ''})
     14                <input type="text" name="quantity" value="#ENV{quantity,1}" size="5" readonly="readonly" style="text-align: center" /> x
     15                <input type="text" name="amount_ttc" size="5" style="text-align: right" disabled="disabled" value="[(#ENV{prix_unitaire_ttc})]" />
     16                <alt type="hidden" name="tax" value="#ENV{taxes}" />
     17                <input type="hidden" name="amount" size="5" style="text-align: right" value="#ENV{prix_unitaire_ht}" />
    2518        ]
    26         <alt type="hidden" name="tax" value="#ENV{taxes}" />
     19        <input type="text" name="currency_code" value="#ENV{monnaie,EUR}" readonly="readonly" size="3"/>
    2720        <input type="hidden" name="item_name" value="#ENV{nom_com}" />
    2821        <input type="hidden" name="display" value="1" />
     
    3124        <input type="hidden" name="return" value="#META{/spipal/url_retour}" />
    3225        <input type="hidden" name="notify_url" value="#META{/spipal/notify_url}" />
     26            <img src="https://www.paypal.com/<:spipal:lang_lang:>/i/btn/x-click-but0[(#ENV{don}|=={1}|?{4,2})].gif" style="margin: 0px; border: 0px none transparent; cursor:pointer; vertical-align: middle;" onclick="document.getElementById('_xclick').submit();" alt=""/>
    3327    </div>   
    3428</form>
  • _plugins_/spipal/inc/spipal_article.php

    r43480 r43887  
    1717function inc_spipal_article($id_article) {
    1818
    19     $mod = "<div style='text-align:center'>"._T('spipal:exec_articles_vendre_ou_non');
    20     $mod .= '<select onchange="$(\'#truc\').show()" name="action_vente"><option value="0">'._T('spipal:exec_article_pas_vendre')."</option>";
    21    
    22     $selected = '';
    2319    $pour = '';
    24     $prix = 0;
    25     if ( $row = est_a_vendre($id_article) ) {
     20    if ( $row = est_payable($id_article) ) {
    2621        $prix = $row['prix_unitaire_ht'];
    2722        $selected__1 = '';
     
    3833       
    3934    }
     35    $mod = "<div style='text-align:center'>"._T('spipal:exec_articles_vendre_ou_non');
     36    $mod .= '<select onchange="$(\'#truc\').show()" name="action_vente">';
     37    $mod .= '<option value="' . AV_VENTE_GRATUIT . '">'._T('spipal:exec_article_pas_vendre')."</option>";
     38   
    4039    if ( $GLOBALS['spipal_metas']['vendre'] )
    41         $mod .= "<option value='1' $selected_1>"._T('spipal:exec_article_a_vendre')."</option>";
     40        $mod .= "<option value='" . AV_VENTE_ACHAT . "' $selected_1>"._T('spipal:exec_article_a_vendre')."</option>";
    4241    if ( $GLOBALS['spipal_metas']['donner'] )
    43         $mod .= "<option value='2' $selected_2>"._T('spipal:exec_article_a_votre_bon_coeur')."</option>";
    44     $mod .= '</select>'.$pour;
     42        $mod .= "<option value='" . AV_VENTE_DON . "' $selected_2>"._T('spipal:exec_article_a_votre_bon_coeur')."</option>";
     43
     44    $mod .= '</select> '.$pour;
    4545    $mod .= '</div>';
    4646   
    47     $mod .= "<div id='truc' style='display:none; margin-top:10px'>";
    48     $mod .= mbt_echo_form_table(
    49         'spip_spipal_produits',
    50         '',
    51         $id_article,
    52         array(
     47    $sizes = array(
    5348            'ref_produit' => array(
    5449                'size' => 30,
     
    6358                'size' => 10
    6459            )
    65         ),
    66         'spipal',
    67         false
    68     );
     60                  );
    6961
    70     $mod .= "<button type='submit'>maj</button>";
    71     $mod .="</div>";
     62
     63    $mod .= "<div id='truc' style='display:none; margin-top:10px'>"
     64      .  mbt_echo_form_table('spip_spipal_produits', '',  $id_article, $sizes,'spipal', false)
     65      . "<button type='submit'>maj</button>"
     66      . "</div>";
    7267   
    7368    return debut_cadre_relief(_DIR_PLUGIN_SPIPAL_ICONES.'avendre.png', true, '', '')
  • _plugins_/spipal/inc/spipal_tabledata.php

    r43614 r43887  
    169169}
    170170
    171 function mbt_maj_table_depuis_form($table_mysql, $action)
     171function declare_item($table_mysql, $desc)
    172172{
    173     $trouver_table = charger_fonction('trouver_table', 'base');
    174     $abstract = $trouver_table($table_mysql);
    175     $fields = $abstract['field'];
    176    
    177     $pks    = explode(',', $abstract['key']['PRIMARY KEY']);
    178     foreach ( $pks as $k => $v) $pks[$k] = trim($v);
    179 
    180     if ($action == 'maj')
    181       return maj_item($table_mysql, $fields, $pks);
    182    
    183173    $args = array();
    184     foreach ($fields as $k => $v) {
     174    foreach ($desc['field'] as $k => $v) {
    185175      if ( $v !== 'TIMESTAMP' AND isset($_REQUEST[$k]) ) {
    186176        $args[$k]= $_REQUEST[$k];
     
    192182
    193183
    194 function maj_item($table_mysql, $desc, $pks)
     184function maj_item($table_mysql, $desc)
    195185{
     186        $pks    = preg_split('/\s*,\s*/', $desc['key']['PRIMARY KEY']);
    196187        $fields = array();
    197         foreach ($desc as $k => $v) {
     188        foreach ($desc['field'] as $k => $v) {
    198189                if ( $v !== 'TIMESTAMP')
    199190                  $fields[$k] = $_REQUEST[$k];
     
    213204          sql_updateq($table_mysql, $fields, join(" AND ", $and));
    214205}
    215 
    216 function supprimer_item($table_mysql, $pk, $id)
    217 {
    218         sql_delete($table_mysql, "$pk=" . intval($id));
    219 }
    220206?>
  • _plugins_/spipal/spipal_options.php

    r43492 r43887  
    1414define('_DIR_PLUGIN_SPIPAL_ICONES', _DIR_PLUGIN_SPIPAL.'img_pack/');
    1515define ('AV_VENTE_GRATUIT', 0);
    16 define ('AV_VENTE_ACHAT',   1);
    17 define ('AV_VENTE_DON',     2); //prix de vente = 0;
     16define ('AV_VENTE_DON',     1);
     17define ('AV_VENTE_ACHAT',   2);
    1818
    19 function est_a_vendre($id_article) {
     19function est_payable($id_article) {
    2020        return sql_fetsel('*', 'spip_spipal_produits', "id_article=" . intval($id_article));
    2121}
Note: See TracChangeset for help on using the changeset viewer.