Пример #1
0
        public void loadTemplateConditionalFormatting(TemplateColumns col)
        {
            if (col.templateConditionalFormatting != null)
            {
                col.templateConditionalFormatting.Clear();
            }

            query = "SELECT formattingID, op, color, number FROM templateColumn_formatting WHERE templateColumnID = " + col.templateColumnID;
            DataTable dtFormatting = null;

            try
            {
                dtFormatting = db.read(query);
            }
            catch (Exception ee)
            {
                throw new DataException("Unable to load template columns: " + ee.Message, ee);
            }

            List <TemplateConditionalFormatting> formats = new List <TemplateConditionalFormatting>();

            for (int j = 0; j < dtFormatting.Rows.Count; j++)
            {
                formats.Add(bindFormatting(dtFormatting.Rows[j]));
            }

            col.templateConditionalFormatting = formats;
        }
Пример #2
0
        public void swopColumns(Templates selectedTemplate, TemplateColumns selectedColumn, DIRECTION dir)
        {
            TemplateColumns swopColumn            = new TemplateColumns();
            int             currentColumnPosition = selectedColumn.position;

            if (dir == DIRECTION.UP)
            {
                //can't move top up
                if (currentColumnPosition == 1)
                {
                    throw new Exception("Unable to move column: This column is already at the top");
                }

                //gets the column position to swop with
                swopColumn = selectedTemplate.getColumnWithPosition(currentColumnPosition - 1);
                if (swopColumn == null)
                {
                    throw new Exception("Unable to determine swop column");
                }
            }
            else
            {
                //can't move last one down
                if (currentColumnPosition == (getNewTemplateColumnPosition(selectedTemplate) - 1))
                {
                    throw new Exception("Unable to move column: This column is already at the bottom");
                }


                //gets the column position to swop with
                swopColumn = selectedTemplate.getColumnWithPosition(currentColumnPosition + 1);
                if (swopColumn == null)
                {
                    throw new Exception("Unable to determine swop column");
                }
            }

            ArrayList queries = new ArrayList();

            queries.Add("UPDATE templateColumns SET position = " + swopColumn.position + " WHERE templateColumnID = " + selectedColumn.templateColumnID);
            queries.Add("UPDATE templateColumns SET position = " + currentColumnPosition + " WHERE templateColumnID = " + swopColumn.templateColumnID);
            try
            {
                db.writeTransaction(queries);
            }
            catch (Exception ee)
            {
                throw new Exception("Unable to move column: " + ee.Message);
            }

            try
            {
                loadTemplateColumns(selectedTemplate);
            }
            catch (DataException ee)
            {
                throw;
            }
        }
Пример #3
0
        public void insertFormatting(TemplateColumns column, string op, decimal number, Color color)
        {
            string convertToDB = color.A + "#" + color.R + "#" + color.G + "#" + color.B;

            query = "INSERT INTO templateColumn_formatting (templateColumnID, op, color, number) VALUES (" + column.templateColumnID + ", '" + op + "', '" + convertToDB + "', " + number + ")";
            try
            {
                db.write(query);
            }
            catch (Exception ee)
            {
                throw new DataException("Unable to insert formatting: " + ee.Message, ee);
            }
        }
Пример #4
0
        private DataTable getTemplateStockItemsMaster(Supplier s, Templates selectedTemplate)
        {
            //build select
            string columns = "";

            for (int i = 0; i < selectedTemplate.templateColumns.Count; i++)
            {
                TemplateColumns tc = selectedTemplate.templateColumns[i];

                if (string.IsNullOrWhiteSpace(tc.databaseColumn))
                {
                    if (tc.calculationType == columnCalculationType.MERGE)
                    {
                        string[] parts = tc.calculation.Split(new char[] { '+' });
                        for (int p = 0; p < parts.Length; p++)
                        {
                            string valColumn = parts[p].Replace("]", "").Replace("[", "").Trim();
                            if (!valColumn.Contains("space") & valColumn != "")
                            {
                                columns += valColumn + ",";
                            }
                        }
                    }
                }
                else
                {
                    columns += tc.databaseColumn + ",";
                }
            }

            columns += "mustExport, overrideMargins, d_agencyMargin, d_grossMargin, d_discount, shortCode, productCode_Orig, active";

            query = @"SELECT " + columns + @" FROM " + stockTableName + " WHERE supplierID = " + s.supplierID;

            DataTable dt = null;

            try
            {
                dt = db.read(query);
            }
            catch (Exception ee)
            {
                throw new DataException("Unable to retrieve template stock items: " + ee.Message, ee);
            }

            return(dt);
        }
Пример #5
0
        private string[] buildQueryStringTemplateColumns(QueryTypes queryType, TemplateColumns itemToUse)
        {
            List <Type> allowedTypes = new List <Type>();

            allowedTypes.Add(typeof(string));
            allowedTypes.Add(typeof(bool));
            allowedTypes.Add(typeof(int));
            allowedTypes.Add(typeof(decimal));
            allowedTypes.Add(typeof(columnCalculationType));
            allowedTypes.Add(typeof(columnTypes));

            List <string> properties = new List <string>();


            Type info = typeof(TemplateColumns);

            foreach (PropertyInfo pi in info.GetProperties())
            {
                if (allowedTypes.Contains(pi.PropertyType))
                {
                    properties.Add(pi.Name);
                }
            }

            string[] returnQuery = new string[2];
            switch (queryType)
            {
            case QueryTypes.SELECT:
            {
                foreach (string s in properties)
                {
                    returnQuery[0] += s + ", ";
                }
            } break;

            case QueryTypes.INSERT:
            {
            }
            break;
            }

            returnQuery[0] = returnQuery[0].Substring(0, returnQuery.Length - 2);

            return(returnQuery);
        }
        private void OnTemplateTypeChanged()
        {
            TemplateColumns.Clear();
            PropertyNames.Clear();
            var allProps = ImportFactory.GetEditableProperties(TemplateType);

            foreach (var prop in allProps)
            {
                PropertyNames.Add(prop.Name);
            }

            var requiredProperties = ImportFactory.GetRequiredProperties(TemplateType);

            foreach (var prop in requiredProperties)
            {
                TemplateColumns.Add(new TemplateColumn()
                {
                    IsRequired   = true,
                    IsMandatory  = true,
                    PropertyName = prop.Name,
                    ColumnName   = prop.Name
                });
            }
        }
Пример #7
0
        private TemplateColumns bindTemplateColumns(DataRow dr)
        {
            TemplateColumns tc = new TemplateColumns();

            tc.templateColumnID = dr["templateColumnID"].ToString();
            tc.csvHeader        = dr["csvHeader"].ToString();
            tc.databaseColumn   = dr["databaseColumn"].ToString();
            switch (dr["calculationType"].ToString())
            {
            case "CALCULATE": { tc.calculationType = columnCalculationType.CALCULATE; } break;

            case "MERGE": { tc.calculationType = columnCalculationType.MERGE; } break;

            case "NONE": { tc.calculationType = columnCalculationType.NONE; } break;

            case "COPY": { tc.calculationType = columnCalculationType.COPY; } break;

            default: { tc.calculationType = columnCalculationType.NONE; } break;
            }

            columnTypes selectedFormat = columnTypes.STRING;

            switch (dr["columnType"].ToString())
            {
            case "STRING": { selectedFormat = columnTypes.STRING; } break;

            case "DECIMAL 0.00": { selectedFormat = columnTypes.DECIMAL_18_2; } break;

            case "DECIMAL 0.000": { selectedFormat = columnTypes.DECIMAL_18_3; } break;

            case "DECIMAL 0.0000": { selectedFormat = columnTypes.DECIMAL_18_4; } break;

            case "DECIMAL 0.00000": { selectedFormat = columnTypes.DECIMAL_18_5; } break;
            }

            tc.columnType    = selectedFormat;
            tc.calculation   = dr["calculation"].ToString();
            tc.applyRounding = bool.Parse(dr["applyRounding"].ToString());
            tc.dontOverride  = bool.Parse(dr["dontOverride"].ToString());
            tc.position      = int.Parse(dr["position"].ToString());
            tc.exportDefault = dr["exportDefault"].ToString();
            if (!string.IsNullOrWhiteSpace(dr["includeAttributes"].ToString()))
            {
                tc.includeAttributes = bool.Parse(dr["includeAttributes"].ToString());
            }
            tc.specialsBasePriceCSVColumn = dr["specialsBasePriceCSVColumn"].ToString();
            if (!string.IsNullOrWhiteSpace(dr["isSpecialsExportColumn"].ToString()))
            {
                tc.isSpecialsExportColumn = bool.Parse(dr["isSpecialsExportColumn"].ToString());
            }
            if (!string.IsNullOrWhiteSpace(dr["keepOriginalData"].ToString()))
            {
                tc.keepOriginalData = bool.Parse(dr["keepOriginalData"].ToString());
            }
            else
            {
                tc.keepOriginalData = true;
            }

            return(tc);
        }