Clientes con derecho de Actualizaciones con datos del ejecutivo de cuenta e Integrador. Pueden filtrar por integrador y negociar con integrador

10 views
Skip to first unread message

Juan Navas DataPro

unread,
Oct 6, 2017, 2:39:10 PM10/6/17
to Foro Talento Adaptapro
Imágenes integradas 1

--
Juan Navas
CEO Adaptapro
http://www.datapronet.com
Caracas - Venezuela
0414-293.17.07
AdaptaPro® El más completo y moderno Sistema de Planificación y Gestión Empresarial

AVISO LEGAL:

Esta información es privada y confidencial y está dirigida únicamente a su destinatario. Si usted no es el destinatario original de este mensaje y por este medio pudo acceder a dicha información por favor elimine el mensaje. La distribución o copia de este mensaje está estrictamente prohibida. Esta comunicación es sólo para propósitos de información y no debe ser considerada como propuesta, aceptación ni como una declaración de voluntad oficial de SERVICIOS INFORMATICOS DATAPRO, C.A.  y/o subsidiarias y/o afiliadas. La transmisión de e-mails no garantiza que el correo electrónico sea seguro o libre de error. Por consiguiente, no manifestamos que esta información sea completa o precisa. Toda información está sujeta a alterarse sin previo aviso.


This information is private and confidential and intended for the recipient only. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and shall not be regarded neither as a proposal, acceptance nor as a statement of will or official statement from SERVICIOS INFORMATICOS DATAPRO, C.A.  and/or subsidiaries and/or affiliates. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice.
DPPROGRA.ZIP

Juan Navas DataPro

unread,
Oct 6, 2017, 3:21:48 PM10/6/17
to Foro Talento Adaptapro
// Programa   : BRLICCONACT2
// Fecha/Hora : 17/09/2015 17:24:00
// Propósito  : "Licencias con Servicios de Actualización Remota"
// Creado Por : Automáticamente por BRWMAKER
// Llamado por: <DPXBASE>
// Aplicación : Gerencia 
// Tabla      : <TABLA>

#INCLUDE "DPXBASE.CH"

PROCE MAIN(cWhere,cCodSuc,nPeriodo,dDesde,dHasta,cTitle)
   LOCAL aData,aFechas,cFileMem:="USER\BRLICCONACT.MEM",V_nPeriodo:=4,cCodPar
   LOCAL V_dDesde:=CTOD(""),V_dHasta:=CTOD("")
   LOCAL cServer:=oDp:cRunServer
   LOCAL lConectar:=.F.

   oDp:cRunServer:=NIL

   IF !Empty(cServer)

     MsgRun("Conectando con Servidor "+cServer+" ["+ALLTRIM(SQLGET("DPSERVERBD","SBD_DOMINI","SBD_CODIGO"+GetWhere("=",cServer)))+"]",;
            "Por Favor Espere",{||lConectar:=EJECUTAR("DPSERVERDBOPEN",cServer)})

     IF !lConectar
        RETURN .F.
     ENDIF

   ENDIF 


   cTitle:="Licencias con Servicios de Actualización Remota" +IF(Empty(cTitle),"",cTitle)

   oDp:oFrm:=NIL

   IF FILE(cFileMem) .AND. nPeriodo=NIL
      RESTORE FROM (cFileMem) ADDI
      nPeriodo:=V_nPeriodo
   ENDIF

   DEFAULT cCodSuc :=oDp:cSucursal,;
           nPeriodo:=4 


   // Obtiene el Código del Parámetro

   IF !Empty(cWhere)
 
      cCodPar:=ATAIL(_VECTOR(cWhere,"="))
 
      IF TYPE(cCodPar)="C"
        cCodPar:=SUBS(cCodPar,2,LEN(cCodPar))
        cCodPar:=LEFT(cCodPar,LEN(cCodPar)-1)
      ENDIF

   ENDIF

   IF .T. .OR. (!nPeriodo=10 .OR. (Empty(dDesde) .OR. Empty(dhasta)))

       aFechas:=EJECUTAR("DPDIARIOGET",nPeriodo)
       dDesde :=aFechas[1]
       dHasta :=aFechas[2]

   ENDIF

   IF .F.

      IF nPeriodo=10
        dDesde :=V_dDesde
        dHasta :=V_dHasta
      ELSE
        aFechas:=EJECUTAR("DPDIARIOGET",nPeriodo)
        dDesde :=aFechas[1]
        dHasta :=aFechas[2]
      ENDIF

     aData :=LEERDATA(HACERWHERE(dDesde,dHasta,cWhere),NIL,cServer)


   ELSEIF (.T.)

     aData :=LEERDATA(HACERWHERE(dDesde,dHasta,cWhere),NIL,cServer)

   ENDIF

   IF Empty(aData)
      MensajeErr("no hay "+cTitle,"Información no Encontrada")
      RETURN .F.
   ENDIF

   ViewData(aData,cTitle,oDp:cWhere)

   oDp:oFrm:=oLICCONACT
            
RETURN .T. 


FUNCTION ViewData(aData,cTitle,cWhere_)
   LOCAL oBrw,oCol,aTotal:=ATOTALES(aData)
   LOCAL oFont,oFontB
   LOCAL aPeriodos:=ACLONE(oDp:aPeriodos)
   LOCAL aCoors:=GetCoors( GetDesktopWindow() )

   DEFINE FONT oFont  NAME "Arial"   SIZE 0, -12 
   DEFINE FONT oFontB NAME "Arial"   SIZE 0, -12 BOLD

//   DPEDIT():New(cTitle,"BRLICCONACT.EDT","oLICCONACT",.F.)

   DpMdi(cTitle,"oLICCONACT","BRCOMLICDET.EDT")
   oLICCONACT:Windows(0,0,aCoors[3]-160,aCoors[4]-10,.T.) // Maximizado

//  oLICCONACT:CreateWindow(NIL,NIL,NIL,550,850+58)

   oLICCONACT:cCodSuc  :=cCodSuc
   oLICCONACT:lMsgBar  :=.F.
   oLICCONACT:cPeriodo :=aPeriodos[nPeriodo]
   oLICCONACT:cCodSuc  :=cCodSuc
   oLICCONACT:nPeriodo :=nPeriodo
   oLICCONACT:cNombre  :=""
   oLICCONACT:dDesde   :=dDesde
   oLICCONACT:cServer  :=cServer
   oLICCONACT:dHasta   :=dHasta
   oLICCONACT:cWhere   :=cWhere
   oLICCONACT:cWhere_  :=cWhere_
   oLICCONACT:cWhereQry:=""
   oLICCONACT:cSql     :=oDp:cSql
   oLICCONACT:oWhere   :=TWHERE():New(oLICCONACT)
   oLICCONACT:cCodPar  :=cCodPar // Código del Parámetro


   oLICCONACT:oBrw:=TXBrowse():New( oLICCONACT:oDlg )
   oLICCONACT:oBrw:SetArray( aData, .T. )
   oLICCONACT:oBrw:SetFont(oFont)

   oLICCONACT:oBrw:lFooter     := .T.
   oLICCONACT:oBrw:lHScroll    := .F.
   oLICCONACT:oBrw:nHeaderLines:= 2
   oLICCONACT:oBrw:nDataLines  := 1
   oLICCONACT:oBrw:nFooterLines:= 1

   oLICCONACT:aData            :=ACLONE(aData)

   AEVAL(oLICCONACT:oBrw:aCols,{|oCol|oCol:oHeaderFont:=oFontB})

   

  oCol:=oLICCONACT:oBrw:aCols[1]
  oCol:cHeader      :='Producto'
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 180

  oCol:=oLICCONACT:oBrw:aCols[2]
  oCol:cHeader      :='Compuesto'
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 250

  oCol:=oLICCONACT:oBrw:aCols[3]
  oCol:cHeader      :='Fecha'
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 70

  oCol:=oLICCONACT:oBrw:aCols[4]
  oCol:cHeader      :='Fecha Vencimiento'
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 70

  oCol:=oLICCONACT:oBrw:aCols[5]
  oCol:cHeader      :='Versión'
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 48
  oCol:nDataStrAlign:= AL_RIGHT 
  oCol:nHeadStrAlign:= AL_RIGHT 
  oCol:nFootStrAlign:= AL_RIGHT 
  oCol:bStrData     :={|nMonto|nMonto:= oLICCONACT:oBrw:aArrayData[oLICCONACT:oBrw:nArrayAt,5],FDP(nMonto,'999,999,999.99')}
  oCol:cFooter      :=FDP(aTotal[5],'999,999,999.99')

  oCol:=oLICCONACT:oBrw:aCols[6]
  oCol:cHeader      :='Cliente'
  oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 60

  oCol:=oLICCONACT:oBrw:aCols[7]
  oCol:cHeader      :='Nombre'
  oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 480


  oCol:=oLICCONACT:oBrw:aCols[8]
  oCol:cHeader      :="Cod."+CRLF+"Int"
  oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 80

  oCol:=oLICCONACT:oBrw:aCols[9]
  oCol:cHeader      :='Nombre del Integrador'
  oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 380

  oCol:=oLICCONACT:oBrw:aCols[10]
  oCol:cHeader      :="Cod."+CRLF+"Vend"
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 60

  oCol:=oLICCONACT:oBrw:aCols[11]
  oCol:cHeader      :='Nombre del Ejecutivo de Cuenta'
  oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) } 
  oCol:nWidth       := 380



   oLICCONACT:oBrw:aCols[1]:cFooter:=" #"+LSTR(LEN(aData))

   oLICCONACT:oBrw:bClrStd               := {|oBrw,nClrText,aData|oBrw:=oLICCONACT:oBrw,aData:=oBrw:aArrayData[oBrw:nArrayAt],;
                                           nClrText:=0,;
                                          {nClrText,iif( oBrw:nArrayAt%2=0, 15790320, 14671839 ) } }

   oLICCONACT:oBrw:bClrHeader            := {|| {0,14671839 }}
   oLICCONACT:oBrw:bClrFooter            := {|| {0,14671839 }}


   oLICCONACT:oBrw:bLDblClick:={|oBrw|oLICCONACT:oRep:=oLICCONACT:RUNCLICK() }

   oLICCONACT:oBrw:bChange:={||oLICCONACT:BRWCHANGE()}
   oLICCONACT:oBrw:CreateFromCode()

   oLICCONACT:oWnd:oClient := oLICCONACT:oBrw

   oLICCONACT:Activate({||oLICCONACT:ViewDatBar(oLICCONACT)})

RETURN .T.

/*
// Barra de Botones
*/
FUNCTION ViewDatBar(oLICCONACT)
   LOCAL oCursor,oBar,oBtn,oFont,oCol
   LOCAL oDlg:=oLICCONACT:oDlg
   LOCAL nLin:=0

   oLICCONACT:oBrw:GoBottom(.T.)
   oLICCONACT:oBrw:Refresh(.T.)

   IF !File("FORMS\BRLICCONACT.EDT")
     oLICCONACT:oBrw:Move(44,0,850+50,460)
   ENDIF

   DEFINE CURSOR oCursor HAND
   DEFINE BUTTONBAR oBar SIZE 52-15,60-15 OF oDlg 3D CURSOR oCursor
   DEFINE FONT oFont  NAME "Arial"   SIZE 0, -10 BOLD


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\CLIENTE.BMP";
          ACTION oLICCONACT:VERCLIENTE()

   oBtn:cToolTip:="Generar Correspondencia Masiva"


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\EMAIL.BMP";
          ACTION oLICCONACT:GENMAIL()

   oBtn:cToolTip:="Generar Correspondencia Masiva"


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\EMAILX.BMP";
          ACTION oLICCONACT:GEN_MAILHTML()

   oBtn:cToolTip:="Correspondencia Masiva"

  

   IF Empty(oLICCONACT:cServer) .AND. !Empty(SQLGET("DPBRWLNK","EBR_CODIGO","EBR_CODIGO"+GetWhere("=","LICCONACT")))

         DEFINE BUTTON oBtn;
         OF oBar;
         NOBORDER;
         FONT oFont;
         FILENAME "BITMAPS\XBROWSE.BMP";
         ACTION EJECUTAR("BRWRUNBRWLINK",oLICCONACT:oBrw,"LICCONACT",oLICCONACT:cSql,oLICCONACT:nPeriodo,oLICCONACT:dDesde,oLICCONACT:dHasta)

         oBtn:cToolTip:="Ejecutar Browse Vinculado(s)"

         oLICCONACT:oBtnRun:=oBtn

         oLICCONACT:oBrw:bLDblClick:={||EVAL(oLICCONACT:oBtnRun:bAction) }


   ENDIF

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\XFIND.BMP";
          ACTION EJECUTAR("BRWSETFIND",oLICCONACT:oBrw)

   oBtn:cToolTip:="Buscar"

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\FILTRAR.BMP";
          ACTION EJECUTAR("BRWSETFILTER",oLICCONACT:oBrw)

   oBtn:cToolTip:="Filtrar Registros"

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\OPTIONS.BMP",NIL,"BITMAPS\OPTIONSG.BMP";
          ACTION EJECUTAR("BRWSETOPTIONS",oLICCONACT:oBrw);
          WHEN LEN(oLICCONACT:oBrw:aArrayData)>1

   oBtn:cToolTip:="Filtrar según Valores Comunes"


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\REFRESH.BMP";
          ACTION oLICCONACT:BRWREFRESCAR()

   oBtn:cToolTip:="Refrescar"


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\CRYSTAL.BMP";
          ACTION EJECUTAR("BRWTODBF",oLICCONACT)

   oBtn:cToolTip:="Visualizar Mediante Crystal Report"


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\EXCEL.BMP";
          ACTION (EJECUTAR("BRWTOEXCEL",oLICCONACT:oBrw,oLICCONACT:cTitle,oLICCONACT:cNombre))

   oBtn:cToolTip:="Exportar hacia Excel"

   oLICCONACT:oBtnXls:=oBtn

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\html.BMP";
          ACTION (EJECUTAR("BRWTOHTML",oLICCONACT:oBrw))

   oBtn:cToolTip:="Generar Archivo html"

   oLICCONACT:oBtnHtml:=oBtn

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\PREVIEW.BMP";
          ACTION (EJECUTAR("BRWPREVIEW",oLICCONACT:oBrw))

   oBtn:cToolTip:="Previsualización"

   oLICCONACT:oBtnPreview:=oBtn

   IF ISSQLGET("DPREPORTES","REP_CODIGO","BRLICCONACT")

     DEFINE BUTTON oBtn;
            OF oBar;
            NOBORDER;
            FONT oFont;
            FILENAME "BITMAPS\XPRINT.BMP";
            ACTION oLICCONACT:IMPRIMIR()

      oBtn:cToolTip:="Imprimir"

     oLICCONACT:oBtnPrint:=oBtn

   ENDIF

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\QUERY.BMP";
          ACTION oLICCONACT:BRWQUERY()

   oBtn:cToolTip:="Imprimir"


   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\xTOP.BMP";
          ACTION (oLICCONACT:oBrw:GoTop(),oLICCONACT:oBrw:Setfocus())

   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\xSIG.BMP";
          ACTION (oLICCONACT:oBrw:PageDown(),oLICCONACT:oBrw:Setfocus())

  DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\xANT.BMP";
          ACTION (oLICCONACT:oBrw:PageUp(),oLICCONACT:oBrw:Setfocus())


  DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\xFIN.BMP";
          ACTION (oLICCONACT:oBrw:GoBottom(),oLICCONACT:oBrw:Setfocus())



   DEFINE BUTTON oBtn;
          OF oBar;
          NOBORDER;
          FONT oFont;
          FILENAME "BITMAPS\XSALIR.BMP";
          ACTION oLICCONACT:Close()

  oLICCONACT:oBrw:SetColor(0,15790320)

  EVAL(oLICCONACT:oBrw:bChange)
 
  oBar:SetColor(CLR_BLACK,15724527)

  AEVAL(oBar:aControls,{|o,n|o:SetColor(CLR_BLACK,15724527)})

  oLICCONACT:oBar:=oBar

  nLin:=690

  //
  // Campo : Periodo
  //

  @ 10, nLin COMBOBOX oLICCONACT:oPeriodo  VAR oLICCONACT:cPeriodo ITEMS aPeriodos;
                SIZE 100,NIL;
                PIXEL;
                OF oBar;
                FONT oFont;
                ON CHANGE oLICCONACT:LEEFECHAS()
  ComboIni(oLICCONACT:oPeriodo )

  @ 10, nLin+103 BUTTON oLICCONACT:oBtn PROMPT " < " SIZE 27,24;
                 FONT oFont;
                 PIXEL;
                 OF oBar;
                 ACTION (EJECUTAR("PERIODOMAS",oLICCONACT:oPeriodo:nAt,oLICCONACT:oDesde,oLICCONACT:oHasta,-1),;
                         EVAL(oLICCONACT:oBtn:bAction))



  @ 10, nLin+130 BUTTON oLICCONACT:oBtn PROMPT " > " SIZE 27,24;
                 FONT oFont;
                 PIXEL;
                 OF oBar;
                 ACTION (EJECUTAR("PERIODOMAS",oLICCONACT:oPeriodo:nAt,oLICCONACT:oDesde,oLICCONACT:oHasta,+1),;
                         EVAL(oLICCONACT:oBtn:bAction))


  @ 10, nLin+170 BMPGET oLICCONACT:oDesde  VAR oLICCONACT:dDesde;
                PICTURE "99/99/9999";
                PIXEL;
                NAME "BITMAPS\Calendar.bmp";
                ACTION LbxDate(oLICCONACT:oDesde ,oLICCONACT:dDesde);
                SIZE 76,24;
                OF   oBar;
                WHEN oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems);
                FONT oFont

   oLICCONACT:oDesde:cToolTip:="F6: Calendario"

  @ 10, nLin+252 BMPGET oLICCONACT:oHasta  VAR oLICCONACT:dHasta;
                PICTURE "99/99/9999";
                PIXEL;
                NAME "BITMAPS\Calendar.bmp";
                ACTION LbxDate(oLICCONACT:oHasta,oLICCONACT:dHasta);
                SIZE 80,23;
                WHEN oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems);
                OF oBar;
                FONT oFont

   oLICCONACT:oHasta:cToolTip:="F6: Calendario"

   @ 10, nLin+335 BUTTON oLICCONACT:oBtn PROMPT " > " SIZE 27,24;
               FONT oFont;
               OF oBar;
               PIXEL;
               WHEN oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems);
               ACTION oLICCONACT:HACERWHERE(oLICCONACT:dDesde,oLICCONACT:dHasta,oLICCONACT:cWhere,.T.)




RETURN .T.

/*
// Evento para presionar CLICK
*/
FUNCTION RUNCLICK()
RETURN .T.

/*
// Imprimir
*/
FUNCTION IMPRIMIR()
  LOCAL oRep,cWhere

  oRep:=REPORTE("BRLICCONACT",cWhere)
  oRep:cSql  :=oLICCONACT:cSql
  oRep:cTitle:=oLICCONACT:cTitle

RETURN .T.

FUNCTION LEEFECHAS()
  LOCAL nPeriodo:=oLICCONACT:oPeriodo:nAt,cWhere

  oLICCONACT:nPeriodo:=nPeriodo

  IF oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems)

     oLICCONACT:oDesde:ForWhen(.T.)
     oLICCONACT:oHasta:ForWhen(.T.)
     oLICCONACT:oBtn  :ForWhen(.T.)

     DPFOCUS(oLICCONACT:oDesde)

  ELSE

     oLICCONACT:aFechas:=EJECUTAR("DPDIARIOGET",nPeriodo)

     oLICCONACT:oDesde:VarPut(oLICCONACT:aFechas[1] , .T. )
     oLICCONACT:oHasta:VarPut(oLICCONACT:aFechas[2] , .T. )

     oLICCONACT:dDesde:=oLICCONACT:aFechas[1]
     oLICCONACT:dHasta:=oLICCONACT:aFechas[2]

     cWhere:=oLICCONACT:HACERWHERE(oLICCONACT:dDesde,oLICCONACT:dHasta,oLICCONACT:cWhere,.T.)

     oLICCONACT:LEERDATA(cWhere,oLICCONACT:oBrw,oLICCONACT:cServer)

  ENDIF

  oLICCONACT:SAVEPERIODO()

RETURN .T.


FUNCTION HACERWHERE(dDesde,dHasta,cWhere_,lRun)
   LOCAL cWhere:=""

   DEFAULT lRun:=.F.

   IF !Empty(dDesde)
       cWhere:=GetWhereAnd('DPINV.INV_FCHACT',dDesde,dHasta)
   ELSE
     IF !Empty(dHasta)
       cWhere:=GetWhereAnd('DPINV.INV_FCHACT',dDesde,dHasta)
     ENDIF
   ENDIF


   IF !Empty(cWhere_)
      cWhere:=cWhere + IIF( Empty(cWhere),""," AND ") +cWhere_
   ENDIF

   IF lRun

     IF !Empty(oLICCONACT:cWhereQry)
       cWhere:=cWhere + oLICCONACT:cWhereQry
     ENDIF

     oLICCONACT:LEERDATA(cWhere,oLICCONACT:oBrw,oLICCONACT:cServer)

   ENDIF


RETURN cWhere


FUNCTION LEERDATA(cWhere,oBrw,cServer)
   LOCAL aData:={},aTotal:={},oCol,cSql,aLines:={}
   LOCAL oDb

   DEFAULT cWhere:=""

   IF !Empty(cServer)

     IF !EJECUTAR("DPSERVERDBOPEN",cServer)
        RETURN .F.
     ENDIF

     oDb:=oDp:oDb

   ENDIF


   cSql:=" SELECT MOV_CODIGO,MOV_CODCOM,MOV_FECHA,MOV_FCHVEN,MOV_DESCUE,CLI_CODIGO,CLI_NOMBRE,SUC_CODIGO,SUC_DESCRI,CLI_CODVEN,VEN_NOMBRE "+;
          "  FROM DPMOVINV   "+;
          "  INNER JOIN DPINV      ON MOV_EXPRES=INV_CODIGO "+;
          "  LEFT  JOIN DPMEMO     ON INV_NUMMEM=MEM_NUMERO "+;
          "  LEFT  JOIN DPCLIENTES ON MOV_DOCUME=CLI_CODIGO "+;
          "  LEFT  JOIN DPVENDEDOR ON CLI_CODVEN=VEN_CODIGO "+;
          "  INNER JOIN VIEW_LICFACTURADA ON MOV_CODIGO=LIF_CODIGO AND MOV_CODCOM=LIF_SERIAL "+;
          "  LEFT  JOIN VIEW_RESCLIXSUC   ON CLI_CODIGO=RXC_CODIGO "+;   
          "  LEFT  JOIN DPSUCURSAL        ON SUC_CODIGO=RXC_CODSUC "+;  
          "  WHERE "+cWhere+IIF(Empty(cWhere),""," AND ")+" MOV_APLORG='L' AND MOV_TIPO='C' AND INV_CODIGO='ACT' "+;
          "  "+;
          " "+;
""

   IF Empty(cWhere)
     cSql:=STRTRAN(cSql,"<WHERE>","")
   ELSE
     cSql:=STRTRAN(cSql,"<WHERE>"," WHERE "+cWhere)
   ENDIF

   cSql:=EJECUTAR("WHERE_VAR",cSql)


   aData:=ASQL(cSql,oDb)

   oDp:cWhere:=cWhere


   IF EMPTY(aData)
      aData:=EJECUTAR("SQLARRAYEMPTY",cSql)
//    AADD(aData,{'','',CTOD(""),CTOD(""),0,'',''})
   ENDIF

   IF ValType(oBrw)="O"

      oLICCONACT:cSql   :=cSql
      oLICCONACT:cWhere_:=cWhere

      aTotal:=ATOTALES(aData)

      oBrw:aArrayData:=ACLONE(aData)
      oBrw:nArrayAt  :=1
      oBrw:nRowSel   :=1

      
      oCol:=oLICCONACT:oBrw:aCols[5]
         oCol:cFooter      :=FDP(aTotal[5],'999,999,999.99')

      oLICCONACT:oBrw:aCols[1]:cFooter:=" #"+LSTR(LEN(aData))
   
      oBrw:Refresh(.T.)
      AEVAL(oLICCONACT:oBar:aControls,{|o,n| o:ForWhen(.T.)})

      oLICCONACT:SAVEPERIODO()

   ENDIF

RETURN aData


FUNCTION SAVEPERIODO()
  LOCAL cFileMem:="USER\BRLICCONACT.MEM",V_nPeriodo:=oLICCONACT:nPeriodo
  LOCAL V_dDesde:=oLICCONACT:dDesde
  LOCAL V_dHasta:=oLICCONACT:dHasta

  SAVE TO (cFileMem) ALL LIKE "V_*"

RETURN .T.

/*
// Permite Crear Filtros para las Búquedas
*/
FUNCTION BRWQUERY()
     EJECUTAR("BRWQUERY",oLICCONACT)
RETURN .T.

/*
// Ejecución Cambio de Linea 
*/
FUNCTION BRWCHANGE()
RETURN NIL

/*
// Refrescar Browse
*/
FUNCTION BRWREFRESCAR()
    LOCAL cWhere


    IF Type("oLICCONACT")="O" .AND. oLICCONACT:oWnd:hWnd>0

      cWhere:=" "+IIF(!Empty("oLICCONACT":cWhere_),"oLICCONACT":cWhere_,"oLICCONACT":cWhere)
      cWhere:=STRTRAN(cWhere," WHERE ","")


      oLICCONACT:LEERDATA(oLICCONACT:cWhere_,oLICCONACT:oBrw,oLICCONACT:cServer)
      oLICCONACT:oWnd:Show()
      oLICCONACT:oWnd:Maximize()

    ENDIF

RETURN NIL

/*
// Genera Correspondencia Masiva
*/

FUNCTION GENMAIL()
 ? "GENMAIL"
RETURN NIL

/*
// VerClientes
*/
FUNCTION VERCLIENTE()
   LOCAL cCodCli:=oLICCONACT:oBrw:aArrayData[oLICCONACT:oBrw:nArrayAt,6]
   RUNLIC("DPCLIENTESCON",NIL,cCodCli)
RETURN NIL

FUNCTION GEN_MAILHTML()
  LOCAL cFileSql:="TEMP\"+LSTR(SECONDS())+".SQL",cSql
  LOCAL aData   :=ACLONE(oLICENCIAS:oBrw:aArrayData)

  AEVAL(aData,{|a,n|aData[n]:=a[5]})
  cSql:="SELECT CLI_CODIGO,CLI_NOMBRE,CLI_EMAIL FROM DPCLIENTES WHERE "+GetWhereOr("CLI_CODIGO",aData)+" AND CLI_EMAIL"+GetWhere("<>","")

  DPWRITE(cFileSql,cSql)

  DPLBX("DPCLICORRESPOND.LBX",NIL,"CLC_HTML=1",NIL,NIL,NIL,{cFileSql})

RETURN NIL


// EOF



// EOF

Reply all
Reply to author
Forward
0 new messages