#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

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

use Opals::Equipment qw(
 
    eq_record_findByRId

);

use Opals::Eq_Circulation qw(
    
    circ_infoRecord
);

use Opals::Constant;

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/ajax/getRecInfoBySfCode.tmpl',
        reqPermission   => 'eq_record_edit',
    }
);

    my $sfVal   = $input->{'sfVal'} || "";
    my $sfCode  = $input->{'sfCode'};
    my $type    = $input->{'type'};
    my $recInfo = eq_record_findBySfCode($dbh, {sfCode=>$sfCode,sfVal=>$sfVal,type=>$type});

    $template->param (
        recInfo     => to_json($recInfo)
    );
tmpl_write($dbh, $cgi, $cookieList, $template);


sub eq_record_findBySfCode {

    my ($dbh,$params) = @_;

    my $sqlRecord = "select r.rid,r.rname from eq_records r inner join eq_recordFields rf using(rid) where fId=".$params->{'sfCode'};
       $sqlRecord .= ($params->{'sfVal'} eq "")?" && (fValue='' || fValue is NULL) ":" && BINARY fValue = '" . $params->{'sfVal'} . "'";

    my $sqlItem = "select r.rname, i.* from eq_records r inner join eq_items i using(rid) ";
    if ($params->{'sfCode'} eq "itemType") {
        $sqlItem .= " where  i.barcode not regexp '^___' && i.typeId = '" . $params->{'sfVal'} . "'";
    }
    else{
        $sqlItem .= " inner join eq_itemFields itf using(rid,iid) where i.barcode not regexp '^___' && itf.sfId=".$params->{'sfCode'};
        $sqlItem .= ($params->{'sfVal'} eq "")?" && (sfValue='' || sfValue is NULL) ":" && BINARY sfValue = '" . $params->{'sfVal'} . "'";
    }

    my $sql= "";

    if ($params->{'type'} eq "record"){
        $sql = $sqlRecord;
    }
    else{
        $sql = $sqlItem;
    }
    my $sth = $dbh->prepare($sql);
    $sth->execute();
    my @ret = ();
    my $hTmp;
    while( my $rec = $sth->fetchrow_hashref()){
       	push @ret, {
           rid     => $rec->{'rid'},
           rname   => $rec->{'rname'}
    	};
    }
    $sth->finish;
    return \@ret;

    
}
