using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_DTO.Inbound;
using WIDESEA_IInboundService;
using WIDESEA_Model.Models;
namespace WIDESEA_WMSServer.Controllers.Inbound
{
    /// 
    /// 入库单
    /// 
    [Route("api/InboundOrder")]
    [ApiController]
    public class InboundOrderController : ApiBaseController
    {
        public InboundOrderController(IInboundOrderService service) : base(service)
        {
        }
        /// 
        /// 查询入库单信息
        /// 
        /// 
        [HttpPost, HttpGet, Route("GetInboundOrders")]
        public WebResponseContent GetInboundOrders([FromBody] SaveModel saveModel)
        {
            return Service.GetInboundOrders(saveModel);
        }
        /// 
        /// 入平库
        /// 
        /// 
        /// 
        /// 
        /// 
        [HttpPost, HttpGet, Route("InPinKu")]
        public WebResponseContent InPinKu(string orderNo, int warehouseId, [FromBody] List serNums)
        {
            return Service.InPinKu(orderNo, warehouseId, serNums);
        }
        /// 
        /// 单个物料码组盘
        /// 
        /// 
        /// 
        /// 
        /// 
        [HttpPost, HttpGet, Route("MaterielGroupSingle")]
        public WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum)
        {
            return Service.MaterielGroup(inboundOrderId, palletCode, serNum);
        }
        /// 
        /// 多个物料码组盘
        /// 
        /// 
        /// 
        /// 
        /// 
        //[HttpPost, HttpGet, Route("MaterielGroup")]
        //public WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, List serNums)
        //{
        //    return Service.MaterielGroup(inboundOrderId, palletCode, serNums);
        //}
        /// 
        /// 
        /// 
        /// 
        /// 
        [HttpPost, HttpGet, Route("MaterielGroup")]
        public WebResponseContent MaterielGroup([FromBody] SaveModel saveModel)
        {
            return Service.MaterielGroup(saveModel);
        }
        ///// 
        ///// 入库完成后回传ERP
        ///// 
        ///// 
        ///// 
        //[HttpPost, HttpGet, Route("FeedbackInboundOrder")]
        //public WebResponseContent FeedbackInboundOrder(int id)
        //{
        //    return Service.FeedbackInboundOrder(id);
        //}
        /// 
        /// 无入库单组盘
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        [HttpPost, HttpGet, Route("ManualMaterielGroup")]
        public WebResponseContent MaterielGroup(string palletCode, int initiallife, int warehouseId, [FromBody] List serNums)
        {
            return Service.MaterielGroup(palletCode, initiallife, warehouseId, serNums);
        }
    }
}