Changeset 16eed2b in observatorio
- Timestamp:
- Jan 13, 2015, 8:10:35 AM (9 years ago)
- Branches:
- simulacion
- Children:
- 23f4971
- Parents:
- 23daf5e
- Location:
- simulacion/ModuloDinamico
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
simulacion/ModuloDinamico/good.C
r6217e66 r16eed2b 28 28 29 29 Good::Good() 30 : company_rif(), company_name(), nationality("N"), id(0), name(),31 tariff_code(), measurement_unit(), level(0)30 : company_rif(), company_name(), company_location(), nationality("N"), id(0), 31 name(), tariff_code(), measurement_unit(), level(0) 32 32 { 33 33 // Empty … … 36 36 Good::Good(const Good & good) 37 37 : company_rif(good.company_rif), company_name(good.company_name), 38 nationality(good.nationality), id(good.id), name(good.name),39 tariff_code(good.tariff_code), measurement_unit(good.measurement_unit),40 level(good.level)38 company_location(good.company_location), nationality(good.nationality), 39 id(good.id), name(good.name), tariff_code(good.tariff_code), 40 measurement_unit(good.measurement_unit), level(good.level) 41 41 { 42 42 // Empty … … 44 44 45 45 Good::Good(Good && good) 46 : company_rif(), company_name(), nationality("N"), id(0), name(), 47 tariff_code(), measurement_unit(), level(0) 46 : company_rif(), company_name(), company_location(), nationality("N"), id(0), 47 name(), tariff_code(), measurement_unit(), level(0) 48 { 49 std::swap(company_rif, good.company_rif); 50 std::swap(company_name, good.company_name); 51 std::swap(company_location, good.company_location); 52 std::swap(nationality, good.nationality); 53 std::swap(id, good.id); 54 std::swap(name, good.name); 55 std::swap(tariff_code, good.tariff_code); 56 std::swap(measurement_unit, good.measurement_unit); 57 std::swap(level, good.level); 58 } 59 60 const std::string & Good::get_company_rif() const 61 { 62 return company_rif; 63 } 64 65 void Good::set_company_rif(const std::string & _company_rif) 66 { 67 company_rif = _company_rif; 68 } 69 70 void Good::set_company_rif(std::string && _company_rif) 71 { 72 company_rif = std::move(_company_rif); 73 } 74 75 const std::string & Good::get_company_name() const 76 { 77 return company_name; 78 } 79 80 void Good::set_company_name(const std::string & _company_name) 81 { 82 company_name = _company_name; 83 } 84 85 void Good::set_company_name(std::string && _company_name) 86 { 87 company_name = std::move(_company_name); 88 } 89 90 const std::string & Good::get_company_location() const 91 { 92 return company_location; 93 } 94 95 void Good::set_company_location(const std::string & _company_location) 96 { 97 company_location = _company_location; 98 } 99 100 void Good::set_company_location(std::string && _company_location) 101 { 102 company_location = std::move(_company_location); 103 } 104 105 const std::string & Good::get_nationality() const 106 { 107 return nationality; 108 } 109 110 void Good::set_nationality(const std::string & _nationality) 111 { 112 nationality = _nationality; 113 } 114 115 void Good::set_nationality(std::string && _nationality) 116 { 117 nationality = std::move(_nationality); 118 } 119 120 121 const db_id_t & Good::get_id() const 122 { 123 return id; 124 } 125 126 void Good::set_id(const db_id_t & _id) 127 { 128 id = _id; 129 } 130 131 const std::string & Good::get_name() const 132 { 133 return name; 134 } 135 136 void Good::set_name(const std::string & _name) 137 { 138 name = _name; 139 } 140 141 void Good::set_name(std::string && _name) 142 { 143 name = std::move(_name); 144 } 145 146 const std::string & Good::get_tariff_code() const 147 { 148 return tariff_code; 149 } 150 151 void Good::set_tariff_code(const std::string & _tariff_code) 152 { 153 tariff_code = _tariff_code; 154 } 155 156 void Good::set_tariff_code(std::string && _tariff_code) 157 { 158 tariff_code = std::move(_tariff_code); 159 } 160 161 const std::string & Good::get_measurement_unit() const 162 { 163 return measurement_unit; 164 } 165 166 void Good::set_measurement_unit(const std::string & _measurement_unit) 167 { 168 measurement_unit = _measurement_unit; 169 } 170 171 void Good::set_measurement_unit(std::string && _measurement_unit) 172 { 173 measurement_unit = std::move(_measurement_unit); 174 } 175 176 const int & Good::get_level() const 177 { 178 return level; 179 } 180 181 void Good::set_level(const int & _level) 182 { 183 level = _level; 184 } 185 186 Good & Good::operator = (const Good & good) 187 { 188 if (&good == this) 189 return *this; 190 191 company_rif = good.company_rif; 192 company_name = good.company_name; 193 nationality = good.nationality; 194 id = good.id; 195 name = good.name; 196 tariff_code = good.tariff_code; 197 measurement_unit = good.measurement_unit; 198 level = good.level; 199 200 return *this; 201 } 202 203 Good & Good::operator = (Good && good) 48 204 { 49 205 std::swap(company_rif, good.company_rif); … … 55 211 std::swap(measurement_unit, good.measurement_unit); 56 212 std::swap(level, good.level); 57 }58 59 const std::string & Good::get_company_rif() const60 {61 return company_rif;62 }63 64 void Good::set_company_rif(const std::string & _company_rif)65 {66 company_rif = _company_rif;67 }68 69 void Good::set_company_rif(std::string && _company_rif)70 {71 company_rif = std::move(_company_rif);72 }73 74 const std::string & Good::get_company_name() const75 {76 return company_name;77 }78 79 void Good::set_company_name(const std::string & _company_name)80 {81 company_name = _company_name;82 }83 84 void Good::set_company_name(std::string && _company_name)85 {86 company_name = std::move(_company_name);87 }88 89 const std::string & Good::get_nationality() const90 {91 return nationality;92 }93 94 void Good::set_nationality(const std::string & _nationality)95 {96 nationality = _nationality;97 }98 99 void Good::set_nationality(std::string && _nationality)100 {101 nationality = std::move(_nationality);102 }103 104 105 const db_id_t & Good::get_id() const106 {107 return id;108 }109 110 void Good::set_id(const db_id_t & _id)111 {112 id = _id;113 }114 115 const std::string & Good::get_name() const116 {117 return name;118 }119 120 void Good::set_name(const std::string & _name)121 {122 name = _name;123 }124 125 void Good::set_name(std::string && _name)126 {127 name = std::move(_name);128 }129 130 const std::string & Good::get_tariff_code() const131 {132 return tariff_code;133 }134 135 void Good::set_tariff_code(const std::string & _tariff_code)136 {137 tariff_code = _tariff_code;138 }139 140 void Good::set_tariff_code(std::string && _tariff_code)141 {142 tariff_code = std::move(_tariff_code);143 }144 145 const std::string & Good::get_measurement_unit() const146 {147 return measurement_unit;148 }149 150 void Good::set_measurement_unit(const std::string & _measurement_unit)151 {152 measurement_unit = _measurement_unit;153 }154 155 void Good::set_measurement_unit(std::string && _measurement_unit)156 {157 measurement_unit = std::move(_measurement_unit);158 }159 160 const int & Good::get_level() const161 {162 return level;163 }164 165 void Good::set_level(const int & _level)166 {167 level = _level;168 }169 170 Good & Good::operator = (const Good & good)171 {172 if (&good == this)173 return *this;174 175 company_rif = good.company_rif;176 company_name = good.company_name;177 nationality = good.nationality;178 id = good.id;179 name = good.name;180 tariff_code = good.tariff_code;181 measurement_unit = good.measurement_unit;182 level = good.level;183 184 return *this;185 }186 187 Good & Good::operator = (Good && good)188 {189 std::swap(company_rif, good.company_rif);190 std::swap(company_name, good.company_name);191 std::swap(nationality, good.nationality);192 std::swap(id, good.id);193 std::swap(name, good.name);194 std::swap(tariff_code, good.tariff_code);195 std::swap(measurement_unit, good.measurement_unit);196 std::swap(level, good.level);197 213 198 214 return *this; -
simulacion/ModuloDinamico/good.H
r71c519d r16eed2b 55 55 std::string company_name; 56 56 57 /// Ubicación 58 std::string company_location; 59 57 60 /// Nacionalidad. 58 61 std::string nationality; … … 89 92 90 93 void set_company_name(std::string &&); 94 95 const std::string & get_company_location() const; 96 97 void set_company_location(const std::string &); 98 99 void set_company_location(std::string &&); 91 100 92 101 const std::string & get_nationality() const; -
simulacion/ModuloDinamico/io_manager.C
r71c519d r16eed2b 155 155 const std::string IO_Manager::XML_COMPANY_RIF = "company_rif"; 156 156 157 const std::string IO_Manager::XML_COMPANY_LOCATION = "company_location"; 158 157 159 const std::string IO_Manager::XML_COMPANY_NATIONALITY = "company_nationality"; 158 160 -
simulacion/ModuloDinamico/io_manager.H
r666042a r16eed2b 166 166 static const std::string XML_COMPANY_RIF; 167 167 168 static const std::string XML_COMPANY_LOCATION; 169 168 170 static const std::string XML_COMPANY_NATIONALITY; 169 171 … … 482 484 input.get_company_name() 483 485 ); 486 ptr_imported_product->set_company_location( 487 input.get_company_location() 488 ); 484 489 ptr_imported_product->set_nationality( 485 490 input.get_nationality() … … 903 908 node->set_attribute(XML_COMPANY_RIF, good->get_company_rif()); 904 909 node->set_attribute(XML_COMPANY_NAME, good->get_company_name()); 910 node->set_attribute(XML_COMPANY_LOCATION, good->get_company_location()); 905 911 node->set_attribute(XML_COMPANY_NATIONALITY, good->get_nationality()); 906 912 … … 1163 1169 node->get_attribute_value(XML_COMPANY_NAME).c_str() 1164 1170 ); 1171 good->set_company_location( 1172 node->get_attribute_value(XML_COMPANY_LOCATION).c_str() 1173 ); 1165 1174 good->set_nationality( 1166 1175 node->get_attribute_value(XML_COMPANY_NATIONALITY) … … 1560 1569 node->set_attribute(XML_COMPANY_RIF, good->get_company_rif()); 1561 1570 node->set_attribute(XML_COMPANY_NAME, good->get_company_name()); 1571 node->set_attribute(XML_COMPANY_LOCATION, good->get_company_location()); 1562 1572 node->set_attribute(XML_COMPANY_NATIONALITY, good->get_nationality()); 1563 1573 -
simulacion/ModuloDinamico/queries.C
r666042a r16eed2b 165 165 str_query.addSelect(concatas(DB::COMPANY_TABLE_NAME, DB::RIF)); 166 166 str_query.addSelect(concatas(DB::COMPANY_TABLE_NAME, DB::COMPANY_NAME)); 167 str_query.addSelect(concatas(DB::STATE_TABLE_NAME, DB::NAME)); 167 168 168 169 str_query.addFrom(DB::PRODUCT_TABLE_NAME); … … 170 171 str_query.addFrom(DB::PLANT_TABLE_NAME); 171 172 str_query.addFrom(DB::COMPANY_TABLE_NAME); 173 str_query.addFrom(DB::STATE_TABLE_NAME); 174 str_query.addFrom(DB::TOWN_TABLE_NAME); 175 str_query.addFrom(DB::PARISH_TABLE_NAME); 172 176 173 177 str_query.addWhere(op(concat(DB::PRODUCT_TABLE_NAME, DB::ID), … … 182 186 str_query.addWhere(op(concat(DB::COMPANY_TABLE_NAME, DB::RIF), 183 187 concat(DB::PLANT_TABLE_NAME, DB::UE_RIF))); 188 str_query.addWhere(op(concat(DB::COMPANY_TABLE_NAME, DB::PARISH_CODE), 189 concat(DB::PARISH_TABLE_NAME, DB::CODE))); 190 str_query.addWhere(op(concat(DB::PARISH_TABLE_NAME, DB::TOWN_CODE), 191 concat(DB::TOWN_TABLE_NAME, DB::CODE))); 192 str_query.addWhere(op(concat(DB::TOWN_TABLE_NAME, DB::STATE_CODE), 193 concat(DB::STATE_TABLE_NAME, DB::CODE))); 184 194 185 195 if (not query.exec(str_query)) … … 198 208 product.set_company_rif( 199 209 query.getValue(concat(DB::COMPANY_TABLE_NAME, DB::RIF, '_'))); 210 product.set_company_location( 211 query.getValue(concat(DB::STATE_TABLE_NAME, DB::NAME, '_'))); 200 212 product.set_id( 201 213 std::atol(query.getValue(concat(DB::PRODUCT_TABLE_NAME, DB::ID, '_')))); … … 233 245 } 234 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. = " << rif 271 << " does not exists in database"; 272 273 throw std::domain_error(msg.str()); 274 } 275 276 return query.getValue(0); 277 } 278 235 279 void list_inputs(const db_id_t & input_id, const std::string & year, 236 280 List<Input> & inputs) … … 280 324 query.clear(); 281 325 282 str_query.addSelect(concatas(DB::SUPPLIER_TABLE_NAME, DB::NAME)); 283 str_query.addSelect(concatas(DB::SUPPLIER_TABLE_NAME, DB::RIF)); 284 str_query.addSelect(concatas(DB::SUPPLIER_TABLE_NAME, DB::NATIONALITY)); 285 286 str_query.addFrom(DB::INPUT_SUPPLIER_TABLE_NAME); 287 str_query.addFrom(DB::SUPPLIER_TABLE_NAME); 288 289 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::YEAR_R), 290 year)); 291 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::INPUT_ID), 292 id_to_str(input_id))); 293 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, 294 DB::SUPPLIER_ID), 295 concat(DB::SUPPLIER_TABLE_NAME, DB::ID))); 296 297 if (not query.exec(str_query)) 298 { 299 std::string msg = "Cannot execute query: " + std::string(str_query); 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); 300 352 throw std::logic_error(msg); 301 353 } … … 304 356 { 305 357 input.set_company_rif( 306 query.getValue(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF, '_'))); 307 input.set_company_name( 308 query.getValue(concat(DB::SUPPLIER_TABLE_NAME, DB::NAME, '_'))); 358 query.getValue(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF, '_')) 359 ); 360 input.set_company_name(get_supplier_name(input.get_company_rif())); 361 input.set_company_location( 362 query.getValue(concat(DB::COUNTRY_TABLE_NAME, DB::NAME, '_')) 363 ); 309 364 input.set_nationality(query.getValue(concat(DB::SUPPLIER_TABLE_NAME, 310 365 DB::NATIONALITY, '_'))); … … 412 467 DBQuery query(conn); 413 468 414 StrQuery str_query; 415 416 str_query.addSelect(concatas(DB::INPUT_SUPPLIER_TABLE_NAME, 417 DB::BOUGHT_QUANTITY)); 418 419 str_query.addFrom(DB::INPUT_SUPPLIER_TABLE_NAME); 420 str_query.addFrom(DB::SUPPLIER_TABLE_NAME); 421 422 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::YEAR_R), 423 year)); 469 std::string sum = "SUM(" + concat(DB::INPUT_SUPPLIER_TABLE_NAME, 470 DB::BOUGHT_QUANTITY) + ")"; 471 472 std::string str_query = "SELECT " + sum 473 + " FROM " + DB::INPUT_SUPPLIER_TABLE_NAME + ", " 474 + DB::SUPPLIER_TABLE_NAME + 475 + " WHERE " + 476 op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::YEAR_R), 477 year) + " AND " + 478 op(concat(DB::SUPPLIER_TABLE_NAME, DB::ID), 479 concat(DB::INPUT_SUPPLIER_TABLE_NAME, 480 DB::SUPPLIER_ID)) + " AND " + 481 op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::INPUT_ID), 482 id_to_str(input_id)) + " AND "; 483 484 std::string group = " GROUP BY "; 485 424 486 if (rif.size() > 0) 425 str_query.addWhere(op(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF), 487 { 488 str_query.append(op(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF), 426 489 single_quote(rif))); 490 group.append(concat(DB::SUPPLIER_TABLE_NAME, DB::RIF)); 491 } 427 492 else 428 str_query.addWhere(op(concat(DB::SUPPLIER_TABLE_NAME, DB::NAME), 493 { 494 str_query.append(op(concat(DB::SUPPLIER_TABLE_NAME, DB::NAME), 429 495 single_quote(company_name))); 430 431 str_query.addWhere(op(concat(DB::SUPPLIER_TABLE_NAME, DB::ID), 432 concat(DB::INPUT_SUPPLIER_TABLE_NAME, 433 DB::SUPPLIER_ID))); 434 str_query.addWhere(op(concat(DB::INPUT_SUPPLIER_TABLE_NAME, DB::INPUT_ID), 435 id_to_str(input_id))); 436 437 if (not query.exec(str_query)) 438 { 439 std::string msg = "Cannot execute query: " + std::string(str_query); 496 group.append(concat(DB::SUPPLIER_TABLE_NAME, DB::NAME)); 497 } 498 499 str_query.append(group); 500 501 if (not query.exec(str_query)) 502 { 503 std::string msg = "Cannot execute query: " + str_query; 440 504 throw std::logic_error(msg); 441 505 }
Note: See TracChangeset
for help on using the changeset viewer.