From dae22c5b1430abff2dc29fddd3b1728e112593c8 Mon Sep 17 00:00:00 2001
From: Romain Courteaud <romain@nexedi.com>
Date: Tue, 20 Jan 2004 15:13:39 +0000
Subject: [PATCH] creation

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@225 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../coramy_trade/SalesOrder_confirmList.py    | 77 +++++++++++++++
 .../SalesOrder_confirmListForm.form           | 95 +++++++++++++++++++
 .../coramy_trade/SalesOrder_orderList.py      | 70 ++++++++++++++
 3 files changed, 242 insertions(+)
 create mode 100755 product/Coramy/skins/coramy_trade/SalesOrder_confirmList.py
 create mode 100755 product/Coramy/skins/coramy_trade/SalesOrder_confirmListForm.form
 create mode 100755 product/Coramy/skins/coramy_trade/SalesOrder_orderList.py

diff --git a/product/Coramy/skins/coramy_trade/SalesOrder_confirmList.py b/product/Coramy/skins/coramy_trade/SalesOrder_confirmList.py
new file mode 100755
index 0000000000..0804d84d2e
--- /dev/null
+++ b/product/Coramy/skins/coramy_trade/SalesOrder_confirmList.py
@@ -0,0 +1,77 @@
+## Script (Python) "SalesOrder_confirmList"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=start_date=None, stop_date=None,batch_mode=0,**kw
+##title=
+##
+# confirm the selection of Sales Order
+request = context.REQUEST
+
+object_list = context.object_action_list(selection_name='sales_order_selection')
+
+confirmed_order_number = 0
+confirmed_order_list = ' '
+
+not_confirmed_order_number = 0
+not_confirmed_order_list = ' '
+
+uid_list = []
+
+for order in object_list:
+
+  simulation_state = order.getSimulationState()
+  if (simulation_state == 'planned' or simulation_state == 'ordered'): 
+    
+    error_message = order.Order_heavyControl()
+    if error_message == '':
+
+      # we give local_roles to the users
+      user_name = ''
+      user_name = order.getSourceAdministrationTitle().replace(' ','_')
+      order.assign_gestionaire_designe_roles(user_name = user_name)
+
+      if start_date != None:
+        order.setStartDate(start_date)
+      if stop_date != None:
+        order.setStopDate(stop_date)
+	
+
+	  
+      # set the transition_state to 'confirmed'
+      order.confirm()
+    
+      #order.flushActivity(invoke=1)
+      
+      confirmed_order_number += 1
+      confirmed_order_list += order.getId()+' '
+    else:
+      not_confirmed_order_number += 1
+      not_confirmed_order_list += order.getId()+' '
+
+      uid_list.append(order.getUid())
+      
+  elif (simulation_state == 'draft'):
+    not_confirmed_order_number += 1
+    not_confirmed_order_list += order.getId()+' '
+
+    uid_list.append(order.getUid())
+
+
+# and this is the end ....
+if batch_mode:
+  return None
+else:
+  """
+  redirect_url = '%s?%s%i%s' % ( context.absolute_url()+'/'+'view', 'portal_status_message=',not_confirmed_order_number,'+Commandes+ventes+non+confirmées:'+not_confirmed_order_list+'\n')
+  request[ 'RESPONSE' ].redirect( redirect_url )
+  """
+  if not_confirmed_order_number == 0: 
+    redirect_url = '%s?%s%i%s' % ( context.absolute_url()+'/'+'view', 'portal_status_message=',confirmed_order_number,'+Commandes+ventes+confirmées.')
+  else:
+    context.portal_selections.setSelectionToIds('sales_order_selection', uid_list, REQUEST=request)
+    redirect_url = '%s?%s%i%s' % ( context.absolute_url()+'/'+'view', 'portal_status_message=',not_confirmed_order_number,'+Commandes+ventes+non+confirmées.')
+
+  request[ 'RESPONSE' ].redirect( redirect_url )
diff --git a/product/Coramy/skins/coramy_trade/SalesOrder_confirmListForm.form b/product/Coramy/skins/coramy_trade/SalesOrder_confirmListForm.form
new file mode 100755
index 0000000000..0f8f116f29
--- /dev/null
+++ b/product/Coramy/skins/coramy_trade/SalesOrder_confirmListForm.form
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<form>
+  <title>Confirmer les commandes</title>
+  <name>SalesOrder_confirmListForm</name>
+  <action>SalesOrder_confirmList</action>
+  <enctype>multipart/form-data</enctype>
+  <method>POST</method>
+  <pt>form_view_dialog</pt>
+
+  <groups>
+    <group>
+      <title>Default</title>
+      <fields>
+
+      <field><id>my_start_date</id> <type>DateTimeField</type>
+        <values>
+          <allow_empty_time type="int">0</allow_empty_time>
+          <alternate_name></alternate_name>
+          <ampm_time_style type="int">0</ampm_time_style>
+          <css_class></css_class>
+          <date_only type="int">1</date_only>
+          <date_separator>/</date_separator>
+          <default_now type="int">0</default_now>
+          <description></description>
+          <editable_expression></editable_expression>
+          <editable_permission></editable_permission>
+          <editable_role></editable_role>
+          <external_validator></external_validator>
+          <hidden type="int">0</hidden>
+          <input_order>dmy</input_order>
+          <input_style>text</input_style>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">0</read_only>
+          <required type="int">0</required>
+          <time_separator>:</time_separator>
+          <title>Date d'expédition confirmée</title>
+          <viewable_expression></viewable_expression>
+          <viewable_permission></viewable_permission>
+          <viewable_role></viewable_role>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="not_datetime">You did not enter a valid date and time.</message>
+          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+        </messages>
+      </field>
+      <field><id>my_stop_date</id> <type>DateTimeField</type>
+        <values>
+          <allow_empty_time type="int">0</allow_empty_time>
+          <alternate_name></alternate_name>
+          <ampm_time_style type="int">0</ampm_time_style>
+          <css_class></css_class>
+          <date_only type="int">1</date_only>
+          <date_separator>/</date_separator>
+          <default_now type="int">0</default_now>
+          <description></description>
+          <editable_expression></editable_expression>
+          <editable_permission></editable_permission>
+          <editable_role></editable_role>
+          <external_validator></external_validator>
+          <hidden type="int">0</hidden>
+          <input_order>dmy</input_order>
+          <input_style>text</input_style>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">0</read_only>
+          <required type="int">0</required>
+          <time_separator>:</time_separator>
+          <title>Date de livraison confirmée</title>
+          <viewable_expression></viewable_expression>
+          <viewable_permission></viewable_permission>
+          <viewable_role></viewable_role>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="not_datetime">You did not enter a valid date and time.</message>
+          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+        </messages>
+      </field>
+      </fields>
+    </group>
+    <group>
+      <title>hidden</title>
+      <fields>
+
+      </fields>
+    </group>
+  </groups>
+</form>
\ No newline at end of file
diff --git a/product/Coramy/skins/coramy_trade/SalesOrder_orderList.py b/product/Coramy/skins/coramy_trade/SalesOrder_orderList.py
new file mode 100755
index 0000000000..ea998f0b74
--- /dev/null
+++ b/product/Coramy/skins/coramy_trade/SalesOrder_orderList.py
@@ -0,0 +1,70 @@
+## Script (Python) "SalesOrder_orderList"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=batch_mode=0,**kw
+##title=
+##
+# order the selection of Sales Order
+request = context.REQUEST
+
+object_list = context.object_action_list(selection_name='sales_order_selection')
+
+ordered_order_number = 0
+ordered_order_list = ' '
+
+not_ordered_order_number = 0
+not_ordered_order_list = ' '
+
+uid_list = []
+
+for order in object_list:
+
+  simulation_state = order.getSimulationState()
+  if (simulation_state == 'planned' or simulation_state == 'draft'): 
+    
+    error_message = order.Order_lightControl()
+    if error_message == '':
+
+      # we give local_roles to the users
+      user_name = ''
+      user_name = order.getSourceAdministrationTitle().replace(' ','_')
+      order.assign_gestionaire_designe_roles(user_name = user_name)
+
+	  
+      # set the transition_state to 'ordered'
+      order.order()
+
+      #order.flushActivity(invoke=1)
+    
+      ordered_order_number += 1
+      ordered_order_list += order.getId()+' '
+
+    else:
+      not_ordered_order_number += 1
+      not_ordered_order_list += order.getId()+' '
+
+      uid_list.append(order.getUid())
+
+  else:
+    """
+    not_ordered_order_number += 1
+    not_ordered_order_list += order.getId()+' '
+    
+    uid_list.append(order.getUid())
+    """
+    None
+
+# and this is the end ....
+if batch_mode:
+  return None
+else:
+  if not_ordered_order_number == 0: 
+    redirect_url = '%s?%s%i%s' % ( context.absolute_url()+'/'+'view', 'portal_status_message=',ordered_order_number,'+Commandes+ventes+validées.')
+  else:
+    context.portal_selections.setSelectionToIds('sales_order_selection', uid_list, REQUEST=request)
+    redirect_url = '%s?%s%i%s' % ( context.absolute_url()+'/'+'view', 'portal_status_message=',not_ordered_order_number,'+Commandes+ventes+non+validées.')
+
+  request[ 'RESPONSE' ].redirect( redirect_url )
-- 
2.30.9