Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
        /**
         * @author Patrick Lautsch <lautsch@weban.de>
         * @date 2010-05-14
         * 
         * Diese Datei enthält eine Sammlung von Funktionen,
         * welche für die Verwaltung der Lagerwirtschaft nötig sind.
         */

        /**
         * getArtikelbestandsInfo($artikelId)
         * 
         * Gibt die reservierte Menge, den aktuellen Bestand und den Verfügbaren Bestand als Array zurück.
         * 
         * @param INT
         * @return ARRAY
         */
        function getArtikelbestandsInfo($artikelId) {
                $return['reservierteMenge'] = getReservierteMenge($artikelId);
                $return['bestandsmenge'] = getBestandsmenge($artikelId);
                $return['verfuegbareMenge'] = $return['bestandsmenge'] - $return['reservierteMenge'];
                
                return $return;
        }
         
        /**
         * getReservierteMenge($artikelId)
         * 
         * Gibt die Gesamtmenge aller Artikel mit der $artikelId zurück,
         * welche den status "offen", "in Bearbeitung" oder "reserviert" haben
         * und nicht "exported_liferschein" gesetzt haben.
         * 
         * @param INT
         * @return INT
         */
        function getReservierteMenge($artikelId) {
                if ( isset($web_rechte['Warenwirtschaft']['lagerwirtschaft']['lagerwirtschaft']) )
                {
                        $sql = '
                                SELECT
                                        SUM(Menge) AS reservierteMenge
                                FROM
                                        artikel_to_Bestellung AS a2b
                                WHERE
                                        artikel = ' . $artikelId . '
                                        AND
                                        (
                                                a2b.status = "offen"
                                                OR a2b.status = "in Bearbeitung"
                                                OR a2b.status = "reserviert"
                                        )
                                        AND exported_lieferschein = "0000-00-00 00:00:00"
                        ;';
                        $result = mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
                        $row = mysql_fetch_assoc($result);
                        $reservierteMenge = $row['reservierteMenge'];
                        
                        if ( $reservierteMenge == NULL ) {
                                $reservierteMenge = 0;
                        }
                        
                        return $reservierteMenge;
                }
        }
        
        /**
         * getBestandsmenge($artikelId)
         * 
         * Gibt die Bestandsmenge aller Artikel mit der $artikelId zurück.
         * 
         * @param INT
         * @return INT
         */
        function getBestandsmenge($artikelId ) {
                if ( !empty($artikelId) )
                {
                        $sql = '
                                SELECT
                                        SUM(menge) as bestandsmenge
                                FROM
                                        lagerbewegungen
                                WHERE
                                        artikel = ' . $artikelId . '
                        ;';
                        $result = mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
                        $row = mysql_fetch_assoc($result);
                        $bestandsmenge = $row['bestandsmenge'];
                        
                        if ( $bestandsmenge == NULL ) {
                                $bestandsmenge = 0;
                        }
                        
                        return $bestandsmenge;
                }

        }
        
        /**
         * setBuchungFromBestellung($bestellId, $buchungstext)
         * 
         * Bucht eine Bestellung in die Datenbank.
         * 
         * @param INT
         * @param STRING
         * @return BOOL
         */
        function setBuchungFromBestellung( $bestellId, $buchungstext, $artikelID, $menge )
        {
                $sql = '
                        INSERT INTO
                                buchungen
                        (
                                buchungsdatum,
                                eintragsdatum,
                                buchungstext
                        )
                        VALUES
                        (
                                NOW(),
                                NOW(),
                                "' . $buchungstext . '"
                        )
                ;';
                
                mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
                $buchungsId = mysql_insert_id();
        
                
                        $sql = '
                                INSERT INTO
                                        lagerbewegungen
                                (
                                        artikel,
                                        buchungen,
                                        menge
                                )
                                VALUES
                                (
                                        ' . $artikelID . ',
                                        ' . $buchungsId . ',
                                        ' . $menge . '
                                )
                        ;';
                                        
                mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
                                        
                
        }



        /**
         * getBestandskennzeichnung()
         * 
         * Holt die Bestandskennzeichnungsfarbe des Webs aus den Webrechten.
         * 
         * @param STRING
         * @return STRING
         */
        function getBestandskennzeichnung($farbe) {
                if ( $farbe ) {
                        return $farbe;
                } else {
                        return '00ff00';
                }
        }
        
                
?>