diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2015-10-05 20:13:55 -0700 | 
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2015-10-05 20:13:55 -0700 | 
| commit | ecc93e41eac485b6e84b844d9db8d25576dab3b9 (patch) | |
| tree | ac30bea3b81b7bb3376e16496377e2872c520311 | |
| parent | 05c0b947ddba67a8ac2537c010a583277623ff3e (diff) | |
show customer name on appointments, RT#34237
| -rw-r--r-- | httemplate/misc/xmlhttp-ticket-update.html | 66 | 
1 files changed, 66 insertions, 0 deletions
| diff --git a/httemplate/misc/xmlhttp-ticket-update.html b/httemplate/misc/xmlhttp-ticket-update.html new file mode 100644 index 000000000..147fbef16 --- /dev/null +++ b/httemplate/misc/xmlhttp-ticket-update.html @@ -0,0 +1,66 @@ +<% encode_json($return) %>\ +<%init> + +my $id       = $cgi->param('id'); +my $starts   = $cgi->param('starts'); +my $due      = $cgi->param('due'); +my $username = $cgi->param('username'); + +my $ticket = FS::TicketSystem->get_ticket_object( \%session, ticket_id=>$id ); + +#hmm, this should happen in a single transaction and either commit or rollback, +# but in reality failures "Don't Happen" so its not like a ticket gets +# half changed + +my $return; +if ( $ticket ) { + +  my($orv, $omsg) = $ticket->SetOwner( $username, 'Steal' ); +  $orv = 1 if ! $orv && $omsg =~ /already owns/i; + +  if ( $orv ) { + +    my $date = RT::Date->new( $session{CurrentUser} ); +    $date->Set( Format=>'unix', Value=>$starts, ); +    my($srv, $smsg) = $ticket->SetStarts( $date->ISO ); + +    my $ddate; +    unless ( ! $srv ) { +      $ddate = RT::Date->new( $session{CurrentUser} ); +      $ddate->Set( Format=>'unix', Value=>$due, ); +      my($drv, $dmsg) = $ticket->SetDue( $ddate->ISO ); +      #XXX lame +    } + +    if ( $srv ) { + +      my ($sm, $sh) = ( $date->Localtime('user'))[1,2]; +      my ($em, $eh) = ($ddate->Localtime('user'))[1,2]; + +      #false laziness w/CalendarSlotSchedule and CalendarDaySchedule +      my %hash = $m->comp('/rt/Ticket/Elements/Customers', Ticket => $ticket); +      my @cust_main = values( %{$hash{cust_main}} ); + +      $return = { 'error'       => '', +                  #'starts'      => $starts, +                  #'due'         => $due, +                  #'username'    => $username, +                                   #false laziness w/CalendarSlotSchedule +                  'sched_label' => +                     FS::sched_avail::pretty_time($sh*60+$sm). '-'. +                     FS::sched_avail::pretty_time($eh*60+$em). ': '. +                     $cust_main[0]->_FreesideURILabel, +                }; +    } else { +      $return = { 'error' => $smsg }; +    } + +  } else { +    $return = { 'error' => $omsg }; +  } + +} else { +  $return = { 'error' => 'Unknown ticket id' }; +} + +</%init> | 
