CORE-POS/IS4C

View on GitHub
fannie/mem/modules/MemCard.php

Summary

Maintainability
A
25 mins
Test Coverage
F
29%
<?php
/*******************************************************************************

    Copyright 2010 Whole Foods Co-op, Duluth, MN

    This file is part of CORE-POS.

    IT CORE is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    IT CORE is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    in the file license.txt along with IT CORE; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*********************************************************************************/

class MemCard extends \COREPOS\Fannie\API\member\MemberModule {

    public function width()
    {
        return parent::META_WIDTH_HALF;
    }

    function HasSearch(){
        $FANNIE_MEMBER_UPC_PREFIX = FannieConfig::config('FANNIE_MEMBER_UPC_PREFIX');
        if (isset($FANNIE_MEMBER_UPC_PREFIX) &&
            $FANNIE_MEMBER_UPC_PREFIX != "") {
            return True;
        } else {
            return False;
        }
    }

    function showSearchForm($country='US') {
        $FANNIE_MEMBER_UPC_PREFIX = FannieConfig::config('FANNIE_MEMBER_UPC_PREFIX');
        $ret = '';
        $ret .= '<div class="row form-group form-inline" ' .
            'title="Type or scan, with or without the prefix ' .
            $FANNIE_MEMBER_UPC_PREFIX . '"' .
            '>' .
            '<label>Membership Card</label>' .
            ' <input type="text" name="MemCard_mc"' .
            'size="13" maxlength="13" ' .
            'id="s_mc" class="form-control" />' .
        '</div>';

        return $ret;
    }

    /* What should replace 'mFirstName'?  mMemberCard
    public function getSearchLoadCommands()
    {
        $FANNIE_URL = FannieConfig::config('URL');
        return array(
            "bindAutoComplete('#s_mc', '" . $FANNIE_URL . "ws/', 'mFirstName');\n",
        );
    }
    */

    function GetSearchResults()
    {
        $FANNIE_MEMBER_UPC_PREFIX = FannieConfig::config('FANNIE_MEMBER_UPC_PREFIX');
        $dbc = $this->db();

        $ret = array();

        $mc = "";
        $mc = FormLib::get_form_value('MemCard_mc');
        if (!preg_match("/^\d+$/",$mc)) {
            return $ret;
        }
        $mcc = "";
        if (strlen($mc) == 13) {
            $mcc = $mc;
        } else if (strlen($mc) == 11) {
            $mcc = sprintf("00%s", $mc);
        } else {
            $mcc = sprintf("%s%05d",$FANNIE_MEMBER_UPC_PREFIX, (int)$mc);
        }

        $json = array(
            'idCardUPC' => $mcc,
        );
        $accounts = \COREPOS\Fannie\API\member\MemberREST::search($json, 0);

        return $accounts;
    }


    // Return a form segment for display or edit the Member Card#
    function showEditForm($memNum, $country="US")
    {
        $FANNIE_URL = FannieConfig::config('URL');
        $FANNIE_MEMBER_UPC_PREFIX = FannieConfig::config('FANNIE_MEMBER_UPC_PREFIX');

        $account = self::getAccount();

        $prefix = isset($FANNIE_MEMBER_UPC_PREFIX) ? $FANNIE_MEMBER_UPC_PREFIX : "";
        $plen = strlen($prefix);

        $ret = "<div class=\"panel panel-default\">
            <div class=\"panel-heading\">Membership Card</div>
            <div class=\"panel-body\">";
        $upc = $account['idCardUPC'];
        if ( $prefix && strpos("$upc", "$prefix") === 0 ) {
            $upc = substr($upc,$plen);
            $upc = ltrim($upc,"0");
        }

        $ret .= '<div class="form-group form-inline">
            <span class="label primaryBackground">Card#</span>
            <input type="text" name="memberCard" class="form-control"
                value="' . $upc . '" />
            </div>';

        $ret .= "</div>";
        $ret .= "</div>";

        return $ret;

    // showEditForm
    }

    // Update, insert or delete the Member Card#.
    // Return "" on success or an error message.
    public function saveFormData($memNum, $json=array())
    {

        global $FANNIE_MEMBER_UPC_PREFIX;
        $dbc = $this->db();
        if (!class_exists("MemberCardsModel"))
            include(__DIR__ . '/../../classlib2.0/data/models/MemberCardsModel.php');

        $prefix = isset($FANNIE_MEMBER_UPC_PREFIX) ? $FANNIE_MEMBER_UPC_PREFIX : "";
        $plen = strlen($prefix);

        $form_upc = FormLib::get_form_value('memberCard','');
        // Restore prefix and leading 0's to upc.
        if ( $form_upc && strlen($form_upc) < 13 ) {
            $clen = (13 - $plen);
            $form_upc = sprintf("{$prefix}%0{$clen}d", $form_upc);
        }

        $json['idCardUPC'] = $form_upc;
        return $json;

    // saveFormData
    }

// MemCard
}