// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Reporte:    Detalle de gastos sobre compra               (GastComp)
//
//
//
//
// Sistema:     ADMINPAQ  Versión v1.0 Windows
//
// Descripcion: 
// 
//
//
//
// Consideraciones :
// Creación  :  Luis Palau Castañeda.  25/Agosto/2001
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Historia de modificaciones
//  Fecha      Nombre   IDLotus                     Descripcion
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// 31/05/2002  EGV      N.D. 552    Se modificó la función: fFechaFin. (EGV)
// 26/08/2003  EGV      2379        Se hace global a la variable TotalDocumento por 
//                                  gTotalDocumento y al momento de imprimirla se hace 
//                                  referencia a la columna 0 ya que no se estaba imprimiendo
//                                  un valor correcto. Además, se utiliza el tipo de cambio
//                                  de la fecha del Documento en vez de la fecha pFechaFin ya
//                                  que los gastos de deben desplegar en base a lo que se gastó
//                                  en la fecha del Documento. (EGV)
// 29/04/2005   DRdA     N.D.3240   No saca los importes en la moneda del reporte. Se cambió el
//                                  uso de la función fConversionMoneda por el de la función
//                                  fCambiarMonedaDoctoAReporte que está en LibAdminpaq.rpt
// 13/06/2005   HVA     N.D.3305   Los gastos siempre son en pesos 
// 14/11/2005   HVA     N.D.3305   Los gastos en moneda extranjera no se estaba convirtiendo.
// 25/11/2005   LAP     N.D.3680   Corrección al tipo de cambio para expresar los gastos.
// 07/10/2008		ELVS		N.D.5427   ERROR IMPORTE INCORRECTO DEL COSTO DEL MOVIMIENTO MULTIPLICA
//																 EL GASTO CAPTURADO POR EL TIPO DE CAMBIO DEL DOCUMENTO. Se validó
//																 que los gastos se expresen en la moneda seleccionada del reporte.		
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// INCLUSION DE ARCHIVOS
Incluye LibAdminPaq.rpt

// INICIO PARAMETROS
Parametro pFechaIni = '20050401'
Parametro pFechaFin = '20050430'
Parametro pListaConcepto = '21'
Parametro pIdMoneda       =  1            // 1 = ID moneda Peso mexicano



// INICIO APERTURA TABLAS
  UsaEmpresa tEmpresa;'AdminpaqW'

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

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

  // Movimientos
  UsaTabla tMovimientos = tEmpresa['mgw10010']
  tMovimientos.Usaindice['iDoctoNumeroMovto']

  //documentos
  UsaTabla tDocumentos = tEmpresa['mgw10008']
  tDocumentos.Usaindice['iConceptoFecha']

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

  //conceptosdocumentos
  UsaTabla tconceptosDocumentos = tEmpresa['mgw10006']
  tconceptosDocumentos.Usaindice['']

  //documentode
  UsaTabla tdocumentosde = tEmpresa['mgw10007']
  tdocumentosde.Usaindice['']

  //Monedas
  UsaTabla tMonedas = tEmpresa['mgw10034']          
  tMonedas.Usaindice['']                     // Usa el índice primario, por cIdMoneda
 
  // TiposCambio 
  Usatabla tTiposCambio = tEmpresa['mgw10035']
  tTiposCambio.Usaindice['iMonedaFecha']                                  //  cIdMoneda + cFecha

  // Periodos
  UsaTabla tEjercicioPeriodo = tEmpresa['mgw10031']            // Usa el indice primario, cIDEjercicio
  tEjercicioPeriodo.UsaIndice['']

  tParametros.Busca Primero 
  // Esta función se debe ejecutar antes del cuerpo del reporte, para inicializar algunas valores
  // Globales para la biblioteca LibAdminPAQ.rpt
  tEjercicioPeriodo.Usaindice['cNumeroEjercicio']                     
  fIniFechasHistoria(tEjercicioPeriodo)
  tEjercicioPeriodo.Usaindice['']                     


//DEFINICION DE COLUMNAS 

  Columnas 20;1.95,0.15,1.8,0.15,3.9,0.15,2.7,0.15,2.25,0.15,2.25,0.15,2.25,0.15,2.25,0.15,0

  UsaLetra 'Arial'
  Altura 9 
  [C0..C5].Decimales 0
  [C0..C5].Blanco ' '
  tMonedas.Busca[@str(pIdMoneda;0)]
  Si tMonedas->Encontro
    gDecimales = tMonedas(cDecimalesMoneda)
  FinSi
  [C6..C16].Coma
  [C6..C16].Decimales gDecimales
  [C6..C16].Blanco '0.00'
  [c7,c9,c11,c13,c15,c17..c19].Blanco ' '

//VARIABLES GLOBALES 
  
  gDelaFecha = ''
  gAlaFecha  = ''
  vFecha = ''
  vFechaTemp = ''
  gRenglon = ''
  gFechaDocumento = '20030924' 
  gTotalDocumento = 0
  vConcepto = ''
  TotalDocumentoMovimiento = 0
  TotalDocumentoGasto = 0
  TotalDocumentoCostoMovimiento = 0

  TotalConceptoMovimiemto = 0
  TotalConceptoGasto = 0  
  TotalConceptoCostoMovimiento = 0
 
  TotalGralMovimiemto = 0
  TotalGralGasto = 0
  TotalGralCostoMovimiento = 0

  gNombreMoneda = tMonedas(cNombreMoneda)
 
  kMeses = 'Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic'[C0]

  gDelaFecha = pFechaIni
  gAlaFecha  = pFechaFin


//FUNCIONES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//***********************************************************************************************
//	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
//***********************************************************************************************
//	fFechaFin
// Descripcion: a partir del mes y ejercicio se despliega la fecha fin de mes
// Autor :     LEPC OCT 2001
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Historia de modificaciones
// Fecha        Nombre  IDLotus    Descripcion
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// 31/05/2002   EGV     N.D. 552   Cuando el valor del parámetro aMes tiene un
//                                 valor menor que 10, se le concatena un '0'
//                                 antes del mes para que fFechaAnterior calcule
//                                 correctamente la fecha anterior de la fecha
//                                 que tiene la variable lRegreso. (EGV)
//***********************************************************************************************
DefFunc fFechaFin(aEjercicio;aMes)
   local lRegreso
     Si aMes = 12 
       aEjercicio = aEjercicio +1
       aMes = 1  
     Sino 
       aMes = aMes + 1  
     FInsi
     
     Si aMes < 10
       lRegreso = @str(aEjercicio;0) &'0' &@str(aMes;0) &'01'
     Sino
       lRegreso = @str(aEjercicio;0) & @str(aMes;0) &'01'
     FinSi

     lRegreso = fFechaAnterior(lRegreso)
   Retorna lRegreso
FinFunc

//***********************************************************************************************
// ImprimeMovimiento()
// Descripcion: imprime los movimientos del los documentos
// Entradas :  
// Salida :    
// Autor :    Luis Palau    
// fecha :    agosto 2001
//***********************************************************************************************
DefFunc  ImprimeMovimiento()
local vimprime
  tProductos.busca[@str(tMovimientos(cIdProducto);0)]
  si tProductos->encontro
    vimprime =fMascarilla(tProductos(cCodigoProducto);tParametros(cMascarillaProducto))[c0]
    vimprime =tProductos(cNombreProducto)[c2]
  finsi
  vimprime = @col(TotalMovimiento;0) [c6] 
  vimprime = @col(Gasto;0) [c8] 
  vimprime = @col(CostoMovimiento;0)  [c10] 
  imprime vimprime
  TotalDocumentoMovimiento =   TotalDocumentoMovimiento + TotalMovimiento
  TotalDocumentoGasto =   TotalDocumentoGasto +  Gasto  
  TotalDocumentoCostoMovimiento =  TotalDocumentoCostoMovimiento + CostoMovimiento

  TotalConceptoMovimiemto =   TotalConceptoMovimiemto + TotalMovimiento
  TotalConceptoGasto =   TotalConceptoGasto +  Gasto  
  TotalConceptoCostoMovimiento =  TotalConceptoCostoMovimiento + CostoMovimiento

  TotalGralMovimiemto =   TotalGralMovimiemto + TotalMovimiento
  TotalGralGasto =   TotalGralGasto +  Gasto  
  TotalGralCostoMovimiento =  TotalGralCostoMovimiento + CostoMovimiento

Finfunc
//***********************************************************************************************
// ImprimeTotalgral()
// Descripcion: imprime los totales finales 
// Entradas :  
// Salida :    
// Autor :    Luis Palau    
// fecha :    agosto 2001
//***********************************************************************************************
deffunc  ImprimeTotalgral()
local vimprime, LTotalLinea
  LTotalLinea = '==========================='[c0]

  //Texto '@L{6,10}'
  Texto c6; @col(LTotalLinea;0)
  Texto c10; @col(LTotalLinea;0)

  Imprime
  [C6,C10].Blanco '0.00'
  [c7..c9,c11..c19].Blanco ''

  vimprime =   @col(TotalGralMovimiemto;0)[c6]
  vimprime =   @col(TotalGralCostoMovimiento;0)[c10]
  Imprime vimprime 
finfunc


//***********************************************************************************************
// ImprimeTotalConcepto()
// Descripcion: imprime los totales del Concepto
// Entradas :  
// Salida :    
// Autor :    Luis Palau    
// fecha :    agosto 2001
//***********************************************************************************************
deffunc  ImprimeTotalConcepto()
local vimprime, LTotalLinea

  LTotalLinea = '"----------------------------------'[c0]

  //Texto '@L{6,10}'
  Texto c6; @col(LTotalLinea;0)
  Texto c10; @col(LTotalLinea;0)
  Imprime 

  [C6,C10].Blanco '0.00'
  [c7..c9,c11..c19].Blanco ''
  vimprime =   @col(TotalConceptoMovimiemto;0)[c6]
  vimprime =   @col(TotalConceptoCostoMovimiento;0)[c10]
  Imprime vimprime
  [C6..C16].Blanco '0.00'
  [c7,c9,c11,c13,c15,c17..c19].Blanco ''

  TotalConceptoMovimiemto = 0
  TotalConceptoGasto = 0
  TotalConceptoCostoMovimiento = 0
finfunc

//***********************************************************************************************
// ImprimeTotalDocumento()
// Descripcion: imprime los totales del docoumento
// Entradas :  
// Salida :    
// Autor :    Luis Palau    
// fecha :    agosto 2001
//***********************************************************************************************
deffunc  ImprimeTotalDocumento()
local vimprime
  Texto '@L{6,10}'
  Imprime
  vimprime =   @col(TotalDocumentoMovimiento;0)[c6]
  vimprime =    @col(TotalDocumentoCostoMovimiento;0)[c10]
  Imprime vimprime

  TotalDocumentoMovimiento = 0
  TotalDocumentoGasto = 0
  TotalDocumentoCostoMovimiento = 0
finfunc
//***********************************************************************************************
//	ImprimeConcepto()
// Descripcion: imprime los datos del concepto
// Entradas :  
// Salida :    
// Autor :    Luis Palau    
// fecha :    agosto 2001
//***********************************************************************************************
Deffunc ImprimeConcepto()
local vimprime
   Columnas 20;1.5,0.15,6.6,0.15,0.75,0.15,0.9,0.15,1.65,0.15,1.65,0.15,1.65,0.15,0,0,0
   Negritas true
   vimprime = 'Concepto'[c0]

   tconceptosDocumentos.busca[@str(@col(vconcepto;0);0)]
   Si tconceptosDocumentos->encontro
     vimprime = tconceptosDocumentos(cNombreConcepto) [c2]  
   Finsi
   imprime vimprime
   Negritas False
Finfunc

//***********************************************************************************************
//	ImprimeDatosDocumento()
// Descripcion: imprime los datos deldocumento
// Entradas :  
// Salida :    
// Autor :    Luis Palau    
// fecha :    agosto 2001
//***********************************************************************************************
Deffunc  ImprimeDatosDocumento()
local lGastoMovto, lNota //N.D.5427
local vimprime
   //modificamos las columnas
   //(1)
   Columnas 20;1.95,0.15,1.8,0.15,3.9,0.15,2.7,0.15,2.25,0.15,2.25,0.15,2.25,0.15,2.25,0.15,0

   vimprime =''
   vimprime =  tDocumentos(cFecha) [c0]
   vimprime =  @substr( @col(vimprime;0);6;2)&'/'&@substr( @col(vimprime;0);4;2)&'/'&@substr( @col(vimprime;0);0;4)[c0]
   vimprime =  tDocumentos(cSerieDocumento)[c2]
   vimprime =  tDocumentos(cFolio)[c4]

   gIdMonedaProv = 1
   tClientes.busca[@str(tDocumentos(cIdClienteProveedor);0)]
   si tClientes->encontro
      vimprime =fMascarilla(tClientes(cCodigoCliente);tParametros(cMascarillaClientes))[c6]
     gIdMonedaProv = tClientes(cIdMoneda)
   finsi

   lMoneda = tDocumentos(cIdMoneda)
   gFechaDocumento = tDocumentos(cFecha)

   lTotalDocumento = fCambiarMonedaDoctoAReporte(tDocumentos; tTiposCambio; @col(gTotalDocumento;0); @col(pIdMoneda;0); gIdMonedaProv)
   // N.D.3680   Corrección al tipo de cambio para expresar los gastos.
   // los gastos sobre compra siempre estan en pesos
   //   lGasto1 = fCambiarMonedaDoctoAReporte(tDocumentos; tTiposCambio; tDocumentos(cGasto1); @col(pIdMoneda;0); gIdMonedaProv)
   //   lGasto2 = fCambiarMonedaDoctoAReporte(tDocumentos; tTiposCambio; tDocumentos(cGasto2); @col(pIdMoneda;0); gIdMonedaProv)
   //   lGasto3 = fCambiarMonedaDoctoAReporte(tDocumentos; tTiposCambio; tDocumentos(cGasto3); @col(pIdMoneda;0); gIdMonedaProv)
   
   //N.D.5427
   Si pIdMoneda = 1
   	lGasto1 =  tDocumentos(cGasto1)
   	lGasto2 =  tDocumentos(cGasto2)
   	lGasto3 =  tDocumentos(cGasto3)
   Sino 	 
   	lGasto1 = fCambiarMonedaImporteAReporte(tDocumentos; tTiposCambio; tDocumentos(cGasto1); 1; pIdMoneda; gIdMonedaProv)
   	lGasto2 = fCambiarMonedaImporteAReporte(tDocumentos; tTiposCambio; tDocumentos(cGasto2); 1; pIdMoneda; gIdMonedaProv)
   	lGasto3 = fCambiarMonedaImporteAReporte(tDocumentos; tTiposCambio; tDocumentos(cGasto3); 1; pIdMoneda; gIdMonedaProv)
   FinSi	
	//Fin N.D.5427

   //!Si pIdMoneda = 1
   //!   lGasto1 =  tDocumentos(cGasto1)
   //!   lGasto2 =  tDocumentos(cGasto2)
   //!   lGasto3 =  tDocumentos(cGasto3)
   //!Sino
   //!   lGasto1 =  tDocumentos(cGasto1) / tDocumentos(cTipoCambio)   
   //!   lGasto2 =  tDocumentos(cGasto2) / tDocumentos(cTipoCambio)   
   //!   lGasto3 =  tDocumentos(cGasto3) / tDocumentos(cTipoCambio)   
   //!Finsi

   vimprime =  @col(lGasto1;0)[c8]
   vimprime =  @col(lGasto2;0)[c10]
   vimprime =  @col(lGasto3;0)[c12]
   vimprime =  @col(lTotalDocumento;0)[c14]
   imprime vimprime

   //regresamos las columnas
   //(2)
   Columnas 20;2.55,0.15,5.7,0,0,0.15,2.7,0.15,2.25,0.15,2.25,0.15,2.25,0.15,2.7,0.15,0
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{8}Moneda: '& gNombreMoneda
    Texto '^@TC{0,0,0}@S{22}' & tEmpresa->Nombre
    Texto '"@TC{0,0,0}@S{8}Fecha: ' & fEditaFecha(@Hoy())
    Imprime

    Texto '^@TC{0,0,0}@S{16}' & 'Detalle de Gastos Sobre Compra '
    Texto '"@TC{0,0,0}@S{8}Hora: ' & @Hora()
    Imprime
    
    gDelaFecha = fEditaFecha(gDelaFecha) 
    gAlaFecha = fEditaFecha(gAlaFecha) 

    Texto '^@TC{0,0,0}@S{16}'& 'Del: ' &  gDelaFecha  & ' al ' &  gAlaFecha
    Imprime 
    NEGRITAS TRUE
    Altura 10

    Texto '@TC{0,0,0}@L{-1}'
 	  Imprime 
    //Fecha       Serie Folio                              Proveedor       Gasto núm. 1  Gasto núm. 2  Gasto núm. 3  Neto-Descuentos
    //(1)
    Columnas 20;1.95,0.15,1.8,0.15,3.9,0.15,2.7,0.15,2.25,0.15,2.25,0.15,2.25,0.15,2.25,0.15,0

    Texto C0;'Fecha'
    Texto C2;'Serie'
    Texto c4;'^Folio' 
    Texto c6;'Proveedor' 
    Texto c8;'^Gasto núm. 1' 
    Texto c10;'^Gasto núm. 2'
    Texto c12;'^Gasto núm. 3'
    Texto c14;'^Neto descuentos'
    Imprime 

    //Código         Nombre(Producto)                      Neto-Descuentos Gasto         Costo Movimiento
    //(2)
    Columnas 20;2.55,0.15,5.7,0,0,0.15,2.7,0.15,2.25,0.15,2.25,0.15,2.25,0.15,2.7,0.15,0
    Texto C0;'Código'
    Texto C2;'Nombre(Producto)'
    Texto c4;''
    Texto c6;'Neto descuentos' 
    Texto c8;'^Gasto' 
    Texto c10;'^Costo'
    Texto c12;'^Movimiento'
    Texto c14;''
    Imprime   

    Texto '@TC{0,0,0}@L{-1}'
	  Imprime 
    NEGRITAS FALSE
    Altura 10
FinEncab

//PRINCIPAL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

vContador2 = 0[c0]
vContador = 0[c0]
Mientras  @escoge(@col(pListaConcepto;0);@col(vContador2;0))!= ''
  vContador2 =   @col(vContador2;0) + 1 [c0]
Finmientras

gIdMonedaProv = 1

Mientras  @col(vContador;0) < @col(vContador2;0)
  vConcepto =  @val(@escoge(@col(pListaConcepto;0);@col(vContador;0)))
  vFecha = pFechaIni[c0]
  primvez = 1
  Mientras @col(vFecha;0) <= @col(pFechaFin;0)
    tDocumentos.busca[@str(@col(vConcepto;0);0) &':'& @str(@col(vFecha;0);0) ]
    Mientras tDocumentos->encontro
      Si tDocumentos(cIdConceptoDocumento)!=@col(vConcepto;0) o tDocumentos(cFecha)!=@str(@col(vFecha;0);0)
        Finciclo
      Finsi
      Si tDocumentos(cCancelado) = 1
        tDocumentos.saltareg[1]  
        Continua
      Finsi
      
        gTotalDocumento = (tDocumentos(cNeto) - tDocumentos(cDescuentoMov) )
        // N.D.3680 Los gastos se encuentran en pesos asi que se deben de pasar a la moneda del documento
        // N.D.5427
        Si pIdMoneda = 1
			TotalGastos = tDocumentos(cGasto1) + tDocumentos(cGasto2) + tDocumentos(cGasto3)
		Sino	
			TotalGastos = fCambiarMonedaImporteAReporte(tDocumentos; tTiposCambio; (tDocumentos(cGasto1) + tDocumentos(cGasto2) + tDocumentos(cGasto3)); 1; @col(pIdMoneda;0); gIdMonedaProv)
        FinSi	
        //Fin N.D.5427
        //si primera vez
        si @col(primvez;0) = 1
            ImprimeConcepto()
            primvez = 0[c0]
        finsi 
        //Imprime Datos del Documento
        ImprimeDatosDocumento()
        tMovimientos.busca[@str(tDocumentos(cIdDocumento);0)]
		Mientras tMovimientos->encontro
            Si tMovimientos(cIdDocumento) != tDocumentos(cIdDocumento) 
                Finciclo
            Finsi        
            vMoneda =tDocumentos(cIdMoneda)
            TotalMovimiento = (tMovimientos(cNeto) - tMovimientos(cDescuento1)- tMovimientos(cDescuento2) - tMovimientos(cDescuento3) - tMovimientos(cDescuento4) - tMovimientos(cDescuento5))
            //N.D.5427
            Si pIdMoneda = 1 //Moneda Base Peso
            	lGastoMovto = tMovimientos(cGtoMovto)
            Sino	
        	    lGastoMovto = fCambiarMonedaImporteAReporte(tDocumentos; tTiposCambio; tMovimientos(cGtoMovto); 1; @col(pIdMoneda;0); gIdMonedaProv)
            Finsi	
            //N.D.5427
            Gasto = (TotalMovimiento * TotalGastos / gTotalDocumento) + lGastoMovto //tMovimientos(cGtoMovto)
            //Kika
            //imprime Gasto
            //convertimos la moneda
            TotalMovimiento = fCambiarMonedaDoctoAReporte(tDocumentos; tTiposCambio; @col(TotalMovimiento;0); @col(pIdMoneda;0); gIdMonedaProv)
            // N.D.3680 Los gastos se convirtieron a la moneda del documento
            //Gasto = fCambiarMonedaDoctoAReporte(tDocumentos; tTiposCambio; Gasto; pIdMoneda; gIdMonedaProv)
            CostoMovimiento = fCambiarMonedaImporteAReporte(tDocumentos; tTiposCambio; tMovimientos(cCostoEspecifico); 1; @col(pIdMoneda;0); gIdMonedaProv)
            ImprimeMovimiento()
            TotalMovimiento  =0
            Gasto =0 
            CostoMovimiento  = 0
            tMovimientos.saltareg[1]
        FinMientras
        ImprimetotalDocumento()
      
      tDocumentos.saltareg[1]
    Finmientras
    vFecha = fFechaSiguiente(vFecha) [c0]
  FinMientras
  vContador =   @col(vContador;0) + 1 [c0]
  //SI el Concepto se imprimió
  si primvez = 0
    ImprimetotalConcepto()
  finsi
FinMientras

 //Imprime Totales Generales
ImprimetotalGral()


//N.D.5427
Si pIdMoneda != 1 //Moneda Base Peso
  Columnas 1;300  
  lNota = ''[c0]
  Texto c0; @col(lNota;0)
  Imprime
  lNota = 'Nota: Los gastos sobre compra son capturados en la moneda base, pero para efectos de mostrar'[c0]
	Texto c0; @col(lNota;0)
  Imprime 
  lNota = 'la información en la moneda del reporte seleccionada se realiza una conversión a ésta moneda.'[c0]
	Texto c0; @col(lNota;0)
  Imprime 
FinSi  
