mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
Merge branch 'erechnung'
This commit is contained in:
commit
759ba8eb47
@ -44257,6 +44257,17 @@
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
},
|
||||
{
|
||||
"Field": "rechnung_smarty_template",
|
||||
"Type": "int(11)",
|
||||
"Collation": null,
|
||||
"Null": "NO",
|
||||
"Key": "",
|
||||
"Default": "0",
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
}
|
||||
],
|
||||
"keys": [
|
||||
@ -80276,6 +80287,17 @@
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
},
|
||||
{
|
||||
"Field": "rechnung_smarty_template",
|
||||
"Type": "int(11)",
|
||||
"Collation": null,
|
||||
"Null": "NO",
|
||||
"Key": "",
|
||||
"Default": "0",
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
}
|
||||
],
|
||||
"keys": [
|
||||
@ -84154,6 +84176,17 @@
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
},
|
||||
{
|
||||
"Field": "erechnung",
|
||||
"Type": "int(1)",
|
||||
"Collation": null,
|
||||
"Null": "YES",
|
||||
"Key": "",
|
||||
"Default": "0",
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
}
|
||||
],
|
||||
"keys": [
|
||||
|
@ -68,6 +68,14 @@
|
||||
<td>
|
||||
<input type="text" name="projekt" id="projekt" value="[PROJEKT]" size="20">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
{|Smarty Template für XML-Rechnung|}:
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="rechnung_smarty_template" id="rechnung_smarty_template" value="[RECHNUNG_SMARTY_TEMPLATE]" size="20">
|
||||
</td>
|
||||
</tr>
|
||||
<tr [PREISGRUPPEHIDDEN]>
|
||||
<td>
|
||||
|
@ -150,6 +150,7 @@ class Gruppen {
|
||||
// Add checks here
|
||||
|
||||
$input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true); // Parameters: Target db?, value, from form?
|
||||
$input['rechnung_smarty_template'] = $this->app->erp->ReplaceSmartyTemplate(true,$input['rechnung_smarty_template'],true);
|
||||
|
||||
$columns = "id, ";
|
||||
$values = "$id, ";
|
||||
@ -186,7 +187,7 @@ class Gruppen {
|
||||
|
||||
// Load values again from database
|
||||
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',g.id,'\" />') AS `auswahl`";
|
||||
$result = $this->app->DB->SelectArr("SELECT SQL_CALC_FOUND_ROWS g.id, $dropnbox, g.name, g.art, g.kennziffer, g.internebemerkung, g.grundrabatt, g.rabatt1, g.rabatt2, g.rabatt3, g.rabatt4, g.rabatt5, g.sonderrabatt_skonto, g.provision, g.kundennummer, g.partnerid, g.dta_aktiv, g.dta_periode, g.dta_dateiname, g.dta_mail, g.dta_mail_betreff, g.dta_mail_text, g.dtavariablen, g.dta_variante, g.bonus1, g.bonus1_ab, g.bonus2, g.bonus2_ab, g.bonus3, g.bonus3_ab, g.bonus4, g.bonus4_ab, g.bonus5, g.bonus5_ab, g.bonus6, g.bonus6_ab, g.bonus7, g.bonus7_ab, g.bonus8, g.bonus8_ab, g.bonus9, g.bonus9_ab, g.bonus10, g.bonus10_ab, g.zahlungszieltage, g.zahlungszielskonto, g.zahlungszieltageskonto, g.portoartikel, g.portofreiab, g.erweiterteoptionen, g.zentralerechnung, g.zentralregulierung, g.gruppe, g.preisgruppe, g.verbandsgruppe, g.rechnung_name, g.rechnung_strasse, g.rechnung_ort, g.rechnung_plz, g.rechnung_abteilung, g.rechnung_land, g.rechnung_email, g.rechnung_periode, g.rechnung_anzahlpapier, g.rechnung_permail, g.webid, g.portofrei_aktiv, g.projekt, g.objektname, g.objekttyp, g.parameter, g.objektname2, g.objekttyp2, g.parameter2, g.objektname3, g.objekttyp3, g.parameter3, g.kategorie, g.aktiv, g.id FROM gruppen g"." WHERE id=$id");
|
||||
$result = $this->app->DB->SelectArr("SELECT SQL_CALC_FOUND_ROWS g.id, $dropnbox, g.name, g.art, g.kennziffer, g.internebemerkung, g.grundrabatt, g.rabatt1, g.rabatt2, g.rabatt3, g.rabatt4, g.rabatt5, g.sonderrabatt_skonto, g.provision, g.kundennummer, g.partnerid, g.dta_aktiv, g.dta_periode, g.dta_dateiname, g.dta_mail, g.dta_mail_betreff, g.dta_mail_text, g.dtavariablen, g.dta_variante, g.bonus1, g.bonus1_ab, g.bonus2, g.bonus2_ab, g.bonus3, g.bonus3_ab, g.bonus4, g.bonus4_ab, g.bonus5, g.bonus5_ab, g.bonus6, g.bonus6_ab, g.bonus7, g.bonus7_ab, g.bonus8, g.bonus8_ab, g.bonus9, g.bonus9_ab, g.bonus10, g.bonus10_ab, g.zahlungszieltage, g.zahlungszielskonto, g.zahlungszieltageskonto, g.portoartikel, g.portofreiab, g.erweiterteoptionen, g.zentralerechnung, g.zentralregulierung, g.gruppe, g.preisgruppe, g.verbandsgruppe, g.rechnung_name, g.rechnung_strasse, g.rechnung_ort, g.rechnung_plz, g.rechnung_abteilung, g.rechnung_land, g.rechnung_email, g.rechnung_periode, g.rechnung_anzahlpapier, g.rechnung_permail, g.webid, g.portofrei_aktiv, g.projekt, g.objektname, g.objekttyp, g.parameter, g.objektname2, g.objekttyp2, g.parameter2, g.objektname3, g.objekttyp3, g.parameter3, g.kategorie, g.aktiv, g.rechnung_smarty_template, g.id FROM gruppen g"." WHERE id=$id");
|
||||
|
||||
foreach ($result[0] as $key => $value) {
|
||||
$this->app->Tpl->Set(strtoupper($key), $value);
|
||||
@ -210,7 +211,8 @@ class Gruppen {
|
||||
|
||||
*/
|
||||
|
||||
$this->app->YUI->AutoComplete("kennziffer", "gruppekennziffer");
|
||||
$this->app->YUI->AutoComplete("rechnung_smarty_template","smarty_template",1);
|
||||
$this->app->Tpl->Set('RECHNUNG_SMARTY_TEMPLATE', $this->app->erp->ReplaceSmartyTemplate(false,$gruppen_from_db['rechnung_smarty_template'],false));
|
||||
|
||||
if ($gruppen_from_db['art'] != 'preisgruppe') {
|
||||
$this->app->Tpl->Set('PREISGRUPPEHIDDEN','hidden');
|
||||
@ -315,6 +317,7 @@ class Gruppen {
|
||||
$input['parameter3'] = $this->app->Secure->GetPOST('parameter3');
|
||||
$input['kategorie'] = $this->app->Secure->GetPOST('kategorie');
|
||||
$input['aktiv'] = $this->app->Secure->GetPOST('aktiv');
|
||||
$input['rechnung_smarty_template'] = $this->app->Secure->GetPOST('rechnung_smarty_template');
|
||||
|
||||
|
||||
return $input;
|
||||
|
@ -417,7 +417,7 @@ class Rechnung extends GenRechnung
|
||||
{
|
||||
if($id > 0){
|
||||
$rechnungarr = $this->app->DB->SelectRow(
|
||||
"SELECT status,zahlungsstatus FROM rechnung WHERE id='$id' LIMIT 1"
|
||||
"SELECT status,zahlungsstatus,erechnung,belegnr FROM rechnung WHERE id='$id' LIMIT 1"
|
||||
);
|
||||
}
|
||||
$status = '';
|
||||
@ -548,11 +548,20 @@ class Rechnung extends GenRechnung
|
||||
</select>
|
||||
";
|
||||
|
||||
$menu .= "
|
||||
if (!empty($rechnungarr['belegnr'])) {
|
||||
if ($rechnungarr['erechnung']) {
|
||||
$downloadicon = "<a href=\"index.php?module=rechnung&action=xml&id=%value%\"><img border=\"0\" src=\"./themes/new/images/xml.svg\" title=\"XML\"></a>";
|
||||
} else {
|
||||
$downloadicon = "<a href=\"index.php?module=rechnung&action=pdf&id=%value%\"><img border=\"0\" src=\"./themes/new/images/pdf.svg\" title=\"PDF\"></a>";
|
||||
}
|
||||
} else {
|
||||
$downloadicon = '';
|
||||
}
|
||||
|
||||
<a href=\"index.php?module=rechnung&action=pdf&id=%value%\"><img border=\"0\" src=\"./themes/new/images/pdf.svg\" title=\"PDF\"></a>
|
||||
<a href=\"index.php?module=rechnung&action=xml&id=%value%\"><img border=\"0\" src=\"./themes/new/images/xml.svg\" title=\"XML\"></a>
|
||||
<!-- <a href=\"index.php?module=rechnung&action=edit&id=%value%\" title=\"Bearbeiten\"><img border=\"0\" src=\"./themes/new/images/edit.svg\"></a>
|
||||
$menu .= $downloadicon;
|
||||
|
||||
$menu .=
|
||||
"<!-- <a href=\"index.php?module=rechnung&action=edit&id=%value%\" title=\"Bearbeiten\"><img border=\"0\" src=\"./themes/new/images/edit.svg\"></a>
|
||||
<a onclick=\"if(!confirm('Wirklich stornieren?')) return false; else window.location.href='index.php?module=rechnung&action=delete&id=%value%';\" title=\"Stornieren\">
|
||||
<img src=\"./themes/new/images/delete.svg\" border=\"0\"></a>
|
||||
<a onclick=\"if(!confirm('Wirklich kopieren?')) return false; else window.location.href='index.php?module=rechnung&action=copy&id=%value%';\" title=\"Kopieren\">
|
||||
@ -1300,6 +1309,11 @@ class Rechnung extends GenRechnung
|
||||
$positionen = $this->app->DB->SelectArr("
|
||||
SELECT * FROM rechnung_position WHERE rechnung = $id ORDER BY sort ASC
|
||||
");
|
||||
|
||||
if (empty($positionen)) {
|
||||
throw new exception("Rechnung enthält keine Positionen!");
|
||||
}
|
||||
|
||||
$steuern = Array();
|
||||
foreach ($positionen as $key => $position) {
|
||||
$this->app->erp->GetSteuerPosition('rechnung', $position['id'], $steuersatz, $steuertext, $erloes);
|
||||
@ -2563,32 +2577,81 @@ class Rechnung extends GenRechnung
|
||||
$usereditid = $this->app->User->GetID();
|
||||
}
|
||||
|
||||
if (!empty($adresse)) {
|
||||
// Check XML Smarty template
|
||||
$erechnung = false;
|
||||
|
||||
|
||||
$sql = "SELECT rechnung_smarty_template FROM adresse WHERE id = '".$adresse."'";
|
||||
$rechnung_smarty_template = $this->app->DB->Select($sql);
|
||||
|
||||
if (!empty($rechnung_smarty_template)) {
|
||||
$erechnung = true;
|
||||
} else {
|
||||
$sql = "SELECT id FROM gruppen WHERE rechnung_smarty_template <> '' and aktiv";
|
||||
$gruppen = $this->app->DB->SelectArr($sql);
|
||||
foreach ($gruppen as $gruppe) {
|
||||
if ($this->app->erp->IsAdresseInGruppe($adresse,$gruppe['id'])) {
|
||||
$erechnung = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($this->app->erp->StandardZahlungsweise($projekt)==='rechnung')
|
||||
{
|
||||
$this->app->DB->Insert("INSERT INTO rechnung (id,datum,bearbeiter,firma,belegnr,zahlungsweise,
|
||||
zahlungszieltage,
|
||||
zahlungszieltageskonto,
|
||||
zahlungszielskonto,
|
||||
lieferdatum,
|
||||
status,projekt,adresse,auftragid,ohne_briefpapier,angelegtam,usereditid,abweichendebezeichnung)
|
||||
VALUES ('',NOW(),'','".$this->app->User->GetFirma()."','$belegmax','".$this->app->erp->StandardZahlungsweise($projekt)."',
|
||||
'".$this->app->erp->ZahlungsZielTage($projekt)."',
|
||||
'".$this->app->erp->ZahlungsZielTageSkonto($projekt)."',
|
||||
'".$this->app->erp->ZahlungsZielSkonto($projekt)."',NOW(),
|
||||
'angelegt','$projekt','$adresse',0,'".$ohnebriefpapier."',NOW(),'$usereditid','$abweichendebezeichnung')");
|
||||
$zahlungszieltage = $this->app->erp->ZahlungsZielTage($projekt);
|
||||
$zahlungszieltageskonto = $this->app->erp->ZahlungsZielTageSkonto($projekt);
|
||||
$zahlungszielskonto = $this->app->erp->ZahlungsZielSkonto($projekt);
|
||||
} else {
|
||||
$this->app->DB->Insert("INSERT INTO rechnung (id,datum,bearbeiter,firma,belegnr,zahlungsweise,
|
||||
$zahlungszieltage = 0;
|
||||
$zahlungszieltageskonto = 0;
|
||||
$zahlungszielskonto = 0;
|
||||
}
|
||||
|
||||
$this->app->DB->Insert("INSERT INTO rechnung (
|
||||
id,
|
||||
datum,
|
||||
bearbeiter,
|
||||
firma,
|
||||
belegnr,
|
||||
zahlungsweise,
|
||||
zahlungszieltage,
|
||||
zahlungszieltageskonto,
|
||||
zahlungszielskonto,
|
||||
lieferdatum,
|
||||
status,projekt,adresse,auftragid,ohne_briefpapier,angelegtam,usereditid,abweichendebezeichnung)
|
||||
VALUES ('',NOW(),'','".$this->app->User->GetFirma()."','$belegmax','".$this->app->erp->StandardZahlungsweise($projekt)."',
|
||||
'0',
|
||||
'0',
|
||||
'0',NOW(),
|
||||
'angelegt','$projekt','$adresse',0,'".$ohnebriefpapier."',NOW(),'$usereditid','$abweichendebezeichnung')");
|
||||
}
|
||||
status,
|
||||
projekt,
|
||||
adresse,
|
||||
auftragid,
|
||||
ohne_briefpapier,
|
||||
angelegtam,
|
||||
usereditid,
|
||||
abweichendebezeichnung,
|
||||
erechnung
|
||||
)
|
||||
VALUES (
|
||||
'',
|
||||
NOW(),
|
||||
'',
|
||||
'".$this->app->User->GetFirma()."',
|
||||
'$belegmax',
|
||||
'".$this->app->erp->StandardZahlungsweise($projekt)."',
|
||||
'".$zahlungszieltage."',
|
||||
'".$zahlungszieltageskonto."',
|
||||
'".$zahlungszielskonto."',
|
||||
NOW(),
|
||||
'angelegt',
|
||||
'$projekt',
|
||||
'$adresse',
|
||||
0,
|
||||
'".$ohnebriefpapier."',
|
||||
NOW(),
|
||||
'$usereditid',
|
||||
'$abweichendebezeichnung',
|
||||
'$erechnung'
|
||||
)"
|
||||
);
|
||||
|
||||
$id = $this->app->DB->GetInsertID();
|
||||
$this->app->erp->CheckVertrieb($id,'rechnung');
|
||||
|
Loading…
Reference in New Issue
Block a user