|
@@ -30,7 +30,7 @@ namespace JLHHJSvr.Helper
|
|
|
/// <summary>
|
|
|
/// 床网参数替换
|
|
|
/// </summary>
|
|
|
- public List<replacement> BendetReplace = new List<replacement>();
|
|
|
+ public List<replacement_bednet> BendetReplace = new List<replacement_bednet>();
|
|
|
public List<replacement> BendetFormulasReplace = new List<replacement>();
|
|
|
|
|
|
public List<replacement> Replacements
|
|
@@ -54,6 +54,9 @@ namespace JLHHJSvr.Helper
|
|
|
{
|
|
|
res.Add(new replacement { label = item.Key, value = item.Value, type = 0 });
|
|
|
}
|
|
|
+
|
|
|
+ string[] keys = { "车间成本", "总床垫车间成本", "不含税出厂价", "部门不含税价", "税金", "部门含税价", "外币价", "底价", "佣金" };
|
|
|
+ res = res.OrderBy(r => Array.IndexOf(keys, r.label.Replace("【", "").Replace("】", ""))).ToList();
|
|
|
foreach (var item in formula_replacements_hide)
|
|
|
{
|
|
|
res.Add(new replacement { label = item.Key, value = item.Value, type = 1 });
|
|
@@ -74,14 +77,14 @@ namespace JLHHJSvr.Helper
|
|
|
public void CalCulateFormula(u_mattress mattress, List<u_mattress_mx_mtrl> mxlist, Boolean isCalBed = true, Boolean isNewFormula = true, List<u_mattress_mx_extra> extraProcesses = null, List<u_mattress_mx_extra> extraCosts = null)
|
|
|
{
|
|
|
|
|
|
- BendetReplace = new List<replacement>();
|
|
|
+ BendetReplace = new List<replacement_bednet>();
|
|
|
BendetFormulasReplace = new List<replacement>();
|
|
|
|
|
|
InitMattress(mattress);
|
|
|
|
|
|
InitReplaceMents(mattress, isNewFormula, extraProcesses, extraCosts);
|
|
|
|
|
|
- if (isCalBed || isNewFormula) CalCulateBedNet(mxlist, isNewFormula);
|
|
|
+ if (isCalBed || isNewFormula) CalCulateBedNet(mxlist, isCalBed, isNewFormula);
|
|
|
// 实时计算价格
|
|
|
if (isCalBed)
|
|
|
{
|
|
@@ -222,6 +225,8 @@ namespace JLHHJSvr.Helper
|
|
|
|
|
|
InitMattressMxListReplaceMents(mattress, mxlist, isNewFormula);
|
|
|
|
|
|
+ string[] keys = { "车间成本", "不含税出厂价", "部门不含税价", "税金", "部门含税价", "外币价", "底价", "佣金" };
|
|
|
+
|
|
|
if (formula_replacements_hide.Count > 0)
|
|
|
{
|
|
|
foreach (var replacement in formula_replacements_hide)
|
|
@@ -230,6 +235,15 @@ namespace JLHHJSvr.Helper
|
|
|
var value = CalculateVarFormula(_key).DecimalValue;
|
|
|
AddKeyValue(_key, value);
|
|
|
}
|
|
|
+ foreach (var replacement in formula_replacements)
|
|
|
+ {
|
|
|
+ var _key = replacement.Key.Replace("【", "").Replace("】", "");
|
|
|
+ if (!keys.Contains(_key) )
|
|
|
+ {
|
|
|
+ var value = CalculateVarFormula(_key).DecimalValue;
|
|
|
+ AddKeyValue(_key, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
@@ -297,7 +311,7 @@ namespace JLHHJSvr.Helper
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void CalCulateBedNet(List<u_mattress_mx_mtrl> mxlist, Boolean isNewFormula = true)
|
|
|
+ private void CalCulateBedNet(List<u_mattress_mx_mtrl> mxlist, Boolean isCalBed = true, Boolean isNewFormula = true)
|
|
|
{
|
|
|
var bedNetHelper = HelperBase.GetHelper<BedNetHelper>(cmd, new HelperBase.Context() { tokendata = context.tokendata });
|
|
|
|
|
@@ -314,6 +328,10 @@ namespace JLHHJSvr.Helper
|
|
|
dannumType = Convert.ToInt32(value1);
|
|
|
}
|
|
|
|
|
|
+ List<replacement_bednet> rpBednet = new List<replacement_bednet>();
|
|
|
+ var bednetSumList = new List<decimal?>();
|
|
|
+
|
|
|
+ var index = 0;
|
|
|
foreach (var mx in bednetList)
|
|
|
{
|
|
|
if (mx.mtrlid <= 0) continue;
|
|
@@ -329,13 +347,36 @@ namespace JLHHJSvr.Helper
|
|
|
|
|
|
bedNetHelper.CalCulateFormula(bednet, bednetMxlist, bednetSpringList, true, true);
|
|
|
|
|
|
- BendetReplace = bedNetHelper.Replacements;
|
|
|
- BendetFormulasReplace = bedNetHelper.FormulaReplacements.Where(itm => itm.label == "【车间成本】").ToList();
|
|
|
+ var rpBednetItem = new replacement_bednet()
|
|
|
+ {
|
|
|
+ label = mx.mtrlname,
|
|
|
+ replace = bedNetHelper.Replacements
|
|
|
+ };
|
|
|
+ BendetFormulasReplace = bedNetHelper.FormulaReplacements.Where(itm => new List<int>{ 0, 1 }.Contains(itm.type.Value)).ToList();
|
|
|
+ rpBednet.Add(rpBednetItem);
|
|
|
|
|
|
- bedNetHelper.SaveBedNet(bednet, bednetMxlist, bednetSpringList);
|
|
|
+ if (isCalBed)
|
|
|
+ {
|
|
|
+ bedNetHelper.SaveBedNet(bednet, bednetMxlist, bednetSpringList);
|
|
|
+ }
|
|
|
|
|
|
- mx.price = bednet.nottax_factory_cost;
|
|
|
+ if (isNewFormula)
|
|
|
+ {
|
|
|
+ mx.price = bednet.total_cost;
|
|
|
+ AddKeyValue("床网车间成本" + (index + 1), bednet.total_cost);
|
|
|
+ bednetSumList.Add(bednet.total_cost);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ mx.price = bednet.nottax_factory_cost;
|
|
|
+ }
|
|
|
}
|
|
|
+ BendetReplace = rpBednet;
|
|
|
+
|
|
|
+
|
|
|
+ #region 总床网车间成本
|
|
|
+ AddKeyValue("总床网车间成本", bednetSumList.Sum());
|
|
|
+ #endregion
|
|
|
}
|
|
|
private void InitMattress(u_mattress mattress)
|
|
|
{
|
|
@@ -656,7 +697,7 @@ namespace JLHHJSvr.Helper
|
|
|
param.Add("@varclass", 2);
|
|
|
DbSqlHelper.SelectJoin(cmd, selectStr, ListEx.GetWhereStr(whereList), param, "varid", "varid,varkind,varcode,varname,varclass,vartype,varunit,formula", 0, 0, bednetVarList);
|
|
|
|
|
|
- string[] keys = { "车间成本", "不含税出厂价", "部门不含税价", "税金", "部门含税价", "外币价", "底价", "佣金" };
|
|
|
+ string[] keys = { "车间成本", "不含税出厂价", "部门不含税价", "税金", "部门含税价", "外币价", "底价", "佣金", "总床垫车间成本" };
|
|
|
// 添加替换公式变量
|
|
|
foreach (var netvar in bednetVarList)
|
|
|
{
|
|
@@ -1017,12 +1058,6 @@ namespace JLHHJSvr.Helper
|
|
|
#endregion
|
|
|
|
|
|
#region 计算主表 材料成本
|
|
|
-
|
|
|
- decimal dannumRate = 0;
|
|
|
- if (replacements.TryGetValue("【大小单系数】", out object value2))
|
|
|
- {
|
|
|
- dannumRate = Convert.ToDecimal(value2);
|
|
|
- }
|
|
|
var aa = new List<decimal>();
|
|
|
mxlist.ForEach(t => {
|
|
|
var _costamt = t.costamt.Value;
|
|
@@ -1045,9 +1080,14 @@ namespace JLHHJSvr.Helper
|
|
|
break;
|
|
|
}
|
|
|
#endregion
|
|
|
- }
|
|
|
|
|
|
- aa.Add(_costamt);
|
|
|
+ // 新公式排除床网计算
|
|
|
+ if (t.formulatype != 99) aa.Add(_costamt);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ aa.Add(_costamt);
|
|
|
+ }
|
|
|
});
|
|
|
mattress.total_material_cost = aa.Sum();
|
|
|
AddKeyValue("材料成本", mattress.total_material_cost);
|