Funzione che risulta sempre 0

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio
ciao
ho ripreso il codice che ti ho inviato e fatto delle prove inserendo nella casella di sx ("barcode") e al submit (che dovrebbe corrispomdere a quella che nel tuo script è vedi codice)
1) un barcode esistente -> appare la riga con (barcode descrizione prezzo) = come da tabella db quantità=1 sconto %=0 importo=0
2)un barcode non esistente ->appare la riga con barcode=inserito descrizione=vuoto prezzo=vuoto quantità=1 sconto %=0 importo=0
3)lasciando la casella vuota ->non succede nulla (non viene generata alcuna riga) appaiono solo(se non gia presenti per un precedente inserimento) le intestazioni e i due pulsanti che se premuti non hanno effetto
(non appare il notice in nessuna delle prove che ho fatto na all'inserimento delle righe ne al calcola ne tantomeno all'azzera o aprendo la pag la prima volta, mistero??)

nella casella "barcode" rimane memorizzato l'ultimo valore inserito (considera che la pag NON si aggiorna, si aggiorna solo la pag contenuta nell'iframe) e se ridò il submit appare una riga uguale alla precedente.

intanto poteri fare una cosa nel momento in cui appaiono le righe:
se il barcode non esiste in tabella anche il campo prezzo diventa scrivibile. quindi puoi aggiungere i dati (descrizione e prezzo) nella riga e al calcola oltre ad eseguire il calcolo salva in tabella il barcode e i due dati mancanti

non subito però
 
bho in locale con easy php lo da l'errore... qui no.. si la cosa che dici del prezzo mi sembra valida... mi rimane giusto da fare a parte la grafica, l'elimina riga... ma credo che ho bisogno del tuo aiuto...
 
tranquillissimo.. ma che scherzi gia hai fatto abbastanza e ne sono infinitamente grato.... Riesci ad inderizzarmi per capire come fare l'elimina riga? magari intanto provo.. se non ti è di disturbo e soprattutto di peso.. grazie ancora... veramente di cuore..
 
Borgo io ho una necessità... Nel senso che mi va piu che bene come lo hai fatto te... unica cosa è che oltre allo sconto percentuale, c'è lo sconto valore... Come posso aggiungerlo? Ti allego una immagine di come dobrebbe essere... Chiaramente lo sfondo non fa niente ci penso io...

Immagine.png
 
ciao
basta che tu aggiunga un campo di input uguale allo sconto percento (cambiando nome)
poi nella parte "calcola" recuperi i valori seguendo lo schema che ti ho postato e modifichi la parte che ho fatto per il calcolo dello sconto con una serie di if/elseif/else
1) se sconto_% e sconto_val entrambi == 0 non gli fai calcolare lo sconto
2) se sconto_% !=0 e sconto_val == 0 gli fai calcolare lo sconto con la sua formula
3) se sconto_% == 0 e sconto_val != 0 non gli fai calcolare lo sconto (da quello che ho capito prezzo finale = prezzo - sconto_val)
4) se sconto_% != 0 e sconto_val != 0 qui sta a te decidere cosa fare (a chi dare la priorità)
4.1) se dai la priorità a sconto_% calcoli come al punto 2 e metti a 0 la sessione di sconto_val
4.2) se la dai a sconto_val viceversa, calcoli come in 3 e metti a 0 la sessione di sconto_%

poi, salvo problemi, ci risentiamo verso lunedì
 
perfetto provo e ti saprò dire... per quanto riguarda l'eliminazione di una riga sai indirizzarmi?
 
ciao
ecco una versione aggiornata
il funzionamento è simile al precedente, cioè qualsiasi cambiamento si registra solo dopo il "calcola"
se inserisci un nuovo barcode senza aver dato il calcola le modifiche apportate non vengono salvate in sessione e quindi le perdi
in più questa revisione fa:
1) inserisci un barcode che non esiste nel db, la casella prezzo diventa scrivibile ti appare la richiesta se salvare nel db, riempi la riga (se non metti la descrizione e il prezzo non salva nel db)
spunti salva (pennultima colonna a dx grigia)(se non riempi la casella con descrizione e prezzo non salva, comunque puoi farlo in un secondo momento, i valori rimangono in sessione)
ocio non ho messo tutti i campi della tua tabella, ma penso che comunque ti convenga modificarli aggiungendo quello che vuoi in un secondo momento con pagina apposita di modifica/elimina)
se per caso spunti il salva su due barcode uguali ti salva solo il primo, non fa due o più record)
2) se vuoi eliminare una riga spunti l'elimina (colonna a dx rossa), per fare questo ho dovuto non eliminarla ma portare la quantità a zero
altrimenti si sballavano gli indici delle sezioni, comunque vedi che al calcola toglie i valori dai totali.
quindi per eliminare una riga puoi anche mettere a zero la quantià (il risultato è lo stesso) se poi vuoi ripristinarla riporti la quantità al valore che vuoi
3) ti ho aggiunto lo sconto valore e calcola (se sconto % =0) sia il totale riga che il corrispondente valore del %, ho dato (se entrambi) la preminenza allo sconto %
(tieni presente che ci possono essere dei piccoli errori di arrotondamento nei calcoli)
4) aggiunto contanti e resto
penso di averti messo sulla buona strada, ti conviene fare delle prove per capire bene il funzionamento prima di fare delle modifiche

p.s.
i file hanno lo stesso nome dei precedenti quaindi se vuoi mantenerli salvateli da qualche parte altrimenti al dizip si sovrascrivono
ps al ps
altra nottata, se funzia mi devi un caffè
 

Allegati

ciao
ecco una versione aggiornata
il funzionamento è simile al precedente, cioè qualsiasi cambiamento si registra solo dopo il "calcola"
se inserisci un nuovo barcode senza aver dato il calcola le modifiche apportate non vengono salvate in sessione e quindi le perdi
in più questa revisione fa:
1) inserisci un barcode che non esiste nel db, la casella prezzo diventa scrivibile ti appare la richiesta se salvare nel db, riempi la riga (se non metti la descrizione e il prezzo non salva nel db)
spunti salva (pennultima colonna a dx grigia)(se non riempi la casella con descrizione e prezzo non salva, comunque puoi farlo in un secondo momento, i valori rimangono in sessione)
ocio non ho messo tutti i campi della tua tabella, ma penso che comunque ti convenga modificarli aggiungendo quello che vuoi in un secondo momento con pagina apposita di modifica/elimina)
se per caso spunti il salva su due barcode uguali ti salva solo il primo, non fa due o più record)
2) se vuoi eliminare una riga spunti l'elimina (colonna a dx rossa), per fare questo ho dovuto non eliminarla ma portare la quantità a zero
altrimenti si sballavano gli indici delle sezioni, comunque vedi che al calcola toglie i valori dai totali.
quindi per eliminare una riga puoi anche mettere a zero la quantià (il risultato è lo stesso) se poi vuoi ripristinarla riporti la quantità al valore che vuoi
3) ti ho aggiunto lo sconto valore e calcola (se sconto % =0) sia il totale riga che il corrispondente valore del %, ho dato (se entrambi) la preminenza allo sconto %
(tieni presente che ci possono essere dei piccoli errori di arrotondamento nei calcoli)
4) aggiunto contanti e resto
penso di averti messo sulla buona strada, ti conviene fare delle prove per capire bene il funzionamento prima di fare delle modifiche

p.s.
i file hanno lo stesso nome dei precedenti quaindi se vuoi mantenerli salvateli da qualche parte altrimenti al dizip si sovrascrivono
ps al ps
altra nottata, se funzia mi devi un caffè

Borgo... Tu sei un genio.. cmq faccio dei test approfonditi e ti faccio sapere... Te ne offro un litro di caffè altro che una tazza...
 
ciao
stavo pensando una cosa:
dopo che hai finito di inserire i barcode (e sessionato il tutto con calcola) cosa fai dei dati li stampo, li salvi, li invii per email?
perchè io farei così:
al primo calcola ti appare un pulsante con "FINITO ?" (è per caso quello che chiami transazione?) e le modalità di pagamento (io le farei in radio non in button)
se ci clicchi sopra vai alla pagina che ti mostra il riassunto di quello che hai fatto (qui si eliminano le righe eliminate) e a una conferma fa le operazioni che ti servono
fammi sapere

ecco il genio :)
miele_linguacciuto_04_rid.jpg
 
ciao
stavo pensando una cosa:
dopo che hai finito di inserire i barcode (e sessionato il tutto con calcola) cosa fai dei dati li stampo, li salvi, li invii per email?
perchè io farei così:
al primo calcola ti appare un pulsante con "FINITO ?" (è per caso quello che chiami transazione?) e le modalità di pagamento (io le farei in radio non in button)
se ci clicchi sopra vai alla pagina che ti mostra il riassunto di quello che hai fatto (qui si eliminano le righe eliminate) e a una conferma fa le operazioni che ti servono
fammi sapere

ecco il genio :)
Vedi l'allegato 1825

Si esatto, più che un pulsante farei un alert... le modalita di pagamento sono indifferenti... radio button o pulsanti.... le mando in db di nome "transazioni" che registra tutte le righe con id diversi ma num transazione uguale....

Complimenti al genio :D e bellissimo :)
 
non c'è fretta figurati... ti posto lo schema della tabella transazioni:


Immagine.png
 
ciao
un paio di cose relative alla tabella prima di procedere
1) immagino che il campo id sia autoincrement oltre a primarikey
2) che differenza c'è tra barcode e codice (avrei voluto chiederlo prima)?
3) perche metti prezzo varchar e non float?
4) per sconto intendi il % o il valore, comunque perche non float?
5) causale cosa è? (pagamento bancomat...?)
6) transaziione devi inseririlo?
7) reparto, fornitore, operatore
comunque i valori di casuale, transazione, reparto, fornitore, operatore devi inseririli al momento o ti provengono da qualche parte?
 
ciao
un paio di cose relative alla tabella prima di procedere
1) immagino che il campo id sia autoincrement oltre a primarikey
2) che differenza c'è tra barcode e codice (avrei voluto chiederlo prima)?
3) perche metti prezzo varchar e non float?
4) per sconto intendi il % o il valore, comunque perche non float?
5) causale cosa è? (pagamento bancomat...?)
6) transaziione devi inseririlo?
7) reparto, fornitore, operatore
comunque i valori di casuale, transazione, reparto, fornitore, operatore devi inseririli al momento o ti provengono da qualche parte?

Allora ti rispondo per punti :

1) Si è AI.
2) Barcode è il barcode reale dell'oggetto in formato EAN 13 il codice è il codice dell'oggetto stesso (in genere il codice si usa quello di fabbrica il barcode è personale)
3) Uhm.. se non ricordo male perchè float mi restituisce 12.1 e non 12.10...
4) per sconto intendo qualsiasi sconto applicato... quindi se usi percentuale apparira 10% se usi valore apparira 10€ (si può fare? oppure meglio mettere due colonne?)
5) Si esatto causale è la causale di movimento (scarico amgazzino-Bancomat-Contanti-CartaCredito etc)
6) la transazione si autoincrementa...nel file che ti ho passato se vedi ad inizio c'è il recupero dell'ultima transazione e poi fa transazione+1.. Serve perchè io in un conto posso avere piu righe descrittive.. quindi piu id con una transazione unica..
7) No quel tipo di valori se ne occupa chi inserisce gli articoli in magazzino... Per cui nel caso in cui il cassiere al momento della vendita inserisca una riga "nuova" bisogna immediatamente mandare tutte le righe per email ad un indirizzo apposito che si occuperà, tramite un form apposito, di vedere l'id ,andarlo a recuperare e ad aggiungere tutte le voci...

Una cosa che va aggiunta è l'operatore... Perchè nella sessione bisogna essere loggati... E l'operatore loggato diventa proprietario della sessione di lavoro.. Nel senso che se fa un danno quell'operatore, nel DB oltre la transazione etc, ci deve essere l'operatore che l'ha fatta....

I campi data e ora servono per vedere a che ora è stata fatta la transazione...

Se ti occorrono altre delucidazioni chiedi pure :)

Ti ringrazio come al solito per l'interessamento...
 
ciao
ok, provo a buttare giu qualcosa

Buongiorno Borgo,
ho fatto delle prove più approfondite ed ho notato una cosa... Se io inserisco ad esempio un articolo di 156€, applico uno sconto valore di 50€ e inserisco quantita 5, il risultato sarebbe 780€ - 50 € = 730€. Fin qui tutto ok... Ma nello stesso momento si genera anche la colonna sconto percentuale, inserendo la percentuale di sconto in base al risultato... Fin qui mi sta bene, anzi grande idea... Unica pecca è che è errata perchè arrotondata.... Facendo lo stesso calcolo lui dice che la percentuale di sconto è 6.4. Se prendi la calcolatrice e fai 780€-6,4% viene fuori 730,08... Lui invece si perde quel ,08... Purtroppo in questi ambiti è passabile da denuncia penale per frode.... Come possiamo fare per mettere arrotondamento a 2 cifre dopo la virgola?
Inoltre se si prova a mettere sconto 6,4 direttamente, lui in automatico lo tronca a 6....
 

Discussioni simili