string ls_directorio_actual, ls_valor,ls_fecha,ls_directorio_actual2 string ls_pto_venta,ls_tipo,ls_serie,ls_numero,ls_codigo_ct,ls_ruta,ls_archivo,ls_nueva_ruta,ls_codigo,ls_tamano, ls_extension,ls_archivo_seres long li_fila,li_codigo, li_valor,ai_fact integer flag date fecha // gchavez 20.12.2021 integer li_FileNum // gchavez 20.12.2021 string ruta_archivo // gchavez 20.12.2021 string nom_zip // gchavez 20.12.2021 string ls_dominio_host,ls_dominio_destino,ls_usuario_host,ls_usuario_destino,ls_clave_host,ls_ruta_destino,ls_ruta_origen,ls_nomprov string ls_nom_archivo_origen,ls_nom_archivo_destino,ls_ruta_seres,ls_ruta_digiflow,ls_ruta_host,ls_archivo_zipeado SETNULL(nom_zip) ls_dominio_host = f_get_valor(amb.codemp,amb.codsis,'FTP_DOMINIO_HOST') ls_usuario_host = f_get_valor(amb.codemp,amb.codsis,'FTP_USUARIO_HOST') ls_clave_host = f_get_valor(amb.codemp,amb.codsis,'FTP_CLAVE_HOST') ls_dominio_destino = f_get_valor(amb.codemp,amb.codsis,'FTP_DOMINIO_DESTINO') ls_ruta_host = f_get_valor(amb.codemp,amb.codsis,'FTP_RUTA_HOST') ls_ruta_origen = f_get_valor(amb.codemp,amb.codsis,'FTP_RUTA_HOST') ls_ruta_digiflow = f_get_valor(amb.codemp,amb.codsis,'FTP_RUTA_DIGIFLOW') ls_ruta_seres = f_get_valor(amb.codemp,amb.codsis,'SFTP_RUTA_SERES') datastore ids_doc_attch ls_valor = f_get_valor(amb.codemp,amb.codsis,'MAXIMO_ADJUNTOS_FACT') li_valor = integer(ls_valor) fecha=date(today()) ls_fecha=String ( year(fecha),'0000' )+String ( month(fecha),'00' )+String ( day(fecha),'00' ) dw_1.accepttext( ) if dw_1.rowcount( ) < li_valor then ls_directorio_actual = invo_directorio.getdirectoryactual() ls_pto_venta = istr_doc.punto_venta ls_tipo = istr_doc.tipo_doc ls_serie = istr_doc.serie ls_numero = istr_doc.nro_doc ai_fact=istr_doc.ai_param01 GetFileOpenName( 'Elegir archivo adjunto', ls_ruta, ls_archivo ) IF pos(ls_archivo,'.') > 0 then ls_extension=mid(ls_archivo,pos(ls_archivo,'.')) else ls_extension='' flag = wf_validar_ext_file(ls_extension) IF flag = 1 then IF ls_ruta = '' or isnull( ls_ruta ) then return IF not FileExists( ls_ruta ) then MessageBox( 'SIGGA', 'El archivo no existe. Por favor, verifique.' ) return END IF ls_tamano = f_get_valor(amb.codemp,amb.codsis,'TAMANO_MAXIMO_ADJUNTO') IF IsNull(ls_tamano) or ls_tamano = '' then MessageBox( 'SIGGA', 'No se tiene configurado un tamaño máximo de adjunto.~rFavor de comunicarse con el área de sistemas' ) return END IF IF FileLength64(ls_ruta)/1000000 > double(ls_tamano) then MessageBox( 'SIGGA', 'Error al adjuntar, el peso del archivo sobrepasa el parámetro permitido: ' + ls_tamano + ' MB.') return END IF ids_doc_attch = create datastore ids_doc_attch.dataobject = 'dw_mant_facturacion_attach' ids_doc_attch.settransobject(SQLCA) li_fila = ids_doc_attch.retrieve(amb.codemp,ls_pto_venta,ls_tipo,ls_serie,ls_numero) IF li_fila <1 then li_codigo = 1 ELSE li_codigo = ids_doc_attch.object.cc_item[1] +1 END IF string ambiente ambiente= f_get_valor(amb.codemp,amb.codsis,'SFTP_AMBIENTE_SERES') //1 prueba , 2 produccion IF ai_fact=1 then //1 seres ls_nomprov='SERES' ls_ruta_destino=ls_ruta_seres //GCHAVEZ 17.12.2021 , SE REALIZA EL CAMBIO DE NOMBRE DEL ARCHIVO Y FORMATO ZIP PARA SERES Y LA SUBIDA AL SFTP ls_nom_archivo_destino=ls_serie +'-'+ ls_numero+'%'+ls_tipo+'%'+ambiente+'#'+ls_fecha+ '#'+string(li_codigo)+ls_extension ls_directorio_actual2 = GetCurrentDirectory( ) //gchavez 20.12.2021 obtener directorio actual //GCHAVEZ 13.12.2021 , Nuevo nombre del zipeado que se usara como parametro para el servicio nom_zip= amb.rucemp+'#'+ ls_serie +'-'+ ls_numero+'%'+ls_tipo+'%'+ambiente+'#'+ls_fecha+ '#'+'1' ruta_archivo=ls_directorio_actual2+'\'+ls_nom_archivo_origen else //digiflow 2 ls_nomprov='DIGIFLOW' ls_ruta_destino=ls_ruta_digiflow ls_archivo = amb.codemp + ls_pto_venta + ls_tipo + ls_serie + ls_numero + string(li_codigo) + '_' + ls_archivo end if ls_codigo = f_padl(string(li_codigo),2,'0') //ls_nueva_ruta = ls_nueva_ruta + '/facturacion/' ls_nueva_ruta=ls_ruta_host ls_archivo = f_limpiar_cadena(ls_archivo) //CONEXION A DEV //gn_ftp.of_init( '192.168.8.2', 'sistope', 'operaciones' ) gn_ftp.of_init( ls_dominio_host,ls_usuario_host, ls_clave_host) //CONEXION A PRODUCCION //gn_ftp.of_init( 'felectronicas.osf.pe', 'osf', 'Quantum2018WS' ) if gn_ftp.of_cargar_ftp( ls_nueva_ruta, ls_ruta, ls_archivo ) = 0 then li_fila = ids_doc_attch.InsertRow(0) ids_doc_attch.object.empresa[li_fila] = amb.codemp ids_doc_attch.object.punto_venta[li_fila] = ls_pto_venta ids_doc_attch.object.tipo_doc[li_fila] = ls_tipo ids_doc_attch.object.serie_doc[li_fila] = ls_serie ids_doc_attch.object.numero_doc[li_fila] = ls_numero ids_doc_attch.object.item[li_fila] = long(li_codigo) ids_doc_attch.object.ruta[li_fila] = trim(ls_nueva_ruta) //gchavez 28.09.22 nuevos campos if ls_nomprov='SERES' then ids_doc_attch.object.nom_archivo_origen[li_fila] = trim(ls_archivo) ids_doc_attch.object.nom_archivo_zipeado[li_fila] = trim(nom_zip) ids_doc_attch.object.nom_archivo_destino[li_fila] = trim(ls_nom_archivo_destino) //ids_doc_attch.object.nom_archivo_destino[li_fila] = trim(ls_nom_archivo_destino) ids_doc_attch.object.nombre_archivo[li_fila] = trim(ls_archivo) end if if ls_nomprov='DIGIFLOW' then ids_doc_attch.object.nom_archivo_origen[li_fila] = trim(ls_archivo) ids_doc_attch.object.nom_archivo_zipeado[li_fila] = trim(ls_archivo) ids_doc_attch.object.nom_archivo_destino[li_fila] = trim(ls_archivo) ids_doc_attch.object.nombre_archivo[li_fila] = trim(ls_archivo) end if ids_doc_attch.object.ruta_ftp_origen[li_fila] = trim(ls_ruta_origen) ids_doc_attch.object.ruta_ftp_destino[li_fila] = trim(ls_ruta_destino) ids_doc_attch.object.nomprov_ftp[li_fila] = trim(ls_nomprov) ids_doc_attch.object.fecreg[li_fila] = datetime(today()) ids_doc_attch.object.usuareg[li_fila] = amb.is_userid if ids_doc_attch.update()>0 then commit using SQLCA; else rollback using SQLCA; Messagebox("Información","Ocurrio un Error al guardar los Datos", STOPSIGN!) end if end if else MessageBox("Error", "Tipo de extensión de archivo : " + ls_extension + " no permitida", StopSign!) end if invo_directorio.setdirectoryactual(ls_directorio_actual) else MessageBox("Atención", "Estimado usuario, solo puede adjuntar hasta " + ls_valor + " archivos", Exclamation!) end if