<?php
/*Modificada por Armando Maldonado */
/*Funciones que permiten el manejo de los articulos          */
/*u obtención de los diferentes datos que posee             */
/*************************************************************/
/*Modificada por: Marcela Paz Fuentes Pulgar                 */
/*                                                           */
/*************************************************************/

if ( !defined('SISTEMA_NUCLEO_ARTICULO_INCLUDED') ) {
   	define('SISTEMA_NUCLEO_ARTICULO_INCLUDED',1);
	include_once (SISTEMA_PATH."/apis/adquisiciones/saldo_articulo.php");
	require_once (SISTEMA_PATH."/apis/adquisiciones/movimiento_producto.php");
	require_once (SISTEMA_PATH."/apis/adquisiciones/detalle_movimiento_producto.php");
	include_once (SISTEMA_PATH."/apis/nucleo/comercial/seccion_asociada.php");
	include_once (SISTEMA_PATH."/apis/nucleo/accesorio_externo.php");
	include_once (SISTEMA_PATH."/apis/nucleo/servicios/servicio.php");
	include_once (SISTEMA_PATH."/apis/nucleo/valores/precio_producto.php");
	include_once (SISTEMA_PATH."/apis/nucleo/valores/valor_tipo_moneda.php");
	
	function articulo_existe($articulo) {
	  $sql = "SELECT count(id_bie) FROM articulo WHERE id_bie=$articulo";
	  if( $rs = sql_query($sql) ) {
	     if( $val = sql_fetch_row($rs) ) {
	        return $val[0];
	     }
	  }
	  return 0;
	}

	/********************************************************************************/
	/*Función que permite agregar un nuevo articulo             */
	/*                            */
	/*Parámetros de Entrada                      */
	/*       categoria del bien servicio, marca, pais, nombre,  */
	/*       codigo externo, tipo articulo, linea articulo,     */
	/*       clasificacion articulo, cantidad,         */
	/*       unidad de medida: U, L, K           */
	/*Datos de Salida                      */
	/*       true si se inserto, false si no se inserto      */
	/********************************************************************************/
	function articulo_agregar($categoria, $marca, $pais, $nombre, $cexterno, $linea, $clasificacion, $cantidad, $umedida, $letra="", $idreemplazo=0,$modelos=array(),$valor_ppr=0,$valor_depto_ppr=0,$ubicacion,$costo_rep_sar=0,$genera_inf_art,$asociados=array(),$permiso=0,$activo=1,$codigo_prov,$nombre_ingles,$valor_mo,$horas_mec,$secciones=array()) {
		$id_emp = usuario_empresa();
		$id_suc = usuario_sucursal();
		$id_dep = usuario_departamento();
		$id_sec = usuario_seccion();
		$fecha=dateFormat("d/m/Y");
		if ($seccion = seccion_asociada_lista_tipo($id_emp,$id_suc,$id_dep,$id_sec,'P')) {
			$id_emp = $seccion[0]['id_emp'];
			$id_suc = $seccion[0]['id_suc'];
			$id_dep = $seccion[0]['id_dep'];
			$id_sec = $seccion[0]['id_sec'];
		}
		sql_begin("WORK");
		$resul = 0;
		$id = bien_servicio_agregar($categoria,$marca,$pais,$nombre,$cexterno);
		if ($id > 0) 	{
			$sql = "INSERT INTO articulo (id_bie, id_lar, id_car, cantidad_art, unidad_medida_art, letra_descto_art,genera_inf_art) ";
			$sql.= "VALUES($id, ".sql_escape_integer($linea, true).", ".sql_escape_integer($clasificacion, true).", $cantidad, '$umedida', ".sql_escape($letra, true).",'$genera_inf_art'".")";
			if (sql_query( $sql)) {
				$resul = 1;
				/*if($id_emp==3){
					if(articulo_aplicacion_existe($id)){
						if(!articulo_aplicacion_eliminar($id)){
							$resul=-7;
						}
						if(!articulo_aplicacion_agregar($id,$codigo_prov,NULL,NULL,NULL,$nombre_ingles)){
							$resul=-7;
						}
					}
				}*/
				if ($idreemplazo > 0) {
					if( !articulo_reemplazo_agregar($id, $idreemplazo,$fecha) ) {
						$resul = -1;
					}
					if(usuario_empresa()==2){
						if(!articulo_servicio_actualizar($id,$idreemplazo,usuario_empresa())) {
							$resul = -1;
						}
					}
				}
				if (count($modelos) > 0 ) {
					for($i = 0; $i < count($modelos); $i++) {
						if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
							if (!accesorio_externo_agregar($modelos[$i],$id) ) {
								$resul = -2;
							}
						} else {
							if (!accesorio_agregar($id,$modelos[$i],$id_emp,$id_suc,$id_dep,$id_sec) ) {
								$resul = -2;
							}
						}
					}
				}
				if ($resul>=0) {
					if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
						$costo_rep_ppr=$costo_rep_sar;
					} else {
						$costo_rep_ppr=0;
					}
					if($permiso==1) {
						if(usuario_empresa()==2){
							if(precio_producto_eliminar_todo($id,$id_emp)){
								if(!precio_producto_agregar(1,$id_emp,NULL,NULL,NULL,$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
									$resul = -3;
								}
							}
						}
						if(usuario_empresa()==1){
							$secaso=seccion_asociada_lista_tipo_marca($id_emp,$id_suc,$id_dep,$id_sec,'V',$marca);
							if(precio_producto_eliminar_todo($id,$id_emp)){
								for ($k=0;$k<count($secaso);$k++) {
									if(!precio_producto_agregar(1,$secaso[$k]["id_emp"],$secaso[$k]["id_suc"],$secaso[$k]["id_dep"],$secaso[$k]["id_sec"],$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
										$resul = -3;
									}
								}
							}
						}
					}else{
						for($i=0;$i<count($secciones);$i++) {
							if(precio_producto_eliminar_local($id,$secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"])){
								if(!precio_producto_agregar(1,$secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"],$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
									$resul = -3;
								}
							}
						}
					}
					if ($resul>=0){
						if ($linea!=LINEA_ARTICULO_AUTOACCESSORY) {
							if(usuario_empresa()==1 && $permiso==1){
								$secciones=array();
								$pasosec=seccion_asociada_lista_tipo_marca($id_emp,$id_suc,$id_dep,$id_sec,'V',$marca);
								for ($j=0;$j<count($pasosec);$j++) {
									$secciones[$j]["emp"]=$pasosec[$j]["id_emp"];
									$secciones[$j]["suc"]=$pasosec[$j]["id_suc"];
									$secciones[$j]["dep"]=$pasosec[$j]["id_dep"];
									$secciones[$j]["sec"]=$pasosec[$j]["id_sec"];
								}
							}
							for ($e=0;$e<count($secciones);$e++) {
								if(!saldo_articulo_agregar($id, $secciones[$e]["emp"], $secciones[$e]["suc"], $secciones[$e]["dep"], $secciones[$e]["sec"], date("Y"), date("m"), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $costo_rep_sar,"", $activo,$categoria)){
									$resul = -3;
								}
							}
							if($seccion_v=seccion_asociada_lista_tipo_marca($id_emp, $id_suc, $id_dep, $id_sec, 'V', $marca)) {
								for ($e=0;$e<count($seccion_v);$e++) {
									if (count($modelos) > 0 ) {
										for($i = 0; $i < count($modelos); $i++) {
											if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
												if(!accesorio_externo_agregar($modelos[$i],$id) ){
													$resul = -2;
												}
											} else {
												if(!accesorio_agregar($id,$modelos[$i],$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec']) ) {
													$resul = -2;
												}
											}
										}
									}
								}
							}
						}
					}
					if (!empty($asociados)) {
						if ($resul>0) {
							if (!asociar_modelos($id,$asociados)){
								$resul = -4;
							}
						}
					}
					if($resul>0){
						if ($idreemplazo > 0) {
						//ACTUALIAZAR SALDO ARTICULO DE CADA ID_BIE
							$stock=calcular_stock_actual($idreemplazo,date("m"),date("Y"),$id_emp,$id_suc,$id_dep,$id_sec);	
							$saldo=saldo_articulo_datos($idreemplazo, $id_emp, $id_suc, $id_dep, $id_sec, date("Y"), date("m"));
							if($stock>0){
								$ajustes[0]['correlativo_dmp'] = 0;
								$ajustes[0]['cantidad_dmp'] = $stock;
								$ajustes[0]['descripcion_dmp'] = $nombre;
								$ajustes[0]['precio_dmp']=$saldo['costo_promedio_sar'];
								//REALIZAR AJUSTE DE SALIDA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO A REEMPLAZAR
								$obss="Ajuste de Salida por Reemplazo de Producto $cexterno con fecha ".$fecha;
								$ajustes[0]['id_bie'] = $idreemplazo;
								if($ajuste_salida=ajuste_inventario_agregar($id_emp,$id_suc,$id_dep,$id_sec,$fecha,$obss,usuario_id(),-1,$ajustes) ){
									$idmpr_sa=obtener_id_mpr(1,$ajuste_salida);
								} else {
									$resul=-6;
								}
								//REALIZAR AJUSTE DE ENTRADA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO QUE REEMPLAZA
								$obse="Ajuste de Entrada por Reemplazo de Producto con fecha ".$fecha;
								$ajustes[0]['id_bie'] = $id;
								if($ajuste_entrada=ajuste_inventario_agregar( $id_emp,$id_suc,$id_dep,$id_sec,$fecha,$obss,usuario_id(),1,$ajustes) ){
									$idmpr_en=obtener_id_mpr(1,$ajuste_entrada);
									if(!movimiento_producto_relacionado_agregar ($idmpr_en,$idmpr_sa)){
										$resul=-6;
									}
								} else {
									$resul=-6;
								}
							}
						}
						if($permiso==1) {
							if ($idreemplazo > 0) {
								for ($e=0;$e<count($seccion_v);$e++) {
									//ACTUALIAZAR SALDO ARTICULO DE CADA ID_BIE
									$stock=calcular_stock_actual($idreemplazo,date("m"),date("Y"),$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec']);
									$saldo=saldo_articulo_datos($idreemplazo,$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'], date("Y"), date("m"));
									if($stock>0){
										$ajustes[0]['correlativo_dmp'] = 0;
										$ajustes[0]['cantidad_dmp'] = $stock;
										$ajustes[0]['descripcion_dmp'] = $nombre;
										$ajustes[0]['precio_dmp'] = $saldo['costo_promedio_sar'];
										//REALIZAR AJUSTE DE SALIDA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO A REEMPLAZAR
										$obss="Ajuste de Salida por Reemplazo de Producto $cexterno con fecha ".$fecha;
										$ajustes[0]['id_bie'] = $idreemplazo;
										if($ajuste_salida=ajuste_inventario_agregar( $seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'],$fecha,$obss,usuario_id(),-1,$ajustes) ){
											$idmpr_sa=obtener_id_mpr(1,$ajuste_salida);
										} else {
											$resul=-6;
										}
										//REALIZAR AJUSTE DE ENTRADA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO QUE REEMPLAZA
										$obse="Ajuste de Entrada por Reemplazo de Producto con fecha ".$fecha;
										$ajustes[0]['id_bie'] = $id;
										if($ajuste_entrada=ajuste_inventario_agregar( $seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'],$fecha,$obss,usuario_id(),1,$ajustes) ){
											$idmpr_en=obtener_id_mpr(1,$ajuste_entrada);
											if(!movimiento_producto_relacionado_agregar($idmpr_en,$idmpr_sa)){
												$resul=-6;
											}
										} else {
											$resul=-6;
										}
									}
								}
							}
						}//FIN PROCEDIMIENTO REEMPLAZO
					}
				}//res
			}
		}
		if($resul > 0) {
			sql_commit("WORK");
		} else {
			sql_rollback("WORK");
		}
		return $resul;
	}

	function articulo_agregar_esp($categoria, $marca, $pais, $nombre, $cexterno, $linea, $clasificacion, $cantidad, $umedida, $letra="", $idreemplazo=0, $valor_ppr=0,$valor_depto_ppr=0,$ubicacion,$costo_rep_sar,$genera_inf_art) {
		$id_emp = usuario_empresa();
		$id_suc = usuario_sucursal();
		$id_dep = usuario_departamento();
		$id_sec = usuario_seccion();
		$fecha=dateFormat("d/m/Y");
		if ($seccion = seccion_asociada_lista_tipo($id_emp,$id_suc,$id_dep,$id_sec,'P'))
		{
			$id_emp = $seccion[0]['id_emp'];
			$id_suc = $seccion[0]['id_suc'];
			$id_dep = $seccion[0]['id_dep'];
			$id_sec = $seccion[0]['id_sec'];
		}
		sql_begin("WORK");
		$resul = 0;
		$id = bien_servicio_agregar($categoria,$marca,$pais,$nombre,$cexterno);
		if ($id > 0) {
			$sql = "INSERT INTO articulo (id_bie, id_lar, id_car, cantidad_art, unidad_medida_art, letra_descto_art,genera_inf_art) ";
			$sql.= "VALUES($id, ".sql_escape_integer($linea, true).", ".sql_escape_integer($clasificacion, true).", $cantidad, '$umedida', ".sql_escape($letra, true).",'$genera_inf_art'".")";
			if (sql_query( $sql)) {
				$resul = 1;
				if ($idreemplazo > 0) {
					if( !articulo_reemplazo_agregar($id, $idreemplazo,$fecha) ) {
						$resul = -1;
					}
				}
				if ($resul>=0) {
					if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
						$id_suc=NULL;
						$id_dep=NULL;
						$id_sec=NULL;
					}
					if (!precio_producto_agregar(1,$id_emp,$id_suc,$id_dep,$id_sec,$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr)){
						$resul = -3;
					}
				}
				if ($resul>=0){
					if ($linea!=LINEA_ARTICULO_AUTOACCESSORY) {
						if (!saldo_articulo_agregar($id, $id_emp,$id_suc,$id_dep,$id_sec, date("Y"), date("m"), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $costo_rep_sar,$ubicacion, true,$categoria)){
							$resul = -3;
						}
					}
				}
			}
		}
		if($resul > 0) {
			sql_commit("WORK");
		} else {
			sql_rollback("WORK");
		}
		return $resul;
	}

   /********************************************************************************/
   /*Función que permite agregar un nuevo articulo             */
   /*                            */
   /*Parámetros de Entrada                      */
   /*       categoria del bien servicio, marca, pais, nombre,  */
   /*       codigo externo, tipo articulo, linea articulo,     */
   /*       clasificacion articulo, cantidad,         */
   /*       unidad de medida: U, L, K           */
   /*Datos de Salida                      */
   /*       true si se modico             */
   /*       false si no se modifico             */
   /********************************************************************************/
   function articulo_actualizar($id, $categoria,$marca,$pais,$nombre,$cexterno, $linea, $clasificacion, $cantidad=0, $umedida, $letra="", $idreemplazo=0, $modelos=array(),$valor_ppr=0,$valor_depto_ppr=0,$id_ppr,$ubicacion_sar,$costo_rep_sar=0,$genera_inf_art,$asociados=array(),$guardar_mod,$permiso=0,$activo=1,$codigo_prov,$nombre_ingles,$valor_mo,$horas_mec,$secciones=array()) {
   	sql_begin("WORK");
	$id_emp = usuario_empresa();
	$id_suc = usuario_sucursal();
	$id_dep = usuario_departamento();
	$id_sec = usuario_seccion();
	$fecha=dateFormat("d/m/Y");
	$costo_rep_sar=(!empty($costo_rep_sar)?$costo_rep_sar:'0');
	if ($seccion = seccion_asociada_lista_tipo($id_emp,$id_suc,$id_dep,$id_sec,'P')) {
		$id_emp = $seccion[0]['id_emp'];
		$id_suc = $seccion[0]['id_suc'];
		$id_dep = $seccion[0]['id_dep'];
		$id_sec = $seccion[0]['id_sec'];
	}	

	$resul = 0;
	if( bien_servicio_actualizar($id,$categoria,$marca,$pais,$nombre,$cexterno) != 0 ) {
		if( articulo_existe($id)) {
			$sql = "UPDATE articulo SET ";
			$sql.= "id_lar=".sql_escape_integer($linea, true).", ";
			$sql.= "id_car=".sql_escape_integer($clasificacion, true).", ";
			$sql.= "cantidad_art=$cantidad, ";
			$sql.= "unidad_medida_art='$umedida', ";
			$sql.= "letra_descto_art=".sql_escape($letra, true).", ";
			$sql.= "genera_inf_art='$genera_inf_art'";
			$sql.= " WHERE id_bie=$id";
		}else{
			$sql = "INSERT INTO articulo (id_bie, id_lar, id_car, cantidad_art, unidad_medida_art, letra_descto_art,genera_inf_art) ";
			$sql.= "VALUES($id, ".sql_escape_integer($linea, true).", ".sql_escape_integer($clasificacion, true).", $cantidad, '$umedida', ".sql_escape($letra, true).",'$genera_inf_art'".")";
		}
		if( sql_query( $sql ) ) {
			$resul = 1;
			/*if($id_emp==3){
				if(articulo_aplicacion_existe($id)){
					if(!articulo_aplicacion_eliminar($id)){
						$resul=-7;
					}
					if(!articulo_aplicacion_agregar($id,$codigo_prov,NULL,NULL,NULL,$nombre_ingles)){
						$resul=-7;
					}
				}
			}*/
			if(articulo_reemplazo_existe($id)) {
				if(!articulo_reemplazo_eliminar( $id)) {
					$resul = -1;
				}
			}
			if($idreemplazo > 0) {
				if(usuario_empresa()==2){
					if(!articulo_servicio_actualizar($id,$idreemplazo,usuario_empresa())) {
						$resul = -1;
					}
				}
				if(!articulo_reemplazo_agregar( $id, $idreemplazo,$fecha)) {
					$resul = -1;
				}
			}
			if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
				if (!accesorio_externo_eliminar(0,$id)) {
					$resul = -2;
				}
				if (count($modelos) > 0) {
					for($i=0; $i<count($modelos); $i++) {
						if (!accesorio_externo_agregar($modelos[$i],$id)) {
							$resul = -2;
						}
					}
				}
			} else {
				if ($guardar_mod!=0) {
					if (accesorio_existe($id,0,$id_emp,$id_suc,$id_dep,$id_sec) > 0) {
						if (!accesorio_eliminar( $id,0,$id_emp,$id_suc,$id_dep,$id_sec)) {
							$resul = -2;
						}
					}
					if (count($modelos) > 0) {
						for($i=0; $i<count($modelos); $i++) {
							if (!accesorio_agregar($id,$modelos[$i],$id_emp,$id_suc,$id_dep,$id_sec) ) {
								$resul = -2;
							}
						}
					}
				}
			}
			if ($resul>0){
				if ($linea!=LINEA_ARTICULO_AUTOACCESSORY) {
					if (saldo_articulo_existe($id,$id_emp,$id_suc,$id_dep,$id_sec,date("Y"),date("m"))){
						if(!saldo_articulo_modificar_ubicacion($id,$id_emp,$id_suc,$id_dep,$id_sec,date("Y"),date("m"),$ubicacion_sar,$costo_rep_sar,$activo) ) {
							$resul = -4;
						}
					}else{
						if (!saldo_articulo_agregar($id, $id_emp,$id_suc,$id_dep,$id_sec, date("Y"), date("m"), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $costo_rep_sar, $ubicacion_sar, $activo,$categoria)){
							$resul = -4;
						}
					}
					if($resul>0 && $activo=='true'){
						if(usuario_empresa()==1 && $permiso==1){
							$secciones=array();
							$pasosec=seccion_asociada_lista_tipo_marca($id_emp,$id_suc,$id_dep,$id_sec,'V',$marca);
							for ($j=0;$j<count($pasosec);$j++) {
								$secciones[$j]["emp"]=$pasosec[$j]["id_emp"];
								$secciones[$j]["suc"]=$pasosec[$j]["id_suc"];
								$secciones[$j]["dep"]=$pasosec[$j]["id_dep"];
								$secciones[$j]["sec"]=$pasosec[$j]["id_sec"];
							}
						}
						for ($i=0;$i<count($secciones);$i++) {
							if (!saldo_articulo_existe($id, $secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"],date("Y"),date("m"))) {
								if (!saldo_articulo_agregar($id,$secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"], date("Y"), date("m"), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $costo_rep_sar, "", $activo,$categoria)){
									$resul = -4;
								}
							} else {
								if(!saldo_articulo_modificar_ubicacion($id,$secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"],date("Y"),date("m"),"D",$costo_rep_sar,$activo) ) {
									$resul = -4;
								}
							}
						}
					}
				}
			}
			if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
				$costo_rep_ppr=$costo_rep_sar;
			} else {
				$costo_rep_ppr=0;
			}
			if($resul>0){
				if($permiso==1) {
					if(usuario_empresa()==2){
						if(precio_producto_eliminar_todo($id,$id_emp)){
							if(!precio_producto_agregar(1,$id_emp,NULL,NULL,NULL,$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
								$resul = -3;
							}
						}
					}
					if(usuario_empresa()==1){
						$secaso=seccion_asociada_lista_tipo_marca($id_emp,$id_suc,$id_dep,$id_sec,'V',$marca);
						if(precio_producto_eliminar_todo($id,$id_emp)){
							for ($k=0;$k<count($secaso);$k++) {
								if(!precio_producto_agregar(1,$secaso[$k]["id_emp"],$secaso[$k]["id_suc"],$secaso[$k]["id_dep"],$secaso[$k]["id_sec"],$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
									$resul = -3;
								}
							}
						}
					}
				}elseif($permiso==3) {
					if(usuario_empresa()==2){
						if(precio_producto_eliminar_local($id,$id_emp,NULL,NULL,NULL)){
							if(!precio_producto_agregar(1,$id_emp,NULL,NULL,NULL,$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
								$resul = -3;
							}
						}
					}
				}else{	
					for($i=0;$i<count($secciones);$i++) {
						if(precio_producto_eliminar_local($id,$secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"])){
							if(!precio_producto_agregar(1,$secciones[$i]["emp"],$secciones[$i]["suc"],$secciones[$i]["dep"],$secciones[$i]["sec"],$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr,0,$costo_rep_ppr,$valor_mo,$horas_mec)){
								$resul = -3;
							}
						}
					}
				}
	
				if ($seccion_v = seccion_asociada_lista_tipo_marca($id_emp,$id_suc,$id_dep,$id_sec,'V',$marca)) {
					for ($e=0;$e<count($seccion_v);$e++) {
						if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
							if (!accesorio_externo_eliminar(0,$id)) {
								$resul = -2;
							}
							if (count($modelos) > 0) {
								for($i=0; $i<count($modelos); $i++) {
									if (!accesorio_externo_agregar($modelos[$i],$id)) {
										$resul = -2;
									}
								}
							}
						} else {
							if ($guardar_mod!=0) {
								if (accesorio_existe($id,0,$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec']) > 0) {
									if (!accesorio_eliminar( $id,0,$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'])) {
										$resul = -2;
									}
								}
								if (count($modelos) > 0) {
									for($i=0; $i<count($modelos); $i++) {
										if (!accesorio_agregar($id,$modelos[$i],$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec']) ) {
											$resul = -2;
										}
									}
								}
							}
						}
					}
				}
			}
   			if($resul>0){
				if ($idreemplazo > 0) {
					//ACTUALIAZAR SALDO ARTICULO DE CADA ID_BIE
					$stock=calcular_stock_actual($idreemplazo,date("m"),date("Y"),$id_emp,$id_suc,$id_dep,$id_sec);
					$saldo=saldo_articulo_datos($idreemplazo, $id_emp, $id_suc, $id_dep, $id_sec, date("Y"), date("m"));

					if($stock>0){
						$ajustes[0]['correlativo_dmp'] = 0;
						$ajustes[0]['cantidad_dmp'] = $stock;
						$ajustes[0]['descripcion_dmp'] = $nombre;
						$ajustes[0]['precio_dmp'] = $saldo['costo_promedio_sar'];
			
						//REALIZAR AJUSTE DE SALIDA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO A REEMPLAZAR
						$obss="Ajuste de Salida por Reemplazo de Producto $cexterno con fecha ".$fecha;
						$ajustes[0]['id_bie'] = $idreemplazo;
						if($ajuste_salida=ajuste_inventario_agregar( $id_emp,$id_suc,$id_dep,$id_sec,$fecha,$obss,usuario_id(),-1,$ajustes) ){
							$idmpr_sa=obtener_id_mpr(1,$ajuste_salida);
						} else {
							$resul=-6;
						}
						//REALIZAR AJUSTE DE ENTRADA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO QUE REEMPLAZA
						$obse="Ajuste de Entrada por Reemplazo de Producto con fecha ".$fecha;
						$ajustes[0]['id_bie'] = $id;
						if($ajuste_entrada=ajuste_inventario_agregar( $id_emp,$id_suc,$id_dep,$id_sec,$fecha,$obss,usuario_id(),1,$ajustes) ){
							$idmpr_en=obtener_id_mpr(1,$ajuste_entrada);
							if(!movimiento_producto_relacionado_agregar ($idmpr_en,$idmpr_sa)){
								$resul=-6;
							}
						} else {
							$resul=-6;
						}
					}
				}
				if($permiso==1) {
					if ($idreemplazo > 0) {
						for ($e=0;$e<count($seccion_v);$e++) {	
							//ACTUALIAZAR SALDO ARTICULO DE CADA ID_BIE
							$stock=calcular_stock_actual($idreemplazo,date("m"),date("Y"),$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec']);
							$saldo=saldo_articulo_datos($idreemplazo,$seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'], date("Y"), date("m"));

							if($stock>0){
								$ajustes[0]['correlativo_dmp'] = 0;
								$ajustes[0]['cantidad_dmp'] = $stock;
								$ajustes[0]['descripcion_dmp'] = $nombre;
								$ajustes[0]['precio_dmp'] = $saldo['costo_promedio_sar'];
							//REALIZAR AJUSTE DE SALIDA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO A REEMPLAZAR
								$obss="Ajuste de Salida por Reemplazo de Producto $cexterno con fecha ".$fecha;
								$ajustes[0]['id_bie'] = $idreemplazo;
								if($ajuste_salida=ajuste_inventario_agregar( $seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'],$fecha,$obss,usuario_id(),-1,$ajustes) ){
									$idmpr_sa=obtener_id_mpr(1,$ajuste_salida);
								} else {
									$resul=-6;
								}
								//REALIZAR AJUSTE DE ENTRADA POR STOCK ACTUAL EN PERIODO DEL PRODUCTO QUE REEMPLAZA
								$obse="Ajuste de Entrada por Reemplazo de Producto con fecha ".$fecha;
								$ajustes[0]['id_bie'] = $id;
								if($ajuste_entrada=ajuste_inventario_agregar( $seccion_v[$e]['id_emp'],$seccion_v[$e]['id_suc'],$seccion_v[$e]['id_dep'],$seccion_v[$e]['id_sec'],$fecha,$obss,usuario_id(),1,$ajustes) ){
									$idmpr_en=obtener_id_mpr(1,$ajuste_entrada);
									if(!movimiento_producto_relacionado_agregar ($idmpr_en,$idmpr_sa)){
										$resul=-6;
									}
								} else {
									$resul=-6;
								}
							}
                  				 }
                			}		
            			}//FIN PROCEDIMIENTO REEMPLAZO
				if (!empty($asociados)) {
					if ($resul>0){
						if (!asociar_modelos($id,$asociados)){
							$resul = -4;
						}
					}
				}
         		}
      		}
     	}
	if($resul > 0) {
		sql_commit("WORK");
	} else {
		sql_rollback("WORK");
	}
	return $resul;
   }

   function articulo_actualizar_esp($id, $categoria,$marca,$pais,$nombre,$cexterno, $linea, $clasificacion, $cantidad=0, $umedida, $letra="", $idreemplazo=0,$valor_ppr=0,$valor_depto_ppr=0,$id_ppr,$ubicacion_sar,$costo_rep_sar,$genera_inf_art) {
	sql_begin("WORK");
	if ($costo_rep_sar>0) {
	} else {
		$costo_rep_sar=0;
	}

	$id_emp = usuario_empresa();
	$id_suc = usuario_sucursal();
	$id_dep = usuario_departamento();
	$id_sec = usuario_seccion();
    $fecha=dateFormat("d/m/Y");
	if ($seccion = seccion_asociada_lista_tipo($id_emp,$id_suc,$id_dep,$id_sec,'P'))
	{
		$id_emp = $seccion[0]['id_emp'];
		$id_suc = $seccion[0]['id_suc'];
		$id_dep = $seccion[0]['id_dep'];
		$id_sec = $seccion[0]['id_sec'];
	}

      $resul = 0;
      if( bien_servicio_actualizar($id,$categoria,$marca,$pais,$nombre,$cexterno) != 0 ) {
         $sql = "UPDATE articulo SET ";
         $sql.= "id_lar=".sql_escape_integer($linea, true).", ";
         $sql.= "id_car=".sql_escape_integer($clasificacion, true).", ";
         $sql.= "cantidad_art=$cantidad, ";
         $sql.= "unidad_medida_art='$umedida', ";
         $sql.= "letra_descto_art=".sql_escape($letra, true).", ";
         $sql.= "genera_inf_art='$genera_inf_art'";
         $sql.= " WHERE id_bie=$id";
         if( sql_query( $sql ) ) {
		$resul = 1;
		if(articulo_reemplazo_existe($id)) {
		if(!articulo_reemplazo_eliminar( $id)) {
			$resul = -1;
		}
		}
		if($idreemplazo > 0) {
			if(!articulo_reemplazo_agregar( $id, $idreemplazo,$fecha)) {
				$resul = -1;
			}
		}

		if ($id_ppr>0){
			if (!precio_producto_modificar_valores($id_ppr,$valor_ppr,$valor_depto_ppr)){
				$resul = -3;
			}
		}else{
			if ($linea==LINEA_ARTICULO_AUTOACCESSORY) {
				$id_suc=NULL;
				$id_dep=NULL;
				$id_sec=NULL;
			}
			if (!precio_producto_agregar(1,$id_emp,$id_suc,$id_dep,$id_sec,$id,date("d/m/Y"),"",$valor_ppr,$valor_depto_ppr)){
				$resul = -3;
			}

		}

		if ($resul>0){
			if ($linea!=LINEA_ARTICULO_AUTOACCESSORY) {
				if (saldo_articulo_existe($id, $id_emp,$id_suc,$id_dep,$id_sec,date("Y"),date("m"))){
					if(!saldo_articulo_modificar_ubicacion($id,$id_emp,$id_suc,$id_dep,$id_sec,date("Y"),date("m"),$ubicacion_sar,$costo_rep_sar) ) {
						$resul = -4;
					}
				}else{
					if (!saldo_articulo_agregar($id, $id_emp,$id_suc,$id_dep,$id_sec, date("Y"), date("m"), 0, 0, 0, 0, 0, 0, 0, 0, 0,0, $costo_rep_sar, $ubicacion_sar, true,$categoria)){
						$resul = -4;
					}
				}
			}
		}

              }
      }
      if($resul > 0) {
         sql_commit("WORK");
      } else {
         sql_rollback("WORK");
      }
      return $resul;
   }

   /********************************************************************************/
   /*Función que permite eliminar un articulo               */
   /*                            */
   /*Parámetros de Entrada                      */
   /*       id articulo                */
   /*Datos de Salida                      */
   /*       1 si se elimino               */
   /*       0 si no se elimino               */
   /********************************************************************************/     
	function articulo_eliminar($id) {
		sql_begin("WORK");
		$error=0;
		if (!sql_query("DELETE FROM accesorio_externo WHERE id_bie=$id") ) {
			$error=-1;
		} else {
			if (!sql_query("DELETE FROM accesorio WHERE id_bie=$id") ) {
				$error=-2;
			} else {
				if (!saldo_articulo_eliminar_id_bie($id)) {
					$error=-3;
				} else {
					if (!precio_producto_eliminar_bien($id)) {
						$error=-4;
					} else {
						if (!sql_query("DELETE FROM articulo_reemplazo WHERE id_bie=$id") ) {
								$error=-5;
						} else {
							if (!sql_query("DELETE FROM articulo WHERE id_bie=$id") ) {
								$error=-6;
							} else {
								if (!sql_query("DELETE FROM bien_servicio WHERE id_bie=$id") ) {
									$error=-7;
								} else {
									sql_commit("WORK");
									return 1;
								}
							}
						}
					}
				}
			}
		}
		sql_rollback("WORK");
		return $error;
	}

   /**********************************************************************************/
   /*Función que permite obtener los datos de un articulo registrado      */
   /*Parámetros de Entrada(opcionales)                  */
   /*       id del articulo                    */
   /*Datos de Salida                        */
   /*       Arreglo asociativo con los datos del articulo        */
   /**********************************************************************************/
   function articulo_datos($id) {
	 $art = array();
     if (!empty($id)) { 
      $sql = "SELECT A.id_bie, B.id_cbi, B.id_mbi, B.id_pss, B.nombre_bie, A.letra_descto_art, ";
      $sql.= "B.codigo_externo_bie, A.id_lar, A.id_car, A.cantidad_art, A.unidad_medida_art, L.nombre_lar, A.genera_inf_art ";
      $sql.= "FROM linea_articulo L RIGHT JOIN articulo A ON(L.id_lar=A.id_lar) INNER JOIN bien_servicio B ON (A.id_bie=B.id_bie) WHERE A.id_bie=$id";
      if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_array($rs) ) {
            $art['id_bie']=$val['id_bie'];
            $art['id_cbi']=$val['id_cbi'];
            $art['id_mbi']=$val['id_mbi'];
            $art['id_pss']=$val['id_pss'];
            $art['nombre_bie']=$val['nombre_bie'];
            $art['codigo_externo_bie']=$val['codigo_externo_bie'];
            $art['id_lar']=$val['id_lar'];
            $art['nombre_lar']=$val['nombre_lar'];
            $art['id_car']=$val['id_car'];
            $art['cantidad_art']=$val['cantidad_art'];
            $art['unidad_medida_art']=$val['unidad_medida_art'];
            $art['letra_descto_art']=$val['letra_descto_art'];
 	    $art['genera_inf_art'] = ($val['genera_inf_art']=='t')? 1:0;
         }
      } }
      return $art;
   }

   function articulo_letra($var_id_bie) {
      $art = array();
      $sql = "SELECT id_bie, letra_descto_art, id_lar FROM articulo WHERE id_bie=$var_id_bie";

      if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_array($rs) ) {
            $art['id_bie']=$val['id_bie'];
            $art['letra_descto_art']=$val['letra_descto_art'];
            $art['id_lar']=$val['id_lar'];
         }
      }

      return $art;
   }
   
   function articulo_lista( $categoria, $marca ) {
      $art=array();
      $i=0; 
      $id_emp=usuario_empresa();
      $id_suc=usuario_sucursal();
      $id_dep=usuario_departamento();
      $id_sec=usuario_seccion();
      $id_cbi=explode(",",$categoria);
      $sql = "SELECT DISTINCT ON(A.id_bie) A.id_bie, B.nombre_bie, B.codigo_externo_bie,P.valor_ppr FROM bien_servicio B ";
      $sql.= "INNER JOIN articulo A ON (B.id_bie=A.id_bie) INNER JOIN precio_producto P ON(P.id_bie=A.id_bie) ";
      //$sql.= "WHERE NOT EXISTS(SELECT * FROM articulo_servicio ARS WHERE A.id_bie=ARS.id_bie AND ARS.id_ser=$id)  "; 	
      foreach($id_cbi as $cbi){
         $sql.=($i==0)?" WHERE (B.id_cbi=$cbi":" OR B.id_cbi=$cbi";
         $i=1;
      }
      $sql.=")";	
      $sql.= ($marca>0)? " AND B.id_mbi=$marca " : " ";
     // $sql.=" AND P.id_emp=$id_emp AND P.id_suc=$id_suc AND P.id_dep=$id_dep AND P.id_sec=$id_sec";	
      $sql.= " ORDER BY A.id_bie ASC";
      if( $rs = sql_query($sql) ) {
         $i = 0;
         while( $val = sql_fetch_array($rs) ) {
            $art[$i]['id_bie']=$val['id_bie'];
            $art[$i]['codigo_nombre_bie']=$val['codigo_externo_bie']." - ".$val['nombre_bie'];
	    $art[$i]['valor_ppr']=$val['valor_ppr'];
            $i++;
         }
      }
      return $art;
   }
   
   
   /************************************************************************/
   /*Función que permite agregar la relacion entre articulo y articulo  */
   /*reemplado                      */
   /*                         */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*       id articulo reemplazado          */
   /*Datos de Salida:                     */
   /*       true si la operación es correcta    */
   /*       false si ocurre algún error         */
   /************************************************************************/
   function articulo_reemplazo_agregar( $articulo, $reemplazado,$fecha) {
      $sql = "INSERT INTO articulo_reemplazo(id_bie,id_bie_rel,fecha_rel) VALUES($articulo,$reemplazado,'$fecha')";
      if( sql_query( $sql ) ) {
         return true;
      }
      return false;
   }
   

   /************************************************************************/
   /*Función que permite eliminar reemplazo de accesorio en la base datos. */
   /*                         */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*Datos de Salida:                     */
   /*       true si la operación es correcta    */
   /*       false si ocurre algún error         */
   /************************************************************************/
   function articulo_reemplazo_eliminar($articulo) {
      $sql = "DELETE FROM articulo_reemplazo WHERE id_bie=$articulo";
      if( sql_query( $sql ) ) {
         return true;
      }
      return false;
   }
   
   /************************************************************************/
   /*Función que permite verificar si es un articulo de reemplazo    */
   /*el articulo que se ingresado                  */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*Datos de Salida:                     */
   /*       0 si no existe             */
   /*       1 si existe             */
   /************************************************************************/ 
   function articulo_reemplazo_existe($articulo) {
      $sql = "SELECT count(id_bie) FROM articulo_reemplazo WHERE id_bie=$articulo";
      if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_row($rs) ) {
            return $val[0];
         }
      }
      return 0;
   }
   
   /************************************************************************/
   /*Función que permite obtener el id del articulo que es reemplado    */
   /*por un determinado articulo                */
   /*                         */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*Datos de Salida:                     */
   /*       id articulo             */
   /*       id articulo reemplazado          */
   /************************************************************************/
   function articulo_reemplazo_datos($articulo,$fecha="") {
      $sql = "SELECT id_bie_rel FROM articulo_reemplazo WHERE id_bie=$articulo";
      if($fecha!=""){
            $sql.=" AND fecha_rel='$fecha' ";
      }
      if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_array($rs) ) {
            return $val['id_bie_rel'];
         }
      }
      return 0;
   }
   

/************************************************************************/
/*Función que permite agregar un accesorio a una descripción de modelo  */
/*de vehículo.                      */
/*                         */
/*Datos de Entrada:                    */
/*       id articulo             */
/*       id modelo vehículo            */
/*Datos de Salida:                     */
/*       true si la operación es correcta    */
/*       false si ocurre algún error         */
/************************************************************************/
function accesorio_agregar($articulo,$modelo,$id_emp,$id_suc,$id_dep,$id_sec) {
	$sql="INSERT INTO accesorio(id_bie,id_dmo,id_emp,id_suc,id_dep,id_sec) VALUES($articulo,$modelo,$id_emp,$id_suc,$id_dep,$id_sec)";
	if( sql_query( $sql ) ) {
		return true;
	}
	return false;
}
 

   /************************************************************************/
   /*Función que permite eliminar un accesorio           */
   /*                         */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*       id modelo vehículo            */
   /*Datos de Salida:                     */
   /*       true si la operación es correcta    */
   /*       false si ocurre algún error         */
   /************************************************************************/
   function accesorio_eliminar( $articulo,$id_dmo=0,$id_emp=0,$id_suc=0,$id_dep=0,$id_sec=0) {
      $sql = "DELETE FROM accesorio WHERE id_bie=$articulo";
	if ($id_dmo>0){
		$sql.=" and id_dmo=$id_dmo ";
	}
	if ($id_emp>0 && $id_suc>0 && $id_dep>0 && $id_sec>0){
		$sql.=" and id_emp=$id_emp and id_suc=$id_suc and id_dep=$id_dep and id_sec=$id_sec ";
	}
      if( sql_query( $sql ) ) {
         return true;
      }
      return false;
   }
   

   /************************************************************************/
   /*Función que permite verificar si existe un accesorio en la base datos */
   /*                         */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*Datos de Salida:                     */
   /*       0 si no existe             */
   /*       1 si existe             */
   /************************************************************************/
   function accesorio_existe($articulo,$id_dmo=0,$id_emp=0,$id_suc=0,$id_dep=0,$id_sec=0) {
      $sql="SELECT count(id_bie) FROM accesorio WHERE id_bie=$articulo";

	if ($id_dmo>0){
		$sql.=" and id_dmo=$id_dmo ";
	}

	if ($id_emp>0 && $id_suc>0 && $id_dep>0 && $id_sec>0){
		$sql.=" and id_emp=$id_emp and id_suc=$id_suc and id_dep=$id_dep and id_sec=$id_sec ";
	}

      if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_row($rs) ) {
            return $val[0];
         }
      }
      return 0;
   }
   
   
   /************************************************************************/
   /*Función que obtiene un listado de los modelos de vehículos que tiene  */
   /*asociado.                      */
   /*                         */
   /*Datos de Entrada:                    */
   /*       id articulo             */
   /*Datos de Salida:                     */
   /*       id modelo vehículo, codigo externo modelo,   */
   /*       nombre del modelo          */
   /************************************************************************/
   function accesorio_lista($articulo=0, $id_dmo=0) {
      $art = array();
      if( $articulo > 0 ) {
         $sql = "SELECT A.id_dmo, B.id_bie, B.id_cbi, B.codigo_externo_bie, B.nombre_bie FROM bien_servicio B INNER JOIN descripcion_modelo DM ";
         $sql.= "ON (B.id_bie=DM.id_dmo) INNER JOIN accesorio A ON (DM.id_dmo=A.id_dmo) WHERE A.id_bie=$articulo";
      } else {
         $sql = "SELECT C.id_dmo, B.id_bie, B.id_cbi, B.nombre_bie, B.codigo_externo_bie FROM bien_servicio B INNER JOIN articulo A ON (B.id_bie=A.id_bie) ";
         $sql.= "INNER JOIN accesorio C ON (A.id_bie=C.id_bie) WHERE C.id_dmo=$id_dmo";
	$sql.="order by  B.nombre_bie";
      }
      if( $rs = sql_query($sql) ) {
         $i = 0;
         while( $val = sql_fetch_array($rs) ) {
            $art[$i]['id_dmo'] = $val['id_dmo'];
            $art[$i]['id_bie'] = $val['id_bie'];
            $art[$i]['codigo_externo_bie'] = $val['codigo_externo_bie'];
            $art[$i]['sco_bie'] = ($art[$i]['id_bie'] == $val['id_cbi'])? true : false;
            $art[$i]['nombre_bie'] = $val['nombre_bie'];
            $i++;
         }
      }
      return $art;
   }


function accesorio_lista_vinculado ($id_bie,$id_emp,$id_suc,$id_dep,$id_sec) {
// ***********************************************************************************
// * Funcion php: permite obtener una lista de los registros de la tabla accesorio
// * Creada por: Autogenerador de funciones
// * Fecha: 10 de Enero de 2007
// * Datos de salida:
// * 		 
// * 		 
// ***********************************************************************************
	$accesorio = array();
	$sql = "SELECT id_dmo,id_bie,id_emp,id_suc,id_dep,id_sec FROM accesorio WHERE id_bie=$id_bie AND id_emp=$id_emp AND id_suc=$id_suc AND id_dep=$id_dep AND id_sec=$id_sec";
	if ($rs=sql_query($sql)) {
		$i=0;
		while ($datos=sql_fetch_array($rs)) {
			$accesorio[$i]['id_dmo'] = $datos['id_dmo'];
			$accesorio[$i]['id_bie'] = $datos['id_bie'];
			$accesorio[$i]['id_emp'] = $datos['id_emp'];
			$accesorio[$i]['id_suc'] = $datos['id_suc'];
			$accesorio[$i]['id_dep'] = $datos['id_dep'];
			$accesorio[$i]['id_sec'] = $datos['id_sec'];
			$i++;
		}
	}
	return $accesorio;
}


function accesorio_externo_lista_vinculado ($id_bie,$id_emp,$id_suc,$id_dep,$id_sec) {
// ***********************************************************************************
// * Funcion php: permite obtener una lista de los registros de la tabla accesorio
// * Creada por: Autogenerador de funciones
// * Fecha: 10 de Enero de 2007
// * Datos de salida:
// * 		 
// * 		 
// ***********************************************************************************
	$accesorio = array();
	$sql = "SELECT id_dmo,id_bie FROM accesorio_externo WHERE id_bie=$id_bie";
	if ($rs=sql_query($sql)) {
		$i=0;
		while ($datos=sql_fetch_array($rs)) {
			$accesorio[$i]['id_dmo'] = $datos['id_dmo'];
			$accesorio[$i]['id_bie'] = $datos['id_bie'];
			$i++;
		}
	}
	return $accesorio;
}


/*
select * from saldo_articulo inner join bien_servicio using (id_bie)
where codigo_externo_bie = '04465-02150'
and mes_sar = 4 and ano_sar = 2007
*/
   /************************************************************************/
   /*Función que busca productos sugeridos (informe)                      */
   /*asociado.                      */
   /*                         */
   /************************************************************************/
   function articulo_buscar_producto_sugerido($mes,$mes_a,$ano_a,$bodega,$linea,$cod="",$car="99") {
      $art = array();
      $id_emp=usuario_empresa();
      $sec = explode("_",$bodega);
 $fecha = ultimo_dia_mes($mes_a,$ano_a)."/".$mes_a."/".$ano_a;
         $sql = "SELECT A.id_bie,
( (SA.stock_entrada_sar + SA.traspaso_entrada_sar + SA.ajuste_entrada_sar + SA.stock_inicial_sar)- (SA.stock_salida_sar + SA.traspaso_salida_sar + SA.stock_interno_sar + SA.ajuste_salida_sar)) as stk_act,
(SA.stock_salida_sar + SA.traspaso_salida_sar + SA.stock_interno_sar + SA.ajuste_salida_sar) as vta_mes,
                        BS.nombre_bie, BS.codigo_externo_bie,
                        SA.ano_sar, SA.mes_sar, SA.stock_inicial_sar, SA.stock_oper_sar,
                        SA.stock_maximo_sar, SA.stock_entrada_sar, SA.stock_salida_sar,
                        SA.stock_interno_sar, SA.traspaso_entrada_sar, SA.traspaso_salida_sar,
                        SA.ajuste_entrada_sar, SA.ajuste_salida_sar,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes1,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes2,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes3,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes4,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[5]['mes']." and ano_sar=".$mes[5]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes5,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[6]['mes']." and ano_sar=".$mes[6]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes6,
(
((SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) +
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) +
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) +
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) ) / 4) as stk_prm,

(SA.stock_entrada_sar + SA.traspaso_entrada_sar + SA.ajuste_entrada_sar) as rec_mes,
(SELECT precio_dbs FROM directa_bien_servicio DBS WHERE id_bie = BS.id_bie AND 
fecha_dbs=(SELECT max(fecha_dbs) FROM directa_bien_servicio D where id_bie=DBS.id_bie and fecha_dbs<='$fecha') limit 1) as ultimo_costo

		FROM articulo A
                  inner join linea_articulo LA using (id_lar)
                  inner join bien_servicio BS using (id_bie)
                  inner join saldo_articulo SA using (id_bie) ";
               $sql.= "WHERE ( SA.ano_sar = $ano_a and SA.mes_sar = $mes_a )   ";

if ($id_emp == 1 && $sec[0] == 4 && $sec[1] == 3 && $sec[2] == 6 && $cod == ""){ //rep hyundai, pedido sugerido
	$sql.="
	AND (
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=".$sec[0]." and id_dep=".$sec[1]." and id_sec=$sec[2])>0
	or
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
	or
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
	or
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
	or
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[5]['mes']." and ano_sar=".$mes[5]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
	or
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[6]['mes']." and ano_sar=".$mes[6]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
	)	";
}else{
// En difor no se restringe.
	if ($id_emp == 1) {
	$sql.="
	AND (
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
	+
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
	+
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
	+
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
	+
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[5]['mes']." and ano_sar=".$mes[5]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
	+
	(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
	where id_bie=BS.id_bie and mes_sar=".$mes[6]['mes']." and ano_sar=".$mes[6]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
	)>0	";
	}
}

$sql.="AND ( SA.id_suc = $sec[0]    AND SA.id_dep = $sec[1]    AND SA.id_sec = $sec[2] ) ";
if ($cod ==""){
	if($id_emp == 1 && $sec[0]<=6){
		$sql.=" and A.id_lar = $linea ";
	}else{
		if ($id_emp == 1) {
			$sql.=" and (  A.id_lar = $linea and (A.id_car<>1 or A.id_car is NULL) ) ";
		} else {
			$sql.=" and A.id_lar = $linea ";
		}
	}
}
if ($cod != ""){ //para pedido manual
	$sql.=" AND BS.codigo_externo_bie = '$cod' ";
}
if ($car != "99"){ // Difor pedido x clasif. articulo
	$sql.=" AND A.id_car = '$car' ";
}

/*
AND 
 (((SA.stock_entrada_sar + SA.traspaso_entrada_sar + SA.ajuste_entrada_sar) + SA.stock_inicial_sar) - (SA.stock_salida_sar + SA.traspaso_salida_sar + SA.stock_interno_sar + SA.ajuste_salida_sar))<
round(
((SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) +
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) +
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) +
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])) / 4) ";
*/

$sql.=" order by BS.codigo_externo_bie";

	if( $rs = sql_query($sql) ) {
		$i = 0;
		while( $val = sql_fetch_array($rs) ) {
			if  ($id_emp==1 || ($id_emp==2 && $val['stock_maximo_sar'] > $val['stk_act']))
			{
		
				$art[$i]['bodega'] = $bodega;
				$art[$i]['id_bie'] = $val['id_bie'];
				$art[$i]['nombre_bie'] = $val['nombre_bie'];
				$art[$i]['codigo_externo_bie'] = $val['codigo_externo_bie'];
				$art[$i]['ano_sar'] = $val['ano_sar'];
				$art[$i]['mes_sar'] = $val['mes_sar'];
				$art[$i]['stock_inicial_sar'] = number_format($val['stock_inicial_sar'],0,".",",");
				$art[$i]['stock_oper_sar'] = $val['stock_oper_sar'];
				$art[$i]['stock_maximo_sar'] = $val['stock_maximo_sar'];
				$art[$i]['stock_entrada_sar'] = $val['stock_entrada_sar'];
				$art[$i]['stock_salida_sar'] = $val['stock_salida_sar'];
				$art[$i]['stock_interno_sar'] = $val['stock_interno_sar'];
				$art[$i]['traspaso_entrada_sar'] = $val['traspaso_entrada_sar'];
				$art[$i]['traspaso_salida_sar'] = $val['traspaso_salida_sar'];
				$art[$i]['ajuste_entrada_sar'] = $val['ajuste_entrada_sar'];
				$art[$i]['ajuste_salida_sar'] = $val['ajuste_salida_sar'];
				$art[$i]['mes_6'] = number_format($val['mes6'],0,".",",");
				$art[$i]['mes_5'] = number_format($val['mes5'],0,".",",");
				$art[$i]['mes_4'] = number_format($val['mes4'],0,".",",");
				$art[$i]['mes_3'] = number_format($val['mes3'],0,".",",");
				$art[$i]['mes_2'] = number_format($val['mes2'],0,".",",");
				$art[$i]['mes_1'] = number_format($val['mes1'],0,".",",");
				$art[$i]['stk_prm'] = round($val['stk_prm']);
				$art[$i]['rec_mes'] = round($val['rec_mes']);
				$art[$i]['vta_mes'] = round($val['vta_mes']);
				$art[$i]['stk_act'] = round($val['stk_act']);
				$art[$i]['existencia'] = $val['stk_act'];
				$art[$i]['stk_max'] = $art[$i]['stk_prm']*2;
				$art[$i]['stk_min'] = round($val[$i]['stk_prm']/2);  
				$art[$i]['can_sug'] = round(($art[$i]['stk_prm']*2)-($art[$i]['stk_prm']/2)); 
				
				$art[$i]['stk_prm_difor']=round($val['stk_prm']);
				$art[$i]['can_sug_difor']=0;
				$art[$i]['can_sug_difor']=$art[$i]['stock_maximo_sar'] - $art[$i]['stk_act'];
				
				$art[$i]['precio_dbs'] = $val['ultimo_costo'];
				//$precio=articulo_datos_ultimo_precio_costo($val['id_bie'],$fecha);
				//$art[$i]['precio_dbs'] = number_format($precio['precio_dbs'],0,".",",");
					$i++;
			}
		}
	}
	return $art;
}

//calcula 6 meses anteriores de cualkier bien... 
function articulo_buscar_producto_sugerido_manual2($mes,$mes_a,$ano_a,$bodega,$linea,$cod) {
      $art = array();
      $id_emp=usuario_empresa();
      $sec = explode("_",$bodega);
 $fecha = ultimo_dia_mes($mes_a,$ano_a)."/".$mes_a."/".$ano_a;
         $sql = "SELECT BS.id_bie,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes1,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes2,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes3,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes4,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[5]['mes']." and ano_sar=".$mes[5]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes5,
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar+stock_interno_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[6]['mes']." and ano_sar=".$mes[6]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]) as mes6,
(SELECT precio_dbs FROM directa_bien_servicio DBS WHERE id_bie = BS.id_bie AND 
fecha_dbs=(SELECT max(fecha_dbs) FROM directa_bien_servicio D where id_bie=DBS.id_bie and fecha_dbs<='$fecha') limit 1) as ultimo_costo

		FROM articulo A
                  inner join linea_articulo LA using (id_lar)
                  inner join bien_servicio BS using (id_bie)
                  inner join saldo_articulo SA using (id_bie) ";
               $sql.= "WHERE ";/* (
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=".$sec[0]." and id_dep=".$sec[1]." and id_sec=$sec[2])>0
or
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
or
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
or
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[4]['mes']." and ano_sar=".$mes[4]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
or
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[5]['mes']." and ano_sar=".$mes[5]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
or
(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
where id_bie=BS.id_bie and mes_sar=".$mes[6]['mes']." and ano_sar=".$mes[6]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])>0
)	";*/

$sql.=" ( SA.id_suc = $sec[0]    AND SA.id_dep = $sec[1]    AND SA.id_sec = $sec[2] ) ";
$sql.=" AND BS.codigo_externo_bie = '$cod'";

$sql.=" order by BS.codigo_externo_bie";
		
      if( $rs = sql_query($sql) ) {
         $i = 0;
         while( $val = sql_fetch_array($rs) ) {
			$art[$i]['id_bie'] = $val['id_bie'];
			$art[$i]['mes_6'] = number_format($val['mes6'],0,".",",");
			$art[$i]['mes_5'] = number_format($val['mes5'],0,".",",");
			$art[$i]['mes_4'] = number_format($val['mes4'],0,".",",");
			$art[$i]['mes_3'] = number_format($val['mes3'],0,".",",");
			$art[$i]['mes_2'] = number_format($val['mes2'],0,".",",");
			$art[$i]['mes_1'] = number_format($val['mes1'],0,".",",");
			$art[$i]['precio_dbs'] = $val['ultimo_costo'];
		        $i++;
        }
	 }
      return $art;
   }

function modelos_asociados($id_bie,$marcas=array()){
	$bs=array();
	$sql="SELECT A.id_dmo,BS.nombre_bie from accesorio A inner join bien_servicio BS on(BS.id_bie=A.id_dmo) inner join descripcion_modelo DM on(A.id_dmo=DM.id_dmo)  where A.id_bie=$id_bie and DM.activo_dmo=true";
	if($marcas != "") {
			$sql.= " AND (";
			for( $i=0; $i < count($marcas); $i++ ){
				if ( $i > 0 ) {
					$sql.= " OR ";
				}
				$id_mbi=$marcas[$i]["id_mbi"];
				$sql.= "BS.id_mbi=$id_mbi";
			}
			$sql.=")";
	}
	if ($rs = sql_query($sql)) {
		$i = 0;
		while( $val = sql_fetch_array($rs) ) {
			$bs[$i]['id_dmo'] = $val['id_dmo'];
			$bs[$i]['nombre_bie'] = $val['nombre_bie'];
			$i++;
		}
	}
	return $bs;

}
function asociar_modelos($id_bie,$asociados) {
	$resul=1;
	for( $i=0; $i < count($asociados); $i++ ){
		if ($asociados[$i]["estado"]==2){
			if (accesorio_existe($id_bie,$asociados[$i]["id_dmo"],usuario_empresa(),usuario_sucursal(),usuario_departamento(),usuario_seccion())>0){
				//uddate
			} else {
				//insert
				if (!accesorio_agregar($id_bie,$asociados[$i]["id_dmo"],usuario_empresa(),usuario_sucursal(),usuario_departamento(),usuario_seccion())){
					return false;
				}
			}
		} else {
			if (accesorio_existe($id_bie,$asociados[$i]["id_dmo"],usuario_empresa(),usuario_sucursal(),usuario_departamento(),usuario_seccion())>0){
				//eliminar asociacion
				if (!accesorio_eliminar($id_bie,$asociados[$i]["id_dmo"])){
					return false;
				}
			}
		}
	}
	return true;
}


function articulo_buscar_producto_sugerido_manual($mes,$ano,$codigo,$id_emp,$id_suc,$id_dep,$id_sec) 
{
      	$art = array();

	$sql = "SELECT MAX(DC.fecha_dco),A.id_bie, A.id_lar, A.id_car, A.cantidad_art, A.unidad_medida_art,
                        A.letra_descto_art, LA.nombre_lar, BS.nombre_bie, BS.codigo_externo_bie,
                        SA.ano_sar, SA.mes_sar, SA.stock_inicial_sar, SA.stock_oper_sar,
                        SA.stock_maximo_sar, SA.stock_entrada_sar, SA.stock_salida_sar,
                        SA.stock_interno_sar, SA.traspaso_entrada_sar, SA.traspaso_salida_sar,
                        SA.ajuste_entrada_sar, SA.ajuste_salida_sar, SA.costo_rep_sar,
                        SA.costo_promedio_sar, SA.ubicacion_sar, DBS.precio_dbs

                  FROM articulo A

                  inner join linea_articulo LA using (id_lar)

                  inner join bien_servicio BS using (id_bie)

                  inner join saldo_articulo SA using (id_bie) ";

	$sql.= "  inner join directa_bien_servicio DBS using  (id_bie) ";
	$sql.= "  inner join documento_compra  DC using (id_tdc, id_pro, numero_dco) ";


      	$sql.= " WHERE ( SA.ano_sar = '$ano' ) and ( SA.mes_sar = '$mes' ) 
		AND BS.codigo_externo_bie = '$codigo' ";

      	$sql.= "  AND (SA.id_emp = $id_emp 
		   AND SA.id_suc = $id_suc ";
     	$sql.= "   AND SA.id_dep = $id_dep ";
    	$sql.= "   AND SA.id_sec = $id_sec ) ";
             
     	$sql.= " group by A.id_bie, A.id_lar, A.id_car, A.cantidad_art, A.unidad_medida_art,
                        A.letra_descto_art, LA.nombre_lar, BS.nombre_bie, BS.codigo_externo_bie,
                        SA.ano_sar, SA.mes_sar, SA.stock_inicial_sar, SA.stock_oper_sar,
                        SA.stock_maximo_sar, SA.stock_entrada_sar, SA.stock_salida_sar,
                        SA.stock_interno_sar, SA.traspaso_entrada_sar, SA.traspaso_salida_sar,
                        SA.ajuste_entrada_sar, SA.ajuste_salida_sar, SA.costo_rep_sar,
                        SA.costo_promedio_sar, SA.ubicacion_sar, DBS.precio_DBS

                        order by A.id_bie limit 1";

	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
			$art[$i]['id_bie'] = $val['id_bie'];
			$art[$i]['id_lar'] = $val['id_lar'];
			$art[$i]['id_car'] = $val['id_car'];
			$art[$i]['cantidad_art'] = $val['cantidad_art'];
			$art[$i]['unidad_medida_art'] = $val['unidad_medida_art'];
			$art[$i]['letra_descto_art'] = $val['letra_descto_art'];
		
			$art[$i]['nombre_lar'] = $val['nombre_lar'];
		
			$art[$i]['nombre_bie'] = $val['nombre_bie'];
			$art[$i]['codigo_externo_bie'] = $val['codigo_externo_bie'];
		
			$art[$i]['ano_sar'] = $val['ano_sar'];
		
			$art[$i]['mes_sar'] = $val['mes_sar'];
			$art[$i]['stock_inicial_sar'] = $val['stock_inicial_sar'];
			$art[$i]['stock_oper_sar'] = $val['stock_oper_sar'];
			$art[$i]['stock_maximo_sar'] = $val['stock_maximo_sar'];
			$art[$i]['stock_entrada_sar'] = $val['stock_entrada_sar'];
			$art[$i]['stock_salida_sar'] = $val['stock_salida_sar'];
		
			$art[$i]['stock_interno_sar'] = $val['stock_interno_sar'];
			$art[$i]['traspaso_entrada_sar'] = $val['traspaso_entrada_sar'];
			$art[$i]['traspaso_salida_sar'] = $val['traspaso_salida_sar'];
			$art[$i]['ajuste_entrada_sar'] = $val['ajuste_entrada_sar'];
			$art[$i]['ajuste_salida_sar'] = $val['ajuste_salida_sar'];
			$art[$i]['costo_rep_sar'] = $val['costo_rep_sar'];
			$art[$i]['costo_promedio_sar'] = $val['costo_promedio_sar'];
			$art[$i]['ubicacion_sar'] = $val['ubicacion_sar'];
			$art[$i]['mes_6'] = 0;
			$art[$i]['mes_5'] = 0;
			$art[$i]['mes_4'] = 0;
			$art[$i]['mes_3'] = 0;
			$art[$i]['mes_2'] = 0;
			$art[$i]['mes_1'] = 0;
			$art[$i]['precio_dbs'] = $val['precio_dbs'];

            		$i++;
         	}
      	}
	return $art;
}

function articulo_datos_ultimo_precio_costo($id_bie,$fecha) {
      $art = array();
      $sql = "select precio_dbs from
		directa_bien_servicio DBS
		inner join documento_compra  DC using (id_tdc, id_pro, numero_dco)
		
		where id_bie = $id_bie
		
		and fecha_dbs < '$fecha'
		
		order by fecha_dbs desc
		limit 1";
      if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_array($rs) ) {
            $art['precio_dbs']=$val['precio_dbs'];

         }
      }
      return $art;
   }

function resumen_venta_repuestos_meson($id_lar,$seccion,$mes,$ano) {
/*
 AND ((DV.tipo_nc_dve != 1 or DV.tipo_nc_dve is null) 
		OR 	(
				DV.tipo_nc_dve=1 and 
		   		DVNC.fecha_dve>'$dia/$mes/$ano'
			)
		    )
*/
	$art=array();
	$tipo_nv = TIPO_NOTA_VENTA_REPUESTOS;
	$id_env = ESTADO_NOTA_VENTA_FACTURADA;
	$iva = SISTEMA_IVA + 1;
	$id_tdo = TIPO_DOCTO_VENTA_CREDITO; //3
	$sec = explode("_",$seccion);
	$dia = ultimo_dia_mes($mes,$ano);

	$sql = "SELECT tab1.id_lar, tab1.nombre_lar, tab1.id_tcl, tab1.nombre_tcl, sum(tab1.valor_bie) as valor_bie, tab1.tipo

		FROM
		((SELECT LA.id_lar,LA.nombre_lar,CL.id_tcl,TCL.nombre_tcl, 
						SUM(((ANV.cantidad_anv * ANV.precio_anv) - ANV.descuento_anv) / $iva) as valor_bie,
				CASE WHEN CL.mayorista_cli = true THEN 1 ELSE 2  END as tipo
		
		FROM 
		documento_venta dv 
		
		INNER JOIN documento_venta_nv DVN ON (DVN.id_emp = DV.id_emp and DVN.id_tdo = DV.id_tdo and DV.numero_dve = DVN.numero_dve)
		INNER JOIN nota_venta NV on (DVN.id_nve = NV.id_nve)
		inner join articulo_nota_venta ANV on (NV.id_nve = ANV.id_nve)
		left join articulo A on	(ANV.id_bie = A.id_bie)
		left join linea_articulo LA on	(A.id_lar = LA.id_lar)

		INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
		inner JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
		inner join tipo_cliente TCL on	(CL.id_tcl = TCL.id_tcl)
                LEFT JOIN documento_venta_relacionado DR ON (DR.id_emp_rel=DV.id_emp AND DR.id_tdo_rel=DV.id_tdo AND DR.numero_dve_rel=DV.numero_dve) 
                LEFT JOIN documento_venta DVNC ON(DVNC.id_emp=DR.id_emp AND DVNC.id_tdo=DR.id_tdo AND DVNC.numero_dve=DR.numero_dve)
		
		WHERE dv.id_tdo <> $id_tdo and dv.id_tdo <> 13
		AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano AND 
		DV.id_emp=$sec[0] 
		AND DV.seccion_id_suc=$sec[1] AND DV.seccion_id_dep=$sec[2] 
		AND DV.seccion_id_sec=$sec[3]  and NV.id_tnv = $id_env and (DV.nulo_dve is false or DV.nulo_dve is NULL) ";
// 		if($con_nc==1){
// 			$sql.="AND docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) IS FALSE ";
// 		}
	       
		$sql.="GROUP BY 
				LA.id_lar,LA.nombre_lar,TCL.nombre_tcl,CL.id_tcl,tipo
				
				ORDER BY LA.id_lar,CL.id_tcl,tipo) ";
	/*	UNION 
		
		
		(SELECT 2 as id_lar, 'TOYOTA' as nombre_lar, 3 as id_tcl, 'EMPRESA' as nombre_tcl,sum(DV.neto_dve) as valor_bie, 1 as tipo FROM documento_venta DV INNER JOIN documento_venta_cliente DVC ON(DVC.id_emp=DV.id_emp and DVC.id_tdo=DV.id_tdo and DVC.numero_dve=DV.numero_dve) INNER JOIN cliente C ON(C.id_cli=DVC.id_cli) 
		WHERE C.id_per=76084 
		AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano 
		AND DV.id_emp=$sec[0] 
		AND DV.seccion_id_suc=$sec[1] AND DV.seccion_id_dep=$sec[2] 
		AND DV.seccion_id_sec=$sec[3] AND DV.nulo_dve is not true 
		GROUP BY 
						id_lar,nombre_lar,nombre_tcl,id_tcl,tipo
						
						ORDER BY id_lar,id_tcl,tipo) ) */
		$sql.="
			) as tab1  GROUP BY tab1.id_lar,tab1.nombre_lar,tab1.nombre_tcl,tab1.id_tcl,tipo
			ORDER BY tab1.id_lar,tab1.id_tcl,tab1.tipo ";

	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_lar']	= $val['nombre_lar'];
			$art[$i]['id_tcl']	= $val['id_tcl'];
			$art[$i]['id_lar']	= $val['id_lar'];
			$art[$i]['nombre_tcl']	= $val['nombre_tcl'];
			$art[$i]['valor_bie']	= $val['valor_bie'];
			$art[$i]['tipo']	= $val['tipo'];
            		$i++;
         	}
      	}
      	return $art;
}

function resumen_venta_repuestos_meson_nueva($id_lar,$seccion,$mes,$ano) {
/*
 AND ((DV.tipo_nc_dve != 1 or DV.tipo_nc_dve is null) 
		OR 	(
				DV.tipo_nc_dve=1 and 
		   		DVNC.fecha_dve>'$dia/$mes/$ano'
			)
		    )
*/
	$art=array();
	$tipo_nv = TIPO_NOTA_VENTA_REPUESTOS;
	$id_env = ESTADO_NOTA_VENTA_FACTURADA;
	$iva = SISTEMA_IVA + 1;
	$id_tdo = TIPO_DOCTO_VENTA_CREDITO; //3
	$sec = explode("_",$seccion);
	$dia = ultimo_dia_mes($mes,$ano);

	$sql = "SELECT tab1.id_lar, tab1.nombre_lar, tab1.id_tcl, tab1.nombre_tcl, sum(tab1.valor_bie) as valor_bie, tab1.tipo

		FROM
		((SELECT LA.id_lar,LA.nombre_lar,CL.id_tcl,TCL.nombre_tcl, 
						SUM(((ANV.cantidad_anv * ANV.precio_anv) - ANV.descuento_anv) / $iva) as valor_bie,
				CASE WHEN CL.mayorista_cli = true THEN 1 ELSE 2  END as tipo
		
		FROM 
		documento_venta dv 
		
		INNER JOIN documento_venta_nv DVN ON (DVN.id_emp = DV.id_emp and DVN.id_tdo = DV.id_tdo and DV.numero_dve = DVN.numero_dve)
		INNER JOIN nota_venta NV on (DVN.id_nve = NV.id_nve)
		inner join articulo_nota_venta ANV on (NV.id_nve = ANV.id_nve)
		left join articulo A on	(ANV.id_bie = A.id_bie)
		left join linea_articulo LA on	(A.id_lar = LA.id_lar)

		INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
		inner JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
		inner join tipo_cliente TCL on	(CL.id_tcl = TCL.id_tcl)
                LEFT JOIN documento_venta_relacionado DR ON (DR.id_emp_rel=DV.id_emp AND DR.id_tdo_rel=DV.id_tdo AND DR.numero_dve_rel=DV.numero_dve) 
                LEFT JOIN documento_venta DVNC ON(DVNC.id_emp=DR.id_emp AND DVNC.id_tdo=DR.id_tdo AND DVNC.numero_dve=DR.numero_dve)
		
		WHERE dv.id_tdo <> $id_tdo and dv.id_tdo <> 13
		AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano AND 
		DV.id_emp=$sec[0] 
		AND DV.seccion_id_suc=$sec[1] AND DV.seccion_id_dep=$sec[2] 
		AND DV.seccion_id_sec=$sec[3]  and NV.id_tnv = $id_env and (DV.nulo_dve is false or DV.nulo_dve is NULL) ";
// 		if($con_nc==1){
// 			$sql.="AND docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) IS FALSE ";
// 		}
	       
		$sql.="GROUP BY 
				LA.id_lar,LA.nombre_lar,TCL.nombre_tcl,CL.id_tcl,tipo
				
				ORDER BY LA.id_lar,CL.id_tcl,tipo) ";
	/*	UNION 
		
		
		(SELECT 2 as id_lar, 'TOYOTA' as nombre_lar, 3 as id_tcl, 'EMPRESA' as nombre_tcl,sum(DV.neto_dve) as valor_bie, 1 as tipo FROM documento_venta DV INNER JOIN documento_venta_cliente DVC ON(DVC.id_emp=DV.id_emp and DVC.id_tdo=DV.id_tdo and DVC.numero_dve=DV.numero_dve) INNER JOIN cliente C ON(C.id_cli=DVC.id_cli) 
		WHERE C.id_per=76084 
		AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano 
		AND DV.id_emp=$sec[0] 
		AND DV.seccion_id_suc=$sec[1] AND DV.seccion_id_dep=$sec[2] 
		AND DV.seccion_id_sec=$sec[3] AND DV.nulo_dve is not true 
		GROUP BY 
						id_lar,nombre_lar,nombre_tcl,id_tcl,tipo
						
						ORDER BY id_lar,id_tcl,tipo) ) */
		$sql.="
			) as tab1  GROUP BY tab1.id_lar,tab1.nombre_lar,tab1.nombre_tcl,tab1.id_tcl,tipo
			ORDER BY tab1.id_lar,tab1.id_tcl,tab1.tipo ";

	if( $rs = sql_query($sql) ) {


		grilla("grilla2",$rs,1,"","orden2",1,"Tablas no alimentadas","",1,"relname");

        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_lar']	= $val['nombre_lar'];
			$art[$i]['id_tcl']	= $val['id_tcl'];
			$art[$i]['id_lar']	= $val['id_lar'];
			$art[$i]['nombre_tcl']	= $val['nombre_tcl'];
			$art[$i]['valor_bie']	= $val['valor_bie'];
			$art[$i]['tipo']	= $val['tipo'];
            		$i++;
         	}
      	}
      	return $art;
}


//son facturas ke no tienen relacion en documento_venta_nv o documento_venta_ot, 
//para que cuadre resumen linea articulo con ingresos por venta
function articulo_total_fac_sin_doc_asociado($seccion,$mes,$ano) {
	$art=array();
	$iva = SISTEMA_IVA + 1;
	$id_tdo = TIPO_DOCTO_COMPRA_CREDITO;
	$sec = explode("_",$seccion);

	$sql = "SELECT SUM(ca.monto_cas) AS total
		from asiento_contable ac
		INNER JOIN cuenta_asiento ca ON (ca.id_aco=ac.id_aco)
		INNER JOIN asiento_documento_venta adv on (adv.id_aco=ca.id_aco and adv.correlativo_cas=ca.correlativo_cas)
		INNER JOIN documento_venta dv ON (dv.id_emp=adv.docto_id_emp and dv.id_tdo=adv.docto_id_tdo and dv.numero_dve=adv.docto_numero_dve)
		left join documento_venta_nv DVN on (DVN.id_emp = DV.id_emp and DVN.numero_dve = DV.numero_dve)
		left join nota_venta NV on (NV.id_nve = DVN.id_nve)
		WHERE ac.nulo_aco='f' and ca.tipo_movto_cas=2 and ac.tipo_aco='T' AND ac.movto_sis_aco='T' 
		AND ca.afecta_cas='H' AND ca.id_cco <> 211512 AND ca.id_cco <> 211201 and (dv.id_tdo<>$id_tdo and dv.id_tdo <> 13) 
		AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano AND DV.id_emp=$sec[0] 
		AND ac.id_suc=$sec[1] AND ac.id_dep=$sec[2] AND ac.id_sec=$sec[3] and NV.codigo_nve is NULL";
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['total']	= $val['total'];
            		$i++;
         	}
      	}
      	return $art;
}

function resumen_venta_valor_taller_nueva($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano,$nc) {
	$art=array();
	$sql="";
	if (!compareDate('01/'.$mes.'/'.$ano,'31/05/2008')) {
		$sql.="( ";
		$sql.="
		SELECT
			'Venta de Repuestos' as nombre_cco,
			'Repuestos Toyota' as linea, 
			tab1.nombre_tcl as cliente, 
			'Repuestos' as nombre_dep,
			tab1.mayorista,
			round(sum(tab1.valor_bie))*-1 as suma_monto_cas
		FROM
			((	SELECT 
					LA.id_lar,LA.nombre_lar,CL.id_tcl,TCL.nombre_tcl, 
					SUM(((ANV.cantidad_anv * ANV.precio_anv) - ANV.descuento_anv) / 1.19) as valor_bie,
					CL.mayorista_cli as mayorista
				FROM 
					documento_venta DV		
					INNER JOIN documento_venta_nv DVN ON (DVN.id_emp = DV.id_emp and DVN.id_tdo = DV.id_tdo and DV.numero_dve = DVN.numero_dve)
					INNER JOIN nota_venta NV on (DVN.id_nve = NV.id_nve)
					INNER JOIN articulo_nota_venta ANV on (NV.id_nve = ANV.id_nve)
					LEFT JOIN articulo A on	(ANV.id_bie = A.id_bie)
					LEFT JOIN linea_articulo LA on	(A.id_lar = LA.id_lar)
					INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
					INNER JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
					INNER JOIN tipo_cliente TCL on	(CL.id_tcl = TCL.id_tcl)
					LEFT JOIN documento_venta_relacionado DR ON (DR.id_emp_rel=DV.id_emp AND DR.id_tdo_rel=DV.id_tdo AND DR.numero_dve_rel=DV.numero_dve) 
					LEFT JOIN documento_venta DVNC ON(DVNC.id_emp=DR.id_emp AND DVNC.id_tdo=DR.id_tdo AND DVNC.numero_dve=DR.numero_dve)
				WHERE 
					(DV.id_tdo=1 OR DV.id_tdo=4 OR DV.id_tdo=11 OR DV.id_tdo=14)
					AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano
					AND DV.id_emp=$id_emp AND DV.seccion_id_suc=$id_suc AND DV.seccion_id_dep=$id_dep AND DV.seccion_id_sec=$id_sec
					AND NV.id_tnv = 3
					AND (DV.nulo_dve is false or DV.nulo_dve is NULL) 
				GROUP BY 
					LA.id_lar,LA.nombre_lar,TCL.nombre_tcl,CL.id_tcl,mayorista
				ORDER BY LA.id_lar,CL.id_tcl,mayorista) 
			) as tab1  
		WHERE 
			initcap(tab1.nombre_lar)='Daihatsu'
		GROUP BY nombre_cco,linea,cliente,nombre_dep,mayorista
		ORDER BY nombre_cco,linea,cliente,nombre_dep,mayorista
		";
		$sql.=" ) UNION ( ";
		$sql.="
		SELECT
			'Venta de Repuestos' as nombre_cco,
			'Repuestos '||initcap(tab1.nombre_lar) as linea, 
			tab1.nombre_tcl as cliente, 
			'Repuestos' as nombre_dep,
			tab1.mayorista,
			round(sum(tab1.valor_bie)) as suma_monto_cas
		FROM
			((	SELECT 
					LA.id_lar,LA.nombre_lar,CL.id_tcl,TCL.nombre_tcl, 
					SUM(((ANV.cantidad_anv * ANV.precio_anv) - ANV.descuento_anv) / 1.19) as valor_bie,
					CL.mayorista_cli as mayorista
				FROM 
					documento_venta DV		
					INNER JOIN documento_venta_nv DVN ON (DVN.id_emp = DV.id_emp and DVN.id_tdo = DV.id_tdo and DV.numero_dve = DVN.numero_dve)
					INNER JOIN nota_venta NV on (DVN.id_nve = NV.id_nve)
					INNER JOIN articulo_nota_venta ANV on (NV.id_nve = ANV.id_nve)
					LEFT JOIN articulo A on	(ANV.id_bie = A.id_bie)
					LEFT JOIN linea_articulo LA on	(A.id_lar = LA.id_lar)
					INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
					INNER JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
					INNER JOIN tipo_cliente TCL on	(CL.id_tcl = TCL.id_tcl)
					LEFT JOIN documento_venta_relacionado DR ON (DR.id_emp_rel=DV.id_emp AND DR.id_tdo_rel=DV.id_tdo AND DR.numero_dve_rel=DV.numero_dve) 
					LEFT JOIN documento_venta DVNC ON(DVNC.id_emp=DR.id_emp AND DVNC.id_tdo=DR.id_tdo AND DVNC.numero_dve=DR.numero_dve)
				WHERE 
					(DV.id_tdo=1 OR DV.id_tdo=4 OR DV.id_tdo=11 OR DV.id_tdo=14) 
					AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano
					AND DV.id_emp=$id_emp AND DV.seccion_id_suc=$id_suc AND DV.seccion_id_dep=$id_dep AND DV.seccion_id_sec=$id_sec
					AND NV.id_tnv = 3
					AND (DV.nulo_dve is false or DV.nulo_dve is NULL) 
				GROUP BY 
					LA.id_lar,LA.nombre_lar,TCL.nombre_tcl,CL.id_tcl,mayorista
				ORDER BY LA.id_lar,CL.id_tcl,mayorista) 
			) as tab1  
		WHERE 
			initcap(tab1.nombre_lar)='Daihatsu'
		GROUP BY nombre_cco,linea,cliente,nombre_dep,mayorista
		ORDER BY nombre_cco,linea,cliente,nombre_dep,mayorista
		";
		$sql.=" ) UNION ";
	}
	$sql.=" ( ";

	if ($nc==1) {
		$sql.="SELECT * FROM ( 
			(
			SELECT
				CCO.nombre_cco,
				CASE WHEN DVE.fecha_dve<'01/06/2008' AND CAS.id_cco=7011101 
					AND (DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5)
					AND ( 
						(SELECT VEH2.id_mbi FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)=2
						OR
						(SELECT VEH2.id_mbi FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)=23
					)
				THEN
					'Repuestos '||(SELECT initcap(MBI2.nombre_mbi) FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) JOIN marca_bien MBI2 ON (MBI2.id_mbi=VEH2.id_mbi) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)
				ELSE
					CASE WHEN AUX.nombre_aux IS NULL THEN
						(SELECT SEC2.nombre_sec FROM seccion SEC2 WHERE SEC2.id_emp=CAS.seccion_id_emp AND SEC2.id_suc=CAS.seccion_id_suc AND SEC2.id_dep=CAS.seccion_id_dep AND SEC2.id_sec=CAS.seccion_id_sec)
					ELSE
						AUX.nombre_aux
					END
				END
				as linea,
				(SELECT TCL.nombre_tcl FROM tipo_cliente TCL JOIN cliente CLI ON (CLI.id_tcl=TCL.id_tcl) JOIN direccion_cliente DCL ON (DCL.id_cli=CLI.id_cli) JOIN documento_venta_cliente DVC ON (DVC.id_cli=DCL.id_cli AND DVC.correlativo_drc=DCL.correlativo_drc) WHERE DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve LIMIT 1) as Cliente,
				DEP.nombre_dep,
				(SELECT CLI.mayorista_cli FROM tipo_cliente TCL JOIN cliente CLI ON (CLI.id_tcl=TCL.id_tcl) JOIN direccion_cliente DCL ON (DCL.id_cli=CLI.id_cli) JOIN documento_venta_cliente DVC ON (DVC.id_cli=DCL.id_cli AND DVC.correlativo_drc=DCL.correlativo_drc) WHERE DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve LIMIT 1) as mayorista,
				COALESCE(sum(CAS.monto_cas),0) as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=7 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND (CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec)
				AND (DVE.id_tdo=1 OR DVE.id_tdo=4 OR DVE.id_tdo=11 OR DVE.id_tdo=14) 
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='H'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=7011101 OR CAS.id_cco=7011102  OR CAS.id_cco=7011103  OR CAS.id_cco=7011127 OR CAS.id_cco=7011106 OR CAS.id_cco=7011111 OR CAS.id_cco=7011115 OR CAS.id_cco=7011116 OR CAS.id_cco= 7011117 OR CAS.id_cco=7011125)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,linea,cliente,DEP.nombre_dep,mayorista
			ORDER BY
				CCO.nombre_cco,linea,cliente,DEP.nombre_dep,mayorista
			) UNION (
			SELECT
				CCO.nombre_cco,
				CASE WHEN DVE.fecha_dve<'01/06/2008' AND CAS.id_cco=7011101 
					AND (DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5)
					AND ( 
						(SELECT VEH2.id_mbi FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)=2
						OR
						(SELECT VEH2.id_mbi FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)=23
					)
				THEN
					'Repuestos '||(SELECT initcap(MBI2.nombre_mbi) FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) JOIN marca_bien MBI2 ON (MBI2.id_mbi=VEH2.id_mbi) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)
				ELSE
					CASE WHEN AUX.nombre_aux IS NULL THEN
						(SELECT SEC2.nombre_sec FROM seccion SEC2 WHERE SEC2.id_emp=CAS.seccion_id_emp AND SEC2.id_suc=CAS.seccion_id_suc AND SEC2.id_dep=CAS.seccion_id_dep AND SEC2.id_sec=CAS.seccion_id_sec)
					ELSE
						AUX.nombre_aux
					END
				END
				as linea,
				(SELECT TCL.nombre_tcl FROM tipo_cliente TCL JOIN cliente CLI ON (CLI.id_tcl=TCL.id_tcl) JOIN direccion_cliente DCL ON (DCL.id_cli=CLI.id_cli) JOIN documento_venta_cliente DVC ON (DVC.id_cli=DCL.id_cli AND DVC.correlativo_drc=DCL.correlativo_drc) WHERE DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve LIMIT 1) as Cliente,
				DEP.nombre_dep,
				(SELECT CLI.mayorista_cli FROM tipo_cliente TCL JOIN cliente CLI ON (CLI.id_tcl=TCL.id_tcl) JOIN direccion_cliente DCL ON (DCL.id_cli=CLI.id_cli) JOIN documento_venta_cliente DVC ON (DVC.id_cli=DCL.id_cli AND DVC.correlativo_drc=DCL.correlativo_drc) WHERE DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve LIMIT 1) as mayorista,
				COALESCE(sum(CAS.monto_cas),0)*-1 as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=7 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND (CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec)
				AND (DVE.id_tdo=3 OR DVE.id_tdo=13) 
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='D'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=7011101 OR CAS.id_cco=7011102  OR CAS.id_cco=7011103  OR CAS.id_cco=7011127 OR CAS.id_cco=7011106 OR CAS.id_cco=7011111 OR CAS.id_cco=7011115 OR CAS.id_cco=7011116 OR CAS.id_cco= 7011117 OR CAS.id_cco=7011125)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,linea,cliente,DEP.nombre_dep,mayorista
			ORDER BY
				CCO.nombre_cco,linea,cliente,DEP.nombre_dep,mayorista
			)
		) as tab 
		 	 ORDER BY tab.nombre_cco,tab.linea,tab.cliente,tab.nombre_dep,tab.mayorista 
		";
	} else {
		$sql.="
			SELECT
				CCO.nombre_cco,
				CASE WHEN DVE.fecha_dve<'01/06/2008' AND CAS.id_cco=7011101 
					AND (DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5)
					AND ( 
						(SELECT VEH2.id_mbi FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)=2
						OR
						(SELECT VEH2.id_mbi FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)=23
					)
				THEN
					'Repuestos '||(SELECT initcap(MBI2.nombre_mbi) FROM documento_venta DVE2 JOIN documento_venta_ot DVO2 ON (DVO2.id_emp=DVE2.id_emp AND DVO2.id_tdo=DVE2.id_tdo AND DVO2.numero_dve=DVE2.numero_dve) JOIN orden_trabajo OTR2 ON (OTR2.id_otr=DVO2.id_otr) JOIN vehiculo VEH2 ON (VEH2.patente_veh=OTR2.patente_veh) JOIN marca_bien MBI2 ON (MBI2.id_mbi=VEH2.id_mbi) WHERE DVE2.id_emp=DVE.id_emp AND DVE2.id_tdo=DVE.id_tdo AND DVE2.numero_dve=DVE.numero_dve LIMIT 1)
				ELSE
					CASE WHEN AUX.nombre_aux IS NULL THEN
						(SELECT SEC2.nombre_sec FROM seccion SEC2 WHERE SEC2.id_emp=CAS.seccion_id_emp AND SEC2.id_suc=CAS.seccion_id_suc AND SEC2.id_dep=CAS.seccion_id_dep AND SEC2.id_sec=CAS.seccion_id_sec)
					ELSE
						AUX.nombre_aux
					END
				END
				as linea,
				(SELECT TCL.nombre_tcl FROM tipo_cliente TCL JOIN cliente CLI ON (CLI.id_tcl=TCL.id_tcl) JOIN direccion_cliente DCL ON (DCL.id_cli=CLI.id_cli) JOIN documento_venta_cliente DVC ON (DVC.id_cli=DCL.id_cli AND DVC.correlativo_drc=DCL.correlativo_drc) WHERE DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve LIMIT 1) as Cliente,
				DEP.nombre_dep,
				(SELECT CLI.mayorista_cli FROM tipo_cliente TCL JOIN cliente CLI ON (CLI.id_tcl=TCL.id_tcl) JOIN direccion_cliente DCL ON (DCL.id_cli=CLI.id_cli) JOIN documento_venta_cliente DVC ON (DVC.id_cli=DCL.id_cli AND DVC.correlativo_drc=DCL.correlativo_drc) WHERE DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve LIMIT 1) as mayorista,
				COALESCE(sum(CAS.monto_cas),0) as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=7 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND (CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec)
				AND (DVE.id_tdo=1 OR DVE.id_tdo=4 OR DVE.id_tdo=11 OR DVE.id_tdo=14)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='H'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=7011101 OR CAS.id_cco=7011102  OR CAS.id_cco=7011103  OR CAS.id_cco=7011127 OR CAS.id_cco=7011106 OR CAS.id_cco=7011111 OR CAS.id_cco=7011115 OR CAS.id_cco=7011116 OR CAS.id_cco= 7011117 OR CAS.id_cco=7011125)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,linea,cliente,DEP.nombre_dep,mayorista
			ORDER BY
				CCO.nombre_cco,linea,cliente,DEP.nombre_dep,mayorista
		";

	}
	//if (!compareDate('01/'.$mes.'/'.$ano,'31/05/2008')) {
		$sql.=" ) ";
	//}

	$art[-1]['nombre_cco']		= '';
	$art[-1]['linea']		= '';
	$art[-1]['cliente']		= '';
	$art[-1]['nombre_dep']		= '';
	$art[-1]['suma_monto_cas']	= 0;
	$art[-1]['mayorista'] 		= 0;
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_cco']		= $val['nombre_cco'];
        			$art[$i]['linea']		= $val['linea'];
        			$art[$i]['cliente']		= $val['cliente'];
        			$art[$i]['nombre_dep']		= $val['nombre_dep'];
        			$art[$i]['suma_monto_cas']	= $val['suma_monto_cas'];
        			$art[$i]['mayorista'] 		= ($val['mayorista']=='t')? 1:0;
            		$i++;
         	}
    }
	$art[$i]['nombre_cco']		= '';
	$art[$i]['linea']		= '';
	$art[$i]['cliente']		= '';
	$art[$i]['nombre_dep']		= '';
	$art[$i]['suma_monto_cas']	= 0;
	$art[$i]['mayorista'] 		= 0;
    return $art;
}

function resumen_ventas_margen($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano) {
	$art=array();
	$seccion = seccion_asociada_tipo_depto($id_emp,$id_suc,$id_dep,$id_sec,'A','4');
	$aso = seccion_asociada_lista_tipo($seccion[0]['id_emp'],$seccion[0]['id_suc'],$seccion[0]['id_dep'],$seccion[0]['id_sec'],'P');
	if(!empty($aso)) {
		$id_emp_aso=$aso[0]['id_emp'];
		$id_suc_aso=$aso[0]['id_suc'];
		$id_dep_aso=$aso[0]['id_dep'];
		$id_sec_aso=$aso[0]['id_sec'];
	}else{
		$id_emp_aso=$id_emp;
		$id_suc_aso=$id_suc;
		$id_dep_aso=$id_dep;
		$id_sec_aso=$id_sec;
	}
		$sql.="
		( 
			(
			SELECT
				CCO.nombre_cco,
				CASE WHEN DEP.nombre_dep='Repuestos' THEN 'Meson' ELSE DEP.nombre_dep END as nombre_dep,
				CAS.seccion_id_suc,
				CAS.seccion_id_dep,
				CAS.seccion_id_sec,
				COALESCE(sum(CAS.monto_cas),0) as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp 
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND ((CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec) 
				OR (CAS.seccion_id_emp=$id_emp_aso AND CAS.seccion_id_suc=$id_suc_aso AND CAS.seccion_id_dep=$id_dep_aso AND CAS.seccion_id_sec=$id_sec_aso) )
				AND (DVE.id_tdo=1 OR DVE.id_tdo=4 OR DVE.id_tdo=11 OR DVE.id_tdo=14)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='H'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=410102 OR CAS.id_cco=410103 OR CAS.id_cco=410114 OR CAS.id_cco=410115)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			ORDER BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			) UNION (
			SELECT
				CCO.nombre_cco,
				CASE WHEN DEP.nombre_dep='Repuestos' THEN 'Meson' ELSE DEP.nombre_dep END as nombre_dep,
				CAS.seccion_id_suc,
				CAS.seccion_id_dep,
				CAS.seccion_id_sec,
				COALESCE(sum(CAS.monto_cas),0)*-1 as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND ((CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec) 
				OR (CAS.seccion_id_emp=$id_emp_aso AND CAS.seccion_id_suc=$id_suc_aso AND CAS.seccion_id_dep=$id_dep_aso AND CAS.seccion_id_sec=$id_sec_aso) )
				AND (DVE.id_tdo=3 OR DVE.id_tdo=13)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='D'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=410102 OR CAS.id_cco=410103 OR CAS.id_cco=410114 OR CAS.id_cco=410115)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			ORDER BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			)
		 )
	";
	
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_cco']	= $val['nombre_cco'];
			$art[$i]['nombre_dep']	= $val['nombre_dep'];
			$art[$i]['id_suc']		= $val['seccion_id_suc'];
			$art[$i]['id_dep']		= $val['seccion_id_dep'];
			$art[$i]['id_sec']		= $val['seccion_id_sec'];
			$art[$i]['suma_monto_cas']	= $val['suma_monto_cas'];
			$i++;
         	}
      	}
	
	return $art;
}

function resumen_venta_gasto($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano) {
	$art=array();
	$seccion = seccion_asociada_tipo_depto($id_emp,$id_suc,$id_dep,$id_sec,'A','4');
	$aso = seccion_asociada_lista_tipo($seccion[0]['id_emp'],$seccion[0]['id_suc'],$seccion[0]['id_dep'],$seccion[0]['id_sec'],'P');
	if(!empty($aso)) {
		$id_emp_aso=$aso[0]['id_emp'];
		$id_suc_aso=$aso[0]['id_suc'];
		$id_dep_aso=$aso[0]['id_dep'];
		$id_sec_aso=$aso[0]['id_sec'];
	}else{
		$id_emp_aso=$id_emp;
		$id_suc_aso=$id_suc;
		$id_dep_aso=$id_dep;
		$id_sec_aso=$id_sec;
	}
		$sql.="
			SELECT
				tab.nombre_cco,
				tab.nombre_dep,
				tab.seccion_id_suc,
				tab.seccion_id_dep,
				tab.seccion_id_sec,
				COALESCE(sum(tab.suma_monto_cas),0) as suma_monto_cas
		FROM
		( 
			(
			SELECT
				CCO.nombre_cco,
				CASE WHEN DEP.nombre_dep='Repuestos' THEN 'Meson' ELSE DEP.nombre_dep END as nombre_dep,
				CAS.seccion_id_suc,
				CAS.seccion_id_dep,
				CAS.seccion_id_sec,
				COALESCE(sum(CAS.monto_cas),0) as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp 
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND ((CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec) 
				OR (CAS.seccion_id_emp=$id_emp_aso AND CAS.seccion_id_suc=$id_suc_aso AND CAS.seccion_id_dep=$id_dep_aso AND CAS.seccion_id_sec=$id_sec_aso) )
				AND (DVE.id_tdo=1 OR DVE.id_tdo=4 OR DVE.id_tdo=11 OR DVE.id_tdo=14)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='H'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=510206)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			ORDER BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			) UNION ALL (
			SELECT
				CCO.nombre_cco,
				CASE WHEN DEP.nombre_dep='Repuestos' THEN 'Meson' ELSE DEP.nombre_dep END as nombre_dep,
				CAS.seccion_id_suc,
				CAS.seccion_id_dep,
				CAS.seccion_id_sec,
				COALESCE(sum(CAS.monto_cas),0)*-1 as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND ((CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec) 
				OR (CAS.seccion_id_emp=$id_emp_aso AND CAS.seccion_id_suc=$id_suc_aso AND CAS.seccion_id_dep=$id_dep_aso AND CAS.seccion_id_sec=$id_sec_aso) )
				AND (DVE.id_tdo=3)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='D'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=510206)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			ORDER BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			)
		) as tab
			GROUP BY tab.nombre_cco,tab.nombre_dep,tab.seccion_id_suc,tab.seccion_id_dep,tab.seccion_id_sec
			ORDER BY tab.nombre_cco,tab.nombre_dep,tab.seccion_id_suc,tab.seccion_id_dep,tab.seccion_id_sec;
	";
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_cco']	= $val['nombre_cco'];
			$art[$i]['nombre_dep']	= $val['nombre_dep'];
			$art[$i]['id_suc']		= $val['seccion_id_suc'];
			$art[$i]['id_dep']		= $val['seccion_id_dep'];
			$art[$i]['id_sec']		= $val['seccion_id_sec'];
			$art[$i]['suma_monto_cas']	= $val['suma_monto_cas'];
			$i++;
         	}
      	}
	return $art;
}

function resumen_venta_mt($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano) {
	$art=array();
	$seccion = seccion_asociada_tipo_depto($id_emp,$id_suc,$id_dep,$id_sec,'A','4');
	$aso = seccion_asociada_lista_tipo($seccion[0]['id_emp'],$seccion[0]['id_suc'],$seccion[0]['id_dep'],$seccion[0]['id_sec'],'P');
	if(!empty($aso)) {
		$id_emp_aso=$aso[0]['id_emp'];
		$id_suc_aso=$aso[0]['id_suc'];
		$id_dep_aso=$aso[0]['id_dep'];
		$id_sec_aso=$aso[0]['id_sec'];
	}else{
		$id_emp_aso=$id_emp;
		$id_suc_aso=$id_suc;
		$id_dep_aso=$id_dep;
		$id_sec_aso=$id_sec;
	}
		$sql.="
			SELECT
				tab.nombre_cco,
				tab.nombre_dep,
				tab.seccion_id_suc,
				tab.seccion_id_dep,
				tab.seccion_id_sec,
				COALESCE(sum(tab.suma_monto_cas),0) as suma_monto_cas
		FROM
		( 
			(
			SELECT
				CCO.nombre_cco,
				CASE WHEN DEP.nombre_dep='Repuestos' THEN 'Meson' ELSE DEP.nombre_dep END as nombre_dep,
				CAS.seccion_id_suc,
				CAS.seccion_id_dep,
				CAS.seccion_id_sec,
				COALESCE(sum(CAS.monto_cas),0) as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp 
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND ((CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec) 
				OR (CAS.seccion_id_emp=$id_emp_aso AND CAS.seccion_id_suc=$id_suc_aso AND CAS.seccion_id_dep=$id_dep_aso AND CAS.seccion_id_sec=$id_sec_aso) )
				AND (DVE.id_tdo=1 OR DVE.id_tdo=4 OR DVE.id_tdo=11 OR DVE.id_tdo=14)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='H'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=410117)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			ORDER BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			) UNION ALL (
			SELECT
				CCO.nombre_cco,
				CASE WHEN DEP.nombre_dep='Repuestos' THEN 'Meson' ELSE DEP.nombre_dep END as nombre_dep,
				CAS.seccion_id_suc,
				CAS.seccion_id_dep,
				CAS.seccion_id_sec,
				COALESCE(sum(CAS.monto_cas),0)*-1 as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_dep=3 OR DVE.seccion_id_dep=4 OR DVE.seccion_id_dep=5) 
				AND ((CAS.seccion_id_emp=$id_emp AND CAS.seccion_id_suc=$id_suc AND CAS.seccion_id_dep=$id_dep AND CAS.seccion_id_sec=$id_sec) 
				OR (CAS.seccion_id_emp=$id_emp_aso AND CAS.seccion_id_suc=$id_suc_aso AND CAS.seccion_id_dep=$id_dep_aso AND CAS.seccion_id_sec=$id_sec_aso) )
				AND (DVE.id_tdo=3 OR DVE.id_tdo=13) 
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='D'
				AND ACO.tipo_aco='T'
				AND (CAS.id_cco=410117)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			ORDER BY
				CCO.nombre_cco,nombre_dep,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
			)
		) as tab
			GROUP BY tab.nombre_cco,tab.nombre_dep,tab.seccion_id_suc,tab.seccion_id_dep,tab.seccion_id_sec
			ORDER BY tab.nombre_cco,tab.nombre_dep,tab.seccion_id_suc,tab.seccion_id_dep,tab.seccion_id_sec;
	";
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
			$art[$i]['nombre_cco']	= $val['nombre_cco'];
			$art[$i]['nombre_dep']	= $val['nombre_dep'];
			$art[$i]['id_suc']		= $val['seccion_id_suc'];
			$art[$i]['id_dep']		= $val['seccion_id_dep'];
			$art[$i]['id_sec']		= $val['seccion_id_sec'];
			$art[$i]['suma_monto_cas']	= $val['suma_monto_cas'];
			$i++;
         	}
      	}
	return $art;
}

function resumen_costos ($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano) {
	$iva= SISTEMA_IVA + 1;
	$seccion = seccion_asociada_tipo_depto($id_emp,$id_suc,$id_dep,$id_sec,'A','4');
	$aso = seccion_asociada_lista_tipo($seccion[0]['id_emp'],$seccion[0]['id_suc'],$seccion[0]['id_dep'],$seccion[0]['id_sec'],'P');
	if(!empty($aso)) {
		$id_emp_aso=$aso[0]['id_emp'];
		$id_suc_aso=$aso[0]['id_suc'];
		$id_dep_aso=$aso[0]['id_dep'];
		$id_sec_aso=$aso[0]['id_sec'];
	}else{
		$id_emp_aso=$id_emp;
		$id_suc_aso=$id_suc;
		$id_dep_aso=$id_dep;
		$id_sec_aso=$id_sec;
	}
	$diaf=ultimo_dia_mes($mes,$ano);
	$sql.="SELECT id_cbi,nombre_cbi,id_suc,id_dep,id_sec,depto,costo,cantidad
	FROM
	(
	(
		SELECT
			tab.id_cbi,
			tab.nombre_cbi,
			tab.id_suc,
			tab.id_dep,
			tab.id_sec,
			tab.destino_id_dep as depto,
			sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,
			sum(tab.cantidad_dmp) as cantidad
		FROM
		(SELECT DISTINCT ON (
			DMP.id_mpr,
			DMP.correlativo_dmp,
			DV.numero_dve,
			OT.id_otr,
			A.id_lar,
			CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
			B.id_bie,
			B.codigo_externo_bie,
			S.costo_promedio_sar,
			DMP.cantidad_dmp,
			DMP.precio_dmp,
			DMP.descuento_dmp
			)
						
			DV.numero_dve,OT.id_otr,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,B.id_bie,B.codigo_externo_bie,B.nombre_bie,CB.nombre_cbi,
			(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN
				(CASE WHEN OT.id_dep = 4 THEN 
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/OT.total_otr),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/OT.total_otr),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/(OT.total_otr/$iva)),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				END)  
			ELSE 
				(CASE WHEN OT.id_dep = 4 THEN  
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/OT.total_otr),0) ELSE s.costo_promedio_sar END) 
					ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE s.costo_promedio_sar END)
				END)
			END) as costo_promedio_sar,
			MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_dep,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp

		FROM
			movimiento_producto MP

			INNER JOIN detalle_movimiento_producto DMP
			using (id_mpr)

			INNER JOIN orden_trabajo OT
			on (OT.id_otr = MP.id_otr )

			INNER JOIN documento_venta_ot DVO
			on (DVO.id_otr = OT.id_otr)

			INNER JOIN documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)

			INNER JOIN documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)

			INNER JOIN cliente C
			on (DVC.id_cli = C.id_cli)

			INNER JOIN tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)

			INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)

			INNER JOIN articulo A
			on (B.id_bie = A.id_bie)

			LEFT JOIN linea_articulo LA
			on (A.id_lar = LA.id_lar)

  			INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp AND S.id_suc=$id_suc
			AND S.id_dep=$id_dep AND S.id_sec=$id_sec AND S.ano_sar=date_part('year',MP.fecha_mpr) AND S.mes_sar=date_part('month',MP.fecha_mpr))
			
			INNER JOIN categoria_bien CB
			on (CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

		WHERE MP.id_tmv=3 AND MP.id_emp=$id_emp AND MP.id_suc=$id_suc AND MP.id_dep=$id_dep AND MP.id_sec=$id_sec
			AND MP.destino_id_emp is not NULL and MP.destino_id_suc is not NULL
			AND MP.destino_id_dep is not NULL and MP.destino_id_sec is not NULL
			AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
			AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
			AND (DVC.id_cli<>259687 AND DVC.id_cli<>212178 AND DVC.id_cli<>254683 AND DVC.id_cli<>254684 AND DVC.id_cli<>72948 AND DVC.id_cli<>257873 AND DVC.id_cli<>254767 AND DVC.id_cli<>349198)
			AND (DMP.id_tco=1 OR DMP.id_tco IS NULL	)
			AND (OT.id_eot<>9 OR (OT.id_eot=9 and date_part('month',OT.fecha_facturacion_otr)=$mes AND date_part('year',OT.fecha_facturacion_otr)=$ano ))
			AND (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is false 
			 OR (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is true 
			 AND (SELECT min(dv2.fecha_dve) FROM documento_venta_relacionado dvr INNER JOIN documento_venta dv2 ON (dvr.id_emp=dv2.id_emp and dvr.id_tdo=dv2.id_tdo and dvr.numero_dve=dv2.numero_dve) WHERE dvr.id_emp_rel=DV.id_emp AND dvr.id_tdo_rel=DV.id_tdo AND dvr.numero_dve_rel=DV.numero_dve and DV.neto_dve=dv2.neto_dve and dv2.tipo_nc_dve=1) Not Between '01/$mes/$ano' AND '$diaf/$mes/$ano') )
		) as tab

		GROUP BY tab.id_cbi,tab.nombre_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
		ORDER BY tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
	)
	UNION ALL
	(
	
		SELECT 	t.id_cbi,
			t.nombre_cbi,
			t.seccion_id_suc,
			t.seccion_id_dep,
			t.seccion_id_sec,
			t.seccion_id_dep as depto,
			sum(t.costo) as costo,
			sum(t.cantidad) as cantidad
		FROM (
			SELECT 	CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,
				CB.nombre_cbi,
				DV.seccion_id_suc,
				DV.seccion_id_dep,
				DV.seccion_id_sec,
				DV.seccion_id_dep as depto,
				CASE WHEN (B.id_bie=1001 or B.id_bie=275803) THEN DVA.costo_dva ELSE (S.costo_promedio_sar*DVA.cantidad_dva) END as costo,
				DVA.cantidad_dva as cantidad

				FROM documento_venta DV
				INNER JOIN documento_venta_articulo DVA ON(DV.id_emp=DVA.id_emp and DV.id_tdo=DVA.id_tdo AND DV.numero_dve=DVA.numero_dve)
				INNER JOIN bien_servicio B ON(DVA.id_bie=B.id_bie)
				LEFT JOIN articulo A ON(B.id_bie=A.id_bie)
				INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp AND S.id_suc=$id_suc
				AND S.id_dep=$id_dep AND S.id_sec=$id_sec AND S.ano_sar=$ano AND S.mes_sar=$mes)
				INNER JOIN categoria_bien CB ON(CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

				WHERE DV.seccion_id_emp=$id_emp AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
				AND  date_part('month',fecha_dve)=$mes AND date_part('year',fecha_dve)=$ano
				AND DV.seccion_id_emp=$id_emp AND DV.seccion_id_suc=$id_suc AND DV.seccion_id_dep=$id_dep AND DV.seccion_id_sec=$id_sec
				AND (DV.id_tdo=1 OR DV.id_tdo=4 OR DV.id_tdo=11 OR DV.id_tdo=14)
				AND (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is false 
				 OR (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is true 
				 AND (SELECT min(dv2.fecha_dve) FROM documento_venta_relacionado dvr INNER JOIN documento_venta dv2 ON (dvr.id_emp=dv2.id_emp and dvr.id_tdo=dv2.id_tdo and dvr.numero_dve=dv2.numero_dve) WHERE dvr.id_emp_rel=DV.id_emp AND dvr.id_tdo_rel=DV.id_tdo AND dvr.numero_dve_rel=DV.numero_dve and DV.neto_dve=dv2.neto_dve and dv2.tipo_nc_dve=1) Not Between '01/$mes/$ano' AND '$diaf/$mes/$ano') )
		) as t
		GROUP BY t.id_cbi,t.id_cbi,t.nombre_cbi,t.seccion_id_suc,t.seccion_id_dep,t.seccion_id_sec,t.depto
		ORDER BY t.id_cbi,t.seccion_id_suc,t.seccion_id_dep,t.seccion_id_sec,t.depto
	)
	UNION ALL
	(
		SELECT 	CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
			CB.nombre_cbi,
			DV.seccion_id_suc,
			DV.seccion_id_dep,
			DV.seccion_id_sec,
			DV.seccion_id_dep as depto,
			sum(S.costo_promedio_sar*DVA.cantidad_dva*-1) as costo,
			sum(DVA.cantidad_dva*-1) as cantidad

			FROM documento_venta DV
			INNER JOIN documento_venta_articulo DVA ON(DV.id_emp=DVA.id_emp and DV.id_tdo=DVA.id_tdo AND DV.numero_dve=DVA.numero_dve)
			INNER JOIN bien_servicio B ON(DVA.id_bie=B.id_bie)
			LEFT JOIN articulo A ON(B.id_bie=A.id_bie)
			INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp AND S.id_suc=$id_suc
			AND S.id_dep=$id_dep AND S.id_sec=$id_sec AND S.ano_sar=$ano AND S.mes_sar=$mes)
			INNER JOIN categoria_bien CB ON(CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

			WHERE DV.seccion_id_emp=$id_emp AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
			AND  date_part('month',fecha_dve)=$mes AND date_part('year',fecha_dve)=$ano
			AND DV.seccion_id_emp=$id_emp AND DV.seccion_id_suc=$id_suc AND DV.seccion_id_dep=$id_dep AND DV.seccion_id_sec=$id_sec
			AND (DV.id_tdo=3 OR DV.id_tdo=13) 

			GROUP BY S.id_cbi,B.id_cbi,CB.nombre_cbi,DV.id_emp,DV.seccion_id_suc,DV.seccion_id_dep,DV.seccion_id_sec,depto
			ORDER BY S.id_cbi,DV.id_emp,DV.seccion_id_suc,DV.seccion_id_dep,DV.seccion_id_sec,depto			
	)
	UNION ALL
	(
		SELECT
			tab.id_cbi,
			tab.nombre_cbi,
			tab.id_suc,
			tab.id_dep,
			tab.id_sec,
			tab.destino_id_dep as depto,
			sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,
			sum(tab.cantidad_dmp) as cantidad

		FROM
		(SELECT DISTINCT ON (
			DMP.id_mpr,
			DMP.correlativo_dmp,
			DV.numero_dve,
			OT.id_otr,
			A.id_lar,
			CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
			B.id_bie,
			B.codigo_externo_bie,
			S.costo_promedio_sar,
			DMP.cantidad_dmp,
			DMP.precio_dmp,
			DMP.descuento_dmp
			)

			DV.numero_dve,OT.id_otr,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,B.id_bie,B.codigo_externo_bie,B.nombre_bie,CB.nombre_cbi,
			(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN
				(CASE WHEN OT.id_dep = 4 THEN 
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/OT.total_otr),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/OT.total_otr),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/(OT.total_otr/$iva)),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				END)  
			ELSE 
				(CASE WHEN OT.id_dep = 4 THEN  
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/OT.total_otr),0) ELSE s.costo_promedio_sar END) 
					ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE s.costo_promedio_sar END)
				END)
			END) as costo_promedio_sar,
			MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_dep,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp

		FROM
			movimiento_producto MP

			INNER JOIN detalle_movimiento_producto DMP
			using (id_mpr)

			INNER JOIN orden_trabajo OT
			on (OT.id_otr = MP.id_otr )

			INNER JOIN documento_venta_ot DVO
			on (DVO.id_otr = OT.id_otr)

			INNER JOIN documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)

			INNER JOIN documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)

			INNER JOIN cliente C
			on (DVC.id_cli = C.id_cli)

			INNER JOIN tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)

			INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)

			INNER JOIN articulo A
			on (B.id_bie = A.id_bie)

			LEFT JOIN linea_articulo LA
			on (A.id_lar = LA.id_lar)

   			INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp_aso AND S.id_suc=$id_suc_aso
			AND S.id_dep=$id_dep_aso AND S.id_sec=$id_sec_aso AND S.ano_sar=date_part('year',MP.fecha_mpr) AND S.mes_sar=date_part('month',MP.fecha_mpr))
			
			INNER JOIN categoria_bien CB
			on (CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

			WHERE MP.id_tmv=3 AND MP.id_emp=$id_emp_aso AND MP.id_suc=$id_suc_aso AND MP.id_dep=$id_dep_aso AND MP.id_sec=$id_sec_aso
			AND MP.destino_id_emp is not NULL and MP.destino_id_suc is not NULL
			AND MP.destino_id_dep is not NULL and MP.destino_id_sec is not NULL
			AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
			AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
			AND (DVC.id_cli<>259687 AND DVC.id_cli<>212178 AND DVC.id_cli<>254683 AND DVC.id_cli<>254684 AND DVC.id_cli<>72948 AND DVC.id_cli<>257873 AND DVC.id_cli<>254767 AND DVC.id_cli<>349198)
			AND (DMP.id_tco=1 OR DMP.id_tco IS NULL	)
			AND (OT.id_eot<>9 OR (OT.id_eot=9 and date_part('month',OT.fecha_facturacion_otr)=$mes AND date_part('year',OT.fecha_facturacion_otr)=$ano ))
			AND (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is false 
			 OR (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is true 
			 AND (SELECT min(dv2.fecha_dve) FROM documento_venta_relacionado dvr INNER JOIN documento_venta dv2 ON (dvr.id_emp=dv2.id_emp and dvr.id_tdo=dv2.id_tdo and dvr.numero_dve=dv2.numero_dve) WHERE dvr.id_emp_rel=DV.id_emp AND dvr.id_tdo_rel=DV.id_tdo AND dvr.numero_dve_rel=DV.numero_dve and DV.neto_dve=dv2.neto_dve and dv2.tipo_nc_dve=1) Not Between '01/$mes/$ano' AND '$diaf/$mes/$ano') )

		) as tab

		GROUP BY tab.id_cbi,tab.nombre_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
		ORDER BY tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
	)
	UNION ALL
	(
		SELECT
			tab.id_cbi,
			tab.nombre_cbi,
			tab.id_suc,
			tab.id_dep,
			tab.id_sec,
			tab.destino_id_dep as depto,
			sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,
			sum(tab.cantidad_dmp) as cantidad

		FROM
		(SELECT DISTINCT ON (
			DMP.id_mpr,
			DMP.correlativo_dmp,		
			DV.numero_dve,
			OT.id_otr,
			A.id_lar,
			CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
			B.id_bie,
			B.codigo_externo_bie,
			S.costo_promedio_sar,
			DMP.cantidad_dmp,
			DMP.precio_dmp,
			DMP.descuento_dmp
			)

			DV.numero_dve,OT.id_otr,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,B.id_bie,B.codigo_externo_bie,B.nombre_bie,CB.nombre_cbi,
			(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN
				(CASE WHEN OT.id_dep = 4 THEN 
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/OT.total_otr),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/OT.total_otr),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/(OT.total_otr/$iva)),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				END)  
			ELSE 
				(CASE WHEN OT.id_dep = 4 THEN  
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/OT.total_otr),0) ELSE s.costo_promedio_sar END) 
					ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE s.costo_promedio_sar END)
				END)
			END) as costo_promedio_sar,
			MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_dep,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp

		FROM
			movimiento_producto MP

			INNER JOIN detalle_movimiento_producto DMP
			using (id_mpr)

			INNER JOIN orden_trabajo OT
			on (OT.id_otr = MP.id_otr )

			INNER JOIN documento_venta_ot DVO
			on (DVO.id_otr = OT.id_otr)

			INNER JOIN documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)

			INNER JOIN documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)

			INNER JOIN cliente C
			on (DVC.id_cli = C.id_cli)

			INNER JOIN tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)

			INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)

			INNER JOIN articulo A
			on (B.id_bie = A.id_bie)

			LEFT JOIN linea_articulo LA
			on (A.id_lar = LA.id_lar)

			INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp AND S.id_suc=$id_suc
			AND S.id_dep=$id_dep AND S.id_sec=$id_sec AND S.ano_sar=date_part('year',MP.fecha_mpr) AND S.mes_sar=date_part('month',MP.fecha_mpr))
			
			INNER JOIN categoria_bien CB
			on (CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

			WHERE MP.id_tmv=3 AND MP.id_emp=$id_emp AND MP.id_suc=$id_suc AND MP.id_dep=$id_dep AND MP.id_sec=$id_sec
			AND MP.destino_id_emp is not NULL and MP.destino_id_suc is not NULL
			AND MP.destino_id_dep is not NULL and MP.destino_id_sec is not NULL
			AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
			AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
			AND (DVC.id_cli=259687 OR DVC.id_cli=212178 OR DVC.id_cli=254683 OR DVC.id_cli=254684 OR DVC.id_cli=72948 OR DVC.id_cli=257873 OR DVC.id_cli=254767 OR DVC.id_cli=349198)
			AND (DMP.id_tco=2)
			AND (OT.id_eot<>9 OR (OT.id_eot=9 and date_part('month',OT.fecha_facturacion_otr)=$mes AND date_part('year',OT.fecha_facturacion_otr)=$ano ))
			AND (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is false 
			 OR (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is true 
			 AND (SELECT min(dv2.fecha_dve) FROM documento_venta_relacionado dvr INNER JOIN documento_venta dv2 ON (dvr.id_emp=dv2.id_emp and dvr.id_tdo=dv2.id_tdo and dvr.numero_dve=dv2.numero_dve) WHERE dvr.id_emp_rel=DV.id_emp AND dvr.id_tdo_rel=DV.id_tdo AND dvr.numero_dve_rel=DV.numero_dve and DV.neto_dve=dv2.neto_dve and dv2.tipo_nc_dve=1) Not Between '01/$mes/$ano' AND '$diaf/$mes/$ano') )

		) as tab

		GROUP BY tab.id_cbi,tab.nombre_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
		ORDER BY tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
	)
	UNION ALL
	(
		SELECT
			tab.id_cbi,
			tab.nombre_cbi,
			tab.id_suc,
			tab.id_dep,
			tab.id_sec,
			tab.destino_id_dep as depto,
			sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,
			sum(tab.cantidad_dmp) as cantidad

		FROM
		(SELECT DISTINCT ON (
			DMP.id_mpr,
			DMP.correlativo_dmp,
			DV.numero_dve,
			OT.id_otr,
			A.id_lar,
			CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
			B.id_bie,
			B.codigo_externo_bie,
			S.costo_promedio_sar,
			DMP.cantidad_dmp,
			DMP.precio_dmp,
			DMP.descuento_dmp
			)

			DV.numero_dve,OT.id_otr,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,B.id_bie,B.codigo_externo_bie,B.nombre_bie,CB.nombre_cbi,
			(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN
				(CASE WHEN OT.id_dep = 4 THEN 
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/OT.total_otr),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/OT.total_otr),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
						(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/(OT.total_otr/$iva)),0) END)
						ELSE
						(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
					END)
				END)  
			ELSE 
				(CASE WHEN OT.id_dep = 4 THEN  
					(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/OT.total_otr),0) ELSE s.costo_promedio_sar END) 
					ELSE
					(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE s.costo_promedio_sar END)
				END)
			END) as costo_promedio_sar,
			MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_dep,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp

		FROM
			movimiento_producto MP

			INNER JOIN detalle_movimiento_producto DMP
			using (id_mpr)

			INNER JOIN orden_trabajo OT
			on (OT.id_otr = MP.id_otr )

			INNER JOIN documento_venta_ot DVO
			on (DVO.id_otr = OT.id_otr)

			INNER JOIN documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)

			INNER JOIN documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)

			INNER JOIN cliente C
			on (DVC.id_cli = C.id_cli)

			INNER JOIN tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)

			INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)

			INNER JOIN articulo A
			on (B.id_bie = A.id_bie)

			LEFT JOIN linea_articulo LA
			on (A.id_lar = LA.id_lar)

   			INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp_aso AND S.id_suc=$id_suc_aso
			AND S.id_dep=$id_dep_aso AND S.id_sec=$id_sec_aso AND S.ano_sar=date_part('year',MP.fecha_mpr) AND S.mes_sar=date_part('month',MP.fecha_mpr))
			
			INNER JOIN categoria_bien CB
			on (CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

			WHERE MP.id_tmv=3 AND MP.id_emp=$id_emp_aso AND MP.id_suc=$id_suc_aso AND MP.id_dep=$id_dep_aso AND MP.id_sec=$id_sec_aso
			AND MP.destino_id_emp is not NULL and MP.destino_id_suc is not NULL
			AND MP.destino_id_dep is not NULL and MP.destino_id_sec is not NULL
			AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
			AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
			AND (DVC.id_cli=259687 OR DVC.id_cli=212178 OR DVC.id_cli=254683 OR DVC.id_cli=254684 OR DVC.id_cli=72948 OR DVC.id_cli=257873 OR DVC.id_cli=254767 OR DVC.id_cli=349198)
			AND (DMP.id_tco=2)
			AND (OT.id_eot<>9 OR (OT.id_eot=9 and date_part('month',OT.fecha_facturacion_otr)=$mes AND date_part('year',OT.fecha_facturacion_otr)=$ano ))
			AND (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is false 
			 OR (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is true 
			 AND (SELECT min(dv2.fecha_dve) FROM documento_venta_relacionado dvr INNER JOIN documento_venta dv2 ON (dvr.id_emp=dv2.id_emp and dvr.id_tdo=dv2.id_tdo and dvr.numero_dve=dv2.numero_dve) WHERE dvr.id_emp_rel=DV.id_emp AND dvr.id_tdo_rel=DV.id_tdo AND dvr.numero_dve_rel=DV.numero_dve and DV.neto_dve=dv2.neto_dve and dv2.tipo_nc_dve=1) Not Between '01/$mes/$ano' AND '$diaf/$mes/$ano') )

		) as tab

		GROUP BY tab.id_cbi,tab.nombre_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
		ORDER BY tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
	) 
	UNION ALL 
	(
		SELECT
			tab.id_cbi,
			tab.nombre_cbi,
			tab.id_suc,
			tab.id_dep,
			tab.id_sec,
			tab.id_dep as depto,
			sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,
			sum(tab.cantidad_dmp) as cantidad
		FROM
		(SELECT DISTINCT ON (
			DMP.id_mpr,
			DMP.correlativo_dmp,
			DV.numero_dve,
			A.id_lar,
			CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
			B.id_bie,
			B.codigo_externo_bie,
			S.costo_promedio_sar,
			DMP.cantidad_dmp,
			DMP.precio_dmp,
			DMP.descuento_dmp
			)

			DV.numero_dve,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,B.id_bie,B.codigo_externo_bie,B.nombre_bie,CB.nombre_cbi,
			(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN (CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END) ELSE S.costo_promedio_sar END) as costo_promedio_sar,
			MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_dep,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp

		FROM
			movimiento_producto MP

			INNER JOIN detalle_movimiento_producto DMP
			using (id_mpr)

			INNER JOIN documento_venta_movimiento DVO
			on (DVO.id_mpr = MP.id_mpr)

			INNER JOIN documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)

			INNER JOIN documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)

			INNER JOIN cliente C
			on (DVC.id_cli = C.id_cli)

			INNER JOIN tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)

			INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)

			INNER JOIN articulo A
			on (B.id_bie = A.id_bie)

			LEFT JOIN linea_articulo LA
			on (A.id_lar = LA.id_lar)

  			INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=$id_emp AND S.id_suc=$id_suc
			AND S.id_dep=$id_dep AND S.id_sec=$id_sec AND S.ano_sar=date_part('year',MP.fecha_mpr) AND S.mes_sar=date_part('month',MP.fecha_mpr))
			
			INNER JOIN categoria_bien CB
			on (CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)

		WHERE MP.id_tmv=4 AND MP.id_emp=$id_emp AND MP.id_suc=$id_suc AND MP.id_dep=$id_dep AND MP.id_sec=$id_sec
			AND MP.destino_id_emp is not NULL and MP.destino_id_suc is not NULL
			AND MP.destino_id_dep is not NULL and MP.destino_id_sec is not NULL
			AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
			AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
			AND (DMP.id_tco=1 OR DMP.id_tco IS NULL	)
			AND (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is false 
			 OR (docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) is true 
			 AND (SELECT min(dv2.fecha_dve) FROM documento_venta_relacionado dvr INNER JOIN documento_venta dv2 ON (dvr.id_emp=dv2.id_emp and dvr.id_tdo=dv2.id_tdo and dvr.numero_dve=dv2.numero_dve) WHERE dvr.id_emp_rel=DV.id_emp AND dvr.id_tdo_rel=DV.id_tdo AND dvr.numero_dve_rel=DV.numero_dve and DV.neto_dve=dv2.neto_dve and dv2.tipo_nc_dve=1) Not Between '01/$mes/$ano' AND '$diaf/$mes/$ano') )

		) as tab

		GROUP BY tab.id_cbi,tab.nombre_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto
		ORDER BY tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,depto 
	)
	) as tabla

	GROUP BY id_cbi,nombre_cbi,id_suc,id_dep,id_sec,depto,costo,cantidad
	ORDER BY id_cbi,id_suc,id_dep,id_sec,depto,costo,cantidad
";

	if( $rs = sql_query($sql) ) {
		$i = 0;
		while( $val = sql_fetch_array($rs) ) {
			if($val['nombre_cbi']=='Neumaticos y Baterias'){
				$val['nombre_cbi']='Accesorios';
			}
			if($val['nombre_cbi']=='Lubricacion'){
				$val['nombre_cbi']='Lubricantes';
			}
			if($val['nombre_cbi']=='Servicios'){
				$art[$i]['nombre_cco'] = 'Gastos de Administracion';
			}else{
				$art[$i]['nombre_cco']	= 'Venta de '.$val['nombre_cbi'];
			}
			$art[$i]['nombre_dep']	= ($val['depto']==4?'Taller':($val['depto']==5?'Taller D y P':'Meson'));
			$art[$i]['id_suc']		= $val['id_suc'];
			$art[$i]['id_dep']		= $val['id_dep'];
			$art[$i]['id_sec']		= $val['id_sec'];
			$art[$i]['suma_monto_cas']	= $val['costo'];
			$i++;
		}
	}
	return $art;
}


function resumen_venta_valor_taller($seccion,$mes,$ano,$taller,$id_lar,$con_nc=1) {
	$art=array();
	$tal = explode("_",$taller);
	$sec = explode("_",$seccion);
	$id_tmv = TIPO_MOVIMIENTO_PR;
	$id_eot1 =ESTADO_OT_FACTURADA;
	$id_eot2 =ESTADO_OT_FACTURADA_GP;
	$id_eot3 =ESTADO_OT_CERRADA_GARANTIA;
	$id_eot4 =ESTADO_OT_FACTURADA_IMPP;
	$iva = SISTEMA_IVA+1;
	$sql = " select LA.id_lar,LA.nombre_lar,C.id_tcl,TCL.nombre_tcl,
			SUM(((DMP.cantidad_dmp * DMP.precio_dmp) - DMP.descuento_dmp)/$iva) as valor_bie, 3 as tipo
			FROM
			movimiento_producto MP
			
			inner join detalle_movimiento_producto DMP
			using (id_mpr)
			
			inner join orden_trabajo OT 
			on (OT.id_otr = MP.id_otr )
			
			inner join documento_venta_ot DVO
			on (DVO.id_otr = OT.id_otr)
			
			inner join documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)
			
			inner join documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)
			
			inner join cliente C
			on (DVC.id_cli = C.id_cli)
			
			inner join tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)
			
			inner join articulo A
			on (DMP.id_bie = A.id_bie)
			
			LEFT join linea_articulo LA
			on (A.id_lar = LA.id_lar)
			
			where
			date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano
			and MP.destino_id_emp = $tal[0] and MP.destino_id_suc=$tal[1] and MP.destino_id_dep=$tal[2] and MP.destino_id_sec = $tal[3]
			
			and ( DV.nulo_dve is null or DV.nulo_dve is false )
			
			and MP.id_emp = $sec[0] and MP.id_suc=$sec[1] and MP.id_dep=$sec[2] and MP.id_sec = $sec[3]
			and MP.id_tmv = $id_tmv 
			
			and (OT.id_eot = $id_eot1 or OT.id_eot = $id_eot2 or OT.id_eot = $id_eot3 or OT.id_eot = $id_eot4)
   			and  (DV.tipo_nc_dve != 1 or DV.tipo_nc_dve is NULL) 

			and (DMP.id_tco != 2 or DMP.id_tco is NULL )";
			/*
			$linea = explode(",",$id_lar);
	
			for ($x=0;$x<count($linea)-1;$x++)
			{
				if ($x==0)
				{$sql.= " AND ( ";}
				else
				{$sql.=" OR ";}
				$sql.=" LA.id_lar = $linea[$x] ";
			}
			$sql.=" ) ";*/
			$sql.= "
			GROUP BY 
				LA.id_lar,LA.nombre_lar,TCL.nombre_tcl,C.id_tcl
					
				ORDER BY LA.id_lar,C.id_tcl ";
      




if ($con_nc==1) {
	$sql="
	SELECT id_lar,id_tcl,nombre_tcl,nombre_lar,sum(valor_bie) as valor_bie,3 as tipo FROM
	(
	(
	SELECT id_lar,id_tcl,nombre_tcl,nombre_lar,sum(valor_bie)*-1 as valor_bie FROM (
	SELECT 
		OTR.id_otr,
		DMP.id_bie,
		(SELECT id_lar FROM articulo WHERE id_bie=DMP.id_bie) as id_lar,
		(SELECT CLI.id_tcl FROM documento_venta_ot DVO2 JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVO2.id_emp and DVC.id_tdo=DVO2.id_tdo AND DVC.numero_dve=DVO2.numero_dve) JOIN cliente CLI ON (CLI.id_cli=DVC.id_cli) WHERE DVO2.id_otr=OTR.id_otr LIMIT 1) as id_tcl,
		(SELECT TCL.nombre_tcl FROM documento_venta_ot DVO2 JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVO2.id_emp and DVC.id_tdo=DVO2.id_tdo AND DVC.numero_dve=DVO2.numero_dve) JOIN cliente CLI ON (CLI.id_cli=DVC.id_cli) JOIN tipo_cliente TCL ON (TCL.id_tcl=CLI.id_tcl) WHERE DVO2.id_otr=OTR.id_otr LIMIT 1) as nombre_tcl,
		(SELECT nombre_lar FROM articulo ART JOIN linea_articulo LAR ON (LAR.id_lar=ART.id_lar) WHERE id_bie=DMP.id_bie) as nombre_lar,
		round((((DMP.precio_dmp * DMP.cantidad_dmp) - DMP.descuento_dmp)/$iva)) as valor_bie,
		round((((DMP.precio_dmp * DMP.cantidad_dmp) - DMP.descuento_dmp)/$iva))
		*
		(
		SELECT 
			(SUM(case when DVE2.tipo_nc_dve=1 THEN DVE2.neto_dve ELSE 0 END)*100)
			/
			factor_otr(OTR.id_otr)
		FROM
			documento_venta DVE2 
			JOIN documento_venta_ot DVO ON (DVO.id_emp=DVE2.id_emp AND DVO.id_tdo=DVE2.id_tdo AND DVO.numero_dve=DVE2.numero_dve)
		WHERE 
			DVE2.nulo_dve IS NOT TRUE 
			AND DVE2.nulo_dve IS NOT TRUE
			AND (DVE2.id_tdo=".TIPO_DOCTO_VENTA_FACTURA." OR DVE2.id_tdo=".TIPO_DOCTO_VENTA_BOLETA." OR DVE2.id_tdo=".TIPO_DOCTO_VENTA_FACTURA_EL." OR DVE2.id_tdo=".TIPO_DOCTO_VENTA_BOLETA_EL.")
			AND OTR.id_otr=DVO.id_otr
		)
	/
		100 as porrateo	
	FROM 
		orden_trabajo OTR 
		JOIN movimiento_producto MPR ON (MPR.id_otr=OTR.id_otr) 
		JOIN detalle_movimiento_producto DMP ON (DMP.id_mpr=MPR.id_mpr) 
	WHERE 
		MPR.id_emp=$sec[0]
		AND MPR.id_suc=$sec[1]
		AND MPR.id_dep=$sec[2]
		AND MPR.id_sec=$sec[3]
		AND MPR.destino_id_emp=$tal[0]
		AND MPR.destino_id_dep=$tal[2]
		AND (OTR.id_eot=".ESTADO_OT_FACTURADA." OR OTR.id_eot=".ESTADO_OT_FACTURADA_GP." OR OTR.id_eot=".ESTADO_OT_CERRADA_GARANTIA." OR OTR.id_eot=".ESTADO_OT_FACTURADA_IMPP.")
		AND exists 	(
				SELECT 
					DVE.id_emp,
					DVE.id_tdo,
					DVE.numero_dve,
					DVE2.id_emp,
					DVE2.id_tdo,
					DVE2.numero_dve
				FROM
					documento_venta DVE 
					JOIN documento_venta_relacionado DVR ON (DVR.id_emp=DVE.id_emp AND DVR.id_tdo=DVE.id_tdo AND DVR.numero_dve=DVE.numero_dve)
					JOIN documento_venta DVE2 ON (DVE2.id_emp=DVR.id_emp_rel AND DVE2.id_tdo=DVR.id_tdo_rel AND DVE2.numero_dve=DVR.numero_dve_rel)
					JOIN documento_venta_ot DVO ON (DVO.id_emp=DVE2.id_emp AND DVO.id_tdo=DVE2.id_tdo AND DVO.numero_dve=DVE2.numero_dve)
				WHERE 
					DVE.nulo_dve IS NOT TRUE 
					AND DVE2.nulo_dve IS NOT TRUE
					AND date_part('month',DVE.fecha_dve)=$mes AND date_part('year',DVE.fecha_dve)=$ano
					AND (DVE.id_tdo=".TIPO_DOCTO_VENTA_CREDITO." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_CREDITO_EL.") 
 					AND (DVE2.id_tdo=".TIPO_DOCTO_VENTA_FACTURA." OR DVE2.id_tdo=".TIPO_DOCTO_VENTA_BOLETA." OR DVE2.id_tdo=".TIPO_DOCTO_VENTA_FACTURA_EL." OR DVE2.id_tdo=".TIPO_DOCTO_VENTA_BOLETA_EL.") 
					AND DVE.tipo_nc_dve=1					
					AND OTR.id_otr=DVO.id_otr
				)
		ORDER BY
			OTR.id_otr,
			DMP.id_bie
	) as tabla
	GROUP BY id_lar,nombre_lar,nombre_tcl,id_tcl
	ORDER BY id_lar,id_tcl
	)
	UNION
	(
	SELECT id_lar,id_tcl,nombre_tcl,nombre_lar,sum(valor_bie) as valor_bie FROM (
	SELECT 
		OTR.id_otr,
		DMP.id_bie,
		(SELECT id_lar FROM articulo WHERE id_bie=DMP.id_bie) as id_lar,
		(SELECT CLI.id_tcl FROM documento_venta_ot DVO2 JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVO2.id_emp and DVC.id_tdo=DVO2.id_tdo AND DVC.numero_dve=DVO2.numero_dve) JOIN cliente CLI ON (CLI.id_cli=DVC.id_cli) WHERE DVO2.id_otr=OTR.id_otr LIMIT 1) as id_tcl,
		(SELECT TCL.nombre_tcl FROM documento_venta_ot DVO2 JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVO2.id_emp and DVC.id_tdo=DVO2.id_tdo AND DVC.numero_dve=DVO2.numero_dve) JOIN cliente CLI ON (CLI.id_cli=DVC.id_cli) JOIN tipo_cliente TCL ON (TCL.id_tcl=CLI.id_tcl) WHERE DVO2.id_otr=OTR.id_otr LIMIT 1) as nombre_tcl,
		(SELECT nombre_lar FROM articulo ART JOIN linea_articulo LAR ON (LAR.id_lar=ART.id_lar) WHERE id_bie=DMP.id_bie) as nombre_lar,
		round((((DMP.precio_dmp * DMP.cantidad_dmp) - DMP.descuento_dmp)/$iva)) as valor_bie
	FROM 
		orden_trabajo OTR 
		JOIN movimiento_producto MPR ON (MPR.id_otr=OTR.id_otr) 
		JOIN detalle_movimiento_producto DMP ON (DMP.id_mpr=MPR.id_mpr) 
	WHERE 
		MPR.id_emp=$sec[0]
		AND MPR.id_suc=$sec[1]
		AND MPR.id_dep=$sec[2]
		AND MPR.id_sec=$sec[3]
		AND MPR.destino_id_emp=$tal[0]
		AND MPR.destino_id_dep=$tal[2]
		AND (OTR.id_eot=".ESTADO_OT_FACTURADA." OR OTR.id_eot=".ESTADO_OT_FACTURADA_GP." OR OTR.id_eot=".ESTADO_OT_CERRADA_GARANTIA." OR OTR.id_eot=".ESTADO_OT_FACTURADA_IMPP.")
		AND exists 	(
				SELECT 
					DVE.numero_dve
				FROM
					documento_venta DVE 
					JOIN documento_venta_ot DVO ON (DVO.id_emp=DVE.id_emp AND DVO.id_tdo=DVE.id_tdo AND DVO.numero_dve=DVE.numero_dve) 
				WHERE 
					DVE.nulo_dve IS NOT TRUE 
					AND date_part('month',DVE.fecha_dve)=$mes AND date_part('year',DVE.fecha_dve)=$ano
					AND (DVE.id_tdo=".TIPO_DOCTO_VENTA_FACTURA." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_BOLETA." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_FACTURA_EL." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_BOLETA_EL.") 
					AND OTR.id_otr=DVO.id_otr
					AND docto_venta_nulo_por_nc(DVE.id_emp,DVE.id_tdo,DVE.numero_dve) IS FALSE
				)
		ORDER BY
			OTR.id_otr,
			DMP.id_bie
	) as tabla
	GROUP BY id_lar,nombre_lar,nombre_tcl,id_tcl
	ORDER BY id_lar,id_tcl 
	)
	) as tar
	GROUP BY id_lar,nombre_lar,nombre_tcl,id_tcl
	ORDER BY id_lar,id_tcl 
	;
	";
} else {
	$sql="
	SELECT id_lar,id_tcl,nombre_tcl,nombre_lar,sum(valor_bie) as valor_bie,3 as tipo FROM (
	SELECT 
		OTR.id_otr,
		DMP.id_bie,
		(SELECT id_lar FROM articulo WHERE id_bie=DMP.id_bie) as id_lar,
		(SELECT CLI.id_tcl FROM documento_venta_ot DVO2 JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVO2.id_emp and DVC.id_tdo=DVO2.id_tdo AND DVC.numero_dve=DVO2.numero_dve) JOIN cliente CLI ON (CLI.id_cli=DVC.id_cli) WHERE DVO2.id_otr=OTR.id_otr LIMIT 1) as id_tcl,
		(SELECT TCL.nombre_tcl FROM documento_venta_ot DVO2 JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVO2.id_emp and DVC.id_tdo=DVO2.id_tdo AND DVC.numero_dve=DVO2.numero_dve) JOIN cliente CLI ON (CLI.id_cli=DVC.id_cli) JOIN tipo_cliente TCL ON (TCL.id_tcl=CLI.id_tcl) WHERE DVO2.id_otr=OTR.id_otr LIMIT 1) as nombre_tcl,
		(SELECT nombre_lar FROM articulo ART JOIN linea_articulo LAR ON (LAR.id_lar=ART.id_lar) WHERE id_bie=DMP.id_bie) as nombre_lar,
		round((((DMP.precio_dmp * DMP.cantidad_dmp) - DMP.descuento_dmp)/$iva)) as valor_bie
	FROM 
		orden_trabajo OTR 
		JOIN movimiento_producto MPR ON (MPR.id_otr=OTR.id_otr) 
		JOIN detalle_movimiento_producto DMP ON (DMP.id_mpr=MPR.id_mpr) 
	WHERE 
		MPR.id_emp=$sec[0]
		AND MPR.id_suc=$sec[1]
		AND MPR.id_dep=$sec[2]
		AND MPR.id_sec=$sec[3]
		AND MPR.destino_id_emp=$tal[0]
		AND MPR.destino_id_dep=$tal[2]
		AND (OTR.id_eot=".ESTADO_OT_FACTURADA." OR OTR.id_eot=".ESTADO_OT_FACTURADA_GP." OR OTR.id_eot=".ESTADO_OT_CERRADA_GARANTIA." OR OTR.id_eot=".ESTADO_OT_FACTURADA_IMPP.")
		AND exists 	(
				SELECT 
					DVE.numero_dve
				FROM
					documento_venta DVE 
					JOIN documento_venta_ot DVO ON (DVO.id_emp=DVE.id_emp AND DVO.id_tdo=DVE.id_tdo AND DVO.numero_dve=DVE.numero_dve) 
				WHERE 
					DVE.nulo_dve IS NOT TRUE 
					AND date_part('month',DVE.fecha_dve)=$mes AND date_part('year',DVE.fecha_dve)=$ano
					AND (DVE.id_tdo=".TIPO_DOCTO_VENTA_FACTURA." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_BOLETA." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_FACTURA_EL." OR DVE.id_tdo=".TIPO_DOCTO_VENTA_BOLETA_EL.") 
					AND OTR.id_otr=DVO.id_otr
					AND docto_venta_nulo_por_nc(DVE.id_emp,DVE.id_tdo,DVE.numero_dve) IS FALSE
				)
		ORDER BY
			OTR.id_otr,
			DMP.id_bie
	) as tabla
	GROUP BY id_lar,nombre_lar,nombre_tcl,id_tcl
	ORDER BY id_lar,id_tcl 
	;
	";
}








	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_lar']	= $val['nombre_lar'];
			$art[$i]['id_tcl']	= $val['id_tcl'];
			$art[$i]['id_lar']	= $val['id_lar'];
			$art[$i]['nombre_tcl']	= $val['nombre_tcl'];
			$art[$i]['valor_bie']	= $val['valor_bie'];
			$art[$i]['tipo']	= $val['tipo'];
            		$i++;
         	}
      	}
      	return $art;
}

//******************
function resumen_venta_valor_nueva($seccion,$mes,$ano,$taller,$id_lar) {          
	$art=array();
	$tal = explode("_",$taller);
	$sec = explode("_",$seccion);
	$id_tmv = TIPO_MOVIMIENTO_PR;
	$id_eot1 =ESTADO_OT_FACTURADA;
	$id_eot2 =ESTADO_OT_FACTURADA_GP;
	$id_eot3 =ESTADO_OT_CERRADA_GARANTIA;
	$id_eot4 =ESTADO_OT_FACTURADA_IMPP;
	
	$iva = SISTEMA_IVA+1;
	$sql = " SELECT id_lar,id_tcl,nombre_tcl,nombre_lar, sum(precio_dividido) as valor_bie, 3 as tipo FROM (

			SELECT
			LA.id_lar,LA.nombre_lar,C.id_tcl,TCL.nombre_tcl,
			OT.id_otr,
			DV.numero_dve,
			DMP.id_bie,
			
			DMP.precio_dmp,
			
			(SELECT count(*) FROM documento_venta_ot JOIN documento_venta USING (id_emp,id_tdo,numero_dve) 
			WHERE id_otr=OT.id_otr AND  nulo_dve IS NOT TRUE and  (tipo_nc_dve != 1 or tipo_nc_dve is NULL) ) as cantidad_a_dividir,
			
			round((((DMP.precio_dmp * DMP.cantidad_dmp) - DMP.descuento_dmp)/$iva)) / 
			(SELECT count(*) FROM documento_venta_ot JOIN documento_venta USING (id_emp,id_tdo,numero_dve) 
			WHERE id_otr=OT.id_otr AND  nulo_dve IS NOT TRUE and  (tipo_nc_dve != 1 or tipo_nc_dve is NULL) ) as precio_dividido

			FROM
			movimiento_producto MP
			
			inner join detalle_movimiento_producto DMP
			using (id_mpr)
			
			inner join orden_trabajo OT 
			on (OT.id_otr = MP.id_otr )
			
			inner join documento_venta_ot DVO
			on (DVO.id_otr = OT.id_otr)
			
			inner join documento_venta DV
			on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)
			
			inner join documento_venta_cliente DVC
			on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)
			
			inner join cliente C
			on (DVC.id_cli = C.id_cli)
			
			inner join tipo_cliente TCL on
			(C.id_tcl = TCL.id_tcl)
			
			inner join articulo A
			on (DMP.id_bie = A.id_bie)
			
			left join linea_articulo LA
			on (A.id_lar = LA.id_lar)
			
			where
			date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano
			and MP.destino_id_emp = $tal[0] and MP.destino_id_suc=$tal[1] and 
			MP.destino_id_dep=$tal[2] and MP.destino_id_sec = $tal[3]
			
			and ( DV.nulo_dve is null or DV.nulo_dve is false )
			
			and MP.id_emp = $sec[0] and MP.id_suc=$sec[1] and MP.id_dep=$sec[2] and MP.id_sec = $sec[3]
			and MP.id_tmv = $id_tmv
			
			and (OT.id_eot = $id_eot1 or OT.id_eot = $id_eot2 or OT.id_eot = $id_eot3 or OT.id_eot = $id_eot4)
			and (DV.tipo_nc_dve != 1 or DV.tipo_nc_dve is NULL) 

			)
			as resultado
			GROUP BY resultado.id_lar,resultado.nombre_lar,resultado.nombre_tcl,resultado.id_tcl
			ORDER BY resultado.id_lar,resultado.id_tcl ";
      
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_lar']	= $val['nombre_lar'];
			$art[$i]['id_tcl']	= $val['id_tcl'];
			$art[$i]['id_lar']	= $val['id_lar'];
			$art[$i]['nombre_tcl']	= $val['nombre_tcl'];
			$art[$i]['valor_bie']	= $val['valor_bie'];
			$art[$i]['tipo']	= $val['tipo'];
            		$i++;
         	}
      	}
      	return $art;
}
//******************


function articulo_guardar_phase($id_bie_array,$mes,$ano,$id_emp,$id_suc,$id_dep,$id_sec,$phase)
{
    	$resul=0;
      	$sql ="UPDATE saldo_articulo SET phase_sar='$phase' ";
      	$sql.=" WHERE id_emp = $id_emp and id_suc = $id_suc and id_dep = $id_dep and id_sec = $id_sec ";
		if ($id_bie_array!="") {
			$sql.="AND ( ";
			for ($x=0; $x<count($id_bie_array);$x++) {
				$sql.="  ( id_bie=".$id_bie_array[$x]['id_bie'].") ";
				if ($x!= count($id_bie_array)-1) {
					$sql.=" or ";
				}
			}
			$sql.=  " ) ";
		} else {
		$sql.= "AND phase_sar!='' ";
		}
		$sql.="and	( mes_sar = $mes and ano_sar = $ano ) ";

      	if( sql_query( $sql ) ){ 
         	$resul=1;
      	}
      	return $resul;
}

function articulo_phase_in($mes,$mes_a,$ano_a,$bodega,$tope) {
	$art=array();
	$sec = explode("_",$bodega);
	$id_emp = usuario_empresa();
	$id_car = CATEGORIA_ART_COLISION;
	$id_cbi = CATEGORIA_BIEN_REPUESTOS;
	$sql ="SELECT DISTINCT
		BS.id_bie, BS.nombre_bie, BS.codigo_externo_bie,
		SA.stock_inicial_sar, SA.stock_entrada_sar, SA.stock_salida_sar,
		SA.stock_interno_sar,phase_sar,

		((SA.stock_entrada_sar + SA.traspaso_entrada_sar + SA.ajuste_entrada_sar) + SA.stock_inicial_sar) - (SA.stock_salida_sar + SA.traspaso_salida_sar + SA.stock_interno_sar + ajuste_salida_sar) as stk_act,
		(SA.stock_entrada_sar + SA.traspaso_entrada_sar + SA.ajuste_entrada_sar) as rec_mes,
		(SA.stock_salida_sar + SA.traspaso_salida_sar + SA.stock_interno_sar + ajuste_salida_sar) as vta_mes,
		
		(SELECT (stock_entrada_sar + traspaso_entrada_sar + ajuste_entrada_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		+
		(SELECT (stock_inicial_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		-
		(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stk_act3,
		
		(SELECT (stock_entrada_sar + traspaso_entrada_sar + ajuste_entrada_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		+
		(SELECT (stock_inicial_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		-
		(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stk_act2,
		
		(SELECT (stock_entrada_sar + traspaso_entrada_sar + ajuste_entrada_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		+
		(SELECT (stock_inicial_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		-
		(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stk_act1,
		
		(SELECT stock_entrada_sar from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stock_entrada3,
		(SELECT stock_entrada_sar from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stock_entrada2,
		(SELECT stock_entrada_sar from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stock_entrada1,
		
		(SELECT stock_salida_sar from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[1]['mes']." and ano_sar=".$mes[1]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stock_salida3,
		(SELECT stock_salida_sar from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[2]['mes']." and ano_sar=".$mes[2]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stock_salida2,
		(SELECT stock_salida_sar from saldo_articulo 
		where id_bie=BS.id_bie and mes_sar=".$mes[3]['mes']." and ano_sar=".$mes[3]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
		as stock_salida1

        FROM saldo_articulo SA
		INNER JOIN bien_servicio BS using (id_bie)
		INNER JOIN articulo A using (id_bie)
				
		WHERE ( SA.ano_sar = $ano_a and SA.mes_sar = $mes_a) AND ( SA.id_suc = $sec[0] AND SA.id_dep = $sec[1] AND SA.id_sec = $sec[2] ) AND CASE WHEN SA.id_cbi IS NULL THEN BS.id_cbi=$id_cbi ELSE SA.id_cbi=$id_cbi END ";

		$sql.= " AND ( A.id_car <> $id_car or A.id_car is NULL ) AND (SA.phase_sar is NULL or phase_sar='I')";

		$cont=2;   //cuando x=1 2so for va de 1  a 3 , x=2 2do for va de 2 a 4 y asi, para comprobar ke cada articulo
				//tenga mov de vta los ultimos 3 meses

		$sql.= " AND ( ";
		for ($x=1; $x<=$tope;$x++) {
			$sql.="
				(
					SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) 
					from saldo_articulo 
					where id_bie=BS.id_bie and mes_sar=".$mes[$x]['mes']." and ano_sar=".$mes[$x]['ano']." 
					and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2]
					and stock_oper_sar > 0
				)>0 ";
			if ($x!=$tope)
			{$sql.=" AND ";}
		}
		$sql.=" ) ";
		
		$sql.=" order by BS.id_bie ";
      
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
           		$art[$i]['id_bie']	= $val['id_bie'];
    			$art[$i]['descripcion_sre']	= $val['nombre_bie'];
    			$art[$i]['codigo_externo_bie']	= $val['codigo_externo_bie'];
    			$art[$i]['stock_inicial_sar']	= $val['stock_inicial_sar'];
    			$art[$i]['stock_entrada_sar']	= $val['stock_entrada_sar'];
    			$art[$i]['stock_salida_sar']	= $val['stock_salida_sar'];
    			$art[$i]['phase_sar']	= $val['phase_sar'];
    			$art[$i]['vta_mes']	= $val['vta_mes'];
    			$art[$i]['stk_act']	= $val['stk_act'];
    			$art[$i]['stk_act3']	= $val['stk_act3'];
    			$art[$i]['stk_act2']	= $val['stk_act2'];
    			$art[$i]['stk_act1']	= $val['stk_act1'];
    			$art[$i]['stock_entrada3']	= $val['stock_entrada3'];
    			$art[$i]['stock_entrada2']	= $val['stock_entrada2'];
    			$art[$i]['stock_entrada1']	= $val['stock_entrada1'];
    			$art[$i]['stock_salida3']	= $val['stock_salida3'];
    			$art[$i]['stock_salida2']	= $val['stock_salida2'];
    			$art[$i]['stock_salida1']	= $val['stock_salida1'];
           		$i++;
         	}
      	}
      	return $art;
}



function articulo_productos_sin_mov($mes,$mes_a,$ano_a,$bodega,$id_car=0) {
	$art=array();
	$sec = explode("_",$bodega);
	$id_emp = usuario_empresa();
	$id_cbi = CATEGORIA_BIEN_REPUESTOS;
	$sql ="SELECT BS.id_bie, BS.codigo_externo_bie,BS.nombre_bie,
		((SA.stock_entrada_sar + SA.traspaso_entrada_sar + SA.ajuste_entrada_sar) + SA.stock_inicial_sar) 
		- (SA.stock_salida_sar + SA.traspaso_salida_sar + SA.stock_interno_sar + ajuste_salida_sar) as stk_act,
		SA.stock_entrada_sar, SA.stock_salida_sar, SA.costo_rep_sar, SA.costo_promedio_sar,SA.costo_prom_ant_sar,
		phase_sar,";

		$sql.="(SELECT CASE WHEN R.fecha_dve>P.fecha_mpr THEN R.fecha_dve ELSE P.fecha_mpr END FROM

			(select COALESCE(max(fecha_dve),'01/01/2000') as fecha_dve
			from documento_venta_articulo join documento_venta USING (id_emp, id_tdo, numero_dve) 
			where seccion_id_emp=$id_emp and seccion_id_suc=$sec[0] and seccion_id_dep=$sec[0] and seccion_id_sec=$sec[2] 
			and date_part('month',fecha_dve) <= $mes_a AND date_part('year',fecha_dve) <= $ano_a 
			and id_bie=BS.id_bie) as R,
			
			(select COALESCE(max(fecha_mpr),'01/01/2000') as fecha_mpr
			from detalle_movimiento_producto DM join movimiento_producto M USING (id_mpr) 
			where M.id_emp=$id_emp and M.id_suc=$sec[0] and M.id_dep=$sec[1] and M.id_sec=$sec[2]  
			and date_part('month',fecha_mpr) <= $mes_a AND date_part('year',fecha_mpr) <= $ano_a 
			and M.id_tmv=3 and id_bie=BS.id_bie) as P ) as fecha_ultima, ";

			for ($z=1; $z<=6; $z++)	{
				$sql.= "(SELECT (stock_entrada_sar + traspaso_entrada_sar + ajuste_entrada_sar) from saldo_articulo
				where id_bie=BS.id_bie and mes_sar=".$mes[$z]['mes']." and ano_sar=".$mes[$z]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
				+
				(SELECT (stock_inicial_sar) from saldo_articulo 
				where id_bie=BS.id_bie and mes_sar=".$mes[$z]['mes']." and ano_sar=".$mes[$z]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
				-
				(SELECT (stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar) from saldo_articulo 
				where id_bie=BS.id_bie and mes_sar=".$mes[$z]['mes']." and ano_sar=".$mes[$z]['ano']." and id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
				as stk_act".$z.", ";

				$sql.= "(SELECT stock_entrada_sar from saldo_articulo 
				where id_bie=BS.id_bie and mes_sar=".$mes[$z]['mes']." and ano_sar=".$mes[$z]['ano']." and 
				id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
				as stock_entrada".$z.", ";

				$sql.= "(SELECT stock_salida_sar from saldo_articulo 
					where id_bie=BS.id_bie and mes_sar=".$mes[$z]['mes']." and ano_sar=".$mes[$z]['ano']." and 
					id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2])
					as stock_salida".$z;

				if ($z!=6)
				{
					$sql.=" , ";
				}
			}
		$sql.=" FROM saldo_articulo SA
               INNER JOIN bien_servicio BS using (id_bie)
               INNER JOIN articulo A using (id_bie)
		      WHERE ( SA.id_emp = $id_emp	AND SA.id_suc = $sec[0]	AND SA.id_dep = $sec[1] AND SA.id_sec = $sec[2] )
		AND SA.mes_sar=$mes_a and ano_sar=$ano_a ";
		
		$sql.="AND
		(SA.stock_inicial_sar+SA.stock_entrada_sar-
		SA.stock_salida_sar-SA.stock_interno_sar+SA.traspaso_entrada_sar-SA.traspaso_salida_sar+
		SA.ajuste_entrada_sar-SA.ajuste_salida_sar) > 0 ";
		$sql.= " AND CASE WHEN SA.id_cbi IS NULL THEN BS.id_cbi=$id_cbi ELSE SA.id_cbi=$id_cbi END ";

		for ($x=1; $x<=6; $x++)	{
			$sql.="
			AND ( (SELECT stock_salida_sar+traspaso_salida_sar+ajuste_salida_sar from saldo_articulo 
			WHERE id_emp=$id_emp and id_suc=$sec[0] and id_dep=$sec[1] and id_sec=$sec[2] and id_bie=BS.id_bie
			and mes_sar = ".$mes[$x]['mes']." and ano_sar = ".$mes[$x]['ano']." ) = 0 ";
		}

		for ($x=1; $x<=6; $x++) {
			$sql.="
			AND (SELECT stock_entrada_sar+traspaso_entrada_sar+ajuste_entrada_sar from saldo_articulo 
			WHERE id_emp=$id_emp and id_suc = $sec[0] and id_dep = $sec[1] and id_sec = $sec[2] and id_bie=BS.id_bie
			and mes_sar = ".$mes[$x]['mes']." and ano_sar = ".$mes[$x]['ano']." ) = 0 )";
		}

		$sql.=" ORDER BY BS.id_bie ";

    	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['id_bie']		= $val['id_bie'];
        			$art[$i]['codigo_externo_bie']	= $val['codigo_externo_bie'];
        			$art[$i]['nombre_bie']		= str_replace("=","",$val['nombre_bie']);
        			$art[$i]['stk_act']		= number_format($val['stk_act'],0,".","");
        			$art[$i]['stock_entrada_sar']	= $val['stock_entrada_sar'];
        			$art[$i]['stock_salida_sar']	= $val['stock_salida_sar'];

        			$art[$i]['stk_act1']	= number_format($val['stk_act6'],0,".","");
        			$art[$i]['stk_act2']	= number_format($val['stk_act5'],0,".","");
        			$art[$i]['stk_act3']	= number_format($val['stk_act4'],0,".","");
        			$art[$i]['stk_act4']	= number_format($val['stk_act3'],0,".","");
        			$art[$i]['stk_act5']	= number_format($val['stk_act2'],0,".","");
        			$art[$i]['stk_act6']	= number_format($val['stk_act1'],0,".","");

        			$art[$i]['stock_salida1']	= number_format($val['stock_salida6'],0,".","");
        			$art[$i]['stock_salida2']	= number_format($val['stock_salida5'],0,".","");
        			$art[$i]['stock_salida3']	= number_format($val['stock_salida4'],0,".","");
        			$art[$i]['stock_salida4']	= number_format($val['stock_salida3'],0,".","");
        			$art[$i]['stock_salida5']	= number_format($val['stock_salida2'],0,".","");
        			$art[$i]['stock_salida6']	= number_format($val['stock_salida1'],0,".","");

        			$art[$i]['stock_entrada1']	= number_format($val['stock_entrada6'],0,".","");
        			$art[$i]['stock_entrada2']	= number_format($val['stock_entrada5'],0,".","");
        			$art[$i]['stock_entrada3']	= number_format($val['stock_entrada4'],0,".","");
        			$art[$i]['stock_entrada4']	= number_format($val['stock_entrada3'],0,".","");
        			$art[$i]['stock_entrada5']	= number_format($val['stock_entrada2'],0,".","");
        			$art[$i]['stock_entrada6']	= number_format($val['stock_entrada1'],0,".","");

        			if ($val["fecha_ultima"] == '01/01/2000') {
        				$art[$i]['fecha_ultima']= " ";
				//si es igual a esa fecha significa que no tiene ultima fecha venta en el
				//sistema y se deja fecha en informe en blanco
        			}else{
            			$art[$i]['fecha_ultima']	= $val["fecha_ultima"];
        			}
           			$art[$i]['phase_sar']	= $val["phase_sar"];

        			if ($val['costo_promedio_sar'] != 0) {
        				$art[$i]['costo_rep_sar']	= $val['costo_promedio_sar'];
   		            }else if ($val['costo_prom_ant_sar'] !=0) {
        				$art[$i]['costo_rep_sar']	= $val['costo_prom_ant_sar'];
        			}else{
        				$art[$i]['costo_rep_sar']	= $val['costo_rep_sar'];
        			}
        			$i++;
		  }
      	}
      	return $art;
}

function articulo_consulta_facturacion_repuestos($seccion,$mes,$ano,$taller) {
	$art=array();
	$tal = explode("_",$taller);
	$sec = explode("_",$seccion);
	$id_tmv = TIPO_MOVIMIENTO_PR;
	$id_eot1 =ESTADO_OT_FACTURADA;
    $id_eot2 =ESTADO_OT_FACTURADA_GP;
    $id_eot3 =ESTADO_OT_CERRADA_GARANTIA;
	$id_eot4 =ESTADO_OT_FACTURADA_IMPP;
	$iva = SISTEMA_IVA+1;
	if($tal[2]==4 || $tal[2]==5){
		$sql = "SELECT LA.id_lar,LA.nombre_lar,date_part('day',DV.fecha_dve) as dia,
				OT.codigo_otr,DV.numero_dve,DV.id_tdo,
				SUM(round((DMP.cantidad_dmp * DMP.precio_dmp)/$iva )   ) as consumos,
				SUM(round(((DMP.cantidad_dmp * DMP.precio_dmp) - DMP.descuento_dmp)/$iva)  ) as reptos_fac,
				SUM(round(DMP.descuento_dmp/$iva)) as diferencia
				
				FROM
				movimiento_producto MP
				
				inner join detalle_movimiento_producto DMP
				using (id_mpr)
				
				inner join orden_trabajo OT 
				on (OT.id_otr = MP.id_otr )
				
				inner join documento_venta_ot DVO
				on (DVO.id_otr = OT.id_otr)
				
				inner join documento_venta DV
				on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)
				
				inner join articulo A
				on (DMP.id_bie = A.id_bie)
				
				left join linea_articulo LA
				on (A.id_lar = LA.id_lar)
				
				WHERE
				date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano
				AND MP.destino_id_emp = $tal[0] and MP.destino_id_suc=$tal[1] and MP.destino_id_dep=$tal[2] and MP.destino_id_sec = $tal[3]
				AND ( DV.nulo_dve is null or DV.nulo_dve is false )
				AND MP.id_emp = $sec[0] and MP.id_suc=$sec[1] and MP.id_dep=$sec[2] and MP.id_sec = $sec[3]
				AND MP.id_tmv = $id_tmv 
				
				GROUP BY 
					LA.id_lar,LA.nombre_lar,dia,DV.numero_dve,DV.id_tdo,OT.codigo_otr
				ORDER BY LA.id_lar,dia,DV.numero_dve,OT.codigo_otr ";
	}elseif($tal[2]==3){
		$sql="SELECT LA.id_lar,LA.nombre_lar,date_part('day',DV.fecha_dve) as dia,
				0 as codigo_otr,DV.numero_dve,DV.id_tdo,SUM(round(((ANV.cantidad_anv * ANV.precio_anv)) / $iva)) as consumos,
SUM(round(((ANV.cantidad_anv * ANV.precio_anv) - ANV.descuento_anv) / $iva)) as reptos_fac,
SUM(round(ANV.descuento_anv/$iva)) as diferencia

		FROM 
		documento_venta DV
		
		INNER JOIN documento_venta_nv DVN ON (DVN.id_emp = DV.id_emp and DVN.id_tdo = DV.id_tdo and DV.numero_dve = DVN.numero_dve)
		INNER JOIN nota_venta NV on (DVN.id_nve = NV.id_nve)
		inner join articulo_nota_venta ANV on (NV.id_nve = ANV.id_nve)
		left join articulo A on	(ANV.id_bie = A.id_bie)
		left join linea_articulo LA on	(A.id_lar = LA.id_lar)

		INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
		inner JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
		inner join tipo_cliente TCL on	(CL.id_tcl = TCL.id_tcl)
                LEFT JOIN documento_venta_relacionado DR ON (DR.id_emp_rel=DV.id_emp AND DR.id_tdo_rel=DV.id_tdo AND DR.numero_dve_rel=DV.numero_dve) 
                LEFT JOIN documento_venta DVNC ON(DVNC.id_emp=DR.id_emp AND DVNC.id_tdo=DR.id_tdo AND DVNC.numero_dve=DR.numero_dve)
		
		WHERE (dv.id_tdo <> 3 AND dv.id_tdo <> 13)  
		AND date_part('month',DV.fecha_dve) = $mes AND date_part('year',DV.fecha_dve) = $ano AND 
		DV.id_emp=$sec[0] 
		AND DV.seccion_id_suc=$sec[1] AND DV.seccion_id_dep=$sec[2] 
		AND DV.seccion_id_sec=$sec[3]  and NV.id_tnv = 3 and (DV.nulo_dve is false or DV.nulo_dve is NULL) GROUP BY 
				LA.id_lar,LA.nombre_lar,dia,DV.numero_dve,DV.id_tdo,codigo_otr
				
				ORDER BY LA.id_lar,dia,DV.numero_dve ";

	}
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['nombre_lar']	= $val['nombre_lar'];
			$art[$i]['numero_dve']	= $val['numero_dve'];
			$art[$i]['id_lar']	= $val['id_lar'];
			$art[$i]['id_tdo']	= $val['id_tdo'];
				
			if ($val['id_tdo'] == 1) {
			     $art[$i]['tipo_docto']	= "Fac.";
            }elseif ($val['id_tdo'] == 4){
                $art[$i]['tipo_docto']	= "Bol.";
            }elseif ($val['id_tdo'] == 11) {
			     $art[$i]['tipo_docto']	= "Fac.Elect";
            }elseif ($val['id_tdo'] == 14){
                $art[$i]['tipo_docto']	= "Bol.Elect";
            }

			$art[$i]['dia']		= $val['dia'];
			$art[$i]['consumos']	= $val['consumos'];
			$art[$i]['reptos_fac']	= $val['reptos_fac'];
			$art[$i]['diferencia']	= $val['diferencia'];
			$art[$i]['codigo_otr']	= $val['codigo_otr'];
			$art[$i]['porcentaje']	=  number_format(($val['diferencia'] * 100) / $val['consumos'],2,".",",");
            		$i++;
         	}
      	}
      	return $art;
}

//funcion para traer datos de taller o dyp 
function articulo_resumen_venta_bodega_rep($id_emp,$id_suc,$id_dep,$id_sec,$ano,$mes,$id_empo=0,$id_suco=0,$id_depo=0,$id_seco=0) {          
	$art=array();
	$sql = " SELECT 	
		cl.mayorista_cli,SUM(ca.monto_cas) AS total, TCL.id_tcl,TCL.nombre_tcl
		
		FROM 
		asiento_contable ac
		INNER JOIN cuenta_asiento ca ON (ca.id_aco=ac.id_aco)
		INNER JOIN asiento_documento_venta adv on (adv.id_aco=ca.id_aco and adv.correlativo_cas=ca.correlativo_cas)
		INNER JOIN documento_venta dv ON (dv.id_emp=adv.docto_id_emp and dv.id_tdo=adv.docto_id_tdo and dv.numero_dve=adv.docto_numero_dve)
		INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
		INNER JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
                inner join tipo_cliente TCL on (TCl.id_tcl = cl.id_tcl)
		
		WHERE 
		date_part('month',ac.fecha_aco) = $mes AND date_part('year',ac.fecha_aco) = $ano AND 
		ac.id_emp=$id_emp AND ac.id_suc=$id_suc AND ac.id_dep=$id_dep AND ac.id_sec=$id_sec AND
		ac.nulo_aco='f' and 
		ca.tipo_movto_cas=2 and 
		ac.tipo_aco='T' AND 
		ac.movto_sis_aco='T' AND 
		ca.afecta_cas='H' AND 
		ca.id_cco <> 211512 AND ca.id_cco <> 211201 and 
		dv.id_tdo<>3 AND dv.id_tdo<>13 ";
		
		if ($id_empo!=0) //para obtener valores de venta de taller y dyp 
		{
					
			$sql.=" and ca.seccion_id_emp=$id_empo and ca.seccion_id_suc = $id_suco and 
				ca.seccion_id_dep = $id_depo and ca.seccion_id_sec = $id_seco ";						
		}
		
		$sql.="
		group by cl.mayorista_cli,TCL.id_tcl,TCL.nombre_tcl 

		order by cl.mayorista_cli,tcl.id_tcl ";
      
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['mayorista_cli']= $val['mayorista_cli'];
			$art[$i]['total']	= $val['total'];
			$art[$i]['id_tcl']	= $val['id_tcl'];
			$art[$i]['nombre_tcl']	= $val['nombre_tcl'];
            		$i++;
         	}
      	}
      	return $art;
}


function articulo_resumen_venta_bodega_rep_detalle($id_emp,$id_suc,$id_dep,$id_sec,$ano,$mes,$id_empo=0,$id_suco=0,$id_depo=0,$id_seco=0) {          
	$art=array();
	$sql = "SELECT distinct TCL.id_tcl,TCL.nombre_tcl, dv.numero_dve, dv.neto_dve,dv.iva_dve, 
		(dv.neto_dve+dv.iva_dve) as total, dv.fecha_dve, sum(monto_cas) as monto_cas
		
		FROM 
		asiento_contable ac
		INNER JOIN cuenta_asiento ca ON (ca.id_aco=ac.id_aco)
		INNER JOIN asiento_documento_venta adv on (adv.id_aco=ca.id_aco and adv.correlativo_cas=ca.correlativo_cas)
		INNER JOIN documento_venta dv ON (dv.id_emp=adv.docto_id_emp and dv.id_tdo=adv.docto_id_tdo and dv.numero_dve=adv.docto_numero_dve)
		INNER JOIN documento_venta_cliente dvc ON (dvc.id_emp=dv.id_emp and dvc.id_tdo=dv.id_tdo and dvc.numero_dve=dv.numero_dve)
		INNER JOIN cliente cl ON (cl.id_cli=dvc.id_cli)
                inner join tipo_cliente TCL on (TCl.id_tcl = cl.id_tcl)
		
		WHERE 
		date_part('month',ac.fecha_aco) = $mes AND date_part('year',ac.fecha_aco) = $ano AND 
		ac.id_emp=$id_emp AND ac.id_suc=$id_suc AND ac.id_dep=$id_dep AND ac.id_sec=$id_sec AND
		ac.nulo_aco='f' and 
		ca.tipo_movto_cas=2 and 
		ac.tipo_aco='T' AND 
		ac.movto_sis_aco='T' AND 
		ca.afecta_cas='H' AND 
		ca.id_cco <> 211512 AND ca.id_cco <> 211201 and 
		dv.id_tdo<>3 AND dv.id_tdo<>13 ";
		
		if ($id_empo!=0) //para obtener valores de venta de taller mec y dyp 
		{		
			$sql.=" and ca.seccion_id_emp=$id_empo and ca.seccion_id_suc = $id_suco and 
				ca.seccion_id_dep = $id_depo and ca.seccion_id_sec = $id_seco ";						
		}
		$sql.=" group by TCL.id_tcl,TCL.nombre_tcl, dv.numero_dve,dv.neto_dve,dv.iva_dve,dv.fecha_dve ";
		$sql.="	order by TCL.id_tcl,TCL.nombre_tcl,dv.numero_dve ";
      
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['numero_dve']= $val['numero_dve'];
			$art[$i]['id_tcl']	= $val['id_tcl'];
			$art[$i]['nombre_tcl']	= $val['nombre_tcl'];
			$art[$i]['total']	= $val['total'];
			$art[$i]['neto_dve']	= $val['neto_dve'];
			$art[$i]['iva_dve']	= $val['iva_dve'];
			$art[$i]['fecha_dve']	= $val['fecha_dve'];
			$art[$i]['monto_cas']	= $val['monto_cas'];
            		$i++;
         	}
      	}
      	return $art;
}

function articulo_resumen_venta_bodega_rep_nota_credito($id_emp,$id_suc,$id_dep,$id_sec,$ano,$mes) {          
	$art=array();
	$sql = "SELECT SUM(ca.monto_cas) AS total
		from asiento_contable ac
		INNER JOIN cuenta_asiento ca ON (ca.id_aco=ac.id_aco)
		INNER JOIN asiento_documento_venta adv on (adv.id_aco=ca.id_aco and adv.correlativo_cas=ca.correlativo_cas)
		INNER JOIN documento_venta dv ON (dv.id_emp=adv.docto_id_emp and dv.id_tdo=adv.docto_id_tdo 
		and dv.numero_dve=adv.docto_numero_dve)
		
		WHERE ac.nulo_aco='f' and ca.tipo_movto_cas=2 and ac.tipo_aco='T' AND ac.movto_sis_aco='T' 
		AND ca.afecta_cas='D' and DV.nulo_dve is FALSE AND ca.id_cco <> 211512 AND (dv.id_tdo=3 OR dv.id_tdo=13) 
		AND date_part('month',ac.fecha_aco) = $mes AND date_part('year',ac.fecha_aco) = $ano
		AND ac.id_emp=$id_emp AND ac.id_suc=$id_suc AND ac.id_dep=$id_dep AND ac.id_sec=$id_sec ";
      
	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
            		$art[$i]['total']= $val['total'];

            		$i++;
         	}
      	}
      	return $art;
}

// function articulo_valida_cuadratura_externa($id_otr) {
// 	$sql = "
// 	SELECT
// 		(
// 			SELECT
// 				SUM(CA2.monto_cas)
// 			FROM 
// 				asiento_documento_venta ADV2
// 				INNER JOIN cuenta_asiento CA2 ON (CA2.id_aco=ADV2.id_aco AND CA2.correlativo_cas=ADV2.correlativo_cas)	
// 			WHERE
// 				ADV2.docto_id_emp=DVO.id_emp AND ADV2.docto_id_tdo=DVO.id_tdo AND ADV2.docto_numero_dve=DVO.numero_dve
// 				AND (CA2.id_cco=410102 OR CA2.id_cco=410103 OR CA2.id_cco=410104 OR CA2.id_cco=410105)
// 		) as monto_cas,
// 		(
// 			SELECT
// 				SUM(round((((DMP2.precio_dmp * DMP2.cantidad_dmp) - DMP2.descuento_dmp)/1.19))) as valor_bie
// 			FROM
// 				detalle_movimiento_producto DMP2
// 				INNER JOIN movimiento_producto MP2 ON (MP2.id_mpr=DMP2.id_mpr)
// 				INNER JOIN orden_trabajo OT2 ON (OT2.id_otr=MP2.id_otr)
// 				INNER JOIN documento_venta_ot DVO2 ON (DVO2.id_otr=OT2.id_otr)
// 				INNER JOIN documento_venta DV2 ON (DV2.id_emp=DVO2.id_emp AND DV2.id_tdo=DVO2.id_tdo AND DV2.numero_dve=DVO2.numero_dve)
// 			WHERE
// 				OT2.id_otr=DVO.id_otr AND DV2.nulo_dve is false
// 		) as valor_bie
// 	FROM
// 		documento_venta_ot DVO INNER JOIN documento_venta DV ON (DV.id_emp=DVO.id_emp AND DV.id_tdo=DVO.id_tdo AND DV.numero_dve=DVO.numero_dve)
// 		 
// 	WHERE
// 		DVO.id_otr=$id_otr AND DV.nulo_dve is false
// 	;
// 	";
// 	if ($rs=sql_query($sql)) {
// 		list($monto_cas,$valor_bie) = sql_fetch_row( $rs );
// 		if ($monto_cas-$valor_bie>-10 AND $monto_cas-$valor_bie<10) {
// 			return true;
// 		}
// 	}
// 	return false;
// }




function articulo_valida_cuadratura_externa_interna($id_otr) {
	$sql = "
	SELECT id_otr,sum(monto_cas) as monto_cas,valor_bie,cuantas_facturas,fecha_dve FROM (
		SELECT id_otr,monto_cas,valor_bie,cuantas_facturas,fecha_dve FROM (
			SELECT
				id_otr,
				monto_cas,
				CASE WHEN cuantas_facturas>1 THEN
					valor_bie2
				ELSE
					round(valor_bie/cuantas_ots)
				END as valor_bie,
				cuantas_facturas,
				fecha_dve
			FROM (
				SELECT
					DVO.id_otr,
					DVO.id_emp,
					DVO.id_tdo,
					DVO.numero_dve,
					(
						SELECT
							SUM(CA2.monto_cas)
						FROM 
							asiento_documento_venta ADV2
							INNER JOIN cuenta_asiento CA2 ON (CA2.id_aco=ADV2.id_aco AND CA2.correlativo_cas=ADV2.correlativo_cas)	
						WHERE
							ADV2.docto_id_emp=DVO.id_emp AND ADV2.docto_id_tdo=DVO.id_tdo AND ADV2.docto_numero_dve=DVO.numero_dve
							AND (
								CA2.id_cco=410102 OR CA2.id_cco=410103 OR CA2.id_cco=410104 OR CA2.id_cco=410105
								OR CASE WHEN CA2.seccion_id_dep=4 AND (CA2.seccion_id_sec=2 OR CA2.seccion_id_sec=7 OR CA2.seccion_id_sec=5 ) THEN
									CA2.id_cco=410107
								END
								OR CASE WHEN CA2.seccion_id_dep=5 AND CA2.seccion_id_sec=2 THEN
									CA2.id_cco=410108
								END
							)
							AND docto_venta_nulo_por_nc(DVO.id_emp,DVO.id_tdo,DVO.numero_dve) IS FALSE
					) as monto_cas,
					(
						SELECT
							SUM(round((((DMP2.precio_dmp * DMP2.cantidad_dmp) - DMP2.descuento_dmp)/1.19))) as valor_bie
						FROM
							detalle_movimiento_producto DMP2
							INNER JOIN movimiento_producto MP2 ON (MP2.id_mpr=DMP2.id_mpr)
							INNER JOIN orden_trabajo OT2 ON (OT2.id_otr=MP2.id_otr)
							INNER JOIN documento_venta_ot DVO2 ON (DVO2.id_otr=OT2.id_otr)
							INNER JOIN documento_venta DV2 ON (DV2.id_emp=DVO2.id_emp AND DV2.id_tdo=DVO2.id_tdo AND DV2.numero_dve=DVO2.numero_dve)
						WHERE
							OT2.id_otr=DVO.id_otr
							 AND (DMP2.id_tco!=2 OR DMP2.id_tco IS NULL)
							AND DV2.nulo_dve IS FALSE
							AND docto_venta_nulo_por_nc(DV2.id_emp,DV2.id_tdo,DV2.numero_dve) IS FALSE
					) as valor_bie,
					(
						SELECT
							SUM(round((((DMP2.precio_dmp * DMP2.cantidad_dmp) - DMP2.descuento_dmp)/1.19))) as valor_bie
						FROM
							detalle_movimiento_producto DMP2
							INNER JOIN movimiento_producto MP2 ON (MP2.id_mpr=DMP2.id_mpr)
							INNER JOIN orden_trabajo OT2 ON (OT2.id_otr=MP2.id_otr)
							INNER JOIN documento_venta_ot DVO2 ON (DVO2.id_otr=OT2.id_otr)
							INNER JOIN documento_venta DV2 ON (DV2.id_emp=DVO2.id_emp AND DV2.id_tdo=DVO2.id_tdo AND DV2.numero_dve=DVO2.numero_dve)
						WHERE
							DVO2.id_emp=DVO.id_emp
							AND DVO2.id_tdo=DVO.id_tdo
							AND DVO2.numero_dve=DVO.numero_dve
							AND DV2.nulo_dve IS FALSE
							AND docto_venta_nulo_por_nc(DV2.id_emp,DV2.id_tdo,DV2.numero_dve) IS FALSE
					) as valor_bie2,
					(SELECT count(*) FROM documento_venta_ot DVO2 JOIN documento_venta DV2 ON (DV2.id_emp=DVO2.id_emp AND DV2.id_tdo=DVO2.id_tdo AND DV2.numero_dve=DVO2.numero_dve) WHERE DVO2.id_emp=DVO.id_emp AND DVO2.id_tdo=DVO.id_tdo AND DVO2.numero_dve=DVO.numero_dve AND DV2.nulo_dve IS FALSE AND docto_venta_nulo_por_nc(DV2.id_emp,DV2.id_tdo,DV2.numero_dve) IS FALSE) as cuantas_facturas,
					(SELECT count(*) FROM documento_venta_ot DVO2 JOIN documento_venta DV2 ON (DV2.id_emp=DVO2.id_emp AND DV2.id_tdo=DVO2.id_tdo AND DV2.numero_dve=DVO2.numero_dve) WHERE DVO2.id_otr=DVO.id_otr AND DV2.nulo_dve IS FALSE AND docto_venta_nulo_por_nc(DV2.id_emp,DV2.id_tdo,DV2.numero_dve) IS FALSE) as cuantas_ots,
					DV.fecha_dve
				FROM
					documento_venta_ot DVO
					INNER JOIN documento_venta DV ON (DV.id_emp=DVO.id_emp AND DV.id_tdo=DVO.id_tdo AND DV.numero_dve=DVO.numero_dve)
				WHERE
					DVO.id_otr=$id_otr
					AND DV.nulo_dve IS FALSE
					AND docto_venta_nulo_por_nc(DV.id_emp,DV.id_tdo,DV.numero_dve) IS FALSE
				) as tabla
			) as tabla2
		) as tabla3
	GROUP BY
		id_otr,
		valor_bie,
		cuantas_facturas,
		fecha_dve
	GROUP BY fecha_dve
	;
	";

	if ($rs=sql_query($sql)) {
		list($id_otr,$monto_cas,$valor_bie,$cant,$fecha) = sql_fetch_row( $rs );
		if ($monto_cas-$valor_bie>=-5 AND $monto_cas-$valor_bie<=5) {
			return true;
		}
	}
	return false;
}

function codigo_con_reemplazo($id_bie_rel=0,$id_bie=0) {
      $sql ="SELECT A.id_bie,B.codigo_externo_bie as codigo,B1.codigo_externo_bie as codigo_rel,A.id_bie_rel,A.fecha_rel ";
      $sql.="FROM articulo_reemplazo A JOIN bien_servicio B on (B.id_bie=A.id_bie) JOIN bien_servicio B1 on(B1.id_bie=A.id_bie_rel)";
      if($id_bie_rel>0) {
            $sql.=" WHERE A.id_bie_rel=$id_bie_rel ";
      }elseif($id_bie>0){
            $sql.=" WHERE A.id_bie=$id_bie ";
      }

     if( $rs = sql_query($sql) ) {
         if( $val = sql_fetch_array($rs) ) {
                $rem['id_bie']=$val['id_bie'];
                $rem['id_bie']=$val['id_bie'];
                $rem['id_bie_rel']=$val['id_bie_rel'];
                $rem['codigo']=$val['codigo'];
                $rem['codigo_rel']=$val['codigo_rel'];
                $rem['fecha_rel']=$val['fecha_rel'];
         }
      }
      return $rem;
}

function resumen_ventas_ot ($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano) {
	$art=array();
	$sql="
		SELECT	tp_cli,tal_suc, tal_dep, tal_sec,fecha_dve, rep_suc, rep_dep, rep_sec,id_cco,dve_tdo, dve_numero,sum(suma_monto_cas) as valor,t.nombre_per,t.paterno_per,t.materno_per
		FROM
	( 
			(
			SELECT
			    CASE WHEN (DVC.id_cli=4713 OR DVC.id_cli=6089 OR DVC.id_cli=27330) THEN 1 ELSE 0 END as tp_cli,
				DVE.seccion_id_suc as tal_suc,
				DVE.seccion_id_dep as tal_dep,
				DVE.seccion_id_sec as tal_sec,
				DVE.fecha_dve as fecha_dve,
				CAS.seccion_id_suc as rep_suc,
				CAS.seccion_id_dep as rep_dep,
				CAS.seccion_id_sec as rep_sec,
				CAS.id_cco,
				PE.nombre_per,PE.paterno_per,PE.materno_per,
				DVE.id_tdo as dve_tdo,
				DVE.numero_dve as dve_numero,
				ROUND(COALESCE((sum(CAS.monto_cas)) , 0),2) as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve AND DVC.titular_dvc is TRUE)
				JOIN cliente CL ON (CL.id_cli = DVC.id_cli)
				JOIN persona PE ON (PE.id_per=CL.id_per)
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
				
			WHERE
				DVE.id_emp=$id_emp 
				AND (DVE.seccion_id_emp=$id_emp AND DVE.seccion_id_suc=$id_suc AND DVE.seccion_id_dep=$id_dep AND DVE.seccion_id_sec=$id_sec) 
				AND (DVE.id_tdo=1 OR DVE.id_tdo=4 OR DVE.id_tdo=11 OR DVE.id_tdo=14)
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='H'
				AND ACO.tipo_aco='T'
				AND (
					CAS.id_cco= 7011101 OR CAS.id_cco=7011102 OR CAS.id_cco=7011103 OR CAS.id_cco=7011106 OR CAS.id_cco=7011107 OR CAS.id_cco=7011108 OR CAS.id_cco=7011110 OR CAS.id_cco=7011111  OR

					CAS.id_cco=7011115 OR CAS.id_cco=7011116 OR CAS.id_cco=7011117 OR CAS.id_cco=7011121 OR CAS.id_cco=7011122 OR CAS.id_cco=7011123 OR CAS.id_cco=7011124 OR CAS.id_cco=7011125 
					)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY DVE.seccion_id_suc,DVE.seccion_id_dep,DVE.seccion_id_sec,DVE.fecha_dve,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec,dve_tdo,dve_numero,CAS.id_cco,DVC.id_cli,PE.nombre_per,PE.paterno_per,PE.materno_per, CAS.fecha_cas
			ORDER BY dve_numero,DVE.seccion_id_suc,DVE.seccion_id_dep,CAS.seccion_id_sec,DVE.fecha_dve,CAS.seccion_id_suc,CAS.seccion_id_dep,rep_sec
				
		) UNION ALL (
			
			SELECT
			    CASE WHEN (DVC.id_cli=4713 OR DVC.id_cli=6089 OR DVC.id_cli=27330) THEN 1 ELSE 0 END as tp_cli,
				DVE.seccion_id_suc as tal_suc,
				DVE.seccion_id_dep as tal_dep,
				DVE.seccion_id_sec as tal_sec,
				DVE.fecha_dve as fecha_dve,
				CAS.seccion_id_suc as rep_suc,
				CAS.seccion_id_dep as rep_dep,
				CAS.seccion_id_sec as rep_sec,
				CAS.id_cco,
				PE.nombre_per,PE.paterno_per,PE.materno_per,
				DVR.id_tdo_rel as dve_tdo,
				DVR.numero_dve_rel as dve_numero,
				ROUND(COALESCE((sum(CAS.monto_cas)) , 0),2) *-1 as suma_monto_cas
			FROM
				documento_venta DVE
				JOIN documento_venta_cliente DVC ON (DVC.id_emp=DVE.id_emp AND DVC.id_tdo=DVE.id_tdo AND DVC.numero_dve=DVE.numero_dve AND DVC.titular_dvc is TRUE)				
				JOIN cliente CL ON (CL.id_cli = DVC.id_cli)
				JOIN persona PE ON (PE.id_per=CL.id_per)
				JOIN documento_venta_relacionado DVR ON (DVE.id_emp=DVR.id_emp and DVE.id_tdo=DVR.id_tdo and DVE.numero_dve=DVR.numero_dve)
				JOIN asiento_documento_venta ADC ON (ADC.docto_id_emp=DVE.id_emp AND ADC.docto_id_tdo=DVE.id_tdo AND ADC.docto_numero_dve=DVE.numero_dve)
				JOIN cuenta_asiento CAS ON (CAS.id_aco=ADC.id_aco AND CAS.correlativo_cas=ADC.correlativo_cas)
				JOIN asiento_contable ACO ON (ACO.id_aco=CAS.id_aco)
				JOIN cuenta_contable CCO ON (CCO.id_emp=CAS.id_emp AND CCO.id_cco=CAS.id_cco)
				JOIN departamento DEP ON (DEP.id_emp=DVE.seccion_id_emp AND DEP.id_suc=DVE.seccion_id_suc AND DEP.id_dep=DVE.seccion_id_dep)
				LEFT JOIN auxiliar AUX ON (AUX.id_emp=CAS.auxiliar_id_emp AND AUX.id_aux=CAS.auxiliar_id_aux)
			WHERE
				DVE.id_emp=$id_emp
				AND (DVE.seccion_id_emp=$id_emp AND DVE.seccion_id_suc=$id_suc AND DVE.seccion_id_dep=$id_dep AND DVE.seccion_id_sec=$id_sec)
				AND (DVE.id_tdo=3 OR DVE.id_tdo=13) 
				AND DVE.nulo_dve IS FALSE
				AND ACO.nulo_aco IS FALSE
				AND CAS.afecta_cas='D'
				AND ACO.tipo_aco='T'
				AND (
					CAS.id_cco= 7011101 OR CAS.id_cco=7011102 OR CAS.id_cco=7011103 OR CAS.id_cco=7011106 OR CAS.id_cco=7011107 OR CAS.id_cco=7011108 OR CAS.id_cco=7011110 OR CAS.id_cco=7011111 OR

					CAS.id_cco=7011115 OR CAS.id_cco=7011116 OR CAS.id_cco=7011117 OR CAS.id_cco=7011121 OR CAS.id_cco=7011122 OR CAS.id_cco=7011123 OR CAS.id_cco=7011124 OR CAS.id_cco=7011125 

					)
				AND to_char(DVE.fecha_dve,'MMYYYY')='".$mes.$ano."'
			GROUP BY DVE.seccion_id_suc,DVE.seccion_id_dep,DVE.seccion_id_sec,DVE.fecha_dve,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec,dve_tdo,dve_numero,CAS.id_cco,DVC.id_cli,PE.nombre_per,PE.paterno_per,PE.materno_per, CAS.fecha_cas
			ORDER BY dve_numero,DVE.seccion_id_suc,DVE.seccion_id_dep,DVE.seccion_id_sec,DVE.fecha_dve,CAS.seccion_id_suc,CAS.seccion_id_dep,CAS.seccion_id_sec
		)
	) as t
	GROUP BY t.tal_suc,t.tal_dep,t.tal_sec,t.fecha_dve,t.rep_suc,t.rep_dep,t.rep_sec,dve_tdo,dve_numero,id_cco,tp_cli,t.nombre_per,t.paterno_per,t.materno_per
	ORDER BY tp_cli,dve_numero,tal_suc, tal_dep, tal_sec,fecha_dve, rep_suc, rep_dep, rep_sec,id_cco
	";
	
	if( $rs = sql_query($sql) ) {
       	$i = 0;
       	$valor_ppr = array();
       	$tcambio = array();
       	while( $val = sql_fetch_array($rs) ) {
		       		
			$art[$i]['tal_suc']	= $val['tal_suc'];
			$art[$i]['tal_dep']	= $val['tal_dep'];
			$art[$i]['tal_sec']	= $val['tal_sec'];
			$art[$i]['rep_suc']	= $val['rep_suc'];
			$art[$i]['rep_dep']	= $val['rep_dep'];
			$art[$i]['rep_sec']	= $val['rep_sec'];
			$art[$i]['id_cco'] = $val['id_cco'];
			$art[$i]['dve_tdo'] = $val['dve_tdo'];
			$art[$i]['dve_numero'] = $val['dve_numero'];
			$art[$i]['valor'] = $val['valor'];
			$art[$i]['tp_cli'] = $val['tp_cli'];
			$art[$i]['nombre_per']=$val["nombre_per"]." ".$val["paterno_per"]." ".$val["materno_per"];
			$art[$i]['fecha_dve']=$val['fecha_dve'];
			if ($art[$i]['id_cco']==7011110 || $art[$i]['id_cco']==7011124) {
		       	$valor_ppr = precio_producto_datos(1,$id_emp,$id_suc,$id_dep,$id_sec,ID_BIE_MANO_DE_OBRA,$val['fecha_dve']);
		       	$tcambio = valor_tipo_moneda_datos(1,$val['fecha_dve']);
		        $art[$i]['valor_ppr_sol'] = round(($valor_ppr['valor_ppr']*$tcambio['valor_vtm']),2); //valor en SOLES
		    	$art[$i]['valor_depto_ppr'] = $valor_ppr['valor_depto_ppr'];
		    	//$art[$i]['valor_ppr']=$valor_ppr['valor_ppr'];
		    	//$art[$i]['tcambio'] = $tcambio['valor_vtm'];
		    }
		    else{
		    $art[$i]['valor_ppr_sol']=0;
		    //$art[$i]['valor_depto_ppr'] =0;	
		    }
			$i++;
       	}
    }
	return $art;
}


function resumen_costos_ot ($id_emp,$id_suc,$id_dep,$id_sec,$mes,$ano) {
	$iva = SISTEMA_IVA + 1;
	$art=array();
	$aso_t = seccion_asociada_lista_tipo($id_emp,$id_suc,$id_dep,$id_sec,'P');
	$aso_r = seccion_asociada_lista_tipo($id_emp,$id_suc,$id_dep,$id_sec,'A');
	if(!empty($aso_t)) {
		$id_emp_aso_t=$aso_t[0]['id_emp'];
		$id_suc_aso_t=$aso_t[0]['id_suc'];
		$id_dep_aso_t=$aso_t[0]['id_dep'];
		$id_sec_aso_t=$aso_t[0]['id_sec'];
	}else{
		$id_emp_aso_t=$id_emp;
		$id_suc_aso_t=$id_suc;
		$id_dep_aso_t=$id_dep;
		$id_sec_aso_t=$id_sec+1;
	}
	if(!empty($aso_r)) {
		$id_emp_aso_r=$aso_r[0]['id_emp'];
		$id_suc_aso_r=$aso_r[0]['id_suc'];
		$id_dep_aso_r=$aso_r[0]['id_dep'];
		$id_sec_aso_r=$aso_r[0]['id_sec'];
	}else{
		$id_emp_aso_r=$id_emp;
		$id_suc_aso_r=$id_suc;
		$id_dep_aso_r=3;
		$id_sec_aso_r=$id_sec;
	}

	
	$sql="SELECT tp_cli,tal_suc,tal_dep,tal_sec,id_suc,id_dep,id_sec,id_cco,numero_dve,id_tdo,costo,costo_sol 
			FROM
			(
				(		
				SELECT	tab.tp_cli,tab.id_cco,tab.numero_dve,tab.id_tdo,tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,
					tab.destino_id_suc as tal_suc,tab.destino_id_dep as tal_dep,tab.destino_id_sec as tal_sec,sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,(tab.costo_promedio_sol_sar*tab.cantidad_dmp) as costo_sol
					FROM		
					(SELECT 
						DISTINCT ON 
						(DMP.id_mpr,DMP.correlativo_dmp,DV.numero_dve,OT.id_otr,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
						B.id_bie,B.codigo_externo_bie,S.costo_promedio_sar,S.costo_promedio_sol_sar,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp
						)
						0 as tp_cli,
						CTS.id_cco,DV.numero_dve,DV.id_tdo,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,
						(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN
							(CASE WHEN OT.id_dep = 4 THEN 
								(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
									(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/OT.total_otr),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/OT.total_otr),0) END)
									ELSE
									(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
								END)
							ELSE
								(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
									(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/(OT.total_otr/$iva)),0) END)
									ELSE
									(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
								END)
							END)  
						ELSE 
							(CASE WHEN OT.id_dep = 4 THEN  
								(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/OT.total_otr),0) ELSE s.costo_promedio_sar END) 
								ELSE
								(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE s.costo_promedio_sar END)
							END)
						END) as costo_promedio_sar,S.costo_promedio_sol_sar,
						MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_suc,MP.destino_id_dep,MP.destino_id_sec,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp
						   
						FROM movimiento_producto MP	
						INNER JOIN detalle_movimiento_producto DMP  USING(id_mpr)
						INNER JOIN orden_trabajo OT  ON(OT.id_otr = MP.id_otr )
						INNER JOIN documento_venta_ot DVO  ON(DVO.id_otr = OT.id_otr)
						INNER JOIN documento_venta DV  ON(DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)
						INNER JOIN documento_venta_cliente DVC  ON(DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)
						INNER JOIN cliente C  ON(DVC.id_cli = C.id_cli)
						INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)
						INNER JOIN articulo A  ON(B.id_bie = A.id_bie)
						INNER JOIN saldo_articulo S  ON(A.id_bie=S.id_bie AND S.id_emp=MP.id_emp AND S.id_suc=MP.id_suc AND S.id_dep=MP.id_dep AND S.id_sec=MP.id_sec AND S.ano_sar=$ano AND S.mes_sar=$mes)
						INNER JOIN categoria_bien CB  ON(CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)
						INNER JOIN cuenta_tipo_seccion CTS  ON(CTS.id_cbi=CB.id_cbi AND CTS.id_emp=S.id_emp AND CTS.id_suc=S.id_suc AND CTS.id_dep=S.id_dep AND CTS.id_sec=S.id_sec AND CTS.activo_cts is TRUE)
							
						WHERE MP.id_tmv=3 
						AND MP.id_emp=$id_emp_aso_r
						AND MP.destino_id_emp is not NULL AND MP.destino_id_suc is not NULL AND MP.destino_id_dep is not NULL AND MP.destino_id_sec is not NULL
						AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
						AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL) 
						AND (DVC.id_cli<>259687 AND DVC.id_cli<>212178 AND DVC.id_cli<>254683 AND DVC.id_cli<>254684 AND DVC.id_cli<>72948 AND DVC.id_cli<>257873 AND DVC.id_cli<>254767 AND DVC.id_cli<>349198)
						AND (DMP.id_tco=1 OR DMP.id_tco IS NULL	)
						AND (OT.id_eot<>9 OR (OT.id_eot=9 and date_part('month',OT.fecha_facturacion_otr)=$mes AND date_part('year',OT.fecha_facturacion_otr)=$ano ))
						AND  CASE WHEN DV.tipo_nc_dve=1 THEN CASE WHEN (date_part('month',DV.fecha_dve)!=date_part('month',(SELECT DV1.fecha_dve FROM documento_venta DV1 INNER JOIN documento_venta_relacionado DR1 ON(DR1.id_emp=DV1.id_emp and DR1.id_tdo=DV1.id_tdo and DR1.numero_dve=DV1.numero_dve) WHERE DV1.nulo_dve is false AND DR1.id_emp_rel=DV.id_emp AND DR1.id_tdo_rel=DV.id_tdo AND DR1.numero_dve_rel=DV.numero_dve ORDER BY DV1.fecha_dve LIMIT 1))) THEN 1=1 ELSE 1=0 END ELSE 1=1 END
					) as tab	
					GROUP BY tab.tp_cli,tab.id_cco,tab.numero_dve,tab.id_tdo,tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,tab.destino_id_suc,tab.destino_id_dep,tab.destino_id_sec,costo_sol
					ORDER BY tab.tp_cli,tab.id_cco,tab.id_suc,tab.id_dep,tab.id_sec
					
				)	UNION ALL	( ";
				$sql.=" 
				SELECT	tab.tp_cli,tab.id_cco,tab.numero_dve,tab.id_tdo,tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,
					tab.destino_id_suc as tal_suc,tab.destino_id_dep as tal_dep,tab.destino_id_sec as tal_sec,sum(tab.costo_promedio_sar*tab.cantidad_dmp) as costo,tab.costo_promedio_sol_sar as costo_sol
					FROM		
					(SELECT 
						DISTINCT ON 
						(DMP.id_mpr,DMP.correlativo_dmp,DV.numero_dve,OT.id_otr,A.id_lar,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END,
						B.id_bie,B.codigo_externo_bie,S.costo_promedio_sar,S.costo_promedio_sol_sar,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp
						)
						1 as tp_cli,						
						CTS.id_cco,DV.numero_dve,DV.id_tdo,CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END as id_cbi,
						(CASE WHEN (B.id_bie=1001 OR B.id_bie=275803) THEN
							(CASE WHEN OT.id_dep = 4 THEN 
								(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
									(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/OT.total_otr),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/OT.total_otr),0) END)
									ELSE
									(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
								END)
							ELSE
								(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN
									(CASE WHEN DMP.costo_sco>0 THEN round(DMP.costo_sco * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE round((DMP.precio_dmp/$iva)*(DV.neto_dve/(OT.total_otr/$iva)),0) END)
									ELSE
									(CASE WHEN DMP.costo_sco>0 THEN DMP.costo_sco ELSE round((DMP.precio_dmp/$iva),0) END)
								END)
							END)  
						ELSE 
							(CASE WHEN OT.id_dep = 4 THEN  
								(CASE WHEN (OT.total_otr > DV.neto_dve and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/OT.total_otr),0) ELSE s.costo_promedio_sar END) 
								ELSE
								(CASE WHEN (OT.total_otr > round(DV.neto_dve*$iva,0) and (SELECT count(*) FROM documento_venta_ot dvo2 where (dvo2.id_emp=dv.id_emp and dvo2.id_tdo=dv.id_tdo and dvo2.numero_dve=dv.numero_dve))=1) THEN round (s.costo_promedio_sar * (DV.neto_dve/(OT.total_otr/$iva)),0) ELSE s.costo_promedio_sar END)
							END)
						END) as costo_promedio_sar,S.costo_promedio_sol_sar,
						MP.id_suc,MP.id_dep,MP.id_sec,MP.destino_id_suc,MP.destino_id_dep,MP.destino_id_sec,DMP.cantidad_dmp,DMP.precio_dmp,DMP.descuento_dmp

						FROM movimiento_producto MP
						INNER JOIN detalle_movimiento_producto DMP using (id_mpr)
						INNER JOIN orden_trabajo OT on (OT.id_otr = MP.id_otr )
						INNER JOIN documento_venta_ot DVO on (DVO.id_otr = OT.id_otr)
						INNER JOIN documento_venta DV on (DVO.id_emp = DV.id_emp and DVO.id_tdo = DV.id_tdo and DVO.numero_dve = DV.numero_dve)
						INNER JOIN documento_venta_cliente DVC on (DVC.id_emp = DV.id_emp and DVC.id_tdo = DV.id_tdo and DVC.numero_dve = DV.numero_dve)
						INNER JOIN cliente C on (DVC.id_cli = C.id_cli)
						INNER JOIN bien_servicio B ON(DMP.id_bie=B.id_bie)
						INNER JOIN articulo A on (B.id_bie = A.id_bie)
						INNER JOIN saldo_articulo S ON(A.id_bie=S.id_bie AND S.id_emp=MP.id_emp AND S.id_suc=MP.id_suc AND S.id_dep=MP.id_dep AND S.id_sec=MP.id_sec AND S.ano_sar=$ano AND S.mes_sar=$mes)
						INNER JOIN categoria_bien CB on (CB.id_cbi=CASE WHEN S.id_cbi IS NOT NULL THEN S.id_cbi ELSE B.id_cbi END)
						INNER JOIN cuenta_tipo_seccion CTS  ON(CTS.id_cbi=CB.id_cbi AND CTS.id_emp=S.id_emp AND CTS.id_suc=S.id_suc AND CTS.id_dep=S.id_dep AND CTS.id_sec=S.id_sec AND CTS.activo_cts is TRUE)
							
						WHERE MP.id_tmv=3 AND MP.id_emp=$id_emp_aso_t
						AND MP.destino_id_emp is not NULL and MP.destino_id_suc is not NULL AND MP.destino_id_dep is not NULL and MP.destino_id_sec is not NULL
						AND date_part('month',DV.fecha_dve)=$mes AND date_part('year',DV.fecha_dve)=$ano
						AND (DV.nulo_dve IS FALSE OR DV.nulo_dve IS NULL)
						AND (DVC.id_cli=259687 OR DVC.id_cli=212178 OR DVC.id_cli=254683 OR DVC.id_cli=254684 OR DVC.id_cli=72948 OR DVC.id_cli=257873 OR DVC.id_cli=254767 OR DVC.id_cli=349198)
						AND (DMP.id_tco=2)
						AND (OT.id_eot<>9 OR (OT.id_eot=9 and date_part('month',OT.fecha_facturacion_otr)=$mes AND date_part('year',OT.fecha_facturacion_otr)=$ano ))
						AND  CASE WHEN DV.tipo_nc_dve=1 THEN CASE WHEN (date_part('month',DV.fecha_dve)!=date_part('month',(SELECT DV1.fecha_dve FROM documento_venta DV1 INNER JOIN documento_venta_relacionado DR1 ON(DR1.id_emp=DV1.id_emp and DR1.id_tdo=DV1.id_tdo and DR1.numero_dve=DV1.numero_dve) WHERE DV1.nulo_dve is false AND DR1.id_emp_rel=DV.id_emp AND DR1.id_tdo_rel=DV.id_tdo AND DR1.numero_dve_rel=DV.numero_dve ORDER BY DV1.fecha_dve LIMIT 1))) THEN 1=1 ELSE 1=0 END ELSE 1=1 END
					) as tab
					GROUP BY tab.tp_cli,tab.id_cco,tab.numero_dve,tab.id_tdo,tab.id_cbi,tab.id_suc,tab.id_dep,tab.id_sec,tab.destino_id_suc,tab.destino_id_dep,tab.destino_id_sec,costo_sol
					ORDER BY tab.tp_cli,tab.id_cco,tab.id_suc,tab.id_dep,tab.id_sec			
				)	
			) as tabla
			GROUP BY tal_suc,tal_dep,tal_sec,id_suc,id_dep,id_sec,id_cco,numero_dve,id_tdo,costo,tp_cli,costo_sol
			ORDER BY tal_suc,tal_dep,tal_sec,id_suc,id_dep,id_sec,id_cco,numero_dve,id_tdo,tp_cli
		";

	if( $rs = sql_query($sql) ) {
        	$i = 0;
         	while( $val = sql_fetch_array($rs) ) {
				if ($val['costo']>0) {
					$art[$i]['tal_suc']	= $val['tal_suc'];
					$art[$i]['tal_dep']	= $val['tal_dep'];
					$art[$i]['tal_sec']	= $val['tal_sec'];
					$art[$i]['rep_suc']	= $val['id_suc'];
					$art[$i]['rep_dep']	= $val['id_dep'];
					$art[$i]['rep_sec']	= $val['id_sec'];
					$art[$i]['id_cco'] = $val['id_cco'];
					$art[$i]['dve_tdo'] = $val['id_tdo'];
					$art[$i]['dve_numero'] = $val['numero_dve'];
					$art[$i]['valor'] = $val['costo'];
					$art[$i]['valor_sol'] = round($val['costo_sol'],2); //valor en SOLES
					$art[$i]['tp_cli'] = $val['tp_cli'];
					$i++;
				}
         	}
      	}
	return $art;
}


// /*Agregarla a final de los ciclos de grabaci{on de OT*/
// $id_otr=528265;
// if (!articulo_valida_cuadratura_externa_interna($id_otr)) {
// 	$nombre_archivo = SISTEMA_LOG."/temporal/cuadratura_ot.log";
// 	if ($archivo=fopen($nombre_archivo,"a+")) {
// 		if( fwrite($archivo, "Hora=".date("H:i:s d-m-Y")." descuadrada OT=".$id_otr."\n") == -1 ) {
// 			fclose($archivo);
// 		}
// 	}
// 	fclose($archivo);
// }

}
?>
