Переглянути джерело

核价后台:1、床网报价显示弹簧成本公式

chen_yjin 1 день тому
батько
коміт
85b9cf601b
1 змінених файлів з 44 додано та 15 видалено
  1. 44 15
      JLHHJSvr/Helper/BedNetHelper.cs

+ 44 - 15
JLHHJSvr/Helper/BedNetHelper.cs

@@ -186,6 +186,7 @@ namespace JLHHJSvr.Helper
                 #region 计算 弹簧材料总成本 开始
                 if (!string.IsNullOrEmpty(bednet.spring_mtrl_formula))
                 {
+                    var _formula = bednet.spring_mtrl_formula;
                     mx.spring_mtrl_cost_replace_formula = bednet.spring_mtrl_formula;
                     if (mx.if_part == 0)
                     {
@@ -222,6 +223,11 @@ namespace JLHHJSvr.Helper
                         {
                             decimal? _rate = GetSumhaoRate(0);
                             bednet.spring_mtrl_cost += mx.spring_mtrl_cost * (1 + _rate);
+                            if (_rate != 0)
+                            {
+                                _formula = "(" + _formula + ")" + "x" + "【弹簧损耗率】";
+                                AddKeyValue("弹簧损耗率", (1 + _rate));
+                            }
                         }
                         else
                         {
@@ -234,13 +240,15 @@ namespace JLHHJSvr.Helper
                         mx.spring_mtrl_cost = 0;
                         decimal? _rate = GetSumhaoRate(0);
                         //多分区
+                        var index = 1;
                         foreach (var springItem in springList)
                         {
+                            _formula = bednet.spring_mtrl_formula;
                             springItem.spring_mtrl_cost_replace_formula = bednet.spring_mtrl_formula;
-                            CalSpringMtrlCol(bednet, mx, springItem);
+                            CalSpringMtrlCol(bednet, mx, springItem,ref _formula, index);
 
                             var rp_formula = "";
-                            springItem.spring_mtrl_cost = Calculate(springItem.spring_mtrl_cost_replace_formula, out rp_formula, "弹簧材料总成本").DecimalValue;
+                            springItem.spring_mtrl_cost = Calculate(_formula, out rp_formula, "弹簧材料总成本").DecimalValue;
                             springItem.spring_mtrl_cost_replace_formula = rp_formula;
                             mx.spring_mtrl_cost += springItem.spring_mtrl_cost;
 
@@ -248,12 +256,20 @@ namespace JLHHJSvr.Helper
                             if (isNewFormula)
                             {
                                 bednet.spring_mtrl_cost += springItem.spring_mtrl_cost * (1 + _rate);
+                                if (_rate != 0)
+                                {
+                                    _formula = "(" + _formula + ")" + "x" + "【弹簧损耗率】";
+                                    AddKeyValue("弹簧损耗率", (1 + _rate));
+                                }
                             }
                             else
                             {
                                 bednet.spring_mtrl_cost += springItem.spring_mtrl_cost;
                             }
                             #endregion
+                            AddFormulaMxKeyValue("【" + index + "弹簧材料总成本】", _formula, true);
+
+                            index++;
                         }
                     }
 
@@ -263,7 +279,7 @@ namespace JLHHJSvr.Helper
                     AddKeyValue("弹簧计算个数(长)", mx.spring_qty_length);
 
                     AddKeyValue("弹簧材料总成本", bednet.spring_mtrl_cost);
-                    AddFormulaMxKeyValue("【弹簧材料总成本】", bednet.spring_mtrl_formula, true, 1);
+                    AddFormulaMxKeyValue("【弹簧材料总成本】", _formula, true);
                 }
                 #endregion 计算 弹簧材料总成本 结束
 
@@ -277,7 +293,7 @@ namespace JLHHJSvr.Helper
                     mx.spring_hr_cost_replace_formula = rp_formula;
                     bednet.spring_hr_cost += mx.spring_hr_cost;
                     AddKeyValue("弹簧总人工成本", bednet.spring_hr_cost);
-                    AddFormulaMxKeyValue("【弹簧总人工成本】", bednet.spring_hr_formula, true, 1);
+                    AddFormulaMxKeyValue("【弹簧总人工成本】", bednet.spring_hr_formula, true);
                 }
                 #endregion 计算 弹簧人工总成本 结束
 
@@ -883,15 +899,21 @@ namespace JLHHJSvr.Helper
                     }
                     else
                     {
+                        var index = 1;
                         //多分区
                         foreach (var springItem in springList)
                         {
+                            var _formula = bednet.spring_weight_formula;
                             springItem.spring_weight_replace_formula = bednet.spring_weight_formula;
-                            CalSpringMtrlCol(bednet, mx, springItem);
+                            CalSpringMtrlCol(bednet, mx, springItem,ref _formula, index);
 
                             var rp_formula = "";
-                            bednet.spring_weight_qty += Calculate(springItem.spring_weight_replace_formula, out rp_formula, "钢丝重量").DecimalValue;
+                            bednet.spring_weight_qty += Calculate(_formula, out rp_formula, "钢丝重量").DecimalValue;
                             springItem.spring_weight_replace_formula = rp_formula;
+
+                            AddFormulaWeightKeyValue("【" + index + "钢丝重量】", _formula, true);
+
+                            index++;
                         }
                     }
                     AddKeyValue("弹簧排列个数-宽", mx.spring_qty_width);
@@ -900,7 +922,7 @@ namespace JLHHJSvr.Helper
                     AddKeyValue("弹簧计算个数(长)", mx.spring_qty_length);
 
                     AddKeyValue("钢丝重量", bednet.spring_weight_qty);
-                    AddFormulaWeightKeyValue("【钢丝重量】", bednet.spring_weight_formula, true, 1);
+                    AddFormulaWeightKeyValue("【钢丝重量】", bednet.spring_weight_formula, true);
                 }
                 else
                 {
@@ -1349,12 +1371,16 @@ namespace JLHHJSvr.Helper
         /// <param name="dept"></param>
         /// <param name="mx"></param>
         /// <param name="mx2"></param>
-        private void CalSpringMtrlCol(u_bednet bednet, u_bednetmx mx, u_bednetmx_spring mx2)
+        private void CalSpringMtrlCol(u_bednet bednet, u_bednetmx mx, u_bednetmx_spring mx2,ref string formula, int index)
         {
-            AddKeyValue("弹簧排列个数-宽", mx2.spring_qty_width);
-            AddKeyValue("弹簧排列个数-长", mx2.spring_qty_length);
-            AddKeyValue("弹簧计算个数(宽)", mx2.spring_qty_width);
-            AddKeyValue("弹簧计算个数(长)", mx2.spring_qty_length);
+            AddKeyValue(index + "弹簧排列个数-宽", mx2.spring_qty_width);
+            AddKeyValue(index + "弹簧排列个数-长", mx2.spring_qty_length);
+            AddKeyValue(index + "弹簧计算个数(宽)", mx2.spring_qty_width);
+            AddKeyValue(index + "弹簧计算个数(长)", mx2.spring_qty_length);
+            formula = formula.Replace("【弹簧排列个数-宽】", "【" + index +"弹簧排列个数-宽】");
+            formula = formula.Replace("【弹簧排列个数-长】", "【" + index + "弹簧排列个数-长】");
+            formula = formula.Replace("【弹簧计算个数(宽)】", "【" + index + "弹簧计算个数(宽)】");
+            formula = formula.Replace("【弹簧计算个数(长)】", "【" + index + "弹簧计算个数(长)】");
             AddKeyValue("边铁条数", mx.side_iron_qty);
             AddKeyValue("条数", mx.side_iron_qty);
 
@@ -1364,8 +1390,10 @@ namespace JLHHJSvr.Helper
             spring.gram_weight /= 1000;
             if (spring.gram_weight > 0)
             {
-                AddKeyValue("弹簧重/个", spring.gram_weight);
-                AddKeyValue("弹簧重", spring.gram_weight);
+                AddKeyValue(index + "弹簧重/个", spring.gram_weight);
+                AddKeyValue(index + "弹簧重", spring.gram_weight);
+                formula = formula.Replace("【弹簧重/个】", "【" + index + "弹簧重/个】");
+                formula = formula.Replace("【弹簧重】", "【" + index + "弹簧重】");
             }
 
             cmd.CommandText = @"SELECT TOP 1 isnull(u_mtrl_price_pricelist.price, 0) AS price
@@ -1390,7 +1418,8 @@ namespace JLHHJSvr.Helper
 
             if (price > 0)
             {
-                AddKeyValue("弹簧单价", price);
+                AddKeyValue(index + "弹簧单价", price);
+                formula = formula.Replace("【弹簧单价】", "【" + index + "弹簧单价】");
             }
         }