Aggiornata gestione di Personale Orario
This commit is contained in:
parent
45a041cc83
commit
eb12311a60
|
@ -24,10 +24,10 @@ public class SyncConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(cron = "0 50 7 * * ?")
|
@Scheduled(cron = "0 50 7 * * ?")
|
||||||
public void cronJobSch() {
|
public void cronJobSyncRead() {
|
||||||
|
|
||||||
LocalDateTime start = LocalDateTime.now();
|
LocalDateTime start = LocalDateTime.now();
|
||||||
logger.info("Scheduled Sync Start : {}", start);
|
logger.info("Scheduled Sync Read Start : {}", start);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
syncService.executeReads();
|
syncService.executeReads();
|
||||||
|
@ -36,7 +36,28 @@ public class SyncConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
LocalDateTime end = LocalDateTime.now();
|
LocalDateTime end = LocalDateTime.now();
|
||||||
logger.info("Scheduled Sync End : {}", end);
|
logger.info("Scheduled Sync Read End : {}", end);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Scheduled(cron = "0 0 3 * * ?")
|
||||||
|
public void cronJobSyncWrite() {
|
||||||
|
|
||||||
|
LocalDateTime start = LocalDateTime.now();
|
||||||
|
logger.info("Scheduled Sync Write Start : {}", start);
|
||||||
|
String year=String.valueOf(start.getYear());
|
||||||
|
String month=String.valueOf(start.getMonthValue());
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
syncService.executeWritesScheduled(year, month);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalDateTime end = LocalDateTime.now();
|
||||||
|
logger.info("Scheduled Sync Write End : {}", end);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,6 +216,15 @@ public class SyncService {
|
||||||
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void executeWritesScheduled(String year, String month) throws Exception {
|
||||||
|
setBWriteTables();
|
||||||
|
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||||
|
Long fluxId = siMasterLogService.startFluxWrites();
|
||||||
|
writeScheduledData(fluxId, tabsSI, year, month);
|
||||||
|
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void executeWritesOrario() throws Exception {
|
public void executeWritesOrario() throws Exception {
|
||||||
setBWriteTables();
|
setBWriteTables();
|
||||||
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||||
|
@ -870,6 +879,38 @@ public class SyncService {
|
||||||
return writeTabs;
|
return writeTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void writeScheduledData(Long fluxId, List<TabsSI> tabsSI, String year, String month) throws Exception {
|
||||||
|
logger.info("Report {}-{}", year, month);
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
// checkValidMonthToSend(year, month);
|
||||||
|
|
||||||
|
for (TabsSI tab : tabsSI) {
|
||||||
|
logger.info("TabSI: {}", tab);
|
||||||
|
if (tab.getOperazioni() != null && !tab.getOperazioni().isEmpty()
|
||||||
|
&& tab.getOperazioni().compareTo("W") == 0) {
|
||||||
|
if (tab.getNome() == null || tab.getNome().isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (tab.getNome()) {
|
||||||
|
case "aspettative":
|
||||||
|
syncAspettative(fluxId, tab, year, month, now);
|
||||||
|
break;
|
||||||
|
case "orario":
|
||||||
|
syncOrario(fluxId, tab);
|
||||||
|
break;
|
||||||
|
case "pers_orario":
|
||||||
|
syncPersOrario(fluxId, tab, year, month, now);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void writeOrarioData(Long fluxId, List<TabsSI> tabsSI) {
|
private void writeOrarioData(Long fluxId, List<TabsSI> tabsSI) {
|
||||||
for (TabsSI tab : tabsSI) {
|
for (TabsSI tab : tabsSI) {
|
||||||
logger.info("TabSI: {}", tab);
|
logger.info("TabSI: {}", tab);
|
||||||
|
@ -1513,7 +1554,7 @@ public class SyncService {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
logger.info("Peronale Orario scritto su SI: {}",count);
|
logger.info("Personale Orario scritto su SI: {}",count);
|
||||||
|
|
||||||
logger.info("SIPersOrario Updated");
|
logger.info("SIPersOrario Updated");
|
||||||
bpers_orario = true;
|
bpers_orario = true;
|
||||||
|
|
|
@ -72,7 +72,7 @@ public class SyncResource {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@GetMapping("/sync/writes")
|
@GetMapping("/sync/writes")
|
||||||
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\",\""+AuthoritiesConstants.USER+"\")")
|
||||||
public ResponseEntity<Void> syncWrites(@RequestParam("year") String year, @RequestParam("month") String month)
|
public ResponseEntity<Void> syncWrites(@RequestParam("year") String year, @RequestParam("month") String month)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
logger.info("REST request syncWrites");
|
logger.info("REST request syncWrites");
|
||||||
|
@ -86,6 +86,35 @@ public class SyncResource {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code GET /sync/writesscheduled} : Report from ePAS and update SistemaInformativo scheduled info.
|
||||||
|
*
|
||||||
|
* @param year the year.
|
||||||
|
* @param month the month.
|
||||||
|
* @return the {@link ResponseEntity} with status {@code 201 (Executed)} or with
|
||||||
|
* status {@code 400 (Bad Request)} if there is a error.
|
||||||
|
* @throws Exception
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@GetMapping("/sync/writesscheduled")
|
||||||
|
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\",\""+AuthoritiesConstants.USER+"\")")
|
||||||
|
public ResponseEntity<Void> syncWritesScheduled(@RequestParam("year") String year, @RequestParam("month") String month)
|
||||||
|
throws Exception {
|
||||||
|
logger.info("REST request syncWritesScheduled");
|
||||||
|
|
||||||
|
ResponseEntity<Void> res;
|
||||||
|
syncService.executeWritesScheduled(year, month);
|
||||||
|
String msg = "Sincronizzazione delle scritture schedulate eseguita correttamente.";
|
||||||
|
logger.info(msg);
|
||||||
|
res = ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName, msg, "")).build();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@code GET /sync/test} : Test api.
|
* {@code GET /sync/test} : Test api.
|
||||||
*
|
*
|
||||||
|
@ -181,7 +210,7 @@ public class SyncResource {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@GetMapping("/sync/writesSingleTimeCards")
|
@GetMapping("/sync/writesSingleTimeCards")
|
||||||
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\",\""+AuthoritiesConstants.USER+"\")")
|
||||||
public ResponseEntity<Void> syncSingleWritesTimeCards(@RequestParam("year") String year,
|
public ResponseEntity<Void> syncSingleWritesTimeCards(@RequestParam("year") String year,
|
||||||
@RequestParam("month") String month, @RequestParam("fiscalCode") String fc) throws Exception {
|
@RequestParam("month") String month, @RequestParam("fiscalCode") String fc) throws Exception {
|
||||||
logger.info("REST request syncSingleWritesTimeCards)");
|
logger.info("REST request syncSingleWritesTimeCards)");
|
||||||
|
|
|
@ -26,6 +26,13 @@ import { RouterModule } from '@angular/router';
|
||||||
pageTitle: 'Leaves',
|
pageTitle: 'Leaves',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'persorario',
|
||||||
|
loadChildren: () => import('./persorario/persorario.module').then(m => m.PersOrarioModule),
|
||||||
|
data: {
|
||||||
|
pageTitle: 'Pers Orario',
|
||||||
|
},
|
||||||
|
},
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<form *ngIf="persOrario" name="deleteForm" (ngSubmit)="confirmDelete(persOrario?.id!)">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title">Confirm delete operation</h4>
|
||||||
|
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body">
|
||||||
|
<jhi-alert-error></jhi-alert-error>
|
||||||
|
|
||||||
|
<p>Are you sure you want to delete this Personale Orario?</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()">
|
||||||
|
<fa-icon icon="ban"></fa-icon> <span>Cancel</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-danger">
|
||||||
|
<fa-icon icon="times"></fa-icon> <span>Delete</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
|
@ -0,0 +1,27 @@
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
|
import { JhiEventManager } from 'ng-jhipster';
|
||||||
|
|
||||||
|
import { PersOrario } from './persorario.model';
|
||||||
|
import { PersOrarioService } from './persorario.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'jhi-persorario-delete-dialog',
|
||||||
|
templateUrl: './persorario-delete-dialog.component.html',
|
||||||
|
})
|
||||||
|
export class PersOrarioDeleteDialogComponent {
|
||||||
|
persOrario?: PersOrario;
|
||||||
|
|
||||||
|
constructor(private persOrarioService: PersOrarioService, public activeModal: NgbActiveModal, private eventManager: JhiEventManager) {}
|
||||||
|
|
||||||
|
cancel(): void {
|
||||||
|
this.activeModal.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
confirmDelete(id: string): void {
|
||||||
|
this.persOrarioService.delete(id).subscribe(() => {
|
||||||
|
this.eventManager.broadcast('persOrarioListModification');
|
||||||
|
this.activeModal.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-8">
|
||||||
|
<div *ngIf="persOrario">
|
||||||
|
<h2>
|
||||||
|
<span>Personale Orario</span> [<b>{{ persOrario.id }}</b>]
|
||||||
|
</h2>
|
||||||
|
<dl class="row-md jh-entity-details">
|
||||||
|
<dt><span>Id</span></dt>
|
||||||
|
<dd>{{ persOrario.id }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Id Persona</span></dt>
|
||||||
|
<dd>{{ persOrario.idPersona }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Codice Fiscale</span></dt>
|
||||||
|
<dd>{{ persOrario.cf }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Dal</span></dt>
|
||||||
|
<dd>{{ persOrario.dal }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Al</span></dt>
|
||||||
|
<dd>{{ persOrario.al }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Descrizione</span></dt>
|
||||||
|
<dd>{{ persOrario.descrizione }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Lun</span></dt>
|
||||||
|
<dd>{{ persOrario.lun }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Mar</span></dt>
|
||||||
|
<dd>{{ persOrario.mar }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Mer</span></dt>
|
||||||
|
<dd>{{ persOrario.mer }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Gio</span></dt>
|
||||||
|
<dd>{{ persOrario.gio }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Ven</span></dt>
|
||||||
|
<dd>{{ persOrario.ven }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Sab</span></dt>
|
||||||
|
<dd>{{ persOrario.sab }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Percentuale</span></dt>
|
||||||
|
<dd>{{ persOrario.percentuale }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Turno</span></dt>
|
||||||
|
<dd>{{ persOrario.turno }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Ore Turno</span></dt>
|
||||||
|
<dd>{{ persOrario.oreTurno }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Festivo</span></dt>
|
||||||
|
<dd>{{ persOrario.festivo }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Notturno</span></dt>
|
||||||
|
<dd>{{ persOrario.notturno }}</dd>
|
||||||
|
|
||||||
|
<dt><span>Data Mod</span></dt>
|
||||||
|
<dd>{{ persOrario.dataMod }}</dd>
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<button type="submit" routerLink="../../" class="btn btn-info">
|
||||||
|
<fa-icon icon="arrow-left"></fa-icon> <span>Back</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
|
||||||
|
import { PersOrario } from './persorario.model';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'jhi-persorario-detail',
|
||||||
|
templateUrl: './persorario-detail.component.html',
|
||||||
|
})
|
||||||
|
export class PersOrarioDetailComponent implements OnInit {
|
||||||
|
persOrario: PersOrario | null = null;
|
||||||
|
|
||||||
|
constructor(private route: ActivatedRoute) {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.route.data.subscribe(({ persOrario }) => (this.persOrario = persOrario));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,247 @@
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-8">
|
||||||
|
<form name="editForm" role="form" novalidate (ngSubmit)="save()"
|
||||||
|
[formGroup]="editForm">
|
||||||
|
<h2 id="myPersOrarioLabel">Create or edit Personale Orario</h2>
|
||||||
|
|
||||||
|
<div *ngIf="persOrario">
|
||||||
|
<jhi-alert-error></jhi-alert-error>
|
||||||
|
|
||||||
|
<div class="form-group" [hidden]="!persOrario.id">
|
||||||
|
<label>Id</label> <input type="text" class="form-control" name="id"
|
||||||
|
formControlName="id" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Id Persona</label> <input
|
||||||
|
type="text" class="form-control" name="idPersona"
|
||||||
|
formControlName="idPersona">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('idPersona')!.invalid && (editForm.get('idPersona')!.dirty || editForm.get('idPersona')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('idPersona')?.errors?.required"> This
|
||||||
|
field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Codice Fiscale</label> <input
|
||||||
|
type="text" class="form-control" name="cf" formControlName="cf">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('cf')!.invalid && (editForm.get('cf')!.dirty || editForm.get('cf')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('cf')?.errors?.required"> This field
|
||||||
|
is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Dal</label> <input
|
||||||
|
type="text" class="form-control" name="dal"
|
||||||
|
formControlName="dal">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('dal')!.invalid && (editForm.get('dal')!.dirty || editForm.get('dal')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('dal')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Al</label> <input
|
||||||
|
type="text" class="form-control" name="al"
|
||||||
|
formControlName="al">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('al')!.invalid && (editForm.get('al')!.dirty || editForm.get('al')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('al')?.errors?.required"> This
|
||||||
|
field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Descrizione</label>
|
||||||
|
<input type="text" class="form-control"
|
||||||
|
name="descrizione"
|
||||||
|
formControlName="descrizione">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('descrizione')!.invalid && (editForm.get('descrizione')!.dirty || editForm.get('descrizione')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('descrizione')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Lun</label> <input
|
||||||
|
type="text" class="form-control" name="lun"
|
||||||
|
formControlName="lun">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('lun')!.invalid && (editForm.get('lun')!.dirty || editForm.get('lun')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('lun')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Mar</label> <input
|
||||||
|
type="text" class="form-control" name="mar"
|
||||||
|
formControlName="mar">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('mar')!.invalid && (editForm.get('mar')!.dirty || editForm.get('mar')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('mar')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Mer</label> <input
|
||||||
|
type="text" class="form-control" name="mer"
|
||||||
|
formControlName="mer">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('mer')!.invalid && (editForm.get('mer')!.dirty || editForm.get('mer')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('mer')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Gio</label> <input
|
||||||
|
type="text" class="form-control" name="gio"
|
||||||
|
formControlName="gio">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('gio')!.invalid && (editForm.get('gio')!.dirty || editForm.get('gio')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('gio')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Ven</label> <input
|
||||||
|
type="text" class="form-control" name="ven"
|
||||||
|
formControlName="ven">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('ven')!.invalid && (editForm.get('ven')!.dirty || editForm.get('ven')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('ven')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Sab</label> <input
|
||||||
|
type="text" class="form-control" name="sab"
|
||||||
|
formControlName="sab">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('sab')!.invalid && (editForm.get('sab')!.dirty || editForm.get('sab')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('sab')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Percentuale</label> <input
|
||||||
|
type="text" class="form-control" name="percentuale"
|
||||||
|
formControlName="percentuale">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('percentuale')!.invalid && (editForm.get('percentuale')!.dirty || editForm.get('percentuale')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('percentuale')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Turno</label> <input
|
||||||
|
type="text" class="form-control" name="turno"
|
||||||
|
formControlName="turno">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('turno')!.invalid && (editForm.get('turno')!.dirty || editForm.get('turno')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('turno')?.errors?.required">
|
||||||
|
This field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Ore Turno</label> <input type="text"
|
||||||
|
class="form-control" name="oreTurno" formControlName="oreTurno">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('oreTurno')!.invalid && (editForm.get('oreTurno')!.dirty || editForm.get('oreTurno')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('oreTurno')?.errors?.required"> This
|
||||||
|
field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Festivo</label> <input type="text"
|
||||||
|
class="form-control" name="festivo" formControlName="festivo">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('festivo')!.invalid && (editForm.get('festivo')!.dirty || editForm.get('festivo')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('festivo')?.errors?.required"> This
|
||||||
|
field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Notturno</label> <input type="text"
|
||||||
|
class="form-control" name="notturno" formControlName="notturno">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('notturno')!.invalid && (editForm.get('notturno')!.dirty || editForm.get('notturno')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('notturno')?.errors?.required"> This
|
||||||
|
field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-control-label">Data Mod</label> <input
|
||||||
|
type="text" class="form-control" name="dataMod"
|
||||||
|
formControlName="dataMod">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="editForm.get('dataMod')!.invalid && (editForm.get('dataMod')!.dirty || editForm.get('dataMod')!.touched)">
|
||||||
|
<small class="form-text text-danger"
|
||||||
|
*ngIf="editForm.get('dataMod')?.errors?.required"> This
|
||||||
|
field is required. </small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="persOrario">
|
||||||
|
<button type="button" class="btn btn-secondary"
|
||||||
|
(click)="previousState()">
|
||||||
|
<fa-icon icon="ban"></fa-icon>
|
||||||
|
<span>Cancel</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type="submit" [disabled]="editForm.invalid || isSaving"
|
||||||
|
class="btn btn-primary">
|
||||||
|
<fa-icon icon="save"></fa-icon>
|
||||||
|
<span>Save</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,119 @@
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { FormBuilder, Validators } from '@angular/forms';
|
||||||
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
|
||||||
|
import { PersOrario } from './persorario.model';
|
||||||
|
import { PersOrarioService } from './persorario.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'jhi-persorario-update',
|
||||||
|
templateUrl: './persorario-update.component.html',
|
||||||
|
})
|
||||||
|
export class PersOrarioUpdateComponent implements OnInit {
|
||||||
|
persOrario!: PersOrario;
|
||||||
|
isSaving = false;
|
||||||
|
|
||||||
|
editForm = this.fb.group({
|
||||||
|
id: [],
|
||||||
|
idPersona: ['', [Validators.required]],
|
||||||
|
cf: ['', [Validators.required]],
|
||||||
|
dal: ['', [Validators.required]],
|
||||||
|
al: [''],
|
||||||
|
descrizione: ['', [Validators.required]],
|
||||||
|
lun: [''],
|
||||||
|
mar: [''],
|
||||||
|
mer: [''],
|
||||||
|
gio: [''],
|
||||||
|
ven: [''],
|
||||||
|
sab: [''],
|
||||||
|
percentuale: [''],
|
||||||
|
turno: [''],
|
||||||
|
oreTurno: [''],
|
||||||
|
festivo: [''],
|
||||||
|
notturno: [''],
|
||||||
|
dataMod: ['', [Validators.required]],
|
||||||
|
});
|
||||||
|
|
||||||
|
constructor(private persOrarioService: PersOrarioService, private route: ActivatedRoute, private fb: FormBuilder) {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.route.data.subscribe(({ persOrario }) => {
|
||||||
|
if (persOrario) {
|
||||||
|
this.persOrario = persOrario;
|
||||||
|
this.updateForm(persOrario);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
previousState(): void {
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
|
||||||
|
save(): void {
|
||||||
|
this.isSaving = true;
|
||||||
|
this.updatePersOrario(this.persOrario);
|
||||||
|
if (this.persOrario.id !== undefined) {
|
||||||
|
this.persOrarioService.update(this.persOrario).subscribe(
|
||||||
|
() => this.onSaveSuccess(),
|
||||||
|
() => this.onSaveError()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.persOrarioService.create(this.persOrario).subscribe(
|
||||||
|
() => this.onSaveSuccess(),
|
||||||
|
() => this.onSaveError()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateForm(persOrario: PersOrario): void {
|
||||||
|
this.editForm.patchValue({
|
||||||
|
id: persOrario.id,
|
||||||
|
idPersona: persOrario.idPersona,
|
||||||
|
cf: persOrario.cf,
|
||||||
|
dal: persOrario.dal,
|
||||||
|
al: persOrario.al,
|
||||||
|
descrizione: persOrario.descrizione,
|
||||||
|
lun: persOrario.lun,
|
||||||
|
mar: persOrario.mar,
|
||||||
|
mer: persOrario.mer,
|
||||||
|
gio: persOrario.gio,
|
||||||
|
ven: persOrario.ven,
|
||||||
|
sab: persOrario.sab,
|
||||||
|
percentuale: persOrario.percentuale,
|
||||||
|
turno: persOrario.turno,
|
||||||
|
oreTurno: persOrario.oreTurno,
|
||||||
|
festivo: persOrario.festivo,
|
||||||
|
notturno: persOrario.notturno,
|
||||||
|
dataMod: persOrario.dataMod,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private updatePersOrario(persOrario: PersOrario): void {
|
||||||
|
persOrario.idPersona = this.editForm.get(['idPersona'])!.value;
|
||||||
|
persOrario.cf = this.editForm.get(['cf'])!.value;
|
||||||
|
persOrario.dal = this.editForm.get(['dal'])!.value;
|
||||||
|
persOrario.al = this.editForm.get(['al'])!.value;
|
||||||
|
persOrario.descrizione = this.editForm.get(['descrizione'])!.value;
|
||||||
|
persOrario.lun = this.editForm.get(['lun'])!.value;
|
||||||
|
persOrario.mar = this.editForm.get(['mar'])!.value;
|
||||||
|
persOrario.mer = this.editForm.get(['mer'])!.value;
|
||||||
|
persOrario.gio = this.editForm.get(['gio'])!.value;
|
||||||
|
persOrario.ven = this.editForm.get(['ven'])!.value;
|
||||||
|
persOrario.sab = this.editForm.get(['sab'])!.value;
|
||||||
|
persOrario.percentuale = this.editForm.get(['percentuale'])!.value;
|
||||||
|
persOrario.turno = this.editForm.get(['turno'])!.value;
|
||||||
|
persOrario.oreTurno = this.editForm.get(['oreTurno'])!.value;
|
||||||
|
persOrario.festivo = this.editForm.get(['festivo'])!.value;
|
||||||
|
persOrario.notturno = this.editForm.get(['notturno'])!.value;
|
||||||
|
persOrario.dataMod = this.editForm.get(['dataMod'])!.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private onSaveSuccess(): void {
|
||||||
|
this.isSaving = false;
|
||||||
|
this.previousState();
|
||||||
|
}
|
||||||
|
|
||||||
|
private onSaveError(): void {
|
||||||
|
this.isSaving = false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
<div>
|
||||||
|
<h2>
|
||||||
|
<span id="persorario-page-heading">Personale Orario</span>
|
||||||
|
|
||||||
|
<button class="btn btn-primary float-right jh-create-entity"
|
||||||
|
[routerLink]="['./new']">
|
||||||
|
<fa-icon icon="plus"></fa-icon>
|
||||||
|
<span>Create a new Personale Orario</span>
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<jhi-alert-error></jhi-alert-error>
|
||||||
|
|
||||||
|
<jhi-alert></jhi-alert>
|
||||||
|
|
||||||
|
<div class="table-responsive" *ngIf="persOrarioArray">
|
||||||
|
<table class="table table-striped"
|
||||||
|
aria-describedby="user-management-page-heading">
|
||||||
|
<thead>
|
||||||
|
<tr jhiSort [(predicate)]="predicate" [(ascending)]="ascending"
|
||||||
|
[callback]="transition.bind(this)">
|
||||||
|
<th scope="col" jhiSortBy="id"><span>Id</span> <fa-icon
|
||||||
|
icon="sort"></fa-icon></th>
|
||||||
|
<th scope="col"><span>Id Persona</span></th>
|
||||||
|
<th scope="col"><span>Codice Fiscale</span></th>
|
||||||
|
<th scope="col"><span>Dal</span></th>
|
||||||
|
<th scope="col"><span>Al</span></th>
|
||||||
|
<th scope="col"><span>Descrizione</span></th>
|
||||||
|
<th scope="col"><span>Data Mod</span></th>
|
||||||
|
<th scope="col"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody *ngIf="persOrarioArray">
|
||||||
|
<tr *ngFor="let persOrario of persOrarioArray; trackBy: trackIdentity">
|
||||||
|
<td><a [routerLink]="['./', persOrario.id, 'view']">{{ persOrario.id }}</a></td>
|
||||||
|
<td>{{ persOrario.idPersona }}</td>
|
||||||
|
<td>{{ persOrario.cf }}</td>
|
||||||
|
<td>{{ persOrario.dal }}</td>
|
||||||
|
<td>{{ persOrario.al }}</td>
|
||||||
|
<td>{{ persOrario.descrizione }}</td>
|
||||||
|
<td>{{ persOrario.dataMod }}</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="submit" [routerLink]="['./', persOrario.id, 'view']"
|
||||||
|
class="btn btn-info btn-sm">
|
||||||
|
<fa-icon icon="eye"></fa-icon>
|
||||||
|
<span class="d-none d-md-inline">View</span>
|
||||||
|
</button>
|
||||||
|
<button type="submit" [routerLink]="['./', persOrario.id, 'edit']"
|
||||||
|
queryParamsHandling="merge" class="btn btn-primary btn-sm">
|
||||||
|
<fa-icon icon="pencil-alt"></fa-icon>
|
||||||
|
<span class="d-none d-md-inline">Edit</span>
|
||||||
|
</button>
|
||||||
|
<button type="button" (click)="deletePersOrario(persOrario)"
|
||||||
|
class="btn btn-danger btn-sm">
|
||||||
|
<fa-icon icon="times"></fa-icon>
|
||||||
|
<span class="d-none d-md-inline">Delete</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="persOrarioArray">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<jhi-item-count [page]="page" [total]="totalItems"
|
||||||
|
[itemsPerPage]="itemsPerPage"></jhi-item-count>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<ngb-pagination [collectionSize]="totalItems" [(page)]="page"
|
||||||
|
[pageSize]="itemsPerPage" [maxSize]="5" [rotate]="true"
|
||||||
|
[boundaryLinks]="true" (pageChange)="transition()"></ngb-pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,97 @@
|
||||||
|
import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||||
|
import { HttpResponse, HttpHeaders } from '@angular/common/http';
|
||||||
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
|
import { Subscription, combineLatest } from 'rxjs';
|
||||||
|
import { ActivatedRoute, ParamMap, Router, Data } from '@angular/router';
|
||||||
|
import { JhiEventManager } from 'ng-jhipster';
|
||||||
|
|
||||||
|
import { ITEMS_PER_PAGE } from 'app/shared/constants/pagination.constants';
|
||||||
|
import { PersOrarioService } from './persorario.service';
|
||||||
|
import { PersOrario } from './persorario.model';
|
||||||
|
import { PersOrarioDeleteDialogComponent } from './persorario-delete-dialog.component';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'jhi-persorario',
|
||||||
|
templateUrl: './persorario.component.html',
|
||||||
|
})
|
||||||
|
export class PersOrarioComponent implements OnInit, OnDestroy {
|
||||||
|
persOrarioArray: PersOrario[] | null = null;
|
||||||
|
persOrarioListSubscription?: Subscription;
|
||||||
|
totalItems = 0;
|
||||||
|
itemsPerPage = ITEMS_PER_PAGE;
|
||||||
|
page!: number;
|
||||||
|
predicate!: string;
|
||||||
|
ascending!: boolean;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private persOrarioService: PersOrarioService,
|
||||||
|
private activatedRoute: ActivatedRoute,
|
||||||
|
private router: Router,
|
||||||
|
private eventManager: JhiEventManager,
|
||||||
|
private modalService: NgbModal
|
||||||
|
) {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.persOrarioListSubscription = this.eventManager.subscribe('persOrarioListModification', () => this.loadAll());
|
||||||
|
this.handleNavigation();
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
if (this.persOrarioListSubscription) {
|
||||||
|
this.eventManager.destroy(this.persOrarioListSubscription);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trackIdentity(index: number, item: PersOrario): any {
|
||||||
|
return item.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
deletePersOrario(persOrario: PersOrario): void {
|
||||||
|
const modalRef = this.modalService.open(PersOrarioDeleteDialogComponent, { size: 'lg', backdrop: 'static' });
|
||||||
|
modalRef.componentInstance.persOrario = persOrario;
|
||||||
|
}
|
||||||
|
|
||||||
|
transition(): void {
|
||||||
|
this.router.navigate(['./'], {
|
||||||
|
relativeTo: this.activatedRoute.parent,
|
||||||
|
queryParams: {
|
||||||
|
page: this.page,
|
||||||
|
sort: this.predicate + ',' + (this.ascending ? 'asc' : 'desc'),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleNavigation(): void {
|
||||||
|
combineLatest(this.activatedRoute.data, this.activatedRoute.queryParamMap, (data: Data, params: ParamMap) => {
|
||||||
|
const page = params.get('page');
|
||||||
|
this.page = page !== null ? +page : 1;
|
||||||
|
const sort = (params.get('sort') ?? data['defaultSort']).split(',');
|
||||||
|
this.predicate = sort[0];
|
||||||
|
this.ascending = sort[1] === 'asc';
|
||||||
|
this.loadAll();
|
||||||
|
}).subscribe();
|
||||||
|
}
|
||||||
|
|
||||||
|
private loadAll(): void {
|
||||||
|
this.persOrarioService
|
||||||
|
.query({
|
||||||
|
page: this.page - 1,
|
||||||
|
size: this.itemsPerPage,
|
||||||
|
sort: this.sort(),
|
||||||
|
})
|
||||||
|
.subscribe((res: HttpResponse<PersOrario[]>) => this.onSuccess(res.body, res.headers));
|
||||||
|
}
|
||||||
|
|
||||||
|
private sort(): string[] {
|
||||||
|
const result = [this.predicate + ',' + (this.ascending ? 'asc' : 'desc')];
|
||||||
|
if (this.predicate !== 'id') {
|
||||||
|
result.push('id');
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private onSuccess(persOrarioArray: PersOrario[] | null, headers: HttpHeaders): void {
|
||||||
|
this.totalItems = Number(headers.get('X-Total-Count'));
|
||||||
|
this.persOrarioArray = persOrarioArray;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
export interface IPersOrario {
|
||||||
|
id?: any;
|
||||||
|
idPersona?: any;
|
||||||
|
cf?: string;
|
||||||
|
dal?: any;
|
||||||
|
al?: any;
|
||||||
|
descrizione?: string;
|
||||||
|
lun?: any;
|
||||||
|
mar?: any;
|
||||||
|
mer?: any;
|
||||||
|
gio?: any;
|
||||||
|
ven?: any;
|
||||||
|
sab?: any;
|
||||||
|
percentuale?: any;
|
||||||
|
turno?: string;
|
||||||
|
oreTurno?: any;
|
||||||
|
festivo?: string;
|
||||||
|
notturno?: string;
|
||||||
|
dataMod?: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class PersOrario implements IPersOrario {
|
||||||
|
constructor(
|
||||||
|
public id?: any,
|
||||||
|
public idPersona?: any,
|
||||||
|
public cf?: string,
|
||||||
|
public dal?: any,
|
||||||
|
public al?: any,
|
||||||
|
public descrizione?: string,
|
||||||
|
public lun?: any,
|
||||||
|
public mar?: any,
|
||||||
|
public mer?: any,
|
||||||
|
public gio?: any,
|
||||||
|
public ven?: any,
|
||||||
|
public sab?: any,
|
||||||
|
public percentuale?: any,
|
||||||
|
public turno?: string,
|
||||||
|
public oreTurno?: any,
|
||||||
|
public festivo?: string,
|
||||||
|
public notturno?: string,
|
||||||
|
public dataMod?: any
|
||||||
|
) {}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { EpasmedSharedModule } from 'app/shared/shared.module';
|
||||||
|
import { PersOrarioComponent } from './persorario.component';
|
||||||
|
import { PersOrarioDetailComponent } from './persorario-detail.component';
|
||||||
|
import { PersOrarioUpdateComponent } from './persorario-update.component';
|
||||||
|
import { PersOrarioDeleteDialogComponent } from './persorario-delete-dialog.component';
|
||||||
|
import { persOrarioRoute } from './persorario.route';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [EpasmedSharedModule, RouterModule.forChild(persOrarioRoute)],
|
||||||
|
declarations: [PersOrarioComponent, PersOrarioDetailComponent, PersOrarioUpdateComponent, PersOrarioDeleteDialogComponent],
|
||||||
|
entryComponents: [PersOrarioComponent],
|
||||||
|
})
|
||||||
|
export class PersOrarioModule {}
|
|
@ -0,0 +1,53 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Resolve, ActivatedRouteSnapshot, Routes } from '@angular/router';
|
||||||
|
import { Observable, of } from 'rxjs';
|
||||||
|
|
||||||
|
import { PersOrario, IPersOrario } from './persorario.model';
|
||||||
|
import { PersOrarioService } from './persorario.service';
|
||||||
|
import { PersOrarioComponent } from './persorario.component';
|
||||||
|
import { PersOrarioDetailComponent } from './persorario-detail.component';
|
||||||
|
import { PersOrarioUpdateComponent } from './persorario-update.component';
|
||||||
|
|
||||||
|
@Injectable({ providedIn: 'root' })
|
||||||
|
export class PersOrarioResolve implements Resolve<IPersOrario> {
|
||||||
|
constructor(private service: PersOrarioService) {}
|
||||||
|
|
||||||
|
resolve(route: ActivatedRouteSnapshot): Observable<IPersOrario> {
|
||||||
|
const id = route.params['id'];
|
||||||
|
if (id) {
|
||||||
|
return this.service.find(id);
|
||||||
|
}
|
||||||
|
return of(new PersOrario());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const persOrarioRoute: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: PersOrarioComponent,
|
||||||
|
data: {
|
||||||
|
defaultSort: 'id,asc',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: ':id/view',
|
||||||
|
component: PersOrarioDetailComponent,
|
||||||
|
resolve: {
|
||||||
|
persOrario: PersOrarioResolve,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'new',
|
||||||
|
component: PersOrarioUpdateComponent,
|
||||||
|
resolve: {
|
||||||
|
persOrario: PersOrarioResolve,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: ':id/edit',
|
||||||
|
component: PersOrarioUpdateComponent,
|
||||||
|
resolve: {
|
||||||
|
persOrario: PersOrarioResolve,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
|
@ -0,0 +1,35 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { HttpClient, HttpResponse } from '@angular/common/http';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
|
||||||
|
import { SERVER_API_URL } from 'app/app.constants';
|
||||||
|
import { createRequestOption, Pagination } from 'app/shared/util/request-util';
|
||||||
|
import { IPersOrario } from './persorario.model';
|
||||||
|
|
||||||
|
@Injectable({ providedIn: 'root' })
|
||||||
|
export class PersOrarioService {
|
||||||
|
public resourceUrl = SERVER_API_URL + 'api/persorario';
|
||||||
|
|
||||||
|
constructor(private http: HttpClient) {}
|
||||||
|
|
||||||
|
query(req?: Pagination): Observable<HttpResponse<IPersOrario[]>> {
|
||||||
|
const options = createRequestOption(req);
|
||||||
|
return this.http.get<IPersOrario[]>(this.resourceUrl, { params: options, observe: 'response' });
|
||||||
|
}
|
||||||
|
|
||||||
|
create(persOrario: IPersOrario): Observable<IPersOrario> {
|
||||||
|
return this.http.post<IPersOrario>(this.resourceUrl, persOrario);
|
||||||
|
}
|
||||||
|
|
||||||
|
update(persOrario: IPersOrario): Observable<IPersOrario> {
|
||||||
|
return this.http.put<IPersOrario>(this.resourceUrl, persOrario);
|
||||||
|
}
|
||||||
|
|
||||||
|
find(id: string): Observable<IPersOrario> {
|
||||||
|
return this.http.get<IPersOrario>(`${this.resourceUrl}/${id}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(id: string): Observable<{}> {
|
||||||
|
return this.http.delete(`${this.resourceUrl}/${id}`);
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,16 +33,25 @@
|
||||||
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
||||||
<span>Tabs SI</span>
|
<span>Tabs SI</span>
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<a class="dropdown-item" routerLink="entities/timecardsreporting" routerLinkActive="active" (click)="collapseNavbar()">
|
<a class="dropdown-item" routerLink="entities/timecardsreporting" routerLinkActive="active" (click)="collapseNavbar()">
|
||||||
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
||||||
<span>TimeCards Reporting</span>
|
<span>Cartellini Rendicontazioni</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="dropdown-item" routerLink="entities/leaves" routerLinkActive="active" (click)="collapseNavbar()">
|
</li>
|
||||||
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
<li>
|
||||||
<span>Leaves</span>
|
<a class="dropdown-item" routerLink="entities/leaves" routerLinkActive="active" (click)="collapseNavbar()">
|
||||||
|
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
||||||
|
<span>Aspettative</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" routerLink="entities/persorario" routerLinkActive="active" (click)="collapseNavbar()">
|
||||||
|
<fa-icon icon="user" [fixedWidth]="true"></fa-icon>
|
||||||
|
<span>Pers Orario</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li *ngSwitchCase="true" ngbDropdown class="nav-item dropdown pointer" display="dynamic" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
|
<li *ngSwitchCase="true" ngbDropdown class="nav-item dropdown pointer" display="dynamic" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
|
||||||
|
@ -65,7 +74,7 @@
|
||||||
<span>Rendicontazione Singolo Cart.</span>
|
<span>Rendicontazione Singolo Cart.</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li *jhiHasAnyAuthority="'ROLE_ADMIN'">
|
||||||
<a class="dropdown-item" routerLink="operations/sync" routerLinkActive="active" (click)="collapseNavbar()">
|
<a class="dropdown-item" routerLink="operations/sync" routerLinkActive="active" (click)="collapseNavbar()">
|
||||||
<fa-icon icon="cloud" [fixedWidth]="true"></fa-icon>
|
<fa-icon icon="cloud" [fixedWidth]="true"></fa-icon>
|
||||||
<span>Sync</span>
|
<span>Sync</span>
|
||||||
|
|
|
@ -36,7 +36,6 @@ public class SyncResourceIT {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(SyncResourceIT.class);
|
private static final Logger logger = LoggerFactory.getLogger(SyncResourceIT.class);
|
||||||
|
|
||||||
|
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private static final String YEAR = "2022";
|
private static final String YEAR = "2022";
|
||||||
private static final String MONTH = "9";
|
private static final String MONTH = "9";
|
||||||
|
@ -111,24 +110,37 @@ public class SyncResourceIT {
|
||||||
DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseCaseInsensitive()
|
DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseCaseInsensitive()
|
||||||
.append(DateTimeFormatter.ISO_LOCAL_DATE_TIME).optionalStart().appendPattern(".SSSSSS").optionalEnd()
|
.append(DateTimeFormatter.ISO_LOCAL_DATE_TIME).optionalStart().appendPattern(".SSSSSS").optionalEnd()
|
||||||
.optionalStart().appendZoneOrOffsetId().optionalEnd().toFormatter();
|
.optionalStart().appendZoneOrOffsetId().optionalEnd().toFormatter();
|
||||||
//DateTimeFormatter formatterDataMod = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// DateTimeFormatter formatterDataMod = DateTimeFormatter.ofPattern("yyyy-MM-dd
|
||||||
|
// HH:mm:ss");
|
||||||
|
|
||||||
Timestamp dataMod;
|
Timestamp dataMod;
|
||||||
try {
|
try {
|
||||||
LocalDateTime dMod = LocalDateTime.parse("2021-02-03T19:49:05.231072", formatter);
|
LocalDateTime dMod = LocalDateTime.parse("2021-02-03T19:49:05.231072", formatter);
|
||||||
dMod=dMod.truncatedTo(ChronoUnit.SECONDS);
|
dMod = dMod.truncatedTo(ChronoUnit.SECONDS);
|
||||||
//dMod= LocalDateTime.parse(dMod.format(formatterDataMod));
|
// dMod= LocalDateTime.parse(dMod.format(formatterDataMod));
|
||||||
//dataMod = Timestamp.valueOf(dMod.format(formatterDataMod));
|
// dataMod = Timestamp.valueOf(dMod.format(formatterDataMod));
|
||||||
dataMod = Timestamp.valueOf(dMod);
|
dataMod = Timestamp.valueOf(dMod);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (IllegalArgumentException | DateTimeParseException e) {
|
} catch (IllegalArgumentException | DateTimeParseException e) {
|
||||||
logger.error("Invalid stamping data format: {}", e.getLocalizedMessage(), e);
|
logger.error("Invalid stamping data format: {}", e.getLocalizedMessage(), e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("Result: {}",dataMod);
|
logger.info("Result: {}", dataMod);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLocalData() throws Exception {
|
||||||
|
|
||||||
|
LocalDateTime data = LocalDateTime.now();
|
||||||
|
|
||||||
|
logger.info("Data: {}", data);
|
||||||
|
logger.info("Year: {}", data.getYear());
|
||||||
|
logger.info("Month: {}", data.getMonth());
|
||||||
|
logger.info("Month Value: {}", data.getMonthValue());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue