private function getVendorInfo($id) { global $FANNIE_OP_DB, $FANNIE_ROOT; $dbc = FannieDB::get($FANNIE_OP_DB); $ret = ""; $nameQ = $dbc->prepare_statement("SELECT vendorName FROM vendors WHERE vendorID=?"); $nameR = $dbc->exec_statement($nameQ, array($id)); $model = new VendorsModel($dbc); $model->vendorID($id); $model->load(); $ret .= '<div>'; $ret .= "<b>Id</b>: {$id} <b>Name</b>: " . $model->vendorName(); $ret .= '</div>'; $itemQ = $dbc->prepare_statement("SELECT COUNT(*) FROM vendorItems WHERE vendorID=?"); $itemR = $dbc->exec_statement($itemQ, array($id)); $num = 0; if ($itemR && ($row = $dbc->fetch_row($itemR))) { $num = $row[0]; } $ret .= ' <div class="row"> <div class="container-fluid col-sm-3">'; $ret .= ' <div class="panel panel-default"> <div class="panel-heading">Catalog</div> <div class="panel-body"> This vendor contains ' . $num . ' items<br />'; if ($num > 0) { $ret .= "<a href=\"BrowseVendorItems.php?vid={$id}\">Browse vendor catalog</a>"; if ($num <= 750) { $ret .= "<br />"; $ret .= "<a href=\"EditVendorItems.php?id={$id}\">Edit vendor catalog</a>"; } } $ret .= "<br />"; $ret .= "<a href=\"DefaultUploadPage.php?vid={$id}\">Upload new vendor catalog</a>"; $ret .= "<br />"; $ret .= "<a href=\"VendorIndexPage.php?vid={$id}&autoAdd=1\">Add existing items to catalog</a>"; $ret .= '</div></div>'; $ret .= '</div><div class="container-fluid col-sm-3">'; $ret .= ' <div class="panel panel-default"> <div class="panel-heading">Mappings</div> <div class="panel-body">'; $ret .= "<a href=\"UploadPluMapPage.php?vid={$id}\">Upload PLU/SKU mapping</a>"; $ret .= "<br />"; $ret .= "<a href=\"SkuMapPage.php?id={$id}\">View or Edit PLU/SKU mapping</a>"; $ret .= "<br />"; $ret .= "<a href=\"UnitBreakdownPage.php?id={$id}\">View or Edit Breakdown mapping</a>"; $ret .= '</div></div>'; $ret .= '</div><div class="container-fluid col-sm-3">'; $ret .= ' <div class="panel panel-default"> <div class="panel-heading">Margin</div> <div class="panel-body">'; $itemQ = $dbc->prepare("SELECT COUNT(*) FROM vendorDepartments WHERE vendorID=?"); $itemR = $dbc->execute($itemQ, array($id)); $num = 0; if ($itemR && ($row = $dbc->fetch_row($itemR))) { $num = $row[0]; } $ret .= '<p>'; $ret .= "<a href=\"../../batches/UNFI/\">Vendor Price Batch Tools</a>"; $ret .= "</p><p>"; if ($num == 0) { $ret .= "<a href=\"VendorDepartmentEditor.php?vid={$id}\">This vendor's items are not yet arranged into subcategories</a>"; $ret .= '<p />'; $ret .= "<a href=\"VendorDepartmentUploadPage.php?vid={$id}\">Upload Subcategory List</a>"; } else { $ret .= "This vendor's items are divided into "; $ret .= $num . " subcategories"; $ret .= "<br />"; $ret .= "<a href=\"VendorDepartmentEditor.php?vid={$id}\">View or Edit vendor-specific margin(s)</a>"; $ret .= "<br />"; $ret .= "<a href=\"VendorMarginsPage.php?id={$id}\">And Even More Margins</a>"; $ret .= '<p />'; $ret .= "<a href=\"VendorDepartmentUploadPage.php?vid={$id}\">Upload Subcategory List</a>"; } $ret .= '</p>'; $ret .= ' <div class="form-group"> <div class="input-group"> <span class="input-group-addon">Shipping</span> <input type="text" id="vc-shipping" name="shipping" onchange="saveShipping(this.value);" title="Markup percentage to account for shipping fees" class="form-control" value="' . $model->shippingMarkup() * 100 . '" /> <span class="input-group-addon">%</span> </div> </div> <div class="form-group"> <div class="input-group"> <span class="input-group-addon">Discount Rate</span> <input type="text" id="vc-discount" name="discount-rate" title="Markdown percentage from catalog list costs" onchange="saveDiscountRate(this.value);" class="form-control" value="' . $model->discountRate() * 100 . '" /> <span class="input-group-addon">%</span> </div> </div>'; $ret .= '</div></div>'; $ret .= '</div></div>'; $ret .= ' <div class="panel panel-default"> <div class="panel-heading">Contact Info</div> <div class="panel-body"> <div class="form-alerts"></div>'; $ret .= '<form role="form" class="form-horizontal" onsubmit="saveVC(' . $id . '); return false;" id="vcForm">'; $ret .= '<div class="form-group"> <label for="vcPhone" class="control-label col-sm-1">Phone</label> <div class="col-sm-10"> <input type="tel" class="form-control" id="vcPhone" name="phone" value="' . $model->phone() . '" /> </div> </div>'; $ret .= '<div class="form-group"> <label for="vcFax" class="control-label col-sm-1">Fax</label> <div class="col-sm-10"> <input type="text" id="vcFax" class="form-control" name="fax" value="' . $model->fax() . '" /> </div> </div>'; $ret .= '<div class="form-group"> <label for="vcEmail" class="control-label col-sm-1">Email</label> <div class="col-sm-10"> <input type="text" class="form-control" id="vcEmail" name="email" value="' . $model->email() . '" /> </div> </div>'; $ret .= '<div class="form-group"> <label for="vcWebsite" class="control-label col-sm-1">Website</label> <div class="col-sm-10"> <input type="text" class="form-control" id="vcWebsite" name="website" value="' . $model->website() . '" /> </div> </div>'; $ret .= '<div class="form-group"> <label for="vc-local-id" class="control-label col-sm-1">Local</label> <div class="col-sm-10"> <select class="form-control" name="local-origin-id"> <option value="0">No</option>'; $origins = new OriginsModel($dbc); $origins->local(1); foreach ($origins->find('shortName') as $origin) { $ret .= sprintf('<option %s value="%d">%s</option>', $origin->originID() == $model->localOriginID() ? 'selected' : '', $origin->originID(), $origin->shortName()); } $ret .= '</select> </div> </div>'; $ret .= '<div class="form-group"> <label for="vcNotes" class="control-label col-sm-1">Ordering Notes</label> <div class="col-sm-10"> <textarea class="form-control" rows="5" name="notes" id="vcNotes">' . $model->notes() . '</textarea> </div> </div>'; $ret .= '<button type="submit" class="btn btn-default">Save Vendor Contact Info</button>'; $ret .= '</form>'; $ret .= '</div></div>'; $delivery = new VendorDeliveriesModel($dbc); $delivery->vendorID($id); $delivery->load(); $ret .= '<p class="form-inline form-group"><label class="control-label" for="deliverySelect">Delivery Schedule</label>: '; $ret .= '<select class="delivery form-control" name="frequency" id="deliverySelect"><option>Weekly</option></select>'; $ret .= ' <label for="regular" class="control-label">Regular</label>: <input type="checkbox" class="delivery" name="regular" id="regular" ' . ($delivery->regular() ? 'checked' : '') . ' />'; $dt = mktime(0, 0, 0, 6, 15, 2014); // date doesn't matter; just need a sunday $labels = ''; $checks = ''; for ($i = 0; $i < 7; $i++) { $func = strtolower(date('l', $dt)); $labels .= '<th><label for="' . $func . '">' . date('D', $dt) . '</label></th>'; $checks .= '<td><input type="checkbox" id="' . $func . '" name="' . $func . '" ' . ($delivery->{$func}() ? 'checked' : '') . ' class="delivery" /></td>'; $dt = mktime(0, 0, 0, date('n', $dt), date('j', $dt) + 1, date('Y', $dt)); } $ret .= '<table class="table"><tr>' . $labels . '</tr><tr>' . $checks . '</tr></table>'; $ret .= 'Next 2 deliveries: ' . '<span id="nextDelivery">' . date('D, M jS', strtotime($delivery->nextDelivery())) . '</span>' . ' and ' . '<span id="nextNextDelivery">' . date('D, M jS', strtotime($delivery->nextNextDelivery())) . '</span>'; $ret .= '</p>'; echo $ret; }
public function preprocess() { global $FANNIE_PLUGIN_SETTINGS, $FANNIE_OP_DB, $FANNIE_URL, $FANNIE_TRANS_DB; //$this->add_script($FANNIE_URL.'src/javascript/jquery.js'); //$this->add_script($FANNIE_URL.'src/javascript/jquery-ui.js'); if (FormLib::get('upc_in') !== '') { $upc = BarcodeLib::padUPC(FormLib::get('upc_in')); $this->current_item_data['upc'] = $upc; $dbc = FannieDB::get($FANNIE_OP_DB); $model = new ProductsModel($dbc); $model->upc($upc); $vendorID = 0; if ($model->load()) { $this->current_item_data['desc'] = $model->brand() . ' ' . $model->description(); $this->current_item_data['par'] = $model->auto_par(); $vendorID = $model->default_vendor_id(); } $model = new VendorsModel($dbc); $model->vendorID($vendorID); if ($model->load()) { $this->current_item_data['vendor'] = $model->vendorName(); $schedule = new VendorDeliveriesModel($dbc); $schedule->vendorID($vendorID); if ($schedule->load() && $schedule->regular() == 1) { $this->current_item_data['nextDelivery'] = date('D, M jS', strtotime($schedule->nextDelivery())) . ' & ' . date('D, M jS', strtotime($schedule->nextNextDelivery())); $nd = new DateTime(date('Y-m-d', strtotime($schedule->nextDelivery()))); $nnd = new DateTime(date('Y-m-d', strtotime($schedule->nextNextDelivery()))); $this->current_item_data['deliverySpan'] = $nnd->diff($nd)->format('%a'); } $items = new VendorItemsModel($dbc); $items->vendorID($vendorID); $items->upc($upc); $this->current_item_data['cases'] = array(); foreach ($items->find('units') as $item) { $this->current_item_data['cases'][] = $item->units(); } } $saleNow = 'SELECT b.batchName, b.startDate, b.endDate FROM batchList AS l INNER JOIN batches AS b ON b.batchID=l.batchID WHERE l.upc=? AND b.discounttype <> 0 AND b.startDate <= ' . $dbc->now() . ' AND b.endDate >= ' . $dbc->now(); $saleNow = $dbc->prepare($saleNow); $saleNow = $dbc->execute($saleNow, array($upc)); if ($dbc->num_rows($saleNow) > 0) { $row = $dbc->fetch_row($saleNow); $this->current_item_data['onSale'] = $row['batchName'] . ' thru ' . date('D, M jS', strtotime($row['endDate'])); } $saleNext = 'SELECT b.batchName, b.startDate, b.endDate FROM batchList AS l INNER JOIN batches AS b ON b.batchID=l.batchID WHERE l.upc=? AND b.discounttype <> 0 AND b.startDate >= ' . $dbc->now() . ' AND b.endDate >= ' . $dbc->now(); $saleNext = $dbc->prepare($saleNext); $saleNext = $dbc->execute($saleNext, array($upc)); if ($dbc->num_rows($saleNext) > 0) { $row = $dbc->fetch_row($saleNext); $this->current_item_data['soonSale'] = $row['batchName'] . ' on ' . date('D, M jS', strtotime($row['startDate'])); } $ordersQ = 'SELECT v.vendorName, o.placedDate, i.quantity, i.caseSize FROM PurchaseOrderItems AS i INNER JOIN PurchaseOrder AS o ON i.orderID=o.orderID INNER JOIN vendors AS v ON o.vendorID=v.vendorID WHERE i.internalUPC = ? ORDER BY o.placedDate DESC'; $ordersQ = $dbc->add_select_limit($ordersQ, 10); $ordersP = $dbc->prepare($ordersQ); $ordersR = $dbc->execute($ordersP, array($upc)); $orders = array(); while ($w = $dbc->fetch_row($ordersR)) { $orders[] = $w; } $this->current_item_data['orders'] = $orders; $salesQ = 'SELECT ' . DTrans::sumQuantity('d') . ' AS qty, MIN(tdate) as day FROM ' . $FANNIE_TRANS_DB . $dbc->sep() . 'dlog_15 AS d WHERE upc = ? GROUP BY YEAR(tdate), MONTH(tdate), DAY(tdate) ORDER BY YEAR(tdate) DESC, MONTH(tdate) DESC, DAY(tdate) DESC'; $salesP = $dbc->prepare($salesQ); $salesR = $dbc->execute($salesP, array($upc)); $sales = array(); while ($w = $dbc->fetch_row($salesR)) { $sales[] = $w; } $this->current_item_data['sales'] = $sales; } $this->linea_ios_mode = $this->linea_support_available(); if ($this->linea_ios_mode) { $this->add_script($FANNIE_URL . 'src/javascript/linea/cordova-2.2.0.js'); $this->add_script($FANNIE_URL . 'src/javascript/linea/ScannerLib-Linea-2.0.0.js'); } $this->add_script($FANNIE_URL . 'src/javascript/tablesorter/jquery.tablesorter.js'); $this->add_css_file($FANNIE_URL . 'src/javascript/tablesorter/themes/blue/style.css'); //$this->add_css_file($FANNIE_URL.'src/javascript/jquery-ui.css'); return true; }