using Autofac.Core;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_Core.CodeConfigEnum;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Outbound;
using WIDESEA_IOutboundService;
using WIDESEA_Model.Models;
namespace WIDESEA_WMSServer.Controllers.Outbound
{
    /// 
    /// 出库单
    /// 
    [Route("api/OutboundOrder")]
    [ApiController]
    public class OutboundOrderController : ApiBaseController
    {
        public OutboundOrderController(IOutboundOrderService service) : base(service)
        {
        }
        /// 
        /// 
        /// 
        /// 
        /// 
        [HttpPost, Route("TestOutUpload"), AllowAnonymous]
        public WebResponseContent TestOutUpload(int id)
        {
            return Service.TestOutUpload(id);
        }
        /// 
        /// 获取出库单
        /// 
        /// 
        /// 
        [HttpPost, Route("GetOutboundOrders"), AllowAnonymous]
        public WebResponseContent GetOutboundOrders([FromBody] SaveModel saveModel)
        {
            return Service.GetOutboundOrders(saveModel);
        }
        /// 
        /// 出平库库存
        /// 
        /// 
        /// 
        [HttpPost, Route("outpinku"), AllowAnonymous]
        public WebResponseContent outpinku([FromBody] SaveModel saveModel)
        {
            return Service.outpinku(saveModel);
        }
        /// 
        /// 发料单号生成
        /// 
        /// 
        [HttpPost, Route("CreateCodeByRule"), AllowAnonymous]
        public string CreateCodeByRule(string ruleCode)
        {
            return Service.CreateCodeByRule(nameof(RuleCodeEnum.FLCodeRule));
        }
        /// 
        /// 使用出库单完成ERP出库推送
        /// 
        /// 出库单ID
        /// 仓库代号
        /// 
        [HttpPost, Route("PushERPOutBound"), AllowAnonymous]
        public WebResponseContent PushERPOutBound(int outId, string WarehouseCode)
        {
            return Service.PushERPOutBound(outId, WarehouseCode);
        }
        /// 
        /// 使用根据上游领料出库单号获取日志发料单号
        /// 
        [HttpPost, Route("OutUpOrderGetFLOrder"), AllowAnonymous]
        public WebResponseContent OutUpOrderGetFLOrder()
        {
            return Service.OutUpOrderGetFLOrder();
        }
    }
}