コード例 #1
0
        public virtual object clone()
        {
            //if ( o_map == null ) o_map = new HashMap();

            BoqItemConditionTable obj = new BoqItemConditionTable();

            obj.ParamItemId        = ParamItemId;
            obj.BoqItemConditionId = BoqItemConditionId;
            obj.SelectedUnit       = SelectedUnit;
            obj.FinalQuantity      = FinalQuantity;
            obj.Factor1            = Factor1;
            obj.Factor2            = Factor2;
            obj.Sumup             = Sumup;
            obj.LastUpdate        = LastUpdate;
            obj.OverridenQuantity = OverridenQuantity;
            obj.OverridenUnit     = OverridenUnit;
            obj.ProjectId         = ProjectId;

            if (BoqItemTable != null)
            {
                obj.BoqItemTable = (BoqItemTable)BoqItemTable.clone();
            }

            if (ConditionTable != null)
            {
                obj.ConditionTable = (ConditionTable)ConditionTable.clone();
            }

            return(obj);
        }
コード例 #2
0
        public static IDictionary <long, DatabaseTable> deepLoadBoqItemsMap(UIProgress prgDialog, Session session, long?projectId, string qs, Type bindClass, bool fetchResources, bool fetchConditions, bool fetchQuoteItems, bool cyclic, bool fetchPredicted, System.Collections.IList ids, bool nullifyId)
        {
            if (ids.Count == 0)
            {
                return(Collections.EMPTY_MAP);
            }
            IList <LevelDetails> levelDetailsList = fetchBoqItemAssignments(session, projectId, fetchResources, fetchConditions, fetchQuoteItems, cyclic, fetchPredicted, ids);
            //System.out.println("LEVEL IS "+levelDetailsList.size()+" deep.");
            ICollection <BaseTable> boqs = listBaseTableQuery(prgDialog, session, projectId, qs, bindClass, ids, false);
            //List<BoqItemTable> boqs = session.createQuery(qs).setCacheable(false).setParameterList("ids", ids).list();
            IDictionary <long, DatabaseTable> resultMap = new Dictionary <long, DatabaseTable>(boqs.Count);

            foreach (BaseTable dbBt in boqs)
            {
                BoqItemTable dbBoq = (BoqItemTable)dbBt;
                BoqItemTable boq   = (BoqItemTable)dbBoq.clone();

                if (dbBoq.ParamItemTable != null)
                {
                    boq.ParamItemTable = (ParamItemTable)dbBoq.ParamItemTable.clone();
                }

                deepFillResourceItem(levelDetailsList, boq, cyclic, 0, nullifyId);

                resultMap[boq.Id] = boq;
            }
            //System.out.println("QUERY IS: "+qs);
            return(resultMap);
        }
コード例 #3
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public BoqItemDependencyEngine(nomitech.common.db.project.BoqItemTable paramBoqItemTable, String paramString) throws org.boris.expr.ExprException
        public BoqItemDependencyEngine(BoqItemTable paramBoqItemTable, string paramString)
        {
            this.currentField = paramString;
            this.boqTable     = paramBoqItemTable;
            this.provider     = new BoqItemEngineProvider(this);
            AutoCalculate     = false;
            reloadVariables();
        }
コード例 #4
0
        public virtual decimal calculateFinalRate()
        {
            decimal fRate = finalRate;

            BoqItemTable boqItemTable = BoqItemTable;

            if (BoqItemTable != null)
            {
                decimal tUnits = BigDecimalMath.ONE;
                tUnits = boqItemTable.Quantity;

                tUnits = tUnits * Factor1;
                tUnits = tUnits * Factor2;
                tUnits = tUnits * Factor3;
                tUnits = tUnits * QuantityPerUnit;

                totalUnits = tUnits;
            }

            if (BoqItemTable != null && ConsumableTable != null)
            {
                decimal consumableRate = ConsumableTable.RateForCalculation * ExchangeRate;
                consumableRate = consumableRate * LocalFactor;
                //			if ( getBoqItemTable().getHasProductivity() || getBoqItemTable().getQuantity().compareTo(BigDecimalMath.ZERO) <= 0 ) {
                fRate = consumableRate * Factor1;
                fRate = fRate * Factor2;
                fRate = fRate * Factor3;
                fRate = fRate * QuantityPerUnit;
                fRate = fRate * LocalFactor;

                //			}
                //			else { // Total Units Method:
                //				fRate = consumableRate.multiply(getTotalUnits());
                //				try {
                //					fRate = BigDecimalMath.div(fRate,getBoqItemTable().getQuantity());
                //				} catch(ArithmeticException ex) {
                //					fRate = BigDecimalMath.ZERO;
                //				}
                //			}

                // Calculate Variable, Total Cost:
                variableCost = fRate * (BoqItemTable.Quantity);

                totalCost = decimal.Zero;
                totalCost = totalCost + variableCost;
                totalCost = totalCost + FinalFixedCost;

                // Avoid precision/scale updates if data is the same:
                variableCost = variableCost.setScale(10, decimal.ROUND_HALF_DOWN);
                totalCost    = totalCost.setScale(10, decimal.ROUND_HALF_UP);
                fRate        = fRate.setScale(10, decimal.ROUND_HALF_UP);
                totalUnits   = totalUnits.setScale(10, decimal.ROUND_HALF_UP);
            }

            finalRate = fRate;
            return(fRate);
        }
コード例 #5
0
        public virtual object clone(bool relations)
        {
            BoqItemMaterialTable obj = new BoqItemMaterialTable();

            obj.ParamItemId          = ParamItemId;
            obj.BoqItemMaterialId    = BoqItemMaterialId;
            obj.FinalRate            = FinalRate;
            obj.FinalMaterialRate    = FinalMaterialRate;
            obj.FinalFabricationRate = FinalFabricationRate;
            obj.FinalShipmentRate    = FinalShipmentRate;
            obj.FinalEscalationRate  = FinalEscalationRate;
            obj.Escalation           = Escalation;
            obj.TotalMaterialCost    = TotalMaterialCost;
            obj.TotalFabricationCost = TotalFabricationCost;
            obj.TotalShipmentCost    = TotalShipmentCost;
            obj.TotalEscalationCost  = TotalEscalationCost;
            obj.TotalCost            = TotalCost;
            obj.Factor1 = Factor1;
            obj.Factor2 = Factor2;
            obj.Factor3 = Factor3;

            obj.QuantityPerUnit             = QuantityPerUnit;
            obj.QuantityPerUnitFormula      = QuantityPerUnitFormula;
            obj.QuantityPerUnitFormulaState = QuantityPerUnitFormulaState;

            obj.TotalUnits         = TotalUnits;
            obj.HasUserTotalUnits  = HasUserTotalUnits;
            obj.ExchangeRate       = ExchangeRate;
            obj.LocalFactor        = LocalFactor;
            obj.LocalCountry       = LocalCountry;
            obj.LocalStateProvince = LocalStateProvince;
            obj.LastUpdate         = LastUpdate;

            obj.FixedCost      = FixedCost;
            obj.FinalFixedCost = FinalFixedCost;
            obj.VariableCost   = VariableCost;
            obj.Comment        = Comment;

            obj.PvVars = PvVars;

            obj.ProjectId = ProjectId;

            if (relations)
            {
                if (BoqItemTable != null)
                {
                    obj.BoqItemTable = (BoqItemTable)BoqItemTable.clone();
                }

                if (MaterialTable != null)
                {
                    obj.MaterialTable = (MaterialTable)MaterialTable.clone();
                }
            }

            return(obj);
        }
コード例 #6
0
        public virtual BoqItemTable[] getBoqItemsDeepCopy(bool ciclic)
        {
            BoqItemTable[] copy = new BoqItemTable[_o_items.Length];
            for (int i = 0; i < _o_items.Length; i++)
            {
                copy[i] = (BoqItemTable)_o_items[i].deepCopy(ciclic);
            }

            return(copy);
        }
コード例 #7
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public void calculate(boolean paramBoolean) throws org.boris.expr.ExprException
        public override void calculate(bool paramBoolean)
        {
            if (this.autoCalculate && !paramBoolean)
            {
                return;
            }
            this.graph.sort();
            IDictionary <string, ResourceToAssignmentTable> .KeyCollection hashSet = new HashSet <object>(this.assignmentsWithFormulasMap.Keys);
            foreach (Range range in this.graph)
            {
                string str   = range.Dimension1Name;
                bool   @bool = hashSet.contains(str);
                if (@bool)
                {
                    hashSet.remove(str);
                }
                Expr expr = (Expr)this.inputs[range];
                if (expr is ExprEvaluatable)
                {
                    if (@bool)
                    {
                        CurrentField = "QTYPUNITFORM";
                        ResourceToAssignmentTable resourceToAssignmentTable = (ResourceToAssignmentTable)this.assignmentsWithFormulasMap[str];
                        if (resourceToAssignmentTable.getResourceTable() is AssemblyTable)
                        {
                            AssemblyTable assemblyTable = (AssemblyTable)resourceToAssignmentTable.getResourceTable();
                            loadLocalVariables(assemblyTable.Vars);
                        }
                        else if (resourceToAssignmentTable.getResourceTable() is BoqItemTable)
                        {
                            BoqItemTable boqItemTable = (BoqItemTable)resourceToAssignmentTable.getResourceTable();
                            loadLocalVariables(boqItemTable.Vars);
                        }
                    }
                    Expr expr1 = ((ExprEvaluatable)expr).evaluate(this);
                    this.provider.valueChanged(range, expr1);
                    if (@bool)
                    {
                        ((ResourceToAssignmentTable)this.assignmentsWithFormulasMap[str]).PvVars = (string.ReferenceEquals(PvVars, null)) ? "" : PvVars;
                    }
                    this.values[range] = expr1;
                }
            }
            foreach (string str in hashSet)
            {
                CurrentField = "QTYPUNITFORM";
                ResourceToAssignmentTable resourceToAssignmentTable = (ResourceToAssignmentTable)this.assignmentsWithFormulasMap[str];
                Expr  expr  = parseStatement(resourceToAssignmentTable.QuantityPerUnitFormula);
                Range range = new Range(str);
                this.provider.valueChanged(range, expr);
                this.values[range] = expr;
                resourceToAssignmentTable.PvVars = (string.ReferenceEquals(PvVars, null)) ? "" : PvVars;
            }
        }
コード例 #8
0
        public virtual object clone()
        {
            //		if ( o_map == null ) o_map = new HashMap();

            BoqItemEquipmentTable obj = new BoqItemEquipmentTable();

            obj.ParamItemId           = ParamItemId;
            obj.BoqItemEquipmentId    = BoqItemEquipmentId;
            obj.FinalRate             = FinalRate;
            obj.TotalCost             = TotalCost;
            obj.FinalDepreciationRate = FinalDepreciationRate;
            obj.Factor1 = Factor1;
            obj.Factor2 = Factor2;
            obj.Factor3 = Factor3;

            obj.QuantityPerUnit             = QuantityPerUnit;
            obj.QuantityPerUnitFormula      = QuantityPerUnitFormula;
            obj.QuantityPerUnitFormulaState = QuantityPerUnitFormulaState;

            obj.ExchangeRate       = ExchangeRate;
            obj.LocalFactor        = LocalFactor;
            obj.LocalCountry       = LocalCountry;
            obj.LocalStateProvince = LocalStateProvince;
            obj.EnergyPrice        = EnergyPrice;
            obj.FinalFuelRate      = FinalFuelRate;
            obj.TotalUnits         = TotalUnits;
            obj.HasUserTotalUnits  = HasUserTotalUnits;
            obj.LastUpdate         = LastUpdate;

            obj.FixedCost      = FixedCost;
            obj.FinalFixedCost = FinalFixedCost;
            obj.VariableCost   = VariableCost;
            obj.Comment        = Comment;

            obj.PvVars = PvVars;

            obj.UnitHours = UnitHours;

            obj.ProjectId = ProjectId;

            if (BoqItemTable != null)
            {
                obj.BoqItemTable = (BoqItemTable)BoqItemTable.clone();
            }

            if (EquipmentTable != null)
            {
                obj.EquipmentTable = (EquipmentTable)EquipmentTable.clone();
            }

            return(obj);
        }
コード例 #9
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);
            }
コード例 #10
0
        public override object clone(bool cloneParent, bool cloneResource)
        {
            QuoteItemTable obj = (QuoteItemTable)clone();

            if (cloneResource && BoqItemTable != null)
            {
                obj.BoqItemTable = (BoqItemTable)BoqItemTable.clone();
            }
            if (cloneParent && QuotationTable != null)
            {
                obj.QuotationTable = (QuotationTable)QuotationTable.clone();
            }

            return(obj);
        }
コード例 #11
0
        public virtual object clone()
        {
            BoqItemLaborTable obj = new BoqItemLaborTable();

            obj.ParamItemId    = ParamItemId;
            obj.BoqItemLaborId = BoqItemLaborId;
            obj.FinalRate      = FinalRate;
            obj.TotalCost      = TotalCost;
            obj.Factor1        = Factor1;
            obj.Factor2        = Factor2;
            obj.Factor3        = Factor3;

            obj.QuantityPerUnit             = QuantityPerUnit;
            obj.QuantityPerUnitFormula      = QuantityPerUnitFormula;
            obj.QuantityPerUnitFormulaState = QuantityPerUnitFormulaState;

            obj.ExchangeRate       = ExchangeRate;
            obj.LocalFactor        = LocalFactor;
            obj.LocalCountry       = LocalCountry;
            obj.LocalStateProvince = LocalStateProvince;
            obj.TotalUnits         = TotalUnits;
            obj.HasUserTotalUnits  = HasUserTotalUnits;
            obj.LastUpdate         = LastUpdate;

            obj.FixedCost      = FixedCost;
            obj.FinalFixedCost = FinalFixedCost;
            obj.VariableCost   = VariableCost;
            obj.Comment        = Comment;

            obj.PvVars = PvVars;

            obj.UnitHours = UnitHours;

            obj.ProjectId = ProjectId;

            if (BoqItemTable != null)
            {
                obj.BoqItemTable = (BoqItemTable)BoqItemTable.clone();
            }

            if (LaborTable != null)
            {
                obj.LaborTable = (LaborTable)LaborTable.clone();
            }

            return(obj);
        }
コード例 #12
0
        public virtual decimal calculateTotalUnits()
        {
            decimal      tUnits       = BigDecimalMath.ONE;
            BoqItemTable boqItemTable = BoqItemTable;

            if (boqItemTable != null)
            {
                //AssemblyTable assTable = getAssemblyTable();

                //if ( assTable.getUnit().equals(boqItemTable.getUnit()) ) {
                tUnits = boqItemTable.Quantity;
                //}

                tUnits = tUnits * Factor1;
                tUnits = tUnits * Factor2;
                tUnits = tUnits * Factor3;
                tUnits = tUnits * QuantityPerUnit;

                //tUnits = tUnits.multiply(getBoqItemTable().getDuration());
                TotalUnits = tUnits;
            }

            return(tUnits);
        }
コード例 #13
0
 public LineItemEvaluationContext(AssemblyTable paramAssemblyTable)
 {
     this.assemblyTable = paramAssemblyTable;
     this.boqItemTable  = BlankResourceInitializer.createBlankBoqItem(null, null, null, false);
     reloadVariables();
 }
コード例 #14
0
        private static void deepFillResourceItem(IList <LevelDetails> levelDetailsList, ResourceWithAssignmentsTable parentTable, bool cyclic, int level, bool nullifyId)
        {
            if (levelDetailsList.Count <= level)
            {
                if (parentTable is BoqItemTable)
                {
                    BoqItemTable boqTable = (BoqItemTable)parentTable;
                    boqTable.BoqItemMaterialSet      = Collections.EMPTY_SET;
                    boqTable.BoqItemLaborSet         = Collections.EMPTY_SET;
                    boqTable.BoqItemEquipmentSet     = Collections.EMPTY_SET;
                    boqTable.BoqItemConsumableSet    = Collections.EMPTY_SET;
                    boqTable.BoqItemSubcontractorSet = Collections.EMPTY_SET;
                    boqTable.BoqItemAssemblySet      = Collections.EMPTY_SET;
                    boqTable.BoqItemConditionSet     = Collections.EMPTY_SET;
                    boqTable.QuoteItemSet            = Collections.EMPTY_SET;
                }
                else if (parentTable is AssemblyTable)
                {
                    AssemblyTable assTable = (AssemblyTable)parentTable;
                    assTable.AssemblyMaterialSet      = Collections.EMPTY_SET;
                    assTable.AssemblyLaborSet         = Collections.EMPTY_SET;
                    assTable.AssemblyEquipmentSet     = Collections.EMPTY_SET;
                    assTable.AssemblyConsumableSet    = Collections.EMPTY_SET;
                    assTable.AssemblySubcontractorSet = Collections.EMPTY_SET;
                    assTable.AssemblyChildSet         = Collections.EMPTY_SET;
                }
                return;
            }
            LevelDetails levelDetails = levelDetailsList[level];
            long?        parentId     = parentTable.Id;

            IList <AssignmentWithResource> materials      = notNullList(levelDetails.objsOfMaterial[parentId]);
            IList <AssignmentWithResource> labors         = notNullList(levelDetails.objsOfLabor[parentId]);
            IList <AssignmentWithResource> equipments     = notNullList(levelDetails.objsOfEquipment[parentId]);
            IList <AssignmentWithResource> consumables    = notNullList(levelDetails.objsOfConsumable[parentId]);
            IList <AssignmentWithResource> subcontractors = notNullList(levelDetails.objsOfSubcontractor[parentId]);
            IList <AssignmentWithResource> conditions     = notNullList(levelDetails.objsOfConditions[parentId]);
            IList <AssignmentWithResource> quoteItems     = notNullList(levelDetails.objsOfQuoteItems[parentId]);
            IList <AssignmentWithResource> lineItems      = notNullList(levelDetails.objsOfLineItems[parentId]);

            if (parentTable is BoqItemTable)
            {
                BoqItemTable boqTable = (BoqItemTable)parentTable;

                boqTable.BoqItemMaterialSet = new HashSet <BoqItemMaterialTable>(materials.Count);
                fillAssignmentSetWithData(boqTable, boqTable.BoqItemMaterialSet, materials, cyclic);

                boqTable.BoqItemLaborSet = new HashSet <BoqItemLaborTable>(labors.Count);
                fillAssignmentSetWithData(boqTable, boqTable.BoqItemLaborSet, labors, cyclic);

                boqTable.BoqItemEquipmentSet = new HashSet <BoqItemEquipmentTable>(equipments.Count);
                fillAssignmentSetWithData(boqTable, boqTable.BoqItemEquipmentSet, equipments, cyclic);

                boqTable.BoqItemSubcontractorSet = new HashSet <BoqItemSubcontractorTable>(subcontractors.Count);
                fillAssignmentSetWithData(boqTable, boqTable.BoqItemSubcontractorSet, subcontractors, cyclic);

                boqTable.BoqItemConsumableSet = new HashSet <BoqItemConsumableTable>(consumables.Count);
                fillAssignmentSetWithData(boqTable, boqTable.BoqItemConsumableSet, consumables, cyclic);

                boqTable.BoqItemConditionSet = new HashSet <BoqItemConditionTable>(conditions.Count);
                fillAssignmentSetWithData(boqTable, boqTable.BoqItemConditionSet, conditions, cyclic);

                boqTable.QuoteItemSet = new HashSet <QuoteItemTable>(quoteItems.Count);
                fillAssignmentSetWithData(boqTable, boqTable.QuoteItemSet, quoteItems, cyclic);

                boqTable.BoqItemAssemblySet = new HashSet <BoqItemAssemblyTable>(lineItems.Count);
                fillAssignmentSetWithData(boqTable, levelDetailsList, level, boqTable.BoqItemAssemblySet, lineItems, cyclic, nullifyId);
            }
            else if (parentTable is AssemblyTable)
            {
                AssemblyTable assemblyTable = (AssemblyTable)parentTable;
                if (nullifyId)
                {
                    //System.out.println("SETTING NULL TO: "+parentTable.getTitle());
                    assemblyTable.Id = null;
                }
                assemblyTable.AssemblyMaterialSet = new HashSet <AssemblyMaterialTable>(materials.Count);
                fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyMaterialSet, materials, cyclic);

                assemblyTable.AssemblyLaborSet = new HashSet <AssemblyLaborTable>(labors.Count);
                fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyLaborSet, labors, cyclic);

                assemblyTable.AssemblyEquipmentSet = new HashSet <AssemblyEquipmentTable>(equipments.Count);
                fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyEquipmentSet, equipments, cyclic);

                assemblyTable.AssemblySubcontractorSet = new HashSet <AssemblySubcontractorTable>(subcontractors.Count);
                fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblySubcontractorSet, subcontractors, cyclic);

                assemblyTable.AssemblyConsumableSet = new HashSet <AssemblyConsumableTable>(consumables.Count);
                fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyConsumableSet, consumables, cyclic);

                assemblyTable.AssemblyChildSet = new HashSet <AssemblyAssemblyTable>(lineItems.Count);
                fillAssignmentSetWithData(assemblyTable, levelDetailsList, level, assemblyTable.AssemblyChildSet, lineItems, cyclic, nullifyId);
            }
        }
コード例 #15
0
 public BoqItemEvaluationContext(BoqItemTable paramBoqItemTable, string paramString)
 {
     this.currentField = paramString;
     this.boqTable     = paramBoqItemTable;
     reloadVariables();
 }
コード例 #16
0
        public virtual SubcontractorTable convertToSubcontractorTable(ProjectDBProperties prop)
        {
            SubcontractorTable obj = BlankResourceInitializer.createBlankSubcontractor(null);

            BoqItemTable   boqItemTable   = BoqItemTable;
            QuotationTable quotationTable = QuotationTable;

            if (Title.IndexOf(boqItemTable.Title, StringComparison.Ordinal) != -1 && Title.IndexOf(boqItemTable.Description, StringComparison.Ordinal) != -1)
            {
                obj.Title = StringUtils.makeShortTitle(boqItemTable.Title);
            }
            else
            {
                obj.Title = StringUtils.makeShortTitle(Title);
            }

            obj.DatabaseId = DatabaseId;
            if (DatabaseCreationDate == null)
            {
                obj.DatabaseCreationDate = 100L;                 //ResourceUtil.MISSING_DB_CREATE_DATE);
            }
            else
            {
                obj.DatabaseCreationDate = DatabaseCreationDate;
            }
            obj.Address       = quotationTable.Address;
            obj.ContactPerson = quotationTable.ContactPerson;
            obj.GroupCode     = boqItemTable.GroupCode;
            obj.GekCode       = boqItemTable.GekCode;
            obj.Performance   = "" + quotationTable.Performance;
            obj.Project       = prop.getProperty("project.code") + " - " + prop.getProperty("project.name");
            obj.Description   = boqItemTable.Description;
            obj.Notes         = boqItemTable.Notes;

            obj.EditorId        = DatabaseDBUtil.Properties.UserId;
            obj.PhoneNumber     = quotationTable.PhoneNumber;
            obj.MobileNumber    = quotationTable.MobileNumber;
            obj.Email           = quotationTable.Email;
            obj.Country         = quotationTable.Country;
            obj.City            = quotationTable.City;
            obj.StateProvince   = quotationTable.StateProvince;
            obj.SubMaterialRate = MaterialRate;
            obj.Rate            = RateWithIndirect;
            obj.SubMaterialRate = MaterialRate;
            obj.IKA             = Insurance;
            obj.Quantity        = Quantity;
            obj.TotalRate       = calculateFinalRate();
            obj.Unit            = Unit;
            obj.Url             = quotationTable.Url;
            obj.Company         = quotationTable.CompanyName;
            obj.FaxNumber       = quotationTable.FaxNumber;
            obj.Currency        = quotationTable.Currency;
            obj.Accuracy        = SubcontractorTable.QUOTED_ACCURACY;

            if (quotationTable.HasMaterialRate.Value)
            {
                obj.Inclusion = SubcontractorTable.MATERIAL_AND_SHIPMENT_INCLUSION;
            }
            else
            {
                obj.Inclusion = SubcontractorTable.NONE_INCLUSION;
            }

            obj.CreateUserId = quotationTable.EditorId;
            if (quotationTable.ReceivedDate != null)
            {
                obj.LastUpdate = quotationTable.ReceivedDate;
                obj.CreateDate = quotationTable.ReceivedDate;
            }
            else
            {
                obj.LastUpdate = DateTime.Now;
                obj.CreateDate = obj.LastUpdate;
            }

            obj.ExtraCode1  = boqItemTable.ExtraCode1;
            obj.ExtraCode2  = boqItemTable.ExtraCode2;
            obj.ExtraCode3  = boqItemTable.ExtraCode3;
            obj.ExtraCode4  = boqItemTable.ExtraCode4;
            obj.ExtraCode5  = boqItemTable.ExtraCode5;
            obj.ExtraCode6  = boqItemTable.ExtraCode6;
            obj.ExtraCode7  = boqItemTable.ExtraCode7;
            obj.ExtraCode8  = boqItemTable.ExtraCode8;
            obj.ExtraCode9  = boqItemTable.ExtraCode9;
            obj.ExtraCode10 = boqItemTable.ExtraCode10;
            obj.recalculate();

            return(obj);
        }
コード例 #17
0
        public virtual MaterialTable convertToMaterialTable(ProjectDBProperties prop)
        {
            MaterialTable  obj            = BlankResourceInitializer.createBlankMaterial(null);
            BoqItemTable   boqItemTable   = BoqItemTable;
            QuotationTable quotationTable = QuotationTable;

            double[] projectGeoPosition  = StringUtils.extractDoubles(prop.getProperty("project.geolocation"));
            double[] supplierGeoPosition = StringUtils.extractDoubles(quotationTable.GeoLocation);
            double   distanceKm          = HaversineDistanceUtil.distance(HaversineDistanceUtil.KM_DISTANCE, projectGeoPosition, supplierGeoPosition);

            if (Title.IndexOf(boqItemTable.Title, StringComparison.Ordinal) != -1 && Title.IndexOf(boqItemTable.Description, StringComparison.Ordinal) != -1)
            {
                obj.Title = StringUtils.makeShortTitle(boqItemTable.Title);
            }
            else
            {
                obj.Title = StringUtils.makeShortTitle(Title);
            }
            obj.DatabaseId = DatabaseId;
            if (DatabaseCreationDate == null)
            {
                obj.DatabaseCreationDate = 100L;                 //ResourceUtil.MISSING_DB_CREATE_DATE);
            }
            else
            {
                obj.DatabaseCreationDate = DatabaseCreationDate;
            }
            obj.Weight        = BigDecimalMath.ZERO;
            obj.WeightUnit    = "KG";
            obj.GroupCode     = boqItemTable.GroupCode;
            obj.GekCode       = boqItemTable.GekCode;
            obj.Project       = prop.getProperty("project.code") + " - " + prop.getProperty("project.name");
            obj.Description   = boqItemTable.Description;
            obj.Notes         = boqItemTable.Notes;
            obj.EditorId      = DatabaseDBUtil.Properties.UserId;
            obj.Country       = quotationTable.Country;
            obj.StateProvince = quotationTable.StateProvince;
            obj.Rate          = Rate;

            obj.DistanceToSite = new BigDecimalFixed("" + distanceKm);
            obj.DistanceUnit   = "KM";

            obj.RawMaterial         = MaterialTable.UNSPECIFIED_RAWMAT;
            obj.RawMaterialReliance = BigDecimalMath.ZERO;

            obj.CreateUserId = quotationTable.EditorId;
            if (quotationTable.ReceivedDate != null)
            {
                obj.LastUpdate = quotationTable.ReceivedDate;
                obj.CreateDate = quotationTable.ReceivedDate;
            }
            else
            {
                obj.LastUpdate = DateTime.Now;
                obj.CreateDate = obj.LastUpdate;
            }

            if (quotationTable.OnSiteDelivery.Value)
            {
                if (ShipmentCost != null)
                {
                    decimal indirectRate = BigDecimalMath.ZERO;

                    if (IndirectCost != null)
                    {
                        decimal qty = Quantity;
                        if (BigDecimalMath.cmpCheckNulls(qty, BigDecimalMath.ZERO) == 0)
                        {
                            qty = BigDecimalMath.ONE;
                        }

                        obj.ShipmentRate = BigDecimalMath.div(shipmentCost, qty);
                    }

                    //				double qty = getQuantity().doubleValue();
                    //				if ( qty == 0 )
                    //					qty = 1;
                    //				double srate = shipmentCost.doubleValue()/getQuantity().doubleValue();
                    //				obj.setShipmentRate(new BigDecimalFixed(""+srate));
                }
                else
                {
                    obj.ShipmentRate = BigDecimalMath.ZERO;
                }

                obj.Inclusion = MaterialTable.SHIPMENT_INCLUSION;
            }
            else
            {
                obj.Inclusion    = MaterialTable.NONE_INCLUSION;
                obj.ShipmentRate = BigDecimalMath.ZERO;
            }

            obj.FabricationRate = BigDecimalMath.ZERO;
            obj.TotalRate       = obj.Rate + obj.ShipmentRate;
            obj.Quantity        = Quantity;
            obj.Unit            = Unit;
            obj.Currency        = quotationTable.Currency;
            obj.Accuracy        = MaterialTable.QUOTED_ACCURACY;

            obj.ExtraCode1  = boqItemTable.ExtraCode1;
            obj.ExtraCode2  = boqItemTable.ExtraCode2;
            obj.ExtraCode3  = boqItemTable.ExtraCode3;
            obj.ExtraCode4  = boqItemTable.ExtraCode4;
            obj.ExtraCode5  = boqItemTable.ExtraCode5;
            obj.ExtraCode6  = boqItemTable.ExtraCode6;
            obj.ExtraCode7  = boqItemTable.ExtraCode7;
            obj.ExtraCode8  = boqItemTable.ExtraCode8;
            obj.ExtraCode9  = boqItemTable.ExtraCode9;
            obj.ExtraCode10 = boqItemTable.ExtraCode10;

            boqItemTable.loadBimMaterialsAndTypes();

            obj.BimMaterial = boqItemTable.BimMaterial;
            obj.BimType     = boqItemTable.BimType;
            obj.recalculate();

            return(obj);
        }
コード例 #18
0
        public virtual BoqItemTable convertToBoqItem(DateTime projectStartDate, long?code, ProjectDBUtil currentDBUtil, bool online, bool useProductivity, bool replaceQuantity)
        {
            BoqItemTable boqTable = BlankResourceInitializer.createBlankBoqItem(this, code, projectStartDate, useProductivity);

            Timestamp updateTime = new Timestamp(DateTimeHelper.CurrentUnixTimeMillis());

            //if ( useProductivity ) {
            //	boqTable.setCalculationType(BoqItemTable.s_PRODUCTIVITY_METHOD);
            //}
            //else {
            //	boqTable.setCalculationType(BoqItemTable.s_TOTAL_UNITS_METHOD);
            //}
            //boqTable.setProductivity(BigDecimalMath.ONE);
            //boqTable.setQuantity(BigDecimalMath.ONE);
            //boqTable.setDuration(BigDecimalMath.ONE);

            boqTable.LastUpdate = updateTime;
            boqTable.CreateDate = updateTime;

            boqTable.BoqItemAssemblySet      = new HashSet <object>();
            boqTable.BoqItemEquipmentSet     = new HashSet <object>();
            boqTable.BoqItemSubcontractorSet = new HashSet <object>();
            boqTable.BoqItemLaborSet         = new HashSet <object>();
            boqTable.BoqItemMaterialSet      = new HashSet <object>();
            boqTable.BoqItemConsumableSet    = new HashSet <object>();
            boqTable.BoqItemConditionSet     = new HashSet <object>();

            ConditionTable        conditionTable    = (ConditionTable)convertToConditionTable();
            BoqItemConditionTable boqConditionTable = new BoqItemConditionTable();

            boqConditionTable.Factor1         = BigDecimalMath.ONE;
            boqConditionTable.Factor2         = BigDecimalMath.ONE;
            boqConditionTable.QuantityPerUnit = BigDecimalMath.ONE;
            boqConditionTable.Sumup           = BigDecimalMath.ZERO;

            if (replaceQuantity)
            {
                if (conditionTable.DefaultQuantity == null || conditionTable.DefaultQuantity == 0 || conditionTable.DefaultQuantity == 1)
                {
                    boqTable.Quantity = conditionTable.Quantity1;
                }
                else if (conditionTable.DefaultQuantity == 2)
                {
                    boqTable.Quantity = conditionTable.Quantity2;
                }
                else if (conditionTable.DefaultQuantity == 3)
                {
                    boqTable.Quantity = conditionTable.Quantity3;
                }
                else if (conditionTable.DefaultQuantity == 4)
                {
                    boqTable.Quantity = conditionTable.QuantityF;
                }
            }
            if (conditionTable.DefaultQuantity == null || conditionTable.DefaultQuantity == 0 || conditionTable.DefaultQuantity == 1)
            {
                boqConditionTable.SelectedUnit = BoqItemConditionTable.SELECTED_UNIT1;
                boqTable.Quantity         = conditionTable.Quantity1;
                boqTable.MeasuredQuantity = conditionTable.Quantity1;
                //boqTable.setEstimatedQuantity(conditionTable.getQuantity1());
                boqTable.Unit       = conditionTable.Unit1;
                boqTable.SecondUnit = Unit1ToUnit2Util.Instance.getUnit2(conditionTable.Unit1);
                boqTable.UnitsDiv   = Unit1ToUnit2Util.Instance.getUnitDiv(conditionTable.Unit1);
            }
            else if (conditionTable.DefaultQuantity == 2)
            {
                boqConditionTable.SelectedUnit = BoqItemConditionTable.SELECTED_UNIT2;
                boqTable.Quantity         = conditionTable.Quantity2;
                boqTable.MeasuredQuantity = conditionTable.Quantity2;
                //boqTable.setEstimatedQuantity(conditionTable.getQuantity2());
                boqTable.Unit       = conditionTable.Unit2;
                boqTable.SecondUnit = Unit1ToUnit2Util.Instance.getUnit2(conditionTable.Unit2);
                boqTable.UnitsDiv   = Unit1ToUnit2Util.Instance.getUnitDiv(conditionTable.Unit2);
            }
            else if (conditionTable.DefaultQuantity == 3)
            {
                boqConditionTable.SelectedUnit = BoqItemConditionTable.SELECTED_UNIT3;
                boqTable.Quantity = conditionTable.Quantity3;
                //boqTable.setEstimatedQuantity(conditionTable.getQuantity3());
                boqTable.MeasuredQuantity = conditionTable.Quantity3;
                boqTable.Unit             = conditionTable.Unit3;
                boqTable.SecondUnit       = Unit1ToUnit2Util.Instance.getUnit2(conditionTable.Unit3);
                boqTable.UnitsDiv         = Unit1ToUnit2Util.Instance.getUnitDiv(conditionTable.Unit3);
            }
            else if (conditionTable.DefaultQuantity == 4)
            {
                boqConditionTable.SelectedUnit = BoqItemConditionTable.SELECTED_UNITF;
                boqTable.Quantity = conditionTable.QuantityF;
                //boqTable.setEstimatedQuantity(conditionTable.getQuantity3());
                boqTable.MeasuredQuantity = conditionTable.QuantityF;
                boqTable.Unit             = conditionTable.UnitF;
                boqTable.SecondUnit       = Unit1ToUnit2Util.Instance.getUnit2(conditionTable.UnitF);
                boqTable.UnitsDiv         = Unit1ToUnit2Util.Instance.getUnitDiv(conditionTable.UnitF);
            }

            boqConditionTable.LastUpdate = updateTime;

            boqConditionTable.ConditionTable = conditionTable;
            boqConditionTable.BoqItemTable   = boqTable;

            boqTable.BoqItemConditionSet.Add(boqConditionTable);

            boqTable.recalculate();

            return(boqTable);
        }
コード例 #19
0
        public virtual BoqItemConditionTable[] createBoqConditions(BoqItemTable paramBoqItemTable, ConditionTable[] paramArrayOfConditionTable)
        {
            BoqItemConditionTable[] arrayOfBoqItemConditionTable = new BoqItemConditionTable[paramArrayOfConditionTable.Length];
            sbyte b = 0;

            foreach (ConditionTable conditionTable in paramArrayOfConditionTable)
            {
                decimal bigDecimal = null;
                if (Quantities != null && Quantities.Count > b)
                {
                    bigDecimal = (decimal)Quantities[b];
                }
                BoqItemConditionTable boqItemConditionTable = new BoqItemConditionTable();
                string str = "";
                if (conditionTable.DefaultQuantity == null || conditionTable.DefaultQuantity.Value == 0)
                {
                    boqItemConditionTable.SelectedUnit = "selectedQty.1";
                    str = conditionTable.Unit1;
                    if (conditionTable.Quantity2 != null && !conditionTable.Quantity2.Equals(new BigDecimalFixed("0")))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.2";
                        str = conditionTable.Unit2;
                    }
                    if (conditionTable.Quantity3 != null && !conditionTable.Quantity3.Equals(new BigDecimalFixed("0")))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.3";
                        str = conditionTable.Unit3;
                    }
                    if (conditionTable.QuantityF != null && !conditionTable.QuantityF.Equals(new BigDecimalFixed("0")))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.F";
                        str = conditionTable.UnitF;
                    }
                }
                else if (conditionTable.DefaultQuantity.Value == 1)
                {
                    boqItemConditionTable.SelectedUnit = "selectedQty.1";
                    str = conditionTable.Unit1;
                }
                else if (conditionTable.DefaultQuantity.Value == 2)
                {
                    boqItemConditionTable.SelectedUnit = "selectedQty.2";
                    str = conditionTable.Unit2;
                }
                else if (conditionTable.DefaultQuantity.Value == 3)
                {
                    boqItemConditionTable.SelectedUnit = "selectedQty.3";
                    str = conditionTable.Unit3;
                }
                else if (conditionTable.DefaultQuantity.Value == 4)
                {
                    boqItemConditionTable.SelectedUnit = "selectedQty.F";
                    str = conditionTable.UnitF;
                }
                if (!str.Equals(paramBoqItemTable.Unit))
                {
                    if (str.Equals(conditionTable.Unit1))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.1";
                    }
                    if (str.Equals(conditionTable.Unit2))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.2";
                    }
                    if (str.Equals(conditionTable.Unit3))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.3";
                    }
                    if (str.Equals(conditionTable.UnitF))
                    {
                        boqItemConditionTable.SelectedUnit = "selectedQty.F";
                    }
                }
                boqItemConditionTable.Factor1 = BigDecimalMath.ONE;
                boqItemConditionTable.Factor2 = BigDecimalMath.ONE;
                boqItemConditionTable.Sumup   = BigDecimalMath.ZERO;
                if (BigDecimalMath.cmp(bigDecimal, BigDecimalMath.ZERO) > 0)
                {
                    boqItemConditionTable.OverridenQuantity = bigDecimal;
                }
                boqItemConditionTable.BoqItemTable   = paramBoqItemTable;
                boqItemConditionTable.ConditionTable = conditionTable;
                boqItemConditionTable.LastUpdate     = new Timestamp(DateTimeHelper.CurrentUnixTimeMillis());
                arrayOfBoqItemConditionTable[b++]    = boqItemConditionTable;
            }
            return(arrayOfBoqItemConditionTable);
        }
コード例 #20
0
        public virtual object clone()
        {
            BoqItemAssemblyTable obj = new BoqItemAssemblyTable();

            obj.ParamItemId = ParamItemId;

            obj.BoqItemAssemblyId    = BoqItemAssemblyId;
            obj.FinalRate            = FinalRate;
            obj.FinalLaborRate       = FinalLaborRate;
            obj.FinalMaterialRate    = FinalMaterialRate;
            obj.FinalShipmentRate    = FinalShipmentRate;
            obj.FinalFabricationRate = FinalFabricationRate;

            obj.FinalConsumableRate    = FinalConsumableRate;
            obj.FinalSubcontractorRate = FinalSubcontractorRate;
            obj.FinalEquipmentRate     = FinalEquipmentRate;

            obj.FixedCost      = FixedCost;
            obj.FinalFixedCost = FinalFixedCost;
            obj.VariableCost   = VariableCost;
            obj.Comment        = Comment;

            obj.TotalCost         = TotalCost;
            obj.LaborCost         = LaborCost;
            obj.MaterialCost      = MaterialCost;
            obj.ConsumableCost    = ConsumableCost;
            obj.SubcontractorCost = SubcontractorCost;
            obj.EquipmentCost     = EquipmentCost;

            obj.Factor1 = Factor1;
            obj.Factor2 = Factor2;
            obj.Factor3 = Factor3;

            obj.QuantityPerUnit             = QuantityPerUnit;
            obj.QuantityPerUnitFormula      = QuantityPerUnitFormula;
            obj.QuantityPerUnitFormulaState = QuantityPerUnitFormulaState;

            obj.ExchangeRate       = ExchangeRate;
            obj.LocalFactor        = LocalFactor;
            obj.LocalCountry       = LocalCountry;
            obj.LocalStateProvince = LocalStateProvince;

            obj.TotalUnits        = TotalUnits;
            obj.HasUserTotalUnits = HasUserTotalUnits;
            obj.LastUpdate        = LastUpdate;

            obj.PvVars = PvVars;

            obj.ProjectId = ProjectId;

            if (BoqItemTable != null)
            {
                obj.BoqItemTable = (BoqItemTable)BoqItemTable.clone();
            }

            if (AssemblyTable != null)
            {
                obj.AssemblyTable = (AssemblyTable)AssemblyTable.clone();
            }

            return(obj);
        }
コード例 #21
0
 public static BoqItemEvaluationContext createEvaluationContext(BoqItemTable paramBoqItemTable)
 {
     return(new BoqItemEvaluationContext(paramBoqItemTable, ""));
 }
コード例 #22
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public static org.boris.expr.Expr evaluate(nomitech.common.db.project.BoqItemTable paramBoqItemTable, String paramString1, String paramString2) throws org.boris.expr.ExprException
        public static Expr evaluate(BoqItemTable paramBoqItemTable, string paramString1, string paramString2)
        {
            BoqItemEvaluationContext boqItemEvaluationContext = new BoqItemEvaluationContext(paramBoqItemTable, paramString1);

            return(boqItemEvaluationContext.parseStatement(paramString2));
        }
コード例 #23
0
 private object getFieldFormulaValue(BoqItemTable paramBoqItemTable, string paramString)
 {
     return(formulaFields.Contains(paramString) ? getFieldValue(paramBoqItemTable, paramString) : null);
 }
コード例 #24
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private void reloadVariables() throws org.boris.expr.ExprException
        private void reloadVariables()
        {
            this.assignmentsWithFormulasMap.Clear();
            this.updatedResourceToAssignmentQtyPerUnitSet.Clear();
            this.pvVarsCalled = new StringBuilder();
            foreach (string str in BoqItemTable.VIEWABLE_FIELDS)
            {
                if (!this.currentField.Equals(str))
                {
                    object @object = getFieldFormulaValue(this.boqTable, str + "Formula");
                    string str1    = variableFromField(str);
                    if (@object != null)
                    {
                        set(str1, "=" + @object.ToString());
                    }
                    else if (BoqItemTable.isFieldEditable(str))
                    {
                        object object1 = getFieldValue(this.boqTable, str);
                        if (BoqItemTable.isFieldDate(str))
                        {
                            object1 = Convert.ToDouble(0.0D);
                        }
                        else
                        {
                            object1 = "";
                        }
                        setExprValue(str1, object1);
                    }
                }
            }
            this.boqTable.PvVars       = (this.pvVarsCalled == null) ? "" : this.pvVarsCalled.ToString();
            this.boqTable.HasPVFormula = Convert.ToBoolean((this.pvVarsCalled != null && this.pvVarsCalled.ToString().Length > 0));
            foreach (object @object in this.boqTable.ResourceAssignmentsList)
            {
                ResourceToAssignmentTable resourceToAssignmentTable = (ResourceToAssignmentTable)@object;
                resourceToAssignmentTable.PvVars = "";
                ResourceWithAssignmentsTable resourceWithAssignmentsTable = resourceToAssignmentTable.getResourceTable();
                if (resourceToAssignmentTable.getResourceTable() is AssemblyTable)
                {
                    AssemblyTable assemblyTable = (AssemblyTable)resourceToAssignmentTable.getResourceTable();
                    loadLocalVariables(assemblyTable.Vars);
                }
                else if (resourceToAssignmentTable.getResourceTable() is BoqItemTable)
                {
                    BoqItemTable boqItemTable = (BoqItemTable)resourceToAssignmentTable.getResourceTable();
                    loadLocalVariables(boqItemTable.Vars);
                }
                if (resourceToAssignmentTable.QuantityPerUnitFormulaState == ResourceToAssignmentTable.QTYPUFORM_NOFORMULA)
                {
                    continue;
                }
                string str = resourceToAssignmentTable.QuantityPerUnitFormula;
                if (!StringUtils.isNullOrBlank(str))
                {
                    string str1 = System.Guid.randomUUID().ToString();
                    set(str1, "=" + str.ToString());
                    this.assignmentsWithFormulasMap[str1] = resourceToAssignmentTable;
                }
            }
            if (this.boqTable.BoqItemAssemblySet != null)
            {
                foreach (BoqItemAssemblyTable boqItemAssemblyTable in this.boqTable.BoqItemAssemblySet)
                {
                    AssemblyTable assemblyTable = boqItemAssemblyTable.AssemblyTable;
                    loadLocalVariables(assemblyTable.Vars);
                    QuantityPerUnitFieldFormula = assemblyTable;
                }
            }
        }