You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
14 KiB

using OnDoc.Diverses;
using OnDoc.Klassen;
using Helper;
using Microsoft.Office.Interop.Excel;
using Model;
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.DataGrid;
using Syncfusion.WinForms.DataGrid.Interactivity;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.RightsManagement;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using Database;
namespace OnDoc.DocMgmt
{
public partial class FrmDokumenterstellung : SfForm
{
private int partnernr = 0;
private int profilnr = 0;
private int dokumenttypnr = 0;
public FrmDokumenterstellung()
{
InitializeComponent();
}
public FrmDokumenterstellung(int PartnerNr, int Dokumenttpynr, int Profilnr)
{
partnernr = PartnerNr;
dokumenttypnr = Dokumenttpynr;
profilnr = Profilnr;
InitializeComponent();
}
private void FrmDokumenterstellung_Load(object sender, EventArgs e)
{
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select nreintrag, bezeichnung from Postzustellung where aktiv=1 order by bezeichnung", false, true);
cbboxpostzustellung.DataSource = db.dsdaten.Tables[0];
cbboxpostzustellung.ValueMember = "nreintrag";
cbboxpostzustellung.DisplayMember = "bezeichnung";
db.clear_parameter();
db.add_parameter("@partnernr", "1000208");
db.Get_Tabledata("sp_dokumentbearbeitung_kube", true, false);
cbboxzustaendigkube.DataSource = db.dsdaten.Tables[0];
cbboxzustaendigkube.DisplayMember = "name";
cbboxzustaendigkube.ValueMember = "mitarbeiternr";
db.clear_parameter();
db.Get_Tabledata("SP_Dokumentbearbeitung_Mitarbeiter", true, false);
cbboxzustaendigmitarbeiter.DataSource = db.dsdaten.Tables[0];
cbboxzustaendigmitarbeiter.DisplayMember = "name";
cbboxzustaendigmitarbeiter.ValueMember = "mitarbeiternr";
cbboxzustaendigmitarbeiter.SelectedValue = AppParams.CurrentMitarbieter;
cbboxunterschriftlinks.DataSource = db.dsdaten.Tables[0];
cbboxunterschriftlinks.DisplayMember = "name";
cbboxunterschriftlinks.ValueMember = "mitarbeiternr";
cbboxunterschriftrechts.DataSource = db.dsdaten.Tables[0];
cbboxunterschriftrechts.DisplayMember = "name";
cbboxunterschriftrechts.ValueMember = "mitarbeiternr";
cbboxverantwortlich.DataSource = db.dsdaten.Tables[0];
cbboxverantwortlich.DisplayMember = "name";
cbboxverantwortlich.ValueMember = "mitarbeiternr";
cbboxverantwortlich.SelectedValue = AppParams.CurrentMitarbieter;
db.clear_parameter();
db.add_parameter("dokumenttypnr", dokumenttypnr.ToString());
db.add_parameter("@dokumentid", "");
db.add_parameter("@fnkt", "1");
db.add_parameter("@mitarbeiternr", AppParams.CurrentMitarbieter.ToString());
db.add_parameter("@bck", "0");
db.Get_Tabledata("SP_Dokumentbearbeitung_StatusSelektion", true, false);
cbboxstatus.DataSource = db.dsdaten.Tables[0];
cbboxstatus.DisplayMember = "Bezeichnung";
cbboxstatus.ValueMember = "dokumentstatusnr";
cbboxstatus.SelectedIndex = 1;
if (partnernr != 0)
{
db.Get_Tabledata("Select * from partner where nrpar00=" + partnernr, false, true);
this.lblPartner.Text = db.dsdaten.Tables[0].Rows[0]["nrpar00"].ToString() + " " + db.dsdaten.Tables[0].Rows[0]["bkpar00"].ToString();
}
if (dokumenttypnr != 0)
{
db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + dokumenttypnr, false, true);
this.txtbezeichnung.Text = db.dsdaten.Tables[0].Rows[0]["Bezeichnung"].ToString();
}
if (profilnr != 0)
{
db.Get_Tabledata("Select * from profil where profilnr=" + profilnr, false, true);
int ulinks = 0;
int urechts = 0;
try
{
ulinks = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["unterschriftlinks"].ToString());
cbboxunterschriftlinks.SelectedValue = ulinks;
}
catch { ulinks = 0; }
try
{
urechts = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["unterschriftrechts"].ToString());
cbboxunterschriftrechts.SelectedValue = urechts;
}
catch { urechts = 0; }
}
System.Data.DataTable dokwertlist = new System.Data.DataTable();
dokwertlist = db.Get_DokumentWertList("", dokumenttypnr);
gridDokwertlist.DataSource = dokwertlist;
for (int i = 3; i < gridDokwertlist.Columns.Count; i++)
{
gridDokwertlist.Columns[i].Visible = false;
}
gridDokwertlist.Columns[0].AllowEditing = false;
gridDokwertlist.Columns[1].AllowEditing = false;
gridDokwertlist.Columns[0].Width = gridDokwertlist.Width * 0.35;
gridDokwertlist.Columns[1].Width = gridDokwertlist.Width * 0.15;
gridDokwertlist.Columns[2].Width = gridDokwertlist.Width * 0.35;
gridDokwertlist.Columns.Add(new GridImageColumn() { MappingName = "S", ImageLayout = ImageLayout.Center });
gridDokwertlist.Columns["S"].Width = 25;
gridDokwertlist.QueryImageCellStyle += gridDokwertlist_QueryImageCellStyle;
db = null;
Refresh_Team();
this.cbboxteam.SelectedIndex = 0;
}
private void gridDokwertlist_QueryImageCellStyle(object sender, Syncfusion.WinForms.DataGrid.Events.QueryImageCellStyleEventArgs e)
{
var rowdata = (DataRowView)e.Record;
var feldtyp = rowdata.Row.ItemArray[5].ToString();
var datenherkunft = rowdata.Row.ItemArray[6].ToString();
try
{
if (feldtyp.ToUpper().Substring(0, 5) == "DATUM")
{
e.Image = (System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\calendar.png"));
return;
}
}
catch { }
try
{
if (datenherkunft.ToString().Trim() != "")
{
e.Image = (System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\Search.png"));
}
if (datenherkunft.Substring(0, 3).ToUpper() == "&PA")
{
e.Image = (System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\Partner.png"));
}
}
catch { }
//e.Image = (Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\Search_16x16.png"));
}
private void Refresh_Team()
{
DB dbteam = new DB(AppParams.connectionstring);
dbteam.clear_parameter();
dbteam.add_parameter("@profilnr", profilnr.ToString());
dbteam.add_parameter("@mitarbeiternr", cbboxzustaendigmitarbeiter.SelectedValue.ToString());
dbteam.Get_Tabledata("sp_dokumentbearbeitung_team", true, false);
cbboxteam.DataSource = null;
cbboxteam.DataSource = dbteam.dsdaten.Tables[0];
cbboxteam.ValueMember = "teamnr";
cbboxteam.DisplayMember = "bezeichnung";
}
private void sfButton2_Click(object sender, EventArgs e)
{
clsDocData dokdata = new clsDocData();
dokdata.PartnerNr = partnernr.ToString();
dokdata.UseEDOKA_Values = "True";
dokdata.DokumenttypNr = dokumenttypnr.ToString();
dokdata.Unterschrift_Links = cbboxunterschriftlinks.SelectedValue.ToString();
dokdata.Unterschrift_Rechts = cbboxunterschriftrechts.SelectedValue.ToString();
dokdata.Verantwortlich = cbboxverantwortlich.SelectedValue.ToString();
dokdata.Team = cbboxteam.SelectedValue.ToString();
if (rbzustaendigkube.Checked) { dokdata.Zustaendig = cbboxzustaendigkube.SelectedValue.ToString(); } else { dokdata.Zustaendig = cbboxzustaendigmitarbeiter.SelectedValue.ToString(); }
dokdata.Status = cbboxstatus.SelectedValue.ToString();
dokdata.Ersteller = AppParams.CurrentMitarbieter.ToString();
dokdata.DokumentDatum = DateDokumentDatum.DateTimeText.ToString();
dokdata.Bezeichnung = txtbezeichnung.Text;
dokdata.UseEDOKA_Values = "True";
if (rbasPDFarchivieren.Checked) { dokdata.Result_as_PDF = "True"; } else { dokdata.Result_as_PDF = ""; }
if (cbdigitaleunterschrfiten.Checked) { dokdata.As_Faksimile = "True"; } else { dokdata.As_Faksimile = "False"; }
DOCGEN.DocGen docgen = new DOCGEN.DocGen(AppParams.connectionstring);
string dokumentid = docgen.GenDocID(dokdata);
dokdata.Dokumentid = dokumentid;
if (dokumentid != "")
{
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(AppParams.connectionstring, AppParams.tempdir);
clsdok dok = new clsdok("", "", "");
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata);
if (rbDokumentbearbeiten.Checked)
{
string filename = AppParams.tempdir + dokumentid + "." + dok.extension;
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(dok.dokument));
DB db = new DB(AppParams.connectionstring);
db.Save_To_DB(dokdata.Dokumentid, filename);
db = null;
System.Diagnostics.Process.Start("winword.exe", filename);
clsProcessWatch.AddToList(dokdata.Dokumentid, filename, "Word");
}
if (rbasPDFarchivieren.Checked)
{
dok.extension = "pdf";
string filename = AppParams.tempdir + dokumentid + "." + dok.extension;
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(dok.dokument));
DB db = new DB(AppParams.connectionstring);
db.Save_To_DB(dokdata.Dokumentid, filename);
}
if (rbEditlater.Checked)
{
string filename = AppParams.tempdir + dokumentid + "." + dok.extension;
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(dok.dokument));
DB db = new DB(AppParams.connectionstring);
db.Save_To_DB(dokdata.Dokumentid, filename);
db = null;
}
this.Close();
}
}
private void gridDokwertlist_Click(object sender, EventArgs e)
{
}
private void gridDokwertlist_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
var rowIndex = DataGridIndexResolver.ResolveToRecordIndex(this.gridDokwertlist.TableControl, this.gridDokwertlist.CurrentCell.RowIndex);
if (rowIndex != -1)
{
Set_CellValue(rowIndex, "Gaga");
return;
var record = (this.gridDokwertlist.View.Records[rowIndex].Data);
//MessageBox.Show(record.OrderID.ToString());
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
var ft = dataRow["feldtyp"].ToString();
var da = dataRow["datenherkunft"].ToString();
if (ft.ToUpper().Substring(0, 5) == "DATUM")
{
frmCalendar fcal = new frmCalendar();
fcal.ShowDialog();
if (fcal.DialogResult == DialogResult.OK)
{
Set_CellValue(rowIndex,"Gaga");
}
}
}
}
private void Set_CellValue(int row,string wert)
{
int rowIndex = row + 1;
int columnIndex = gridDokwertlist.TableControl.ResolveToGridVisibleColumnIndex(2);
columnIndex = 2;
if (columnIndex < 0)
return;
var mappingName = gridDokwertlist.Columns[columnIndex].MappingName;
var recordIndex = gridDokwertlist.TableControl.ResolveToRecordIndex(rowIndex);
//recordIndex = 0;
if (recordIndex < 0)
return;
object data;
if (gridDokwertlist.View.TopLevelGroup != null)
{
var record = gridDokwertlist.View.TopLevelGroup.DisplayElements[recordIndex];
if (!record.IsRecords)
return;
data = (record as Syncfusion.Data.RecordEntry).Data;
}
else
data = gridDokwertlist.View.Records.GetItemAt(recordIndex);
this.gridDokwertlist.View.GetPropertyAccessProvider().SetValue(data, mappingName, "Modified Value");
}
private void gridDokwertlist_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
int columnIndex = gridDokwertlist.TableControl.ResolveToGridVisibleColumnIndex(2);
}
private void sfButton3_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Abort;
this.Close();
}
}
}