{ PROGRAMA : prprmt020 OBJETIVO : Administrar los dibujos de las ordenes PROGRAMADOR : ING. JUAN SOTO } GLOBALS "prprgb000.4gl" DEFINE d_tipos,mensaje,f_tipos,imagen,filepath STRING, inserte_dibujo BOOLEAN MAIN DEFER INTERRUPT CALL STARTLOG("prmt020.log") CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" USER usuarios USING clave DECLARE buscacorreo CURSOR FOR SELECT a.correo FROM seg0003 a WHERE a.controldibujo = 'SI' LET idx = 1 FOREACH buscacorreo INTO copiacorreo[idx] LET copiaemail = copiaemail CLIPPED,";",copiacorreo[idx] LET idx = idx + 1 END FOREACH CALL prprmt020() END MAIN FUNCTION prprmt020() DEFINE nombre_cliente,email,emailsubject,emailbody,procedimiento,vendedor,dir_file CHAR(60), filedestino CHAR(100), ruta DYNAMIC ARRAY OF CHAR(150) OPEN WINDOW w1 WITH FORM "prfmmt012" DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM) INPUT BY NAME prtb08.num_oc AFTER INPUT LET d_tipos="Images" LET f_tipos="*.jpg *.png *.gif" LET mensaje=%"Elige Imagen" SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' ') INTO prtb08.cotizacion_no,nombre_cliente,prtb08.sec_vend,vendedor FROM prtb00012 a,vetb00004 b,adtb00003 c WHERE a.num_oc = prtb08.num_oc AND a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND a.sec_vend = c.num_emp IF STATUS = NOTFOUND THEN CALL msg(3) NEXT FIELD num_oc ELSE DECLARE busca_dibujo CURSOR FOR SELECT a.ruta_file FROM prtb00029 a WHERE a.num_oc = prtb08.num_oc LET idx = 1 FOREACH busca_dibujo INTO ruta[idx] LET idx = idx + 1 END FOREACH CALL set_count(idx-1) END IF DISPLAY BY NAME prtb08.cotizacion_no,nombre_cliente,vendedor END INPUT INPUT ARRAY ruta FROM sdibujo.* ATTRIBUTE(WITHOUT DEFAULTS) BEFORE ROW LET curr = arr_curr() DISPLAY ruta[curr] TO imagen ON ACTION actualiza WHENEVER ERROR CONTINUE BEGIN WORK DELETE FROM prtb00029 WHERE num_oc = prtb08.num_oc LET inserte_dibujo = FALSE FOR idx = 1 TO arr_count() IF ruta[idx] IS NOT NULL THEN LET filedestino = FGL_GETENV("IMAGENNOMINA") LET filedestino = filedestino CLIPPED,"\\DIBUJOSORDENES\\",idx USING "&&&","-",prtb08.num_oc USING "&&&&&&",".jpg" # CALL fgl_winmessage("2",filedestino,"info") # CALL fgl_winmessage("3",ruta[idx],"info") CALL fgl_getfile(ruta[idx],filedestino) INSERT INTO prtb00029 (num_oc,ruta_file,id) VALUES (prtb08.num_oc,filedestino,idx) IF STATUS < 0 THEN ROLLBACK WORK CALL fgl_winmessage("ERROR","NO ACTUALICE DIBUJO EN LA ORDEN","INFO") EXIT FOR ELSE COMMIT WORK END IF LET inserte_dibujo = TRUE LET filedestino = NULL END IF END FOR IF inserte_dibujo THEN SELECT a.email INTO email FROM seg0000 a WHERE a.sec_vend = prtb08.sec_vend LET emailsubject = "ACTUALIZACION DIBUJO ORDEN" LET emailbody = " LA ORDEN ",prtb08.num_oc USING "&&&&&&"," TIENE EL DIBUJO DISPONIBLE PARA VERIFICAR" LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED CALL envia_correo(email,copiaemail,emailbody,emailsubject,procedimiento) CALL fgl_winmessage("Warning","Actualizacion Exitosa","info") END IF ON ACTION dibujo LET curr = arr_curr() CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] ) IF filepath IS NOT NULL THEN DISPLAY "filepath ",filepath LET ruta[curr]= filepath CLIPPED DISPLAY ruta[curr] TO imagen END IF AFTER ROW LET curr = arr_curr() IF ruta[curr] IS NOT NULL THEN DISPLAY ruta[curr] TO imagen END IF END INPUT ON ACTION CANCEL LET INT_FLAG = FALSE CALL msg(2) EXIT DIALOG CLOSE WINDOW w1 END DIALOG END FUNCTION