Update 20250423

This commit is contained in:
Stefan Hutter
2025-04-23 21:02:52 +02:00
parent 25ce6bc343
commit c3092af11c
133 changed files with 3254 additions and 1388 deletions

View File

@@ -26,6 +26,7 @@ using Syncfusion.Olap.MDXQueryParser;
using Windows.Media.Streaming.Adaptive;
using System.Data.SqlTypes;
using NLog.LayoutRenderers.Wrappers;
using System.Security.Cryptography;
namespace OnDoc.Versandstrasse
{
@@ -51,20 +52,23 @@ namespace OnDoc.Versandstrasse
new QueryAllowedPositionsEventHandler(this.TreeDragDrop_QueryAllowedPositionsForNode);
this.treeViewDragHighlightTracker.QueryDragInsertInfo +=
new QueryDragInsertInfoEventHandler(treeViewDragHighlightTracker_QueryDragInsertInfo);
this.pakete = pakete;
this.serienbrief = pakete[0].isSerienbrief;
if (serienbrief)
if (pakete.Count > 0)
{
this.ribbonButtonNewCouvert.Enabled = false;
this.ribbonTab2.Enabled = false;
this.sb = pakete[0].sb;
this.btnPrepare.Text = "Versand prüfen";
}
else
{
ribbonButtonNewCouvert.Enabled = true;
this.pakete = pakete;
this.serienbrief = pakete[0].isSerienbrief;
if (serienbrief)
{
this.ribbonButtonNewCouvert.Enabled = false;
this.ribbonTab2.Enabled = false;
this.sb = pakete[0].sb;
this.btnPrepare.Text = "Versand prüfen";
}
else
{
ribbonButtonNewCouvert.Enabled = true;
}
}
}
@@ -72,7 +76,7 @@ namespace OnDoc.Versandstrasse
{
bool hasprivateaddresses = false;
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from Antwortadresse_mitarbeiter order by reihenfolge", false, true);
db.Get_Tabledata("Select * from Antwortadresse_mitarbeiter where mitarbeiternr = "+AppParams.CurrentMitarbeiter.ToString()+" order by reihenfolge", false, true);
if (db.dsdaten.Tables[0].Rows.Count > 0)
{
hasprivateaddresses = true;
@@ -115,25 +119,49 @@ namespace OnDoc.Versandstrasse
Reload_Tree();
load_adressen();
treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0];
this.pnlcouvert.Visible = true;
this.pnlpostkorb.Visible = false;
this.pnlpostkorb.Dock = DockStyle.Fill;
this.pnlcouvert.Dock = DockStyle.Fill;
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from OnDoc_Versandstrasse_Texte order by id", false, true);
lblprueftext.Text = db.dsdaten.Tables[0].Rows[0]["textblock"].ToString();
lblprueftextSB.Text = db.dsdaten.Tables[0].Rows[1]["textblock"].ToString();
lblprueftextsb2.Text = db.dsdaten.Tables[0].Rows[2]["textblock"].ToString();
lblpostausgang.Text = db.dsdaten.Tables[0].Rows[3]["textblock"].ToString();
lblpostausgang.MaximumSize = new Size(500, 60);
db = null;
if (treeViewAdv1.Nodes.Count > 0)
{
treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0];
this.pnlcouvert.Visible = true;
this.pnlpostkorb.Visible = false;
this.pnlpostkorb.Dock = DockStyle.Fill;
this.pnlcouvert.Dock = DockStyle.Fill;
}
else
{
this.lblpostausgang.Visible = true;
this.lblpostausgang.Left = this.Width - lblpostausgang.Width;
this.pnlcouvert.Visible = false;
this.pnlpostkorb.Visible = true;
this.pnlpostkorb.Dock = DockStyle.Fill;
Refresh_VersandCouverts();
ribbon1.Select();
ribbon1_Click(sender, e);
ribbon1.Tabs[0].Visible = true;
ribbonTab2_ActiveChanged(sender, e);
this.lblpostausgang.Left = this.Width - lblpostausgang.Width;
}
panelPrepare.Left = this.Width - this.panelPrepare.Width;
lblprueftext.MaximumSize = new Size(panelVerify.Width-10, 50);
lblprueftextSB.MaximumSize = new Size(panelVerify.Width-10, 50);
lblprueftextsb2.MaximumSize = new Size(panelVerify.Width-10, 50);
lblpostausgang.MaximumSize = new Size(500, 60);
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from OnDoc_Versandstrasse_Texte order by id",false,true);
lblprueftext.Text = db.dsdaten.Tables[0].Rows[0]["textblock"].ToString();
lblprueftextSB.Text = db.dsdaten.Tables[0].Rows[1]["textblock"].ToString();
lblprueftextsb2.Text = db.dsdaten.Tables[0].Rows[2]["textblock"].ToString();
lblpostausgang.Text = db.dsdaten.Tables[0].Rows[3]["textblock"].ToString();
db = null;
//lblprueftext.Text = "Prüfe die Angaben und das PDF. Mit Klick auf «Couvert in Postausgang legen» wird das Couvert im Postausgang bereitgelegt. Der Versand vom Postausgang erfolgt um 15.45 Uhr. Bis 15.45 Uhr kann das Couvert noch geöffnet/bearbeitet oder gelöscht werden.";
//lblprueftextSB.MaximumSize = new Size(panelVerify.Width, 50);
@@ -198,16 +226,27 @@ namespace OnDoc.Versandstrasse
if (node.Level == 1) { Verify_Couvert(node); }
}
}
string errormessage = "";
private void add_errormessage(string message)
{
if (errormessage.Trim() != "")
{
errormessage = errormessage + Environment.NewLine +"- "+ message;
}else { errormessage = "- "+message; }
}
private bool Verify_Couvert(TreeNodeAdv node)
{
errormessage = "";
lblerror.Visible = false;
Versandpaket vp = node.TagObject as Versandpaket;
if (vp.isSerienbrief)
{
set_nodeimage(node, 1);
return true;
}
DB db = new DB(AppParams.connectionstring);
if (vp.partnernr == 0 && node.Nodes.Count==1)
{
@@ -220,6 +259,7 @@ namespace OnDoc.Versandstrasse
if (chkGAS.Checked && txtadresse.Text == "")
{
add_errormessage("Keine Rückantowrtadresse gewählt");
return false;
}
int currentbp = vp.partnernr;
@@ -228,6 +268,31 @@ namespace OnDoc.Versandstrasse
int anzbp = 1;
bool versandbereit = true;
if (vp.partnernr > 99999999) {
versandbereit = false;
add_errormessage("Couvert muss für ein BP sein");
}
string kdenummern = "";
foreach (TreeNodeAdv dokumentnode in node.Nodes)
{
Versanddokument vd = dokumentnode.TagObject as Versanddokument;
if (kdenummern != "") { kdenummern = kdenummern + ";"; }
kdenummern = kdenummern + vd.Partnernr.ToString();
}
if (kdenummern != "")
{
db.clear_parameter();
db.add_parameter("@kundennummer",kdenummern);
db.Get_Tabledata("ondoc_versandstrasse_check_kdenr", true, false);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0])!=0) {
versandbereit = false;
add_errormessage(db.dsdaten.Tables[0].Rows[0][1].ToString());
}
}
foreach (TreeNodeAdv dokumentnode in node.Nodes)
{
@@ -235,24 +300,25 @@ namespace OnDoc.Versandstrasse
db.Get_Tabledata("SELECT dbo.dokument.nrpar00, dbo.dokument.dokumentid, isnull(dbo.dokumenttyp.Versandstrasse_moeglich,0) as vsm, isnull(dbo.dokumenttyp.versandstrasse_firstdoc,0) as firstdoc FROM dbo.dokument INNER JOIN " +
" dbo.dokumenttyp ON dbo.dokument.dokumenttypnr = dbo.dokumenttyp.dokumenttypnr where dbo.dokument.dokumentid='" + dokumentnode.Tag + "'", false, true);
//BP-Verifikation
if (currentbp != Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["nrpar00"]))
{
currentbp = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["nrpar00"]);
anzbp = anzbp + 1;
}
//if (currentbp != Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["nrpar00"]))
//{
// currentbp = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["nrpar00"]);
// anzbp = anzbp + 1;
//}
//Versandstrasse möglich
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["vsm"]) == 0)
{
set_nodeimage(dokumentnode, 0);
add_errormessage("Nicht versandfähige Dokumente im Couvert");
versandbereit = false;
}
else
{
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["firstdoc"]) == 0)
{
if (nodecounter == 0) { set_nodeimage(dokumentnode, 4);versandbereit = false; }
if (nodecounter == 0) { set_nodeimage(dokumentnode, 4);versandbereit = false; add_errormessage("Versandfähiges Dokument Position 1 fehlt"); }
else
{
set_nodeimage(dokumentnode, 5);
@@ -263,19 +329,23 @@ namespace OnDoc.Versandstrasse
}
if (node.Nodes.Count == 0)
{
add_errormessage("Kene Dokumente im Couvert");
versandbereit = false;
}
nodecounter++;
}
if (node.Nodes.Count < 1) { versandbereit = false; }
if (node.Nodes.Count < 1) { versandbereit = false;add_errormessage("Keine Dokumetne im Couvert"); }
if (anzbp > 1) { versandbereit = false; }
if (versandbereit == true)
{
lblerror.Visible = false;
set_nodeimage(node, 1);
return true;
}
else
{
lblerror.Visible = true;
lblerror.Text = errormessage;
set_nodeimage(node, 0);
return false;
}
@@ -807,7 +877,7 @@ namespace OnDoc.Versandstrasse
dr[2] = jsonstring;
dr["aktiv"] = 1;
dr["versandoption"] = vp.Versandoption.ToString();
dr["Bemerkung"] = vp.bemerkung;
dr["Bemerkung"] = vp.bemerkung;
// db.daten.Tables[0].Rows.Add(dr);
db.Update_Data();
@@ -820,6 +890,7 @@ namespace OnDoc.Versandstrasse
dr1[2] = vd.DokumentID;
dr1[3] = 1;
db.daten.Tables[0].Rows.Add(dr1);
}
db.Update_Data();
treeViewAdv1.Nodes.Remove(treeViewAdv1.SelectedNode);
@@ -1148,8 +1219,13 @@ namespace OnDoc.Versandstrasse
TreeNodeAdv node = treeViewAdv1.SelectedNode;
if (node.Level > 1)
{
Versanddokument vd = node.TagObject as Versanddokument;
node = node.Parent;
Versandpaket vp = node.TagObject as Versandpaket;
reserve_vs_dokument(treeViewAdv1.SelectedNode.Tag.ToString(), 2);
vp.Dokument.Remove(vd);
treeViewAdv1.SelectedNode.Remove();
Verify_Couvert(node);
@@ -1160,8 +1236,10 @@ namespace OnDoc.Versandstrasse
{
reserve_vs_dokument(tn.Tag.ToString(), 2);
}
Versandpaket vp = treeViewAdv1.SelectedNode.TagObject as Versandpaket;
pakete.Remove(vp);
treeViewAdv1.SelectedNode.Remove();
}
}
catch { }
@@ -1320,5 +1398,57 @@ namespace OnDoc.Versandstrasse
this.treeViewAdvCouverts.Height = this.Height - this.ribbon1.Height-this.grpCouvertDetails.Height;
panelPrepare.Left = this.Width - this.panelPrepare.Width;
}
private void Versandstrasse_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.treeViewAdv1.Nodes.Count > 0)
{
MessageBox.Show("Vor dem Schliessen sind die pendenten Couverts zu löschen oder in den Postausgang zu legen.","Schliessen",MessageBoxButtons.OK,MessageBoxIcon.Information);
e.Cancel = true;
}
}
private void ribbon1_TabIndexChanged(object sender, EventArgs e)
{
int a = 0;
}
public void add_doc (Versanddokument vs)
{
bool zugewiesen = false;
foreach (Versandpaket vp in pakete)
{
if (vp.partnernr.ToString() == vs.Partnernr)
{
vp.Dokument.Add(vs);
zugewiesen = true;
Reload_Tree();
break;
}
}
if (!zugewiesen)
{
Versandpaket vp = new Versandpaket();
vp.Dokument = new List<Versanddokument>();
vp.partnernr = Convert.ToInt32(vs.Partnernr);
vp.Versandoption = "B2_POST";
vp.Mitteilung = "";
vp.GAS = "";
vp.GASAdresse = "";
vp.PaketNr = Guid.NewGuid().ToString();
vp.Dokument.Add(vs);
pakete.Add(vp);
zugewiesen = true;
Reload_Tree();
}
}
private void Versandstrasse_FormClosed(object sender, FormClosedEventArgs e)
{
AppParams.versandstrassewindows_open = false;
}
}
}