Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Max 2 magazzino #5

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vendor
35 changes: 35 additions & 0 deletions aggiungi_prodotto_carrello.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php
// inizializziamo le sessioni
session_start();
// usiamo il namespace corretto per la classe Giacenze
use MvLabs\Chocosite\Model\Giacenze;
include 'libs/db.php';
// includere i file con le classi gestiti da Composer
include 'vendor/autoload.php';
// usiamo il namespace corretto per la classe ArchivioCarrelli
use MvLabs\Chocosite\Model\ArchivioCarrelli;
// recuperiamo il prodotto da aggiungere al carrello
// lettura parametro da URL
$codiceProdotto = $_GET['codice'];
$prodotto = recuperaProdottoDaCodice($codiceProdotto);
//recupero dal db le giacenze che vengono vengono rese disponibili da PDO e recuperate nel costruttore della classe Giacenze
$verificaCodice = recuperaGiacenzaDaCodice($codiceProdotto);
//Recupero la quantità in giacenza
foreach ($verificaCodice as $value) {
$disponibile=($value->qta());
}
//aggiungiProdottoCarrello($prodotto, 1)
if ($disponibile>0) {
// istanziare una classe carrello
$archivioCarrelli = new ArchivioCarrelli();
$carrello = $archivioCarrelli->recupera();
// aggiungere prodotto al carrello
$carrello->aggiungiRigaCarrello($prodotto, 1);
// salvare il carrello in sessione
$archivioCarrelli->salva($carrello);
// rimando a pagina carrello
header ('location: carrello.php');
} else {
// prodotto non disponibile
header ('location: non_disponibile.php');
}
94 changes: 94 additions & 0 deletions carrello.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?php

// usiamo il namespace corretto per la classe ArchivioCarrelli
use MvLabs\Chocosite\Model\ArchivioCarrelli;

// inizializziamo le sessioni
session_start();

// includere i file con le classi gestiti da Composer
include 'vendor/autoload.php';

// creo un'istanza dell'archivio carrelli
$archivioCarrelli = new ArchivioCarrelli();

// recupero il carrello corrente
$carrello = $archivioCarrelli->recupera();
?>
<!DOCTYPE html>
<html>
<head>
<title>MV chocosite</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">
</head>
<body>
<?php include 'include/header.php'; ?>
<main>
<div class="row">
<div class="col-md-12">
<h1>Carrello acquisti</h1>
</div>
</div>
<div class="row">
<div class="col-md-12">
<?php
$righeCarrello = $carrello->getRigheCarrello();
if (count($righeCarrello) > 0) { ?>
<table class="table table-hover">
<thead>
<tr>
<th>#</th>
<th>Prodotto</th>
<th>Quantità</th>
<th>Prezzo unitario</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
foreach($righeCarrello as $rigaCarrello) {
?>
<tr>
<th scope="row">1</th>
<td><?= $rigaCarrello['prodotto']->nome() ?></td>
<td><?= $rigaCarrello['quantita']?></td>
<td><?= $rigaCarrello['prodotto']->prezzo() ?> &euro;</td>
<td><a href="" class="btn btn-link">rimuovi</a></td>
</tr>
<?php }
$totaliCarrello = $carrello->getTotali();
?>
<tr class="success" style="font-weight: bold">
<th scope="row"></th>
<td>Totale</td>
<td><?=$totaliCarrello['pezzi']?></td>
<td><?=$totaliCarrello['totale']?> &euro;</td>
<td></td>
</tr>
</tbody>
</table>
<?php } else { ?>
Nessun prodotto presente nel carrello
<?php } ?>
</div>
</div>
<?php if (count($righeCarrello) > 0) { ?>
<div class="row">
<div class="col-md-8">
</div>
<div class="col-md-4">
<a href="iscrizione.php" class="btn btn-success btn-lg">Procedi con l'acquisto</a>
</div>
</div>
<?php } ?>
</main>
<?php include 'include/footer.php'; ?>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</html>
9 changes: 9 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "mvlabs/chocosite",
"description": "Chocolates ecommerce website",
"autoload": {
"psr-4": {
"MvLabs\\Chocosite\\": "src/"
}
}
}
Binary file added composer.phar
Binary file not shown.
25 changes: 25 additions & 0 deletions concludi_ordine.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php
// usiamo il namespace corretto per la classe ArchivioCarrelli
use MvLabs\Chocosite\Model\ArchivioCarrelli;
use MvLabs\Chocosite\Model\Giacenze;
use MvLabs\Chocosite\Model\Segno;
// inizializziamo le sessioni
session_start();
// includere i file con le classi gestiti da Composer
include 'vendor/autoload.php';
include 'libs/db.php';
// creo un'istanza dell'archivio carrelli
$archivioCarrelli = new ArchivioCarrelli();
// recupero il carrello corrente
$carrello = $archivioCarrelli->recupera();
// recuperiamo i dati di carrello e utente e li salviamo in un file json
$prodotti = $carrello->getRigheCarrello();
$utente = $_SESSION['utente'];
//istanzio la classe Giacenze
$movimenta= new Giacenze();
//Definisco se si tratta di un carico o scarico del magazzino
$Segno=New Segno('-');
setGiacenza($movimenta->movimenta($prodotti),$Segno);
salvaOrdine($prodotti, $utente);
//rimando a pagina carrello
header ('location: grazie.php');
20 changes: 20 additions & 0 deletions data/prodotti.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[{"codice": "GUANA1",
"nome": "GUANA - cioccolato fondente",
"descrizione": "Tavoletta di cioccolato fondente extra al 74%",
"ingredienti": "pasta di cacao, zucchero di canna, burro di cacao, vaniglia. Cacao min. 74%. Può contenere tracce di nocciole, mandorle, pistacchi, noci, latte.",
"conservazione": "conservare in luogo fresco e asciutto, max 18°C. Degustare a temperatura ambiente.",
"scadenza": "14 mesi",
"dimensioni": "9 x 15,5 x 1,2 cm",
"peso_netto": "50",
"prezzo": "5.00",
"url_immagine": "https://c1.staticflickr.com/3/2369/2458986998_c81485c2db_z.jpg?zz=1"},
{"codice": "MINK1",
"nome": "MINK",
"descrizione": "Tavoletta di cioccolato al latte",
"ingredienti": "pasta di cacao, zucchero di canna, burro di cacao, vaniglia, latte. Cacao min. 30%.",
"conservazione": "conservare in luogo fresco e asciutto, max 18°C. Degustare a temperatura ambiente.",
"scadenza": "8 mesi",
"dimensioni": "9 x 15,5 x 1 cm",
"peso_netto": "75",
"prezzo": "2.99",
"url_immagine": "https://c1.staticflickr.com/5/4027/4429686185_0e5ac89112_z.jpg?zz=1"}]
9 changes: 9 additions & 0 deletions esegui_iscrizione.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php
// inizializziamo le sessioni
session_start();

// salviamo in sessione tutti i dati ricevuti via POST
$_SESSION['utente'] = $_POST;

// rimando a pagina carrello
header ('location: riepilogo.php');
32 changes: 32 additions & 0 deletions grazie.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php
// inizializziamo le sessioni
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>MV chocosite</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">
</head>
<body>
<?php include 'include/header.php'; ?>
<main>
<div class="row">
<div class="col-md-12">
<h1>Ordine concluso</h1>
</div>
</div>
<div class="row">
Grazie per il tuo ordine!
</div>
</main>
<?php include 'include/footer.php'; ?>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</html>
41 changes: 41 additions & 0 deletions include/footer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<footer class="footer">
<div class="container">
<div class="row">
<div class="col-md-4">
<ul class="list-unstyled">
<li>
<a href="/chi-siamo.html">Chi siamo</a>
</li>
<li>
<a href="/dove-siamo.html">Dove siamo</a>
</li>
<li>
<a href="/filosofia.html">La filosofia</a>
</li>
</ul>
</div>
<div class="col-md-4">
<ul class="list-unstyled">
<li>
<a href="/contatti.html">Contatti</a>
</li>
<li>
<a href="/spedizioni.html">Spedizioni</a>
</li>
<li>
<a href="/regolamento.html">Regolamento</a>
</li>
</a>
</ul>
</div>
<div class="col-md-4">
<address>
<strong>Choco company, Inc.</strong><br>
Viale delle bontà, 123<br>
Pordenone, Italy<br>
<abbr title="Phone">P:</abbr> (123) 456-7890
</address>
</div>
</div>
</div>
</footer>
30 changes: 30 additions & 0 deletions include/header.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<header>
<nav class="navbar navbar-inverse">
<div class="container-fluid">

<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">MV chocosite</a>
</div>

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="/index.php">Home <span class="sr-only">(current)</span></a></li>
<li class="active"><a href="/prodotti.html">Prodotti</a></li>
<li><a href="/dove-siamo.html">La filosofia</a></li>
<li><a href="/chi-siamo.html">Chi siamo</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="/carrello.php">Carrello</a></li>
<li><a href="/contatti.html">Contatti</a></li>
<li><a href="/riepilogo_giacenze.php">Giacenze</a></li>
</ul>
</div>
</div>
</nav>
</header>
Loading