Merge branch 'erechnung'

This commit is contained in:
OpenXE 2024-12-02 21:39:26 +01:00
commit cc0f2eaaa8
5 changed files with 965 additions and 935 deletions

View File

@ -29217,6 +29217,16 @@ function Firmendaten($field,$projekt="")
}
}
function SetXMLRechnung($id)
{
/** @var Preisanfrage $obj */
$obj = $this->app->erp->LoadModul('rechnung');
if(!empty($obj) && method_exists($obj,'SetXMLRechnung')) {
return $obj->SetXMLRechnung($id);
}
return 0;
}
function BelegFreigabe($beleg,$id)
{
if($id <= 0 || empty($beleg)) {
@ -29272,6 +29282,9 @@ function Firmendaten($field,$projekt="")
)
);
}
if ($beleg === 'rechnung') {
$this->SetXMLRechnung($id);
}
}
function CreateWiedervorlage($adresse,$bezeichnung,$beschreibung,$intagen=30,$adresse_mitarbeiter=0,$bearbeiter=0,$typ="",$typid=0)

View File

@ -151,6 +151,7 @@ class ObjGenRechnung
private $teilstorno;
private $bundesstaat;
private $kundennummer_buchhaltung;
private $erechnung;
public $app; //application object
@ -302,12 +303,13 @@ $result = $result[0];
$this->teilstorno=$result['teilstorno'];
$this->bundesstaat=$result['bundesstaat'];
$this->kundennummer_buchhaltung=$result['kundennummer_buchhaltung'];
$this->erechnung=$result['erechnung'];
}
public function Create()
{
$sql = "INSERT INTO `rechnung` (`id`,`datum`,`aborechnung`,`projekt`,`anlegeart`,`belegnr`,`auftrag`,`auftragid`,`bearbeiter`,`freitext`,`internebemerkung`,`status`,`adresse`,`name`,`abteilung`,`unterabteilung`,`strasse`,`adresszusatz`,`ansprechpartner`,`plz`,`ort`,`land`,`ustid`,`ust_befreit`,`ustbrief`,`ustbrief_eingang`,`ustbrief_eingang_am`,`email`,`telefon`,`telefax`,`betreff`,`kundennummer`,`lieferschein`,`versandart`,`lieferdatum`,`buchhaltung`,`zahlungsweise`,`zahlungsstatus`,`ist`,`soll`,`skonto_gegeben`,`zahlungszieltage`,`zahlungszieltageskonto`,`zahlungszielskonto`,`firma`,`versendet`,`versendet_am`,`versendet_per`,`versendet_durch`,`versendet_mahnwesen`,`mahnwesen`,`mahnwesen_datum`,`mahnwesen_gesperrt`,`mahnwesen_internebemerkung`,`inbearbeitung`,`datev_abgeschlossen`,`logdatei`,`doppel`,`autodruck_rz`,`autodruck_periode`,`autodruck_done`,`autodruck_anzahlverband`,`autodruck_anzahlkunde`,`autodruck_mailverband`,`autodruck_mailkunde`,`dta_datei_verband`,`dta_datei`,`deckungsbeitragcalc`,`deckungsbeitrag`,`umsatz_netto`,`erloes_netto`,`mahnwesenfestsetzen`,`vertriebid`,`aktion`,`vertrieb`,`provision`,`provision_summe`,`gruppe`,`punkte`,`bonuspunkte`,`provdatum`,`ihrebestellnummer`,`anschreiben`,`usereditid`,`useredittimestamp`,`realrabatt`,`rabatt`,`einzugsdatum`,`rabatt1`,`rabatt2`,`rabatt3`,`rabatt4`,`rabatt5`,`forderungsverlust_datum`,`forderungsverlust_betrag`,`steuersatz_normal`,`steuersatz_zwischen`,`steuersatz_ermaessigt`,`steuersatz_starkermaessigt`,`steuersatz_dienstleistung`,`waehrung`,`keinsteuersatz`,`schreibschutz`,`pdfarchiviert`,`pdfarchiviertversion`,`typ`,`ohne_briefpapier`,`lieferid`,`ansprechpartnerid`,`systemfreitext`,`projektfiliale`,`zuarchivieren`,`internebezeichnung`,`angelegtam`,`abweichendebezeichnung`,`bezahlt_am`,`sprache`,`bundesland`,`gln`,`deliverythresholdvatid`,`bearbeiterid`,`kurs`,`ohne_artikeltext`,`anzeigesteuer`,`kostenstelle`,`bodyzusatz`,`lieferbedingung`,`titel`,`skontobetrag`,`skontoberechnet`,`extsoll`,`teilstorno`,`bundesstaat`,`kundennummer_buchhaltung`)
VALUES(NULL,'{$this->datum}','{$this->aborechnung}','{$this->projekt}','{$this->anlegeart}','{$this->belegnr}','{$this->auftrag}','{$this->auftragid}','{$this->bearbeiter}','{$this->freitext}','{$this->internebemerkung}','{$this->status}','{$this->adresse}','{$this->name}','{$this->abteilung}','{$this->unterabteilung}','{$this->strasse}','{$this->adresszusatz}','{$this->ansprechpartner}','{$this->plz}','{$this->ort}','{$this->land}','{$this->ustid}','{$this->ust_befreit}','{$this->ustbrief}','{$this->ustbrief_eingang}','{$this->ustbrief_eingang_am}','{$this->email}','{$this->telefon}','{$this->telefax}','{$this->betreff}','{$this->kundennummer}','{$this->lieferschein}','{$this->versandart}','{$this->lieferdatum}','{$this->buchhaltung}','{$this->zahlungsweise}','{$this->zahlungsstatus}','{$this->ist}','{$this->soll}','{$this->skonto_gegeben}','{$this->zahlungszieltage}','{$this->zahlungszieltageskonto}','{$this->zahlungszielskonto}','{$this->firma}','{$this->versendet}','{$this->versendet_am}','{$this->versendet_per}','{$this->versendet_durch}','{$this->versendet_mahnwesen}','{$this->mahnwesen}','{$this->mahnwesen_datum}','{$this->mahnwesen_gesperrt}','{$this->mahnwesen_internebemerkung}','{$this->inbearbeitung}','{$this->datev_abgeschlossen}','{$this->logdatei}','{$this->doppel}','{$this->autodruck_rz}','{$this->autodruck_periode}','{$this->autodruck_done}','{$this->autodruck_anzahlverband}','{$this->autodruck_anzahlkunde}','{$this->autodruck_mailverband}','{$this->autodruck_mailkunde}','{$this->dta_datei_verband}','{$this->dta_datei}','{$this->deckungsbeitragcalc}','{$this->deckungsbeitrag}','{$this->umsatz_netto}','{$this->erloes_netto}','{$this->mahnwesenfestsetzen}','{$this->vertriebid}','{$this->aktion}','{$this->vertrieb}','{$this->provision}','{$this->provision_summe}','{$this->gruppe}','{$this->punkte}','{$this->bonuspunkte}','{$this->provdatum}','{$this->ihrebestellnummer}','{$this->anschreiben}','{$this->usereditid}','{$this->useredittimestamp}','{$this->realrabatt}','{$this->rabatt}','{$this->einzugsdatum}','{$this->rabatt1}','{$this->rabatt2}','{$this->rabatt3}','{$this->rabatt4}','{$this->rabatt5}','{$this->forderungsverlust_datum}','{$this->forderungsverlust_betrag}','{$this->steuersatz_normal}','{$this->steuersatz_zwischen}','{$this->steuersatz_ermaessigt}','{$this->steuersatz_starkermaessigt}','{$this->steuersatz_dienstleistung}','{$this->waehrung}','{$this->keinsteuersatz}','{$this->schreibschutz}','{$this->pdfarchiviert}','{$this->pdfarchiviertversion}','{$this->typ}','{$this->ohne_briefpapier}','{$this->lieferid}','{$this->ansprechpartnerid}','{$this->systemfreitext}','{$this->projektfiliale}','{$this->zuarchivieren}','{$this->internebezeichnung}','{$this->angelegtam}','{$this->abweichendebezeichnung}','{$this->bezahlt_am}','{$this->sprache}','{$this->bundesland}','{$this->gln}','{$this->deliverythresholdvatid}','{$this->bearbeiterid}','{$this->kurs}','{$this->ohne_artikeltext}','{$this->anzeigesteuer}','{$this->kostenstelle}','{$this->bodyzusatz}','{$this->lieferbedingung}','{$this->titel}','{$this->skontobetrag}','{$this->skontoberechnet}','{$this->extsoll}','{$this->teilstorno}','{$this->bundesstaat}','{$this->kundennummer_buchhaltung}')";
$sql = "INSERT INTO `rechnung` (`id`,`datum`,`aborechnung`,`projekt`,`anlegeart`,`belegnr`,`auftrag`,`auftragid`,`bearbeiter`,`freitext`,`internebemerkung`,`status`,`adresse`,`name`,`abteilung`,`unterabteilung`,`strasse`,`adresszusatz`,`ansprechpartner`,`plz`,`ort`,`land`,`ustid`,`ust_befreit`,`ustbrief`,`ustbrief_eingang`,`ustbrief_eingang_am`,`email`,`telefon`,`telefax`,`betreff`,`kundennummer`,`lieferschein`,`versandart`,`lieferdatum`,`buchhaltung`,`zahlungsweise`,`zahlungsstatus`,`ist`,`soll`,`skonto_gegeben`,`zahlungszieltage`,`zahlungszieltageskonto`,`zahlungszielskonto`,`firma`,`versendet`,`versendet_am`,`versendet_per`,`versendet_durch`,`versendet_mahnwesen`,`mahnwesen`,`mahnwesen_datum`,`mahnwesen_gesperrt`,`mahnwesen_internebemerkung`,`inbearbeitung`,`datev_abgeschlossen`,`logdatei`,`doppel`,`autodruck_rz`,`autodruck_periode`,`autodruck_done`,`autodruck_anzahlverband`,`autodruck_anzahlkunde`,`autodruck_mailverband`,`autodruck_mailkunde`,`dta_datei_verband`,`dta_datei`,`deckungsbeitragcalc`,`deckungsbeitrag`,`umsatz_netto`,`erloes_netto`,`mahnwesenfestsetzen`,`vertriebid`,`aktion`,`vertrieb`,`provision`,`provision_summe`,`gruppe`,`punkte`,`bonuspunkte`,`provdatum`,`ihrebestellnummer`,`anschreiben`,`usereditid`,`useredittimestamp`,`realrabatt`,`rabatt`,`einzugsdatum`,`rabatt1`,`rabatt2`,`rabatt3`,`rabatt4`,`rabatt5`,`forderungsverlust_datum`,`forderungsverlust_betrag`,`steuersatz_normal`,`steuersatz_zwischen`,`steuersatz_ermaessigt`,`steuersatz_starkermaessigt`,`steuersatz_dienstleistung`,`waehrung`,`keinsteuersatz`,`schreibschutz`,`pdfarchiviert`,`pdfarchiviertversion`,`typ`,`ohne_briefpapier`,`lieferid`,`ansprechpartnerid`,`systemfreitext`,`projektfiliale`,`zuarchivieren`,`internebezeichnung`,`angelegtam`,`abweichendebezeichnung`,`bezahlt_am`,`sprache`,`bundesland`,`gln`,`deliverythresholdvatid`,`bearbeiterid`,`kurs`,`ohne_artikeltext`,`anzeigesteuer`,`kostenstelle`,`bodyzusatz`,`lieferbedingung`,`titel`,`skontobetrag`,`skontoberechnet`,`extsoll`,`teilstorno`,`bundesstaat`,`kundennummer_buchhaltung`,`erechnung`)
VALUES(NULL,'{$this->datum}','{$this->aborechnung}','{$this->projekt}','{$this->anlegeart}','{$this->belegnr}','{$this->auftrag}','{$this->auftragid}','{$this->bearbeiter}','{$this->freitext}','{$this->internebemerkung}','{$this->status}','{$this->adresse}','{$this->name}','{$this->abteilung}','{$this->unterabteilung}','{$this->strasse}','{$this->adresszusatz}','{$this->ansprechpartner}','{$this->plz}','{$this->ort}','{$this->land}','{$this->ustid}','{$this->ust_befreit}','{$this->ustbrief}','{$this->ustbrief_eingang}','{$this->ustbrief_eingang_am}','{$this->email}','{$this->telefon}','{$this->telefax}','{$this->betreff}','{$this->kundennummer}','{$this->lieferschein}','{$this->versandart}','{$this->lieferdatum}','{$this->buchhaltung}','{$this->zahlungsweise}','{$this->zahlungsstatus}','{$this->ist}','{$this->soll}','{$this->skonto_gegeben}','{$this->zahlungszieltage}','{$this->zahlungszieltageskonto}','{$this->zahlungszielskonto}','{$this->firma}','{$this->versendet}','{$this->versendet_am}','{$this->versendet_per}','{$this->versendet_durch}','{$this->versendet_mahnwesen}','{$this->mahnwesen}','{$this->mahnwesen_datum}','{$this->mahnwesen_gesperrt}','{$this->mahnwesen_internebemerkung}','{$this->inbearbeitung}','{$this->datev_abgeschlossen}','{$this->logdatei}','{$this->doppel}','{$this->autodruck_rz}','{$this->autodruck_periode}','{$this->autodruck_done}','{$this->autodruck_anzahlverband}','{$this->autodruck_anzahlkunde}','{$this->autodruck_mailverband}','{$this->autodruck_mailkunde}','{$this->dta_datei_verband}','{$this->dta_datei}','{$this->deckungsbeitragcalc}','{$this->deckungsbeitrag}','{$this->umsatz_netto}','{$this->erloes_netto}','{$this->mahnwesenfestsetzen}','{$this->vertriebid}','{$this->aktion}','{$this->vertrieb}','{$this->provision}','{$this->provision_summe}','{$this->gruppe}','{$this->punkte}','{$this->bonuspunkte}','{$this->provdatum}','{$this->ihrebestellnummer}','{$this->anschreiben}','{$this->usereditid}','{$this->useredittimestamp}','{$this->realrabatt}','{$this->rabatt}','{$this->einzugsdatum}','{$this->rabatt1}','{$this->rabatt2}','{$this->rabatt3}','{$this->rabatt4}','{$this->rabatt5}','{$this->forderungsverlust_datum}','{$this->forderungsverlust_betrag}','{$this->steuersatz_normal}','{$this->steuersatz_zwischen}','{$this->steuersatz_ermaessigt}','{$this->steuersatz_starkermaessigt}','{$this->steuersatz_dienstleistung}','{$this->waehrung}','{$this->keinsteuersatz}','{$this->schreibschutz}','{$this->pdfarchiviert}','{$this->pdfarchiviertversion}','{$this->typ}','{$this->ohne_briefpapier}','{$this->lieferid}','{$this->ansprechpartnerid}','{$this->systemfreitext}','{$this->projektfiliale}','{$this->zuarchivieren}','{$this->internebezeichnung}','{$this->angelegtam}','{$this->abweichendebezeichnung}','{$this->bezahlt_am}','{$this->sprache}','{$this->bundesland}','{$this->gln}','{$this->deliverythresholdvatid}','{$this->bearbeiterid}','{$this->kurs}','{$this->ohne_artikeltext}','{$this->anzeigesteuer}','{$this->kostenstelle}','{$this->bodyzusatz}','{$this->lieferbedingung}','{$this->titel}','{$this->skontobetrag}','{$this->skontoberechnet}','{$this->extsoll}','{$this->teilstorno}','{$this->bundesstaat}','{$this->kundennummer_buchhaltung}','{$this->erechnung}')";
$this->app->DB->Insert($sql);
$this->id = $this->app->DB->GetInsertID();
@ -452,7 +454,8 @@ $result = $result[0];
`extsoll`='{$this->extsoll}',
`teilstorno`='{$this->teilstorno}',
`bundesstaat`='{$this->bundesstaat}',
`kundennummer_buchhaltung`='{$this->kundennummer_buchhaltung}'
`kundennummer_buchhaltung`='{$this->kundennummer_buchhaltung}',
`erechnung`='{$this->erechnung}'
WHERE (`id`='{$this->id}')";
$this->app->DB->Update($sql);
@ -604,6 +607,7 @@ $result = $result[0];
$this->teilstorno='';
$this->bundesstaat='';
$this->kundennummer_buchhaltung='';
$this->erechnung='';
}
public function Copy()
@ -912,5 +916,6 @@ $result = $result[0];
public function GetBundesstaat() { return $this->bundesstaat; }
public function SetKundennummer_Buchhaltung($value) { $this->kundennummer_buchhaltung=$value; }
public function GetKundennummer_Buchhaltung() { return $this->kundennummer_buchhaltung; }
public function SetErechnung($value) { $this->erechnung=$value; }
public function GetErechnung() { return $this->erechnung; }
}

View File

@ -2559,6 +2559,32 @@ class Rechnung extends GenRechnung
$this->app->Tpl->Parse('PAGE','rechnunguebersicht.tpl');
}
// Decide if XML Smarty invoice according to address
public function SetXMLRechnung($id) {
$adresse = $this->app->DB->Select("SELECT adresse FROM rechnung WHERE id = '".$id."' LIMIT 1");
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 ($erechnung) {
$this->app->DB->Update("UPDATE rechnung SET erechnung = 1 WHERE id = '".$id."' AND schreibschutz <> 1");
}
}
}
/**
* @param string|int $adresse
*
@ -2577,27 +2603,6 @@ 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')
{
$zahlungszieltage = $this->app->erp->ZahlungsZielTage($projekt);

View File

@ -112,6 +112,9 @@ class WidgetGenrechnung
$field = new HTMLCheckbox("abweichendebezeichnung","","","1","0","0");
$this->form->NewField($field);
$field = new HTMLCheckbox("erechnung","","","1","0","0");
$this->form->NewField($field);
$field = new HTMLCheckbox("mahnwesenfestsetzen","","","1","0","0");
$this->form->NewField($field);

View File

@ -99,6 +99,10 @@
<td>[ABWEICHENDEBEZEICHNUNGBESCHRIFTUNG]:</td>
<td>[ABWEICHENDEBEZEICHNUNG][MSGABWEICHENDEBEZEICHNUNG]&nbsp;</td>
</tr>
<tr>
<td>{|XML-Rechnung|}:</td>
<td>[ERECHNUNG][MSGERECHNUNG]&nbsp;</td>
</tr>
</table>
</fieldset>
</div>