﻿/*****
**	Attribution des lots
**
**
**
*****/
function draw_lot_tree(is_promoteur)
{
	var win;
	
	var arbreProjets = new Ext.tree.ColumnTree({
		title:'Lots disponibles',
		animate: true,
		enableDD: false,
		enableDrag: true, 
		enableDrop: false, 
		columns:[{
			width:200,
			dataIndex:'lot'
		},{
			header:'Etage',
			width:50,
			dataIndex:'etage'
		},{
			header:'Type',
			width:50,
			dataIndex:'type'
		},{
			header:'Prix',
			width:75,
			dataIndex:'prix'
		}],

		loader: new Ext.tree.TreeLoader({
			clearOnLoad:true,
			baseParams:{action:'get'},
			dataUrl:'admin/php/project-nodes.php',
			uiProviders:{
				'col': Ext.tree.ColumnNodeUI
			}
		}),
		autoHeight: false, 
		rootVisible: true ,
		autoScroll: true,
		containerScroll: true,
		height:300,
		tbar:[{text:''}]
		});

	// set the root node
	var root = new Ext.tree.AsyncTreeNode({
		text: 'Projets', 
		draggable: false, 
		id: 'projets'
	});

	arbreProjets.setRootNode(root);
	root.expand();
	
	function nodeDragOver(e)
	{
		if(e.target.leaf){
			e.cancel=true;
			e.dropStatus=false;
			return false;
		}
	}
	
	function beforeNodeDrop(e)
	{
		/*var lst_id="";
		for(var i=0; i<e.dropNode.length; i++) {
			e.dropNode[i] = e.tree.getLoader().createNode(e.dropNode[i].attributes);
			if(i>0) lst_id+=";";
			lst_id+=e.dropNode[i].id;
		}*/
		var lst_id="";
		for(var i=0; i<e.dropNode.length; i++) {
			if(i>0) lst_id+=";";
			lst_id+=e.dropNode[i].id;
		}
		Ext.Ajax.request({
			url:'admin/php/project-nodes.php',
			params:{
				action:'add_lot',
				lot_id:lst_id,
				commercialisateur_id: e.target.id
			},
			async: false,
			success : function(data) {
				var response=Ext.util.JSON.decode(data.responseText);
				var parent ;
				for(var i=0;i<response.inserted_nodes.length;i++){
					var node=response.inserted_nodes[i];
					if(arbreCommercialisateurs.getNodeById(node.id)!=null) continue;
					var parent_node_id='';
					var parent_node_type;
					var node_tab=node.id.split('-');
					switch (node_tab[0]){
						case 'CPROJ': parent_node_type='COMM';break;
						case 'CLOT' : parent_node_type='CPROJ';break;
						case 'VPROJ': parent_node_type='VEND';break;
						case 'VLOT' : parent_node_type='VPROJ';break;
					}
					parent_node_id=parent_node_type+'-'+node_tab[1];
					if(parent_node_type=='CPROJ'|| parent_node_type=='VPROJ'){
						parent_node_id=parent_node_id+'-'+node.projet;
					}
					var cnode=arbreCommercialisateurs.getLoader().createNode(node);
					var pnode=arbreCommercialisateurs.getNodeById(parent_node_id);
					pnode.appendChild(cnode);
				}
			}
		});
		e.cancel=true;
		e.dropStatus=false;
	}
	/*function nodeDrop(e)
	{
		var lst_id="";
		for(var i=0; i<e.dropNode.length; i++) {
			if(i>0) lst_id+=";";
			lst_id+=e.dropNode[i].id;
		}
		Ext.Ajax.request({
			url:'admin/php/project-nodes.php',
			params:{
				action:'add_lot',
				lot_id:lst_id,
				commercialisateur_id: e.target.id
			},
			async: false,
			success : function(data) {
				return true;
			}
		});
	}*/
	function unlink()
	{
		var nodes=arbreCommercialisateurs.selModel.selNodes;
		var lst_id="";
		for(var i=0;i<nodes.length;i++)
		{
			if(i>0) lst_id+=";";
			lst_id+=nodes[i].id;
			if(nodes[i].leaf || nodes[i].attributes.cls=="VPROJ" || nodes[i].attributes.cls=="CPROJ") 
				nodes[i].remove(true);
		}
		Ext.Ajax.request({
			url:'admin/php/project-nodes.php',
			params:{
				action:'unlink_lot',
				lot_id:lst_id
			},
			async: false,
			success : function(data) {
				return true;
			}
		});
	}
	
	var arbreCommercialisateurs = new Ext.tree.ColumnTree({
	title : 'Répartition des lots',
    animate: true, 
    enableDD:true,
	dropConfig: {appendOnly:true},
	columns:[{
			width:200,
			dataIndex:'lot'
		},{
			header:'Etage',
			width:50,
			dataIndex:'etage'
		},{
			header:'Type',
			width:50,
			dataIndex:'type'
		},{
			header:'Prix',
			width:75,
			dataIndex:'prix'
		}],
	listeners:{
		beforenodedrop: beforeNodeDrop ,
		nodedragover: nodeDragOver
		//nodedrop:nodeDrop
	},
    loader: new Ext.tree.TreeLoader({
		clearOnLoad:true,
		baseParams:{action:'get'},
		dataUrl:'admin/php/project-nodes.php',
		uiProviders:{
			'col': Ext.tree.ColumnNodeUI
		}
	}),
    rootVisible: true ,
	autoScroll: true,
	containerScroll: true,
	height:300,
	tbar: [
		{
		iconCls : "bin_icon",
		text:"Supprimer",
		handler : unlink
		},
		{
		iconCls : "refresh_icon",
		text:"Rafraîchir",
		handler : function(){
			arbreCommercialisateurs.getLoader().load(root2);
			}
		}]
});

var root2 = new Ext.tree.AsyncTreeNode({
    text: 'Mes commercialisateurs', 
    draggable: false, 
	allowDrop:false,
    id: 'commercialisateurs'
});
	arbreCommercialisateurs.setRootNode(root2);	
	root2.expand();
	var htmldoc;
	if(is_promoteur)
		htmldoc='Affectez vos lots à vos commercialisateurs et vendeurs. Vous pouvez : <ul><li>Sélectionner un ou plusieurs lots ou projets à l\'aide des touches Shift et Ctrl</li><li>Glisser déposer votre sélection sur un de vos commercialisateurs ou vendeurs</li><li>Supprimer une ou des affectations en cliquant sur <i>Supprimer</i> dans la fenêtre de droite</li></ul><br/>Les prix indiqués sont ceux de la grille du commercialisateur si la double grille est utilisée.';
	else
		htmldoc='Affectez vos lots à vos vendeurs. Vous pouvez : <ul><li>Sélectionner un ou plusieurs lots ou projets à l\'aide des touches Shift et Ctrl</li><li>Glisser déposer votre sélection sur un de vos vendeurs</li><li>Supprimer une ou des affectations en cliquant sur <i>Supprimer</i> dans la fenêtre de droite</li></ul>';
	htmldoc+='<a href="javascript:video_help(\'allotement\')" style="float:right">Plus d\'aide ici</a>';
	var panel=new Ext.Panel({
		width:800,
		style:{margin:'auto'},
		renderTo:'content',
		items:[
			{layout:'column',
			items:[{
				columnWidth:.5,
				layout:'fit',
				items:arbreProjets
			},{
				columnWidth:.5,
				layout:'fit',
				items:arbreCommercialisateurs
			}]
		},
		{
			xtype:'fieldset', items:{
				xtype: 'box',
				autoEl: { tag: 'div',
				cls:'aide',
				html: '<img src="admin/images/info_icon.png"/>'+htmldoc
				}
			}
			}]
	});
}

/*****
**	Edition du réseau
**
**
**
*****/
function drawVendForm()
{
	var ds=new Ext.data.JsonStore({
		id:'id',
		root:'vendeurs',
		totalProperty:'total',
		autoSave:true,
		idProperty:'id',
		fields:[
			{name:'id',type:'int'},
			{name:'nom',type:"string"},
			{name:'prenom',type:"string"},
			{name:'login',type:"string"},
			{name:'mdp',type:"string"},
			{name:'email',type:"string"},
			{name:'tel1',type:"string"},
			{name:'is_admin',type:"string"},
			{name:'is_vendeur',type:"string"},
			{name:'is_back',type:"string"},
			{name:'pcreadate',type:"string"}
		],
		url:'admin/php/vendeurs.php',
		writer:new Ext.data.JsonWriter({
			writeAllFields:true,
			encode:true
		})
	});
	ds.load();
	var colModel = new Ext.grid.ColumnModel([
		{id:'nom',header: "Nom", width: 130, sortable: true, locked:false, dataIndex: 'nom'},
		{id:'prenom',header: "Prénom", width: 130, sortable: true, locked:false, dataIndex: 'prenom'}
	]);

	var vendSm=new Ext.grid.RowSelectionModel({
					singleSelect: true,
					listeners: {
						rowselect: function(sm, row, rec) {
							var form=Ext.getCmp("vend-form").getForm();
							form.loadRecord(rec);
						},
						rowdeselect:function(sm, row, rec) {
							var form=Ext.getCmp("vend-form").getForm();
							form.updateRecord(rec);
						}
					}
				});
	var creation=false;
	var gridVendForm=new Ext.FormPanel({
		id:'vend-form',
		frame:true,
		labelAlign:'left',
		title:'Mes utilisateurs',
		renderTo:'content',
		width:800,
		style:{margin:'auto'},
		items: [{
			layout:'column',
			items:
			[{
			id:'vendGrid',
			columnWidth: 0.3,
			layout: 'fit',
			items: {
				xtype: 'grid',
				ds: ds,
				cm: colModel,
				sm: vendSm,
				autoExpandColumn: 'nom',
				height: 400,
				title:'Utilisateurs',
				border: true,
				listeners: {
					render: function(g) {
						vendSm.selectFirstRow();
					},
					delay: 10 // Allow rows to be rendered.
				},
				tbar: [
					{
					iconCls : "bin_icon",
					text:"Supprimer",
					handler : function(){
						Ext.MessageBox.confirm('Suppression', 'Etes vous sûr de vouloir supprimer cet utilisateur?', 
							function(btn,text){
							if(btn=='yes'){
								var rec=vendSm.getSelected();
								ds.remove(rec);
								return true;
								}
							else return false;
							});
						}
					},{
					iconCls : "add_icon",
					text:'Ajouter',
					handler:function(){
						creation=true;
						vendSm.clearSelections();
						Ext.getCmp('vendGrid').setDisabled(true);
						var form=Ext.getCmp("vend-form").getForm();
						form.reset();
						}
					}
				]
			}
		},{
			columnWidth: 0.7,
			xtype: 'fieldset',
			labelWidth: 120,
			title:'Fiche utilisateur',
			autoHeight: true,
			style: {"border": "none"},
			items:
			[
				{xtype: 'hidden', name: 'id'},
				{xtype:'fieldset',defaultType: 'textfield',title:'Informations personnelles', items:[
					{fieldLabel: 'Nom ', name: 'nom', anchor: '95%',allowBlank:false},
					{fieldLabel: 'Prénom ', name: 'prenom', anchor: '95%'},
					{fieldLabel: 'Email ', name: 'email', anchor: '95%',allowBlank:false,vtype:'email',plugins: [ new Ext.ux.FieldHelp('Adresse de destination des alertes de vente mails automatiques Evimmo') ]},
					{fieldLabel: 'Téléphone ', name: 'tel1', anchor: '95%'}
				]},
				{xtype:'fieldset',defaultType: 'textfield',title:'Informations de connexion', items:[
					{fieldLabel: 'Nom d\'utilisateur ', name: 'login', anchor: '95%',allowBlank:false,plugins: [ new Ext.ux.FieldHelp('Nom d\'utilisateur requis pour la connexion à Evimmo') ]},
					{fieldLabel: 'Mot de passe ', name: 'mdp', anchor: '95%',allowBlank:false,plugins: [ new Ext.ux.FieldHelp('Mot de passe requis pour la connexion à Evimmo') ]}
				]},		
				{xtype:'fieldset',title:'Rôles',  items:[
				{layout:'column', anchor: '95%', items:[
				//	{columnWidth:.33,layout:'form',labelWidth:20,items:[{xtype:'checkbox',width:'100%',boxLabel: 'Back-office', name: 'is_back',plugins: [ new Ext.ux.FieldHelp('Peut être responsable projet') ]}]},
					{columnWidth:.5,layout:'form',labelWidth:20,items:[{xtype:'checkbox',width:'100%',boxLabel: 'Vendeur ', name: 'is_vendeur',plugins: [ new Ext.ux.FieldHelp('Peut réaliser des ventes') ]}]},
					{columnWidth:.5,layout:'form',labelWidth:20,items:[{xtype:'checkbox',width:'100%',boxLabel: 'Administrateur ', name: 'is_admin',plugins: [ new Ext.ux.FieldHelp('Accéde à toute l\'administration') ]}]}
				]}]}
			],
			tbar:[					
				'->',{
				iconCls : "bin_icon",
				text:"Annuler",
				handler : function(){
					var form=Ext.getCmp("vend-form").getForm();
					if(creation){
						form.reset();
						vendSm.selectFirstRow();
						Ext.getCmp('vendGrid').setDisabled(false);
						creation=false;
						}
					else{
						var rec=vendSm.getSelected();
						form.loadRecord(rec);
						}
					}
				},{
				iconCls : "save_icon",
				text:'Enregistrer',
				handler:function(){
					var form=Ext.getCmp("vend-form").getForm();
					if(creation){
						if(!form.isValid())
							return false;
						var data=form.getValues();
						var rec = new ds.recordType(data);
						ds.insert(0,rec);
						vendSm.selectFirstRow();
						Ext.getCmp('vendGrid').setDisabled(false);
						creation=false;
						}
					else{
						var rec=vendSm.getSelected();
						form.updateRecord(rec);
						}
					}
				}
			]
		}]
	}
	,
	{
		xtype:'fieldset',
		items:{
			xtype: 'box',
			autoEl: { tag: 'div',
			cls:'infos',
			html: '<img src="admin/images/info_icon.png"/>Gérez ici votre équipe d\'utilisateurs . <a href="javascript:video_help(\'vendeurs\')" style="float:right">Plus d\'aide ici</a>'
			}
		}
	}]
	});	
return gridVendForm;
}

function drawCommForm()
{
	var ds=new Ext.data.JsonStore({
		id:'id',
		root:'commercialisateurs',
		totalProperty:'total',
		autoSave:true,
		idProperty:'id',
		fields:[
			{name:'id',type:'int'},
			{name:'pnom',type:"string"},
			{name:'padresse1',type:"string"},
			{name:'padresse2',type:"string"},
			{name:'pcp',type:"string"},
			{name:'pville',type:"string"},
			{name:'ptel1',type:"string"},
			{name:'purl',type:"string"},
			{name:'url',type:"string"},
			{name:'nom',type:"string"},
			{name:'prenom',type:"string"},
			{name:'email',type:"string"},
			{name:'login',type:"string"},
			{name:'mdp',type:"string"},
			{name:'pcreadate',type:"string"},
			{name:'pcom',type:"string"}
		],
		url:'admin/php/commercialisateurs.php',
		writer:new Ext.data.JsonWriter({
			writeAllFields:true,
			encode:true
		})
	});
	ds.load();
	var colModel = new Ext.grid.ColumnModel([
		{id:'pnom',header: "Nom", width: 160, sortable: true, locked:false, dataIndex: 'pnom'}
	]);

	var commSm=new Ext.grid.RowSelectionModel({
					singleSelect: true,
					listeners: {
						rowselect: function(sm, row, rec) {
							var form=Ext.getCmp("comm-form").getForm();
							form.loadRecord(rec);
						},
						rowdeselect:function(sm, row, rec) {
							var form=Ext.getCmp("comm-form").getForm();
							form.updateRecord(rec);
						}
					}
				});
	var creation=false;
	var gridCommForm=new Ext.FormPanel({
		id:'comm-form',
		frame:true,
		labelAlign:'left',
		renderTo:'content',
		title:'Forces de vente externes',
		width:800,
		style:{margin:'auto'},
		items: [{
		layout:'column',
		items:[{
			id:'commGrid',
			columnWidth: 0.3,
			layout: 'fit',
			items: {
				xtype: 'grid',
				ds: ds,
				cm: colModel,
				sm: commSm,
				autoExpandColumn: 'pnom',
				title:'Forces de vente externes',
				border: true,
				height:550,
				listeners: {
					render: function(g) {
						commSm.selectFirstRow();
					},
					delay: 10 // Allow rows to be rendered.
				},
				tbar: [
					{
					iconCls : "bin_icon",
					text:"Supprimer",
					handler : function(){
						Ext.MessageBox.confirm('Suppression', 'Etes vous sûr de vouloir supprimer ce commercialisateur ?', 
							function(btn,text){
							if(btn=='yes'){
								var rec=commSm.getSelected();
								ds.remove(rec);
								return true;
								}
							else return false;
							});
						}
					},{
					iconCls : "add_icon",
					text:'Ajouter',
					handler:function(){
						creation=true;
						commSm.clearSelections();
						Ext.getCmp('commGrid').setDisabled(true);
						var form=Ext.getCmp("comm-form").getForm();
						form.reset();
						for(var i=0;i<form.items.length-3;i++)
							form.items.items[i].setDisabled(false);
						}
					}
				]
			}
		},{
			columnWidth: 0.7,
			xtype: 'fieldset',
			labelWidth: 120,
			title:'Fiche commercialisateur',  
			defaultType: 'textfield',
			autoHeight: true,
			style: {
				"border": "none"},
			items:
			[
				{xtype:'fieldset',title:'Société', autoHeight: true, defaultType: 'textfield',items:[
					{xtype: 'hidden', name: 'id'},
					{fieldLabel: 'Nom de société ', name: 'pnom', anchor: '95%',disabled:true,allowBlank:false},
					{fieldLabel: 'Adresse ', name: 'padresse1', anchor: '95%',disabled:true},
					{fieldLabel: 'Adresse ', name: 'padresse2', anchor: '95%',disabled:true},
					{fieldLabel: 'Code postal ', name: 'pcp', anchor: '95%',disabled:true},
					{fieldLabel: 'Ville ', name: 'pville', anchor: '95%',disabled:true},
					{fieldLabel: 'Téléphone ', name: 'ptel1', anchor: '95%',disabled:true},
					{fieldLabel: 'Site Web ', name: 'purl', anchor: '95%',disabled:true},
					{fieldLabel: 'Site Evimmo3d ', name: 'url', anchor: '95%',disabled:true}
					]},
				{xtype:'fieldset',title:'Contact principal', autoHeight: true, defaultType: 'textfield',items:[
					{fieldLabel: 'Nom ', name: 'nom', anchor: '95%',disabled:true,allowBlank:false},
					{fieldLabel: 'Prénom ', name: 'prenom', anchor: '95%',disabled:true},
					{fieldLabel: 'Email ', name: 'email', anchor: '95%',disabled:true,vtype:'email',allowBlank:false,plugins: [ new Ext.ux.FieldHelp('L\'email d\'activation de ce commercialisateur sera envoyé à cette adresse') ]},
					{fieldLabel: 'Login ', name: 'login', anchor: '95%',disabled:true,allowBlank:false},
					{fieldLabel: 'Mot de passe ', name: 'mdp', anchor: '95%',disabled:true}]},
				{xtype:'fieldset',title:'Conditions', autoHeight: true, defaultType: 'textfield',items:[
					{fieldLabel: 'Commission ', name: 'pcom', anchor: '95%',plugins: [ new Ext.ux.FieldHelp('Taux de commission de ce commercialisateur en %') ]}
			]}],
			tbar:[					
				'->',{
				iconCls : "bin_icon",
				text:"Annuler",
				handler : function(){
					var form=Ext.getCmp("comm-form").getForm();
					if(creation){
						form.reset();
						for(var i=0;i<form.items.length-2;i++)
							form.items.items[i].setDisabled(true);
						commSm.selectFirstRow();
						Ext.getCmp('commGrid').setDisabled(false);
						creation=false;
						}
					else{
						var rec=commSm.getSelected();
						form.loadRecord(rec);
						}
					}
				},{
				iconCls : "save_icon",
				text:'Enregistrer',
				handler:function(){
					var form=Ext.getCmp("comm-form").getForm();
					if(creation){
						if(!form.isValid())
							return false;
						var data=form.getValues();
						var rec = new ds.recordType(data);
						ds.insert(0,rec);
						for(var i=0;i<form.items.length-2;i++)
							form.items.items[i].setDisabled(true);
						commSm.selectFirstRow();
						Ext.getCmp('commGrid').setDisabled(false);
						creation=false;
						}
					else{
						var rec=commSm.getSelected();
						form.updateRecord(rec);
						}
					}
				}
			]
		}]},
	{
		xtype:'fieldset',
		items:{
			xtype: 'box',
			autoEl: { tag: 'div',
			cls:'infos',
			html: '<img src="admin/images/info_icon.png"/>Gérez ici votre réseau de sociétés de commercialisation.<br>Faites bénéficier vos commercialisateurs d\'un espace de vente <b>EVimmo3d</b> aux couleurs de leur enseigne. <a href="javascript:video_help(\'commercialisateurs\')" style="float:right">Plus d\'aide ici</a>'
			}
		}
	}]
	});
	return gridCommForm;
}
