using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Net.Business.DTO.WMS.HojaRuta; using Net.Business.DTO.WMS.Picking; using Net.Business.Services.Log; using Net.Data; using Newtonsoft.Json; using System.Text; using System.Threading.Tasks; namespace Net.Business.Services.Controllers { [Route("api/[controller]")] [ApiController] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ApiExplorerSettings(GroupName = "ApiSAPWMS")] [Authorize(AuthenticationSchemes = "Bearer")] public class PickingController : ControllerBase { private readonly IRepositoryWrapper _repository; public PickingController(IRepositoryWrapper repository) { this._repository = repository; } [HttpPost] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task POST([FromBody] Dto_PickingRequest value) { if (value == null) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes("Master object is null"), "Picking", value.NumOrden, value.DocEntry.ToString(), "0", "0"); return BadRequest("Master object is null"); } if (!ModelState.IsValid) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes("Invalid model object"), "Picking", value.NumOrden, value.DocEntry.ToString(), "0", "0"); return BadRequest("Invalid model object"); } var ObjectNew = await _repository.Picking.Create(value.RetornaModelo()); if (ObjectNew.StatusCode != 200) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ObjectNew)), "Picking", value.NumOrden, value.DocEntry.ToString(), "0", "0"); return BadRequest(ObjectNew); } B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ObjectNew)), "Picking", value.NumOrden, value.DocEntry.ToString(), ObjectNew?.DocNum.ToString(), ObjectNew?.DocEntry.ToString()); return Ok(ObjectNew); } [HttpPost] [Route("[action]")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task Ruta([FromBody] Dto_HojaRuta value) { if (value == null) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes("Master object is null"), "Hoja Ruta", value.DocEntry.ToString(), value.DocEntry.ToString(), "0", "0"); return BadRequest("Master object is null"); } if (!ModelState.IsValid) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes("Invalid model object"), "Hoja Ruta", value.DocEntry.ToString(), value.DocEntry.ToString(), "0", "0"); return BadRequest("Invalid model object"); } var ObjectNew = await _repository.Picking.CreateHojaRuta(value.RetornaModelo()); if (ObjectNew.StatusCode != 200) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ObjectNew)), "Hoja Ruta", value.DocEntry.ToString(), value.DocEntry.ToString(), "0", "0"); return BadRequest(ObjectNew); } B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ObjectNew)), "Hoja Ruta", value.DocEntry.ToString(), value.DocEntry.ToString(), ObjectNew?.DocNum.ToString(), ObjectNew?.DocEntry.ToString()); return Ok(ObjectNew); } [HttpPost] [Route("HojaRuta/{docEntry}/Cerrar")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task CerrarHojaRuta(int docEntry) { var ObjectNew = await _repository.Picking.CerrarHojaRuta(docEntry); if (ObjectNew.StatusCode != 200) { B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new { docEntry })), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ObjectNew)), "Hoja Ruta", docEntry.ToString(), docEntry.ToString(), "0", "0"); return BadRequest(ObjectNew); } B_Log.Add("Cubico", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new { docEntry })), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ObjectNew)), "Hoja Ruta", docEntry.ToString(), docEntry.ToString(), ObjectNew?.DocNum.ToString(), ObjectNew?.DocEntry.ToString()); return Ok(ObjectNew); } } }