Jacek Kowalski
2012-07-07 4670c76fe96e1ff78ff094e6fae8469d2d10d747
Poprawki i dalsza część budowy systemu inwentaryzacji:
- dodanie strony zakończenia inwentaryzacji,
- aktualizacja instrukcji przed rozpoczęciem procesu,
- zmiany w wyświetlanych tekstach.
4 files modified
113 ■■■■ changed files
inwentaryzacja/begin.php 8 ●●●●● patch | view | raw | blame | history
inwentaryzacja/end.php 18 ●●●● patch | view | raw | blame | history
inwentaryzacja/locate.js 84 ●●●● patch | view | raw | blame | history
inwentaryzacja/make.php 3 ●●●● patch | view | raw | blame | history
inwentaryzacja/begin.php
@@ -7,12 +7,14 @@
<p>Ten krok służy do przygotowania listy książek, które zostaną objęte inwentaryzacją.</p>
<p>W trakcie inwentaryzacji zaleca się nie zmieniać położenia książek za pomocą interfejsu, gdyż dane te zostaną po zakończeniu procesu (krok 3) nadpisane.</p>
<p>W trakcie inwentaryzacji zaleca się nie zmieniać położenia książek za pomocą interfejsu, gdyż dane te mogą zostać nadpisane po zakończeniu procesu (krok 3).</p>
<p>Z interfejsu inwentaryzacji w danej chwili powinna korzystać tylko jedna osoba, w przeciwnym wypadku osoby inwentaryzujące mogą wzajemnie nadpisywać dane.</p>
<?php
if(file_exists('list.txt')) {
if(file_exists('list.xml')) {
?>
<p><strong>Niezapisane dane z poprzedniej inwentaryzacji zostaną usunięte!</strong></p>
<p><strong>Dane z poprzedniej (niedokończonej) inwentaryzacji zostaną usunięte!</strong></p>
<?php
}
inwentaryzacja/end.php
@@ -14,11 +14,11 @@
}
?>
<p>Poniżej znajduje się lista zmian do wykonania. Aby zatrzymać dane zmiany należy odznaczyć odpowiednie pole wyboru.</p>
<p>Poniżej znajduje się lista zmian do wykonania. Aby nie dokonywać danej zmiany należy odznaczyć odpowiednie pole wyboru.</p>
<form action="finish.php">
<table class="width">
<tr> <th>Okł.</th> <th> <b>Kod</b> <br /> Wyd. </th> <th> Autor <br /> <b>Tytuł</b> </th> <th> Miejsce, rok <br /> Wydawnictwo </th> <th> Akcje </th> </tr>
<tr> <th> <b>Kod</b> <br /> Wyd. </th> <th> Autor <br /> <b>Tytuł</b> </th> <th> Miejsce, rok <br /> Wydawnictwo </th> <th> Akcje </th> </tr>
<?php
$doc = new DOMDocument;
if(!$doc->load('list.xml')) {
@@ -32,6 +32,8 @@
    if(!($loc instanceof DOMElement) || $loc->tagName != 'lokalizacja') {
        continue;
    }
    $location = $loc->getAttribute('regal').'/'.$loc->getAttribute('polka').'/'.$loc->getAttribute('rzad');
    
    foreach($loc->childNodes as $node) {
        if(!($node instanceof DOMElement) || $node->tagName != 'ksiazka') {
@@ -52,13 +54,21 @@
            }
        }
        
        echo '<tr> <td></td> <td> <b>'.$dane['id'].'</b> <br /> </td> <td>'.$dane['autor'].' <br /> <b>'.$dane['tytul'].'</b></td> <td>'.$dane['miejsce'].' '.$dane['rok'].' <br /> '.$dane['wydawnictwo'].'</td> <td></td> </tr>'."\n";
        echo '<tr class="'.($dane['status'] == 'moved' ? 'poz' : 'wyc').'"> <td> <b>'.$dane['id'].'</b> <br /> </td> <td>'.$dane['autor'].' <br /> <b>'.$dane['tytul'].'</b></td> <td>'.$dane['miejsce'].' '.$dane['rok'].' <br /> '.$dane['wydawnictwo'].'</td> <td>';
        if($dane['status'] == 'moved') {
            echo '<label><input type="checkbox" name="move['.$dane['id'].']" value="'.htmlspecialchars($location).'" checked="checked" />Przenieś do '.htmlspecialchars($location).'</label>';
        }
        else
        {
            echo '<label><input type="checkbox" name="repulse['.$dane['id'].']" value="1" checked="checked" />Wycofaj</label>';
        }
        echo '</td> </tr>'."\n";
    }
}
?>
</table>
<p><input type="submit" value="Wykonaj wybrane operacje" /></p>
<p><input type="submit" value="Wykonaj wybrane operacje" /> <a href="locate.htm">Kontynuuj inwentaryzację</a> <a href="begin.php">Zacznij inwentaryzację od nowa</a></p>
</form>
<?php
inwentaryzacja/locate.js
@@ -140,6 +140,10 @@
}
function changeBook(book) {
    if(document.getElementById('input').style.display != 'block') {
        return false;
    }
    if(book.parentNode == loc) {
        xml.getElementById(book.id).setAttribute('status', 'ok');
        
@@ -175,6 +179,10 @@
}
function processInput() {
    if(document.getElementById('input').style.display != 'block') {
        return false;
    }
    var reg = /^([0-9]{1,8})$/;
    var i1 = document.getElementById('i1').value;
    var i2 = document.getElementById('i2').value;
@@ -220,6 +228,57 @@
        clearInput();
        return false;
    }
}
function saveWithCallback(callback) {
    ajax.open('POST', 'save.php', true);
    ajax.onreadystatechange = callback;
    ajax.send(xml);
}
function save() {
    document.getElementById('input').style.display = 'none';
    status('Zapisywanie. Proszę czekać...');
    saveWithCallback(function() {
        if(ajax.readyState == 3) {
            status('Wysyłanie danych...');
        }
        else if(ajax.readyState == 4) {
            if(ajax.status == 200) {
                status('Dane zostały zapisane. '+ajax.status);
            }
            else
            {
                error('Zapis nie powiódł się. Błąd HTTP '+ajax.status);
            }
            document.getElementById('input').style.display = 'block';
        }
    });
}
function end() {
    document.getElementById('input').style.display = 'none';
    status('Zapisywanie. Proszę czekać...');
    saveWithCallback(function() {
        if(ajax.readyState == 3) {
            status('Wysyłanie danych...');
        }
        else if(ajax.readyState == 4) {
            if(ajax.status == 200) {
                status('Dane zostały zapisane. '+ajax.status);
                status('Przekierowywanie... Proszę czekać...');
                window.location.replace('end.php');
            }
            else
            {
                error('Zapis nie powiódł się. Błąd HTTP '+ajax.status);
                document.getElementById('input').style.display = 'block';
            }
        }
    });
}
function process() {
@@ -269,33 +328,10 @@
    document.getElementById('i1').onkeydown = document.getElementById('i2').onkeydown = document.getElementById('i3').onkeydown = keyEvent;
    document.getElementById('i4').onclick = processInput;
    document.getElementById('i5').onclick = save;
    document.getElementById('i6').onclick = end;
    document.getElementById('i1').focus();
    
    status('Gotowy do pracy.');
}
function save() {
    document.getElementById('input').style.display = 'none';
    status('Zapisywanie. Proszę czekać...');
    ajax.open('POST', 'save.php', true);
    ajax.onreadystatechange = function() {
        if(ajax.readyState == 3) {
            status('Wysyłanie danych...');
        }
        else if(ajax.readyState == 4) {
            if(ajax.status == 200) {
                status('Dane zostały zapisane. '+ajax.status);
            }
            else
            {
                error('Zapis nie powiódł się. Błąd HTTP '+ajax.status);
            }
            document.getElementById('input').style.display = 'block';
        }
    };
    ajax.send(xml);
}
function getData() {
inwentaryzacja/make.php
@@ -1,6 +1,7 @@
<?php
$title = 'Inwentaryzacja - rozpoczęcie';
include('design/top.php');
include('../includes/config.php');
include('../includes/db2.php');
$fields = array('tytul', 'autor', 'miejsce', 'rok', 'wydawnictwo');
@@ -64,7 +65,7 @@
<p>Jeżeli nie widzisz błędów powyżej to krok pierwszy został pomyślnie zakończony.</p>
<form action="locate.php">
<form action="locate.htm">
<p>Możesz: <input type="submit" value="Rozpocząć inwentaryzację" /></p>
</form>