Example #1
0
 private void LoadReport()
 {
     Guid persId = Guid.Empty;
     if (cbPersons.SelectedValue != null)
         persId = (Guid) cbPersons.SelectedValue;
     //if (persId == Guid.Empty)
     //    return;
     Guid typeId = Guid.Empty;
     if (cbWorkTypes.SelectedValue!=null)
         typeId = (Guid)cbWorkTypes.SelectedValue;
     MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" };
     sp0.WorkingFunction = () =>
     {
         InstallersWorks_Entities context = new InstallersWorks_Entities();
         var data = context.InstallersWorks_Works
             .Include(i => i.InstallersWorks_WorkTypes)
             .Include(i => i.InstallersWorks_Personalities);
         if (persId != Guid.Empty)
             data = data.Where(w => w.WorkPersonId == persId);
         if (typeId != Guid.Empty)
             data = data.Where(w => w.WorkTypeId == typeId);
         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);
         _dataSet.PerPersonDataSimple.Clear();
         foreach (InstallersWorks_Works works in data)
         {
             ReportDataSet.PerPersonDataSimpleRow newRow = _dataSet.PerPersonDataSimple.NewPerPersonDataSimpleRow();
             newRow.Id = works.Id;
             newRow.Person = works.InstallersWorks_Personalities.ShortFullName;
             newRow.WorkDate = works.WorkDate;
             newRow.WorkType = works.InstallersWorks_WorkTypes.TypeDescription;
             newRow.Description = works.Event + works.AssNomer + Environment.NewLine + works.Address;
             _dataSet.PerPersonDataSimple.AddPerPersonDataSimpleRow(newRow);
         }
         Extensions.RunActionInGUIThread(() =>
         {
             sp0.StatusText = @"Обновление отчета";
             reportViewer.Reset();
             reportViewer.LocalReport.DataSources.Clear();
             reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", (DataTable) _dataSet.PerPersonDataSimple));
             reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.PerPersons.PerPersonPeportSimple.rdlc";
             ReportParameter param2 = new ReportParameter("ReportHeader1", "Отчет о работах сотрудников за период");
             ReportParameter param1 = new ReportParameter("ReportHeaderField1", "с " + dpFrom.Value.ToLongDateString() + " по " + dpTo.Value.ToLongDateString());
             reportViewer.LocalReport.SetParameters(new ReportParameter[] { param1, param2 });
             reportViewer.RefreshReport();
         }, _uiScheduler);
     };
     sp0.ShowDialog(this);
 }
Example #2
0
        private void DutyForm_Shown(object sender, EventArgs e)
        {
            MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка данных", StatusText = @"Загрузка данных" };
            sp0.WorkingFunction = () =>
            {
                var entities = new InstallersWorks_Entities();
                Extensions.RunActionInGUIThread(() =>
                {
                    tbReceivers.Text = !string.IsNullOrEmpty(Settings.Default.DutyReceiversList) ? Settings.Default.DutyReceiversList : Settings.Default.DefaultDutyReceiversList;
                    cbPersonalities.DataSource = entities.InstallersWorks_Personalities.OrderBy(o => o.PersonSurname).ToList();                    
                },_uiScheduler);


            };
            sp0.ShowDialog(this);
            tbReceivers.Enabled = tbSetDefault.Enabled = btSend.Enabled=btAddDuty.Enabled= SharedAppData.IsFlagSet(ObjectAccessId, RightsFlags.Change);
        }
Example #3
0
 public HistoryStore(bool historyEnable = true)
 {
     _store = new InstallersWorks_Entities();
     _historyEnable = historyEnable;
 }
Example #4
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;
 }
Example #5
0
 private void PerPersonsSelect_Shown(object sender, EventArgs e)
 {
     cbPeriod.SelectedIndex = 3;
     cbDetails.SelectedIndex = Properties.Settings.Default.PerAbonentDetailsLevel;
     MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка общих данных" };
     sp0.WorkingFunction = () =>
     {
         InstallersWorks_Entities context = new InstallersWorks_Entities();
         context.Configuration.ProxyCreationEnabled = false;
         context.Configuration.LazyLoadingEnabled= false;
         var types = context.InstallersWorks_WorkTypes.OrderBy(o => o.TypeDescription).AsNoTracking().ToList();
         context.Configuration.ProxyCreationEnabled = true;
         context.Configuration.LazyLoadingEnabled = true;
         types.Insert(0, new InstallersWorks_WorkTypes() { Id = Guid.Empty, TypeDescription = "Все типы" });
         Extensions.RunActionInGUIThread(() =>
         {
             cbWorkTypes.DisplayMember = "TypeDescription";
             cbWorkTypes.ValueMember = "Id";
             cbWorkTypes.DataSource = types.ToList();
         }, _uiScheduler);
     };
     sp0.ShowDialog(this);
     cbWorkTypes.SelectedValue = Guid.Empty;
     btSendReport.Enabled = SharedAppData.IsAccesible(ReportSenderForm.ObjectAccessId);
     LoadReport();
 }
Example #6
0
        private void LoadReport()
        {
            Guid typeId = Guid.Empty;
            if (cbWorkTypes.SelectedValue!=null)
                typeId = (Guid)cbWorkTypes.SelectedValue;
            MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" };
            sp0.WorkingFunction = () =>
            {
                InstallersWorks_Entities context = new InstallersWorks_Entities();
                var data = context.InstallersWorks_Works
                    .Include(i => i.InstallersWorks_WorkTypes)
                    .Include(i => i.InstallersWorks_Personalities)
                    .Where(w => w.Cable > 0);
                if (typeId != Guid.Empty)
                    data = data.Where(w => w.WorkTypeId == typeId);
                if (dpFrom.Enabled)
                    data = data
                        .Where(w =>
                            DbFunctions.TruncateTime(w.WorkDate) >= DbFunctions.TruncateTime(dpFrom.Value) &
                            DbFunctions.TruncateTime(w.WorkDate) <= DbFunctions.TruncateTime(dpTo.Value))
                        .OrderByDescending(o => o.WorkDate);
                var listData = data.ToList();
                var groups = listData.GroupBy(g => g.WorkId);
                _dataSet.CableData.Clear();
                foreach (var grpCable in groups)
                {
                    var defaultWork = grpCable.FirstOrDefault();
                    if (defaultWork==default(InstallersWorks_Works))
                        throw new InvalidDataException();
                    ReportDataSet.CableDataRow newRow = _dataSet.CableData.NewCableDataRow();
                    newRow.Id = defaultWork.Id;
                    newRow.Date = defaultWork.WorkDate.Date;
                    newRow.Address = defaultWork.Address;
                    newRow.WorkType = defaultWork.InstallersWorks_WorkTypes.TypeDescription;
                    newRow.Description = !string.IsNullOrEmpty(defaultWork.AssNomer) ? defaultWork.AssNomer : defaultWork.Event;
                    newRow.Length = defaultWork.Cable.HasValue ? defaultWork.Cable.Value : 0;
                    _dataSet.CableData.AddCableDataRow(newRow);
                }
                Extensions.RunActionInGUIThread(() =>
                {
                    sp0.StatusText = @"Обновление отчета";
                    reportViewer.Reset();
                    reportViewer.LocalReport.DataSources.Clear();
                    reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", (DataTable)_dataSet.CableData));
                    reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.Cable.CableSimple.rdlc";
                    List<ReportParameter> repParams = new List<ReportParameter>
                    {
                        new ReportParameter("CableTotalParam",tbCableTotal.Text),
                        new ReportParameter("ReportHeader1","Отчет о затратах по кабелю за период"),
                        new ReportParameter("ReportHeaderField1", "с " + dpFrom.Value.ToShortDateString() + " по " + dpTo.Value.ToShortDateString())
                    };
                    if ((Guid) cbWorkTypes.SelectedValue != Guid.Empty)
                    {
                        var desc = cbWorkTypes.SelectedItem as InstallersWorks_WorkTypes;
                        if (desc==null)
                            throw new InvalidCastException();
                        repParams.Add(new ReportParameter("ReportHeader2", "по типу " + desc.TypeDescription));
                        repParams.Add(new ReportParameter("ReportHeaderField2", desc.TypeDescription));
                    }

                    reportViewer.LocalReport.SetParameters(repParams);
                    reportViewer.RefreshReport();
                }, _uiScheduler);
            };
            sp0.ShowDialog(this);
        }
Example #7
0
        private void LoadReport()
        {
            Guid typeId = Guid.Empty;
            if (cbWorkTypes.SelectedValue!=null)
                typeId = (Guid)cbWorkTypes.SelectedValue;
            MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" };
            sp0.WorkingFunction = () =>
            {
                InstallersWorks_Entities context = new InstallersWorks_Entities();
                var data = context.InstallersWorks_Works
                    .Include(i => i.InstallersWorks_WorkTypes)
                    .Include(i => i.InstallersWorks_Personalities);
                if (typeId != Guid.Empty)
                    data = data.Where(w => w.WorkTypeId == typeId);

                DateTime startDate;
                DateTime endDate;
                if (dpFrom.Enabled)
                {
                    startDate = dpFrom.Value;
                    endDate = dpTo.Value;
                }
                else
                {
                    startDate = context.InstallersWorks_Works.Min(m => m.WorkDate);
                    endDate = context.InstallersWorks_Works.Max(m => m.WorkDate);
                }
                data = data
                    .Where(w =>
                        DbFunctions.TruncateTime(w.WorkDate) >= DbFunctions.TruncateTime(startDate) &
                        DbFunctions.TruncateTime(w.WorkDate) <= DbFunctions.TruncateTime(endDate))
                    .OrderByDescending(o => o.WorkDate);
                var listData = data.ToList();
                var groups = listData.GroupBy(g => g.WorkId).Select(fg => new
                    {
                        fg.Key, 
                        Works = fg.OrderBy(o => o.InstallersWorks_Personalities != null ? o.InstallersWorks_Personalities.PersonSurname : "Сотрудник удален")
                    });
                _dataSet.WorksData.Clear();
                foreach (var grpCable in groups)
                {
                    var defaultWork = grpCable.Works.FirstOrDefault();
                    if (defaultWork == default(InstallersWorks_Works))
                        throw new InvalidDataException();
                    ReportDataSet.WorksDataRow newRow = _dataSet.WorksData.NewWorksDataRow();
                    string personalDescription = string.Empty;
                    foreach (var wrk in grpCable.Works)
                    {
                        if (personalDescription != string.Empty)
                            personalDescription += " / ";
                        personalDescription += wrk.InstallersWorks_Personalities != null ? wrk.InstallersWorks_Personalities.PersonSurname : "Сотрудник удален";
                    }
                    newRow.Id = defaultWork.Id;
                    newRow.Persons = personalDescription;
                    newRow.WorkDate = defaultWork.WorkDate.Date;
                    newRow.WorkDescription = defaultWork.Event + defaultWork.AssNomer + Environment.NewLine + defaultWork.Address;
                    newRow.WorkType = defaultWork.InstallersWorks_WorkTypes.TypeDescription;
                    newRow.Mileage = defaultWork.Mileage.HasValue ? defaultWork.Mileage.Value : 0;
                    newRow.Comment = defaultWork.Comment;
                    _dataSet.WorksData.AddWorksDataRow(newRow);
                }
                Extensions.RunActionInGUIThread(() =>
                {
                    sp0.StatusText = @"Обновление отчета";
                    reportViewer.Reset();
                    reportViewer.LocalReport.DataSources.Clear();
                    reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", (DataTable)_dataSet.WorksData));
                    reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.WorkDays.WorksTotalCutHeader.rdlc";
                    List<ReportParameter> repParams = new List<ReportParameter>
                    {
                        new ReportParameter("ReportHeader1","Отчет о выполненных работах с " + startDate.ToLongDateString() + " по " + endDate.ToLongDateString()),
                    };
                    if ((Guid) cbWorkTypes.SelectedValue != Guid.Empty)
                    {
                        var desc = cbWorkTypes.SelectedItem as InstallersWorks_WorkTypes;
                        if (desc==null)
                            throw new InvalidCastException();
                        repParams.Add(new ReportParameter("ReportHeaderField1", "по типу " + desc.TypeDescription));

                        //reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.WorkDays.WorksTotal.rdlc";
                        //repParams.Add(new ReportParameter("ReportHeader2", "по типу"));
                        //repParams.Add(new ReportParameter("ReportHeaderField2", desc.TypeDescription));
                    }

                    reportViewer.LocalReport.SetParameters(repParams);
                    reportViewer.RefreshReport();
                }, _uiScheduler);
            };
            sp0.ShowDialog(this);
        }
Example #8
0
 public MainDataContexts()
 {
     IWEntities = new InstallersWorks_Entities(); // { Database = { Log = Console.WriteLine } };
 }