public PanelKundenMaschine(ContainerControl parentCtrl, Kundenmaschine machine, bool keepLoaded = true) : base(parentCtrl, keepLoaded) { InitializeComponent(); this.myParent = parentCtrl as KundeMainView; this.myMachine = machine; this.InitializeData(); }
void dgvMaschine_RowEnter(object sender, DataGridViewCellEventArgs e) { if (dgvMaschine.Rows[e.RowIndex] != null) { selectedMachine = dgvMaschine.Rows[e.RowIndex].DataBoundItem as Kundenmaschine; } }
public FileSearchView(Kundenmaschine machine, string searchFor) { InitializeComponent(); this.myMachine = machine; this.mySearchString = searchFor; this.InitializeData(); }
public Kundenmaschine CreateKundenmaschine(Kunde kunde, Maschinenmodell maschinenmodell, User creatingUser, string seriennummer) { // DataRows für die Maschine und KundeMaschineXref erstellen var machineCreationParams = DataManager.MachineDataService.NewKundenmaschineRows(kunde.CustomerId, maschinenmodell.UID, creatingUser.UID, seriennummer); var neueMaschine = new Kundenmaschine(machineCreationParams.KundenMaschineRow); // Ereignis auslösen, dass über die Erstellung der neuen Kundenmaschine informiert. KundenmaschineCreatedEvent(this, new KundenmaschineCreatedEventArgs(neueMaschine)); return(neueMaschine); }
/// <summary> /// Transferiert die angegebene Maschine vom einen zum anderen Kunden. /// </summary> /// <param name="machine">Die zu transferierende Maschine.</param> /// <param name="quellKunde">Kundennummer des bisherigen Eigentümers.</param> /// <param name="zielKunde">Kundennummer des neuen Eigentümers.</param> public void TransferMachine(Kundenmaschine machine, Kunde quellKunde, Kunde zielKunde) { var currentUser = ModelManager.UserService.CurrentUser; DataManager.MachineDataService.MoveMachineRow(machine.UID, quellKunde.CustomerId, zielKunde.CustomerId, currentUser.UID); KundenmaschineMoved(this, new KundenmaschineMovedEventArgs(machine, quellKunde, zielKunde)); if (ModelManager.SoftwareService.GetMachinesSoftware(machine).Count > 0) { ModelManager.SoftwareService.TransferSoftware(machine, zielKunde); } }
public Maschinenauftrag AddMaschinenauftrag(Kundenmaschine kundenMaschine) { var mRow = DataManager.MachineDataService.CreateMaschinenauftragRow(kundenMaschine.UID); if (mRow != null) { var newAuftrag = new Maschinenauftrag(mRow); this.GetMaschinenauftragListe().Add(newAuftrag); return(newAuftrag); } return(null); }
/// <summary> /// Transferiert die einer Kundenmaschine zugeordnete Software zu einem anderen Kunden. /// </summary> /// <param name="kundenmaschine"></param> /// <param name="zielKunde"></param> /// <remarks> /// Letztlich wird dabei lediglich das Feld Kundennummer in Tabelle /// cpm_kundensoftware aktualisiert. Feld KundenMaschinenId bleibt unverändert, da /// die Software derselben Maschine zugeordnet bleibt. /// </remarks> internal void TransferSoftware(Kundenmaschine kundenmaschine, Kunde zielKunde) { var list = this.GetMachinesSoftware(kundenmaschine); if (list == null || list.Count == 0) { return; } foreach (var software in list) { software.Kundennummer = zielKunde.CustomerId; } this.UpdateKundenSoftware(); }
public PanelMaschinendetail(ContainerControl parentCtrl, Kundenmaschine kundenmaschine, bool keepLoaded) : base(parentCtrl, keepLoaded) { InitializeComponent(); this.myParent = parentCtrl as KundeMainView; this.myMachine = kundenmaschine; this.dgvDateilinks.MouseDoubleClick += dgvDateilinks_MouseDoubleClick; this.dgvDateilinks.RowEnter += dgvDateilinks_RowEnter; this.OnClosed += pnlMaschinendetail_OnClosed; Application.Idle += Application_Idle; this.mtxtSerialNumber.Validated += MtxtSerialNumber_Validated; this.InitializeData(); }
//internal pnlMaschinendetail ShowMaschine(Kundenmaschine kundenmaschine) internal PanelKundenMaschine ShowMaschine(Kundenmaschine kundenmaschine) { //var detailPanel = new pnlMaschinendetail(this, kundenmaschine, true); var detailPanel = new PanelKundenMaschine(this, kundenmaschine); if (this.myActivePanel.KeepLoaded) { this.myPanelsBack.Push(this.myActivePanel); } this.myActivePanel.Swipe(false); detailPanel.Swipe(true); this.myActivePanel = detailPanel; this.ToggleCloseButton(); return(detailPanel); }
/// <summary> /// Erstellt eine neue Software für den angegebenen Kunden und optional die /// angegebene Kundenmaschine. /// </summary> /// <param name="kunde">Der Kunde, für den die neue Software erfasst wird.</param> /// <param name="kundenmaschine"> /// Optional, die Kundenmaschine, der die neue Software zugeordnet werden soll. /// </param> /// <returns></returns> public Kundensoftware AddKundenSoftware(Kunde kunde, Kundenmaschine kundenmaschine = null) { string machinePK = ""; if (kundenmaschine != null) { machinePK = kundenmaschine.UID; } var sRow = DataManager.SoftwareDataService.AddKundenSoftwareRow(kunde.CustomerId, machinePK); var sw = new Kundensoftware(sRow, kunde, kundenmaschine); this.myKundensoftwareList.Add(sw); return(sw); }
/// <summary> /// Gibt eine sortierbare Liste der Software für die angegebene Maschine zurück. /// </summary> /// <param name="machine">Die Maschine, der die Software zugeordnet ist.</param> /// <returns></returns> public SBList <Kundensoftware> GetMachinesSoftware(Kundenmaschine machine) { var list = new SBList <Kundensoftware>(); foreach (dsSoftware.KundenSoftwareRow sRow in DataManager.SoftwareDataService.GetMachineSoftwareRows(machine.UID)) { var sw = this.myKundensoftwareList.FirstOrDefault(s => s.UID == sRow.UID); if (sw == null) { sw = new Kundensoftware(sRow, machine.CurrentOwner, machine); this.myKundensoftwareList.Add(sw); } list.Add(sw); } return(list); }
/// <summary> /// Löscht die angegebene KundenMaschine und alle zugehörigen Verknüpfungen in /// Tabelle KundenMaschineXref. /// </summary> /// <param name="kundenmaschine"></param> public void DeleteKundenMachine(Kundenmaschine kundenmaschine) { var appointmentList = ModelManager.AppointmentService.GetAppointmentList(kundenmaschine); var fileList = ModelManager.FileLinkService.GetFileLinkList(kundenmaschine.UID); var notesList = ModelManager.NotesService.GetNotesList(kundenmaschine.Key, kundenmaschine.LinkTypeId); var softwareList = ModelManager.SoftwareService.GetMachinesSoftware(kundenmaschine); if (fileList == null && notesList.Count == 0 && appointmentList.Count == 0 && softwareList.Count == 0) { KundenmaschineDeleting(this, new KundenmaschineDeletingEventArgs(kundenmaschine)); DataManager.MachineDataService.DeleteKundenMaschineRows(kundenmaschine.UID); } else { var msg = $"Die Maschine kann nicht gelöscht werden, weil es noch verknüpfte Dateien, Notizen oder Software gibt."; throw new OperationCanceledException(msg); } }
void dgvMachines_RowEnter(object sender, DataGridViewCellEventArgs e) { var machine = dgvMachines.Rows[e.RowIndex].DataBoundItem as Kundenmaschine; if (machine != null) { this.mySelectedMachine = machine; var openText = string.Format("Öffnen ({0})", machine.Modellbezeichnung); this.mHtmlTip.SetToolTip(this.mbtnOpen, openText); this.mcmnuOpen.Text = openText; var openTerminText = string.Format("Servicetermine ({0})", machine.Modellbezeichnung); this.mcmnuServicetermine.Text = openTerminText; var moveText = string.Format("Verschieben ({0})", machine.Modellbezeichnung); this.mHtmlTip.SetToolTip(mbtnMove, moveText); this.mcmnuMove.Text = moveText; } }
/// <summary> /// Prüft, ob der Dateipfad für die angegebene Kundenmaschine vorhanden und korrekt /// ist und erstellt ihn gegebenenfalls. /// </summary> /// <param name="kundenmaschine"></param> /// <returns></returns> public string CheckOrCreateMachinePath(Kundenmaschine kundenmaschine) { // zunächst den korrekten Maschinenpfad zusammenbauen var sn = kundenmaschine.Seriennummer.Replace("/", "_").Replace("?", "-"); var model = kundenmaschine.Modellbezeichnung.Replace("/", "_").Replace(@"\", "_").Replace("?", ""); var ownerName = kundenmaschine.CurrentOwner.Matchcode.Replace("/", "_"); var ordnerMaschine = $"{model}_{sn} ({ownerName})"; var ordnerSerie = kundenmaschine.Maschinenserie.Dateipfad; var ordnerKorrekt = Path.Combine(ordnerSerie, ordnerMaschine); var ordnerInDB = kundenmaschine.Dateipfad; // Prüfen, ob es Abweichungen zwischen dem Dateipfad in der Datenbank und dem // korrekten Dateipfad gibt. Ist immer der Fall, wenn in der DB nichts // eingetragen ist oder es Unterschiede gibt. if (string.IsNullOrEmpty(ordnerInDB) || !ordnerKorrekt.Equals(ordnerInDB, StringComparison.CurrentCultureIgnoreCase)) { // Wenn der in der DB eingetragene Ordner existiert, sämtliche enthaltene // Ordner, Unterordner samt Dateien in den korrekten neuen Ordner kopieren. try { if (!Directory.Exists(ordnerKorrekt)) { Directory.CreateDirectory(ordnerKorrekt); } if (Directory.Exists(ordnerInDB)) { this.DirectoryCopy(ordnerInDB, ordnerKorrekt, true, true); } } catch (Exception) { throw; } } return(ordnerKorrekt); }
/// <summary> /// Gibt den <seealso cref="Maschinenauftrag"/> für die angegebene /// <seealso cref="Kundenmaschine"/> zurück. /// </summary> /// <param name="kundenmaschine"> /// Die <seealso cref="Kundenmaschine"/>, des gesuchten Maschinenauftrags. /// </param> /// . /// <returns></returns> public Maschinenauftrag GetMaschinenauftrag(Kundenmaschine kundenmaschine) { return(this.myAuftragsListe.FirstOrDefault(a => a.MaschinenId == kundenmaschine.UID)); }
public KundenmaschineMovedEventArgs(Kundenmaschine kundenmaschine, Kunde quellKunde, Kunde zielKunde) { this.MovedMachine = kundenmaschine; this.FromCustomer = quellKunde; this.ToCustomer = zielKunde; }
/// <summary> /// Erzeugt eine neue Instanz der <seealso cref="KundenmaschineDeletingEventArgs"/> Klasse. /// </summary> /// <param name="kundenmaschine">Die gelöschte <seealso cref="Kundenmaschine"/>.</param> public KundenmaschineDeletingEventArgs(Kundenmaschine kundenmaschine) { this.DeletedMachine = kundenmaschine; }
/// <summary> /// Erzeugt eine neue Instanz der /// <seealso cref="KundenmaschineCreatedEventArgs"/> Klasse. /// </summary> /// <param name="kundenmaschine"></param> public KundenmaschineCreatedEventArgs(Kundenmaschine kundenmaschine) { this.CreatedMachine = kundenmaschine; }
void ModelService_OnMachineDeleted(object sender, Model.EventSystem.MachineDeletedEventArgs e) { ClearDatabindings(); myMachine = null; }
public FileExplorerView(Kundenmaschine machine) { InitializeComponent(); this.myMachine = machine; this.InitializeData(); }
void dgvWhatever_RowEnter(object sender, System.Windows.Forms.DataGridViewCellEventArgs e) { this.SelectedMachine = this.dgvWhatever.Rows[e.RowIndex].DataBoundItem as Kundenmaschine; }
void mbtnSetAutoProperties_Click(object sender, EventArgs e) { Kunde customer = null; Lieferant supplier = null; Kundenkontakt contact = null; Kundenmaschine machine = null; var msg = string.Empty; var msgBoxTitle = "Ausfüllen der Termineigenschaften" + Environment.NewLine; var subject = string.Empty; var location = string.Empty; var body = string.Empty; foreach (var lItem in ModelManager.AppointmentService.GetLinkedItemsList(this.myAppointment)) { if (lItem is Kunde) { customer = lItem as Kunde; } else if (lItem is Kundenkontakt) { contact = lItem as Kundenkontakt; } else if (lItem is Kundenmaschine) { machine = lItem as Kundenmaschine; } else if (lItem is Lieferant) { supplier = lItem as Lieferant; } } if (customer == null && supplier == null) { msg = "Bitte vorher den Termin zumindest mit einem Kunden oder einem Lieferanten verknüpfen."; MetroMessageBox.Show(this, msg, msgBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } msg = "Ich trage die Eigenschaften dieses Termins automatisch ein."; if (MetroMessageBox.Show(this, msg, msgBoxTitle, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != System.Windows.Forms.DialogResult.OK) { return; } switch (this.myAppointment.AppointmentType) { case "Kundenbesuch": if (customer != null) { subject = string.Format("{0}: Besuchstermin", customer.Matchcode); location = string.Format("{0}, {1} {2}", customer.Street, customer.ZipCode, customer.City); if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } } break; case "Schulung": if (supplier != null) { subject = string.Format("{0}: Schulung", supplier.Matchcode); location = string.Format("{0}, {1} {2}", supplier.Strasse, supplier.Postleitzahl, supplier.Ort); } break; case "Wartungstermin": if (machine != null) { subject = string.Format("{0}: Wartung {1} ({2})", customer.Matchcode, machine.Modellbezeichnung, machine.Seriennummer); } else { subject = string.Format("{0}: Wartung ", customer.Matchcode); } if (myCurrentUser.CalendarSettings.AddCustomerAddress) { location = string.Format("{0}, {1} {2}", customer.Street, customer.ZipCode, customer.City); } if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Servicetermin": if (machine != null) { subject = string.Format("{0}: Service {1} ({2})", customer.Matchcode, machine.Modellbezeichnung, machine.Seriennummer); } else { subject = string.Format("{0}: Wartung ", customer.Matchcode); } if (myCurrentUser.CalendarSettings.AddCustomerAddress) { location = string.Format("{0}, {1} {2}", customer.Street, customer.ZipCode, customer.City); } if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Fernwartung": subject = string.Format("{0}: Fernwartung", customer.Matchcode); location = "Technik CPM"; if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } break; case "Maschinenlieferung": if (machine != null) { subject = string.Format("{0}: Auslieferung {1} ({2})", customer.Matchcode, machine.Modellbezeichnung, machine.Seriennummer); } else { subject = string.Format("{0}: Auslieferung ", customer.Matchcode); } if (myCurrentUser.CalendarSettings.AddCustomerAddress) { location = string.Format("{0}, {1} {2}", customer.Street, customer.ZipCode, customer.City); } if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Maschinenabholung": if (machine != null) { subject = string.Format("{0}: Abholung {1} ({2})", customer.Matchcode, machine.Modellbezeichnung, machine.Seriennummer); } else { subject = string.Format("{0}: Auslieferung ", customer.Matchcode); } location = "Technik CPM"; if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Telefonat": subject = string.Format("{0}: Telefonat", customer.Matchcode); location = "Technik CPM"; if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Undefiniert": subject = string.Format("{0}: Undefinierter Termin", customer.Matchcode); if (myCurrentUser.CalendarSettings.AddCustomerAddress) { location = string.Format("{0}, {1} {2}", customer.Street, customer.ZipCode, customer.City); } if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Demo": if (machine != null) { subject = string.Format("{0}: Abholung {1} ({2})", customer.Matchcode, machine.Modellbezeichnung, machine.Seriennummer); } else { subject = string.Format("{0}: Demo ", customer.Matchcode); } if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; case "Besprechung": subject = "Besprechung"; location = "Empfang CPM"; body = string.Format(@"<p><strong><u>Teilnehmer</u></strong></p><ul>{0}</ul>", myCurrentUser.CalendarSettings.TargetUser.NameFull); break; default: subject = string.Format("{0}: {1}", customer.Matchcode, myAppointment.AppointmentType); if (myCurrentUser.CalendarSettings.AddCustomerAddress) { location = string.Format("{0}, {1} {2}", customer.Street, customer.ZipCode, customer.City); } if (myCurrentUser.CalendarSettings.AddCustomerInfo) { body = customer.GetCustomerInfoHtml(contact); } if (myCurrentUser.CalendarSettings.AddCustomerNotes) { body += customer.GetNotesHtml(); } if (myCurrentUser.CalendarSettings.AddCustomerPriceList) { body += customer.GetSpecialPriceListHtml(); } break; } this.myAppointment.Subject = subject; this.myAppointment.Location = location; this.myAppointment.BodyHtml = body; this.RefreshDataBindings(); }