Пример #1
0
        double getLineNetTotal(DataRow row)
        {
            double tot  = getLineRealTotal(row);
            double perc = (double)ToolCell.isNull(row[TableSTLINE.DISCPER], (double)0.0);

            return(tot * (100 - perc) / 100);
        }
Пример #2
0
        static double getStockDocLineAmount(DataRow docLine)
        {
            double        amount      = 0;
            ConstBool     isCancelled = (ConstBool)(short)ToolCell.isNull(docLine[TableSTLINE.CANCELLED], (short)ConstBool.yes);
            ConstLineType lineType    = (ConstLineType)(short)ToolCell.isNull(docLine[TableSTLINE.LINETYPE], (short)ConstLineType.undef);


            if (isCancelled == ConstBool.not && (lineType == ConstLineType.material || lineType == ConstLineType.promotion))
            {
                amount = (double)ToolCell.isNull(docLine[TableSTLINE.AMOUNT], 0.0);
                ConstIOCode ioCode = (ConstIOCode)(short)ToolCell.isNull(docLine[TableSTLINE.IOCODE], (short)0);
                switch (ioCode)
                {
                case ConstIOCode.input:
                case ConstIOCode.inputFromWarehouse:
                    amount = +amount;
                    break;

                case ConstIOCode.output:
                case ConstIOCode.outputFromWarehouse:
                    amount = -amount;
                    break;

                default:
                    amount = 0;
                    break;
                }
            }
            return(amount);
        }
Пример #3
0
        void refreshVal(double pValue, double pCf, string pCol, bool pReverse)
        {
            if (_blockPoint.block())
            {
                try
                {
                    if (pCf < ConstValues.minPositive)
                    {
                        pCf = 1.0;
                    }

                    DataRow rowMain = ToolRow.getFirstRealRow(_tableSchema);
                    double  mCf     = (double)rowMain[TableDUMMY.CONVFACT];
                    double  mAmount = pValue * (pReverse ? (mCf / pCf) : (pCf / mCf));

                    foreach (DataRow curRow in _tableSchema.Rows)
                    {
                        double curCf = (double)curRow[TableDUMMY.CONVFACT];
                        if (curCf < ConstValues.minPositive)
                        {
                            curCf = 1.0;
                        }
                        ToolCell.set(curRow, pCol, mAmount * (pReverse ? (curCf / mCf) : (mCf / curCf)));
                    }
                }
                finally
                {
                    _blockPoint.unblock();
                }
            }
        }
Пример #4
0
        protected override void prepareBeforeUpdate(DataSet pData)
        {
            DataSet   dataSet = (DataSet)pData;
            DataTable tab;
            DataRow   row;

            tab = dataSet.Tables[TableKSLINES.TABLE];
            for (int i = 0; i < tab.Rows.Count; ++i)
            {
                row = tab.Rows[i];
                if (row.RowState != DataRowState.Deleted)
                {
                    if (row.RowState == DataRowState.Added)
                    {
                        docId = row[TableKSLINES.LOGICALREF];
                        ToolCell.set(row, TableKSLINES.FICHENO, getDocNr());
                    }
                    else
                    {
                        docId = row[TableKSLINES.LOGICALREF];
                    }
                    ToolCell.set(row, TableKSLINES.TRCODE, docTrCode);
                    ToolCell.set(row, TableKSLINES.SIGN, docSign);
                }
            }
        }
Пример #5
0
        protected bool startSave()
        {
            try
            {
                FinishDataEditing();

                if (_checkLevel)
                {
                    DataRow row    = ToolRow.getFirstRealRow(_tableSchema);
                    double  amount = (double)ToolCell.isNull(row[TableDUMMY.AMOUNT], 0.0);
                    double  onhand = (double)ToolCell.isNull(_curMatRecord[TableDUMMY.ONHAND], 0.0);
                    if ((amount - onhand) > ConstValues.minPositive)
                    {
                        ToolMsg.show(this, MessageCollection.T_MSG_INVALID_QUANTITY, null);
                        return(false);
                    }
                }



                DataRow _rowActiveUnit = this.BindingContext.getBindingItemRecord(cUnit);

                //
                if (_rowActiveUnit != null)
                {
                    switch (handler.converCol(handler.column))
                    {
                    case TableDUMMY.AMOUNT:
                        ToolCell.set(handler.row, TableSTLINE.AMOUNT, ToolRow.getFirstRealRow(_tableSchema)[TableDUMMY.AMOUNT]);
                        //
                        if (_rowActiveUnit != null)
                        {
                            ToolCell.set(handler.row, TableSTLINE.UNIT, _rowActiveUnit[TableDUMMY.UNIT]);
                            ToolCell.set(handler.row, TableSTLINE.UNITREF, _rowActiveUnit[TableDUMMY.UNITREF]);
                            ToolCell.set(handler.row, TableSTLINE.UINFO1, _rowActiveUnit[TableDUMMY.UNITCF01]);
                            ToolCell.set(handler.row, TableSTLINE.UINFO2, _rowActiveUnit[TableDUMMY.UNITCF02]);
                        }
                        //
                        return(true);

                    case TableDUMMY.PRICE:
                        ToolCell.set(handler.row, TableSTLINE.PRICE, ToolRow.getFirstRealRow(_tableSchema)[TableDUMMY.PRICE]);
                        return(true);

                    case TableDUMMY.DISCPER:
                        ToolCell.set(handler.row, TableSTLINE.DISCPER, ToolRow.getFirstRealRow(_tableSchema)[TableDUMMY.DISCPER]);
                        return(true);

                    case TableDUMMY.TOTAL:
                        ToolCell.set(handler.row, TableSTLINE.TOTAL, ToolRow.getFirstRealRow(_tableSchema)[TableDUMMY.TOTAL]);
                        return(true);
                    }
                }
            }
            catch (Exception exc)
            {
                ToolMobile.setException(exc);
            }
            return(false);
        }
Пример #6
0
        protected virtual void tableSTLINEColumnChanged(object sender, DataColumnChangeEventArgs e)
        {
            DataTable tab     = (DataTable)sender;
            DataSet   dataSet = tab.DataSet;

            if (e.Row.RowState != DataRowState.Detached)
            {
                switch (e.Column.ColumnName)
                {
                case TableSTLINE.LINETYPE:
                    ToolCell.set(e.Row, TableSTLINE.DISCPER, (double)(ToolStockLine.isLinePromotion(e.Row) ? 100 : 0));
                    break;

                case TableSTLINE.DISCPER:
                    if (ToolStockLine.isLinePromotion(e.Row))
                    {
                        ToolCell.set(e.Row, TableSTLINE.DISCPER, (double)100);
                    }
                    break;

                case TableSTLINE.AMOUNT:
                case TableSTLINE.PRICE:
                case TableSTLINE.TOTAL:
                    break;
                }
            }
        }
Пример #7
0
        protected void table_DistributeValues(DataRow[] topRows, DataRow[] subRows)
        {
            object topTotal = topOperDef;

            for (int i = 0; i < topRows.Length; ++i)
            {
                evalOnTopAny.setVarAll(ToolRow.copyRowToArr(columnsVars, topRows[i]));
                object tmpRes = evalOnTopAny.getResult();
                evalOnTopAnyResult.setVarAll(new object[] { topTotal, tmpRes });
                topTotal = evalOnTopAnyResult.getResult();
            }
            for (int i = 0; i < subRows.Length; ++i)
            {
                object[]   vals;
                object     tmp;
                DataRow    row    = subRows[i];
                string     oldest = toucher.getOldest(columnsCalc, row);
                IEvaluator eval   = evalOnSubCalc[Array.IndexOf <string>(columnsCalc, oldest)];
                vals = ToolRow.copyRowToArr(columnsVars, row);
                vals = ToolArray.resize <object>(vals, vals.Length + 1);

                vals[vals.Length - 1] = topTotal;
                eval.setVarAll(vals);
                tmp = eval.getResult();
                ToolCell.set(row, oldest, tmp);

                vals = ToolRow.copyRowToArr(columnsVars, row);
                vals = ToolArray.resize <object>(vals, vals.Length + 1);

                vals[vals.Length - 1] = topTotal;
                evalOnSubCorrect.setVarAll(vals);
                topTotal = evalOnSubCorrect.getResult();
            }
        }
Пример #8
0
        public void fillTree(object[][] arrGroups)
        {
            //object[]{object[]{1,2,3},object[]{5,6},object[]{6,9}}

            this.RootNode.Clear();

            foreach (object[] arr in arrGroups)
            {
                Node curNode = this.RootNode;
                for (int i = 0; i < Math.Min(2, arr.Length); ++i)
                {
                    string item = ToolCell.isNull(arr[i], string.Empty).ToString();

                    Node res_ = curNode.Search(item); // Find(curCollect, item.ToString(), false);
                    if (res_ != null)
                    {
                        curNode = res_;
                    }
                    else
                    {
                        curNode     = curNode.Add(new Node(item, item));
                        curNode.Tag = arr[i];
                    }
                }
            }
        }
Пример #9
0
        bool needUpdate(DataRow row, string[] cols)
        {
            if (row == null)
            {
                return(false);
            }



            bool flagResetOnAllNullOrDef = flags.isFlagEnabled(UpdateTypeFlags.resetIfAllCurrentRelColsAreDefaultOrNull);
            bool flagStopIfOneNullOrDef  = !flags.isFlagEnabled(UpdateTypeFlags.continueIfOneOfCurrentRelColsDefaultOrNull);


            if (ToolCell.isDefaultOrNullAll(row, cols))
            {
                if (flagResetOnAllNullOrDef)
                {
                    emptyDest();
                    return(false);
                }
                if (flagStopIfOneNullOrDef)
                {
                    return(false);
                }
            }
            if (ToolCell.hasDefaultOrNull(row, cols))
            {
                if (flagStopIfOneNullOrDef)
                {
                    return(false);
                }
            }
            return(true);
        }
        public override DataTable get()
        {
            string stock   = (string)ToolCell.isNull(getBuilder().getParameterValue(TableITEMS.LOGICALREF), string.Empty);
            short  priceid = (short)ToolCell.isNull(getBuilder().getParameterValue(EXTPRICEID), (short)0);


            getBuilder().deleteParameter(EXTPRICEID);


            DataTable prices   = base.get();
            string    priceCol = getPriceCol(priceid);

            prices.Columns.Add(EXTPRICECOL, typeof(double));
            if (priceid > 0 && prices.Columns.Contains(priceCol))
            {
                ToolColumn.copyColumn(prices, priceCol, EXTPRICECOL);
            }
            else
            {
                ToolColumn.setColumnValue(prices, EXTPRICECOL, 0.0);
            }
            //


            //
            return(prices);
        }
Пример #11
0
        void calcColumn(DataRow pRow, string pCol)
        {
            IEvaluator eval = evals[Array.IndexOf <string>(columnsCalc, pCol)];

            object[] vals = ToolRow.copyRowToArr(columnsVars, pRow);
            eval.setVarAll(vals);
            ToolCell.set(pRow, pCol, eval.getResult());
        }
Пример #12
0
                object convertToType(object pVal, Type pType)
                {
                    if (ToolCell.isNull(pVal))
                    {
                        pVal = ToolType.getTypeDefaulValue(pType);
                    }

                    return(Convert.ChangeType(pVal, pType));
                }
Пример #13
0
        //user need save
        public object save(Form pForm)
        {
            object res = null;
            bool   ok  = false;

            try
            {
                environment.beginBatch();
                res = adapter.update();
                environment.commitBatch();
                ok = true;
            }
            catch (Exception exc)
            {
                environment.rollbackBatch();
                environment.getExceptionHandler().setException(exc);
            }



            if (ok)
            {
                environment.docEnd();

                if (pForm != null)
                {
                    pForm.Close();
                }

                if (handlerReferenceInformer != null)
                {
                    handlerReferenceInformer.Invoke(this, res);
                }


                //     onSaved();
            }


            if (ok)
            {
                var ds   = adapter.getDataSet();
                var code = (ds != null && ds.Tables.Count > 0 ? ds.Tables[0].TableName : "DUMMY");
                if (ds != null)
                {
                    ToolMobile.logRuntime(string.Format(
                                              "Doc commited by [{0}] with id [{1}] and worked as [{2}]",
                                              code,
                                              ToolCell.isNull(res, "null").ToString(),
                                              adapter.getAdapterWorkState().ToString()
                                              ));
                }
            }

            return(res);
        }
Пример #14
0
        public static DataTable getMaterialUnitsBase(int stock, IEnvironment env, DataTable matUnits)
        {
            IPagedSource s = new PagedSourceUnits(env);

            for (int i = 0; i < matUnits.Rows.Count; ++i)
            {
                s.getBuilder().addParameterValue(TableUNITSETL.LOGICALREF, ToolCell.isNull(matUnits.Rows[i][TableITMUNITA.UNITLINEREF], LRef.undef), SqlTypeRelations.equal, SqlTypeRelations.boolOr);
            }
            return(s.getAll());
        }
Пример #15
0
        String getBoolRelToStr(DataRow row)
        {
            string res = SqlTypeRelationsString.convert((SqlTypeRelations)ToolCell.isNull((SqlTypeRelations)row[TableDUMMY.RELATIONBOOL], SqlTypeRelations.undef));

            if (res != string.Empty)
            {
                res = _space + res + _newLine;
            }
            return(res);
        }
Пример #16
0
        public static void setRecordEditor(DataRow row, IEnvironment env)
        {
            DateTime date = DateTime.Now;

            ToolCell.set(row, TableDUMMY.CAPIBLOCK_MODIFIEDBY, env.getInfoApplication().userId);
            ToolCell.set(row, TableDUMMY.CAPIBLOCK_MODIFIEDDATE, date.Date);
            ToolCell.set(row, TableDUMMY.CAPIBLOCK_MODIFIEDHOUR, date.Hour);
            ToolCell.set(row, TableDUMMY.CAPIBLOCK_MODIFIEDMIN, date.Minute);
            ToolCell.set(row, TableDUMMY.CAPIBLOCK_MODIFIEDSEC, date.Second);
        }
Пример #17
0
 public bool check(DataRow row)
 {
     if (eval == null)
     {
         eval = new ImplRowEvaluator(row.Table);
         eval.addExpression(exp, typeof(bool));
     }
     eval.setVar(row);
     return((bool)ToolCell.isNull(eval.getResult(), false));
 }
Пример #18
0
 public virtual void resetRefs()
 {
     foreach (DataTable tab in getDataSet().Tables)
     {
         foreach (DataRow row in tab.Rows)
         {
             ToolCell.set(row, TableDUMMY.ID, ToolCell.getCellTypeDefaulValue(tab.Columns[TableDUMMY.ID].DataType));
         }
     }
 }
Пример #19
0
        protected virtual bool needUpdate()
        {
            Object res = SqlExecute.executeScalar(environment, SqlExecute.translate(getReplaceList(), environment.prepareSqlText(SQLTextCollection.NeedUpdate)));

            if (ToolCell.isNull(res, string.Empty).ToString() == "1")
            {
                return(true);
            }
            return(false);
        }
 public void set(DataRow pRow)
 {
     if (pRow != null && validator.check(pRow))
     {
         for (int i = 0; i < cols.Length; ++i)
         {
             ToolCell.set(pRow, cols[i], vals[i]);
         }
     }
 }
Пример #21
0
 public virtual void initForColumnChanged(DataRow pRow)
 {
     for (int i = 0; i < columnsCalc.Length; ++i)
     {
         if (ToolCell.isNull(pRow[columnsCalc[i]]))
         {
             calcColumn(pRow, columnsCalc[i]);
         }
     }
 }
Пример #22
0
        protected virtual bool hasValidId(DataRow row, string col)
        {
            object defVal = ToolCell.getCellTypeDefaulValue(row.Table.Columns[col].DataType);
            object curId  = row[col];

            if (ToolCell.isNull(curId) || ToolType.isEqual(defVal, curId))
            {
                return(false);
            }
            return(true);
        }
Пример #23
0
 public static void setReportingCurrInfo(DataRow row, double rate, String colRate, String colTotal, String colCurTotal)
 {
     if (colRate != null)
     {
         ToolCell.set(row, colRate, rate);
     }
     if ((colTotal != null) && (colCurTotal != null) && (rate > ConstValues.minPositive) && (ToolCell.isNull(row[colTotal], null) != null))
     {
         ToolCell.set(row, colCurTotal, (double)row[colTotal] / rate);
     }
 }
Пример #24
0
 public void setVar(string name, object val)
 {
     try
     {
         ToolCell.set(evalData, name, ToolCell.isNull(val, DBNull.Value));
     }
     catch (Exception exc)
     {
         throw new MyException.MyExceptionError(MessageCollection.T_MSG_ERROR_DYNAMIC_EXPRESSION, exc);
     }
 }
Пример #25
0
        public override DataTable get()
        {
            short curr = (short)ToolCell.isNull(getBuilder().getParameterValue(TableCURRENCYLIST.CURTYPE), (short)-100);

            if (curr == 0)
            {
                getBuilder().deleteParameter(TableCURRENCYLIST.CURTYPE);
                getBuilder().addParameterValue(TableCURRENCYLIST.CURTYPE, environment.getInfoApplication().periodCurrencyNativeId);
            }

            return(base.get());
        }
Пример #26
0
 public virtual void setAdded()
 {
     getDataSet().AcceptChanges();
     foreach (DataTable tab in getDataSet().Tables)
     {
         foreach (DataRow row in tab.Rows)
         {
             row.SetAdded();
             ToolCell.set(row, TableDUMMY.ID, ToolCell.getCellTypeDefaulValue(tab.Columns[TableDUMMY.ID].DataType));
         }
     }
 }
 public void set(DataRow pRow)
 {
     if (pRow != null)
     {
         foreach (DataColumn col in pRow.Table.Columns)
         {
             if (Array.IndexOf <string>(cols, col.ColumnName) < 0)
             {
                 ToolCell.set(pRow, col.ColumnName, ToolCell.getCellTypeDefaulValue(col.DataType));
             }
         }
     }
 }
Пример #28
0
 private void saveSpeCols(DataRow dataRow, DataRow rowInDb)
 {
     if (rowInDb != null && dataRow != null)
     {
         foreach (DataColumn col in dataRow.Table.Columns)
         {
             if (col.ColumnName.StartsWith("SPE_"))
             {
                 ToolCell.set(rowInDb, col.ColumnName, dataRow[col]);
             }
         }
     }
 }
Пример #29
0
        void fillRemain(DataRow pRow)
        {
            string SPE_REMAIN = "SPE_REMAIN";

            DataTable tabList = getTable();

            if (tabList != null && tabList.DefaultView.Count > 0 && tabList.Columns.Contains(SPE_REMAIN))
            {
                bool isOrder = ToolSlip.isDsOrder(environment.getCurDoc());
                bool isSlip  = ToolSlip.isDsSlip(environment.getCurDoc());

                int indxMatLOGICALREF = tabList.Columns.IndexOf(TableITEMS.LOGICALREF);
                int indxMatONHAND     = tabList.Columns.IndexOf(TableITEMS.ONHAND);
                int indxMatONHANDIO   = tabList.Columns.IndexOf(TableITEMS.ONHANDIO);
                int indxMatONMAIN     = tabList.Columns.IndexOf(TableITEMS.ONMAIN);
                int indxMatSPE_REMAIN = tabList.Columns.IndexOf(SPE_REMAIN);



                foreach (DataRowView v in tabList.DefaultView)
                {
                    if (pRow == null || object.ReferenceEquals(v.Row, pRow))
                    {
                        double remain = 0;
                        if (isOrder)
                        {
                            remain = (double)v[indxMatONMAIN];
                        }
                        else
                        // if (   isSlip)
                        {
                            object lref_ = v[indxMatLOGICALREF];

                            remain = (double)v[indxMatONHAND];
                            if (indxMatONHANDIO < 0)
                            {
                                remain += environment.getMatIOAmount(lref_);
                            }
                            else
                            {
                                remain += Convert.ToDouble(ToolCell.isNull(v[indxMatONHANDIO], 0));
                                remain += environment.getMatIOAmountDoc(lref_);
                            }
                        }


                        v.Row[indxMatSPE_REMAIN] = remain;
                    }
                }
            }
        }
Пример #30
0
 public double getMatDBIO(object id)
 {
     //if (_tableIO == null)
     //    refreshIOTable();
     //DataRow rowIO = _tableIO.Rows.Find(id);
     //if (rowIO != null && !rowIO.IsNull(indxIOAmount))
     //    return (double)rowIO[indxIOAmount];
     //return 0;
     if (!ToolCell.isNull(id))
     {
         return(Convert.ToDouble(ToolCell.isNull(SqlExecute.executeScalar(environment, "SELECT ONHANDIO FROM LG_$FIRM$_ITEMS WHERE LOGICALREF = @P1", new object[] { id }), 0)));
     }
     return(0);
 }