Conf)) { $conf = new Config(); $app->Conf = $conf; } if(empty($app->DB) || empty($app->DB->connection)) { $app->DB = new DB($app->Conf->WFdbhost, $app->Conf->WFdbname, $app->Conf->WFdbuser, $app->Conf->WFdbpass, $app, $app->Conf->WFdbport); } if(empty($app->erp)) { if(class_exists('erpAPICustom')) { $erp = new erpAPICustom($app); } else { $erp = new erpAPI($app); } $app->erp = $erp; } /* $this->app->erp->CheckTable('lagerwert'); $this->app->erp->CheckColumn("id", "int(11)", "lagerwert", "NOT NULL AUTO_INCREMENT"); $this->app->erp->CheckColumn("datum", "DATE", "lagerwert", "NOT NULL"); $this->app->erp->CheckColumn("artikel", "int(11)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("lager_platz", "int(11)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("lager", "int(11)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("menge", "DECIMAL(18,8)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("gewicht", "DECIMAL(18,8)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("preis_letzterek", "DECIMAL(18,8)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("preis_kalkulierterek", "DECIMAL(18,8)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("menge", "DECIMAL(18,8)", "lagerwert", "NOT NULL DEFAULT '0'"); $this->app->erp->CheckColumn("letzte_bewegung", "DATETIME", "lagerwert");*/ $app->DB->Select("SELECT waehrungkalk,waehrungletzt,kurskalk,kursletzt FROM lagerwert LIMIT 1"); if($app->DB->error()) { $app->erp->CheckColumn("waehrungkalk", "VARCHAR(16)", "lagerwert", "NOT NULL DEFAULT ''"); $app->erp->CheckColumn("waehrungletzt", "VARCHAR(16)", "lagerwert", "NOT NULL DEFAULT ''"); $app->erp->CheckColumn("kurskalk","DECIMAL(19,8)", "lagerwert", "NOT NULL DEFAULT '0'"); $app->erp->CheckColumn("kursletzt","DECIMAL(19,8)", "lagerwert", "NOT NULL DEFAULT '0'"); } $app->DB->Delete("DELETE FROM lagerwert WHERE datum = curdate()"); $app->DB->Insert("INSERT INTO lagerwert (datum, artikel, lager_platz, lager, menge,preis_letzterek, gewicht,volumen, letzte_bewegung,preis_kalkulierterek, inventurwert,waehrungletzt,waehrungkalk) SELECT curdate(), art.id, lpi.lager_platz, 0, lpi.menge, ifnull(ek.preis,0), lpi.menge * cast(replace(',','.',art.gewicht) as decimal(18,8)) ,lpi.menge*cast(replace(',','.',art.laenge) as decimal(18,8))*cast(replace(',','.',art.breite) as decimal(18,8))*cast(replace(',','.',art.hoehe) as decimal(18,8)) , lb.letzte_bewegung,art.berechneterek,art.inventurek,if(ifnull(ek.waehrung,'') <> '',ek.waehrung,'EUR'),if(ifnull(art.berechneterekwaehrung,'') <> '',art.berechneterekwaehrung,'EUR') FROM artikel art INNER JOIN (SELECT artikel,lager_platz, sum(menge) as menge FROM lager_platz_inhalt GROUP BY artikel,lager_platz) lpi ON art.id = lpi.artikel AND (art.geloescht = 0 OR isnull(art.geloescht)) LEFT JOIN (SELECT artikel, lager_platz, max(zeit) as letzte_bewegung FROM lager_bewegung GROUP BY artikel, lager_platz) lb ON lb.artikel = lpi.artikel AND lb.lager_platz = lpi.lager_platz LEFT JOIN (SELECT artikel, max(id) as id FROM einkaufspreise WHERE gueltig_bis = '0000-00-00' OR gueltig_bis >= curdate() AND geloescht <> 1 GROUP BY artikel) maek ON art.id = maek.artikel LEFT JOIN einkaufspreise ek ON maek.id = ek.id "); $app->DB->Insert("INSERT INTO lagerwert (datum, artikel, lager_platz, lager, menge,preis_letzterek, gewicht,volumen, letzte_bewegung,preis_kalkulierterek, inventurwert,waehrungletzt,waehrungkalk) SELECT curdate(), art.id, 0, lpi.lager, lpi.menge, ifnull(ek.preis,0),lpi.menge * cast(replace(',','.',art.gewicht) as decimal(18,8)) ,lpi.menge*cast(replace(',','.',art.laenge) as decimal(18,8))*cast(replace(',','.',art.breite) as decimal(18,8))*cast(replace(',','.',art.hoehe) as decimal(18,8)) ,lb.letzte_bewegung,art.berechneterek,art.inventurek,if(ifnull(ek.waehrung,'') <> '',ek.waehrung,'EUR'),if(ifnull(art.berechneterekwaehrung,'') <> '',art.berechneterekwaehrung,'EUR') FROM artikel art INNER JOIN ( SELECT lager_platz_inhalt.artikel,lager_platz.lager, sum(lager_platz_inhalt.menge) as menge FROM lager_platz_inhalt INNER JOIN lager_platz ON lager_platz_inhalt.lager_platz = lager_platz.id GROUP BY lager_platz_inhalt.artikel,lager_platz.lager ) lpi ON art.id = lpi.artikel AND (art.geloescht = 0 OR isnull(art.geloescht)) LEFT JOIN (SELECT lager_bewegung.artikel, lager_platz.lager, max(lager_bewegung.zeit) as letzte_bewegung FROM lager_bewegung INNER JOIN lager_platz ON lager_bewegung.lager_platz = lager_platz.id GROUP BY lager_bewegung.artikel, lager_platz.lager) lb ON lb.artikel = art.id AND lb.lager = lpi.lager LEFT JOIN (SELECT artikel, max(id) as id FROM einkaufspreise WHERE gueltig_bis = '0000-00-00' OR gueltig_bis >= curdate() AND geloescht <> 1 GROUP BY artikel) maek ON art.id = maek.artikel LEFT JOIN einkaufspreise ek ON maek.id = ek.id "); $waehrungen = $app->DB->SelectArr("SELECT DISTINCT waehrungkalk FROM lagerwert WHERE datum = curdate()"); if($waehrungen) { foreach($waehrungen as $waehrung) { if($waehrung['waehrungkalk'] != '') { $kurs = $app->erp->GetWaehrungUmrechnungskurs('EUR',$waehrung['waehrungkalk']); if($kurs > 0) { $app->DB->Update("UPDATE lagerwert SET kurskalk = '$kurs' WHERE datum = curdate() AND waehrungkalk = '".$app->DB->real_escape_string($waehrung['waehrungkalk'])."'"); } } } } $waehrungen = $app->DB->SelectArr("SELECT DISTINCT waehrungletzt FROM lagerwert WHERE datum = curdate()"); if($waehrungen) { foreach($waehrungen as $waehrung) { if($waehrung['waehrungletzt'] != '') { $kurs = $app->erp->GetWaehrungUmrechnungskurs('EUR',$waehrung['waehrungletzt']); if($kurs > 0) { $app->DB->Update("UPDATE lagerwert SET kursletzt = '$kurs' WHERE datum = curdate() AND waehrungletzt = '".$app->DB->real_escape_string($waehrung['waehrungletzt'])."'"); } } } }