#!/usr/local/qddb/bin/qtclsh
#
#  addmonths - add to a Clients Months amount
#

set USERDB /var/lib/ISPutil/qdDBs/Clients

if { $argc != 2 } {
  puts "Usage: addmonths <username> <months>"
  return 1
}

set user [lindex $argv 0]
set amt [lindex $argv 1]

set S [qddb_schema open $USERDB]
set K [qddb_search $S -prunebyattr Company.Contact.Username r $user]
set T {}
foreach i [qddb_keylist get $K] {
    set T [qddb_tuple read $S $i]
    if {[llength $T] > 0} {
	break
    }
}
if {[string compare $T {}] == 0} {
    puts "User \"$user\" not found."
    return 1
}
qddb_keylist delete $K
while {[qddb_tuple lock $T] == 0} {
    puts "record locked, retrying..."
    exec sleep 1
}
set V [qddb_view define $T {
    {Company.Contact.Months arr(Company.Contact.Months)}
}]
set arr(Company.Contact.Months) [expr $arr(Company.Contact.Months)+$amt]
qddb_tuple write $T
catch "qddb_tuple delete $T"
qddb_schema close $S
