42 if (!
sDatabase.RunQuery(res,
"SELECT stationID FROM staStations WHERE corporationID=%u", corp_id)) {
49 stVec.push_back(row.
GetInt(0));
73 " corporationID,corporationName,description,shares,graphicID,"
74 " memberCount,ceoID,stationID,raceID,corporationType,creatorID,"
75 " hasPlayerPersonnelManager,tickerName,sendCharTerminationMessage,"
76 " shape1,shape2,shape3,color1,color2,color3,typeface,memberLimit,"
77 " allowedMemberRaceIDs,url,taxRate,minimumJoinStanding,division1,"
78 " division2,division3,division4,division5,division6,division7,"
79 " allianceID,deleted,isRecruiting"
80 " FROM crpCorporation"
82 " WHERE stationID=%u",
99 " s.corporationID AS ownerID,"
100 " c.corporationName AS ownerName,"
101 " c.corporationType AS typeID,"
104 " FROM staStations AS s"
105 " LEFT JOIN crpCorporation AS c ON cs.corporationID = c.corporationID"
106 " LEFT JOIN chrNPCCharacters AS cs ON cs.characterID = c.ceoID"
107 " WHERE s.stationID = %u", stationID ))
115 " c.corporationID AS ownerID,"
116 " c.corporationName AS ownerName,"
117 " c.corporationType AS typeID,"
121 " LEFT JOIN crpCorporation AS c USING ( corporationID )"
122 " LEFT JOIN chrCharacters AS cs ON cs.characterID = c.ceoID"
123 " WHERE e.itemID = %u", stationID ))
136 "SELECT corporationID, corporationName, description, creatorID, tickerName,"
137 " url, allianceID, deleted, stationID, ceoID, shares, memberCount, taxRate"
138 " FROM crpCorporation WHERE corporationID = %u", corpID))
140 codelog(CORP__DB_ERROR,
"Error in retrieving corporation's data (%u)", corpID);
146 codelog(CORP__DB_WARNING,
"Unable to find corporation's data (%u)", corpID);
157 std::string table =
"crpWalletDivisons";
159 table =
"crpNPCWalletDivisons";
163 " c.corporationID,c.corporationName,c.description,c.tickerName,c.url,"
164 " c.taxRate,c.minimumJoinStanding,c.corporationType,c.hasPlayerPersonnelManager,"
165 " c.sendCharTerminationMessage,c.creatorID,c.ceoID,c.stationID,c.raceID,"
166 " c.allianceID,c.shares,c.memberCount,c.memberLimit,c.allowedMemberRaceIDs,"
167 " c.shape1,c.shape2,c.shape3,c.color1,c.color2,c.color3,c.typeface,c.deleted,c.isRecruiting,c.warFactionID,"
168 " w.division1,w.division2,w.division3,w.division4,w.division5,w.division6,"
169 " w.division7,w.walletDivision1,w.walletDivision2,w.walletDivision3,w.walletDivision4,"
170 " w.walletDivision5,w.walletDivision6,w.walletDivision7"
171 " FROM crpCorporation AS c"
172 " LEFT JOIN %s AS w USING (corporationID)"
173 " WHERE corporationID = %u", table.c_str(), corpID))
175 codelog(CORP__DB_ERROR,
"Error in retrieving corporation's data (%u)", corpID);
181 codelog(CORP__DB_WARNING,
"Unable to find corporation's data (%u)", corpID);
192 std::string table =
"crpWalletDivisons";
194 table =
"crpNPCWalletDivisons";
198 " c.corporationID,c.corporationName,c.description,c.tickerName,c.url,"
199 " c.taxRate,c.minimumJoinStanding,c.corporationType,c.hasPlayerPersonnelManager,"
200 " c.sendCharTerminationMessage,c.creatorID,c.ceoID,c.stationID,c.raceID,"
201 " c.allianceID,c.shares,c.memberCount,c.memberLimit,c.allowedMemberRaceIDs,"
202 " c.shape1,c.shape2,c.shape3,c.color1,c.color2,c.color3,c.typeface,c.deleted,c.isRecruiting,c.warFactionID,"
203 " w.division1,w.division2,w.division3,w.division4,w.division5,w.division6,"
204 " w.division7,w.walletDivision1,w.walletDivision2,w.walletDivision3,w.walletDivision4,"
205 " w.walletDivision5,w.walletDivision6,w.walletDivision7"
206 " FROM crpCorporation AS c"
207 " LEFT JOIN %s AS w USING (corporationID)"
208 " WHERE corporationID = %u", table.c_str(), corpID))
210 codelog(CORP__DB_ERROR,
"Error in retrieving corporation's data (%u)", corpID);
216 codelog(CORP__DB_WARNING,
"Unable to find corporation's data (%u)", corpID);
228 "SELECT billID, billTypeID, debtorID, creditorID, amount, dueDateTime, interest,"
229 "externalID, paid externalID2 FROM billsPayable WHERE debtorID = %u", corpID))
236 "SELECT billID, billTypeID, debtorID, creditorID, amount, dueDateTime, interest,"
237 "externalID, paid externalID2 FROM billsReceivable WHERE creditorID = %u", corpID))
251 "SELECT startDate, corporationID, deleted "
252 " FROM chrEmployment "
253 " WHERE characterID = %u "
254 " ORDER BY startDate DESC", charID
266 std::string cTitle, cDesc;
268 sDatabase.DoEscapeString(cDesc, description);
272 " INSERT INTO crpMedals (ownerID, creatorID, title, description, date)"
273 " VALUES (%u, %u, '%s', '%s', %li)", ownerID, creatorID, cTitle.
c_str(), cDesc.c_str(),
GetFileTimeNow());
281 std::ostringstream query;
282 query <<
"INSERT INTO crpMedalData(medalID, part, graphic, color)";
286 for (
auto cur : dataList) {
292 query <<
"(" << std::to_string(medalID) <<
"," << std::to_string(cur.part) <<
",'" << cur.graphic <<
"'," << std::to_string(cur.color) <<
")";
308 "SELECT recepientID, issuerID, date, reason, status"
310 " WHERE medalID = %i", medalID))
323 "SELECT medalID, creatorID, noRecepients, date, title, description FROM crpMedals WHERE ownerID = %u", corpID))
336 "SELECT medalID, part, graphic, color FROM crpMedalData"
337 " WHERE medalID IN (SELECT medalID FROM crpMedals WHERE ownerID = %u)", corpID))
350 "SELECT chr.medalID, crp.creatorID, crp.noRecepients, crp.date, crp.title, crp.description, chr.status"
351 " FROM chrMedals AS chr"
352 " LEFT JOIN crpMedals AS crp USING (medalID)"
353 " WHERE chr.recepientID = %i", charID))
367 "SELECT medalID, part, graphic, color FROM crpMedalData"
368 " WHERE medalID IN (SELECT medalID FROM chrMedals WHERE recepientID = %i)", charID))
381 "SELECT medalID, ownerID, creatorID, noRecepients AS numberOfRecipients, date, title, description FROM crpMedals"
382 " WHERE medalID = %i", medalID))
397 sDatabase.RunQuery(res,
"SELECT statusID, statusName FROM crpMedalStatus");
406 std::ostringstream query;
407 query <<
"INSERT INTO chrMedals(recepientID, medalID, corpID, issuerID, date, reason)";
411 for (
auto cur : charVec) {
417 query <<
"(" << std::to_string(cur) <<
"," << std::to_string(medalID) <<
"," << std::to_string(corpID) <<
"," << std::to_string(issuerID) <<
",";
418 query << std::to_string(
GetFileTimeNow()) <<
",'" << reason.c_str() <<
"')";
424 sDatabase.RunQuery(err,
"UPDATE crpMedals SET noRecepients=noRecepients + 1 WHERE medalID = %u", medalID );
431 sDatabase.RunQuery(err,
"UPDATE chrMedals SET status = %u WHERE recepientID = %u AND medalID = %u", status, charID, medalID);
436 sDatabase.RunQuery(res,
" SELECT corporationID FROM crpCorporation WHERE tickerName = '%s'", ticker.c_str());
448 std::string cName, cDesc, cTick, cURL;
449 sDatabase.DoEscapeString(cName, corpInfo.corpName);
450 sDatabase.DoEscapeString(cDesc, corpInfo.description);
451 sDatabase.DoEscapeString(cTick, corpInfo.corpTicker);
452 sDatabase.DoEscapeString(cURL, corpInfo.url);
469 " INSERT INTO crpCorporation ( "
470 " corporationName, description, tickerName, url, taxRate, corporationType, hasPlayerPersonnelManager, "
471 " creatorID, ceoID, stationID, raceID, shares, memberLimit, allowedMemberRaceIDs,"
472 " graphicID, color1, color2, color3, shape1, shape2, shape3, "
473 " isRecruiting, allianceMemberStartDate ) "
475 " ('%s', '%s', '%s', '%s', %f, 2, 1, "
476 " %u, %u, %u, %u, 1000, %u, %u,"
477 " 0, %s, %s, %s, %s, %s, %s, "
479 cName.
c_str(), cDesc.c_str(), cTick.c_str(), cURL.c_str(), corpInfo.taxRate,
480 charID, charID, pClient->
GetStationID(), raceID, mLimit, raceID,
481 _IoN(corpInfo.color1).c_str(),
482 _IoN(corpInfo.color2).c_str(),
483 _IoN(corpInfo.color3).c_str(),
484 _IoN(corpInfo.shape1).c_str(),
485 _IoN(corpInfo.shape2).c_str(),
486 _IoN(corpInfo.shape3).c_str(),
487 corpInfo.applicationEnabled))
489 codelog(CORP__DB_ERROR,
"Error in AddCorporation query: %s", err.
c_str());
495 sDatabase.RunQuery(err,
"INSERT INTO crpWalletDivisons (corporationID) VALUES (%u)", corpID);
498 sDatabase.RunQuery(err,
"INSERT INTO crpAutoPay (corporationID) VALUES (%u)", corpID);
501 sDatabase.RunQuery(err,
"INSERT INTO crpShares (corporationID, shareholderID, shares, shareholderCorporationID)"
502 " VALUES (%u, %u, 1000, %u)", corpID, corpID, corpID);
505 sDatabase.RunQuery(err,
" INSERT INTO eveStaticOwners (ownerID,ownerName,typeID) VALUES (%u, '%s', 2)", corpID, cName.
c_str());
510 #define _NI(a, b) if (row.IsNull(b)) { cc.a = PyStatic.NewNone(); } else { cc.a = new PyInt(row.GetUInt(b)); }
511 #define _NS(a, b) if (row.IsNull(b)) { cc.a = PyStatic.NewNone(); } else { cc.a = new PyString(row.GetText(b)); }
514 std::string table =
"crpWalletDivisons";
516 table =
"crpNPCWalletDivisons";
521 " c.corporationID, c.corporationName, c.description, c.tickerName, c.allianceID, c.warFactionID, c.url, c.taxRate,"
522 " c.minimumJoinStanding, c.corporationType, c.hasPlayerPersonnelManager, c.sendCharTerminationMessage, c.creatorID, c.ceoID, c.stationID, c.raceID, "
523 " c.shares, c.memberCount, c.memberLimit, c.allowedMemberRaceIDs, c.shape1, c.shape2, c.shape3, c.color1, c.color2, c.color3,"
524 " c.typeface, w.division1, w.division2, w.division3, w.division4, w.division5, w.division6, w.division7, w.walletDivision1, w.walletDivision2,"
525 " w.walletDivision3, w.walletDivision4, w.walletDivision5, w.walletDivision6, w.walletDivision7, c.deleted, c.isRecruiting "
526 " FROM crpCorporation AS c"
527 " LEFT JOIN %s AS w USING (corporationID)"
528 " WHERE corporationID = %u ",table.c_str(), newCorpID
531 codelog(CORP__DB_ERROR,
"Error in retrieving new corporation's data (%u)", newCorpID);
536 codelog(CORP__DB_WARNING,
"Unable to find new corporation's data (%u)", newCorpID);
540 cc.corporationIDNew = row.
GetUInt(0);
541 cc.corporationNameNew = row.
GetText(1);
542 cc.descriptionNew = row.
GetText(2);
543 cc.tickerNameNew = row.
GetText(3);
544 _NI(allianceIDNew, 4);
545 _NI(warFactionIDNew, 5);
548 cc.minimumJoinStandingNew = row.
GetDouble(8);
549 cc.corporationTypeNew = row.
GetUInt(9);
550 cc.hasPlayerPersonnelManagerNew = row.
GetUInt(10);
551 cc.sendCharTerminationMessageNew = row.
GetUInt(11);
552 cc.creatorIDNew = row.
GetUInt(12);
554 cc.stationIDNew = row.
GetUInt(14);
557 cc.memberCountNew = row.
GetUInt(17);
558 cc.memberLimitNew = row.
GetUInt(18);
559 cc.allowedMemberRaceIDsNew = row.
GetUInt(19);
566 _NI(typefaceNew, 26);
567 _NS(division1New, 27);
568 _NS(division2New, 28);
569 _NS(division3New, 29);
570 _NS(division4New, 30);
571 _NS(division5New, 31);
572 _NS(division6New, 32);
573 _NS(division7New, 33);
574 _NS(walletDivision1New, 34);
575 _NS(walletDivision2New, 35);
576 _NS(walletDivision3New, 36);
577 _NS(walletDivision4New, 37);
578 _NS(walletDivision5New, 38);
579 _NS(walletDivision6New, 39);
580 _NS(walletDivision7New, 40);
581 cc.deletedNew = row.
GetUInt(41);
582 cc.isRecruitingNew = row.
GetUInt(42);
585 table =
"crpWalletDivisons";
587 table =
"crpNPCWalletDivisons";
591 " c.corporationID, c.corporationName, c.description, c.tickerName, c.allianceID, c.warFactionID, c.url, c.taxRate,"
592 " c.minimumJoinStanding, c.corporationType, c.hasPlayerPersonnelManager, c.sendCharTerminationMessage, c.creatorID, c.ceoID, c.stationID, c.raceID, "
593 " c.shares, c.memberCount, c.memberLimit, c.allowedMemberRaceIDs, c.shape1, c.shape2, c.shape3, c.color1, c.color2, c.color3,"
594 " c.typeface, w.division1, w.division2, w.division3, w.division4, w.division5, w.division6, w.division7, w.walletDivision1, w.walletDivision2,"
595 " w.walletDivision3, w.walletDivision4, w.walletDivision5, w.walletDivision6, w.walletDivision7, c.deleted, c.isRecruiting "
596 " FROM crpCorporation AS c"
597 " LEFT JOIN %s AS w USING (corporationID)"
598 " WHERE corporationID = %u ", table.c_str(), oldCorpID
601 codelog(CORP__DB_ERROR,
"Error in retrieving old corporation's data (%u)", oldCorpID);
606 codelog(CORP__DB_WARNING,
"Unable to find old corporation's data (%u)", oldCorpID);
614 _NI(allianceIDOld, 4);
615 _NI(warFactionIDOld, 5);
620 cc.hasPlayerPersonnelManagerOld =
new PyInt(row.
GetInt(10));
621 cc.sendCharTerminationMessageOld =
new PyInt(row.
GetInt(11));
629 cc.allowedMemberRaceIDsOld =
new PyInt(row.
GetInt(19));
636 _NI(typefaceOld, 26);
637 _NS(division1Old, 27);
638 _NS(division2Old, 28);
639 _NS(division3Old, 29);
640 _NS(division4Old, 30);
641 _NS(division5Old, 31);
642 _NS(division6Old, 32);
643 _NS(division7Old, 33);
644 _NS(walletDivision1Old, 34);
645 _NS(walletDivision2Old, 35);
646 _NS(walletDivision3Old, 36);
647 _NS(walletDivision4Old, 37);
648 _NS(walletDivision5Old, 38);
649 _NS(walletDivision6Old, 39);
650 _NS(walletDivision7Old, 40);
662 " c.corporationID, c.corporationName, c.description, c.tickerName, c.allianceID, c.warFactionID, c.url, c.taxRate,"
663 " c.minimumJoinStanding, c.corporationType, c.hasPlayerPersonnelManager, c.sendCharTerminationMessage, c.creatorID, c.ceoID, c.stationID, c.raceID, "
664 " c.shares, c.memberCount, c.memberLimit, c.allowedMemberRaceIDs, c.shape1, c.shape2, c.shape3, c.color1, c.color2,c. color3,"
665 " c.typeface, w.division1, w.division2, w.division3, w.division4, w.division5, w.division6, w.division7, w.walletDivision1, w.walletDivision2,"
666 " w.walletDivision3, w.walletDivision4, w.walletDivision5, w.walletDivision6, w.walletDivision7, c.deleted, c.isRecruiting "
667 " FROM crpCorporation AS c"
668 " LEFT JOIN crpWalletDivisons AS w USING (corporationID)"
669 " WHERE corporationID = %u ", newCorpID
672 codelog(CORP__DB_ERROR,
"Error in retrieving new corporation's data (%u)", newCorpID);
677 codelog(CORP__DB_WARNING,
"Unable to find corporation's data (%u)", newCorpID);
681 cc.corporationIDNew = row.
GetUInt(0);
682 cc.corporationNameNew = row.
GetText(1);
683 cc.descriptionNew = row.
GetText(2);
684 cc.tickerNameNew = row.
GetText(3);
685 _NI(allianceIDNew, 4);
686 _NI(warFactionIDNew, 5);
689 cc.minimumJoinStandingNew = row.
GetDouble(8);
690 cc.corporationTypeNew = row.
GetUInt(9);
691 cc.hasPlayerPersonnelManagerNew = row.
GetUInt(10);
692 cc.sendCharTerminationMessageNew = row.
GetUInt(11);
693 cc.creatorIDNew = row.
GetUInt(12);
695 cc.stationIDNew = row.
GetUInt(14);
698 cc.memberCountNew = row.
GetUInt(17);
699 cc.memberLimitNew = row.
GetUInt(18);
700 cc.allowedMemberRaceIDsNew = row.
GetUInt(19);
707 _NI(typefaceNew, 26);
708 _NS(division1New, 27);
709 _NS(division2New, 28);
710 _NS(division3New, 29);
711 _NS(division4New, 30);
712 _NS(division5New, 31);
713 _NS(division6New, 32);
714 _NS(division7New, 33);
715 _NS(walletDivision1New, 34);
716 _NS(walletDivision2New, 35);
717 _NS(walletDivision3New, 36);
718 _NS(walletDivision4New, 37);
719 _NS(walletDivision5New, 38);
720 _NS(walletDivision6New, 39);
721 _NS(walletDivision7New, 40);
722 cc.deletedNew = row.
GetUInt(41);
723 cc.isRecruitingNew = row.
GetUInt(42);
726 cc.allianceIDOld =
PyStatic.NewNone();
727 cc.warFactionIDOld =
PyStatic.NewNone();
728 cc.allowedMemberRaceIDsOld =
PyStatic.NewNone();
733 cc.corporationIDOld =
PyStatic.NewNone();
734 cc.corporationNameOld =
PyStatic.NewNone();
735 cc.corporationTypeOld =
PyStatic.NewNone();
736 cc.creatorIDOld =
PyStatic.NewNone();
738 cc.descriptionOld =
PyStatic.NewNone();
739 cc.division1Old =
PyStatic.NewNone();
740 cc.division2Old =
PyStatic.NewNone();
741 cc.division3Old =
PyStatic.NewNone();
742 cc.division4Old =
PyStatic.NewNone();
743 cc.division5Old =
PyStatic.NewNone();
744 cc.division6Old =
PyStatic.NewNone();
745 cc.division7Old =
PyStatic.NewNone();
746 cc.walletDivision1Old =
PyStatic.NewNone();
747 cc.walletDivision2Old =
PyStatic.NewNone();
748 cc.walletDivision3Old =
PyStatic.NewNone();
749 cc.walletDivision4Old =
PyStatic.NewNone();
750 cc.walletDivision5Old =
PyStatic.NewNone();
751 cc.walletDivision6Old =
PyStatic.NewNone();
752 cc.walletDivision7Old =
PyStatic.NewNone();
753 cc.hasPlayerPersonnelManagerOld =
PyStatic.NewNone();
754 cc.memberCountOld =
PyStatic.NewNone();
755 cc.memberLimitOld =
PyStatic.NewNone();
756 cc.minimumJoinStandingOld =
PyStatic.NewNone();
758 cc.sendCharTerminationMessageOld =
PyStatic.NewNone();
763 cc.stationIDOld =
PyStatic.NewNone();
765 cc.tickerNameOld =
PyStatic.NewNone();
766 cc.typefaceOld =
PyStatic.NewNone();
768 cc.isRecruitingOld =
PyStatic.NewNone();
780 " corpAccountKey AS divisionID,"
783 " corpRole AS roles,"
789 " grantableRolesAtHQ, "
791 " grantableRolesAtBase,"
793 " grantableRolesAtOther, "
795 " startDateTime AS rowDate,"
798 " FROM chrCharacters"
799 " WHERE characterID = %u", charID))
817 " corpAccountKey AS divisionID,"
825 " grantableRolesAtHQ, "
827 " grantableRolesAtBase,"
829 " grantableRolesAtOther, "
835 " FROM chrCharacters"
836 " WHERE corporationID = %u", corpID))
845 if (!
sDatabase.RunQuery(res, query.str().c_str())) {
850 _log(DATABASE__RESULTS,
"CorporationDB::GetMembersForQuery '%s' returned %u items", query.str().c_str(), res.
GetRowCount());
854 result.push_back(row.GetInt(0));
871 " grantableRolesAtHQ, "
873 " grantableRolesAtBase,"
875 " grantableRolesAtOther, "
881 " FROM chrCharacters"
883 " WHERE corporationID = %u"
884 " LIMIT %u", corpID, page * 10))
895 if (!
sDatabase.RunQuery(res,
"SELECT COUNT(characterID) FROM chrCharacters WHERE corporationID = %u", corpID )) {
911 if (!
sDatabase.RunQuery(res,
"SELECT characterID FROM chrCharacters WHERE corporationID = %u AND online = %u", corpID, (online?1:0) )) {
918 ids.push_back(row.
GetInt(0));
924 if (!
sDatabase.RunQuery( res,
"SELECT roleID, roleName, shortDescriptionID, descriptionID, roleIID FROM crpRoles")) {
936 "SELECT roleGroupID, roleGroupName, roleGroupNameID, roleMask, appliesTo, appliesToGrantable, isLocational, isDivisional"
937 " FROM crpRoleGroups"))
949 sDatabase.RunQuery(err,
"DELETE FROM crpRoleTitles WHERE corpID = %u AND titleID = %u", corpID, titleID);
950 std::string title =
"Untitled ";
951 title += std::to_string(log2(titleID) + 1);
952 sDatabase.RunQuery(err,
"INSERT INTO crpRoleTitles (corporationID, titleID, titleName) VALUES (%u,%u,'%s')", corpID, titleID, title.
c_str());
962 "SELECT titleName, roles, grantableRoles, rolesAtHQ, grantableRolesAtHQ, rolesAtBase, grantableRolesAtBase, rolesAtOther, grantableRolesAtOther "
963 " FROM crpRoleTitles WHERE corporationID = %u AND titleID = %u", corpID, args.titleID))
971 _log(CORP__DB_WARNING,
"No title data for titleID %u in corpID %u.", args.titleID, corpID);
975 std::vector<std::string> dbQ;
986 std::string query =
"UPDATE crpRoleTitles SET ";
989 for (
int i = 0; i < N; ++i) {
995 query +=
" WHERE corporationID = ";
996 query += std::to_string(corpID);
997 query +=
" AND titleID = ";
998 query += std::to_string(args.titleID);
1000 _log(CORP__DB_MESSAGE,
"DB Query: %s", query.c_str());
1007 if (!
sDatabase.RunQuery(err, query.c_str())) {
1008 codelog(CORP__DB_ERROR,
"Error in query: %s", err.c_str());
1018 "SELECT corporationID, titleID, titleName, roles, grantableRoles, rolesAtHQ, grantableRolesAtHQ, rolesAtBase, grantableRolesAtBase, rolesAtOther, grantableRolesAtOther "
1019 " FROM crpRoleTitles WHERE corporationID = %u", corpID)) {
1025 while (res.
GetRow(row)) {
1048 "INSERT INTO crpRoleTitles (corporationID, titleID, titleName) VALUES"
1049 "(%u,1,'Untitled 1'),(%u,2,'Untitled 2'),(%u,4,'Untitled 3'),(%u,8,'Untitled 4'),(%u,16,'Untitled 5'),(%u,32,'Untitled 6'),"
1050 "(%u,64,'Untitled 7'),(%u,128,'Untitled 8'),(%u,256,'Untitled 9'),(%u,512,'Untitled 10'),(%u,1024,'Untitled 11'),(%u,2048,'Untitled 12'),"
1051 "(%u,4096,'Untitled 13'),(%u,8192,'Untitled 14'),(%u,16384,'Untitled 15'),(%u,32768,'Untitled 16')",
1052 corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID,corpID);
1060 _log(SOV__DEBUG,
"CorporationDB::GetContacts() called...");
1064 "SELECT contactID, inWatchlist, relationshipID, labelMask"
1065 " FROM crpContacts WHERE ownerID = %u", corpID))
1073 obj->
Dump(CORP__RSP_DUMP,
"");
1082 "INSERT INTO crpContacts (ownerID, contactID, relationshipID, "
1083 " inWatchlist, labelMask) VALUES "
1084 " (%u, %u, %i, 0, 0) ",
1085 ownerID, corpData.contactID, corpData.relationshipID);
1092 "UPDATE crpContacts SET relationshipID=%i "
1093 " WHERE contactID=%u AND ownerID=%u ",
1094 relationshipID, contactID, ownerID);
1101 "DELETE from crpContacts "
1102 " WHERE contactID=%u AND ownerID=%u ",
1103 contactID, ownerID);
1119 " characterID AS ownerID,"
1120 " characterName AS ownerName,"
1123 " FROM chrCharacters"
1124 " WHERE corporationID = %u", corpID
1139 " stationID, stationTypeID as typeID "
1140 " FROM staStations "
1141 " WHERE corporationID = %u ", corpID
1154 "SELECT stationID, stationTypeID, itemID, officeFolderID"
1156 " WHERE corporationID = %u "
1157 " LIMIT %u, %u ", corpID, from, count
1168 while (res.
GetRow(row)) {
1186 " SELECT corporationID "
1187 " FROM staStations "
1188 " WHERE stationID = %u ", stationID))
1196 codelog(CORP__DB_WARNING,
"Missing stationID: %u", stationID);
1205 sDatabase.RunQuery(err,
"DELETE FROM crpBulletins WHERE bulletinID = %u", bulletinID);
1212 "INSERT INTO crpBulletins (corporationID, ownerID, createCharacterID, createDateTime, editCharacterID, editDateTime, title, body)"
1213 " VALUES (%u, %u, %u, %f, %u, %f, '%s', '%s')", corpID, ownerID, cCharID,
GetFileTimeNow(), cCharID,
GetFileTimeNow(), title.c_str(), body.c_str());
1220 "UPDATE crpBulletins SET editCharacterID = %u, editDateTime = %li, title = '%s', body = '%s'"
1221 " WHERE bulletinID = %u", eCharID, eDataTime, title.
c_str(), body.c_str(), bulletinID);
1228 "SELECT corporationID, bulletinID, ownerID, createCharacterID, createDateTime, editCharacterID, editDateTime, title, body"
1229 " FROM crpBulletins"
1230 " WHERE corporationID = %u ", corpID))
1240 std::ostringstream str;
1241 str <<
"INSERT INTO crpRecruiters (adID, corpID, charID) VALUES ";
1244 for (
auto cur : charVec) {
1252 str <<
"(" << adID <<
"," << corpID <<
"," << cur <<
")";
1257 sDatabase.RunQuery(err,
"DELETE FROM crpRecruiters WHERE corpID = %u AND adID = %u", corpID, adID);
1265 if (!
sDatabase.RunQuery(res,
"SELECT charID FROM crpRecruiters WHERE corpID = %u AND adID = %u", corpID, adID)) {
1282 if (!
sDatabase.RunQuery(res,
"SELECT typeMask, typeName, typeNameID, groupID, description, descriptionID FROM crpAdTypeData")) {
1292 if (!
sDatabase.RunQuery(res,
"SELECT groupID, groupName, groupNameID, description, descriptionID FROM crpAdGroupData")) {
1308 " adID, corporationID, allianceID, stationID, regionID, raceMask, typeMask,"
1309 " createDateTime, expiryDateTime, title, description, memberCount, channelID"
1310 " FROM crpAdRegistry"
1311 " WHERE allianceID %s 0"
1312 " AND (memberCount >= %u AND memberCount < %u)",
1313 (inAlliance ?
">" :
"="), minMembers, maxMembers))
1327 " adID, corporationID, allianceID, stationID, regionID, raceMask, typeMask,"
1328 " createDateTime, expiryDateTime, title, description, memberCount, channelID"
1329 " FROM crpAdRegistry"
1330 " WHERE adID = %u", adID))
1342 sDatabase.RunQuery(err,
"DELETE FROM crpAdRegistry WHERE adID=%u ", adID);
1349 sDatabase.RunQueryLID(err, adID,
"INSERT INTO crpAdRegistry"
1350 " (corporationID, allianceID, stationID, regionID, raceMask, typeMask,"
1351 " createDateTime, expiryDateTime, description, title, memberCount, channelID)"
1352 " VALUES (%u,%u,%u,%u,%u,%li,%f,%f,'%s','%s',%u,%u)",
1363 sDatabase.RunQuery(err,
"UPDATE crpAdRegistry"
1364 " SET typeMask=%li, expiryDateTime=%li, description='%s', title='%s', memberCount=%u, channelID=%u"
1366 typeMask, time, description.
c_str(), title.c_str(), members, channelID, adID);
1372 sDatabase.RunQuery(res,
"SELECT expiryDateTime FROM crpAdRegistry WHERE adID=%u AND corporationID=%u", adID, corpID);
1384 " SELECT applicationID, corporationID, characterID, applicationText, roles, grantableRoles,"
1385 " status, applicationDateTime, deleted, lastCorpUpdaterID"
1386 " FROM crpApplications"
1387 " WHERE characterID = %u ", charID))
1395 obj->
Dump(CORP__RSP_DUMP,
"");
1404 " applicationID, characterID, corporationID, applicationText, status,"
1405 " applicationDateTime, lastCorpUpdaterID"
1406 " FROM crpApplications"
1407 " WHERE corporationID = %u AND deleted = 0",
1415 obj->
Dump(CORP__RSP_DUMP,
"");
1424 " applicationID, applicationText, roles, grantableRoles, status,"
1425 " applicationDateTime, lastCorpUpdaterID, deleted"
1426 " FROM crpApplications"
1427 " WHERE characterID = %u AND corporationID = %u AND applicationText = '%s'",
1431 aInfo.
valid =
false;
1437 codelog(CORP__DB_WARNING,
"There's no application matching the sent data.");
1438 aInfo.
valid =
false;
1456 _log(CORP__DB_WARNING,
"InsertApplication(): aInfo contains invalid data");
1460 std::string escaped;
1464 " INSERT INTO crpApplications"
1465 " (corporationID, characterID, applicationText, applicationDateTime)"
1466 " VALUES (%u, %u, '%s', %li)",
1469 codelog(CORP__DB_ERROR,
"Error in query: %s", err.
c_str());
1478 _log(CORP__DB_WARNING,
"UpdateApplication(): info contains invalid data");
1483 std::string escaped;
1486 " UPDATE crpApplications"
1487 " SET status = %u, lastCorpUpdaterID = %u, applicationText = '%s'"
1488 " WHERE applicationID = %u", aInfo.
status, aInfo.
lastCID, escaped.c_str(), aInfo.
appID))
1490 codelog(CORP__DB_ERROR,
"Error in query: %s", err.
c_str());
1499 " UPDATE crpApplications"
1500 " SET status = 3, deleted = 1"
1501 " WHERE applicationID = %u", aInfo.
appID))
1503 codelog(CORP__DB_ERROR,
"Error in query: %s", err.
c_str());
1510 if (!
sDataMgr.IsStation(stationID))
1515 " FROM crpCorporation AS c"
1516 " LEFT JOIN staStations USING (corporationID) "
1517 " WHERE staStations.stationID = %u ", stationID))
1524 codelog(CORP__DB_WARNING,
"There's either no such station or the station has no corp owner or the corporation has no ceo.");
1534 " FROM crpCorporation "
1535 " WHERE corporationID = %u ", corpID))
1542 codelog(CORP__DB_WARNING,
"There's either no such corp owner or the corporation has no ceo.");
1551 " SELECT memberCount"
1552 " FROM crpCorporation"
1553 " WHERE corporationID = %u ", corpID))
1560 codelog(CORP__DB_WARNING,
"Cannot find memberCount for corpID %u", corpID);
1570 " SELECT memberLimit"
1571 " FROM crpCorporation"
1572 " WHERE corporationID = %u ", corpID))
1579 codelog(CORP__DB_WARNING,
"Cannot find memberLimit for corpID %u", corpID);
1588 " SELECT basePrice "
1590 " WHERE typeID = %u ", cloneTypeID))
1592 codelog(CORP__DB_ERROR,
"Failed to retrieve basePrice of typeID = %u",cloneTypeID);
1596 codelog(CORP__DB_WARNING,
"GetCloneTypeCostByID returned no results");
1611 " title, startDateTime, corporationID, "
1612 " corpRole, rolesAtAll, rolesAtBase, "
1613 " rolesAtHQ, rolesAtOther, titleMask, baseID "
1614 " FROM chrCharacters "
1615 " WHERE characterID = %u ", charID))
1622 codelog(CORP__DB_WARNING,
"Cannot find character in database");
1627 #define PRN PyStatic.NewNone()
1628 #define PRI(i) new PyInt(i)
1629 #define PRL(i) new PyLong(i)
1630 #define PRS(s) new PyString(s)
1631 #define PRNI(i) (row.IsNull(i) ? PRU(0) : PRU(row.GetInt64(i)))
1632 #define F(name, o, n) \
1633 attrib.name##Old = o; \
1634 attrib.name##New = n
1639 F(characterID,
PRN,
PRI(charID));
1668 " division1, division2, division3, division4, division5, division6, division7,"
1669 " walletDivision2, walletDivision3, walletDivision4, walletDivision5, walletDivision6, walletDivision7"
1670 " FROM crpWalletDivisons"
1671 " WHERE corporationID = %u", corpID))
1679 codelog(CORP__DB_WARNING,
"Corporation %u doesn't exist.", corpID);
1683 std::vector<std::string> dbQ;
1699 std::string query =
"UPDATE crpWalletDivisons SET ";
1702 for (
int i = 0; i < N; ++i) {
1708 query +=
" WHERE corporationID = ";
1709 query += std::to_string(corpID);
1711 _log(CORP__DB_MESSAGE,
"DB Query: %s", query.c_str());
1716 if (!
sDatabase.RunQuery(err, query.c_str())) {
1717 codelog(CORP__DB_ERROR,
"Error in query: %s", err.c_str());
1727 if (!
sDatabase.RunQuery(res,
"SELECT corporationName FROM crpCorporation WHERE corporationID = %u", corpID)) {
1734 _log(CORP__DB_WARNING,
"Corporation %u - Corp name not found.", corpID);
1743 std::string acctKeyName =
"";
1755 if (!
sDatabase.RunQuery(res,
"SELECT %s FROM crpWalletDivisons WHERE corporationID = %u", acctKeyName.c_str(), corpID)) {
1762 _log(CORP__DB_WARNING,
"Corporation %u - division name for acctKey %u not found.", corpID, acctKey);
1774 " SELECT description, url, taxRate "
1775 " FROM crpCorporation "
1776 " WHERE corporationID = %u ", corpID))
1784 codelog(CORP__DB_WARNING,
"Corporation %u doesn't exists.", corpID);
1788 std::vector<std::string> dbQ;
1793 std::string query =
" UPDATE crpCorporation SET ";
1796 for (
int i = 0; i < N; i++) {
1798 if (i < N - 1) query +=
", ";
1801 query +=
" WHERE corporationID = %u";
1812 #define NI(i) row.IsNull(i) ? 0 : row.GetInt(i)
1818 " SELECT shape1, shape2, shape3, color1, color2, color3, typeface "
1819 " FROM crpCorporation "
1820 " WHERE corporationID = %u ", corpID))
1828 codelog(CORP__DB_WARNING,
"Corporation %u doesn't exists.", corpID);
1832 std::vector<std::string> dbQ;
1841 std::string query =
" UPDATE crpCorporation SET ";
1844 for (
int i = 0; i < N; i++) {
1846 if (i < N - 1) query +=
", ";
1849 query +=
" WHERE corporationID = %u ";
1865 "SELECT c.characterID, c.corporationID, c.title, c.startDateTime, c.corpRole AS roles, c.baseID, c.grantableRoles, c.blockRoles,"
1866 " c.logonDateTime, c.logoffDateTime, c.locationID, IFNULL(e.typeID, 0) AS shipTypeID, -1 AS lastOnline"
1867 " FROM chrCharacters AS c"
1868 " LEFT JOIN entity AS e ON e.itemID = c.shipID"
1869 " WHERE c.corporationID = %u", corpID))
1881 "SELECT c.characterID, c.corporationID, c.logoffDateTime, c.logonDateTime, c.title, c.startDateTime, c.corpRole AS roles,"
1882 " c.baseID, c.blockRoles, IFNULL(e.typeID, 0) AS shipTypeID"
1883 " FROM chrCharacters AS c"
1884 " LEFT JOIN entity AS e ON e.itemID = c.shipID"
1885 " WHERE corporationID = %u", corpID))
1895 sDatabase.RunQuery(res,
"SELECT market, rental, broker, war, alliance, sov FROM crpAutoPay WHERE corporationID = %u", corpID);
1907 "INSERT INTO crpItemEvent (corporationID, characterID, eventTypeID, eventDateTime)"
1908 " VALUES (%u, %u, %u, %f)", corpID, charID, eTypeID,
GetFileTimeNow());
1915 " SELECT eventID, corporationID, characterID, eventTypeID, eventDateTime"
1916 " FROM crpItemEvent"
1917 " WHERE corporationID = %u AND characterID = %u AND eventDateTime > %li AND eventDateTime <= %li "
1918 " LIMIT %u", corpID, charID, fromDate, toDate, rowsPerPage))
1956 "INSERT INTO crpRoleHistroy (corporationID, characterID, issuerID, changeTime, oldRoles, newRoles, grantable)"
1957 " VALUES (%u, %u, %u, %f, %li, %li, %i)", corpID, charID, issuerID,
GetFileTimeNow(), oldRoles, newRoles, (grantable ? 1 : 0));
1964 " SELECT corporationID, characterID, issuerID, changeTime, oldRoles, newRoles, grantable"
1965 " FROM crpRoleHistroy"
1966 " WHERE corporationID = %u and characterID = %u AND changeTime > %li AND changeTime <= %li "
1967 " LIMIT %u", corpID, charID, fromDate, toDate, rowsPerPage))
2007 PyDict* dict = args.voteCaseOptions->arguments()->
AsDict();
2008 dict->
Dump(CORP__TRACE,
" ");
2016 std::vector<Corp::VoteCaseOptions> data;
2019 if (!(*itr)->IsList()) {
2020 _log(CORP__ERROR,
"itr item is not PyList: %s", rep->
TypeString());
2030 switch (args.voteType) {
2048 data.push_back(args2);
2054 " INSERT INTO crpVoteItems( "
2055 " corporationID, voteType, voteCaseText, description, startDateTime, endDateTime)"
2056 " VALUES (%u, %u, '%s', '%s', %li, %li)",
2057 args.corporationID, args.voteType, args.voteCaseText.
c_str(), args.description.c_str(), args.startDateTime, args.endDateTime);
2059 std::stringstream str;
2060 str <<
"INSERT INTO crpVoteOptions (voteCaseID, optionID, optionText, parameter, parameter1, parameter2) VALUES ";
2063 for (
auto cur : data) {
2069 str <<
"(" << std::to_string((
int64)voteCaseID) <<
"," << std::to_string(cur.optionID) <<
",\"" << cur.optionText <<
"\"," << std::to_string(cur.parameter) <<
",";
2070 str << std::to_string(cur.parameter1) <<
"," << std::to_string(cur.parameter2) <<
")";
2081 std::string statusTxt =
"";
2083 statusTxt =
"AND status = ";
2084 statusTxt += std::to_string(status);
2089 " SELECT voteCaseID, voteType, voteCaseText, description, inEffect, status, actedUpon, timeActedUpon,"
2090 " rescended, timeRescended, startDateTime, endDateTime"
2091 " FROM crpVoteItems"
2092 " WHERE corporationID = %u "
2094 " LIMIT 0,%u", corpID, statusTxt.c_str(), maxLen))
2107 "SELECT voteCaseID, optionID, optionText, parameter, parameter1, parameter2, votesFor"
2108 " FROM crpVoteOptions WHERE voteCaseID = %u", voteCaseID))
2122 " SELECT voteCaseID, voteType, inEffect, actedUpon, timeActedUpon, timeRescended, endDateTime AS expires"
2123 " FROM crpVoteItems"
2124 " WHERE corporationID = %u ", corpID))
2140 "SELECT charID, voteCaseID, optionID FROM crpVotes"
2141 " WHERE voteCaseID = %u", voteCaseID))
2153 sDatabase.RunQuery(err,
"UPDATE crpVoteItems SET votesMade=votesMade + 1 WHERE voteCaseID = %u", voteCaseID);
2154 sDatabase.RunQuery(err,
"UPDATE crpVoteOptions SET votesFor=votesFor + 1 WHERE voteCaseID = %u AND optionID = %u", voteCaseID, optionID);
2156 "INSERT INTO crpVotes (charID,corpID,voteCaseID,optionID)"
2157 " VALUES (%u,%u,%u,%u)", charID, corpID, voteCaseID, optionID);
2167 bool isCorp =
false;
2171 sDatabase.RunQuery(res,
"SELECT shares FROM crpShares WHERE corporationID = %u AND shareholderID = %u ", corpID, ownerID);
2176 OnCorpShareChange corpUpdate;
2177 corpUpdate.corpID = corpID;
2178 corpUpdate.ownerID = ownerID;
2179 corpUpdate.oldShares = row.
GetInt(0);
2180 corpUpdate.newShares = row.
GetInt(0) - args.numberOfShares;
2187 PyTuple* tuple = corpUpdate.Encode();
2188 sEntityList.Multicast(
"OnShareChange",
"*corpid&corprole", &tuple, mct);
2194 "UPDATE crpShares SET shares = shares - %i"
2195 " WHERE corporationID = %u AND shareholderID = %u ", args.numberOfShares, args.corporationID, ownerID);
2200 Client* pClient(
nullptr);
2202 pClient =
sEntityList.FindClientByCharID(args.toShareholderID);
2203 if (pClient ==
nullptr) {
2209 OnCharShareChange charUpdate;
2210 charUpdate.ownerID = args.toShareholderID;
2211 charUpdate.corpID = corpID;
2212 charUpdate.newShares = args.numberOfShares;
2214 sDatabase.RunQuery(res,
"SELECT shares, shareholderCorporationID FROM crpShares WHERE corporationID = %u AND shareholderID = %u ", corpID, args.toShareholderID);
2218 charUpdate.oldShares = (oldShares = row.
GetInt(0));
2219 charUpdate.oldCorpID = row.
GetInt(1);
2220 charUpdate.oldOwnerID = args.toShareholderID;
2221 charUpdate.newOwnerOldCorpID = (isCorp ? 0 : oldCorpID);
2223 charUpdate.oldShares = 0;
2224 charUpdate.oldCorpID = 0;
2225 charUpdate.oldOwnerID = 0;
2226 charUpdate.newOwnerOldCorpID = 0;
2229 charUpdate.newShares = (oldShares + args.numberOfShares);
2230 charUpdate.newCorpID = corpID;
2231 charUpdate.newOwnerID = args.toShareholderID;
2232 charUpdate.newOwnerNewCorpID = (isCorp ? 0 : oldCorpID);
2238 "INSERT INTO crpShares (corporationID, shareholderID, shares, shareholderCorporationID)"
2239 " VALUES (%i, %i, %i, %u)"
2240 " ON DUPLICATE KEY UPDATE shares = shares + %i", args.corporationID, args.toShareholderID, args.numberOfShares, corpID, args.numberOfShares);
2247 " SELECT corporationID, shareholderID, shares, shareholderCorporationID"
2249 " WHERE corporationID = %u ", corpID))
2261 " SELECT corporationID, shareholderID, shares, shareholderCorporationID"
2263 " WHERE shareholderID = %u ", ownerID))
2274 if (!
sDatabase.RunQuery(res,
"SELECT shareholderID FROM crpShares WHERE corporationID = %u AND shareholderID < 98000000", corpID)) {
2290 if (!
sDatabase.RunQuery(res,
"SELECT shares FROM crpShares WHERE shareholderID = %u AND corporationID = %u", charID, corpID)) {
2304 if (!
sDatabase.RunQuery(res,
"SELECT shares FROM crpShares WHERE shareholderID = %u AND corporationID = %u", charID, corpID)) {
2331 " SELECT DISTINCT s.stationID AS locationID FROM entity AS e"
2332 " LEFT JOIN staOffices AS s ON (s.itemID = e.locationID)"
2333 " WHERE e.ownerID = %u AND e.flag IN %s"
2334 " AND e.locationID >= %u AND e.locationID <= %u", corpID, flags,
minOffice,
maxOffice))
2342 " SELECT DISTINCT locationID FROM entity WHERE ownerID = %u AND flag IN %s"
2353 _log(CORP__DB_WARNING,
"CorporationDB::GetAssetInventory(): unhandled locFlag sent: %u", locFlag);
2365 if (
sDataMgr.IsStation(locationID)) {
2367 " SELECT e.itemID, e.itemName, e.typeID, e.ownerID, e.locationID, e.flag AS flagID, e.singleton,"
2368 " e.quantity AS stacksize, t.groupID, g.categoryID FROM entity AS e"
2369 " LEFT JOIN invTypes AS t USING (typeID)"
2370 " LEFT JOIN invGroups AS g USING (groupID)"
2371 " WHERE e.ownerID = %u AND e.flag IN %s AND e.locationID = (SELECT itemID FROM staOffices WHERE stationID = %u AND corporationID = %u)",
2372 corpID, flags, locationID, corpID))
2379 " SELECT e.itemID, e.itemName, e.typeID, e.ownerID, e.locationID, e.flag AS flagID, e.singleton,"
2380 " e.quantity AS stacksize, t.groupID, g.categoryID FROM entity AS e"
2381 " LEFT JOIN invTypes AS t USING (typeID)"
2382 " LEFT JOIN invGroups AS g USING (groupID)"
2383 " WHERE e.ownerID = %u AND e.flag IN %s AND e.locationID = (SELECT stationID FROM staOffices WHERE itemID = %u)",
2384 corpID, flags, locationID))
2391 " SELECT e.itemID, e.itemName, e.typeID, e.ownerID, e.locationID, e.flag AS flagID, e.singleton,"
2392 " e.quantity AS stacksize, t.groupID, g.categoryID FROM entity AS e"
2393 " LEFT JOIN invTypes AS t USING (typeID)"
2394 " LEFT JOIN invGroups AS g USING (groupID)"
2395 " WHERE e.ownerID = %u AND e.flag IN %s AND e.locationID = %u", corpID, flags, locationID))
2401 _log(CORP__DB_WARNING,
"CorporationDB::GetAssetInventoryForLocation(): unhandled locationID sent: %u", locationID);
2415 " victimCharacterID,"
2416 " victimCorporationID,"
2417 " victimAllianceID,"
2419 " victimShipTypeID,"
2420 " finalCharacterID,"
2421 " finalCorporationID,"
2425 " finalWeaponTypeID,"
2428 " victimDamageTaken,"
2429 " finalSecurityStatus,"
2432 " FROM chrKillTable"
2433 " WHERE victimCorporationID = %u OR finalCorporationID = %u", corpID, corpID))
2439 _log(DATABASE__RESULTS,
"CorporationDB::GetKillsAndLosses for corpID: %u returned %u items", corpID, res.
GetRowCount());
2449 "SELECT sell.typeID AS typeID, sell.price AS sellPrice, sell.volRemaining AS sellQuantity, sell.issued AS sellDate, sell.stationID AS sellStationID, "
2450 " buy.price AS buyPrice, buy.volRemaining AS buyQuantity, buy.issued AS buyDate, buy.stationID AS buyStationID"
2451 " FROM mktOrders AS sell, mktOrders AS buy"
2452 " WHERE sell.ownerID = %u AND buy.ownerID = %u AND sell.typeID = buy.typeID AND sell.bid=0 AND buy.bid=1", corpID, corpID))
2457 _log(DATABASE__RESULTS,
"CorporationDB::GetMktBuyInfo for corpID: %u returned %u items", corpID, res.
GetRowCount());
2473 " FROM crpCorporation"
2482 _log(DATABASE__MESSAGE,
"No data found for character's %u corporation.", data.
corporationID);
2498 if (!
sDatabase.RunQuery(err,
"UPDATE crpCorporation SET stationID = %u WHERE corporationID = %u", stationID, corpID))
2499 codelog(CORP__DB_ERROR,
"Error in UpdateCorpHQ query: %s", err.
c_str());
2504 std::string escaped;
2505 sDatabase.DoEscapeString(escaped, name);
2508 sDatabase.RunQuery(res,
"UPDATE crpLabels SET color = %u, name = '%s' WHERE ownerID = %u AND labelID = %u", color, escaped.c_str(), corpID, labelID);
2514 if (!
sDatabase.RunQuery(res,
"SELECT labelID, color, name FROM crpLabels WHERE ownerID = %u", corpID)) {
2524 std::string escaped;
2525 sDatabase.DoEscapeString(escaped, name);
2528 sDatabase.RunQuery(res,
"INSERT INTO crpLabels (color, name, ownerID) VALUES (%u, '%s', %u)", color, escaped.c_str(), corpID);
2539 if (!
sDatabase.RunQuery(res,
"SELECT corporationID FROM chrCharacters WHERE characterID = %u", charID)) {
2540 codelog(DATABASE__ERROR,
"Failed to query data of corporation for chararcterID %u: %s.", charID, res.
error.
c_str());
2548 _log(DATABASE__MESSAGE,
"No data found for character's %u corporation.", charID);
PyRep * Fetch(uint32 corpID, uint32 from, uint32 count)
uint32 GetStationOwner(uint32 stationID)
PyObjectEx * GetMedalDetails(int32 medalID)
#define IsNPCCorp(itemID)
PyRep * GetCorporations(uint32 corpID)
void AddContact(uint32 ownerID, Call_CorporateContactData corpData)
void SendNotification(const PyAddress &dest, EVENotificationStream ¬i, bool seq=true)
bool UpdateLogo(uint32 corpID, const Call_UpdateLogo &upd, PyDict *notif)
static std::string StringContent(PyRep *pRep)
bool UpdateCorporation(uint32 corpID, const Call_UpdateCorporation &upd, PyDict *notif)
PyRep * GetCorpInfo(uint32 corpID)
std::set< uint32 > corporations
void ProcessRealChange(const char *key, double oldValue, double newValue, PyDict *notif, std::vector< std::string > &dbQ)
PyRep * GetMemberTrackingInfo(uint32 corpID)
const char * GetText(uint32 index) const
#define _log(type, fmt,...)
void AddRecruiters(uint16 adID, int32 corpID, std::vector< int32 > &charVec)
PyObjectEx * DBResultToCRowset(DBQueryResult &result)
PyObject * ListStationOwners(uint32 station_id)
uint16 GetMemberCount(uint32 corpID)
PyRep * GetCorpRoleGroups()
PyRep * GetItemString(const char *key) const
Obtains database entry based on given key string.
int32 GetInt(uint32 index) const
PyRep * GetShares(uint32 corpID)
void ProcessIntChange(const char *key, uint32 oldValue, uint32 newValue, PyDict *notif, std::vector< std::string > &dbQ)
void DeleteAdvert(uint16 adID)
PyRep * GetMedalsReceivedDetails(int32 charID)
uint32 GetUInt(uint32 index) const
uint32 GetRegionID() const
PyRep * GetRecipientsOfMedal(int32 medalID)
double GetDouble(uint32 index) const
void RemoveContact(uint32 contactID, uint32 ownerID)
PyRep * GetLabels(uint32 corpID)
bool CreateMemberAttributeUpdate(uint32 newCorpID, uint32 charID, MemberAttributeUpdate &attrib)
PyRep * GetMyShares(uint32 ownerID)
bool CreateCorporationCreatePacket(OnCorporationChanged &cc, uint32 oldCorpID, uint32 newCorpID)
PyRep * GetMedalsReceived(int32 charID)
PyRep * GetRecruiters(int32 corpID, uint16 adID)
Python floating point number.
int32 GetCharacterID() const
void SetLabel(uint32 corpID, uint32 color, std::string name)
bool DeleteApplication(const Corp::ApplicationInfo &aInfo)
const_iterator begin() const
int32 GetCorporationID() const
void GetCorpStations(uint32 corpID, std::vector< uint32 > &stVec)
storage_type::const_iterator const_iterator
void EditLabel(uint32 corpID, uint32 labelID, uint32 color, std::string name)
static uint32 IntegerValueU32(PyRep *pRep)
PyRep * GetKillsAndLosses(uint32 corpID, uint32 number, uint32 offset)
void AddBulletin(uint32 corpID, uint32 ownerID, uint32 cCharID, std::string &title, std::string &body)
void UpdateContact(int32 relationshipID, uint32 contactID, uint32 ownerID)
static uint32 GetCorporationCEO(uint32 corpID)
PyObjectEx * DBResultToCIndexedRowset(DBQueryResult &result, const char *key)
CharacterRef GetChar() const
int32 GetCorpIDforChar(int32 charID)
void Dump(FILE *into, const char *pfx) const
Dumps object to file.
void CreateTitleData(uint32 corpID)
int32 GetAllianceID() const
static void GetMemberIDs(uint32 corpID, std::vector< uint32 > &ids, bool online=true)
PyObject * GetCorporation(uint32 corpID)
void ProcessStringChange(const char *key, const std::string &oldValue, std::string newValue, PyDict *notif, std::vector< std::string > &dbQ)
PyRep * GetSharesForCorp(uint32 corpID)
PyRep * GetItem(size_t index) const
Returns Python object.
void GiveMedalToCharacters(uint32 issuerID, uint32 corpID, int32 medalID, std::vector< uint32 > &charVec, std::string &reason)
bool GetRow(DBResultRow &into)
PyObject * DBRowToRow(DBResultRow &row, const char *type)
bool UpdateTitle(uint32 corpID, Call_UpdateTitleData &args, PyDict *updates)
void EditBulletin(uint32 bulletinID, uint32 eCharID, int64 eDataTime, std::string &title, std::string &body)
PyRep * GetApplications(uint32 corpID)
#define is_log_enabled(type)
uint16 GetCorpMemberCount(uint32 corpID)
PyRep * GetBulletins(uint32 corpID)
const char * c_str() const
#define IsPlayerItem(itemID)
uint16 CreateMedal(uint32 ownerID, uint32 creatorID, std::string &title, std::string &description)
PyRep * GetAssetInventoryForLocation(uint32 corpID, uint32 locationID, const char *flags)
PyObject * GetCorporationBills(uint32 corpID, bool payable)
#define codelog(type, fmt,...)
void SetItem(size_t index, PyRep *object)
Stores Python object.
PyRep * GetAdvert(uint16 adID)
PyRep * GetVotes(uint32 voteCaseID)
bool AddCorporation(Call_AddCorporation &corpInfo, Client *pClient, uint32 &corpID)
PyRep * GetContacts(uint32 corpID)
PyRep * GetAllCorpMedals(uint32 corpID)
PyObject * DBResultToRowset(DBQueryResult &result)
PyRep * GetRoleHistroy(uint32 corpID, uint32 charID, int64 fromDate, int64 toDate, uint8 rowsPerPage)
void CastVote(uint32 corpID, uint32 charID, uint32 voteCaseID, uint8 optionID)
static std::string GetDivisionName(uint32 corpID, uint16 acctKey)
PyRep * GetVoteOptions(uint32 voteCaseID)
bool IsNull(uint32 index) const
static uint32 GetCorpID(uint32 charID)
#define IsPlayerCorp(itemID)
PyRep * GetCorpMedalData(uint32 corpID)
void DeleteTitle(uint32 corpID, uint16 titleID)
PyRep * PyHasShares(uint32 charID, uint32 corpID)
#define IsCharacterID(itemID)
PyRep * GetTitles(uint32 corpID)
void ProcessLongChange(const char *key, int64 oldValue, int64 newValue, PyDict *notif, std::vector< std::string > &dbQ)
void GetMembersForQuery(std::ostringstream &query, std::vector< uint32 > &result)
PyRep * GetMedalStatuses()
static void UpdateCorpHQ(uint32 corpID, uint32 stationID)
double GetCloneTypeCostByID(uint32 cloneTypeID)
bool GetCurrentApplicationInfo(Corp::ApplicationInfo &aInfo)
bool CreateCorporationChangePacket(OnCorporationChanged &cc, uint32 oldCorpID, uint32 newCorpID)
void AddRoleHistory(uint32 corpID, uint32 charID, uint32 issuerID, int64 oldRoles, int64 newRoles, bool grantable)
std::set< uint32 > characters
PyRep * GetMktInfo(uint32 corpID)
PyObject * DBResultToIndexRowset(DBQueryResult &result, const char *key)
uint16 GetCorpMemberLimit(uint32 corpID)
PyObject * GetStations(uint32 corpID)
void GetMembersPaged(uint32 corpID, uint8 page, DBQueryResult &res)
PyRep * GetMemberTrackingInfoSimple(uint32 corpID)
PyRep * GetMyApplications(uint32 charID)
#define IsOfficeID(itemID)
PyRep * GetAssetInventory(uint32 corpID, EVEItemFlags locFlag, const char *flags)
uint32 GetStationCorporationCEO(uint32 stationID)
const_iterator end() const
PyObject * GetEveOwners(uint32 corpID)
PyObject * ListStationCorps(uint32 station_id)
PyRep * GetItemEvents(uint32 corpID, uint32 charID, int64 fromDate, int64 toDate, uint8 rowsPerPage)
bool UpdateApplication(const Corp::ApplicationInfo &aInfo)
void GetAutoPay(uint32 corpID, DBQueryResult &res)
void MoveShares(uint32 ownerID, uint32 corpID, Call_MoveShares &args)
static std::string _IoN(PyRep *r)
bool IsTickerTaken(std::string ticker)
int8 GetSkillLevel(uint16 skillTypeID, bool zeroForNotInjected=true) const
void AddItemEvent(uint32 corpID, uint32 charID, uint16 eTypeID)
PyObject * GetEmploymentRecord(uint32 charID)
void UpdateAdvert(uint16 adID, uint32 corpID, int64 typeMask, int8 days, uint16 members, std::string description, uint32 channelID, std::string title)
void DeleteBulletin(uint32 bulletinID)
PyPackedRow * DBRowToPackedRow(DBResultRow &row)
int32 GetStationID() const
PyDict * DBResultToPackedRowDict(DBQueryResult &result, const char *key)
PyRep * GetAdRegistryData(int64 typeMask=0, bool inAlliance=false, int16 minMembers=0, uint16 maxMembers=12602)
PyObject * DBRowToKeyVal(DBResultRow &row)
static int64 IntegerValue(PyRep *pRep)
PyRep * GetMember(uint32 charID)
bool UpdateDivisionNames(uint32 corpID, const Call_UpdateDivisionNames &divs, PyDict *notif)
int64 GetAdvertTime(uint16 adID, uint32 corpID)
int64 GetInt64(uint32 index) const
bool HasShares(uint32 charID, uint32 corpID)
void AddVoteCase(uint32 corpID, uint32 charID, Call_InsertVoteCase &args)
PyRep * GetSanctionedItems(uint32 corpID, uint8 status=0)
void SetItem(PyRep *key, PyRep *value)
SetItem adds or sets a database entry.
void GetMembers(uint32 corpID, DBQueryResult &res)
static void GetCorpData(CorpData &data)
const char * TypeString() const
bool InsertApplication(Corp::ApplicationInfo &aInfo)
static std::string GetCorpName(uint32 corpID)
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
uint32 CreateAdvert(Client *pClient, uint32 corpID, int64 typeMask, int8 days, uint16 members, std::string description, uint32 channelID, std::string title)
PyRep * GetVoteItems(uint32 corpID, uint8 status=0, uint8 maxLen=20)
void SaveMedalData(int64 medalID, std::vector< Corp::MedalData > &dataList)
void DeleteLabel(uint32 corpID, uint32 labelID)
void SetMedalStatus(uint32 charID, uint16 medalID, uint8 status)