private void LoadData()
        {
            MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка данных", StatusText = @"Загрузка данных о нарядах" };
            sp0.WorkingFunction = () =>
            {
                _assInfos = new List<AssInfo>();
                NumEquipmentsDataContext context = new NumEquipmentsDataContext();
                var data = context.NumEquipmentEntities.AssignmentStates
                    .Where(state => state.Created >= DbFunctions.AddDays(dpFrom.Value, -1) & state.Created <= DbFunctions.AddDays(dpTo.Value, 1))
                    .Join(
                        context.NumEquipmentEntities.Assignments,
                        state => state.Nomer,
                        assignment => assignment.Nomer,
                        (state, assignment) => new
                        {
                            assignment.FirmId,
                            assignment.Customer_Id,
                            assignment.Nomer,
                            assignment.Address,
                            assignment.Kur_desc,
                            assignment.Printed,
                            assignment.Closed,
                            state.Created
                        });
                if (cbAssAddData.Checked)
                {
                    _assInfos =
                        (from ass in data
                            from cust in context.NumEquipmentEntities.Customers
                                .Where(c => c.FirmId == ass.FirmId)
                                .Where(c => c.Customer_id == ass.Customer_Id)
                                .DefaultIfEmpty()
                            select new AssInfo()
                            {
                                Nomer = ass.Nomer,
                                Address = ass.Address,
                                Kur_Desc = ass.Kur_desc,
                                Customer = cust.Title,
                                Created = ass.Created,
                                Closed = ass.Closed.Value,
                                Printed = ass.Printed.Value
                            }).OrderByDescending(o => o.Created).ToList();
                }
                else
                {
                    _assInfos = data.Select(d => new AssInfo()
                    {
                        Nomer = d.Nomer,
                        Address = d.Address,
                        Kur_Desc = "",
                        Customer ="",
                        Created = d.Created,
                        Closed = d.Closed.Value,
                        Printed = d.Printed.Value
                    }).OrderByDescending(o => o.Created).ToList();
                }
                Extensions.RunActionInGUIThread(() =>
                {
                    SetGridVisualStyle();
                    gvAssignments.DataSource = _assInfos;
                }, _uiScheduler);
            };
            sp0.ShowDialog(this);

        }
Exemple #2
0
        private void btSelectAddress_Click(object sender, EventArgs e)
        {
            InputSingleLineComboBox inp = new InputSingleLineComboBox
            {
                Text = @"Добавление адреса площадки абонента",
                Label2 = {Text = @"Географический адрес:"},
                Label1 = {Text = @"Дополнительные данные:"},
                ComboBox1 =
                {
                    ValueMember = "streetID",
                    DisplayMember = "streetNameUkr",
                    AutoCompleteSource = AutoCompleteSource.ListItems,
                    DropDownStyle = ComboBoxStyle.DropDown,
                    AutoCompleteMode = AutoCompleteMode.Suggest
                }
            };
            inp.tlMain.SetRow(inp.tlTextBox, 1);
            inp.tlMain.SetRow(inp.tlComboBox, 0);
            Cursor = Cursors.WaitCursor;
            NumEquipmentsDataContext context=new NumEquipmentsDataContext();
            List<Street> comboData = context.NumEquipmentEntities.Streets.OrderBy(item => item.streetNameUkr).Where(item => !string.IsNullOrEmpty(item.streetNameUkr)).ToList();
            inp.ComboBox1.DataSource = comboData;
            inp.ActiveControl = inp.ComboBox1;
            inp.RequireComboBoxValue = true;
            Cursor = Cursors.Default;
            if (inp.ShowDialog(this) == DialogResult.OK)
            {
                var street = inp.ComboBox1.SelectedItem as Street;
                string address;
                if (street != null)
                {
                    address = street.streetNameUkr + ", " + inp.InputLine1.Text;
                }
                else
                {
                    address = inp.InputLine1.Text;
                }
                tbAddress.Text = address;
                tbAssignment.Text = string.Empty;
                tbEvent.Text = string.Empty;
            }

        }
Exemple #3
0
 private void LoadReport()
 {
     _dataLoading = true;
     List<CustomerInfo> customers = new List<CustomerInfo>();
     MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" };
     _watch = null;
     sp0.WorkingFunction = () =>
     {
         NumEquipmentsDataContext numEquContext = new NumEquipmentsDataContext();
         if (_cachedCustomers==null)
             _cachedCustomers = numEquContext.NumEquipmentEntities.Customers.Where(cust => cust.Visible.HasValue && cust.Visible.Value).ToList();
         InstallersWorks_Entities context = new InstallersWorks_Entities();
         var data = context.InstallersWorks_Works
             .Include(i => i.InstallersWorks_WorkTypes);
         if (dpFrom.Enabled)
             data = data
                 .Where(w =>
                     DbFunctions.TruncateTime(w.WorkDate) >= DbFunctions.TruncateTime(dpFrom.Value) &
                     DbFunctions.TruncateTime(w.WorkDate) <= DbFunctions.TruncateTime(dpTo.Value));
         data = data.OrderByDescending(o => o.WorkDate);
         EventsDataContext eventsContext = new EventsDataContext();
         foreach (var grp in data.GroupBy(work => work.WorkId))
         {
             var firstWork = grp.FirstOrDefault();
             if (firstWork == default(InstallersWorks_Works))
             {
                 throw new InvalidDataException("getting firstWork");
             }
             if (!string.IsNullOrEmpty(firstWork.Event)) //авария
             {
                 var workEvent = eventsContext.EventsEntities.Events.FirstOrDefault(e => e.Number.ToString() == firstWork.Event);
                 if (workEvent==null)
                     throw new InvalidDataException("getting workEvent");
                 int firmId = workEvent.FirmId.HasValue ? workEvent.FirmId.Value : -1;
                 int customerId = workEvent.CustomerId.HasValue ? workEvent.CustomerId.Value : -1;
                 if (firmId<0 | customerId <0)
                     throw new InvalidDataException("getting customer info");
                 customers.Add(new CustomerInfo()
                 {
                     Address = firstWork.Address,
                     FirmId = firmId,
                     CustomerId = customerId,
                     WorkType = firstWork.InstallersWorks_WorkTypes.TypeDescription
                 });
             }
             else if (!string.IsNullOrEmpty(firstWork.AssNomer)) //наряд
             {
                 var workAssignment = numEquContext.NumEquipmentEntities.Assignments.SingleOrDefault(a => a.Nomer == firstWork.AssNomer);
                 if (workAssignment == null)
                     throw new InvalidDataException("getting workAssignment");
                 int firmId = workAssignment.FirmId;
                 int customerId = Convert.ToInt32(workAssignment.Customer_Id);
                 customers.Add(new CustomerInfo()
                 {
                     Address = firstWork.Address,
                     FirmId = firmId,
                     CustomerId = customerId,
                     WorkType = firstWork.InstallersWorks_WorkTypes.TypeDescription
                 });
             }
             else //другое
             {
                 customers.Add(new CustomerInfo()
                 {
                     Address = firstWork.Address,
                     Title = "Без номера договора",
                     FirmId = -1,
                     CustomerId = -1,
                     WorkType = firstWork.InstallersWorks_WorkTypes.TypeDescription
                 });
             }
         }
         foreach (CustomerInfo customerInfo in customers)
         {
             var cli = customerInfo;
             if (cli.FirmId != -1)
             {
                 var ci = _cachedCustomers.SingleOrDefault(c => c.FirmId == cli.FirmId & c.Customer_id.Trim() == cli.CustomerId.ToString());
                 customerInfo.Title = ci == null ? "Абонент удален" : ci.Title;
             }
         }
         _dataSet.PerAbonentDataSimple.Clear();
         foreach (CustomerInfo customerInfo in customers)
         {
             ReportDataSet.PerAbonentDataSimpleRow newRow = _dataSet.PerAbonentDataSimple.NewPerAbonentDataSimpleRow();
             newRow.Firmid = customerInfo.FirmId;
             newRow.CustomerId = customerInfo.CustomerId;
             newRow.Address = customerInfo.Address;
             newRow.WorkType = customerInfo.WorkType;
             newRow.Title = customerInfo.Title;
             _dataSet.PerAbonentDataSimple.AddPerAbonentDataSimpleRow(newRow);
         }
         Extensions.RunActionInGUIThread(() =>
         {
             sp0.StatusText = @"Обновление отчета";
             SetReportSource();
         }, _uiScheduler);
     };
     sp0.ShowDialog(this);
     _dataLoading = false;
 }