public async Task <IActionResult> CrearRemision([FromBody] RemisionDTO remision) { try { return(Ok(await _service.CrearRemision(remision, new UsuarioDTO()))); } catch (Exception e) { return(BadRequest(e)); } }
public async Task <Guid> CrearRemision(RemisionDTO remision, UsuarioDTO usuario) { try { _parametros.guidsOrdenTrabajo = remision.guidOrdenTrabajo; _parametros.usuario = usuario; _parametros.estadoOIT = CanonicalConstants.Estados.OrdenTrabajo.RemisionPendiente; //valida si las ordenes de trabajo tiene el estado en Remisión if (await _consultarOrdenTrabajo.Execute(_parametros)) { // Valida que las ordenes de trabajo tengas el mismo cliente y linea if (await _validarClienteYLineas.Execute(_parametros)) { //crear el modelo de remision con la remision detalle _parametros.remision = await _crearRemisionDetalle.Execute(_parametros); //crear la remisión retorna el guid de la remisión creada _parametros.guidRemision = await _crearRemision.Execute(_parametros); if (Guid.Empty != _parametros.guidRemision || _parametros.guidRemision != null) { //actualiza el estado de las ordenes de trabajo var actualizo = await _actualizarEstadosOrdenesDeTrabajo.Execute(_parametros); } } else { throw new ApplicationException("Todas las oit deben pertecer al mismo cliente y linea"); } } else { throw new ApplicationException("Alguna OIT no se encuentra en estado remisión"); } return(_parametros.guidRemision); } catch (Exception) { throw; } }