update 20250406

This commit is contained in:
Stefan Hutter
2025-04-06 07:39:53 +02:00
parent 632b97c292
commit 42c86d957c
155 changed files with 1725 additions and 607 deletions

View File

@@ -25,6 +25,7 @@ using Windows.Media.Capture;
namespace OnDoc.Versandstrasse
{
public partial class Versandstrasse : SfForm
{
private List<Versandpaket> pakete = new List<Versandpaket>();
@@ -32,6 +33,7 @@ namespace OnDoc.Versandstrasse
private TreeNodeAdv currentSourceNode;
private bool serienbrief = false;
private serienbrief sb;
private bool direktversenden = false;
public Versandstrasse(List<Versandpaket> pakete)
{
InitializeComponent();
@@ -95,17 +97,96 @@ namespace OnDoc.Versandstrasse
{
db.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + pakete[i].partnernr.ToString(), false, true);
DruckJob = new TreeNodeAdv();
DruckJob.Text = "Druckpaket " + pakete[i].PaketNr.ToString()+" - " + db.dsdaten.Tables[0].Rows[0][0].ToString();
DruckJob.Text = "Versand-Couvert - " + db.dsdaten.Tables[0].Rows[0][0].ToString();
DruckJob.Tag = "Druckpaket";
DruckJob.TagObject = pakete[i];
set_nodeimage(DruckJob, 0);
treeViewAdv1.Nodes.Add(DruckJob);
PopulateDocs(pakete[i], ref DruckJob);
}
db = null;
treeViewAdv1.ExpandAll();
foreach (TreeNodeAdv node in treeViewAdv1.Nodes)
{
if (node.Level == 1) { Verify_Couvert(node); }
}
}
private void set_nodeimage(TreeNodeAdv node, int img)
{
node.LeftImageIndices = null;
node.LeftImageIndices = new int[] { img };
}
private void Verify_Couverts()
{
foreach (TreeNodeAdv node in treeViewAdv1.Nodes)
{
if (node.Level == 1) { Verify_Couvert(node); }
}
}
private bool Verify_Couvert(TreeNodeAdv node)
{
Versandpaket vp = node.TagObject as Versandpaket;
int currentbp = vp.partnernr;
DB db = new DB(AppParams.connectionstring);
//node.LeftImageIndices = new int[] { 0 };
int nodecounter = 0;
int anzbp = 1;
bool versandbereit = true;
foreach (TreeNodeAdv dokumentnode in node.Nodes)
{
//node.LeftImageIndices = new int[] { 0 };
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;
}
//Versandstrasse möglich
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["vsm"]) == 0)
{
set_nodeimage(dokumentnode, 0);
versandbereit = false;
}
else
{
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["firstdoc"]) == 0)
{
if (nodecounter == 0) { set_nodeimage(dokumentnode, 4); }
else
{
set_nodeimage(dokumentnode, 5);
}
}
}
if (node.Nodes.Count == 0)
{
versandbereit = false;
}
nodecounter++;
}
if (node.Nodes.Count < 1) { versandbereit = false; }
if (anzbp > 1) { versandbereit = false; }
if (versandbereit == true)
{
set_nodeimage(node, 1);
return true;
} else
{
set_nodeimage(node, 0);
return false;
}
}
private void populate_serienbriefe()
@@ -117,11 +198,13 @@ namespace OnDoc.Versandstrasse
TreeNodeAdv tn = new TreeNodeAdv();
tn.Text = dr["dokumentid"].ToString();
tn.Tag = dr["dokument"].ToString();
set_nodeimage(tn, 3);
treeViewAdv1.Nodes[0].Nodes.Add(tn);
}
}
private void PopulateDocs(Versandpaket paket, ref TreeNodeAdv parentnode)
{
DB db = new DB(AppParams.connectionstring);
TreeNodeAdv dokumentnode;
for (int i = 0; i < paket.Dokument.Count; i++)
{
@@ -129,6 +212,24 @@ namespace OnDoc.Versandstrasse
dokumentnode.Text = paket.Dokument[i].Bezeichnung+" (" + paket.Dokument[i].Partnernr+")";
dokumentnode.Tag = paket.Dokument[i].DokumentID;
dokumentnode.TagObject= paket.Dokument[i];
db.Get_Tabledata("SELECT 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);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["firstdoc"]) == 0)
{
set_nodeimage(dokumentnode, 5);
} else
{
set_nodeimage(dokumentnode, 3);
}
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["vsm"]) ==0)
{
set_nodeimage(dokumentnode, 0);
} else
{
//dokumentnode.LeftImageIndices = new int[] { 3};
}
parentnode.Nodes.Add(dokumentnode);
}
@@ -160,6 +261,8 @@ namespace OnDoc.Versandstrasse
}
}
treeView.SelectedNode = sourceNode;
Verify_Couverts();
}
private void treeViewAdv1_DragLeave(object sender, EventArgs e)
@@ -422,6 +525,13 @@ namespace OnDoc.Versandstrasse
}
}
private void button3_Click(object sender, EventArgs e)
{
direktversenden = true;
btnSendFinal_Click(sender, e);
direktversenden = false;
}
private void btnSendFinal_Click(object sender, EventArgs e)
{
if (serienbrief)
@@ -494,14 +604,29 @@ namespace OnDoc.Versandstrasse
send_vs(ref vp);
}
private void send_vs(ref Versandpaket vp, bool showmessage = true) {
//vp.send_onbase_doc = true;
private void send_vs(ref Versandpaket vp, bool showmessage = true, bool direktversenden = false) {
string jsonstring = JsonConvert.SerializeObject(vp);
//vp.send_onbase_doc = true;
if (!direktversenden)
{
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata_for_Update("Select top 1 * from Ondoc_Versandstrasse_Paket where id=1", false, true);
DataRow dr = db.daten.Tables[0].NewRow();
dr[1] = AppParams.CurrentMitarbeiter.ToString();
dr[2] = jsonstring;
dr[3] = DateTime.Now;
db.daten.Tables[0].Rows.Add(dr);
db.Update_Data();
return;
}
string URL = AppParams.RESTURI + "api/Send_Versandstrasse";
panelVerify.Visible = false;
WebRequest request;
var data = Encoding.UTF8.GetBytes(jsonstring);
request = WebRequest.Create(URL);
@@ -589,6 +714,11 @@ namespace OnDoc.Versandstrasse
TreeNodeAdv node = treeViewAdv1.SelectedNode;
if (node.Level == 1)
{
if (Verify_Couvert(node)==false)
{
GrpPaketDetails.Enabled = false;
return;
}
GrpPaketDetails.Enabled = true;
Versandpaket paket = node.TagObject as Versandpaket; ;
@@ -653,9 +783,68 @@ namespace OnDoc.Versandstrasse
{
try
{
TreeNodeAdv node = treeViewAdv1.SelectedNode;
if (node.Level > 1) {
node = node.Parent;
treeViewAdv1.SelectedNode.Remove();
Verify_Couvert(node);
}
else {
treeViewAdv1.SelectedNode.Remove();
}
}
catch { }
}
private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void TabControlDokuments_SelectedIndexChanged(object sender, EventArgs e)
{
if (TabControlDokuments.SelectedIndex == 1)
{
DB db = new DB(AppParams.connectionstring);
DB db2 = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from ondoc_versandstrasse_paket where ersteller=" + AppParams.CurrentMitarbeiter + " and versendet=0", false, true);
treeViewAdvCouverts.Nodes.Clear();
foreach (DataRow dr in db.dsdaten.Tables[0].Rows)
{
Versandpaket vp = JsonConvert.DeserializeObject<Versandpaket>(dr["paket"].ToString());
TreeNodeAdv tn = new TreeNodeAdv();
db2.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + vp.partnernr.ToString(), false, true);
tn.Text = vp.partnernr.ToString() + " - " + db2.dsdaten.Tables[0].Rows[0][0].ToString();
tn.TagObject = vp.finaldoc;
tn.Tag = dr[0].ToString();
if (vp.Versandoption.ToString() == "A_POST") { set_nodeimage(tn, 0); }
if (vp.Versandoption.ToString() == "B2_POST") { set_nodeimage(tn, 1); }
if (vp.Versandoption.ToString() == "B2_POST") { set_nodeimage(tn, 2); }
treeViewAdvCouverts.Nodes.Add(tn);
foreach (Versanddokument vd in vp.Dokument)
{
TreeNodeAdv tn2 = new TreeNodeAdv();
tn2.Text = vd.Bezeichnung;
tn2.Tag = vd.DokumentID;
tn2.TagObject = vd.dokument;
tn.Nodes.Add(tn2);
}
}
db = null;
db2 = null;
}
}
private void treeViewAdvCouverts_AfterSelect(object sender, EventArgs e)
{
TreeNodeAdv node = treeViewAdvCouverts.SelectedNode;
var stream = new MemoryStream(Convert.FromBase64String(node.TagObject.ToString()));
this.pdfViewerControl2.Load(stream);
stream = null;
}
}
}