Vraag omtrent CakePHP
Ik ben voor mezelf bezig met een facturatie programma te schrijven. Dit heb ik al redelijk opgezet met het framework CakePHP.
Nu zit ik met een klein probleem namelijk:
Als ik een factuur toe wil voegen, wil ik uiteraard ook factuurregels laten zien. Dat is me ook al gelukt. Maar nu wil ik het factuurnummer (die ik zelf invoer). Meegeven aan de factuurregels als hidden input field.
Hoe kan ik dit het beste doen?
Me view en controller zien er als volgt uit:
[Functie in me code die de factuur aanmaakt]
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function add($klantnummer = NULL, $klantnaam = NULL){
$this->layout = 'manage';
$this->set('klantnummer', $klantnummer);
$this->set('klantnaam', $klantnaam);
if(!empty($this->data)){
if($this->Invoice->save($this->data)){
if($this->Factuurregel->save($this->data)){
$this->Session->setFlash('Factuur is toegevoegd');
$this->redirect(array('action'=>'lijst'));
}
}
else{
$this->Session->setFlash('Er is iets fout gegaan, controleer de gegevens en probeer het opnieuw');
}
}
}
?>
function add($klantnummer = NULL, $klantnaam = NULL){
$this->layout = 'manage';
$this->set('klantnummer', $klantnummer);
$this->set('klantnaam', $klantnaam);
if(!empty($this->data)){
if($this->Invoice->save($this->data)){
if($this->Factuurregel->save($this->data)){
$this->Session->setFlash('Factuur is toegevoegd');
$this->redirect(array('action'=>'lijst'));
}
}
else{
$this->Session->setFlash('Er is iets fout gegaan, controleer de gegevens en probeer het opnieuw');
}
}
}
?>
[Mijn view, waar dus data in 2 models opgeslagen worden.]
<div id='factuurtoevoegen'>
<div class='factuurleft'>
<table border="0">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php echo $form->create('Invoice', array('action'=>'add'));
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Factuurnummer:</label>";
echo $form->input('factuurnummer');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Klantnaam:</label>";
echo $form->input('klantnaam', array('type'=>'text', 'value'=>$klantnaam));
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>klantnummer:</label>";
echo $form->input('klantid', array('type'=>'text', 'value'=>$klantnummer));
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Factuurdatum:</label>";
echo $form->input('factuurdatum');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Betreft:</label>";
echo $form->input('betreft');
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<div class='factuurright'>";
echo "<table border='0'>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Aanmaning:</label>";
echo $form->input('aanmaning');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Aanmaningsdatum:</label>";
echo $form->input('aanmaningsdatum');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Betaald:</label>";
echo $form->input('betaald');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Betaaldatum:</label>";
echo $form->input('betaaldatum');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Btw:</label>";
echo $form->input('btw');
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<table border='0'>";
echo "<th>Beschrijving</th>";
echo "<th>Aantal</th>";
echo "<th>Prijs</th>";
echo $form->create('Factuurregel', array('action'=>'add'));
echo "<tr>";
echo "<td>" .$form->input('beschrijving')."</td>";
echo "<td>" .$form->input('aantal')."</td>";
echo "<td>" .$form->input('prijs')."</td>";
echo "</tr>";
echo "</table>";
echo $form->end('Factuur toevoegen');
?>
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Factuurnummer:</label>";
echo $form->input('factuurnummer');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Klantnaam:</label>";
echo $form->input('klantnaam', array('type'=>'text', 'value'=>$klantnaam));
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>klantnummer:</label>";
echo $form->input('klantid', array('type'=>'text', 'value'=>$klantnummer));
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Factuurdatum:</label>";
echo $form->input('factuurdatum');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Betreft:</label>";
echo $form->input('betreft');
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<div class='factuurright'>";
echo "<table border='0'>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Aanmaning:</label>";
echo $form->input('aanmaning');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Aanmaningsdatum:</label>";
echo $form->input('aanmaningsdatum');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Betaald:</label>";
echo $form->input('betaald');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Betaaldatum:</label>";
echo $form->input('betaaldatum');
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<label for='adres'>Btw:</label>";
echo $form->input('btw');
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<table border='0'>";
echo "<th>Beschrijving</th>";
echo "<th>Aantal</th>";
echo "<th>Prijs</th>";
echo $form->create('Factuurregel', array('action'=>'add'));
echo "<tr>";
echo "<td>" .$form->input('beschrijving')."</td>";
echo "<td>" .$form->input('aantal')."</td>";
echo "<td>" .$form->input('prijs')."</td>";
echo "</tr>";
echo "</table>";
echo $form->end('Factuur toevoegen');
?>
</div>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
function add($factuurregels = NULL){
$this->layout = 'manage';
$klanten = $this->Klanten->find('list', array('fields'=> 'klantnaam'));
$this->set('klanten', $klanten);
$this->set('factuurregels', $factuurregels);
if(!empty($this->data)){
if ($this->Invoice->save($this->data['Invoice'])){
if($this->Factuurregel->saveAll($this->data['Factuurregel'])){
$this->Session->setFlash('Uw factuur met nummer '.$this->data['Invoice']['factuurnummer'].' is toegevoegd');
$this->redirect(array('action'=>'lijst'));
}
}
else
{
$this->Session->setFlash('Er is iets fout gegaan, controleer de gegevens en probeer het opnieuw');
}
}
}
?>
function add($factuurregels = NULL){
$this->layout = 'manage';
$klanten = $this->Klanten->find('list', array('fields'=> 'klantnaam'));
$this->set('klanten', $klanten);
$this->set('factuurregels', $factuurregels);
if(!empty($this->data)){
if ($this->Invoice->save($this->data['Invoice'])){
if($this->Factuurregel->saveAll($this->data['Factuurregel'])){
$this->Session->setFlash('Uw factuur met nummer '.$this->data['Invoice']['factuurnummer'].' is toegevoegd');
$this->redirect(array('action'=>'lijst'));
}
}
else
{
$this->Session->setFlash('Er is iets fout gegaan, controleer de gegevens en probeer het opnieuw');
}
}
}
?>
Heeft iemand vragen o.i.d? stel ze gerust.