PyResult ContractMgrService::Handle_CollectMyPageInfo( PyCallArgs& call ) { PyDict* ret = new PyDict; uint32 numOutstandingContractsNonCorp = 0; uint32 numOutstandingContractsForCorp = 0; uint32 numContractsLeft = 0; uint32 numRequiresAttention = 0; uint32 numRequiresAttentionCorp = 0; uint32 numAssignedTo = 0; uint32 numAssignedToCorp = 0; uint32 numBiddingOn = 0; uint32 numInProgress = 0; uint32 numBiddingOnCorp = 0; uint32 numInProgressCorp = 0; std::map<uint32, ContractRef>::const_iterator cur, end; std::map<uint32, ContractRef> contracts = m_contractManager->GetContractList(); cur = contracts.begin(); end = contracts.end(); for(; cur != end; cur++ ) { ContractRef contract = cur->second; if( contract->issuerID() == call.client->GetCharacterID() ) { if( contract->forCorp() == true ) { if( contract->requiresAttention() ) numRequiresAttentionCorp += 1; if( contract->assigneeID() ) numAssignedToCorp += 1; if( contract->status() == conStatusInProgress ) numInProgressCorp += 1; numOutstandingContractsForCorp += 1; }else{ if( contract->requiresAttention() ) numRequiresAttention += 1; if( contract->assigneeID() ) numAssignedTo += 1; if( contract->status() == conStatusInProgress ) numInProgress += 1; numOutstandingContractsNonCorp += 1; } } } ret->SetItemString( "numOutstandingContractsNonCorp", new PyInt( numOutstandingContractsNonCorp ) ); ret->SetItemString( "numOutstandingContractsForCorp", new PyInt( numOutstandingContractsForCorp ) ); ret->SetItemString( "numOutstandingContracts", new PyInt( numOutstandingContractsNonCorp + numOutstandingContractsForCorp ) ); ret->SetItemString( "numContractsLeft", new PyInt( numContractsLeft ) ); ret->SetItemString( "numRequiresAttention", new PyInt( numRequiresAttention ) ); ret->SetItemString( "numRequiresAttentionCorp", new PyInt( numRequiresAttentionCorp ) ); ret->SetItemString( "numAssignedTo", new PyInt( numAssignedTo ) ); ret->SetItemString( "numAssignedToCorp", new PyInt( numAssignedToCorp ) ); ret->SetItemString( "numBiddingOn", new PyInt( numBiddingOn ) ); ret->SetItemString( "numInProgress", new PyInt( numInProgress ) ); ret->SetItemString( "numBiddingOnCorp", new PyInt( numBiddingOnCorp ) ); ret->SetItemString( "numInProgressCorp", new PyInt( numInProgressCorp ) ); return new PyObject( new PyString( "util.KeyVal" ), ret ); }
PyResult ContractMgrService::Handle_NumRequiringAttention( PyCallArgs& call ) { uint32 requiresAttentionCorp = 0; uint32 requiresAttention = 0; std::map<uint32, ContractRef>::const_iterator cur, end; std::map<uint32, ContractRef> contracts = m_contractManager->GetContractList(); cur = contracts.begin(); end = contracts.end(); for(; cur != end; cur++ ) { ContractRef contract = cur->second; if( contract->requiresAttention() ) { if( contract->issuerCorpID() == call.client->GetCorporationID() ) { requiresAttentionCorp += 1; }else if( contract->issuerID() == call.client->GetCharacterID() ){ requiresAttention += 1; }else if( contract->acceptorID() == call.client->GetCharacterID() ){ requiresAttention += 1; }else if( contract->assigneeID() == call.client->GetCharacterID() ){ requiresAttention += 1; } } } PyDict* args = new PyDict; args->SetItemString( "n", new PyInt( requiresAttention ) ); args->SetItemString( "ncorp", new PyInt( requiresAttentionCorp ) ); return new PyObject( new PyString( "util.KeyVal" ), args ); }