1 <% encode_json($return) %>\
4 my $id = $cgi->param('id');
5 my $starts = $cgi->param('starts');
6 my $due = $cgi->param('due');
7 my $username = $cgi->param('username');
9 my $ticket = FS::TicketSystem->get_ticket_object( \%session, ticket_id=>$id );
11 #hmm, this should happen in a single transaction and either commit or rollback
16 my $curowner = $ticket->OwnerObj->Name;
18 if (( $curowner eq $FS::CurrentUser::CurrentUser->username ) or ( $curowner eq 'nobody' )) {
19 ($orv, $omsg) = $ticket->SetOwner( $username );
21 ($orv, $omsg) = $ticket->SetOwner( $username, 'Steal' );
23 $orv = 1 if ! $orv && $omsg =~ /already own/i;
27 my $date = RT::Date->new( $session{CurrentUser} );
28 $date->Set( Format=>'unix', Value=>$starts, );
29 my($srv, $smsg) = $ticket->SetStarts( $date->ISO );
30 $srv = 1 if ! $srv && $smsg =~ /already the current value/i;
34 $ddate = RT::Date->new( $session{CurrentUser} );
35 $ddate->Set( Format=>'unix', Value=>$due, );
36 my($drv, $dmsg) = $ticket->SetDue( $ddate->ISO );
42 my ($sm, $sh) = ( $date->Localtime('user'))[1,2];
43 my ($em, $eh) = ($ddate->Localtime('user'))[1,2];
45 #false laziness w/CalendarSlotSchedule and CalendarDaySchedule
46 my %hash = $m->comp('/rt/Ticket/Elements/Customers', Ticket => $ticket);
47 my @cust_main = values( %{$hash{cust_main}} );
49 $return = { 'error' => '',
52 #'username' => $username,
53 #false laziness w/CalendarSlotSchedule
55 FS::sched_avail::pretty_time($sh*60+$sm). '-'.
56 FS::sched_avail::pretty_time($eh*60+$em). ': '.
57 encode_entities($cust_main[0]->_FreesideURILabel),
60 $return = { 'error' => $smsg };
64 $return = { 'error' => $omsg };
68 $return = { 'error' => 'Unknown ticket id' };