Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET serverout ON format WORD_WRAPPED;
- CREATE OR REPLACE PROCEDURE imprimeFacture IS
- CURSOR c_facture IS
- SELECT
- customer.contact AS c_contact,
- customer.address AS c_address,
- customer.city AS c_city,
- customer.state AS C_state,
- customer.zip AS c_zip,
- customer.phone AS c_phone,
- salesman.nom AS s_nom,
- salesman.address AS s_address,
- salesman.city AS s_city,
- salesman.state AS s_state,
- salesman.zip AS s_zip,
- salesman.phone AS s_phone,
- invoices.ino AS i_ino,
- invoices.idate AS i_date,
- detail.qty AS d_qty,
- parts.descript AS p_description,
- detail.price AS d_prix,
- detail.ltotal AS d_prixTotal,
- (
- SELECT
- ROUND(SUM(detail.ltotal), 2)
- FROM
- detail
- WHERE
- detail.ino = 1054
- ) AS totalfacture,
- (
- SELECT
- ROUND(SUM(detail.ltotal * 0.15), 2)
- FROM
- detail
- WHERE
- detail.ino = 1054
- ) AS taxe,
- (
- SELECT
- ROUND(SUM(detail.ltotal * 0.15 + detail.ltotal), 2)
- FROM
- detail
- WHERE
- detail.ino = 1054
- ) AS totalavectaxe
- FROM
- invoices
- JOIN detail ON detail.ino = invoices.ino
- JOIN parts ON parts.pno = detail.pno
- JOIN customer ON customer.cno = invoices.cno
- JOIN salesman ON salesman.salesman = invoices.salesman
- WHERE
- invoices.ino = 1055;
- rec_facture c_facture%ROWTYPE;
- fictifAvantBoucle NUMBER := 0;
- BEGIN
- OPEN c_facture;
- LOOP
- FETCH c_facture INTO rec_facture;
- EXIT WHEN c_facture%notfound;
- IF fictifAvantBoucle = 0 THEN
- DBMS_OUTPUT.put_line('Facture numéro: ' || rec_facture.i_ino || CHR(10) || 'Date de facturation (Y/M/D): ' || rec_facture.i_date --section Facture
- || CHR(10) || CHR(10) || 'Vendu par ' || CHR(10) || rec_facture.s_nom || CHR(10) || 'Téléphone: ' || rec_facture.s_phone || CHR(10) --section vendeur
- || 'Address: ' || rec_facture.s_address || CHR(10)
- || 'Ville: ' || rec_facture.s_city || CHR(10) || 'État: ' || rec_facture.s_state || CHR(10) || 'ZIP: ' || rec_facture.s_zip
- || CHR(10) || CHR(10) || 'Facturé à ' || CHR(10) || rec_facture.c_contact || CHR(10) || 'Téléphone: ' || rec_facture.c_phone || CHR(10) --section client
- || 'Address: ' || rec_facture.c_address
- || CHR(10) || 'Ville: ' || rec_facture.c_city || CHR(10) || 'État: ' || rec_facture.c_state || CHR(10) || 'ZIP: ' || rec_facture.c_zip || CHR(10)
- || CHR(10) || '---------------------------------------------------------------------------------------------------------------------------' --section facture Article
- || CHR(10) || 'Qty' || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || 'Article' || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9)
- || 'Prix unitaire' || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || 'Montant total' || CHR(10)
- || '---------------------------------------------------------------------------------------------------------------------------');
- fictifAvantBoucle := fictifAvantBoucle + 1;
- END IF;
- DBMS_OUTPUT.put_line(rec_facture.d_qty || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || rec_facture.p_description || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9)
- || rec_facture.d_prix || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || rec_facture.d_prixTotal);
- END LOOP;
- EXCEPTION
- WHEN NO_DATA_FOUND THEN
- DBMS_OUTPUT.put_line('no data found');
- END;
- /
- BEGIN
- imprimeFacture();
- END;
- /
Add Comment
Please, Sign In to add comment