Funzione che risulta sempre 0

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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ò
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
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...
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
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..
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
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
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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ì
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
perfetto provo e ti saprò dire... per quanto riguarda l'eliminazione di una riga sai indirizzarmi?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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

  • prove_rev01.zip
    3,1 KB · Visite: 160

Emix

Utente Attivo
15 Feb 2010
596
0
16
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...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
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 :)
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
non c'è fretta figurati... ti posto lo schema della tabella transazioni:


Immagine.png
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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?
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
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...
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
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
Autore Titolo Forum Risposte Data
M funzione mysql che ritorna i microsecondi a partire dal 1-1-1970 MySQL 3
J [Javascript] una funzione ricorsiva che non capisco come lavori Javascript 6
D PHP:funzione che opera una query su argomento PHP 8
G Funzione che resta in ascolto per una chiamata esterna Javascript 1
Shyson Modificare funzione che aggiorna la pagina PHP 0
J Funzione js che da errore Javascript 3
Shyson Funzione che stampa data ultimo aggiornamento del sito (non della pagina) PHP 4
D Bottone che svolge funzione nella stessa pagina Javascript 9
M Chiamata di una funzione che contenga un array PHP 13
G funzione che su locale funziona ma su remoto no PHP 1
O capire che funzione è PHP 2
D funzione AJAX che ricarica dei campi select Ajax 3
G contextmenu e funzione che lo attiva Javascript 1
G Funzione che calcola la somma Javascript 7
D Funzione javascript che pulisca un campo input Javascript 0
G funzione che cambia pagina al click Ajax 6
B Codice che disabilita la funzione di Copia Schermo? Javascript 1
X Php e funzione che restituisce byte PHP 2
T funzione che crea link e lo inserisce nell'input Javascript 1
M funzione che comunica titolo di una pagina ASP.NET 2
G funzione pari e dispari che non va Javascript 5
V funzione che esegue query PHP 9
G Funzione che mi dia i giorni della settimana PHP 2
R Funzione che converte in caratteri orientali PHP 3
C funzione che non funziona .... Javascript 4
C funzione che ritorna html di un url? Javascript 3
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Variabile non risconosciuta dentro una funzione PHP 1
P Implementazione funzione FileReader Javascript 0
P Funzione copia multipla. Javascript 2
P Funzione jQuery Ajax invio file a php jQuery 1
A Funzione read URL PHP 6
F Funzione Glob - ricerca file contenente una parola PHP 1
A Mail con funzione mail() riconosciute come spam PHP 9
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
A funzione iconv () non mi funziona PHP 4
D Come usare funzione php PHP 6
Y verificare condizione dopo esecuzione della funzione Programmazione 0
IClaude Funzione Javascript Javascript 8
A Funzione share come modificarla Social Media Marketing 0
L funzione onclik con seno e coseno non va Javascript 3
L funzione onclick non va Javascript 26
G modifica corretta funzione da eregi() a preg_match() PHP 3
Shyson Modificare funzione php PHP 15
L pdo (stampare un valore con ritorno a funzione) PHP 0
elpirata Funzione conversione da minuti in ore Javascript 0
@ [MS Access] Funzione Iif..is null... Database 0
F Funzione deprecata in PHP7 PHP 1
G [MS Access] Funzione ARROTONDA non definita nell'espressione MS Access 1
max1974 [Javascript] Funzione Errata procedura Javascript 2

Discussioni simili