CORE-POS/IS4C

View on GitHub
fannie/item/ajax.php

Summary

Maintainability
B
5 hrs
Test Coverage
F
0%
<?php
require(dirname(__FILE__) . '/../config.php');
if (!class_exists('FannieAPI')) {
    include(__DIR__ . '/../classlib2.0/FannieAPI.php');
}
if (basename(__FILE__) != basename($_SERVER['PHP_SELF'])) {
    return;
}

if (isset($_REQUEST['action'])){
    switch($_REQUEST['action']){
    case 'margin':
        MarginFS($_REQUEST['upc'],$_REQUEST['cost'],$_REQUEST['dept']);
        break;
    case 'likecode':
        GetLikeCodeItems($_REQUEST['lc']);
        break;
    }
}

function GetLikecodeItems($lc){
    global $FANNIE_OP_DB;
    $dbc = FannieDB::get($FANNIE_OP_DB);
    $ret = "<table border=0 bgcolor=\"#FFFFCC\">";
    if (is_numeric($lc)){
        $prep = $dbc->prepare("SELECT p.upc,p.description FROM
            products AS p INNER JOIN upcLike AS u ON
            p.upc=u.upc WHERE u.likeCode=?
            ORDER BY p.upc");
        $res = $dbc->execute($prep, array($lc));
        while($row = $dbc->fetch_row($res)){
            $ret .= sprintf("<tr><td><a href=itemMaint.php?upc=%s>%s</a></td>
                    <td>%s</td></tr>",$row[0],$row[0],$row[1]);
        }
    }
    $ret .= "</table>";
    
    echo $ret;
}

function MarginFS($upc,$cost,$deptID)
{
    global $FANNIE_OP_DB;
    $dbc = FannieDB::get($FANNIE_OP_DB);

    $price = 'None';
    $prod = new ProductsModel($dbc);
    $prod->upc($upc);
    if ($prod->load()) {
        $price = $prod->normal_price();
    }

    $dm = 'Unknown';
    $dept = new DepartmentsModel($dbc);
    $dept->dept_no($deptID);
    if ($dept->load()) {
        $dm = $dept->margin();
    }

    if ((empty($dm) || $dm == 'Unknown') && $dbc->tableExists('deptMargin')) {
        $prep = $dbc->prepare("SELECT margin FROM deptMargin WHERE dept_ID=?");
        $dm = $dbc->execute($prep, array($deptID));
        if ($dbc->num_rows($dm) > 0) {
            $row = $dbc->fetch_row($dm);
            $dm = $dm['margin'];
        }
    }

    $ret = "Desired margin on this department is ";
    if ($dm == "Unknown") $ret .= $dm;
    else $ret .= sprintf("%.2f%%",$dm*100);
    $ret .= "<br />";
    
    $actual = 0;
    if ($price != 0)
        $actual = ($price-$cost)/$price;
    if (($actual > $dm && is_numeric($dm)) || !is_numeric($dm) ){
        $ret .= sprintf("<span style=\"color:green;\">Current margin on this item is %.2f%%<br />",
            $actual*100);
    } else if (!is_numeric($price)) {
        $ret .= "<span style=\"color:green;\">No price has been saved for this item<br />";
    } else {
        $ret .= sprintf("<span style=\"color:red;\">Current margin on this item is %.2f%%</span><br />",
            $actual*100);
        $srp = getSRP($cost,$dm);
        $ret .= sprintf("Suggested price: \$%.2f ",$srp);
        $ret .= sprintf("(<a href=\"\" onclick=\"setPrice(%.2f); return false;\">Use this price</a>)",$srp);
    }

    echo $ret;
}

function getSRP($cost,$margin){
    $srp = sprintf("%.2f",$cost/(1-$margin));
    while (substr($srp,strlen($srp)-1,strlen($srp)) != "5" &&
           substr($srp,strlen($srp)-1,strlen($srp)) != "9")
        $srp += 0.01;
    return $srp;
}