/*
#########################################################################
# Scripts for Selfmadeshop 5.0
# wk.js v1.2 / 21.07.2005
#
# (c) 2001-2005 CATMEDIA e-busines solutions http://www.catmedia.de/
#
# Lizenzbedingungen
#
# ACHTUNG! Diese Scripte sind kein Open Source, keine Freeware, keine
#          Public Domain. Sie unterliegen zu 100% dem Urheberrecht 
#          und unseren Lizenbedingungen.
#
# Diese Scripte duerfen nur zusammen mit einer legalen Version
# von Selfmadeshop verwendet werden. Jede andere Form der 
# Verwendung bedarf der ausdruecklichen Zustimmung von CATMEDIA.
# Unberechtigte Nutzung, Vervielfaeltigung, Verbreitung sowie
# Veraenderung oder Entfernung der Urheberrechtshinweise sind 
# bei Strafe verboten!
#
# Funktionelle Veraenderungen oder der Einbau spezieller Funktionen 
# sind CATMEDIA durch Ueberlassung einer Kopie der angepassten
# Version zu belegen.
#
# Alle Aenderungen gehen in das Eigenntum von CATMEDIA ueber und 
# duerfen von CATMEDIA kuenftig ohne Einschraenkung verwendet werden.
#
#########################################################################
*/



/******************************************************************************/
/* Klasse cWK */
/******************************************************************************/

function cWK(){

	//Defninition der Spalten in der Klasse Warenkorb cWK
	// Datenbank WaKo
	this.db = new JSDb("WK");
	this.db.fAddCol("ID");//id - 0
	this.db.fAddCol("ArtNrBez");//Artikelnummer - 1
	this.db.fAddCol("ArtNr");//Artikelnummer - 1
	this.db.fAddCol("ArtBez");//Artikelbezeichnung - 2
	this.db.fAddCol("ArtEP");//Einzelpreis - 3
	this.db.fAddCol("ArtGP");//Gesamtpreis - 4 
	this.db.fAddCol("ArtMwSt");//MwSt - 5
	this.db.fAddCol("Anz");//Anzahl - 6
	this.db.fAddCol("ArtGew");//Gewicht - 7
	this.db.fAddCol("ArtGewEinh"); //Gewicht-Einheit - 8
	this.db.fAddCol("VersArt");//Versandart - 9
	this.db.fAddCol("VersPreis");//Versandkosten - 10
	this.db.fAddCol("ArtVersOpt"); //Versand-Option - 11
	this.db.fAddCol("ArtOpts"); // - 12
	this.db.fAddCol("ArtGM");  //GebindeMenge - 13
	this.db.fAddCol("ArtMBM"); //MindestBestellMenge - 14
	this.db.fAddCol("ArtMengArr"); // staffmenge - 15
	this.db.fAddCol("ArtPreisArr"); // staffpreis oder sondpreis- 16
	this.db.fAddCol("ArtOptArr"); // optionen - 17
	this.db.fAddCol("ArtKuTxt"); //Kundentext - 18
	this.db.fAddCol("ArtDezOK"); // - 19
	this.db.fAddCol("ArtEinh"); // -20
	this.db.fAddCol("ArtOP");//Optionszuschlag  - 21
	this.db.fAddCol("ArtPage");//Seitenlink  - 22
	this.db.fAddCol("Art");//ges Artikel  - 23

	this.db.fAddCol("VersEP");//Versand Einzelpreis  - 24
	this.db.fAddCol("PreisMengeEinheit");//Preis / Menge Einheit
	
	this.Anz=function(){
		return this.db.vLen;
	}

	this.ArtAnz=function(){
		return this.Sum('Anz','dbl');
	}

	this.art= new semArticle();

	this.position=function(art){
		this.art=art;
		var lPos=-1;

		var ind = this.db.fGetIndByColVal("ArtNrBez",this.art.artnr+this.art.wk_bez());
		if (ind != "") lPos= ind;
		return lPos;
	}

	/* Alle Artikel aus Wako entfernen */
	this.Del = function(ind){
		this.db.fDelRow(ind);
		this.db.vLen=this.db.vLen-1;
	}

	/* Artikel aus Wako entfernen */
	this.Clear = function(){
		for (var i=0;i<this.db.vRows.length;i++){
			this.Del(i);
		}
		this.db.vLen=0;
	}

	this.Sum = function(col,format){
		var t_GP = 0;
		var t_pos = 1;
		for(var i=0; i < this.db.vRows.length; i++){
			if(this.db.vRows[i]){
				if (format=='int') t_GP = t_GP + parseInt(this.db.fGetValByRowCol(i,col));
				else t_GP = t_GP + parseFloat(this.db.fGetValByRowCol(i,col));
				t_pos++;
			} 
		}
		return t_GP;
	}

	/* Artikel in Wako hinzufügen */
	this.SetMenge = function(menge,art,feature,aPos){
		//Prüfen, ob die Menge gültig ist
		
		menge = checkMenge(menge,art);
		
		if (menge){
			if (aPos || aPos==0) var tPos=aPos;
			else if (art.dbeinzeln=='true'){
				var tPos=-1;
			} else var tPos = this.position(art);

			if (art.dbeinzeln=='true' && art.dezimalOK==false ) {
				if (tPos != -1) menge=menge-1;
				tPos = -1;
			}
			if (art.flags['e'] == true && tPos != -1){
				menge=0;
			}
			
			if (tPos != -1){
				if (feature!='new') menge= menge + this.db.fGetValByRowCol(tPos,"Anz");
			}
			

			var actual_price=art.actual_price(menge);
			var actual_Vprice=art.actual_Vprice(menge);

			var newPos=0;
			// check ob Artikel schon drin

			if(tPos == -1){
				// noch nicht im Wako 
				if (menge >0) {
					if (art.dbeinzeln=='true' && art.dezimalOK==false) {
						for (imenge=0;imenge<menge;imenge++){
							this.db.fAddRow(new Array(newPos,art.artnr+art.wk_bez(),art.artnr,art.wk_bez(),(art.preismenge!=1?eval(actual_price*art.preismenge):eval(actual_price)),eval(actual_price),art.mwst,1,art.gew,art.geweinh,'',eval(actual_Vprice),(this.db.vLen+1),'','','','art.staffmenge','t_preis','','','','',art.page,art.page,art,eval(actual_Vprice),(art.preismenge!=1?' / '+art.preismenge+' '+art.einheit:'')));
						}
					}
				else this.db.fAddRow(new Array(newPos,art.artnr+art.wk_bez(),art.artnr,art.wk_bez(),(art.preismenge!=1?eval(actual_price*art.preismenge):eval(actual_price)),menge*eval(actual_price),art.mwst,menge,menge*art.gew,art.geweinh,'',menge*eval(actual_Vprice),(this.db.vLen+1),'','','','art.staffmenge','t_preis','','','','',art.page,art.page,art,eval(actual_Vprice),(art.preismenge!=1?' / '+art.preismenge+' '+art.einheit:'')));
									
				}
			}else{
				// bereits drin
				// jetzt wird  Anz und Preise aktualisiert
				this.db.fSetValByRowCol(tPos,"Anz",menge);
				this.db.fSetValByRowCol(tPos,"ArtEP",eval(actual_price*art.preismenge));
				this.db.fSetValByRowCol(tPos,"ArtGP",menge*eval(actual_price));
				this.db.fSetValByRowCol(tPos,"VersPreis",menge*eval(actual_Vprice));
				this.db.fSetValByRowCol(tPos,"VersEP",eval(actual_Vprice));
				this.db.fSetValByRowCol(tPos,"ArtGew",menge*eval(art.gew));
			}
		}
	}
	this.submitstring = function(){
		var returnstring="";
		for (var i_wk=0;i_wk<this.db.vRows.length;i_wk++){
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ID")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtNrBez")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtNr")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtBez")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtEP")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtGP")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtMwSt")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"Anz")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtGew")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtGewEinh")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"VersArt")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"VersPreis")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtVersOpt")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtOpts")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtGM")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtMBM")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtMengArr")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtPreisArr")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtOptArr")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtKuTxt")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtDezOK")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtEinh")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtOP")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"ArtPage")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"Art")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"VersEP")
			returnstring=returnstring+'|%='+this.db.fGetValByRowCol(i_wk,"PreisMengeEinheit")
			returnstring=returnstring+'|%!'
		}
		return returnstring;
	}
}

