- my $module = $input->param('module');
- my $oldmodule = $input->param('oldmodule');
- my $code = $input->param('code');
- my $name = $input->param('name');
- my $title = $input->param('title');
- my $content = $input->param('content');
- if (letter_exists($oldmodule, $code)) {
- $dbh->do(
- q{UPDATE letter SET module = ?, code = ?, name = ?, title = ?, content = ? WHERE module = ? AND code = ?},
- undef,
- $module, $code, $name, $title, $content,
- $oldmodule, $code
- );
- } else {
- $dbh->do(
- q{INSERT INTO letter (module,code,name,title,content) VALUES (?,?,?,?,?)},
- undef,
- $module, $code, $name, $title, $content
- );
+ my $branchcode = $input->param('branchcode');
+ my $module = $input->param('module');
+ my $oldmodule = $input->param('oldmodule');
+ my $code = $input->param('code');
+ my $name = $input->param('name');
+ my @mtt = $input->multi_param('message_transport_type');
+ my @title = $input->multi_param('title');
+ my @content = $input->multi_param('content');
+ my @lang = $input->multi_param('lang');
+ for my $mtt ( @mtt ) {
+ my $is_html = $input->param("is_html_$mtt");
+ my $title = shift @title;
+ my $content = shift @content;
+ my $lang = shift @lang;
+ my $letter = C4::Letters::getletter( $oldmodule, $code, $branchcode, $mtt, $lang );
+
+ # getletter can return the default letter even if we pass a branchcode
+ # If we got the default one and we needed the specific one, we didn't get the one we needed!
+ if ( $letter and $branchcode and $branchcode ne $letter->{branchcode} ) {
+ $letter = undef;
+ }
+ unless ( $title and $content ) {
+ # Delete this mtt if no title or content given
+ delete_confirmed( $branchcode, $oldmodule, $code, $mtt, $lang );
+ next;
+ }
+ elsif ( $letter and $letter->{message_transport_type} eq $mtt and $letter->{lang} eq $lang ) {
+ $dbh->do(
+ q{
+ UPDATE letter
+ SET branchcode = ?, module = ?, name = ?, is_html = ?, title = ?, content = ?, lang = ?
+ WHERE branchcode = ? AND module = ? AND code = ? AND message_transport_type = ? AND lang = ?
+ },
+ undef,
+ $branchcode || '', $module, $name, $is_html || 0, $title, $content, $lang,
+ $branchcode, $oldmodule, $code, $mtt, $lang
+ );
+ } else {
+ $dbh->do(
+ q{INSERT INTO letter (branchcode,module,code,name,is_html,title,content,message_transport_type, lang) VALUES (?,?,?,?,?,?,?,?,?)},
+ undef,
+ $branchcode || '', $module, $code, $name, $is_html || 0, $title, $content, $mtt, $lang
+ );
+ }