コード例 #1
0
        public DataRow[] get(DataRow row)
        {
            DataRow[] rows  = new DataRow[0];
            DataTable table = row.Table;

            //
            if (row != null)
            {
                // if (row.RowState != DataRowState.Deleted)
                for (int i = 0; i < table.Rows.Count; ++i)
                {
                    DataRow locRow = table.Rows[i];
                    if (locRow.RowState != DataRowState.Deleted)
                    {
                        if ((!ToolStockLine.isLineStlineGlobal(locRow)) && ToolStockLine.isLineMonetary(locRow))
                        {
                            if (rows == null)
                            {
                                rows = new DataRow[] { locRow }
                            }
                        }
                    }
                    ;
                    else
                    {
                        rows = ToolArray.resize <DataRow>(rows, rows.Length + 1);

                        rows[rows.Length - 1] = locRow;
                    }
                }
コード例 #2
0
        public DataRow[] get(DataRow row)
        {
            DataRow[] rows  = new DataRow[0];
            DataTable table = row.Table;

            //
            if (row != null && row.RowState != DataRowState.Deleted)
            {
                if (!ToolStockLine.isLineStlineGlobal(row))
                {
                    if (ToolStockLine.isLinePureMoney(row))
                    {
                        for (int i = table.Rows.IndexOf(row) - 1; i >= 0; --i)
                        {
                            DataRow locRow = table.Rows[i];
                            if (locRow.RowState != DataRowState.Deleted)
                            {
                                if (ToolStockLine.isLineMonetary(locRow) && (!ToolStockLine.isLineStlineGlobal(locRow)))
                                {
                                    rows = new DataRow[] { locRow };
                                    break;
                                }
                            }
                        }
                    }
                    else
                    if (ToolStockLine.isLineMonetary(row))
                    {
                        rows = new DataRow[] { row };
                    }
                }
            }
            return(rows);
        }
コード例 #3
0
        public InfoInvoiceSum calcSlipSum(DataSet pDataSet)
        {
            DataTable      pTabSTLINE  = pDataSet.Tables[TableSTLINE.TABLE];
            DataTable      pTabINVOICE = pDataSet.Tables[TableINVOICE.TABLE];
            InfoInvoiceSum infoSum     = new InfoInvoiceSum();

            for (int i = 0; i < pTabSTLINE.Rows.Count; ++i)
            {
                DataRow row = pTabSTLINE.Rows[i];

                if (isUsedRow(row) && !ToolRow.isDeleted(row))
                {
                    if (ToolStockLine.isLineMaterial(row))
                    {
                        double tot    = getLineRealTotal(row);
                        double totNet = getLineNetTotal(row);
                        infoSum.sumOfTotal   += tot;
                        infoSum.sumOfLocDisc += (tot - totNet);
                    }
                    if (ToolStockLine.isLinePromotion(row))
                    {
                        double tot = getLineRealTotal(row);
                        infoSum.sumOfLocPromo += tot;
                    }
                }
            }

            double gDisc = (double)ToolColumn.getColumnLastValue(pTabINVOICE, TableINVOICE.DISCPER, 0.0);

            infoSum.sumOfGlobDisc = (infoSum.sumOfTotal - infoSum.sumOfLocDisc) * (gDisc / 100);
            return(infoSum);
        }
コード例 #4
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;
                }
            }
        }
コード例 #5
0
 public bool check(DataRow row)
 {
     if (
         ToolStockLine.isLineStlineGlobal(row)
         )
     {
         return(true);
     }
     return(false);
 }
コード例 #6
0
 public bool check(DataRow row)
 {
     if (
         ToolStockLine.isLineDeposit(row) ||
         ToolStockLine.isLineMaterial(row) ||
         ToolStockLine.isLineMixed(row) ||
         ToolStockLine.isLinePromotion(row) ||
         ToolStockLine.isLineService(row)
         )
     {
         return(true);
     }
     return(false);
 }
コード例 #7
0
        public DataRow[] get(DataRow row)
        {
            DataRow[] rows  = new DataRow[0];
            DataTable table = row.Table;

            //
            if (row != null && row.RowState != DataRowState.Deleted)
            {
                if (!ToolStockLine.isLineStlineGlobal(row))
                {
                    if (ToolStockLine.isLineMonetary(row))
                    {
                        for (int i = table.Rows.IndexOf(row) + 1; i < table.Rows.Count; ++i)
                        {
                            DataRow locRow = table.Rows[i];
                            if (locRow.RowState != DataRowState.Deleted)
                            {
                                if (ToolStockLine.isLineMonetary(locRow))
                                {
                                    break;
                                }
                                if ((!ToolStockLine.isLineStlineGlobal(locRow)) && ToolStockLine.isLinePureMoney(locRow))
                                {
                                    if (rows == null)
                                    {
                                        rows = new DataRow[] { locRow }
                                    }
                                    ;
                                    else
                                    {
                                        rows = ToolArray.resize <DataRow>(rows, rows.Length + 1);

                                        rows[rows.Length - 1] = locRow;
                                    }
                                }
                            }
                        }
                    }
                    else
                    if (ToolStockLine.isLinePureMoney(row))
                    {
                        rows = new DataRow[] { row };
                    }
                }
            }
            return(rows);
        }
コード例 #8
0
        protected override void deleteExcessData(DataSet pDataSet)
        {
            base.deleteExcessData(pDataSet);
            DataTable table = pDataSet.Tables[TableSTLINE.TABLE];

            for (int i = 0; i < table.Rows.Count; ++i)
            {
                if (table.Rows[i].RowState != DataRowState.Deleted)
                {
                    if (ToolStockLine.isLineMaterialized(table.Rows[i]))
                    {
                        if ((Double)table.Rows[i][TableSTLINE.AMOUNT] < ConstValues.minPositive)
                        {
                            table.Rows[i].Delete();
                        }
                    }
                }
            }
        }
コード例 #9
0
        protected override bool isEmptyData(DataSet pDataSet)
        {
            DataTable table = pDataSet.Tables[TableSTLINE.TABLE];

            for (int i = 0; i < table.Rows.Count; ++i)
            {
                if (table.Rows[i].RowState != DataRowState.Deleted)
                {
                    if (ToolStockLine.isLineMaterialized(table.Rows[i]))
                    {
                        if ((Double)table.Rows[i][TableSTLINE.AMOUNT] > ConstValues.minPositive)
                        {
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
コード例 #10
0
        private void fillSchema(DataRow rowDocLine)
        {
            _curMatRecord = ToolStockLine.getItemData(environment, rowDocLine[TableSTLINE.STOCKREF]);

            //

            //if (_checkLevel)
            {
                //object docLRef = rowDocHeader[TableINVOICE.LOGICALREF];
                object lref   = rowDocLine[TableSTLINE.STOCKREF];
                double onhand = (double)ToolCell.isNull(_curMatRecord[TableITEMS.ONHAND], 0.0);
                onhand += environment.getMatIOAmount(lref);
                //onhand += ToolStockLine.itemAmountInDoc(lref, rowDocLine.Table);
                //onhand += ToolStockLine.itemAmountInDB(environment, lref, docLRef);
                ToolCell.set(_curMatRecord, TableITEMS.ONHAND, onhand);
            }


            //
            if (handler.report != null)
            {
                handler.report.setDataSource(_curMatRecord.Table);
                handler.report.refreshSource();
            }
            //
            _tableSchema.Clear();



            string unit   = string.Empty;
            double amount = (double)ToolCell.isNull(rowDocLine[TableSTLINE.AMOUNT], 0.0);

            if (ToolDouble.isZero(amount) && CurrentVersion.ENV.getEnvBool("STOCKAMOUNTONE", false))
            {
                amount = 1.0;
            }

            double  price   = (double)ToolCell.isNull(rowDocLine[TableSTLINE.PRICE], 0.0);
            double  total   = (double)ToolCell.isNull(rowDocLine[TableSTLINE.TOTAL], 0.0);
            double  disperc = (double)ToolCell.isNull(rowDocLine[TableSTLINE.DISCPER], 0.0);
            double  uinfo1  = 0.0;
            double  uinfo2  = 0.0;
            DataRow newRow;

            //
            newRow = ToolRow.initTableNewRow(_tableSchema.NewRow());
            newRow[TableDUMMY.UNIT]     = unit = (string)ToolCell.isNull(_curMatRecord[TableITEMS.UNIT1], string.Empty);
            newRow[TableDUMMY.UNITREF]  = (string)ToolCell.isNull(_curMatRecord[TableITEMS.UNITREF1], string.Empty);
            newRow[TableDUMMY.UNITCF01] = uinfo1 = (double)ToolCell.isNull(_curMatRecord[TableITEMS.UNITCF1], 0.0);
            newRow[TableDUMMY.UNITCF02] = uinfo2 = (double)ToolCell.isNull(_curMatRecord[TableITEMS.UNITCF1], 0.0);
            newRow[TableDUMMY.CONVFACT] = (uinfo1 > ConstValues.minPositive ? uinfo2 / uinfo1 : 1.0);

            newRow[TableDUMMY.AMOUNT]  = amount;
            newRow[TableDUMMY.PRICE]   = price;
            newRow[TableDUMMY.TOTAL]   = total;
            newRow[TableDUMMY.DISCPER] = disperc;

            _tableSchema.Rows.Add(newRow);
            //
            newRow = ToolRow.initTableNewRow(_tableSchema.NewRow());
            newRow[TableDUMMY.UNIT]     = unit = (string)ToolCell.isNull(_curMatRecord[TableITEMS.UNIT2], string.Empty);
            newRow[TableDUMMY.UNITREF]  = (string)ToolCell.isNull(_curMatRecord[TableITEMS.UNITREF2], string.Empty);
            newRow[TableDUMMY.UNITCF01] = uinfo1 = (double)ToolCell.isNull(_curMatRecord[TableITEMS.UNITCF1], 0.0);
            newRow[TableDUMMY.UNITCF02] = uinfo2 = (double)ToolCell.isNull(_curMatRecord[TableITEMS.UNITCF2], 0.0);
            newRow[TableDUMMY.CONVFACT] = (uinfo1 > ConstValues.minPositive ? uinfo2 / uinfo1 : 1.0);
            if ((unit != string.Empty))
            {
                _tableSchema.Rows.Add(newRow);
            }

            //
            newRow = ToolRow.initTableNewRow(_tableSchema.NewRow());
            newRow[TableDUMMY.UNIT]     = unit = (string)ToolCell.isNull(_curMatRecord[TableITEMS.UNIT3], string.Empty);
            newRow[TableDUMMY.UNITREF]  = (string)ToolCell.isNull(_curMatRecord[TableITEMS.UNITREF3], string.Empty);
            newRow[TableDUMMY.UNITCF01] = uinfo1 = (double)ToolCell.isNull(_curMatRecord[TableITEMS.UNITCF1], 0.0);
            newRow[TableDUMMY.UNITCF02] = uinfo2 = (double)ToolCell.isNull(_curMatRecord[TableITEMS.UNITCF3], 0.0);
            newRow[TableDUMMY.CONVFACT] = (uinfo1 > ConstValues.minPositive ? uinfo2 / uinfo1 : 1.0);
            if ((unit != string.Empty))
            {
                _tableSchema.Rows.Add(newRow);
            }
            //
            refreshVal();
            //
            //check
            //string userUnitRef = (string)ToolCell.isNull(rowDocLine[TableSTLINE.UNITREF], string.Empty);
            //for (int i = 0; i < _tableSchema.Rows.Count; ++i)
            //{
            //    DataRow row = _tableSchema.Rows[i];
            //    string unitRef = (string)row[TableDUMMY.UNITREF];
            //    if (userUnitRef == unitRef)
            //        cBoxUnits.SelectedIndex = i;
            //}
        }