Changeset e481d13 in observatorio for simulacion/ModuloDinamico
- Timestamp:
- Jan 16, 2015, 11:29:08 AM (9 years ago)
- Branches:
- simulacion
- Children:
- faed520
- Parents:
- 23f4971
- Location:
- simulacion/ModuloDinamico
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
simulacion/ModuloDinamico/io_manager.H
r23f4971 re481d13 532 532 ) 533 533 ); 534 535 if (input.get_nationality() != "E") 536 { 537 Imported_Product * ptr_imported_product = 538 static_cast<Imported_Product *>( 539 src->get_info().get()); 540 541 ptr_imported_product->set_imports( 542 ptr_imported_product->get_imports() + 543 ip_relationship.get_bought_quantity() 544 ); 545 } 534 546 535 547 src->get_info()->set_level( -
simulacion/ModuloDinamico/queries.C
r16eed2b re481d13 245 245 } 246 246 247 std::string get_supplier_name(const std::string & rif)248 {249 AutoConnection conn;250 251 DBQuery query(conn);252 253 StrQuery str_query;254 255 str_query.addSelect(DB::NAME);256 str_query.addFrom(DB::SUPPLIER_TABLE_NAME);257 str_query.addWhere(op(DB::RIF, single_quote(rif)));258 259 if (not query.exec(str_query))260 {261 std::string msg = "Cannot execute query: " + std::string(str_query);262 263 throw std::logic_error(msg);264 }265 266 if (not query.next())267 {268 std::stringstream msg;269 270 msg << "Supplier with R.I.F. = " << rif271 << " does not exists in database";272 273 throw std::domain_error(msg.str());274 }275 276 return query.getValue(0);277 }278 279 247 void list_inputs(const db_id_t & input_id, const std::string & year, 280 248 List<Input> & inputs) … … 324 292 query.clear(); 325 293 326 std::string strquery = 327 "SELECT " + 328 concatas(DB::SUPPLIER_TABLE_NAME, DB::RIF) + ',' + 329 concatas(DB::SUPPLIER_TABLE_NAME, DB::NATIONALITY) + ',' + 330 concatas(DB::COUNTRY_TABLE_NAME, DB::NAME) + 331 " FROM " + 332 DB::INPUT_SUPPLIER_TABLE_NAME + ',' + 333 DB::SUPPLIER_TABLE_NAME + ',' + 334 DB::COUNTRY_TABLE_NAME + 335 " WHERE " + 336 op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::YEAR_R), year) + " AND " + 337 op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::INPUT_ID), 338 id_to_str(input_id)) + " AND " + 339 op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::SUPPLIER_ID), 340 concat(DB::SUPPLIER_TABLE_NAME, DB::ID)) + " AND " + 341 op(concat(DB::COUNTRY_TABLE_NAME, DB::ID), 342 concat(DB::SUPPLIER_TABLE_NAME, DB::ORIG_COUNTRY_ID)) + 343 " GROUP BY " + 344 concat(DB::SUPPLIER_TABLE_NAME, DB::RIF, '_') + ',' + 345 concat(DB::SUPPLIER_TABLE_NAME, DB::NATIONALITY, '_') + ',' + 346 concat(DB::COUNTRY_TABLE_NAME, DB::NAME, '_'); 347 348 349 if (not query.exec(strquery)) 350 { 351 std::string msg = "Cannot execute query: " + std::string(strquery); 352 throw std::logic_error(msg); 353 } 294 str_query.addSelect(concatas(DB::SUPPLIER_TABLE_NAME, DB::RIF)); 295 str_query.addSelect(concatas(DB::SUPPLIER_TABLE_NAME, DB::NAME)); 296 str_query.addSelect(concatas(DB::SUPPLIER_TABLE_NAME, DB::NATIONALITY)); 297 str_query.addSelect(concatas(DB::COUNTRY_TABLE_NAME, DB::NAME)); 298 299 str_query.addFrom(DB::INPUT_SUPPLIER_TABLE_NAME); 300 str_query.addFrom(DB::SUPPLIER_TABLE_NAME); 301 str_query.addFrom(DB::COUNTRY_TABLE_NAME); 302 303 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::YEAR_R), 304 year)); 305 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::INPUT_ID), 306 id_to_str(input_id))); 307 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::SUPPLIER_ID), 308 concat(DB::SUPPLIER_TABLE_NAME, DB::ID))); 309 str_query.addWhere(op(concat(DB::COUNTRY_TABLE_NAME, DB::ID), 310 concat(DB::SUPPLIER_TABLE_NAME, 311 DB::ORIG_COUNTRY_ID))); 312 313 str_query.addOrderBy(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF)); 314 str_query.setOrderByOption("ASC"); 315 316 if (not query.exec(str_query)) 317 { 318 std::string msg = "Cannot execute query: " + std::string(str_query); 319 throw std::logic_error(msg); 320 } 321 322 std::string last_rif = ""; 354 323 355 324 while (query.next()) 356 325 { 357 input.set_company_rif( 358 query.getValue(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF, '_')) 326 std::string rif = 327 query.getValue(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF, '_')); 328 329 std::string nationality = query.getValue(concat(DB::SUPPLIER_TABLE_NAME, 330 DB::NATIONALITY, '_')); 331 332 if (nationality != "E" and rif == last_rif) 333 continue; 334 335 last_rif = rif; 336 337 input.set_company_rif(rif); 338 input.set_company_name( 339 query.getValue(concat(DB::SUPPLIER_TABLE_NAME, DB::NAME, '_')) 359 340 ); 360 input.set_company_name(get_supplier_name(input.get_company_rif()));361 341 input.set_company_location( 362 342 query.getValue(concat(DB::COUNTRY_TABLE_NAME, DB::NAME, '_')) 363 343 ); 364 input.set_nationality(query.getValue(concat(DB::SUPPLIER_TABLE_NAME, 365 DB::NATIONALITY, '_'))); 344 input.set_nationality(nationality); 366 345 inputs.append(input); 367 346 }
Note: See TracChangeset
for help on using the changeset viewer.