Пример #1
0
        private void FillSelf(DataRow row, bool fillObj = false, bool fillNames = false)
        {
            Id = Db.DbHelper.GetValueIntOrDefault(row, "id");
            IdClaim = Db.DbHelper.GetValueIntOrDefault(row, "id_claim");
            IdClaim2ClaimState = Db.DbHelper.GetValueIntOrDefault(row, "id_claim2claim_state");
            ProcessEnabled = Db.DbHelper.GetValueBool(row, "process_enabled");
            DeviceEnabled = Db.DbHelper.GetValueBool(row, "device_enabled");
            ZipClaim = Db.DbHelper.GetValueBoolOrNull(row, "zip_claim");
            ZipClaimNumber = Db.DbHelper.GetValueString(row, "zip_claim_number");
            CounterMono = Db.DbHelper.GetValueIntOrNull(row, "counter_mono");
            CounterColor = Db.DbHelper.GetValueIntOrNull(row, "counter_color");
            CounterTotal = Db.DbHelper.GetValueIntOrNull(row, "counter_total");
            NoCounter = Db.DbHelper.GetValueBoolOrNull(row, "no_counter");
            Descr = Db.DbHelper.GetValueString(row, "descr");
            CounterUnavailable = Db.DbHelper.GetValueBoolOrNull(row, "counter_unavailable");
            CounterDescr = Db.DbHelper.GetValueString(row, "counter_descr");
            CreatorSid = Db.DbHelper.GetValueString(row, "creator_sid");
            EngeneerSid = Db.DbHelper.GetValueString(row, "engeneer_sid");
            AdminSid = Db.DbHelper.GetValueString(row, "admin_sid");
            DeviceId = Db.DbHelper.GetValueIntOrDefault(row, "id_device");
            WorkTypeId = Db.DbHelper.GetValueIntOrDefault(row, "id_work_type");
            TimeOnWorkMinutes = Db.DbHelper.GetValueIntOrNull(row, "time_on_work_minutes");
            ClientSdNum = Db.DbHelper.GetValueString(row, "client_sd_num");
            DateCreate = Db.DbHelper.GetValueDateTimeOrDefault(row, "date_create");

            if (fillNames)
            {
                Admin = new EmployeeSm(AdminSid);
                Engeneer = new EmployeeSm(EngeneerSid);
                Creator = new EmployeeSm(CreatorSid);
            }

            if (fillObj)
            {
                Device = new Device(DeviceId);
                WorkType = new WorkType(WorkTypeId);
                DeviceClassifierCaterory = new ClassifierCaterory(Device.ClassifierCategoryId);
            }
        }
Пример #2
0
        public static ClassifierCaterory GetParentCategory(string number)
        {
            var parent = new ClassifierCaterory();

            if (number.Length > 0)
            {
                //Преобразовывает номер к номеру родителя
                int pointIndex = number.LastIndexOf(".", StringComparison.Ordinal);
                string parentNumber = number.Substring(0, pointIndex);
                parent = new ClassifierCaterory(parentNumber);
            }
            return parent;
        }
Пример #3
0
        public static IEnumerable<ClassifierCaterory> GetLowerList()
        {
            //SqlParameter pIdAdmin = new SqlParameter() { ParameterName = "id_admin", SqlValue = idAdmin, SqlDbType = SqlDbType.Int };
            var dt = Db.Service.ExecuteQueryStoredProcedure("get_lower_classifier_category_list");

            var lst = new List<ClassifierCaterory>();

            foreach (DataRow row in dt.Rows)
            {
                var model = new ClassifierCaterory(row);
                lst.Add(model);
            }

            return lst;
        }
Пример #4
0
        public static void SaveFromExcel(XLWorkbook wb, string creatorSid)
        {
            var attrs = ClassifierAttributes.Get();
            int wtCnt = WorkType.GetList().Count();
            var ws = wb.Worksheet(1);

            var workTypes = WorkType.GetList();

            int r = 0;
            int headerRow = r+2;
            foreach (var row in ws.Rows())
            {
                r++;
                if (r <= headerRow) continue;
                int c = 1;
                if (String.IsNullOrEmpty(row.Cell(c).Value.ToString())) break;
                string catName = row.Cell(c).Value.ToString();
                c++;
                string catNumber = row.Cell(c).Value.ToString();
                c++;
                int catComplexity;
                int.TryParse(row.Cell(c).Value.ToString(), out catComplexity);

                var cat = new ClassifierCaterory() { Name = catName, Number = catNumber, Complexity = catComplexity, CurUserAdSid = creatorSid };
                cat.Save();

                int colOffset = c;
                c++;
                while (!String.IsNullOrEmpty(ws.Row(headerRow).Cell(c).Value.ToString()))
                {
                    int idCategory = cat.Id;
                    var headerVal = ws.Row(headerRow).Cell(c).Value;
                    string wtValue = headerVal.ToString().Trim();
                    int pointIndex = wtValue.IndexOf(".", StringComparison.Ordinal);
                    string currWorkTypeSysName = wtValue;
                    string wtType = String.Empty;

                    if (pointIndex > -1)
                    {
                        currWorkTypeSysName = wtValue.Remove(pointIndex);
                        wtType = wtValue.Substring(pointIndex);
                    }

                    int idWorkType = workTypes.Any(x => x.SysName == currWorkTypeSysName)
                        ? workTypes.First(x => x.SysName == currWorkTypeSysName).Id
                        : 0;

                    var clItem = new ClassifierItem() { IdCategory = idCategory, IdWorkType = idWorkType, CurUserAdSid = creatorSid };

                    //string cellAddress = row.Cell(c).Address.ToStringRelative();
                    //var cVal = ws.Cell(cellAddress).Value;

                    if (currWorkTypeSysName.Equals("НПР"))
                    {
                        string s = "";
                    }

                    if (String.IsNullOrEmpty(wtType))
                    {
                        int flag = (c - colOffset - 1) / wtCnt;

                        switch (flag)
                        {
                            //первая шеренга типов работ - это время
                            case 0:
                                wtType = ".t";
                                break;
                            //ыторая шеренга типов работ - это прайс
                            case 1:
                                wtType = ".wi";
                                break;
                        }
                    }

                    if (!String.IsNullOrEmpty(wtType) && (wtType.Equals(".t") || wtType.Equals(".wi")))
                    {
                        string cellValue = row.Cell(c).Value.ToString();
                        switch (wtType)
                        {
                            case ".t":
                                int t;
                                int.TryParse(cellValue, out t);
                                clItem.Time = t;
                                break;
                            case ".wi":
                                decimal wi;
                                decimal.TryParse(cellValue, out wi);
                                clItem.Price = wi;
                                clItem.CostPeople = clItem.Price + attrs.Wage;
                                clItem.CostCompany = clItem.Price + attrs.Overhead;
                                break;
                                //case ".f":
                                //    decimal f;
                                //    decimal.TryParse(cellValue, out f);
                                //    clItem.Price = f;
                                //    break;
                                //case ".wc":
                                //    decimal wc;
                                //    decimal.TryParse(cellValue, out wc);
                                //    clItem.Price = wc;
                                //    break;
                        }
                        clItem.Save();
                    }
                    c++;
                }

            }
        }