// rauftrag mit rliefer migrieren // alle rauftrag mit abgeschl <> 1 $e,modul,Vid_AuftragE if $e,!FILLED, logi "keine Berechtigung. end endif $pe,modul,PBWOPosEditor if $pe,!FILLED, logi "keine Pos.Berechtigung. end endif invk %application.myDD,tableNamedCheap:,vid_auposten if $_rv,!FILLED, logi "vid_auposten tabelle fehlt end endif $t,=,$_rv $jn,=,%application.configDict.logscriptnames %application.configDict.logscriptnames,=,N log "alte loeschen... sql "delete from vid_auftrag where von_dbase = 'J' sql "delete from vid_auposten where von_dbase = 'J' sql "delete from kunden_teile $qf,=,'abgeschl <> '1' and kdnr > '1000' and lagereing = '0' and auftragnr > '0' $sql,spf,'select count(*) from rauftrag where %@,$qf $anz,singleValueSQL,$sql log 'starte Verarbeitung von ,$anz,' auftraegen $soa,soaFrom,auftragnr $q,sqlq,$qf $jn,setFetchCond,$q,rauftrag,$soa,1 $i,=,0 if $jn,eq,J $d,nextEOForHandle,1 while $d,FILLED, // Verarbeitung gosub verarbeitung $i,+,1 $m,=,$i $m,m,100 if $m,==,0 $log,spf,'%i verarbeitet von %i,$i,$anz log $log autorelease endif $d,nextEOForHandle,1 endwhile endif $log,spf,'%i verarbeitet. Fertig.,$i log $log %application.configDict.logscriptnames,=,$jn end sub verarbeitung // erwartet $d $sql,spf,'select count(*) from rliefer where auftragnr = '%i' and (liefer + nachliefer) < 0,$d.auftragnr $anzpos,singleValueSQL,$sql if $anzpos,==,0 return endif log $d.auftragnr,$anzpos,Pos. invk $e,undo invk $e,empty invk $e,create $ak,=,$e.selObj $kd,getEOPkValue,vid_kunde,$d.kdnr if $kd,!FILLED, log Kunde,$d.kdnr,falsch. return endif $ak.von_dbase,=,J $ak.kundennumm,=,$d.kdnr // Werte uebernehmen $ak.anrede,=,$kd.anrede $ak.kundennumm,=,$kd.kundennumm $ak.adressfeld,=,$kd.adressfeld $ak.radressfeld,=,$kd.radressfeld $ak.ladressfeld,=,$kd.ladressfeld $ak.land_pb,=,$kd.land_pb $ak.lang,=,$kd.lang $ak.lanrede,=,$kd.lanrede $ak.lland_pb,=,$kd.lland_pb $ak.lname,=,$kd.lname $ak.lname2,=,$kd.lname2 $ak.lort,=,$kd.lort $ak.lplz,=,$kd.lplz $ak.lstrasse,=,$kd.lstrasse $ak.lvorname,=,$kd.lvorname $ak.lzusatz,=,$kd.lzusatz $ak.mitkurz,=,$kd.mitkurz $ak.mwstkennun,=,$kd.mwstkennun $ak.name,=,$kd.name $ak.name2,=,$kd.name2 $ak.ort,=,$kd.ort $ak.plz,=,$kd.plz $ak.email,=,$kd.email $ak.rabattgrup,=,$kd.rabattgrup $ak.ranrede,=,$kd.ranrede $ak.rland_pb,=,$kd.rland_pb $ak.rname,=,$kd.rname $ak.rname2,=,$kd.rname2 $ak.rort,=,$kd.rort $ak.rplz,=,$kd.rplz $ak.rstrasse,=,$kd.rstrasse $ak.rvorname,=,$kd.rvorname $ak.rzusatz,=,$kd.rzusatz $ak.strasse,=,$kd.strasse $ak.tarifzone,=,$kd.tarifzone $ak.telefax,=,$kd.telefax $ak.telefon,=,$kd.telefon $ak.umsatzsteu,=,$kd.umsatzsteu $ak.vorname,=,$kd.vorname $ak.waehrung_pb,=,$kd.waehrung_pb $ak.zahlungszi,=,$kd.zahlungszi $ak.zusatz,=,$kd.zusatz $ak.vip,=,$kd.vip // skonto-profil ebenso versorgen // kein end, weil evt. noch waehrung umgesetzt wird // interner Beleg fuer Umlagerung an Filiale if $kd.lnummer,FILLED, $ak.intern,=,J else $ak.intern,=,N endif $ak.kurs,=,1 $ak.waehrung_pb,=,EUR $ak.ranking,=,$kd.ranking if $kd.vip,eq,J $ak.auftrag_prio,=,02 endif if $kd.werkstatt,eq,J $ak.auftrag_prio,=,02 endif $ak.nummer,=,$d.auftragnr $ak.datum,=,$d.anldat $ak.texte,=,$d.info if $d.prio,eq,9 $ak.auftrag_prio,=,09 else if $d.prio,>,0 $ak.auftrag_prio,=,02 endif endif invk $e,save if $e.notInsertingS,eq,N logi "Speichern Auftrag fehlgeschlagen return endif // Positionen $pe.callingModul,=,$e invk $pe,setMyTable:andMasterEO:,$t,$ak $qf,spf,'auftragnr = '%@' and (liefer + nachliefer) < '0',$d.auftragnr $q,sqlq,$qf $a,getEOsQ,rliefer,$q foreach rliefer,$a invk $pe,undo invk $pe,create $ap,=,$pe.selObj $ap.von_dbase,=,J // log $rliefer.idnum $ap.artikelnum,=,$rliefer.idnum $ap.artnr,=,$rliefer.bestanr $ap.einzelprei,=,$rliefer.stckpreis $ap.ekmittel,=,$rliefer.ekavg $ap.anzahl,=,($rliefer.liefer + $rliefer.nachliefer) * -1 $ap.zusatztext,a,\n,$rliefer.erlaeut $as,getEOPkValue,vid_lager,$ap.artikelnum if $as,!FILLED, logi "Artikelnummer falsch continuefor endif // das sind die schoenen Hoevelborn-Texte: $ap.bezeichnun,=,$as.artikelbez1 $ap.bezeichnun1,=,$as.artikelbez2 $ap.bezeichnun2,=,$as.artikelbez3 $ap.zusatztext,=,$as.techdaten1 $ap.zusatztext1,=,$as.techdaten2 $ap.zusatztext2,=,$as.techdaten3 // notversorgung if $ap.bezeichnun,!FILLED, $ap.bezeichnun,=,$as.suchschl endif if $ap.bezeichnun,!FILLED, $ap.bezeichnun,=,$as.bezeichnun endif if $ap.bezeichnun1,!FILLED, $ap.bezeichnun1,=,$as.bezeichnun1 endif $ap.art,=, $ap.set_vorhanden,=,$as.set_vorhanden $ap.code,=,$as.code $ap.gewicht,=,$as.gewicht if $as.gew_einh,eq,kg // ab Position wird einheitl. in Gr. gerechnet $ap.gewicht,*,1000 endif $ap.mwstkz,=,$as.mwstkz $ap.lagerfaehig,=,$as.lagerfaehig $ap.eigenfertigung,=,$as.eigenfertigung $ap.austteil,=,0 $ap.austpreis,=,0 if $as.austteil,>,0 if $as.austpreis,>,0 $ap.austteil,=,$as.austteil $ap.austpreis,=,$as.austpreis endif endif $ap.einzelprei,=,$rliefer.stckpreis + $ap.austpreis // auch ausl. Kunden muessen in Euro bezahlen $ap.fremdeinze,=,$ap.einzelprei $pos,=,$ap $kopf,=,$pe.masterEO $ap.rabatt,=,$rliefer.rabatt import _determineMwstsatz $ap.teilanzahl,=,$ap.anzahl $p_eo,=,$ap import _pos_durchrechnen invk $pe,save endfor endsub