OpenXE/www/pages/etiketten.php
2024-12-06 11:33:53 +01:00

222 lines
7.5 KiB
PHP

<?php
/*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
*
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
*
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version.
*
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/
?>
<?php
include '_gen/etiketten.php';
class Etiketten extends GenEtiketten {
/**
* @var Application $app
*/
var $app;
function __construct($app, $intern = false) {
//parent::GenEtiketten($app);
$this->app=$app;
if($intern) {
return;
}
$this->app->ActionHandlerInit($this);
$this->app->ActionHandler("create","EtikettenCreate");
$this->app->ActionHandler("edit","EtikettenEdit");
$this->app->ActionHandler("list","EtikettenList");
$this->app->ActionHandler("bild","EtikettenBild");
$this->app->ActionHandler("delete","EtikettenDelete");
$this->app->ActionHandlerListen($app);
}
function EtikettenCreate()
{
$this->EtikettenMenu();
parent::EtikettenCreate();
}
function EtikettenDelete()
{
$id = $this->app->Secure->GetGET("id");
if(is_numeric($id))
{
$this->app->DB->Delete("DELETE FROM etiketten WHERE id='$id'");
}
$this->EtikettenList();
}
function EtikettenList()
{
$this->EtikettenMenu();
parent::EtikettenList();
}
function EtikettenMenu()
{
$id = $this->app->Secure->GetGET('id');
$action = $this->app->Secure->GetGET('action');
$this->app->erp->MenuEintrag("index.php?module=etiketten&action=create","Neues Etikett anlegen");
if($action ==='edit' || $action === 'bild')
{
$this->app->erp->MenuEintrag("index.php?module=etiketten&action=edit&id=$id","Details");
$this->app->erp->MenuEintrag("index.php?module=etiketten&action=bild&id=$id","Bild Generator");
}
if($action==='list')
{
$this->app->erp->MenuEintrag("index.php?module=etiketten&action=list","&Uuml;bersicht");
$this->app->erp->MenuEintrag("index.php?module=einstellungen&action=list","Zur&uuml;ck zur &Uuml;bersicht");
}
else{
$this->app->erp->MenuEintrag("index.php?module=etiketten&action=list", "Zur&uuml;ck zur &Uuml;bersicht");
}
}
function EtikettenBild()
{
$this->EtikettenMenu();
$submit = $this->app->Secure->GetPOST("submit");
$pfad = $_FILES["image"]["tmp_name"];
if($submit!="")
{
if(file_exists($pfad))
{
$result = $this->app->erp->PNG2Etikett($pfad);
if($result['result']=="1")
{
$this->app->Tpl->Set('BILD',"<textarea rows=\"10\" cols=\"80\"><image x=\"1\" y=\"1\" width=\"".$result['width']."\" height=\"".$result['height']."\">".$result['stream']."</image></textarea>");
$this->app->Tpl->Set('BILD2',"<textarea rows=\"10\" cols=\"80\"><label><image x=\"1\" y=\"1\" width=\"".$result['width']."\" height=\"".$result['height']."\">".$result['stream']."</image></label></textarea>");
}
else
$this->app->Tpl->Set('BILD',"<div class=\"error\">".$result['message']."</div>");
}
}
$this->app->Tpl->Parse('PAGE',"etiketten_bild.tpl");
}
function EtikettenEdit()
{
$this->EtikettenMenu();
parent::EtikettenEdit();
}
/**
* @param int $lieferschein
* @param int $etiketten_drucker
* @param string $etiketten_art
* @param int $etiketten_sort
*/
public function LieferscheinPositionenDrucken($lieferschein,$etiketten_drucker,$etiketten_art,$etiketten_sort=0)
{
/*
Barcode, Artikelname,
Lagerplatznummer,
Artikelstückzahl
*/
$lsRow = $this->app->DB->SelectRow(
sprintf(
'SELECT adresse, belegnr, sprache, kundennummer FROM lieferschein WHERE id=%d',
(int)$lieferschein
)
);
$adresse = $lsRow['adresse'];
$pos = $this->app->DB->SelectArr(
sprintf(
'SELECT art.*,lp.id, lp.bezeichnung, lp.nummer as lpnummer, TRIM(lp.menge)+0 AS menge, lp.artikelnummerkunde, a.belegnr as auftragnummer, a.internet, a.ihrebestellnummer
FROM lieferschein_position AS lp
INNER JOIN lieferschein AS l ON lp.lieferschein = l.id
LEFT JOIN auftrag a ON l.auftragid = a.id
LEFT JOIN artikel AS art ON lp.artikel = art.id
WHERE lp.lieferschein= %d ORDER BY %s',
(int)$lieferschein, $etiketten_sort == 1?'lp.lagertext':'lp.sort'
)
);
$lieferscheinnummer = $lsRow['belegnr'];
if(!empty($pos)){
foreach($pos as $row) {
$lagerbezeichnung = $this->app->erp->GetArtikelStandardlager($row['id']);
$tmp = $row;
$row['nummer'] = $row['lpnummer'];
unset($tmp['lpnummer']);
/*$tmp = $this->app->DB->SelectRow(
sprintf('SELECT * FROM artikel WHERE id=%d LIMIT 1', $row['artikel'])
);*/
$tmp['belegnr'] = $lieferscheinnummer;
//$tmp['']
// pro seriennummer ein artike
$checkserriennummer = $this->app->DB->SelectArr(
sprintf(
"SELECT wert
FROM beleg_chargesnmhd
WHERE doctype='lieferschein' AND doctypeid=%d AND pos=%d",
(int)$lieferschein, (int)$row['id']
)
);
if(!empty($checkserriennummer)){
foreach($checkserriennummer as $checkSeriennummerRow) {
//for ($ics = 0; $ics < (!empty($checkserriennummer)?count($checkserriennummer):0); $ics++) {
$tmp['name_de'] = $row['bezeichnung'];
$tmp['nummer'] = $row['nummer'];
unset($tmp['bezeichnung']);
$tmp['menge'] = 1;//$pos[$i]['menge'];
$tmp['lager_platz_name'] = $lagerbezeichnung;
$tmp['seriennummer'] = '';
if($checkSeriennummerRow['wert'] != ''){
$tmp['seriennummer'] = $checkSeriennummerRow['wert'];
}
$this->app->erp->EtikettenDrucker($etiketten_art, 1, 'lieferschein', $lieferschein, $tmp, '', $etiketten_drucker, '', false, $adresse, 'lieferschein_position');
}
}else{
$tmp['name_de'] = $row['bezeichnung'];
$tmp['nummer'] = $row['nummer'];
unset($tmp['bezeichnung']);
$tmp['menge'] = str_replace('.', ',', $row['menge']);
$tmp['lager_platz_name'] = $lagerbezeichnung;
$tmp['auftragnummer'] = $row['auftragnummer'];
$tmp['internet'] = $row['internet'];
$tmp['kundenbestellnummer'] = $row['ihrebestellnummer'];
$tmp['artikelnummerkunde'] = $row['artikelnummerkunde'];
$this->app->erp->EtikettenDrucker($etiketten_art, 1, 'lieferschein', $lieferschein, $tmp, '', $etiketten_drucker, '', false, $adresse, 'lieferschein_position');
}
}
}
/*
foreach($tmp as $key=>$value) {
$tmp[$key] = "CUT/Trennetikett";
}
$tmp['name_de']="CUT/Trennetikett";
$tmp['nummer']="CUT/Trennetikett";
$tmp['menge']="CUT/Trennetikett";
$tmp['belegnr']="CUT/Trennetikett";
$tmp['lager_platz_name']="CUT/Trennetikett";
$this->app->erp->EtikettenDrucker($etiketten_art,1,'lieferschein', $lieferschein,$tmp,'',$etiketten_drucker,'',false,$adresse,'lieferschein_position');
*/
}
}