verschiedene Kunden

This commit is contained in:
2024-06-19 13:02:26 +02:00
parent 99a1c8ee03
commit f24aec09ce
4 changed files with 538 additions and 0 deletions

87
Cramer/hook.jpl Normal file
View 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 )
}
}