コード例 #1
0
        private BoqItemDefaultFormulas()
        {
            string str1  = BoqItemFormulaEvaluator.variableFromField("escalationCost");
            string str2  = BoqItemFormulaEvaluator.variableFromField("offeredPrice");
            string str3  = BoqItemFormulaEvaluator.variableFromField("totalCost");
            string str4  = BoqItemFormulaEvaluator.variableFromField("assemblyTotalCost");
            string str5  = BoqItemFormulaEvaluator.variableFromField("materialTotalCost");
            string str6  = BoqItemFormulaEvaluator.variableFromField("subcontractorTotalCost");
            string str7  = BoqItemFormulaEvaluator.variableFromField("equipmentTotalCost");
            string str8  = BoqItemFormulaEvaluator.variableFromField("laborTotalCost");
            string str9  = BoqItemFormulaEvaluator.variableFromField("consumableTotalCost");
            string str10 = BoqItemFormulaEvaluator.variableFromField("markup");
            string str11 = BoqItemFormulaEvaluator.variableFromField("productivity");
            string str12 = BoqItemFormulaEvaluator.variableFromField("prodFactor");
            string str13 = BoqItemFormulaEvaluator.variableFromField("mhoursFactor");
            string str14 = BoqItemFormulaEvaluator.variableFromField("adjustedProd");
            string str15 = BoqItemFormulaEvaluator.variableFromField("duration");
            string str16 = BoqItemFormulaEvaluator.variableFromField("unitManhours");
            string str17 = BoqItemFormulaEvaluator.variableFromField("laborManhours");
            string str18 = BoqItemFormulaEvaluator.variableFromField("rate");
            string str19 = BoqItemFormulaEvaluator.variableFromField("unit");
            string str20 = BoqItemFormulaEvaluator.variableFromField("secondRate");
            string str21 = BoqItemFormulaEvaluator.variableFromField("unitsDiv");
            string str22 = BoqItemFormulaEvaluator.variableFromField("quantity");
            string str23 = BoqItemFormulaEvaluator.variableFromField("secondQuantity");
            string str24 = BoqItemFormulaEvaluator.variableFromField("measuredQuantity");
            string str25 = BoqItemFormulaEvaluator.variableFromField("estimatedQuantity");
            string str26 = BoqItemFormulaEvaluator.variableFromField("assemblyRate");
            string str27 = BoqItemFormulaEvaluator.variableFromField("materialRate");
            string str28 = BoqItemFormulaEvaluator.variableFromField("subcontractorRate");
            string str29 = BoqItemFormulaEvaluator.variableFromField("equipmentRate");
            string str30 = BoqItemFormulaEvaluator.variableFromField("laborRate");
            string str31 = BoqItemFormulaEvaluator.variableFromField("consumableRate");
            string str32 = BoqItemFormulaEvaluator.variableFromField("fixedCost");

            this.fieldToFormulaMap["totalCost"]              = "(" + str18 + "*" + str22 + ")+" + str32;
            this.fieldToFormulaMap["offeredPrice"]           = str3 + "+" + str1 + "+" + str10;
            this.fieldToFormulaMap["quantityLoss"]           = "IF(AND(" + str24 + "<>0," + str25 + "<>0),(ABS(" + str24 + "-" + str25 + ")),0)";
            this.fieldToFormulaMap["quantity"]               = "IF(" + str24 + "<>0," + str24 + "," + str25 + ")";
            this.fieldToFormulaMap["rate"]                   = str29 + "+" + str28 + "+" + str27 + "+" + str30 + "+" + str31;
            this.fieldToFormulaMap["secondRate"]             = str18 + "*" + str21;
            this.fieldToFormulaMap["secondQuantity"]         = "IF(UNITS_DIV<>0," + str22 + "/" + str21 + ",0)";
            this.fieldToFormulaMap["secondUnit"]             = "UNIT1_TO_UNIT2(" + str19 + ")";
            this.fieldToFormulaMap["unitsDiv"]               = "UNIT1_TO_UNIT2_DIV(" + str19 + ")";
            this.fieldToFormulaMap["offeredRate"]            = "IF(" + str22 + "<>0," + str2 + "/" + str22 + ",0)";
            this.fieldToFormulaMap["offeredSecondRate"]      = "IF(" + str23 + "<>0," + str2 + "/" + str23 + ",0)";
            this.fieldToFormulaMap["productivity"]           = "IF(" + str15 + "<>0,IF(" + str12 + "<>0,(" + str22 + "/" + str15 + ")/" + str12 + "," + str22 + "/" + str15 + "),0)";
            this.fieldToFormulaMap["duration"]               = "IF(" + str14 + "<>0," + str22 + "/" + str14 + ",0)";
            this.fieldToFormulaMap["mhoursFactor"]           = "IF(" + str12 + "<>0," + '\x0001' + "/" + str12 + ",0)";
            this.fieldToFormulaMap["prodFactor"]             = "IF(" + str13 + "<>0," + '\x0001' + "/" + str13 + ",0)";
            this.fieldToFormulaMap["adjustedProd"]           = "IF(" + str12 + "<>0," + str11 + "*" + str12 + "," + str11 + ")";
            this.fieldToFormulaMap["assemblyTotalCost"]      = str26 + "*" + str22;
            this.fieldToFormulaMap["materialTotalCost"]      = str27 + "*" + str22;
            this.fieldToFormulaMap["subcontractorTotalCost"] = str28 + "*" + str22;
            this.fieldToFormulaMap["equipmentTotalCost"]     = str29 + "*" + str22;
            this.fieldToFormulaMap["laborTotalCost"]         = str30 + "*" + str22;
            this.fieldToFormulaMap["consumableTotalCost"]    = str31 + "*" + str22;
            this.fieldToFormulaMap["unitManhours"]           = "IF(" + str22 + "<>0,IF(" + str12 + "<>0,(" + str17 + "/" + str22 + ")*" + str12 + "," + str17 + "/" + str22 + "),0)";
            this.fieldToFormulaMap["adjustedUnitManhours"]   = "IF(" + str22 + "<>0," + str17 + "/" + str22 + ",0)";
        }
コード例 #2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public org.boris.expr.Expr evaluateVariable(org.boris.expr.IEvaluationContext param1IEvaluationContext, org.boris.expr.ExprVariable param1ExprVariable) throws org.boris.expr.ExprException
            public virtual Expr evaluateVariable(IEvaluationContext param1IEvaluationContext, ExprVariable param1ExprVariable)
            {
                string str1 = param1ExprVariable.Name.ToUpper();

                if (outerInstance.hasAdditionalVariable(str1))
                {
                    return(outerInstance.getAdditionalVariableValue(str1));
                }
                if (outerInstance.localVariablesMap.ContainsKey(str1))
                {
                    return(new ExprDouble(((decimal)outerInstance.localVariablesMap[str1]).doubleValue()));
                }
                string str2 = BoqItemFormulaEvaluator.fieldFromVariable(str1);

                if (string.ReferenceEquals(str2, null))
                {
                    throw new ExprException("Variable " + str1 + " not found");
                }
                object @object = outerInstance.getFieldValue(outerInstance.boqTable, str2);

                if (@object == null)
                {
                    if (BoqItemTable.isFieldDate(str2))
                    {
                        @object = Convert.ToDouble(0.0D);
                    }
                    else
                    {
                        @object = "";
                    }
                }
                ExprBoolean exprBoolean = null;

                if (@object is Number)
                {
                    exprBoolean = new ExprDouble(((Number)@object).doubleValue());
                }
                else if (@object is string)
                {
                    ExprString exprString = new ExprString(@object.ToString());
                }
                else if (@object is DateTime)
                {
                    exprBoolean = new ExprDouble(ExcelDate.toExcelDate(((DateTime)@object).Ticks));
                }
                else if (@object is bool?)
                {
                    exprBoolean = new ExprBoolean(((bool?)@object).Value);
                }
                return(exprBoolean);
            }
コード例 #3
0
            public virtual void valueChanged(Range param1Range, Expr param1Expr)
            {
                string str = BoqItemFormulaEvaluator.fieldFromVariable(param1Range.Dimension1Name);

                if (!string.ReferenceEquals(str, null) && formulaFields.Contains(str + "Formula"))
                {
                    try
                    {
                        object @object = valueFromExpression(param1Expr);
                        if (@object is decimal)
                        {
                            @object = ((decimal)@object).setScale(10, 4);
                        }
                        BlankResourceInitializer.setFieldValue(outerInstance.boqTable, str, @object);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine("CAN NOT EVALUATE: " + str + " = " + param1Expr + " = " + valueFromExpression(param1Expr));
                        Console.WriteLine(exception.ToString());
                        Console.Write(exception.StackTrace);
                    }
                }
                else
                {
                    ResourceToAssignmentTable resourceToAssignmentTable = (ResourceToAssignmentTable)outerInstance.assignmentsWithFormulasMap[param1Range.Dimension1Name];
                    if (resourceToAssignmentTable != null)
                    {
                        decimal bigDecimal = resourceToAssignmentTable.QuantityPerUnit.setScale(10, 4);
                        object  @object    = valueFromExpression(param1Expr);
                        if (@object is decimal)
                        {
                            decimal bigDecimal1 = (decimal)@object;
                            if (resourceToAssignmentTable.AssignmentResourceTable is nomitech.common.db.local.LaborTable || resourceToAssignmentTable.AssignmentResourceTable is nomitech.common.db.local.EquipmentTable)
                            {
                                bigDecimal1 = bigDecimal1 * (ProjectDBUtil.currentProjectDBUtil().Properties.getHoursFromUnit(resourceToAssignmentTable.AssignmentResourceTable.Unit));
                            }
                            bigDecimal1.setScale(10, 4);
                            if (BigDecimalMath.cmpCheckNulls(bigDecimal, bigDecimal1) != 0)
                            {
                                resourceToAssignmentTable.QuantityPerUnit = bigDecimal1;
                                outerInstance.updatedResourceToAssignmentQtyPerUnitSet.Add(resourceToAssignmentTable);
                                outerInstance.someAssignemntFormulaValueChanged = true;
                            }
                        }
                    }
                }
            }
コード例 #4
0
 private string variableFromField(string paramString)
 {
     return(BoqItemFormulaEvaluator.variableFromField(paramString));
 }