@ -1,5 +1,6 @@
package mx.gob.jumapacelaya.ui ;
import com.vaadin.flow.component.UI ;
import com.vaadin.flow.component.button.Button ;
import com.vaadin.flow.component.dependency.CssImport ;
import com.vaadin.flow.component.grid.Grid ;
@ -7,6 +8,7 @@ import com.vaadin.flow.component.grid.GridVariant;
import com.vaadin.flow.component.html.H3 ;
import com.vaadin.flow.component.html.Span ;
import com.vaadin.flow.component.notification.Notification ;
import com.vaadin.flow.component.notification.NotificationVariant ;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout ;
import com.vaadin.flow.component.orderedlayout.VerticalLayout ;
import com.vaadin.flow.data.renderer.ComponentRenderer ;
@ -16,13 +18,16 @@ import jakarta.annotation.security.PermitAll;
import mx.gob.jumapacelaya.api.RedmineClient ;
import mx.gob.jumapacelaya.api.ServerProperties ;
import mx.gob.jumapacelaya.models.ActividadDiaria ;
import mx.gob.jumapacelaya.models.RedmineUser ;
import mx.gob.jumapacelaya.models.Ticket ;
import mx.gob.jumapacelaya.services.LdapService ;
import mx.gob.jumapacelaya.services.UserService ;
import java.io.IOException ;
import java.text.SimpleDateFormat ;
import java.time.LocalDate ;
import java.time.format.DateTimeFormatter ;
import java.util.* ;
@ -67,7 +72,12 @@ public class ActDiariaView extends VerticalLayout {
grid . addColumn ( ticket - > {
LocalDate fechaCierre = ticket . getDateClose ( ) ;
return fechaCierre ! = null ? fechaCierre . toString ( ) : "" ;
if ( fechaCierre ! = null ) {
DateTimeFormatter formatterClose = DateTimeFormatter . ofPattern ( "dd/MM/yyyy" ) ;
return fechaCierre . format ( formatterClose ) ;
} else {
return "" ;
}
} ) . setHeader ( "Fecha cierre" ) . setAutoWidth ( true ) ;
grid . addColumn ( ticket - > ticket . tiempoEst ( ticket . getTrackerId ( ) ) ) . setHeader ( "Tiempo estimado de atencion" ) . setAutoWidth ( false ) ;
@ -94,7 +104,7 @@ public class ActDiariaView extends VerticalLayout {
private void loadTickets ( ) {
try {
List < Ticket > tickets = redmineClient . getTicketsAuthor ( userService . getRedmineUser ( ) ) ;
List < Ticket > tickets = redmineClient . getTicketsAuthor ( userService . getRedmineUser ( ) , true ) ;
List < Ticket > filteredTickets = tickets . stream ( )
. filter ( ticket - > ticket . getTrackerId ( ) = = 17 | | ticket . getTrackerId ( ) = = 16 )
. toList ( ) ;
@ -131,10 +141,29 @@ public class ActDiariaView extends VerticalLayout {
return new ComponentRenderer < > ( ticket - > {
Button button = new Button ( "Realizar" ) ;
button . addClickListener ( e - > {
Notification . show ( "Accion para ticket: " + ticket . getId ( ) ) ;
RedmineUser currentUser = userService . getRedmineUser ( ) ;
if ( ticket . getTrackerId ( ) = = 16 ) {
UI . getCurrent ( ) . navigate ( "mantenimiento" ) ;
} else if ( ticket . getTrackerId ( ) = = 17 ) {
cerrarTicket ( ticket , currentUser ) ;
} else {
Notification . show ( "El ticket no es de tipo Mantenimiento o Actividad." ) ;
}
} ) ;
return button ;
} ) ;
}
public void cerrarTicket ( Ticket ticket , RedmineUser user ) {
try {
/ / Llamar al metodo para cambiar el estado del ticket
redmineClient . closeTicket ( ticket . getId ( ) , user ) ;
Notification . show ( "El ticket " + ticket . getId ( ) + " se ha cerrado exitosamente." , 3000 , Notification . Position . MIDDLE )
. addThemeVariants ( NotificationVariant . LUMO_WARNING ) ;
} catch ( IOException | InterruptedException e ) {
e . printStackTrace ( ) ;
Notification . show ( "Error al cerrar el ticket " + ticket . getId ( ) ) ;
}
}
}