function scan()
{
    $invoice = array("invoice" => "Scan Invoice");
    $barcode = flashRed($invoice);
    $barcode = $barcode["invoice"];
    $sorder_num = decrypt_barcode($barcode);
    if (empty($sorder_num) || !is_numeric($sorder_num)) {
        $sorder_num = 0;
    }
    $prd_union = array();
    for ($i = 1; $i <= 14; $i++) {
        $prd_union[] = "SELECT pslip_sordid FROM \"{$i}\".pinvoices WHERE pslip_sordid='{$sorder_num}'";
    }
    $pinvoices_sql = implode(" UNION ", $prd_union);
    $sql = "SELECT pslip_sordid FROM cubit.invoices WHERE pslip_sordid='{$sorder_num}' UNION {$pinvoices_sql}";
    $invoice_rslt = db_exec($sql) or errDie("Unable to check sales order id.");
    if (!pg_num_rows($invoice_rslt) || $sorder_num == 0) {
        return scan_error("Scanned invoice does not exist.");
    }
    $sql = "SELECT sordid FROM cubit.pslip_signed_index WHERE sordid='{$sorder_num}'";
    $psi_rslt = db_exec($sql) or errDie("Unable to retrieve index.");
    if (pg_num_rows($psi_rslt) > 0) {
        scan_error("Signed invoice already uploaded");
    }
    return enter($sorder_num);
}
Пример #2
0
function scan()
{
    // Check setting
    $sql = "SELECT set FROM cubit.picking_slip_setting";
    $setting_rslt = db_exec($sql) or errDie("Unable to retrieve setting.");
    $setting = pg_fetch_result($setting_rslt, 0);
    if ($setting == "n") {
        header("Location: picking_slip_settings.php");
    }
    $invoice = array("invoice" => "Scan Invoice");
    list($barcode) = array_values(flashRed($invoice));
    $sordid = decrypt_barcode($barcode);
    if (empty($sordid) || !is_numeric($sordid)) {
        $sordid = 0;
    }
    // Has this invoice been scanned before
    $sql = "SELECT id FROM cubit.pslip_scans WHERE sordid='{$sordid}'";
    $scan_rslt = db_exec($sql) or errDie("Unable to retrieve scans.");
    $sql = "SELECT sordid FROM cubit.sorders WHERE sordid='{$sordid}'";
    $sorder_rslt = db_exec($sql) or errDie("Unable to retrieve sales order.");
    if (pg_num_rows($sorder_rslt)) {
        $reason = "";
        if (pg_num_rows($scan_rslt)) {
            $reason = "DUPLICATE (No reason)";
        }
        $sql = "\n\t\t\tINSERT INTO cubit.pslip_scans (\n\t\t\t\tsordid, timestamp, userid, reason\n\t\t\t) VALUES (\n\t\t\t\t'{$sordid}', current_timestamp, '" . USER_ID . "', '{$reason}'\n\t\t\t)";
        db_exec($sql) or errDie("Unable to record scan.");
    } else {
        return scan_error();
    }
    if (pg_num_rows($scan_rslt)) {
        $scan_id = pglib_lastid("cubit.pslip_scans", "id");
        return reason($scan_id);
    }
    return dispatch($sordid);
}
function dispatch_out()
{
    extract($_REQUEST);
    $fields = array();
    $fields["barcode"] = "";
    $fields["slip_id"] = 0;
    extract($fields, EXTR_SKIP);
    $items_out = "";
    if (!empty($barcode)) {
        $slip_id = decrypt_barcode($barcode);
        if (!is_numeric($slip_id)) {
            $slip_id = 0;
        }
        $sql = "SELECT id, stkid, stkcod, stkdes, qty\n\t\t\t\tFROM cubit.pickslip_stk \n\t\t\t\t\tLEFT JOIN cubit.stock ON pickslip_stk.stock_id=stock.stkid\n\t\t\t\tWHERE pickslip_id='{$slip_id}'";
        $stock_rslt = db_exec($sql) or errDie("Unable to retrieve stock.");
        $items_out .= "\n\t\t<tr>\n\t\t\t<th>Stock</th>\n\t\t\t<th>Quantity</th>\n\t\t\t<th>Serial 1</th>\n\t\t\t<th>Serial 2</th>\n\t\t</tr>";
        while (list($id, $stkid, $stkcod, $stkdes, $qty) = pg_fetch_array($stock_rslt)) {
            if (!isset($serial1[$id])) {
                $serial1[$id] = "";
            }
            if (!isset($serial2[$id])) {
                $serial2[$id] = "";
            }
            $items_out .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>({$stkcod}) {$stkdes}</td>\n\t\t\t\t<td>{$qty}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='text' name='serial1[{$id}]' value='{$serial1[$id]}' />\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='text' name='serial2[{$id}]' value='{$serial2[$id]}' />\n\t\t\t\t</td>\n\t\t\t</tr>";
        }
    }
    if (!empty($items_out)) {
        $items_out .= "\n\t\t<tr>\n\t\t\t<td colspan='4' align='center'>\n\t\t\t\t<input type='submit' name='key' value='invoice' />\n\t\t\t</td>\n\t\t</tr>";
    }
    $OUTPUT = "\n\t<center>\n\t<h3>Picking Slip - Dispatch</h3>\n\t<form method='post' action='" . SELF . "'>\n\t<input type='hidden' name='key' value='dispatch_out' />\n\t<input type='hidden' name='barcode' value='{$barcode}' />\n\t<table " . TMPL_tblDflts . ">\n\t\t<tr>\n\t\t\t<th colspan='2'>Scan Picking Slip</th>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td><input type='text' name='barcode' value='{$barcode}' /></td>\n\t\t\t<td><input type='submit' value='Scan &raquo' />\n\t\t</tr>\n\t</table>\n\t</form>\n\t<form method='post' action='" . SELF . "'>\n\t<input type='hidden' name='slip_id' value='{$slip_id}' />\n\t<input type='hidden' name='barcode' value='{$barcode}' />\n\t<table " . TMPL_tblDflts . ">\n\t\t{$items_out}\n\t</table>\n\t</form>\n\t</center>";
    return $OUTPUT;
}
Пример #4
0
function invoice_scan()
{
    extract($_REQUEST);
    /*
    	// Check setting
    	$sql = "SELECT set FROM cubit.picking_slip_setting";
    	$setting_rslt = db_exec($sql) or errDie("Unable to retrieve setting.");
    	$setting = pg_fetch_result($setting_rslt, 0);
    
    	if ($setting == "n") {
    		header("Location: picking_slip_settings.php");
    	}
    */
    $invoice = array("invoice" => "Scan Invoice");
    list($barcode) = array_values(flashRed($invoice, "", $_REQUEST));
    $invid = decrypt_barcode($barcode);
    if (empty($invid) || !is_numeric($invid)) {
        $invid = 0;
    }
    /*
    	// Has this invoice been scanned before
    	$sql = "SELECT id FROM cubit.pslip_scans WHERE sordid='$sordid'";
    	$scan_rslt = db_exec($sql) or errDie("Unable to retrieve scans.");
    */
    $sql = "SELECT id FROM cubit.dispatch_scans WHERE invid='{$invid}'";
    $scan_rslt = db_exec($sql) or errDie("Unable to retrieve scans.");
    $sql = "SELECT invid FROM " . which_invoice($invid) . " WHERE invid='{$invid}'";
    $inv_rslt = db_exec($sql) or errDie("Unable to retrieve invoice.");
    $duplicate = pg_num_rows($scan_rslt) ? 1 : 0;
    if (pg_num_rows($inv_rslt)) {
        $sql = "\n\t\t\tINSERT INTO cubit.dispatch_scans (invid, timestamp, userid,\n\t\t\t\tduplicate, dispatch_type)\n\t\t\t\tVALUES ('{$invid}', current_timestamp, '" . USER_ID . "',\n\t\t\t\t\t'{$duplicate}', '{$dispatch_type}')";
        db_exec($sql) or errDie("Unable to record scan.");
    }
    $scan_id = pglib_lastid("cubit.pslip_scans", "id");
    if (pg_num_rows($scan_rslt)) {
        return invoice_error_block($scan_id);
    } else {
        if (!pg_num_rows($inv_rslt)) {
            return invoice_error_notfound();
        }
    }
    return dispatch_now($scan_id);
}