verschiedene Kunden
This commit is contained in:
87
Cramer/hook.jpl
Normal file
87
Cramer/hook.jpl
Normal file
@@ -0,0 +1,87 @@
|
||||
if ( P_doctype == "D95") // Eingangslieferschein
|
||||
{
|
||||
vars DDF3[5000] // LiefNr
|
||||
vars DDF16[5000] // Lieferant
|
||||
vars DDF33[5000] // externe BelegNr
|
||||
vars DDF50[5000] // Datum
|
||||
vars DDF60[5000] // Charge
|
||||
vars DDF61[5000] // Artikelnummer
|
||||
vars DDF62[5000] // interne BelegNr
|
||||
vars ergebnis
|
||||
vars i // Zähler
|
||||
vars anzahl // Anzahl der Treffer
|
||||
|
||||
// Führende Nullen im Barcode entfernen
|
||||
ergebnis = api_function( "string_cut_leading_char", dok_dat_feld[ 41 ], "0" )
|
||||
|
||||
if ( ergebnis >= 0 )
|
||||
{
|
||||
// Nullen wurden aus dem Barcode entfernt
|
||||
dok_dat_feld[ 41 ] = api_converted_string
|
||||
|
||||
|
||||
// Ermittlung der Eigenschaftswerte aus der Datenbank
|
||||
DBMS DECLARE TA_Session CONNECTION FOR USER 'informix' PASSWORD 'informix' DATASOURCE 'Firma1'
|
||||
|
||||
DBMS WITH CONNECTION TA_Session ALIAS DDF3, DDF16, DDF50, DDF33, DDF62, DDF60, DDF61
|
||||
DBMS WITH CONNECTION TA_Session SQL \
|
||||
SELECT wei_liefnr, kr1_nam, wei_liefdat, wei_liefsnr, wei_bestnr, wei_charge, wei_artikel \
|
||||
FROM v2_flwein \
|
||||
WHERE wei_lbarcode = :dok_dat_feld[ 41 ]
|
||||
anzahl = @dmrowcount
|
||||
DBMS WITH CONNECTION TA_Session ALIAS
|
||||
|
||||
|
||||
DBMS CLOSE CONNECTION TA_Session
|
||||
|
||||
|
||||
if ( anzahl > 0 )
|
||||
{
|
||||
// Jeder Datensatz muss vollständige Eigenschaftswerte enthalten - die DDF-Zuweisung basiert dann auf dem ersten DB-Treffer
|
||||
|
||||
// LiefNr
|
||||
dok_dat_feld[ 3 ] = DDF3[ 1 ]
|
||||
|
||||
// Lieferant
|
||||
dok_dat_feld[ 16 ] = DDF16[ 1 ]
|
||||
|
||||
// interne BelegNr
|
||||
// fällt weg wg. Umstellung auf Mehrfachindexfeld DDF62
|
||||
//dok_dat_feld[ 29 ] = DDF29[ 1 ]
|
||||
|
||||
// externe BelegNr
|
||||
dok_dat_feld[ 33 ] = DDF33[ 1 ]
|
||||
|
||||
// Datum
|
||||
if ( @length( DDF50[ 1 ] ) > 0 )
|
||||
{
|
||||
dok_dat_feld[ 50 ] = DDF50[ 1 ]( 7, 2 ) ## "." ## DDF50[ 1 ]( 5, 2 ) ## "." ## DDF50[ 1 ]( 1, 4 )
|
||||
}
|
||||
|
||||
// Charge und Artikelnummer
|
||||
// CUR_60ER_FIELD_NR = 500
|
||||
for i = 1 while i <= 500
|
||||
{
|
||||
// Artikelnummer und Charge müssen immer beide gefüllt sein; daher darf die folgende Abfrage ausschließlich auf der Charge basieren
|
||||
if ( DDF60 != "" )
|
||||
{
|
||||
dok_dat_feld_60[ i ] = DDF60[ i ]
|
||||
dok_dat_feld_61[ i ] = DDF61[ i ]
|
||||
dok_dat_feld_62[ i ] = DDF62[ i ]
|
||||
}
|
||||
else
|
||||
{
|
||||
dok_dat_feld_60[ i ] = ""
|
||||
dok_dat_feld_61[ i ] = ""
|
||||
dok_dat_feld_62[ i ] = ""
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
call api_log_error( "Es ist ein Fehler beim Entfernen der führenden Nullen aus dem Barcode aufgetreten. RC:" ## ergebnis )
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user