Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Cast totale fattura ripetuto per ogni riga

    Ciao a tutti,

    Genero (con successo) delle singole fatture il cui importo e iva sono calcolati via query da pagato e percentuale IVA:

    codice:
    SELECT pagamenti.*,fatture_has_pagamenti.*,fatture.*, utenti.*,
    cast(pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2)) AS NETTO, 
    cast(pagamenti.pagatoimporto - pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2)) AS IVA FROM pagamenti
    LEFT JOIN fatture_has_pagamenti ON fatture_has_pagamenti.pagamenti_idpagamenti = pagamenti.idpagamenti ... etc...
    Tutto bene per una singola fattura ma ora necessito un elenco delle fatture e il relativo importo per ogni riga... come posso procedere ?

    Grazie in anticipo !

    Posto l'intera query che mi genera i totali singola fattura come ulteriore riferimento:

    codice:
    SELECT
    pagamenti.*,fatture_has_pagamenti.*,fatture.*, utenti.idutenti, utenti.intestazione,  utenti.iva, cast(pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2)) AS NETTO, 
    cast(pagamenti.pagatoimporto - pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2)) AS IVA FROM pagamenti  LEFT JOIN fatture_has_pagamenti ON fatture_has_pagamenti.pagamenti_idpagamenti = pagamenti.idpagamenti 
    LEFT JOIN fatture ON fatture.idfatture = fatture_has_pagamenti.fatture_idfatture 
    INNER JOIN utenti ON fatture.utenti_idutenti = utenti.idutenti     
    INNER JOIN diz_iva ON diz_iva.iddiz_iva = fatture.diz_iva_iddiz_iva 
    INNER JOIN diz_iban ON diz_iban.iddiz_iban = fatture.diz_iban_iddiz_iban 
    INNER JOIN intestatario ON intestatario.idintestatario = fatture.intestatario_idintestatario 
    WHERE fatture_has_pagamenti.fatture_idfatture=%s 
    ORDER BY pagamenti.pagatodata

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao, se ho ben capito, penso basti agire sulla clausola where

    codice:
    WHERE fatture_has_pagamenti.fatture_idfatture=%s
    se elimini questa condizione dovresti ottenere tutto l'elenco dei pagamenti

  3. #3
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    ciao, se ho ben capito, penso basti agire sulla clausola where

    codice:
    WHERE fatture_has_pagamenti.fatture_idfatture=%s
    se elimini questa condizione dovresti ottenere tutto l'elenco dei pagamenti
    Molte grazie Delphi per la pronta risposta, purtroppo è un po piu complicato e io son stato sbrigativo a spiegare:

    La query sopra si applica ad una sola fattura e calcola il totale della fattura e l'IVA a partire dai pagamenti associati alla fattura stessa, per questo il WHERE si riferisce ad un solo id fattura... il suo echo è:
    Codice PHP:
                        <?php do { ?>
                        <tr>
                          <td width="100"><?php echo $row_Pagamenti['NETTO']; ?></td>
                          <td><?php echo $row_Pagamenti['IVA']; ?></td>
                          <td><?php echo $row_Pagamenti['pagatoimporto']; ?></td>
                          <td><?php echo $row_Pagamenti['pagatodata']; ?></td>
                          <td class="smallfont"><?php echo $row_Pagamenti['descpago']; ?></td>
                        </tr>
                          <?php } while ($row_Pagamenti mysql_fetch_assoc($Pagamenti)); ?>
                        <tr>
                          <td width="100"><strong>Totali -&gt;</strong></td>
                          <td><strong><?php echo $row_IVAtot['IVAtot']; ?></strong></td>
                          <td><strong><?php echo $row_IVAtot['PAGATOtot']; ?></strong></td>
    Posto un immagine per meglio comprendere...

    ScrSht2014-05-14 _001.jpg

    Quel che devo fare io adesso è generare un elenco delle fatture (ad esempio per utente) ed ogni riga deve eseguire la query sopra per calcolare il totale fattura e iva dai pagamenti associati, fare un echo dei totali e poi passare alla riga successiva e ricominciare il calcolo con i pagamenti associati ad un altra fattura di quell'utente e così via

    Spero sia più comprensibile

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao, cosa intendi per 'fare echo'

    counque mi sembra di capire che hai bisogno di un riepilogo fatture per cliente. se è cosi basta utilizzare sum:

    codice:
    SELECT
    fatture.intestatario_idintestatario, 
    sum(cast(pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2))) AS NETTO, 
    sum(cast(pagamenti.pagatoimporto - pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2))) AS IVA 
    FROM pagamenti
    LEFT JOIN fatture_has_pagamenti ON fatture_has_pagamenti.pagamenti_idpagamenti = pagamenti.idpagamenti 
    LEFT JOIN fatture ON fatture.idfatture = fatture_has_pagamenti.fatture_idfatture 
    INNER JOIN utenti ON fatture.utenti_idutenti = utenti.idutenti     
    INNER JOIN diz_iva ON diz_iva.iddiz_iva = fatture.diz_iva_iddiz_iva 
    INNER JOIN diz_iban ON diz_iban.iddiz_iban = fatture.diz_iban_iddiz_iban 
    INNER JOIN intestatario ON intestatario.idintestatario = fatture.intestatario_idintestatario 
    WHERE fatture_has_pagamenti.fatture_idfatture=%s 
    group by
    fatture.intestatario_idintestatario
    non ho testato la query, ma spero possa darti un'idea

  5. #5
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    ciao, cosa intendi per 'fare echo'

    counque mi sembra di capire che hai bisogno di un riepilogo fatture per cliente. se è cosi basta utilizzare sum:

    codice:
    SELECT
    fatture.intestatario_idintestatario, 
    sum(cast(pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2))) AS NETTO, 
    sum(cast(pagamenti.pagatoimporto - pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2))) AS IVA 
    FROM pagamenti
    LEFT JOIN fatture_has_pagamenti ON fatture_has_pagamenti.pagamenti_idpagamenti = pagamenti.idpagamenti 
    LEFT JOIN fatture ON fatture.idfatture = fatture_has_pagamenti.fatture_idfatture 
    INNER JOIN utenti ON fatture.utenti_idutenti = utenti.idutenti     
    INNER JOIN diz_iva ON diz_iva.iddiz_iva = fatture.diz_iva_iddiz_iva 
    INNER JOIN diz_iban ON diz_iban.iddiz_iban = fatture.diz_iban_iddiz_iban 
    INNER JOIN intestatario ON intestatario.idintestatario = fatture.intestatario_idintestatario 
    WHERE fatture_has_pagamenti.fatture_idfatture=%s 
    group by
    fatture.intestatario_idintestatario
    non ho testato la query, ma spero possa darti un'idea

    Hey grazie delphi !
    è il sum del cast che mi mancava ; vedendola cosi non riesco a rendermi conto se va, la provo e faccio sapere !
    Molte grazie per il momento !

    ps
    Echo nel senso display del risultato..

  6. #6
    Yesss, il sum del cast ha risolto !

    Questa la query corretta definitiva (nel caso serva a qualcuno):

    codice:
    SELECT pagamenti.*,fatture_has_pagamenti.*,fatture.*, utenti.idutenti, utenti.intestazione,
    sum(cast(pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2))) AS NETTO, 
    sum(cast(pagamenti.pagatoimporto - pagamenti.pagatoimporto/(diz_iva.iva_pct/100+1) as decimal (10,2))) AS IVA
    FROM pagamenti    
    LEFT JOIN fatture_has_pagamenti ON fatture_has_pagamenti.pagamenti_idpagamenti = pagamenti.idpagamenti     
    LEFT JOIN fatture ON fatture.idfatture = fatture_has_pagamenti.fatture_idfatture  
    INNER JOIN utenti ON fatture.utenti_idutenti = utenti.idutenti      
    INNER JOIN diz_iva ON diz_iva.iddiz_iva = fatture.diz_iva_iddiz_iva 
    INNER JOIN diz_iban ON diz_iban.iddiz_iban = fatture.diz_iban_iddiz_iban 
    INNER JOIN intestatario ON intestatario.idintestatario = fatture.intestatario_idintestatario
    GROUP BY fatture.idfatture
    ORDER BY fattura_data DESC, fattura_numero DESC

    Molte grazie 123delphi321 !

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 © 2025 vBulletin Solutions, Inc. All rights reserved.