// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Reporte:     Segmentos Contables
//
// Sistema:     ADMINPAQ  Versión v1.0 Windows
//
// Descripcion: Este reporte debera de mostrar los segmentos contables de un 
//              tipo de catalogo, ademas muestra  un segmento que cumpla con un 
//              valor y un segmento que este  vacio
//
// Consideraciones :
// Creación  :  Luis Palau Castañeda.  12/septiembre/2001
// Revisiones : 
// Modificacion  :  Hector Valencia Aguilar.  05/Noviembre/2002
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Historia de modificaciones
//  Fecha       Nombre   IDLotus     Descripcion
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//  28/01/2003  LAP      N.D.1748    Identación del reporte. Homologación de los
//                                   titulos de los segmentos contables. Impresión
//                                   de los segmentos de los productos cuando se
//                                   selecciona la opción de "Mostrar Todos".
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// INCLUSION DE ARCHIVOS
  Incluye LibAdminPaq.rpt

  Parametro pSegmento = '6'     //1 clientes
                                //2 proveedores
                                //3 productos,sev, y paq
                                //4 almacenes
                                //5 agentes
                                //6 conceptos
									              //7 Empresa
  Parametro pMostrar = 2        // 0 Todos
										            // 1 Asignados
                                // 2 No Asignados
  Parametro pQueSegmento = 1
  Parametro pQueValor = ''
  Parametro pIndice = 0         // 0 codigo
                                // 1 nombre

// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// INICIO APERTURA TABLAS
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  UsaEmpresa tEmpresa;'AdminpaqW'

  // Parametros de la empresa
  UsaTabla tParametros = tEmpresa['mgw10000']                    

  //Almacenes
  UsaTabla tAlmacenes = tEmpresa['mgw10003']
  tAlmacenes.Usaindice['cCodigoAlmacen']

  //Agentes
  UsaTabla tAgentes = tEmpresa['mgw10001']
  tAgentes.Usaindice['cCodigoAgente']

  //Clientes
  UsaTabla tClientes = tEmpresa['mgw10002']
  tClientes.Usaindice['iCodigoTipo']

  //Productos
  UsaTabla tProductos = tEmpresa['mgw10005']
  tProductos.Usaindice['iCodigoTipo']

  //Conceptos
  UsaTabla tConceptos = tEmpresa['mgw10006']
  tConceptos.Usaindice['iCodigoConcepto']

// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// DEFINICION DE COLUMNAS 
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  Columnas 20;2.7,0.15,5.55,0.15,1.5,0.15,0.9,0.15, 0,0 ,1.65,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0
  UsaLetra 'Arial'
  Altura 9 

// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// VARIABLES GLOBALES 
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  tParametros.Busca Primero   

  Si pQueValor = ' '
    pQueValor = ''
  FinSi

  gDelaFecha = ''
  gAlaFecha  = ''
  gRenglon = '' 

  kMeses = 'Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic'[C0]

  gDelaFecha = @str(pMes;0) 
  Mientras @len(gDelaFecha)<2
     gDelaFecha   = '0' & gDelaFecha 
  FinMientras
  gDelaFecha = @str(pEjercicio;0) &   gDelaFecha & '02'

// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// FUNCIONES 
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//******************************************************************************
// Nombre:	    EditaFec
// Descripcion: Esta función recibe una fecha con formato ddmmaaaa y la convierte 
//              a formato dd/mmm/aaaa
// Entradas :   Fecha : contiene la fecha AAAAMMDD
// Salida :     regresa una cadena con la fecha en formato DD/MMM/AAAA
// Autor :      FBCS junio 2001
//******************************************************************************
DefFunc fEditaFecha(aFecha)
Local lMes
Local lRegreso

  lMes = @INT(@SubStr(aFecha;4;2))
	lRegreso[0] = @SubStr(aFecha;6;2) & '/' & @Escoge(kMeses;lMes-1) & '/' & @SubStr(aFecha;0;4)
   Retorna lRegreso
FinFunc

//******************************************************************************
// Nombre:	    seggral
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc seggral()

  Si pMostrar = 0 O ( pMostrar = 1 Y pQueSegmento = 1 Y (tparametros(cSegContgeneral1) = pQueValor O pQueValor = '') ) O (pMostrar = 2 Y tparametros(cSegContgeneral1) = '' Y pQueSegmento = 1)
    gRenglon = 'Seg. gral 1:'[c0]
    gRenglon = tparametros(cSegContgeneral1)[c2]
    Imprime gRenglon
  FinSi

  Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 2 Y (tparametros(cSegContgeneral2) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral2) = '' Y pQueSegmento = 2)
    gRenglon = 'Seg. gral 2:'[c0]
    gRenglon = tparametros(cSegContgeneral2)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 3 Y (tparametros(cSegContgeneral3) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral3) = '' Y pQueSegmento = 3)
  	gRenglon = 'Seg. gral 3:'[c0]
  	gRenglon = tparametros(cSegContgeneral3)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 4 Y (tparametros(cSegContgeneral4) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral4) = '' Y pQueSegmento = 4)
  	gRenglon = 'Seg. gral 4:'[c0]
  	gRenglon = tparametros(cSegContgeneral4)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 5 Y (tparametros(cSegContgeneral5) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral5) = '' Y pQueSegmento = 5)
  	gRenglon = 'Seg. gral 5:'[c0]
  	gRenglon = tparametros(cSegContgeneral5)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 6 Y (tparametros(cSegContgeneral6) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral6) = '' Y pQueSegmento = 6)
  	gRenglon = 'Seg. gral 6:'[c0]
  	gRenglon = tparametros(cSegContgeneral6)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 7 Y (tparametros(cSegContgeneral7) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral7) = '' Y pQueSegmento = 7)
  	gRenglon = 'Seg. gral 7:'[c0]
  	gRenglon = tparametros(cSegContgeneral7)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 8 Y (tparametros(cSegContgeneral8) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral8) = '' Y pQueSegmento = 8)
	  gRenglon = 'Seg. gral 8:'[c0]
  	gRenglon = tparametros(cSegContgeneral8)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 9 Y (tparametros(cSegContgeneral9) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral9) = '' Y pQueSegmento = 9)
  	gRenglon = 'Seg. gral 9:'[c0]
  	gRenglon = tparametros(cSegContgeneral9)[c2]
  	Imprime gRenglon
	FinSi

	Si pMostrar = 0 O (pMostrar = 1 Y pQueSegmento = 10 Y (tparametros(cSegContgeneral10) = pQueValor O pQueValor = '')) O (pMostrar = 2 Y tparametros(cSegContgeneral10) = '' Y pQueSegmento = 10)
  	gRenglon = 'Seg. gral 10:'[c0]
  	gRenglon = tparametros(cSegContgeneral10)[c2]
  	Imprime gRenglon
	FinSi

  Texto ' '
  Imprime  
FinFunc

//******************************************************************************
// Nombre:	    checasegmento
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc checasegmento (aSegmentoTabla; aNumeroSegmento; aSegmentoRegreso)
  
  Si aSegmentoRegreso != ''
    Retorna aSegmentoRegreso
  FinSi
  lImprime = 0
  Si (pQueSegmento = aNumeroSegmento) Y (aSegmentoTabla = pQueValor O pQueValor = '')
    aSegmentoRegreso = aSegmentoTabla
  FinSi
  Retorna aSegmentoRegreso
FinFunc

//******************************************************************************
// Nombre:	    comprueba
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc comprueba (aSegmento; aConta; aTexto; aNumero)

	Si aSegmento = '' 
    Si aConta = 4 
      gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c4]
		FinSi
		Si aConta = 6 
			gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c6]
		FinSi
		Si aConta = 8 
			gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c8]
		FinSi
		Si aConta = 10
			gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c10]
		FinSi
		Si aConta = 12
			gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c12]
		FinSi
		Si aConta = 14
			gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c14]
		FinSi
		Si aConta = 16
			gRenglon = 'Seg. ' & aTexto & ' ' & aNumero[c16]
		FinSi
		aConta = aConta + 2
	FinSi
	Retorna aConta
FinFunc

//******************************************************************************
// Nombre:	    segctes
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc segctes(aCompleto; aAbrevia)
Local lSegmento

  Texto ''
  Texto C0;'Código'
  //  N.D.1748 Inicio
  // Homologación de los titulos de los segmentos contables.
  Texto C2;'Nombre ' & aCompleto & '' 
  // N.D.1748 Fin
  Si pMostrar = 0
   	Texto C4;'Seg. ' & aAbrevia & ' 1'
  Sino
		Texto C4;'Seg. ' & aAbrevia & ' ' & pQueSegmento 
  FinSi
  Si pMostrar = 0
 	  Texto C6;'Seg. ' & aAbrevia & ' 2'
    Texto C8;'Seg. ' & aAbrevia & ' 3'
 	  Texto C10;'Seg. ' & aAbrevia & ' 4'
    Texto C12;'Seg.' & aAbrevia & ' 5'
   	Texto C14;'Seg. ' & aAbrevia & ' 6'
   	Texto C16;'Seg. ' & aAbrevia & ' 7'
 	FinSi
 	Imprime   
  Texto '@TC{0,0,0}@L{-1}'
  Imprime 
  NEGRITAS false
	
  tClientes.busca Primero
  Mientras tClientes->encontro
    Si tClientes(cIdClienteProveedor) = 0
      tClientes.Saltareg[1]
      Continua
    Finsi
    Si tClientes(cTipoCliente) = 3 Y aCompleto = 'Clientes'
      tClientes.Saltareg[1]
      Continua
    Finsi
    Si tClientes(cTipoCliente) = 1 Y aCompleto = 'Proveedores'
      tClientes.Saltareg[1]
     	Continua
    Finsi
		
		Si pMostrar = 0
   		gRenglon = ''
   		gRenglon = fMascarilla(tClientes(cCodigoCliente);tParametros(cMascarillaClientes))[c0]
 			gRenglon = tClientes(cRazonSocial)[c2]
			Si aCompleto = 'Clientes'
     		gRenglon = tClientes(cSegContCliente1)[c4]
    		gRenglon = tClientes(cSegContCliente2)[c6]
				gRenglon = tClientes(cSegContCliente3)[c8]
    		gRenglon = tClientes(cSegContCliente4)[c10]
				gRenglon = tClientes(cSegContCliente5)[c12]
				gRenglon = tClientes(cSegContCliente6)[c14]
				gRenglon = tClientes(cSegContCliente7)[c16]
			Sino
    		gRenglon = tClientes(cSegContProveedor1)[c4]
    		gRenglon = tClientes(cSegContProveedor2)[c6]
				gRenglon = tClientes(cSegContProveedor3)[c8]
    		gRenglon = tClientes(cSegContProveedor4)[c10]
				gRenglon = tClientes(cSegContProveedor5)[c12]
				gRenglon = tClientes(cSegContProveedor6)[c14]
				gRenglon = tClientes(cSegContProveedor7)[c16]
			FinSi
	    Imprime gRenglon
		Sino
	    gRenglon = ''
			lImprime = 0
			lSegmento = ''
			Si aCompleto = 'Clientes'
				lSegmento = checasegmento(tClientes(cSegContCliente1); 1; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContCliente2); 2; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContCliente3); 3; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContCliente4); 4; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContCliente5); 5; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContCliente6); 6; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContCliente7); 7; lSegmento)
			Sino
				lSegmento = checasegmento(tClientes(cSegContProveedor1); 1; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContProveedor2); 2; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContProveedor3); 3; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContProveedor4); 4; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContProveedor5); 5; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContProveedor6); 6; lSegmento)
				lSegmento = checasegmento(tClientes(cSegContProveedor7); 7; lSegmento)
			FinSi
			Si lSegmento != '' y pMostrar = 1
				lImprime = 1
			FinSi
			Si lSegmento = '' y pMostrar = 2
				lImprime = 1
			FinSi
			Si lImprime = 1
				Texto C0;fMascarilla(tClientes(cCodigoCliente);tParametros(cMascarillaClientes))
				Texto C2;tClientes(cRazonSocial)
				Si pMostrar = 1
					Texto C4;lSegmento
				FinSi
				imprime
			FinSi
		FinSi
    tClientes.Saltareg[1]
  FinMientras

  texto ' '
  Imprime  
FinFunc

//******************************************************************************
// Nombre:	    segprods
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc segprods()

  Texto ''
  Texto C0;'Código'
  // N.D.1748 Inicio
  // Homologación de los titulos de los segmentos contables.
  Texto C2;'Nombre Producto,Servicio,Paquete' 
  // N.D.1748 Fin
	Si pMostrar = 0
   	Texto C4;'Seg. Prod 1'
 	Sino
		Texto C4;'Seg. Prod ' & pQueSegmento 
 	FinSi
  
	Si pMostrar = 0	
  	Texto C6;'Seg. Prod 2'
    Texto C8;'Seg. Prod 3'
	FinSi
  Imprime   
  
  Texto '@TC{0,0,0}@L{-1}'
  Imprime 
  NEGRITAS false

  tProductos.busca Primero
  Mientras tProductos->encontro
    Si tProductos(cIdProducto) = 0
    	tProductos.Saltareg[1]
      Continua
    Finsi

    gRenglon = ''
	  Si pMostrar= 0
    	gRenglon = ''
    	gRenglon = fMascarilla(tProductos(cCodigoProducto);tParametros(cMascarillaProducto))[c0]
    	gRenglon = tProductos(cNombreProducto)[c2]
    	gRenglon = tProductos(cSegContProducto1)[c4]
    	gRenglon = tProductos(cSegContProducto2)[c6]
    	gRenglon = tProductos(cSegContProducto3)[c8]
    	// N.D.1748 Inicio
    	// Impresión de los segmentos de los productos cuando se selecciona la 
    	//  opción de "Mostrar Todos"
	    Imprime gRenglon
	    // N.D.1748 Fin
		FinSi
		lImprime = 0
		lSegmento = ''
		lSegmento = checasegmento(tProductos(cSegContProducto1); 1; lSegmento)
		lSegmento = checasegmento(tProductos(cSegContProducto2); 2; lSegmento)
		lSegmento = checasegmento(tProductos(cSegContProducto3); 3; lSegmento)

		Si lSegmento != '' y pMostrar = 1
			lImprime = 1
		FinSi
		Si lSegmento = '' y pMostrar = 2
			lImprime = 1
		FinSi

		Si lImprime = 1
			Texto C0;fMascarilla(tProductos(cCodigoProducto);tParametros(cMascarillaProducto))
			Texto C2;tProductos(cNombreProducto)
			Si pMostrar = 1
				Texto C4;lSegmento
			FinSi
			imprime
		FinSi
    tProductos.Saltareg[1]
  Finmientras
  Texto ' '
  Imprime  
FinFunc

//******************************************************************************
// Nombre:	    segalma
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc segalma()
	
  Texto ''
  Texto C0;'Código'
  Texto C2;'Nombre Almacén' 
	Si pMostrar = 0
  	Texto C4;'Seg. Alm 1'
 	Sino
		Texto C4;'Seg. Alm ' & pQueSegmento 
 	FinSi
	Si pMostrar = 0	
		Texto C6;'Seg. Alm 2'
		Texto C8;'Seg. Alm 3'
	FinSi
	Imprime   
  Texto '@TC{0,0,0}@L{-1}'
  Imprime 
  NEGRITAS false

  tAlmacenes.busca Primero
  Mientras tAlmacenes->encontro
  	Si  tAlmacenes(cIdAlmacen) = 0
    	tAlmacenes.Saltareg[1]
      Continua
   Finsi
	gRenglon = ''
	Si pMostrar = 0
    	gRenglon = fMascarilla(tAlmacenes(cCodigoAlmacen);tParametros(cMascarillaAlmacen))[c0]
    	gRenglon = tAlmacenes(cNombreAlmacen)[c2]
    	gRenglon = tAlmacenes(cSegContAlmacen)[c4]
    	gRenglon = tAlmacenes(cSCAlmac2)[c6]
    	gRenglon = tAlmacenes(cSCAlmac3)[c8]
      Imprime gRenglon		
	FinSi
		lImprime = 0
		lSegmento = ''
		lSegmento = checasegmento(tAlmacenes(cSegContAlmacen); 1; lSegmento)
		lSegmento = checasegmento(tAlmacenes(cSCAlmac2); 2; lSegmento)
		lSegmento = checasegmento(tAlmacenes(cSCAlmac3); 3; lSegmento)

		Si lSegmento != '' y pMostrar = 1
			lImprime = 1
		FinSi
		Si lSegmento = '' y pMostrar = 2
			lImprime = 1
		FinSi

		Si lImprime = 1
			Texto C0;fMascarilla(tAlmacenes(cCodigoAlmacen);tParametros(cMascarillaAlmacen))
			Texto C2;tAlmacenes(cNombreAlmacen)
			Si pMostrar = 1
				Texto C4;lSegmento
			FinSi
			Imprime
		FinSi

    tAlmacenes.Saltareg[1]
  Finmientras
  texto ' '
  Imprime  
FinFunc

//******************************************************************************
// Nombre:	    segage
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc segage()
	
	Texto ''
  Texto C0;'Código'
  Texto C2;'Nombre Agente' 
	Si pMostrar = 0
  	Texto C4;'Seg. Ag 1'
 	Sino
		Texto C4;'Seg. Ag ' & pQueSegmento 
 	FinSi
	Si pMostrar = 0	
		Texto C6;'Seg. Ag 2'
		Texto C8;'Seg. Ag 3'
	FinSi
	Imprime   
  Texto '@TC{0,0,0}@L{-1}'
  Imprime 
  NEGRITAS false

  tAgentes.busca Primero
  Mientras tAgentes->encontro
	  Si tAgentes(cIdAgente) = 0
  		tAgentes.Saltareg[1]
    	Continua
  	Finsi
		
  	gRenglon = ''
		Si pMostrar = 0 
  		gRenglon = fMascarilla(tAgentes(cCodigoAgente);tParametros(cMascarillaAgente))[c0]
			gRenglon = tAgentes(cNombreAgente)[c2]
	  		gRenglon = tAgentes(cSegContAgente)[c4]
	  		gRenglon = tAgentes(cSCAgente2)[c6]
	  		gRenglon = tAgentes(cSCAgente3)[c8]
	  		Imprime gRenglon
		FinSi
		lImprime = 0
		lSegmento = ''
		lSegmento = checasegmento(tAgentes(cSegContAgente); 1; lSegmento)
		lSegmento = checasegmento(tAgentes(cSCAgente2); 2; lSegmento)
		lSegmento = checasegmento(tAgentes(cSCAgente3); 3; lSegmento)

		Si lSegmento != '' y pMostrar = 1
			lImprime = 1
		FinSi
		Si lSegmento = '' y pMostrar = 2
			lImprime = 1
		FinSi

		Si lImprime = 1
			Texto C0;fMascarilla(tAgentes(cCodigoAgente);tParametros(cMascarillaAgente))
			Texto C2;tAgentes(cNombreAgente)
			Si pMostrar = 1
				Texto C4;lSegmento
			FinSi
			imprime
		FinSi

  	tAgentes.Saltareg[1]
	Finmientras

	texto ' '
	Imprime  
FinFunc

//******************************************************************************
// Nombre:	    segconc
// Descripcion: 
// Entradas :   
// Salida :     
//******************************************************************************
DefFunc segconc()

	Texto ''
  Texto C0;'Código'
  Texto C2;'Nombre Concepto' 
	Si pMostrar = 0
  	Texto C4;'Seg. Cpto 1'
 	Sino
 	  // N.D.1748 Inicio
 	  // En caso de impresión del segmento 4 de Conceptos poner el titulo de
 	  // "Seg. Movto"
 	  Si pQueSegmento = 4
		  Texto C4;'Seg. Movto'
 	  Sino
		  Texto C4;'Seg. Cpto ' & pQueSegmento 
		FinSi
		// N.D.1748 Fin
 	FinSi
	Si pMostrar = 0	
		Texto C6;'Seg. Cpto 2'
		Texto C8;'Seg. Cpto 3'
		Texto C10;'Seg. Movto'
	FinSi
	Imprime   

  Texto '@TC{0,0,0}@L{-1}'
	Imprime 
  NEGRITAS false

  tConceptos.busca Primero
  Mientras tConceptos->encontro
  	Si  tConceptos(cIdConceptoDocumento) = 0
    	tConceptos.Saltareg[1]
      Continua
    Finsi
	  Si pMostrar = 0
      gRenglon = ''
      gRenglon = tConceptos(cCodigoConcepto)[c0]
      gRenglon = tConceptos(cNombreConcepto)[c2]
      gRenglon = tConceptos(cSegContConcepto)[c4]
		  gRenglon = tConceptos(cSCCpto2)[c6]
  		gRenglon = tConceptos(cSCCpto3)[c8]
	  	gRenglon = tConceptos(cSCMovto)[c10]
      Imprime gRenglon
  	FinSi
    lImprime = 0
  	lSegmento = ''
	  lSegmento = checasegmento(tConceptos(cSegContConcepto); 1; lSegmento)
  	lSegmento = checasegmento(tConceptos(cSCCpto2); 2; lSegmento)
	  lSegmento = checasegmento(tConceptos(cSCCpto3); 3; lSegmento)
	  lSegmento = checasegmento(tConceptos(cSCMovto); 4; lSegmento)

    Si lSegmento != '' y pMostrar = 1
			lImprime = 1
		FinSi
		Si lSegmento = '' y pMostrar = 2
			lImprime = 1
		FinSi

		Si lImprime = 1
			Texto C0;tConceptos(cCodigoConcepto)
			Texto C2;tConceptos(cNombreConcepto)
			Si pMostrar = 1
				Texto C4;lSegmento
			FinSi
			imprime
		FinSi

		tConceptos.Saltareg[1]
  Finmientras
	texto ' '
  Imprime  
FinFunc

//******************************************************************************
// ENCABEZADO 
//******************************************************************************
Encab

  Texto '@TC{255,0,0}@S{8}AdminPAQ' 
 	Hoja '"@TC{0,0,0}@S{8}Página: '
  Imprime

  Texto '^@TC{0,0,0}@S{22}' & tEmpresa->Nombre
  Texto '"@TC{0,0,0}@S{8}Fecha: ' & fEditaFecha(@Hoy())
  Imprime
  Si pMostrar = 0 
    Texto '^@TC{0,0,0}@S{16}' & ' Segmentos Contables'
  Sino
    Si pMostrar = 1 // hva
      Texto '^@TC{0,0,0}@S{16}' & ' Segmentos Contables Asignados'
    Sino
      Texto '^@TC{0,0,0}@S{16}' & ' Segmentos Contables No Asignados'
    FinSi
  FinSi

  Texto '"@TC{0,0,0}@S{8}Hora: ' & @Hora()
  Imprime
  NEGRITAS TRUE
  Altura 10
  Texto '@TC{0,0,0}@L{-1}'
	Imprime 
  //Código         Nombre(Cliente)                               Segmento CL01    Segmento CL02    Segmento CL03    Segmento CL04
	Columnas 20;2.1,0.15,4.5,0.15,1.8,0.15,1.8,0.15,1.8,0.15,1.8,0.15,1.8,0.15, 1.8, 0.15, 1.8, 0
  NEGRITAS FALSE
  Altura 10
FinEncab

//******************************************************************************
// PRINCIPAL
//******************************************************************************
  gRenglon = '' 
  NEGRITAS false
  NEGRITAS true 

  // Segmentos contables de Clientes
	Si @Pos(pSegmento;'1') != -1
    Si pIndice = 0
      tClientes.Usaindice['iCodigoTipo']    
		Sino
	    tClientes.Usaindice['iRazonTipo']
		FinSi
    segctes('Clientes'; 'Cte')
	Finsi

  // Segmentos contables de Proveedores 
  Si @Pos(pSegmento;'2') != -1
		Si pIndice = 0
      tClientes.Usaindice['iCodigoTipo']    
		Sino
	    tClientes.Usaindice['iRazonTipo']
		FinSi
    segctes('Proveedores'; 'Prov')
  Finsi

  // Segmentos contables de Productos, servicios, paquetes
  Si @Pos(pSegmento;'3') != -1
		Si pIndice = 0
      tProductos.Usaindice['iCodigoTipo']    
		Sino
	    tProductos.Usaindice['iNombreTipo']
		FinSi
		segprods()
  Finsi

  // Segmentos contables de Almacenes
	Si @Pos(pSegmento;'4') != -1
		Si pIndice = 0
      tAlmacenes.Usaindice['cCodigoAlmacen']    
		Sino
	    tAlmacenes.Usaindice['cNombreAlmacen']
		FinSi
		segalma()
  Finsi

  // Segmentos contables de Agentes
	Si @Pos(pSegmento;'5') != -1
		Si pIndice = 0
      tAgentes.Usaindice['iCodigoTipo']    
		Sino
	    tAgentes.Usaindice['iNombreTipo']
		FinSi
		segage()
  Finsi

  // Segmentos contables de Conceptos
	Si @Pos(pSegmento;'6') != -1
		Si pIndice = 0
      tConceptos.Usaindice['cCodigoConcepto']    
		Sino
	    tConceptos.Usaindice['iNombreNaturaleza']
		FinSi
		segconc()
  Finsi

  // Segmentos contables generales
	Si @Pos(pSegmento;'7') != -1
		seggral()
	FinSi

// Fin reporte
