summaryrefslogtreecommitdiff
path: root/indra/llinventory
diff options
context:
space:
mode:
authorAaron Brashears <aaronb@lindenlab.com>2007-09-10 20:10:56 +0000
committerAaron Brashears <aaronb@lindenlab.com>2007-09-10 20:10:56 +0000
commit80dfa222fdc3747be9f5b64b9ace35907edf1c4e (patch)
tree6155c692ce1d625ea495c74cd68b1284712241f5 /indra/llinventory
parent0bd992b07cf17ac0e327cb95d6207883d88a60a3 (diff)
Result of svn merge -r69150:69158 svn+ssh://svn/svn/linden/branches/named-queries-py3 into release.
Diffstat (limited to 'indra/llinventory')
-rw-r--r--indra/llinventory/lltransactionflags.cpp84
-rw-r--r--indra/llinventory/lltransactionflags.h18
2 files changed, 102 insertions, 0 deletions
diff --git a/indra/llinventory/lltransactionflags.cpp b/indra/llinventory/lltransactionflags.cpp
index 3f1aa14959..394dd1bd60 100644
--- a/indra/llinventory/lltransactionflags.cpp
+++ b/indra/llinventory/lltransactionflags.cpp
@@ -10,6 +10,8 @@
#include "linden_common.h"
#include "lltransactionflags.h"
+#include "lltransactiontypes.h"
+#include "lluuid.h"
const U8 TRANSACTION_FLAGS_NONE = 0;
const U8 TRANSACTION_FLAG_SOURCE_GROUP = 1;
@@ -41,3 +43,85 @@ BOOL is_tf_owner_group(TransactionFlags flags)
return ((flags & TRANSACTION_FLAG_OWNER_GROUP) == TRANSACTION_FLAG_OWNER_GROUP);
}
+void append_reason(
+ std::ostream& ostr,
+ S32 transaction_type,
+ const char* description)
+{
+ switch( transaction_type )
+ {
+ case TRANS_OBJECT_SALE:
+ ostr << " for " << (description ? description : "<unknown>");
+ break;
+ case TRANS_LAND_SALE:
+ ostr << " for a parcel of land";
+ break;
+ case TRANS_LAND_PASS_SALE:
+ ostr << " for a land access pass";
+ break;
+ case TRANS_GROUP_LAND_DEED:
+ ostr << " for deeding land";
+ default:
+ break;
+ }
+}
+
+std::string build_transfer_message_to_source(
+ S32 amount,
+ const LLUUID& source_id,
+ const LLUUID& dest_id,
+ const std::string& dest_name,
+ S32 transaction_type,
+ const char* description)
+{
+ lldebugs << "build_transfer_message_to_source: " << amount << " "
+ << source_id << " " << dest_id << " " << dest_name << " "
+ << (description?description:"(no desc)") << llendl;
+ if((0 == amount) || source_id.isNull()) return ll_safe_string(description);
+ std::ostringstream ostr;
+ if(dest_id.isNull())
+ {
+ ostr << "You paid L$" << amount;
+ switch(transaction_type)
+ {
+ case TRANS_GROUP_CREATE:
+ ostr << " to create a group";
+ break;
+ case TRANS_GROUP_JOIN:
+ ostr << " to join a group";
+ break;
+ case TRANS_UPLOAD_CHARGE:
+ ostr << " to upload";
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ ostr << "You paid " << dest_name << " L$" << amount;
+ append_reason(ostr, transaction_type, description);
+ }
+ ostr << ".";
+ return ostr.str();
+}
+
+std::string build_transfer_message_to_destination(
+ S32 amount,
+ const LLUUID& dest_id,
+ const LLUUID& source_id,
+ const std::string& source_name,
+ S32 transaction_type,
+ const char* description)
+{
+ lldebugs << "build_transfer_message_to_dest: " << amount << " "
+ << dest_id << " " << source_id << " " << source_name << " "
+ << (description?description:"(no desc)") << llendl;
+ if(0 == amount) return std::string();
+ if(dest_id.isNull()) return ll_safe_string(description);
+ std::ostringstream ostr;
+ ostr << source_name << " paid you L$" << amount;
+ append_reason(ostr, transaction_type, description);
+ ostr << ".";
+ return ostr.str();
+}
diff --git a/indra/llinventory/lltransactionflags.h b/indra/llinventory/lltransactionflags.h
index eaa138fef7..999ab5f671 100644
--- a/indra/llinventory/lltransactionflags.h
+++ b/indra/llinventory/lltransactionflags.h
@@ -24,4 +24,22 @@ BOOL is_tf_source_group(TransactionFlags flags);
BOOL is_tf_dest_group(TransactionFlags flags);
BOOL is_tf_owner_group(TransactionFlags flags);
+// stupid helper functions which should be replaced with some kind of
+// internationalizeable message.
+std::string build_transfer_message_to_source(
+ S32 amount,
+ const LLUUID& source_id,
+ const LLUUID& dest_id,
+ const std::string& dest_name,
+ S32 transaction_type,
+ const char* description);
+
+std::string build_transfer_message_to_destination(
+ S32 amount,
+ const LLUUID& dest_id,
+ const LLUUID& source_id,
+ const std::string& source_name,
+ S32 transaction_type,
+ const char* description);
+
#endif // LL_LLTRANSACTIONFLAGS_H