Back to top

Autore Topic: Gestire i Prezzi d'acquisto (costo) Prodotti  (Letto 1618 volte)

Offline simone191

  • Nuovo arrivato
  • *
  • Post: 9
    • Mostra profilo
Gestire i Prezzi d'acquisto (costo) Prodotti
« il: 24 Gen 2012, 20:59:09 »
Dopo un po'di modifiche, finalmente riesco a gestire i prezzi d'acquisto dei prodotti.
Cioè non il prezzo di vendita, ma il costo d'acquisto al fornitore (o costo di produzione).
 
Spiego le modifiche.
Nella tabella "jos_vm_product" ho aggiunto i seguenti campi
- 'product_cost' (decimal)
- 'product_currency_cost' (char)
Ha la stessa struttura di 'product_currency' in "jos_vm_product_price" - scrive il codice della valuta - che corrisponde a 'currency_code' in "jos_vm_currency"
- 'product_cost_eur' (decimal)

Ho modificato il file "product.product_form.php" per poter gestire i campi (solo dal backend).
Quindi adesso posso gestire:
- Costo in Valuta (inserisco il costo nel campo)
- Valuta (che seleziono dalla lista delle valute)
- Costo in Euro (inserisco il costo in euro, ma vorrei che venisse calcolato automaticamente)

I campi funzionano bene (ho aggiornato anche le classi... e salvando, scrivono nel database)
...e fin qui tutto ok!
Poi nella tabella "jos_vm_currency" ho aggiunto il campo
- 'currency_exchange' (decimal)
Anche per questo ho fatto un po' di modifiche per gestire il campo dal backend (una faticata... non sono programmatore e non conosco il php, solo deduzioni e copia e incolla)

Adesso avrei bisogno di un aiuto con il codice, per finire di modificare "product.product_form.php"
Vorrei legare questo campo con il Costo in Euro e il Costo in Valuta, cioè aggiungere questa funzione:
far calcolare automaticamente il Costo in Euro quando inserisco il Costo in Valuta
(Una funzione simile a onkeyup="updateGross();" che fa aggiornare il prezzo di listino incluso iva, quando inserisci il prezzo netto - e viceversa)
es:
se un prodotto ha ("jos_vm_product")
- Costo in Valuta = 1200,00 ('product_cost')
- Valuta = USD ('product_currency_cost')
Allora il
- Costo in Euro = 1000 ('product_cost_eur')
La funzione dovrebbe mettere in relazione:
"jos_vm_currency"->'currency_code' USD = 'currency_exchange' = 1,2
-> "jos_vm_product" -> 'product_currency_cost' = USD e 'product_cost' = 1200,00
-> 1200/1,2 = 1000
(cioè il Costo in Valuta / rapporto di Cambio = Costo in Euro)
 
Vi posto qui sotto il codice che ho aggiunto a sito://administrator/components/com_virtuemart/html/
"product.product_form.php"
Citazione
]
('PHPSHOP_MULTISELECT') ) ?></div>
           </td>
          <td width="71%" ><?php
            $ps_product_category->list_all("product_categories[]", "", $my_categories, 10, false, true);
            ?>
           </td>     
        <?php
       }
       ?>
       </tr>
       <?php
      }
      ?>
     </table>
   </td>
   <td>
    //INIZIO CODICE AGGIUNTO
 <table class="adminform">
<tr class="row1">
          <td width="25%"><div style="text-align:right;font-weight:bold;">
            <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_COST_NET') ?>:</div>
          </td>
          <td width="10%">
            <input type="text" class="inputbox"  name="product_cost" value="<?php $db->sp("product_cost"); ?>" size="10" maxlength="10" />
          </td>
<td><div style="text-align:right;font-weight:bold;">
   <?php
   echo $VM_LANG->_( 'PHPSHOP_PRICE_FORM_CURRENCY' ) ?>:</div>
      </td>
  <td>
      <?php
        $ps_html->list_currency( "product_currency_cost", $db->sf( "product_currency_cost" ) ) ?>
      </td>
</tr>
<tr class="row0">
<td width="25%"><div style="text-align:right;font-weight:bold;">
   <?php
   echo $VM_LANG->_( 'PHPSHOP_PRODUCT_FORM_COST_NET_EUR' ) ?>:</div>
      </td>
<td width="10%">
            <input type="text" class="inputbox"  name="product_cost_eur" value="<?php $db->sp("product_cost_eur"); ?>" size="10" maxlength="10" />
          </td>
       </tr>
     </table>
  //FINE CODICE AGGIUNTO
    <table class="adminform">
       <tr class="row0">
          <td width="29%" ><div style="text-align:right;font-weight:bold;">
           <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_PRICE_NET') ?>:</div>
(Dimenticavo) VM 1.1.8 stabile
« Ultima modifica: 25 Gen 2012, 13:19:08 da simone191 »

Offline simone191

  • Nuovo arrivato
  • *
  • Post: 9
    • Mostra profilo
Re:Gestire i Prezzi d'acquisto (costo) Prodotti
« Risposta #1 il: 27 Gen 2012, 17:45:59 »
  Cerco di spiegare meglio quello di cui avrei bisogno.


Le due funzioni che vorrei inserire sono:
“updateCostNetEur”
“update CostNet”


Che aggiungendole nel file “product.product_form.php” risulterebbe quindi cosi:
Citazione


// COSTO IN VALUTA + ONKEYUP
<tr class="row1">
<td width="25%"><div style="text-align:right;font-weight:bold;">
<?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_COST_NET') ?>:</div>
</td>


<td width="10%">
<input type="text" class="inputbox" name="product_cost" onkeyup="updateCostNetEur();" value="<?php $db->sp("product_cost"); ?>" size="10" maxlength="10" />
</td>


// VALUTA DI ACQUISTO
<td><div style="text-align:right;font-weight:bold;">
<?php
echo $VM_LANG->_( 'PHPSHOP_PRICE_FORM_CURRENCY' ) ?>:</div>
</td>
<td>
<?php
$ps_html->list_currency( "product_currency_cost", $db->sf( "product_currency_cost" ) ) ?>
</td>
</tr>






// COSTO IN EURO + ONKEYUP
<tr class="row0">
<td width="25%"><div style="text-align:right;font-weight:bold;">
<?php
echo $VM_LANG->_( 'PHPSHOP_PRODUCT_FORM_COST_NET_EUR' ) ?>:</div>
</td>


<td width="10%">
<input type="text" class="inputbox" name="product_cost_eur" onkeyup="updateCostNet();" value="<?php $db->sp("product_cost_eur"); ?>" size="10" maxlength="10" />
</td>






Io vorrei che quando inserisco nel campo il Costo in Valuta, automaticamente mi aggiorna il campo del Costo in Euro (e viceversa), in base al valore di cambio della valuta di acquisto.
(tipo come fa con i campi del prezzo netto e del prezzo ivato)


Cerco di descrivere con la logica quello che dovrebbero fare


Citazione
//credo che le funzioni siano in javascript, giusto? Quindi:
<script type="text/javascript">


// FUNZIONE PER AGGIORNARE IL COSTO IN EURO
function updateCostNetEur() {


Prendi il valore che trovi in:
'product_currency_cost'(di “jos_vm_product”)
relativo al prodotto
(mettiamo per esempio che trova il valore USD, cioè il dollaro)


Trova lo stesso valore in:
'currency_code' (di “jos_vm_currency”)
->'currency_code' = USD


Prendi il valore corrispondente in
'currency_exchange' (di “jos_vm_currency”)
->'currency_code' = USD → 'currency_exchange' = 1.2


Prendi il valore di
product_cost (di “jos_vm_product”)
relativo al prodotto


Adesso aggiorna il valore del campo:
'product_cost_eur' (di “jos_vm_product”)
con questo calcolo:
product_cost_eur = product_cost / 1.2
(es: Costo in Euro = 1200 USD / 1.2 = 1000 Euro)






// FUNZIONE PER AGGIORNARE IL COSTO IN VALUTA
function updateCostNet() {


Dovrebbe essere tutto come sopra.
Cambia solo l'ultimo calcolo


product_cost = product_cost_eur * 1.2
(es: Costo in Valuta USD = 1000 EUR * 1.2 = 1200 USD)




</script>
« Ultima modifica: 27 Gen 2012, 17:50:18 da simone191 »

 



Web Design Bolzano Kreatif