Пример #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
 /**
   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;
 }
Пример #3
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;
 }
Пример #4
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;
 }
Пример #5
0
 /**
   The origins table references up to three
   other tables: originCountry, originStateProv,
   and originCustomRegion. origins.name and
   origins.shortName are derived from these other
   tables.
 
   THIS METHOD WILL UPDATE THE NAME FIELDS IN THE
   ORIGINS TABLE.
 
   origins.shortName will simply use the first
   one of these rules that works.
   1. corresponding originCustomRegion.name, if present
   2. corresponding originStateProv.name, if present
   3. corresponding originCountry.name, if present
 
   origins.name will incorporate all corresponding
   records from the other tables as a comma separated
   list in this order:
 
     customRegion, stateProv, country
 
   Any values not without a corresponding record are
   omitted.
 
   The 1st entry in the list will use the full
   name. The 2nd and/or 3rd entries will use an
   abbreviation if possible and otherwise the
   full name.
 
   Examples:
     Superior Compact, MN, USA
     Minnesota, USA
 */
 private function normalizeOriginNames()
 {
     global $FANNIE_OP_DB;
     $dbc = FannieDB::get($FANNIE_OP_DB);
     $origins = new OriginsModel($dbc);
     foreach ($origins->find() as $origin) {
         $name = '';
         $shortName = '';
         list($origin, $custom, $state, $country) = $this->getChildren($origin);
         if ($origin->customID()) {
             $name = $custom->name();
             $shortName = $custom->name();
         }
         if ($origin->stateProvID()) {
             list($name, $shortName) = $this->objToNames($state, $name, $shortName);
         }
         if ($origin->countryID()) {
             list($name, $shortName) = $this->objToNames($country, $name, $shortName);
         }
         $origin->name($name);
         $origin->shortName($shortName);
         $origin->save();
     }
 }