<?php
	$StrEmpR_=gn("id_emp","empresas","emp_nomc='$StrEmpR'");
	if($StrCmd=="LOAD_REF_X"){
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_G'");	
		$DR_NOM="";
		$DR_DES="0";
		$DR_PRI="0";
		$Str_DES="";
		$StrSerR="";
		$StrNumR="";
		$StrComR="";
	}
	//++++++
	if($StrCmd=="LOAD_REF" && strlen($StrGT)==0){
		$IdL=0;		
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_G'");		
		$StrComR_=gn("id_comprobante","comprobantes","com_nombre='$StrComR'");
		$iSer=vbval($StrSerR);
		$iNum=vbval($StrNumR);		
		//
		if($StrComR_==-4){
			$w="ID_EMP=$StrEmpR_ AND SER_=$StrSerR_ AND NUM_=$StrNumR_ AND COM='$StrComR' ";
			$IdL=gn("ID","vcompras",$w);
			if($IdL==0){
				$LStrMsg="Numero de compra no registrada";
				$LStrFoc="jL('TxtNumR');";						
				$StrGT="S";	
			}else{
				$StrCmd="LOAD_REF_VALIDAR";
			}
		}else{
		
		if($StrComR_==-1 ){//TRANSFERENCIA
			$IdL=gn("ID","z_vis_transferencias","ID=$iNum AND ID_EMP_O=$StrEmpR_");
			if($IdL==0){
				$LStrMsg="Numero de transferencia no registrada";
				$LStrFoc="jL('TxtNumR');";						
				$StrGT="S";	
			}else{
				$Est=gs("anu","transferencias","id_trans=$IdL");
				if($Est=="S"){
					$LStrMsg="La transferencia ha sido anulada ".
					         "por lo tanto no se puede proceder";
					$LStrFoc="document.getElementById('TxtNumR').focus();";						
					$StrGT="S";						
				}else{														
					$TX=gn("count(*)","guias","anu='N' AND id_comr=-1 AND id_ref=$IdL");
					if($TX>0){
						$LStrMsg="La guia interna ya ha sido ".
								 "referencia en una guia de remision";
						$LStrFoc="document.getElementById('TxtSerR').focus();";						
						$StrGT="S";	
					}else{
						$StrCmd="LOAD_REF_VALIDAR";
					}
				}
			}
		}else{
			if($StrComR_==-2){//GUIA INTERNA
				$IdL=gn("MAX(ID)","z_vis_ginterna","INUM=$iNum AND ISER=$StrSerR_ AND ID_EMP=$StrEmpR_");
				if($IdL==0){
					$LStrMsg="Numero de guia interna NO registrada";
					$LStrFoc="jF('TxtSerR');";						
					$StrGT="S";	
				}else{
					$Est=gs("gi_anu","ginterna","id_gi=$IdL");
					if($Est=="S"){
						$LStrMsg="La guia interna ha sido anulada por lo ".
								 "tanto no se puede proceder";
						$LStrFoc="document.getElementById('TxtSerR').focus();";						
						$StrGT="S";	
					}else{
						$TX=gn("count(*)","guias","anu='N' AND id_comr=-2 AND id_ref=$IdL");
						if($TX>0){
							$LStrMsg="La guia interna ya ha sido ".
									 "referencia en una guia de remision";
							$LStrFoc="document.getElementById('TxtSerR').focus();";						
							$StrGT="S";	
						}else{
							$StrCmd="LOAD_REF_VALIDAR";
						}
					}
				}				
			}else{
				if($StrComR_==-3){//PROFORMA
					$IdL=gn("ID","z_vis_cotizaciones","ISER=$iSer AND INUM=$iNum AND ID_EMP=$StrEmpR_");				
					if($IdL==0){
						$LStrMsg="Numero de proforma NO registrada";
						$LStrFoc="document.getElementById('TxtSerR').focus();";						
						$StrGT="S";	
					}else{
						$Est=gs("anu","cotizaciones","id_cotizacion=$IdL");
						if($Est=="S"){
							$LStrMsg="La proforma ha sido anulada por lo ".
									 "tanto no se puede proceder";
							$LStrFoc="document.getElementById('TxtSerR').focus();";						
							$StrGT="S";						
						}else{
							//VERIFICAR SI SE HA EMITIDO UNA VENTA
							if(gn("COUNT(*)","ventas",
								  "ven_id_com=-3 AND ven_id_ven=$IdL AND anu='N'")>0){
								$LStrMsg="La proforma ha sido referenciada en una venta ".
										 "por lo tanto no se puede proceder";
								$LStrFoc="document.getElementById('TxtSerR').focus();";						
								$StrGT="S";
							}else{
								$StrCmd="LOAD_REF_VALIDAR";
							}
						}				
					}
				}else{
					$IdL=gn("ID","z_vis_ventas","ID_COM=$StrComR_ AND ISER=$iSer AND INUM=$iNum AND ID_EMP=$StrEmpR_");
					if($IdL==0){
						$LStrMsg="Venta segun documento/serie/numero NO registrada  ";
						$LStrFoc="document.getElementById('TxtSerR').focus();";						
						$StrGT="S";	
					}else{
						$Est=gs("anu","ventas","id_venta=$IdL");
						if($Est=="S"){
							$LStrMsg="La venta ha sido anulada por ".
									 "lo tanto no se puede proceder";
							$LStrFoc="document.getElementById('TxtSerR').focus();";						
							$StrGT="S";						
						}else{					
							$StrCmd="LOAD_REF_VALIDAR";
						}				
					}
				}
			}
		}
		}
		
	}
	//
	if($StrCmd=="LOAD_REF_VALIDAR" && strlen($StrGT)==0){
		//@@
		//if(gn("count(*)","guias","id_comr=$StrComR_ AND anu='N' i_numr=$iNum AND $i_serr=$iSer")>0){
		if(gn("count(*)","guias",
			"id_comr=$StrComR_ AND anu='N' AND i_numr=$iNum AND i_serr=$iSer AND id_emp_r=$StrEmpR_")>0){
			$LStrMsg="La documento de referencia ya ha sido atendido ";
			$LStrMsg=$LStrMsg."por lo tanto no se puede proceder";
			$LStrFoc="document.getElementById('TxtNumR').focus();";						
			$StrGT="S";			
		}else{
			$StrCmd="LOAD_REF_OK";
		}
	}
	//
	if($StrCmd=="LOAD_REF_OK" && strlen($StrGT)==0){
		if($StrComR_==6){
			$LStrMsg="No se puede crear la referencia, ".
					 "debido a que provocaria un efecto circular";
			$LStrFoc="document.getElementById('TxtSerR').focus();";						
			$StrGT="S";	
			$DR_NOM="";
			$DR_PRI="0";
			$DR_DES="0";					
		}
		if($StrComR_==-3 && strlen($StrGT)==0){
			$DR_NOM="PROFORMA";
			$DR_PRI=vbval(gs("cot_pri","cotizaciones","id_cotizacion=$IdL"));
			$DR_DES="1";//vbval(gs("cot_des","cotizaciones","id_cotizacion=$IdL"));
		}
		if($StrComR_==-1 && strlen($StrGT)==0){
			$DR_NOM="TRANSFERENCIA";
			$DR_PRI="0";
			$DR_DES="1";
		}
		if($StrComR_==-2 && strlen($StrGT)==0){
			$DR_NOM="GUIA INTERNA";
			$DR_PRI="0";
			$DR_DES="1";
		}
		if($StrComR_==-4 && strlen($StrGT)==0){
			$DR_NOM="CONTENEDOR";
			$DR_PRI="0";
			$DR_DES="1";
		}
		if($StrComR_>=0 && strlen($StrGT)==0){
			$_DR_ID=gn("ven_id_com","ventas","id_venta=$IdL");			
			$DR_NOM=gs("COM","vventas","ID=$IdL");
			$DR_PRI=gn("ven_prin","ventas","id_venta=$IdL");
			$DR_DES=gn("ven_desc","ventas","id_venta=$IdL");
			if(gn("ven_id_ven","ventas","id_venta=$IdL")>0){
				$DR_DES="1";
			}
		}
	}
	//
	if($StrCmd=="LOAD_REF_OK" && strlen($StrGT)==0){
		if($StrComR_==-4){
			$s="SELECT id_producto,ca,cx,can_uni FROM compras_det 
				WHERE id_compra=$IdL ORDER BY cx";
			$DOC_DESC="CONTENEDOR";
			$Str_DES=0;			
		}else{
			if($StrComR_==-1){
				$s="SELECT id_producto,cant_control,cx,can_uni 
					FROM transferencias_det 
					WHERE id_trans=$IdL ORDER BY cx";
				$DOC_DESC="TRANSFERENCIA";
				$Str_DES=0;
			}else{
				if($StrComR_==-2){
					$_ID_CLI=gn("id_cliente","cotizaciones","id_cotizacion=".gn("gi_id_cotizacion","ginterna","id_gi=$IdL"));
					$s="SELECT id_producto,ca,cx,can_uni FROM ginterna_det 
						WHERE id_gi=$IdL ORDER BY cx";
					$DOC_DESC="GUIA INTERNA";
					$Str_DES=0;					
				}else{
					if($StrComR_==-3){
						$s="SELECT id_producto,ca,cx,can_uni FROM cotizaciones_det 
							WHERE id_cotizacion=$IdL ORDER BY cx";
						$_ID_CLI=gn("id_cliente","cotizaciones","id_cotizacion=$IdL");
						if(gn("cot_des","cotizaciones","id_cotizacion=$IdL")==1){
							$DOC_DESC="PROFORMA";
							$Str_DES=0;
						}
					}else{
						$s="SELECT id_producto,ca_control,cx,can_uni FROM ventas_det 
							WHERE id_venta=$IdL ORDER BY cx";
						$_ID_CLI=gn("id_cliente","ventas","id_venta=$IdL");						
						if(gn("ven_desc","ventas","id_venta=$IdL")==1){
							$DOC_DESC="VENTA";
							$Str_DES=0;
						}
					}
				}
				$StrDesRs=gs("cli_nombre","clientes","id_cliente=$_ID_CLI");
				$StrDesRuc=gs("cli_ruc","clientes","id_cliente=$_ID_CLI");		
				$StrDesDir=gs("cli_dir","clientes","id_cliente=$_ID_CLI");
				$StrDesDNI=gs("cli_dni","clientes","id_cliente=$_ID_CLI");	
			}
		}
		$result = grs($s);			
		while ($row = $result->fetch_row()){
			$StrPro_ID=$row[0];
			$StrPro_CA=$row[1];
			if($StrPro_CA>0){
				$StrIndex=$row[2];
				$StrUNI=$row[3];
				$StrCod=gs("pro_codigo","productos","id_producto=$StrPro_ID");
				$StrDes=gs("pro_des","productos","id_producto=$StrPro_ID");	
				$s="INSERT INTO temp_compras VALUES ('$StrHWND_G',
				$StrPro_ID,$StrPro_CA,0,0,$StrIndex,
				'$StrCod','$StrDes',$StrUNI)";
				ejt($s);
			}
		}
		$StrCod="";
		$StrDes="";
		$StrCant="";
		$LStrMsg="Los datos de la transferencia han sido cargados correctamente";					
		$LStrFoc="document.getElementById('TxtNumR').focus();";						
		$StrGT="S";
	}
	//
?>