Cassa corporazioni
Cassa corporazioni postato il 10/02/2012 19:15:28 nel forum programmazione, open source e hosting
Salve a tutti.
Sto utilizzando GDRCD 5.1.
La mia idea era quella di creare una cassa per ogni corporazione, alla quale fosse possibile fare donazioni (andando su "Servizi Bancari") e dalle quali i mastergilde potessero prelevare soldi per finanziare eventuali ristrutturazioni o per fare un premio in denaro ai membri della propria corporazione (ovviamente, ogni mastergilda dovrebbe poter accedere solamente alla cassa della propria corporazione).
Se vado in "Servizi Bancari" c'è la possibilità di fare un Bonifico a qualcuno. La mia idea era quella di poterli fare anche alle casse delle corporazioni (anche creando una cosa del tipo "Bonifico Corporazioni" con il quale sia possibile fare donazioni solo alle corporazioni, così da lasciare "Bonifico" per le persone e usare "Bonifico Corporazioni" per le gilde...oppure fare tutto con "Bonifico", a me vanno bene entrambe le soluzioni).
Il problema è che non so come creare queste casse (a dire il vero, non so nemmeno se si possano creare). Avevo pensato di creare dei PNG e chiamarli "Cassa Nome gilda", ma questa idea non mi piace molto, vorrei usarla solo come ultima possibilità.
Sapete dirmi come creare le casse per le corporazioni?
Grazie.
Pagine → 1 2
10/02/2012 19:20:05
Bella domanda la tua e spero ti rispondano perchè anche io sarei interessata ad avere qualcosa del genere anzi che il PNG forziere che è un po scomodo effettivamente.
però non penso neanche sia impossibile. potrebbe essere un idea anche per chi sta lavorando sulle modifiche di gdr 5.1
mi aggrego alla domanda per info.e nel mentre ci lavoriamo su per capire come si fa ed eventualmente dirlo :)
10/02/2012 22:13:17
nella land che co-gestisco, il programmatore ha creato le casse di corporazione (alquanto utili!!!! *_*).
il come le ha create però non lo so, ma credo che semplicemente abbia aperto un conto bancario, ed ha associato l'id del conto alla corporazione, facendo i dovuti controlli incrociati sul personaggio che corrispondeva al master, etc.
10/02/2012 22:41:45
Io ho creato le casse dei villaggi nel mio, la logica non dovrebbe essere troppo diversa per le corporazioni:
1_Creare un nuovo campo nella tabella gilda, di tipo INT, chiamato Cassa
2_Nei servizi bancari aggiungere una sezione per le donazioni alle corporazione, l'utente deve specificare importo, nome corporazione (magari selezionata da un menu a tendina) e la causale. Alla pressione del tasto invia i soldi vengono scalati dai soldi dell'utente e vengono aggiunti alla cassa della gilda, togliendo le eventuali tasse bancarie.
3_I capi corporazione avranno una sezione in più nei servizi bancari che gli permetterà di fare bonifici con i soldi della corporazione. E nel mercato avranno una checkbox da cliccare se vogliono comprare con i soldi della corporazione
L'implementazione effettiva è un po' complessa, se fatta bene contiene un bel po' di controlli per i permessi e per verificare che tutte le query vengano eseguite con successo (se ne fallisce una rischi di perdere soldi o di generarne di nuovi dal nulla)
11/02/2012 01:31:12
leoblacksoul ha scritto: Io ho creato le casse dei villaggi nel mio, la logica non dovrebbe essere troppo diversa per le corporazioni:
1_Creare un nuovo campo nella tabella gilda, di tipo INT, chiamato Cassa
2_Nei servizi bancari aggiungere una sezione per le donazioni alle corporazione, l'utente deve specificare importo, nome corporazione (magari selezionata da un menu a tendina) e la causale. Alla pressione del tasto invia i soldi vengono scalati dai soldi dell'utente e vengono aggiunti alla cassa della gilda, togliendo le eventuali tasse bancarie.
3_I capi corporazione avranno una sezione in più nei servizi bancari che gli permetterà di fare bonifici con i soldi della corporazione. E nel mercato avranno una checkbox da cliccare se vogliono comprare con i soldi della corporazione
L'implementazione effettiva è un po' complessa, se fatta bene contiene un bel po' di controlli per i permessi e per verificare che tutte le query vengano eseguite con successo (se ne fallisce una rischi di perdere soldi o di generarne di nuovi dal nulla)
Se hai creato già tale sistema ed usi gdrcd immagino che rialscerai a breve la patch rispettando lo spirito che è alla base della licenza?
Ovvio che villaggi, corporazioni, razze ecc sono similari nel loro trattametno in fase di programmazione sono tutte classificazioni della utenza in categorie similari e spesso coincidenti.
11/02/2012 14:01:52
Purtroppo no, perchè la mia implemetazione è basata su una base di GDRCD 3 Extreme e fuso con un mio CMS privato....oltre a non avere le funzioni di donazione che a te interessano. La mia implementazione si limita al mercato e i villaggi sono "stipendiati" una volta al mese.
Per scrivere una cosa come quella che chiedi dovrei rifare tutto da capo.
14/05/2012 16:49:03
Riporto in vita questo mio vecchissimo topic, sperando che qualcuno mi aiuti.
Io la voce CASSA nella tabella l'ho creata.
Per quanto riguarda la parte del bonifico, copiando quella già presente ho creato il tasto eccetera, provando ad apporatre delle modifiche. E il risultato è il seguente: o mi fa fare il bonifico ad un pg (che non è quello che mi interessa, visto che già c'è) o dove dovrebbe esserci l'esenco dei destinatari c'è una pagina bianca.
Un aiutino?
24/05/2012 00:19:05
sperando di non essere crocifisso in piazza
allora io ho tentato premetto che sono poche setti,mane che uso il php quindi ho fatto un campo <credo si chiami cosi>nella tabella gilda di nome cassa poi ho modificato in
servizi_banca
<?php /*Bonifico*/
if((isset($_POST['op'])===TRUE)&&($_POST['op']=='bonifico')){
$query = gdrcd_query("SELECT nome FROM personaggio WHERE nome = '" . $_POST['beneficiario'] . "' LIMIT 1");
$query = gdrcd_query("SELECT nome FROM gilda WHERE nome = '" . $_POST['beneficiario'] . "' LIMIT 1");
if (empty($_POST['beneficiario'])){
echo '<div class="warning">Il beneficiario che hai inserito non esiste o non è valido!</div>';
} else if (($_POST['ammontare']<=0)||(is_numeric($_POST['ammontare'])===FALSE)){
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['interface']['bank']['error']).'</div>';
} else if($_POST['ammontare']>$banca){
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['interface']['bank']['withdraw_no']).'</div>';
} else {
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['interface']['bank']['done']).'</div>';
/*Eseguo la transazione*/
gdrcd_query("UPDATE personaggio SET banca = banca - ".gdrcd_filter('num',$_POST['ammontare'])." WHERE nome = '".$_SESSION['login']."' LIMIT 1");
gdrcd_query("UPDATE personaggio SET banca = banca + ".gdrcd_filter('num',$_POST['ammontare'])." WHERE nome = '".$_POST['beneficiario']."' LIMIT 1");
gdrcd_query("UPDATE gilda SET cassa = cassa + ".gdrcd_filter('num',$_POST['ammontare'])." WHERE nome = '".$_POST['beneficiario']."' LIMIT 1");
/*Registro l'evento (Passaggio di danaro)*/
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento ,descrizione_evento) VALUES ('".gdrcd_filter('in',$_POST['beneficiario'])."', '".$_SESSION['login']."', NOW(), ".BONIFICO.", '".'('.gdrcd_filter('num',$_POST['ammontare']).' '.$PARAMETERS['names']['currency']['plur'].') '.gdrcd_filter('in',$_POST['causale'])."')");
gdrcd_query("INSERT INTO messaggi (mittente, destinatario, spedito, testo) VALUES ('".$_SESSION['login']."','".gdrcd_capital_letter(gdrcd_filter('in',$_POST['beneficiario']))."', NOW(), '".gdrcd_filter('in', $_SESSION['login'].' '.$MESSAGE['interface']['bank']['notice'].' '.gdrcd_filter('num',$_POST['ammontare']).' '.$PARAMETERS['names']['currency']['plur']).'.
'.gdrcd_filter('in',$_POST['causale'])."')");
} ?>
<div class="link_back">
<a href="main.php?page=servizi_banca"><?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['back']); ?></a>
</div>
<?php } ?>
aggiungendo
$query = gdrcd_query("SELECT nome FROM gilda WHERE nome = '" . $_POST['beneficiario'] . "' LIMIT 1");
gdrcd_query("UPDATE gilda SET cassa = cassa + ".gdrcd_filter('num',$_POST['ammontare'])." WHERE nome = '".$_POST['beneficiario']."' LIMIT 1");
sempre in
servizi_banca ho aggiunto
<!-- Bonifico gilde -->
<div class="form_gioco">
<form
action="main.php?page=servizi_banca"
method="post" >
<div class="form_label">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['payment1']) ?>
</div>
<div class='form_field'>
<input type="text" name="ammontare"
class="form_gestione_input"
value="0" />
</div>
<div class='form_field'>
<input name="op"
type="hidden"
class="form_gestione_input"
value="bonifico" />
<select name="beneficiario" class="form_gestione_selectbox">
<!-- PG -->
<?php $query="SELECT gilda.* FROM gilda ";
$nomi=gdrcd_query($query, 'result'); ?>
<option value="" selected>
<?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['payee']); ?>
</option>
<?php while($option=gdrcd_query($nomi, 'fetch')){ ?>
<option value="<?php echo $option['nome']; ?>">
<?php echo gdrcd_filter('out',$option['nome'])." ".gdrcd_filter('out',$option['cognome']); ?>
</option>
<?php echo "banca :" .$banca; ?>
<?php }//while
gdrcd_query($nomi, 'free');
?>
</select>
</div>
<div class='form_field'>
<input type="text" name="causale"
class="form_gestione_input"
value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['cause']); ?>" />
</div>
<div class='form_submit'>
<input name="conferma"
type="submit"
class="form_gestione_input"
value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['execute']); ?>" />
</div>
</form>
</div>
fin qui tutto bene almeno fin ora non ho trovato problemi il mio problema adesso e fare la cosa inversa prelevare dalla cassa della gilda e dare alla banca di un pg
Qualcuno mi puo aiutare?
15/08/2013 19:14:57
Riporto in vita questo vecchio topic perché ne ho davvero bisogno, come degli altri che ho aperto a cui nessuno a risposto.
Qualcuno può aiutarci con la parte restante del codice? Io sto facendo tentativi da un anno e ancora non ci sono riuscito. -.-
16/08/2013 18:59:17 e modificato da astro991 il 16/08/2013 19:58:51
Innanzitutto grazie per aver risposto. Ci sono però dei problemi:
1) il campo devo chiamarlo BANCA o CASSA? perché te hai detto di chiamarlo BANCA ma nel codice usi la parola CASSA (io l'ho per questo motivo chiamato CASSA sul db)
2) il codice non funziona completamente. la parte del bonifico va, ma non quella per ritirare il denaro. infatti questa parte del codice:
<?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['amount'].": ".$cassa." ".$PARAMETERS['names']['currency']['plur']);?>
a me restituisce la scritta Saldo: Monete senza restituire l'ammontare presente in cassa. inoltre, nonostante abbia depositato soldi nella cassa, al momento del prelievo mi dice che non ci sono abbastanza soldi nella cassa di gilda (eppure ho depositato 1 e ho provato a ritirare 1, quindi i soldi ci sono e il deposito è andato a buon fine).
Modifico perché mi son dimenticato di dire una cosa: ho modificato gli apici ovviamente, anche perché altrimenti l'altro pezzo di codice non funzionava; di conseguenza non può essere quello il motivo.
Edito di nuovo perché mi son accorto di un altro pezzo di codice che non funziona:
<?php echo gdrcd_filter('out',$MESSAGE['interface']['bank']['withdraw']) ?> Cassa <?php echo gdrcd_filter('out',$record['nome']) ?><br />
<?php echo gdrcd_filter('out',$record['personaggio']) ?>
A me questo pezzo di codice fa uscire solo la scritta Prelievo cassa, mentre da quel che vedo dovrebbe far comparire la scritta prelievo cassa "nome gilda", mentre il pezzo sotto non ho ancora capito a cosa serva, ma a me non appare.
16/08/2013 21:06:13
Io l'ho provato sul gdrcd vergine. Mi sa che il problema è in questa parte del codice:
<?php /*HELP: */
$row=gdrcd_query("SELECT soldi, banca, ultimo_stipendio FROM personaggio WHERE nome = '".$_SESSION['login']."' LIMIT 1");
$soldi=0+$row['soldi'];
$banca=0+$row['banca'];
$ultimo=$row['ultimo_stipendio'];
$query="SELECT ruolo.stipendio FROM clgpersonaggioruolo LEFT JOIN ruolo on clgpersonaggioruolo.id_ruolo = ruolo.id_ruolo WHERE clgpersonaggioruolo.personaggio = '".$_SESSION['login']."'";
$result=gdrcd_query($query, 'result');
$stipendio=0;
while($row=gdrcd_query($result, 'fetch')){
$stipendio+=$row['stipendio'];
}
gdrcd_query($result, 'free');
?>
Mentre $SOLDI, $BANCA, $STIPENDIO sono richiamati, $CASSA non lo è. Io ho provato di tutto, ma ogni cosa che faccio non funziona.
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Imperion ↗
Wuthering Waves ↗
Tibia ↗
World of the Sea Battle ↗
Cafuné ↗
War Thunder ↗
Hero Wars ↗
Enlisted ↗
CRSED: F.O.A.D. ↗
RAID Shadow Legends ↗