Pagina 1 di 8 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 80
  1. #1

    Calcolo ritardi in entrata/uscita

    Ciao.

    Mi date una mano a sistemare questo codice per favore?

    In pratica in un form dati ho quattro campi:

    OrarioEntrata_1 OrarioUscita_1
    OrarioEntrata_2 OrarioUscita_2

    Devo calcolare le ore lavorate in meno rispetto all'orario assegnato a ciascun dipendente ed ho scritto:


    codice:
    'ORE PREVISTE DAL CONTRATTO
    strOreLavorativeGiornaliere = FormatNumber(Rs("OreLavorativeGiornaliere"))
     
    'PRIMA FASCIA ORARIA
    strOrarioEntrata_1 = replace(strOrarioEntrata_1, ".", ",")
    strOrarioUscita_1 = replace(strOrarioUscita_1, ".", ",")
    
    'SECONDA FASCIA ORARIA
    strOrarioEntrata_2 = replace(strOrarioEntrata_2, ".", ",")
    strOrarioUscita_2 = replace(strOrarioUscita_2, ".", ",")
    
    'DIFFERENZA TRA ORARIO ENTRATA E ORARIO USCITA 
        strOreLavorateGiornaliere = cDbl(strOrarioUscita_1) - cDbl(strOrarioEntrata_1)
        strOreLavorateGiornaliere = FormatNumber(strOreLavorateGiornaliere, 2)
        
        strOreLavorateGiornaliere_1 = cDbl(strOrarioUscita_2) - cDbl(strOrarioEntrata_2)
        strOreLavorateGiornaliere_1 = FormatNumber(strOreLavorateGiornaliere_1, 2)
        
    
    ' SE LE ORE PREVISTE SONO MAGGIORI DELLE ORE EFFETTIVE, SIGNIFICA CHE SI E' LAVORATO MENO   
    If strOreLavorativeGiornaliere > strOreLavorateGiornaliere then
       strOreLavorateGiornaliere = cDbl(strOreLavorativeGiornaliere) - cDbl(strOreLavorateGiornaliere)
    ElseIf strOreLavorativeGiornaliere > strOreLavorateGiornaliere_1 then
       strOreLavorateGiornaliere_1 = cDbl(strOreLavorativeGiornaliere) - cDbl(strOreLavorateGiornaliere_1)
    else
       strOreLavorateGiornaliere = 0
    end if
    Non funziona come dovrebbe nel senso che sbaglio qualche ragionamento...
    Gracias!

  2. #2
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    premetto che mi sono perso con tutte ste variabili che sono giuste ma lunghissime
    secondo me potresti dare na bella sommata alle ore lavorate
    totalegiorno = strOreLavorateGiornaliere + strOreLavorateGiornaliere_1
    dopo di che fai il confronto diretto fra quelle previste da contratto e quelle in totalegiorno
    puoi anche fare una normale sottrazione se il risultato e posito il tipo ha fatto meno
    se negativo o uguale a zero tutto va bene.

    Secondo me è meno complicato di tutto il controllo che fai tu che fra l'altro mi pare parziale
    ossia non sommi la mattina e il pomeriggio fai il confronto fra la mattina e poi se è ok fai il confronto con il pomeriggio ma penso sia impossibile che uno di mattina faccia già tutte le ore che dovrebbe

    Tanto mi pare di capire che non ti frega sapere se ha lavorato tot di mattina e tot di pomeriggio ma solo il totale nella giornata

  3. #3
    Tu ti sei perso con le variabili... io non ho capito una parola di quello che hai scritto...

  4. #4
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    Originariamente inviato da Enrique_Rojas
    Tu ti sei perso con le variabili... io non ho capito una parola di quello che hai scritto...
    ah ah ah
    fantastico.
    allora provo ad essere meno criptico (della serie mi sono capito solo io)
    1)
    fai una somma di tutte le ore che fa il tipo in un giorno e a video te la fai scrivere con un bel response.write
    così sai se fa bene tutte le somme
    a questo punto avrai il totale del lavorato
    2)
    fai totale_da_lavorare - totale_lavorato
    se il risultato è positivo vuol dire che il tipo non ha lavorato quanto doveva
    es. 8(totale_da_lavorare_per_contratto) - 4(la somma delle ore fatte fra mattina e pom) = 4
    oppure
    8(totale_da_lavorare_per_contratto) - 8(la somma delle ore fatte fra mattina e pom) = 0
    tutto ok ha fatto il dovuto
    8(totale_da_lavorare_per_contratto) - 9(la somma delle ore fatte fra mattina e pom) = -1
    il tipo ha lavorato più di quello che avrebbe dovuto.

    meno incasinato ora ???

    PS per le ore fatte realmente tu entri alle 8 ed esci alle 14 per cui farai 14 - 8 = 6
    di pom entra alle 17 ed esce alle 19 da cui 19 - 17 = 2
    in totale fra mattina e pom avrai 6 + 2
    questo come logica di calcolo per cui prova se funzia con ore esatte e poi magari ti complichi la vita introducendo i minuti

  5. #5
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    qui trovi qualcosa sul calcolo
    esiste una funzione apposta che si chiama datediff che secondo me ti aiuta tanto
    primo esempio
    secondo esempio

  6. #6
    Si, adesso si ho capito...

    Purtroppo non posso seguire il tuo pur valido suggerimento, perchè le ore da contratto sono riferite ad un solo turno di 8 ore.

    OrarioEntrata_2 OrarioUscita_2

    si riferiscono ad un eventuale turno in sostituzione di uno assente.

  7. #7
    Ho provato con DateDiff:

    codice:
    strOreLavorativeGiornaliere = Rs("OreLavorativeGiornaliere")
    
        strOreLavorateGiornaliere = DateDiff("h" , strOrarioEntrata_1, strOrarioUscita_1)
        strOreNonLavorateGiornaliere = DateDiff("h" , strOreLavorateGiornaliere, strOreLavorativeGiornaliere)
        
       
    response.write "Previste = "& strOreLavorativeGiornaliere &"
    " &_
                   "Effettive = "& strOreLavorateGiornaliere &"
    " &_
                   "Non lavorate = "& strOreNonLavorateGiornaliere &"
    
    "
    response.end
    Risultato:

    Previste = 8
    Effettive = 7
    Non lavorate = 24

  8. #8
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    se lo scopre "il mortadella" siamo fregati ...
    ma sto 24 da dove salta fuori ???
    L'unica cosa che mi viene in mente è di controllare il formato dei valori nel database ricordo che una volta son diventato matto per questo ...
    ma non capisco una cosa ....
    se ti fa il calcolo corretto (come sembra) fra entrata e uscita perchè poi si perde ?

  9. #9
    Il formato è questo:

    codice:
    <%
    
    strOreLavorativeGiornaliere = 8
    
    strOrarioEntrata_1 = "08.00"
    strOrarioUscita_1 = "15.00"
    
    strOrarioEntrata_2 = "12.00"
    strOrarioUscita_2 = "15.00"
    
        strOreLavorateGiornaliere = DateDiff("h" , strOrarioEntrata_1, strOrarioUscita_1)
        strOreNonLavorateGiornaliere = DateDiff("h" , strOreLavorateGiornaliere, strOreLavorativeGiornaliere)
        
       
    response.write "Previste = "& strOreLavorativeGiornaliere &"
    " &_
                   "Effettive = "& strOreLavorateGiornaliere &"
    " &_
                   "Non lavorate = "& strOreNonLavorateGiornaliere &"
    
    "
    response.end
    
    
    %>

  10. #10
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    sai cosa ...
    credo possa far casini con il datediff e strOreLavorativeGiornaliere dato che non è un orario vero e proprio
    prova a fare una "sporca" sottrazione senza usare il datediff
    perchè se ci pensi il 24 potrebbe essere la differenza fra 08.00 e 8 (strOreLavorativeGiornaliere) in pratica lui presume che siano le 8 di giovedì e le 8 del venerdì
    preciso che è teoria

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.