<?php
	include("cls_conexion.php");$CNN=new ClsMySQL();include("conexion23.php");	
	include("conexion_funciones.php");
	$CM=V($_GET['C']);
	$P1=V($_GET['P1']);
	$P2=V($_GET['P2']);
	$P3=V($_GET['P3']);
	$P4=V($_GET['P4']);
	$P5=V($_GET['P5']);
	$P6=V($_GET['P6']);
	$P7=V($_GET['P7']);
	$P8=V($_GET['P8']);
	$P9=V($_GET['P9']);
	$P0=V($_GET['P0']);
	$PA=V($_GET['PA']);
	$PB=V($_GET['PB']);
	$PC=V($_GET['PC']);
	$PD=V($_GET['PD']);
	$PE=V($_GET['PE']);
	//-+++++++++++++++++
	$HW=GetHW();
	//-+++++++++++++++++
	if($CM=="CPY_VAL_AUT"){
		$USU=trim($P2);
		$PAS=trim($P3);
		$CX=gn("count(*)","usuarios","nom='$USU' AND pass='$PAS' AND hab='SI' AND mp='1'");
		if($CX==0){
			echo "|MS|Datos incorrectos|";
		}else{
			echo "|OK|OK|";
		}
		return;		
	}
	//-+++++++++++++++++
	if($CM=="PR"){
		$ID_PRINT=vbval($P1);
		ejt("UPDATE apk_print SET apk_ok=1 WHERE id_print=$ID_PRINT");
	}
	//@@//@@//@@//@@//@@//@@//@@//@@//@@
	if($CM=="GET_STOCK_JUN"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$PIE=vbval($P3);
		$PRO_KOD=gn("apk_idp","apk_proforma_det","apk_id_apk=$APK AND apk_cx=$ITE");
		if($PRO_KOD>0){
			$XXX=gn("SUM(pro_sto - pro_sep)",
				"t_productos",
				"pro_id=$PRO_KOD AND ".
				"pro_pie=$PIE");	
			echo $XXX;
		}else{
			echo "ND";
		}
		return;
	}
	if($CM=="MPIE_2021"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$KAN=vbval($P3);
		$IMP=vbval($P4);
		$USU=trim($P5);
		$PAS=trim($P6);
		$CAN=vbval($P7);
		$REQ_VAL=vbval($P8);
		//
		$APK_R=APK_VAL_EX($APK);
		if(strlen($APK_R)>0){
			echo "|MS|".$APK_R."|";return;
		}
		//
		$BIT_STOCK=0;
		$BIT_STOCK_USU=0;
		//
		if($REQ_VAL==1){
			$MP=vbval(gs("mp","usuarios","nom='$USU' AND pass='$PAS'"));
			if($MP==0){
				echo "|MS|Usuario no autorizado para modificar cantidad|";return;
			}
			$BIT_STOCK=1;
			$BIT_STOCK_USU=gn("id_usuario","usuarios","nom='$USU' AND pass='$PAS'");
		}
		//
		$s="UPDATE apk_proforma_det 
			SET apk_pie=$KAN,apk_imp=$IMP 
			WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);
		//
		if($BIT_STOCK==1){
			$s="UPDATE apk_proforma_det 
				SET bit_stock=$BIT_STOCK,
					bit_stock_usu=$BIT_STOCK_USU 
				WHERE apk_id_apk=$APK AND apk_cx=$ITE";
			ejt($s);
		}
		//
		echo "|OK|";return;
	}
	if($CM=="MCAN_2021"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$KAN=vbval($P3);
		$IMP=vbval($P4);
		$USU=trim($P5);
		$PAS=trim($P6);
		$CAN=vbval($P7);
		$REQ_VAL=vbval($P8);
		//
		$APK_R=APK_VAL_EX($APK);
		if(strlen($APK_R)>0){
			echo "|MS|".$APK_R."|";return;
		}
		//
		$BIT_STOCK=0;
		$BIT_STOCK_USU=0;
		//
		if($REQ_VAL==1){
			$MP=vbval(gs("mp","usuarios","nom='$USU' AND pass='$PAS'"));
			if($MP==0){
				echo "|MS|Usuario no autorizado para modificar cantidad|";return;
			}
			$BIT_STOCK=1;
			$BIT_STOCK_USU=gn("id_usuario","usuarios","nom='$USU' AND pass='$PAS'");
		}
		//
		$s="UPDATE apk_proforma_det 
			SET apk_can=$KAN,apk_imp=$IMP 
			WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);
		//
		if($BIT_STOCK==1){
			$s="UPDATE apk_proforma_det 
				SET bit_stock=$BIT_STOCK,
					bit_stock_usu=$BIT_STOCK_USU 
				WHERE apk_id_apk=$APK AND apk_cx=$ITE";
			ejt($s);
		}
		//
		echo "|OK|";return;
	}
	//@@//@@//@@//@@//@@//@@//@@//@@//@@
	if($CM=="PP"){
		$DAT="";
		$s="SELECT apk_id_apk,apk_id_cot,id_print 
			FROM apk_print WHERE apk_ok=0 ORDER BY id_print DESC";
		$result = grs($s);
		while ($row = $result->fetch_assoc()){
			$PP_IDP=$row['id_print'];
			$PP_APK=$row['apk_id_apk'];
			$PP_COT=$row['apk_id_cot'];
			$PP_USU=gn("apk_id_usuario","apk","id_apk=$PP_APK");
			$PP_USU=gs("nom","usuarios","id_usuario=$PP_USU");
			$PP_COT=gs("CONCAT(ser,'-',num)","cotizaciones","id_cotizacion=$PP_COT");
			$DAT=$DAT.$PP_IDP."|".$PP_USU."|".$PP_COT."@";
		}
		echo $DAT;
	}
	//-
	if($CM=="IMP"){
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$IDC=vbval($P2);
		$PRINT_ID=GenId("id_print","apk_print");
		$s="INSERT INTO apk_print VALUES ($PRINT_ID,$APK,$IDC,0,'')";
		ejt($s);
	}
	//
	if($CM=="LOD"){
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$IDC=vbval($P2);
		$L_LOC=gs("ALM","vcotizaciones","ID=$IDC");
		$L_SER=gs("ser","cotizaciones","id_cotizacion=$IDC");
		$L_NUM=gs("num","cotizaciones","id_cotizacion=$IDC");
		$L_FEC=gs("DATE_FORMAT(fec,'%d-%m-%y')","cotizaciones","id_cotizacion=$IDC");
		$CLI=gn("id_cliente","cotizaciones","id_cotizacion=$IDC");
		$L_RUC=gs("cli_ruc","clientes","id_cliente=$CLI");
		if(strlen($L_RUC)==0){
			$L_RUC=gs("cli_dni","clientes","id_cliente=$CLI");
		}
		$L_CLI=gs("cli_nombre","clientes","id_cliente=$CLI");
		$L_TOR=NF(gn("tot_real","cotizaciones","id_cotizacion=$IDC"),2);
		$L_ADE=NF(gn("acu","cotizaciones","id_cotizacion=$IDC"),2);
		$L_TIP=gs("id_tip_pag","cotizaciones","id_cotizacion=$IDC");
		$L_MOD=gs("modalidad","cotizaciones","id_cotizacion=$IDC");
		$L_MND=gs("mon","cotizaciones","id_cotizacion=$IDC");
		$L_ANU=gs("anu","cotizaciones","id_cotizacion=$IDC");
		$L_CUE=gs("cue_id_emp","cotizaciones","id_cotizacion=$IDC");
		$L_CUE=gs("emp_nomc","empresas","id_emp=$L_CUE");
		$LQ_USER_ID=gn("id_usuario","cotizaciones","id_cotizacion=$IDC");
		//
		$x="";
		$x=$x."<ser>".X($L_SER)."</ser>";
		$x=$x."<num>".X($L_NUM)."</num>";
		$x=$x."<fec>".X($L_FEC)."</fec>";
		$x=$x."<ruc>".X($L_RUC)."</ruc>";
		$x=$x."<cli>".X($L_CLI)."</cli>";
		$x=$x."<tor>".X($L_TOR)."</tor>";
		$x=$x."<ade>".X($L_ADE)."</ade>";
		$x=$x."<tip>".X($L_TIP)."</tip>";
		$x=$x."<mnd>".X($L_MND)."</mnd>";
		$x=$x."<mod>".X($L_MOD)."</mod>";
		$x=$x."<anu>".X($L_ANU)."</anu>";
		$x=$x."<loc>".X($L_LOC)."</loc>";
		$x=$x."<cue>".X($L_CUE)."</cue>";
		$x=$x."<usu>".X($LQ_USER_ID)."</usu>";
		echo "<p>".$x."</p>";
	}
	//
	if($CM=="CPY"){
		$x="";
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$IDC=vbval($P2);
		ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK");
		$cx=0;
		$s="SELECT id_producto as IDP,ca as CAN,pr as PRE,can_uni as PIE, im as IMP,
				   bit_stock,bit_stock_usu,bit_precio,bit_precio_usu 
			FROM cotizaciones_det 
			WHERE id_cotizacion=$IDC ORDER BY cx";
		$rs = grs($s);
		while ($row = $rs->fetch_assoc()){
			$cx++;
			$CPY_IDP=$row['IDP'];
			$CPY_CAN=$row['CAN'];
			$CPY_PRE=NF($row['PRE'],3);
			$CPY_PIE=$row['PIE'];
			$CPY_IMP=NF($row['IMP'],3);
			$CPY_COD=gs("pro_codigo","productos","id_producto=$CPY_IDP");
			$CPY_DES=gs("pro_des","productos","id_producto=$CPY_IDP");
			//@@
			$BIT_STOCK=$row['bit_stock'];
			$BIT_STOCK_USU=$row['bit_stock_usu'];
			$BIT_PRECIO=$row['bit_precio'];
			$BIT_PRECIO_USU=$row['bit_precio_usu'];
			//@@
			$ADD_MANUAL=0;
			$s="INSERT INTO apk_proforma_det 
			VALUES ($APK,$cx,$CPY_IDP,$CPY_PIE,$CPY_CAN,$CPY_PRE,$CPY_IMP,
			$BIT_STOCK,$BIT_STOCK_USU,$BIT_PRECIO,$BIT_PRECIO_USU,$ADD_MANUAL)";
			ejt($s);
			$x=$x."<z>";
			$x=$x."<id>".X($CPY_IDP)."</id>";
			$x=$x."<ca>".X($CPY_CAN)."</ca>";
			$x=$x."<pr>".X($CPY_PRE)."</pr>";
			$x=$x."<pi>".X($CPY_PIE)."</pi>";
			$x=$x."<im>".X($CPY_IMP)."</im>";
			$x=$x."<co>".X($CPY_COD)."</co>";
			$x=$x."<de>".X($CPY_DES)."</de>";
			$x=$x."<cx>".X($cx)."</cx>";
			$x=$x."</z>";
		}
		//
		echo "<apk>".$x."</apk>";
		//	
		return;
	}
	//
	if($CM=="KPY"){
		$x="";
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$IDC=vbval($P2);
		ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK AND apk_manual=0");
		//
		$cx=0;
		$s="SELECT apk_idp as IDP,apk_can as CAN,
				   apk_pre as PRE,apk_pie as PIE, apk_imp as IMP, apk_cx as CX
			FROM apk_proforma_det 
			WHERE apk_id_apk=$APK AND apk_manual=1 ORDER BY apk_cx";
		$rs = grs($s);
		while ($row = $rs->fetch_assoc()){
			$cx++;
			$CPY_IDP=$row['IDP'];
			$CPY_CAN=$row['CAN'];
			$CPY_PRE=NF($row['PRE'],3);
			$CPY_PIE=$row['PIE'];
			$CPY_IMP=NF($row['IMP'],3);
			$CPY_COD=gs("pro_codigo","productos","id_producto=$CPY_IDP");
			$CPY_DES=gs("pro_des","productos","id_producto=$CPY_IDP");
			//
			$x=$x."<z>";
			$x=$x."<id>".X($CPY_IDP)."</id>";
			$x=$x."<ca>".X($CPY_CAN)."</ca>";
			$x=$x."<pr>".X($CPY_PRE)."</pr>";
			$x=$x."<pi>".X($CPY_PIE)."</pi>";
			$x=$x."<im>".X($CPY_IMP)."</im>";
			$x=$x."<co>".X($CPY_COD)."</co>";
			$x=$x."<de>".X($CPY_DES)."</de>";
			$x=$x."<cx>".X($row['CX'])."</cx>";
			$x=$x."</z>";
		}
		//
		echo "<apk>".$x."</apk>";
		//	
	}
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	if($CM=="LP_EX"){
		$x="";
		$APK=vbval($P1);
		$NUM=trim($P2);
		$RUC=$P4."%";
		$CLI=$P5."%";
		$APK=vbval($P6);
		$SER=trim($P7);
		//
		$SER_=vbval($SER);
		$NUM_=vbval($NUM);
		//
		$s="SELECT ID,SER_NUM as SN,CLI,FORMAT(TOT_REAL,2)  as TR,IDU,VEN 
			FROM vcotizaciones_app WHERE ID>0 ";
		if($APK==0){
			if(strlen($P3)>0){
				$FEC=ToDate($P3);	
				$s=$s." AND FEC='$FEC' AND (RUC LIKE '$RUC' OR DNI LIKE '$RUC') AND CLI LIKE '$CLI' ";
			}else{
				$s=$s." AND (RUC LIKE '$RUC' OR DNI LIKE '$RUC') AND CLI LIKE '$CLI' ";
			}
		}else{
			$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
			if(strlen($P3)>0){
				$FEC=ToDate($P3);	
				$s=$s." AND FEC='$FEC' AND (RUC LIKE '$RUC' OR RUC LIKE '$RUC') 
						AND CLI LIKE '$CLI' AND IDU=$_USU ";
			}else{
				$s=$s." AND (RUC LIKE '$RUC' OR DNI LIKE '$RUC') AND CLI LIKE '$CLI' AND IDU=$_USU ";
			}
		}
		if($SER_>0){
			$s=$s." AND ISER=".$SER_." ";
		}
		if($NUM_>0){
			$s=$s." AND INUM=".$NUM_." ";
		}
		$s=$s." ORDER BY ID DESC LIMIT 0,50 ";
		$result = grs($s);
		while ($row = $result->fetch_assoc()){
			$LP_ID=$row['ID'];
			$LP_SN=$row['SN'];
			$LP_CL=$row['CLI'];
			$LP_TR=$row['TR'];
			$LP_US="u :".gs("nom"," usuarios","id_usuario=".$row['IDU']);
			$LP_VE="v :".$row['VEN'];
			$x=$x."<pro>";			
			$x=$x."<id>".X($LP_ID)."</id>";			
			$x=$x."<sn>".X($LP_SN)."</sn>";			
			$x=$x."<cl>".X($LP_CL)."</cl>";			
			$x=$x."<tr>".X($LP_TR)."</tr>";	
			$x=$x."<us>".X($LP_US)."</us>";			
			$x=$x."<ve>".X($LP_VE)."</ve>";			
			$x=$x."</pro>";
		}
		echo "<lista>".$x."</lista>";return;
		
	}
	if($CM=="LP_EX_24"){
		$x="";
		$APK=vbval($P1);
		$NUM=trim($P2);
		$RUC=$P4."%";
		$CLI=$P5."%";
		$APK=vbval($P6);
		$SER=trim($P7);
		//
		$SER_=vbval($SER);
		$NUM_=vbval($NUM);
		//
		$s="SELECT ID,SER_NUM as SN,CLI,FORMAT(TOT_REAL,2)  as TR,IDU,VEN ,BIT_EST 
			FROM vcotizaciones_app WHERE ID>0 ";
		if($APK==0){
			if(strlen($P3)>0){
				$FEC=ToDate($P3);	
				$s=$s." AND FEC='$FEC' AND (RUC LIKE '$RUC' OR DNI LIKE '$RUC') AND CLI LIKE '$CLI' ";
			}else{
				$s=$s." AND (RUC LIKE '$RUC' OR DNI LIKE '$RUC') AND CLI LIKE '$CLI' ";
			}
		}else{
			$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
			if(strlen($P3)>0){
				$FEC=ToDate($P3);	
				$s=$s." AND FEC='$FEC' AND (RUC LIKE '$RUC' OR RUC LIKE '$RUC') 
						AND CLI LIKE '$CLI' AND IDU=$_USU ";
			}else{
				$s=$s." AND (RUC LIKE '$RUC' OR DNI LIKE '$RUC') AND CLI LIKE '$CLI' AND IDU=$_USU ";
			}
		}
		if($SER_>0){
			$s=$s." AND ISER=".$SER_." ";
		}
		if($NUM_>0){
			$s=$s." AND INUM=".$NUM_." ";
		}
		$s=$s." ORDER BY ID DESC LIMIT 0,50 ";
		$result = grs($s);
		while ($row = $result->fetch_assoc()){
			$LP_ID=$row['ID'];
			$LP_SN=$row['SN'];
			$LP_CL=$row['CLI'];
			$LP_TR=$row['TR'];
			$LP_US="u :".gs("nom"," usuarios","id_usuario=".$row['IDU']);
			$LP_VE="v :".$row['VEN'];
			$x=$x."<pro>";			
			$x=$x."<id>".X($LP_ID)."</id>";			
			$x=$x."<sn>".X($LP_SN)."</sn>";			
			$x=$x."<cl>".X($LP_CL)."</cl>";			
			$x=$x."<tr>".X($LP_TR)."</tr>";	
			$x=$x."<us>".X($LP_US)."</us>";			
			$x=$x."<ve>".X($LP_VE)."</ve>";	
			$x=$x."<bi>".X($row['BIT_EST'])."</bi>";			
			$x=$x."</pro>";
		}
		echo "<lista>".$x."</lista>";return;
		
	}
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	if($CM=="LP"){
		$x="";
		$APK=vbval($P1);
		$NUM="%".$P2;
		$RUC=$P4."%";
		$CLI=$P5."%";
		$APK=vbval($P6);		
		if($APK==0){
			if(strlen($P3)>0){
				$FEC=ToDate($P3);	
				$s="SELECT ID,CONCAT(SER,'-',NUM) as SN,CLI,FORMAT(TOT_REAL,2)  as TR,IDU,VEN
				FROM vcotizaciones 
				WHERE ID>0 AND CONCAT(SER,'-',NUM) LIKE '$NUM' AND 
				FEC='$FEC' AND RUC LIKE '$RUC' AND CLI LIKE '$CLI' 
				ORDER BY ID DESC LIMIT 0,50";
			}else{
				$s="SELECT ID,CONCAT(SER,'-',NUM) as SN,CLI,FORMAT(TOT_REAL,2)  as TR,IDU,VEN
				FROM vcotizaciones 
				WHERE ID>0 AND CONCAT(SER,'-',NUM) LIKE '$NUM' AND 
				RUC LIKE '$RUC' AND CLI LIKE '$CLI' 
				ORDER BY ID DESC LIMIT 0,50";
			}
		}else{
			$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
			if(strlen($P3)>0){
				$FEC=ToDate($P3);	
				$s="SELECT ID,CONCAT(SER,'-',NUM) as SN,CLI,FORMAT(TOT_REAL,2)  as TR,IDU,VEN
				FROM vcotizaciones 
				WHERE ID>0 AND CONCAT(SER,'-',NUM) LIKE '$NUM' AND 
				FEC='$FEC' AND RUC LIKE '$RUC' AND CLI LIKE '$CLI' AND IDU=$_USU
				ORDER BY ID DESC LIMIT 0,50";
			}else{
				$s="SELECT ID,CONCAT(SER,'-',NUM) as SN,CLI,FORMAT(TOT_REAL,2)  as TR,IDU,VEN
				FROM vcotizaciones 
				WHERE ID>0 AND CONCAT(SER,'-',NUM) LIKE '$NUM' AND 
				RUC LIKE '$RUC' AND CLI LIKE '$CLI' AND IDU=$_USU 
				ORDER BY ID DESC LIMIT 0,50";
			}
		}

		$result = grs($s);
		while ($row = $result->fetch_assoc()){
			$LP_ID=$row['ID'];
			$LP_SN=$row['SN'];
			$LP_CL=$row['CLI'];
			$LP_TR=$row['TR'];
			$LP_US="u :".gs("nom"," usuarios","id_usuario=".$row['IDU']);
			$LP_VE="v :".$row['VEN'];
			$x=$x."<pro>";			
			$x=$x."<id>".X($LP_ID)."</id>";			
			$x=$x."<sn>".X($LP_SN)."</sn>";			
			$x=$x."<cl>".X($LP_CL)."</cl>";			
			$x=$x."<tr>".X($LP_TR)."</tr>";	
			$x=$x."<us>".X($LP_US)."</us>";			
			$x=$x."<ve>".X($LP_VE)."</ve>";			
			$x=$x."</pro>";
		}
		echo "<lista>".$x."</lista>";
		
	}
	//
	if($CM=="STO"){
		$APK=vbval($P1);
		$IDP=vbval($P2);
		$PIE=vbval($P3);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			//echo $APK_R;return;
		}
		//
		$COD=gs("pro_codigo","productos","id_producto=$IDP");
		$DES=gs("pro_des","productos","id_producto=$IDP");
		$PRE=NF2(gn("pro_pv_max","productos","id_producto=$IDP"),3);		
		$STO=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$IDP AND sp_presentacion=$PIE");		
		$SEP=gn("SUM(CA_CONTROL - DEJ)","vcot_control","IDP=$IDP AND PIE=$PIE AND ANU='N' AND PRI='1'");
	    $SEP=$SEP + gn("SUM(CA_CONTROL - DEJ)","vven_control","IDP=$IDP AND PIE=$PIE AND ANU='N' AND PRI=1");		
		$TRA=gn("SUM(CA)","vcom_control","IDP=$IDP AND PIE=$PIE AND ANU='N' AND ET='SI'") ;
		//
		$CUZ=1;
		$TIE=2;
		//
		$T1_N=gs("alm_obs","almacenes","id_almacen=1");
		$T1_S=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$IDP AND sp_presentacion=$PIE AND sp_id_almacen=1");
		$T2_N=gs("alm_obs","almacenes","id_almacen=2");
		$T2_S=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$IDP AND sp_presentacion=$PIE AND sp_id_almacen=2");
		$T3_N=gs("alm_obs","almacenes","id_almacen=3");
		$T3_S=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$IDP AND sp_presentacion=$PIE AND sp_id_almacen=3");
		$T4_N=gs("alm_obs","almacenes","id_almacen=4");
		$T4_S=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$IDP AND sp_presentacion=$PIE AND sp_id_almacen=4");
		$T5_N=gs("alm_obs","almacenes","id_almacen=5");
		$T5_S=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$IDP AND sp_presentacion=$PIE AND sp_id_almacen=5");
		//
		$x="";
		$x=$x."<cod>".X($COD)."</cod>";
		$x=$x."<pie>".X($PIE)."</pie>";
		$x=$x."<des>".X($DES)."</des>";
		$x=$x."<pre>".X($PRE)."</pre>";
		$x=$x."<sto>".X($STO)."</sto>";
		$x=$x."<sep>".X($SEP)."</sep>";
		$x=$x."<tra>".X($TRA)."</tra>";
		$x=$x."<t1>".X($T1_N)."</t1>";
		$x=$x."<t1s>".X($T1_S)."</t1s>";
		$x=$x."<t2>".X($T2_N)."</t2>";
		$x=$x."<t2s>".X($T2_S)."</t2s>";
		$x=$x."<t3>".X($T3_N)."</t3>";
		$x=$x."<t3s>".X($T3_S)."</t3s>";
		$x=$x."<t4>".X($T4_N)."</t4>";
		$x=$x."<t4s>".X($T4_S)."</t4s>";
		$x=$x."<t5>".X($T5_N)."</t5>";
		$x=$x."<t5s>".X($T5_S)."</t5s>";
		echo "<consulta>".$x."</consulta>";
		
	}
	//
	if($CM=="NUE"){
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK");
		echo "OK";
	}
	if($CM=="ELI"){
		$APK=vbval($P1);
		$IDC=vbval($P2);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
		$_UTI=gn("id_alm","usuarios","id_usuario=$_USU");
		$_ALM=gn("id_alm","cotizaciones","id_cotizacion=$IDC");
		if($_UTI!=0){
			if($_UTI!=$_ALM){
				echo "TIE";return;
			}
		}
		//@@@
		//ANULAR PARA DESCONTAR
		ejt("UPDATE cotizaciones SET anu='S' WHERE id_cotizacion=$IDC");
		//
		$s="SELECT id_producto as IDP
			FROM cotizaciones_det WHERE id_cotizacion=$IDC 
			GROUP BY id_producto
			ORDER BY id_producto ";
		//
		$rs=grs($s);
		while($r=$rs->fetch_assoc()){
			$KIL_IDP=$r['IDP'];
			T_P_ACT($KIL_IDP);
		}
		//@@@
		$qqq=ejt("DELETE FROM cotizaciones WHERE id_cotizacion=$IDC");
		$_BIT_MOD_ID=$IDC;
		$_BIT_SQL_CAB=$qqq;
		$_BIT_SQL_DET="";
		$_BIT_PHP="junio22.php";
		$_BIT_ID=BIT_ADD("VENTAS","PROFORMAS","ELIMINAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$qqq);
		//
		$qqq=ejt("DELETE FROM cotizaciones_det WHERE id_cotizacion=$IDC");
		BIT_DET_ADD($_BIT_ID,$qqq);
		echo "OK";
	}
	if($CM=="ANU"){
		$APK=vbval($P1);
		$IDC=vbval($P2);		
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
		$_UTI=gn("id_alm","usuarios","id_usuario=$_USU");
		$_ALM=gn("id_alm","cotizaciones","id_cotizacion=$IDC");
		if($_UTI!=0){
			if($_UTI!=$_ALM){
				echo "TIE";return;
			}
		}
		//
		$qqq=ejt("UPDATE cotizaciones SET anu='S' WHERE id_cotizacion=$IDC");
        $_BIT_MOD_ID=$IDC;
		$_BIT_SQL_CAB=$qqq;
		$_BIT_SQL_DET="";
		$_BIT_PHP="junio22.php";
		$_BIT_ID=BIT_ADD("VENTAS","PROFORMAS","ANULAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$qqq);
		//
		$s="SELECT id_producto as IDP
			FROM cotizaciones_det WHERE id_cotizacion=$IDC 
			GROUP BY id_producto
			ORDER BY id_producto ";
		//
		$rs=grs($s);
		while($r=$rs->fetch_assoc()){
			$KIL_IDP=$r['IDP'];
			T_P_ACT($KIL_IDP);
		}
		//@@
		echo "OK";
	}
	//
	if($CM=="VM"){
		$APK=vbval($P1);
		$ID=vbval($P2);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$APK_USU=gn("apk_id_usuario","apk","id_apk=$APK");
		$COT_USU=gn("id_usuario","cotizaciones","id_cotizacion=".$ID);
		if($APK_USU!=$COT_USU){
			echo "USU_NO_AUT";return;
		}
		//
		$RET=COT_V_MEA($ID);
		if($RET=="DE")$RET="COB";
		if($RET=="CO")$RET="COB";
		if($RET=="CT")$RET="COB";
		echo $RET;
	}
	//
	if($CM=="GUA"){
		//
		$KOT_NL=15;
		//
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$NUM=trim($P2);
		$RUC=trim($P3);
		$CLI=trim($P4);
		$TOT=vbval($P5);
		$TOR=vbval($P6);
		$TIP=trim($P7);
		$ADE=vbval($P8);
		$MND=trim($P9);
		$MOD=trim($P0);
		$IDC=vbval($PA);
		$SER=trim($PB);
		$DIR=str_replace("'"," ",trim($PC));
		$TIE=str_replace("'"," ",trim($PD));
		$CUE=str_replace("'"," ",trim($PE));
		$CUE=gn("id_emp","empresas","emp_nomc='$CUE'");
		//+++++++++++++++++++++
		if($TIP=="CO"){
			echo "TIE";return;
		}
		if($ADE>0){
			echo "TIE";return;
		}
		//++++++++++++++
		$_KLI=0;
		//
		$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
		$_UTI=gn("id_alm","usuarios","id_usuario=$_USU");
		$_ALM=gn("id_almacen","almacenes","alm_obs='$TIE'");
		if($_UTI!=0){
			if($_UTI!=$_ALM){
				echo "TIE";return;
			}
		}
		$_COM=-3;
		$_VAR="";
		$_SER="";
		$_NUM="";
		$_CLI="";
		$_TCA=gs("valor","valores","dato='T_CAMBIO'");
		$_FEC=date("Y-m-d");
		$_IIG=0;
		$_MND=$MND;
		$_PED="";
		$_CON="";
		$_PRI=1;
		$_DST=0;
		$_VER=0;
		$_VEN=gn("id_vendedor","usuarios","id_usuario=$_USU");
		$_TDP=$TIP;
		$_ADE=$ADE;
		$_MOD=$MOD;
		$_TOT=$TOT;
		$_ZTO=0;
		$_VUE=0;
		$_ADE=$ADE;
		$_TOR=$TOR;
		$_GI=0;
		if(vbval($IDC)>0){
			$_GI=gn("gi","cotizaciones","id_cotizacion=$IDC");
			$qqq=ejt("DELETE FROM cotizaciones WHERE id_cotizacion=$IDC");
			//BIT
			$_BIT_MOD_ID=$IDC;
			$_BIT_SQL_CAB=$qqq;
			$_BIT_SQL_DET="";
			$_BIT_PHP="junio22.php";
			$_BIT_ID=BIT_ADD("VENTAS","PROFORMA","MODIFICAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
			BIT_DET_ADD($_BIT_ID,$qqq);
			//BIT	
			$qqq=ejt("DELETE FROM cotizaciones_det WHERE id_cotizacion=$IDC");
			//
			BIT_DET_ADD($_BIT_ID,$qqq);
			//			
		}
		//
		if(strlen($NUM)>0 && strlen($SER)>0){				
			$ISER=vbval($SER);
			$INUM=vbval($NUM);
			if(gn("count(*)","cotizaciones",
				  "iser=$ISER AND inum=$INUM AND id_alm=$_ALM ")>0){
				echo "06";return;
			}
		}else{			
			COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);			
		}
		//+++++++++++
		if(strlen($RUC)==8){
			$_CLI=gn("id_cliente","clientes","cli_dni='$RUC'");
			if($_CLI==0){
				$_CLI=GenId("id_cliente","clientes");
				$s="INSERT INTO clientes VALUES ($_CLI,'$CLI','','$DIR',0,'$RUC','','','','','',1,1,'PERU','','','','','NO')";
				ejt($s);
				$_KLI=1;
			}
		}else{
			if(strlen($RUC)==11){
				$_CLI=gn("id_cliente","clientes","cli_ruc='$RUC'");
				if($_CLI==0){
					$_CLI=GenId("id_cliente","clientes");
					$s="INSERT INTO clientes VALUES ($_CLI,'$CLI','','$DIR',0,'','$RUC','','','','',2,0,'PERU','','','','','NO')";
					ejt($s);
					$_KLI=1;
				}
			}else{
				$_CLI=gn("id_cliente","clientes","cli_dni='$RUC'");
				if($_CLI==0){
					$_CLI=GenId("id_cliente","clientes");
					$s="INSERT INTO clientes VALUES ($_CLI,'$CLI','','$DIR',0,'$RUC','','','','','',1,0,'','','','','','NO')";
					ejt($s);
					$_KLI=1;
				}				
			}
		}
		//+++++++++++		
		$_ISE=vbval($_SER);
		$_INU=vbval($_NUM);
		//
		if($_TDP=="CR"){
			$_VUE=0;
		}
		if($_TDP=="CO"){
			if($_ADE==0){
				$_ADE=$_TOR;
			}
			if($_MOD=="EFECTIVO"){
				$_VUE=round($_ADE - $_TOR,2);
				if($_VUE<0){
					$_VUE=0;
				}
			}
		}
		//
		$_DSC=round($_TOT - $_TOR,2);
		$_COB=round($_ADE - $_VUE,2);
		$_SAL=0;
		//
		if($_GI==0){
			$_GI=GenGI();
		}		
		//------------------------------------------------------------------------------------
		$DET_IT=0;
		$DET_CC=1;
		$KOT_CX=1;
		$KOT_TO=0;
		$KOT_SQ="";
		$GEN_ID[0]=0;
		$GEN_TO[0]=0;
		$GEN_TR[0]=0;
		$GEN_DS[0]=0;
		for($k=0;$k<=100;$k++){
			$GEN_ID[k]=0;
			$GEN_TO[k]=0;
			$GEN_TR[k]=0;
			$GEN_DS[k]=0;
		}
		//
		$s="SELECT apk_idp as IDP,apk_pie as PIE,apk_can as CAN,apk_pre as PRE,apk_imp as IMP
			FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
		$result = grs($s);			
		$cx=0;			
		while ($row = $result->fetch_assoc()){
			$DET_IT=$DET_IT+1;
			//
			if($DET_CC==1){
				if($KOT_CX==1){
					if(strlen($NUM)==0 && strlen($SER)==0){
						COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);
					}else{
						$_SER=vbval($SER);
						$_NUM=vbval($NUM);
					}
				}else{
					COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);
				}
				$_ISE=vbval($_SER);
				$_INU=vbval($_NUM);
				$StrId=GenId("id_cotizacion","cotizaciones");	
				$GEN_ID[$KOT_CX]=$StrId;
				//NO ESTA ACTUALIZADO			
				$s="INSERT INTO cotizaciones VALUES ".
				   "($StrId,$_ALM,'$_FEC',$_COM,'$_SER','$_NUM',$_CLI,".
				   "$_TCA,'$_IIG',$_TOT,$_ISE,$_INU,$_USU,'$_MND','N',".
				   "$_GI,'$_PED','$_CON','$_PRI','$_DST',".
				   "'$_VER',$_ZTO,0,$_VEN,'$_TDP',".
				   "$_ADE,'$_MND',$_VUE,$_SAL,'$_MOD',$_TOR,$_DSC,$_COB,0,$CUE)";
				ejt($s);
				$DET_CC=0;
				$cx=0;
			}
			//++++
			$cx++;
			$G_ID=$row['IDP'];
			$G_CA=$row['CAN'];
			$G_PR=$row['PRE'];
			$G_IM=$row['IMP'];
			$G_DT=0;
			$G_CO=gs("pro_codigo","productos","id_producto=$G_ID");
			$G_DE=gs("pro_des","productos","id_producto=$G_ID");
			$G_CU=$row['PIE'];
			$_CONTROL=$G_CA;
			$VE_CONTROL=$G_CA;
			$DEV=0;
			$DEJ=0;
			$ss="INSERT INTO cotizaciones_det ".
			    "VALUES ($StrId,$cx,$G_ID,$G_CA,".
				"$G_PR,$G_IM,$G_DT,'$G_CO','$G_DE',$G_CU,$_CONTROL,$VE_CONTROL,$DEV,$DEJ)";			
			//
			ejt($ss);
			$GEN_TO[$KOT_CX]=$GEN_TO[$KOT_CX]+$G_IM;	
			$GEN_TR[$KOT_CX]=$GEN_TR[$KOT_CX]+$G_IM;			
			//
			if($DET_IT%$KOT_NL==0){
				$KOT_CX=$KOT_CX+1;
				$DET_CC=1;
				$KOT_TO=0;
			}
		}		
		//------------------------------------------------------------------------------------
		$AUX=0;
		if($_DSC>0){
			for($I=1;$I<=$KOT_CX;$I++){
				for($K=$I+1;$K<=$KOT_CX;$K++){
					if($GEN_TO[$I]<$GEN_TO[$K]){
						//
						$AUX=$GEN_TO[$I];
						$GEN_TO[$I]=$GEN_TO[$K];
						$GEN_TO[$K]=$AUX;
						//
						$AUX=$GEN_ID[$I];
						$GEN_ID[$I]=vbval($GEN_ID[$K]);
						$GEN_ID[$K]=$AUX;
					}
				}
			}
			//			
			for($I=1;$I<=$KOT_CX;$I++){
				if($GEN_TO[$I]>=$_DSC){
					$GEN_TD[$I]=$_DSC;	
					$GEN_TR[$I]=round($GEN_TO[$I] - $_DSC,2);														
					break;
				}else{
					$GEN_TD[$I]=$GEN_TO[$I];										
					$GEN_TR[$I]=0;
					$_DSC=$_DSC - $GEN_TO[$I];					
				}
			}
		}		
		//------------------------------------------------------------------------------------		
		for($I=1;$I<=$KOT_CX;$I++){
			for($K=$I+1;$K<=$KOT_CX;$K++){
				if(vbval($GEN_ID[$I])>vbval($GEN_ID[$K])){
					//
					$AUX=$GEN_ID[$I];
					$GEN_ID[$I]=vbval($GEN_ID[$K]);
					$GEN_ID[$K]=$AUX;
					//
					$AUX=$GEN_TO[$I];
					$GEN_TO[$I]=$GEN_TO[$K];
					$GEN_TO[$K]=$AUX;
					//
					$AUX=$GEN_TR[$I];
					$GEN_TR[$I]=$GEN_TR[$K];
					$GEN_TR[$K]=$AUX;
					//
					$AUX=$GEN_TD[$I];
					$GEN_TD[$I]=$GEN_TD[$K];
					$GEN_TD[$K]=$AUX;

				}
			}
		}			
		//------------------------------------------------------------------------------------		
		$_TOT_ADE=$_ADE;
		$_TR_TOT=0;
		if($_TDP=="CO" && $_ADE>=0){		
			for($k=1;$k<=$KOT_CX;$k++){
				$_I=vbval($GEN_ID[$k]);				
				$_T=round($GEN_TO[$k],2);
				$_TR=round($GEN_TR[$k],2);
				$_TD=round($GEN_TD[$k],2);
				$_TR_TOT=$_TR_TOT+$_TR;
				if($k<$KOT_CX){
					$_TOT_ADE=$_TOT_ADE - $_TR;										
					$s="UPDATE cotizaciones 
						SET tot=$_T,acu=$_TR,tot_cob=$_TR,tot_real=$_TR,tot_des=$_TD,vue=0,id_tip_pag='CO'
						WHERE id_cotizacion=$_I";	
					ejt($s);
				}else{
					$_vue=round($_TOT_ADE - $_TR,2);
					$_TOT_ADE=$_TOT_ADE ;	
					$_KOB=$_TOT_ADE - $_vue;
					$s="UPDATE cotizaciones 
						SET tot=$_T,acu=$_TOT_ADE,tot_cob=$_KOB,tot_real=$_TR,tot_des=$_TD,vue=$_vue,id_tip_pag='CO'
						WHERE id_cotizacion=$_I";	
					ejt($s);
				}
				//++++++++++++++++++++++++++
				$lq_s="SELECT * FROM cotizaciones WHERE id_cotizacion=$_I ORDER BY id_cotizacion";
				$lq_rs = grs($lq_s);
				while ($lq_r = $lq_rs->fetch_assoc()){
					$_ID=$lq_r['id_cotizacion'];
					$_SE=$lq_r['iser'];
					$_NU=$lq_r['inum'];
					$SER=vbr("0000".$_SE,4);
					$NUM=vbr("000000".$_NU,6);
					$s="UPDATE cotizaciones SET ser='$SER',num='$NUM' WHERE id_cotizacion=$_ID";
					ejt($s);
				}
				//++++++++++++++++++++++++
			}
		}
		if($_TDP=="CR" && $_ADE>=0){
			for($k=1;$k<=$KOT_CX;$k++){
				$_I=vbval($GEN_ID[$k]);
				$_T=round($GEN_TO[$k],2);	
				$_TR=round($GEN_TR[$k],2);			
				$_TD=round($GEN_TD[$k],2);			
				$_ACU=0;
				if($_TOT_ADE >= $_TR){
					$_TDP="CO";
					$_ACU=$_TR;
					$_KOB=$_TR;
					$_TOT_ADE=$_TOT_ADE - $_TR;										
				}else{
					$_TDP="CR";
					if($_TOT_ADE>0){
						$_ACU=$_TOT_ADE;
						$_KOB=$_ACU;
						$_TOT_ADE=$_TOT_ADE - $_TR;
					}else{
						$_ACU=0;
						$_KOB=0;
						$_TOT_ADE=0;
					}					
				}
				$s="UPDATE cotizaciones 
					SET tot=$_T,acu=$_ACU,tot_cob=$_KOB,tot_real=$_TR,tot_des=$_TD,vue=0,id_tip_pag='$_TDP'
					WHERE id_cotizacion=$_I";	
				ejt($s);	
				//++++++++++++++++++++++++++
				$lq_s="SELECT * FROM cotizaciones WHERE id_cotizacion=$_I ORDER BY id_cotizacion";
				$lq_rs = grs($lq_s);
				while ($lq_r = $lq_rs->fetch_assoc()){
					$_ID=$lq_r['id_cotizacion'];
					$_SE=$lq_r['iser'];
					$_NU=$lq_r['inum'];
					$SER=vbr("0000".$_SE,4);
					$NUM=vbr("000000".$_NU,6);
					$s="UPDATE cotizaciones SET ser='$SER',num='$NUM' WHERE id_cotizacion=$_ID";
					ejt($s);
				}
				//++++++++++++++++++++++++			
			}	
		}
		//------------------------------------------------------------------------------------
		$MSG_OK="OK";
		$MSG_ID=$StrId;
		//
		$MSG_NS="";
		for($k=1;$k<=$KOT_CX;$k++){
			$_I=vbval($GEN_ID[$k]);
			$MSG_NS=$MSG_NS.gs("CONCAT(ser,'-',num)","cotizaciones","id_cotizacion=".$_I).",";
		}
		if(strlen($MSG_NS)>0){
			$MSG_NS=vbmid($MSG_NS,1,strlen($MSG_NS)-1);
		}
		//		
		$MSG_SE=$_SER;
		$MSG_NU=$_NUM;
		$MSG_VU=NF2($_VUE,2);
		if($_KLI==1){
			$MSG_EX="Complete los datos correspondientes al cliente";
		}else{
			$MSG_EX="X";
		}
		echo $MSG_OK."@".$MSG_ID."@".$MSG_NS."@".$MSG_VU."@".$MSG_EX."@".$MSG_SE."@".$MSG_NU;
	}
	//
	if($CM=="MP"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$PRE=vbval($P3);
		$IMP=vbval($P4);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$s="UPDATE apk_proforma_det 
			SET apk_pre=$PRE,apk_imp=$IMP 
			WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);
		echo "OK";
	}
	//
	if($CM=="MZ"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$PIE=vbval($P3);
		$IMP=vbval($P4);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$s="UPDATE apk_proforma_det 
			SET apk_pie=$PIE,apk_imp=$IMP 
			WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);
		echo "OK";
	}
	//
	if($CM=="MK"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$KAN=vbval($P3);
		$IMP=vbval($P4);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$s="UPDATE apk_proforma_det 
			SET apk_can=$KAN,apk_imp=$IMP 
			WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);
		echo "OK";
	}
	//
	if($CM=="KIL"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		/*
		if(gn("count(*)","apk_proforma_det","apk_id_apk=$APK AND apk_cx=$ITE")==0){
			echo "YR";
		}else{
			
		}
		*/
		$s="DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);		
		echo "OK";
		return;
	}
	//
	if($CM=="ADD"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$IDP=vbval($P3);
		$PIE=vbval($P4);
		$CAN=vbval($P5);
		$PRE=vbval($P6);
		$IMP=vbval($P7);
		$APK=vbval($P8);
		//@@
		$BIT_STOCK=0;
		$BIT_STOCK_USU=0;
		$BIT_PRECIO=0;
		$BIT_PRECIO_USU=0;
		//@@
		$APK_R=APK_VAL_EX($APK);
		if(strlen($APK_R)>0){
			echo "|MS|".$APK_R."|";
			return;
		}
		//
		if(gn("count(*)","apk_proforma_det","apk_id_apk=$APK AND apk_idp=$IDP AND apk_pie=$PIE")>0){
			echo "|MS|Productos / piezas ya registrada|";
		}else{
			$CX=GenIdEx("apk_cx","apk_proforma_det","apk_id_apk=$APK");
			$ADD_MANUAL=1;
			$s="INSERT INTO apk_proforma_det 
				VALUES ($APK,$CX,$IDP,$PIE,$CAN,$PRE,$IMP,$BIT_STOCK,
				$BIT_STOCK_USU,$BIT_PRECIO,$BIT_PRECIO_USU,$ADD_MANUAL)";
			ejt($s);		
			echo "|OK|$CX|";
		}
		return;
	}
	//LOGIN
	if($CM=="04"){
		$U=$P1;
		$P=$P2;
		$ID=gn("id_usuario","usuarios","nom='$U' AND pass='$P' AND id_usuario>0 AND hab='SI'");		
		if($ID==0){
			echo "NR";
			return;
		}else{
			//VERIFICAR SI PUEDE EMITIR PROFORMAS
			$TA=gn("valor","usuarios_menus","id_usuario=$ID AND id_sm=27");
			if($TA==0){
				echo "NR";
				return;
			}
			//
			$ALMP="";
			$ALM=gn("pro_id_alm","usuarios","id_usuario=$ID");
			if($ALM==0){
				$ALMP="TODOS";
			}else{				
				$ALMP=gs("alm_obs","almacenes","id_almacen=$ALM");
			}
			$ALM="";
			$s="SELECT alm_obs as A FROM almacenes WHERE id_almacen>0 ORDER BY alm_obs";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$ALM=$ALM.$row['A']."@";
			}
			//
			$MOD=vbval(gs("mv","usuarios","id_usuario=$ID"));
			$ELI=vbval(gs("ev","usuarios","id_usuario=$ID"));
			$ANU=vbval(gs("av","usuarios","id_usuario=$ID"));
			//APK
			$APK=GenId("id_apk","apk");
			$IDU=$ID;
			$FEI=date("Y-m-d");
			$HOI=GetHora();
			$FEF="2000-01-01";
			$HOF="";
			//OBTENER SU ULTIMA INSTANCIA
			$APK_L=gn("MAX(id_apk)","apk","apk_id_usuario=$IDU");
			$s="INSERT INTO apk VALUES ($APK,$IDU,'$FEI','$HOI','$FEF','$HOF');";
			ejt($s);
			$FEC=date("d-m-y");
			if($APK_L>0){
				ejt("UPDATE apk_proforma_det SET apk_id_apk=$APK WHERE apk_id_apk=$APK_L");
				//REENUMERAR
				$CX=0;
				$s="SELECT * FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
				$rs = grs($s);
				while ($r = $rs->fetch_assoc()){
					$CX++;
					ejt("UPDATE apk_proforma_det SET apk_cx=$CX WHERE apk_id_apk=$APK AND apk_cx=".$r['apk_cx']);
				}
				
			}
			//ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK");
			//APK
			echo $APK.",".$FEC.",".$MOD.",".$ANU.",".$ELI.",".$ALMP.",".$ALM;
		}
		
	}
	//
	if($CM=="03"){
		$xml="";		
		$CO=$P1."%";
		$DE=$P2."%";
		$APK=vbval($P3);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$s="SELECT *,LEFT(pro_des,45) as DES,ROUND(pro_pma,3) as PRE 
			FROM t_productos 
			WHERE pro_cod LIKE '$CO' AND pro_des LIKE '$DE' AND ( (pro_sto<>0 OR pro_prv=0 OR pro_etr>0) AND pro_uso='S' )
			ORDER BY pro_cod,pro_pie";
		$rs = grs($s);
		while ($r = $rs->fetch_assoc()){
			$xml=$xml."<p>";
			$xml=$xml."<a>".$r['pro_id']."</a>";
			$xml=$xml."<b>".$r['pro_pie']."</b>";
			$xml=$xml."<c>".$r['pro_cod']."</c>";
			$xml=$xml."<d>".$r['DES']."</d>";
			$xml=$xml."<e>".$r['PRE']."</e>";
			$xml=$xml."<f>".$r['pro_sto']."</f>";
			$xml=$xml."<g>".$r['pro_sep']."</g>";
			$xml=$xml."<h>".$r['pro_etr']."</h>";
			$xml=$xml."</p>";
		}
		echo "<datos>".$xml."</datos>";	
	}
	//
	if($CM=="0300000000000000000"){
		$xml="";		
		$CO=$P1."%";
		$DE=$P2."%";
		$APK=vbval($P3);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$sql="SELECT ID,COD,LEFT(DESCRIPCION,45) as DES ,ROUND(PV_MAX,3) as PRE
			  FROM vproductos 
			  WHERE COD LIKE '$CO' AND DESCRIPCION LIKE '$DE' ORDER BY COD";		
		$result = grs($sql);
		while ($row = $result->fetch_row()){
		////////////////////////////////////////
			ejt("DELETE FROM hw_pie WHERE hw='$HW'");
			$sql_p="SELECT PIE 
					FROM vis_sp 
					WHERE ID_PRO=$row[0] AND (STOCK>0 OR PROVICIONAL=0) ORDER BY PIE";			   			 		  
			$result_p = grs($sql_p);			
			while ($row_p = $result_p->fetch_assoc()){
				$_PIE=$row_p['PIE'];
				ejt("INSERT INTO hw_pie VALUES ('$HW',$_PIE)");
			}
			//
			$z="SELECT PIE FROM vcot_control WHERE IDP=$row[0] AND (CA_CONTROL - DEJ)>0 AND ANU='N' AND PRI='1' GROUP BY PIE ";
		  	$result_p = grs($z);
		  	while ($row_p = $result_p->fetch_assoc()){
				$_PIE=$row_p['PIE'];
				if(gn("count(*)","hw_pie","pie=$_PIE AND hw='$HW'")==0){
					ejt("INSERT INTO hw_pie VALUES ('$HW',$_PIE)");
		    	}
			}
			//
			$z="SELECT PIE FROM vven_control WHERE IDP=$row[0] AND (CA_CONTROL - DEJ)>0 AND ANU='N' AND PRI=1 GROUP BY PIE ";
		  	$result_p = grs($z);
		  	while ($row_p = $result_p->fetch_assoc()){
				$_PIE=$row_p['PIE'];
				if(gn("count(*)","hw_pie","pie=$_PIE AND hw='$HW'")==0){
					ejt("INSERT INTO hw_pie VALUES ('$HW',$_PIE)");
				}
		  	}
			//
			$sql_p="SELECT pie FROM hw_pie 
					WHERE hw='$HW' GROUP BY pie ORDER BY pie";			   			 
		  	$result_p = grs($sql_p);
			while ($row_p = $result_p->fetch_row()){
			  //
			  $_IDP=$row[0];
			  $_PIE=$row_p[0];
			  $_SEP=gn("SUM(CA_CONTROL - DEJ)","vcot_control","IDP=$_IDP AND PIE=$_PIE AND ANU='N' AND PRI='1'") ;
			  $_SEP=$_SEP + gn("SUM(CA_CONTROL - DEJ)","vven_control","IDP=$_IDP AND PIE=$_PIE AND ANU='N' AND PRI=1");
			  $_TRA=gn("SUM(CA)","vcom_control","IDP=$_IDP AND PIE=$_PIE AND ANU='N' AND ET='SI'") ;
			  $_STO=gn("SUM(sp_cantidad)","stocks_presentaciones","sp_id_producto=$row[0] AND sp_presentacion=$row_p[0]");
			  //
			  $_COD=$row[1];
			  $_DES=$row[2];	
			  $_PRE=$row[3];
			  //
			  $xml=$xml."<p>";
			  $xml=$xml."<a>".X($_IDP)."</a>";
			  $xml=$xml."<b>".X($_PIE)."</b>";
			  $xml=$xml."<c>".X($_COD)."</c>";
			  $xml=$xml."<d>".X($_DES)."</d>";
			  $xml=$xml."<e>".X($_PRE)."</e>";
			  $xml=$xml."<f>".X($_STO)."</f>";
			  $xml=$xml."<g>".X($_SEP)."</g>";
			  $xml=$xml."<h>".X($_TRA)."</h>";
			  $xml=$xml."</p>";
			  //			  
			}
		////////////////////////////////////////
		}
		echo "<datos>".$xml."</datos>";		
	}	
	//
	if($CM=="01"){
		$APK=vbval($P2);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		if(strlen($P1)==11){
			echo gs("cli_nombre","clientes","cli_ruc='$P1'");
		}else{
			echo gs("cli_nombre","clientes","cli_dni='$P1'");
		}
	}
	if($CM=="02"){
		$x="";
		$D=trim($P1)."%";
		$R=trim($P2)."%";
		$N="%".trim($P3)."%";
		$APK=vbval($P4);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo $APK_R;return;
		}
		//
		$s="SELECT id_cliente as ID,cli_nombre as NOM,cli_ruc as RUC,cli_dni as DNI
		    FROM  clientes WHERE id_cliente>0 AND  cli_nombre LIKE '$N' AND cli_ruc LIKE '$R' AND 
			cli_dni LIKE '$D' ORDER BY cli_nombre ";
		$result = grs($s);
		while ($row = $result->fetch_assoc()){
			$x=$x."<cli>";
			$x=$x."<i>".X($row['ID'])."</i>";
			$x=$x."<n>".X($row['NOM'])."</n>";
			$x=$x."<r>".X($row['RUC'])."</r>";
			$x=$x."<d>".X($row['DNI'])."</d>";
			$x=$x."</cli>";
			
		}		
		echo "<datos>".$x."</datos>";
		
	}
//
	if($CM=="VM_2021"){
		$APK=vbval($P1);
		$ID=vbval($P2);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			echo "|MS|Usuario no habilitado|";return;
		}
		$APK_USU=gn("apk_id_usuario","apk","id_apk=$APK");
		$COT_USU=gn("id_usuario","cotizaciones","id_cotizacion=".$ID);
		if($APK_USU!=$COT_USU){
			echo "|MZ|Usuario no autorizado para modificar|";return;
		}
		//
		$RET=COT_V_MEA_23($ID);
		if($RET=="OK"){
			echo "|OK|";return;
		}else{
			if($RET=="VE"){
				echo "|MS|El presente registro esta relacionado a una o mas ventas. NO SE PUEDE MODIFICAR|";
				return;
			}
			if($RET=="GR"){
				echo "|MS|El presente registro esta relacionado a una o mas guias de remision. NO SE PUEDE MODIFICAR|";
				return;
			}
			if($RET=="GI"){
				echo "|MS|El presente registro esta relacionado a una o mas guias internas. NO SE PUEDE MODIFICAR|";
				return;
			}
			if($RET=="DE"){
				echo "|MS|El presente registro esta relacionado a una o mas devoluciones. NO SE PUEDE MODIFICAR|";
				return;
			}
			if($RET=="CO"){
				echo "|MS|El presente registro esta relacionado a uno o mas cobros (1). NO SE PUEDE MODIFICAR|";
				return;
			}
			if($RET=="CT"){
				echo "|MS|El presente registro esta relacionado a uno o mas cobros (2). NO SE PUEDE MODIFICAR|";
				return;
			}			
		}
		echo "|MS|Error inesperado. NO SE PUEDE MODIFICAR|";
		return;
		
	}

	//++++2024
	if($CM=="GUA_2021"){
		//
		$KOT_NL=15;
		//
		$APK=vbval($P1);
		//
		$APK_R=APK_VAL($APK);
		if(strlen($APK_R)>0){
			//echo "|MS|Usuario no habilitado|";return;
		}
		//
		$NUM=trim($P2);
		$RUC=trim($P3);
		$CLI=trim($P4);
		$TOT=vbval($P5);
		$TOR=vbval($P6);
		$TIP=trim($P7);
		$ADE=vbval($P8);
		$MND=trim($P9);
		$MOD=trim($P0);
		$IDC=vbval($PA);
		$SER=trim($PB);
		$DIR=str_replace("'"," ",trim($PC));
		$TIE=str_replace("'"," ",trim($PD));
		$CUE=str_replace("'"," ",trim($PE));
		$CUE=gn("id_emp","empresas","emp_nomc='$CUE'");
		//+++++++++++++++++++++
		if($TIP=="CO"){
			echo "|MS|El tipo de pago debe ser CREDITO|";return;
		}
		if($ADE>0){
			echo "|MS|El adelanto debe ser cero, y el tipo de pago debe ser CREDITO|";return;
		}
		//++++++++++++++
		$KANTIDAD=gn("count(*)","apk_proforma_det"," apk_id_apk=$APK  AND apk_can<=0");
		if($KANTIDAD>0){
			echo "|MS|Las cantidades deben ser mayor a cero|";return;	
		}
		$KANTIDAD=gn("count(*)","apk_proforma_det"," apk_id_apk=$APK  AND apk_pie<=0");
		if($KANTIDAD>0){
			echo "|MS|Las cantidades de piezas deben ser mayor a cero|";return;	
		}
		$KANTIDAD=gn("count(*)","apk_proforma_det"," apk_id_apk=$APK  AND apk_pre<0");
		if($KANTIDAD>0){
			echo "|MS|Los precios no pueden ser menores a cero|";return;	
		}
		//++++++++++++++
		$_KLI=0;
		//
		$_USU=gn("apk_id_usuario","apk","id_apk=$APK");
		$MOD_PRE=vbval(gs("mp","usuarios","id_usuario=$_USU"));
		$_UTI=gn("id_alm","usuarios","id_usuario=$_USU");
		$_ALM=gn("id_almacen","almacenes","alm_obs='$TIE'");
		if($_UTI!=0){
			if($_UTI!=$_ALM){
				echo "|MS|Tienda/Almacen no corresponde al usuario|";return;
			}
		}
		$_COM=-3;
		$_VAR="";
		$_SER="";
		$_NUM="";
		$_CLI="";
		$_TCA=gs("valor","valores","dato='T_CAMBIO'");
		$_FEC=date("Y-m-d");
		$_IIG=0;
		$_MND=$MND;
		$_PED="";
		$_CON="";
		$_PRI=1;
		$_DST=0;
		$_VER=0;
		$_VEN=gn("id_vendedor","usuarios","id_usuario=$_USU");
		$_TDP=$TIP;
		$_ADE=$ADE;
		$_MOD=$MOD;
		$_TOT=$TOT;
		$_ZTO=0;
		$_VUE=0;
		$_ADE=$ADE;
		$_TOR=$TOR;
		$_GI=0;
		//
		if(vbval($IDC)==0){
			$MSG="";
			$s="SELECT * FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
			$rs = grs($s);
			while($r=$rs->fetch_assoc()){
				$PRO=$r['apk_idp'];
				$PIE=$r['apk_pie'];
				$CAN=$r['apk_can'];
				$AUT=$r['bit_stock'];
				//
				$STO=gn("SUM(pro_sto)","t_productos","pro_id=$PRO AND pro_pie=$PIE");
				$SEP=gn("SUM(pro_sep)","t_productos","pro_id=$PRO AND pro_pie=$PIE");
				//
				if($MOD_PRE==1){
					//TODO_OK
				}else{
					if($AUT==0){
						if($CAN>($STO-$SEP)){
							$COD=gs("pro_codigo","productos","id_producto=$PRO");
							if($COD=="A001" || $COD=="A002"){
								//
							}else{
								$DES=gs("pro_des","productos","id_producto=$PRO");
								$DES=$COD."x".$PIE." ".$DES;
								$MSG="Stock insuficiente para : ( ".$DES." ), el stock es : ".$STO." ,la cantidad separado es : ".$SEP;		
								break;
							}
						}
					}
				}
			}
			if(strlen($MSG)==0){
				//echo "|OK|OK|";return;
			}else{
				echo "|MS|".$MSG."|";return;
			}
		}else{
			$MSG="";
			$PK=$IDC;
			//
			$s="SELECT * FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
			$rs = grs($s);
			while($r=$rs->fetch_assoc()){
				$PRO=$r['apk_idp'];
				$PIE=$r['apk_pie'];
				$CAN=$r['apk_can'];
				$AUT=$r['bit_stock'];
				//
				$DEV=gn("ca","cotizaciones_det","id_cotizacion=$PK AND id_producto=$PRO AND can_uni=$PIE");
				//
				$STO=gn("SUM(pro_sto)","t_productos","pro_id=$PRO AND pro_pie=$PIE");
				$SEP=gn("SUM(pro_sep)","t_productos","pro_id=$PRO AND pro_pie=$PIE") - $DEV;
				//
				if($MOD_PRE==1){
					//TODO_OK
				}else{
					if($AUT==0){
						if($CAN>($STO-$SEP)){
							$COD=gs("pro_codigo","productos","id_producto=$PRO");
							if($COD=="A001" || $COD=="A002"){
								//
							}else{
								$DES=gs("pro_des","productos","id_producto=$PRO");
								$DES=$COD."x".$PIE." ".$DES;
								$MSG="Stock insuficiente para : ( ".$DES." ), el stock es : ".$STO." ,la cantidad separado es : ".$SEP;		
								break;
							}
						}
					}
				}
			}
			if(strlen($MSG)==0){
				//echo "|OK|OK|";return;
			}else{
				echo "|MS|".$MSG."|";return;
			}
		}	
		if(vbval($IDC)>0){
			$RPT=COT_V_MEA_23($IDC);
			if($RPT=="OK"){
				//TODO_OK
			}else{
				if($RPT=="VE"){
					echo "|MS|El presente registro esta relacionado a una o mas ventas|";return;
				}
				if($RPT=="GR"){
					echo "|MS|El presente registro esta relacionado a una o mas guias de remision|";return;
				}
				if($RPT=="GI"){
					echo "|MS|El presente registro esta relacionado a una o mas guias internas|";return;
				}
				if($RPT=="DE"){
					echo "|MS|El presente registro esta relacionado a una o mas devoluciones|";return;
				}
				if($RPT=="CO"){
					echo "|MS|El presente registro esta relacionado a uno o mas cobros|";return;
				}
				if($RPT=="CT"){
					echo "|MS|El presente registro esta relacionado a uno o mas cobros por transferencia|";return;
				}
			}
		}
		//SI ESTA RELACIONADA A UNA COMPRA ENTONCES NO SE PUEDE MODIFICAR<br />
		$COMPRA_KOD=gn("id_compra","cotizaciones","id_cotizacion=$IDC");
		if($COMPRA_KOD>0){
			echo "|MS|El presente registro esta relacionado a una compra por ".
			"lo tanto no se puede modificar desde aqui, intente desde el sistema en la computadora|";return;
		}
		//
		if(vbval($IDC)>0){
			$_GI=gn("gi","cotizaciones","id_cotizacion=$IDC");
			$qqq=ejt("DELETE FROM cotizaciones WHERE id_cotizacion=$IDC");
			//BIT
			$_BIT_MOD_ID=$IDC;
			$_BIT_SQL_CAB=$qqq;
			$_BIT_SQL_DET="";
			$_BIT_PHP="junio22.php";
			$_BIT_ID=BIT_ADD("VENTAS","PROFORMA","MODIFICAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
			BIT_DET_ADD($_BIT_ID,$qqq);
			//BIT	
			$qqq=ejt("DELETE FROM cotizaciones_det WHERE id_cotizacion=$IDC");
			//
			BIT_DET_ADD($_BIT_ID,$qqq);
		}
		//
		if(strlen($NUM)>0 && strlen($SER)>0){				
			$ISER=vbval($SER);
			$INUM=vbval($NUM);
			if(gn("count(*)","cotizaciones",
				  "iser=$ISER AND inum=$INUM AND id_alm=$_ALM ")>0){
				echo "|MS|Serie-Numero de proforma ya registrado. Si no se ingresa el numero de proforma el sistema asignara uno automaticamente|";return;
			}
		}else{			
			COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);			
		}
		//+++++++++++
		if(strlen($RUC)==8){
			$_CLI=gn("id_cliente","clientes","cli_dni='$RUC'");
			if($_CLI==0){
				$_CLI=GenId("id_cliente","clientes");
				$s="INSERT INTO clientes VALUES ($_CLI,'$CLI','','$DIR',0,'$RUC','','','','','',1,1,'PERU','','','','','NO')";
				ejt($s);
				$_KLI=1;
			}
		}else{
			if(strlen($RUC)==11){
				$_CLI=gn("id_cliente","clientes","cli_ruc='$RUC'");
				if($_CLI==0){
					$_CLI=GenId("id_cliente","clientes");
					$s="INSERT INTO clientes VALUES ($_CLI,'$CLI','','$DIR',0,'','$RUC','','','','',2,0,'PERU','','','','','NO')";
					ejt($s);
					$_KLI=1;
				}
			}else{
				$_CLI=gn("id_cliente","clientes","cli_dni='$RUC'");
				if($_CLI==0){
					$_CLI=GenId("id_cliente","clientes");
					$s="INSERT INTO clientes VALUES ($_CLI,'$CLI','','$DIR',0,'$RUC','','','','','',1,0,'','','','','','NO')";
					ejt($s);
					$_KLI=1;
				}				
			}
		}
		//+++++++++++		
		$_ISE=vbval($_SER);
		$_INU=vbval($_NUM);
		//
		if($_TDP=="CR"){
			$_VUE=0;
		}
		if($_TDP=="CO"){
			if($_ADE==0){
				$_ADE=$_TOR;
			}
			if($_MOD=="EFECTIVO"){
				$_VUE=round($_ADE - $_TOR,2);
				if($_VUE<0){
					$_VUE=0;
				}
			}
		}
		//
		$_DSC=round($_TOT - $_TOR,2);
		$_COB=round($_ADE - $_VUE,2);
		$_SAL=0;
		//
		if($_GI==0){
			$_GI=GenGI();
		}		
		//------------------------------------------------------------------------------------
		$DET_IT=0;
		$DET_CC=1;
		$KOT_CX=1;
		$KOT_TO=0;
		$KOT_SQ="";
		$GEN_ID[0]=0;
		$GEN_TO[0]=0;
		$GEN_TR[0]=0;
		$GEN_DS[0]=0;
		for($k=0;$k<=100;$k++){
			$GEN_ID[k]=0;
			$GEN_TO[k]=0;
			$GEN_TR[k]=0;
			$GEN_DS[k]=0;
		}
		//@@
		$LISTA_TOTAL=0;
		$LISTA_PRODUCTOS[0]=0;
		for($k=0;$k<=100;$k++){
			$LISTA_PRODUCTOS[$k]=0;
		}
		//@@
		//FV_VEN_INI
		$FV_ID=0;
		$FV_COB="1900-01-01";
		$FV_SAL="1900-01-01";
		$FV_CAN_PEN=0;
		$FV_ID=FUN_FV_GET_ID($_FEC,$FV_COB,$FV_SAL);
		//FV_VEN_FIN
		$s="SELECT apk_idp as IDP,apk_pie as PIE,apk_can as CAN,
				   apk_pre as PRE,apk_imp as IMP,
				   bit_stock,bit_stock_usu,bit_precio,bit_precio_usu 
			FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
		$result = grs($s);			
		$cx=0;			
		while ($row = $result->fetch_assoc()){
			$DET_IT=$DET_IT+1;
			//
			if($DET_CC==1){
				if($KOT_CX==1){
					if(strlen($NUM)==0 && strlen($SER)==0){
						COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);
					}else{
						$_SER=vbval($SER);
						$_NUM=vbval($NUM);
						//VERIFICAR SI ESE QUE SE INGRESO MANUAL
						if(gn("count(*)","cotizaciones",
							  "iser=$_SER AND inum=$_NUM AND id_alm=$_ALM ")>0){
							COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);
						}
						//
					}
				}else{
					COTI_GEN_SER_NUM_MAX($_ALM,$_COM,$_SER,$_NUM);
				}
				$_ISE=vbval($_SER);
				$_INU=vbval($_NUM);
				$StrId=GenId("id_cotizacion","cotizaciones");	
				$GEN_ID[$KOT_CX]=$StrId;//26
				//
				$BIT_PRECIO=0;
				$BIT_STOCK=0;
				$BIT_ESTADO=-1;	
				//
				//ACTUALIZADO		
				$s="INSERT INTO cotizaciones VALUES ".
				   "($StrId,$_ALM,'$_FEC',$_COM,'$_SER','$_NUM',$_CLI,".
				   "$_TCA,'$_IIG',$_TOT,$_ISE,$_INU,$_USU,'$_MND','N',".
				   "$_GI,'$_PED','$_CON','$_PRI','$_DST',".
				   "'$_VER',$_ZTO,0,$_VEN,'$_TDP',".
				   "$_ADE,'$_MND',$_VUE,$_SAL,'$_MOD',$_TOR,$_DSC,$_COB,0,$CUE,
				   $FV_ID,'$FV_COB','$FV_SAL',$FV_CAN_PEN,$BIT_PRECIO,$BIT_STOCK,$BIT_ESTADO)";
				ejt($s);
				//////////////////////////////////////////////////////////////
				$_BIT_MOD_ID=$StrId;
				$_BIT_SQL_CAB=$s;
				$_BIT_SQL_DET="";
				$_BIT_PHP="junio22.php";
				$_BIT_ID=BIT_ADD("VENTAS","PROFORMA","GUARDAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
				BIT_DET_ADD($_BIT_ID,$s);
				//
				$qqq=ejt("DELETE FROM cotizaciones_det WHERE id_cotizacion=$StrId");
				//
				BIT_DET_ADD($_BIT_ID,$qqq);
				//////////////////////////////////////////////////////////////
				$DET_CC=0;
				$cx=0;
			}
			//
			$cx++;
			$G_ID=$row['IDP'];
			$G_CA=$row['CAN'];
			$G_PR=$row['PRE'];
			$G_IM=$row['IMP'];
			$G_DT=0;
			$G_CO=gs("pro_codigo","productos","id_producto=$G_ID");
			$G_DE=gs("pro_des","productos","id_producto=$G_ID");
			$G_CU=$row['PIE'];
			$_CONTROL=$G_CA;
			$VE_CONTROL=$G_CA;
			$DEV=0;
			$DEJ=0;
			$BIT_STOCK=$row['bit_stock'];
			$BIT_STOCK_USU=$row['bit_stock_usu'];
			$BIT_PRECIO=$row['bit_precio'];
			$BIT_PRECIO_USU=$row['bit_precio_usu'];
			//@@++++
			$bit_stock_ex=0;
			$bit_precio_ex=0;
			$LQ_PRO_PRE=gn("pro_pv_min","productos","id_producto=$G_ID");
			if($LQ_PRO_PRE>$G_PR){
				$bit_precio_ex=1;
			}
			$LQ_STO_DIS=gn("SUM(pro_sto - pro_sep)","t_productos","pro_id=$G_ID AND pro_pie=$G_CU");
			if($G_CA>$LQ_STO_DIS){
				$bit_stock_ex=1;
			}
			//@@++++
			$ss="INSERT INTO cotizaciones_det ".
			    "VALUES ($StrId,$cx,$G_ID,$G_CA,".
				"$G_PR,$G_IM,$G_DT,'$G_CO','$G_DE',
				$G_CU,$_CONTROL,$VE_CONTROL,$DEV,$DEJ,
				$BIT_STOCK,$BIT_STOCK_USU,$BIT_PRECIO,
				$BIT_PRECIO_USU,$bit_stock_ex,
				$bit_precio_ex,$LQ_STO_DIS,$LQ_PRO_PRE)";			
			//
			ejt($ss);
            ///////////////////////////////////////////////////////////////////////////////////////
			BIT_DET_ADD($_BIT_ID,$ss);
			///////////////////////////////////////////////////////////////////////////////////////
			$B_EXISTE=0;
			for($m=1;$m<=$LISTA_TOTAL;$m++){
				if($LISTA_PRODUCTOS[$m]==$G_ID){
					$B_EXISTE=1;
					break;
				}
			}
			if($B_EXISTE==0){
				$LISTA_TOTAL++;
				$LISTA_PRODUCTOS[$LISTA_TOTAL]=$G_ID;
			}
			//@@@@
			$GEN_TO[$KOT_CX]=$GEN_TO[$KOT_CX]+$G_IM;	
			$GEN_TR[$KOT_CX]=$GEN_TR[$KOT_CX]+$G_IM;			
			//
			if($DET_IT%$KOT_NL==0){
				$KOT_CX=$KOT_CX+1;
				$DET_CC=1;
				$KOT_TO=0;
			}
		}		
		//------------------------------------------------------------------------------------
		$AUX=0;
		if($_DSC>0){
			for($I=1;$I<=$KOT_CX;$I++){
				for($K=$I+1;$K<=$KOT_CX;$K++){
					if($GEN_TO[$I]<$GEN_TO[$K]){
						//
						$AUX=$GEN_TO[$I];
						$GEN_TO[$I]=$GEN_TO[$K];
						$GEN_TO[$K]=$AUX;
						//
						$AUX=$GEN_ID[$I];
						$GEN_ID[$I]=vbval($GEN_ID[$K]);
						$GEN_ID[$K]=$AUX;
					}
				}
			}
			//			
			for($I=1;$I<=$KOT_CX;$I++){
				if($GEN_TO[$I]>=$_DSC){
					$GEN_TD[$I]=$_DSC;	
					$GEN_TR[$I]=round($GEN_TO[$I] - $_DSC,2);														
					break;
				}else{
					$GEN_TD[$I]=$GEN_TO[$I];										
					$GEN_TR[$I]=0;
					$_DSC=$_DSC - $GEN_TO[$I];					
				}
			}
		}		
		//------------------------------------------------------------------------------------		
		for($I=1;$I<=$KOT_CX;$I++){
			for($K=$I+1;$K<=$KOT_CX;$K++){
				if(vbval($GEN_ID[$I])>vbval($GEN_ID[$K])){
					//
					$AUX=$GEN_ID[$I];
					$GEN_ID[$I]=vbval($GEN_ID[$K]);
					$GEN_ID[$K]=$AUX;
					//
					$AUX=$GEN_TO[$I];
					$GEN_TO[$I]=$GEN_TO[$K];
					$GEN_TO[$K]=$AUX;
					//
					$AUX=$GEN_TR[$I];
					$GEN_TR[$I]=$GEN_TR[$K];
					$GEN_TR[$K]=$AUX;
					//
					$AUX=$GEN_TD[$I];
					$GEN_TD[$I]=$GEN_TD[$K];
					$GEN_TD[$K]=$AUX;

				}
			}
		}			
		//------------------------------------------------------------------------------------		
		$_TOT_ADE=$_ADE;
		$_TR_TOT=0;
		if($_TDP=="CO" && $_ADE>=0){		
			for($k=1;$k<=$KOT_CX;$k++){
				$_I=vbval($GEN_ID[$k]);
				$_T=round($GEN_TO[$k],2);
				$_TR=round($GEN_TR[$k],2);
				$_TD=round($GEN_TD[$k],2);
				$_TR_TOT=$_TR_TOT+$_TR;
				if($k<$KOT_CX){
					$_TOT_ADE=$_TOT_ADE - $_TR;										
					$s="UPDATE cotizaciones 
						SET tot=$_T,acu=$_TR,tot_cob=$_TR,tot_real=$_TR,tot_des=$_TD,vue=0,id_tip_pag='CO'
						WHERE id_cotizacion=$_I";	
					ejt($s);
					//
					BIT_DET_ADD($_BIT_ID,$s);
					//
				}else{
					$_vue=round($_TOT_ADE - $_TR,2);
					$_TOT_ADE=$_TOT_ADE ;	
					$_KOB=$_TOT_ADE - $_vue;
					$s="UPDATE cotizaciones 
						SET tot=$_T,acu=$_TOT_ADE,tot_cob=$_KOB,tot_real=$_TR,tot_des=$_TD,vue=$_vue,id_tip_pag='CO'
						WHERE id_cotizacion=$_I";	
					ejt($s);
					//
					BIT_DET_ADD($_BIT_ID,$s);
					//
				}
				//++++++++++++++++++++++++++
				$lq_s="SELECT * FROM cotizaciones WHERE id_cotizacion=$_I ORDER BY id_cotizacion";
				$lq_rs = grs($lq_s);
				while ($lq_r = $lq_rs->fetch_assoc()){
					$_ID=$lq_r['id_cotizacion'];
					$_SE=$lq_r['iser'];
					$_NU=$lq_r['inum'];
					$SER=vbr("0000".$_SE,4);
					$NUM=vbr("000000".$_NU,6);
					$s="UPDATE cotizaciones SET ser='$SER',num='$NUM' WHERE id_cotizacion=$_ID";
					ejt($s);
					//
					BIT_DET_ADD($_BIT_ID,$s);
					//
				}
				//++++++++++++++++++++++++
			}
		}
		if($_TDP=="CR" && $_ADE>=0){
			for($k=1;$k<=$KOT_CX;$k++){
				$_I=vbval($GEN_ID[$k]);
				$_T=round($GEN_TO[$k],2);	
				$_TR=round($GEN_TR[$k],2);			
				$_TD=round($GEN_TD[$k],2);			
				$_ACU=0;
				if($_TOT_ADE >= $_TR){
					$_TDP="CO";
					$_ACU=$_TR;
					$_KOB=$_TR;
					$_TOT_ADE=$_TOT_ADE - $_TR;										
				}else{
					$_TDP="CR";
					if($_TOT_ADE>0){
						$_ACU=$_TOT_ADE;
						$_KOB=$_ACU;
						$_TOT_ADE=$_TOT_ADE - $_TR;
					}else{
						$_ACU=0;
						$_KOB=0;
						$_TOT_ADE=0;
					}					
				}
				$s="UPDATE cotizaciones 
					SET tot=$_T,acu=$_ACU,tot_cob=$_KOB,tot_real=$_TR,tot_des=$_TD,vue=0,id_tip_pag='$_TDP'
					WHERE id_cotizacion=$_I";	
				ejt($s);
				//
				BIT_DET_ADD($_BIT_ID,$s);
				//
				//FV_VEN_INI
				COTIZACION_BIT_PARSE($_I);
				$qqq=FUN_COT_UPDATE($_I);	
				BIT_DET_ADD($_BIT_ID,$qqq);
				//FV_VEN_INI
				//++++++++++++++++++++++++++
				$lq_s="SELECT * FROM cotizaciones WHERE id_cotizacion=$_I ORDER BY id_cotizacion";
				$lq_rs = grs($lq_s);
				while ($lq_r = $lq_rs->fetch_assoc()){
					$_ID=$lq_r['id_cotizacion'];
					$_SE=$lq_r['iser'];
					$_NU=$lq_r['inum'];
					$SER=vbr("0000".$_SE,4);
					$NUM=vbr("000000".$_NU,6);
					$s="UPDATE cotizaciones SET ser='$SER',num='$NUM' WHERE id_cotizacion=$_ID";
					ejt($s);
					BIT_DET_ADD($_BIT_ID,$s);
				}
				//++++++++++++++++++++++++			
			}	
		}
		//------------------------------------------------------------------------------------
		$MSG_OK="OK";
		$MSG_ID=$StrId;
		//
		$MSG_NS="";
		for($k=1;$k<=$KOT_CX;$k++){
			$_I=vbval($GEN_ID[$k]);
			$MSG_NS=$MSG_NS.gs("CONCAT(ser,'-',num)","cotizaciones","id_cotizacion=".$_I).",";
		}
		if(strlen($MSG_NS)>0){
			$MSG_NS=vbmid($MSG_NS,1,strlen($MSG_NS)-1);
		}
		//@@@@
		for($m=1;$m<=$LISTA_TOTAL;$m++){
			T_P_ACT($LISTA_PRODUCTOS[$m]);
		}
		//@@@@			
		$MSG_SE=$_SER;
		$MSG_NU=$_NUM;
		$MSG_VU=NF2($_VUE,2);
		if($_KLI==1){
			$MSG_EX="Complete los datos correspondientes al cliente";
		}else{
			$MSG_EX="X";
		}
		//echo $MSG_OK."@".$MSG_ID."@".$MSG_NS."@".$MSG_VU."@".$MSG_EX."@".$MSG_SE."@".$MSG_NU;
		$STR_RPT="|OK|".$MSG_ID."|".$MSG_NS."|".$MSG_VU."|".$MSG_EX."|".$MSG_SE."|".$MSG_NU."|";
		echo $STR_RPT;return;
	}
	//
	if($CM=="MP_2021"){
		$APK=vbval($P1);
		$ITE=vbval($P2);
		$PRE=vbval($P3);
		$IMP=vbval($P4);
		$USU=trim($P5);
		$PAS=trim($P6);
		$BRE=vbval($P7);
		$REQ_VAL=vbval($P8);
		//
		$APK_R=APK_VAL_EX($APK);
		if(strlen($APK_R)>0){
			echo "|MS|".$APK_R."|";return;
		}
		//
		$BIT_PRECIO=0;
		$BIT_PRECIO_USU=0;
		//
		if($REQ_VAL==1){
			$MP=vbval(gs("mp","usuarios","nom='$USU' AND pass='$PAS'"));
			if($MP==0){
				echo "|MS|Usuario no autorizado para modificar precio|";return;
			}
			$BIT_PRECIO=1;
			$BIT_PRECIO_USU=gn("id_usuario","usuarios","nom='$USU' AND pass='$PAS'");
		}
		//
		$s="UPDATE apk_proforma_det 
			SET apk_pre=$PRE,apk_imp=$IMP 
			WHERE apk_id_apk=$APK AND apk_cx=$ITE";
		ejt($s);
		if($BIT_PRECIO==1){
			$s="UPDATE apk_proforma_det 
				SET 
				bit_precio=$BIT_PRECIO,
				bit_precio_usu=$BIT_PRECIO_USU
				WHERE apk_id_apk=$APK AND apk_cx=$ITE";
			ejt($s);
		}
		echo "|OK|";return;
	}
	//
	if($CM=="LG_2021"){
		$U=$P1;
		$P=$P2;
		$ID=gn("id_usuario","usuarios","nom='$U' AND pass='$P' AND id_usuario>0 AND hab='SI'");		
		if($ID==0){
			echo "|MS|Usuario no registrado/habilitado|";
			return;
		}else{
			//VERIFICAR SI PUEDE EMITIR PROFORMAS
			$TA=gn("valor","usuarios_menus","id_usuario=$ID AND id_sm=27");
			if($TA==0){
				echo "|MS|El usuario no esta autorizado para emitir proformas|";
				return;
			}
			//
			$ALMP="";
			$ALM=gn("pro_id_alm","usuarios","id_usuario=$ID");
			if($ALM==0){
				$ALMP="TODOS";
			}else{				
				$ALMP=gs("alm_obs","almacenes","id_almacen=$ALM");
			}
			$ALM="";
			$s="SELECT alm_obs as A FROM almacenes WHERE id_almacen>0 ORDER BY alm_obs";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$ALM=$ALM.$row['A']."@";
			}
			//
			$UZU="@";
			$s="SELECT nom as A FROM usuarios WHERE id_usuario>0 AND hab='SI' AND mp='1' ORDER BY nom";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$UZU=$UZU.$row['A']."@";
			}
			//
			$MOD=vbval(gs("mv","usuarios","id_usuario=$ID"));
			$ELI=vbval(gs("ev","usuarios","id_usuario=$ID"));
			$ANU=vbval(gs("av","usuarios","id_usuario=$ID"));
			//APK
			$APK=GenId("id_apk","apk");
			$IDU=$ID;
			$FEI=date("Y-m-d");
			$HOI=GetHora();
			$FEF="2000-01-01";
			$HOF="";
			//OBTENER SU ULTIMA INSTANCIA
			$APK_L=gn("MAX(id_apk)","apk","apk_id_usuario=$IDU");
			$s="INSERT INTO apk VALUES ($APK,$IDU,'$FEI','$HOI','$FEF','$HOF');";
			ejt($s);
			$FEC=date("d-m-y");
			if($APK_L>0){
				ejt("UPDATE apk_proforma_det SET apk_id_apk=$APK WHERE apk_id_apk=$APK_L");
				//REENUMERAR
				$CX=0;
				$s="SELECT * FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
				$rs = grs($s);
				while ($r = $rs->fetch_assoc()){
					$CX++;
					ejt("UPDATE apk_proforma_det SET apk_cx=$CX WHERE apk_id_apk=$APK AND apk_cx=".$r['apk_cx']);
				}
				
			}
			//ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK");
			//APK
			echo "|OK|".$APK."|".$FEC."|".$MOD."|".$ANU."|".$ELI."|".$ALMP."|".$ALM."|".$UZU."|";
			return;
		}
		
	}
	//
	if($CM=="LG_2022"){
		echo "|MS|Se require actualizar la aplicacion|";
		return;
			
		$U=$P1;
		$P=$P2;
		$ID=gn("id_usuario","usuarios","nom='$U' AND pass='$P' AND id_usuario>0 AND hab='SI'");		
		if($ID==0){
			echo "|MS|Usuario no registrado/habilitado|";
			return;
		}else{
			//VERIFICAR SI PUEDE EMITIR PROFORMAS
			$TA=gn("valor","usuarios_menus","id_usuario=$ID AND id_sm=27");
			if($TA==0){
				echo "|MS|El usuario no esta autorizado para emitir proformas|";
				return;
			}
			//
			$ALMP="";
			$ALM=gn("pro_id_alm","usuarios","id_usuario=$ID");
			if($ALM==0){
				$ALMP="TODOS";
			}else{				
				$ALMP=gs("alm_obs","almacenes","id_almacen=$ALM");
			}
			$ALM="";
			$s="SELECT alm_obs as A FROM almacenes WHERE id_almacen>0 ORDER BY alm_obs";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$ALM=$ALM.$row['A']."@";
			}
			//
			$UZU="@";
			$s="SELECT nom as A FROM usuarios WHERE id_usuario>0 AND hab='SI' AND mp='1' ORDER BY nom";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$UZU=$UZU.$row['A']."@";
			}
			//
			$EMP="@";
			$s="SELECT emp_nomc as A FROM empresas WHERE id_emp>0 ORDER BY emp_nomc";
			$rs = grs($s);
			while ($r = $rs->fetch_assoc()){
				$EMP=$EMP.$r['A']."@";
			}
			//
			$MOD=vbval(gs("mv","usuarios","id_usuario=$ID"));
			$ELI=vbval(gs("ev","usuarios","id_usuario=$ID"));
			$ANU=vbval(gs("av","usuarios","id_usuario=$ID"));
			//APK
			$APK=GenId("id_apk","apk");
			$IDU=$ID;
			$FEI=date("Y-m-d");
			$HOI=GetHora();
			$FEF="2000-01-01";
			$HOF="";
			//OBTENER SU ULTIMA INSTANCIA
			$APK_L=gn("MAX(id_apk)","apk","apk_id_usuario=$IDU");
			$s="INSERT INTO apk VALUES ($APK,$IDU,'$FEI','$HOI','$FEF','$HOF');";
			ejt($s);
			$FEC=date("d-m-y");
			if($APK_L>0){
				ejt("UPDATE apk_proforma_det SET apk_id_apk=$APK WHERE apk_id_apk=$APK_L");
				//REENUMERAR
				$CX=0;
				$s="SELECT * FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
				$rs = grs($s);
				while ($r = $rs->fetch_assoc()){
					$CX++;
					ejt("UPDATE apk_proforma_det SET apk_cx=$CX WHERE apk_id_apk=$APK AND apk_cx=".$r['apk_cx']);
				}
				
			}
			//ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK");
			//APK
			echo "|OK|".$APK."|".$FEC."|".$MOD."|".$ANU."|".$ELI."|".$ALMP."|".$ALM."|".$UZU."|".$EMP."|";
			return;
		}
		
	}
	//
	if($CM=="LG_2022_JUNIO"){
		$U=$P1;
		$P=$P2;
		$ID=gn("id_usuario","usuarios","nom='$U' AND pass='$P' AND id_usuario>0 AND hab='SI'");		
		if($ID==0){
			echo "|MS|Usuario no registrado/habilitado|";
			return;
		}else{
			//VERIFICAR SI PUEDE EMITIR PROFORMAS
			$TA=gn("valor","usuarios_menus","id_usuario=$ID AND id_sm=27");
			if($TA==0){
				echo "|MS|El usuario no esta autorizado para emitir proformas|";
				return;
			}
			//
			$ALMP="";
			$ALM=gn("pro_id_alm","usuarios","id_usuario=$ID");
			if($ALM==0){
				$ALMP="TODOS";
			}else{				
				$ALMP=gs("alm_obs","almacenes","id_almacen=$ALM");
			}
			$ALM="";
			$s="SELECT alm_obs as A FROM almacenes WHERE id_almacen>0 ORDER BY alm_obs";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$ALM=$ALM.$row['A']."@";
			}
			//
			$UZU="@";
			$s="SELECT nom as A FROM usuarios WHERE id_usuario>0 AND hab='SI' AND mp='1' ORDER BY nom";
			$r = grs($s);
			while ($row = $r->fetch_assoc()){
				$UZU=$UZU.$row['A']."@";
			}
			//
			$EMP="@";
			$s="SELECT emp_nomc as A FROM empresas WHERE id_emp>0 ORDER BY emp_nomc";
			$rs = grs($s);
			while ($r = $rs->fetch_assoc()){
				$EMP=$EMP.$r['A']."@";
			}
			//
			$MOD=vbval(gs("mv","usuarios","id_usuario=$ID"));
			$ELI=vbval(gs("ev","usuarios","id_usuario=$ID"));
			$ANU=vbval(gs("av","usuarios","id_usuario=$ID"));
			//APK
			$APK=GenId("id_apk","apk");
			$IDU=$ID;
			$FEI=date("Y-m-d");
			$HOI=GetHora();
			$FEF="2000-01-01";
			$HOF="";
			//OBTENER SU ULTIMA INSTANCIA
			$APK_L=gn("MAX(id_apk)","apk","apk_id_usuario=$IDU");
			$s="INSERT INTO apk VALUES ($APK,$IDU,'$FEI','$HOI','$FEF','$HOF');";
			ejt($s);
			$FEC=date("d-m-y");
			if($APK_L>0){
				ejt("UPDATE apk_proforma_det SET apk_id_apk=$APK WHERE apk_id_apk=$APK_L");
				//REENUMERAR
				$CX=0;
				$s="SELECT * FROM apk_proforma_det WHERE apk_id_apk=$APK ORDER BY apk_cx";
				$rs = grs($s);
				while ($r = $rs->fetch_assoc()){
					$CX++;
					ejt("UPDATE apk_proforma_det SET apk_cx=$CX WHERE apk_id_apk=$APK AND apk_cx=".$r['apk_cx']);
				}
				
			}
			//ejt("DELETE FROM apk_proforma_det WHERE apk_id_apk=$APK");
			//APK
			echo "|OK|".$APK."|".$FEC."|".$MOD."|".$ANU."|".$ELI."|".$ALMP."|".$ALM."|".$UZU."|".$EMP."|".$ID."|";
			return;
		}
		
	}
	
?>
