Example #1
0
 public function parse($str)
 {
     $ret = $this->default_json();
     if (is_numeric(CoreLocal::get('VoidLimit')) && CoreLocal::get('VoidLimit') > 0) {
         Database::getsubtotals();
         if (CoreLocal::get('voidTotal') > CoreLocal::get('VoidLimit') && CoreLocal::get('voidOverride') != 1) {
             CoreLocal::set('strRemembered', CoreLocal::get('strEntered'));
             CoreLocal::set('voidOverride', 0);
             $ret['main_frame'] = MiscLib::base_url() . 'gui-modules/adminlogin.php?class=Void';
             return $ret;
         }
     }
     if (strlen($str) > 2) {
         $ret = $this->voidupc(substr($str, 2), $ret);
     } elseif (CoreLocal::get("currentid") == 0) {
         $ret['output'] = DisplayLib::boxMsg(_("No Item on Order"), '', false, DisplayLib::standardClearButton());
     } else {
         $id = CoreLocal::get("currentid");
         $status = PrehLib::checkstatus($id);
         $this->discounttype = $status['discounttype'];
         $this->discountable = $status['discountable'];
         $this->caseprice = $status['caseprice'];
         $this->scaleprice = $status['scaleprice'];
         /**
           Voided values:
             2 => "you saved" line
             3 => subtotal line
             4 => discount notice
             5 => % Discount line
             6 => tare weight, case disc notice,
             8 => FS change, regular change
             10 => tax exempt
         */
         if ($status['voided'] == 2) {
             // void preceeding item
             $ret = $this->voiditem($id - 1, $ret);
         } else {
             if ($status['voided'] == 3 || $status['voided'] == 6 || $status['voided'] == 8) {
                 $ret['output'] = DisplayLib::boxMsg(_("Cannot void this entry"), '', false, DisplayLib::standardClearButton());
             } else {
                 if ($status['voided'] == 4 || $status['voided'] == 5) {
                     PrehLib::percentDiscount(0);
                 } else {
                     if ($status['voided'] == 10) {
                         TransRecord::reverseTaxExempt();
                     } else {
                         if ($status['status'] == "V") {
                             $ret['output'] = DisplayLib::boxMsg(_("Item already voided"), '', false, DisplayLib::standardClearButton());
                         } else {
                             $ret = $this->voiditem($id, $ret);
                         }
                     }
                 }
             }
         }
     }
     if (empty($ret['output']) && empty($ret['main_frame'])) {
         $ret['output'] = DisplayLib::lastpage();
         $ret['redraw_footer'] = true;
         $ret['udpmsg'] = 'goodBeep';
     } elseif (empty($ret['main_frame'])) {
         $ret['udpmsg'] = 'errorBeep';
     }
     return $ret;
 }