using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_IOutboundService;
using WIDESEA_Model.Models;
namespace WIDESEA_WMSServer.Controllers.Outbound
{
    /// 
    /// 成品出库单
    /// 
    [Route("api/ProOutOrder")]
    [ApiController]
    public class ProOutOrderController : ApiBaseController
    {
        public ProOutOrderController(IProOutOrderService service) : base(service)
        {
        }
        /// 
        /// 成品出待发货区(平库)+同步ERP出库
        /// 
        /// 
        [HttpPost, HttpGet, Route("OutProductPK"), AllowAnonymous]
        public WebResponseContent OutProductPK([FromBody] SaveModel saveModel, string ProOutNo)
        {
            return Service.OutProductPK(saveModel, ProOutNo);
        }
        ///// 
        ///// 成品出待发货区(平库)+同步ERP出库(未绑定出库单库存)
        ///// 
        ///// 
        //[HttpPost, Route("OutProductNoPK"), AllowAnonymous]
        //public WebResponseContent OutProductNoPK(string[] OutPKCodes, string ProOutNo)
        //{
        //    return Service.OutProductNoPK(OutPKCodes, ProOutNo);
        //}
        /// 
        /// 查询出库单信息
        /// 
        [HttpPost, HttpGet, Route("GetProOutOrders")]
        public WebResponseContent GetProOutOrders([FromBody] SaveModel saveModel)
        {
            return Service.GetProOutOrders(saveModel);
        }
        /// 
        /// 查询明细
        /// 
        [HttpPost, HttpGet, Route("GetOrderDetails")]
        public WebResponseContent GetOrderDetails(int keyId)
        {
            return Service.GetOrderDetails(keyId);
        }
        /// 
        /// 检查
        /// 
        [HttpPost, HttpGet, Route("CheckCode")]
        public WebResponseContent CheckCode(string code)
        {
            return WebResponseContent.Instance.OK();
        }
        /// 
        /// 查询ERP订单扣除库存数量
        /// 
        [HttpPost, HttpGet, Route("OutProErpSync")]
        public WebResponseContent OutProErpSync(string outProOrderNo)
        {
            return Service.OutProErpSync(outProOrderNo);
        }
        /// 
        /// 出库单扫码同步ERP
        /// 
        /// 
        [HttpPost, HttpGet, Route("OutProScanCodeSync")]
        public async Task OutProScanCodeSync([FromBody]SaveModel saveModel)
        {
            return await Service.OutProScanCodeSync(saveModel);
        }
    }
}