From 5db0270bc70d48605cbfc70c381e591b12877d10 Mon Sep 17 00:00:00 2001
From: Romain Courteaud <romain@nexedi.com>
Date: Mon, 19 Jan 2004 10:45:19 +0000
Subject: [PATCH] separate in 2 functions

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@208 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/Coramy/Extensions/ImportEdiFiles.py | 90 +++++++++++++++------
 1 file changed, 65 insertions(+), 25 deletions(-)

diff --git a/product/Coramy/Extensions/ImportEdiFiles.py b/product/Coramy/Extensions/ImportEdiFiles.py
index edd95a2e1a..50f1e92cd5 100755
--- a/product/Coramy/Extensions/ImportEdiFiles.py
+++ b/product/Coramy/Extensions/ImportEdiFiles.py
@@ -25,6 +25,7 @@ import os, string
 from DateTime import DateTime
 from ZPublisher.HTTPRequest import FileUpload
 from cgi import FieldStorage
+from os import access,W_OK
 
 # We first should look to the import folder
 base_directory_path = '/mnt/edi'
@@ -37,25 +38,19 @@ if not os.path.exists(log_directory_path ):
   os.mkdir( log_directory_path )
 
 
-"""
-this allows to import many edi files by the same time
-"""
-def importEdiFiles(self, REQUEST, delivery_mode, incoterm, order_type, segmentation_strategique, travel_duration, batch_mode=0):
+def importEdiFile(object=None, file_path=None, delivery_mode=None, incoterm=None, order_type=None, segmentation_strategique=None, travel_duration=None):
 
-  files_list = os.listdir(import_directory_path)
+  resultTab = [] 
+  
   result = ''
-  edi_files_number = 0
-  for file_name in files_list:
+  result = result +  '\n--------------------------------------------\n'
+  result = result + file_path + '\n'
+  result = result + DateTime().strftime("%a, %Y %B %d %H:%M:%S")
 
-    file_path = os.path.join(import_directory_path, file_name)
-    
-    result = result +  '\n##############################################################################   \n'
-    result = result + file_path + '\n'
-    result = result + DateTime().strftime("%a, %Y %B %d %H:%M:%S")
-    #result = result + DateTime().asctime()
+  if access(file_path, W_OK):
     
     # open the file
-    file = open( file_path   , 'r')
+    file = open( file_path , 'r')
 
     # create the correct parameter
     form=FieldStorage()
@@ -64,27 +59,72 @@ def importEdiFiles(self, REQUEST, delivery_mode, incoterm, order_type, segmentat
     import_file = FileUpload(form)
 
     # import the file
-    resultTmp = self.SalesOrder_importEdi(import_file=import_file, delivery_mode=delivery_mode, incoterm=incoterm, order_type=order_type, segmentation_strategique=segmentation_strategique, travel_duration=travel_duration, batch_mode=1)
+    resultTmp = object.SalesOrder_importEdi(import_file=import_file, delivery_mode=delivery_mode, incoterm=incoterm, order_type=order_type, segmentation_strategique=segmentation_strategique, travel_duration=travel_duration, batch_mode=1)
+
+    file.close()
 
     # test the result
     if resultTmp == None:
-      result = result + '\n'
-      file.close()
+      result = result + '\n' + 'Fichier non valide\n'
+      resultTab += [(0,result)]
     else:
-      edi_files_number += 1
       result = result + '\n' +  resultTmp
-      file.close()
       os.remove(file_path)
+      resultTab += [(1,result)]
+
+
+  else:
+    result += '\nPas d acces en ecriture\n'
+    resultTab += [(0,result)]
+
+
+  return resultTab
+
+
+"""
+this allows to import many edi files by the same time
+"""
+def importEdiFileList(self, REQUEST,file_path=None, delivery_mode=None, incoterm=None, order_type=None, segmentation_strategique=None, travel_duration=None, batch_mode=0):
+	
+  result = ''
+  result += '##############################################################################   \n'
+  result += 'Tentative d import\n'+ DateTime().strftime("%a, %Y %B %d %H:%M:%S")+'\n'
+  result += '##############################################################################   \n'
+
+  edi_files_number = 0
+
+  # test the log file
+  if access(log_directory_path, W_OK):
+
+    files_list = os.listdir(import_directory_path)
+
+
+    tab = []
 
+    for file_name in files_list:
+      file_path = os.path.join(import_directory_path, file_name)
+    
+      tab += importEdiFile(object=self, file_path=file_path, delivery_mode=delivery_mode, incoterm=incoterm, order_type=order_type, segmentation_strategique=segmentation_strategique, travel_duration=travel_duration ) 
+
+
+    
+    for comment in tab: 
+      if comment[0]:
+     	edi_files_number += 1 
+      result += comment[1]
+
+    # write the log file
+    log_path = os.path.join(log_directory_path, 'importEdiERP5.log')
+    log_file = open(log_path,'a')
+    log_file.write(result)
+    log_file.close()
+
+  else:
+    result += 'Ne peut ecrire le fichier de log\n'
 
-  # write the log file
-  log_path = os.path.join(log_directory_path, 'importEdiERP5.log')
-  log_file = open(log_path,'a')
-  log_file.write(result)
-  log_file.close()
 
   if batch_mode:
-    return None
+    return result
   else:
     redirect_url = '%s?%s%i%s' % ( self.absolute_url()+'/'+'view', 'portal_status_message=',edi_files_number ,' Fichiers+EDI+importés.')
     REQUEST[ 'RESPONSE' ].redirect( redirect_url )
-- 
2.30.9