doc update und erfassung von angebot nun in weiterer seite möglich. muss noch ausgearbeitet werden.

This commit is contained in:
Ivan Hörler 2017-02-17 16:14:13 +01:00
parent 6a52fe386e
commit 159cc8cf38
16 changed files with 2325 additions and 56 deletions

68
Dokumentation/main.aux Normal file
View File

@ -0,0 +1,68 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand*\tocstyle@set@width[4]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@input{Titelblatt.aux}
\tocstyle@set@width {unum}{toc}{}{21.29997pt}
\tocstyle@set@width {num}{toc}{1}{12.744pt}
\tocstyle@set@width {skip}{toc}{1}{0.0pt}
\tocstyle@set@width {num}{toc}{2}{21.29997pt}
\tocstyle@set@width {skip}{toc}{2}{12.744pt}
\@writefile{toc}{\contentsline {section}{\numberline {1}Vision}{1}{section.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Kundenbeziehung}{1}{subsection.1.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Kundenbeziehung}}{1}{figure.1}}
\newlabel{fig:Kundenbeziehung}{{1}{1}{Kundenbeziehung}{figure.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2}User Stories}{2}{section.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}BusinessStreamline}{2}{subsection.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Nachfragerfirma}{2}{subsection.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Anbieterfirma}{3}{subsection.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Benutzerf\IeC {\"u}hrung}{4}{section.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Nachfrage Firma}{4}{subsection.3.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Benutzerf\IeC {\"u}hrung des Nachfragers}}{4}{figure.2}}
\newlabel{fig:Benutzerf\IeC {\"u}hrungNachfrager}{{2}{4}{Benutzerführung des Nachfragers}{figure.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Anbieter Firma}{5}{subsection.3.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Benutzerf\IeC {\"u}hrung des Anbieters}}{5}{figure.3}}
\newlabel{fig:Benutzerf\IeC {\"u}hrungAnbieters}{{3}{5}{Benutzerführung des Anbieters}{figure.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Datenbank}{6}{section.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}ERM}{6}{subsection.4.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces ERM zur Datenbank f\IeC {\"u}r BusinessStreamline}}{6}{figure.4}}
\newlabel{fig:ERM}{{4}{6}{ERM zur Datenbank für BusinessStreamline}{figure.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}RM}{6}{subsection.4.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces RM zur Datenbank f\IeC {\"u}r BusinessStreamline}}{6}{figure.5}}
\newlabel{fig:RM}{{5}{6}{RM zur Datenbank für BusinessStreamline}{figure.5}{}}
\citation{ref1}
\citation{ref2}
\@writefile{toc}{\contentsline {section}{\numberline {5}Coding}{7}{section.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}erstes Login}{7}{subsection.5.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Datenbankeintr\IeC {\"a}ge}{7}{subsection.5.2}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Projektplanung}{8}{section.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Zeitplan}{8}{subsection.6.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Zeitplanung}}{8}{figure.6}}
\newlabel{fig:Zeitplanung}{{6}{8}{Zeitplanung}{figure.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Zeitaufwand}{8}{subsection.6.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Zeitaufwand}}{8}{figure.7}}
\newlabel{tab:Zeitaufwand}{{7}{8}{Zeitaufwand}{figure.7}{}}
\citation{*}
\bibstyle{plain}
\bibdata{quellverzeichniss}
\bibcite{ref1}{1}
\bibcite{ref2}{2}
\@writefile{toc}{\contentsline {section}{\numberline {7}Referenzen}{9}{section.7}}
\newlabel{LastPage}{{}{10}{}{page.10}{}}
\xdef\lastpage@lastpage{10}
\xdef\lastpage@lastpageHy{10}

View File

@ -7,4 +7,10 @@ Pradeep Khodke.
\newblock
\url{http://www.codingcage.com/2015/04/php-login-and-registration-script-with.html}.
\bibitem{ref2}
Richard Stibbard.
\newblock Mysql pdo tutorial, August 2014.
\newblock
\url{https://youtu.be/e0ssKVEISbQ?list=PLz_6dB4PItBEQEbVSAt6vrTOACQZD1K1E}.
\end{thebibliography}

47
Dokumentation/main.blg Normal file
View File

@ -0,0 +1,47 @@
This is BibTeX, Version 0.99d (TeX Live 2016)
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009
The top-level auxiliary file: main.aux
A level-1 auxiliary file: Titelblatt.aux
The style file: plain.bst
Database file #1: quellverzeichniss.bib
You've used 2 entries,
2118 wiz_defined-function locations,
508 strings with 4293 characters,
and the built_in function-call counts, 436 in all, are:
= -- 38
> -- 14
< -- 0
+ -- 6
- -- 4
* -- 18
:= -- 77
add.period$ -- 6
call.type$ -- 2
change.case$ -- 8
chr.to.int$ -- 0
cite$ -- 2
duplicate$ -- 14
empty$ -- 45
format.name$ -- 4
if$ -- 91
int.to.chr$ -- 0
int.to.str$ -- 2
missing$ -- 0
newline$ -- 13
num.names$ -- 4
pop$ -- 18
preamble$ -- 1
purify$ -- 6
quote$ -- 0
skip$ -- 14
stack$ -- 0
substring$ -- 10
swap$ -- 2
text.length$ -- 0
text.prefix$ -- 0
top$ -- 0
type$ -- 8
warning$ -- 0
while$ -- 4
width$ -- 3
write$ -- 22

0
Dokumentation/main.idx Normal file
View File

1965
Dokumentation/main.log Normal file

File diff suppressed because it is too large Load Diff

19
Dokumentation/main.out Normal file
View File

@ -0,0 +1,19 @@
\BOOKMARK [1][-]{section.1}{Vision}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{Kundenbeziehung}{section.1}% 2
\BOOKMARK [1][-]{section.2}{User Stories}{}% 3
\BOOKMARK [2][-]{subsection.2.1}{BusinessStreamline}{section.2}% 4
\BOOKMARK [2][-]{subsection.2.2}{Nachfragerfirma}{section.2}% 5
\BOOKMARK [2][-]{subsection.2.3}{Anbieterfirma}{section.2}% 6
\BOOKMARK [1][-]{section.3}{Benutzerf\374hrung}{}% 7
\BOOKMARK [2][-]{subsection.3.1}{Nachfrage Firma}{section.3}% 8
\BOOKMARK [2][-]{subsection.3.2}{Anbieter Firma}{section.3}% 9
\BOOKMARK [1][-]{section.4}{Datenbank}{}% 10
\BOOKMARK [2][-]{subsection.4.1}{ERM}{section.4}% 11
\BOOKMARK [2][-]{subsection.4.2}{RM}{section.4}% 12
\BOOKMARK [1][-]{section.5}{Coding}{}% 13
\BOOKMARK [2][-]{subsection.5.1}{erstes Login}{section.5}% 14
\BOOKMARK [2][-]{subsection.5.2}{Datenbankeintr\344ge}{section.5}% 15
\BOOKMARK [1][-]{section.6}{Projektplanung}{}% 16
\BOOKMARK [2][-]{subsection.6.1}{Zeitplan}{section.6}% 17
\BOOKMARK [2][-]{subsection.6.2}{Zeitaufwand}{section.6}% 18
\BOOKMARK [1][-]{section.7}{Referenzen}{}% 19

Binary file not shown.

Binary file not shown.

View File

@ -155,6 +155,13 @@ Also machten wir uns an die Arbeit um den Login nach User-Namen umzukrempeln und
Als fun fügten wir noch ein Bild ein und entfernten alle bootstrap CSS Klassen und ersetzten sie mit unseren aus dem lokalen style.css
File um das ganze auch schön aussehen zu lassen. Zusätzlich wurde eine Automatische Login Routine implementiert so dass ein Login nach der
Anmeldung eines Users nicht noch mal eingegeben werden muss.
\subsection{Datenbankeinträge}
Um die Datenbankeinträge gemäss RM erstellen zu könne wurde als erstes das .sql file zur Erstellung der Datenbank erstellt.
Danach wurden von Hand drei Einträge gemacht um die Abfrage testen zu können. Da der Unterricht die SQL-Querrys noch nicht abgedeckt hatte schob der Dozent eine kurze Einführung samt Beispiel ein, was als Vorlage für die weitere Arbeit diente.
Zudem entnahm ich dem youtube Video \cite{ref2} wichtige Informationen zum vorgehen mit PDO.
Um die Darstellung zu gliedern wurde die Abfrage in HTML Tabellenform integriert. Das Eintragsdatum musste von YYYY-MM-DD-hh-mm gekürzt werden und wird nun als Datum ohne Zeitangabe dargestellt.
Die Eintrags Erfassung wird mit dem gleichen vorgehen gemacht und fängt Fehler wie leergelassene Felder oder zu kurze Beschreibungen ab.
\section{Projektplanung}
@ -176,9 +183,10 @@ Anmeldung eines Users nicht noch mal eingegeben werden muss.
@ UserStories & 3 & 3 & & \\
@ Benutzerführung & 2 & 3 & 1 & @ \begin{scriptsize}gezeichnet mit Libreoffice\end{scriptsize}\\
@ Datenbank & 1 & 1 & & \\
@ erstes login/out & 2 & 8 & 6 & \\
@ erstes login/out & 2 & 8 & 6 & \\
@ Datenbankeinträge & 6 & 11 & 5 & @ \begin{scriptsize}der Schulische hintergrund fehlte zu dem Zeitpunkt noch.\end{scriptsize}\\
\hline \hline
@ Total & sum(b2:b8) & sum(c2:c8) & sum(d2:d8) & @ h \\ \hline
@ Total & sum(b2:b9) & sum(c2:c9) & sum(d2:d9) & @ h \\ \hline
\end{spreadtab}
\caption{Zeitaufwand}
\label{tab:Zeitaufwand}

19
Dokumentation/main.toc Normal file
View File

@ -0,0 +1,19 @@
\contentsline {section}{\numberline {1}Vision}{1}{section.1}
\contentsline {subsection}{\numberline {1.1}Kundenbeziehung}{1}{subsection.1.1}
\contentsline {section}{\numberline {2}User Stories}{2}{section.2}
\contentsline {subsection}{\numberline {2.1}BusinessStreamline}{2}{subsection.2.1}
\contentsline {subsection}{\numberline {2.2}Nachfragerfirma}{2}{subsection.2.2}
\contentsline {subsection}{\numberline {2.3}Anbieterfirma}{3}{subsection.2.3}
\contentsline {section}{\numberline {3}Benutzerf\IeC {\"u}hrung}{4}{section.3}
\contentsline {subsection}{\numberline {3.1}Nachfrage Firma}{4}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}Anbieter Firma}{5}{subsection.3.2}
\contentsline {section}{\numberline {4}Datenbank}{6}{section.4}
\contentsline {subsection}{\numberline {4.1}ERM}{6}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}RM}{6}{subsection.4.2}
\contentsline {section}{\numberline {5}Coding}{7}{section.5}
\contentsline {subsection}{\numberline {5.1}erstes Login}{7}{subsection.5.1}
\contentsline {subsection}{\numberline {5.2}Datenbankeintr\IeC {\"a}ge}{7}{subsection.5.2}
\contentsline {section}{\numberline {6}Projektplanung}{8}{section.6}
\contentsline {subsection}{\numberline {6.1}Zeitplan}{8}{subsection.6.1}
\contentsline {subsection}{\numberline {6.2}Zeitaufwand}{8}{subsection.6.2}
\contentsline {section}{\numberline {7}Referenzen}{9}{section.7}

View File

@ -10,5 +10,12 @@
Month = {April},
Year = {2015}
}
@misc{ref2,
Author = {Richard Stibbard},
Title = {MySQL PDO Tutorial},
Note = {\url{https://youtu.be/e0ssKVEISbQ?list=PLz_6dB4PItBEQEbVSAt6vrTOACQZD1K1E}},
Date-Added = {2014-08-15 12:35:41 +0000},
Month = {August},
Year = {2014}
}

View File

35
Website/angebot.php Normal file
View File

@ -0,0 +1,35 @@
<?php
require_once("session.php");
include 'config.php';
require_once("class.user.php");
$auth_user = new USER();
$user_id = $_SESSION['user_session'];
$stmt = $auth_user->runQuery("SELECT * FROM benutzer WHERE benutzer_id=:user_id");
$stmt->execute(array(":user_id"=>$user_id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
//ID auslesen, welche vom Link mittels GET mitgegeben wurde
$id = $_GET['id'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css" type="text/css" />
<title>Hallo <?php print($userRow['benutzer_name']); ?></title>
</head>
<body>
<?php include 'nav.php';?>
<h1>Angebot abgeben:</h1>
<p>Sie können zum gewählten Objekt nun ein Angebot abgeben.<br/>
Bitte seien Sie sich bewusst dass der Nachfrager auf das Lieferdatum
pochen wird. </p>
<?php
echo $id
?>
</body>
</html>

View File

@ -20,14 +20,15 @@
$lieferdatum = $_POST['lieferdatum'];
$beschrieb = $_POST['beschrieb'];
/* abfangen von falschen oder zu wehnig informationen.
* if($typ=="") {
* $error[] = "du musst einen Typ für dein Teil angeben!";
* } else if($menge=="") {
* $error[] = "du musst dem Anbieter sagen wieviele Teile du benötigst!";
* } else if(strlen($beschrieb) < 10){
* $error[] = "du solltest einen Detailierteren beschrieb verfassen...";
} else { */
//abfangen von falschen oder zu wehnig informationen.
if($typ=="") {
$error[] = "du musst einen Typ für dein Teil angeben!";
} else if($menge=="") {
$error[] = "du musst dem Anbieter sagen wieviele Teile du benötigst!";
} else if(strlen($beschrieb) < 10){
$error[] = "du solltest einen Detailierteren beschrieb verfassen...";
} else {
try{
$stmt = $db->prepare("INSERT INTO nachfrager (benutzer_id, nachfr_typ,nachfr_quali, nachfr_menge, nachfr_lieferdatum, nachfr_beschr) VALUES (:benutzer_id, :nachfr_typ, :nachfr_quali, :nachfr_menge, :nachfr_lieferdatum, :nachfr_beschr)");
$stmt->bindValue(':benutzer_id',$user_id);
$stmt->bindValue(':nachfr_typ',$typ);
@ -36,8 +37,14 @@
$stmt->bindValue(':nachfr_lieferdatum',$lieferdatum);
$stmt->bindValue(':nachfr_beschr',$beschrieb);
$stmt->execute();
}
/*** close the database connection ***/
$db = null;
} catch(PDOException $e) {
echo $e->getMessage();
}
$error[] = "Deine $typ wurde in die Datenbank aufgenommen.";
}
}
?>
<!DOCTYPE html>
<html>
@ -48,34 +55,48 @@
</head>
<body>
<?php include 'nav.php';?>
<div class="titel">
<h1>erfassen</h1>
<p>Suchen Sie ein Teil? Dann erfassen Sie es hier!</p>
</div>
<div class="inhalt">
<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
Typ:
<input type="text" name="typ" value="" placeholder="zum beispiel: Schraube "/><br />
Qualität:
<input type="range" min="0" max="10" value="5" step="1" name="quali"><br />
Benötigte Stückzahl:
<input type="number" name="menge" min="1" value="" placeholder="mindestens 1" /><br />
Lieferdatum:
<input type="date" name="lieferdatum" min="
<script>
document.getElementById('e').value = new Date().toISOString().substring(0, 10);
</script>" value="" placeholder="YYYY-MM-DD"/><br />
Beschrieb<br />
<textarea rows="10" cols="60" name="beschrieb"></textarea><br />
<input type="submit" name="submit" />
</form>
<div id="error">
<?php
if(isset($error)){
foreach($error as $error){
echo $error;
<table class="table-unvsible"
<tr>
<td>Typ:</td>
<td><input type="text" name="typ" value="" placeholder="zum beispiel: Schraube "/></td>
</tr>
<tr>
<td>Qualität:</td>
<td><input id="qualiInId" type="range" min="0" max="10" value="5" step="1" name="quali" oninput="qualiOutId.value = qualiInId.value"> &nbsp;
<output name="qualiOut" id="qualiOutId">5</output></td>
</tr>
<tr>
<td>Benötigte Stückzahl:</td>
<td><input type="number" name="menge" min="1" value="" placeholder="mindestens 1" /></td>
</tr>
<tr>
<td>Lieferdatum:</td>
<td><input type="date" name="lieferdatum" placeholder="YYYY-MM-DD"/>
</td>
</tr>
<tr>
<td>Beschrieb:</td>
<td></td>
</tr>
</table>
<div class="textbox"><textarea rows="10" cols="60" name="beschrieb"></textarea></div>
<span><input class="btn" type="submit" name="submit" /></span>
<span id="error">
<?php
if(isset($error)){
foreach($error as $error){
echo $error;
}
}
} else if(isset($_GET['joined'])) {
echo "Dein $typ wurde in die Datenbank aufgenommen.";
}
?>
</div>
?>
</span>
</form>
</div>
</body>
</html>

View File

@ -3,8 +3,13 @@
body{
background:#f1f9f9;
max-width: 800px;
padding: 40px 40px 40px;
font-family: sans-serif;
}
nav{
text-align: center;
}
.form-signin {
max-width: 500px;
padding: 19px 29px 29px;
@ -59,9 +64,65 @@ body{
#btn-submit{
height:45px;
}
.titel{
padding: 10px 20px 10px 20px;
}
.h5{
font-family:Verdana, Geneva, sans-serif;
}
h1{
font-family:Verdana, Geneva, sans-serif;
font-size: 24px;
}
caption{
font-family:Verdana, Geneva, sans-serif;
text-align: left;
font-size: 14px;
padding: 19px 29px 10px;
}
.inhalt{
position: fixed;
top: 20;
left: 20;
// width: 100%;
border-spacing: 0px;
text-align: left;
max-width: 800px;
padding: 19px 29px 29px;
margin: 0 auto;
//margin-top:90px;
background-color: #fff;
border: 1px solid #e5e5e5;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
box-shadow: 0 1px 2px rgba(0,0,0,.05);
font-family:Tahoma, Geneva, sans-serif;
color:#222;
font-weight:lighter;
}
th{
font-size: 16px;
}
td{
font-size: 14px;
}
th, td {
border-bottom: 1px solid #ddd;
}
tr:hover {
background-color: #f5f5f5
}
div > .bezeichnung{
padding: 10px 0px 10px;
}
div > .eingabe{
padding: 5px 0px 5px 130px;
}
#error{
color:#ff0000;
}

View File

@ -11,8 +11,8 @@
$stmt->execute(array(":user_id"=>$user_id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html>
<head>
@ -22,21 +22,34 @@
</head>
<body>
<?php include 'nav.php';?>
<h1>Suchen</h1>
<p>Suchen Sie ein Teil?
</p>
<p>grenzen Sie die Liste ein: < - suche - > </p>
<p>
<?php
foreach ($db->query("SELECT * FROM nachfrager") as $row) {
echo
htmlentities($row['nachfr_typ']) . " " .
htmlentities($row['nachfr_menge']) . " " .
htmlentities($row['nachfr_quali']) . " " .
htmlentities($row['nachfr_datum']) . " " .
htmlentities($row['nachfr_lieferdatum']) . "</br>";
}
?>
</p>
<div class="titel">
<h1>Suchen</h1>
<p>Suchen Sie ein Teil?
</p>
<p>grenzen Sie die Liste ein: < - suche - > </p>
</div>
<div class="inhalt">
<table class"table">
<caption>Nachgefragte Teile:</caption>
<th>Eintrag</th>
<th>Typ</th>
<th>Menge</th>
<th>Qualität</th>
<th>Lieferdatum</th>
<?php
foreach ($db->query("SELECT * FROM nachfrager") as $row) {
echo
"<tr>" .
"<td>" . substr(htmlentities($row['nachfr_datum']),0,10) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_typ']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_menge']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_quali']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_lieferdatum']) . "&nbsp;" .
"<a href='angebot.php?id=" . $row['benutzer_id'] . "'> -> </a>" . "</td>" .
"</tr>";
}
?>
</table>
</div>
</body>
</html>