2640 lines
130 KiB
C#
2640 lines
130 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using DOCGEN;
|
|
using Model;
|
|
using Database;
|
|
using Newtonsoft.Json;
|
|
using API_NetFramework.Models;
|
|
using System.Security.Cryptography;
|
|
using edoka_dms;
|
|
using SecuringWebApiUsingApiKey.Middleware;
|
|
using System.Linq.Expressions;
|
|
using System.Data;
|
|
using System.Web.Management;
|
|
using System.Web;
|
|
using System.IO;
|
|
using OnDocAPI_NetFramework.Controllers;
|
|
using Versandstrasse;
|
|
using System.ComponentModel;
|
|
using System.Text;
|
|
using System.Text.Json.Serialization;
|
|
using Microsoft.Ajax.Utilities;
|
|
using System.Collections;
|
|
using Microsoft.Extensions.Options;
|
|
using System.Web.Helpers;
|
|
using Syncfusion.CompoundFile.DocIO.Native;
|
|
using System.Web.UI.WebControls;
|
|
using System.Drawing.Text;
|
|
using System.Runtime.InteropServices.ComTypes;
|
|
using System.Reflection;
|
|
using Newtonsoft.Json.Linq;
|
|
using System.Runtime.Serialization.Json;
|
|
using System.Web.Http.Results;
|
|
using Syncfusion.DocIO.DLS.XML;
|
|
using System.Reflection.Emit;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Diagnostics;
|
|
using OnDocAPI_NetFramework.Helper;
|
|
using System.Drawing;
|
|
using System.Runtime.InteropServices;
|
|
using System.Web.ModelBinding;
|
|
using System.Net.Mail;
|
|
using System.Web.UI;
|
|
|
|
|
|
|
|
namespace API_NetFramework.Controllers
|
|
{
|
|
|
|
public class mailInhalt
|
|
{
|
|
public int typ = 0;
|
|
public string empfaenger = "";
|
|
public string subject = "";
|
|
public string message = "";
|
|
public string guid = "";
|
|
public string bezeichnung = "";
|
|
public string partnernr = "";
|
|
public string dokumentid = "";
|
|
public bool forceadminmail = false;
|
|
public bool sendmail = false;
|
|
public string Herkunftsapplikation = "OnDoc-API";
|
|
|
|
}
|
|
public class DocumentController : ApiController
|
|
{
|
|
|
|
private string guid = "";
|
|
|
|
public string tokenfunction = "Dokument";
|
|
string connectionstring = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["EDOKAConnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
|
|
|
|
[HttpGet]
|
|
[Route("API/GetDocument")]
|
|
public IHttpActionResult GetDocument(string dokid)
|
|
{
|
|
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
{
|
|
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
}
|
|
try
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Start GetDocument DokumentID:" + dokid, LogLevelType.Debug);
|
|
|
|
DOCGEN.DocGet gd = new DocGet(connectionstring);
|
|
clsdok dok = new clsdok("", "", "", "");
|
|
dok = gd.GetDoc(dokid);
|
|
APILogging.Log((HttpRequestMessage)Request, "Ende GetDocument DokumentID:" + dokid, LogLevelType.Debug);
|
|
|
|
return Ok(dok);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
|
|
return Content(HttpStatusCode.InternalServerError, e.Message);
|
|
}
|
|
|
|
}
|
|
|
|
[Route("API/GetDocumentPDF")]
|
|
[HttpGet]
|
|
public IHttpActionResult GetDocumentPDF(string dokid)
|
|
{
|
|
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
{
|
|
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
}
|
|
try
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Start GetDocumentPDF DokumentID:" + dokid, LogLevelType.Debug);
|
|
|
|
DOCGEN.DocGet gd = new DocGet(connectionstring);
|
|
clsdok dok = new clsdok("", "", "", "");
|
|
dok = gd.GetDocAsPDF(dokid);
|
|
dok.extension = "pdf";
|
|
dok.doktype = "P";
|
|
APILogging.Log((HttpRequestMessage)Request, "Ende GetDocument DokumentID:" + dokid, LogLevelType.Debug);
|
|
|
|
return Ok(dok);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
|
|
return Content(HttpStatusCode.InternalServerError, e.Message);
|
|
}
|
|
|
|
}
|
|
|
|
[HttpPost]
|
|
[Route("API/DokumentGenerator")]
|
|
public IHttpActionResult DokumentGenerator()
|
|
{
|
|
|
|
APIErrorSimple apireturn = new APIErrorSimple();
|
|
APIOK apiok = new APIOK();
|
|
try
|
|
{
|
|
guid = Guid.NewGuid().ToString();
|
|
string mailbody = "";
|
|
|
|
Logging.APIDocLog.Info("DokumentGegnerator Start", "DokumentGenerator", guid, "");
|
|
bool hasattachment = false;
|
|
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
{
|
|
apireturn.code = "ONDOC-ERR-DokumentGenerator-01";
|
|
apireturn.status = "401";
|
|
apireturn.message = "Invalid Token or API-Key";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
|
|
try
|
|
{
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
mailInhalt m = new mailInhalt();
|
|
m.typ = 1;
|
|
m.subject = "ONDOC-ERR-DokumentGenerator-01";
|
|
m.message = "Invalid Token or API-Key";
|
|
m.guid=guid; ;
|
|
m.dokumentid = "";
|
|
m.empfaenger = "";
|
|
m.bezeichnung = "";
|
|
m.partnernr = "";
|
|
m.sendmail = true;
|
|
m.forceadminmail = true;
|
|
|
|
Send_Confirmation(ref m);// "True", "", "OnDocAPI-Error - DokumentGenerator - GUID: " + guid, "Fehler: Invalid Token or API-Key", true);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
catch
|
|
{
|
|
mailInhalt m = new mailInhalt();
|
|
m.typ = 1;
|
|
m.subject = "ONDOC-ERR-DokumentGenerator-01";
|
|
m.message = "Invalid Token or API-Key";
|
|
m.guid = guid; ;
|
|
m.dokumentid = "";
|
|
m.empfaenger = "";
|
|
m.bezeichnung = "";
|
|
m.partnernr = "";
|
|
m.sendmail = true;
|
|
m.forceadminmail = true;
|
|
|
|
Send_Confirmation(ref m);
|
|
//Send_Confirmation("True", "", "OnDocAPI-Error - DokumentGenerator - GUID: " + guid, "Fehler: Invalid Token or API-Key", true);
|
|
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
}
|
|
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;
|
|
dynamic dataj = JsonConvert.DeserializeObject(result);
|
|
try
|
|
{
|
|
string type = dataj.Dokumente.ToString();
|
|
if (!String.IsNullOrEmpty(type))
|
|
{
|
|
return CreateDoks();
|
|
}
|
|
}
|
|
catch { }
|
|
try
|
|
{
|
|
string type = dataj.TGNrErsteller.ToString();
|
|
if (!String.IsNullOrEmpty(type))
|
|
{
|
|
return CreateDok();
|
|
}
|
|
}
|
|
catch { }
|
|
|
|
return CreateCLM();
|
|
|
|
}
|
|
catch
|
|
{
|
|
apireturn.code = "ONDOC-ERR-DokumentGenerator-02";
|
|
apireturn.status = "401";
|
|
apireturn.message = "Invalid JSON";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
try
|
|
{
|
|
mailInhalt m = new mailInhalt();
|
|
m.typ = 1;
|
|
m.subject = "ONDOC-ERR-DokumentGenerator-01";
|
|
m.message = "Invalid JSON";
|
|
m.guid = guid; ;
|
|
m.dokumentid = "";
|
|
m.empfaenger = "";
|
|
m.bezeichnung = "";
|
|
m.partnernr = "";
|
|
m.sendmail = true;
|
|
m.forceadminmail = true;
|
|
|
|
Send_Confirmation(ref m);
|
|
//Send_Confirmation("TRUE", "", "OnDoc-API-Error - DokumentGenerator - GUID: " + guid, "Invalid Token or API-Key", true);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
|
|
}
|
|
catch { return BadRequest(); }
|
|
|
|
}
|
|
finally { apiok = null; apireturn = null; }
|
|
|
|
}
|
|
|
|
[HttpPost]
|
|
[Route("API/CreateDoks")]
|
|
public IHttpActionResult CreateDoks()
|
|
{
|
|
|
|
APIErrorSimple apireturn = new APIErrorSimple();
|
|
APIOK apiok = new APIOK();
|
|
string mailbody = "";
|
|
|
|
try
|
|
{
|
|
guid = Guid.NewGuid().ToString();
|
|
Logging.APIDocLog.Info("CreateDoks Start", "CreateDoks", guid, "");
|
|
bool hasattachment = false;
|
|
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
{
|
|
apireturn.code = "ONDOC-ERR-CreateDoks-01";
|
|
apireturn.status = "401";
|
|
apireturn.message = "Invalid Token or API-Key";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
try
|
|
{
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 1;
|
|
m0.subject = "ONDOC-ERR-CreateDoks-01";
|
|
m0.message = "Invalid Token or API-Key";
|
|
m0.guid = guid ;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = "";
|
|
m0.bezeichnung = "";
|
|
m0.partnernr = "";
|
|
m0.sendmail = true;
|
|
m0.forceadminmail = true;
|
|
|
|
Send_Confirmation(ref m0);
|
|
//Send_Confirmation("TRUE", "", "OnDocAPI-Error - ONDOC-ERR-CreateDoks-01 - GUID: " + guid, "Invalid Token or API-Key", true);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
catch
|
|
{
|
|
mailInhalt m1 = new mailInhalt();
|
|
m1.typ = 1;
|
|
m1.subject = "ONDOC-ERR-CreateDoks-01";
|
|
m1.message = "Invalid Token or API-Key";
|
|
m1.guid = guid;
|
|
m1.dokumentid = "";
|
|
m1.empfaenger = "";
|
|
m1.bezeichnung = "";
|
|
m1.partnernr = "";
|
|
m1.sendmail = true;
|
|
m1.forceadminmail = true;
|
|
|
|
Send_Confirmation(ref m1);
|
|
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
//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);
|
|
mailbody = "Guten Tag<br><br>Dokumentpaket " + paket.Paketbezeichnung + " ";
|
|
if (string.IsNullOrEmpty(paket.VersandOption)) { paket.VersandOption = "B1_Post"; }
|
|
Logging.APIDocLog.Info("Input Json", "CreateDoks", guid, result);
|
|
result = "";
|
|
// Logging.APIDocLog.Info("Herkunftsapplikation", "CreateDoks", guid, paket.Herkunftsapplikation);
|
|
// Logging.APIDocLog.Info("Ersteller", "CreateDoks", guid, paket.Dokumente[0].TGNrErsteller);
|
|
|
|
|
|
string CheckResult = "";
|
|
CheckResult = CreatePaket_Verify(ref paket, ref apireturn);
|
|
if (CheckResult != "")
|
|
{
|
|
Logging.APIDocLog.Error(CheckResult, "OnDocAPI", guid, "");
|
|
apireturn.code = "ONDOC-ERR-Verify";
|
|
apireturn.status = "400";
|
|
apireturn.message = CheckResult;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
paket = null;
|
|
try
|
|
{
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 1;
|
|
m0.subject = "ONDOC-ERR-Verify";
|
|
m0.message = "CheckResult";
|
|
m0.guid = guid;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = "";
|
|
m0.bezeichnung = "";
|
|
m0.partnernr = "";
|
|
m0.sendmail = paket.ConfirmationMail == "true";
|
|
m0.forceadminmail = true;
|
|
m0.Herkunftsapplikation = paket.Herkunftsapplikation;
|
|
|
|
Send_Confirmation(ref m0);
|
|
//Send_Confirmation(paket.ConfirmationMail, "", "OnDocAPI-Fehler: - CreateDoks - OnDoc-Err-Verify - GUID: " + guid, mailbody+"<br>Fehler: "+CheckResult, false);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
catch
|
|
{
|
|
mailInhalt m1 = new mailInhalt();
|
|
m1.typ = 1;
|
|
m1.subject = "ONDOC-ERR-Verify";
|
|
m1.message = CheckResult;
|
|
m1.guid = guid;
|
|
m1.dokumentid = "";
|
|
m1.empfaenger = "";
|
|
m1.bezeichnung = "";
|
|
m1.partnernr = "";
|
|
m1.sendmail = paket.ConfirmationMail == "true";
|
|
m1.forceadminmail = true;
|
|
m1.Herkunftsapplikation = paket.Herkunftsapplikation;
|
|
Send_Confirmation(ref m1);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
}
|
|
|
|
try
|
|
{
|
|
mailbody = mailbody + "Parnternr:" + paket.Dokumente[0].PartnerNr+" ";
|
|
int anhangnr = 0;
|
|
foreach (APIDokument dokument in paket.Dokumente)
|
|
{
|
|
if (dokument.PDFDoc != "" && dokument.PDFDoc != null)
|
|
{
|
|
string gid = "ATT" + OnDocAPI_NetFramework.Helper.Helper.RandomString(19);
|
|
dokument.DokumentID = gid;
|
|
anhangnr = anhangnr + 1;
|
|
if (string.IsNullOrEmpty(dokument.DokumentID) || dokument.Bezeichnung == "") { dokument.Bezeichnung = "Anhang " + anhangnr.ToString(); }
|
|
hasattachment = true;
|
|
Logging.APIDocLog.Info("Attachment angefügt", "CreateDoks", guid, dokument.DokumentID);
|
|
}
|
|
else
|
|
{
|
|
clsDocData dokdata = new clsDocData();
|
|
Model.clsdocgendata docgendata = new Model.clsdocgendata();
|
|
DocCreate doccreate = new DocCreate();
|
|
|
|
OnDocAPI_NetFramework.Helper.Helper.CopyProperties(dokdata, docgendata);
|
|
OnDocAPI_NetFramework.Helper.Helper.CopyProperties(dokument, doccreate);
|
|
doccreate.Reference = paket.Reference;
|
|
doccreate.ResultFileType=paket.ResultFileType;
|
|
dokument.DokumentID = gendoc(ref doccreate, ref dokdata, ref docgendata, key.ToString());
|
|
dokument.DokumentID = dokdata.Dokumentid;
|
|
dokdata = null;
|
|
docgendata = null;
|
|
doccreate = null;
|
|
Logging.APIDocLog.Info("Dok erstellt", "CreateDoks", guid, dokument.DokumentID);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logging.APIDocLog.Error("ONDOC-ERR-CreatePaketDoc", "CreateDoks", guid, ex.Message);
|
|
paket = null;
|
|
apireturn.code = "ONDOC-ERR-CreatePaketDoc";
|
|
apireturn.status = "400";
|
|
apireturn.message = ex.Message;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
paket = null;
|
|
try
|
|
{
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 1;
|
|
m0.subject = "ONDOC-ERR-CreatePaketDoc";
|
|
m0.message = ex.Message;
|
|
m0.guid = guid;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = "";
|
|
m0.bezeichnung = "";
|
|
m0.partnernr = "";
|
|
m0.sendmail = paket.ConfirmationMail == "true";
|
|
m0.forceadminmail = true;
|
|
m0.Herkunftsapplikation = paket.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
|
|
catch
|
|
{
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
mailInhalt m1 = new mailInhalt();
|
|
m1.typ = 1;
|
|
m1.subject = "ONDOC-ERR-CreatePaketDoc";
|
|
m1.message = ex.Message;
|
|
m1.guid = guid;
|
|
m1.dokumentid = "";
|
|
m1.empfaenger = "";
|
|
m1.bezeichnung = "";
|
|
m1.partnernr = "";
|
|
m1.sendmail = paket.ConfirmationMail == "true";
|
|
m1.forceadminmail = true;
|
|
m1.Herkunftsapplikation = paket.Herkunftsapplikation;
|
|
Send_Confirmation(ref m1);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
|
|
}
|
|
|
|
|
|
|
|
if (paket.Versandstrasse == "true")
|
|
{
|
|
clsVersandstrasse vs = new clsVersandstrasse();
|
|
string vsdoc = "";
|
|
List<Versanddokument> vdoc = new List<Versanddokument>();
|
|
string partnernr = "";
|
|
int i = 0;
|
|
Versandpaket vp = new Versandpaket();
|
|
Stream[] streams = new Stream[paket.Dokumente.Count];
|
|
try
|
|
{
|
|
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);
|
|
}
|
|
|
|
|
|
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);
|
|
|
|
|
|
vp.partnernr = Convert.ToInt32(paket.Dokumente[0].PartnerNr.ToString());
|
|
vp.GASAdresse = paket.GASAdresse;
|
|
if (string.IsNullOrEmpty(vp.GASAdresse)) { vp.GASAdresse = ""; }
|
|
vp.Mitteilung = "";
|
|
vp.PaketNr = guid;
|
|
if (vp.GASAdresse != "") { vp.GAS = "1"; } else { vp.GAS = ""; }
|
|
vp.GASSize = paket.GASCouvert;
|
|
vp.Versandoption = paket.VersandOption;
|
|
vp.Dokument = vdoc;
|
|
vp.ReferenceID = paket.Reference;
|
|
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.VersandVerantwortlich.ToString());
|
|
if (paket.ResultSender == "true")
|
|
{
|
|
apiok.code = "200";
|
|
apiok.status = "200";
|
|
apiok.message = "";
|
|
apiok.documentid = "";
|
|
apiok.file = stapel;
|
|
try
|
|
{
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 0;
|
|
m0.subject = "ONDOC Paket ausgeliefert";
|
|
m0.message = "Paket erstellt und ausgeliefert";
|
|
m0.guid = guid;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = paket.ConfirmationMailAddress;
|
|
m0.bezeichnung = paket.Paketbezeichnung;
|
|
m0.partnernr = paket.Dokumente[0].PartnerNr; ;
|
|
m0.sendmail = paket.ConfirmationMail == "true";
|
|
m0.forceadminmail = false;
|
|
m0.Herkunftsapplikation = paket.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
return Ok((apiok));
|
|
}
|
|
catch { }
|
|
finally
|
|
{
|
|
db = null;
|
|
streams = null;
|
|
vs = null;
|
|
vp = null;
|
|
vdoc = null;
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
send_vs(ref vp, manr.ToString(), paket.VersandDirekt == "true", OwnHost, key.ToString(), "", paket.Dokumente[0].PartnerNr, paket, ref apireturn, null);
|
|
}
|
|
db = null;
|
|
streams = null;
|
|
vs = null;
|
|
vp = null;
|
|
vdoc = null;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
streams = null;
|
|
vs = null;
|
|
vp = null;
|
|
vdoc = null;
|
|
apireturn.code = "ONDOC-ERR-PaketVersandstrasse";
|
|
apireturn.status = "400";
|
|
apireturn.message = ex.Message;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 1;
|
|
m0.subject = "ONDOC-ERR-PaketVersandstrasse";
|
|
m0.message = "Paket erstellt und ausgeliefert";
|
|
m0.guid = guid;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = paket.ConfirmationMailAddress;
|
|
m0.bezeichnung = paket.Paketbezeichnung;
|
|
m0.partnernr = paket.Dokumente[0].PartnerNr; ;
|
|
m0.sendmail = paket.ConfirmationMail == "true";
|
|
m0.forceadminmail = false;
|
|
m0.Herkunftsapplikation = paket.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
}
|
|
Logging.APIDocLog.Info("Dokumentpaket abgeschlossen", "CreateDoks", guid, "");
|
|
apireturn.code = "OK";
|
|
apireturn.status = "200";
|
|
apireturn.message = "Paket generiert";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "GUID=" + guid;
|
|
//return Ok(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
|
|
mailInhalt m = new mailInhalt();
|
|
m.typ = 0;
|
|
m.subject = "ONDOC Paket abgeschlossen";
|
|
m.message = "Paket generiert";
|
|
m.guid = guid;
|
|
m.dokumentid = "";
|
|
m.empfaenger = paket.ConfirmationMailAddress;
|
|
m.bezeichnung = paket.Paketbezeichnung;
|
|
m.partnernr = paket.Dokumente[0].PartnerNr; ;
|
|
m.sendmail = paket.ConfirmationMail == "true";
|
|
m.forceadminmail = false;
|
|
Send_Confirmation(ref m);
|
|
|
|
return Ok((apireturn));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logging.APIDocLog.Error("ONDOC-ERR-CreatePaketDoc", "CreateDoks", guid, ex.Message);
|
|
|
|
apireturn.code = "ONDOC-ERR-CreatePaketDoc";
|
|
apireturn.status = "400";
|
|
apireturn.message = ex.Message;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
|
|
mailInhalt m = new mailInhalt();
|
|
m.typ = 1;
|
|
m.subject = "ONDOC Paket ";
|
|
m.message = ex.Message;
|
|
m.guid = guid;
|
|
m.dokumentid = "";
|
|
m.empfaenger = "";
|
|
m.bezeichnung = "";
|
|
m.partnernr = "";
|
|
m.sendmail = true;
|
|
m.forceadminmail = true;
|
|
|
|
Send_Confirmation(ref m);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
}
|
|
|
|
[HttpPost]
|
|
[Route("API/CreateDok")]
|
|
public IHttpActionResult CreateDok()
|
|
{
|
|
//eINZELDOKUMENT
|
|
APIErrorSimple apireturn = new APIErrorSimple();
|
|
APIOK apiok = new APIOK();
|
|
string mailbody = "";
|
|
try
|
|
{
|
|
string guid = Guid.NewGuid().ToString();
|
|
Logging.APIDocLog.Info("Start CreateDoc", "CreateDoc", guid, "");
|
|
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
{
|
|
apireturn.code = "ONDOC-ERR-CreateDok-01";
|
|
apireturn.status = "401";
|
|
apireturn.message = "Invalid Token or API-Key";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
try
|
|
{
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 1;
|
|
m0.subject = "ONDOC Dokument ";
|
|
m0.message = "Invalid Token or API-Key";
|
|
m0.guid = guid;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = "";
|
|
m0.bezeichnung = "";
|
|
m0.partnernr = "";
|
|
m0.sendmail = true;
|
|
m0.forceadminmail = true;
|
|
Send_Confirmation(ref m0);
|
|
//Send_Confirmation("TRUE", "", "OnDocAPI - CreateDok - ONDOC-ERR-CreateDok-01 - GUID;" + guid, "Invalid Token or API-Key", true);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
catch
|
|
{
|
|
//return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
mailInhalt m1 = new mailInhalt();
|
|
m1.typ = 1;
|
|
m1.subject = "ONDOC Dokument ";
|
|
m1.message = "Invalid Token or API-Key";
|
|
m1.guid = guid;
|
|
m1.dokumentid = "";
|
|
m1.empfaenger = "";
|
|
m1.bezeichnung = "";
|
|
m1.partnernr = "";
|
|
m1.sendmail = true;
|
|
m1.forceadminmail = true;
|
|
Send_Confirmation(ref m1);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
}
|
|
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;
|
|
var root = JsonConvert.DeserializeObject<JsonTable>(result);
|
|
Logging.APIDocLog.Info("Input JSON", "CreateDoc", guid, result);
|
|
|
|
DocCreate doccreate = new DocCreate();
|
|
//dynamic data = JsonConvert.DeserializeObject(result);
|
|
doccreate = JsonConvert.DeserializeObject<DocCreate>(result);
|
|
mailbody = "Guten Tag<br><br>Dokumenterstellung " + doccreate.Bezeichnung+" für Partner:"+doccreate.PartnerNr + " ";
|
|
|
|
result = "";
|
|
|
|
//clsDocData dokdata = new clsDocData();
|
|
//string dokumentid = "";
|
|
|
|
string CheckResult = "";
|
|
CheckResult = CreateDoc_Verify(ref doccreate);
|
|
if (CheckResult != "")
|
|
{
|
|
Logging.APIDocLog.Error("Error Verify ", "CreateDoks", guid, CheckResult);
|
|
|
|
apireturn.code = "ONDOC-ERR-02-CreateDoc";
|
|
apireturn.status = "400";
|
|
apireturn.message = CheckResult;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 1;
|
|
m0.subject = "ONDOC-ERR-CreateDoc-02 ";
|
|
m0.message = CheckResult;
|
|
m0.guid = guid;
|
|
m0.dokumentid = "";
|
|
m0.empfaenger = doccreate.ConfirmationMailAddress;
|
|
m0.bezeichnung = "";
|
|
m0.partnernr = "";
|
|
m0.sendmail = doccreate.ConfirmationMail == "true";
|
|
m0.forceadminmail = true;
|
|
m0.Herkunftsapplikation = doccreate.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
clsDocData dokdata = new clsDocData();
|
|
Model.clsdocgendata docgendata = new Model.clsdocgendata();
|
|
bool checkinondoc = false;
|
|
if (doccreate.FaksimileUnterschrift == "true")
|
|
{
|
|
if (doccreate.TGNrUnterschriftLinks != "-1" && doccreate.UnterschriftLinksGeprueft == "false") { checkinondoc = true; }
|
|
if (doccreate.TGNrUnterschriftRechts != "-1" && doccreate.UnterschriftRechtsGeprueft == "false") { checkinondoc = true; }
|
|
}
|
|
if (checkinondoc==true) { dokdata.print_signature = false; }
|
|
string dokumentid = gendoc(ref doccreate, ref dokdata, ref docgendata, key.ToString());
|
|
dokumentid = dokdata.Dokumentid;
|
|
|
|
if (doccreate.ResultSender == "true")
|
|
{
|
|
DocGet dg = new DocGet(this.connectionstring);
|
|
clsdok dok = new clsdok("", "", "", "");
|
|
Logging.APIDocLog.Info("Dokument return to sender", "CreateDok", guid, "");
|
|
|
|
if (doccreate.ResultFileType == "PDF")
|
|
{
|
|
dok = dg.GetDocAsPDF(dokumentid);
|
|
dok.extension = "pdf";
|
|
dok.doktype = "P";
|
|
apiok.file = dok.dokument;
|
|
apiok.code = "OK";
|
|
apiok.status = "200";
|
|
apiok.documentid = dokumentid;
|
|
dg = null;
|
|
dok = null;
|
|
dokdata = null;
|
|
docgendata = null;
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 0;
|
|
m0.subject = "OnDoc - PDF Dokument generiert ";
|
|
m0.message = "Dokument erstellt";
|
|
m0.guid = guid;
|
|
m0.dokumentid = dokumentid;
|
|
m0.empfaenger = doccreate.ConfirmationMailAddress;
|
|
m0.bezeichnung = doccreate.Bezeichnung;
|
|
m0.partnernr = doccreate.PartnerNr;
|
|
m0.sendmail = doccreate.ConfirmationMail == "true";
|
|
m0.forceadminmail = false;
|
|
m0.Herkunftsapplikation = doccreate.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
return Ok(apiok);
|
|
}
|
|
else
|
|
{
|
|
dok = dg.GetDoc(dokumentid);
|
|
apiok.file = dok.dokument;
|
|
apiok.code = "OK";
|
|
apiok.status = "200";
|
|
apiok.documentid = dokumentid;
|
|
dg = null;
|
|
dok = null;
|
|
dokdata = null;
|
|
docgendata = null;
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 0;
|
|
m0.subject = "OnDoc - Word-Dokument generiert ";
|
|
m0.message = "Dokument erstellt";
|
|
m0.guid = guid;
|
|
m0.dokumentid = dokumentid;
|
|
m0.empfaenger = doccreate.ConfirmationMailAddress;
|
|
m0.bezeichnung = doccreate.Bezeichnung;
|
|
m0.partnernr = doccreate.PartnerNr;
|
|
m0.sendmail = doccreate.ConfirmationMail == "true";
|
|
m0.forceadminmail = false;
|
|
m0.Herkunftsapplikation = doccreate.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
return Ok(apiok);
|
|
}
|
|
|
|
}
|
|
|
|
if (checkinondoc)
|
|
{
|
|
string approval1 = "0";
|
|
string approval2 = "0";
|
|
DB db = new DB(connectionstring);
|
|
if (doccreate.TGNrVerantwortlich == doccreate.TGNrUnterschriftLinks) { approval1 = "1"; }
|
|
if (doccreate.TGNrVerantwortlich == doccreate.TGNrUnterschriftRechts) { approval2 = "1"; }
|
|
db.Exec_SQL("update dokument set toapprove=1,approved=0,approval1=" + approval1 + ", approval2=" + approval2 + ", signiert=0 where dokumentid='" + dokumentid + "'");
|
|
if (doccreate.TGNrUnterschriftLinks!="-1" && doccreate.UnterschriftLinksGeprueft == "false")
|
|
{
|
|
db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where aktiv=1 and tgnummer='" + doccreate.TGNrUnterschriftLinks + "'", false, true);
|
|
int manr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]);
|
|
db.Get_Tabledata_for_Update("Select top 1 * from dokument_Bewilligung where dokumentid='" + dokumentid + "' order by id desc", false, true);
|
|
|
|
DataRow dr = db.daten.Tables[0].NewRow();
|
|
|
|
dr["dokumentid"] = dokumentid;
|
|
dr["mitarbeiter_bewilligung"] = manr;
|
|
dr["bewilligt"] = false;
|
|
dr["abgelehnt"] = false;
|
|
dr["bewilligungstyp"] = 1;
|
|
dr["erstellt_am"] = DateTime.Now;
|
|
dr["mutiert_am"] = DateTime.Now;
|
|
dr["mutierer"] = 1;
|
|
dr["aktiv"] = true;
|
|
dr["notiz"] = "API-Dokument zur Unterzeichnung";
|
|
db.daten.Tables[0].Rows.Add(dr);
|
|
db.Update_Data();
|
|
db.Get_Tabledata("Select top 1 bewilligungid from dokumenet_bewillung where dokumentid='" + dokumentid + "' or by id desc", false, true);
|
|
send_mail(20, manr.ToString(), "", "", dokumentid, "", "OnDoc", db.dsdaten.Tables[0].Rows[0][0].ToString());
|
|
|
|
}
|
|
if (doccreate.TGNrUnterschriftRechts != "-1" && doccreate.UnterschriftRechtsGeprueft == "false")
|
|
{
|
|
db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where aktiv=1 and tgnummer='" + doccreate.TGNrUnterschriftRechts + "'", false, true);
|
|
int manr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]);
|
|
db.Get_Tabledata_for_Update("Select top 1 * from dokument_Bewilligung where dokumentid='" + dokumentid + "' order by id desc", false, true);
|
|
|
|
DataRow dr = db.daten.Tables[0].NewRow();
|
|
|
|
dr["dokumentid"] = dokumentid;
|
|
dr["mitarbeiter_bewilligung"] = manr;
|
|
dr["bewilligt"] = false;
|
|
dr["abgelehnt"] = false;
|
|
dr["bewilligungstyp"] = 2;
|
|
dr["erstellt_am"] = DateTime.Now;
|
|
dr["mutiert_am"] = DateTime.Now;
|
|
dr["mutierer"] = 1;
|
|
dr["aktiv"] = true;
|
|
dr["notiz"] = "API-Dokument zur Unterzeichnung";
|
|
db.daten.Tables[0].Rows.Add(dr);
|
|
db.Update_Data();
|
|
send_mail(20, manr.ToString(), "", "", dokumentid, "", "OnDoc", db.dsdaten.Tables[0].Rows[0][0].ToString());
|
|
|
|
}
|
|
db = null;
|
|
Logging.APIDocLog.Info("Dokument generiert und zur Unterschriftenprüfung in OnDoc", "CreateDok", guid, "");
|
|
apireturn.code = "OK";
|
|
apireturn.status = "200";
|
|
apireturn.message = "Dokument generiert und zur Unterschriftenprüfung gegeben";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "GUID=" + guid;
|
|
mailInhalt m0 = new mailInhalt();
|
|
m0.typ = 0;
|
|
m0.subject = "OnDoc - Dokument generiert ";
|
|
m0.message = "Dokument generiert und zur Unterschriftenprüfung gegeben";
|
|
m0.guid = guid;
|
|
m0.dokumentid = dokumentid;
|
|
m0.empfaenger = doccreate.ConfirmationMailAddress;
|
|
m0.bezeichnung = doccreate.Bezeichnung;
|
|
m0.partnernr = doccreate.PartnerNr;
|
|
m0.sendmail = doccreate.ConfirmationMail == "true";
|
|
m0.forceadminmail = false;
|
|
m0.Herkunftsapplikation = doccreate.Herkunftsapplikation;
|
|
Send_Confirmation(ref m0);
|
|
return Ok((apireturn));
|
|
|
|
}
|
|
|
|
if (doccreate.Versandstrasse == "true")
|
|
{
|
|
clsVersandstrasse vs = new clsVersandstrasse();
|
|
string vsdoc = "";
|
|
vsdoc = vs.Prepare_PDF(dokumentid, "", connectionstring, OwnHost, key.ToString(), imagepath);
|
|
|
|
Versandpaket vp = new Versandpaket();
|
|
vp.PaketNr = guid;
|
|
vp.partnernr = Convert.ToInt32(docgendata.partnernr);
|
|
vp.GASAdresse = doccreate.GASAdresse;
|
|
if (string.IsNullOrEmpty(vp.GASAdresse)) { vp.GASAdresse = ""; }
|
|
if (vp.GASAdresse.ToString().Trim() == "") { vp.GAS = ""; } else { vp.GAS = "1"; }
|
|
vp.GASSize = doccreate.GASCouvert;
|
|
vp.Versandoption = doccreate.VersandOption; ;
|
|
List<Versanddokument> vdoc = new List<Versanddokument>();
|
|
Versanddokument vd = new Versanddokument(dokumentid, doccreate.PartnerNr + " - " + dokdata.Bezeichnung, doccreate.PartnerNr);
|
|
vd.dokument = vsdoc;
|
|
vdoc.Add(vd);
|
|
vp.Dokument = vdoc;
|
|
vp.finaldoc = vsdoc;
|
|
vp.send_onbase_doc = true;
|
|
vp.verified = true;
|
|
send_vs(ref vp, dokdata.Ersteller, doccreate.VersandDirekt == "true", OwnHost, key.ToString(), dokumentid, doccreate.PartnerNr, null, ref apireturn, doccreate);
|
|
if (apireturn.status != "")
|
|
{
|
|
vp = null;
|
|
vdoc = null;
|
|
doccreate = null;
|
|
dokdata = null;
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
}
|
|
//if (doccreate.ConfirmationMail == "true")
|
|
//{
|
|
// string message = "Dokument '" + doccreate.Bezeichnung + "' für Partner " + doccreate.PartnerNr + " erstellt." + Environment.NewLine;
|
|
// if (doccreate.Versandstrasse == "true")
|
|
// {
|
|
// if (doccreate.VersandDirekt == "true")
|
|
// {
|
|
// message = message + " Dokument über Versandstrasse versendet.";
|
|
// }
|
|
// else
|
|
// {
|
|
// message = message + " Dokument über Versandstrasse bereit gestellt.";
|
|
// }
|
|
// }
|
|
//}
|
|
Logging.APIDocLog.Info("Dokument abgeschlossen", "CreateDok", guid, dokumentid);
|
|
apireturn.code = "OK";
|
|
apireturn.status = "200";
|
|
apireturn.message = "Dokument generiert";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "GUID=" + guid;
|
|
|
|
mailInhalt m = new mailInhalt();
|
|
m.typ = 0;
|
|
m.subject = "OnDoc - Dokument generiert ";
|
|
m.message = "Dokumentgenerierung abgeschlossen";
|
|
m.guid = guid;
|
|
m.dokumentid = dokumentid;
|
|
m.empfaenger = doccreate.ConfirmationMailAddress;
|
|
m.bezeichnung = doccreate.Bezeichnung;
|
|
m.partnernr = doccreate.PartnerNr;
|
|
m.sendmail = doccreate.ConfirmationMail == "true";
|
|
m.forceadminmail = false;
|
|
m.Herkunftsapplikation = doccreate.Herkunftsapplikation;
|
|
Send_Confirmation(ref m);
|
|
|
|
return Ok((apireturn));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logging.APIDocLog.Error("ONDOC-ERR-CreateDoc", "CreateDok", guid, ex.Message);
|
|
|
|
apireturn.code = "ONDOC-ERR-CreatePaketDoc";
|
|
apireturn.status = "400";
|
|
apireturn.message = ex.Message;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; };
|
|
}
|
|
|
|
private bool CheckUseField(string instring, ref List<CLMDocItem> clmdocitemlist)
|
|
{
|
|
string[] fields = instring.Split(';');
|
|
string fieldvalue = get_item_value(fields[0], ref clmdocitemlist);
|
|
fieldvalue = "'" + fieldvalue + "'";
|
|
switch (fields[1])
|
|
{
|
|
case "=":
|
|
if (fieldvalue == fields[2]) return true;
|
|
break;
|
|
case "!=":
|
|
if (fieldvalue != fields[2]) return true;
|
|
break;
|
|
default:
|
|
return false;
|
|
}
|
|
return false;
|
|
|
|
}
|
|
|
|
private string Get_OnDoc_Value(string type, string inputvalue1, string inputvalue2)
|
|
{
|
|
Database.DB db = new DB(connectionstring);
|
|
db.clear_parameter();
|
|
db.add_parameter("@fieldtype", type);
|
|
db.add_parameter("@inputvalue1", inputvalue1);
|
|
db.add_parameter("@inputvalue2", inputvalue2);
|
|
try
|
|
{
|
|
db.Get_Tabledata("ondoc_get_clm_value", true, false);
|
|
return db.dsdaten.Tables[0].Rows[0][0].ToString();
|
|
}
|
|
catch
|
|
{
|
|
return "";
|
|
}
|
|
finally
|
|
{
|
|
db = null;
|
|
}
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
[Route("API/CreateCLM")]
|
|
public IHttpActionResult CreateCLM()
|
|
{
|
|
APIErrorSimple apireturn = new APIErrorSimple();
|
|
APIOK apiok = new APIOK();
|
|
|
|
List<CLMDocItem> clmdocitemlist = new List<CLMDocItem>();
|
|
string clmdokumentid = "";
|
|
|
|
|
|
dynamic dataj = null;
|
|
try
|
|
{
|
|
string guid = Guid.NewGuid().ToString();
|
|
Logging.APIDocLog.Info("Start CreateCLM", "CreateESS", guid, "");
|
|
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
{
|
|
apireturn.code = "ONDOC-ERR-CreateCLM-01";
|
|
apireturn.status = "401";
|
|
apireturn.message = "Invalid Token or API-Key";
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
try
|
|
{
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
//return Content(HttpStatusCode.BadRequest, apireturn);
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
catch
|
|
{
|
|
//return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; clmdocitemlist = null; dataj = null; };
|
|
}
|
|
|
|
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;
|
|
|
|
|
|
dataj = JsonConvert.DeserializeObject(result);
|
|
Logging.APIDocLog.Info("Input JSON", "CreateCLM", guid, result);
|
|
|
|
var jo = JObject.Parse(Request.Content.ReadAsStringAsync().Result);
|
|
var x = dataj.Produkt;
|
|
//Console.WriteLine(dataj.Bp.Zustaendiger.TgNummer);
|
|
var valueTuples = GetNodes(jo).ToList();
|
|
foreach (var valueTuple in valueTuples)
|
|
{
|
|
CLMDocItem d = new CLMDocItem();
|
|
d.itemname = valueTuple.Item1;
|
|
d.itemtag = valueTuple.Item2;
|
|
d.itemvalue = valueTuple.Item3;
|
|
d.doclinkname = "";
|
|
clmdocitemlist.Add(d);
|
|
|
|
}
|
|
Database.DB db = new Database.DB(connectionstring);
|
|
|
|
|
|
Logging.APIDocLog.Debug("Create CLMDocItem", "CreateCLM", guid, "");
|
|
db.clear_parameter();
|
|
db.add_parameter("@dokumenttypnr", dataj.Dokumenttyp.ToString());
|
|
db.Get_Tabledata("sp_get_ondoc_clm_vorlagenfeld", true, false);
|
|
string tmpname = "";
|
|
List<CLMDocItem>dokumentdaten = new List<CLMDocItem>();
|
|
CLMDocItem tmp = new CLMDocItem();
|
|
tmp.itemname = "";
|
|
dokumentdaten.Add(tmp);
|
|
string archivstatus = "Aktiv";
|
|
foreach (DataRow dr in db.dsdaten.Tables[0].Rows)
|
|
{
|
|
CLMDocItem d = new CLMDocItem();
|
|
|
|
|
|
d.itemname = "";
|
|
d.itemtag = "";
|
|
d.itemvalue = "";
|
|
d.type = dr["ess_field_class_id"].ToString();
|
|
d.doclinkname = "";
|
|
d.done = true;
|
|
d.bmstart = dr["beginntextmarke"].ToString();
|
|
d.bmend = dr["endetextmarke"].ToString();
|
|
d.field = dr["feldname"].ToString();
|
|
d.top = dr["ess_img_top"].ToString();
|
|
d.left = dr["ess_img_left"].ToString();
|
|
d.width = dr["ess_img_width"].ToString();
|
|
d.height = dr["ess_img_height"].ToString();
|
|
d.itemvalue="";
|
|
switch (d.type.ToString())
|
|
{
|
|
case "1":
|
|
d.itemvalue = get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist);
|
|
break;
|
|
case "2":
|
|
d.itemvalue = get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist);
|
|
|
|
break;
|
|
case "3":
|
|
d.itemvalue = get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist);
|
|
break;
|
|
case "4":
|
|
d.itemvalue = get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist);
|
|
break;
|
|
case "5":
|
|
d.itemvalue = get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist);
|
|
break;
|
|
case "7": //Dokumentversion
|
|
d.itemvalue = Get_OnDoc_Value("7", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "8": //Bankbetriebseinheit
|
|
d.itemvalue = Get_OnDoc_Value("8", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "9": //Allg. Telefonnummer
|
|
d.itemvalue = Get_OnDoc_Value("9", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "10": //Allg Faxnummer
|
|
d.itemvalue = Get_OnDoc_Value("10", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "11": //Logo
|
|
d.itemvalue = GetImageAsBase64(4, -1, 0);
|
|
break;
|
|
case "13": //Vorname
|
|
d.itemvalue = Get_OnDoc_Value("13", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "14": //MA-Name
|
|
d.itemvalue = Get_OnDoc_Value("14", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "15": //MA-E-Mail
|
|
d.itemvalue = Get_OnDoc_Value("15", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "16": //MA-Direktwahl
|
|
d.itemvalue = Get_OnDoc_Value("16", get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist), "");
|
|
break;
|
|
case "17": //Datamatrix
|
|
if (dr["ess_feldname2"].ToString() != "")
|
|
{
|
|
if (CheckUseField(dr["ess_feldname2"].ToString(),ref clmdocitemlist))
|
|
{
|
|
clmdokumentid = db.get_dbkey("Dokument");
|
|
d.itemvalue = get_datamatrix_value(dr["ess_feldname"].ToString(), clmdokumentid, ref clmdocitemlist);
|
|
}
|
|
else
|
|
{
|
|
d.itemvalue = "";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
d.itemvalue = get_datamatrix_value(dr["ess_feldname"].ToString(), clmdokumentid, ref clmdocitemlist);
|
|
}
|
|
if (d.itemvalue != "") { archivstatus = "Pendent"; }
|
|
break;
|
|
case "18": //Pruefziffer
|
|
d.itemvalue = pruefziffer(get_item_value(dr["ess_feldname"].ToString(), ref clmdocitemlist));
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (dr["ess_feldname"].ToString().Contains("@T:"))
|
|
{
|
|
string[] arr = dr["ess_feldname"].ToString().Split(new string[] { "$Format:" }, StringSplitOptions.None);
|
|
dr["ess_feldname"] = arr[0];
|
|
string value = "";
|
|
string tablename = "";
|
|
string format = "";
|
|
|
|
get_tabledata(dr["ess_feldname"].ToString(), ref clmdocitemlist, out value, out tablename);
|
|
|
|
|
|
d.itemname = tablename;
|
|
d.itemvalue = value;
|
|
d.itemname = tablename;
|
|
try
|
|
{
|
|
d.format = arr[1];
|
|
}
|
|
catch { d.format = ""; }
|
|
}
|
|
dokumentdaten.Add(d);
|
|
}
|
|
|
|
db = null;
|
|
clmdocitemlist.RemoveAll((y) => string.IsNullOrEmpty(y.type));
|
|
//foreach (CLMDocItem d in dokumentdaten)
|
|
//{
|
|
// System.IO.File.AppendAllText(@"d:\apps\apilog.txt", d.itemname + ":" + d.itemvalue + ":" + d.field + ":" + d.bmstart + ":" + d.bmend + Environment.NewLine);
|
|
|
|
//}
|
|
string CheckResult = "";
|
|
CheckResult = CLM_Verify(ref dokumentdaten, ref result);
|
|
if (CheckResult != "")
|
|
{
|
|
Logging.APIDocLog.Error("Error Verify ", "CreateDoks", guid, CheckResult);
|
|
|
|
apireturn.code = "ONDOC-ERR-CreateCLM";
|
|
apireturn.status = "400";
|
|
apireturn.message = CheckResult;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
clsdok dok = new clsdok("", "", "", "");
|
|
Logging.APIDocLog.Debug("Start GenDocCLM", "CreateCLM", guid, "");
|
|
|
|
gendocCLM(ref dokumentdaten, ref dataj, ref dok, key, clmdokumentid,archivstatus, result);
|
|
|
|
Logging.APIDocLog.Info("Dokument abgeschlossen", "CreateDok", guid, clmdokumentid);
|
|
apiok.code = "200";
|
|
apiok.status = "200";
|
|
apiok.message = "";
|
|
apiok.documentid = dataj.Id.ToString();
|
|
apiok.file = dok.dokument;
|
|
return Ok((apiok));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logging.APIDocLog.Error("ONDOC-ERR-CreateCLM", "CreateCLM", guid, ex.Message);
|
|
|
|
apireturn.code = "ONDOC-ERR-CreatePaketDoc";
|
|
apireturn.status = "400";
|
|
apireturn.message = ex.Message;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
|
|
//return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn));
|
|
return Content(HttpStatusCode.BadRequest, apireturn);
|
|
}
|
|
finally { apireturn = null; apiok = null; clmdocitemlist = null; dataj = null; };
|
|
}
|
|
|
|
private void get_tabledata(string ifeldname, ref List<CLMDocItem> docitemlist, out string value, out string tablename)
|
|
{
|
|
//@T: Produkt.Produktinfo:Name,Beschreibung
|
|
string Feldname = ifeldname;
|
|
string Source = Feldname.Replace("@T:", "");
|
|
string Tablename = Source.Split(':')[0];
|
|
Source = Source.Replace(Tablename + ":", "");
|
|
string[] attributs = Source.Split(',');
|
|
|
|
var newlist = docitemlist.FindAll(s => s.itemname.Contains(Tablename));
|
|
|
|
string suchText = Tablename+"[";
|
|
var treffer = docitemlist
|
|
.Where(p => p.itemname.Contains(suchText))
|
|
.ToList()
|
|
.OrderBy(p => p.itemname);
|
|
|
|
DataTable dt = new DataTable();
|
|
foreach (string attrib in attributs)
|
|
{
|
|
dt.Columns.Add(attrib);
|
|
}
|
|
int rowcounter = 0;
|
|
foreach (CLMDocItem di in treffer)
|
|
{
|
|
string x = di.itemname;
|
|
x = x.Replace(Tablename + "[", "");
|
|
char ch = ']';
|
|
int offset = x.IndexOf(ch);
|
|
string prefix = x.Substring(0, offset);
|
|
int r= Convert.ToInt32(prefix);
|
|
if (r > rowcounter) { rowcounter = r; }
|
|
|
|
}
|
|
|
|
for (int i = 0; i < rowcounter + 1; i++)
|
|
{
|
|
DataRow dx = dt.NewRow();
|
|
for (int j = 0; dt.Columns.Count > j; j++)
|
|
{
|
|
foreach (CLMDocItem di in newlist)
|
|
{
|
|
if (di.itemname == Tablename + "[" + i.ToString().Trim() + "]" + "." + dt.Columns[j].ColumnName)
|
|
{
|
|
dx[dt.Columns[j]] = di.itemvalue;
|
|
}
|
|
}
|
|
}
|
|
dt.Rows.Add(dx);
|
|
}
|
|
//foreach (CLMDocItem di in treffer)
|
|
//{
|
|
// docitemlist.Remove(di);
|
|
//}
|
|
dt.AcceptChanges();
|
|
string JSONresult;
|
|
JSONresult = JsonConvert.SerializeObject(dt);
|
|
tablename = Tablename;
|
|
value = JSONresult;
|
|
|
|
|
|
}
|
|
|
|
#region Helper
|
|
private IEnumerable<(string path, string key, string value)> GetNodes(JToken token)
|
|
{
|
|
foreach (var jt in token.Children())
|
|
{
|
|
if (!jt.Children().Any())
|
|
{
|
|
yield return (
|
|
path: jt.Path,
|
|
key: jt.Path.Split('.').Last(),
|
|
value: jt.ToString()
|
|
);
|
|
}
|
|
|
|
foreach (var (path, key, value) in GetNodes(jt))
|
|
{
|
|
yield return (path, key, value);
|
|
}
|
|
}
|
|
}
|
|
private string CreatePaket_Verify(ref DokumentCreate paket, ref APIErrorSimple apireturn)
|
|
{
|
|
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 (!(ParamCheck("yesno", dokument.UnterschriftLinksGeprueft))) { return "Parameter UnterschriftLinksGeprueft" + dokument.UnterschriftLinksGeprueft + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", dokument.UnterschriftRechtsGeprueft))) { return "Parameter UnterschriftRechtsGeprueft" + dokument.UnterschriftRechtsGeprueft + " ist ungültig"; }
|
|
if (dokument.TGNrUnterschriftLinks.ToString() == "") { dokument.TGNrUnterschriftLinks = "-1"; }
|
|
if (dokument.TGNrUnterschriftRechts.ToString() == "") { dokument.TGNrUnterschriftRechts = "-1"; }
|
|
if (dokument.FaksimileUnterschrift.ToUpper() == "TRUE")
|
|
{
|
|
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 == "true")
|
|
{
|
|
if (dokument.TGNrUnterschriftLinks != "" && dokument.UnterschriftLinksGeprueft != "true" && paket.OnDocSignCheck != "true")
|
|
{
|
|
return "Versandstrasse mit ungeprüfter, linker Unterschrift ist nicht möglich";
|
|
}
|
|
if (dokument.TGNrUnterschriftRechts != "" && dokument.UnterschriftRechtsGeprueft != "true" && paket.OnDocSignCheck != "true")
|
|
{
|
|
return "Versandstrasse mit ungeprüfter, rechter Unterschrift ist nicht möglich";
|
|
}
|
|
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.VersandDirekt))) { return "Parameter Versand Direkt " + paket.VersandDirekt + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", paket.ResultOnDoc))) { return "Parameter Result_OnDoc " + paket.ResultOnDoc + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", paket.ResultSender))) { return "Parameter Result_Sender " + paket.ResultSender + " ist ungültig"; }
|
|
if (!(ParamCheck("filetype", paket.ResultFileType))) { return "Parameter Result_Filetype " + paket.ResultFileType + " 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.VersandOption))) { return "Versandoption " + paket.VersandOption + " ist ungültig"; }
|
|
if (paket.ConfirmationMail.ToUpper() == "TRUE" && paket.ConfirmationMailAddress.ToString() != "") { return "E-Mailadresse für Confirmation fehlt"; }
|
|
|
|
if (paket.Versandstrasse == "true")
|
|
{
|
|
if (paket.VersandOption == "") { return "Versandoption fehlt (A_Post, B1_Post, B2_Post, Einschreiben"; }
|
|
}
|
|
return "";
|
|
}
|
|
catch (Exception ex) { return ex.Message; }
|
|
|
|
}
|
|
|
|
private string CreateDoc_Verify(ref DocCreate doccreate)
|
|
{
|
|
try
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Start GenDoc ", LogLevelType.Debug);
|
|
if (!(ParamCheck("partnernr", doccreate.PartnerNr.ToString()))) { return "Partnernr " + doccreate.PartnerNr + " ist ungültig"; }
|
|
if (!(ParamCheck("dokumenttyp", doccreate.VorlagenTypID))) { return "Vorlagentyp " + doccreate.VorlagenTypID + " ist ungültig"; }
|
|
if (!(ParamCheck("tgnr", doccreate.TGNrErsteller))) { return "TGNr-Ersteller " + doccreate.TGNrErsteller + " ist ungültig"; }
|
|
if (!(ParamCheck("tgnr", doccreate.TGNrVerantwortlich))) { return "TGNr-Verantwortlich " + doccreate.TGNrVerantwortlich + " ist ungültig"; }
|
|
if (!(ParamCheck("tgnr", doccreate.TGNrUnterschriftLinks))) { return "TGNr-Unterschriftlinks " + doccreate.TGNrUnterschriftLinks + " ist ungültig"; }
|
|
if (!(ParamCheck("tgnr", doccreate.TGNrUnterschriftRechts))) { return "TGNr-Unterschriftrechts " + doccreate.TGNrUnterschriftRechts + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.FaksimileUnterschrift))) { return "Parameter Faxsimile " + doccreate.FaksimileUnterschrift + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.OhneUnterschrift))) { return "Parameter Form ohne Unterschrift " + doccreate.OhneUnterschrift + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.PrintLogo))) { return "Parameter PrintLogo " + doccreate.PrintLogo + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.Versandstrasse))) { return "Parameter Result_Versandstrasse " + doccreate.Versandstrasse + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.VersandDirekt))) { return "Parameter Versand Direkt " + doccreate.VersandDirekt + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.ResultOnDoc))) { return "Parameter Result_OnDoc " + doccreate.ResultOnDoc + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.ResultSender))) { return "Parameter Result_Sender " + doccreate.ResultSender + " ist ungültig"; }
|
|
if (!(ParamCheck("filetype", doccreate.ResultFileType))) { return "Parameter Result_Filetype " + doccreate.ResultFileType + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.ConfirmationMail))) { return "Parameter ConfirmationMail " + doccreate.ConfirmationMail + " ist ungültig"; }
|
|
if (!(ParamCheck("yesno", doccreate.ConfirmationMail))) { return "Parameter ConfirmationMail " + doccreate.ConfirmationMail + " ist ungültig"; }
|
|
if (!(ParamCheck("versandoption", doccreate.VersandOption))) { return "Versandoption " + doccreate.VersandOption + " ist ungültig"; }
|
|
if (doccreate.ConfirmationMail.ToUpper() == "TRUE" && doccreate.ConfirmationMailAddress.ToString() == "") { return "E-Mailadresse für Confirmation fehlt"; }
|
|
if (doccreate.TGNrUnterschriftLinks.ToString() == "") { doccreate.TGNrUnterschriftLinks = "-1"; }
|
|
if (doccreate.TGNrUnterschriftRechts.ToString() == "") { doccreate.TGNrUnterschriftRechts = "-1"; }
|
|
if (doccreate.FaksimileUnterschrift.ToUpper() == "TRUE")
|
|
{
|
|
if (doccreate.TGNrUnterschriftLinks.ToString() == "-1") { return "Faksimile Unterschrift benötigt mit den Parameter TGUnterschriftLinks"; }
|
|
if (doccreate.TGNrUnterschriftLinks.ToString() != "")
|
|
{
|
|
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + doccreate.TGNrUnterschriftLinks.ToString() + ".jpg";
|
|
if (!System.IO.File.Exists(path)) { return "Image Unterschrift links " + doccreate.TGNrUnterschriftLinks + " ist nicht vorhanden"; }
|
|
}
|
|
if (doccreate.TGNrUnterschriftRechts.ToString() != "-1")
|
|
{
|
|
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + doccreate.TGNrUnterschriftLinks.ToString() + ".jpg";
|
|
if (!System.IO.File.Exists(path)) { return "Image Unterschrift rechts " + doccreate.TGNrUnterschriftRechts + " ist nicht vorhanden"; }
|
|
}
|
|
}
|
|
if (doccreate.Versandstrasse == "true")
|
|
{
|
|
if (ParamCheck("doktypversandstrasse", doccreate.VorlagenTypID) == false) { return "Vorlagentyp " + doccreate.VorlagenTypID + " ist nicht für die Versandstrasse konfiguriert"; }
|
|
//if (doccreate.TGNrUnterschriftLinks.ToLower() != "-1" && doccreate.TGNrUnterschriftRechts.ToLower() != "-1")
|
|
//{
|
|
// return "Versandstrasse mit zwei Unterschriften kann nicht automatisch angesteuert werden";
|
|
//}
|
|
if (doccreate.VersandOption == "") { return "Versandoption fehlt (A_Post, B1_Post, B2_Post, Einschreiben"; }
|
|
}
|
|
return "";
|
|
}
|
|
catch (Exception ex) { return ex.Message; }
|
|
}
|
|
private string CLM_Verify(ref List<CLMDocItem> clmdocitemlist, ref string json)
|
|
{
|
|
try
|
|
{
|
|
dynamic dataj = JsonConvert.DeserializeObject(json);
|
|
if (!ParamCheck("dokumenttyp", dataj.Dokumenttyp.ToString())) { return "Vorlagentyp " + dataj.Dokumenttyp.ToString() + " ist ungültig"; }
|
|
if (dataj.Id.ToString() == "") { return "ID fehlt"; }
|
|
return "";
|
|
}
|
|
catch (Exception ex) { return ex.Message; }
|
|
}
|
|
|
|
private bool ParamCheck(string ParamType, string ParamValue)
|
|
{
|
|
DB db = new DB(connectionstring);
|
|
try
|
|
{
|
|
|
|
switch (ParamType)
|
|
{
|
|
case "partnernr":
|
|
db.Get_Tabledata("Select count(*) from partner where nrpar00=" + ParamValue, false, true);
|
|
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
|
|
break;
|
|
case "dokumenttyp":
|
|
db.Get_Tabledata("Select count(*) from dokumenttyp where dokumenttypnr=" + ParamValue, false, true);
|
|
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
|
|
break;
|
|
case "partnerdokumenttyp":
|
|
//Prüfung Person/Doktyp BP/Doktyp
|
|
break;
|
|
case "tgcreator":
|
|
case "tgresp":
|
|
case "tgul":
|
|
case "tgur":
|
|
case "tgnr":
|
|
if (ParamType == "tgcreator" && ParamValue == "") { return false; } else { if (ParamValue == "") { return true; } };
|
|
db.Get_Tabledata("Select count(*) from mitarbeiter where tgnummer='" + ParamValue + "'", false, true);
|
|
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
|
|
break;
|
|
case "yesno":
|
|
if (ParamValue != "true" && ParamValue != "false" && ParamValue != "") { return false; };
|
|
break;
|
|
case "filetype":
|
|
if (ParamValue != "WORD" && ParamValue != "PDF") { return false; }
|
|
break;
|
|
case "versandoption":
|
|
if (ParamValue != "A_POST" && ParamValue != "B1_POST" && ParamValue != "B2_POST" && ParamValue != "EINSCHREIBEN" && ParamValue != "") { return false; }
|
|
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) { 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;
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
db = null;
|
|
}
|
|
}
|
|
private string gendoc(ref DocCreate doccreate, ref clsDocData dokdata, ref Model.clsdocgendata docgendata, string key)
|
|
{
|
|
|
|
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
|
|
string imagepath = System.Configuration.ConfigurationManager.AppSettings["VSImagePath"].ToString();
|
|
|
|
string dokumentid = "";
|
|
;
|
|
Database.DB db = new DB(connectionstring);
|
|
db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + doccreate.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(); ;
|
|
}
|
|
|
|
DataTable dokwertlist = new DataTable();
|
|
dokwertlist = db.Get_DokumentWertList("", Convert.ToInt32(doccreate.VorlagenTypID), 1);
|
|
|
|
docgendata.dokumentwerte = dokwertlist;
|
|
docgendata.partnernr = doccreate.PartnerNr;
|
|
docgendata.inhaberadresse = "";
|
|
docgendata.zustelladresse = "";
|
|
docgendata.dokumenttypnr = doccreate.VorlagenTypID;
|
|
docgendata.unterschriftLinks = db.Get_Mitarbeiternr(doccreate.TGNrUnterschriftLinks).ToString();
|
|
docgendata.unterschriftRehts = db.Get_Mitarbeiternr(doccreate.TGNrUnterschriftRechts).ToString();
|
|
docgendata.verantwortlich = db.Get_Mitarbeiternr(doccreate.TGNrVerantwortlich).ToString();
|
|
docgendata.ersteller = db.Get_Mitarbeiternr(doccreate.TGNrErsteller).ToString();
|
|
docgendata.team = db.Get_Teamnr(docgendata.ersteller).ToString();
|
|
docgendata.digitaleunterschrift = false;
|
|
docgendata.frormularOhneUnterschrift = doccreate.OhneUnterschrift == "true";
|
|
docgendata.zustaendigkube = db.Get_Mitarbeiternr(doccreate.TGNrVerantwortlich).ToString();
|
|
docgendata.status = "-1";
|
|
docgendata.dokumentdatum = DateTime.Now.ToString("dd.MM.yyyy");
|
|
docgendata.dokumentdatum = OnDocAPI_NetFramework.Helper.Helper.NormalizeDateToSystemFormat(doccreate.Dokumentdatum);
|
|
docgendata.frormularOhneUnterschrift = doccreate.OhneUnterschrift == "true";
|
|
docgendata.bezeichnung = doccreate.Bezeichnung;
|
|
if (doccreate.ResultFileType == "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 = OnDocAPI_NetFramework.Helper.Helper.NormalizeDateToSystemFormat(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 (doccreate.FaksimileUnterschrift == "true")
|
|
{
|
|
dokdata.As_Faksimile = "True"; dokdata.sign = true; docgendata.digitaleunterschrift = true;
|
|
if (dokdata.Unterschrift_Links != "-1") {
|
|
dokdata.approval1 = 1;
|
|
dokdata.img_unterschrift_links = get_unterschrift(dokdata.Unterschrift_Links);
|
|
}
|
|
if (dokdata.Unterschrift_Rechts != "-1") {
|
|
dokdata.approval2 = 1;
|
|
dokdata.img_unterschrift_rechts = get_unterschrift(dokdata.Unterschrift_Rechts);
|
|
}
|
|
dokdata.approved = 1;
|
|
|
|
}
|
|
|
|
dokdata.APIValues = doccreate.APIValues;
|
|
dokdata.TextToReplace = doccreate.TextToReplace;
|
|
|
|
if (doccreate.PrintLogo == "true")
|
|
{
|
|
dokdata.PrintLogo = true;
|
|
dokdata.img_logo = GetImageAsBase64(4, -1, 0);
|
|
DB db1 = new DB(connectionstring);
|
|
db1.clear_parameter();
|
|
db1.add_parameter("@dokumenttypnr", dokdata.DokumenttypNr.ToString());
|
|
db1.Get_Tabledata("sp_ondoc_get_logoposition", true, false);
|
|
try
|
|
{
|
|
dokdata.logo_top = Convert.ToInt32(db1.dsdaten.Tables[0].Rows[0][0]);
|
|
dokdata.logo_left = Convert.ToInt32(db1.dsdaten.Tables[0].Rows[0][1]);
|
|
dokdata.logo_width = Convert.ToInt32(db1.dsdaten.Tables[0].Rows[0][2]);
|
|
dokdata.logo_heigth = Convert.ToInt32(db1.dsdaten.Tables[0].Rows[0][3]);
|
|
}
|
|
catch (Exception ex) { string a = ex.Message; }
|
|
db1 = null;
|
|
} 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, "");
|
|
try
|
|
{
|
|
if (!string.IsNullOrEmpty(doccreate.Reference))
|
|
{
|
|
db.Exec_SQL("Insert OnDoc_API_Dokumentreferenz (dokumentid, referenz, erstellt_am) values('" + dokumentid.Trim() + "','" + doccreate.Reference + "',getdate())");
|
|
}
|
|
|
|
}
|
|
catch { }
|
|
dokdata.Dokumentid = dokumentid;
|
|
|
|
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(this.connectionstring, OwnHost, key.ToString());
|
|
clsdok dok = new clsdok("", "", "", "");
|
|
dokdata.APICall = true;
|
|
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata, false, 0, false, false);
|
|
db.Save_To_DB(dokumentid, "", dok.dokument);
|
|
APILogging.Log((HttpRequestMessage)Request, "Ende GenDoc DokumentID:" + dokumentid, LogLevelType.Debug);
|
|
APILogging.DocLog((HttpRequestMessage)Request, doccreate.PartnerNr, "Dokument über API erstellt", dokumentid, LogLevelType.Info);
|
|
Generator = null;
|
|
db = null;
|
|
return "";
|
|
|
|
|
|
}
|
|
private void gendocCLM(ref List<CLMDocItem> clmdocitemlist, ref dynamic dataj, ref clsdok dok, string key, string clmdokumentid, string archivstatus = "Aktiv",string json="")
|
|
{
|
|
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
|
|
string imagepath = System.Configuration.ConfigurationManager.AppSettings["VSImagePath"].ToString();
|
|
clsDocData dokdata = new clsDocData();
|
|
string dokumentid = clmdokumentid;
|
|
dokdata.Dokumentid = clmdokumentid;
|
|
string bezeichnung = "";
|
|
|
|
;
|
|
Database.DB db = new DB(connectionstring);
|
|
db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + dataj.Dokumenttyp.ToString(), false, true);
|
|
System.Data.DataRow dr = db.dsdaten.Tables[0].Rows[0];
|
|
bezeichnung = db.dsdaten.Tables[0].Rows[0]["Bezeichnung"].ToString();
|
|
dokdata.Barcode = Convert.ToBoolean(dr["Vertrag"]) == true;
|
|
if (dokdata.Barcode==false) { archivstatus = "In Aufbewahrung"; }
|
|
dokdata.Barcode = false;
|
|
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(); ;
|
|
}
|
|
clsdocgendata docgendata = new clsdocgendata();
|
|
|
|
docgendata.partnernr = dataj.Bp.Partnernummer.ToString().Replace(".", "");
|
|
if (docgendata.partnernr == "") { docgendata.partnernr = "0"; }
|
|
docgendata.inhaberadresse = "";
|
|
docgendata.zustelladresse = "";
|
|
docgendata.dokumenttypnr = dataj.Dokumenttyp.ToString();
|
|
docgendata.unterschriftLinks = System.Configuration.ConfigurationManager.AppSettings["CLMUnterschriftlinks"].ToString();
|
|
docgendata.unterschriftRehts = System.Configuration.ConfigurationManager.AppSettings["CLMUnterschriftrechts"].ToString();
|
|
docgendata.verantwortlich = System.Configuration.ConfigurationManager.AppSettings["CLMVerantwortung"].ToString();
|
|
docgendata.ersteller = System.Configuration.ConfigurationManager.AppSettings["CLMVerantwortung"].ToString();
|
|
docgendata.team = System.Configuration.ConfigurationManager.AppSettings["CLMTeam"].ToString();
|
|
docgendata.digitaleunterschrift = false;
|
|
docgendata.frormularOhneUnterschrift = false;
|
|
docgendata.zustaendigkube = System.Configuration.ConfigurationManager.AppSettings["CLMKube"].ToString(); ;
|
|
docgendata.status = "-1";
|
|
docgendata.dokumentdatum = DateTime.Now.ToString("dd.MM.yyyy");
|
|
docgendata.dokumentdatum = DateTime.Now.ToString();
|
|
docgendata.bezeichnung = bezeichnung;
|
|
|
|
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 = OnDocAPI_NetFramework.Helper.Helper.NormalizeDateToSystemFormat(docgendata.dokumentdatum);
|
|
dokdata.Termin = "01.01.1900";
|
|
dokdata.Bezeichnung = docgendata.bezeichnung;
|
|
dokdata.dokumentwerte = docgendata.dokumentwerte;
|
|
|
|
List<CLMDocItem> deflist = new List<CLMDocItem>();
|
|
foreach (CLMDocItem item in clmdocitemlist)
|
|
{
|
|
if (item.type == null || item.type == String.Empty || item.type == "")
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
deflist.Add(item);
|
|
}
|
|
|
|
}
|
|
|
|
dokdata.CLMDocItems = deflist;
|
|
|
|
//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 (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"; }
|
|
// dokdata.dokumentwerte = ToDataTable<CLMDocItem>
|
|
dokumentid = db.Create_EDOKA_Doc(dokdata, false, clmdokumentid);
|
|
dokdata.Dokumentid = dokumentid;
|
|
Logging.APIDocLog.Debug("DocGenerator", "CreateCLM", guid, "");
|
|
|
|
dokdata.Erstellung_in_Office = false;
|
|
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(this.connectionstring, OwnHost, key.ToString());
|
|
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata, false, 0, false, false);
|
|
DocGet dget = new DocGet(this.connectionstring);
|
|
if (dok.extension.ToUpper() != "PDF")
|
|
{
|
|
dok.dokument = dget.Convert_Word_To_PDF(dok.dokument);
|
|
db.Exec_SQL("update dokument set dokumentname = dokumentname + '.pdf' where dokumentid = '" + dokumentid + "'");
|
|
}
|
|
// db.Save_To_DB(dokumentid, "", dok.dokument);
|
|
|
|
|
|
// dok = dget.GetDocAsPDF(dokumentid);
|
|
dok.extension = "pdf";
|
|
dok.doktype = "P";
|
|
if (System.Configuration.ConfigurationManager.AppSettings["CLMSaveOnDoc"].ToString() == "True" || clmdokumentid != "")
|
|
{
|
|
db.Save_To_DB(dokumentid, "", dok.dokument);
|
|
string sql = "Update ondoc_clm_dokumente set aktiv=0 where clmdokumentid = '" + dataj.Id + "'";
|
|
db.Exec_SQL(sql);
|
|
db.Get_Tabledata_for_Update("Select top 1 * from ondoc_clm_dokumente where id=-1", false, true);
|
|
DataRow dr1 = db.daten.Tables[0].NewRow();
|
|
dr1[1] = dokumentid;
|
|
dr1[2] = dataj.Id;
|
|
dr1[3] = DateTime.Now.ToString();
|
|
dr1[4] = true;
|
|
dr1[5] = archivstatus;
|
|
dr1[6] = 0;
|
|
dr1[7] = json;
|
|
dr1[8] = guid;
|
|
db.daten.Tables[0].Rows.Add(dr1);
|
|
|
|
db.Update_Data();
|
|
dr1 = null;
|
|
//sql = "Insert OnDoc_CLM_Dokumente (dokumentid,clmdokumentid,erstellt_am,aktiv,archivstatus) values(";
|
|
//sql=sql+"'"+dokumentid+"','"+dataj.Id+"',getdate(),1,'"+archivstatus+"')";
|
|
//db.Exec_SQL(sql);
|
|
//string sql = "Insert OnDoc_CLM_DocReference ";
|
|
//sql = sql + "(ondocdokumentid, clmdokumentid, erstellt_am,aktiv) ";
|
|
//sql = sql + "values('"+ dokdata.Dokumentid+","
|
|
|
|
//db.Exec_SQL("Insert OnDoc_CLM_DocReference")
|
|
}
|
|
else
|
|
{
|
|
db.clear_parameter();
|
|
db.add_parameter("@dokumentid", dokumentid);
|
|
db.Get_Tabledata("ondoc_delete_apidoc", true, false);
|
|
}
|
|
deflist.Clear();
|
|
dget = null;
|
|
Generator = null;
|
|
clmdocitemlist.Clear();
|
|
APILogging.Log((HttpRequestMessage)Request, "Ende GenDoc DokumentID:" + dokumentid, LogLevelType.Debug);
|
|
APILogging.DocLog((HttpRequestMessage)Request, docgendata.partnernr.ToString(), "Dokument über API erstellt", dokumentid, LogLevelType.Info);
|
|
db = null;
|
|
|
|
}
|
|
|
|
|
|
private void send_vs(ref Versandpaket vp, string mitarbeiternr, bool direktversenden, string url, string key, string dokumentid, string partnernr, DokumentCreate doccreate, ref APIErrorSimple apireturn, DocCreate EinzelDokument )
|
|
{
|
|
string jsonstring = JsonConvert.SerializeObject(vp);
|
|
DB db = new DB(connectionstring);
|
|
db.clear_parameter();
|
|
db.add_parameter("@ersteller", mitarbeiternr);
|
|
db.Get_Tabledata("ondoc_create_versandpaket", true, false);
|
|
int paketid = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]);
|
|
vp.PaketNr = new Guid().ToString();
|
|
|
|
db.Get_Tabledata_for_Update("Select top 1 * from Ondoc_Versandstrasse_Paket where id=" + paketid.ToString(), false, true);
|
|
DataRow dr = db.daten.Tables[0].Rows[0];
|
|
dr[2] = jsonstring;
|
|
dr["aktiv"] = 1;
|
|
dr["versandoption"] = vp.Versandoption.ToString();
|
|
dr["Bemerkung"] = vp.bemerkung;
|
|
dr["Signed"] = 1;
|
|
string OnDocSignCheck = "";
|
|
try
|
|
{
|
|
//Paket
|
|
OnDocSignCheck = doccreate.OnDocSignCheck;
|
|
}
|
|
catch
|
|
{
|
|
//Einzeldokument
|
|
OnDocSignCheck = EinzelDokument.OnDocSignCheck;
|
|
}
|
|
|
|
try
|
|
{
|
|
//if (doccreate.OnDocSignCheck == "true")
|
|
if (OnDocSignCheck == "true")
|
|
{
|
|
dr["Signed"] = 0;
|
|
|
|
}
|
|
}
|
|
catch { }
|
|
db.Update_Data();
|
|
|
|
|
|
db.daten.Tables.Clear();
|
|
db.Get_Tabledata_for_Update("Select * from ondoc_versandstrasse_paket_dokumentid where couvert_id = -1", false, true);
|
|
foreach (Versanddokument vd in vp.Dokument)
|
|
{
|
|
DataRow dr1 = db.daten.Tables[0].NewRow();
|
|
dr1[1] = paketid;
|
|
dr1[2] = vd.DokumentID;
|
|
dr1[3] = 1;
|
|
db.daten.Tables[0].Rows.Add(dr1);
|
|
|
|
}
|
|
db.Update_Data();
|
|
|
|
//paket
|
|
if (doccreate != null)
|
|
{
|
|
if (doccreate.OnDocSignCheck == "true")
|
|
{
|
|
dr["Signed"] = 0;
|
|
|
|
}
|
|
|
|
if (Convert.ToInt32(dr["Signed"]) == 0)
|
|
{
|
|
db.daten.Tables.Clear();
|
|
db.Get_Tabledata_for_Update("Select * from OnDoc_Prov_VersandstrasseDokument where id = -1", false, true);
|
|
foreach (APIDokument dc in doccreate.Dokumente)
|
|
{
|
|
DataRow dr1 = db.daten.Tables[0].NewRow();
|
|
dr1[1] = paketid;
|
|
dr1[2] = dc.DokumentID;
|
|
|
|
dr1[3] = "";
|
|
if (dc.PDFDoc != "")
|
|
{ dr1[3] = dc.PDFDoc; }
|
|
dr1[4] = true;
|
|
db.daten.Tables[0].Rows.Add(dr1);
|
|
}
|
|
}
|
|
|
|
db.Update_Data();
|
|
db.daten.Tables.Clear();
|
|
if (doccreate.OnDocSignCheck == "true")
|
|
{
|
|
db.Get_Tabledata_for_Update("Select top 1 * from ondoc_prov_versandstrassepaket where id=-1", false, true);
|
|
DataRow dr2 = db.daten.Tables[0].NewRow();
|
|
dr2[1] = paketid;
|
|
dr2[2] = DateTime.Now;
|
|
dr2[3] = doccreate.Dokumente[0].TGNrUnterschriftLinks.ToString();
|
|
dr2[4] = 0;
|
|
if (doccreate.Dokumente[0].TGNrVerantwortlich == doccreate.Dokumente[0].TGNrUnterschriftLinks)
|
|
{
|
|
dr2[4] = 1;
|
|
}
|
|
dr2[6] = doccreate.Dokumente[0].TGNrUnterschriftRechts.ToString();
|
|
dr2[7] = 0;
|
|
if (doccreate.Dokumente[0].TGNrVerantwortlich == doccreate.Dokumente[0].TGNrUnterschriftRechts)
|
|
{
|
|
dr2[7] = 1;
|
|
}
|
|
dr2[9] = 1;
|
|
dr2[10] = doccreate.Dokumente[0].TGNrVerantwortlich;
|
|
dr2[11] = doccreate.Dokumente[0].PartnerNr;
|
|
dr2[12] = doccreate.Paketbezeichnung.ToString();
|
|
db.daten.Tables[0].Rows.Add(dr2);
|
|
db.Update_Data();
|
|
//yxyy
|
|
if (Convert.ToInt32(dr2[4]) == 0)
|
|
{
|
|
db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where tgnummer='"+ doccreate.Dokumente[0].TGNrUnterschriftLinks + "'",false,true);
|
|
send_mail(21, db.dsdaten.Tables[0].Rows[0][0].ToString(), "", "",paketid.ToString(), "", "", "");
|
|
}
|
|
if (Convert.ToInt32(dr2[7]) == 0)
|
|
{
|
|
db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where tgnummer='" + doccreate.Dokumente[0].TGNrUnterschriftRechts + "'", false, true);
|
|
send_mail(21, db.dsdaten.Tables[0].Rows[0][0].ToString(), "", "",paketid.ToString(), "", "", "");
|
|
}
|
|
|
|
}
|
|
|
|
db = null;
|
|
}
|
|
else
|
|
{
|
|
if (EinzelDokument.OnDocSignCheck == "true")
|
|
{
|
|
dr["Signed"] = 0;
|
|
|
|
}
|
|
|
|
if (Convert.ToInt32(dr["Signed"]) == 0)
|
|
{
|
|
db.daten.Tables.Clear();
|
|
db.Get_Tabledata_for_Update("Select * from OnDoc_Prov_VersandstrasseDokument where id = -1", false, true);
|
|
DataRow dr1 = db.daten.Tables[0].NewRow();
|
|
dr1[1] = paketid;
|
|
dr1[2] = dokumentid;
|
|
dr1[3] = "";
|
|
dr1[4] = true;
|
|
db.daten.Tables[0].Rows.Add(dr1);
|
|
}
|
|
|
|
db.Update_Data();
|
|
db.daten.Tables.Clear();
|
|
if (EinzelDokument.OnDocSignCheck == "true")
|
|
{
|
|
db.Get_Tabledata_for_Update("Select top 1 * from ondoc_prov_versandstrassepaket where id=-1", false, true);
|
|
DataRow dr2 = db.daten.Tables[0].NewRow();
|
|
dr2[1] = paketid;
|
|
dr2[2] = DateTime.Now;
|
|
dr2[3] = EinzelDokument.TGNrUnterschriftLinks;
|
|
dr2[4] = 0;
|
|
if (EinzelDokument.TGNrVerantwortlich == EinzelDokument.TGNrUnterschriftLinks)
|
|
{
|
|
dr2[4] = 1;
|
|
}
|
|
dr2[6] = EinzelDokument.TGNrUnterschriftRechts.ToString();
|
|
dr2[7] = 0;
|
|
if (EinzelDokument.TGNrVerantwortlich == EinzelDokument.TGNrUnterschriftRechts)
|
|
{
|
|
dr2[7] = 1;
|
|
}
|
|
dr2[9] = 1;
|
|
dr2[10] = EinzelDokument.TGNrVerantwortlich.ToString();
|
|
dr2[11] = EinzelDokument.PartnerNr.ToString();
|
|
dr2[12] = EinzelDokument.Bezeichnung.ToString();
|
|
db.daten.Tables[0].Rows.Add(dr2);
|
|
db.Update_Data();
|
|
}
|
|
db = null;
|
|
}
|
|
|
|
Logging.DocLog.Info("Versandpaket vorbereitet", "OnDoc-API", dokumentid, partnernr, "");
|
|
if (!direktversenden)
|
|
{
|
|
return;
|
|
}
|
|
|
|
string URL = url + "api/Send_Versandstrasse?paketid=" + paketid.ToString();
|
|
|
|
|
|
|
|
WebRequest request;
|
|
var data = Encoding.UTF8.GetBytes(jsonstring);
|
|
request = WebRequest.Create(URL);
|
|
request.ContentLength = data.Length;
|
|
request.ContentType = "application/json";
|
|
request.Method = "POST";
|
|
request.Headers["Authorization"] = "Bearer " + key;
|
|
string response;
|
|
try
|
|
{
|
|
|
|
using (Stream requestStream = request.GetRequestStream())
|
|
{
|
|
requestStream.Write(data, 0, data.Length);
|
|
requestStream.Close();
|
|
|
|
using (Stream responseStream = request.GetResponse().GetResponseStream())
|
|
{
|
|
using (var reader = new StreamReader(responseStream))
|
|
{
|
|
response = reader.ReadToEnd();
|
|
}
|
|
if (response.ToString().Contains("*archiviert"))
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
Logging.DocLog.Info("Versandpaket versendet", "OnDoc-API", dokumentid, partnernr, "");
|
|
|
|
return;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logging.DocLog.Info("Direktversand nicht möglich: " + ex.Message, "OnDoc-API", dokumentid, partnernr, "");
|
|
apireturn.code = "ONDOC-ERR-SendVS";
|
|
apireturn.status = "400";
|
|
apireturn.message = ex.Message;
|
|
apireturn.traceid = "";
|
|
apireturn.field = "";
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
private string get_item_value(string inhalt, ref List<CLMDocItem> clmdocitemlist)
|
|
{
|
|
|
|
char d = '$';
|
|
if (inhalt.Count(x => x == d) > 1 )
|
|
{
|
|
string result = "";
|
|
try
|
|
{
|
|
result = inhalt;
|
|
string[] inhalte = inhalt.Split(' ');
|
|
foreach (string s in inhalte)
|
|
{
|
|
if (s.Contains("$")){
|
|
foreach (CLMDocItem di in clmdocitemlist)
|
|
{
|
|
string chkvalue = s.Replace("$.", "").Replace(",", "").Replace("-", "").Replace("/", "").Replace("\n", "").Replace(". ", "").Trim();
|
|
|
|
if (di.itemname == chkvalue)
|
|
{
|
|
result = result.Replace(chkvalue, di.itemvalue);
|
|
//result = result + di.itemvalue;
|
|
;
|
|
}
|
|
}
|
|
|
|
}
|
|
else {
|
|
}
|
|
result = result.Replace("$.", "");
|
|
|
|
}
|
|
return result;
|
|
}
|
|
catch {
|
|
return "";
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
string result = "";
|
|
try
|
|
{
|
|
foreach (CLMDocItem di in clmdocitemlist)
|
|
{
|
|
if (di.itemname == inhalt.Replace("$.", ""))
|
|
{
|
|
result = di.itemvalue;
|
|
return result;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
catch
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
private string get_datamatrix_value(string inhalt, string clmdokumentid, ref List<CLMDocItem> clmdocitemlist)
|
|
{
|
|
string datamatrixstring = "";
|
|
string[] parts = inhalt.Split('$');
|
|
foreach (string part in parts)
|
|
{
|
|
|
|
if (part.Contains("&"))
|
|
{
|
|
if (part.Replace("&", "") == "DokumentID")
|
|
{
|
|
if (datamatrixstring.Length > 0) { datamatrixstring = datamatrixstring + "$"; }
|
|
datamatrixstring = datamatrixstring + clmdokumentid.Replace("OFFEDK", "");
|
|
}
|
|
|
|
foreach (CLMDocItem di in clmdocitemlist)
|
|
{
|
|
if (di.itemname == part.Replace("&", ""))
|
|
{
|
|
if (datamatrixstring.Length > 0) { datamatrixstring = datamatrixstring + "$"; }
|
|
datamatrixstring = datamatrixstring + di.itemvalue.Replace(".","");
|
|
}
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (datamatrixstring.Length > 0) { datamatrixstring = datamatrixstring + "$"; }
|
|
datamatrixstring = datamatrixstring + part;
|
|
}
|
|
}
|
|
|
|
return datamatrixstring;
|
|
}
|
|
private string pruefziffer(string value)
|
|
{
|
|
int[] row = new int[] { 0, 9, 4, 6, 8, 2, 7, 1, 3, 5 };
|
|
int uebertrag = 0;
|
|
foreach (char c in value.Replace(".", ""))
|
|
{
|
|
int digit = int.Parse("" + c);
|
|
int index = (uebertrag + digit) % 10;
|
|
uebertrag = row[index];
|
|
}
|
|
int checkDigit = (10 - uebertrag) % 10;
|
|
return checkDigit.ToString();
|
|
}
|
|
|
|
private string get_unterschrift(string MaNr)
|
|
{
|
|
|
|
DB dB = new DB(connectionstring);
|
|
try
|
|
{
|
|
|
|
dB.Get_Tabledata("Select TGNummer from mitarbeiter where mitarbeiternr = " + MaNr, false, true);
|
|
string TGNummer = dB.dsdaten.Tables[0].Rows[0][0].ToString();
|
|
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"];
|
|
string filename = "";
|
|
filename = path + TGNummer + ".jpg";
|
|
if (!File.Exists(filename))
|
|
{
|
|
return "";
|
|
}
|
|
try
|
|
{
|
|
System.Drawing.Image iimg = System.Drawing.Image.FromFile(filename);
|
|
System.Drawing.Image imgnew = null;
|
|
imgnew = iimg;
|
|
using (MemoryStream m = new MemoryStream())
|
|
{
|
|
string newfilename = path + Guid.NewGuid().ToString() + ".jpg";
|
|
imgnew.Save(newfilename);
|
|
imgnew = System.Drawing.Image.FromFile(newfilename);
|
|
imgnew.Save(m, imgnew.RawFormat);
|
|
byte[] imageBytes = m.ToArray();
|
|
imgnew.Dispose();
|
|
m.Dispose();
|
|
System.IO.File.Delete(newfilename);
|
|
iimg.Dispose();
|
|
iimg = null;
|
|
imgnew = null;
|
|
return Convert.ToBase64String(imageBytes);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return "";
|
|
}
|
|
finally
|
|
{
|
|
dB = null;
|
|
}
|
|
}
|
|
|
|
private string GetImageAsBase64(int imageid, int ImageWidth = 0, int ImageHeight = 0)
|
|
{
|
|
string path = System.Configuration.ConfigurationManager.AppSettings["ImagePath"];
|
|
string filename = "";
|
|
int defaultheigt = 0;
|
|
int defaultwidth = 0;
|
|
APILogging.Log((HttpRequestMessage)Request, "Image-Bezug: " + imageid.ToString(), LogLevelType.Info);
|
|
|
|
//if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
|
|
//{
|
|
// return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
|
|
//}
|
|
System.Data.DataSet ds = new System.Data.DataSet();
|
|
ds.ReadXml(path + "imageids.xml");
|
|
filename = "";
|
|
foreach (System.Data.DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
if (Convert.ToInt32(row[0]) == imageid)
|
|
{
|
|
defaultheigt = Convert.ToInt32(row[3]);
|
|
defaultwidth = Convert.ToInt32(row[2]);
|
|
filename = path + row[1].ToString();
|
|
}
|
|
}
|
|
ds.Dispose();
|
|
if (filename == "")
|
|
{
|
|
return "";
|
|
}
|
|
|
|
System.Drawing.Image iimg = System.Drawing.Image.FromFile(filename);
|
|
System.Drawing.Image imgnew = null;
|
|
|
|
switch (ImageWidth)
|
|
{
|
|
case 0:
|
|
ImageWidth = defaultwidth;
|
|
ImageHeight = defaultheigt;
|
|
Bitmap b = new Bitmap(iimg);
|
|
imgnew = b;
|
|
b = null;
|
|
break;
|
|
case -1:
|
|
imgnew = iimg;
|
|
break;
|
|
default:
|
|
Bitmap b1 = new Bitmap(iimg);
|
|
imgnew = b1;
|
|
b1 = null;
|
|
break;
|
|
|
|
}
|
|
using (MemoryStream m = new MemoryStream())
|
|
{
|
|
string newfilename = path + Guid.NewGuid().ToString() + ".jpg";
|
|
imgnew.Save(newfilename);
|
|
imgnew = System.Drawing.Image.FromFile(newfilename);
|
|
imgnew.Save(m, imgnew.RawFormat);
|
|
byte[] imageBytes = m.ToArray();
|
|
imgnew.Dispose();
|
|
m.Dispose();
|
|
//yte[] imageArray = System.IO.File.ReadAllBytes(newfilename);
|
|
// string base64ImageRepresentation = Convert.ToBase64String(imageArray);
|
|
System.IO.File.Delete(newfilename);
|
|
iimg.Dispose();
|
|
iimg = null;
|
|
imgnew = null;
|
|
//return Ok(base64ImageRepresentation);
|
|
return Convert.ToBase64String(imageBytes);
|
|
}
|
|
}
|
|
|
|
public void Send_Confirmation(ref mailInhalt inhalt)// string sendmail, string receipt, string subject, string message, bool onlyadmin = false, string code = "", string statu="",string msg="")
|
|
{
|
|
|
|
//inhalt = null;
|
|
if (inhalt.sendmail != true && inhalt.forceadminmail != true) { inhalt = null; return; }
|
|
try
|
|
{
|
|
MailMessage mail = new MailMessage();
|
|
SmtpClient SmtpServer = new SmtpClient();
|
|
string mailempfaenger = System.Configuration.ConfigurationManager.AppSettings["Mailempfaenger"].ToString();
|
|
if (inhalt.forceadminmail == true && inhalt.empfaenger != "")
|
|
{
|
|
mail.To.Add(inhalt.empfaenger);
|
|
mail.Bcc.Add(mailempfaenger);
|
|
}
|
|
else { mail.To.Add(mailempfaenger); }
|
|
|
|
mail.From = new MailAddress("OnDoc@tkb.ch");
|
|
if (inhalt.typ == 1)
|
|
{
|
|
mail.Subject = "OnDoc: Fehler: " + inhalt.subject;
|
|
}
|
|
else
|
|
{
|
|
mail.Subject = "OnDoc: Status: " + inhalt.subject;
|
|
}
|
|
mail.IsBodyHtml = true;
|
|
string body = "Guten Tag <br><br>";
|
|
if (inhalt.typ != 1)
|
|
{
|
|
body = body + "Meldung:  " + inhalt.message + "<br>";
|
|
body = body + "Dokument:  " + inhalt.bezeichnung + "<br>";
|
|
body = body + "Dok-ID:  " + inhalt.dokumentid + "<br>";
|
|
body = body + "Parnter:  " + inhalt.partnernr + "<br>";
|
|
|
|
body = body + "GUID:  " + inhalt.guid + "<br>";
|
|
body = body + "Herkunfts-Appl: " + inhalt.Herkunftsapplikation;
|
|
}
|
|
else
|
|
{
|
|
body = body + "Bei der automatischen Verarbeitung ist ein Fehler aufgetreten:<br><br>";
|
|
body = body + "Meldung:  " + inhalt.message + "<br>";
|
|
body = body + "Dokument:  " + inhalt.bezeichnung + "<br>";
|
|
body = body + "Dok-ID:  " + inhalt.dokumentid + "<br>";
|
|
body = body + "Parnter:  " + inhalt.partnernr + "<br>";
|
|
|
|
body = body + "GUID:  " + inhalt.guid + "<br>";
|
|
body = body + "Herkunfts-Appl: " + inhalt.Herkunftsapplikation;
|
|
}
|
|
|
|
mail.Body = body + "<br><br><br>------------------------------------------------------------------------------------------------<br>OnDoc";
|
|
SmtpServer.Host = "smtp.tgcorp.ch";
|
|
SmtpServer.Port = 25;
|
|
SmtpServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
|
|
try
|
|
{
|
|
SmtpServer.Send(mail);
|
|
APILogging.Log((HttpRequestMessage)Request, "SMTPMail Versand: " + inhalt.empfaenger, LogLevelType.Debug);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Mail Versand NOK: " + ex.Message + " " +inhalt.empfaenger, LogLevelType.Debug);
|
|
if (ex.InnerException != null)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Mail Versand NOK - Exception Inner: " + ex.InnerException, LogLevelType.Debug);
|
|
}
|
|
|
|
}
|
|
inhalt = null;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
inhalt = null;
|
|
APILogging.Log((HttpRequestMessage)Request, "Mail Versand NOK: " + e.Message + " " , LogLevelType.Debug);
|
|
}
|
|
}
|
|
private void send_bewilligungsmail(int mailid, string empfaenger, string betreff, string message, string dokumentid, string ondoclink, string absender, string bewilligungid)
|
|
{
|
|
|
|
|
|
}
|
|
private void send_mail(int mailid, string empfaenger, string betreff, string message, string dokumentid, string ondoclink, string absender, string bewilligungid)
|
|
{
|
|
DB db = new DB(connectionstring);
|
|
try
|
|
{
|
|
db.clear_parameter();
|
|
db.add_parameter("@mailid", mailid.ToString());
|
|
db.add_parameter("@empf", empfaenger);
|
|
db.add_parameter("@dokid", dokumentid);
|
|
db.add_parameter("@absender", absender);
|
|
db.add_parameter("@bewilligungid", bewilligungid);
|
|
db.Get_Tabledata("sp_ondoc_maildaten", true, false);
|
|
if (message == null) { message = ""; }
|
|
if (betreff == null) { betreff = ""; }
|
|
if (betreff == "") { betreff = db.dsdaten.Tables[0].Rows[0][1].ToString(); }
|
|
if (message == "") { message = db.dsdaten.Tables[0].Rows[0][2].ToString(); }
|
|
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][3]) == 0)
|
|
{
|
|
db = null;
|
|
return;
|
|
}
|
|
empfaenger = db.dsdaten.Tables[0].Rows[0][0].ToString();
|
|
db = null;
|
|
|
|
MailMessage mail = new MailMessage();
|
|
SmtpClient SmtpServer = new SmtpClient();
|
|
mail.To.Add(empfaenger);
|
|
mail.From = new MailAddress("OnDoc@tkb.ch");
|
|
mail.Subject = betreff;
|
|
mail.IsBodyHtml = true;
|
|
mail.Body = message;
|
|
SmtpServer.Host = "smtp.tgcorp.ch";
|
|
SmtpServer.Port = 25;
|
|
SmtpServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
|
|
try
|
|
{
|
|
SmtpServer.Send(mail);
|
|
APILogging.Log((HttpRequestMessage)Request, "SMTPMail Versand: " + empfaenger, LogLevelType.Debug);
|
|
return;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Mail Versand NOK: " + ex.Message + " " + empfaenger, LogLevelType.Debug);
|
|
if (ex.InnerException != null)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Mail Versand NOK - Exception Inner: " + ex.InnerException, LogLevelType.Debug);
|
|
}
|
|
return;
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
APILogging.Log((HttpRequestMessage)Request, "Mail Versand NOK - Exception Inner: " + ex.InnerException, LogLevelType.Debug);
|
|
|
|
}
|
|
finally
|
|
{
|
|
db = null;
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
public static class DataTableHelper
|
|
{
|
|
public static DataTable ToDataTable<T>(List<T> items)
|
|
{
|
|
DataTable table = new DataTable(typeof(T).Name);
|
|
|
|
// Properties der Klasse holen
|
|
PropertyInfo[] properties = typeof(T).GetProperties();
|
|
|
|
// Spalten anlegen
|
|
foreach (PropertyInfo prop in properties)
|
|
{
|
|
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
|
|
}
|
|
|
|
// Zeilen füllen
|
|
foreach (T item in items)
|
|
{
|
|
DataRow row = table.NewRow();
|
|
foreach (PropertyInfo prop in properties)
|
|
{
|
|
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
|
|
}
|
|
table.Rows.Add(row);
|
|
}
|
|
|
|
return table;
|
|
}
|
|
}
|
|
}
|