Commit 04f489c8 by 泽锋 李

考虑库容的时候,需要同时考虑采购在途,暂时等数据

parent f8db4bd6
......@@ -657,28 +657,40 @@ and t1.quantity_init_advise>=0 and ( t3.buyer_name in ('张莹霞1') and t1.ware
bailun_sku_warehouse_codes = itemMaps.Select(s => s.bailun_sku_warehouse_code).ToList()
}).Where(s => s.stock > 0).ToList();
var new_datas = new List<dc_auto_purchase_advise_detailed>();
var sum_stock = item.quantity_final_advise;
//根据每个有库容的sku分摊需求
foreach (var itemMap in itemMaps)
{
var itemStorageCapacity = (skuStorageCapacityList.FirstOrDefault(s => s.bailun_sku_warehouse_code == itemMap.bailun_sku_warehouse_code) ?? new dc_base_storage_capacity() { });
if (sum_stock <= 0) break;
var usd_quantity = 0;
var skuTransit = _connection.QueryFirstOrDefault<dc_mid_transit>(" select * from dc_mid_transit where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ", new
{
bailun_sku = itemMap.bailun_sku,
warehouse_code = itemMap.warehouse_code
}) ?? new dc_mid_transit();
var itemStorageCapacity = (skuStorageCapacityList.FirstOrDefault(s => s.bailun_sku_warehouse_code == itemMap.bailun_sku_warehouse_code) ?? new dc_base_storage_capacity() { });
// 扣除采购在途,调拨采购临时,调拨暂存,调拨计划
itemStorageCapacity.stock = (itemStorageCapacity.stock - skuTransit.quantity_purchase - skuTransit.quantity_transfer_temporary_storage - skuTransit.quantity_transfer_temp_schedule - skuTransit.quantity_transfer_plan);
var use_quantity = 0;
if (itemStorageCapacity.stock >= sum_stock)
{
usd_quantity = sum_stock;
use_quantity = sum_stock;
sum_stock = 0;
}
else
{
usd_quantity = (int)Math.Ceiling(itemStorageCapacity.stock);
sum_stock -= usd_quantity;
use_quantity = (int)Math.Ceiling(itemStorageCapacity.stock);
sum_stock -= use_quantity;
}
var new_data = item.ToJson().ToObj<dc_auto_purchase_advise_detailed>();
new_data.quantity_init_advise = item.quantity_final_advise;
new_data.quantity_final_advise = usd_quantity;
new_data.quantity_final_advise = use_quantity;
new_data.mother_sku = item.bailun_sku;
new_data.product_inner_code = "";
new_data.good_sku_codes = "";
......@@ -695,6 +707,7 @@ and t1.quantity_init_advise>=0 and ( t3.buyer_name in ('张莹霞1') and t1.ware
foreach (var itemNewData in new_datas)
{
itemNewData.storage_capacity_lack_quantity = storage_capacity_lack_quantity;
itemNewData.quantity_final_advise = Math.Max(0, itemNewData.quantity_final_advise);
datas.Add(itemNewData);
}
}
......
using AutoTurnOver.Models.Base;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace AutoTurnOver.Models
......@@ -24,4 +25,181 @@ namespace AutoTurnOver.Models
public DateTime? etime { get; set; }
}
public class dc_mid_transit
{
/// <summary>
///
/// </summary>
[Description(@"")]
public int id { get; set; }
/// <summary>
/// SKU
/// </summary>
[Description(@"SKU")]
public string bailun_sku { get; set; }
/// <summary>
/// 仓库编码
/// </summary>
[Description(@"仓库编码")]
public string warehouse_code { get; set; }
/// <summary>
/// 采购在途数量
/// </summary>
[Description(@"采购在途数量")]
public int quantity_purchase { get; set; }
/// <summary>
/// 采购陆运在途数量
/// </summary>
[Description(@"采购陆运在途数量")]
public int quantity_land_purchase { get; set; }
/// <summary>
/// 采购海运在途数量
/// </summary>
[Description(@"采购海运在途数量")]
public int quantity_ocean_purchase { get; set; }
/// <summary>
/// 采购空运在途数量
/// </summary>
[Description(@"采购空运在途数量")]
public int quantity_air_purchase { get; set; }
/// <summary>
/// 采购铁路在途数量
/// </summary>
[Description(@"采购铁路在途数量")]
public int quantity_railway_purchase { get; set; }
/// <summary>
/// 采购在途数更新时间
/// </summary>
[Description(@"采购在途数更新时间")]
public DateTime gmt_purchase_modified { get; set; }
/// <summary>
/// 调拨在途数量(总:调拨单+采购临时+暂存)
/// </summary>
[Description(@"调拨在途数量(总:调拨单+采购临时+暂存)")]
public int quantity_transfer { get; set; }
/// <summary>
/// 调拨单在途
/// </summary>
[Description(@"调拨单在途")]
public int quantity_transfer_order { get; set; }
/// <summary>
/// 调拨在途 采购临时
/// </summary>
[Description(@"调拨在途 采购临时")]
public int quantity_transfer_temp_schedule { get; set; }
/// <summary>
/// 调拨在途 暂存
/// </summary>
[Description(@"调拨在途 暂存")]
public int quantity_transfer_temporary_storage { get; set; }
/// <summary>
/// 调拨计划在途数量
/// </summary>
[Description(@"调拨计划在途数量")]
public int quantity_transfer_plan { get; set; }
/// <summary>
/// 调拨陆运在途数量
/// </summary>
[Description(@"调拨陆运在途数量")]
public int quantity_land_transfer { get; set; }
/// <summary>
/// 调拨海运在途数量
/// </summary>
[Description(@"调拨海运在途数量")]
public int quantity_ocean_transfer { get; set; }
/// <summary>
/// 调拨空运在途数量
/// </summary>
[Description(@"调拨空运在途数量")]
public int quantity_air_transfer { get; set; }
/// <summary>
/// 调拨铁路在途数量
/// </summary>
[Description(@"调拨铁路在途数量")]
public int quantity_railway_transfer { get; set; }
/// <summary>
/// 调拨在途数更新时间
/// </summary>
[Description(@"调拨在途数更新时间")]
public DateTime gmt_transfer_modified { get; set; }
/// <summary>
/// 缺货数量
/// </summary>
[Description(@"缺货数量")]
public int quantity_out_stock { get; set; }
/// <summary>
/// 缺货数更新时间
/// </summary>
[Description(@"缺货数更新时间")]
public DateTime gmt_out_stock_modified { get; set; }
/// <summary>
/// 未发货数量
/// </summary>
[Description(@"未发货数量")]
public int quantity_unshipped { get; set; }
/// <summary>
/// 未发货数更新时间
/// </summary>
[Description(@"未发货数更新时间")]
public DateTime gmt_unshipped_modified { get; set; }
/// <summary>
/// 公司Id,0和1是百伦
/// </summary>
[Description(@"公司Id,0和1是百伦")]
public int company_id { get; set; }
/// <summary>
/// 采购在途金额 = sum(采购单单价 * 采购单数量)
/// </summary>
[Description(@"采购在途金额 = sum(采购单单价 * 采购单数量)")]
public decimal amount_purchase_transit { get; set; }
/// <summary>
/// 未发货订单号
/// </summary>
[Description(@"未发货订单号")]
public string bailun_order_ids { get; set; }
/// <summary>
/// 速卖通缺货
/// </summary>
[Description(@"速卖通缺货")]
public int quantity_out_stock_aliexpress { get; set; }
/// <summary>
/// 亚马逊缺货
/// </summary>
[Description(@"亚马逊缺货")]
public int quantity_out_stock_amazon { get; set; }
/// <summary>
/// 其他平台的需求
/// </summary>
[Description(@"其他平台的需求")]
public int quantity_out_stock_other { get; set; }
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment