Files
Kanalsanierungsverwaltung/SanSystem/frmObjektEdit.cs
HuskyTeufel 59495e4193 Namensumbenennung Inliner zu Schlauchliner
Fehler beim Speichern einer Imprägnierungsbericht ohne Daten behoben
Fehler beim Starten einer "first" start anwendung
Beim anlegen einer neuer Projekt wird das Dialog gleich geschlossen
2021-03-11 15:28:34 +01:00

289 lines
12 KiB
C#

using KlassenBIB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SanShared;
using System.Collections;
using Database;
using System.Diagnostics;
namespace SanSystem
{
/// <summary>
///
/// </summary>
public partial class frmObjektEdit : Form
{
Inspektionsobjekt inspektionsobjekt = null;
private bool neu = false;
/// <summary>
///
/// </summary>
/// <param name="inspektion"></param>
/// <param name="neu">Wenn es sich um ein neues Objekt handelt</param>
public frmObjektEdit(Inspektionsobjekt inspektion, bool neu = false)
{
InitializeComponent();
this.neu = neu;
btn_add_san.Text = Global.Instance.language.Labels["add_san"];
btn_close.Text = Global.Instance.language.Labels["btn_close"];
this.inspektionsobjekt = inspektion;
dgv_schadenkuerzel.DataSource = inspektion.Schadenskuerzeln;
dgv_sanierungen.DataSource = inspektion.AusgefuehrteTaetigkeiten;
foreach(Sanierung san in inspektion.Sanierung)
{
TabPage tab = new TabPage();
if(san is InlinerSanierung)
{
tab.Text = "Schlauchliner";
UCInliner uCInliner = new UCInliner(san as InlinerSanierung);
uCInliner.Dock = DockStyle.Fill;
tab.Controls.Add(uCInliner);
tabControl1.TabPages.Add(tab);
}
else if(san is SchachtAnbindung)
{
tab.Text = "Schachtanbindung";
UCWeitereFotos uCSchachtanbindung = new UCWeitereFotos(san as SchachtAnbindung);
uCSchachtanbindung.Dock = DockStyle.Fill;
tab.Controls.Add(uCSchachtanbindung);
tabControl1.TabPages.Add(tab);
}
}
if (Environment.MachineName.Equals("MEVES-LT"))
{
this.Width = 1512;
this.Height = 907;
}
}
private void frmObjektEdit_Load(object sender, EventArgs e)
{
txt_objekt_name.Enabled = false;
btn_auftraggeber.Enabled = (inspektionsobjekt.OverrideAuftraggeber != null);
cb_overrideAuftraggeber.Checked = btn_auftraggeber.Enabled;
txt_laenge_schacht.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Schachtlaenge"));
txt_objekt_name.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Objektbezeichnung"));
txt_ort.DataBindings.Add(new Binding("Text", inspektionsobjekt, "OrtName"));
txt_punkt_von.DataBindings.Add(new Binding("Text", inspektionsobjekt, "VonPunkt"));
txt_punkt_bis.DataBindings.Add(new Binding("Text", inspektionsobjekt, "BisPunkt"));
txt_strasse.DataBindings.Add(new Binding("Text", inspektionsobjekt, "StrasseName"));
txt_hausnummer.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Hausnummer"));
cb_material.DataBindings.Add(new Binding("Text", inspektionsobjekt, "RohrMaterial"));
txt_haltungslaenge.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Haltungslaenge"));
txt_dn.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Kanalrohrweite"));
txt_pro_nr.DataBindings.Add(new Binding("Text", inspektionsobjekt, "ProjektNummer"));
dt_haltunggemessen_datum.DataBindings.Add(new Binding("Value", inspektionsobjekt, "HaltungGemessen"));
txt_bemerkung.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Bemerkung"));
cb_geschlossenesEnde.DataBindings.Add(new Binding("Checked", inspektionsobjekt, "GeschlossenesEnde"));
txt_san_nr.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Sanierungsnummer"));
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void btn_close_Click(object sender, EventArgs e)
{
int width = this.Width;
int height = this.Height;
txt_laenge_schacht.DataBindings.Clear();
txt_objekt_name.DataBindings.Clear();
txt_punkt_von.DataBindings.Clear();
txt_punkt_bis.DataBindings.Clear();
txt_strasse.DataBindings.Clear();
txt_hausnummer.DataBindings.Clear();
cb_material.DataBindings.Clear();
txt_haltungslaenge.DataBindings.Clear();
txt_dn.DataBindings.Clear();
txt_pro_nr.DataBindings.Clear();
dt_haltunggemessen_datum.DataBindings.Clear();
txt_bemerkung.DataBindings.Clear();
txt_ort.DataBindings.Clear();
txt_san_nr.DataBindings.Clear();
cb_geschlossenesEnde.DataBindings.Clear();
if (!cb_overrideAuftraggeber.Checked)
inspektionsobjekt.OverrideAuftraggeber = null;
//MessageBox.Show(string.Format("width: {0} height: {1}", width, height));
Global.Instance.BuildNewLinerReste(EventArgs.Empty);
this.Close();
}
private void btn_add_san_Click(object sender, EventArgs e)
{
//Dongle dongle = new Dongle(103086, 60);
//int mod = dongle.IsLicensed((byte)Sanierungsarten.INLINER) ? (int)Sanierungsarten.INLINER : 0; // (int)Sanierungsarten.INLINER ^ (int)Sanierungsarten.SCHACHTANBINDUNG; // Auslagern zur Dongle
frmSelectNewSan frmSelectNewSan = new frmSelectNewSan();
frmSelectNewSan.AddInlinerClicked += FrmSelectNewSan_AddInlinerClicked;
frmSelectNewSan.AddSchachtAnbindungClicked += FrmSelectNewSan_AddSchachtAnbindungClicked;
frmSelectNewSan.ShowDialog();
}
private void FrmSelectNewSan_AddSchachtAnbindungClicked(object sender, EventArgs e)
{
SchachtAnbindung schachtAnbindung = new SchachtAnbindung();
schachtAnbindung.Datum = DateTime.Now;
schachtAnbindung.Inspektionsobjekt = inspektionsobjekt;
inspektionsobjekt.Sanierung.Add(schachtAnbindung);
TabPage tab = new TabPage();
tab.Text = "Schachtanbindung";
UCWeitereFotos uCSchachtanbindung = new UCWeitereFotos(schachtAnbindung);
uCSchachtanbindung.Dock = DockStyle.Fill;
tab.Controls.Add(uCSchachtanbindung);
tabControl1.TabPages.Add(tab);
}
private void FrmSelectNewSan_AddInlinerClicked(object sender, EventArgs e)
{
if(inspektionsobjekt.Sanierung.Count > 0)
{
foreach(Sanierung xsan in inspektionsobjekt.Sanierung)
{
if(xsan is InlinerSanierung)
{
MessageBox.Show("Lustig Sie wollen einen Inliner in einem Inliner setzen?", "Lustig", MessageBoxButtons.OK, MessageBoxIcon.Question);
return;
}
}
}
InlinerSanierung san = new InlinerSanierung();
san.Inspektionsobjekt = inspektionsobjekt;
san.Datum = new DateTime(2018, 01, 01, 12, 00, 00);
inspektionsobjekt.Sanierung.Add(san);
TabPage tab = new TabPage();
tab.Text = "InlinerSanierung";
UCInliner uCInliner = new UCInliner(san);
uCInliner.Dock = DockStyle.Fill;
tab.Controls.Add(uCInliner);
tabControl1.TabPages.Add(tab);
}
private void btn_delete_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Wollen Sie diesen Eintrag wirklich Löschen?", "Sind sie Sicher?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
return;
Datenbank.Instance.loadedProjekt.Objekte.Remove(inspektionsobjekt);
this.Close();
}
private void cb_objekname_man_CheckedChanged(object sender, EventArgs e)
{
txt_objekt_name.Enabled = cb_objekname_man.Checked;
}
private void txt_punkt_von_TextChanged(object sender, EventArgs e)
{
if(!cb_objekname_man.Checked)
{
txt_objekt_name.DataBindings.Clear();
inspektionsobjekt.Objektbezeichnung = txt_punkt_von.Text;
txt_objekt_name.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Objektbezeichnung"));
}
// Prüfen ob Attribute kommt
if(neu)
{
txt_punkt_bis.DataBindings.Clear();
string vonPunkt = txt_punkt_von.Text;
StringBuilder attribute = new StringBuilder();
for (int i = 1; i < vonPunkt.Length; i++)
{
//Debugger.Break();
//int x = (int)vonPunkt[i];
if((int)vonPunkt[i] >= 65 && (int)vonPunkt[i] <= 122)
{
attribute.Append(vonPunkt[i]);
}
}
if(attribute.Length > 0)
{
inspektionsobjekt.BisPunkt = vonPunkt.Replace(attribute.ToString(), "AP");
}
txt_punkt_bis.DataBindings.Add(new Binding("Text", inspektionsobjekt, "BisPunkt"));
}
}
private void dgv_schadenkuerzel_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
#if !DEBUG
return;
#else
DataGridView dataGridView = (DataGridView)sender;
if (dataGridView == null) return;
DataGridViewSelectedRowCollection dataGridViewRowsSelect = dataGridView.SelectedRows;
if (dataGridViewRowsSelect.Count > 1) return;
DataGridViewRow dgvr = dataGridViewRowsSelect[0];
Inspektionskuerzeln kuerzel = (dgvr.DataBoundItem as Inspektionskuerzeln);
if (kuerzel == null) return;
if (kuerzel.Sanierungskonzepts == null)
kuerzel.Sanierungskonzepts = new KlassenBIB.Collections.Sanierungskonzept();
frmSanKonzeptList frmSanKonzept = new frmSanKonzeptList(kuerzel.Sanierungskonzepts);
//frmSanKonzept.MdiParent = this.MdiParent;
frmSanKonzept.ShowDialog();
#endif
}
private void Txt_punkt_bis_Leave(object sender, EventArgs e)
{
return;
// Diese funktion ist hirnrissig, was ist wenn man zu mehrere Schächte Saniert?
/*
if (!neu) return;
// Prüfen ob dieser Element bereits vorhanden ist
if (Datenbank.Instance.loadedProjekt.Objekte.Exists(x => x.BisPunkt.Equals(txt_punkt_bis.Text)))
txt_punkt_bis.BackColor = Color.Red;
*/
}
private void Cb_overrideAuftraggeber_CheckedChanged(object sender, EventArgs e)
{
btn_auftraggeber.Enabled = cb_overrideAuftraggeber.Checked;
}
private void Btn_auftraggeber_Click(object sender, EventArgs e)
{
if (inspektionsobjekt.OverrideAuftraggeber == null)
inspektionsobjekt.OverrideAuftraggeber = new Auftraggeber();
frmAuftraggeberEdit frmAuftraggeberEdit = new frmAuftraggeberEdit(inspektionsobjekt.OverrideAuftraggeber);
frmAuftraggeberEdit.FormClosed += FrmAuftraggeberEdit_FormClosed;
frmAuftraggeberEdit.ShowDialog();
}
private void FrmAuftraggeberEdit_FormClosed(object sender, FormClosedEventArgs e)
{
inspektionsobjekt.OverrideAuftraggeber = (sender as frmAuftraggeberEdit).Auftraggeber;
}
}
}