update 20241107
This commit is contained in:
@@ -5,6 +5,8 @@ using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Remoting.Messaging;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -20,13 +22,18 @@ using OnDoc.DocMgmt;
|
||||
using OnDoc.Helper;
|
||||
using OnDoc.Klassen;
|
||||
using OnDoc.UIControls.Administrator;
|
||||
using Syncfusion.Pdf;
|
||||
using Syncfusion.Windows.Forms.Tools;
|
||||
using Syncfusion.Windows.Forms.Tools.Navigation;
|
||||
using Syncfusion.Windows.Forms.Tools.Renderers;
|
||||
using Syncfusion.WinForms.Controls;
|
||||
using Syncfusion.WinForms.DataGrid;
|
||||
using Syncfusion.WinForms.DataGrid.Interactivity;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.ApplicationModel.VoiceCommands;
|
||||
using Windows.Media.Ocr;
|
||||
using Windows.Perception.Spatial;
|
||||
using static Model.OnBaseDocUpload;
|
||||
|
||||
|
||||
namespace OnDoc.UIControls
|
||||
@@ -339,6 +346,7 @@ namespace OnDoc.UIControls
|
||||
try { sb.unterschriftrechts = Convert.ToInt32(cbboxunterschriftrechts.SelectedValue.ToString()); } catch { sb.unterschriftrechts = 0; }
|
||||
try { sb.team = Convert.ToInt32(cbboxteam.SelectedValue.ToString()); } catch { sb.team = 0; }
|
||||
sb.archivdatum = Convert.ToDateTime(DateDokumentDatum.Value);
|
||||
sb.dokumentdatum= Convert.ToDateTime(DateDokumentDatum.Value);
|
||||
DB db = new DB(AppParams.connectionstring);
|
||||
sb.serienbriefnr = db.Save_Serienbrief(sb, AppParams.tempdir);
|
||||
db.save_sb_vorlage_to_db(sb.filename, "", sb.serienbriefnr);
|
||||
@@ -554,10 +562,13 @@ namespace OnDoc.UIControls
|
||||
System.Data.DataTable dt = new System.Data.DataTable();
|
||||
dt = db.Check_sb_Data(AppParams.CurrentMitarbieter, sb);
|
||||
string msg = "";
|
||||
init_progressbar("Partnerliste prüfen", dt.Rows.Count);
|
||||
bool bldossier = false;
|
||||
System.Data.DataRow[] dr;
|
||||
for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
|
||||
{
|
||||
add_progress();
|
||||
System.Windows.Forms.Application.DoEvents();
|
||||
dr = sb.dsempfaenger.Tables[0].Select("Partnernr='" + dt.Rows[i][0].ToString() + "'");
|
||||
if (dr.Length == 0)
|
||||
{
|
||||
@@ -596,6 +607,7 @@ namespace OnDoc.UIControls
|
||||
if (Convert.ToInt32(dt.Rows[i][4]) == 1) { bldossier = true; };
|
||||
}
|
||||
if (sb.dsempfaenger.Tables[0].Columns.Count > 20) { check_zwingende_felder(); }
|
||||
finish_progress();
|
||||
refresh_empfaenger(sb.dsempfaenger.Tables[0]);
|
||||
if (msg != "") { MessageBox.Show(msg, "Serienbrief", MessageBoxButtons.OK, MessageBoxIcon.Error); }
|
||||
}
|
||||
@@ -605,31 +617,40 @@ namespace OnDoc.UIControls
|
||||
|
||||
for (int i = 20; i < sb.dsempfaenger.Tables[0].Columns.Count; i++)
|
||||
{
|
||||
if (Convert.ToInt32(sb.dsempfaenger.Tables[1].Rows[0][sb.dsempfaenger.Tables[0].Columns[i].ColumnName]) == 1)
|
||||
try
|
||||
{
|
||||
System.Data.DataRow[] dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] <>''");
|
||||
foreach (System.Data.DataRow dr2 in dr)
|
||||
if (Convert.ToInt32(sb.dsempfaenger.Tables[1].Rows[0][sb.dsempfaenger.Tables[0].Columns[i].ColumnName]) == 1)
|
||||
{
|
||||
if (Convert.ToInt32(dr2["Status"]) == 0) { dr2["Status"] = 1; }
|
||||
}
|
||||
|
||||
dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] =''");
|
||||
foreach (System.Data.DataRow dr2 in dr)
|
||||
{
|
||||
if (Convert.ToInt32(dr2["Status"]) == 0)
|
||||
System.Data.DataRow[] dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] <>''");
|
||||
foreach (System.Data.DataRow dr2 in dr)
|
||||
{
|
||||
dr2["Status"] = -1;
|
||||
dr2["Fehlercode"] = 2;
|
||||
if (Convert.ToInt32(dr2["Status"]) == 0) { dr2["Status"] = 1; }
|
||||
}
|
||||
|
||||
dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] =''");
|
||||
foreach (System.Data.DataRow dr2 in dr)
|
||||
{
|
||||
if (Convert.ToInt32(dr2["Status"]) == 0)
|
||||
{
|
||||
dr2["Status"] = -1;
|
||||
dr2["Fehlercode"] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void ribbonButton2_Click(object sender, EventArgs e)
|
||||
{
|
||||
lblProgressTitel.Text = "Partnerliste prüfen";
|
||||
pnlprogress.Visible = true;
|
||||
Partnerliste_Pruefen();
|
||||
treeViewAdv1_AfterSelect(sender, e);
|
||||
pnlprogress.Visible = false;
|
||||
}
|
||||
|
||||
System.Data.DataTable vorlagendaten = new System.Data.DataTable();
|
||||
@@ -647,14 +668,19 @@ namespace OnDoc.UIControls
|
||||
sb.VorlageBase64 = dB.dsdaten.Tables[0].Rows[0][0].ToString();
|
||||
sb.DocValues = new List<clsDocValue>();
|
||||
vorlagendaten_aufbereiten();
|
||||
|
||||
update_serienbriefdaten(false);
|
||||
update_zahlen();
|
||||
|
||||
}
|
||||
|
||||
private void vorlagendaten_aufbereiten()
|
||||
{
|
||||
|
||||
init_progressbar("Dokumente generieren", vorlagendaten.Rows.Count);
|
||||
for (int i = 0, loopTo = vorlagendaten.Rows.Count - 1; i <= loopTo; i++)
|
||||
{
|
||||
|
||||
add_progress();
|
||||
System.Windows.Forms.Application.DoEvents();
|
||||
|
||||
string sp1 = "";
|
||||
string[] sp2;
|
||||
@@ -714,7 +740,7 @@ namespace OnDoc.UIControls
|
||||
if (vorlagendaten.Rows[i]["Briefanrede1"] != "")
|
||||
{
|
||||
s = vorlagendaten.Rows[i]["Briefanrede1"].ToString();
|
||||
if (s.Substring(0,4)=="Herr")
|
||||
if (s.Substring(0, 4) == "Herr")
|
||||
{
|
||||
s = "r " + s;
|
||||
}
|
||||
@@ -728,7 +754,7 @@ namespace OnDoc.UIControls
|
||||
if (!string.IsNullOrEmpty(s))
|
||||
s = s + Environment.NewLine;
|
||||
s1 = vorlagendaten.Rows[i]["Briefanrede2"].ToString();
|
||||
if (s.Substring(0,4)=="Herr")
|
||||
if (s.Substring(0, 4) == "Herr")
|
||||
{
|
||||
s = s + "Sehr geehrter " + s1;
|
||||
}
|
||||
@@ -824,7 +850,7 @@ namespace OnDoc.UIControls
|
||||
{
|
||||
Insert_Value(vorlagendaten.Rows[i][i1].ToString(), vorlagendaten.Columns[i1].ColumnName);
|
||||
}
|
||||
}catch { }
|
||||
} catch { }
|
||||
try
|
||||
{
|
||||
if (vorlagendaten.Columns[i1].ColumnName.ToString().Substring(0, 5) == "I_09_")
|
||||
@@ -844,18 +870,29 @@ namespace OnDoc.UIControls
|
||||
// IntWert = RenCol(IntWert)
|
||||
Insert_Value(vorlagendaten.Rows[i][IntWert].ToString(), Intbookmark);
|
||||
}
|
||||
}catch { }
|
||||
} catch { }
|
||||
}
|
||||
string pdfdoc = dget.Convert_Word_To_PDF(dg.generate_serienbrief(sb.VorlageBase64, sb));
|
||||
Helper.FileHelper fh = new FileHelper();
|
||||
DB db = new DB(AppParams.connectionstring);
|
||||
string filename = "SB_" + sb.serienbriefnr.ToString() + vorlagendaten.Rows[i]["intEintragnr"].ToString() + ".pdf";
|
||||
fh.SaveBase64ToFile(pdfdoc,AppParams.tempdir + filename);
|
||||
db.save_serienbrief_datei(sb.serienbriefnr, Convert.ToInt32(vorlagendaten.Rows[i]["IntEintragnr"]), AppParams.tempdir+filename);
|
||||
//db = null;
|
||||
fh.SaveBase64ToFile(pdfdoc, AppParams.tempdir + filename);
|
||||
db.save_serienbrief_datei(sb.serienbriefnr, Convert.ToInt32(vorlagendaten.Rows[i]["IntEintragnr"]), AppParams.tempdir + filename);
|
||||
System.IO.File.Delete(AppParams.tempdir + filename);
|
||||
db = null;
|
||||
System.Data.DataRow dr = sb.dsempfaenger.Tables[0].Select("intEintragnr = '" + vorlagendaten.Rows[i]["IntEintragnr"].ToString()+"'").FirstOrDefault();
|
||||
if (dr != null)
|
||||
{
|
||||
dr["STATUS"] = "1";
|
||||
}
|
||||
|
||||
|
||||
|
||||
sb.DocValues.Clear();
|
||||
|
||||
|
||||
}
|
||||
finish_progress();
|
||||
|
||||
}
|
||||
|
||||
private void insert_PPZeile(string position, string typ)
|
||||
@@ -938,12 +975,12 @@ namespace OnDoc.UIControls
|
||||
}
|
||||
|
||||
clsDocValue dv = new clsDocValue();
|
||||
dv.TMBeginn=beginntextmarke; ;
|
||||
dv.TMBeginn = beginntextmarke; ;
|
||||
dv.TMEnd = endetextmarke;
|
||||
dv.Value = feldwert;
|
||||
dv.FieldName=feldname;
|
||||
dv.FieldName = feldname;
|
||||
sb.DocValues.Add(dv);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private string Insert_DT_Column(ref System.Data.DataTable dt, string colname)
|
||||
@@ -1075,12 +1112,237 @@ namespace OnDoc.UIControls
|
||||
{
|
||||
if (docPreview1.Visible == true)
|
||||
{
|
||||
var selectedItem = e.DataRow;
|
||||
var dataRow = (e.DataRow.RowData as DataRowView).Row;
|
||||
string inteintragnr = "0";
|
||||
inteintragnr = dataRow["inteintragnr"].ToString();
|
||||
docPreview1.Show_Serienbrief_Dokument(sb.serienbriefnr, Convert.ToInt32(inteintragnr));
|
||||
try
|
||||
{
|
||||
var selectedItem = e.DataRow;
|
||||
var dataRow = (e.DataRow.RowData as DataRowView).Row;
|
||||
string inteintragnr = "0";
|
||||
inteintragnr = dataRow["inteintragnr"].ToString();
|
||||
docPreview1.Show_Serienbrief_Dokument(sb.serienbriefnr, Convert.ToInt32(inteintragnr));
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
|
||||
private void init_progressbar(string title, int maxvalue)
|
||||
{
|
||||
progressBarAdv1.Value = 0;
|
||||
progressBarAdv1.Maximum = maxvalue;
|
||||
progressBarAdv1.Minimum = 0;
|
||||
lblProgressTitel.Text = title;
|
||||
pnlprogress.Visible = true;
|
||||
}
|
||||
|
||||
private void add_progress()
|
||||
{
|
||||
progressBarAdv1.Value = progressBarAdv1.Value + 1;
|
||||
System.Windows.Forms.Application.DoEvents();
|
||||
}
|
||||
private void finish_progress()
|
||||
{
|
||||
pnlprogress.Visible = false;
|
||||
}
|
||||
|
||||
private void merge()
|
||||
{
|
||||
|
||||
DataView dv = new DataView(sb.dsempfaenger.Tables[0]);
|
||||
|
||||
dv.RowFilter = "Status = 1";
|
||||
dv.Sort = "Partnernr";
|
||||
PdfDocument finalDoc = new PdfDocument();
|
||||
|
||||
DB db = new DB(AppParams.connectionstring);
|
||||
int stapelgroesse = 100;
|
||||
int stapel = 1;
|
||||
int i = 0;
|
||||
int anzahl_stapel = (dv.Count / 100) + 1;
|
||||
Stream[] streams = null;
|
||||
if (dv.Count > stapelgroesse) { streams = new Stream[stapelgroesse]; } else streams = new Stream[dv.Count];
|
||||
init_progressbar("Druckstapel generieren", dv.Count);
|
||||
foreach (DataRowView rowView in dv)
|
||||
{
|
||||
add_progress();
|
||||
System.Data.DataRow dr = rowView.Row;
|
||||
db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where serienbriefnr=" + sb.serienbriefnr.ToString() + " and inteintragnr=" + dr["IntEintragNr"].ToString(), false, true);
|
||||
var stream = new MemoryStream(Convert.FromBase64String(db.dsdaten.Tables[0].Rows[0][0].ToString()));
|
||||
if (stream.Length > 0)
|
||||
{
|
||||
streams[i] = stream;
|
||||
i++;
|
||||
if (i >= stapelgroesse)
|
||||
{
|
||||
save_stapel(stapel, ref streams);
|
||||
|
||||
i = 0;
|
||||
streams = new Stream[dv.Count-(stapel*stapelgroesse)];
|
||||
stapel++;
|
||||
}
|
||||
}
|
||||
}
|
||||
save_stapel(stapel, ref streams);
|
||||
//PdfDocumentBase.Merge(finalDoc, streams);
|
||||
//FileStream fs = new FileStream(AppParams.tempdir+sb.serienbriefnr.ToString()+".pdf",FileMode.Create);
|
||||
//finalDoc.Save(fs);
|
||||
//finalDoc.Close();
|
||||
//finalDoc.Dispose();
|
||||
//fs.Close();
|
||||
//fs.Dispose();
|
||||
//for (i = 0; i < streams.Length; i++)
|
||||
//{
|
||||
// streams[i].Dispose();
|
||||
//}
|
||||
streams = null;
|
||||
dv = null;
|
||||
finish_progress();
|
||||
}
|
||||
|
||||
private void save_stapel(int stapelnr, ref Stream[] streams)
|
||||
{
|
||||
try
|
||||
{
|
||||
PdfDocument finalDoc = new PdfDocument();
|
||||
PdfDocumentBase.Merge(finalDoc, streams);
|
||||
string filename = AppParams.tempdir + DateTime.Now.ToString("yyyyhhmmHHmmss") + "_" + stapelnr.ToString() + "_" + sb.serienbriefnr.ToString() + ".pdf";
|
||||
FileStream fs = new FileStream(filename, FileMode.Create);
|
||||
finalDoc.Save(fs);
|
||||
finalDoc.Close();
|
||||
finalDoc.Dispose();
|
||||
fs.Close();
|
||||
fs.Dispose();
|
||||
TreeNodeAdv tn = new TreeNodeAdv();
|
||||
tn.Text = "Druckstapel " + stapelnr.ToString()+" ("+streams.Length.ToString()+")";
|
||||
tn.Tag = stapelnr.ToString();
|
||||
tn.TagObject = filename;
|
||||
treeviewDruckstapel.Nodes.Add(tn);
|
||||
for (int i = 0; i < streams.Length; i++)
|
||||
{
|
||||
streams[i].Dispose();
|
||||
}
|
||||
streams = null;
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private void ribbonButtonDruckstapel_Click(object sender, EventArgs e)
|
||||
{
|
||||
treeviewDruckstapel.Nodes.Clear();
|
||||
merge();
|
||||
try
|
||||
{
|
||||
treeviewDruckstapel.SelectedNode = treeviewDruckstapel.Nodes[0];
|
||||
}
|
||||
catch { }
|
||||
grpDruckstapel.Visible = true;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start(treeviewDruckstapel.SelectedNode.TagObject.ToString());
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
grpDruckstapel.Visible = false;
|
||||
}
|
||||
|
||||
private void RibbonButtonArchivierenUndAbschlessen_CanvasChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void RibbonButtonArchivierenUndAbschlessen_Click(object sender, EventArgs e)
|
||||
{
|
||||
DB db = new DB(AppParams.connectionstring);
|
||||
DataView dv = new DataView(sb.dsempfaenger.Tables[0]);
|
||||
dv.RowFilter = "Status = 1";
|
||||
dv.Sort = "Partnernr";
|
||||
foreach (DataRowView rowView in dv)
|
||||
{
|
||||
OnBaseDocUpload.OnBaseDokument onbasedoc = new OnBaseDocUpload.OnBaseDokument();
|
||||
System.Data.DataRow dr = rowView.Row;
|
||||
db.clear_parameter();
|
||||
db.add_parameter("@serienbriefnr", sb.serienbriefnr.ToString());
|
||||
db.add_parameter("@intEintragnr", dr["intEintragnr"].ToString());
|
||||
db.add_parameter("@partnernr", dr["Partnernr"].ToString());
|
||||
db.Get_Tabledata("sp_get_onbase_parameters_sb", true, false);
|
||||
if (db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString() == "")
|
||||
{
|
||||
onbasedoc.personNummer = db.dsdaten.Tables[0].Rows[0]["PersonNummer"].ToString();
|
||||
onbasedoc.bpNummer = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
onbasedoc.bpNummer = db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString();
|
||||
onbasedoc.personNummer = "";
|
||||
}
|
||||
onbasedoc.dokumentDatum = db.dsdaten.Tables[0].Rows[0]["DokumentDatum"].ToString();
|
||||
onbasedoc.dokumentTyp = db.dsdaten.Tables[0].Rows[0]["dokumenttyp"].ToString();
|
||||
onbasedoc.dateiTyp= db.dsdaten.Tables[0].Rows[0]["dateityp"].ToString();
|
||||
var Attribute = new List<Model.OnBaseDocUpload.attribute>();
|
||||
foreach (System.Data.DataRow rw in db.dsdaten.Tables[1].Rows)
|
||||
{
|
||||
var p = new OnBaseDocUpload.attribute()
|
||||
{
|
||||
fieldname = rw["fieldname"].ToString(),
|
||||
fieldvalue = rw["fieldvalue"].ToString()
|
||||
};
|
||||
Attribute.Add(p);
|
||||
}
|
||||
onbasedoc.attributes = Attribute;
|
||||
db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where serienbriefnr=" + sb.serienbriefnr.ToString() + " and inteintragnr=" + dr["IntEintragNr"].ToString(), false, true);
|
||||
onbasedoc.dokumentDatei = db.dsdaten.Tables[0].Rows[0][0].ToString();
|
||||
string URL = "";
|
||||
string response = "";
|
||||
|
||||
string jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(onbasedoc);
|
||||
URL = AppParams.RESTURI + "api/ArchivSBDoc";
|
||||
URL = URL + "?sbnr=" + sb.serienbriefnr.ToString();
|
||||
URL = URL + "&intid=" + dr["inteintragnr"].ToString();
|
||||
URL = URL + "&partnernr=" + dr["partnernr"].ToString();
|
||||
|
||||
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(URL);
|
||||
|
||||
httpWebRequest.ContentType = "text/json";
|
||||
httpWebRequest.Method = "POST";
|
||||
|
||||
|
||||
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
|
||||
{
|
||||
string json = jsonstring;
|
||||
|
||||
streamWriter.Write(json);
|
||||
streamWriter.Flush();
|
||||
}
|
||||
|
||||
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
|
||||
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
|
||||
{
|
||||
var result = streamReader.ReadToEnd();
|
||||
if (httpResponse.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
dr["STATUS"] = 2; ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
|
||||
//{
|
||||
// if (response.StatusCode == HttpStatusCode.OK)
|
||||
// {
|
||||
// StreamReader reader = new StreamReader(response.GetResponseStream());
|
||||
// string responseContent = reader.ReadToEnd();
|
||||
|
||||
// dok = Newtonsoft.Json.JsonConvert.DeserializeObject<clsdok>(responseContent);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", "");
|
||||
// }
|
||||
//}
|
||||
}
|
||||
sb.dsempfaenger.AcceptChanges();
|
||||
update_zahlen();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user