updfate 20250919

This commit is contained in:
Stefan Hutter
2025-09-19 14:20:47 +02:00
parent 98dc8ed0cb
commit d81d620468
2488 changed files with 1833953 additions and 103283 deletions

View File

@@ -44,7 +44,7 @@ namespace API_NetFramework.Controllers
public int senderror { get; set; } = 0;
public string response { get; set; } = "";
}
public enum uploadtype
{
@@ -112,7 +112,7 @@ namespace API_NetFramework.Controllers
{
return Ok(DokumentID);
}
// db.Get_Tabledata("Select barcodenr from barcodeetikette where dokumentid='" + DokumentID + "'", false, true);
// db.Get_Tabledata("Select barcodenr from barcodeetikette where dokumentid='" + DokumentID + "'", false, true);
SQL = "Select barcodenr from barcodeetikette where dokumentid=@DokumentID";
db.clear_parameter();
db.add_parameter("@DokumentID", DokumentID);
@@ -154,10 +154,10 @@ namespace API_NetFramework.Controllers
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
string ArchivAktiv;
ArchivAktiv= System.Configuration.ConfigurationManager.AppSettings["ArchivierungAktiv"].ToString();
ArchivAktiv = System.Configuration.ConfigurationManager.AppSettings["ArchivierungAktiv"].ToString();
if (ArchivAktiv != "True")
{
string message = "Hinweismeldung: "+System.Configuration.ConfigurationManager.AppSettings["ArchivierungNoAktivMessage"].ToString();
string message = "Hinweismeldung: " + System.Configuration.ConfigurationManager.AppSettings["ArchivierungNoAktivMessage"].ToString();
return Content(HttpStatusCode.OK, message);
}
try
@@ -306,7 +306,8 @@ namespace API_NetFramework.Controllers
extension = "PDF";
}
if (!revisionupload) {
if (!revisionupload)
{
if (db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString() == "")
{
onbasedoc.personNummer = db.dsdaten.Tables[0].Rows[0]["PersonNummer"].ToString();
@@ -334,7 +335,8 @@ namespace API_NetFramework.Controllers
onbasedoc.dokumentDatei = pdfdoc;
}
}
else {
else
{
onbasedoc_revision.dokumentHandle = revisionhandle;
onbasedoc_revision.dokumentTyp = db.dsdaten.Tables[0].Rows[0]["dokumenttyp"].ToString(); ;
onbasedoc_revision.dateiTyp = extension;
@@ -344,9 +346,10 @@ namespace API_NetFramework.Controllers
onbasedoc_revision.comment = "";
foreach (System.Data.DataRow rw in db.dsdaten.Tables[1].Rows)
{
if (rw[0].ToString() != "Handle") {
OnBaseDocUpload.attribute na = new OnBaseDocUpload.attribute(rw["fieldname"].ToString(), rw["fieldvalue"].ToString());
onbasedoc_revision.attributes.Add(na);
if (rw[0].ToString() != "Handle")
{
OnBaseDocUpload.attribute na = new OnBaseDocUpload.attribute(rw["fieldname"].ToString(), rw["fieldvalue"].ToString());
onbasedoc_revision.attributes.Add(na);
}
}
onbasedoc_revision.dokumentDatei = dok.dokument;
@@ -364,8 +367,8 @@ namespace API_NetFramework.Controllers
string debugdir = System.Configuration.ConfigurationManager.AppSettings["DebugDir"];
string jsonstring = "";
if (!revisionupload)
{
jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(onbasedoc);
{
jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(onbasedoc);
}
else
{
@@ -450,7 +453,7 @@ namespace API_NetFramework.Controllers
DB db = new DB(connectionstring);
db.clear_parameter();
db.add_parameter("@dokumentid", dokumentid);
db.Get_Tabledata("[OnDoc_IRIS_Archivierung]", true, false);
string returnmessage = db.dsdaten.Tables[0].Rows[0][0].ToString();
switch (db.dsdaten.Tables[0].Rows[0][1].ToString())
@@ -598,7 +601,7 @@ namespace API_NetFramework.Controllers
ilr.StatusCode = 0;
ilr.senderror = 0;
ilr.response = response;
APILogging.Log((HttpRequestMessage)Request, "Ende Transfer to OnBase", LogLevelType.Debug);
return Content(HttpStatusCode.OK, ilr);
}
@@ -611,7 +614,7 @@ namespace API_NetFramework.Controllers
}
}
private string archiv_sb_doc(string dokumentid, string partnernr, string serienbriefnr, string dokument, string inteintragnr)
{
OnBaseDocUpload.OnBaseDokument onbasedoc = new OnBaseDocUpload.OnBaseDokument();
@@ -660,7 +663,7 @@ namespace API_NetFramework.Controllers
public IHttpActionResult Send_Versandstrasse(string paketid = "")
{
string json_versandpaket = "";
if (paketid != "")
{
@@ -682,9 +685,9 @@ namespace API_NetFramework.Controllers
}
else
{
json_versandpaket = Request.Content.ReadAsStringAsync().Result;
json_versandpaket = Request.Content.ReadAsStringAsync().Result;
}
Versandpaket versandpaket = new Versandpaket();
versandpaket.Dokument = new List<Versanddokument>();
versandpaket = JsonConvert.DeserializeObject<Versandpaket>(json_versandpaket);
@@ -742,7 +745,7 @@ namespace API_NetFramework.Controllers
}
else
{
oba.BPNummer = versandpaket.partnernr.ToString();
oba.DocumentHandle = "";
oba.DistributionOption = versandpaket.Versandoption.ToString();
@@ -754,11 +757,11 @@ namespace API_NetFramework.Controllers
foreach (Versanddokument vd in versandpaket.Dokument)
{
{
if (versandpaket.isSerienbrief)
{
string result = "";
inthandle = archiv_sb_doc(vd.DokumentID, vd.Partnernr, versandpaket.sb.serienbriefnr.ToString(), vd.dokument, vd.inteintragnr.ToString());
int test;
@@ -767,56 +770,59 @@ namespace API_NetFramework.Controllers
if (!isnumeric || inthandle == "")
{
ILResponse ilr1 = new ILResponse();
ilr1.response = "Dokument IntEIntrag="+vd.inteintragnr.ToString()+" nicht archiviert";
ilr1.response = "Dokument IntEIntrag=" + vd.inteintragnr.ToString() + " nicht archiviert";
ilr1.senderror = 1;
DB db = new DB(connectionstring);
db.Exec_SQL("Update OnDoc_Versandstrasse_paket set fehler=1, fehlerdatum=getdate(), fehlerbeschreibung='"+ ilr1.response+"' where id=" + paketid);
db.Exec_SQL("Update OnDoc_Versandstrasse_paket set fehler=1, fehlerdatum=getdate(), fehlerbeschreibung='" + ilr1.response + "' where id=" + paketid);
return Content(HttpStatusCode.InternalServerError, ilr1.response);
}
oba.DocumentHandle = inthandle.ToString();
DOCGEN.DocGen dg = new DOCGEN.DocGen();
versandpaket.finaldoc = dg.geneate_dummy_pdf("VS Serienbrief: Handle "+oba.DocumentHandle.ToString() +" "+ DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"));
versandpaket.finaldoc = dg.geneate_dummy_pdf("VS Serienbrief: Handle " + oba.DocumentHandle.ToString() + " " + DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"));
}
else
{
IHttpActionResult res = ArchivDocFromDatabase(vd.DokumentID, vd.dokument);
DB db = new DB(connectionstring);
db.clear_parameter();
db.add_parameter("@dokumentid", vd.DokumentID);
db.Get_Tabledata("sp_get_handle", true, false);
if (db.dsdaten.Tables[0].Rows.Count > 0)
if (!vd.DokumentID.Contains("ATT"))
{
inthandle = db.dsdaten.Tables[0].Rows[0][0].ToString();
int test;
bool isnumeric = int.TryParse(inthandle, out test);
if (!isnumeric || inthandle=="")
IHttpActionResult res = ArchivDocFromDatabase(vd.DokumentID, vd.dokument);
DB db = new DB(connectionstring);
db.clear_parameter();
db.add_parameter("@dokumentid", vd.DokumentID);
db.Get_Tabledata("sp_get_handle", true, false);
if (db.dsdaten.Tables[0].Rows.Count > 0)
{
inthandle = db.dsdaten.Tables[0].Rows[0][0].ToString();
int test;
bool isnumeric = int.TryParse(inthandle, out test);
if (!isnumeric || inthandle == "")
{
ILResponse ilr1 = new ILResponse();
ilr1.response = "Dokument ID:'" + vd.DokumentID + "' nicht archiviert";
ilr1.senderror = 1;
db.Exec_SQL("Update OnDoc_Versandstrasse_paket set fehler=1, fehlerdatum=getdate(), fehlerbeschreibung='" + ilr1.response + "' where id=" + paketid);
return Content(HttpStatusCode.InternalServerError, ilr1.response);
}
oba.DocumentHandle = inthandle;
DOCGEN.DocGen dg = new DOCGEN.DocGen();
versandpaket.finaldoc = dg.geneate_dummy_pdf("Versandstrasse - DummyDokument - " + DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"));
//versandpaket.finaldoc = "";
dg = null;
}
else
{
ILResponse ilr1 = new ILResponse();
ilr1.response = "Dokument ID:'"+ vd.DokumentID+"' nicht archiviert";
ilr1.response = "Dokument ID:'" + vd.DokumentID + "' nicht archiviert";
ilr1.senderror = 1;
db.Exec_SQL("Update OnDoc_Versandstrasse_paket set fehler=1, fehlerdatum=getdate(), fehlerbeschreibung='" + ilr1.response + "' where id=" + paketid);
return Content(HttpStatusCode.InternalServerError, ilr1.response);
}
oba.DocumentHandle = inthandle;
DOCGEN.DocGen dg = new DOCGEN.DocGen();
versandpaket.finaldoc=dg.geneate_dummy_pdf("Versandstrasse - DummyDokument - " + DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"));
//versandpaket.finaldoc = "";
dg = null;
db = null;
}
else
{
ILResponse ilr1 = new ILResponse();
ilr1.response = "Dokument ID:'" + vd.DokumentID + "' nicht archiviert";
ilr1.senderror = 1;
db.Exec_SQL("Update OnDoc_Versandstrasse_paket set fehler=1, fehlerdatum=getdate(), fehlerbeschreibung='" + ilr1.response + "' where id=" + paketid);
return Content(HttpStatusCode.InternalServerError, ilr1.response);
}
db = null;
}
}
}
@@ -829,15 +835,23 @@ namespace API_NetFramework.Controllers
onbasedoc.dokumentDatei = versandpaket.finaldoc;
onbasedoc.dateiTyp = "PDF";
onbasedoc.attributes = new List<OnBaseDocUpload.attribute>();
if (oba.GASCouvert=="") { oba.GASCouvert = "false"; } else { oba.GASCouvert = "true"; }
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("Document Handle",oba.DocumentHandle.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O DistributionOption",oba.DistributionOption.ToString()));
if (oba.GASCouvert == "") { oba.GASCouvert = "false"; } else { oba.GASCouvert = "true"; }
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("Document Handle", oba.DocumentHandle.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O DistributionOption", oba.DistributionOption.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O GasCouvert", oba.GASCouvert.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O Returnaddress", oba.Returnaddress.ToString()));
if (System.Configuration.ConfigurationManager.AppSettings["GASSize"].ToString() == "True")
{
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O GasSize", oba.GASSize.ToString()));
if (oba.GASCouvert.ToString().ToUpper() == "TRUE")
{
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O GasSize", oba.GASSize.ToString()));
}
else
{
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O GasSize", ""));
}
}
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O Dochandle", oba.DocumentHandle.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O Status", oba.Status.ToString()));
@@ -857,7 +871,7 @@ namespace API_NetFramework.Controllers
{
if (debugfilename != "")
{
debugfilename = debugfilename + "VS_"+oba.BPNummer+"_"+DateTime.Now.ToString("yyyyMMddhhmmss")+".json";
debugfilename = debugfilename + "VS_" + oba.BPNummer + "_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".json";
System.IO.File.WriteAllText(debugfilename, jsonstring);
debugfilename = debugfilename + ".pdf";
Helper.clsFileHelper fh = new Helper.clsFileHelper();
@@ -876,14 +890,14 @@ namespace API_NetFramework.Controllers
APILogging.Log((HttpRequestMessage)Request, "Upload Versandstrasse:" + debugfilename, LogLevelType.Debug);
//Log nachführen
// Update_IL_Log(ref ilr, DokumentID);
// Update_IL_Log(ref ilr, DokumentID);
if (ilr.senderror == 1)
{
return Content(HttpStatusCode.InternalServerError, ilr.response);
}
else
{
// update_dokumentstatus(debugfilename);
// update_dokumentstatus(debugfilename);
return Content(HttpStatusCode.OK, oba.BPNummer.ToString() + " *archiviert*");
}
}
@@ -928,7 +942,7 @@ namespace API_NetFramework.Controllers
APILogging.Log((HttpRequestMessage)Request, "Ende Resend_Versandstrasse: PaketID:" + PaketID, LogLevelType.Debug);
return Content(HttpStatusCode.NotFound,PaketID);
return Content(HttpStatusCode.NotFound, PaketID);
}
catch (Exception e)
{

View File

@@ -23,6 +23,8 @@ using Versandstrasse;
using System.ComponentModel;
using System.Text;
using System.Text.Json.Serialization;
using Microsoft.Ajax.Utilities;
using System.Collections;
namespace API_NetFramework.Controllers
@@ -103,6 +105,434 @@ namespace API_NetFramework.Controllers
}
private string create_paketdoc(APIDokument dokument, DokumentCreate paket, string key)
{
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
string dokumentid = "";
clsDocData dokdata = new clsDocData();
Database.DB db = new DB(connectionstring);
db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + dokument.VorlagenTypID, false, true);
System.Data.DataRow dr = db.dsdaten.Tables[0].Rows[0];
dokdata.Barcode = Convert.ToBoolean(dr["Vertrag"]) == true;
db.Get_Tabledata("Select beschreibung from physischesarchiv where physischesarchivnr = " + dr["physisches_archiv"].ToString(), false, true);
dokdata.barcode_zusatz = db.dsdaten.Tables[0].Rows[0][0].ToString();
if (dokdata.barcode_zusatz != "") { dokdata.barcode_zusatz = " " + dokdata.barcode_zusatz; }
db.Get_Tabledata("Select office_vorlagenr,kopfzeile_generieren, bcpt,bcpl, bcw, bch, bchorizontal, barcodetype, datamatrixcontent from office_vorlage where office_vorlagenr=" + dr["office_vorlagenr"].ToString(), false, true);
dokdata.VorlageNr = Convert.ToInt32(dr["office_vorlagenr"]).ToString(); ;
try
{
dokdata.Kopfzeile_generieren = false;
if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0][1]) == true) { dokdata.Kopfzeile_generieren = true; }
}
catch { }
if (dokdata.Barcode)
{
dokdata.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]);
dokdata.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]);
dokdata.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]);
dokdata.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]);
dokdata.barcode_horizontal = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bchorizontal"]);
dokdata.barcode_type = db.dsdaten.Tables[0].Rows[0]["BarcodeType"].ToString();
dokdata.barcode_content = db.dsdaten.Tables[0].Rows[0]["DatamatrixContent"].ToString();
string sql = "";
sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping ";
sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " ";
sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString();
db.Get_Tabledata(sql, false, true);
if (db.dsdaten.Tables[0].Rows.Count > 0)
{
dokdata.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]);
dokdata.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]);
dokdata.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]);
dokdata.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]);
}
if (dokdata.barcode_type == "1")
{
DB dB = new DB(connectionstring);
dB.clear_parameter();
dB.add_parameter("@dokumentid", dokumentid);
dB.add_parameter("@DokumentidBR", "");
dB.add_parameter("@BARCODEFONTNAME", "");
dB.add_parameter("@BARCODEFONTSIZE", "");
dB.add_parameter("@BarcodeKantenlaenge", "");
dB.Get_Tabledata("sp_get_OnDoc_barcodetype_and_value", true, false);
dokdata.barcode_content = dB.dsdaten.Tables[0].Rows[0][1].ToString();
dokdata.barcode_formatn = dB.dsdaten.Tables[0].Rows[0][3].ToString();
dokdata.barcode_text = dB.dsdaten.Tables[0].Rows[0][4].ToString();
dokdata.barcode_kantenlaenge = dB.dsdaten.Tables[0].Rows[0][5].ToString();
dokdata.Zusatz_Font = dB.dsdaten.Tables[0].Rows[0][6].ToString();
dokdata.Zusatz_FontSize = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][7]);
dokdata.barcode_width = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][8]);
dokdata.barcode_height = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][9]);
//dokdata.barcode_type= dB.dsdaten.Tables[0].Rows[0][3].ToString();
sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping ";
sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " ";
sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString();
dB.Get_Tabledata(sql, false, true);
if (dB.dsdaten.Tables[0].Rows.Count > 0)
{
Logging.Logging.Debug("Barcode-Übersteuerung" + dokdata.DokumenttypNr.ToString(), "Dokumenterstellung", "");
dokdata.barcode_left = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0]["bcpl"]);
dokdata.barcode_top = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0]["bcpt"]);
dokdata.barcode_width = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0]["bcw"]);
dokdata.barcode_height = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0]["bch"]);
}
}
db.Get_Tabledata("Select * from ondoc_appparams", false, true);
dokdata.barcode_font = db.dsdaten.Tables[0].Rows[0]["barcodefont"].ToString();
dokdata.barcode_fontsize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["barcodefontsize"].ToString());
dokdata.Zusatz_Font = db.dsdaten.Tables[0].Rows[0]["Zusatzfont"].ToString();
dokdata.Zusatz_FontSize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["ZusatzfontSize"].ToString());
dokdata.barcode_textposition = db.dsdaten.Tables[0].Rows[0]["barcodetextposition"].ToString(); ;
}
Model.clsdocgendata docgendata = new Model.clsdocgendata();
DataTable dokwertlist = new DataTable();
dokwertlist = db.Get_DokumentWertList("", Convert.ToInt32(dokument.VorlagenTypID), 1);
docgendata.dokumentwerte = dokwertlist;
docgendata.partnernr = dokument.Partnernr;
docgendata.inhaberadresse = "";
docgendata.zustelladresse = "";
docgendata.dokumenttypnr = dokument.VorlagenTypID;
docgendata.unterschriftLinks = db.Get_Mitarbeiternr(dokument.TGNrUnterschriftLinks).ToString();
docgendata.unterschriftRehts = db.Get_Mitarbeiternr(dokument.TGNrUnterschriftRechts).ToString();
docgendata.verantwortlich = db.Get_Mitarbeiternr(dokument.TGNrVerantwortlich).ToString();
docgendata.ersteller = db.Get_Mitarbeiternr(dokument.TGNrErsteller).ToString();
docgendata.team = db.Get_Teamnr(docgendata.ersteller).ToString();
docgendata.digitaleunterschrift = false;
docgendata.frormularOhneUnterschrift = dokument.OhneUnterschrift == "Yes";
docgendata.zustaendigkube = db.Get_Mitarbeiternr(dokument.TGNrVerantwortlich).ToString();
docgendata.status = "-1";
docgendata.dokumentdatum = DateTime.Now.ToString("dd.MM.yyyy");
docgendata.dokumentdatum = dokument.Dokumentdatum;
docgendata.frormularOhneUnterschrift = dokument.OhneUnterschrift == "Yes";
docgendata.bezeichnung = dokument.Bezeichnung;
if (paket.Result_FileType == "WORD") { docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten; } else { docgendata.erstellungsart = Erstellungsart.DokumentAlsPDF; }
if (docgendata.verantwortlich == "0") { docgendata.verantwortlich = docgendata.ersteller; }
dokdata.PartnerNr = docgendata.partnernr;
dokdata.UseEDOKA_Values = "True";
dokdata.DokumenttypNr = docgendata.dokumenttypnr;
dokdata.Unterschrift_Links = docgendata.unterschriftLinks;
if (dokdata.Unterschrift_Links == "0") { dokdata.Unterschrift_Links = "-1"; }
dokdata.Unterschrift_Rechts = docgendata.unterschriftRehts;
if (dokdata.Unterschrift_Rechts == "0") { dokdata.Unterschrift_Rechts = "-1"; }
dokdata.Verantwortlich = docgendata.verantwortlich;
dokdata.Team = docgendata.team;
dokdata.Zustaendig = docgendata.zustaendigkube;
dokdata.Zustaendig = docgendata.zustaendigkube;
dokdata.Status = docgendata.status;
dokdata.Ersteller = docgendata.ersteller;
dokdata.DokumentDatum = docgendata.dokumentdatum;
dokdata.Termin = "01.01.1900";
dokdata.Bezeichnung = docgendata.bezeichnung;
dokdata.dokumentwerte = docgendata.dokumentwerte;
//Unterschriftenprüfung
dokdata.Form_ohne_Unterschrift = docgendata.frormularOhneUnterschrift.ToString();
dokdata.approval1 = 0;
dokdata.approval2 = 0;
dokdata.approved = 0;
if (dokdata.Form_ohne_Unterschrift == "True")
{
dokdata.Unterschrift_Links = "-1";
dokdata.Unterschrift_Rechts = "-1";
}
if (dokument.FaksimileUnterschrift == "Yes")
{
dokdata.As_Faksimile = "True"; dokdata.sign = true; docgendata.digitaleunterschrift = true;
if (dokdata.Unterschrift_Links != "-1") { dokdata.approval1 = 1; }
if (dokdata.Unterschrift_Rechts != "-1") { dokdata.approval2 = 1; }
if (dokdata.Unterschrift_Links != "-1" && dokdata.Unterschrift_Rechts == "-1")
{
if (dokdata.Ersteller == dokdata.Unterschrift_Links)
{
dokdata.approved = 1;
}
else
{
dokdata.sign = false;
dokdata.toapprove = 1;
dokdata.approved = 0;
dokdata.approval1 = 0;
dokdata.approval2 = 1;
docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten;
}
}
else
{
docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten;
dokdata.toapprove = 1;
dokdata.sign = true;
}
}
dokdata.APIValues = dokument.APIValues;
dokdata.TextToReplace = dokument.TextToReplace;
if (dokument.PrintLogo == "Yes") { dokdata.PrintLogo = true; } else { dokdata.PrintLogo = false; }
if (docgendata.erstellungsart == Erstellungsart.DokumentAlsPDF) { dokdata.Result_as_PDF = "True"; } else { dokdata.Result_as_PDF = "False"; }
if (docgendata.digitaleunterschrift == true) { dokdata.As_Faksimile = "True"; } else { dokdata.As_Faksimile = "False"; }
dokumentid = db.Create_EDOKA_Doc(dokdata, false, "");
dokdata.Dokumentid = dokumentid;
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(this.connectionstring, OwnHost, key.ToString());
clsdok dok = new clsdok("", "", "", "");
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata, false, 0, false, false);
db.Save_To_DB(dokumentid, "", dok.dokument);
dokdata = null;
docgendata = null;
db = null;
Generator = null;
dok = null;
return dokumentid;
}
public string RandomString(int size, bool lowerCase = false)
{
var builder = new StringBuilder(size);
// Unicode/ASCII Letters are divided into two blocks
// (Letters 6590 / 97122):
// The first group containing the uppercase letters and
// the second group containing the lowercase.
// char is a single Unicode character
char offset = lowerCase ? 'a' : 'A';
const int lettersOffset = 26; // A...Z or a..z: length=26
for (var i = 0; i < size; i++)
{
var @char = (char)_random.Next(offset, offset + lettersOffset);
builder.Append(@char);
}
return lowerCase ? builder.ToString().ToLower() : builder.ToString();
}
private readonly Random _random = new Random();
[HttpPost]
[Route("API/CreateDoks")]
public IHttpActionResult CreateDoks()
{
bool hasattachment = false;
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
HttpRequestMessage rmsg = (HttpRequestMessage)Request;
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
string imagepath = System.Configuration.ConfigurationManager.AppSettings["VSImagePath"].ToString();
var key = rmsg.Headers.Authorization.Parameter.ToString();
string result = Request.Content.ReadAsStringAsync().Result;
DokumentCreate paket = new DokumentCreate();
paket = JsonConvert.DeserializeObject<DokumentCreate>(result);
string CheckResult = "";
CheckResult = CreatePaket_Verify(ref paket);
if (CheckResult != "")
{
return BadRequest(CheckResult);
}
foreach (APIDokument dokument in paket.Dokumente)
{
if (dokument.PDFDoc != "" && dokument.PDFDoc != null)
{
string gid = "ATT" + RandomString(19);
dokument.DokumentID = gid;
hasattachment = true;
}
else
{
dokument.DokumentID = create_paketdoc(dokument, paket, key);
}
}
if (paket.Result_Sender == "Yes")
{
List<APIDokumentResult> Dokumente = new List<APIDokumentResult>();
clsVersandstrasse vs1 = new clsVersandstrasse();
foreach (APIDokument dokumennt in paket.Dokumente)
{
if (dokumennt.DokumentID.Contains("ATT"))
{
APIDokumentResult aPIDokumentResult = new APIDokumentResult();
aPIDokumentResult.dokumentid = dokumennt.DokumentID;
aPIDokumentResult.dokument = dokumennt.PDFDoc;
Dokumente.Add(aPIDokumentResult);
}
else
{
APIDokumentResult aPIDokumentResult = new APIDokumentResult();
aPIDokumentResult.dokumentid = dokumennt.DokumentID;
aPIDokumentResult.dokument = vs1.Prepare_PDF(dokumennt.DokumentID.ToString(), "", connectionstring, OwnHost, key.ToString(), imagepath);
Dokumente.Add(aPIDokumentResult);
}
}
vs1 = null;
Dokumente = null;
string json = System.Text.Json.JsonSerializer.Serialize(Dokumente);
paket = null;
return Ok(json);
}
if (paket.Versandstrasse == "Yes")
{
clsVersandstrasse vs = new clsVersandstrasse();
string vsdoc = "";
List<Versanddokument> vdoc = new List<Versanddokument>();
string partnernr = "";
int i = 0;
foreach (APIDokument dokumennt in paket.Dokumente)
{
if (dokumennt.DokumentID.Contains("ATT"))
{
vsdoc = vs.check_pdf_pages(dokumennt.PDFDoc);
}
else
{
vsdoc = vs.Prepare_PDF(dokumennt.DokumentID.ToString(), "", connectionstring, OwnHost, key.ToString(), imagepath);
}
i = i + 1;
Versanddokument vd = new Versanddokument(dokumennt.DokumentID.ToString(), dokumennt.Partnernr.ToString() + " - " + dokumennt.Bezeichnung, partnernr);
vd.Partnernr = dokumennt.Partnernr;
vd.dokument = vsdoc;
vdoc.Add(vd);
}
Stream[] streams = new Stream[paket.Dokumente.Count];
i = 0;
foreach (Versanddokument vd in vdoc)
{
{
var stream = new MemoryStream(Convert.FromBase64String(vd.dokument));
streams[i] = stream;
i++;
}
}
string stapel = vs.save_stapel(ref streams, 19000000);
Versandpaket vp = new Versandpaket();
vp.partnernr = Convert.ToInt32(paket.Dokumente[0].Partnernr.ToString());
vp.GASAdresse = paket.GAS_Adresse;
vp.Mitteilung = "";
vp.PaketNr = new Guid().ToString();
if (vp.GASAdresse != "") { vp.GAS = "1"; } else { vp.GAS = ""; }
vp.GASSize = paket.GAS_Couvert;
vp.Versandoption = paket.Versand_Option;
vp.Dokument = vdoc;
vp.finaldoc = stapel;
if (vp.Dokument.Count>1) { vp.send_onbase_doc = false; } else { vp.send_onbase_doc= true; }
vp.verified = true;
DB db = new DB(connectionstring);
int manr = db.Get_Mitarbeiternr(paket.Versand_Verantwortlich.ToString());
send_vs(ref vp, manr.ToString(), paket.Versand_Direkt == "Yes", OwnHost, key.ToString(), "", paket.Dokumente[0].Partnernr);
db = null;
streams = null;
vs = null;
}
return Ok();
}
private string CreatePaket_Verify(ref DokumentCreate paket)
{
try
{
APILogging.Log((HttpRequestMessage)Request, "Start GenDoc ", LogLevelType.Debug);
int i = 0;
foreach (APIDokument dokument in paket.Dokumente)
{
i = i + 1;
if (dokument.PDFDoc != null && dokument.PDFDoc.Length > 0)
{
if (i == 1) { return "Ein Anhang (PDF-Dokument) kann nicht als erstes Dokument bereit gestellt werden."; }
if (!(ParamCheck("partnernr", dokument.Partnernr.ToString()))) { return "Partnernr " + dokument.Partnernr + " ist ungültig"; }
if (dokument.VorlagenTypID != "0") { return "Vorlagentyp muss bei PDF-Dokumenten '0' sein"; }
break;
}
if (!(ParamCheck("partnernr", dokument.Partnernr.ToString()))) { return "Partnernr " + dokument.Partnernr + " ist ungültig"; }
if (dokument.VorlagenTypID == "" && dokument.PDFDoc == "") { return "Vorlagentyp emptry und PDFDoc empty"; }
if (!(ParamCheck("dokumenttyp", dokument.VorlagenTypID))) { return "Vorlagentyp " + dokument.VorlagenTypID + " ist ungültig"; }
if (!(ParamCheck("tgnr", dokument.TGNrErsteller))) { return "TGNr-Ersteller " + dokument.TGNrErsteller + " ist ungültig"; }
if (!(ParamCheck("tgnr", dokument.TGNrVerantwortlich))) { return "TGNr-Verantwortlich " + dokument.TGNrVerantwortlich + " ist ungültig"; }
if (!(ParamCheck("tgnr", dokument.TGNrUnterschriftLinks))) { return "TGNr-Unterschriftlinks " + dokument.TGNrUnterschriftLinks + " ist ungültig"; }
if (!(ParamCheck("tgnr", dokument.TGNrUnterschriftRechts))) { return "TGNr-Unterschriftrechts " + dokument.TGNrUnterschriftRechts + " ist ungültig"; }
if (!(ParamCheck("yesno", dokument.FaksimileUnterschrift))) { return "Parameter Faxsimile " + dokument.FaksimileUnterschrift + " ist ungültig"; }
if (!(ParamCheck("yesno", dokument.OhneUnterschrift))) { return "Parameter Form ohne Unterschrift " + dokument.OhneUnterschrift + " ist ungültig"; }
if (!(ParamCheck("yesno", dokument.PrintLogo))) { return "Parameter PrintLogo " + dokument.PrintLogo + " ist ungültig"; }
if (dokument.TGNrUnterschriftLinks.ToString() == "") { dokument.TGNrUnterschriftLinks = "-1"; }
if (dokument.TGNrUnterschriftRechts.ToString() == "") { dokument.TGNrUnterschriftRechts = "-1"; }
if (dokument.FaksimileUnterschrift.ToUpper() == "YES")
{
if (dokument.TGNrUnterschriftLinks.ToString() == "-1") { return "Faksimile Unterschrift benötigt mit den Parameter TGUnterschriftLinks"; }
if (dokument.TGNrUnterschriftLinks.ToString() != "")
{
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + dokument.TGNrUnterschriftLinks.ToString() + ".jpg";
if (!System.IO.File.Exists(path)) { return "Image Unterschrift links " + dokument.TGNrUnterschriftLinks + " ist nicht vorhanden"; }
}
if (dokument.TGNrUnterschriftRechts.ToString() != "-1")
{
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + dokument.TGNrUnterschriftLinks.ToString() + ".jpg";
if (!System.IO.File.Exists(path)) { return "Image Unterschrift rechts " + dokument.TGNrUnterschriftRechts + " ist nicht vorhanden"; }
}
}
if (paket.Versandstrasse == "Yes")
{
if (ParamCheck("doktypversandstrasse", dokument.VorlagenTypID) == false) { return "Vorlagentyp " + dokument.VorlagenTypID + " ist nicht für die Versandstrasse konfiguriert"; }
if (i == 1)
{
if (ParamCheck("firstdoc", dokument.VorlagenTypID) == false) { return "Vorlagentyp " + dokument.VorlagenTypID + " kann nicht als erstes Dokument im Paket sein"; }
}
//if (dokument.TGNrUnterschriftLinks.ToLower() != "-1" && dokument.TGNrUnterschriftRechts.ToString() != "-1") { return "Versandstrasse mit zwei Unterschriften kann nicht automatisch angesteuert werden"; }
}
}
if (!(ParamCheck("yesno", paket.Versandstrasse))) { return "Parameter Versandstrasse " + paket.Versandstrasse + " ist ungültig"; }
if (!(ParamCheck("yesno", paket.Versand_Direkt))) { return "Parameter Versand Direkt " + paket.Versand_Direkt + " ist ungültig"; }
if (!(ParamCheck("yesno", paket.Result_OnDoc))) { return "Parameter Result_OnDoc " + paket.Result_OnDoc + " ist ungültig"; }
if (!(ParamCheck("yesno", paket.Result_Sender))) { return "Parameter Result_Sender " + paket.Result_Sender + " ist ungültig"; }
if (!(ParamCheck("filetype", paket.Result_FileType))) { return "Parameter Result_Filetype " + paket.Result_FileType + " ist ungültig"; }
if (!(ParamCheck("yesno", paket.ConfirmationMail))) { return "Parameter ConfirmationMail " + paket.ConfirmationMail + " ist ungültig"; }
if (!(ParamCheck("yesno", paket.ConfirmationMail))) { return "Parameter ConfirmationMail " + paket.ConfirmationMail + " ist ungültig"; }
if (!(ParamCheck("versandoption", paket.Versand_Option))) { return "Versandoption " + paket.Versand_Option + " ist ungültig"; }
if (paket.ConfirmationMail.ToUpper() == "YES" && paket.ConfirmationMailAddress.ToString() != "") { return "E-Mailadresse für Confirmation fehlt"; }
if (paket.Versandstrasse == "Yes")
{
if (paket.Versand_Option == "") { return "Versandoption fehlt (A_Post, B1_Post, B2_Post"; }
}
return "";
}
catch (Exception ex) { return ex.Message; }
}
[HttpPost]
[Route("API/CreateDoc")]
public IHttpActionResult CreateDoc()
@@ -295,6 +725,7 @@ namespace API_NetFramework.Controllers
}
dokdata.APIValues = doccreate.APIValues;
dokdata.TextToReplace = doccreate.TextToReplace;
if (doccreate.PrintLogo == "Yes") { dokdata.PrintLogo = true; } else { dokdata.PrintLogo = false; }
if (docgendata.erstellungsart == Erstellungsart.DokumentAlsPDF) { dokdata.Result_as_PDF = "True"; } else { dokdata.Result_as_PDF = "False"; }
@@ -321,7 +752,7 @@ namespace API_NetFramework.Controllers
Versandpaket vp = new Versandpaket();
vp.partnernr = Convert.ToInt32(docgendata.partnernr);
vp.GASAdresse = doccreate.GAS_Adresse;
if (vp.GASAdresse.ToString().Trim() == "") { vp.GAS="";} else { vp.GAS="true";}
if (vp.GASAdresse.ToString().Trim() == "") { vp.GAS = ""; } else { vp.GAS = "true"; }
vp.Versandoption = doccreate.Versand_Option; ;
List<Versanddokument> vdoc = new List<Versanddokument>();
Versanddokument vd = new Versanddokument(dokumentid, doccreate.Partnernr + " - " + dokdata.Bezeichnung, doccreate.Partnernr);
@@ -616,7 +1047,11 @@ namespace API_NetFramework.Controllers
break;
case "doktypversandstrasse":
db.Get_Tabledata("Select versandstrasse_moeglich, versandstrasse_firstdoc from dokumenttyp where dokumenttypnr=" + ParamValue, false, true);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) == 0 || Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]) == 0) { return false; }
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) == 0) { return false; }
break;
case "firstdoc":
db.Get_Tabledata("Select versandstrasse_moeglich, versandstrasse_firstdoc from dokumenttyp where dokumenttypnr=" + ParamValue, false, true);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]) == 0) { return false; }
break;
default:
return false;