DECLARE_EXPORT int SolverMRP::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_constraints)) setConstraints(field.getInt()); else if (attr.isA(Tags::tag_autocommit)) setAutocommit(field.getBool()); else if (attr.isA(Tags::tag_userexit_flow)) setUserExitFlow(field); else if (attr.isA(Tags::tag_userexit_demand)) setUserExitDemand(field); else if (attr.isA(Tags::tag_userexit_buffer)) setUserExitBuffer(field); else if (attr.isA(Tags::tag_userexit_resource)) setUserExitResource(field); else if (attr.isA(Tags::tag_userexit_operation)) setUserExitOperation(field); else if (attr.isA(Tags::tag_plantype)) setPlanType(field.getInt()); // Less common parameters else if (attr.isA(tag_iterationthreshold)) setIterationThreshold(field.getDouble()); else if (attr.isA(tag_iterationaccuracy)) setIterationAccuracy(field.getDouble()); else if (attr.isA(tag_lazydelay)) setLazyDelay(field.getTimeperiod()); else if (attr.isA(tag_allowsplits)) setAllowSplits(field.getBool()); else if (attr.isA(tag_planSafetyStockFirst)) setPlanSafetyStockFirst(field.getBool()); // Default parameters else return Solver::setattro(attr, field); return 0; }
DECLARE_EXPORT int SetupMatrix::Rule::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_priority)) setPriority(field.getInt()); else if (attr.isA(Tags::tag_fromsetup)) setFromSetup(field.getString()); else if (attr.isA(Tags::tag_tosetup)) setToSetup(field.getString()); else if (attr.isA(Tags::tag_duration)) setDuration(field.getTimeperiod()); else if (attr.isA(Tags::tag_cost)) setCost(field.getDouble()); else return -1; // Error return 0; // OK }
DECLARE_EXPORT int Item::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_name)) setName(field.getString()); else if (attr.isA(Tags::tag_description)) setDescription(field.getString()); else if (attr.isA(Tags::tag_category)) setCategory(field.getString()); else if (attr.isA(Tags::tag_subcategory)) setSubCategory(field.getString()); else if (attr.isA(Tags::tag_price)) setPrice(field.getDouble()); else if (attr.isA(Tags::tag_owner)) { if (!field.check(Item::metadata)) { PyErr_SetString(PythonDataException, "item owner must be of type item"); return -1; } Item* y = static_cast<Item*>(static_cast<PyObject*>(field)); setOwner(y); } else if (attr.isA(Tags::tag_operation)) { if (!field.check(Operation::metadata)) { PyErr_SetString(PythonDataException, "item operation must be of type operation"); return -1; } Operation* y = static_cast<Operation*>(static_cast<PyObject*>(field)); setOperation(y); } else if (attr.isA(Tags::tag_hidden)) setHidden(field.getBool()); else return -1; return 0; }