Пример #1
0
}
if (isset($_POST['tipo_doc']) && $_POST['tipo_doc'] != "-") {
    $_SESSION['documento']['tipo_doc'] = $_POST['tipo_doc'];
}
if (!empty($_POST) && isset($_GET['key']) && !isset($_POST['cod_documento'])) {
    $key = $_GET['key'];
    // echo "Debug => qta richiesta: " . $_POST['qta' . $key] . " <br />";
    /*
     * Se il tipo di documento è 5 ovvero fattura vendita
     * e l'articolo è reale (quindi con un id e non una voce
     * arbitraria con id = '-')
     * verifica che la giacenza sia sufficiente:
     */
    if ($_SESSION['documento']['tipo_doc'] == "5" && $_SESSION['documento']['dettaglio'][$key]['id_prodotto'] != 0) {
        if ($_SESSION['documento']['dettaglio'][$key]['qta'] != $_POST['qta' . $key]) {
            $mod_qta = getDisponibilita($_SESSION['documento']['dettaglio'][$key]['id_prodotto'], $_POST['qta' . $key], 1);
            if ($mod_qta == "0.00") {
                $d->SaveErrors .= "Errore, impossibile variare la quantit&agrave;, il" . " prodotto non e' disponibile.<br />";
            } elseif ($mod_qta != $_POST['qta' . $key]) {
                $d->SaveErrors .= "Errore, la giacenza non &egrave; sufficiente per " . "soddisfare la richiesta, <br /> imposto la quantit&agrave;" . " al massimo consentito dal magazzino.<br />";
                $_SESSION['documento']['dettaglio'][$key]['qta'] = $mod_qta;
            } else {
                $_SESSION['documento']['dettaglio'][$key]['qta'] = $_POST['qta' . $key];
            }
        }
    } elseif ($_SESSION['documento']['tipo_doc'] != "5") {
        $_SESSION['documento']['dettaglio'][$key]['qta'] = $_POST['qta' . $key];
    }
    if ($_POST['sco' . $key] > 100) {
        $_POST['sco' . $key] = 100;
    }
Пример #2
0
function AddDocumentRow($RowType, $IdProdotto, $IdIVA = "", $Note = "", $Quantita = 1, $Sconto = 0, $Prezzo = 0)
{
    global $d;
    $DocumentRow = array();
    $UpdateDocumentRow = "";
    if (!isset($_SESSION['documento']['dettaglio'])) {
        $_SESSION['documento']['dettaglio'] = array();
    }
    if (is_numeric($IdProdotto) && $IdProdotto > 0) {
        // si tratta di un prodotto reale, estraggo tutti i dati dall'anagrafica:
        //~ echo "[Debug][AddDocumentRow]: si tratta di un prodotto reale, estraggo tutti i dati dall'anagrafica <br />";
        $ProdottoArray = $d->GetRows("*", "view_prodotti", "id_prodotto = '{$IdProdotto}' LIMIT 1", "", "", 1);
        $DocumentRow = $ProdottoArray[0];
    } elseif (is_numeric($IdProdotto) && $IdProdotto == 0) {
        // si tratta di una voce arbitraria o una nota ( todo ):
        //~ echo "[Debug][AddDocumentRow]: si tratta di una voce arbitraria o una nota ( todo ) <br />";
        $DocumentRow['id_prodotto'] = 0;
        $DocumentRow['cod_int'] = "-";
        $DocumentRow['cod_forn'] = "-";
        $DocumentRow['um'] = "-";
    }
    //~ echo "[Debug][AddDocumentRow]: IVA: '$IdIVA' <br />";
    if ($IdIVA == "") {
        // Recupera i dati dell'iva del prodotto se non e' stato fornito l'id:
        //~ echo "[Debug][AddDocumentRow]: Recupera i dati dell'iva del prodotto se non e' stato fornito l'id <br />";
        $IvaArray = $d->GetRows("*", "tab_iva", "id_iva = '" . $ProdottoArray[0]['id_iva'] . "'", "", "", 1);
        $DocumentRow['id_iva'] = $IvaArray[0]['id_iva'];
        $DocumentRow['iva'] = $IvaArray[0]['iva'];
        $DocumentRow['desc_iva'] = $IvaArray[0]['desc_iva'];
        unset($IvaArray);
    } elseif (is_numeric($IdIVA)) {
        // Importa i dati dell'iva in base all'id fornito:
        //~ echo "[Debug][AddDocumentRow]: Importa i dati dell'iva in base all'id fornito <br />";
        $IvaArray = $d->GetRows("*", "tab_iva", "id_iva = '{$IdIVA}'", "", "", 1);
        //~ echo "<pre>";
        //~ print_r($IvaArray);
        //~ echo "</pre>";
        $DocumentRow['id_iva'] = $IvaArray[0]['id_iva'];
        $DocumentRow['iva'] = $IvaArray[0]['iva'];
        $DocumentRow['desc_iva'] = $IvaArray[0]['desc_iva'];
        unset($IvaArray);
    }
    //~ echo "[Debug][AddDocumentRow]: NOTE: $Note <br />";
    if ($Note == "") {
        if (is_numeric($IdProdotto) && $IdProdotto > 0) {
            /* si tratta di un prodotto, quindi utilizzo le note
             * dall'anagrafica per popolare il dato */
            $DocumentRow['note'] = $ProdottoArray[0]['note'];
        }
    } else {
        // utilizzo il valore fornito per popolare il campo:
        if (is_numeric($IdProdotto) && $IdProdotto == 0) {
            // si tratta di una voce arbitraria o una nota ( todo ):
            //~ echo "[Debug][AddDocumentRow]: si tratta di una voce arbitraria o una nota ( todo ) <br />";
            $DocumentRow['marca'] = "";
            $DocumentRow['modello'] = $Note;
            $DocumentRow['voce_arb'] = $Note;
        } else {
            $DocumentRow['note'] = $Note;
        }
    }
    //~ echo "[Debug][AddDocumentRow]: Quantita: $Quantita <br />";
    if ($Quantita == "" || $Quantita < 0) {
        // Se la quantità scelta è nulla o < 1 allora impostala ad 1:
        //~ echo "[Debug][AddDocumentRow]: Quantita' inferiore a zero, la porto ad 1 <br />";
        $Quantita = 1;
    }
    if ($Quantita > 0) {
        if ($_SESSION['documento']['tipo_doc'] == 5) {
            $DocumentRow['disp'] = getGiacenza($DocumentRow['cod_int']);
            $DocumentRow['qta'] = getDisponibilita($IdProdotto, $Quantita);
            $DocumentRow['prz'] = $ProdottoArray[0]['prz_ve'];
        } else {
            // disponibilita' in altri casi non realmente importante
            $DocumentRow['disp'] = getGiacenza($DocumentRow['cod_int']);
            $DocumentRow['qta'] = $Quantita;
            $DocumentRow['prz'] = $ProdottoArray[0]['prz_acq'];
        }
    }
    switch ($RowType) {
        case "prodotto":
            /*
             * 01/07/2012 12:49:13 CEST Claudio Giordano
             *
             * Verifico la presenza dello stesso articolo nel documento
             */
            foreach ($_SESSION['documento']['dettaglio'] as $key => $field) {
                if ($field['id_prodotto'] == $ProdottoArray[0]['id_prodotto']) {
                    //~ echo "[Debug][AddDocumentRow]: l'articolo e' presente nel documento con KEY: $key <br />";
                    $UpdateDocumentRow = $key;
                }
            }
            $DocumentRow['sco'] = $Sconto;
            $DocumentRow['voce_arb'] = "";
            unset($temp_array);
            break;
        case "nota":
            // TODO
            break;
        case "voce":
            $DocumentRow['sco'] = $Sconto;
            break;
        default:
            echo "[Debug][AddDocumentRow]: Errore, tipo di riga non riconsciuto, esco <br />";
            return;
    }
    //~ echo "[Debug][AddDocumentRow]: UpdateDocumentRow: '$UpdateDocumentRow' <br />";
    if (!is_numeric($UpdateDocumentRow)) {
        // accoda la riga al dettaglio:
        //~ echo "[Debug][AddDocumentRow]: aggiungo la nuova riga al documento <br />";
        array_push($_SESSION['documento']['dettaglio'], $DocumentRow);
    } else {
        /*
         * se e' stato trovato il prodotto nel dettaglio aggiorna/sostituisci la riga
         * incrementando anche la quantita'
         */
        //~ echo "[Debug][AddDocumentRow]: aggiorno la riga $UpdateDocumentRow del documento con i nuovi dati <br />";
        //~ echo "[Debug]: sess_qta: ".$_SESSION['documento']['dettaglio'][$UpdateDocumentRow]['qta']." <br />";
        //~ echo "[Debug]: row_qta: ".$DocumentRow['qta']." <br />";
        //~ echo "[Debug]: _qta: $Quantita <br />";
        $DocumentRow['qta'] = floatval(floatval($_SESSION['documento']['dettaglio'][$UpdateDocumentRow]['qta']) + floatval($Quantita));
        $_SESSION['documento']['dettaglio'][$UpdateDocumentRow] = $DocumentRow;
    }
    unset($ProdottoArray);
}