Browse Source

[ADD] SALON MODULE

pull/3/head
cybroodoo 9 years ago
parent
commit
18ebe05817
  1. 1
      salon_operation/__init__.py
  2. 41
      salon_operation/__openerp__.py
  3. 28
      salon_operation/demo/demo_chair.xml
  4. 911
      salon_operation/demo/demo_day.xml
  5. 166
      salon_operation/demo/demo_month.xml
  6. 473
      salon_operation/demo/demo_time.xml
  7. 1
      salon_operation/models/__init__.py
  8. 55
      salon_operation/models/autofill_month.py
  9. 14
      salon_operation/models/chair.py
  10. 78
      salon_operation/models/confirm_booking.py
  11. 88
      salon_operation/models/day.py
  12. 112
      salon_operation/models/month.py
  13. 83
      salon_operation/models/period.py
  14. 161
      salon_operation/models/salon_book.py
  15. 6
      salon_operation/security/ir.model.access.csv
  16. BIN
      salon_operation/static/description/Times.png
  17. BIN
      salon_operation/static/description/auto_fill.png
  18. BIN
      salon_operation/static/description/booked.png
  19. BIN
      salon_operation/static/description/chair_under_conf.png
  20. BIN
      salon_operation/static/description/chairs.png
  21. BIN
      salon_operation/static/description/icon.png
  22. 129
      salon_operation/static/description/index.html
  23. BIN
      salon_operation/static/description/month.png
  24. BIN
      salon_operation/static/description/month_booked.png
  25. BIN
      salon_operation/static/description/schedule_month.png
  26. BIN
      salon_operation/static/src/img/calendar.jpg
  27. BIN
      salon_operation/static/src/img/calendar_icon.png
  28. BIN
      salon_operation/static/src/img/tick_gray.png
  29. BIN
      salon_operation/static/src/img/tick_green_001.png
  30. 5
      salon_operation/static/src/js/salon.js
  31. 1
      salon_operation/sweep/__init__.py
  32. 25
      salon_operation/sweep/sweep.py
  33. 17
      salon_operation/sweep/sweep_invoice.xml
  34. 87
      salon_operation/sweep/sweep_menu_act.xml
  35. 38
      salon_operation/sweep/sweep_product.xml
  36. 214
      salon_operation/sweep/sweep_sale_order.xml
  37. 13
      salon_operation/templates/template.xml
  38. 56
      salon_operation/views/autofill_month.xml
  39. 79
      salon_operation/views/chair_view.xml
  40. 86
      salon_operation/views/day_view.xml
  41. 137
      salon_operation/views/month_view.xml
  42. 112
      salon_operation/views/period_view.xml
  43. 118
      salon_operation/views/salon_book_view.xml

1
salon_operation/__init__.py

@ -0,0 +1 @@
import models,sweep

41
salon_operation/__openerp__.py

@ -0,0 +1,41 @@
{
'name': 'Salon Booking',
'summary': """ """,
'description': """ """,
'author': '',
'website': 'http://www.example.com',
'category': 'Test',
'version': '0.1',
'depends': ['base',
'sale',
'hr',
],
'data': [
'templates/template.xml',
'security/ir.model.access.csv',
'views/chair_view.xml',
'views/period_view.xml',
'views/day_view.xml',
'views/month_view.xml',
'views/autofill_month.xml',
'views/salon_book_view.xml',
'sweep/sweep_sale_order.xml',
'sweep/sweep_menu_act.xml',
'sweep/sweep_product.xml',
'sweep/sweep_invoice.xml',
],
'demo': ['demo/demo_chair.xml',
'demo/demo_time.xml',
'demo/demo_day.xml',
'demo/demo_month.xml',
],
'installable': True,
'auto_install': False,
'application': True,
}

28
salon_operation/demo/demo_chair.xml

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="chair_0001" model="salon.chair">
<field name="name">CH0001</field>
<field name="related_employee" ref="hr.employee_fp"/>
</record>
<record id="chair_0002" model="salon.chair">
<field name="name">CH0002</field>
<field name="related_employee" ref="hr.employee_al"/>
</record>
<record id="chair_0003" model="salon.chair">
<field name="name">CH0003</field>
<field name="related_employee" ref="hr.employee_mit"/>
</record>
<record id="chair_0004" model="salon.chair">
<field name="name">CH0004</field>
<field name="related_employee" ref="hr.employee_niv"/>
</record>
</data>
</openerp>

911
salon_operation/demo/demo_day.xml

@ -0,0 +1,911 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- 1 -->
<!--<record id="day_0001" model="salon.day">-->
<!--<field name="name">01</field>-->
<!--</record>-->
<!--<record id="day_line_0001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0001"/>-->
<!--</record>-->
<!--<record id="day_line_0002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0001"/>-->
<!--</record>-->
<!--<record id="day_line_0003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0001"/>-->
<!--</record>-->
<!--<record id="day_line_0004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0001"/>-->
<!--</record>-->
<!--<record id="day_line_0005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0001"/>-->
<!--</record>-->
<!--&lt;!&ndash; 2 &ndash;&gt;-->
<!--<record id="day_0002" model="salon.day">-->
<!--<field name="name">02</field>-->
<!--</record>-->
<!--<record id="day_line_e10001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0002"/>-->
<!--</record>-->
<!--<record id="day_line_e10002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0002"/>-->
<!--</record>-->
<!--<record id="day_line_e10003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0002"/>-->
<!--</record>-->
<!--<record id="day_line_e10004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0002"/>-->
<!--</record>-->
<!--<record id="day_line_e10005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0002"/>-->
<!--</record>-->
<!--&lt;!&ndash; 3 &ndash;&gt;-->
<!--<record id="day_0003" model="salon.day">-->
<!--<field name="name">03</field>-->
<!--</record>-->
<!--<record id="day_line_n110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0003"/>-->
<!--</record>-->
<!--<record id="day_line_n110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0003"/>-->
<!--</record>-->
<!--<record id="day_line_n110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0003"/>-->
<!--</record>-->
<!--<record id="day_line_n110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0003"/>-->
<!--</record>-->
<!--<record id="day_line_n110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0003"/>-->
<!--</record>-->
<!--&lt;!&ndash; 4 &ndash;&gt;-->
<!--<record id="day_0004" model="salon.day">-->
<!--<field name="name">04</field>-->
<!--</record>-->
<!--<record id="day_line_ks1110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0004"/>-->
<!--</record>-->
<!--<record id="day_line_ks1110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0004"/>-->
<!--</record>-->
<!--<record id="day_line_ks1110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0004"/>-->
<!--</record>-->
<!--<record id="day_line_ks1110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0004"/>-->
<!--</record>-->
<!--<record id="day_line_ks1110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0004"/>-->
<!--</record>-->
<!--&lt;!&ndash; 5 &ndash;&gt;-->
<!--<record id="day_0005" model="salon.day">-->
<!--<field name="name">05</field>-->
<!--</record>-->
<!--<record id="day_line_x111110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0005"/>-->
<!--</record>-->
<!--<record id="day_line_x111110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0005"/>-->
<!--</record>-->
<!--<record id="day_line_x111110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0005"/>-->
<!--</record>-->
<!--<record id="day_line_x111110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0005"/>-->
<!--</record>-->
<!--<record id="day_line_x111110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0005"/>-->
<!--</record>-->
<!--&lt;!&ndash; 6 &ndash;&gt;-->
<!--<record id="day_0006" model="salon.day">-->
<!--<field name="name">06</field>-->
<!--</record>-->
<!--<record id="day_line_211110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0006"/>-->
<!--</record>-->
<!--<record id="day_line_211110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0006"/>-->
<!--</record>-->
<!--<record id="day_line_211110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0006"/>-->
<!--</record>-->
<!--<record id="day_line_211110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0006"/>-->
<!--</record>-->
<!--<record id="day_line_211110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0006"/>-->
<!--</record>-->
<!--&lt;!&ndash; 7 &ndash;&gt;-->
<!--<record id="day_0007" model="salon.day">-->
<!--<field name="name">07</field>-->
<!--</record>-->
<!--<record id="day_line_40001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0007"/>-->
<!--</record>-->
<!--<record id="day_line_40002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0007"/>-->
<!--</record>-->
<!--<record id="day_line_40003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0007"/>-->
<!--</record>-->
<!--<record id="day_line_40004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0007"/>-->
<!--</record>-->
<!--<record id="day_line_40005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0007"/>-->
<!--</record>-->
<!--&lt;!&ndash; 8 &ndash;&gt;-->
<!--<record id="day_0008" model="salon.day">-->
<!--<field name="name">08</field>-->
<!--</record>-->
<!--<record id="day_line_440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0008"/>-->
<!--</record>-->
<!--<record id="day_line_440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0008"/>-->
<!--</record>-->
<!--<record id="day_line_440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0008"/>-->
<!--</record>-->
<!--<record id="day_line_440004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0008"/>-->
<!--</record>-->
<!--<record id="day_line_440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0008"/>-->
<!--</record>-->
<!--&lt;!&ndash; 9 &ndash;&gt;-->
<!--<record id="day_0009" model="salon.day">-->
<!--<field name="name">09</field>-->
<!--</record>-->
<!--<record id="day_line_4440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_0009"/>-->
<!--</record>-->
<!--<record id="day_line_4440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_0009"/>-->
<!--</record>-->
<!--<record id="day_line_4440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_0009"/>-->
<!--</record>-->
<!--<record id="day_line_4440004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_0009"/>-->
<!--</record>-->
<!--<record id="day_line_4440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_0009"/>-->
<!--</record>-->
<!--&lt;!&ndash; 10 &ndash;&gt;-->
<!--<record id="day_00010" model="salon.day">-->
<!--<field name="name">10</field>-->
<!--</record>-->
<!--<record id="day_line_44440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00010"/>-->
<!--</record>-->
<!--<record id="day_line_44440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00010"/>-->
<!--</record>-->
<!--<record id="day_line_44440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00010"/>-->
<!--</record>-->
<!--<record id="day_line_44440004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00010"/>-->
<!--</record>-->
<!--<record id="day_line_44440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00010"/>-->
<!--</record>-->
<!--&lt;!&ndash;========================================================================================================&ndash;&gt;-->
<!--&lt;!&ndash; 1 &ndash;&gt;-->
<!--<record id="day_00011" model="salon.day">-->
<!--<field name="name">11</field>-->
<!--</record>-->
<!--<record id="day_line_10001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00011"/>-->
<!--</record>-->
<!--<record id="day_line_10002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00011"/>-->
<!--</record>-->
<!--<record id="day_line_10003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00011"/>-->
<!--</record>-->
<!--<record id="day_line_10004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00011"/>-->
<!--</record>-->
<!--<record id="day_line_10005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00011"/>-->
<!--</record>-->
<!--&lt;!&ndash; 2 &ndash;&gt;-->
<!--<record id="day_00012" model="salon.day">-->
<!--<field name="name">12</field>-->
<!--</record>-->
<!--<record id="day_line_110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00012"/>-->
<!--</record>-->
<!--<record id="day_line_110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00012"/>-->
<!--</record>-->
<!--<record id="day_line_110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00012"/>-->
<!--</record>-->
<!--<record id="day_line_110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00012"/>-->
<!--</record>-->
<!--<record id="day_line_110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00012"/>-->
<!--</record>-->
<!--&lt;!&ndash; 3 &ndash;&gt;-->
<!--<record id="day_00013" model="salon.day">-->
<!--<field name="name">13</field>-->
<!--</record>-->
<!--<record id="day_line_1110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00013"/>-->
<!--</record>-->
<!--<record id="day_line_1110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00013"/>-->
<!--</record>-->
<!--<record id="day_line_1110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00013"/>-->
<!--</record>-->
<!--<record id="day_line_1110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00013"/>-->
<!--</record>-->
<!--<record id="day_line_1110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00013"/>-->
<!--</record>-->
<!--&lt;!&ndash; 4 &ndash;&gt;-->
<!--<record id="day_00014" model="salon.day">-->
<!--<field name="name">14</field>-->
<!--</record>-->
<!--<record id="day_line_11110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00014"/>-->
<!--</record>-->
<!--<record id="day_line_11110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00014"/>-->
<!--</record>-->
<!--<record id="day_line_11110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00014"/>-->
<!--</record>-->
<!--<record id="day_line_11110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00014"/>-->
<!--</record>-->
<!--<record id="day_line_11110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00014"/>-->
<!--</record>-->
<!--&lt;!&ndash; 5 &ndash;&gt;-->
<!--<record id="day_00015" model="salon.day">-->
<!--<field name="name">15</field>-->
<!--</record>-->
<!--<record id="day_line_111110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00015"/>-->
<!--</record>-->
<!--<record id="day_line_111110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00015"/>-->
<!--</record>-->
<!--<record id="day_line_111110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00015"/>-->
<!--</record>-->
<!--<record id="day_line_111110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00015"/>-->
<!--</record>-->
<!--<record id="day_line_111110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00015"/>-->
<!--</record>-->
<!--&lt;!&ndash; 6 &ndash;&gt;-->
<!--<record id="day_00016" model="salon.day">-->
<!--<field name="name">16</field>-->
<!--</record>-->
<!--<record id="day_line_2111110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00016"/>-->
<!--</record>-->
<!--<record id="day_line_2111110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00016"/>-->
<!--</record>-->
<!--<record id="day_line_2111110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00016"/>-->
<!--</record>-->
<!--<record id="day_line_2111110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00016"/>-->
<!--</record>-->
<!--<record id="day_line_2111110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00016"/>-->
<!--</record>-->
<!--&lt;!&ndash; 7 &ndash;&gt;-->
<!--<record id="day_00017" model="salon.day">-->
<!--<field name="name">17</field>-->
<!--</record>-->
<!--<record id="day_line_400101" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00017"/>-->
<!--</record>-->
<!--<record id="day_line_401002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00017"/>-->
<!--</record>-->
<!--<record id="day_line_400103" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00017"/>-->
<!--</record>-->
<!--<record id="day_line_401004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00017"/>-->
<!--</record>-->
<!--<record id="day_line_400105" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00017"/>-->
<!--</record>-->
<!--&lt;!&ndash; 8 &ndash;&gt;-->
<!--<record id="day_00018" model="salon.day">-->
<!--<field name="name">18</field>-->
<!--</record>-->
<!--<record id="day_line_1440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00018"/>-->
<!--</record>-->
<!--<record id="day_line_1440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00018"/>-->
<!--</record>-->
<!--<record id="day_line_1440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00018"/>-->
<!--</record>-->
<!--<record id="day_line_1440004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00018"/>-->
<!--</record>-->
<!--<record id="day_line_1440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00018"/>-->
<!--</record>-->
<!--&lt;!&ndash; 9 &ndash;&gt;-->
<!--<record id="day_00019" model="salon.day">-->
<!--<field name="name">19</field>-->
<!--</record>-->
<!--<record id="day_line_14440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00019"/>-->
<!--</record>-->
<!--<record id="day_line_14440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00019"/>-->
<!--</record>-->
<!--<record id="day_line_14440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00019"/>-->
<!--</record>-->
<!--<record id="day_line_14440004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00019"/>-->
<!--</record>-->
<!--<record id="day_line_14440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00019"/>-->
<!--</record>-->
<!--&lt;!&ndash; 10 &ndash;&gt;-->
<!--<record id="day_00020" model="salon.day">-->
<!--<field name="name">20</field>-->
<!--</record>-->
<!--<record id="day_line_144440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00020"/>-->
<!--</record>-->
<!--<record id="day_line_144440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00020"/>-->
<!--</record>-->
<!--<record id="day_line_144440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00020"/>-->
<!--</record>-->
<!--<record id="day_line_144440004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00020"/>-->
<!--</record>-->
<!--<record id="day_line_144440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00020"/>-->
<!--</record>-->
<!--&lt;!&ndash;===========================================================================&ndash;&gt;-->
<!--&lt;!&ndash;=========================================================================&ndash;&gt;-->
<!--&lt;!&ndash; 1 &ndash;&gt;-->
<!--<record id="day_00021" model="salon.day">-->
<!--<field name="name">21</field>-->
<!--</record>-->
<!--<record id="day_line_w0001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00021"/>-->
<!--</record>-->
<!--<record id="day_line_w0002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00021"/>-->
<!--</record>-->
<!--<record id="day_line_w0003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00021"/>-->
<!--</record>-->
<!--<record id="day_line_w0004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00021"/>-->
<!--</record>-->
<!--<record id="day_line_w0005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00021"/>-->
<!--</record>-->
<!--&lt;!&ndash; 2 &ndash;&gt;-->
<!--<record id="day_00022" model="salon.day">-->
<!--<field name="name">22</field>-->
<!--</record>-->
<!--<record id="day_line_e1w0001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00022"/>-->
<!--</record>-->
<!--<record id="day_line_e10w002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00022"/>-->
<!--</record>-->
<!--<record id="day_line_e100w03" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00022"/>-->
<!--</record>-->
<!--<record id="day_line_e1w0004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00022"/>-->
<!--</record>-->
<!--<record id="day_line_e1w0005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00022"/>-->
<!--</record>-->
<!--&lt;!&ndash; 3 &ndash;&gt;-->
<!--<record id="day_00023" model="salon.day">-->
<!--<field name="name">23</field>-->
<!--</record>-->
<!--<record id="day_line_n11w0001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00023"/>-->
<!--</record>-->
<!--<record id="day_line_n11w0002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00023"/>-->
<!--</record>-->
<!--<record id="day_line_n11w0003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00023"/>-->
<!--</record>-->
<!--<record id="day_line_n11w0004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00023"/>-->
<!--</record>-->
<!--<record id="day_line_n1w10005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00023"/>-->
<!--</record>-->
<!--&lt;!&ndash; 4 &ndash;&gt;-->
<!--<record id="day_00024" model="salon.day">-->
<!--<field name="name">24</field>-->
<!--</record>-->
<!--<record id="day_line_sw1110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00024"/>-->
<!--</record>-->
<!--<record id="day_line_sw1110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00024"/>-->
<!--</record>-->
<!--<record id="day_line_s1110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00024"/>-->
<!--</record>-->
<!--<record id="day_line_s1w110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00024"/>-->
<!--</record>-->
<!--<record id="day_line_sw1110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00024"/>-->
<!--</record>-->
<!--&lt;!&ndash; 5 &ndash;&gt;-->
<!--<record id="day_00025" model="salon.day">-->
<!--<field name="name">25</field>-->
<!--</record>-->
<!--<record id="day_line_x1w11110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00025"/>-->
<!--</record>-->
<!--<record id="day_line_x1w11110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00025"/>-->
<!--</record>-->
<!--<record id="day_line_x11w1110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00025"/>-->
<!--</record>-->
<!--<record id="day_line_x1w11110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00025"/>-->
<!--</record>-->
<!--<record id="day_line_x1w11110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00025"/>-->
<!--</record>-->
<!--&lt;!&ndash; 6 &ndash;&gt;-->
<!--<record id="day_00026" model="salon.day">-->
<!--<field name="name">26</field>-->
<!--</record>-->
<!--<record id="day_line_21w1110001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00026"/>-->
<!--</record>-->
<!--<record id="day_line_2w11110002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00026"/>-->
<!--</record>-->
<!--<record id="day_line_21w1110003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00026"/>-->
<!--</record>-->
<!--<record id="day_line_211w110004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00026"/>-->
<!--</record>-->
<!--<record id="day_line_2w11110005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00026"/>-->
<!--</record>-->
<!--&lt;!&ndash; 7 &ndash;&gt;-->
<!--<record id="day_00027" model="salon.day">-->
<!--<field name="name">27</field>-->
<!--</record>-->
<!--<record id="day_line_w40001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00027"/>-->
<!--</record>-->
<!--<record id="day_line_w40002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00027"/>-->
<!--</record>-->
<!--<record id="day_line_w40003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00027"/>-->
<!--</record>-->
<!--<record id="day_line_w40004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00027"/>-->
<!--</record>-->
<!--<record id="day_line_w40005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00027"/>-->
<!--</record>-->
<!--&lt;!&ndash; 8 &ndash;&gt;-->
<!--<record id="day_00028" model="salon.day">-->
<!--<field name="name">28</field>-->
<!--</record>-->
<!--<record id="day_line_4w40001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00028"/>-->
<!--</record>-->
<!--<record id="day_line_4w40002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00028"/>-->
<!--</record>-->
<!--<record id="day_line_4w40003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00028"/>-->
<!--</record>-->
<!--<record id="day_line_4w40004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00028"/>-->
<!--</record>-->
<!--<record id="day_line_w440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00028"/>-->
<!--</record>-->
<!--&lt;!&ndash; 9 &ndash;&gt;-->
<!--<record id="day_00029" model="salon.day">-->
<!--<field name="name">29</field>-->
<!--</record>-->
<!--<record id="day_line_q44w40001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00029"/>-->
<!--</record>-->
<!--<record id="day_line_q444w0002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00029"/>-->
<!--</record>-->
<!--<record id="day_line_q44w40003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00029"/>-->
<!--</record>-->
<!--<record id="day_line_q44w40004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00029"/>-->
<!--</record>-->
<!--<record id="day_line_q4w440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00029"/>-->
<!--</record>-->
<!--&lt;!&ndash; 10 &ndash;&gt;-->
<!--<record id="day_00030" model="salon.day">-->
<!--<field name="name">30</field>-->
<!--</record>-->
<!--<record id="day_line_44w440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00030"/>-->
<!--</record>-->
<!--<record id="day_line_44w440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00030"/>-->
<!--</record>-->
<!--<record id="day_line_44w440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00030"/>-->
<!--</record>-->
<!--<record id="day_line_444w40004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00030"/>-->
<!--</record>-->
<!--<record id="day_line_44w440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00030"/>-->
<!--</record>-->
<!--&lt;!&ndash;==========================================================================&ndash;&gt;-->
<!--&lt;!&ndash; 31 &ndash;&gt;-->
<!--<record id="day_00031" model="salon.day">-->
<!--<field name="name">31</field>-->
<!--</record>-->
<!--<record id="day_line_p44w440001" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--<field name="day_id" ref="day_00031"/>-->
<!--</record>-->
<!--<record id="day_line_p44w440002" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--<field name="day_id" ref="day_00031"/>-->
<!--</record>-->
<!--<record id="day_line_p44w440003" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--<field name="day_id" ref="day_00031"/>-->
<!--</record>-->
<!--<record id="day_line_p444w40004" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--<field name="day_id" ref="day_00031"/>-->
<!--</record>-->
<!--<record id="day_line_p44w440005" model="salon.day.line">-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--<field name="day_id" ref="day_00031"/>-->
<!--</record>-->
</data>
</openerp>

166
salon_operation/demo/demo_month.xml

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--<record id="month_0001" model="salon.month">-->
<!--<field name="name">Dec 2016</field>-->
<!--<field name="month">01</field>-->
<!--<field name="year">2016</field>-->
<!--</record>-->
<!--<record id="month_line_0001" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0001"/>-->
<!--</record>-->
<!--<record id="month_line_0002" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0002"/>-->
<!--</record>-->
<!--<record id="month_line_0003" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0003"/>-->
<!--</record>-->
<!--<record id="month_line_0004" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0004"/>-->
<!--</record>-->
<!--<record id="month_line_0005" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0005"/>-->
<!--</record>-->
<!--<record id="month_line_0006" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0006"/>-->
<!--</record>-->
<!--<record id="month_line_0007" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0007"/>-->
<!--</record>-->
<!--<record id="month_line_0008" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0008"/>-->
<!--</record>-->
<!--<record id="month_line_0009" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_0009"/>-->
<!--</record>-->
<!--<record id="month_line_00010" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00010"/>-->
<!--</record>-->
<!--&lt;!&ndash; =================================================================== &ndash;&gt;-->
<!--<record id="month_line_00011" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00011"/>-->
<!--</record>-->
<!--<record id="month_line_00012" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00012"/>-->
<!--</record>-->
<!--<record id="month_line_00013" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00013"/>-->
<!--</record>-->
<!--<record id="month_line_00014" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00014"/>-->
<!--</record>-->
<!--<record id="month_line_00015" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00015"/>-->
<!--</record>-->
<!--<record id="month_line_00016" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00016"/>-->
<!--</record>-->
<!--<record id="month_line_00017" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00017"/>-->
<!--</record>-->
<!--<record id="month_line_00018" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00018"/>-->
<!--</record>-->
<!--<record id="month_line_00019" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00019"/>-->
<!--</record>-->
<!--<record id="month_line_00020" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00020"/>-->
<!--</record>-->
<!--&lt;!&ndash; ===========================================================&ndash;&gt;-->
<!--<record id="month_line_000211" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00021"/>-->
<!--</record>-->
<!--<record id="month_line_000212" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00022"/>-->
<!--</record>-->
<!--<record id="month_line_000213" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00023"/>-->
<!--</record>-->
<!--<record id="month_line_000214" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00024"/>-->
<!--</record>-->
<!--<record id="month_line_000215" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00025"/>-->
<!--</record>-->
<!--<record id="month_line_000216" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00026"/>-->
<!--</record>-->
<!--<record id="month_line_000217" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00027"/>-->
<!--</record>-->
<!--<record id="month_line_000218" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00028"/>-->
<!--</record>-->
<!--<record id="month_line_000219" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00029"/>-->
<!--</record>-->
<!--<record id="month_line_000220" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00030"/>-->
<!--</record>-->
<!--&lt;!&ndash;===========================================================&ndash;&gt;-->
<!--<record id="month_line_000220_31" model="salon.month.line">-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--<field name="days" ref="day_00031"/>-->
<!--</record>-->
</data>
</openerp>

473
salon_operation/demo/demo_time.xml

@ -0,0 +1,473 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--<record id="month_0001" model="salon.month">-->
<!--<field name="name">Jan 2016</field>-->
<!--<field name="month">01</field>-->
<!--<field name="year">2016</field>-->
<!--</record>-->
<!--&lt;!&ndash;day 01&ndash;&gt;-->
<!--<record id="day_000_cc1" model="salon.day">-->
<!--<field name="name">01</field>-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--</record>-->
<!--&lt;!&ndash; 09.30 &ndash;&gt;-->
<!--<record id="time_00001" model="salon.period">-->
<!--<field name="name">09.30</field>-->
<!--<field name="day_id" ref="day_000_cc1"/>-->
<!--</record>-->
<!--<record id="time_line_00001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--</record>-->
<!--<record id="time_line_00002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--</record>-->
<!--<record id="time_line_00003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--</record>-->
<!--<record id="time_line_00004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_00001"/>-->
<!--</record>-->
<!--&lt;!&ndash; 11:00 &ndash;&gt;-->
<!--<record id="time_00002" model="salon.period">-->
<!--<field name="name">11.00</field>-->
<!--<field name="day_id" ref="day_000_cc1"/>-->
<!--</record>-->
<!--<record id="time_line_100001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--</record>-->
<!--<record id="time_line_100002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--</record>-->
<!--<record id="time_line_100003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--</record>-->
<!--<record id="time_line_100004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_00002"/>-->
<!--</record>-->
<!--&lt;!&ndash; 13:00 &ndash;&gt;-->
<!--<record id="time_00003" model="salon.period">-->
<!--<field name="name">13.00</field>-->
<!--<field name="period_type">off</field>-->
<!--<field name="off_reason">Lunch Break</field>-->
<!--<field name="day_id" ref="day_000_cc1"/>-->
<!--</record>-->
<!--<record id="time_line_1100001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--</record>-->
<!--<record id="time_line_1100002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--</record>-->
<!--<record id="time_line_1100003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--</record>-->
<!--<record id="time_line_1100004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_00003"/>-->
<!--</record>-->
<!--&lt;!&ndash; 15:00 &ndash;&gt;-->
<!--<record id="time_00004" model="salon.period">-->
<!--<field name="name">15.00</field>-->
<!--<field name="day_id" ref="day_000_cc1"/>-->
<!--</record>-->
<!--<record id="time_line_11100x001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--</record>-->
<!--<record id="time_line_11s100002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--</record>-->
<!--<record id="time_line_1d1100003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--</record>-->
<!--<record id="time_line_11100004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_00004"/>-->
<!--</record>-->
<!--&lt;!&ndash; 19:00&ndash;&gt;-->
<!--<record id="time_00005" model="salon.period">-->
<!--<field name="name">19.00</field>-->
<!--<field name="day_id" ref="day_000_cc1"/>-->
<!--</record>-->
<!--<record id="time_line_111100001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--</record>-->
<!--<record id="time_line_111100002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--</record>-->
<!--<record id="time_line_111100003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--</record>-->
<!--<record id="time_line_111100004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_00005"/>-->
<!--</record>-->
<!--&lt;!&ndash;===================================================================================&ndash;&gt;-->
<!--&lt;!&ndash;day 02&ndash;&gt;-->
<!--<record id="day_000_cc2" model="salon.day">-->
<!--<field name="name">02</field>-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--</record>-->
<!--<record id="time_000011" model="salon.period">-->
<!--<field name="name">09.30</field>-->
<!--<field name="day_id" ref="day_000_cc2"/>-->
<!--</record>-->
<!--<record id="time_line_1000011" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000011"/>-->
<!--</record>-->
<!--<record id="time_line_1000021" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000011"/>-->
<!--</record>-->
<!--<record id="time_line_1000031" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000011"/>-->
<!--</record>-->
<!--<record id="time_line_1000041" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000011"/>-->
<!--</record>-->
<!--&lt;!&ndash; 11:00 &ndash;&gt;-->
<!--<record id="time_000021" model="salon.period">-->
<!--<field name="name">11.00</field>-->
<!--<field name="day_id" ref="day_000_cc2"/>-->
<!--</record>-->
<!--<record id="time_line_hf1000011" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000021"/>-->
<!--</record>-->
<!--<record id="time_line_1xs000021" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000021"/>-->
<!--</record>-->
<!--<record id="time_line_1jh000031" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000021"/>-->
<!--</record>-->
<!--<record id="time_liasdne_1000041" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000021"/>-->
<!--</record>-->
<!--&lt;!&ndash; 13:00 &ndash;&gt;-->
<!--<record id="time_000031" model="salon.period">-->
<!--<field name="name">13.00</field>-->
<!--<field name="period_type">off</field>-->
<!--<field name="off_reason">Lunch Break</field>-->
<!--<field name="day_id" ref="day_000_cc2"/>-->
<!--</record>-->
<!--<record id="time_line_x11000011" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000031"/>-->
<!--</record>-->
<!--<record id="time_line_1100x0021" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000031"/>-->
<!--</record>-->
<!--<record id="time_line_11x000031" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000031"/>-->
<!--</record>-->
<!--<record id="time_linex_11000041" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000031"/>-->
<!--</record>-->
<!--&lt;!&ndash; 15:00 &ndash;&gt;-->
<!--<record id="time_000041" model="salon.period">-->
<!--<field name="name">15.00</field>-->
<!--<field name="day_id" ref="day_000_cc2"/>-->
<!--</record>-->
<!--<record id="time_line_1110x00011" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000041"/>-->
<!--</record>-->
<!--<record id="time_line_111000021" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000041"/>-->
<!--</record>-->
<!--<record id="time_line_111000031" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000041"/>-->
<!--</record>-->
<!--<record id="time_line_111000041" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000041"/>-->
<!--</record>-->
<!--&lt;!&ndash; 19:00&ndash;&gt;-->
<!--<record id="time_000051" model="salon.period">-->
<!--<field name="name">19.00</field>-->
<!--<field name="day_id" ref="day_000_cc2"/>-->
<!--</record>-->
<!--<record id="time_line_1111000011" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000051"/>-->
<!--</record>-->
<!--<record id="time_line_1111000021" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000051"/>-->
<!--</record>-->
<!--<record id="time_line_1111000031" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000051"/>-->
<!--</record>-->
<!--<record id="time_line_1111000041" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000051"/>-->
<!--</record>-->
<!--&lt;!&ndash;=============================================================================================================&ndash;&gt;-->
<!--&lt;!&ndash;day 03&ndash;&gt;-->
<!--<record id="day_000_cc3" model="salon.day">-->
<!--<field name="name">03</field>-->
<!--<field name="month_id" ref="month_0001"/>-->
<!--</record>-->
<!--&lt;!&ndash; 09.30 &ndash;&gt;-->
<!--<record id="time_000061" model="salon.period">-->
<!--<field name="name">09.30</field>-->
<!--<field name="day_id" ref="day_000_cc3"/>-->
<!--</record>-->
<!--<record id="time_line_200001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000061"/>-->
<!--</record>-->
<!--<record id="time_line_df100002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000061"/>-->
<!--</record>-->
<!--<record id="time_line_200003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000061"/>-->
<!--</record>-->
<!--<record id="time_line_200004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000061"/>-->
<!--</record>-->
<!--&lt;!&ndash; 11:00 &ndash;&gt;-->
<!--<record id="time_000062" model="salon.period">-->
<!--<field name="name">11.00</field>-->
<!--<field name="day_id" ref="day_000_cc3"/>-->
<!--</record>-->
<!--<record id="time_line_10sf0001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000062"/>-->
<!--</record>-->
<!--<record id="time_line_1000xc02" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000062"/>-->
<!--</record>-->
<!--<record id="time_line_10dfas0003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000062"/>-->
<!--</record>-->
<!--<record id="time_line_1000dshy04" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000062"/>-->
<!--</record>-->
<!--&lt;!&ndash; 13:00 &ndash;&gt;-->
<!--<record id="time_000063" model="salon.period">-->
<!--<field name="name">13.00</field>-->
<!--<field name="period_type">off</field>-->
<!--<field name="off_reason">Lunch Break</field>-->
<!--<field name="day_id" ref="day_000_cc3"/>-->
<!--</record>-->
<!--<record id="time_line_110x0001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000063"/>-->
<!--</record>-->
<!--<record id="time_line_110x0002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000063"/>-->
<!--</record>-->
<!--<record id="time_line_x1100003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000063"/>-->
<!--</record>-->
<!--<record id="time_line_1x100004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000063"/>-->
<!--</record>-->
<!--&lt;!&ndash; 15:00 &ndash;&gt;-->
<!--<record id="time_000064" model="salon.period">-->
<!--<field name="name">15.00</field>-->
<!--<field name="day_id" ref="day_000_cc3"/>-->
<!--</record>-->
<!--<record id="time_line_11100001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000064"/>-->
<!--</record>-->
<!--<record id="time_line_11100002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000064"/>-->
<!--</record>-->
<!--<record id="time_line_11100003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000064"/>-->
<!--</record>-->
<!--<record id="f" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000064"/>-->
<!--</record>-->
<!--&lt;!&ndash; 19:00&ndash;&gt;-->
<!--<record id="time_000065" model="salon.period">-->
<!--<field name="name">19.00</field>-->
<!--<field name="day_id" ref="day_000_cc3"/>-->
<!--</record>-->
<!--<record id="time_line_11110dsz0001" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0001"/>-->
<!--<field name="period_id" ref="time_000065"/>-->
<!--</record>-->
<!--<record id="time_line_111100k002" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0002"/>-->
<!--<field name="period_id" ref="time_000065"/>-->
<!--</record>-->
<!--<record id="time_line_111100sq003" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0003"/>-->
<!--<field name="period_id" ref="time_000065"/>-->
<!--</record>-->
<!--<record id="time_line_111op100004" model="salon.period.line">-->
<!--<field name="chair_id" ref="chair_0004"/>-->
<!--<field name="period_id" ref="time_000065"/>-->
<!--</record>-->
<!--DEMO GENERAL TIMES -->
<record id="time_gen_0001" model="salon.period">
<field name="name">9.30</field>
</record>
<record id="time_gen_0002" model="salon.period">
<field name="name">11.30</field>
</record>
<record id="time_gen_0003" model="salon.period">
<field name="name">13.00</field>
<field name="period_type">off</field>
<field name="off_reason">Lunch Break</field>
</record>
<record id="time_gen_0004" model="salon.period">
<field name="name">15.30</field>
</record>
<record id="time_gen_0005" model="salon.period">
<field name="name">19.00</field>
</record>
</data>
</openerp>

1
salon_operation/models/__init__.py

@ -0,0 +1 @@
import chair,period,day,month,autofill_month,salon_book, confirm_booking

55
salon_operation/models/autofill_month.py

@ -0,0 +1,55 @@
from openerp import models, fields,api,http,SUPERUSER_ID,_
class AutoFillWizard(models.TransientModel):
_name = 'salon.auto_fill.wizard'
name = fields.Char('Name')
month = fields.Integer('Month')
year = fields.Integer('Year')
no_days = fields.Integer('No of Days')
@api.one
@api.onchange('month')
def onchange_month(self):
days = {1: 31, 2: 29, 3: 31,
4: 30, 5: 31, 6: 30,
7: 31, 8: 31, 9: 30,
10: 31, 11: 30, 12: 31, }.get(self.month)
if days:
self.no_days = days
@api.one
def act_auto_fill(self):
if self.name:
month_name = self.name
else:
month_name = 'Untitled Month'+str(self.id)
times_list = []
for Each_Time in self.env['salon.period'].search([('day_id', '=', None)]):
time_line_list = []
for Each_Chair in self.env['salon.chair'].search([]):
time_line_list.append((0, 0, {'chair_id': Each_Chair.id}))
times_list.append((0, 0, {'name': Each_Time.name,
'period_type': Each_Time.period_type,
'off_reason': Each_Time.off_reason,
'chair_lines': time_line_list}))
days_list = []
for day_count in range(1, self.no_days+1):
day_line = {'name': day_count,
'period_lines': times_list}
days_list.append((0, 0, day_line))
month_values = {'name': month_name,
'month': self.month,
'year': self.year,
'day_lines': days_list}
month_obj = self.pool.get('salon.month')
month_obj.create(self._cr, self._uid, month_values)
@api.one
def close_auto_fill(self):
pass

14
salon_operation/models/chair.py

@ -0,0 +1,14 @@
from openerp import models, fields,api,http,SUPERUSER_ID
class Chairs(models.Model):
_name = 'salon.chair'
name = fields.Char()
related_employee = fields.Many2one('hr.employee', string='Related Employee')
_sql_constraints = [
('name_unique', 'unique(name)', 'This chair is already exist !'),
('related_employee_unique', 'unique(related_employee)', 'This person was reserved for another chair !')]

78
salon_operation/models/confirm_booking.py

@ -0,0 +1,78 @@
from openerp import models, fields,api,http,SUPERUSER_ID,_
from openerp.osv import fields, osv
class SaleOrder(models.Model):
_inherit = 'sale.order'
def action_wait(self, cr, uid, ids, context=None):
context = context or {}
for o in self.browse(cr, uid, ids):
if not any(line.state != 'cancel' for line in o.order_line):
raise osv.except_osv(_('Error!'),_('You cannot confirm a this booking which has no line.'))
noprod = self.test_no_product(cr, uid, o, context)
if (o.order_policy == 'manual') or noprod:
self.write(cr, uid, [o.id], {'state': 'manual', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
# =================================================================
booking_no = o.name
values = self.get_values_booking(cr, uid, ids, context)[0]
for Each_Day in values['month'].day_lines:
if Each_Day.id == values['day'].id:
for Each_Time in Each_Day.period_lines:
if Each_Time.id == values['time'].id:
for Each_Time_Line in Each_Time.chair_lines:
if Each_Time_Line.chair_id.id == values['chair'].id:
print Each_Day.name, Each_Time.name, Each_Time_Line.chair_id.name
if Each_Time_Line.booked:
raise osv.except_osv(_('Booking Failed !'),_('Mismatch in booking, this chair may be already booked.'))
else:
print 'nooooooooooooo'
cr.execute("UPDATE salon_period_line SET partner_id = %s,book_no = %s where period_id = %s and chair_id = %s", (str(values['partner'].id), booking_no, str(values['time'].id), str(values['chair'].id)))
# =================================================================
else:
self.write(cr, uid, [o.id], {'state': 'progress', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
# =================================================================
booking_no = o.name
values = self.get_values_booking(cr, uid, ids, context)[0]
for Each_Day in values['month'].day_lines:
if Each_Day.id == values['day'].id:
for Each_Time in Each_Day.period_lines:
if Each_Time.id == values['time'].id:
for Each_Time_Line in Each_Time.chair_lines:
if Each_Time_Line.chair_id.id == values['chair'].id:
print Each_Day.name, Each_Time.name, Each_Time_Line.chair_id.name
if Each_Time_Line.booked:
raise osv.except_osv(_('Booking Failed !'),_('Mismatch in booking, this chair may be already booked.'))
else:
print 'nooooooooooooo'
cr.execute("UPDATE salon_period_line SET partner_id = %s,book_no = %s where period_id = %s and chair_id = %s", (str(values['partner'].id), booking_no, str(values['time'].id), str(values['chair'].id)))
# =================================================================
self.pool.get('sale.order.line').button_confirm(cr, uid, [x.id for x in o.order_line if x.state != 'cancel'])
return True
@api.one
def get_values_booking(self):
return {'month': self.for_month,
'day': self.for_day,
'time': self.for_time,
'chair': self.char_id,
'partner': self.partner_id}
def action_button_confirm(self, cr, uid, ids, context=None):
# ======================================
# values = self.get_values_booking(cr, uid, ids, context)[0]
# cr.execute("UPDATE salon_period_line SET partner_id = %s where period_id = %s and chair_id = %s", (str(values['partner'].id), str(values['time'].id), str(values['chair'].id)))
# ======================================
if not context:
context = {}
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
self.signal_workflow(cr, uid, ids, 'order_confirm')
if context.get('send_email'):
self.force_quotation_send(cr, uid, ids, context=context)
return True

88
salon_operation/models/day.py

@ -0,0 +1,88 @@
from openerp import models, fields,api,http,SUPERUSER_ID,_
class Days(models.Model):
_name = 'salon.day'
_rec_name = 'display_booked'
name = fields.Integer('Day')
day_type = fields.Selection([('on', 'On'), ('off', 'Off')], default='on', string='On/Off')
off_reason = fields.Char()
period_lines = fields.One2many('salon.period', 'day_id')
month_id = fields.Many2one('salon.month')
@api.one
def _get_booked(self):
count = 0
total = 0
for Each_Line in self.period_lines:
if Each_Line.period_type == 'on':
if Each_Line.booked:
count += 1
total += 1
else:
total += 1
if count < total:
self.booked = False
else:
self.booked = True
booked = fields.Boolean('Fully Booked', compute='_get_booked')
@api.one
def _get_display_booked(self):
count = 0
for Each_Line in self.period_lines:
if Each_Line.booked:
count += 1
if count < len(self.period_lines):
self.display_booked = str(self.name)
else:
self.display_booked = str(self.name) + '- Fully Booked'
display_booked = fields.Char(compute='_get_display_booked')
# @api.one
# def _get_day_stat(self):
# self.day_stat = self.days.day_type
# day_stat = fields.Char(compute='_get_day_stat', string='On/Off')
#
# day_stat = fields.Selection([('on', 'On'), ('off', 'Off')], default='on')
# period_lines = fields.One2many('salon.day.line', 'day_id')
#
# _sql_constraints = [
# ('name_unique', 'unique(name)', 'This day is already exist !')]
#
# @api.one
# def get_day(self):
# if self.name >0 and self.name <= 31:
# return True
# else:
# return False
#
# def check_day_valid(self, cr, uid, ids, context=None):
# return self.get_day(cr, uid, ids, context)[0]
#
# _constraints = [
# (check_day_valid, 'You created an invalid day', ['name']),
# ]
#
#
# class DayLines(models.Model):
# _name = 'salon.day.line'
#
# period_id = fields.Many2one('salon.period', string='Time')
# # @api.one
# # def _get_period_stat(self):
# # self.period_stat = self.period_id.period_type
#
# # period_stat = fields.Char(compute='_get_period_stat', string='On/Off')
# day_id = fields.Many2one('salon.day')
# period_stat = fields.Selection([('on', 'On'), ('off', 'Off')], default='on')
#

112
salon_operation/models/month.py

@ -0,0 +1,112 @@
from openerp import models, fields,api,http,SUPERUSER_ID
class Months(models.Model):
_name = 'salon.month'
_rec_name = 'display_booked'
name = fields.Char('Name')
_sql_constraints = [
('name_unique', 'unique(name)', 'This month is already exist !')]
month = fields.Integer('Month')
year = fields.Integer('Year')
day_lines = fields.One2many('salon.day', 'month_id')
@api.one
def _get_booked(self):
count = 0
total = 0
for Each_Day in self.day_lines:
if Each_Day.day_type == 'on':
if Each_Day.booked:
count += 1
total += 1
else:
total += 1
if count < total:
self.booked = False
else:
self.booked = True
# print 'count', count
# print 'total', total
#
#
# for Each_Day in self.day_lines:
# if Each_Day.booked:
# count += 1
# if count < len(self.day_lines):
# self.booked = False
# else:
# self.booked = True
booked = fields.Boolean('Fully Booked', compute='_get_booked', default=False)
@api.one
def _get_display_booked(self):
count = 0
for Each_Day in self.day_lines:
if Each_Day.booked:
count += 1
if count < len(self.day_lines):
self.display_booked = str(self.name)
else:
self.display_booked = str(self.name) + ' - Fully Booked'
display_booked = fields.Char(compute='_get_display_booked')
@api.one
def _get_month_show(self):
if self.month == 1:
self.month_show = 'JAN'
elif self.month == 2:
self.month_show = 'FEB'
elif self.month == 3:
self.month_show = 'MAR'
elif self.month == 4:
self.month_show = 'APR'
elif self.month == 5:
self.month_show = 'MAY'
elif self.month == 6:
self.month_show = 'JUN'
elif self.month == 7:
self.month_show = 'JUL'
elif self.month == 8:
self.month_show = 'AUG'
elif self.month == 9:
self.month_show = 'SEP'
elif self.month == 10:
self.month_show = 'OCT'
elif self.month == 11:
self.month_show = 'NOV'
elif self.month == 12:
self.month_show = 'DEC'
else:
self.month_show = 'None'
month_show = fields.Char(compute='_get_month_show')
# day_lines = fields.One2many('salon.month.line', 'month_id')
#
#
# class MonthLines(models.Model):
# _name = 'salon.month.line'
#
# days = fields.Many2one('salon.day')
# month_id = fields.Many2one('salon.month')
#
# # @api.one
# # def _get_day_stat(self):
# # self.day_stat = self.days.day_type
# # day_stat = fields.Char(compute='_get_day_stat', string='On/Off')
#
# day_stat = fields.Selection([('on', 'On'), ('off', 'Off')], default='on')

83
salon_operation/models/period.py

@ -0,0 +1,83 @@
from openerp import models, fields,api,http,SUPERUSER_ID,_
from openerp.http import request
class Period(models.Model):
_name = 'salon.period'
_rec_name = 'display_booked'
name = fields.Float('Time')
# _sql_constraints = [
# ('name_unique', 'unique(name)', 'This time is already exist !')]
chair_lines = fields.One2many('salon.period.line', 'period_id')
period_type = fields.Selection([('on', 'On'), ('off', 'Off')], default='on', string='On/Off')
off_reason = fields.Char()
day_id = fields.Many2one('salon.day')
@api.one
def _get_booked(self):
count = 0
for Each_Chair in self.chair_lines:
if Each_Chair.partner_id.id:
count += 1
if count < len(self.chair_lines):
self.booked = False
else:
self.booked = True
booked = fields.Boolean('Fully Booked', compute='_get_booked')
@api.one
def _get_display_booked(self):
count = 0
for Each_Chair in self.chair_lines:
if Each_Chair.partner_id.id:
count += 1
if count < len(self.chair_lines):
self.display_booked = str(self.name)
else:
self.display_booked = str(self.name) + ' -Fully Booked'
display_booked = fields.Char(compute='_get_display_booked')
# @api.onchange('chair_lines')
# def unique_chair(self):
# # GET VALUE TO CHILD CHAIR
# selected_chair = str(request.session.get('onchange_chair_selected'))
# request.session['onchange_chair_selected'] = None
# already_exist = 0
# for Each_Chair in self.chair_lines:
# if Each_Chair.chair_id.name == selected_chair:
# already_exist += 1
# if already_exist >= 2:
# return {'warning': {
# 'title': _('Constraint Error'),
# 'message': 'This chair is already selected for this period',
# }}
class PeriodLine(models.Model):
_name = 'salon.period.line'
chair_id = fields.Many2one('salon.chair', string='Chair')
period_id = fields.Many2one('salon.period')
partner_id = fields.Many2one('res.partner', string='Customer')
@api.one
def _get_related_emp(self):
self.related_employee = self.chair_id.related_employee
related_employee = fields.Many2one('hr.employee', compute='_get_related_emp', string='Dressing Person')
@api.one
def _get_booked(self):
if self.partner_id:
self.booked = True
else:
self.booked = False
booked = fields.Boolean('Booked', compute='_get_booked')
book_no = fields.Char('Booking No', default=' ')

161
salon_operation/models/salon_book.py

@ -0,0 +1,161 @@
from openerp import models, fields,api,http,SUPERUSER_ID, _
from openerp.addons.sale.sale import sale_order
from openerp.http import request
from datetime import timedelta
from dateutil import parser
class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.one
@api.onchange('char_id')
def onchange_chair(self):
self.employee_id = self.char_id.related_employee
@api.one
@api.onchange('employee_id')
def onchange_employee(self):
have_any = False
for Each_Chair in self.env['salon.chair'].search([]):
if self.employee_id == Each_Chair.related_employee:
have_any = Each_Chair
self.char_id = have_any
employee_id = fields.Many2one('hr.employee', 'Dressing Person', store=True)
char_id = fields.Many2one('salon.chair', string='Chair')
state = fields.Selection([
('draft', 'Draft'),
('sent', 'Sent'),
('cancel', 'Cancelled'),
('waiting_date', 'Waiting Schedule'),
('progress', 'Scheduled'),
('manual', 'To Invoice'),
('shipping_except', 'Shipping Exception'),
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
], 'Status', readonly=True, copy=False, help="Gives the status of the quotation or sales order.\
\nThe exception status is automatically set when a cancel operation occurs \
in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception).\nThe 'Waiting Schedule' status is set when the invoice is confirmed\
but waiting for the scheduler to run on the order date.", select=True)
name = fields.Char('Order Reference', required=True, copy=False,
readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, select=True)
order_line = fields.One2many('sale.order.line', 'order_id', 'Items', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, copy=True)
@api.onchange('name')
def onchange_name(self):
request.session['name_schedule'] = self.name
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
if vals.get('name', '/') == '/':
vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'sale.order', context=context) or '/'
# ====================================================================================
vals['name'] = vals['name'].replace('SO', 'NO-')
if str(request.session.get('name_schedule')) == '/':
vals['name'] = str(vals['name'])
else:
vals['name'] = str(vals['name']) + ' ' + str(request.session.get('name_schedule'))
request.session['name_schedule'] = None
# ====================================================================================
if vals.get('partner_id') and any(f not in vals for f in ['partner_invoice_id', 'partner_shipping_id', 'pricelist_id', 'fiscal_position']):
defaults = self.onchange_partner_id(cr, uid, [], vals['partner_id'], context=context)['value']
if not vals.get('fiscal_position') and vals.get('partner_shipping_id'):
delivery_onchange = self.onchange_delivery_id(cr, uid, [], vals.get('company_id'), None, vals['partner_id'], vals.get('partner_shipping_id'), context=context)
defaults.update(delivery_onchange['value'])
vals = dict(defaults, **vals)
ctx = dict(context or {}, mail_create_nolog=True)
new_id = super(sale_order, self).create(cr, uid, vals, context=ctx)
self.message_post(cr, uid, [new_id], body=_("Quotation created"), context=ctx)
return new_id
@api.one
def get_warning(self):
if self.for_month.booked:
self.for_month = False
self.month_state_show = ' ' \
' ' \
'Sorry, this month is fully booked'
else:
self.month_state_show = ''
@api.one
def get_warning_for_day(self):
if self.for_day.booked:
self.for_day = False
self.month_state_show = ' ' \
' ' \
'Sorry, this day is fully booked'
else:
self.month_state_show = ' '
@api.one
def get_warning_for_time(self):
if self.for_time.booked:
self.for_time = False
self.month_state_show = ' ' \
' ' \
'Sorry, this time is fully booked'
else:
self.month_state_show = ' '
@api.one
def get_selected_month(self):
return self.for_month.id
@api.onchange('for_month')
def onchange_month(self):
# ====clear=other=fields=========
self.for_day = False
self.char_id = False
self.for_time = False
# ===============================
self.get_warning()
return {'domain': {'for_day': [('month_id', '=', self.get_selected_month()),
('day_type', '=', 'on'),
('booked', '=', False)]}}
@api.one
def get_selected_day(self):
return self.for_day.id
@api.onchange('for_day')
def onchange_day(self):
# ===Clear=other=fields=======
self.char_id = False
self.for_time = False
# ============================
self.get_warning_for_day()
# for i in self.env['salon.period'].search([]):
# if i.day_id.id == False:
# print 'kkkkkkkk'
selected_day = self.get_selected_day()
if selected_day[0]:
print ''
else:
selected_day = -1
return {'domain': {'for_time': [('day_id', '=', selected_day), ('period_type', '=', 'on')]}}
@api.one
def get_selected_time(self):
return self.for_time
@api.onchange('for_time')
def onchange_time(self):
# ===Clear=other=fields=======
self.char_id = False
# ============================
self.get_warning_for_time()
chair_ids = []
for Each_Period_line in self.get_selected_time()[0].chair_lines:
if Each_Period_line.booked:
chair_ids.append(Each_Period_line.chair_id.id)
return {'domain': {'char_id': [('id', 'not in', chair_ids)]}}
created_domain = [('booked', '=', False)]
for_month = fields.Many2one('salon.month', domain=created_domain)
for_day = fields.Many2one('salon.day', domain=[('month_id', '=', -1)])
for_time = fields.Many2one('salon.period', domain=[('day_id', 'in', [-69]), [('day_id', '!=', None)]])
month_state_show = fields.Char(default=' ')

6
salon_operation/security/ir.model.access.csv

@ -0,0 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_chair_sale_user,access_chair_sale_user,model_salon_chair,base.group_sale_salesman,1,1,1,0
access_month_sale_user,access_month_sale_user,model_salon_month,base.group_sale_salesman,1,1,1,0
access_day_sale_user,access_day_sale_user,model_salon_day,base.group_sale_salesman,1,1,1,0
access_time_sale_user,access_time_sale_user,model_salon_period,base.group_sale_salesman,1,1,1,0
access_time_line_sale_user,access_time_line_sale_user,model_salon_period_line,base.group_sale_salesman,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_chair_sale_user access_chair_sale_user model_salon_chair base.group_sale_salesman 1 1 1 0
3 access_month_sale_user access_month_sale_user model_salon_month base.group_sale_salesman 1 1 1 0
4 access_day_sale_user access_day_sale_user model_salon_day base.group_sale_salesman 1 1 1 0
5 access_time_sale_user access_time_sale_user model_salon_period base.group_sale_salesman 1 1 1 0
6 access_time_line_sale_user access_time_line_sale_user model_salon_period_line base.group_sale_salesman 1 1 1 0

BIN
salon_operation/static/description/Times.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
salon_operation/static/description/auto_fill.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
salon_operation/static/description/booked.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
salon_operation/static/description/chair_under_conf.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
salon_operation/static/description/chairs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
salon_operation/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

129
salon_operation/static/description/index.html

@ -0,0 +1,129 @@
<section class="oe_container">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan">Schedule days for salon</h2>
<h3 class="oe_slogan">Handling more than one chair.</h3>
<div class="oe_span6">
&#x261B; Create chairs.
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="chair_under_conf.png">
</div>
</div>
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="chairs.png">
</div>
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
&#x261B; Click Times menu to create Periods for a day.
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="Times.png">
</div>
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
&#x261B; Schedule a Month using Auto-Filled Month .
It generates a month that filled days, period and chairs automatically.
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="auto_fill.png">
</div>
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
&#x261B; Go to Schedule month menu, you can edit days, time and chair.</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="schedule_month.png">
</div>
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
&#x261B; Mark to identify the month is fully booked.</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="month_booked.png">
</div>
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
&#x261B; 'Schedule booking' menu to perform the booking.
After adding month, days, time, and chair click confirm button.<br/>
To see booked, go to the corresponding month, day, time and chair
</div>
</div>
<div class="oe_row oe_spaced">
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="booked.png">
</div>
</div>
</div>
<!--<div class="oe_span6">-->
<!--<p class='oe_mt32'>-->
<!-- - Create more than Chairs-->
<!--</p>-->
<!--</div>-->
<!--<div class="oe_span6">-->
<!--<div class="oe_demo oe_picture oe_screenshot">-->
<!--<img src="month.png">-->
<!--</div>-->
<!--</div>-->
<!--<div class="oe_span6">-->
<!--<p class='oe_mt32'>-->
<!-- - -->
<!--<br/>-->
<!-- - Set Off days.-->
<!--</p>-->
<!--</div>-->
</section>

BIN
salon_operation/static/description/month.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
salon_operation/static/description/month_booked.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
salon_operation/static/description/schedule_month.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
salon_operation/static/src/img/calendar.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
salon_operation/static/src/img/calendar_icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
salon_operation/static/src/img/tick_gray.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
salon_operation/static/src/img/tick_green_001.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

5
salon_operation/static/src/js/salon.js

@ -0,0 +1,5 @@
$(document).ready(function () {
});

1
salon_operation/sweep/__init__.py

@ -0,0 +1 @@
import sweep

25
salon_operation/sweep/sweep.py

@ -0,0 +1,25 @@
from openerp import models, fields,api,http,SUPERUSER_ID
class ProductTemplate(models.Model):
_inherit = 'product.template'
type = fields.Selection([('consu', 'Consumable'),
('service', 'Service')],
'Product Type',
required=True,
help="Consumable are product where you don't manage stock, a service is a non-material product provided by a company or an individual.",
default='service')
class SaleAdvancePaymentInv(models.Model):
_inherit = "sale.advance.payment.inv"
advance_payment_method =fields.Selection(
[('all', 'Invoice the whole Booking'), ('percentage','Percentage'), ('fixed','Fixed price (deposit)'),
('lines', 'Some Booking lines')],
'What do you want to invoice?', required=True,
help="""Use Invoice the whole sale order to create the final invoice.
Use Percentage to invoice a percentage of the total amount.
Use Fixed Price to invoice a specific amound in advance.
Use Some Order Lines to invoice a selection of the sales order lines.""")

17
salon_operation/sweep/sweep_invoice.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- FORM [INVOICE]-->
<record id="form_account_invoice_form_inherited" model="ir.ui.view">
<field name="name">account.invoice.form.inherited</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook[1]//tree[1]//field[@name='product_id']" position="attributes">
<attribute name="string">Service</attribute>
</xpath>
</field>
</record>
</data>
</openerp>

87
salon_operation/sweep/sweep_menu_act.xml

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--=====================================================-->
<!--SALES [TOP]-->
<!--=====================================================-->
<record model="ir.ui.menu" id="base.menu_base_partner">
<field name="name">Services</field>
</record>
<!--======================================================-->
<!--=====================================================-->
<!--QUOTATIONS-->
<!--=====================================================-->
<menuitem id="sale.menu_sale_quotations" name="TO-BE-DELETED"/>
<delete model="ir.ui.menu" search="[('name','=','TO-BE-DELETED')]"/>
<!--======================================================-->
<!--=====================================================-->
<!--SALE ORDERS-->
<!--=====================================================-->
<record model="ir.ui.menu" id="sale.menu_sale_order">
<field name="name">Schedule Booking</field>
</record>
<record id="sale.action_orders" model="ir.actions.act_window">
<field name="name">Schedule Booking</field>
</record>
<!--=====================================================-->
<!--=====================================================-->
<!--PRODUCTS-->
<!--=====================================================-->
<record model="ir.ui.menu" id="base.menu_product">
<field name="name">Services</field>
</record>
<!--=====================================================-->
<record model="ir.ui.menu" id="product.menu_product_template_action">
<field name="name">Services</field>
</record>
<record id="product.product_template_action" model="ir.actions.act_window">
<field name="name">Services</field>
</record>
<!--=====================================================-->
<!--=====================================================-->
<!--PRODUCT VARIANTS-->
<!--=====================================================-->
<record model="ir.ui.menu" id="product.menu_products">
<field name="name">Service Variants</field>
</record>
<record id="product.product_normal_action_sell" model="ir.actions.act_window">
<field name="name">Service Variants</field>
<field name="context">{"search_default_filter_to_sell":1, "search_default_filter_services":1}</field>
</record>
<!--=====================================================-->
<!--PRODUCT BY CATEGORY-->
<record model="ir.ui.menu" id="product.menu_products_category">
<field name="name">By Category</field>
</record>
<record id="product.product_category_action" model="ir.actions.act_window">
<field name="name">By Category</field>
</record>
<!--=====================================================-->
<!--=====================================================-->
<!--hide SUPPLIERS in Invoicing-->
<!--STEP 1: create a invisible group-->
<record id="make_invisible" model="res.groups">
<field name="name">Invisible (Developer must keep empty users)</field>
</record>
<!--STEP 2: add group to menu-->
<menuitem id="account.menu_finance_payables"
groups="make_invisible"
name="Suppliers"
parent="account.menu_finance"
sequence="3"/>
<!--<delete model="ir.ui.menu" search="[('name','=','TO-BE-DELETED-56321652')]"/>-->
<!--=====================================================-->
<!--=================================-->
<!--HUMAN RESOURCES [TOP]-->
<!--===================================-->
<menuitem name="Employees"
id="hr.menu_hr_root"
groups="base.group_hr_manager,base.group_hr_user,base.group_user"
sequence="90"/>
<!--======================================-->
</data>
</openerp>

38
salon_operation/sweep/sweep_product.xml

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--SEARCH [PRODUCT]-->
<record id="product.product_template_search_view" model="ir.ui.view">
<field name="name">product.template.search</field>
<field name="model">product.template</field>
<field name="arch" type="xml">
<search string="Product">
<field name="name" string="Product" filter_domain="['|',('default_code','ilike',self),('name','ilike',self)]"/>
<filter string="Services"
name="filter_services"
icon="terp-accessories-archiver"
domain="[('type','=','service')]"/>
<filter string="Consumable" name="consumable" icon="terp-accessories-archiver" domain="[('type','=','consu')]" help="Consumable products"/>
<separator/>
<filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
<field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/>
<field string="Product Variant" name="product_variant_ids" filter_domain="['|', ('product_variant_ids.name','ilike',self), ('product_variant_ids.attribute_value_ids.attribute_id.name','ilike',self)]"/>
<field name="company_id"/>
<field name="pricelist_id" widget="selection" context="{'pricelist': self}" filter_domain="[]" groups="product.group_sale_pricelist"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<group expand='0' string='Group by...'>
<filter string='Category' domain="[]" context="{'group_by' : 'categ_id'}"/>
<filter string='Default Unit of Measure' icon="terp-mrp" domain="[]" context="{'group_by' : 'uom_id'}"/>
<filter string='Type' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'type'}"/>
</group>
</search>
</field>
</record>
<!--ACTION [PRODUCTS]-->
<record id="product.product_template_action" model="ir.actions.act_window">
<field name="context">{"search_default_filter_to_sell":1,"search_default_filter_services":1}</field>
</record>
</data>
</openerp>

214
salon_operation/sweep/sweep_sale_order.xml

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--FORM-->
<record model="ir.ui.view" id="sale_order_form_sweep">
<field name="name">sale.order.form.inherited.sweep</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//header[1]/button[@name='action_button_confirm']" position="attributes">
<attribute name="string">Confirm</attribute>
</xpath>
<xpath expr="//header[1]/button[@name='cancel']" position="attributes">
<attribute name="string">Cancel</attribute>
</xpath>
<xpath expr="//header[1]/button[@name='copy_quotation']" position="attributes">
<attribute name="string">New Copy</attribute>
</xpath>
<xpath expr="//header[1]/button[@name='action_cancel']" position="attributes">
<attribute name="string">Cancel</attribute>
</xpath>
<xpath expr="//header[1]/button[@name='invoice_cancel']" position="attributes">
<attribute name="string">Cancel</attribute>
</xpath>
<xpath expr="//h1[1]" position="replace">
<h1>
<label string=" " attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
<label string=" " attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
<field name="name" class="oe_inline" readonly="1"/>
</h1>
</xpath>
<xpath expr="//page[1]" position="attributes">
<attribute name="string">Booking Items</attribute>
</xpath>
<xpath expr="//page[1]//tree[1]//field[@name='product_id']" position="attributes">
<attribute name="string">Service</attribute>
</xpath>
<xpath expr="//page[2]" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
</field>
</record>
<!--TREE-->
<record id="sale.view_order_tree" model="ir.ui.view">
<field name="name">sale.order.tree</field>
<field name="model">sale.order</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<tree string="Sales Orders" fonts="bold:message_unread==True" colors="grey:state=='cancel';blue:state in ('waiting_date','manual');red:state in ('invoice_except','shipping_except')">
<field name="message_unread" invisible="1"/>
<field name="name" string="Booking Number"/>
<field name="date_order"/>
<field name="partner_id"/>
<field name="user_id" string="Scheduled By"/>
<field name="amount_total" sum="Total Tax Included"/>
<field name="state"/>
</tree>
</field>
</record>
<!-- REPORT-->
<template id="report_booking_document">
<t t-call="report.external_layout">
<div class="page">
<div class="oe_structure"/>
<div class="row">
<div class="col-xs-6">
<strong t-if="o.partner_shipping_id == o.partner_invoice_id">Invoice and Customer address:</strong>
<strong t-if="o.partner_shipping_id != o.partner_invoice_id">Invoice address:</strong>
<div t-field="o.partner_invoice_id"
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
<p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></p>
<div t-if="o.partner_shipping_id != o.partner_invoice_id" class="mt8">
<strong>Customer address:</strong>
<div t-field="o.partner_shipping_id"
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
<p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></p>
</div>
</div>
<div class="col-xs-5 col-xs-offset-1">
<div t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}' />
</div>
</div>
<h2>
<span t-if="o.state not in ['draft','sent']">Booking No </span>
<span t-if="o.state in ['draft','sent']">Booking No </span>
<span t-field="o.name"/>
</h2>
<div class="row mt32 mb32" id="informations">
<div t-if="o.client_order_ref" class="col-xs-3">
<strong>Your Reference:</strong>
<p t-field="o.client_order_ref"/>
</div>
<div t-if="o.date_order" class="col-xs-3">
<strong t-if="o.state not in ['draft','sent']">Date:</strong>
<strong t-if="o.state in ['draft','sent']">Date:</strong>
<p t-field="o.date_order"/>
</div>
<div t-if="o.user_id.name" class="col-xs-3">
<strong>Scheduled By: </strong>
<p t-field="o.user_id.name"/></div>
<!--<div t-if="o.payment_term" class="col-xs-3">-->
<!--<strong>Payment Term:</strong>-->
<!--<p t-field="o.payment_term"/>-->
<!--</div>-->
</div>
<table class="table table-condensed">
<thead>
<tr>
<th>Booking Item</th>
<th>Taxes</th>
<th class="text-right">Quantity</th>
<th class="text-right">Unit Price</th>
<th groups="sale.group_discount_per_so_line">Disc.(%)</th>
<th class="text-right">Price</th>
</tr>
</thead>
<tbody class="sale_tbody">
<tr t-foreach="o.order_line" t-as="l">
<td>
<span t-field="l.name"/>
</td>
<td>
<span t-esc="', '.join(map(lambda x: x.name, l.tax_id))"/>
</td>
<td class="text-right">
<span t-field="l.product_uom_qty"/>
<span groups="product.group_uom" t-field="l.product_uom"/>
</td>
<td class="text-right">
<span t-field="l.price_unit"/>
</td>
<td groups="sale.group_discount_per_so_line">
<span t-field="l.discount"/>
</td>
<td class="text-right">
<span t-field="l.price_subtotal"
t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td><strong>Total Without Taxes</strong></td>
<td class="text-right">
<span t-field="o.amount_untaxed"
t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/>
</td>
</tr>
<tr>
<td>Taxes</td>
<td class="text-right">
<span t-field="o.amount_tax"
t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/>
</td>
</tr>
<tr class="border-black">
<td><strong>Total</strong></td>
<td class="text-right">
<span t-field="o.amount_total"
t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/>
</td>
</tr>
</table>
</div>
</div>
<p t-field="o.note" />
<p t-if="o.payment_term.note">
<strong>Payment Term:</strong>
<span t-field="o.payment_term.note"/>
</p>
<div class="oe_structure"/>
</div>
</t>
</template>
<template id="report_booking">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'salon_operation.report_booking_document')"/>
</t>
</t>
</template>
<report
id="sale.report_sale_order"
string="Booking"
model="sale.order"
report_type="qweb-pdf"
file="salon_operation.sweep_sale_order"
name="salon_operation.report_booking"
menu="False"
/>
</data>
</openerp>

13
salon_operation/templates/template.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_frontend" inherit_id="web.assets_backend" name="salon_js_load">
<xpath expr="." position="inside">
<script type="text/javascript" src="/salon_operation/static/src/js/salon.js"></script>
</xpath>
</template>
</data>
</openerp>

56
salon_operation/views/autofill_month.xml

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8" ?>
<openerp>
<data>
<record model="ir.ui.view" id="form_salon_module_month_auto">
<field name="name">salon.month.form.auto</field>
<field name="model">salon.auto_fill.wizard</field>
<field name="arch" type="xml">
<form>
<group>
<group>
<field name="name"/>
</group>
<group>
<field name="month"/>
<field name="no_days"/>
<field name="year"/>
</group>
</group>
<group>
<p class="oe_grey">
Click the button 'Schedule' to generate a month that filled automatically.
</p>
</group>
<group>
<group>
<div style="width:200px">
<button string="Schedule"
name="act_auto_fill"
type="object"
class="oe_highlight"/>
<button string="Close"
name="close_auto_fill"
type="object"/>
</div>
</group>
</group>
</form>
</field>
</record>
<!--ACTION [AUTO MONTH]-->
<record id="action_auto_month" model="ir.actions.act_window">
<field name="name">Auto-Filled Month</field>
<field name="res_model">salon.auto_fill.wizard</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!--MENU [AUTO MONTH]-->
<menuitem id="menu_auto_month"
parent="base.menu_sales"
action="action_auto_month"
sequence="13"/>
</data>
</openerp>

79
salon_operation/views/chair_view.xml

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8" ?>
<openerp>
<data>
<!--KANBAN [CHAIRS]-->
<!--<record id="kanban_salon_module_chair" model="ir.ui.view">-->
<!--<field name="name">salon.chair.kanban</field>-->
<!--<field name="model">salon.chair</field>-->
<!--<field name="arch" type="xml">-->
<!--<kanban>-->
<!--<field name="name"/>-->
<!--<templates>-->
<!--<t t-name="kanban-box">-->
<!--<a type="open">-->
<!--<div style="width: 300px;height:90px;color: navy; background-color: #E0E0E0; border: 2px solid #7C7BAD; padding: 5px;">-->
<!--<center>-->
<!--<h2 style="color:#4C4C4C;">-->
<!--<field name="name"/>-->
<!--</h2>-->
<!--</center>-->
<!--</div>-->
<!--</a>-->
<!--</t>-->
<!--</templates>-->
<!--</kanban>-->
<!--</field>-->
<!--</record>-->
<!--TREE [CHAIRS]-->
<record model="ir.ui.view" id="tree_salon_module_chair">
<field name="name">salon.chair.tree</field>
<field name="model">salon.chair</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="related_employee" required="1"/>
</tree>
</field>
</record>
<!--FORM [CHAIRS]-->
<record model="ir.ui.view" id="form_salon_module_chair">
<field name="name">salon.chair.form</field>
<field name="model">salon.chair</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name" required="1"/>
</group>
<group>
<field name="related_employee" required="1"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!--ACTION [CHAIRS]-->
<record id="action_chairs" model="ir.actions.act_window">
<field name="name">Chairs</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">salon.chair</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{}</field>
<field name="domain">[]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new chair.
</p>
</field>
</record>
<!--MENU [CHAIRS]-->
<menuitem id="menu_chairs"
parent="base.menu_base_config"
action="action_chairs"
sequence="10"/>
</data>
</openerp>

86
salon_operation/views/day_view.xml

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8" ?>
<openerp>
<data>
<!--TREE [DAYS]-->
<record model="ir.ui.view" id="tree_salon_module_day">
<field name="name">salon.day.tree</field>
<field name="model">salon.day</field>
<field name="arch" type="xml">
<tree colors="red:day_type=='off'">
<field name="name"/>
<field name="day_type" widget="radio"/>
<field name="off_reason" attrs="{'invisible':[('day_type','=','on')]}" string="Off Reason"/>
</tree>
</field>
</record>
<!--FORM [DAYS]-->
<record model="ir.ui.view" id="form_salon_module_day">
<field name="name">salon.day.form</field>
<field name="model">salon.day</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name" required="1"/>
<field name="booked"/>
</group>
<group>
<field name="day_type" widget="radio"/>
<field name="off_reason" attrs="{'invisible':[('day_type','=','on')]}" string="Off Reason"/>
</group>
</group>
<notebook>
<page string="Time">
<field name="period_lines" string="Time">
<tree colors="red:period_type=='off'" string="Time">
<field name="name" widget="float_time"/>
<field name="period_type"/>
<field name="off_reason"/>
<field name="booked"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!--ACTION [CHAIRS]-->
<!--<record id="action_day" model="ir.actions.act_window">-->
<!--<field name="name">Days</field>-->
<!--<field name="type">ir.actions.act_window</field>-->
<!--<field name="res_model">salon.day</field>-->
<!--<field name="view_type">form</field>-->
<!--<field name="view_mode">tree,form</field>-->
<!--<field name="context">{}</field>-->
<!--<field name="domain">[]</field>-->
<!--<field name="help" type="html">-->
<!--<p class="oe_view_nocontent_create">-->
<!--Click to create a new day.-->
<!--</p>-->
<!--</field>-->
<!--</record>-->
<!--MENU [DAYS]-->
<!--<menuitem id="menu_day"-->
<!--parent="base.menu_base_config"-->
<!--action="action_day"-->
<!--sequence="14"/>-->
<!--========================== DAY LINES===============================-->
<!--<record model="ir.ui.view" id="form_salon_module_day_line">-->
<!--<field name="name">salon.day.line.form</field>-->
<!--<field name="model">salon.day.line</field>-->
<!--<field name="arch" type="xml">-->
<!--<form>-->
<!--<group>-->
<!--<field name="period_id" required="1"/>-->
<!--<field name="period_stat" widget="radio"/>-->
<!--</group>-->
<!--</form>-->
<!--</field>-->
<!--</record>-->
</data>
</openerp>

137
salon_operation/views/month_view.xml

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8" ?>
<openerp>
<data>
<!--KANBAN [MONTH]-->
<record id="kanban_salon_module_month" model="ir.ui.view">
<field name="name">salon.month.kanban</field>
<field name="model">salon.month</field>
<field name="arch" type="xml">
<kanban>
<field name="month"/>
<field name="year"/>
<field name="name"/>
<templates>
<t t-name="kanban-box">
<a type="open">
<div>
<div style="background-image: url('/salon_operation/static/src/img/calendar.jpg'); width:204px;height:204px;">
<center>
<div style="height:40px">
<div style="height:20px;text-align:right">
<field name="booked" attrs="{'invisible' : True}"/>
<img src="/salon_operation/static/src/img/tick_gray.png"
width="40"
height="40"
attrs="{'invisible' : [('booked', '=', True)]}"/>
<img src="/salon_operation/static/src/img/tick_green_001.png"
width="40"
height="40"
attrs="{'invisible' : [('booked', '=', False)]}"/>
</div>
</div>
<h2 style="color:black;">
<field name="year" />
</h2>
<font size="80" style="color:black;">
<b>
<!--<field name="month"/>-->
<field name="month_show"/>
</b>
</font>
</center>
</div>
</div>
<center>
<field name="name"/>
</center>
</a>
</t>
</templates>
</kanban>
</field>
</record>
<!--TREE [MONTH]-->
<record model="ir.ui.view" id="tree_salon_module_month">
<field name="name">salon.month.tree</field>
<field name="model">salon.month</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="month"/>
<field name="year"/>
</tree>
</field>
</record>
<!--FORM [MONTH]-->
<record model="ir.ui.view" id="form_salon_module_month">
<field name="name">salon.month.form</field>
<field name="model">salon.month</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name" required="1"/>
<field name="display_booked" attrs="{'invisible' : True}"/>
</group>
<group>
<field name="month" required="1"/>
<field name="year" required="1"/>
<field name="booked"/>
</group>
</group>
<notebook>
<page string="Days">
<field name="day_lines" string="Days">
<tree colors="red:day_type=='off'">
<field name="name"/>
<field name="day_type"/>
<field name="off_reason"/>
<field name="booked"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!--ACTION [MONTH]-->
<record id="action_month" model="ir.actions.act_window">
<field name="name">Schedule Month</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">salon.month</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{}</field>
<field name="domain">[]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new month.
</p>
</field>
</record>
<!--MENU [MONTH]-->
<menuitem id="menu_month"
parent="base.menu_sales"
action="action_month"
sequence="12"/>
<!--========================== DAY LINES ==================================-->
<!--<record model="ir.ui.view" id="form_salon_module_month_line">-->
<!--<field name="name">salon.month.line.form</field>-->
<!--<field name="model">salon.month.line</field>-->
<!--<field name="arch" type="xml">-->
<!--<form>-->
<!--<group>-->
<!--<field name="days" required="1"/>-->
<!--<field name="day_stat" widget="radio"/>-->
<!--</group>-->
<!--</form>-->
<!--</field>-->
<!--</record>-->
</data>
</openerp>

112
salon_operation/views/period_view.xml

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8" ?>
<openerp>
<data>
<!--TREE [PERIOD]-->
<record model="ir.ui.view" id="tree_salon_module_period">
<field name="name">salon.period.tree</field>
<field name="model">salon.period</field>
<field name="arch" type="xml">
<tree colors="red:period_type=='off'">
<field name="name" widget="float_time"/>
<field name="period_type"/>
<field name="off_reason" string=" " attrs="{'invisible':[('period_type','=','on')]}"/>
</tree>
</field>
</record>
<!--FORM [PERIOD]-->
<record model="ir.ui.view" id="form_salon_module_period">
<field name="name">salon.period.form</field>
<field name="model">salon.period</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name" required="1" widget="float_time"/>
</group>
<group>
<field name="period_type" widget="radio"/>
<field name="off_reason"
attrs="{'invisible':[('period_type','=','on')]}"
string="Off Reason"/>
<field name="booked"/>
</group>
</group>
<notebook>
<page string="Chairs">
<field name="chair_lines" string="Chairs">
<tree>
<field name="chair_id"/>
<field name="partner_id" string="Booked By"/>
<field name="related_employee"/>
<field name="booked"/>
<field name="book_no"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!--ACTION [PERIOD]-->
<record id="action_period" model="ir.actions.act_window">
<field name="name">Times</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">salon.period</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{}</field>
<field name="domain">[('day_id', '=', None)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new period.
</p>
</field>
</record>
<!--MENU [PERIOD]-->
<menuitem id="menu_period"
parent="base.menu_base_config"
action="action_period"
sequence="12"/>
<!--========================= PERIOD LINE ===============================-->
<!--TREE [PERIOD]-->
<!--<record model="ir.ui.view" id="tree_salon_module_period_line">-->
<!--<field name="name">salon.period.tree</field>-->
<!--<field name="model">salon.period.line</field>-->
<!--<field name="arch" type="xml">-->
<!--<tree>-->
<!--<field name="chair_id"/>-->
<!--</tree>-->
<!--</field>-->
<!--</record>-->
<!--FORM [PERIOD-LINE]-->
<record model="ir.ui.view" id="form_salon_module_period_line">
<field name="name">salon.period.form</field>
<field name="model">salon.period.line</field>
<field name="arch" type="xml">
<form >
<sheet>
<group>
<group>
<field name="partner_id" domain="[('customer','=',True)]"/>
<field name="chair_id"/>
<field name="related_employee"/>
</group>
<group>
<field name="booked"/>
<field name="book_no" readonly="1"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
</data>
</openerp>

118
salon_operation/views/salon_book_view.xml

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--<record id="sale_order_inherited_010521355" model="ir.ui.view">-->
<!--<field name="name">sale.order.book.form.56351</field>-->
<!--<field name="model">sale.order</field>-->
<!--<field name="inherit_id" ref="sale.view_order_form"/>-->
<!--<field name="arch" type="xml">-->
<!--<field name="arch" type="xml">-->
<!--<xpath expr="//field[@name='partner_id']" position="after">-->
<!--<group>-->
<!--<field name="for_month" attrs="{'domain' : [('booked', '=', False)]}"/>-->
<!--<field name="for_month" required="1"-->
<!--string="Month"-->
<!--domain="[('booked','=',False)]"-->
<!--options="{'no_quick_create':True,'no_create_edit':True}"/>-->
<!--<field name="for_day" required="1" string="Day" options="{'no_quick_create':True,'no_create_edit':True}"/>-->
<!--<field name="for_time" required="1" string="Time" options="{'no_quick_create':True,'no_create_edit':True}"/>-->
<!--</group>-->
<!--<group>-->
<!--<div>-->
<!--<label for="char_id" string="Chair"/>-->
<!--<field name="char_id"-->
<!--attrs="{'readonly':[('state','not in',('draft'))]}"-->
<!--required="1"-->
<!--style="line-height: 18px;display: block;min-width: 150px;font-weight: bold !important;"/>-->
<!--<field name="employee_id"-->
<!--readonly="1"-->
<!--attrs="{'readonly':[('state','not in',('draft'))]}"-->
<!--required="1"-->
<!--string=" "/>-->
<!--</div>-->
<!--</group>-->
<!--</xpath>-->
<!--<xpath expr="//field[@name='state']" position="replace">-->
<!--<field name="state"-->
<!--widget="statusbar"-->
<!--statusbar_visible="draft,progress,cancel,done"-->
<!--statusbar_colors='{"invoice_except":"red","waiting_date":"blue"}'/>-->
<!--</xpath>-->
<!--</field>-->
<!--</field>-->
<!--</record>-->
<!--FORM [SALE-ORDER]-->
<record model="ir.ui.view" id="sale_order_form_0055114">
<field name="name">sale.order.form.inherited.book</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//group[1]" position="after">
<field name="month_state_show" readonly="1" style="color:red"/>
<group>
<group>
<field name="for_month" required="1"
string="Month"
attrs="{'readonly':[('state','not in',('draft'))]}"
options="{'no_quick_create':True,'no_create_edit':True}"/>
<field name="for_day"
required="1"
string="Day"
attrs="{'readonly':[('state','not in',('draft'))]}"
options="{'no_quick_create':True,'no_create_edit':True}"/>
<field name="for_time"
required="1"
string="Time"
attrs="{'readonly':[('state','not in',('draft'))]}"
options="{'no_quick_create':True,'no_create_edit':True}"/>
</group>
<group>
<div>
<label for="char_id"
string="Chair"
style="line-height: 18px;display: block;min-width: 150px;font-weight: bold !important;"/>
<field name="char_id"
attrs="{'readonly':[('state','not in',('draft'))]}"
required="1" />
<field name="employee_id"
readonly="1"
attrs="{'readonly':[('state','not in',('draft'))]}"
string=" "/>
</div>
</group>
</group>
</xpath>
<xpath expr="//field[@name='state']" position="replace">
<field name="state"
widget="statusbar"
statusbar_visible="draft,progress,cancel,done"
statusbar_colors='{"invoice_except":"red","waiting_date":"blue"}'/>
</xpath>
</field>
</record>
<!--ACTION [SALE-ORDER]-->
<record id="sale.action_orders" model="ir.actions.act_window">
<field name="name">Sales Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
<field name="context">{}
</field>
<field name="domain">[]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to schedule
</p>
</field>
</record>
</data>
</openerp>
Loading…
Cancel
Save