Пример #1
0
 public function preprocess()
 {
     $dbc = $this->connection;
     $dbc->selectDB($this->config->get('OP_DB'));
     $o = new OriginsModel($dbc);
     $o->local(1);
     foreach ($o->find('originID') as $origin) {
         $this->localSettings[$origin->originID()] = $origin->shortName();
         $this->report_headers[] = '# ' . $origin->shortName();
     }
     return parent::preprocess();
 }
Пример #2
0
 public function post_newCustom_newState_newCountry_handler()
 {
     global $FANNIE_OP_DB;
     $dbc = FannieDB::get($FANNIE_OP_DB);
     $model = new OriginsModel($dbc);
     if ($this->newCustom || $this->newState || $this->newCountry) {
         // at least one FK required
         $model->customID($this->newCustom);
         $model->stateProvID($this->newState);
         $model->countryID($this->newCountry);
         $model->local(0);
         $model->save();
         $this->normalizeOriginNames();
     }
     header('Location: OriginEditor.php');
     return false;
 }
Пример #3
0
 /**
   Look up local origins. Normally these are
   found in the origins table but will use the
   older, deprecated originName table if it
   exists and the appropriate columns aren't in
   the origins table.
   @return [array] originID => shortName
 */
 public function getLocalOrigins()
 {
     $def = $this->connection->tableDefinition('origins');
     $ret = array();
     if (isset($def['shortName'])) {
         $o = new OriginsModel($this->connection);
         $o->local(1);
         foreach ($o->find('originID') as $origin) {
             $ret[$origin->originID()] = $origin->shortName();
         }
     } elseif ($this->connection->tableExists('originNames')) {
         $q = '
             SELECT originID,
                 shortName 
             FROM originName 
             WHERE local=1 
             ORDER BY originID';
         $r = $this->connection->query($q);
         while ($w = $this->connection->fetchRow($r)) {
             $ret[$w['originID']] = $w['shortName'];
         }
     }
     return $ret;
 }
Пример #4
0
 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} &nbsp; <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;
 }
Пример #5
0
 public function showEditForm($upc, $display_mode = 1, $expand_mode = 1)
 {
     $FANNIE_URL = FannieConfig::config('URL');
     $upc = BarcodeLib::padUPC($upc);
     $ret = '<div id="ProdUserFieldset" class="panel panel-default">';
     $ret .= "<div class=\"panel-heading\">\n                <a href=\"\" onclick=\"\$('#ProdUserFieldsetContent').toggle();return false;\">\n                Sign/Web Info</a>\n                </div>";
     $css = $expand_mode == 1 ? '' : ' collapse';
     $ret .= '<div id="ProdUserFieldsetContent" class="panel-body' . $css . '">';
     $dbc = $this->db();
     $model = new ProductUserModel($dbc);
     $model->upc($upc);
     $model->load();
     $loc = new ProdPhysicalLocationModel($dbc);
     $loc->upc($upc);
     $loc->load();
     $sections = new FloorSectionsModel($dbc);
     $prod = new ProductsModel($dbc);
     $prod->upc($upc);
     $prod->load();
     $ret .= '<div class="col-sm-6">';
     $ret .= '<div class="row form-group">' . '<label class="col-sm-1">Brand</label> ' . '<div class="col-sm-8">' . '<input type="text" class="form-control" id="lf_brand" name="lf_brand" value="' . $model->brand() . '" />' . '</div>' . '<div class="col-sm-3">' . ' <a href="" onclick="createSign(); return false;">Make Sign</a>' . '</div>' . '</div>';
     $ret .= '<div class="row form-group">' . '<label class="col-sm-1">Desc.</label> ' . '<div class="col-sm-8">' . '<textarea class="form-control" rows="2" id="lf_desc" name="lf_desc">' . $model->description() . '</textarea>' . '</div>' . '</div>';
     $ret .= '<div class="row form-group">' . '<label class="small col-sm-1">Sign Ct.</label> ' . '<div class="col-sm-8">' . '<input type="number" class="form-control price-field"
                 name="sign-count" value="' . $model->signCount() . '" />' . '</div>' . '</div>';
     $ret .= '<div class="row form-group">
                 <label tile="Location on the floor" class="col-sm-1">Loc.</label>
                 <div class="col-sm-8">
                     <select name="floor-id" class="form-control">
                         <option value="0">n/a</option>';
     foreach ($sections->find('name') as $section) {
         $ret .= sprintf('<option %s value="%d">%s</option>', $loc->floorSectionID() == $section->floorSectionID() ? 'selected' : '', $section->floorSectionID(), $section->name());
     }
     $ret .= '</select>
             </div>
             <div class="col-sm-3 text-left">
                 <a href="mapping/FloorSectionsPage.php" target="_blank">Add more</a>
             </div>
             </div>';
     $otherOriginBlock = '<div class=row>
             <div class=col-sm-1 />
             <div class=col-sm-8>
         <select name=otherOrigin[] class=form-control><option value=0>n/a</option>';
     $ret .= '<div class="row form-group">' . '<label class="col-sm-1"><a href="' . $FANNIE_URL . 'item/origins/OriginEditor.php">Origin</a></label>' . '<div class="col-sm-8">' . ' <select name="origin" class="form-control">' . '<option value="0">n/a</option>';
     $origins = new OriginsModel($dbc);
     $origins->local(0);
     foreach ($origins->find('name') as $o) {
         $ret .= sprintf('<option %s value="%d">%s</option>', $prod->current_origin_id() == $o->originID() ? 'selected' : '', $o->originID(), $o->name());
         $otherOriginBlock .= sprintf('<option value=%d>%s</option>', $o->originID(), $o->name());
     }
     $ret .= '</select></div>';
     $otherOriginBlock .= '</div></div>';
     $ret .= '<div class="col-sm-3 text-left">';
     $ret .= '&nbsp;&nbsp;&nbsp;&nbsp;<a href="" 
             onclick="$(\'#originsBeforeMe\').before(\'' . $otherOriginBlock . '\'); return false;">Add more</a>';
     $ret .= '</div></div>';
     $mapP = 'SELECT originID FROM ProductOriginsMap WHERE upc=? AND originID <> ?';
     $mapR = $dbc->execute($mapP, array($upc, $prod->current_origin_id()));
     while ($mapW = $dbc->fetch_row($mapR)) {
         $ret .= '<div class="form-group form-inline">
             <select name="otherOrigin[]" class="form-control"><option value="0">n/a</option>';
         foreach ($origins->find('name') as $o) {
             $ret .= sprintf('<option %s value="%d">%s</option>', $mapW['originID'] == $o->originID() ? 'selected' : '', $o->originID(), $o->name());
         }
         $ret .= '</select></div>';
     }
     $ret .= '<div id="originsBeforeMe"></div>';
     $ret .= '</div>';
     $ret .= '<div class="col-sm-6">';
     $ret .= '<div class="form-group"><label>Ad Text</label></div>';
     $ret .= '<div class="form-group">
             <textarea name="lf_text" class="form-control"
                 rows="8" cols="45">' . str_replace('<br />', "\n", $model->long_text()) . '</textarea></div>';
     $ret .= '</div>';
     $ret .= '</div>';
     $ret .= '</div>';
     return $ret;
 }