public function saveFormData($upc) { $db = $this->db(); $new_rule = FormLib::get('price-rule-id', 0); $old_rule = FormLib::get('current-price-rule-id', 0); if ($new_rule != $old_rule) { $prod = new ProductsModel($db); $prod->upc(BarcodeLib::padUPC($upc)); $prod->store_id(1); $rule = new PriceRulesModel($db); switch ($new_rule) { case 0: // no custom rule // no custom rule case 1: // generic variable pricing /** Update the product with the generic rule ID If it was previously set to a custom rule, that custom rule can be deleted */ $prod->price_rule_id($new_rule); if ($old_rule > 1) { $rule->priceRuleID($old_rule); $rule->delete(); } break; default: // custom rule /** If the product is already using a custom rule, just update that rule record. Otherwise create a new one. */ $rule->reviewDate(FormLib::get('rule-review-date')); $rule->details(FormLib::get('rule-details')); $rule->priceRuleTypeID(FormLib::get('price-rule-type')); if ($old_rule > 1) { $rule->priceRuleID($old_rule); $prod->price_rule_id($old_rule); // just in case } else { $new_rule_id = $rule->save(); $prod->price_rule_id($new_rule_id); } } $prod->save(); } return true; }
$ruleID = 0; // remove the rule but save its ID if ($p->price_rule_id() != 0) { $ruleID = $p->price_rule_id(); $p->price_rule_id(0); } $p->save(); // make sure no other item is using the same // rule before deleting it if ($ruleID > 1) { $ruleProd->reset(); $ruleProd->price_rule_id($ruleID); if (count($ruleProd->find()) == 0) { // no products are using this rule $rule = new PriceRulesModel($dbc); $rule->priceRuleID($ruleID); $rule->delete(); } } } break; case 'newPrice': $vid = FormLib::get_form_value('vendorID'); $bid = FormLib::get_form_value('batchID'); $sid = FormLib::get_form_value('queueID', 0); if ($sid == 99) { $sid = 0; } $price = FormLib::get_form_value('price', 0); $viP = $dbc->prepare(' UPDATE vendorItems
public function create_op_dbs($con, $op_db_name) { $ret = array(); $models = array('AutoCouponsModel', 'BatchesModel', 'BatchListModel', 'BatchCutPasteModel', 'BatchBarcodesModel', 'BatchTypeModel', 'BatchMergeTableModel', 'ConsistentProductRulesModel', 'CoopDealsItemsModel', 'CronBackupModel', 'CustdataModel', 'CustdataBackupModel', 'CustAvailablePrefsModel', 'CustPreferencesModel', 'CustReceiptMessageModel', 'CustomerAccountSuspensionsModel', 'CustomerNotificationsModel', 'CustomReceiptModel', 'CustomReportsModel', 'DateRestrictModel', 'DepartmentsModel', 'DisableCouponModel', 'EmployeesModel', 'EquityPaymentPlansModel', 'EquityPaymentPlanAccountsModel', 'FloorSectionsModel', 'HouseCouponsModel', 'HouseCouponItemsModel', 'HouseVirtualCouponsModel', 'LikeCodesModel', 'UpcLikeModel', 'MemberCardsModel', 'MemberNotesModel', 'MemDatesModel', 'MeminfoModel', 'MemtypeModel', 'MemContactModel', 'MemContactPrefsModel', 'OriginsModel', 'OriginCountryModel', 'OriginStateProvModel', 'OriginCustomRegionModel', 'PagePermissionsModel', 'ParametersModel', 'PatronageModel', 'PriceRulesModel', 'PriceRuleTypesModel', 'ProductsModel', 'ProductBackupModel', 'ProductUserModel', 'ProductOriginsMapModel', 'ProdExtraModel', 'ProdFlagsModel', 'ProdPhysicalLocationModel', 'ProdUpdateModel', 'ProdDepartmentHistoryModel', 'ProdCostHistoryModel', 'ProdPriceHistoryModel', 'PurchaseOrderModel', 'PurchaseOrderItemsModel', 'PurchaseOrderSummaryModel', 'ReasoncodesModel', 'ScaleItemsModel', 'ServiceScalesModel', 'ServiceScaleItemMapModel', 'ShelftagsModel', 'ShelfTagQueuesModel', 'ShrinkReasonsModel', 'SpecialDeptMapModel', 'SubDeptsModel', 'SuperDeptsModel', 'SuperDeptEmailsModel', 'SuperDeptNamesModel', 'StoresModel', 'StoreBatchMapModel', 'StoreEmployeeMapModel', 'SuspensionsModel', 'SuspensionHistoryModel', 'TaxRatesModel', 'TendersModel', 'UsageStatsModel', 'VendorsModel', 'VendorContactModel', 'VendorDeliveriesModel', 'VendorItemsModel', 'VendorSpecificMarginsModel', 'VendorSRPsModel', 'VendorSKUtoPLUModel', 'VendorBreakdownsModel', 'VendorDepartmentsModel', 'UsersModel', 'UserPrivsModel', 'UserKnownPrivsModel', 'UserGroupsModel', 'UserGroupPrivsModel', 'UserSessionsModel', 'SuperMinIdViewModel', 'MasterSuperDeptsModel'); foreach ($models as $class) { $obj = new $class($con); $ret[] = $obj->createIfNeeded($op_db_name); } $rules = new PriceRulesModel($con); if (count($rules->find()) == 0) { $rules->priceRuleID(1); $rules->details('Generic Variable Price'); $rules->save(); } /** @deprecated 22Jan14 Somewhat deprecated. Others' code may rely on this so it's still created @update 06Nov14 All uses are checked first for existence. Not necessary to create on new install. $ret[] = create_if_needed($con,$FANNIE_SERVER_DBMS,$op_db_name, 'deptMargin','op'); */ /** @deprecated 22Jan14 Only used for legacy pages $ret[] = create_if_needed($con,$FANNIE_SERVER_DBMS,$FANNIE_OP_DB, 'unfi','op'); */ /** @deprecated 22Jan14 memtype has sufficient columns now table kept around until confirming it can be deleted @update 06Nov14 No longer needs to be created on new installs $ret[] = create_if_needed($con,$FANNIE_SERVER_DBMS,$FANNIE_OP_DB, 'memdefaults','op'); */ /** @deprecated 06Nov14 andy origins table has name fields removing need for view $ret[] = create_if_needed($con,$FANNIE_SERVER_DBMS,$FANNIE_OP_DB, 'originName','op'); */ /** @deprecated 06Nov14 andy Relates to old, never finished email statement/invoice function $ret[] = create_if_needed($con,$FANNIE_SERVER_DBMS,$FANNIE_OP_DB, 'emailLog','op'); */ /** @deprecated 06Nov14 andy Relates to old, pre-BasicModel update mechanism $ret[] = create_if_needed($con,$FANNIE_SERVER_DBMS,$FANNIE_OP_DB, 'UpdateLog','op'); */ $ret[] = dropDeprecatedStructure($con, $op_db_name, 'expingMems', true); $ret[] = dropDeprecatedStructure($con, $op_db_name, 'expingMems_thisMonth', true); return $ret; // create_op_dbs() }