TwgJonathan/Export/ConturaExporter - Mehr Spalten u Mietzahlungsexport
This commit is contained in:
@@ -11,7 +11,7 @@ namespace TwgJonathan.Export
|
||||
{
|
||||
public class ConturaExporter
|
||||
{
|
||||
|
||||
public static int count = 1;
|
||||
public static QueryDC CreateQuery(QueryDC query)
|
||||
{
|
||||
DateTime dt = DateTime.Now;
|
||||
@@ -35,15 +35,20 @@ namespace TwgJonathan.Export
|
||||
public static String GetAbrechnungenString(DateTime date)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine("AnwenderNr;TeilnNr;Wirtschaftsjahr;Wirtschaftsmonat;Buchungssatz;ErfaBuchhnr;ErfaBetrag;FibuBelegNr;BelegDatum;FKontoNr;FGKontoNr;KstKtr;Buchungstext");
|
||||
|
||||
sb.AppendLine("AnwenderNr;TeilnNr;Wirtschaftsjahr;Wirtschaftsmonat;WirtJahrBeginn;Benutzer;ErfaQuelle;Bezeichnung;Buchungssatz;Umsatzart;ErfaBuchhnr;VerrBuchhNr;ErfaBetrag;ErfaWaehrung;Steuerschl;" +
|
||||
"FibuBelegNr;BelegDatum;Faelligkeit;OPBelegNr;OPBelegNr2;LieferBelegNr;FKontoNr;UKontoNr;FGKontoNr;GUKontoNr;KstKtr;LeistKst;Buchungstext;VerteilGruppeK;VerteilGruppeG;Mischfall;AufteilProz;" +
|
||||
"Umkehrung;Zahlungsart;Bankleitzahl;BankkontoNr;SkontoTage;AusnahmeSkonto;FKontoNrRechnEmpf;UKontoNrRechnEmpf;FKontoNrBetreuter;UKontoNrBetreuter;Aktenzeichen;Unterbringung;Leistungdatum;Geburtsdatum;" +
|
||||
"Ungesichert;VersichertenNr;Lieferscheinnr;Projektnr1;ProjektNrA;Projektnr2;ProjektNrB;Projektnr3;ProjektNrC;Verwzweck1;BankNr;WMonatVonAbgr;WMonatBisAbgr;OPBelegNrK;OPBelegNrG;LieferKundenNr;" +
|
||||
"Skontofaelligkeit;Name1;Name2;Name3;Strasse;PLZ;Ort;ScanID");
|
||||
var s = GetMonatlicheRechnungenString(date);
|
||||
if (!String.IsNullOrWhiteSpace(s))
|
||||
{
|
||||
sb.Append(s);
|
||||
}
|
||||
//if (sb.Length > 0)
|
||||
// sb.AppendLine();
|
||||
if (sb.Length > 0)
|
||||
{
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
//s = GetAbschlagszahlungenString(date);
|
||||
//if (!String.IsNullOrWhiteSpace(s))
|
||||
@@ -53,11 +58,11 @@ namespace TwgJonathan.Export
|
||||
//if (sb.Length > 0)
|
||||
// sb.AppendLine();
|
||||
|
||||
//s = GetSelbstzahlerString(date);
|
||||
//if (!String.IsNullOrWhiteSpace(s))
|
||||
//{
|
||||
// sb.Append(s);
|
||||
//}
|
||||
s = GetMietzahlungenString(date);
|
||||
if (!String.IsNullOrWhiteSpace(s))
|
||||
{
|
||||
sb.Append(s);
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
@@ -65,21 +70,6 @@ namespace TwgJonathan.Export
|
||||
public static String GetMonatlicheRechnungenString(DateTime date)
|
||||
{
|
||||
var dt = ExecuteQuery(GetMonatlicheRechnungenSql(date), date);
|
||||
|
||||
//int idx = Int32.MaxValue;
|
||||
//foreach (DataRow row in dt.Rows)
|
||||
//{
|
||||
// var item = row[2];
|
||||
// if ((int)item < idx)
|
||||
// {
|
||||
// idx = (int)item;
|
||||
// }
|
||||
//}
|
||||
|
||||
//if (idx == Int32.MaxValue)
|
||||
//{
|
||||
// idx = 1;
|
||||
//}
|
||||
int idx = 1;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
@@ -93,34 +83,91 @@ namespace TwgJonathan.Export
|
||||
sb.Append(String.Format("{0:yyyy}", date)); // Wirtschaftsjahr
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:0}", date.Month)); // Wirtschaftsmonat
|
||||
sb.Append(";1;"); //Buchungssatz
|
||||
sb.Append(String.Format("{0:0}", idx++)); //ErfaBuchhnr
|
||||
sb.Append(";");
|
||||
sb.Append(";;;;;1;;"); //Buchungssatz
|
||||
_ = sb.Append(String.Format("{0:0}", idx++)); //ErfaBuchhnr
|
||||
sb.Append(";;");
|
||||
sb.Append(String.Format("{0:0.00}", row[0])); // ErfaBetrag
|
||||
sb.Append(";");
|
||||
sb.Append(";;;");
|
||||
sb.Append(String.Format("{0}", row[2])); // FibuBelegNr
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:dd.MM.yyyy}", row[3])); // Belegdatum
|
||||
sb.Append(";");
|
||||
sb.Append(";;;;;");
|
||||
sb.Append(String.Format("{0}", row[4])); // FKontoNr (Debitor)
|
||||
sb.Append(";");
|
||||
sb.Append(";;");
|
||||
sb.Append(String.Format("{0}", row[1])); // FGKontoNr
|
||||
sb.Append(";6300;"); // Kostenstelle
|
||||
sb.Append(";;6300;;"); // Kostenstelle
|
||||
String buchungstext = "";
|
||||
long? c2sOid = (long?)row[6];
|
||||
|
||||
if (c2sOid.HasValue)
|
||||
if (row[8] != null && row[8].ToString() == "Allgemeine Rechnung")
|
||||
{
|
||||
var c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(c2sOid.Value);
|
||||
var c = c2s.SupportConcept.Customer;
|
||||
buchungstext = String.Format("{0} {1} {2:0.00}/{3}", c.Person.LastName, c.Person.FirstName, date.Month, date.Year);
|
||||
buchungstext = buchungstext.Replace(";", ",");
|
||||
buchungstext = row[8].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
long? c2sOid = (long?)row[6];
|
||||
|
||||
if (c2sOid.HasValue)
|
||||
{
|
||||
var c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(c2sOid.Value);
|
||||
var c = c2s.SupportConcept.Customer;
|
||||
buchungstext = String.Format("{0} {1} {2:MM}/{3}", c.Person.LastName, c.Person.FirstName, date, date.Year);
|
||||
buchungstext = buchungstext.Replace(";", ",");
|
||||
}
|
||||
}
|
||||
sb.Append(buchungstext);
|
||||
sb.Append(";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"); // Leerspalten
|
||||
}
|
||||
count = idx;
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private static string GetMietzahlungenString(DateTime date)
|
||||
{
|
||||
/* Round(scap.ApprovedFixedAmount, 2) AS 'Miete',
|
||||
'40126' AS 'Gegenkonto',
|
||||
'123456' AS InvoiceNumber,
|
||||
cust.CostCenter,
|
||||
cust.DebitorNumber,
|
||||
CONCAT(p.LastName, ', ', p.FirstName) AS KlientName */
|
||||
var dt = ExecuteQuery(GetMonatlicheMietenSql(date), date);
|
||||
int idx = count;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
if (sb.Length > 0)
|
||||
{
|
||||
sb.AppendLine();
|
||||
}
|
||||
sb.Append("172265000;172265;"); // Anwender Nr.;TeilNr
|
||||
sb.Append(String.Format("{0:yyyy}", date)); // Wirtschaftsjahr
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:0}", date.Month)); // Wirtschaftsmonat
|
||||
sb.Append(";;;;;1;;"); //Buchungssatz
|
||||
sb.Append(String.Format("{0:0}", idx)); //ErfaBuchhnr
|
||||
sb.Append(";;");
|
||||
sb.Append(String.Format("{0:0.00}", row[0])); // ErfaBetrag
|
||||
sb.Append(";;;");
|
||||
sb.Append(String.Format("{0}", idx++)); // FibuBelegNr
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:dd.MM.yyyy}", date)); // Belegdatum
|
||||
sb.Append(";;;;;");
|
||||
sb.Append(String.Format("{0}", row[3])); // FKontoNr (Debitor) Debitor für Miete ist in Kostenstelle, da abweicht
|
||||
sb.Append(";;");
|
||||
sb.Append(String.Format("{0}", row[1])); // FGKontoNr
|
||||
sb.Append(";;6300;;"); // Kostenstelle
|
||||
String buchungstext = "";
|
||||
if (row[5] != null)
|
||||
{
|
||||
buchungstext = row[5].ToString();
|
||||
buchungstext = String.Format("{0} {1:MM}/{2}", row[5], date, date.Year);
|
||||
//buchungstext = buchungstext.Replace(";", ",");
|
||||
}
|
||||
sb.Append(buchungstext);
|
||||
sb.Append(";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"); // Leerspalten
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private static String GetMonatlicheRechnungenSql(DateTime date)
|
||||
{
|
||||
@@ -148,8 +195,48 @@ namespace TwgJonathan.Export
|
||||
inner join invoicebase ib on ib.costbearer2supportconceptoid = c2s.oid
|
||||
inner join serviceinvoice si on si.invoicebaseoid = ib.oid
|
||||
inner join serviceinvoiceperiod sip on sip.serviceinvoiceoid = si.oid
|
||||
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1 AND ib.`IsExported` = 0
|
||||
UNION
|
||||
SELECT DISTINCT
|
||||
(select sum(ii.AmountTotal) from invoiceitem ii where ii.invoicebaseoid = ib.oid),
|
||||
'40125' as 'Gegenkonto',
|
||||
ib.invoicenumber,
|
||||
ib.InvoiceDate,
|
||||
'113999',
|
||||
'6300',
|
||||
ib.Oid,
|
||||
ib.InvoiceId,
|
||||
'Allgemeine Rechnung'
|
||||
from invoicebase ib
|
||||
inner join organisation org on org.costbeareroid = ib.RecipientOrganisationOid
|
||||
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1
|
||||
order by ib.invoicenumber
|
||||
and ib.Type = 2 AND ib.`IsExported` = 0
|
||||
-- order by ib.invoicenumber
|
||||
";
|
||||
|
||||
return sql;
|
||||
}
|
||||
|
||||
private static String GetMonatlicheMietenSql(DateTime date)
|
||||
{
|
||||
//40125 Betreuung
|
||||
//40126 Mietkostenerstattung
|
||||
|
||||
String sql = @"
|
||||
SELECT
|
||||
Round(IFNULL(scap.ApprovedFixedAmount, 0), 2) as 'Miete',
|
||||
'40126' AS 'Gegenkonto',
|
||||
'123456' AS InvoiceNumber,
|
||||
cust.CostCenter,
|
||||
cust.DebitorNumber,
|
||||
CONCAT(p.LastName, ', ', p.FirstName, ', Miete ') AS KlientName
|
||||
FROM `person` p join `customer` cust on p.Oid = cust.PersonOid join `supportconcept` sc on cust.Oid = sc.CustomerOid
|
||||
join `costbearer2supportconcept` cb2sc on sc.Oid = cb2sc.SupportConceptOid join `costbearer` cb on cb2sc.`CostBearerOid` = cb.`Oid`
|
||||
join `supportconceptapprovalperiod` scap on cb2sc.`Oid` = scap.`CostBearer2SupportConceptOid`
|
||||
join `organisation` o on cb.`Oid` = o.`CostBearerOid`
|
||||
WHERE cust.IsActive = 1 AND sc.IsActive = 1 AND (scap.ServicecategoryOid) = 6
|
||||
AND scap.Start < ':Monat_End' && scap.EndDate > ':Monat_Start'
|
||||
Order by KlientName
|
||||
";
|
||||
|
||||
return sql;
|
||||
|
||||
Reference in New Issue
Block a user