#!/usr/bin/perl use strict; use warnings; use DBI; use CGI; use CGI::Carp qw/fatalsToBrowser warningsToBrowser/; use Data::Dumper; my $cgi = new CGI; my $suchen=$cgi->param("suchen") || ""; my $eintragen=$cgi->param("eintragen") || ""; my $eintr=$cgi->param("eintr") || ""; my $identnr=$cgi->param("identnr") || ""; my $head_de=$cgi->param("head_de") || ""; my $deutsch=$cgi->param("deutsch") || ""; my $head_en=$cgi->param("head_en") || ""; my $englisch=$cgi->param("englisch") || ""; my $head_fr=$cgi->param("head_fr") || ""; my $franz=$cgi->param("franz") || ""; my $check1=$cgi->param("check1") || ""; my $check2=$cgi->param("check2") || ""; my $check3=$cgi->param("check3") || ""; my $check4=$cgi->param("check4") || ""; my $ersteller=$cgi->param("ersteller") || ""; my $werk=$cgi->param("werk") || ""; my $doctyp=$cgi->param("doctyp") || ""; my $docname=$cgi->param("docname") || ""; if($doctyp eq 'EI') { my $db="DBI:mysql:produkte"; my $user="lidos"; my $pass="lidos"; my $dbh = DBI->connect($db,$user,$pass) or die $DBI::errstr; my $statement_select="SELECT docname FROM tbl0011990 where docname like ?"; my $sth_select=$dbh->prepare($statement_select) or die $DBI::errstr; my $poss_docname=$identnr; $sth_select->execute($poss_docname) or die $DBI::errstr; my $i=1; my ($treffer)=$sth_select->fetchrow_array(); while ($treffer) { $poss_docname = $identnr.'_'.$i; $i++; $sth_select->execute($poss_docname) or die $DBI::errstr; ($treffer)=$sth_select->fetchrow_array(); } $docname =$poss_docname; $sth_select->finish(); $dbh->disconnect(); } my ($day, $mon, $year)= (localtime(time))[3..5]; my $date= sprintf ("%04d-%02d-%02d",$year+1900,$mon+1,$day); main(); sub main { my $cgi = CGI->new(); print $cgi->header(-type => 'text/html'); if ($suchen) { if($identnr =~m/^\\FEHLER\\'; } } elsif ($eintragen) { such_eintr(); } elsif ($eintr) { if ($identnr =~m/^\\FEHLER\\'; } } } sub ausgabe { print "\Neueintrag\\ \Ident-Nummer: $identnr\Doctype: $doctyp\Docname: $docname\HL auf Deutsch: $head_de\Ihr Text auf Deutsch: $deutsch\HL auf Englisch: $head_en\Ihr Text auf Englisch: $englisch\HL auf Französisch: $head_fr\Ihr Text auf Französisch: $franz\$check1, $check2, $check3, $check4 \$ersteller $werk am $date\Weitere Bestellhinweise

'; } sub tab_einf { my $db="DBI:mysql:produkte"; my $user="lidos"; my $pass="lidos"; my $dbh = DBI->connect($db,$user,$pass) or die $DBI::errstr; my $statement_insert="INSERT INTO tbl0011990 VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)"; my $sth_insert=$dbh->prepare($statement_insert) or die $DBI::errstr; if ($head_de) { $sth_insert->execute($identnr,'DE',$doctyp,$docname,$head_de,$deutsch,$date,$ersteller,$werk,$check1,$check2,$check3,$check4) or die $DBI::errstr; } if ($head_en) { $sth_insert->execute($identnr,'EN',$doctyp,$docname,$head_en,$englisch,$date,$ersteller,$werk,$check1,$check2,$check3,$check4) or die $DBI::errstr; } if ($head_fr) { $sth_insert->execute($identnr,'FR',$doctyp,$docname,$head_fr,$franz,$date,$ersteller,$werk,$check1,$check2,$check3,$check4) or die $DBI::errstr; } ausgabe(); $sth_insert->finish(); $dbh->disconnect(); } sub suchen { my $db="DBI:mysql:produkte"; my $user="lidos"; my $pass="lidos"; my $dbh = DBI->connect($db,$user,$pass) or die $DBI::errstr; my $statement_suchen="SELECT * FROM tbl0011990 where ident_nr = '$identnr'"; my $sth_suchen=$dbh->prepare($statement_suchen) or die $DBI::errstr; $sth_suchen->execute; my %hash; my $daten_ref; while (my @row = $sth_suchen->fetchrow_array()) { $hash{identnr} = $row[0]; $hash{doctyp} = $row[2]; $hash{docname} = $row[3]; $hash{head_de} = $row[4] if ($row[1] eq 'DE'); $hash{head_en} = $row[4] if ($row[1] eq 'EN'); $hash{head_fr} = $row[4] if ($row[1] eq 'FR'); $hash{deutsch} = $row[5] if ($row[1] eq 'DE'); $hash{englisch} = $row[5] if ($row[1] eq 'EN'); $hash{franz} = $row[5] if ($row[1] eq 'FR'); $hash{ersteller}= $row[7]; $hash{werk} = $row[8]; $hash{check1} = $row[9]; $hash{check2} = $row[10]; $hash{check3} = $row[11]; $hash{check4} = $row[12]; $daten_ref -> { $hash{$identnr} } -> { $hash{$docname} } = {%hash}; } foreach my $identnr ( keys %$daten_ref ) { doc_vorhanden ($identnr, $daten_ref, keys %{ $daten_ref -> {$identnr} }); } $sth_suchen->finish(); $dbh->disconnect(); } sub such_eintr { my (%param) = @_; my $param = \%param; print "\FORMULAR"; print "\\

Dokumententyp:'.$param->{doctyp}.'
'; } elsif ($eintragen) { print '
Dokumententyp: '.$doctyp.'
'; } print '
'; print "

Ident-Nummer:"; print ''; if ($suchen) { print ''; } print "

DE:
"; print '
'; if ($doctyp eq 'EI') { print ''; } print "

EN:
"; print '
'; if ($doctyp eq 'EI') { print ''; } print "

FR:
"; print '
'; if ($doctyp eq 'EI') { print ''; } print '

Betrifft Maschinen: '; if ($param->{check1}==1) { print 'LHB'} else { print 'LHB'} if ($param->{check2}==1) { print 'LFR'} else { print 'LFR'} if ($param->{check3}==1) { print 'LWT'} else { print 'LWT'} if ($param->{check4}==1) { print 'LBH'} else { print 'LBH'} print '

Ersteller:'; print ' <<< '; print '    Werk:

'; if ($eintragen) { if ($doctyp eq 'SI') { print '

Dokumentenname: '; } print '

'; } elsif ($suchen) { print '

Dokumentenname: '; } print ''; print ''; print "

"; } sub id_vorhanden { print <\Meldung\\ ENDL } sub doc_vorhanden { my ($identnr, $daten_ref, @docnames) = @_; print "\FORMULAR\"; print '
Bestellhinweis
'; print '
'; print "

Ident-Nummer:"; print ''; print ''; print '

'; print ''; foreach my $docname (@docnames) { my $ptr = $daten_ref->{$docname}; my $doctyp = $ptr->{doctyp}; my $head_de = $ptr->{head_de}; print ''; print ' '; } print '
doc_typ doc_name headline
'.$doctyp.' '.$docname.' '.$head_de.'
'; print '

'; print "

"; }