#!/usr/bin/perl

use strict;
use CGI;
use JSON;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

use Opals::Equipment qw(

    eq_defRecord_getList
    eq_defRecord_getLists
    eq_defItem_getList
    eq_defItem_getLists
    eq_def_addUpdate
    eq_def_delete
    
    eq_record_deleteByFid
    eq_item_deleteByFid
    eq_dataType_getList
);

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
my ($permission, $cookieList, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'eqmnt/record/recDefinition.tmpl',
        reqPermission   => 'eq_record_edit',
    }
);

my @rList = ($cgi->param('recDef'));
my @iList = ($cgi->param('itemDef'));
my ($defType, $fId, $d );

my $op = $input->{'op'};

if ($op eq "save") {
    my $data= $input->{'data'} ;
    my $list = from_json($data);

    my ($id,$showOnSearch,$showOnRecFull,$showOnRecBrief);
    foreach my $l (@{$list}){
        ($id,$showOnSearch,$showOnRecFull,$showOnRecBrief)=(0,0,0,0);
        $id = $l->{'id'};
        $showOnSearch = $l->{'showOnSearch'};
        $showOnRecFull = $l->{'showOnRecFull'};
        $showOnRecBrief = $l->{'showOnRecBrief'};
        _eq_def_update($dbh,{id=>$id,showOnSearch=>$showOnSearch,showOnRecBrief=>$showOnRecBrief,showOnRecFull=>$showOnRecFull});

    }
} #end op=save

my $defRecordLists      = eq_defRecord_getLists($dbh,"name");
my $defItemLists        = eq_defItem_getLists($dbh, "name");
my $dataTypeList        = eq_dataType_getList($dbh);


$template->param(
        defRecList      => $defRecordLists,
        defItmList      => $defItemLists,
        dataTypeList    => $dataTypeList,
);

tmpl_write($dbh, $cgi, $cookieList, $template);

sub _eq_def_update{
    
    my ($dbh, $params) = @_;
    return if($params->{'id'} eq '');
    my $id= $params->{'id'};
    my $sql = "update eq_def ";
    my $fields = "";
    if ($params->{'showOnSearch'} && $params->{'showOnSearch'} == 1){
        $fields .= "showOnSearch=1 ";
    }
    else{
        $fields .= "showOnSearch=0 ";
    }
    if ($params->{'showOnRecBrief'} && $params->{'showOnRecBrief'} == 1){
        $fields .= ", " if ($fields ne "");
        $fields .= "showOnRecBrief=1 ";
    }
    else{
        $fields .= ", " if ($fields ne "");
        $fields .= "showOnRecBrief=0";
    }
    if ($params->{'showOnRecFull'} && $params->{'showOnRecFull'} == 1){
        $fields .= ", " if ($fields ne "");
        $fields .= "showOnRecFull=1 " ;
    }
    else {
        $fields .= ", " if ($fields ne "");
         $fields .= "showOnRecFull=0 ";
    }
    
    if ($fields ne ""){
        $sql .= " set " . $fields . " where id=$id";
        my $sth = $dbh->prepare($sql);
        $sth->execute();
        $sth->finish;
        return $id;
    }
    return 0;
}

