#!/usr/bin/perl
#--NetShopOwner-CGI-version:5.0.2.0--

;#
;# counter.cgi
;# [PC]在庫カウンタ
;# (C) 2012 株式会社ジャストシステム
;#
;# last modified YYYY/MM/DD
;#

use strict;
use uselib;
use defnsopath_shop;
use NsoVersionPC 1.00;
use DB::NsoStockDB;

&ReadParse();
my %in    = %main::in;
my %incfn = %main::incfn;
my %inct  = %main::inct;

# インスタンス定義
my $objConfigSystem = Config::NsoSystem->newShop();
my $objConfigMaster = Config::NsoMaster->new();
# コンフィグレーションのキャッシュ
my %ConfigSystem = $objConfigSystem->cache_config();
my %ConfigMaster = $objConfigMaster->cache_config();

my $StockDB = NsoStockDB->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster});


FUNC:{
	&main();
}
exit();

;#
;# メイン処理
;#
sub main {
	my $Stock = &GetStock;
	# 在庫0 は在庫切れ画像
	# 在庫空は在庫数無制限画像
	# それ以外は在庫数に対応した画像
	if ($Stock eq "0"){
		$Stock = $ConfigSystem{Counter}{image}{Outofstock};
	}elsif($Stock eq "" or $Stock eq " "){
		$Stock = $ConfigSystem{Counter}{image}{Unlimited};
	}

	&PrintImg($Stock);
	exit();
}

;#
;# PrintImg
;#
sub PrintImg {
	my $cnt = shift @_;
	# gifヘッダ
	print "Content-type: image/gif\n\n";

	# 画像パス設定
	my $counter_img;
	my $img;
	# 数字以外（no.gif,outofstock.gif,default_stock.gif）は{shop_image_kind}{image}
	if( $cnt =~ /\D/ ){
		$counter_img = "./" . $ConfigSystem{shop_image_kind}{image};
		$img = $counter_img . "$cnt";
	# 数字の場合（1.gif等）は{shop_image_kind}{counter_image}
	}else{
		$counter_img = "./" . $ConfigSystem{shop_image_kind}{counter_image};
		$img = $counter_img . "$cnt.gif";
	}

	# 在庫数に対応する画像がない場合はデフォルト画像
	unless( -e $img ){
		my $default_img = $ConfigSystem{Counter}{image}{Default};
		$counter_img = "./" . $ConfigSystem{shop_image_kind}{image};
		$img = $counter_img . $default_img;
	}

	#// 画像オープン
	open(IMG, $img) or die;
    
	#// イメージ表示
	binmode IMG;
	binmode STDOUT;
	
	print while (<IMG>);
    
	#// 画像クローズ
	close(IMG);
}

;#
;# 商品在庫数取得
;# (検索失敗時は在庫切れとみなし0を返す)
;#
sub GetStock {
	my $self = shift;

	my $GoodsID = $in{GoodsID};

	return $StockDB->GetStockQuerySum($GoodsID);
}

















