113 lines
3.5 KiB
C#
113 lines
3.5 KiB
C#
using GPW.CORE.Data.DbModels;
|
|
using GPW.CORE.Data.DTO;
|
|
using GPW.CORE.Dto;
|
|
using GPW.CORE.Smart10.Data;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace GPW.CORE.Smart10.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class TimbratureController : ControllerBase
|
|
{
|
|
#region Public Constructors
|
|
|
|
public TimbratureController(CoreSmartDataService dataService)
|
|
{
|
|
_dataService = dataService;
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
[HttpDelete("{uid}")]
|
|
public async Task<ActionResult<bool>> Delete([FromRoute] string uid)
|
|
{
|
|
bool result = false;
|
|
// in primis ricerco il record...
|
|
var dbRec = await _dataService.TimbratureByUidAsync(uid);
|
|
// se trovato elimino!
|
|
if (dbRec != null)
|
|
{
|
|
result = await _dataService.TimbratureDelete(dbRec);
|
|
}
|
|
return Ok(result);
|
|
}
|
|
|
|
[HttpGet("daily-details")]
|
|
public async Task<ActionResult<List<DailyDataDTO>>> GetDailyDetails([FromQuery] int idxDip, [FromQuery] DateTime dtInizio, [FromQuery] DateTime dtFine)
|
|
{
|
|
var result = await _dataService.DailyDetails(idxDip, dtInizio, dtFine);
|
|
return Ok(result);
|
|
}
|
|
|
|
[HttpGet("day")]
|
|
public async Task<ActionResult<List<TimbraturaDto>>> GetDay([FromQuery] DateTime dateRif, [FromQuery] int idxDip)
|
|
{
|
|
var models = await _dataService.TimbratureDay(dateRif, idxDip);
|
|
return Ok(models.Select(MapToDto).ToList());
|
|
}
|
|
|
|
[HttpGet("richieste")]
|
|
public async Task<ActionResult<List<TimbraturaDto>>> GetRichieste()
|
|
{
|
|
var models = await _dataService.TimbratureRichieste();
|
|
return Ok(models.Select(MapToDto).ToList());
|
|
}
|
|
|
|
[HttpPost("delete")]
|
|
public async Task<ActionResult<bool>> PostDelete([FromBody] TimbraturaDto dto)
|
|
{
|
|
var model = MapToModel(dto);
|
|
var result = await _dataService.TimbratureDelete(model);
|
|
return Ok(result);
|
|
}
|
|
|
|
[HttpPost("ins-richiesta")]
|
|
public async Task<ActionResult<bool>> PostInsRichiesta([FromBody] TimbraturaDto dto)
|
|
{
|
|
var model = MapToModel(dto);
|
|
var result = await _dataService.TimbratureInsRichiesta(model);
|
|
return Ok(result);
|
|
}
|
|
|
|
[HttpPost("update")]
|
|
public async Task<ActionResult<bool>> PostUpdate([FromBody] TimbraturaDto dto)
|
|
{
|
|
var model = MapToModel(dto);
|
|
var result = await _dataService.TimbratureUpdate(model);
|
|
return Ok(result);
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Private Fields
|
|
|
|
private readonly CoreSmartDataService _dataService;
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Private Methods
|
|
|
|
private TimbraturaDto MapToDto(TimbratureModel model) => new TimbraturaDto
|
|
{
|
|
DataOra = model.DataOra,
|
|
IdxDipendente = model.IdxDipendente,
|
|
Entrata = model.Entrata,
|
|
CodTipoTimb = model.CodTipoTimb,
|
|
Approv = model.Approv
|
|
};
|
|
|
|
private TimbratureModel MapToModel(TimbraturaDto dto) => new TimbratureModel
|
|
{
|
|
DataOra = dto.DataOra,
|
|
IdxDipendente = dto.IdxDipendente,
|
|
Entrata = dto.Entrata,
|
|
CodTipoTimb = dto.CodTipoTimb,
|
|
Approv = dto.Approv
|
|
};
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |