public async Task <IActionResult> CrearRemision([FromBody] RemisionDTO remision)
 {
     try
     {
         return(Ok(await _service.CrearRemision(remision, new UsuarioDTO())));
     }
     catch (Exception e)
     {
         return(BadRequest(e));
     }
 }
Exemplo n.º 2
0
        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;
            }
        }