diff --git a/Modules/Weladee_Attendances/__manifest__.py b/Modules/Weladee_Attendances/__manifest__.py index 7c38992..f2d211b 100644 --- a/Modules/Weladee_Attendances/__manifest__.py +++ b/Modules/Weladee_Attendances/__manifest__.py @@ -1,30 +1,11 @@ -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-Now Tiny SPRL (). All Rights Reserved -# d$ -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## +# -*- coding: utf-8 -*- { "name" : "Weladee attendances module", -"version" : "4.07", +"version" : "5.02", "author" : "Frontware International", "category" : "Generic Modules", 'summary': 'Weladee-Odoo attendances\'s module', -"depends" : ['base', 'hr', 'hr_attendance', 'hr_holidays', 'hr_timesheet'], +"depends" : ['base', 'hr', 'hr_attendance', 'hr_holidays', 'hr_timesheet', 'hr_expense'], "data" :["security/security.xml", "security/ir.model.access.csv", "views/emails/weladee_attendance.xml", @@ -38,10 +19,11 @@ 'views/weladee_holiday_status.xml', "views/weladee_holiday.xml", "views/weladee_company_holiday.xml", + "views/weladee_expense.xml", "views/fw_hr_employee.xml"], "installable" : True, "active" : False, -"website" : "https://www.weladee.com/", +"website" : "https://github.com/Frontware/Weladee-odoo", "description":""" Weladee attendances module ========================== @@ -51,7 +33,9 @@ change log: ------------------------------------ +* 2020-07-01 KPO sync approved expense * 2019-02-18 KPO allow to resync if 1st connection failed. +* 2018-11-14 KPO compatible with odoo12 * 2018-11-14 KPO allow to sync with multiple leave type * 2018-06-12 KPO fixed sync * 2017-07-18 CKA add view synchronous menu For sync Employee, Department, Holiday and attences on Attendances menu @@ -67,15 +51,12 @@ requirement: ------------------------------------ -* grpcio - - pip3 install grpcio * grpc install: - pip3 install --upgrade grpcio==1.7.3 + pip3 install grpcio * imagemagick diff --git a/Modules/Weladee_Attendances/i18n/Weladee_Attendances.pot b/Modules/Weladee_Attendances/i18n/Weladee_Attendances.pot index 1272ee9..88917e4 100644 --- a/Modules/Weladee_Attendances/i18n/Weladee_Attendances.pot +++ b/Modules/Weladee_Attendances/i18n/Weladee_Attendances.pot @@ -23,10 +23,392 @@ msgstr "" #. module: Weladee_Attendances #: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_att_hr_leave_status_form +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.hr_employee_weladee_profile msgid "Weladee" msgstr "" #. module: Weladee_Attendances #: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_holidays_status_weladee_code +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_leave_weladee_code +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_att_hr_leave_search msgid "Weladee Code" msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_department_code +msgid "Code" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_form_email +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_department_email +msgid "Email" +msgstr "" + +#. module: Weladee_Attendances +#: code:addons/Weladee_Attendances/library/weladee_translation.py:5 +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm_ok +#: model_terms:ir.actions.act_window,name:Weladee_Attendances.weladee_attendance_synchronous_act_server +#: model:ir.ui.menu,name:Weladee_Attendances.weladee_attendance_synchronous_menu +#, python-format +msgid "Weladee Synchronization" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid "List" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid " - Positions" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid " - Departments" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid " - Employees" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid " - Holidays" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid " - Attendance" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid "After synchronization, result will send to email address below" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm_ok +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "Close" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid "Synchronize" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_attendance_wizard_frm +msgid "Synchronization started, you will receive email at email address below once it's done." +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.attendance:0 +msgid "Employee checkin record must not duplicate" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.attendance:1 +msgid "Employee checkout record must not duplicate" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_company_holidays_company_holiday_description +msgid "Description" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_company_holidays_company_holiday_date +msgid "Date" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_company_holidays_company_holiday_active +msgid "Active" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_company_holidays_company_holiday_notes +msgid "Notes" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.department:0 +msgid "Department Name can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_taxID +msgid "TaxID" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_nationalID +msgid "NationalID" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_first_name_english +msgid "English First Name" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_last_name_english +msgid "English Last Name" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_first_name_thai +msgid "Thai First Name" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_last_name_thai +msgid "Thai Last Name" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_nick_name_english +msgid "English Nick Name" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_nick_name_thai +msgid "Thai Nick Name" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_weladee_profile +msgid "Weladee Url" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_weladee_id +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_job_weladee_id +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_department_weladee_id +msgid "Weladee ID" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_receive_check_notification +msgid "Receive Check Notification" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_can_request_holiday +msgid "Can Request Holiday" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_hasToFillTimesheet +msgid "Has To Fill Timesheet", track_visibility='always') +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_employee_code +msgid "Employee Code" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_qr_code +msgid "QR Code" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_employee_employee_team +msgid "Team" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.attendance:0 +msgid "Employee code can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.attendance:1 +msgid "Employee name can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.attendance:2 +msgid "Employee working email can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.attendance:3 +msgid "Employee name can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.hr_employee_weladee_profile +#: code:addons/Weladee_Attendances/library/weladee_translation.py:8 +#, python-format +msgid "Weladee Profile" +msgstr "" + +#. module: Weladee_Attendances +#: code:addons/Weladee_Attendances/library/weladee_translation.py:9 +#, python-format +msgid "This employee don't have weladee url." +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.leave.type:0 +msgid "Weladee Holiday Type can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_hr_leave_weladee_sick +msgid "Sick" +msgstr "" + +#. module: Weladee_Attendances +#: sql_constraint:Weladee_Attendances.hr.job:0 +msgid "Name can't duplicate !" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_setting_holiday_status_id +msgid "Default Leave Type" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_holiday_notify_leave_req +msgid "Notify if there is not enough allocated leave request" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_holiday_notify_leave_req_email +msgid "Notified Email" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_api_key +msgid "API Key" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_email +msgid "Email" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_api_database +msgid "API Database" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_api_debug +msgid "Show debug info" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_log_period_unit +msgid "Period unit" +msgstr "" + +#. module: Weladee_Attendances +#: model:ir.model.fields,field_description:Weladee_Attendances.field_weladee_attendance_synchronous_log_period +msgid "Since" +msgstr "" + +#. module: Weladee_Attendances +#: selection:Weladee_Attendances.weladee_attendance.synchronous.setting,log_period:0 +msgid "week(s) ago" +msgstr "" + +#. module: Weladee_Attendances +#: selection:Weladee_Attendances.weladee_attendance.synchronous.setting,log_period:1 +msgid "month(s) ago" +msgstr "" + +#. module: Weladee_Attendances +#: selection:Weladee_Attendances.weladee_attendance.synchronous.setting,log_period:2 +msgid "year(s) ago" +msgstr "" + +#. module: Weladee_Attendances +#: selection:Weladee_Attendances.weladee_attendance.synchronous.setting,log_period:3 +msgid "All" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.hr_employee_weladee_profile +msgid "Other" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.hr_employee_weladee_profile +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "Attendance" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.hr_employee_weladee_profile +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "Holiday" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.hr_employee_weladee_profile +msgid "Timesheet" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "API" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "*Note: you can separate each email by ;" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "Notification" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_setting_wizard +msgid "Save" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.actions.act_window,name:Weladee_Attendances.action_weladee_setting_form +#: model:ir.ui.menu,name:Weladee_Attendances.weladee_setting_menu +msgid "Weladee Settings" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.view_company_holidays_tree +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.view_company_holidays_form +#: model_terms:ir.actions.act_window,name:Weladee_Attendances.action_company_holidays +#: model:ir.ui.menu,name:Weladee_Attendances.menu_company_holidays +msgid "Company holidays" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.actions.act_window,help:Weladee_Attendances.action_company_holidays +msgid "Click here to create a new company holiday" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_att_hr_leave_form +msgid "Allocate Approved" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_att_hr_leave_form_err +msgid "Sorry, please use Weladee to change the holiday" +msgstr "" + +#. module: Weladee_Attendances +#: model_terms:ir.ui.view,arch_db:Weladee_Attendances.weladee_att_hr_leave_cal +msgid "Leave Request" +msgstr "" \ No newline at end of file diff --git a/Modules/Weladee_Attendances/library/weladee_translation.py b/Modules/Weladee_Attendances/library/weladee_translation.py index 031c9ea..cfc4bb6 100644 --- a/Modules/Weladee_Attendances/library/weladee_translation.py +++ b/Modules/Weladee_Attendances/library/weladee_translation.py @@ -1,4 +1,9 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.tools.translate import _ -def allocate_holiday_tag(): return _(' employee tag %s')#4 \ No newline at end of file +def allocate_holiday_tag(): return _(' employee tag %s')#4 +def sync_form_title():return _('Weladee Synchronization')#5 +def sync_error1_title():return _('Caution, the task already started at %s. Please wait...')#6 +def msg_error_company_holiday():return _('%s is already a company holiday.')#7 +def weladee_profile_title():return _("Weladee Profile")#8 +def msg_error_weladee_profile():return _("This employee don't have weladee url.")#9 \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/__init__.py b/Modules/Weladee_Attendances/models/__init__.py index bde1cf8..ebf1f4f 100644 --- a/Modules/Weladee_Attendances/models/__init__.py +++ b/Modules/Weladee_Attendances/models/__init__.py @@ -10,5 +10,7 @@ from . import weladee_employee from . import weladee_holiday_status from . import weladee_holidays +from . import weladee_expense_type +from . import weladee_expense from . import weladee_position from . import weladee_settings diff --git a/Modules/Weladee_Attendances/models/grpcproto/__init__.py b/Modules/Weladee_Attendances/models/grpcproto/__init__.py index f2a2c8b..e13c395 100644 --- a/Modules/Weladee_Attendances/models/grpcproto/__init__.py +++ b/Modules/Weladee_Attendances/models/grpcproto/__init__.py @@ -7,4 +7,6 @@ from . import resource_pb2_grpc from . import resource_pb2 from . import timesheet_pb2_grpc -from . import timesheet_pb2 \ No newline at end of file +from . import timesheet_pb2 +from . import expense_pb2_grpc +from . import expense_pb2 \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/grpcproto/expense_pb2.py b/Modules/Weladee_Attendances/models/grpcproto/expense_pb2.py new file mode 100644 index 0000000..6d1b942 --- /dev/null +++ b/Modules/Weladee_Attendances/models/grpcproto/expense_pb2.py @@ -0,0 +1,870 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: expense.proto + +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +# INSERTED CODE -- DO NOT EDIT +# timestamp : Fri Jul 10 2020 16:53:00 GMT+0700 (Indochina Time) +from . import weladee_pb2 as weladee__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='expense.proto', + package='grpc.weladee.com', + syntax='proto3', + serialized_options=b'\n\035com.frontware.weladee_expenseB\013WeladeeGRPCH\003P\001\220\001\001', + serialized_pb=b'\n\rexpense.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\"\x9d\x01\n\x0b\x45xpenseType\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x16\n\x06\x41\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x12\n\x04Note\x18\x06 \x01(\tR\x04note\"\x1e\n\x0eRecognizedText\x12\x0c\n\x04Text\x18\x01 \x01(\t\"#\n\x07Vendors\x12\x18\n\x07Vendors\x18\x01 \x03(\tR\x07vendors\"\xb1\x07\n\x07\x45xpense\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\n \x01(\x03R\nemployeeid\x12\x16\n\x06Vendor\x18\x0f \x01(\tR\x06vendor\x12 \n\x0b\x44\x65scription\x18\x14 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06Reason\x18\x15 \x01(\tR\x06reason\x12\x12\n\x04Note\x18\x16 \x01(\tR\x04note\x12@\n\x0bPaymentType\x18\x1e \x01(\x0e\x32\x1d.grpc.weladee.com.PaymentTypeR\x0cpayment_type\x12\x16\n\x06\x41mount\x18( \x01(\x03R\x06\x61mount\x12\x36\n\x08\x43urrency\x18- \x01(\x0e\x32\x1a.grpc.weladee.com.CurrencyR\x08\x63urrency\x12\x12\n\x04\x44\x61te\x18\x32 \x01(\x03R\x04\x64\x61te\x12\x12\n\x04IPFS\x18< \x01(\tR\x04ipfs\x12\x14\n\x05TaxID\x18= \x01(\tR\x05taxid\x12\x10\n\x03Ref\x18> \x01(\tR\x03ref\x12\x34\n\x07\x44ocType\x18? \x01(\x0e\x32\x19.grpc.weladee.com.DocTypeR\x08\x64oc_type\x12\x30\n\x06Status\x18\x46 \x01(\x0e\x32\x18.grpc.weladee.com.StatusR\x06status\x12\x18\n\x08\x45xTypeID\x18\x19 \x01(\x03R\x06typeid\x12\x1e\n\nCustomerID\x18\x64 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18n \x01(\x03R\tprojectid\x12\x13\n\x04\x43ode\x18\x82\x01 \x01(\tR\x04\x63ode\x12\x1d\n\tTreatedBy\x18\x07 \x01(\x03R\ntreated_by\x12\x1d\n\tTreatedOn\x18\x08 \x01(\x03R\ntreated_on\x12$\n\x0c\x45mployeeName\x18\x83\x01 \x01(\tR\remployee_name\x12\'\n\rTreatedByName\x18\x84\x01 \x01(\tR\x0ftreated_by_name\x12$\n\x0c\x45mployeeCode\x18\x85\x01 \x01(\tR\remployee_code\x12\"\n\x0bProjectName\x18\x86\x01 \x01(\tR\x0cproject_name\x12$\n\x0c\x43ustomerName\x18\x87\x01 \x01(\tR\rcustomer_name\x12\x1c\n\x08TypeName\x18\x88\x01 \x01(\tR\ttype_name\x12\x14\n\x08\x44ocument\x18\x96\x01 \x01(\x0cR\x01-\x12(\n\x0eRecognizedText\x18\x97\x01 \x01(\tR\x0frecognized_text\"\xb2\x02\n\x0e\x45xpenseRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0e\n\x06TypeID\x18\x19 \x01(\x03\x12(\n\x06Status\x18\x06 \x01(\x0e\x32\x18.grpc.weladee.com.Status\x12\x12\n\nEmployeeID\x18\x05 \x01(\x03\x12\x0e\n\x06TeamID\x18\x08 \x01(\x03\x12\x13\n\x0b\x44\x65scription\x18\t \x01(\t\x12\x0c\n\x04\x46rom\x18\n \x01(\x03\x12\n\n\x02To\x18\x0b \x01(\x03\x12\x1e\n\nCustomerID\x18\x0f \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\x10 \x01(\x03R\tprojectid\x12\x0e\n\x06Offset\x18\x1d \x01(\x03\x12\r\n\x05Limit\x18\x1e \x01(\x03\x12\x18\n\x10\x43\x61nApproveRefuse\x18\x14 \x01(\x08\x12\x10\n\x03XLS\x18\x13 \x01(\x08R\x03xls\"y\n\x12\x45xpenseTypeRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0c\n\x04Name\x18\x03 \x01(\t\x12)\n\x06\x61\x63tive\x18\x05 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x0c\n\x04\x43ode\x18\x08 \x01(\t\x12\x10\n\x03XLS\x18\x13 \x01(\x08R\x03xls\"\xdb\x03\n\x12\x45xpensePreferences\x12\x45\n\x0f\x44\x65\x66\x61ultCurrency\x18\x01 \x01(\x0e\x32\x1a.grpc.weladee.com.CurrencyR\x10\x64\x65\x66\x61ult_currency\x12\x30\n\x12\x41llowMultiCurrency\x18\x02 \x01(\x08R\x14\x61llow_multi_currency\x12&\n\rLinkToProject\x18\x04 \x01(\x08R\x0flink_to_project\x12\x36\n\x15MustDefineDescription\x18\x05 \x01(\x08R\x17must_define_description\x12\x1d\n\tDateAfter\x18\x07 \x01(\rR\ndate_after\x12,\n\x10\x41pproveByManager\x18\x0b \x01(\x08R\x12\x61pprove_by_manager\x12\x35\n\x14\x41pproveByTeamManager\x18\x0c \x01(\x08R\x17\x61pprove_by_team_manager\x12\x31\n\x12\x41pproveByHRManager\x18\r \x01(\x08R\x15\x61pprove_by_hr_manager\x12\x35\n\x14\x41pproveByDeptManager\x18\x0e \x01(\x08R\x17\x61pprove_by_dept_manager*\x1d\n\x07\x44ocType\x12\t\n\x05Photo\x10\x00\x12\x07\n\x03PDF\x10\x01*h\n\x0bPaymentType\x12\x08\n\x04\x43\x61sh\x10\x00\x12\x0e\n\nCreditCard\x10\x01\x12\t\n\x05\x43heck\x10\x02\x12\r\n\tPromptPay\x10\x03\x12\x10\n\x0c\x42\x61nkTransfer\x10\x04\x12\x08\n\x04None\x10\x05\x12\t\n\x05Other\x10\x06*n\n\x06Status\x12\x14\n\x10\x45xpenseStatusNew\x10\x00\x12\x19\n\x15\x45xpenseStatusApproved\x10\x01\x12\x18\n\x14\x45xpenseStatusRefused\x10\x02\x12\x19\n\x15\x45xpenseStatusRefunded\x10\x03*.\n\x08\x43urrency\x12\x07\n\x03THB\x10\x00\x12\x07\n\x03\x45UR\x10\x01\x12\x07\n\x03USD\x10\x02\x12\x07\n\x03SGD\x10\x03\x42\x33\n\x1d\x63om.frontware.weladee_expenseB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\x62\x06proto3' + , + dependencies=[weladee__pb2.DESCRIPTOR,]) + +_DOCTYPE = _descriptor.EnumDescriptor( + name='DocType', + full_name='grpc.weladee.com.DocType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='Photo', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PDF', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=2137, + serialized_end=2166, +) +_sym_db.RegisterEnumDescriptor(_DOCTYPE) + +DocType = enum_type_wrapper.EnumTypeWrapper(_DOCTYPE) +_PAYMENTTYPE = _descriptor.EnumDescriptor( + name='PaymentType', + full_name='grpc.weladee.com.PaymentType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='Cash', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CreditCard', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Check', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PromptPay', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BankTransfer', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='None', index=5, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Other', index=6, number=6, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=2168, + serialized_end=2272, +) +_sym_db.RegisterEnumDescriptor(_PAYMENTTYPE) + +PaymentType = enum_type_wrapper.EnumTypeWrapper(_PAYMENTTYPE) +_STATUS = _descriptor.EnumDescriptor( + name='Status', + full_name='grpc.weladee.com.Status', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ExpenseStatusNew', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ExpenseStatusApproved', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ExpenseStatusRefused', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ExpenseStatusRefunded', index=3, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=2274, + serialized_end=2384, +) +_sym_db.RegisterEnumDescriptor(_STATUS) + +Status = enum_type_wrapper.EnumTypeWrapper(_STATUS) +_CURRENCY = _descriptor.EnumDescriptor( + name='Currency', + full_name='grpc.weladee.com.Currency', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='THB', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EUR', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='USD', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SGD', index=3, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=2386, + serialized_end=2432, +) +_sym_db.RegisterEnumDescriptor(_CURRENCY) + +Currency = enum_type_wrapper.EnumTypeWrapper(_CURRENCY) +Photo = 0 +PDF = 1 +Cash = 0 +CreditCard = 1 +Check = 2 +PromptPay = 3 +BankTransfer = 4 +globals()['None'] = 5 +Other = 6 +ExpenseStatusNew = 0 +ExpenseStatusApproved = 1 +ExpenseStatusRefused = 2 +ExpenseStatusRefunded = 3 +THB = 0 +EUR = 1 +USD = 2 +SGD = 3 + + + +_EXPENSETYPE = _descriptor.Descriptor( + name='ExpenseType', + full_name='grpc.weladee.com.ExpenseType', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.ExpenseType.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='id', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Active', full_name='grpc.weladee.com.ExpenseType.Active', index=1, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='active', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='NameEnglish', full_name='grpc.weladee.com.ExpenseType.NameEnglish', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name_english', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='NameThai', full_name='grpc.weladee.com.ExpenseType.NameThai', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name_thai', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.ExpenseType.Code', index=4, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='code', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Note', full_name='grpc.weladee.com.ExpenseType.Note', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='note', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=51, + serialized_end=208, +) + + +_RECOGNIZEDTEXT = _descriptor.Descriptor( + name='RecognizedText', + full_name='grpc.weladee.com.RecognizedText', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='Text', full_name='grpc.weladee.com.RecognizedText.Text', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=210, + serialized_end=240, +) + + +_VENDORS = _descriptor.Descriptor( + name='Vendors', + full_name='grpc.weladee.com.Vendors', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='Vendors', full_name='grpc.weladee.com.Vendors.Vendors', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='vendors', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=242, + serialized_end=277, +) + + +_EXPENSE = _descriptor.Descriptor( + name='Expense', + full_name='grpc.weladee.com.Expense', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.Expense.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='id', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeID', full_name='grpc.weladee.com.Expense.EmployeeID', index=1, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='employeeid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Vendor', full_name='grpc.weladee.com.Expense.Vendor', index=2, + number=15, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='vendor', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Description', full_name='grpc.weladee.com.Expense.Description', index=3, + number=20, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='description', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Reason', full_name='grpc.weladee.com.Expense.Reason', index=4, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='reason', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Note', full_name='grpc.weladee.com.Expense.Note', index=5, + number=22, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='note', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='PaymentType', full_name='grpc.weladee.com.Expense.PaymentType', index=6, + number=30, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='payment_type', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Amount', full_name='grpc.weladee.com.Expense.Amount', index=7, + number=40, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='amount', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Currency', full_name='grpc.weladee.com.Expense.Currency', index=8, + number=45, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='currency', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Date', full_name='grpc.weladee.com.Expense.Date', index=9, + number=50, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='date', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='IPFS', full_name='grpc.weladee.com.Expense.IPFS', index=10, + number=60, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='ipfs', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TaxID', full_name='grpc.weladee.com.Expense.TaxID', index=11, + number=61, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='taxid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Ref', full_name='grpc.weladee.com.Expense.Ref', index=12, + number=62, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='ref', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='DocType', full_name='grpc.weladee.com.Expense.DocType', index=13, + number=63, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='doc_type', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Status', full_name='grpc.weladee.com.Expense.Status', index=14, + number=70, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='status', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ExTypeID', full_name='grpc.weladee.com.Expense.ExTypeID', index=15, + number=25, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='typeid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='CustomerID', full_name='grpc.weladee.com.Expense.CustomerID', index=16, + number=100, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='customerid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ProjectID', full_name='grpc.weladee.com.Expense.ProjectID', index=17, + number=110, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='projectid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.Expense.Code', index=18, + number=130, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='code', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TreatedBy', full_name='grpc.weladee.com.Expense.TreatedBy', index=19, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='treated_by', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TreatedOn', full_name='grpc.weladee.com.Expense.TreatedOn', index=20, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='treated_on', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeName', full_name='grpc.weladee.com.Expense.EmployeeName', index=21, + number=131, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='employee_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TreatedByName', full_name='grpc.weladee.com.Expense.TreatedByName', index=22, + number=132, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='treated_by_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeCode', full_name='grpc.weladee.com.Expense.EmployeeCode', index=23, + number=133, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='employee_code', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ProjectName', full_name='grpc.weladee.com.Expense.ProjectName', index=24, + number=134, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='project_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='CustomerName', full_name='grpc.weladee.com.Expense.CustomerName', index=25, + number=135, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='customer_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TypeName', full_name='grpc.weladee.com.Expense.TypeName', index=26, + number=136, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='type_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Document', full_name='grpc.weladee.com.Expense.Document', index=27, + number=150, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='-', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='RecognizedText', full_name='grpc.weladee.com.Expense.RecognizedText', index=28, + number=151, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='recognized_text', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=1225, +) + + +_EXPENSEREQUEST = _descriptor.Descriptor( + name='ExpenseRequest', + full_name='grpc.weladee.com.ExpenseRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.ExpenseRequest.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TypeID', full_name='grpc.weladee.com.ExpenseRequest.TypeID', index=1, + number=25, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Status', full_name='grpc.weladee.com.ExpenseRequest.Status', index=2, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeID', full_name='grpc.weladee.com.ExpenseRequest.EmployeeID', index=3, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TeamID', full_name='grpc.weladee.com.ExpenseRequest.TeamID', index=4, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Description', full_name='grpc.weladee.com.ExpenseRequest.Description', index=5, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='From', full_name='grpc.weladee.com.ExpenseRequest.From', index=6, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='To', full_name='grpc.weladee.com.ExpenseRequest.To', index=7, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='CustomerID', full_name='grpc.weladee.com.ExpenseRequest.CustomerID', index=8, + number=15, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='customerid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ProjectID', full_name='grpc.weladee.com.ExpenseRequest.ProjectID', index=9, + number=16, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='projectid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Offset', full_name='grpc.weladee.com.ExpenseRequest.Offset', index=10, + number=29, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Limit', full_name='grpc.weladee.com.ExpenseRequest.Limit', index=11, + number=30, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='CanApproveRefuse', full_name='grpc.weladee.com.ExpenseRequest.CanApproveRefuse', index=12, + number=20, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='XLS', full_name='grpc.weladee.com.ExpenseRequest.XLS', index=13, + number=19, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='xls', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1228, + serialized_end=1534, +) + + +_EXPENSETYPEREQUEST = _descriptor.Descriptor( + name='ExpenseTypeRequest', + full_name='grpc.weladee.com.ExpenseTypeRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.ExpenseTypeRequest.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Name', full_name='grpc.weladee.com.ExpenseTypeRequest.Name', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='active', full_name='grpc.weladee.com.ExpenseTypeRequest.active', index=2, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.ExpenseTypeRequest.Code', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='XLS', full_name='grpc.weladee.com.ExpenseTypeRequest.XLS', index=4, + number=19, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='xls', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1536, + serialized_end=1657, +) + + +_EXPENSEPREFERENCES = _descriptor.Descriptor( + name='ExpensePreferences', + full_name='grpc.weladee.com.ExpensePreferences', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='DefaultCurrency', full_name='grpc.weladee.com.ExpensePreferences.DefaultCurrency', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='default_currency', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='AllowMultiCurrency', full_name='grpc.weladee.com.ExpensePreferences.AllowMultiCurrency', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='allow_multi_currency', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='LinkToProject', full_name='grpc.weladee.com.ExpensePreferences.LinkToProject', index=2, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='link_to_project', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='MustDefineDescription', full_name='grpc.weladee.com.ExpensePreferences.MustDefineDescription', index=3, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='must_define_description', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='DateAfter', full_name='grpc.weladee.com.ExpensePreferences.DateAfter', index=4, + number=7, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='date_after', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByManager', full_name='grpc.weladee.com.ExpensePreferences.ApproveByManager', index=5, + number=11, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByTeamManager', full_name='grpc.weladee.com.ExpensePreferences.ApproveByTeamManager', index=6, + number=12, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_team_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByHRManager', full_name='grpc.weladee.com.ExpensePreferences.ApproveByHRManager', index=7, + number=13, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_hr_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByDeptManager', full_name='grpc.weladee.com.ExpensePreferences.ApproveByDeptManager', index=8, + number=14, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_dept_manager', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1660, + serialized_end=2135, +) + +_EXPENSE.fields_by_name['PaymentType'].enum_type = _PAYMENTTYPE +_EXPENSE.fields_by_name['Currency'].enum_type = _CURRENCY +_EXPENSE.fields_by_name['DocType'].enum_type = _DOCTYPE +_EXPENSE.fields_by_name['Status'].enum_type = _STATUS +_EXPENSEREQUEST.fields_by_name['Status'].enum_type = _STATUS +_EXPENSETYPEREQUEST.fields_by_name['active'].enum_type = weladee__pb2._TRINARY +_EXPENSEPREFERENCES.fields_by_name['DefaultCurrency'].enum_type = _CURRENCY +DESCRIPTOR.message_types_by_name['ExpenseType'] = _EXPENSETYPE +DESCRIPTOR.message_types_by_name['RecognizedText'] = _RECOGNIZEDTEXT +DESCRIPTOR.message_types_by_name['Vendors'] = _VENDORS +DESCRIPTOR.message_types_by_name['Expense'] = _EXPENSE +DESCRIPTOR.message_types_by_name['ExpenseRequest'] = _EXPENSEREQUEST +DESCRIPTOR.message_types_by_name['ExpenseTypeRequest'] = _EXPENSETYPEREQUEST +DESCRIPTOR.message_types_by_name['ExpensePreferences'] = _EXPENSEPREFERENCES +DESCRIPTOR.enum_types_by_name['DocType'] = _DOCTYPE +DESCRIPTOR.enum_types_by_name['PaymentType'] = _PAYMENTTYPE +DESCRIPTOR.enum_types_by_name['Status'] = _STATUS +DESCRIPTOR.enum_types_by_name['Currency'] = _CURRENCY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExpenseType = _reflection.GeneratedProtocolMessageType('ExpenseType', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSETYPE, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.ExpenseType) + }) +_sym_db.RegisterMessage(ExpenseType) + +RecognizedText = _reflection.GeneratedProtocolMessageType('RecognizedText', (_message.Message,), { + 'DESCRIPTOR' : _RECOGNIZEDTEXT, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.RecognizedText) + }) +_sym_db.RegisterMessage(RecognizedText) + +Vendors = _reflection.GeneratedProtocolMessageType('Vendors', (_message.Message,), { + 'DESCRIPTOR' : _VENDORS, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.Vendors) + }) +_sym_db.RegisterMessage(Vendors) + +Expense = _reflection.GeneratedProtocolMessageType('Expense', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSE, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.Expense) + }) +_sym_db.RegisterMessage(Expense) + +ExpenseRequest = _reflection.GeneratedProtocolMessageType('ExpenseRequest', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSEREQUEST, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.ExpenseRequest) + }) +_sym_db.RegisterMessage(ExpenseRequest) + +ExpenseTypeRequest = _reflection.GeneratedProtocolMessageType('ExpenseTypeRequest', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSETYPEREQUEST, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.ExpenseTypeRequest) + }) +_sym_db.RegisterMessage(ExpenseTypeRequest) + +ExpensePreferences = _reflection.GeneratedProtocolMessageType('ExpensePreferences', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSEPREFERENCES, + '__module__' : 'expense_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.ExpensePreferences) + }) +_sym_db.RegisterMessage(ExpensePreferences) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/Modules/Weladee_Attendances/models/grpcproto/expense_pb2_grpc.py b/Modules/Weladee_Attendances/models/grpcproto/expense_pb2_grpc.py new file mode 100644 index 0000000..a894352 --- /dev/null +++ b/Modules/Weladee_Attendances/models/grpcproto/expense_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2.py b/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2.py index 69ae190..688de4d 100644 --- a/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2.py +++ b/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2.py @@ -2,8 +2,6 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: odoo.proto -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection @@ -15,18 +13,21 @@ _sym_db = _symbol_database.Default() +# INSERTED CODE -- DO NOT EDIT +# timestamp : Fri Jul 10 2020 16:53:00 GMT+0700 (Indochina Time) from . import weladee_pb2 as weladee__pb2 from . import timesheet_pb2 as timesheet__pb2 +from . import expense_pb2 as expense__pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='odoo.proto', package='grpc.weladee.com', syntax='proto3', - serialized_options=_b('\n\032com.frontware.weladee_odooB\013WeladeeGRPCH\003P\001\220\001\001'), - serialized_pb=_b('\n\nodoo.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\x1a\x0ftimesheet.proto\"5\n\x11\x41ttendanceRequest\x12\x0c\n\x04\x46rom\x18\x02 \x01(\x03\x12\x12\n\nEmployeeID\x18\x03 \x01(\x03\"_\n\x0bHolidayOdoo\x12*\n\x07Holiday\x18\x01 \x01(\x0b\x32\x19.grpc.weladee.com.Holiday\x12$\n\x04odoo\x18\x02 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\"_\n\x0bProjectOdoo\x12*\n\x07Project\x18\x01 \x01(\x0b\x32\x19.grpc.weladee.com.Project\x12$\n\x04odoo\x18\x02 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\"V\n\x0cLogEventOdoo\x12,\n\x08logevent\x18\x02 \x01(\x0b\x32\x1a.grpc.weladee.com.LogEvent\x12\x18\n\x10\x65mployee_odoo_id\x18\x03 \x01(\x03\"S\n\x0bOdooRequest\x12\x10\n\x02ID\x18\x01 \x01(\x03H\x00R\x02id\x12\x1a\n\x07odoo_id\x18\x02 \x01(\x03H\x00R\x07odoo_id\x12\r\n\x05\x46orce\x18\x03 \x01(\x08\x42\x07\n\x05query\"\x87\x01\n\x0c\x45mployeeOdoo\x12$\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\x12,\n\x08\x65mployee\x18\x02 \x01(\x0b\x32\x1a.grpc.weladee.com.Employee\x12\r\n\x05\x42\x61\x64ge\x18\x03 \x01(\t\x12\x14\n\x0c\x44\x65partmentID\x18\x04 \x01(\x03\"v\n\x15HolidayAllocationOdoo\x12$\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\x12\x37\n\nallocation\x18\x02 \x01(\x0b\x32#.grpc.weladee.com.HolidayAllocation\"h\n\x0e\x44\x65partmentOdoo\x12$\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\x12\x30\n\ndepartment\x18\x02 \x01(\x0b\x32\x1c.grpc.weladee.com.Department\"r\n\x0cPositionOdoo\x12*\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odooR\x04odoo\x12\x36\n\x08position\x18\x02 \x01(\x0b\x32\x1a.grpc.weladee.com.PositionR\x08position\"\xaf\x01\n\x04odoo\x12\x18\n\x07odoo_id\x18\x01 \x01(\x03R\x07odoo_id\x12(\n\x0fodoo_created_on\x18\x02 \x01(\x03R\x0fodoo_created_on\x12&\n\x0eodoo_synced_on\x18\x03 \x01(\x03R\x0eodoo_synced_on\x12\x1c\n\todoo_note\x18\x04 \x01(\tR\todoo_note\x12\x1d\n\x07\x64\x65leted\x18\x05 \x01(\x08R\x0codoo_deleted2\x97\t\n\x04Odoo\x12I\n\x0eUpdateEmployee\x12\x1e.grpc.weladee.com.EmployeeOdoo\x1a\x17.grpc.weladee.com.Empty\x12O\n\x0cGetEmployees\x12\x1d.grpc.weladee.com.OdooRequest\x1a\x1e.grpc.weladee.com.EmployeeOdoo0\x01\x12J\n\x0b\x41\x64\x64\x45mployee\x12\x1e.grpc.weladee.com.EmployeeOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12U\n\x13GetEmployeeHolidays\x12\x1d.grpc.weladee.com.OdooRequest\x1a\x1d.grpc.weladee.com.HolidayOdoo0\x01\x12G\n\x0bGetHolidays\x12\x17.grpc.weladee.com.Empty\x1a\x1d.grpc.weladee.com.HolidayOdoo0\x01\x12H\n\nAddHoliday\x12\x1d.grpc.weladee.com.HolidayOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12\x45\n\x0b\x44ropHoliday\x12\x1d.grpc.weladee.com.OdooRequest\x1a\x17.grpc.weladee.com.Empty\x12G\n\rUpdateHoliday\x12\x1d.grpc.weladee.com.HolidayOdoo\x1a\x17.grpc.weladee.com.Empty\x12S\n\x0eGetDepartments\x12\x1d.grpc.weladee.com.OdooRequest\x1a .grpc.weladee.com.DepartmentOdoo0\x01\x12N\n\rAddDepartment\x12 .grpc.weladee.com.DepartmentOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12M\n\x10UpdateDepartment\x12 .grpc.weladee.com.DepartmentOdoo\x1a\x17.grpc.weladee.com.Empty\x12Y\n\x10GetNewAttendance\x12#.grpc.weladee.com.AttendanceRequest\x1a\x1e.grpc.weladee.com.LogEventOdoo0\x01\x12I\n\x0cGetPositions\x12\x17.grpc.weladee.com.Empty\x1a\x1e.grpc.weladee.com.PositionOdoo0\x01\x12J\n\x0b\x41\x64\x64Position\x12\x1e.grpc.weladee.com.PositionOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12G\n\x0bGetProjects\x12\x17.grpc.weladee.com.Empty\x1a\x1d.grpc.weladee.com.ProjectOdoo0\x01\x42\x30\n\x1a\x63om.frontware.weladee_odooB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\x62\x06proto3') + serialized_options=b'\n\032com.frontware.weladee_odooB\013WeladeeGRPCH\003P\001\220\001\001', + serialized_pb=b'\n\nodoo.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\x1a\x0ftimesheet.proto\x1a\rexpense.proto\"5\n\x11\x41ttendanceRequest\x12\x0c\n\x04\x46rom\x18\x02 \x01(\x03\x12\x12\n\nEmployeeID\x18\x03 \x01(\x03\"_\n\x0bHolidayOdoo\x12*\n\x07Holiday\x18\x01 \x01(\x0b\x32\x19.grpc.weladee.com.Holiday\x12$\n\x04odoo\x18\x02 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\"_\n\x0bProjectOdoo\x12*\n\x07Project\x18\x01 \x01(\x0b\x32\x19.grpc.weladee.com.Project\x12$\n\x04odoo\x18\x02 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\"_\n\x0b\x45xpenseOdoo\x12*\n\x07\x45xpense\x18\x01 \x01(\x0b\x32\x19.grpc.weladee.com.Expense\x12$\n\x04odoo\x18\x02 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\"k\n\x0f\x45xpenseTypeOdoo\x12\x32\n\x0b\x45xpenseType\x18\x01 \x01(\x0b\x32\x1d.grpc.weladee.com.ExpenseType\x12$\n\x04odoo\x18\x02 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\"V\n\x0cLogEventOdoo\x12,\n\x08logevent\x18\x02 \x01(\x0b\x32\x1a.grpc.weladee.com.LogEvent\x12\x18\n\x10\x65mployee_odoo_id\x18\x03 \x01(\x03\"S\n\x0bOdooRequest\x12\x10\n\x02ID\x18\x01 \x01(\x03H\x00R\x02id\x12\x1a\n\x07odoo_id\x18\x02 \x01(\x03H\x00R\x07odoo_id\x12\r\n\x05\x46orce\x18\x03 \x01(\x08\x42\x07\n\x05query\"\x87\x01\n\x0c\x45mployeeOdoo\x12$\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\x12,\n\x08\x65mployee\x18\x02 \x01(\x0b\x32\x1a.grpc.weladee.com.Employee\x12\r\n\x05\x42\x61\x64ge\x18\x03 \x01(\t\x12\x14\n\x0c\x44\x65partmentID\x18\x04 \x01(\x03\"v\n\x15HolidayAllocationOdoo\x12$\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\x12\x37\n\nallocation\x18\x02 \x01(\x0b\x32#.grpc.weladee.com.HolidayAllocation\"h\n\x0e\x44\x65partmentOdoo\x12$\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odoo\x12\x30\n\ndepartment\x18\x02 \x01(\x0b\x32\x1c.grpc.weladee.com.Department\"r\n\x0cPositionOdoo\x12*\n\x04odoo\x18\x01 \x01(\x0b\x32\x16.grpc.weladee.com.odooR\x04odoo\x12\x36\n\x08position\x18\x02 \x01(\x0b\x32\x1a.grpc.weladee.com.PositionR\x08position\"\xaf\x01\n\x04odoo\x12\x18\n\x07odoo_id\x18\x01 \x01(\x03R\x07odoo_id\x12(\n\x0fodoo_created_on\x18\x02 \x01(\x03R\x0fodoo_created_on\x12&\n\x0eodoo_synced_on\x18\x03 \x01(\x03R\x0eodoo_synced_on\x12\x1c\n\todoo_note\x18\x04 \x01(\tR\todoo_note\x12\x1d\n\x07\x64\x65leted\x18\x05 \x01(\x08R\x0codoo_deleted2\xb1\n\n\x04Odoo\x12I\n\x0eUpdateEmployee\x12\x1e.grpc.weladee.com.EmployeeOdoo\x1a\x17.grpc.weladee.com.Empty\x12O\n\x0cGetEmployees\x12\x1d.grpc.weladee.com.OdooRequest\x1a\x1e.grpc.weladee.com.EmployeeOdoo0\x01\x12J\n\x0b\x41\x64\x64\x45mployee\x12\x1e.grpc.weladee.com.EmployeeOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12U\n\x13GetEmployeeHolidays\x12\x1d.grpc.weladee.com.OdooRequest\x1a\x1d.grpc.weladee.com.HolidayOdoo0\x01\x12G\n\x0bGetHolidays\x12\x17.grpc.weladee.com.Empty\x1a\x1d.grpc.weladee.com.HolidayOdoo0\x01\x12H\n\nAddHoliday\x12\x1d.grpc.weladee.com.HolidayOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12\x45\n\x0b\x44ropHoliday\x12\x1d.grpc.weladee.com.OdooRequest\x1a\x17.grpc.weladee.com.Empty\x12G\n\rUpdateHoliday\x12\x1d.grpc.weladee.com.HolidayOdoo\x1a\x17.grpc.weladee.com.Empty\x12S\n\x0eGetDepartments\x12\x1d.grpc.weladee.com.OdooRequest\x1a .grpc.weladee.com.DepartmentOdoo0\x01\x12N\n\rAddDepartment\x12 .grpc.weladee.com.DepartmentOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12M\n\x10UpdateDepartment\x12 .grpc.weladee.com.DepartmentOdoo\x1a\x17.grpc.weladee.com.Empty\x12Y\n\x10GetNewAttendance\x12#.grpc.weladee.com.AttendanceRequest\x1a\x1e.grpc.weladee.com.LogEventOdoo0\x01\x12I\n\x0cGetPositions\x12\x17.grpc.weladee.com.Empty\x1a\x1e.grpc.weladee.com.PositionOdoo0\x01\x12J\n\x0b\x41\x64\x64Position\x12\x1e.grpc.weladee.com.PositionOdoo\x1a\x1b.grpc.weladee.com.AddResult\x12G\n\x0bGetProjects\x12\x17.grpc.weladee.com.Empty\x1a\x1d.grpc.weladee.com.ProjectOdoo0\x01\x12G\n\x0bGetExpenses\x12\x17.grpc.weladee.com.Empty\x1a\x1d.grpc.weladee.com.ExpenseOdoo0\x01\x12O\n\x0fGetExpenseTypes\x12\x17.grpc.weladee.com.Empty\x1a!.grpc.weladee.com.ExpenseTypeOdoo0\x01\x42\x30\n\x1a\x63om.frontware.weladee_odooB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\x62\x06proto3' , - dependencies=[weladee__pb2.DESCRIPTOR,timesheet__pb2.DESCRIPTOR,]) + dependencies=[weladee__pb2.DESCRIPTOR,timesheet__pb2.DESCRIPTOR,expense__pb2.DESCRIPTOR,]) @@ -64,8 +65,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=64, - serialized_end=117, + serialized_start=79, + serialized_end=132, ) @@ -102,8 +103,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=119, - serialized_end=214, + serialized_start=134, + serialized_end=229, ) @@ -140,8 +141,84 @@ extension_ranges=[], oneofs=[ ], - serialized_start=216, - serialized_end=311, + serialized_start=231, + serialized_end=326, +) + + +_EXPENSEODOO = _descriptor.Descriptor( + name='ExpenseOdoo', + full_name='grpc.weladee.com.ExpenseOdoo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='Expense', full_name='grpc.weladee.com.ExpenseOdoo.Expense', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='odoo', full_name='grpc.weladee.com.ExpenseOdoo.odoo', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=328, + serialized_end=423, +) + + +_EXPENSETYPEODOO = _descriptor.Descriptor( + name='ExpenseTypeOdoo', + full_name='grpc.weladee.com.ExpenseTypeOdoo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ExpenseType', full_name='grpc.weladee.com.ExpenseTypeOdoo.ExpenseType', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='odoo', full_name='grpc.weladee.com.ExpenseTypeOdoo.odoo', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=425, + serialized_end=532, ) @@ -178,8 +255,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=313, - serialized_end=399, + serialized_start=534, + serialized_end=620, ) @@ -226,8 +303,8 @@ name='query', full_name='grpc.weladee.com.OdooRequest.query', index=0, containing_type=None, fields=[]), ], - serialized_start=401, - serialized_end=484, + serialized_start=622, + serialized_end=705, ) @@ -255,7 +332,7 @@ _descriptor.FieldDescriptor( name='Badge', full_name='grpc.weladee.com.EmployeeOdoo.Badge', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -278,8 +355,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=487, - serialized_end=622, + serialized_start=708, + serialized_end=843, ) @@ -316,8 +393,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=624, - serialized_end=742, + serialized_start=845, + serialized_end=963, ) @@ -354,8 +431,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=744, - serialized_end=848, + serialized_start=965, + serialized_end=1069, ) @@ -392,8 +469,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=850, - serialized_end=964, + serialized_start=1071, + serialized_end=1185, ) @@ -428,7 +505,7 @@ _descriptor.FieldDescriptor( name='odoo_note', full_name='grpc.weladee.com.odoo.odoo_note', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='odoo_note', file=DESCRIPTOR), @@ -451,14 +528,18 @@ extension_ranges=[], oneofs=[ ], - serialized_start=967, - serialized_end=1142, + serialized_start=1188, + serialized_end=1363, ) _HOLIDAYODOO.fields_by_name['Holiday'].message_type = weladee__pb2._HOLIDAY _HOLIDAYODOO.fields_by_name['odoo'].message_type = _ODOO _PROJECTODOO.fields_by_name['Project'].message_type = timesheet__pb2._PROJECT _PROJECTODOO.fields_by_name['odoo'].message_type = _ODOO +_EXPENSEODOO.fields_by_name['Expense'].message_type = expense__pb2._EXPENSE +_EXPENSEODOO.fields_by_name['odoo'].message_type = _ODOO +_EXPENSETYPEODOO.fields_by_name['ExpenseType'].message_type = expense__pb2._EXPENSETYPE +_EXPENSETYPEODOO.fields_by_name['odoo'].message_type = _ODOO _LOGEVENTODOO.fields_by_name['logevent'].message_type = weladee__pb2._LOGEVENT _ODOOREQUEST.oneofs_by_name['query'].fields.append( _ODOOREQUEST.fields_by_name['ID']) @@ -477,6 +558,8 @@ DESCRIPTOR.message_types_by_name['AttendanceRequest'] = _ATTENDANCEREQUEST DESCRIPTOR.message_types_by_name['HolidayOdoo'] = _HOLIDAYODOO DESCRIPTOR.message_types_by_name['ProjectOdoo'] = _PROJECTODOO +DESCRIPTOR.message_types_by_name['ExpenseOdoo'] = _EXPENSEODOO +DESCRIPTOR.message_types_by_name['ExpenseTypeOdoo'] = _EXPENSETYPEODOO DESCRIPTOR.message_types_by_name['LogEventOdoo'] = _LOGEVENTODOO DESCRIPTOR.message_types_by_name['OdooRequest'] = _ODOOREQUEST DESCRIPTOR.message_types_by_name['EmployeeOdoo'] = _EMPLOYEEODOO @@ -507,6 +590,20 @@ }) _sym_db.RegisterMessage(ProjectOdoo) +ExpenseOdoo = _reflection.GeneratedProtocolMessageType('ExpenseOdoo', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSEODOO, + '__module__' : 'odoo_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.ExpenseOdoo) + }) +_sym_db.RegisterMessage(ExpenseOdoo) + +ExpenseTypeOdoo = _reflection.GeneratedProtocolMessageType('ExpenseTypeOdoo', (_message.Message,), { + 'DESCRIPTOR' : _EXPENSETYPEODOO, + '__module__' : 'odoo_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.ExpenseTypeOdoo) + }) +_sym_db.RegisterMessage(ExpenseTypeOdoo) + LogEventOdoo = _reflection.GeneratedProtocolMessageType('LogEventOdoo', (_message.Message,), { 'DESCRIPTOR' : _LOGEVENTODOO, '__module__' : 'odoo_pb2' @@ -565,8 +662,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=1145, - serialized_end=2320, + serialized_start=1366, + serialized_end=2695, methods=[ _descriptor.MethodDescriptor( name='UpdateEmployee', @@ -703,6 +800,24 @@ output_type=_PROJECTODOO, serialized_options=None, ), + _descriptor.MethodDescriptor( + name='GetExpenses', + full_name='grpc.weladee.com.Odoo.GetExpenses', + index=15, + containing_service=None, + input_type=weladee__pb2._EMPTY, + output_type=_EXPENSEODOO, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetExpenseTypes', + full_name='grpc.weladee.com.Odoo.GetExpenseTypes', + index=16, + containing_service=None, + input_type=weladee__pb2._EMPTY, + output_type=_EXPENSETYPEODOO, + serialized_options=None, + ), ]) _sym_db.RegisterServiceDescriptor(_ODOO) diff --git a/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2_grpc.py b/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2_grpc.py index 93a953d..5c13561 100644 --- a/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2_grpc.py +++ b/Modules/Weladee_Attendances/models/grpcproto/odoo_pb2_grpc.py @@ -2,289 +2,605 @@ import grpc from . import odoo_pb2 as odoo__pb2 +# INSERTED CODE -- DO NOT EDIT +# timestamp : Fri Jul 10 2020 16:53:00 GMT+0700 (Indochina Time) from . import weladee_pb2 as weladee__pb2 class OdooStub(object): - """* - List of available functions for Odoo only. - Don't forget to authenticate yourself with metadata "authorization" with api_key - """ + """* + List of available functions for Odoo only. + Don't forget to authenticate yourself with metadata "authorization" with api_key + """ - def __init__(self, channel): - """Constructor. + def __init__(self, channel): + """Constructor. - Args: - channel: A grpc.Channel. - """ - self.UpdateEmployee = channel.unary_unary( - '/grpc.weladee.com.Odoo/UpdateEmployee', - request_serializer=odoo__pb2.EmployeeOdoo.SerializeToString, - response_deserializer=weladee__pb2.Empty.FromString, - ) - self.GetEmployees = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetEmployees', - request_serializer=odoo__pb2.OdooRequest.SerializeToString, - response_deserializer=odoo__pb2.EmployeeOdoo.FromString, - ) - self.AddEmployee = channel.unary_unary( - '/grpc.weladee.com.Odoo/AddEmployee', - request_serializer=odoo__pb2.EmployeeOdoo.SerializeToString, - response_deserializer=weladee__pb2.AddResult.FromString, - ) - self.GetEmployeeHolidays = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetEmployeeHolidays', - request_serializer=odoo__pb2.OdooRequest.SerializeToString, - response_deserializer=odoo__pb2.HolidayOdoo.FromString, - ) - self.GetHolidays = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetHolidays', - request_serializer=weladee__pb2.Empty.SerializeToString, - response_deserializer=odoo__pb2.HolidayOdoo.FromString, - ) - self.AddHoliday = channel.unary_unary( - '/grpc.weladee.com.Odoo/AddHoliday', - request_serializer=odoo__pb2.HolidayOdoo.SerializeToString, - response_deserializer=weladee__pb2.AddResult.FromString, - ) - self.DropHoliday = channel.unary_unary( - '/grpc.weladee.com.Odoo/DropHoliday', - request_serializer=odoo__pb2.OdooRequest.SerializeToString, - response_deserializer=weladee__pb2.Empty.FromString, - ) - self.UpdateHoliday = channel.unary_unary( - '/grpc.weladee.com.Odoo/UpdateHoliday', - request_serializer=odoo__pb2.HolidayOdoo.SerializeToString, - response_deserializer=weladee__pb2.Empty.FromString, - ) - self.GetDepartments = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetDepartments', - request_serializer=odoo__pb2.OdooRequest.SerializeToString, - response_deserializer=odoo__pb2.DepartmentOdoo.FromString, - ) - self.AddDepartment = channel.unary_unary( - '/grpc.weladee.com.Odoo/AddDepartment', - request_serializer=odoo__pb2.DepartmentOdoo.SerializeToString, - response_deserializer=weladee__pb2.AddResult.FromString, - ) - self.UpdateDepartment = channel.unary_unary( - '/grpc.weladee.com.Odoo/UpdateDepartment', - request_serializer=odoo__pb2.DepartmentOdoo.SerializeToString, - response_deserializer=weladee__pb2.Empty.FromString, - ) - self.GetNewAttendance = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetNewAttendance', - request_serializer=odoo__pb2.AttendanceRequest.SerializeToString, - response_deserializer=odoo__pb2.LogEventOdoo.FromString, - ) - self.GetPositions = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetPositions', - request_serializer=weladee__pb2.Empty.SerializeToString, - response_deserializer=odoo__pb2.PositionOdoo.FromString, - ) - self.AddPosition = channel.unary_unary( - '/grpc.weladee.com.Odoo/AddPosition', - request_serializer=odoo__pb2.PositionOdoo.SerializeToString, - response_deserializer=weladee__pb2.AddResult.FromString, - ) - self.GetProjects = channel.unary_stream( - '/grpc.weladee.com.Odoo/GetProjects', - request_serializer=weladee__pb2.Empty.SerializeToString, - response_deserializer=odoo__pb2.ProjectOdoo.FromString, - ) + Args: + channel: A grpc.Channel. + """ + self.UpdateEmployee = channel.unary_unary( + '/grpc.weladee.com.Odoo/UpdateEmployee', + request_serializer=odoo__pb2.EmployeeOdoo.SerializeToString, + response_deserializer=weladee__pb2.Empty.FromString, + ) + self.GetEmployees = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetEmployees', + request_serializer=odoo__pb2.OdooRequest.SerializeToString, + response_deserializer=odoo__pb2.EmployeeOdoo.FromString, + ) + self.AddEmployee = channel.unary_unary( + '/grpc.weladee.com.Odoo/AddEmployee', + request_serializer=odoo__pb2.EmployeeOdoo.SerializeToString, + response_deserializer=weladee__pb2.AddResult.FromString, + ) + self.GetEmployeeHolidays = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetEmployeeHolidays', + request_serializer=odoo__pb2.OdooRequest.SerializeToString, + response_deserializer=odoo__pb2.HolidayOdoo.FromString, + ) + self.GetHolidays = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetHolidays', + request_serializer=weladee__pb2.Empty.SerializeToString, + response_deserializer=odoo__pb2.HolidayOdoo.FromString, + ) + self.AddHoliday = channel.unary_unary( + '/grpc.weladee.com.Odoo/AddHoliday', + request_serializer=odoo__pb2.HolidayOdoo.SerializeToString, + response_deserializer=weladee__pb2.AddResult.FromString, + ) + self.DropHoliday = channel.unary_unary( + '/grpc.weladee.com.Odoo/DropHoliday', + request_serializer=odoo__pb2.OdooRequest.SerializeToString, + response_deserializer=weladee__pb2.Empty.FromString, + ) + self.UpdateHoliday = channel.unary_unary( + '/grpc.weladee.com.Odoo/UpdateHoliday', + request_serializer=odoo__pb2.HolidayOdoo.SerializeToString, + response_deserializer=weladee__pb2.Empty.FromString, + ) + self.GetDepartments = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetDepartments', + request_serializer=odoo__pb2.OdooRequest.SerializeToString, + response_deserializer=odoo__pb2.DepartmentOdoo.FromString, + ) + self.AddDepartment = channel.unary_unary( + '/grpc.weladee.com.Odoo/AddDepartment', + request_serializer=odoo__pb2.DepartmentOdoo.SerializeToString, + response_deserializer=weladee__pb2.AddResult.FromString, + ) + self.UpdateDepartment = channel.unary_unary( + '/grpc.weladee.com.Odoo/UpdateDepartment', + request_serializer=odoo__pb2.DepartmentOdoo.SerializeToString, + response_deserializer=weladee__pb2.Empty.FromString, + ) + self.GetNewAttendance = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetNewAttendance', + request_serializer=odoo__pb2.AttendanceRequest.SerializeToString, + response_deserializer=odoo__pb2.LogEventOdoo.FromString, + ) + self.GetPositions = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetPositions', + request_serializer=weladee__pb2.Empty.SerializeToString, + response_deserializer=odoo__pb2.PositionOdoo.FromString, + ) + self.AddPosition = channel.unary_unary( + '/grpc.weladee.com.Odoo/AddPosition', + request_serializer=odoo__pb2.PositionOdoo.SerializeToString, + response_deserializer=weladee__pb2.AddResult.FromString, + ) + self.GetProjects = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetProjects', + request_serializer=weladee__pb2.Empty.SerializeToString, + response_deserializer=odoo__pb2.ProjectOdoo.FromString, + ) + self.GetExpenses = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetExpenses', + request_serializer=weladee__pb2.Empty.SerializeToString, + response_deserializer=odoo__pb2.ExpenseOdoo.FromString, + ) + self.GetExpenseTypes = channel.unary_stream( + '/grpc.weladee.com.Odoo/GetExpenseTypes', + request_serializer=weladee__pb2.Empty.SerializeToString, + response_deserializer=odoo__pb2.ExpenseTypeOdoo.FromString, + ) class OdooServicer(object): - """* - List of available functions for Odoo only. - Don't forget to authenticate yourself with metadata "authorization" with api_key - """ - - def UpdateEmployee(self, request, context): - """/ Update employee + """* + List of available functions for Odoo only. + Don't forget to authenticate yourself with metadata "authorization" with api_key """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def GetEmployees(self, request, context): - """/ Stream of employees - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def UpdateEmployee(self, request, context): + """Update employee + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def AddEmployee(self, request, context): - """/ Add employee, get the id as return. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetEmployees(self, request, context): + """Stream of employees + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def GetEmployeeHolidays(self, request, context): - """/ Stream of holidays for 1 specific employee - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def AddEmployee(self, request, context): + """Add employee, get the id as return. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def GetHolidays(self, request, context): - """/ Stream of holidays for the company + employees that need to be synchronized with Odoo - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetEmployeeHolidays(self, request, context): + """Stream of holidays for 1 specific employee + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def AddHoliday(self, request, context): - """/ Add holiday, get the id as return. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetHolidays(self, request, context): + """Stream of holidays for the company + employees that need to be synchronized with Odoo + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def DropHoliday(self, request, context): - """/ Remove holiday from database - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def AddHoliday(self, request, context): + """Add holiday, get the id as return. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def UpdateHoliday(self, request, context): - """/ Update holiday. raise error if fails - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def DropHoliday(self, request, context): + """Remove holiday from database + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def GetDepartments(self, request, context): - """/ return a stream of departments - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def UpdateHoliday(self, request, context): + """Update holiday. raise error if fails + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def AddDepartment(self, request, context): - """/ Add department, get the id as return. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetDepartments(self, request, context): + """return a stream of departments + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def UpdateDepartment(self, request, context): - """/ Update a department. raise error if fails - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def AddDepartment(self, request, context): + """Add department, get the id as return. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def GetNewAttendance(self, request, context): - """/ return a stream of attendance record + odoo employee id that have not yet been synchronized with Odoo or that need to be synchronized again. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def UpdateDepartment(self, request, context): + """Update a department. raise error if fails + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def GetPositions(self, request, context): - """rpc SyncAttendance (stream LogEventOdooSync) returns (Empty); /// Send a stream of LogEventSync to confirm the log entries have been synchronized with Odoo. This funciton use a stream in order to synchronize a large bunch of records very quickly. Odoo can not update or create or delete LogEvent record in Weladee. - / return a stream of positions. Called "job title" in odoo - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetNewAttendance(self, request, context): + """return a stream of attendance record + odoo employee id that have not yet been synchronized with Odoo or that need to be synchronized again. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def AddPosition(self, request, context): - """/ Add position, get the id as return. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def GetPositions(self, request, context): + """rpc SyncAttendance (stream LogEventOdooSync) returns (Empty); // Send a stream of LogEventSync to confirm the log entries have been synchronized with Odoo. This funciton use a stream in order to synchronize a large bunch of records very quickly. Odoo can not update or create or delete LogEvent record in Weladee. + return a stream of positions. Called "job title" in odoo + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - def GetProjects(self, request, context): - """/ return stream of timesheet project - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') + def AddPosition(self, request, context): + """Add position, get the id as return. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetProjects(self, request, context): + """return stream of timesheet project + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExpenses(self, request, context): + """Return a stream of Expenses + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExpenseTypes(self, request, context): + """Return a stream of Expense types + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') def add_OdooServicer_to_server(servicer, server): - rpc_method_handlers = { - 'UpdateEmployee': grpc.unary_unary_rpc_method_handler( - servicer.UpdateEmployee, - request_deserializer=odoo__pb2.EmployeeOdoo.FromString, - response_serializer=weladee__pb2.Empty.SerializeToString, - ), - 'GetEmployees': grpc.unary_stream_rpc_method_handler( - servicer.GetEmployees, - request_deserializer=odoo__pb2.OdooRequest.FromString, - response_serializer=odoo__pb2.EmployeeOdoo.SerializeToString, - ), - 'AddEmployee': grpc.unary_unary_rpc_method_handler( - servicer.AddEmployee, - request_deserializer=odoo__pb2.EmployeeOdoo.FromString, - response_serializer=weladee__pb2.AddResult.SerializeToString, - ), - 'GetEmployeeHolidays': grpc.unary_stream_rpc_method_handler( - servicer.GetEmployeeHolidays, - request_deserializer=odoo__pb2.OdooRequest.FromString, - response_serializer=odoo__pb2.HolidayOdoo.SerializeToString, - ), - 'GetHolidays': grpc.unary_stream_rpc_method_handler( - servicer.GetHolidays, - request_deserializer=weladee__pb2.Empty.FromString, - response_serializer=odoo__pb2.HolidayOdoo.SerializeToString, - ), - 'AddHoliday': grpc.unary_unary_rpc_method_handler( - servicer.AddHoliday, - request_deserializer=odoo__pb2.HolidayOdoo.FromString, - response_serializer=weladee__pb2.AddResult.SerializeToString, - ), - 'DropHoliday': grpc.unary_unary_rpc_method_handler( - servicer.DropHoliday, - request_deserializer=odoo__pb2.OdooRequest.FromString, - response_serializer=weladee__pb2.Empty.SerializeToString, - ), - 'UpdateHoliday': grpc.unary_unary_rpc_method_handler( - servicer.UpdateHoliday, - request_deserializer=odoo__pb2.HolidayOdoo.FromString, - response_serializer=weladee__pb2.Empty.SerializeToString, - ), - 'GetDepartments': grpc.unary_stream_rpc_method_handler( - servicer.GetDepartments, - request_deserializer=odoo__pb2.OdooRequest.FromString, - response_serializer=odoo__pb2.DepartmentOdoo.SerializeToString, - ), - 'AddDepartment': grpc.unary_unary_rpc_method_handler( - servicer.AddDepartment, - request_deserializer=odoo__pb2.DepartmentOdoo.FromString, - response_serializer=weladee__pb2.AddResult.SerializeToString, - ), - 'UpdateDepartment': grpc.unary_unary_rpc_method_handler( - servicer.UpdateDepartment, - request_deserializer=odoo__pb2.DepartmentOdoo.FromString, - response_serializer=weladee__pb2.Empty.SerializeToString, - ), - 'GetNewAttendance': grpc.unary_stream_rpc_method_handler( - servicer.GetNewAttendance, - request_deserializer=odoo__pb2.AttendanceRequest.FromString, - response_serializer=odoo__pb2.LogEventOdoo.SerializeToString, - ), - 'GetPositions': grpc.unary_stream_rpc_method_handler( - servicer.GetPositions, - request_deserializer=weladee__pb2.Empty.FromString, - response_serializer=odoo__pb2.PositionOdoo.SerializeToString, - ), - 'AddPosition': grpc.unary_unary_rpc_method_handler( - servicer.AddPosition, - request_deserializer=odoo__pb2.PositionOdoo.FromString, - response_serializer=weladee__pb2.AddResult.SerializeToString, - ), - 'GetProjects': grpc.unary_stream_rpc_method_handler( - servicer.GetProjects, - request_deserializer=weladee__pb2.Empty.FromString, - response_serializer=odoo__pb2.ProjectOdoo.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'grpc.weladee.com.Odoo', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) + rpc_method_handlers = { + 'UpdateEmployee': grpc.unary_unary_rpc_method_handler( + servicer.UpdateEmployee, + request_deserializer=odoo__pb2.EmployeeOdoo.FromString, + response_serializer=weladee__pb2.Empty.SerializeToString, + ), + 'GetEmployees': grpc.unary_stream_rpc_method_handler( + servicer.GetEmployees, + request_deserializer=odoo__pb2.OdooRequest.FromString, + response_serializer=odoo__pb2.EmployeeOdoo.SerializeToString, + ), + 'AddEmployee': grpc.unary_unary_rpc_method_handler( + servicer.AddEmployee, + request_deserializer=odoo__pb2.EmployeeOdoo.FromString, + response_serializer=weladee__pb2.AddResult.SerializeToString, + ), + 'GetEmployeeHolidays': grpc.unary_stream_rpc_method_handler( + servicer.GetEmployeeHolidays, + request_deserializer=odoo__pb2.OdooRequest.FromString, + response_serializer=odoo__pb2.HolidayOdoo.SerializeToString, + ), + 'GetHolidays': grpc.unary_stream_rpc_method_handler( + servicer.GetHolidays, + request_deserializer=weladee__pb2.Empty.FromString, + response_serializer=odoo__pb2.HolidayOdoo.SerializeToString, + ), + 'AddHoliday': grpc.unary_unary_rpc_method_handler( + servicer.AddHoliday, + request_deserializer=odoo__pb2.HolidayOdoo.FromString, + response_serializer=weladee__pb2.AddResult.SerializeToString, + ), + 'DropHoliday': grpc.unary_unary_rpc_method_handler( + servicer.DropHoliday, + request_deserializer=odoo__pb2.OdooRequest.FromString, + response_serializer=weladee__pb2.Empty.SerializeToString, + ), + 'UpdateHoliday': grpc.unary_unary_rpc_method_handler( + servicer.UpdateHoliday, + request_deserializer=odoo__pb2.HolidayOdoo.FromString, + response_serializer=weladee__pb2.Empty.SerializeToString, + ), + 'GetDepartments': grpc.unary_stream_rpc_method_handler( + servicer.GetDepartments, + request_deserializer=odoo__pb2.OdooRequest.FromString, + response_serializer=odoo__pb2.DepartmentOdoo.SerializeToString, + ), + 'AddDepartment': grpc.unary_unary_rpc_method_handler( + servicer.AddDepartment, + request_deserializer=odoo__pb2.DepartmentOdoo.FromString, + response_serializer=weladee__pb2.AddResult.SerializeToString, + ), + 'UpdateDepartment': grpc.unary_unary_rpc_method_handler( + servicer.UpdateDepartment, + request_deserializer=odoo__pb2.DepartmentOdoo.FromString, + response_serializer=weladee__pb2.Empty.SerializeToString, + ), + 'GetNewAttendance': grpc.unary_stream_rpc_method_handler( + servicer.GetNewAttendance, + request_deserializer=odoo__pb2.AttendanceRequest.FromString, + response_serializer=odoo__pb2.LogEventOdoo.SerializeToString, + ), + 'GetPositions': grpc.unary_stream_rpc_method_handler( + servicer.GetPositions, + request_deserializer=weladee__pb2.Empty.FromString, + response_serializer=odoo__pb2.PositionOdoo.SerializeToString, + ), + 'AddPosition': grpc.unary_unary_rpc_method_handler( + servicer.AddPosition, + request_deserializer=odoo__pb2.PositionOdoo.FromString, + response_serializer=weladee__pb2.AddResult.SerializeToString, + ), + 'GetProjects': grpc.unary_stream_rpc_method_handler( + servicer.GetProjects, + request_deserializer=weladee__pb2.Empty.FromString, + response_serializer=odoo__pb2.ProjectOdoo.SerializeToString, + ), + 'GetExpenses': grpc.unary_stream_rpc_method_handler( + servicer.GetExpenses, + request_deserializer=weladee__pb2.Empty.FromString, + response_serializer=odoo__pb2.ExpenseOdoo.SerializeToString, + ), + 'GetExpenseTypes': grpc.unary_stream_rpc_method_handler( + servicer.GetExpenseTypes, + request_deserializer=weladee__pb2.Empty.FromString, + response_serializer=odoo__pb2.ExpenseTypeOdoo.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'grpc.weladee.com.Odoo', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class Odoo(object): + """* + List of available functions for Odoo only. + Don't forget to authenticate yourself with metadata "authorization" with api_key + """ + + @staticmethod + def UpdateEmployee(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/UpdateEmployee', + odoo__pb2.EmployeeOdoo.SerializeToString, + weladee__pb2.Empty.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetEmployees(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetEmployees', + odoo__pb2.OdooRequest.SerializeToString, + odoo__pb2.EmployeeOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddEmployee(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/AddEmployee', + odoo__pb2.EmployeeOdoo.SerializeToString, + weladee__pb2.AddResult.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetEmployeeHolidays(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetEmployeeHolidays', + odoo__pb2.OdooRequest.SerializeToString, + odoo__pb2.HolidayOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetHolidays(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetHolidays', + weladee__pb2.Empty.SerializeToString, + odoo__pb2.HolidayOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddHoliday(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/AddHoliday', + odoo__pb2.HolidayOdoo.SerializeToString, + weladee__pb2.AddResult.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DropHoliday(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/DropHoliday', + odoo__pb2.OdooRequest.SerializeToString, + weladee__pb2.Empty.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateHoliday(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/UpdateHoliday', + odoo__pb2.HolidayOdoo.SerializeToString, + weladee__pb2.Empty.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetDepartments(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetDepartments', + odoo__pb2.OdooRequest.SerializeToString, + odoo__pb2.DepartmentOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddDepartment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/AddDepartment', + odoo__pb2.DepartmentOdoo.SerializeToString, + weladee__pb2.AddResult.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateDepartment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/UpdateDepartment', + odoo__pb2.DepartmentOdoo.SerializeToString, + weladee__pb2.Empty.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetNewAttendance(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetNewAttendance', + odoo__pb2.AttendanceRequest.SerializeToString, + odoo__pb2.LogEventOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetPositions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetPositions', + weladee__pb2.Empty.SerializeToString, + odoo__pb2.PositionOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddPosition(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/grpc.weladee.com.Odoo/AddPosition', + odoo__pb2.PositionOdoo.SerializeToString, + weladee__pb2.AddResult.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetProjects(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetProjects', + weladee__pb2.Empty.SerializeToString, + odoo__pb2.ProjectOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExpenses(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetExpenses', + weladee__pb2.Empty.SerializeToString, + odoo__pb2.ExpenseOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExpenseTypes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/grpc.weladee.com.Odoo/GetExpenseTypes', + weladee__pb2.Empty.SerializeToString, + odoo__pb2.ExpenseTypeOdoo.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/Modules/Weladee_Attendances/models/grpcproto/ot_pb2.py b/Modules/Weladee_Attendances/models/grpcproto/ot_pb2.py new file mode 100644 index 0000000..2648644 --- /dev/null +++ b/Modules/Weladee_Attendances/models/grpcproto/ot_pb2.py @@ -0,0 +1,544 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: ot.proto + +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +# INSERTED CODE -- DO NOT EDIT +# timestamp : Fri Jul 10 2020 16:53:00 GMT+0700 (Indochina Time) +from . import weladee_pb2 as weladee__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='ot.proto', + package='grpc.weladee.com', + syntax='proto3', + serialized_options=b'\n\030com.frontware.weladee_otB\013WeladeeGRPCH\003P\000', + serialized_pb=b'\n\x08ot.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\"\x8a\x04\n\tOTRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04\x44\x61te\x18\x02 \x01(\x05R\x04\x64\x61te\x12 \n\x0b\x44\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06Reason\x18\x04 \x01(\tR\x06reason\x12\x1e\n\nEmployeeID\x18\x05 \x01(\x03R\nemployeeid\x12\x12\n\x04\x46rom\x18\x14 \x01(\tR\x04\x66rom\x12\x0e\n\x02To\x18\x15 \x01(\tR\x02to\x12\x1a\n\x08\x44uration\x18\x16 \x01(\x05R\x08\x64uration\x12\x16\n\x06TypeID\x18\x19 \x01(\x03R\x06typeid\x12\x39\n\x06Status\x18\x06 \x01(\x0e\x32!.grpc.weladee.com.OTRequestStatusR\x06status\x12\x1d\n\tTreatedBy\x18\x07 \x01(\x03R\ntreated_by\x12\x1d\n\tTreatedOn\x18\x08 \x01(\x03R\ntreated_on\x12\x12\n\x04\x43ode\x18\x1e \x01(\tR\x04\x63ode\x12#\n\x0c\x45mployeeName\x18\x1f \x01(\tR\remployee_name\x12&\n\rTreatedByName\x18 \x01(\tR\x0ftreated_by_name\x12#\n\x0c\x45mployeeCode\x18! \x01(\tR\remployee_code\x12\x14\n\x05Photo\x18\" \x01(\tR\x05photo\x12\x12\n\x04\x43ost\x18( \x01(\x03R\x04\x63ost\"\xa8\x01\n\x07OTQuery\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0e\n\x06TypeID\x18\x19 \x01(\x03\x12\x31\n\x06Status\x18\x06 \x01(\x0e\x32!.grpc.weladee.com.OTRequestStatus\x12\x12\n\nEmployeeID\x18\x05 \x01(\x03\x12\x0e\n\x06TeamID\x18\x08 \x01(\x03\x12\x0c\n\x04\x46rom\x18\n \x01(\x03\x12\n\n\x02To\x18\x0b \x01(\x03\x12\x10\n\x03XLS\x18\x13 \x01(\x08R\x03xls\"\xc0\x01\n\x06OTType\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x12\n\x04Note\x18\x06 \x01(\tR\x04note\x12&\n\rHourlyRatePct\x18\x14 \x01(\rR\x0fhourly_rate_pct\"b\n\rOTTypeRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0c\n\x04Name\x18\x03 \x01(\t\x12)\n\x06\x61\x63tive\x18\x05 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x0c\n\x04\x43ode\x18\x08 \x01(\t\"\x82\x03\n\rOTPreferences\x12,\n\x10\x41pproveByManager\x18\x01 \x01(\x08R\x12\x61pprove_by_manager\x12\x35\n\x14\x41pproveByTeamManager\x18\x02 \x01(\x08R\x17\x61pprove_by_team_manager\x12\x31\n\x12\x41pproveByHRManager\x18\x03 \x01(\x08R\x15\x61pprove_by_hr_manager\x12\x35\n\x14\x41pproveByDeptManager\x18\x06 \x01(\x08R\x17\x61pprove_by_dept_manager\x12*\n\x0fMustDefineRange\x18\x04 \x01(\x08R\x11must_define_range\x12\x36\n\x15MustDefineDescription\x18\x05 \x01(\x08R\x17must_define_description\x12\x1d\n\tDateAfter\x18\x1e \x01(\rR\ndate_after\x12\x1f\n\nDateBefore\x18( \x01(\rR\x0b\x64\x61te_before*M\n\x0fOTRequestStatus\x12\x0f\n\x0bOTStatusNew\x10\x00\x12\x14\n\x10OTStatusApproved\x10\x01\x12\x13\n\x0fOTStatusRefused\x10\x02\x42+\n\x18\x63om.frontware.weladee_otB\x0bWeladeeGRPCH\x03P\x00\x62\x06proto3' + , + dependencies=[weladee__pb2.DESCRIPTOR,]) + +_OTREQUESTSTATUS = _descriptor.EnumDescriptor( + name='OTRequestStatus', + full_name='grpc.weladee.com.OTRequestStatus', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='OTStatusNew', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OTStatusApproved', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OTStatusRefused', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1425, + serialized_end=1502, +) +_sym_db.RegisterEnumDescriptor(_OTREQUESTSTATUS) + +OTRequestStatus = enum_type_wrapper.EnumTypeWrapper(_OTREQUESTSTATUS) +OTStatusNew = 0 +OTStatusApproved = 1 +OTStatusRefused = 2 + + + +_OTREQUEST = _descriptor.Descriptor( + name='OTRequest', + full_name='grpc.weladee.com.OTRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.OTRequest.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='id', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Date', full_name='grpc.weladee.com.OTRequest.Date', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='date', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Description', full_name='grpc.weladee.com.OTRequest.Description', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='description', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Reason', full_name='grpc.weladee.com.OTRequest.Reason', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='reason', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeID', full_name='grpc.weladee.com.OTRequest.EmployeeID', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='employeeid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='From', full_name='grpc.weladee.com.OTRequest.From', index=5, + number=20, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='from', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='To', full_name='grpc.weladee.com.OTRequest.To', index=6, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='to', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Duration', full_name='grpc.weladee.com.OTRequest.Duration', index=7, + number=22, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='duration', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TypeID', full_name='grpc.weladee.com.OTRequest.TypeID', index=8, + number=25, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='typeid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Status', full_name='grpc.weladee.com.OTRequest.Status', index=9, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='status', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TreatedBy', full_name='grpc.weladee.com.OTRequest.TreatedBy', index=10, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='treated_by', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TreatedOn', full_name='grpc.weladee.com.OTRequest.TreatedOn', index=11, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='treated_on', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.OTRequest.Code', index=12, + number=30, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='code', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeName', full_name='grpc.weladee.com.OTRequest.EmployeeName', index=13, + number=31, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='employee_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TreatedByName', full_name='grpc.weladee.com.OTRequest.TreatedByName', index=14, + number=32, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='treated_by_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeCode', full_name='grpc.weladee.com.OTRequest.EmployeeCode', index=15, + number=33, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='employee_code', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Photo', full_name='grpc.weladee.com.OTRequest.Photo', index=16, + number=34, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='photo', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Cost', full_name='grpc.weladee.com.OTRequest.Cost', index=17, + number=40, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='cost', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=46, + serialized_end=568, +) + + +_OTQUERY = _descriptor.Descriptor( + name='OTQuery', + full_name='grpc.weladee.com.OTQuery', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.OTQuery.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TypeID', full_name='grpc.weladee.com.OTQuery.TypeID', index=1, + number=25, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Status', full_name='grpc.weladee.com.OTQuery.Status', index=2, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeID', full_name='grpc.weladee.com.OTQuery.EmployeeID', index=3, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='TeamID', full_name='grpc.weladee.com.OTQuery.TeamID', index=4, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='From', full_name='grpc.weladee.com.OTQuery.From', index=5, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='To', full_name='grpc.weladee.com.OTQuery.To', index=6, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='XLS', full_name='grpc.weladee.com.OTQuery.XLS', index=7, + number=19, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='xls', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=571, + serialized_end=739, +) + + +_OTTYPE = _descriptor.Descriptor( + name='OTType', + full_name='grpc.weladee.com.OTType', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.OTType.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='id', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='NameEnglish', full_name='grpc.weladee.com.OTType.NameEnglish', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name_english', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='NameThai', full_name='grpc.weladee.com.OTType.NameThai', index=2, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name_thai', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='active', full_name='grpc.weladee.com.OTType.active', index=3, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='active', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.OTType.Code', index=4, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='code', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Note', full_name='grpc.weladee.com.OTType.Note', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='note', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='HourlyRatePct', full_name='grpc.weladee.com.OTType.HourlyRatePct', index=6, + number=20, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='hourly_rate_pct', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=742, + serialized_end=934, +) + + +_OTTYPEREQUEST = _descriptor.Descriptor( + name='OTTypeRequest', + full_name='grpc.weladee.com.OTTypeRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ID', full_name='grpc.weladee.com.OTTypeRequest.ID', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Name', full_name='grpc.weladee.com.OTTypeRequest.Name', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='active', full_name='grpc.weladee.com.OTTypeRequest.active', index=2, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.OTTypeRequest.Code', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=936, + serialized_end=1034, +) + + +_OTPREFERENCES = _descriptor.Descriptor( + name='OTPreferences', + full_name='grpc.weladee.com.OTPreferences', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ApproveByManager', full_name='grpc.weladee.com.OTPreferences.ApproveByManager', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByTeamManager', full_name='grpc.weladee.com.OTPreferences.ApproveByTeamManager', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_team_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByHRManager', full_name='grpc.weladee.com.OTPreferences.ApproveByHRManager', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_hr_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByDeptManager', full_name='grpc.weladee.com.OTPreferences.ApproveByDeptManager', index=3, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_dept_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='MustDefineRange', full_name='grpc.weladee.com.OTPreferences.MustDefineRange', index=4, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='must_define_range', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='MustDefineDescription', full_name='grpc.weladee.com.OTPreferences.MustDefineDescription', index=5, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='must_define_description', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='DateAfter', full_name='grpc.weladee.com.OTPreferences.DateAfter', index=6, + number=30, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='date_after', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='DateBefore', full_name='grpc.weladee.com.OTPreferences.DateBefore', index=7, + number=40, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='date_before', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1037, + serialized_end=1423, +) + +_OTREQUEST.fields_by_name['Status'].enum_type = _OTREQUESTSTATUS +_OTQUERY.fields_by_name['Status'].enum_type = _OTREQUESTSTATUS +_OTTYPEREQUEST.fields_by_name['active'].enum_type = weladee__pb2._TRINARY +DESCRIPTOR.message_types_by_name['OTRequest'] = _OTREQUEST +DESCRIPTOR.message_types_by_name['OTQuery'] = _OTQUERY +DESCRIPTOR.message_types_by_name['OTType'] = _OTTYPE +DESCRIPTOR.message_types_by_name['OTTypeRequest'] = _OTTYPEREQUEST +DESCRIPTOR.message_types_by_name['OTPreferences'] = _OTPREFERENCES +DESCRIPTOR.enum_types_by_name['OTRequestStatus'] = _OTREQUESTSTATUS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +OTRequest = _reflection.GeneratedProtocolMessageType('OTRequest', (_message.Message,), { + 'DESCRIPTOR' : _OTREQUEST, + '__module__' : 'ot_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.OTRequest) + }) +_sym_db.RegisterMessage(OTRequest) + +OTQuery = _reflection.GeneratedProtocolMessageType('OTQuery', (_message.Message,), { + 'DESCRIPTOR' : _OTQUERY, + '__module__' : 'ot_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.OTQuery) + }) +_sym_db.RegisterMessage(OTQuery) + +OTType = _reflection.GeneratedProtocolMessageType('OTType', (_message.Message,), { + 'DESCRIPTOR' : _OTTYPE, + '__module__' : 'ot_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.OTType) + }) +_sym_db.RegisterMessage(OTType) + +OTTypeRequest = _reflection.GeneratedProtocolMessageType('OTTypeRequest', (_message.Message,), { + 'DESCRIPTOR' : _OTTYPEREQUEST, + '__module__' : 'ot_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.OTTypeRequest) + }) +_sym_db.RegisterMessage(OTTypeRequest) + +OTPreferences = _reflection.GeneratedProtocolMessageType('OTPreferences', (_message.Message,), { + 'DESCRIPTOR' : _OTPREFERENCES, + '__module__' : 'ot_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.OTPreferences) + }) +_sym_db.RegisterMessage(OTPreferences) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/Modules/Weladee_Attendances/models/grpcproto/ot_pb2_grpc.py b/Modules/Weladee_Attendances/models/grpcproto/ot_pb2_grpc.py new file mode 100644 index 0000000..a894352 --- /dev/null +++ b/Modules/Weladee_Attendances/models/grpcproto/ot_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/Modules/Weladee_Attendances/models/grpcproto/resource_pb2.py b/Modules/Weladee_Attendances/models/grpcproto/resource_pb2.py index 6961930..f0cf551 100644 --- a/Modules/Weladee_Attendances/models/grpcproto/resource_pb2.py +++ b/Modules/Weladee_Attendances/models/grpcproto/resource_pb2.py @@ -2,8 +2,6 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: resource.proto -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -14,6 +12,8 @@ _sym_db = _symbol_database.Default() +# INSERTED CODE -- DO NOT EDIT +# timestamp : Fri Jul 10 2020 16:53:00 GMT+0700 (Indochina Time) from . import weladee_pb2 as weladee__pb2 @@ -21,8 +21,8 @@ name='resource.proto', package='grpc.weladee.com', syntax='proto3', - serialized_options=_b('\n\036com.frontware.weladee_resourceB\013WeladeeGRPCH\003P\001\220\001\001\252\002\021Frontware.Weladee'), - serialized_pb=_b('\n\x0eresource.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\"\xa9\x02\n\x08Resource\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\"\n\x0cname_english\x18\x02 \x01(\tR\x0cname_english\x12\x1c\n\tname_thai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x10\n\x03MAC\x18\x08 \x01(\tR\x03mac\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x12\n\x04Tags\x18\n \x03(\tR\x04tags\x12\x0e\n\x02IP\x18\x0b \x01(\tR\x02ip\x12 \n\nMinTimeOff\x18\x0c \x01(\x05R\x0cmin_time_off\x12\x1e\n\tMinTimeOn\x18\r \x01(\x05R\x0bmin_time_on\x12\x17\n\x06LastOn\x18\x0e \x01(\x03R\x07last_on\x12\x0e\n\x02On\x18\x0f \x01(\x08R\x02on\"\xbe\x02\n\x12RessourceDailyStat\x12\x12\n\x04\x44\x61te\x18\x05 \x01(\tR\x04\x64\x61te\x12\x1e\n\nResourceID\x18\x01 \x01(\x03R\nresourceid\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x12\n\x04Name\x18\x03 \x01(\tR\x04name\x12\x0e\n\x02Nb\x18\x06 \x01(\rR\x02nb\x12\x10\n\x03Pct\x18\x07 \x01(\x01R\x03pct\x12+\n\x10ShortestDuration\x18\x10 \x01(\tR\x11shortest_duration\x12)\n\x0fLongestDuration\x18\x11 \x01(\tR\x10longest_duration\x12\x14\n\x05Total\x18\x12 \x01(\tR\x05total\x12\x19\n\x07\x46irstON\x18\x13 \x01(\tR\x08\x66irst_on\x12\x17\n\x06LastON\x18\x14 \x01(\tR\x07last_on\"\x96\x01\n\x0bResourceLog\x12\x12\n\x04Name\x18\x05 \x01(\tR\x04name\x12\x1e\n\nResourceID\x18\x01 \x01(\x03R\nresourceid\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x19\n\x07TimeOFF\x18\x04 \x01(\x03R\x08time_off\x12\x1a\n\x08\x44uration\x18\x03 \x01(\x03R\x08\x64uration\"\x9c\x01\n\x12ResourceLogRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06Offset\x18\t \x01(\x03R\x06offset\x12\x14\n\x05Limit\x18\n \x01(\x03R\x05limit\x12\x12\n\x04\x46rom\x18\x0b \x01(\x03R\x04\x66rom\x12\x0e\n\x02To\x18\x0c \x01(\x03R\x02to\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"\xa0\x01\n\x0fResourceRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x02 \x01(\tR\x04name\x12)\n\x06\x41\x63tive\x18\x04 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x16\n\x06Offset\x18\t \x01(\x03R\x06offset\x12\x14\n\x05Limit\x18\n \x01(\x03R\x05limit\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"\xf2\x01\n\rMacLogRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1b\n\x08GateName\x18\x02 \x01(\tR\tgate_name\x12\x16\n\x06GateID\x18\x03 \x01(\x03R\x06gateid\x12\x10\n\x03MAC\x18\x08 \x01(\tR\x03mac\x12\x0e\n\x02IP\x18\x0b \x01(\tR\x02ip\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\x12\x16\n\x06Offset\x18\x16 \x01(\x03R\x06offset\x12\x14\n\x05Limit\x18\x17 \x01(\x03R\x05limit\x12\x12\n\x04\x46rom\x18\x18 \x01(\x03R\x04\x66rom\x12\x0e\n\x02To\x18\x19 \x01(\x03R\x02to\x12\x16\n\x06Vendor\x18\x1e \x01(\tR\x06vendor\"\x19\n\nMacRequest\x12\x0b\n\x03MAC\x18\x01 \x01(\t\"\xa3\x01\n\tMACVendor\x12\x18\n\x07\x41\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x18\n\x07\x43ompany\x18\x03 \x01(\tR\x07\x63ompany\x12\x18\n\x07\x43ountry\x18\x04 \x01(\tR\x07\x63ountry\x12\x12\n\x04type\x18\x08 \x01(\tR\x04type\x12\x1b\n\x08StartHex\x18\t \x01(\tR\tstart_hex\x12\x17\n\x06\x45ndHex\x18\n \x01(\tR\x07\x65nd_hex\"\xf5\x01\n\x06MacLog\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x16\n\x06GateID\x18\x02 \x01(\x03R\x06gateid\x12\x1b\n\x08GateName\x18\x03 \x01(\tR\tgate_name\x12\x1c\n\tTimeStamp\x18\x04 \x01(\x03R\ttimestamp\x12%\n\rGateStationID\x18\x05 \x01(\x03R\x0egate_stationid\x12\'\n\x0bGateStation\x18\x06 \x01(\tR\x12gate_station_token\x12\x10\n\x03MAC\x18\x08 \x01(\tR\x03mac\x12\x0e\n\x02IP\x18\x0b \x01(\tR\x02ip\x12\x16\n\x06Vendor\x18\x0c \x01(\tR\x06vendor*3\n\x0bNetworkType\x12\n\n\x06NetLAN\x10\x00\x12\x0b\n\x07NetBlue\x10\x01\x12\x0b\n\x07NetWifi\x10\x02\x42H\n\x1e\x63om.frontware.weladee_resourceB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\xaa\x02\x11\x46rontware.Weladeeb\x06proto3') + serialized_options=b'\n\036com.frontware.weladee_resourceB\013WeladeeGRPCH\003P\001\220\001\001\252\002\021Frontware.Weladee', + serialized_pb=b'\n\x0eresource.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\"\xa9\x02\n\x08Resource\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\"\n\x0cname_english\x18\x02 \x01(\tR\x0cname_english\x12\x1c\n\tname_thai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x10\n\x03MAC\x18\x08 \x01(\tR\x03mac\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x12\n\x04Tags\x18\n \x03(\tR\x04tags\x12\x0e\n\x02IP\x18\x0b \x01(\tR\x02ip\x12 \n\nMinTimeOff\x18\x0c \x01(\x05R\x0cmin_time_off\x12\x1e\n\tMinTimeOn\x18\r \x01(\x05R\x0bmin_time_on\x12\x17\n\x06LastOn\x18\x0e \x01(\x03R\x07last_on\x12\x0e\n\x02On\x18\x0f \x01(\x08R\x02on\"\xbe\x02\n\x12RessourceDailyStat\x12\x12\n\x04\x44\x61te\x18\x05 \x01(\tR\x04\x64\x61te\x12\x1e\n\nResourceID\x18\x01 \x01(\x03R\nresourceid\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x12\n\x04Name\x18\x03 \x01(\tR\x04name\x12\x0e\n\x02Nb\x18\x06 \x01(\rR\x02nb\x12\x10\n\x03Pct\x18\x07 \x01(\x01R\x03pct\x12+\n\x10ShortestDuration\x18\x10 \x01(\tR\x11shortest_duration\x12)\n\x0fLongestDuration\x18\x11 \x01(\tR\x10longest_duration\x12\x14\n\x05Total\x18\x12 \x01(\tR\x05total\x12\x19\n\x07\x46irstON\x18\x13 \x01(\tR\x08\x66irst_on\x12\x17\n\x06LastON\x18\x14 \x01(\tR\x07last_on\"\x96\x01\n\x0bResourceLog\x12\x12\n\x04Name\x18\x05 \x01(\tR\x04name\x12\x1e\n\nResourceID\x18\x01 \x01(\x03R\nresourceid\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x19\n\x07TimeOFF\x18\x04 \x01(\x03R\x08time_off\x12\x1a\n\x08\x44uration\x18\x03 \x01(\x03R\x08\x64uration\"\x9c\x01\n\x12ResourceLogRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06Offset\x18\t \x01(\x03R\x06offset\x12\x14\n\x05Limit\x18\n \x01(\x03R\x05limit\x12\x12\n\x04\x46rom\x18\x0b \x01(\x03R\x04\x66rom\x12\x0e\n\x02To\x18\x0c \x01(\x03R\x02to\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"\xa0\x01\n\x0fResourceRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x02 \x01(\tR\x04name\x12)\n\x06\x41\x63tive\x18\x04 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x16\n\x06Offset\x18\t \x01(\x03R\x06offset\x12\x14\n\x05Limit\x18\n \x01(\x03R\x05limit\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"\xf2\x01\n\rMacLogRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1b\n\x08GateName\x18\x02 \x01(\tR\tgate_name\x12\x16\n\x06GateID\x18\x03 \x01(\x03R\x06gateid\x12\x10\n\x03MAC\x18\x08 \x01(\tR\x03mac\x12\x0e\n\x02IP\x18\x0b \x01(\tR\x02ip\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\x12\x16\n\x06Offset\x18\x16 \x01(\x03R\x06offset\x12\x14\n\x05Limit\x18\x17 \x01(\x03R\x05limit\x12\x12\n\x04\x46rom\x18\x18 \x01(\x03R\x04\x66rom\x12\x0e\n\x02To\x18\x19 \x01(\x03R\x02to\x12\x16\n\x06Vendor\x18\x1e \x01(\tR\x06vendor\"\x19\n\nMacRequest\x12\x0b\n\x03MAC\x18\x01 \x01(\t\"\xa3\x01\n\tMACVendor\x12\x18\n\x07\x41\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x18\n\x07\x43ompany\x18\x03 \x01(\tR\x07\x63ompany\x12\x18\n\x07\x43ountry\x18\x04 \x01(\tR\x07\x63ountry\x12\x12\n\x04type\x18\x08 \x01(\tR\x04type\x12\x1b\n\x08StartHex\x18\t \x01(\tR\tstart_hex\x12\x17\n\x06\x45ndHex\x18\n \x01(\tR\x07\x65nd_hex\"\xf5\x01\n\x06MacLog\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x16\n\x06GateID\x18\x02 \x01(\x03R\x06gateid\x12\x1b\n\x08GateName\x18\x03 \x01(\tR\tgate_name\x12\x1c\n\tTimeStamp\x18\x04 \x01(\x03R\ttimestamp\x12%\n\rGateStationID\x18\x05 \x01(\x03R\x0egate_stationid\x12\'\n\x0bGateStation\x18\x06 \x01(\tR\x12gate_station_token\x12\x10\n\x03MAC\x18\x08 \x01(\tR\x03mac\x12\x0e\n\x02IP\x18\x0b \x01(\tR\x02ip\x12\x16\n\x06Vendor\x18\x0c \x01(\tR\x06vendor*3\n\x0bNetworkType\x12\n\n\x06NetLAN\x10\x00\x12\x0b\n\x07NetBlue\x10\x01\x12\x0b\n\x07NetWifi\x10\x02\x42H\n\x1e\x63om.frontware.weladee_resourceB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\xaa\x02\x11\x46rontware.Weladeeb\x06proto3' , dependencies=[weladee__pb2.DESCRIPTOR,]) @@ -76,14 +76,14 @@ _descriptor.FieldDescriptor( name='name_english', full_name='grpc.weladee.com.Resource.name_english', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='name_thai', full_name='grpc.weladee.com.Resource.name_thai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -97,14 +97,14 @@ _descriptor.FieldDescriptor( name='MAC', full_name='grpc.weladee.com.Resource.MAC', index=4, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='mac', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Resource.note', index=5, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -118,7 +118,7 @@ _descriptor.FieldDescriptor( name='IP', full_name='grpc.weladee.com.Resource.IP', index=7, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='ip', file=DESCRIPTOR), @@ -177,7 +177,7 @@ _descriptor.FieldDescriptor( name='Date', full_name='grpc.weladee.com.RessourceDailyStat.Date', index=0, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='date', file=DESCRIPTOR), @@ -198,7 +198,7 @@ _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.RessourceDailyStat.Name', index=3, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), @@ -219,35 +219,35 @@ _descriptor.FieldDescriptor( name='ShortestDuration', full_name='grpc.weladee.com.RessourceDailyStat.ShortestDuration', index=6, number=16, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='shortest_duration', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='LongestDuration', full_name='grpc.weladee.com.RessourceDailyStat.LongestDuration', index=7, number=17, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='longest_duration', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Total', full_name='grpc.weladee.com.RessourceDailyStat.Total', index=8, number=18, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='total', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='FirstON', full_name='grpc.weladee.com.RessourceDailyStat.FirstON', index=9, number=19, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='first_on', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='LastON', full_name='grpc.weladee.com.RessourceDailyStat.LastON', index=10, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='last_on', file=DESCRIPTOR), @@ -278,7 +278,7 @@ _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.ResourceLog.Name', index=0, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), @@ -344,7 +344,7 @@ _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.ResourceLogRequest.Name', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), @@ -417,7 +417,7 @@ _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.ResourceRequest.Name', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), @@ -483,7 +483,7 @@ _descriptor.FieldDescriptor( name='GateName', full_name='grpc.weladee.com.MacLogRequest.GateName', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gate_name', file=DESCRIPTOR), @@ -497,14 +497,14 @@ _descriptor.FieldDescriptor( name='MAC', full_name='grpc.weladee.com.MacLogRequest.MAC', index=3, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='mac', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='IP', full_name='grpc.weladee.com.MacLogRequest.IP', index=4, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='ip', file=DESCRIPTOR), @@ -546,7 +546,7 @@ _descriptor.FieldDescriptor( name='Vendor', full_name='grpc.weladee.com.MacLogRequest.Vendor', index=10, number=30, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='vendor', file=DESCRIPTOR), @@ -577,7 +577,7 @@ _descriptor.FieldDescriptor( name='MAC', full_name='grpc.weladee.com.MacRequest.MAC', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -608,42 +608,42 @@ _descriptor.FieldDescriptor( name='Address', full_name='grpc.weladee.com.MACVendor.Address', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='address', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Company', full_name='grpc.weladee.com.MACVendor.Company', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='company', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Country', full_name='grpc.weladee.com.MACVendor.Country', index=2, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='country', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='type', full_name='grpc.weladee.com.MACVendor.type', index=3, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='type', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='StartHex', full_name='grpc.weladee.com.MACVendor.StartHex', index=4, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='start_hex', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='EndHex', full_name='grpc.weladee.com.MACVendor.EndHex', index=5, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='end_hex', file=DESCRIPTOR), @@ -688,7 +688,7 @@ _descriptor.FieldDescriptor( name='GateName', full_name='grpc.weladee.com.MacLog.GateName', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gate_name', file=DESCRIPTOR), @@ -709,28 +709,28 @@ _descriptor.FieldDescriptor( name='GateStation', full_name='grpc.weladee.com.MacLog.GateStation', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gate_station_token', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='MAC', full_name='grpc.weladee.com.MacLog.MAC', index=6, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='mac', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='IP', full_name='grpc.weladee.com.MacLog.IP', index=7, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='ip', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Vendor', full_name='grpc.weladee.com.MacLog.Vendor', index=8, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='vendor', file=DESCRIPTOR), diff --git a/Modules/Weladee_Attendances/models/grpcproto/timesheet_pb2.py b/Modules/Weladee_Attendances/models/grpcproto/timesheet_pb2.py index 3c53c18..4f847c1 100644 --- a/Modules/Weladee_Attendances/models/grpcproto/timesheet_pb2.py +++ b/Modules/Weladee_Attendances/models/grpcproto/timesheet_pb2.py @@ -2,8 +2,6 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: timesheet.proto -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection @@ -13,6 +11,8 @@ _sym_db = _symbol_database.Default() +# INSERTED CODE -- DO NOT EDIT +# timestamp : Fri Jul 10 2020 16:53:00 GMT+0700 (Indochina Time) from . import weladee_pb2 as weladee__pb2 @@ -20,8 +20,8 @@ name='timesheet.proto', package='grpc.weladee.com', syntax='proto3', - serialized_options=_b('\n\037com.frontware.weladee_timesheetB\013WeladeeGRPCH\003P\001\220\001\001'), - serialized_pb=_b('\n\x0ftimesheet.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\"X\n\x16\x45mployeeProjectRequest\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x1e\n\nCustomerID\x18\x02 \x01(\x03R\ncustomerid\"S\n\x13\x45mployeeTaskRequest\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\"\xe0\x04\n\x0cSheetRequest\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x1c\n\tProjectID\x18\n \x01(\x03R\tprojectid\x12\x12\n\x04\x46rom\x18\x07 \x01(\x05R\x04\x66rom\x12\x0e\n\x02To\x18\x08 \x01(\x05R\x02to\x12\x16\n\x06TaskID\x18\x03 \x01(\x03R\x06taskid\x12\x1f\n\nWorkTypeID\x18\t \x01(\x03R\x0bwork_typeid\x12\x1e\n\nCustomerID\x18\x05 \x01(\x03R\ncustomerid\x12\x31\n\x06Locked\x18\x12 \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06locked\x12\x10\n\x03XLS\x18\x13 \x01(\x08R\x03xls\x12\x16\n\x06TeamID\x18\x14 \x01(\x03R\x06teamid\x12\x1b\n\x08TeamName\x18\x1e \x01(\tR\tteam_name\x12#\n\x0c\x45mployeeName\x18\x1f \x01(\tR\remployee_name\x12\x1b\n\x08TaskName\x18 \x01(\tR\ttask_name\x12!\n\x0bProjectName\x18! \x01(\tR\x0cproject_name\x12#\n\x0c\x43ustomerName\x18\" \x01(\tR\rcustomer_name\x12!\n\x0bProjectCode\x18# \x01(\tR\x0cproject_code\x12\x1b\n\x08TaskCode\x18$ \x01(\tR\ttask_code\x12\x1b\n\x08LockedBy\x18% \x01(\x03R\tlocked_by\x12$\n\x0cWorkTypeName\x18( \x01(\tR\x0ework_type_name\"\xf0\x07\n\x05Sheet\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12\x16\n\x06TaskID\x18\x03 \x01(\x03R\x06taskid\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x1e\n\nCustomerID\x18\x01 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\n \x01(\x03R\tprojectid\x12\x1f\n\nWorkTypeID\x18\t \x01(\x03R\x0bwork_typeid\x12\x16\n\x06locked\x18\x05 \x01(\x08R\x06locked\x12\x1d\n\tTimeSpent\x18\x06 \x01(\x05R\ntime_spent\x12\x10\n\x03\x44\x61y\x18\x07 \x01(\x05R\x03\x64\x61y\x12 \n\x0b\x44\x65scription\x18\x08 \x01(\tR\x0b\x64\x65scription\x12\x18\n\x07Weekday\x18\x0e \x01(\rR\x07weekday\x12\x12\n\x04Note\x18\x0b \x01(\tR\x04note\x12\x12\n\x04\x46rom\x18\x0c \x01(\tR\x04\x66rom\x12\x0e\n\x02To\x18\r \x01(\tR\x02to\x12\x12\n\x04\x43ost\x18. \x01(\x01R\x04\x63ost\x12#\n\x0c\x45mployeeName\x18\x13 \x01(\tR\remployee_name\x12\x1b\n\x08TeamName\x18\x1d \x01(\tR\tteam_name\x12#\n\x0c\x43ustomerName\x18\x17 \x01(\tR\rcustomer_name\x12!\n\x0bProjectName\x18\x14 \x01(\tR\x0cproject_name\x12\x1b\n\x08TaskName\x18\x15 \x01(\tR\ttask_name\x12$\n\x0cWorkTypeName\x18\x16 \x01(\tR\x0ework_type_name\x12!\n\x0bProjectCode\x18\x18 \x01(\tR\x0cproject_code\x12\x1b\n\x08TaskCode\x18\x19 \x01(\tR\ttask_code\x12$\n\x0cWorkTypeCode\x18\x1a \x01(\tR\x0ework_type_code\x12#\n\x0c\x45mployeeCode\x18\x1b \x01(\tR\remployee_code\x12\x1b\n\x08LockedBy\x18$ \x01(\x03R\tlocked_by\x12\x1b\n\x08LockedOn\x18% \x01(\x03R\tlocked_on\x12/\n\x12ProjectDescription\x18& \x01(\tR\x13project_description\x12)\n\x0fTaskDescription\x18\' \x01(\tR\x10task_description\x12\x1f\n\nProjectURL\x18( \x01(\tR\x0bproject_url\x12\x19\n\x07TaskURL\x18) \x01(\tR\x08task_url\x12$\n\x0cLockedByName\x18- \x01(\tR\x0elocked_by_name\x12\x1f\n\nTaskStatus\x18\x32 \x01(\rR\x0btask_status\"\x90\x04\n\tSheetStat\x12\x16\n\x06TaskID\x18\x03 \x01(\x03R\x06taskid\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x1e\n\nCustomerID\x18\x01 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\n \x01(\x03R\tprojectid\x12\x1f\n\nWorkTypeID\x18\t \x01(\x03R\x0bwork_typeid\x12\x1d\n\tTimeSpent\x18\x06 \x01(\x05R\ntime_spent\x12#\n\x0c\x45mployeeName\x18\x13 \x01(\tR\remployee_name\x12#\n\x0c\x43ustomerName\x18\x17 \x01(\tR\rcustomer_name\x12!\n\x0bProjectName\x18\x14 \x01(\tR\x0cproject_name\x12\x1b\n\x08TaskName\x18\x15 \x01(\tR\ttask_name\x12$\n\x0cWorkTypeName\x18\x16 \x01(\tR\x0ework_type_name\x12!\n\x0bProjectCode\x18\x18 \x01(\tR\x0cproject_code\x12\x1b\n\x08TaskCode\x18\x19 \x01(\tR\ttask_code\x12$\n\x0cWorkTypeCode\x18\x1a \x01(\tR\x0ework_type_code\x12#\n\x0c\x45mployeeCode\x18\x1b \x01(\tR\remployee_code\x12\x12\n\x04\x43ost\x18\x1e \x01(\x01R\x04\x63ost\"\xf6\x02\n\x08\x43ustomer\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x12\n\x04Note\x18\x06 \x01(\tR\x04note\x12\x14\n\x08Language\x18\x07 \x01(\tR\x02lg\x12\x14\n\x05\x65mail\x18\t \x01(\tR\x05\x65mail\x12\x18\n\x07\x61\x64\x64ress\x18\n \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ity\x18\x0b \x01(\tR\x04\x63ity\x12\x1a\n\x08postcode\x18\x0c \x01(\tR\x08postcode\x12\x18\n\x07\x63ountry\x18\r \x01(\tR\x07\x63ountry\x12\x10\n\x03URL\x18\x0e \x01(\tR\x03url\x12\x1a\n\x08Latitude\x18\x15 \x01(\x01R\x08latitude\x12\x1c\n\tLongitude\x18\x16 \x01(\x01R\tlongitude\"\xd6\x01\n\x05Stage\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x14\n\x05Order\x18\x02 \x01(\rR\x05order\x12!\n\x0bNameEnglish\x18\x04 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x05 \x01(\tR\tname_thai\x12\x14\n\x05\x43olor\x18\x06 \x01(\tR\x05\x63olor\x12\x16\n\x06\x61\x63tive\x18\x07 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\x08 \x01(\tR\x04note\x12%\n\rFillTimeSheet\x18\n \x01(\x08R\x0e\x66ill_timesheet\"\xd1\x04\n\x07Project\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x1e\n\nCustomerID\x18\x05 \x01(\x03R\ncustomerid\x12\x16\n\x06\x61\x63tive\x18\x06 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\x07 \x01(\tR\x04note\x12\x10\n\x03URL\x18\x0e \x01(\tR\x03url\x12/\n\x12\x44\x65scriptionEnglish\x18\x0f \x01(\tR\x13\x64\x65scription_english\x12)\n\x0f\x44\x65scriptionThai\x18\x10 \x01(\tR\x10\x64\x65scription_thai\x12\x32\n\x13\x43ustomerNameEnglish\x18\x14 \x01(\tR\x15\x63ustomer_name_english\x12,\n\x10\x43ustomerNameThai\x18\x15 \x01(\tR\x12\x63ustomer_name_thai\x12\x42\n\x1a\x44\x65\x66\x61ultWorkTypeNameEnglish\x18\x16 \x01(\tR\x1e\x64\x65\x66\x61ult_work_type_name_english\x12<\n\x17\x44\x65\x66\x61ultWorkTypeNameThai\x18\x17 \x01(\tR\x1b\x64\x65\x66\x61ult_work_type_name_thai\x12.\n\x11\x44\x65\x66\x61ultWorkTypeID\x18\t \x01(\x03R\x13\x64\x65\x66\x61ult_work_typeid\x12\x14\n\x05Score\x18P \x01(\rR\x05score\"\xb8\x06\n\x04Task\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x1c\n\tProjectID\x18\x05 \x01(\x03R\tprojectid\x12\x16\n\x06\x61\x63tive\x18\x06 \x01(\x08R\x06\x61\x63tive\x12\x16\n\x06Status\x18\x07 \x01(\rR\x06status\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x12\n\x04Note\x18\t \x01(\tR\x04note\x12.\n\x11\x44\x65\x66\x61ultWorkTypeID\x18\n \x01(\x03R\x13\x64\x65\x66\x61ult_work_typeid\x12\x1e\n\nCustomerID\x18\x0b \x01(\x03R\ncustomerid\x12\x10\n\x03URL\x18\x0e \x01(\tR\x03url\x12/\n\x12\x44\x65scriptionEnglish\x18\x0f \x01(\tR\x13\x64\x65scription_english\x12)\n\x0f\x44\x65scriptionThai\x18\x10 \x01(\tR\x10\x64\x65scription_thai\x12\x30\n\x12ProjectNameEnglish\x18\x14 \x01(\tR\x14project_name_english\x12*\n\x0fProjectNameThai\x18\x15 \x01(\tR\x11project_name_thai\x12,\n\x10\x43ustomerNameThai\x18\x16 \x01(\tR\x12\x63ustomer_name_thai\x12\x32\n\x13\x43ustomerNameEnglish\x18\x17 \x01(\tR\x15\x63ustomer_name_english\x12\x1a\n\x08\x44\x65\x61\x64line\x18\x19 \x01(\x05R\x08\x64\x65\x61\x64line\x12\x1e\n\nEstimation\x18\x1a \x01(\rR\nestimation\x12\x42\n\x1a\x44\x65\x66\x61ultWorkTypeNameEnglish\x18\x1e \x01(\tR\x1e\x64\x65\x66\x61ult_work_type_name_english\x12<\n\x17\x44\x65\x66\x61ultWorkTypeNameThai\x18\x1f \x01(\tR\x1b\x64\x65\x66\x61ult_work_type_name_thai\x12\x18\n\x07StageID\x18( \x01(\x03R\x07stageid\x12\x14\n\x05Score\x18P \x01(\rR\x05score\"\x9a\x01\n\x08WorkType\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x16\n\x06\x61\x63tive\x18\x06 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\t \x01(\tR\x04note\"F\n\x0cTaskEmployee\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x16\n\x06TaskID\x18\x02 \x01(\x03R\x06taskid\"O\n\x0fProjectEmployee\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\"\xe3\x02\n\x08Settings\x12\x1b\n\x08TaskTime\x18\x01 \x01(\x08R\ttask_time\x12#\n\x0cTaskDeadLine\x18\x02 \x01(\x08R\rtask_deadline\x12\x1f\n\nTaskStatus\x18\x03 \x01(\x08R\x0btask_status\x12,\n\x10SheetSoundRecord\x18\x04 \x01(\x08R\x12sheet_sound_record\x12\x36\n\x15SheetCommentMandatory\x18\x05 \x01(\x08R\x17sheet_comment_mandatory\x12#\n\x0cSheetPicture\x18\x06 \x01(\x08R\rsheet_picture\x12\'\n\x0eTaskEstimation\x18\t \x01(\x08R\x0ftask_estimation\x12*\n\x0f\x44\x61ilySheetEmail\x18\n \x01(\rR\x11\x64\x61ily_sheet_email\x12\x14\n\x05Stage\x18\x0b \x01(\x08R\x05stage\"K\n\x0bLockRequest\x12\x0c\n\x04year\x18\x01 \x01(\r\x12\r\n\x05month\x18\x02 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\r\x12\x12\n\nEmployeeID\x18\x04 \x01(\x03\"a\n\x0c\x43heckRequest\x12\x0c\n\x04year\x18\x01 \x01(\r\x12\r\n\x05month\x18\x02 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\r\x12\x12\n\nEmployeeID\x18\x04 \x01(\x03\x12\x13\n\x0b\x44\x65scription\x18\x05 \x01(\t\"\xcc\x01\n\x0eSheetTimeSpent\x12\x10\n\x03\x44\x61y\x18\x01 \x01(\x03R\x03\x64\x61y\x12\x1d\n\tTimeSpent\x18\x02 \x01(\x03R\ntime_spent\x12\x16\n\x06locked\x18\x03 \x01(\x08R\x06locked\x12\x18\n\x07holiday\x18\x04 \x01(\x08R\x07holiday\x12\x1d\n\tSickLeave\x18\x05 \x01(\x08R\nsick_leave\x12\x38\n\x07\x44\x61yPart\x18\x06 \x01(\x0e\x32\x1d.grpc.weladee.com.HolidayTimeR\x08\x64\x61y_part\"\xcd\x02\n\x0bTaskRequest\x12\x1e\n\nCustomerID\x18\x01 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\x12\x0e\n\x02ID\x18\x03 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x12\n\x04\x43ode\x18\x05 \x01(\tR\x04\x63ode\x12\x31\n\x06\x61\x63tive\x18\n \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06\x61\x63tive\x12\x1b\n\x08TaskName\x18\x0b \x01(\tR\ttask_name\x12!\n\x0bProjectName\x18\x0c \x01(\tR\x0cproject_name\x12#\n\x0c\x43ustomerName\x18\r \x01(\tR\rcustomer_name\x12\x12\n\x04\x44\x61te\x18\x0e \x01(\rR\x04\x64\x61te\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"F\n\x0cProjectStage\x12\x1c\n\tProjectID\x18\x01 \x01(\x03R\tprojectid\x12\x18\n\x07StageID\x18\x02 \x01(\x03R\x07stageid\"\xc3\x01\n\x0cStageRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\x12\x31\n\x06\x41\x63tive\x18\n \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06\x61\x63tive\x12\x1d\n\tStageName\x18\x0b \x01(\tR\nstage_name\x12!\n\x0bProjectName\x18\x0c \x01(\tR\x0cproject_name\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"\x94\x02\n\x0eProjectRequest\x12\x0b\n\x03IDs\x18\x01 \x03(\x03\x12\x38\n\tWithStage\x18\x03 \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\nwith_stage\x12)\n\x06\x61\x63tive\x18\x02 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x0e\n\x06Offset\x18\t \x01(\x03\x12\r\n\x05Limit\x18\n \x01(\x03\x12\x0c\n\x04\x43ode\x18\x0c \x01(\t\x12\x12\n\nEmployeeID\x18\r \x01(\x03\x12\x13\n\x0bProjectName\x18\x12 \x01(\t\x12\x12\n\nCustomerID\x18\x13 \x01(\x03\x12\x14\n\x0c\x43ustomerName\x18\x14 \x01(\t\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\";\n\x08NewSheet\x12\x0c\n\x04\x44\x61te\x18\x01 \x01(\x05\x12\x11\n\tProjectID\x18\x02 \x01(\x03\x12\x0e\n\x06TaskID\x18\x03 \x01(\x03\x42\x35\n\x1f\x63om.frontware.weladee_timesheetB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\x62\x06proto3') + serialized_options=b'\n\037com.frontware.weladee_timesheetB\013WeladeeGRPCH\003P\001\220\001\001', + serialized_pb=b'\n\x0ftimesheet.proto\x12\x10grpc.weladee.com\x1a\rweladee.proto\"X\n\x16\x45mployeeProjectRequest\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x1e\n\nCustomerID\x18\x02 \x01(\x03R\ncustomerid\"S\n\x13\x45mployeeTaskRequest\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\"\xe0\x04\n\x0cSheetRequest\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x1c\n\tProjectID\x18\n \x01(\x03R\tprojectid\x12\x12\n\x04\x46rom\x18\x07 \x01(\x05R\x04\x66rom\x12\x0e\n\x02To\x18\x08 \x01(\x05R\x02to\x12\x16\n\x06TaskID\x18\x03 \x01(\x03R\x06taskid\x12\x1f\n\nWorkTypeID\x18\t \x01(\x03R\x0bwork_typeid\x12\x1e\n\nCustomerID\x18\x05 \x01(\x03R\ncustomerid\x12\x31\n\x06Locked\x18\x12 \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06locked\x12\x10\n\x03XLS\x18\x13 \x01(\x08R\x03xls\x12\x16\n\x06TeamID\x18\x14 \x01(\x03R\x06teamid\x12\x1b\n\x08TeamName\x18\x1e \x01(\tR\tteam_name\x12#\n\x0c\x45mployeeName\x18\x1f \x01(\tR\remployee_name\x12\x1b\n\x08TaskName\x18 \x01(\tR\ttask_name\x12!\n\x0bProjectName\x18! \x01(\tR\x0cproject_name\x12#\n\x0c\x43ustomerName\x18\" \x01(\tR\rcustomer_name\x12!\n\x0bProjectCode\x18# \x01(\tR\x0cproject_code\x12\x1b\n\x08TaskCode\x18$ \x01(\tR\ttask_code\x12\x1b\n\x08LockedBy\x18% \x01(\x03R\tlocked_by\x12$\n\x0cWorkTypeName\x18( \x01(\tR\x0ework_type_name\"\xf0\x07\n\x05Sheet\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12\x16\n\x06TaskID\x18\x03 \x01(\x03R\x06taskid\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x1e\n\nCustomerID\x18\x01 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\n \x01(\x03R\tprojectid\x12\x1f\n\nWorkTypeID\x18\t \x01(\x03R\x0bwork_typeid\x12\x16\n\x06locked\x18\x05 \x01(\x08R\x06locked\x12\x1d\n\tTimeSpent\x18\x06 \x01(\x05R\ntime_spent\x12\x10\n\x03\x44\x61y\x18\x07 \x01(\x05R\x03\x64\x61y\x12 \n\x0b\x44\x65scription\x18\x08 \x01(\tR\x0b\x64\x65scription\x12\x18\n\x07Weekday\x18\x0e \x01(\rR\x07weekday\x12\x12\n\x04Note\x18\x0b \x01(\tR\x04note\x12\x12\n\x04\x46rom\x18\x0c \x01(\tR\x04\x66rom\x12\x0e\n\x02To\x18\r \x01(\tR\x02to\x12\x12\n\x04\x43ost\x18. \x01(\x01R\x04\x63ost\x12#\n\x0c\x45mployeeName\x18\x13 \x01(\tR\remployee_name\x12\x1b\n\x08TeamName\x18\x1d \x01(\tR\tteam_name\x12#\n\x0c\x43ustomerName\x18\x17 \x01(\tR\rcustomer_name\x12!\n\x0bProjectName\x18\x14 \x01(\tR\x0cproject_name\x12\x1b\n\x08TaskName\x18\x15 \x01(\tR\ttask_name\x12$\n\x0cWorkTypeName\x18\x16 \x01(\tR\x0ework_type_name\x12!\n\x0bProjectCode\x18\x18 \x01(\tR\x0cproject_code\x12\x1b\n\x08TaskCode\x18\x19 \x01(\tR\ttask_code\x12$\n\x0cWorkTypeCode\x18\x1a \x01(\tR\x0ework_type_code\x12#\n\x0c\x45mployeeCode\x18\x1b \x01(\tR\remployee_code\x12\x1b\n\x08LockedBy\x18$ \x01(\x03R\tlocked_by\x12\x1b\n\x08LockedOn\x18% \x01(\x03R\tlocked_on\x12/\n\x12ProjectDescription\x18& \x01(\tR\x13project_description\x12)\n\x0fTaskDescription\x18\' \x01(\tR\x10task_description\x12\x1f\n\nProjectURL\x18( \x01(\tR\x0bproject_url\x12\x19\n\x07TaskURL\x18) \x01(\tR\x08task_url\x12$\n\x0cLockedByName\x18- \x01(\tR\x0elocked_by_name\x12\x1f\n\nTaskStatus\x18\x32 \x01(\rR\x0btask_status\"\x90\x04\n\tSheetStat\x12\x16\n\x06TaskID\x18\x03 \x01(\x03R\x06taskid\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x1e\n\nCustomerID\x18\x01 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\n \x01(\x03R\tprojectid\x12\x1f\n\nWorkTypeID\x18\t \x01(\x03R\x0bwork_typeid\x12\x1d\n\tTimeSpent\x18\x06 \x01(\x05R\ntime_spent\x12#\n\x0c\x45mployeeName\x18\x13 \x01(\tR\remployee_name\x12#\n\x0c\x43ustomerName\x18\x17 \x01(\tR\rcustomer_name\x12!\n\x0bProjectName\x18\x14 \x01(\tR\x0cproject_name\x12\x1b\n\x08TaskName\x18\x15 \x01(\tR\ttask_name\x12$\n\x0cWorkTypeName\x18\x16 \x01(\tR\x0ework_type_name\x12!\n\x0bProjectCode\x18\x18 \x01(\tR\x0cproject_code\x12\x1b\n\x08TaskCode\x18\x19 \x01(\tR\ttask_code\x12$\n\x0cWorkTypeCode\x18\x1a \x01(\tR\x0ework_type_code\x12#\n\x0c\x45mployeeCode\x18\x1b \x01(\tR\remployee_code\x12\x12\n\x04\x43ost\x18\x1e \x01(\x01R\x04\x63ost\"\xf6\x02\n\x08\x43ustomer\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x12\n\x04Note\x18\x06 \x01(\tR\x04note\x12\x14\n\x08Language\x18\x07 \x01(\tR\x02lg\x12\x14\n\x05\x65mail\x18\t \x01(\tR\x05\x65mail\x12\x18\n\x07\x61\x64\x64ress\x18\n \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ity\x18\x0b \x01(\tR\x04\x63ity\x12\x1a\n\x08postcode\x18\x0c \x01(\tR\x08postcode\x12\x18\n\x07\x63ountry\x18\r \x01(\tR\x07\x63ountry\x12\x10\n\x03URL\x18\x0e \x01(\tR\x03url\x12\x1a\n\x08Latitude\x18\x15 \x01(\x01R\x08latitude\x12\x1c\n\tLongitude\x18\x16 \x01(\x01R\tlongitude\"\xd6\x01\n\x05Stage\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x14\n\x05Order\x18\x02 \x01(\rR\x05order\x12!\n\x0bNameEnglish\x18\x04 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x05 \x01(\tR\tname_thai\x12\x14\n\x05\x43olor\x18\x06 \x01(\tR\x05\x63olor\x12\x16\n\x06\x61\x63tive\x18\x07 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\x08 \x01(\tR\x04note\x12%\n\rFillTimeSheet\x18\n \x01(\x08R\x0e\x66ill_timesheet\"\xd1\x04\n\x07Project\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x1e\n\nCustomerID\x18\x05 \x01(\x03R\ncustomerid\x12\x16\n\x06\x61\x63tive\x18\x06 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\x07 \x01(\tR\x04note\x12\x10\n\x03URL\x18\x0e \x01(\tR\x03url\x12/\n\x12\x44\x65scriptionEnglish\x18\x0f \x01(\tR\x13\x64\x65scription_english\x12)\n\x0f\x44\x65scriptionThai\x18\x10 \x01(\tR\x10\x64\x65scription_thai\x12\x32\n\x13\x43ustomerNameEnglish\x18\x14 \x01(\tR\x15\x63ustomer_name_english\x12,\n\x10\x43ustomerNameThai\x18\x15 \x01(\tR\x12\x63ustomer_name_thai\x12\x42\n\x1a\x44\x65\x66\x61ultWorkTypeNameEnglish\x18\x16 \x01(\tR\x1e\x64\x65\x66\x61ult_work_type_name_english\x12<\n\x17\x44\x65\x66\x61ultWorkTypeNameThai\x18\x17 \x01(\tR\x1b\x64\x65\x66\x61ult_work_type_name_thai\x12.\n\x11\x44\x65\x66\x61ultWorkTypeID\x18\t \x01(\x03R\x13\x64\x65\x66\x61ult_work_typeid\x12\x14\n\x05Score\x18P \x01(\rR\x05score\"\xb8\x06\n\x04Task\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x1c\n\tProjectID\x18\x05 \x01(\x03R\tprojectid\x12\x16\n\x06\x61\x63tive\x18\x06 \x01(\x08R\x06\x61\x63tive\x12\x16\n\x06Status\x18\x07 \x01(\rR\x06status\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x12\n\x04Note\x18\t \x01(\tR\x04note\x12.\n\x11\x44\x65\x66\x61ultWorkTypeID\x18\n \x01(\x03R\x13\x64\x65\x66\x61ult_work_typeid\x12\x1e\n\nCustomerID\x18\x0b \x01(\x03R\ncustomerid\x12\x10\n\x03URL\x18\x0e \x01(\tR\x03url\x12/\n\x12\x44\x65scriptionEnglish\x18\x0f \x01(\tR\x13\x64\x65scription_english\x12)\n\x0f\x44\x65scriptionThai\x18\x10 \x01(\tR\x10\x64\x65scription_thai\x12\x30\n\x12ProjectNameEnglish\x18\x14 \x01(\tR\x14project_name_english\x12*\n\x0fProjectNameThai\x18\x15 \x01(\tR\x11project_name_thai\x12,\n\x10\x43ustomerNameThai\x18\x16 \x01(\tR\x12\x63ustomer_name_thai\x12\x32\n\x13\x43ustomerNameEnglish\x18\x17 \x01(\tR\x15\x63ustomer_name_english\x12\x1a\n\x08\x44\x65\x61\x64line\x18\x19 \x01(\x05R\x08\x64\x65\x61\x64line\x12\x1e\n\nEstimation\x18\x1a \x01(\rR\nestimation\x12\x42\n\x1a\x44\x65\x66\x61ultWorkTypeNameEnglish\x18\x1e \x01(\tR\x1e\x64\x65\x66\x61ult_work_type_name_english\x12<\n\x17\x44\x65\x66\x61ultWorkTypeNameThai\x18\x1f \x01(\tR\x1b\x64\x65\x66\x61ult_work_type_name_thai\x12\x18\n\x07StageID\x18( \x01(\x03R\x07stageid\x12\x14\n\x05Score\x18P \x01(\rR\x05score\"\x9a\x01\n\x08WorkType\x12\x0e\n\x02ID\x18\x02 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x03 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x04 \x01(\tR\tname_thai\x12\x12\n\x04\x43ode\x18\x08 \x01(\tR\x04\x63ode\x12\x16\n\x06\x61\x63tive\x18\x06 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\t \x01(\tR\x04note\"F\n\x0cTaskEmployee\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x16\n\x06TaskID\x18\x02 \x01(\x03R\x06taskid\"O\n\x0fProjectEmployee\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\"\x98\x03\n\x14TimeSheetPreferences\x12\x1b\n\x08TaskTime\x18\x01 \x01(\x08R\ttask_time\x12#\n\x0cTaskDeadLine\x18\x02 \x01(\x08R\rtask_deadline\x12\x1f\n\nTaskStatus\x18\x03 \x01(\x08R\x0btask_status\x12,\n\x10SheetSoundRecord\x18\x04 \x01(\x08R\x12sheet_sound_record\x12\x36\n\x15SheetCommentMandatory\x18\x05 \x01(\x08R\x17sheet_comment_mandatory\x12#\n\x0cSheetPicture\x18\x06 \x01(\x08R\rsheet_picture\x12\'\n\x0eTaskEstimation\x18\t \x01(\x08R\x0ftask_estimation\x12*\n\x0f\x44\x61ilySheetEmail\x18\n \x01(\rR\x11\x64\x61ily_sheet_email\x12\x14\n\x05Stage\x18\x0b \x01(\x08R\x05stage\x12\'\n\x0eRemindEmployee\x18\x0c \x01(\x08R\x0fremind_employee\"K\n\x0bLockRequest\x12\x0c\n\x04year\x18\x01 \x01(\r\x12\r\n\x05month\x18\x02 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\r\x12\x12\n\nEmployeeID\x18\x04 \x01(\x03\"a\n\x0c\x43heckRequest\x12\x0c\n\x04year\x18\x01 \x01(\r\x12\r\n\x05month\x18\x02 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\r\x12\x12\n\nEmployeeID\x18\x04 \x01(\x03\x12\x13\n\x0b\x44\x65scription\x18\x05 \x01(\t\"\xcc\x01\n\x0eSheetTimeSpent\x12\x10\n\x03\x44\x61y\x18\x01 \x01(\x03R\x03\x64\x61y\x12\x1d\n\tTimeSpent\x18\x02 \x01(\x03R\ntime_spent\x12\x16\n\x06locked\x18\x03 \x01(\x08R\x06locked\x12\x18\n\x07holiday\x18\x04 \x01(\x08R\x07holiday\x12\x1d\n\tSickLeave\x18\x05 \x01(\x08R\nsick_leave\x12\x38\n\x07\x44\x61yPart\x18\x06 \x01(\x0e\x32\x1d.grpc.weladee.com.HolidayTimeR\x08\x64\x61y_part\"\xcd\x02\n\x0bTaskRequest\x12\x1e\n\nCustomerID\x18\x01 \x01(\x03R\ncustomerid\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\x12\x0e\n\x02ID\x18\x03 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\x04 \x01(\x03R\nemployeeid\x12\x12\n\x04\x43ode\x18\x05 \x01(\tR\x04\x63ode\x12\x31\n\x06\x61\x63tive\x18\n \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06\x61\x63tive\x12\x1b\n\x08TaskName\x18\x0b \x01(\tR\ttask_name\x12!\n\x0bProjectName\x18\x0c \x01(\tR\x0cproject_name\x12#\n\x0c\x43ustomerName\x18\r \x01(\tR\rcustomer_name\x12\x12\n\x04\x44\x61te\x18\x0e \x01(\rR\x04\x64\x61te\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"F\n\x0cProjectStage\x12\x1c\n\tProjectID\x18\x01 \x01(\x03R\tprojectid\x12\x18\n\x07StageID\x18\x02 \x01(\x03R\x07stageid\"\xc3\x01\n\x0cStageRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tProjectID\x18\x02 \x01(\x03R\tprojectid\x12\x31\n\x06\x41\x63tive\x18\n \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06\x61\x63tive\x12\x1d\n\tStageName\x18\x0b \x01(\tR\nstage_name\x12!\n\x0bProjectName\x18\x0c \x01(\tR\x0cproject_name\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\"\x94\x02\n\x0eProjectRequest\x12\x0b\n\x03IDs\x18\x01 \x03(\x03\x12\x38\n\tWithStage\x18\x03 \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\nwith_stage\x12)\n\x06\x61\x63tive\x18\x02 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x0e\n\x06Offset\x18\t \x01(\x03\x12\r\n\x05Limit\x18\n \x01(\x03\x12\x0c\n\x04\x43ode\x18\x0c \x01(\t\x12\x12\n\nEmployeeID\x18\r \x01(\x03\x12\x13\n\x0bProjectName\x18\x12 \x01(\t\x12\x12\n\nCustomerID\x18\x13 \x01(\x03\x12\x14\n\x0c\x43ustomerName\x18\x14 \x01(\t\x12\x10\n\x03XLS\x18\x15 \x01(\x08R\x03xls\";\n\x08NewSheet\x12\x0c\n\x04\x44\x61te\x18\x01 \x01(\x05\x12\x11\n\tProjectID\x18\x02 \x01(\x03\x12\x0e\n\x06TaskID\x18\x03 \x01(\x03\x42\x35\n\x1f\x63om.frontware.weladee_timesheetB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\x62\x06proto3' , dependencies=[weladee__pb2.DESCRIPTOR,]) @@ -191,49 +191,49 @@ _descriptor.FieldDescriptor( name='TeamName', full_name='grpc.weladee.com.SheetRequest.TeamName', index=11, number=30, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='team_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='EmployeeName', full_name='grpc.weladee.com.SheetRequest.EmployeeName', index=12, number=31, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskName', full_name='grpc.weladee.com.SheetRequest.TaskName', index=13, number=32, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.SheetRequest.ProjectName', index=14, number=33, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerName', full_name='grpc.weladee.com.SheetRequest.CustomerName', index=15, number=34, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectCode', full_name='grpc.weladee.com.SheetRequest.ProjectCode', index=16, number=35, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskCode', full_name='grpc.weladee.com.SheetRequest.TaskCode', index=17, number=36, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_code', file=DESCRIPTOR), @@ -247,7 +247,7 @@ _descriptor.FieldDescriptor( name='WorkTypeName', full_name='grpc.weladee.com.SheetRequest.WorkTypeName', index=19, number=40, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='work_type_name', file=DESCRIPTOR), @@ -341,7 +341,7 @@ _descriptor.FieldDescriptor( name='Description', full_name='grpc.weladee.com.Sheet.Description', index=9, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='description', file=DESCRIPTOR), @@ -355,21 +355,21 @@ _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.Sheet.Note', index=11, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='From', full_name='grpc.weladee.com.Sheet.From', index=12, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='from', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='To', full_name='grpc.weladee.com.Sheet.To', index=13, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='to', file=DESCRIPTOR), @@ -383,70 +383,70 @@ _descriptor.FieldDescriptor( name='EmployeeName', full_name='grpc.weladee.com.Sheet.EmployeeName', index=15, number=19, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TeamName', full_name='grpc.weladee.com.Sheet.TeamName', index=16, number=29, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='team_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerName', full_name='grpc.weladee.com.Sheet.CustomerName', index=17, number=23, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.Sheet.ProjectName', index=18, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskName', full_name='grpc.weladee.com.Sheet.TaskName', index=19, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WorkTypeName', full_name='grpc.weladee.com.Sheet.WorkTypeName', index=20, number=22, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='work_type_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectCode', full_name='grpc.weladee.com.Sheet.ProjectCode', index=21, number=24, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskCode', full_name='grpc.weladee.com.Sheet.TaskCode', index=22, number=25, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WorkTypeCode', full_name='grpc.weladee.com.Sheet.WorkTypeCode', index=23, number=26, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='work_type_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='EmployeeCode', full_name='grpc.weladee.com.Sheet.EmployeeCode', index=24, number=27, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_code', file=DESCRIPTOR), @@ -467,35 +467,35 @@ _descriptor.FieldDescriptor( name='ProjectDescription', full_name='grpc.weladee.com.Sheet.ProjectDescription', index=27, number=38, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_description', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskDescription', full_name='grpc.weladee.com.Sheet.TaskDescription', index=28, number=39, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_description', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectURL', full_name='grpc.weladee.com.Sheet.ProjectURL', index=29, number=40, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_url', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskURL', full_name='grpc.weladee.com.Sheet.TaskURL', index=30, number=41, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_url', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='LockedByName', full_name='grpc.weladee.com.Sheet.LockedByName', index=31, number=45, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='locked_by_name', file=DESCRIPTOR), @@ -575,63 +575,63 @@ _descriptor.FieldDescriptor( name='EmployeeName', full_name='grpc.weladee.com.SheetStat.EmployeeName', index=6, number=19, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerName', full_name='grpc.weladee.com.SheetStat.CustomerName', index=7, number=23, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.SheetStat.ProjectName', index=8, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskName', full_name='grpc.weladee.com.SheetStat.TaskName', index=9, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WorkTypeName', full_name='grpc.weladee.com.SheetStat.WorkTypeName', index=10, number=22, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='work_type_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectCode', full_name='grpc.weladee.com.SheetStat.ProjectCode', index=11, number=24, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaskCode', full_name='grpc.weladee.com.SheetStat.TaskCode', index=12, number=25, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WorkTypeCode', full_name='grpc.weladee.com.SheetStat.WorkTypeCode', index=13, number=26, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='work_type_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='EmployeeCode', full_name='grpc.weladee.com.SheetStat.EmployeeCode', index=14, number=27, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_code', file=DESCRIPTOR), @@ -676,14 +676,14 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Customer.NameEnglish', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Customer.NameThai', index=2, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -697,63 +697,63 @@ _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.Customer.Code', index=4, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.Customer.Note', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Language', full_name='grpc.weladee.com.Customer.Language', index=6, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='lg', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='email', full_name='grpc.weladee.com.Customer.email', index=7, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='email', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='address', full_name='grpc.weladee.com.Customer.address', index=8, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='address', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='city', full_name='grpc.weladee.com.Customer.city', index=9, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='city', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='postcode', full_name='grpc.weladee.com.Customer.postcode', index=10, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='postcode', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='country', full_name='grpc.weladee.com.Customer.country', index=11, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='country', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='URL', full_name='grpc.weladee.com.Customer.URL', index=12, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='url', file=DESCRIPTOR), @@ -812,21 +812,21 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Stage.NameEnglish', index=2, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Stage.NameThai', index=3, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Color', full_name='grpc.weladee.com.Stage.Color', index=4, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='color', file=DESCRIPTOR), @@ -840,7 +840,7 @@ _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.Stage.Note', index=6, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -885,21 +885,21 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Project.NameEnglish', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Project.NameThai', index=2, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.Project.Code', index=3, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), @@ -920,56 +920,56 @@ _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.Project.Note', index=6, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='URL', full_name='grpc.weladee.com.Project.URL', index=7, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='url', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DescriptionEnglish', full_name='grpc.weladee.com.Project.DescriptionEnglish', index=8, number=15, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='description_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DescriptionThai', full_name='grpc.weladee.com.Project.DescriptionThai', index=9, number=16, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='description_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerNameEnglish', full_name='grpc.weladee.com.Project.CustomerNameEnglish', index=10, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerNameThai', full_name='grpc.weladee.com.Project.CustomerNameThai', index=11, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DefaultWorkTypeNameEnglish', full_name='grpc.weladee.com.Project.DefaultWorkTypeNameEnglish', index=12, number=22, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='default_work_type_name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DefaultWorkTypeNameThai', full_name='grpc.weladee.com.Project.DefaultWorkTypeNameThai', index=13, number=23, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='default_work_type_name_thai', file=DESCRIPTOR), @@ -1021,14 +1021,14 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Task.NameEnglish', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Task.NameThai', index=2, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -1056,14 +1056,14 @@ _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.Task.Code', index=6, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.Task.Note', index=7, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -1084,49 +1084,49 @@ _descriptor.FieldDescriptor( name='URL', full_name='grpc.weladee.com.Task.URL', index=10, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='url', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DescriptionEnglish', full_name='grpc.weladee.com.Task.DescriptionEnglish', index=11, number=15, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='description_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DescriptionThai', full_name='grpc.weladee.com.Task.DescriptionThai', index=12, number=16, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='description_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectNameEnglish', full_name='grpc.weladee.com.Task.ProjectNameEnglish', index=13, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectNameThai', full_name='grpc.weladee.com.Task.ProjectNameThai', index=14, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerNameThai', full_name='grpc.weladee.com.Task.CustomerNameThai', index=15, number=22, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerNameEnglish', full_name='grpc.weladee.com.Task.CustomerNameEnglish', index=16, number=23, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name_english', file=DESCRIPTOR), @@ -1147,14 +1147,14 @@ _descriptor.FieldDescriptor( name='DefaultWorkTypeNameEnglish', full_name='grpc.weladee.com.Task.DefaultWorkTypeNameEnglish', index=19, number=30, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='default_work_type_name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DefaultWorkTypeNameThai', full_name='grpc.weladee.com.Task.DefaultWorkTypeNameThai', index=20, number=31, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='default_work_type_name_thai', file=DESCRIPTOR), @@ -1206,21 +1206,21 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.WorkType.NameEnglish', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.WorkType.NameThai', index=2, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.WorkType.Code', index=3, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), @@ -1234,7 +1234,7 @@ _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.WorkType.Note', index=5, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -1331,76 +1331,83 @@ ) -_SETTINGS = _descriptor.Descriptor( - name='Settings', - full_name='grpc.weladee.com.Settings', +_TIMESHEETPREFERENCES = _descriptor.Descriptor( + name='TimeSheetPreferences', + full_name='grpc.weladee.com.TimeSheetPreferences', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='TaskTime', full_name='grpc.weladee.com.Settings.TaskTime', index=0, + name='TaskTime', full_name='grpc.weladee.com.TimeSheetPreferences.TaskTime', index=0, number=1, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_time', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='TaskDeadLine', full_name='grpc.weladee.com.Settings.TaskDeadLine', index=1, + name='TaskDeadLine', full_name='grpc.weladee.com.TimeSheetPreferences.TaskDeadLine', index=1, number=2, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_deadline', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='TaskStatus', full_name='grpc.weladee.com.Settings.TaskStatus', index=2, + name='TaskStatus', full_name='grpc.weladee.com.TimeSheetPreferences.TaskStatus', index=2, number=3, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_status', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='SheetSoundRecord', full_name='grpc.weladee.com.Settings.SheetSoundRecord', index=3, + name='SheetSoundRecord', full_name='grpc.weladee.com.TimeSheetPreferences.SheetSoundRecord', index=3, number=4, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='sheet_sound_record', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='SheetCommentMandatory', full_name='grpc.weladee.com.Settings.SheetCommentMandatory', index=4, + name='SheetCommentMandatory', full_name='grpc.weladee.com.TimeSheetPreferences.SheetCommentMandatory', index=4, number=5, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='sheet_comment_mandatory', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='SheetPicture', full_name='grpc.weladee.com.Settings.SheetPicture', index=5, + name='SheetPicture', full_name='grpc.weladee.com.TimeSheetPreferences.SheetPicture', index=5, number=6, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='sheet_picture', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='TaskEstimation', full_name='grpc.weladee.com.Settings.TaskEstimation', index=6, + name='TaskEstimation', full_name='grpc.weladee.com.TimeSheetPreferences.TaskEstimation', index=6, number=9, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_estimation', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='DailySheetEmail', full_name='grpc.weladee.com.Settings.DailySheetEmail', index=7, + name='DailySheetEmail', full_name='grpc.weladee.com.TimeSheetPreferences.DailySheetEmail', index=7, number=10, type=13, cpp_type=3, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='daily_sheet_email', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Stage', full_name='grpc.weladee.com.Settings.Stage', index=8, + name='Stage', full_name='grpc.weladee.com.TimeSheetPreferences.Stage', index=8, number=11, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='stage', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='RemindEmployee', full_name='grpc.weladee.com.TimeSheetPreferences.RemindEmployee', index=9, + number=12, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='remind_employee', file=DESCRIPTOR), ], extensions=[ ], @@ -1414,7 +1421,7 @@ oneofs=[ ], serialized_start=4708, - serialized_end=5063, + serialized_end=5116, ) @@ -1465,8 +1472,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5065, - serialized_end=5140, + serialized_start=5118, + serialized_end=5193, ) @@ -1508,7 +1515,7 @@ _descriptor.FieldDescriptor( name='Description', full_name='grpc.weladee.com.CheckRequest.Description', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1524,8 +1531,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5142, - serialized_end=5239, + serialized_start=5195, + serialized_end=5292, ) @@ -1590,8 +1597,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5242, - serialized_end=5446, + serialized_start=5295, + serialized_end=5499, ) @@ -1633,7 +1640,7 @@ _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.TaskRequest.Code', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), @@ -1647,21 +1654,21 @@ _descriptor.FieldDescriptor( name='TaskName', full_name='grpc.weladee.com.TaskRequest.TaskName', index=6, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='task_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.TaskRequest.ProjectName', index=7, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CustomerName', full_name='grpc.weladee.com.TaskRequest.CustomerName', index=8, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_name', file=DESCRIPTOR), @@ -1691,8 +1698,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5449, - serialized_end=5782, + serialized_start=5502, + serialized_end=5835, ) @@ -1729,8 +1736,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5784, - serialized_end=5854, + serialized_start=5837, + serialized_end=5907, ) @@ -1765,14 +1772,14 @@ _descriptor.FieldDescriptor( name='StageName', full_name='grpc.weladee.com.StageRequest.StageName', index=3, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='stage_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.StageRequest.ProjectName', index=4, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='project_name', file=DESCRIPTOR), @@ -1795,8 +1802,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5857, - serialized_end=6052, + serialized_start=5910, + serialized_end=6105, ) @@ -1845,7 +1852,7 @@ _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.ProjectRequest.Code', index=5, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1859,7 +1866,7 @@ _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.ProjectRequest.ProjectName', index=7, number=18, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1873,7 +1880,7 @@ _descriptor.FieldDescriptor( name='CustomerName', full_name='grpc.weladee.com.ProjectRequest.CustomerName', index=9, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1896,8 +1903,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6055, - serialized_end=6331, + serialized_start=6108, + serialized_end=6384, ) @@ -1941,8 +1948,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6333, - serialized_end=6392, + serialized_start=6386, + serialized_end=6445, ) _SHEETREQUEST.fields_by_name['Locked'].enum_type = weladee__pb2._TRINARY @@ -1963,7 +1970,7 @@ DESCRIPTOR.message_types_by_name['WorkType'] = _WORKTYPE DESCRIPTOR.message_types_by_name['TaskEmployee'] = _TASKEMPLOYEE DESCRIPTOR.message_types_by_name['ProjectEmployee'] = _PROJECTEMPLOYEE -DESCRIPTOR.message_types_by_name['Settings'] = _SETTINGS +DESCRIPTOR.message_types_by_name['TimeSheetPreferences'] = _TIMESHEETPREFERENCES DESCRIPTOR.message_types_by_name['LockRequest'] = _LOCKREQUEST DESCRIPTOR.message_types_by_name['CheckRequest'] = _CHECKREQUEST DESCRIPTOR.message_types_by_name['SheetTimeSpent'] = _SHEETTIMESPENT @@ -2058,12 +2065,12 @@ }) _sym_db.RegisterMessage(ProjectEmployee) -Settings = _reflection.GeneratedProtocolMessageType('Settings', (_message.Message,), { - 'DESCRIPTOR' : _SETTINGS, +TimeSheetPreferences = _reflection.GeneratedProtocolMessageType('TimeSheetPreferences', (_message.Message,), { + 'DESCRIPTOR' : _TIMESHEETPREFERENCES, '__module__' : 'timesheet_pb2' - # @@protoc_insertion_point(class_scope:grpc.weladee.com.Settings) + # @@protoc_insertion_point(class_scope:grpc.weladee.com.TimeSheetPreferences) }) -_sym_db.RegisterMessage(Settings) +_sym_db.RegisterMessage(TimeSheetPreferences) LockRequest = _reflection.GeneratedProtocolMessageType('LockRequest', (_message.Message,), { 'DESCRIPTOR' : _LOCKREQUEST, diff --git a/Modules/Weladee_Attendances/models/grpcproto/weladee_pb2.py b/Modules/Weladee_Attendances/models/grpcproto/weladee_pb2.py index 7d5a429..c3d8c5b 100644 --- a/Modules/Weladee_Attendances/models/grpcproto/weladee_pb2.py +++ b/Modules/Weladee_Attendances/models/grpcproto/weladee_pb2.py @@ -2,8 +2,6 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: weladee.proto -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -20,8 +18,8 @@ name='weladee.proto', package='grpc.weladee.com', syntax='proto3', - serialized_options=_b('\n\025com.frontware.weladeeB\013WeladeeGRPCH\003P\001\220\001\001\252\002\021Frontware.Weladee'), - serialized_pb=_b('\n\rweladee.proto\x12\x10grpc.weladee.com\"\x17\n\tAddResult\x12\n\n\x02ID\x18\x02 \x01(\x03\"\xda\x06\n\x07\x43ompany\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x02 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x1c\n\ttimesheet\x18\x06 \x01(\x08R\ttimesheet\x12\x1a\n\x08Resource\x18\x08 \x01(\x08R\x08resource\x12\x30\n\x12ShowGettingStarted\x18\x1c \x01(\x08R\x14show_getting_started\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x18\n\x07\x61\x64\x64ress\x18\n \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ity\x18\x0b \x01(\tR\x04\x63ity\x12\x1a\n\x08postcode\x18\x0c \x01(\tR\x08postcode\x12\x18\n\x07\x63ountry\x18\r \x01(\tR\x07\x63ountry\x12\x18\n\x07twitter\x18\x0e \x01(\tR\x07twitter\x12\x1a\n\x08\x66\x61\x63\x65\x62ook\x18\x07 \x01(\tR\x08\x66\x61\x63\x65\x62ook\x12\x12\n\x04Line\x18\x32 \x01(\tR\x04line\x12\x17\n\x06\x41PIKey\x18\x0f \x01(\tR\x07\x61pi_key\x12\x14\n\x05TaxID\x18\x10 \x01(\tR\x05taxid\x12\x1a\n\x08\x42ranchID\x18\x11 \x01(\tR\x08\x62ranchid\x12\x10\n\x03URL\x18\x12 \x01(\tR\x03url\x12\x12\n\x04Logo\x18\x13 \x01(\tR\x04logo\x12\x1f\n\nThemeColor\x18\x14 \x01(\tR\x0btheme_color\x12#\n\x0c\x43ustomerType\x18\x15 \x01(\tR\rcustomer_type\x12\x16\n\x06Radius\x18\x16 \x01(\rR\x06radius\x12\x10\n\x08latitude\x18\x17 \x01(\x01\x12\x11\n\tlongitude\x18\x18 \x01(\x01\x12\x0e\n\x02TZ\x18\x19 \x01(\tR\x02tz\x12\x16\n\x06Phones\x18\x1a \x03(\tR\x06phones\x12$\n\rProximityUUID\x18\x1b \x01(\tR\rproximityuuid\x12\x15\n\x05\x43RMID\x18\x1e \x01(\x03R\x06\x63rm_id\x12\x1d\n\tPaidUntil\x18\x1f \x01(\x03R\npaid_until\x12#\n\x0cRegisteredOn\x18 \x01(\x03R\rregistered_on\x12\x1c\n\tSponsorID\x18( \x01(\x03R\tsponsorid\"\xe3\x08\n\x0c\x45mployeeStat\x12@\n\x0cLastWeekSick\x18\x05 \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x0elast_week_sick\x12\x42\n\rLastMonthSick\x18\x06 \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x0flast_month_sick\x12\x46\n\x0f\x43urrentYearSick\x18\x07 \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x11\x63urrent_year_sick\x12h\n\x12\x43urrentYearHoliday\x18\x08 \x03(\x0b\x32\x36.grpc.weladee.com.EmployeeStat.CurrentYearHolidayEntryR\x14\x63urrent_year_holiday\x12\x42\n\rLastMonthLate\x18\n \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x0flast_month_late\x12@\n\x0cLastWeekLate\x18\x0b \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x0elast_week_late\x12\x46\n\x0f\x43urrentYearLate\x18\x0c \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x11\x63urrent_year_late\x12\x31\n\x12LastWeekWorkedTime\x18\x14 \x01(\x05R\x15last_week_worked_time\x12:\n\x16LastWeekTeamWorkedTime\x18\x15 \x01(\x05R\x1alast_week_team_worked_time\x12\x33\n\x13LastMonthWorkedTime\x18\x16 \x01(\x05R\x16last_month_worked_time\x12<\n\x17LastMonthTeamWorkedTime\x18\x17 \x01(\x05R\x1blast_month_team_worked_time\x12H\n\x10\x43urrentMonthLate\x18\x64 \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x12\x63urrent_month_late\x12\x39\n\x16\x43urrentMonthWorkedTime\x18\x65 \x01(\x05R\x19\x63urrent_month_worked_time\x12\x42\n\x1a\x43urrentMonthTeamWorkedTime\x18\x66 \x01(\x05R\x1e\x63urrent_month_team_worked_time\x12H\n\x10\x43urrentMonthSick\x18g \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x12\x63urrent_month_sick\x1aX\n\x17\x43urrentYearHolidayEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.grpc.weladee.com.holidayStat:\x02\x38\x01\".\n\x0bholidayStat\x12\r\n\x05Taken\x18\x02 \x01(\x02\x12\x10\n\x08\x41pproved\x18\x03 \x01(\x05\"g\n\x08SickStat\x12(\n\x0eNumberSickDays\x18\x01 \x01(\x02R\x10number_sick_days\x12\x31\n\x12NumberTeamSickDays\x18\x02 \x01(\x02R\x15number_team_sick_days\"\x9c\x01\n\x08LateStat\x12\x1f\n\nNumberLate\x18\x01 \x01(\x05R\x0bnumber_late\x12\x1d\n\tTotalLate\x18\x02 \x01(\x05R\ntotal_late\x12(\n\x0eNumberLateTeam\x18\n \x01(\x02R\x10number_late_team\x12&\n\rTotalLateTeam\x18\x0b \x01(\x05R\x0ftotal_late_team\"\x07\n\x05\x45mpty\"\xf9\x02\n\x07Holiday\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x02 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x03 \x01(\tR\tname_thai\x12\x12\n\x04\x64\x61te\x18\x04 \x01(\x05R\x04\x64\x61te\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04\x63ode\x18\x06 \x01(\tR\x04\x63ode\x12\x14\n\x05\x63olor\x18\x07 \x01(\tR\x05\x63olor\x12\x1e\n\nEmployeeID\x18\x08 \x01(\x03R\nemployeeid\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x1d\n\tsickLeave\x18\n \x01(\x08R\nsick_leave\x12\x38\n\x07\x44\x61yPart\x18\x0b \x01(\x0e\x32\x1d.grpc.weladee.com.HolidayTimeR\x08\x64\x61y_part\x12\x16\n\x06\x43odeID\x18\x14 \x01(\x03R\x06\x63odeid\x12#\n\x0c\x45mployeeName\x18\x19 \x01(\tR\remployee_name\":\n\x18HolidayAllocationRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x12\n\nEmployeeID\x18\x04 \x01(\x03\"\xc4\x01\n\x11HolidayAllocation\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\x02 \x01(\x03R\nemployeeid\x12\x1e\n\x06\x43odeID\x18\x03 \x01(\x03R\x0eholiday_codeid\x12\x12\n\x04\x44\x61ys\x18\x04 \x01(\x02R\x04\x64\x61ys\x12\x12\n\x04Note\x18\n \x01(\tR\x04note\x12\x1a\n\x04\x43ode\x18\x0b \x01(\tR\x0choliday_code\x12\x1b\n\x08\x43odeName\x18\x0c \x01(\tR\tcode_name\";\n\tRectangle\x12\n\n\x02X1\x18\x01 \x01(\x05\x12\n\n\x02X2\x18\x02 \x01(\x05\x12\n\n\x02Y1\x18\x03 \x01(\x05\x12\n\n\x02Y2\x18\x04 \x01(\x05\"\xa1\x04\n\x08LogPhoto\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x1e\n\nEmployeeID\x18\x05 \x01(\x03R\nemployeeid\x12\x16\n\x06GateID\x18\x06 \x01(\x03R\x06gateid\x12%\n\rGateStationID\x18\x07 \x01(\x03R\x0egate_stationid\x12\x16\n\x06\x61\x63tive\x18\t \x01(\x08R\x06\x61\x63tive\x12\x42\n\rFaceRectangle\x18\n \x01(\x0b\x32\x1b.grpc.weladee.com.RectangleR\x0e\x66\x61\x63\x65_rectangle\x12\x0b\n\x03URL\x18\x0b \x01(\t\x12\x12\n\x04note\x18\x0c \x01(\tR\x04note\x12\x12\n\x04IPFS\x18\r \x01(\tR\x04ipfs\x12#\n\x0c\x46\x61\x63\x65\x44\x65tected\x18\x0e \x01(\x08R\rface_detected\x12\'\n\x0e\x46\x61\x63\x65Recognized\x18\x0f \x01(\x08R\x0f\x66\x61\x63\x65_recognized\x12\x44\n\rFaceConfirmed\x18\x10 \x01(\x0e\x32\x1d.grpc.weladee.com.FaceConfirmR\x0e\x66\x61\x63\x65_confirmed\x12!\n\x0b\x46\x61\x63\x65Trained\x18\x11 \x01(\x08R\x0c\x66\x61\x63\x65_trained\x12#\n\x0c\x45mployeeName\x18\x14 \x01(\tR\remployee_name\x12\x1b\n\x08GateName\x18\x15 \x01(\tR\tgate_name\"a\n\x16PendingPhotoAssignment\x12\'\n\x0ePendingPhotoID\x18\x01 \x01(\x03R\x0fpending_photoid\x12\x1e\n\nEmployeeID\x18\x02 \x01(\x03R\nemployeeid\"\x9e\x01\n\x0cPendingPhoto\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x16\n\x06GateID\x18\x06 \x01(\x03R\x06gateid\x12\x1b\n\x08GateName\x18\x07 \x01(\tR\tgate_name\x12\x10\n\x03URL\x18\x0b \x01(\tR\x03url\x12\x19\n\x07\x46\x61\x63\x65URL\x18\x0c \x01(\tR\x08\x66\x61\x63\x65_url\"F\n\x10\x46\x61\x63\x65\x43onfirmation\x12\x18\n\x07PhotoID\x18\x01 \x01(\x03R\x07photoid\x12\x18\n\x07\x43onfirm\x18\x02 \x01(\x08R\x07\x63onfirm\"\x97\x01\n\x08NewPhoto\x12,\n\x08LogPhoto\x18\x01 \x01(\x0b\x32\x1a.grpc.weladee.com.LogPhoto\x12\r\n\x05Photo\x18\x02 \x01(\x0c\x12.\n\tPhototype\x18\x03 \x01(\x0e\x32\x1b.grpc.weladee.com.PhotoType\x12\x10\n\x08HashIPFS\x18\x04 \x01(\t\x12\x0c\n\x04\x46\x61\x63\x65\x18\x05 \x01(\x0c\"\x1d\n\x0cHolidayCodes\x12\r\n\x05\x43odes\x18\x01 \x03(\t\"\x9c\x01\n\x08Position\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x02 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05Level\x18\x07 \x01(\x05R\x05level\x12\x12\n\x04note\x18\t \x01(\tR\x04note\"\xd6\x04\n\x04Team\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x03 \x01(\tR\x04name\x12-\n\x0eMaxTimePerWeek\x18\x04 \x01(\x05R\x15maximum_time_per_week\x12+\n\rMaxTimePerDay\x18\x05 \x01(\x05R\x14maximum_time_per_day\x12-\n\x0eMinTimePerWeek\x18\x06 \x01(\x05R\x15minimum_time_per_week\x12+\n\rMinTimePerDay\x18\x07 \x01(\x05R\x14minimum_time_per_day\x12;\n\x17MinimumDayBeforeHoliday\x18\x08 \x01(\x05R\x1aminimum_day_before_holiday\x12!\n\x0bNameEnglish\x18\n \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x0b \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x0c \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x14\n\x05\x65mail\x18\r \x01(\tR\x05\x65mail\x12\x1c\n\tManagerID\x18\x0e \x01(\x03R\tmanagerid\x12!\n\x0bManagerName\x18\x0f \x01(\tR\x0cmanager_name\x12\x45\n\x0cworkingHours\x18\x11 \x03(\x0b\x32 .grpc.weladee.com.OpenHourMobileR\rworking_hours\x12\x14\n\x05Gates\x18\x12 \x03(\x03R\x05gates\x12\x15\n\x05shift\x18\x13 \x01(\x08R\x06\x61\x63tive\"\xfa\x03\n\x04Gate\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\"\n\x0cname_english\x18\x02 \x01(\tR\x0cname_english\x12\x1c\n\tname_thai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x0e\n\x06\x61\x63tion\x18\x07 \x03(\t\x12\x16\n\x06QRCode\x18\x08 \x01(\tR\x06qrcode\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x1a\n\x08latitude\x18\n \x01(\x01R\x08latitude\x12\x1c\n\tlongitude\x18\x0b \x01(\x01R\tlongitude\x12\x16\n\x06radius\x18\x0c \x01(\x05R\x06radius\x12\x18\n\x07\x61\x64\x64ress\x18\r \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ity\x18\x0e \x01(\tR\x04\x63ity\x12\x1a\n\x08postCode\x18\x0f \x01(\tR\x08postcode\x12\x18\n\x07\x63ountry\x18\x10 \x01(\tR\x07\x63ountry\x12>\n\topenHours\x18\x11 \x03(\x0b\x32 .grpc.weladee.com.OpenHourMobileR\topenhours\x12,\n\x05teams\x18\x13 \x03(\x0b\x32\x16.grpc.weladee.com.TeamR\x05teams\x12(\n\x0e\x41llowFreeCheck\x18\x12 \x01(\x08R\x10\x61llow_free_check\"\xe2\x01\n\nDepartment\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\"\n\x0cname_english\x18\x02 \x01(\tR\x0cname_english\x12\x1c\n\tname_thai\x18\x03 \x01(\tR\tname_thai\x12\x1c\n\tmanagerID\x18\x04 \x01(\x03R\tmanagerid\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x0c\n\x04\x63ode\x18\x06 \x01(\t\x12\r\n\x05\x65mail\x18\x07 \x01(\t\x12\x0c\n\x04note\x18\t \x01(\t\x12!\n\x0bManagerName\x18\n \x01(\tR\x0cmanager_name\"\xc8\x01\n\x08LogEvent\x12\x1e\n\nemployeeid\x18\x01 \x01(\x03R\nemployeeid\x12\x16\n\x06\x61\x63tion\x18\x02 \x01(\tR\x06\x61\x63tion\x12\x1c\n\ttimestamp\x18\x03 \x01(\x03R\ttimestamp\x12\x16\n\x06teamid\x18\x04 \x01(\x03R\x06teamid\x12\x12\n\x04late\x18\x05 \x01(\x05R\x04late\x12\x0e\n\x02id\x18\x06 \x01(\x03R\x02id\x12\x16\n\x06gateid\x18\x07 \x01(\x03R\x06gateid\x12\x12\n\x04note\x18\x08 \x01(\tR\x04note\"K\n\rRefuseRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x12\n\x04note\x18\x06 \x01(\tR\x04note\"N\n\x0f\x45mployeeRequest\x12\x13\n\tuser_name\x18\x01 \x01(\tH\x00\x12\x0f\n\x05\x65mail\x18\x02 \x01(\tH\x00\x12\x0c\n\x02ID\x18\x03 \x01(\x03H\x00\x42\x07\n\x05query\"\x1e\n\rEmployeeStats\x12\r\n\x05stats\x18\x01 \x01(\x0c\"\xd3\x05\n\x10\x45mployeesRequest\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x16\n\x06Teamid\x18\x02 \x01(\x03R\x06teamid\x12\x1c\n\tManagerID\x18\x03 \x01(\x03R\tmanagerid\x12\"\n\x0c\x44\x65partmentID\x18\x04 \x01(\x03R\x0c\x64\x65partmentid\x12\x1f\n\tProjectID\x18\x05 \x01(\x03R\x0c\x64\x65partmentid\x12\x16\n\x06TaskID\x18\x06 \x01(\x03R\x06taskid\x12\x10\n\x03Tag\x18\x11 \x01(\tR\x03tag\x12\x16\n\x06GateID\x18\x08 \x01(\x03R\x06gateid\x12\x31\n\x06\x41\x63tive\x18\t \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06\x61\x63tive\x12\x37\n\tTimesheet\x18\n \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\ttimesheet\x12\x1e\n\nPositionID\x18\x14 \x01(\x03R\npositionid\x12\x0e\n\x06Offset\x18\x1e \x01(\x03\x12\r\n\x05Limit\x18\x1f \x01(\x03\x12\x14\n\x0c\x45mployeeName\x18( \x01(\t\x12\x10\n\x08TeamName\x18) \x01(\t\x12\x16\n\x0e\x44\x65partmentName\x18* \x01(\t\x12\x13\n\x0bProjectName\x18+ \x01(\t\x12\x0c\n\x04\x43ode\x18, \x01(\t\x12\x14\n\x0cPositionName\x18- \x01(\t\x12\r\n\x05\x45mail\x18. \x01(\t\x12,\n\tIsManager\x18\x30 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x0c\n\x04RFID\x18\x32 \x01(\x03\x12\x11\n\tRFIDToken\x18\x33 \x01(\t\x12\x0c\n\x04Text\x18< \x01(\t\x12\x10\n\x06LateOn\x18\x64 \x01(\x03H\x00\x12\x12\n\x08\x41\x62sentOn\x18\x65 \x01(\x03H\x00\x12\x1a\n\x10\x46orgotCheckOutOn\x18\x66 \x01(\x03H\x00\x42\x10\n\x0eSpecialRequest\"\x1b\n\tRequestID\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\"\xa2\x0e\n\x08\x45mployee\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x14\n\x05\x65mail\x18\x02 \x01(\tR\x05\x65mail\x12\x1c\n\tuser_name\x18\x03 \x01(\tR\tuser_name\x12,\n\x11last_name_english\x18\x04 \x01(\tR\x11last_name_english\x12.\n\x12\x66irst_name_english\x18\x05 \x01(\tR\x12\x66irst_name_english\x12(\n\x0f\x66irst_name_thai\x18\x06 \x01(\tR\x0f\x66irst_name_thai\x12&\n\x0elast_name_thai\x18\x07 \x01(\tR\x0elast_name_thai\x12\x1c\n\tmanagerID\x18\x08 \x01(\x03R\tmanagerid\x12\x16\n\x06lineID\x18\t \x01(\tR\x06lineid\x12\x1a\n\x08\x42irthday\x18\r \x01(\x03R\x08\x62irthday\x12\x1e\n\ntelegramID\x18\x33 \x01(\x03R\ntelegramid\x12*\n\x10nickname_english\x18\n \x01(\tR\x10nickname_english\x12$\n\rnickname_thai\x18\x0b \x01(\tR\rnickname_thai\x12\x1b\n\x08\x46\x43Mtoken\x18\x12 \x03(\tR\tfcm_token\x12 \n\x0bphone_model\x18\x13 \x01(\tR\x0bphone_model\x12\"\n\x0cphone_serial\x18\x14 \x01(\tR\x0cphone_serial\x12\x12\n\x04\x63ode\x18\x15 \x01(\tR\x04\x63ode\x12\x1e\n\ncreated_by\x18\x0e \x01(\x03R\ncreated_by\x12\x1e\n\nupdated_by\x18\x0f \x01(\x03R\nupdated_by\x12\x16\n\x06\x41\x63tive\x18\x10 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04note\x18\x11 \x01(\tR\x04note\x12\x1e\n\ncreated_on\x18\x16 \x01(\x03R\ncreated_on\x12\x1e\n\nupdated_on\x18\x17 \x01(\x03R\nupdated_on\x12\x14\n\x05photo\x18\x18 \x01(\tR\x05photo\x12\x0e\n\x02lg\x18\x19 \x01(\tR\x02lg\x12P\n\x11\x61pplication_level\x18\x1a \x01(\x0e\x32\".grpc.weladee.com.ApplicationLevelR\x11\x61pplication_level\x12\x1e\n\nPositionID\x18\x1b \x01(\x03R\npositionid\x12\x16\n\x06Phones\x18\x1c \x03(\tR\x06phones\x12\x12\n\x04rfid\x18\x1d \x01(\x03R\x04rfid\x12\'\n\x0e\x45mailValidated\x18\" \x01(\x08R\x0f\x65mail_validated\x12\x16\n\x06teamID\x18# \x01(\x03R\x06teamid\x12\x16\n\x06gender\x18$ \x01(\tR\x06gender\x12\x31\n\x12hasToFillTimesheet\x18% \x01(\x08R\x15has_to_fill_timesheet\x12<\n\x18receiveCheckNotification\x18& \x01(\x08R\x1areceive_check_notification\x12.\n\x11\x63\x61nRequestHoliday\x18\' \x01(\x08R\x13\x63\x61n_request_holiday\x12\x12\n\x04Tags\x18? \x03(\tR\x04tags\x12\x1e\n\nNationalID\x18( \x01(\tR\nnationalid\x12\x14\n\x05TaxID\x18) \x01(\tR\x05taxid\x12\'\n\x0epassportNumber\x18* \x01(\tR\x0fpassport_number\x12\x14\n\x05token\x18\x32 \x01(\tR\x05token\x12\x31\n\x12\x43\x61nCheckTeamMember\x18\x34 \x01(\x08R\x15\x63\x61n_check_team_member\x12\x16\n\x06QRCode\x18\x35 \x01(\tR\x06qrcode\x12 \n\x0bNationality\x18\x36 \x01(\tR\x0bnationality\x12\x1d\n\tFreeCheck\x18\x37 \x01(\x08R\nfree_check\x12\x1f\n\nHourlyCost\x18\x38 \x01(\x01R\x0bhourly_cost\x12)\n\x0f\x44\x65partmentNames\x18< \x03(\tR\x10\x64\x65partment_names\x12\x1b\n\x08TeamName\x18= \x01(\tR\tteam_name\x12#\n\x0cPositionName\x18> \x01(\tR\rposition_name\x12 \n\x0b\x44\x65partments\x18\x45 \x03(\x03R\x0b\x64\x65partments\x12\x1a\n\x08Password\x18\x46 \x01(\tR\x08password\x12\x1c\n\tCompanyID\x18P \x01(\x03R\tcompanyid\x12#\n\x0bhasToUse2FA\x18Q \x01(\x08R\x0ehas_to_use_2fa\x12\x1d\n\tOTPMobile\x18R \x01(\x08R\notp_mobile\x12!\n\x0b\x46orceSelfie\x18S \x01(\x08R\x0c\x66orce_selfie\x12\x17\n\x06OptOut\x18T \x01(\x08R\x07opt_out\"\xb5\x02\n\x08Openhour\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x18\n\x07WeekDay\x18\x04 \x01(\rR\x07weekday\x12\x0c\n\x04\x46rom\x18\x05 \x01(\t\x12\n\n\x02To\x18\x06 \x01(\t\x12!\n\x0bNameEnglish\x18\x07 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x08 \x01(\tR\tname_thai\x12\x1c\n\tDetailsID\x18\t \x01(\x03R\tdetailsid\x12\x16\n\x06\x41\x63tive\x18\n \x01(\x08R\x06\x61\x63tive\x12\x1d\n\tLateAfter\x18\x0b \x01(\tR\nlate_after\x12(\n\x0eMinPauseBefore\x18\x0c \x01(\x03R\x10min_pause_before\x12\x12\n\x04note\x18\r \x01(\tR\x04note\x12\x12\n\x04Type\x18\x0f \x01(\tR\x04type\"\xad\x01\n\x0eOpenHourDetail\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x18\n\x07WeekDay\x18\x04 \x01(\rR\x07weekday\x12\x0c\n\x04\x46rom\x18\x05 \x01(\t\x12\n\n\x02To\x18\x06 \x01(\t\x12\x1d\n\tLateAfter\x18\x0b \x01(\tR\nlate_after\x12(\n\x0eMinPauseBefore\x18\x0c \x01(\x03R\x10min_pause_before\x12\x0e\n\x02TZ\x18\x19 \x01(\tR\x02tz\"\xba\x01\n\x0eOpenHourMobile\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x03 \x01(\tR\x04name\x12\x18\n\x07WeekDay\x18\x04 \x01(\rR\x07weekday\x12\x12\n\x04\x46rom\x18\x05 \x01(\tR\x04\x66rom\x12\x0e\n\x02To\x18\x06 \x01(\tR\x02to\x12\x1c\n\tDetailsID\x18\t \x01(\x03R\tdetailsid\x12(\n\x0eMinPauseBefore\x18\x0c \x01(\x03R\x10min_pause_before\"\x8b\n\n\x0bGateStation\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tCompanyID\x18\x02 \x01(\x03R\tcompanyid\x12\x10\n\x03MAC\x18\x03 \x01(\tR\x03mac\x12\x14\n\x05Major\x18\x04 \x01(\rR\x05major\x12\x14\n\x05Minor\x18\x05 \x01(\rR\x05minor\x12\x14\n\x05Token\x18\x07 \x01(\tR\x05token\x12\x12\n\x04Note\x18\x08 \x01(\tR\x04note\x12\x0e\n\x02IP\x18\t \x01(\tR\x02ip\x12\x16\n\x06\x41\x63tive\x18\x0b \x01(\x08R\x06\x61\x63tive\x12\x16\n\x06GateID\x18\x0c \x01(\x03R\x06gateid\x12\x18\n\x07ModelID\x18\r \x01(\x03R\x07modelid\x12\x16\n\x06Serial\x18\x0e \x01(\tR\x06serial\x12$\n\x0cShowLatestIn\x18\x0f \x01(\x08R\x0eshow_latest_in\x12&\n\rShowLatestOut\x18\x10 \x01(\x08R\x0fshow_latest_out\x12$\n\x0cShowMostLate\x18\x11 \x01(\x08R\x0eshow_most_late\x12\x1f\n\nHasDisplay\x18\x12 \x01(\x08R\x0bhas_display\x12\x1b\n\x08PlayBeep\x18\x13 \x01(\x08R\tplay_beep\x12\x1a\n\x08\x43\x61tegory\x18\x1c \x01(\tR\x08\x63\x61tegory\x12\x1d\n\tHDMISound\x18- \x01(\x08R\nhdmi_sound\x12#\n\x0c\x42\x65\x61\x63onActive\x18\x14 \x01(\x08R\rbeacon_active\x12&\n\rHasOnboardLCD\x18\x15 \x01(\x08R\x0fhas_onboard_lcd\x12!\n\x0bShowTwitter\x18\x16 \x01(\x08R\x0cshow_twitter\x12\x1d\n\tPlayVoice\x18\x17 \x01(\x08R\nplay_voice\x12,\n\x10ShowWorkingHours\x18\x18 \x01(\x08R\x12show_working_hours\x12\x38\n\x16ShowBackgroundPictures\x18\x19 \x01(\x08R\x18show_background_pictures\x12#\n\x0cShowFacebook\x18\x1a \x01(\x08R\rshow_facebook\x12#\n\x0cScanResource\x18\x1b \x01(\x08R\rscan_resource\x12\x1b\n\x08WifiSSID\x18\x1e \x01(\tR\twifi_ssid\x12\x19\n\x07WifiPwd\x18\x1f \x01(\tR\x08wifi_pwd\x12%\n\rRefreshScreen\x18 \x01(\rR\x0erefresh_screen\x12\x12\n\x04URLs\x18! \x03(\tR\x04urls\x12\x19\n\x07SSHPort\x18\" \x01(\rR\x08ssh_port\x12$\n\rProximityUUID\x18# \x01(\tR\rproximityuuid\x12!\n\x0b\x43ompanyName\x18$ \x01(\tR\x0c\x63ompany_name\x12\x1d\n\tModelName\x18% \x01(\tR\nmodel_name\x12\x1b\n\x08GateName\x18& \x01(\tR\tgate_name\x12\x12\n\x04MACs\x18( \x03(\tR\x04macs\x12-\n\x11RefreshBackground\x18) \x01(\rR\x12refresh_background\x12\x14\n\x05\x43olor\x18* \x01(\tR\x05\x63olor\x12(\n\x0eLastTimeOnline\x18+ \x01(\x03R\x10last_time_online\x12\x30\n\x12ScreenSaverTimeout\x18. \x01(\rR\x14screen_saver_timeout\"\xcd\x03\n\nWebStation\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tCompanyID\x18\x02 \x01(\x03R\tcompanyid\x12\x10\n\x03MAC\x18\x03 \x01(\tR\x03mac\x12\x14\n\x05Token\x18\x07 \x01(\tR\x05token\x12\x12\n\x04Note\x18\x08 \x01(\tR\x04note\x12\x0e\n\x02IP\x18\t \x01(\tR\x02ip\x12\x16\n\x06\x41\x63tive\x18\x0b \x01(\x08R\x06\x61\x63tive\x12\x18\n\x07ModelID\x18\r \x01(\x03R\x07modelid\x12\x16\n\x06Serial\x18\x0e \x01(\tR\x06serial\x12\x1b\n\x08WifiSSID\x18\x1e \x01(\tR\twifi_ssid\x12\x19\n\x07WifiPwd\x18\x1f \x01(\tR\x08wifi_pwd\x12\x12\n\x04URLs\x18! \x03(\tR\x04urls\x12\x19\n\x07SSHPort\x18\" \x01(\rR\x08ssh_port\x12!\n\x0b\x43ompanyName\x18$ \x01(\tR\x0c\x63ompany_name\x12\x1d\n\tModelName\x18% \x01(\tR\nmodel_name\x12\x12\n\x04MACs\x18( \x03(\tR\x04macs\x12\x14\n\x05\x43olor\x18* \x01(\tR\x05\x63olor\x12(\n\x0eLastTimeOnline\x18+ \x01(\x03R\x10last_time_online\";\n\x0fHolidayRequests\x12\x10\n\x03IDs\x18\x01 \x03(\x03R\x03ids\x12\x16\n\x06Reason\x18\x02 \x01(\tR\x06reason\"\xb5\x01\n\x0b\x43odeHoliday\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04\x43ode\x18\x02 \x01(\tR\x04\x63ode\x12\"\n\x0cName_english\x18\x03 \x01(\tR\x0cname_english\x12\x1c\n\tName_thai\x18\x04 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05\x43olor\x18\x06 \x01(\tR\x05\x63olor\x12\x12\n\x04Note\x18\n \x01(\tR\x04note\"\xea\x03\n\x0c\x41nnouncement\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12#\n\x0cTitleEnglish\x18\x02 \x01(\tR\rtitle_english\x12\x1d\n\tTitleThai\x18\x03 \x01(\tR\ntitle_thai\x12\'\n\x0eMessageEnglish\x18\x04 \x01(\tR\x0fmessage_english\x12!\n\x0bMessageThai\x18\x05 \x01(\tR\x0cmessage_thai\x12!\n\x0b\x44isplayFrom\x18\x06 \x01(\x03R\x0c\x64isplay_from\x12\x1d\n\tDisplayTo\x18\x07 \x01(\x03R\ndisplay_to\x12\x16\n\x06TeamID\x18\x08 \x01(\x03R\x06teamid\x12\"\n\x0c\x44\x65partmentID\x18\t \x01(\x03R\x0c\x64\x65partmentid\x12\x36\n\x08Priority\x18\n \x01(\x0e\x32\x1a.grpc.weladee.com.PriorityR\x08priority\x12\x16\n\x06\x41\x63tive\x18\x0f \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\x10 \x01(\tR\x04note\x12\x17\n\x06ReadON\x18\x14 \x01(\x03R\x07read_on\x12\x1c\n\tCompanyID\x18\x19 \x01(\x03R\tcompanyid\x12!\n\x0b\x43ompanyName\x18\x1a \x01(\tR\x0c\x63ompany_name\"L\n\nMinVersion\x12\x0f\n\x07\x61ndroid\x18\x01 \x01(\t\x12\x0b\n\x03ios\x18\x02 \x01(\t\x12\x11\n\tAdminLite\x18\x03 \x01(\t\x12\r\n\x05Kiosk\x18\x04 \x01(\t\"\x19\n\x08\x46\x43MToken\x12\r\n\x05token\x18\x01 \x01(\t\"\xed\x01\n\nGoogleUser\x12\x14\n\x05\x45mail\x18\x02 \x01(\tR\x05\x65mail\x12\x12\n\x04Name\x18\x07 \x01(\tR\x04name\x12\x14\n\x05Photo\x18\x08 \x01(\tR\x05photo\x12\x1b\n\x08\x46\x43Mtoken\x18\x12 \x03(\tR\tfcm_token\x12\x1f\n\nPhoneModel\x18\x13 \x01(\tR\x0bphone_model\x12!\n\x0bPhoneSerial\x18\x14 \x01(\tR\x0cphone_serial\x12\x1d\n\tCreatedOn\x18\x16 \x01(\x03R\ncreated_on\x12\x1f\n\nLastSignIn\x18\x17 \x01(\x03R\x0blast_signin*\xa3\x01\n\x10\x41pplicationLevel\x12\x13\n\x0fSimple_Employee\x10\x00\x12\x0f\n\x0bHR_Operator\x10\x01\x12\x0e\n\nHR_Manager\x10\x02\x12\x10\n\x0cTeam_Manager\x10\x03\x12\x16\n\x12\x44\x65partment_Manager\x10\x04\x12\x0c\n\x08\x44irector\x10\x05\x12\x11\n\rAdministrator\x10\x06\x12\x0e\n\nSupervisor\x10\t*R\n\x0b\x43ompanyType\x12\x07\n\x03\x41ny\x10\x00\x12\x08\n\x04\x46ree\x10\x01\x12\t\n\x05Trial\x10\x02\x12\x07\n\x03SME\x10\x03\x12\x0c\n\x08Standard\x10\x04\x12\x0e\n\nEnterprise\x10\x05*G\n\x0b\x46\x61\x63\x65\x43onfirm\x12\x15\n\x11\x46\x61\x63\x65ToBeConfirmed\x10\x00\x12\x11\n\rFaceConfirmed\x10\x01\x12\x0e\n\nFaceDenied\x10\x02*\'\n\tPhotoType\x12\x07\n\x03JPG\x10\x00\x12\x08\n\x04WEBP\x10\x01\x12\x07\n\x03PNG\x10\x02*@\n\x14HolidayRequestStatus\x12\r\n\tRequested\x10\x00\x12\x0c\n\x08\x41pproved\x10\x01\x12\x0b\n\x07Refused\x10\x02*6\n\x0bHolidayTime\x12\x0b\n\x07\x46ullDay\x10\x00\x12\x0b\n\x07Morning\x10\x01\x12\r\n\tAfterNoon\x10\x02*3\n\x07Trinary\x12\r\n\tTriIgnore\x10\x00\x12\x0b\n\x07TriTrue\x10\x01\x12\x0c\n\x08TriFalse\x10\x02*5\n\x08Priority\x12\n\n\x06Normal\x10\x00\x12\x07\n\x03Low\x10\x01\x12\x08\n\x04High\x10\x02\x12\n\n\x06Urgent\x10\x03\x42?\n\x15\x63om.frontware.weladeeB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\xaa\x02\x11\x46rontware.Weladeeb\x06proto3') + serialized_options=b'\n\025com.frontware.weladeeB\013WeladeeGRPCH\003P\001\220\001\001\252\002\021Frontware.Weladee', + serialized_pb=b'\n\rweladee.proto\x12\x10grpc.weladee.com\"\x17\n\tAddResult\x12\n\n\x02ID\x18\x02 \x01(\x03\"\xe1\x06\n\x07\x43ompany\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x02 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x1c\n\ttimesheet\x18\x06 \x01(\x08R\ttimesheet\x12\x1a\n\x08Resource\x18\x08 \x01(\x08R\x08resource\x12\x18\n\x07\x45xpense\x18) \x01(\x08R\x07\x65xpense\x12\x1d\n\tOTRequest\x18* \x01(\x08R\not_request\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x18\n\x07\x61\x64\x64ress\x18\n \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ity\x18\x0b \x01(\tR\x04\x63ity\x12\x1a\n\x08postcode\x18\x0c \x01(\tR\x08postcode\x12\x18\n\x07\x63ountry\x18\r \x01(\tR\x07\x63ountry\x12\x18\n\x07twitter\x18\x0e \x01(\tR\x07twitter\x12\x1a\n\x08\x66\x61\x63\x65\x62ook\x18\x07 \x01(\tR\x08\x66\x61\x63\x65\x62ook\x12\x12\n\x04Line\x18\x32 \x01(\tR\x04line\x12\x17\n\x06\x41PIKey\x18\x0f \x01(\tR\x07\x61pi_key\x12\x14\n\x05TaxID\x18\x10 \x01(\tR\x05taxid\x12\x1a\n\x08\x42ranchID\x18\x11 \x01(\tR\x08\x62ranchid\x12\x10\n\x03URL\x18\x12 \x01(\tR\x03url\x12\x12\n\x04Logo\x18\x13 \x01(\tR\x04logo\x12\x1f\n\nThemeColor\x18\x14 \x01(\tR\x0btheme_color\x12#\n\x0c\x43ustomerType\x18\x15 \x01(\tR\rcustomer_type\x12\x16\n\x06Radius\x18\x16 \x01(\rR\x06radius\x12\x10\n\x08latitude\x18\x17 \x01(\x01\x12\x11\n\tlongitude\x18\x18 \x01(\x01\x12\x0e\n\x02TZ\x18\x19 \x01(\tR\x02tz\x12\x16\n\x06Phones\x18\x1a \x03(\tR\x06phones\x12$\n\rProximityUUID\x18\x1b \x01(\tR\rproximityuuid\x12\x15\n\x05\x43RMID\x18\x1e \x01(\x03R\x06\x63rm_id\x12\x1d\n\tPaidUntil\x18\x1f \x01(\x03R\npaid_until\x12#\n\x0cRegisteredOn\x18 \x01(\x03R\rregistered_on\x12\x1c\n\tSponsorID\x18( \x01(\x03R\tsponsorid\"\xe3\x08\n\x0c\x45mployeeStat\x12@\n\x0cLastWeekSick\x18\x05 \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x0elast_week_sick\x12\x42\n\rLastMonthSick\x18\x06 \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x0flast_month_sick\x12\x46\n\x0f\x43urrentYearSick\x18\x07 \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x11\x63urrent_year_sick\x12h\n\x12\x43urrentYearHoliday\x18\x08 \x03(\x0b\x32\x36.grpc.weladee.com.EmployeeStat.CurrentYearHolidayEntryR\x14\x63urrent_year_holiday\x12\x42\n\rLastMonthLate\x18\n \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x0flast_month_late\x12@\n\x0cLastWeekLate\x18\x0b \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x0elast_week_late\x12\x46\n\x0f\x43urrentYearLate\x18\x0c \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x11\x63urrent_year_late\x12\x31\n\x12LastWeekWorkedTime\x18\x14 \x01(\x05R\x15last_week_worked_time\x12:\n\x16LastWeekTeamWorkedTime\x18\x15 \x01(\x05R\x1alast_week_team_worked_time\x12\x33\n\x13LastMonthWorkedTime\x18\x16 \x01(\x05R\x16last_month_worked_time\x12<\n\x17LastMonthTeamWorkedTime\x18\x17 \x01(\x05R\x1blast_month_team_worked_time\x12H\n\x10\x43urrentMonthLate\x18\x64 \x01(\x0b\x32\x1a.grpc.weladee.com.LateStatR\x12\x63urrent_month_late\x12\x39\n\x16\x43urrentMonthWorkedTime\x18\x65 \x01(\x05R\x19\x63urrent_month_worked_time\x12\x42\n\x1a\x43urrentMonthTeamWorkedTime\x18\x66 \x01(\x05R\x1e\x63urrent_month_team_worked_time\x12H\n\x10\x43urrentMonthSick\x18g \x01(\x0b\x32\x1a.grpc.weladee.com.SickStatR\x12\x63urrent_month_sick\x1aX\n\x17\x43urrentYearHolidayEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.grpc.weladee.com.holidayStat:\x02\x38\x01\".\n\x0bholidayStat\x12\r\n\x05Taken\x18\x02 \x01(\x02\x12\x10\n\x08\x41pproved\x18\x03 \x01(\x05\"g\n\x08SickStat\x12(\n\x0eNumberSickDays\x18\x01 \x01(\x02R\x10number_sick_days\x12\x31\n\x12NumberTeamSickDays\x18\x02 \x01(\x02R\x15number_team_sick_days\"\x9c\x01\n\x08LateStat\x12\x1f\n\nNumberLate\x18\x01 \x01(\x05R\x0bnumber_late\x12\x1d\n\tTotalLate\x18\x02 \x01(\x05R\ntotal_late\x12(\n\x0eNumberLateTeam\x18\n \x01(\x02R\x10number_late_team\x12&\n\rTotalLateTeam\x18\x0b \x01(\x05R\x0ftotal_late_team\"\x07\n\x05\x45mpty\"\xc6\x03\n\x07Holiday\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x02 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x03 \x01(\tR\tname_thai\x12\x12\n\x04\x64\x61te\x18\x04 \x01(\x05R\x04\x64\x61te\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04\x63ode\x18\x06 \x01(\tR\x04\x63ode\x12\x14\n\x05\x63olor\x18\x07 \x01(\tR\x05\x63olor\x12\x1e\n\nEmployeeID\x18\x08 \x01(\x03R\nemployeeid\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x1d\n\tsickLeave\x18\n \x01(\x08R\nsick_leave\x12\x38\n\x07\x44\x61yPart\x18\x0b \x01(\x0e\x32\x1d.grpc.weladee.com.HolidayTimeR\x08\x64\x61y_part\x12\x16\n\x06\x43odeID\x18\x14 \x01(\x03R\x06\x63odeid\x12+\n\x10HolidayRequestID\x18\x16 \x01(\x03R\x11holiday_requestid\x12#\n\x0c\x45mployeeName\x18\x19 \x01(\tR\remployee_name\x12\x1e\n\x05\x41lert\x18\x1e \x01(\x08R\x0f\x61lert,omitempty\":\n\x18HolidayAllocationRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x12\n\nEmployeeID\x18\x04 \x01(\x03\"\x89\x02\n\x11HolidayAllocation\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1e\n\nEmployeeID\x18\x02 \x01(\x03R\nemployeeid\x12\x1e\n\x06\x43odeID\x18\x03 \x01(\x03R\x0eholiday_codeid\x12\x12\n\x04\x44\x61ys\x18\x04 \x01(\x02R\x04\x64\x61ys\x12\x14\n\x05\x43olor\x18\t \x01(\tR\x05\x63olor\x12\x12\n\x04Note\x18\n \x01(\tR\x04note\x12\x1a\n\x04\x43ode\x18\x0b \x01(\tR\x0choliday_code\x12\x1b\n\x08\x43odeName\x18\x0c \x01(\tR\tcode_name\x12-\n\x11\x44\x65\x66\x61ultAllocation\x18\r \x01(\x05R\x12\x64\x65\x66\x61ult_allocation\";\n\tRectangle\x12\n\n\x02X1\x18\x01 \x01(\x05\x12\n\n\x02X2\x18\x02 \x01(\x05\x12\n\n\x02Y1\x18\x03 \x01(\x05\x12\n\n\x02Y2\x18\x04 \x01(\x05\"\xa1\x04\n\x08LogPhoto\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x1e\n\nEmployeeID\x18\x05 \x01(\x03R\nemployeeid\x12\x16\n\x06GateID\x18\x06 \x01(\x03R\x06gateid\x12%\n\rGateStationID\x18\x07 \x01(\x03R\x0egate_stationid\x12\x16\n\x06\x61\x63tive\x18\t \x01(\x08R\x06\x61\x63tive\x12\x42\n\rFaceRectangle\x18\n \x01(\x0b\x32\x1b.grpc.weladee.com.RectangleR\x0e\x66\x61\x63\x65_rectangle\x12\x0b\n\x03URL\x18\x0b \x01(\t\x12\x12\n\x04note\x18\x0c \x01(\tR\x04note\x12\x12\n\x04IPFS\x18\r \x01(\tR\x04ipfs\x12#\n\x0c\x46\x61\x63\x65\x44\x65tected\x18\x0e \x01(\x08R\rface_detected\x12\'\n\x0e\x46\x61\x63\x65Recognized\x18\x0f \x01(\x08R\x0f\x66\x61\x63\x65_recognized\x12\x44\n\rFaceConfirmed\x18\x10 \x01(\x0e\x32\x1d.grpc.weladee.com.FaceConfirmR\x0e\x66\x61\x63\x65_confirmed\x12!\n\x0b\x46\x61\x63\x65Trained\x18\x11 \x01(\x08R\x0c\x66\x61\x63\x65_trained\x12#\n\x0c\x45mployeeName\x18\x14 \x01(\tR\remployee_name\x12\x1b\n\x08GateName\x18\x15 \x01(\tR\tgate_name\"a\n\x16PendingPhotoAssignment\x12\'\n\x0ePendingPhotoID\x18\x01 \x01(\x03R\x0fpending_photoid\x12\x1e\n\nEmployeeID\x18\x02 \x01(\x03R\nemployeeid\"\x9e\x01\n\x0cPendingPhoto\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tTimeStamp\x18\x02 \x01(\x03R\ttimestamp\x12\x16\n\x06GateID\x18\x06 \x01(\x03R\x06gateid\x12\x1b\n\x08GateName\x18\x07 \x01(\tR\tgate_name\x12\x10\n\x03URL\x18\x0b \x01(\tR\x03url\x12\x19\n\x07\x46\x61\x63\x65URL\x18\x0c \x01(\tR\x08\x66\x61\x63\x65_url\"F\n\x10\x46\x61\x63\x65\x43onfirmation\x12\x18\n\x07PhotoID\x18\x01 \x01(\x03R\x07photoid\x12\x18\n\x07\x43onfirm\x18\x02 \x01(\x08R\x07\x63onfirm\"\x97\x01\n\x08NewPhoto\x12,\n\x08LogPhoto\x18\x01 \x01(\x0b\x32\x1a.grpc.weladee.com.LogPhoto\x12\r\n\x05Photo\x18\x02 \x01(\x0c\x12.\n\tPhototype\x18\x03 \x01(\x0e\x32\x1b.grpc.weladee.com.PhotoType\x12\x10\n\x08HashIPFS\x18\x04 \x01(\t\x12\x0c\n\x04\x46\x61\x63\x65\x18\x05 \x01(\x0c\"\x1d\n\x0cHolidayCodes\x12\r\n\x05\x43odes\x18\x01 \x03(\t\"\x9c\x01\n\x08Position\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12!\n\x0bNameEnglish\x18\x02 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05Level\x18\x07 \x01(\x05R\x05level\x12\x12\n\x04note\x18\t \x01(\tR\x04note\"\xda\x04\n\x04Team\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x03 \x01(\tR\x04name\x12-\n\x0eMaxTimePerWeek\x18\x04 \x01(\x05R\x15maximum_time_per_week\x12+\n\rMaxTimePerDay\x18\x05 \x01(\x05R\x14maximum_time_per_day\x12-\n\x0eMinTimePerWeek\x18\x06 \x01(\x05R\x15minimum_time_per_week\x12+\n\rMinTimePerDay\x18\x07 \x01(\x05R\x14minimum_time_per_day\x12?\n\x17MinimumDayBeforeHoliday\x18\x08 \x01(\x05\x42\x02\x18\x01R\x1aminimum_day_before_holiday\x12!\n\x0bNameEnglish\x18\n \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x0b \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x0c \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x14\n\x05\x65mail\x18\r \x01(\tR\x05\x65mail\x12\x1c\n\tManagerID\x18\x0e \x01(\x03R\tmanagerid\x12!\n\x0bManagerName\x18\x0f \x01(\tR\x0cmanager_name\x12\x45\n\x0cworkingHours\x18\x11 \x03(\x0b\x32 .grpc.weladee.com.OpenHourMobileR\rworking_hours\x12\x14\n\x05Gates\x18\x12 \x03(\x03R\x05gates\x12\x15\n\x05shift\x18\x13 \x01(\x08R\x06\x61\x63tive\"\x8e\x04\n\x04Gate\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\"\n\x0cname_english\x18\x02 \x01(\tR\x0cname_english\x12\x1c\n\tname_thai\x18\x03 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x0e\n\x06\x61\x63tion\x18\x07 \x03(\t\x12\x16\n\x06QRCode\x18\x08 \x01(\tR\x06qrcode\x12\x12\n\x04note\x18\t \x01(\tR\x04note\x12\x1a\n\x08latitude\x18\n \x01(\x01R\x08latitude\x12\x1c\n\tlongitude\x18\x0b \x01(\x01R\tlongitude\x12\x16\n\x06radius\x18\x0c \x01(\x05R\x06radius\x12\x18\n\x07\x61\x64\x64ress\x18\r \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ity\x18\x0e \x01(\tR\x04\x63ity\x12\x1a\n\x08postCode\x18\x0f \x01(\tR\x08postcode\x12\x18\n\x07\x63ountry\x18\x10 \x01(\tR\x07\x63ountry\x12>\n\topenHours\x18\x11 \x03(\x0b\x32 .grpc.weladee.com.OpenHourMobileR\topenhours\x12,\n\x05teams\x18\x13 \x03(\x0b\x32\x16.grpc.weladee.com.TeamR\x05teams\x12(\n\x0e\x41llowFreeCheck\x18\x12 \x01(\x08R\x10\x61llow_free_check\x12\x12\n\x04\x43ode\x18\x14 \x01(\tR\x04\x63ode\"\xe2\x01\n\nDepartment\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\"\n\x0cname_english\x18\x02 \x01(\tR\x0cname_english\x12\x1c\n\tname_thai\x18\x03 \x01(\tR\tname_thai\x12\x1c\n\tmanagerID\x18\x04 \x01(\x03R\tmanagerid\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x0c\n\x04\x63ode\x18\x06 \x01(\t\x12\r\n\x05\x65mail\x18\x07 \x01(\t\x12\x0c\n\x04note\x18\t \x01(\t\x12!\n\x0bManagerName\x18\n \x01(\tR\x0cmanager_name\"\xc8\x01\n\x08LogEvent\x12\x1e\n\nemployeeid\x18\x01 \x01(\x03R\nemployeeid\x12\x16\n\x06\x61\x63tion\x18\x02 \x01(\tR\x06\x61\x63tion\x12\x1c\n\ttimestamp\x18\x03 \x01(\x03R\ttimestamp\x12\x16\n\x06teamid\x18\x04 \x01(\x03R\x06teamid\x12\x12\n\x04late\x18\x05 \x01(\x05R\x04late\x12\x0e\n\x02id\x18\x06 \x01(\x03R\x02id\x12\x16\n\x06gateid\x18\x07 \x01(\x03R\x06gateid\x12\x12\n\x04note\x18\x08 \x01(\tR\x04note\"K\n\rRefuseRequest\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x12\n\x04note\x18\x06 \x01(\tR\x04note\"N\n\x0f\x45mployeeRequest\x12\x13\n\tuser_name\x18\x01 \x01(\tH\x00\x12\x0f\n\x05\x65mail\x18\x02 \x01(\tH\x00\x12\x0c\n\x02ID\x18\x03 \x01(\x03H\x00\x42\x07\n\x05query\"\x1e\n\rEmployeeStats\x12\r\n\x05stats\x18\x01 \x01(\x0c\"\xfd\x05\n\x10\x45mployeesRequest\x12\x1e\n\nEmployeeID\x18\x01 \x01(\x03R\nemployeeid\x12\x16\n\x06Teamid\x18\x02 \x01(\x03R\x06teamid\x12\x1c\n\tManagerID\x18\x03 \x01(\x03R\tmanagerid\x12\"\n\x0c\x44\x65partmentID\x18\x04 \x01(\x03R\x0c\x64\x65partmentid\x12\x1f\n\tProjectID\x18\x05 \x01(\x03R\x0c\x64\x65partmentid\x12\x16\n\x06TaskID\x18\x06 \x01(\x03R\x06taskid\x12\x10\n\x03Tag\x18\x11 \x01(\tR\x03tag\x12\x16\n\x06GateID\x18\x08 \x01(\x03R\x06gateid\x12\x31\n\x06\x41\x63tive\x18\t \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\x06\x61\x63tive\x12\x37\n\tTimesheet\x18\n \x01(\x0e\x32\x19.grpc.weladee.com.TrinaryR\ttimesheet\x12\x1e\n\nPositionID\x18\x14 \x01(\x03R\npositionid\x12\x0e\n\x06Offset\x18\x1e \x01(\x03\x12\r\n\x05Limit\x18\x1f \x01(\x03\x12\x14\n\x0c\x45mployeeName\x18( \x01(\t\x12\x10\n\x08TeamName\x18) \x01(\t\x12\x16\n\x0e\x44\x65partmentName\x18* \x01(\t\x12\x13\n\x0bProjectName\x18+ \x01(\t\x12\x0c\n\x04\x43ode\x18, \x01(\t\x12\x14\n\x0cPositionName\x18- \x01(\t\x12\r\n\x05\x45mail\x18. \x01(\t\x12,\n\tIsManager\x18\x30 \x01(\x0e\x32\x19.grpc.weladee.com.Trinary\x12\x0c\n\x04RFID\x18\x32 \x01(\x03\x12\x11\n\tRFIDToken\x18\x33 \x01(\t\x12\x0c\n\x04Text\x18< \x01(\t\x12(\n\x06Gender\x18= \x01(\x0e\x32\x18.grpc.weladee.com.Gender\x12\x10\n\x06LateOn\x18\x64 \x01(\x03H\x00\x12\x12\n\x08\x41\x62sentOn\x18\x65 \x01(\x03H\x00\x12\x1a\n\x10\x46orgotCheckOutOn\x18\x66 \x01(\x03H\x00\x42\x10\n\x0eSpecialRequest\"\x1b\n\tRequestID\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\"\x97\x0f\n\x08\x45mployee\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x14\n\x05\x65mail\x18\x02 \x01(\tR\x05\x65mail\x12\x1c\n\tuser_name\x18\x03 \x01(\tR\tuser_name\x12,\n\x11last_name_english\x18\x04 \x01(\tR\x11last_name_english\x12.\n\x12\x66irst_name_english\x18\x05 \x01(\tR\x12\x66irst_name_english\x12(\n\x0f\x66irst_name_thai\x18\x06 \x01(\tR\x0f\x66irst_name_thai\x12&\n\x0elast_name_thai\x18\x07 \x01(\tR\x0elast_name_thai\x12\x1c\n\tmanagerID\x18\x08 \x01(\x03R\tmanagerid\x12\x16\n\x06lineID\x18\t \x01(\tR\x06lineid\x12\x1a\n\x08\x42irthday\x18\r \x01(\x03R\x08\x62irthday\x12\x1e\n\ntelegramID\x18\x33 \x01(\x03R\ntelegramid\x12*\n\x10nickname_english\x18\n \x01(\tR\x10nickname_english\x12$\n\rnickname_thai\x18\x0b \x01(\tR\rnickname_thai\x12\x1b\n\x08\x46\x43Mtoken\x18\x12 \x03(\tR\tfcm_token\x12 \n\x0bphone_model\x18\x13 \x01(\tR\x0bphone_model\x12\"\n\x0cphone_serial\x18\x14 \x01(\tR\x0cphone_serial\x12\x12\n\x04\x63ode\x18\x15 \x01(\tR\x04\x63ode\x12\x1e\n\ncreated_by\x18\x0e \x01(\x03R\ncreated_by\x12\x1e\n\nupdated_by\x18\x0f \x01(\x03R\nupdated_by\x12\x16\n\x06\x41\x63tive\x18\x10 \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04note\x18\x11 \x01(\tR\x04note\x12\x1e\n\ncreated_on\x18\x16 \x01(\x03R\ncreated_on\x12\x1e\n\nupdated_on\x18\x17 \x01(\x03R\nupdated_on\x12\x14\n\x05photo\x18\x18 \x01(\tR\x05photo\x12\x0e\n\x02lg\x18\x19 \x01(\tR\x02lg\x12P\n\x11\x61pplication_level\x18\x1a \x01(\x0e\x32\".grpc.weladee.com.ApplicationLevelR\x11\x61pplication_level\x12\x1e\n\nPositionID\x18\x1b \x01(\x03R\npositionid\x12\x16\n\x06Phones\x18\x1c \x03(\tR\x06phones\x12\x12\n\x04rfid\x18\x1d \x01(\x03R\x04rfid\x12\'\n\x0e\x45mailValidated\x18\" \x01(\x08R\x0f\x65mail_validated\x12\x16\n\x06TeamID\x18# \x01(\x03R\x06teamid\x12\x16\n\x06Gender\x18$ \x01(\tR\x06gender\x12\x31\n\x12HasToFillTimesheet\x18% \x01(\x08R\x15has_to_fill_timesheet\x12<\n\x18receiveCheckNotification\x18& \x01(\x08R\x1areceive_check_notification\x12.\n\x11\x43\x61nRequestHoliday\x18\' \x01(\x08R\x13\x63\x61n_request_holiday\x12\x12\n\x04Tags\x18? \x03(\tR\x04tags\x12\x1e\n\nNationalID\x18( \x01(\tR\nnationalid\x12\x14\n\x05TaxID\x18) \x01(\tR\x05taxid\x12\'\n\x0epassportNumber\x18* \x01(\tR\x0fpassport_number\x12\x14\n\x05token\x18\x32 \x01(\tR\x05token\x12\x31\n\x12\x43\x61nCheckTeamMember\x18\x34 \x01(\x08R\x15\x63\x61n_check_team_member\x12\x16\n\x06QRCode\x18\x35 \x01(\tR\x06qrcode\x12 \n\x0bNationality\x18\x36 \x01(\tR\x0bnationality\x12\x1d\n\tFreeCheck\x18\x37 \x01(\x08R\nfree_check\x12\x1f\n\nHourlyCost\x18\x38 \x01(\x01R\x0bhourly_cost\x12)\n\x0f\x44\x65partmentNames\x18< \x03(\tR\x10\x64\x65partment_names\x12\x1b\n\x08TeamName\x18= \x01(\tR\tteam_name\x12#\n\x0cPositionName\x18> \x01(\tR\rposition_name\x12 \n\x0b\x44\x65partments\x18\x45 \x03(\x03R\x0b\x64\x65partments\x12\x1a\n\x08Password\x18\x46 \x01(\tR\x08password\x12\x1c\n\tCompanyID\x18P \x01(\x03R\tcompanyid\x12#\n\x0bHasToUse2FA\x18Q \x01(\x08R\x0ehas_to_use_2fa\x12\x1d\n\tOTPMobile\x18R \x01(\x08R\notp_mobile\x12!\n\x0b\x46orceSelfie\x18S \x01(\x08R\x0c\x66orce_selfie\x12\x17\n\x06OptOut\x18T \x01(\x08R\x07opt_out\x12\x1d\n\tStartedOn\x18U \x01(\x03R\nstarted_on\x12$\n\x0c\x43\x61nRequestOT\x18Z \x01(\x08R\x0e\x63\x61n_request_ot\x12.\n\x11\x43\x61nRequestExpense\x18[ \x01(\x08R\x13\x63\x61n_request_expense\"\xb5\x02\n\x08Openhour\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x18\n\x07WeekDay\x18\x04 \x01(\rR\x07weekday\x12\x0c\n\x04\x46rom\x18\x05 \x01(\t\x12\n\n\x02To\x18\x06 \x01(\t\x12!\n\x0bNameEnglish\x18\x07 \x01(\tR\x0cname_english\x12\x1b\n\x08NameThai\x18\x08 \x01(\tR\tname_thai\x12\x1c\n\tDetailsID\x18\t \x01(\x03R\tdetailsid\x12\x16\n\x06\x41\x63tive\x18\n \x01(\x08R\x06\x61\x63tive\x12\x1d\n\tLateAfter\x18\x0b \x01(\tR\nlate_after\x12(\n\x0eMinPauseBefore\x18\x0c \x01(\x03R\x10min_pause_before\x12\x12\n\x04note\x18\r \x01(\tR\x04note\x12\x12\n\x04Type\x18\x0f \x01(\tR\x04type\"\xad\x01\n\x0eOpenHourDetail\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x18\n\x07WeekDay\x18\x04 \x01(\rR\x07weekday\x12\x0c\n\x04\x46rom\x18\x05 \x01(\t\x12\n\n\x02To\x18\x06 \x01(\t\x12\x1d\n\tLateAfter\x18\x0b \x01(\tR\nlate_after\x12(\n\x0eMinPauseBefore\x18\x0c \x01(\x03R\x10min_pause_before\x12\x0e\n\x02TZ\x18\x19 \x01(\tR\x02tz\"\xba\x01\n\x0eOpenHourMobile\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04Name\x18\x03 \x01(\tR\x04name\x12\x18\n\x07WeekDay\x18\x04 \x01(\rR\x07weekday\x12\x12\n\x04\x46rom\x18\x05 \x01(\tR\x04\x66rom\x12\x0e\n\x02To\x18\x06 \x01(\tR\x02to\x12\x1c\n\tDetailsID\x18\t \x01(\x03R\tdetailsid\x12(\n\x0eMinPauseBefore\x18\x0c \x01(\x03R\x10min_pause_before\"\x8b\n\n\x0bGateStation\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tCompanyID\x18\x02 \x01(\x03R\tcompanyid\x12\x10\n\x03MAC\x18\x03 \x01(\tR\x03mac\x12\x14\n\x05Major\x18\x04 \x01(\rR\x05major\x12\x14\n\x05Minor\x18\x05 \x01(\rR\x05minor\x12\x14\n\x05Token\x18\x07 \x01(\tR\x05token\x12\x12\n\x04Note\x18\x08 \x01(\tR\x04note\x12\x0e\n\x02IP\x18\t \x01(\tR\x02ip\x12\x16\n\x06\x41\x63tive\x18\x0b \x01(\x08R\x06\x61\x63tive\x12\x16\n\x06GateID\x18\x0c \x01(\x03R\x06gateid\x12\x18\n\x07ModelID\x18\r \x01(\x03R\x07modelid\x12\x16\n\x06Serial\x18\x0e \x01(\tR\x06serial\x12$\n\x0cShowLatestIn\x18\x0f \x01(\x08R\x0eshow_latest_in\x12&\n\rShowLatestOut\x18\x10 \x01(\x08R\x0fshow_latest_out\x12$\n\x0cShowMostLate\x18\x11 \x01(\x08R\x0eshow_most_late\x12\x1f\n\nHasDisplay\x18\x12 \x01(\x08R\x0bhas_display\x12\x1b\n\x08PlayBeep\x18\x13 \x01(\x08R\tplay_beep\x12\x1a\n\x08\x43\x61tegory\x18\x1c \x01(\tR\x08\x63\x61tegory\x12\x1d\n\tHDMISound\x18- \x01(\x08R\nhdmi_sound\x12#\n\x0c\x42\x65\x61\x63onActive\x18\x14 \x01(\x08R\rbeacon_active\x12&\n\rHasOnboardLCD\x18\x15 \x01(\x08R\x0fhas_onboard_lcd\x12!\n\x0bShowTwitter\x18\x16 \x01(\x08R\x0cshow_twitter\x12\x1d\n\tPlayVoice\x18\x17 \x01(\x08R\nplay_voice\x12,\n\x10ShowWorkingHours\x18\x18 \x01(\x08R\x12show_working_hours\x12\x38\n\x16ShowBackgroundPictures\x18\x19 \x01(\x08R\x18show_background_pictures\x12#\n\x0cShowFacebook\x18\x1a \x01(\x08R\rshow_facebook\x12#\n\x0cScanResource\x18\x1b \x01(\x08R\rscan_resource\x12\x1b\n\x08WifiSSID\x18\x1e \x01(\tR\twifi_ssid\x12\x19\n\x07WifiPwd\x18\x1f \x01(\tR\x08wifi_pwd\x12%\n\rRefreshScreen\x18 \x01(\rR\x0erefresh_screen\x12\x12\n\x04URLs\x18! \x03(\tR\x04urls\x12\x19\n\x07SSHPort\x18\" \x01(\rR\x08ssh_port\x12$\n\rProximityUUID\x18# \x01(\tR\rproximityuuid\x12!\n\x0b\x43ompanyName\x18$ \x01(\tR\x0c\x63ompany_name\x12\x1d\n\tModelName\x18% \x01(\tR\nmodel_name\x12\x1b\n\x08GateName\x18& \x01(\tR\tgate_name\x12\x12\n\x04MACs\x18( \x03(\tR\x04macs\x12-\n\x11RefreshBackground\x18) \x01(\rR\x12refresh_background\x12\x14\n\x05\x43olor\x18* \x01(\tR\x05\x63olor\x12(\n\x0eLastTimeOnline\x18+ \x01(\x03R\x10last_time_online\x12\x30\n\x12ScreenSaverTimeout\x18. \x01(\rR\x14screen_saver_timeout\"\xcd\x03\n\nWebStation\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x1c\n\tCompanyID\x18\x02 \x01(\x03R\tcompanyid\x12\x10\n\x03MAC\x18\x03 \x01(\tR\x03mac\x12\x14\n\x05Token\x18\x07 \x01(\tR\x05token\x12\x12\n\x04Note\x18\x08 \x01(\tR\x04note\x12\x0e\n\x02IP\x18\t \x01(\tR\x02ip\x12\x16\n\x06\x41\x63tive\x18\x0b \x01(\x08R\x06\x61\x63tive\x12\x18\n\x07ModelID\x18\r \x01(\x03R\x07modelid\x12\x16\n\x06Serial\x18\x0e \x01(\tR\x06serial\x12\x1b\n\x08WifiSSID\x18\x1e \x01(\tR\twifi_ssid\x12\x19\n\x07WifiPwd\x18\x1f \x01(\tR\x08wifi_pwd\x12\x12\n\x04URLs\x18! \x03(\tR\x04urls\x12\x19\n\x07SSHPort\x18\" \x01(\rR\x08ssh_port\x12!\n\x0b\x43ompanyName\x18$ \x01(\tR\x0c\x63ompany_name\x12\x1d\n\tModelName\x18% \x01(\tR\nmodel_name\x12\x12\n\x04MACs\x18( \x03(\tR\x04macs\x12\x14\n\x05\x43olor\x18* \x01(\tR\x05\x63olor\x12(\n\x0eLastTimeOnline\x18+ \x01(\x03R\x10last_time_online\";\n\x0fHolidayRequests\x12\x10\n\x03IDs\x18\x01 \x03(\x03R\x03ids\x12\x16\n\x06Reason\x18\x02 \x01(\tR\x06reason\"\xa1\x02\n\x0b\x43odeHoliday\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12\x12\n\x04\x43ode\x18\x02 \x01(\tR\x04\x63ode\x12\"\n\x0cName_english\x18\x03 \x01(\tR\x0cname_english\x12\x1c\n\tName_thai\x18\x04 \x01(\tR\tname_thai\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05\x43olor\x18\x06 \x01(\tR\x05\x63olor\x12-\n\x11\x44\x65\x66\x61ultAllocation\x18\x07 \x01(\x05R\x12\x64\x65\x66\x61ult_allocation\x12;\n\x17MinimumDayBeforeHoliday\x18\x08 \x01(\x05R\x1aminimum_day_before_holiday\x12\x12\n\x04Note\x18\n \x01(\tR\x04note\"\xea\x03\n\x0c\x41nnouncement\x12\x0e\n\x02ID\x18\x01 \x01(\x03R\x02id\x12#\n\x0cTitleEnglish\x18\x02 \x01(\tR\rtitle_english\x12\x1d\n\tTitleThai\x18\x03 \x01(\tR\ntitle_thai\x12\'\n\x0eMessageEnglish\x18\x04 \x01(\tR\x0fmessage_english\x12!\n\x0bMessageThai\x18\x05 \x01(\tR\x0cmessage_thai\x12!\n\x0b\x44isplayFrom\x18\x06 \x01(\x03R\x0c\x64isplay_from\x12\x1d\n\tDisplayTo\x18\x07 \x01(\x03R\ndisplay_to\x12\x16\n\x06TeamID\x18\x08 \x01(\x03R\x06teamid\x12\"\n\x0c\x44\x65partmentID\x18\t \x01(\x03R\x0c\x64\x65partmentid\x12\x36\n\x08Priority\x18\n \x01(\x0e\x32\x1a.grpc.weladee.com.PriorityR\x08priority\x12\x16\n\x06\x41\x63tive\x18\x0f \x01(\x08R\x06\x61\x63tive\x12\x12\n\x04Note\x18\x10 \x01(\tR\x04note\x12\x17\n\x06ReadON\x18\x14 \x01(\x03R\x07read_on\x12\x1c\n\tCompanyID\x18\x19 \x01(\x03R\tcompanyid\x12!\n\x0b\x43ompanyName\x18\x1a \x01(\tR\x0c\x63ompany_name\"L\n\nMinVersion\x12\x0f\n\x07\x61ndroid\x18\x01 \x01(\t\x12\x0b\n\x03ios\x18\x02 \x01(\t\x12\x11\n\tAdminLite\x18\x03 \x01(\t\x12\r\n\x05Kiosk\x18\x04 \x01(\t\"\x19\n\x08\x46\x43MToken\x12\r\n\x05token\x18\x01 \x01(\t\"\xff\x01\n\nGoogleUser\x12\x14\n\x05\x45mail\x18\x02 \x01(\tR\x05\x65mail\x12\x12\n\x04Name\x18\x07 \x01(\tR\x04name\x12\x14\n\x05Photo\x18\x08 \x01(\tR\x05photo\x12\x1b\n\x08\x46\x43Mtoken\x18\x12 \x03(\tR\tfcm_token\x12\x1f\n\nPhoneModel\x18\x13 \x01(\tR\x0bphone_model\x12!\n\x0bPhoneSerial\x18\x14 \x01(\tR\x0cphone_serial\x12\x1d\n\tCreatedOn\x18\x16 \x01(\x03R\ncreated_on\x12\x1f\n\nLastSignIn\x18\x17 \x01(\x03R\x0blast_signin\x12\x10\n\x03UID\x18\x1e \x01(\tR\x03uid\"\xe3\x01\n\x12HolidayPreferences\x12,\n\x10\x41pproveByManager\x18\x01 \x01(\x08R\x12\x61pprove_by_manager\x12\x35\n\x14\x41pproveByTeamManager\x18\x02 \x01(\x08R\x17\x61pprove_by_team_manager\x12\x31\n\x12\x41pproveByHRManager\x18\x03 \x01(\x08R\x15\x61pprove_by_hr_manager\x12\x35\n\x14\x41pproveByDeptManager\x18\x04 \x01(\x08R\x17\x61pprove_by_dept_manager*\xa3\x01\n\x10\x41pplicationLevel\x12\x13\n\x0fSimple_Employee\x10\x00\x12\x0f\n\x0bHR_Operator\x10\x01\x12\x0e\n\nHR_Manager\x10\x02\x12\x10\n\x0cTeam_Manager\x10\x03\x12\x16\n\x12\x44\x65partment_Manager\x10\x04\x12\x0c\n\x08\x44irector\x10\x05\x12\x11\n\rAdministrator\x10\x06\x12\x0e\n\nSupervisor\x10\t*R\n\x0b\x43ompanyType\x12\x07\n\x03\x41ny\x10\x00\x12\x08\n\x04\x46ree\x10\x01\x12\t\n\x05Trial\x10\x02\x12\x07\n\x03SME\x10\x03\x12\x0c\n\x08Standard\x10\x04\x12\x0e\n\nEnterprise\x10\x05*G\n\x0b\x46\x61\x63\x65\x43onfirm\x12\x15\n\x11\x46\x61\x63\x65ToBeConfirmed\x10\x00\x12\x11\n\rFaceConfirmed\x10\x01\x12\x0e\n\nFaceDenied\x10\x02*\'\n\tPhotoType\x12\x07\n\x03JPG\x10\x00\x12\x08\n\x04WEBP\x10\x01\x12\x07\n\x03PNG\x10\x02*@\n\x14HolidayRequestStatus\x12\r\n\tRequested\x10\x00\x12\x0c\n\x08\x41pproved\x10\x01\x12\x0b\n\x07Refused\x10\x02*6\n\x0bHolidayTime\x12\x0b\n\x07\x46ullDay\x10\x00\x12\x0b\n\x07Morning\x10\x01\x12\r\n\tAfterNoon\x10\x02*3\n\x07Trinary\x12\r\n\tTriIgnore\x10\x00\x12\x0b\n\x07TriTrue\x10\x01\x12\x0c\n\x08TriFalse\x10\x02*5\n\x08Priority\x12\n\n\x06Normal\x10\x00\x12\x07\n\x03Low\x10\x01\x12\x08\n\x04High\x10\x02\x12\n\n\x06Urgent\x10\x03*9\n\x06Gender\x12\r\n\tGenderAny\x10\x00\x12\x0e\n\nGenderMale\x10\x01\x12\x10\n\x0cGenderFemale\x10\x02\x42?\n\x15\x63om.frontware.weladeeB\x0bWeladeeGRPCH\x03P\x01\x90\x01\x01\xaa\x02\x11\x46rontware.Weladeeb\x06proto3' ) _APPLICATIONLEVEL = _descriptor.EnumDescriptor( @@ -65,8 +63,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12126, - serialized_end=12289, + serialized_start=12818, + serialized_end=12981, ) _sym_db.RegisterEnumDescriptor(_APPLICATIONLEVEL) @@ -104,8 +102,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12291, - serialized_end=12373, + serialized_start=12983, + serialized_end=13065, ) _sym_db.RegisterEnumDescriptor(_COMPANYTYPE) @@ -131,8 +129,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12375, - serialized_end=12446, + serialized_start=13067, + serialized_end=13138, ) _sym_db.RegisterEnumDescriptor(_FACECONFIRM) @@ -158,8 +156,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12448, - serialized_end=12487, + serialized_start=13140, + serialized_end=13179, ) _sym_db.RegisterEnumDescriptor(_PHOTOTYPE) @@ -185,8 +183,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12489, - serialized_end=12553, + serialized_start=13181, + serialized_end=13245, ) _sym_db.RegisterEnumDescriptor(_HOLIDAYREQUESTSTATUS) @@ -212,8 +210,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12555, - serialized_end=12609, + serialized_start=13247, + serialized_end=13301, ) _sym_db.RegisterEnumDescriptor(_HOLIDAYTIME) @@ -239,8 +237,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=12611, - serialized_end=12662, + serialized_start=13303, + serialized_end=13354, ) _sym_db.RegisterEnumDescriptor(_TRINARY) @@ -270,12 +268,39 @@ ], containing_type=None, serialized_options=None, - serialized_start=12664, - serialized_end=12717, + serialized_start=13356, + serialized_end=13409, ) _sym_db.RegisterEnumDescriptor(_PRIORITY) Priority = enum_type_wrapper.EnumTypeWrapper(_PRIORITY) +_GENDER = _descriptor.EnumDescriptor( + name='Gender', + full_name='grpc.weladee.com.Gender', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='GenderAny', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GenderMale', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GenderFemale', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=13411, + serialized_end=13468, +) +_sym_db.RegisterEnumDescriptor(_GENDER) + +Gender = enum_type_wrapper.EnumTypeWrapper(_GENDER) Simple_Employee = 0 HR_Operator = 1 HR_Manager = 2 @@ -309,6 +334,9 @@ Low = 1 High = 2 Urgent = 3 +GenderAny = 0 +GenderMale = 1 +GenderFemale = 2 @@ -360,14 +388,14 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Company.NameEnglish', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Company.NameThai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -393,182 +421,189 @@ is_extension=False, extension_scope=None, serialized_options=None, json_name='resource', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ShowGettingStarted', full_name='grpc.weladee.com.Company.ShowGettingStarted', index=6, - number=28, type=8, cpp_type=7, label=1, + name='Expense', full_name='grpc.weladee.com.Company.Expense', index=6, + number=41, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='expense', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='OTRequest', full_name='grpc.weladee.com.Company.OTRequest', index=7, + number=42, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, json_name='show_getting_started', file=DESCRIPTOR), + serialized_options=None, json_name='ot_request', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='note', full_name='grpc.weladee.com.Company.note', index=7, + name='note', full_name='grpc.weladee.com.Company.note', index=8, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='address', full_name='grpc.weladee.com.Company.address', index=8, + name='address', full_name='grpc.weladee.com.Company.address', index=9, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='address', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='city', full_name='grpc.weladee.com.Company.city', index=9, + name='city', full_name='grpc.weladee.com.Company.city', index=10, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='city', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='postcode', full_name='grpc.weladee.com.Company.postcode', index=10, + name='postcode', full_name='grpc.weladee.com.Company.postcode', index=11, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='postcode', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='country', full_name='grpc.weladee.com.Company.country', index=11, + name='country', full_name='grpc.weladee.com.Company.country', index=12, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='country', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='twitter', full_name='grpc.weladee.com.Company.twitter', index=12, + name='twitter', full_name='grpc.weladee.com.Company.twitter', index=13, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='twitter', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='facebook', full_name='grpc.weladee.com.Company.facebook', index=13, + name='facebook', full_name='grpc.weladee.com.Company.facebook', index=14, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='facebook', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Line', full_name='grpc.weladee.com.Company.Line', index=14, + name='Line', full_name='grpc.weladee.com.Company.Line', index=15, number=50, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='line', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='APIKey', full_name='grpc.weladee.com.Company.APIKey', index=15, + name='APIKey', full_name='grpc.weladee.com.Company.APIKey', index=16, number=15, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='api_key', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='TaxID', full_name='grpc.weladee.com.Company.TaxID', index=16, + name='TaxID', full_name='grpc.weladee.com.Company.TaxID', index=17, number=16, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='taxid', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='BranchID', full_name='grpc.weladee.com.Company.BranchID', index=17, + name='BranchID', full_name='grpc.weladee.com.Company.BranchID', index=18, number=17, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='branchid', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='URL', full_name='grpc.weladee.com.Company.URL', index=18, + name='URL', full_name='grpc.weladee.com.Company.URL', index=19, number=18, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='url', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Logo', full_name='grpc.weladee.com.Company.Logo', index=19, + name='Logo', full_name='grpc.weladee.com.Company.Logo', index=20, number=19, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='logo', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ThemeColor', full_name='grpc.weladee.com.Company.ThemeColor', index=20, + name='ThemeColor', full_name='grpc.weladee.com.Company.ThemeColor', index=21, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='theme_color', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='CustomerType', full_name='grpc.weladee.com.Company.CustomerType', index=21, + name='CustomerType', full_name='grpc.weladee.com.Company.CustomerType', index=22, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='customer_type', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Radius', full_name='grpc.weladee.com.Company.Radius', index=22, + name='Radius', full_name='grpc.weladee.com.Company.Radius', index=23, number=22, type=13, cpp_type=3, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='radius', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='latitude', full_name='grpc.weladee.com.Company.latitude', index=23, + name='latitude', full_name='grpc.weladee.com.Company.latitude', index=24, number=23, type=1, cpp_type=5, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='longitude', full_name='grpc.weladee.com.Company.longitude', index=24, + name='longitude', full_name='grpc.weladee.com.Company.longitude', index=25, number=24, type=1, cpp_type=5, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='TZ', full_name='grpc.weladee.com.Company.TZ', index=25, + name='TZ', full_name='grpc.weladee.com.Company.TZ', index=26, number=25, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='tz', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Phones', full_name='grpc.weladee.com.Company.Phones', index=26, + name='Phones', full_name='grpc.weladee.com.Company.Phones', index=27, number=26, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='phones', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ProximityUUID', full_name='grpc.weladee.com.Company.ProximityUUID', index=27, + name='ProximityUUID', full_name='grpc.weladee.com.Company.ProximityUUID', index=28, number=27, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='proximityuuid', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='CRMID', full_name='grpc.weladee.com.Company.CRMID', index=28, + name='CRMID', full_name='grpc.weladee.com.Company.CRMID', index=29, number=30, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='crm_id', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='PaidUntil', full_name='grpc.weladee.com.Company.PaidUntil', index=29, + name='PaidUntil', full_name='grpc.weladee.com.Company.PaidUntil', index=30, number=31, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='paid_until', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='RegisteredOn', full_name='grpc.weladee.com.Company.RegisteredOn', index=30, + name='RegisteredOn', full_name='grpc.weladee.com.Company.RegisteredOn', index=31, number=32, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='registered_on', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='SponsorID', full_name='grpc.weladee.com.Company.SponsorID', index=31, + name='SponsorID', full_name='grpc.weladee.com.Company.SponsorID', index=32, number=40, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -587,7 +622,7 @@ oneofs=[ ], serialized_start=61, - serialized_end=919, + serialized_end=926, ) @@ -601,7 +636,7 @@ _descriptor.FieldDescriptor( name='key', full_name='grpc.weladee.com.EmployeeStat.CurrentYearHolidayEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -618,14 +653,14 @@ nested_types=[], enum_types=[ ], - serialized_options=_b('8\001'), + serialized_options=b'8\001', is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=1957, - serialized_end=2045, + serialized_start=1964, + serialized_end=2052, ) _EMPLOYEESTAT = _descriptor.Descriptor( @@ -752,8 +787,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=922, - serialized_end=2045, + serialized_start=929, + serialized_end=2052, ) @@ -790,8 +825,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2047, - serialized_end=2093, + serialized_start=2054, + serialized_end=2100, ) @@ -828,8 +863,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2095, - serialized_end=2198, + serialized_start=2102, + serialized_end=2205, ) @@ -880,8 +915,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2201, - serialized_end=2357, + serialized_start=2208, + serialized_end=2364, ) @@ -904,8 +939,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2359, - serialized_end=2366, + serialized_start=2366, + serialized_end=2373, ) @@ -926,14 +961,14 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Holiday.NameEnglish', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Holiday.NameThai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -954,14 +989,14 @@ _descriptor.FieldDescriptor( name='code', full_name='grpc.weladee.com.Holiday.code', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='color', full_name='grpc.weladee.com.Holiday.color', index=6, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='color', file=DESCRIPTOR), @@ -975,7 +1010,7 @@ _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Holiday.note', index=8, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -1001,12 +1036,26 @@ is_extension=False, extension_scope=None, serialized_options=None, json_name='codeid', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='EmployeeName', full_name='grpc.weladee.com.Holiday.EmployeeName', index=12, + name='HolidayRequestID', full_name='grpc.weladee.com.Holiday.HolidayRequestID', index=12, + number=22, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='holiday_requestid', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EmployeeName', full_name='grpc.weladee.com.Holiday.EmployeeName', index=13, number=25, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Alert', full_name='grpc.weladee.com.Holiday.Alert', index=14, + number=30, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='alert,omitempty', file=DESCRIPTOR), ], extensions=[ ], @@ -1019,8 +1068,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2369, - serialized_end=2746, + serialized_start=2376, + serialized_end=2830, ) @@ -1057,8 +1106,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2748, - serialized_end=2806, + serialized_start=2832, + serialized_end=2890, ) @@ -1098,26 +1147,40 @@ is_extension=False, extension_scope=None, serialized_options=None, json_name='days', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Note', full_name='grpc.weladee.com.HolidayAllocation.Note', index=4, + name='Color', full_name='grpc.weladee.com.HolidayAllocation.Color', index=4, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='color', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Note', full_name='grpc.weladee.com.HolidayAllocation.Note', index=5, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Code', full_name='grpc.weladee.com.HolidayAllocation.Code', index=5, + name='Code', full_name='grpc.weladee.com.HolidayAllocation.Code', index=6, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='holiday_code', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='CodeName', full_name='grpc.weladee.com.HolidayAllocation.CodeName', index=6, + name='CodeName', full_name='grpc.weladee.com.HolidayAllocation.CodeName', index=7, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code_name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='DefaultAllocation', full_name='grpc.weladee.com.HolidayAllocation.DefaultAllocation', index=8, + number=13, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='default_allocation', file=DESCRIPTOR), ], extensions=[ ], @@ -1130,8 +1193,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2809, - serialized_end=3005, + serialized_start=2893, + serialized_end=3158, ) @@ -1182,8 +1245,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3007, - serialized_end=3066, + serialized_start=3160, + serialized_end=3219, ) @@ -1246,21 +1309,21 @@ _descriptor.FieldDescriptor( name='URL', full_name='grpc.weladee.com.LogPhoto.URL', index=7, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.LogPhoto.note', index=8, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='IPFS', full_name='grpc.weladee.com.LogPhoto.IPFS', index=9, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='ipfs', file=DESCRIPTOR), @@ -1295,14 +1358,14 @@ _descriptor.FieldDescriptor( name='EmployeeName', full_name='grpc.weladee.com.LogPhoto.EmployeeName', index=14, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='employee_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='GateName', full_name='grpc.weladee.com.LogPhoto.GateName', index=15, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gate_name', file=DESCRIPTOR), @@ -1318,8 +1381,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3069, - serialized_end=3614, + serialized_start=3222, + serialized_end=3767, ) @@ -1356,8 +1419,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3616, - serialized_end=3713, + serialized_start=3769, + serialized_end=3866, ) @@ -1392,21 +1455,21 @@ _descriptor.FieldDescriptor( name='GateName', full_name='grpc.weladee.com.PendingPhoto.GateName', index=3, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gate_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='URL', full_name='grpc.weladee.com.PendingPhoto.URL', index=4, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='url', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='FaceURL', full_name='grpc.weladee.com.PendingPhoto.FaceURL', index=5, number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='face_url', file=DESCRIPTOR), @@ -1422,8 +1485,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3716, - serialized_end=3874, + serialized_start=3869, + serialized_end=4027, ) @@ -1460,8 +1523,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3876, - serialized_end=3946, + serialized_start=4029, + serialized_end=4099, ) @@ -1482,7 +1545,7 @@ _descriptor.FieldDescriptor( name='Photo', full_name='grpc.weladee.com.NewPhoto.Photo', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), + has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1496,14 +1559,14 @@ _descriptor.FieldDescriptor( name='HashIPFS', full_name='grpc.weladee.com.NewPhoto.HashIPFS', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Face', full_name='grpc.weladee.com.NewPhoto.Face', index=4, number=5, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), + has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1519,8 +1582,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3949, - serialized_end=4100, + serialized_start=4102, + serialized_end=4253, ) @@ -1550,8 +1613,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4102, - serialized_end=4131, + serialized_start=4255, + serialized_end=4284, ) @@ -1572,14 +1635,14 @@ _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Position.NameEnglish', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Position.NameThai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -1600,7 +1663,7 @@ _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Position.note', index=5, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -1616,8 +1679,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4134, - serialized_end=4290, + serialized_start=4287, + serialized_end=4443, ) @@ -1638,7 +1701,7 @@ _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.Team.Name', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), @@ -1676,18 +1739,18 @@ has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, json_name='minimum_day_before_holiday', file=DESCRIPTOR), + serialized_options=b'\030\001', json_name='minimum_day_before_holiday', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Team.NameEnglish', index=7, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Team.NameThai', index=8, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -1701,14 +1764,14 @@ _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Team.note', index=10, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='email', full_name='grpc.weladee.com.Team.email', index=11, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='email', file=DESCRIPTOR), @@ -1722,7 +1785,7 @@ _descriptor.FieldDescriptor( name='ManagerName', full_name='grpc.weladee.com.Team.ManagerName', index=13, number=15, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='manager_name', file=DESCRIPTOR), @@ -1759,8 +1822,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4293, - serialized_end=4891, + serialized_start=4446, + serialized_end=5048, ) @@ -1781,14 +1844,14 @@ _descriptor.FieldDescriptor( name='name_english', full_name='grpc.weladee.com.Gate.name_english', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='name_thai', full_name='grpc.weladee.com.Gate.name_thai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -1809,14 +1872,14 @@ _descriptor.FieldDescriptor( name='QRCode', full_name='grpc.weladee.com.Gate.QRCode', index=5, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='qrcode', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Gate.note', index=6, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -1844,28 +1907,28 @@ _descriptor.FieldDescriptor( name='address', full_name='grpc.weladee.com.Gate.address', index=10, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='address', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='city', full_name='grpc.weladee.com.Gate.city', index=11, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='city', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='postCode', full_name='grpc.weladee.com.Gate.postCode', index=12, number=15, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='postcode', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='country', full_name='grpc.weladee.com.Gate.country', index=13, number=16, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='country', file=DESCRIPTOR), @@ -1890,6 +1953,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='allow_free_check', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Code', full_name='grpc.weladee.com.Gate.Code', index=17, + number=20, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='code', file=DESCRIPTOR), ], extensions=[ ], @@ -1902,8 +1972,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4894, - serialized_end=5400, + serialized_start=5051, + serialized_end=5577, ) @@ -1924,14 +1994,14 @@ _descriptor.FieldDescriptor( name='name_english', full_name='grpc.weladee.com.Department.name_english', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='name_thai', full_name='grpc.weladee.com.Department.name_thai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -1952,28 +2022,28 @@ _descriptor.FieldDescriptor( name='code', full_name='grpc.weladee.com.Department.code', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='email', full_name='grpc.weladee.com.Department.email', index=6, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Department.note', index=7, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ManagerName', full_name='grpc.weladee.com.Department.ManagerName', index=8, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='manager_name', file=DESCRIPTOR), @@ -1989,8 +2059,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5403, - serialized_end=5629, + serialized_start=5580, + serialized_end=5806, ) @@ -2011,7 +2081,7 @@ _descriptor.FieldDescriptor( name='action', full_name='grpc.weladee.com.LogEvent.action', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='action', file=DESCRIPTOR), @@ -2053,7 +2123,7 @@ _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.LogEvent.note', index=7, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -2069,8 +2139,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5632, - serialized_end=5832, + serialized_start=5809, + serialized_end=6009, ) @@ -2091,14 +2161,14 @@ _descriptor.FieldDescriptor( name='reason', full_name='grpc.weladee.com.RefuseRequest.reason', index=1, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='reason', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.RefuseRequest.note', index=2, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -2114,8 +2184,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5834, - serialized_end=5909, + serialized_start=6011, + serialized_end=6086, ) @@ -2129,14 +2199,14 @@ _descriptor.FieldDescriptor( name='user_name', full_name='grpc.weladee.com.EmployeeRequest.user_name', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='email', full_name='grpc.weladee.com.EmployeeRequest.email', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2162,8 +2232,8 @@ name='query', full_name='grpc.weladee.com.EmployeeRequest.query', index=0, containing_type=None, fields=[]), ], - serialized_start=5911, - serialized_end=5989, + serialized_start=6088, + serialized_end=6166, ) @@ -2177,7 +2247,7 @@ _descriptor.FieldDescriptor( name='stats', full_name='grpc.weladee.com.EmployeeStats.stats', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), + has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2193,8 +2263,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5991, - serialized_end=6021, + serialized_start=6168, + serialized_end=6198, ) @@ -2250,7 +2320,7 @@ _descriptor.FieldDescriptor( name='Tag', full_name='grpc.weladee.com.EmployeesRequest.Tag', index=6, number=17, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='tag', file=DESCRIPTOR), @@ -2299,49 +2369,49 @@ _descriptor.FieldDescriptor( name='EmployeeName', full_name='grpc.weladee.com.EmployeesRequest.EmployeeName', index=13, number=40, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TeamName', full_name='grpc.weladee.com.EmployeesRequest.TeamName', index=14, number=41, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='DepartmentName', full_name='grpc.weladee.com.EmployeesRequest.DepartmentName', index=15, number=42, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ProjectName', full_name='grpc.weladee.com.EmployeesRequest.ProjectName', index=16, number=43, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.EmployeesRequest.Code', index=17, number=44, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='PositionName', full_name='grpc.weladee.com.EmployeesRequest.PositionName', index=18, number=45, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Email', full_name='grpc.weladee.com.EmployeesRequest.Email', index=19, number=46, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2362,33 +2432,40 @@ _descriptor.FieldDescriptor( name='RFIDToken', full_name='grpc.weladee.com.EmployeesRequest.RFIDToken', index=22, number=51, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Text', full_name='grpc.weladee.com.EmployeesRequest.Text', index=23, number=60, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Gender', full_name='grpc.weladee.com.EmployeesRequest.Gender', index=24, + number=61, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='LateOn', full_name='grpc.weladee.com.EmployeesRequest.LateOn', index=24, + name='LateOn', full_name='grpc.weladee.com.EmployeesRequest.LateOn', index=25, number=100, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='AbsentOn', full_name='grpc.weladee.com.EmployeesRequest.AbsentOn', index=25, + name='AbsentOn', full_name='grpc.weladee.com.EmployeesRequest.AbsentOn', index=26, number=101, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ForgotCheckOutOn', full_name='grpc.weladee.com.EmployeesRequest.ForgotCheckOutOn', index=26, + name='ForgotCheckOutOn', full_name='grpc.weladee.com.EmployeesRequest.ForgotCheckOutOn', index=27, number=102, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -2409,8 +2486,8 @@ name='SpecialRequest', full_name='grpc.weladee.com.EmployeesRequest.SpecialRequest', index=0, containing_type=None, fields=[]), ], - serialized_start=6024, - serialized_end=6747, + serialized_start=6201, + serialized_end=6966, ) @@ -2440,8 +2517,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6749, - serialized_end=6776, + serialized_start=6968, + serialized_end=6995, ) @@ -2462,42 +2539,42 @@ _descriptor.FieldDescriptor( name='email', full_name='grpc.weladee.com.Employee.email', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='email', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='user_name', full_name='grpc.weladee.com.Employee.user_name', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='user_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='last_name_english', full_name='grpc.weladee.com.Employee.last_name_english', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='last_name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='first_name_english', full_name='grpc.weladee.com.Employee.first_name_english', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='first_name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='first_name_thai', full_name='grpc.weladee.com.Employee.first_name_thai', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='first_name_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='last_name_thai', full_name='grpc.weladee.com.Employee.last_name_thai', index=6, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='last_name_thai', file=DESCRIPTOR), @@ -2511,7 +2588,7 @@ _descriptor.FieldDescriptor( name='lineID', full_name='grpc.weladee.com.Employee.lineID', index=8, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='lineid', file=DESCRIPTOR), @@ -2532,14 +2609,14 @@ _descriptor.FieldDescriptor( name='nickname_english', full_name='grpc.weladee.com.Employee.nickname_english', index=11, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='nickname_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='nickname_thai', full_name='grpc.weladee.com.Employee.nickname_thai', index=12, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='nickname_thai', file=DESCRIPTOR), @@ -2553,21 +2630,21 @@ _descriptor.FieldDescriptor( name='phone_model', full_name='grpc.weladee.com.Employee.phone_model', index=14, number=19, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='phone_model', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='phone_serial', full_name='grpc.weladee.com.Employee.phone_serial', index=15, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='phone_serial', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='code', full_name='grpc.weladee.com.Employee.code', index=16, number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), @@ -2595,7 +2672,7 @@ _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Employee.note', index=20, number=17, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -2616,14 +2693,14 @@ _descriptor.FieldDescriptor( name='photo', full_name='grpc.weladee.com.Employee.photo', index=23, number=24, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='photo', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='lg', full_name='grpc.weladee.com.Employee.lg', index=24, number=25, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='lg', file=DESCRIPTOR), @@ -2663,21 +2740,21 @@ is_extension=False, extension_scope=None, serialized_options=None, json_name='email_validated', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='teamID', full_name='grpc.weladee.com.Employee.teamID', index=30, + name='TeamID', full_name='grpc.weladee.com.Employee.TeamID', index=30, number=35, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='teamid', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='gender', full_name='grpc.weladee.com.Employee.gender', index=31, + name='Gender', full_name='grpc.weladee.com.Employee.Gender', index=31, number=36, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gender', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='hasToFillTimesheet', full_name='grpc.weladee.com.Employee.hasToFillTimesheet', index=32, + name='HasToFillTimesheet', full_name='grpc.weladee.com.Employee.HasToFillTimesheet', index=32, number=37, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -2691,7 +2768,7 @@ is_extension=False, extension_scope=None, serialized_options=None, json_name='receive_check_notification', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='canRequestHoliday', full_name='grpc.weladee.com.Employee.canRequestHoliday', index=34, + name='CanRequestHoliday', full_name='grpc.weladee.com.Employee.CanRequestHoliday', index=34, number=39, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -2707,28 +2784,28 @@ _descriptor.FieldDescriptor( name='NationalID', full_name='grpc.weladee.com.Employee.NationalID', index=36, number=40, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='nationalid', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TaxID', full_name='grpc.weladee.com.Employee.TaxID', index=37, number=41, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='taxid', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='passportNumber', full_name='grpc.weladee.com.Employee.passportNumber', index=38, number=42, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='passport_number', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='token', full_name='grpc.weladee.com.Employee.token', index=39, number=50, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='token', file=DESCRIPTOR), @@ -2742,14 +2819,14 @@ _descriptor.FieldDescriptor( name='QRCode', full_name='grpc.weladee.com.Employee.QRCode', index=41, number=53, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='qrcode', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Nationality', full_name='grpc.weladee.com.Employee.Nationality', index=42, number=54, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='nationality', file=DESCRIPTOR), @@ -2777,14 +2854,14 @@ _descriptor.FieldDescriptor( name='TeamName', full_name='grpc.weladee.com.Employee.TeamName', index=46, number=61, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='team_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='PositionName', full_name='grpc.weladee.com.Employee.PositionName', index=47, number=62, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='position_name', file=DESCRIPTOR), @@ -2798,7 +2875,7 @@ _descriptor.FieldDescriptor( name='Password', full_name='grpc.weladee.com.Employee.Password', index=49, number=70, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='password', file=DESCRIPTOR), @@ -2810,7 +2887,7 @@ is_extension=False, extension_scope=None, serialized_options=None, json_name='companyid', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='hasToUse2FA', full_name='grpc.weladee.com.Employee.hasToUse2FA', index=51, + name='HasToUse2FA', full_name='grpc.weladee.com.Employee.HasToUse2FA', index=51, number=81, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -2837,6 +2914,27 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='opt_out', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='StartedOn', full_name='grpc.weladee.com.Employee.StartedOn', index=55, + number=85, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='started_on', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='CanRequestOT', full_name='grpc.weladee.com.Employee.CanRequestOT', index=56, + number=90, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='can_request_ot', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='CanRequestExpense', full_name='grpc.weladee.com.Employee.CanRequestExpense', index=57, + number=91, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='can_request_expense', file=DESCRIPTOR), ], extensions=[ ], @@ -2849,8 +2947,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6779, - serialized_end=8605, + serialized_start=6998, + serialized_end=8941, ) @@ -2878,28 +2976,28 @@ _descriptor.FieldDescriptor( name='From', full_name='grpc.weladee.com.Openhour.From', index=2, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='To', full_name='grpc.weladee.com.Openhour.To', index=3, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameEnglish', full_name='grpc.weladee.com.Openhour.NameEnglish', index=4, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='NameThai', full_name='grpc.weladee.com.Openhour.NameThai', index=5, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -2920,7 +3018,7 @@ _descriptor.FieldDescriptor( name='LateAfter', full_name='grpc.weladee.com.Openhour.LateAfter', index=8, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='late_after', file=DESCRIPTOR), @@ -2934,14 +3032,14 @@ _descriptor.FieldDescriptor( name='note', full_name='grpc.weladee.com.Openhour.note', index=10, number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Type', full_name='grpc.weladee.com.Openhour.Type', index=11, number=15, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='type', file=DESCRIPTOR), @@ -2957,8 +3055,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8608, - serialized_end=8917, + serialized_start=8944, + serialized_end=9253, ) @@ -2986,21 +3084,21 @@ _descriptor.FieldDescriptor( name='From', full_name='grpc.weladee.com.OpenHourDetail.From', index=2, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='To', full_name='grpc.weladee.com.OpenHourDetail.To', index=3, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='LateAfter', full_name='grpc.weladee.com.OpenHourDetail.LateAfter', index=4, number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='late_after', file=DESCRIPTOR), @@ -3014,7 +3112,7 @@ _descriptor.FieldDescriptor( name='TZ', full_name='grpc.weladee.com.OpenHourDetail.TZ', index=6, number=25, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='tz', file=DESCRIPTOR), @@ -3030,8 +3128,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8920, - serialized_end=9093, + serialized_start=9256, + serialized_end=9429, ) @@ -3052,7 +3150,7 @@ _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.OpenHourMobile.Name', index=1, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), @@ -3066,14 +3164,14 @@ _descriptor.FieldDescriptor( name='From', full_name='grpc.weladee.com.OpenHourMobile.From', index=3, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='from', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='To', full_name='grpc.weladee.com.OpenHourMobile.To', index=4, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='to', file=DESCRIPTOR), @@ -3103,8 +3201,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9096, - serialized_end=9282, + serialized_start=9432, + serialized_end=9618, ) @@ -3132,7 +3230,7 @@ _descriptor.FieldDescriptor( name='MAC', full_name='grpc.weladee.com.GateStation.MAC', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='mac', file=DESCRIPTOR), @@ -3153,21 +3251,21 @@ _descriptor.FieldDescriptor( name='Token', full_name='grpc.weladee.com.GateStation.Token', index=5, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='token', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.GateStation.Note', index=6, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='IP', full_name='grpc.weladee.com.GateStation.IP', index=7, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='ip', file=DESCRIPTOR), @@ -3195,7 +3293,7 @@ _descriptor.FieldDescriptor( name='Serial', full_name='grpc.weladee.com.GateStation.Serial', index=11, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='serial', file=DESCRIPTOR), @@ -3237,7 +3335,7 @@ _descriptor.FieldDescriptor( name='Category', full_name='grpc.weladee.com.GateStation.Category', index=17, number=28, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='category', file=DESCRIPTOR), @@ -3307,14 +3405,14 @@ _descriptor.FieldDescriptor( name='WifiSSID', full_name='grpc.weladee.com.GateStation.WifiSSID', index=27, number=30, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='wifi_ssid', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WifiPwd', full_name='grpc.weladee.com.GateStation.WifiPwd', index=28, number=31, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='wifi_pwd', file=DESCRIPTOR), @@ -3342,28 +3440,28 @@ _descriptor.FieldDescriptor( name='ProximityUUID', full_name='grpc.weladee.com.GateStation.ProximityUUID', index=32, number=35, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='proximityuuid', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='CompanyName', full_name='grpc.weladee.com.GateStation.CompanyName', index=33, number=36, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='company_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ModelName', full_name='grpc.weladee.com.GateStation.ModelName', index=34, number=37, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='model_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='GateName', full_name='grpc.weladee.com.GateStation.GateName', index=35, number=38, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='gate_name', file=DESCRIPTOR), @@ -3384,7 +3482,7 @@ _descriptor.FieldDescriptor( name='Color', full_name='grpc.weladee.com.GateStation.Color', index=38, number=42, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='color', file=DESCRIPTOR), @@ -3414,8 +3512,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9285, - serialized_end=10576, + serialized_start=9621, + serialized_end=10912, ) @@ -3443,28 +3541,28 @@ _descriptor.FieldDescriptor( name='MAC', full_name='grpc.weladee.com.WebStation.MAC', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='mac', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Token', full_name='grpc.weladee.com.WebStation.Token', index=3, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='token', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.WebStation.Note', index=4, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='IP', full_name='grpc.weladee.com.WebStation.IP', index=5, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='ip', file=DESCRIPTOR), @@ -3485,21 +3583,21 @@ _descriptor.FieldDescriptor( name='Serial', full_name='grpc.weladee.com.WebStation.Serial', index=8, number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='serial', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WifiSSID', full_name='grpc.weladee.com.WebStation.WifiSSID', index=9, number=30, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='wifi_ssid', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='WifiPwd', full_name='grpc.weladee.com.WebStation.WifiPwd', index=10, number=31, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='wifi_pwd', file=DESCRIPTOR), @@ -3520,14 +3618,14 @@ _descriptor.FieldDescriptor( name='CompanyName', full_name='grpc.weladee.com.WebStation.CompanyName', index=13, number=36, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='company_name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ModelName', full_name='grpc.weladee.com.WebStation.ModelName', index=14, number=37, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='model_name', file=DESCRIPTOR), @@ -3541,7 +3639,7 @@ _descriptor.FieldDescriptor( name='Color', full_name='grpc.weladee.com.WebStation.Color', index=16, number=42, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='color', file=DESCRIPTOR), @@ -3564,8 +3662,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10579, - serialized_end=11040, + serialized_start=10915, + serialized_end=11376, ) @@ -3586,7 +3684,7 @@ _descriptor.FieldDescriptor( name='Reason', full_name='grpc.weladee.com.HolidayRequests.Reason', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='reason', file=DESCRIPTOR), @@ -3602,8 +3700,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11042, - serialized_end=11101, + serialized_start=11378, + serialized_end=11437, ) @@ -3624,21 +3722,21 @@ _descriptor.FieldDescriptor( name='Code', full_name='grpc.weladee.com.CodeHoliday.Code', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='code', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Name_english', full_name='grpc.weladee.com.CodeHoliday.Name_english', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Name_thai', full_name='grpc.weladee.com.CodeHoliday.Name_thai', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name_thai', file=DESCRIPTOR), @@ -3652,14 +3750,28 @@ _descriptor.FieldDescriptor( name='Color', full_name='grpc.weladee.com.CodeHoliday.Color', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='color', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='Note', full_name='grpc.weladee.com.CodeHoliday.Note', index=6, + name='DefaultAllocation', full_name='grpc.weladee.com.CodeHoliday.DefaultAllocation', index=6, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='default_allocation', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='MinimumDayBeforeHoliday', full_name='grpc.weladee.com.CodeHoliday.MinimumDayBeforeHoliday', index=7, + number=8, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='minimum_day_before_holiday', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Note', full_name='grpc.weladee.com.CodeHoliday.Note', index=8, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -3675,8 +3787,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11104, - serialized_end=11285, + serialized_start=11440, + serialized_end=11729, ) @@ -3697,28 +3809,28 @@ _descriptor.FieldDescriptor( name='TitleEnglish', full_name='grpc.weladee.com.Announcement.TitleEnglish', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='title_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='TitleThai', full_name='grpc.weladee.com.Announcement.TitleThai', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='title_thai', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='MessageEnglish', full_name='grpc.weladee.com.Announcement.MessageEnglish', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='message_english', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='MessageThai', full_name='grpc.weladee.com.Announcement.MessageThai', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='message_thai', file=DESCRIPTOR), @@ -3767,7 +3879,7 @@ _descriptor.FieldDescriptor( name='Note', full_name='grpc.weladee.com.Announcement.Note', index=11, number=16, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='note', file=DESCRIPTOR), @@ -3788,7 +3900,7 @@ _descriptor.FieldDescriptor( name='CompanyName', full_name='grpc.weladee.com.Announcement.CompanyName', index=14, number=26, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='company_name', file=DESCRIPTOR), @@ -3804,8 +3916,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11288, - serialized_end=11778, + serialized_start=11732, + serialized_end=12222, ) @@ -3819,28 +3931,28 @@ _descriptor.FieldDescriptor( name='android', full_name='grpc.weladee.com.MinVersion.android', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ios', full_name='grpc.weladee.com.MinVersion.ios', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='AdminLite', full_name='grpc.weladee.com.MinVersion.AdminLite', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Kiosk', full_name='grpc.weladee.com.MinVersion.Kiosk', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3856,8 +3968,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11780, - serialized_end=11856, + serialized_start=12224, + serialized_end=12300, ) @@ -3871,7 +3983,7 @@ _descriptor.FieldDescriptor( name='token', full_name='grpc.weladee.com.FCMToken.token', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3887,8 +3999,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11858, - serialized_end=11883, + serialized_start=12302, + serialized_end=12327, ) @@ -3902,21 +4014,21 @@ _descriptor.FieldDescriptor( name='Email', full_name='grpc.weladee.com.GoogleUser.Email', index=0, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='email', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Name', full_name='grpc.weladee.com.GoogleUser.Name', index=1, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='name', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='Photo', full_name='grpc.weladee.com.GoogleUser.Photo', index=2, number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='photo', file=DESCRIPTOR), @@ -3930,14 +4042,14 @@ _descriptor.FieldDescriptor( name='PhoneModel', full_name='grpc.weladee.com.GoogleUser.PhoneModel', index=4, number=19, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='phone_model', file=DESCRIPTOR), _descriptor.FieldDescriptor( name='PhoneSerial', full_name='grpc.weladee.com.GoogleUser.PhoneSerial', index=5, number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='phone_serial', file=DESCRIPTOR), @@ -3955,6 +4067,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='last_signin', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='UID', full_name='grpc.weladee.com.GoogleUser.UID', index=8, + number=30, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='uid', file=DESCRIPTOR), ], extensions=[ ], @@ -3967,8 +4086,60 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11886, - serialized_end=12123, + serialized_start=12330, + serialized_end=12585, +) + + +_HOLIDAYPREFERENCES = _descriptor.Descriptor( + name='HolidayPreferences', + full_name='grpc.weladee.com.HolidayPreferences', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ApproveByManager', full_name='grpc.weladee.com.HolidayPreferences.ApproveByManager', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByTeamManager', full_name='grpc.weladee.com.HolidayPreferences.ApproveByTeamManager', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_team_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByHRManager', full_name='grpc.weladee.com.HolidayPreferences.ApproveByHRManager', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_hr_manager', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ApproveByDeptManager', full_name='grpc.weladee.com.HolidayPreferences.ApproveByDeptManager', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='approve_by_dept_manager', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12588, + serialized_end=12815, ) _EMPLOYEESTAT_CURRENTYEARHOLIDAYENTRY.fields_by_name['value'].message_type = _HOLIDAYSTAT @@ -4002,6 +4173,7 @@ _EMPLOYEESREQUEST.fields_by_name['Active'].enum_type = _TRINARY _EMPLOYEESREQUEST.fields_by_name['Timesheet'].enum_type = _TRINARY _EMPLOYEESREQUEST.fields_by_name['IsManager'].enum_type = _TRINARY +_EMPLOYEESREQUEST.fields_by_name['Gender'].enum_type = _GENDER _EMPLOYEESREQUEST.oneofs_by_name['SpecialRequest'].fields.append( _EMPLOYEESREQUEST.fields_by_name['LateOn']) _EMPLOYEESREQUEST.fields_by_name['LateOn'].containing_oneof = _EMPLOYEESREQUEST.oneofs_by_name['SpecialRequest'] @@ -4052,6 +4224,7 @@ DESCRIPTOR.message_types_by_name['MinVersion'] = _MINVERSION DESCRIPTOR.message_types_by_name['FCMToken'] = _FCMTOKEN DESCRIPTOR.message_types_by_name['GoogleUser'] = _GOOGLEUSER +DESCRIPTOR.message_types_by_name['HolidayPreferences'] = _HOLIDAYPREFERENCES DESCRIPTOR.enum_types_by_name['ApplicationLevel'] = _APPLICATIONLEVEL DESCRIPTOR.enum_types_by_name['CompanyType'] = _COMPANYTYPE DESCRIPTOR.enum_types_by_name['FaceConfirm'] = _FACECONFIRM @@ -4060,6 +4233,7 @@ DESCRIPTOR.enum_types_by_name['HolidayTime'] = _HOLIDAYTIME DESCRIPTOR.enum_types_by_name['Trinary'] = _TRINARY DESCRIPTOR.enum_types_by_name['Priority'] = _PRIORITY +DESCRIPTOR.enum_types_by_name['Gender'] = _GENDER _sym_db.RegisterFileDescriptor(DESCRIPTOR) AddResult = _reflection.GeneratedProtocolMessageType('AddResult', (_message.Message,), { @@ -4343,7 +4517,15 @@ }) _sym_db.RegisterMessage(GoogleUser) +HolidayPreferences = _reflection.GeneratedProtocolMessageType('HolidayPreferences', (_message.Message,), { + 'DESCRIPTOR' : _HOLIDAYPREFERENCES, + '__module__' : 'weladee_pb2' + # @@protoc_insertion_point(class_scope:grpc.weladee.com.HolidayPreferences) + }) +_sym_db.RegisterMessage(HolidayPreferences) + DESCRIPTOR._options = None _EMPLOYEESTAT_CURRENTYEARHOLIDAYENTRY._options = None +_TEAM.fields_by_name['MinimumDayBeforeHoliday']._options = None # @@protoc_insertion_point(module_scope) diff --git a/Modules/Weladee_Attendances/models/sync/weladee_employee.py b/Modules/Weladee_Attendances/models/sync/weladee_employee.py index fe11c6f..3418931 100644 --- a/Modules/Weladee_Attendances/models/sync/weladee_employee.py +++ b/Modules/Weladee_Attendances/models/sync/weladee_employee.py @@ -16,9 +16,9 @@ def sync_employee_data_gender(weladee_emp): ''' convert weladee employee gender to odoo ''' - if weladee_emp.employee.gender == 'm': + if weladee_emp.employee.Gender == 'm': return 'male' - elif weladee_emp.employee.gender == 'f': + elif weladee_emp.employee.Gender == 'f': return 'female' else: return 'other' @@ -73,8 +73,8 @@ def sync_employee_data(weladee_employee, emp_obj, job_obj, department_obj, count ,"nick_name_thai":weladee_employee.employee.nickname_thai ,"active": weladee_employee.employee.Active ,"receive_check_notification": weladee_employee.employee.receiveCheckNotification - ,"can_request_holiday": weladee_employee.employee.canRequestHoliday - ,"hasToFillTimesheet": weladee_employee.employee.hasToFillTimesheet + ,"can_request_holiday": weladee_employee.employee.CanRequestHoliday + ,"hasToFillTimesheet": weladee_employee.employee.HasToFillTimesheet ,"weladee_id":weladee_employee.employee.ID ,"qr_code":weladee_employee.employee.QRCode ,"gender": sync_employee_data_gender(weladee_employee) @@ -233,7 +233,7 @@ def sync_employee(job_obj, employee_obj, department_obj, country, authorization, newEmployee.employee.last_name_english = odoo_employee.last_name_english or bytes() newEmployee.employee.first_name_thai = odoo_employee.first_name_thai or '' newEmployee.employee.last_name_thai = odoo_employee.last_name_thai or '' - newEmployee.employee.gender = new_employee_data_gender(odoo_employee.gender) + newEmployee.employee.Gender = new_employee_data_gender(odoo_employee.gender) newEmployee.employee.email = odoo_employee.work_email newEmployee.employee.code = odoo_employee.employee_code or bytes() newEmployee.employee.nickname_english = odoo_employee.nick_name_english or '' @@ -242,8 +242,8 @@ def sync_employee(job_obj, employee_obj, department_obj, country, authorization, newEmployee.employee.lg = "en" newEmployee.employee.Active = odoo_employee.active newEmployee.employee.receiveCheckNotification = odoo_employee.receive_check_notification - newEmployee.employee.canRequestHoliday = odoo_employee.can_request_holiday - newEmployee.employee.hasToFillTimesheet = odoo_employee.hasToFillTimesheet + newEmployee.employee.CanRequestHoliday = odoo_employee.can_request_holiday + newEmployee.employee.HasToFillTimesheet = odoo_employee.hasToFillTimesheet newEmployee.employee.passportNumber = odoo_employee.passport_id or '' newEmployee.employee.TaxID = odoo_employee.taxID or '' @@ -274,8 +274,17 @@ def sync_employee(job_obj, employee_obj, department_obj, country, authorization, odoo_employee.write({'weladee_id':returnobj.id}) sync_logdebug(context_sync, "Added employee to weladee : %s" % odoo_employee.name) sync_stat_create(context_sync['stat-w-employee'], 1) - except Exception as e: + ''' + if try to add Administrator back to weladee, set it to ignore by weladee-id = 0 + ''' + e_st = str(e) + if e_st.index('duplicate') >= 0 and e_st.index('uniqueUserName') >= 0: + sync_loginfo(context_sync, 'xx duplicate xxx') + if odoo_employee.name == 'Administrator': + sync_loginfo(context_sync, 'xx admin xxx') + odoo_employee.update({'weladee_id': 0}) + sync_logdebug(context_sync, 'odoo > %s' % odoo_employee) sync_logerror(context_sync, "Add employee '%s' failed : %s" % (odoo_employee.name, e)) sync_stat_error(context_sync['stat-w-employee'], 1) diff --git a/Modules/Weladee_Attendances/models/sync/weladee_expense.py b/Modules/Weladee_Attendances/models/sync/weladee_expense.py new file mode 100644 index 0000000..3e322dc --- /dev/null +++ b/Modules/Weladee_Attendances/models/sync/weladee_expense.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +import time +import datetime +import pytz + +from odoo.addons.Weladee_Attendances.models.grpcproto import odoo_pb2 +from odoo.addons.Weladee_Attendances.models.grpcproto import weladee_pb2 +from odoo.addons.Weladee_Attendances.models.grpcproto import expense_pb2 +from .weladee_base import stub, myrequest, sync_loginfo, sync_logerror, sync_logdebug, sync_logwarn, sync_stop, sync_weladee_error +from .weladee_base import sync_stat_to_sync,sync_stat_create,sync_stat_update,sync_stat_error,sync_stat_info,sync_clean_up +from .weladee_log import get_emp_odoo_weladee_ids +from odoo.addons.Weladee_Attendances.library.weladee_lib import _convert_to_tz_time + +def create_odoo_type(self, data, context_sync): + ''' + create odoo with new connection to be able to continue + ''' + ret = False + try: + ret = self.env['weladee_expense_type'].create(sync_clean_up(data)) + except Exception as e: + pass + return ret + +def create_odoo_exp(self, data, context_sync): + ''' + create odoo with new connection to be able to continue + ''' + ret = False + try: + ret = self.env['hr.expense'].create(sync_clean_up(data)) + except Exception as e: + pass + return ret + +def sync_delete_type(self, context_sync): + ''' + delete the hr attendance according filter + ''' + del_ids = self.env['weladee_expense_type'].search([]) + dt_delete_msg = 'remove all %s expense type from all records' % len(del_ids) + if del_ids: + del_ids.unlink() + sync_logwarn(context_sync, dt_delete_msg) + +def sync_delete_expense(self, context_sync, period_settings): + ''' + delete the hr expense according filter + ''' + dt_today = datetime.datetime.today() + dt_unit = int(period_settings["unit"]) + dt_from = False + if period_settings["period"] == "w": + dt_from = dt_today - datetime.timedelta(days=(dt_unit * 7)) + elif period_settings["period"] == "m": + dt_from = dt_today.replace(month=dt_today.month - dt_unit) + elif period_settings["period"] == "y": + dt_from = dt_today.replace(month=dt_today.year - dt_unit) + + dt_from_utc = False + dt_delete_msg = '' + if period_settings["period"] == "all": + del_ids = self.env['hr.expense'].search([]) + dt_delete_msg = 'remove all %s expense(s) from all records' % len(del_ids) + else: + dt_from_utc = _convert_to_tz_time(self, dt_from.strftime('%Y-%m-%d 00:00:00')) + del_ids = self.env['hr.expense'].search([('date','>=', dt_from_utc.strftime('%Y-%m-%d 00:00:00'))]) + dt_delete_msg = 'remove all %s expense after this period (%s)' % (len(del_ids),dt_from.strftime('%Y-%m-%d 00:00:00')) + + if del_ids: + del_ids.unlink() + sync_logwarn(context_sync, dt_delete_msg) + + return dt_from_utc + +def sync_expense(self, emp_obj, exp_obj, authorization, context_sync, odoo_weladee_ids, period_settings): + ''' + sync all expense type from weladee + + ''' + context_sync['stat-log'] = {'to-sync':0, "create":0, "update": 0, "error":0} + context_sync['error-emp'] = {} + context_sync['cursor'] = False + + sync_delete_type(self, context_sync) + sync_delete_expense(self, context_sync, period_settings) + + odoo_type = False + weladee_type = False + + has_error = False + + try: + sync_loginfo(context_sync,'[expense type] updating changes from weladee-> odoo') + ireq = 0 + for weladee_type in stub.GetExpenseTypes(weladee_pb2.Empty(), metadata=authorization): + ireq +=1 + #print('%s %s'% (ireq, weladee_att)) + sync_stat_to_sync(context_sync['stat-log'], 1) + if not weladee_type : + sync_logwarn(context_sync,'weladee expense type is empty') + continue + + odoo_type = { + 'weladee_code': weladee_type.ExpenseType.Code, + 'name_english': weladee_type.ExpenseType.NameEnglish, + 'name_thai': weladee_type.ExpenseType.NameEnglish + } + + newid = create_odoo_type(self, odoo_type, context_sync) + if newid and newid.id: + sync_logdebug(context_sync, "Insert expense type '%s' to odoo" % odoo_type ) + sync_stat_create(context_sync['stat-log'], 1) + + except Exception as e: + sync_logdebug(context_sync, 'weladee >> %s' % weladee_type or '-') + sync_logdebug(context_sync, 'odoo >> %s' % odoo_type or '-') + if sync_weladee_error(weladee_type, 'expense type', e, context_sync): + return + else: + has_error = True + + # stop if sync type has error. + if has_error: + return + + #stat + #del context_sync['cursor'] + sync_stat_info(context_sync,'stat-log','[expense type] updating changes from weladee-> odoo') + + context_sync['stat-log'] = {'to-sync':0, "create":0, "update": 0, "error":0} + odoo_ex = False + weladee_ex = False + try: + sync_loginfo(context_sync,'[expense] updating changes from weladee-> odoo') + ireq = 0 + for weladee_ex in stub.GetExpenses(weladee_pb2.Empty(), metadata=authorization): + ireq +=1 + #print('%s %s'% (ireq, weladee_att)) + sync_stat_to_sync(context_sync['stat-log'], 1) + if not weladee_ex : + sync_logwarn(context_sync,'weladee expense is empty') + continue + + odoo_ex = { + "name" : weladee_ex.ExpenseOdoo.NameThai or weladee_ex.ExpenseOdoo.NameEnglish + } + + newid = create_odoo_exp(self, odoo_ex, context_sync) + if newid and newid.id: + sync_logdebug(context_sync, "Insert expense '%s' to odoo" % odoo_ex ) + sync_stat_create(context_sync['stat-log'], 1) + + except Exception as e: + sync_logdebug(context_sync, 'weladee >> %s' % weladee_ex or '-') + sync_logdebug(context_sync, 'odoo >> %s' % odoo_ex or '-') + if sync_weladee_error(weladee_ex, 'expense', e, context_sync): + return + #stat + del context_sync['cursor'] + sync_stat_info(context_sync,'stat-log','[expense] updating changes from weladee-> odoo') \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/sync/weladee_holiday.py b/Modules/Weladee_Attendances/models/sync/weladee_holiday.py index acdd73a..c6851ab 100644 --- a/Modules/Weladee_Attendances/models/sync/weladee_holiday.py +++ b/Modules/Weladee_Attendances/models/sync/weladee_holiday.py @@ -58,13 +58,16 @@ def sync_holiday_data(self, weladee_holiday, odoo_weladee_ids, context_sync, hol 'date_to': _convert_to_tz_time(self, date.strftime('%Y-%m-%d') + ' 23:59:59'), 'employee_id':odoo_weladee_ids.get('%s' % weladee_holiday.Holiday.EmployeeID,False), 'holiday_status_id': holiday_status_id, - 'number_of_days_temp': 1, + 'number_of_days': 1, 'holiday_type':'employee', 'weladee_id': weladee_holiday.Holiday.ID, 'weladee_code': weladee_holiday.Holiday.code, 'weladee_sick': weladee_holiday.Holiday.sickLeave, 'state':'validate'} + data['request_date_from'] = data['date_from'] + data['request_date_to'] = data['date_to'] + # 2018-11-14 KPO allow multiple type, but default come from setting if weladee_holiday.Holiday.code in leaves_types: data['holiday_status_id'] = leaves_types[weladee_holiday.Holiday.code] or holiday_status_id @@ -110,7 +113,7 @@ def _update_weladee_holiday_back(weladee_holiday, holiday_odoo, context_sync, st def sync_holiday(self, emp_obj, holiday_obj, com_holiday_obj, authorization, context_sync, odoo_weladee_ids, holiday_status_id, to_email): ''' sync all holiday from weladee (1 way from weladee) - + 2018-11-14 KPO change hr.holidays to hr.leave ''' context_sync['stat-hol'] = {'to-sync':0, "create":0, "update": 0, "error":0} odoo_hol = False @@ -130,7 +133,7 @@ def sync_holiday(self, emp_obj, holiday_obj, com_holiday_obj, authorization, con # collect leave type leaves_types = {} - for t in self.env['hr.holidays.status'].search([('weladee_code','!=',False)]): + for t in self.env['hr.leave.type'].search([('weladee_code','!=',False)]): if not t.weladee_code in leaves_types: leaves_types[t.weladee_code] = t.id @@ -139,8 +142,10 @@ def sync_holiday(self, emp_obj, holiday_obj, com_holiday_obj, authorization, con if odoo_hol and odoo_hol['res-mode'] == 'create': newid = False if odoo_hol['res-type'] == 'employee': + del odoo_hol['res-type'] newid = holiday_obj.create(odoo_hol) elif odoo_hol['res-type'] == 'company': + del odoo_hol['res-type'] newid = com_holiday_obj.create(sync_clean_up(odoo_hol)) if newid and newid.id: sync_logdebug(context_sync, "Insert holiday '%s' to odoo" % odoo_hol ) @@ -160,6 +165,7 @@ def sync_holiday(self, emp_obj, holiday_obj, com_holiday_obj, authorization, con odoo_id = com_holiday_obj.search([('id','=',odoo_hol['res-id']),'|',('company_holiday_active','=',True),('company_holiday_active','=',False)]) if odoo_id and odoo_id.id: + del odoo_hol['res-type'] if odoo_id.write(sync_clean_up(odoo_hol)): sync_logdebug(context_sync, "Updated holiday '%s' to odoo" % odoo_hol ) sync_stat_update(context_sync['stat-hol'], 1) @@ -195,10 +201,10 @@ def sync_holiday(self, emp_obj, holiday_obj, com_holiday_obj, authorization, con template = self.env.ref('Weladee_Attendances.weladee_attendance_allocate_emp_mail', raise_if_not_found=False) if template: - allocation_url='%s/web#view_type=list&model=hr.holidays&menu_id=%s&action=%s' % ( + allocation_url='%s/web#view_type=list&model=hr.leave&menu_id=%s&action=%s' % ( self.env['ir.config_parameter'].search([('key','=','web.base.url')]).value, - self.env.ref('hr_holidays.menu_open_department_leave_allocation_approve').id, - self.env.ref('hr_holidays.open_department_holidays_allocation_approve').id) + self.env.ref('hr_holidays.hr_holidays_menu_manager_all_allocations').id, + self.env.ref('hr_holidays.hr_leave_allocation_action_all').id) template.with_context({'email-to':get_holiday_notify_email(self), 'employee': emp_name, 'url':allocation_url}).send_mail(self.id) diff --git a/Modules/Weladee_Attendances/models/sync/weladee_log.py b/Modules/Weladee_Attendances/models/sync/weladee_log.py index 6157365..fd44a72 100644 --- a/Modules/Weladee_Attendances/models/sync/weladee_log.py +++ b/Modules/Weladee_Attendances/models/sync/weladee_log.py @@ -38,85 +38,10 @@ def sync_log_data(emp_obj, att_obj, weladee_att, odoo_weladee_ids, context_sync) if weladee_att.logevent.action == "o" : check_field = 'check_out' - # check if record is found - ''' - oldid = att_obj.search( [ ('employee_id','=', data['employee_id'] ), (check_field,'=', date)],limit=1 ) - if oldid and oldid.id: - #found it - pass - else: - # not found, mean record on welade is changed. use the link from weladee - if weladee_att.odoo and weladee_att.odoo.odoo_id: - oldid = att_obj.search([('id','=',weladee_att.odoo.odoo_id)],limit=1) - - if oldid and oldid.id: - data['res-mode'] = 'update' - data['res-id'] = oldid.id - else: - data['res-mode'] = 'create' - ''' data['res-mode'] = 'create' #write checkin/out time data[check_field] = date - ''' - # there is previous link/record - if oldid: - if oldid.id: - #update link - if check_field == 'check_in': - # there is also checkout, but the new checkin is bigger than checkout, so reset checkout - # new checkout will be update next - if oldid.check_out and _compare_2_date(oldid.check_out,data['check_in'],'<'): - data['check_out'] = False - data['res-id'] = oldid.id - data['res-mode'] = 'update' - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > %s ' % {'check_in':oldid.check_in, 'check_out':oldid.check_out,'employee_id':oldid.employee_id}) - sync_logwarn(context_sync, 'change check in of employee %s bigger than old check out %s, reset old checkout' % (data['check_in'],oldid.check_out)) - else: - data['res-id'] = oldid.id - data['res-mode'] = 'update-sql' - - elif check_field == 'check_out': - # there is also checkin field, but the new checkout is less than checkin. do nothing, has to check manaully - if oldid.check_in and _compare_2_date(oldid.check_in,data['check_out'],'>'): - data['res-mode'] = '' - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > %s ' % {'check_in':oldid.check_in, 'check_out':oldid.check_out,'employee_id':oldid.employee_id}) - sync_logerror(context_sync, 'change check out of employee %s less than old check in %s, do not update' % (data['check_out'],oldid.check_in)) - else: - data['res-id'] = oldid.id - data['res-mode'] = 'update' - - # in case if we already have both check in / out, will execute directly query (not pass orm) - if oldid.check_in and oldid.check_out: - data['res-mode'] = 'update-sql' - if check_field == 'check_in' and oldid.check_in == data[check_field]: - data['res-mode'] = 'no-update' - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > %s ' % {'check_in':oldid.check_in, 'check_out':oldid.check_out,'employee_id':oldid.employee_id}) - sync_logwarn(context_sync, 'no change in, check in of this employee, do not update') - elif check_field == 'check_out' and oldid.check_out == data[check_field]: - data['res-mode'] = 'no-update' - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > %s ' % {'check_in':oldid.check_in, 'check_out':oldid.check_out,'employee_id':oldid.employee_id}) - sync_logwarn(context_sync, 'no change in check out of this employee, do not update') - else: - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > %s ' % {'check_in':oldid.check_in, 'check_out':oldid.check_out,'employee_id':oldid.employee_id}) - sync_logwarn(context_sync, 'change check in/out of this employee ') - - else: - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > none ') - sync_logwarn(context_sync, 'can''t find this odoo-id %s of this weladee log' % weladee_att.odoo.odoo_id) - else: - sync_logdebug(context_sync, 'weladee > %s ' % weladee_att) - sync_logdebug(context_sync, 'odoo > none ') - sync_logwarn(context_sync, 'can''t find this odoo-id %s of this weladee log' % weladee_att.odoo.odoo_id) - ''' - if data['res-mode'] == 'create': if check_field == 'check_in': prev_rec = att_obj.search( [ ('employee_id','=', data['employee_id'] ), (check_field,'=', date)],limit=1 ) @@ -148,46 +73,10 @@ def get_emp_odoo_weladee_ids(emp_obj, odoo_weladee_ids): return odoo_weladee_ids -def _add_weladee_log_back(odoo_id, weladee_att, iteratorAttendance): - ''' - create log and add for send to weladee - ''' - pass - ''' - #update record to weladee - syncLogEvent = odoo_pb2.LogEventOdooSync() - syncLogEvent.odoo.odoo_id = odoo_id - syncLogEvent.odoo.odoo_created_on = int(time.time()) - syncLogEvent.odoo.odoo_synced_on = int(time.time()) - syncLogEvent.logid = weladee_att.logevent.id - iteratorAttendance.append(syncLogEvent) - ''' - def create_odoo_log(self, data, context_sync,weladee_log): ''' create odoo with new connection to be able to continue ''' - ''' - ret = False - model_name = 'hr.attendance' - - if context_sync['error-emp'].get(weladee_log.logevent.employeeid,False): - return ret - - try: - #ret = self.env['hr.attendance'].create(data) - if not context_sync['cursor']: - cr = odoo.registry(self._cr.dbname).cursor() - env = odoo.api.Environment(cr, self.env.uid, {}) - context_sync['cursor'] = env - - context_sync['cursor'][model_name].create(sync_clean_up(data)) - except Exception as e: - context_sync['error-emp'][weladee_log.logevent.employeeid] = e - sync_logdebug(context_sync, 'weladee > %s' % weladee_log) - sync_logdebug(context_sync, 'odoo > %s' % data) - sync_logerror(context_sync,'error when created in odoo: %s' % e) - ''' ret = False try: ret = self.env['hr.attendance'].create(sync_clean_up(data)) @@ -199,27 +88,6 @@ def update_odoo_log(self, odoo_log, data, context_sync,weladee_log): ''' update odoo with new connection to be able to continue ''' - ''' - ret = False - model_name = 'hr.attendance' - cr = False - if context_sync['error-emp'].get(weladee_log.logevent.employeeid,False): - return ret - try: - #ret = self.env['hr.attendance'].browse(id).write(data) - if not context_sync['cursor']: - cr = odoo.registry(self._cr.dbname).cursor() - env = odoo.api.Environment(cr, self.env.uid, {}) - context_sync['cursor'] = env - - context_sync['cursor'][model_name].browse(odoo_log.id).write(sync_clean_up(data)) - except Exception as e: - context_sync['error-emp'][weladee_log.logevent.employeeid] = e - sync_logdebug(context_sync, 'weladee > %s' % weladee_log) - sync_logdebug(context_sync, 'current odoo > %s' % {'check_in':odoo_log.check_in,'check_out':odoo_log.check_out,'employee_id':odoo_log.employee_id}) - sync_logdebug(context_sync, 'new odoo > %s' % data) - sync_logerror(context_sync,'error when updated in odoo: %s' % e) - ''' try: return self.env['hr.attendance'].browse(odoo_log.id).write(sync_clean_up(data)) except Exception as e: @@ -323,7 +191,7 @@ def sync_log(self, emp_obj, att_obj, authorization, context_sync, odoo_weladee_i sync_logdebug(context_sync, "Insert log '%s' to odoo" % odoo_att ) sync_stat_create(context_sync['stat-log'], 1) - _add_weladee_log_back(newid.id,weladee_att,iteratorAttendance) + #_add_weladee_log_back(newid.id,weladee_att,iteratorAttendance) else: #sync_logdebug(context_sync, 'weladee > %s' % weladee_att) #sync_logerror(context_sync, "error while create odoo log id %s of '%s' in odoo" % (odoo_att.get('res-id',False), odoo_att) ) @@ -335,7 +203,7 @@ def sync_log(self, emp_obj, att_obj, authorization, context_sync, odoo_weladee_i sync_logdebug(context_sync, "Updated log '%s' to odoo" % odoo_att ) sync_stat_update(context_sync['stat-log'], 1) - _add_weladee_log_back(odoo_id.id,weladee_att,iteratorAttendance) + #_add_weladee_log_back(odoo_id.id,weladee_att,iteratorAttendance) else: #sync_logdebug(context_sync, 'odoo > %s' % odoo_att) #sync_logerror(context_sync, "error found while update this odoo log id %s" % odoo_att.get('res-id',False) ) @@ -346,37 +214,6 @@ def sync_log(self, emp_obj, att_obj, authorization, context_sync, odoo_weladee_i #sync_logdebug(context_sync, 'odoo > %s' % odoo_att) sync_logerror(context_sync, "Not found this odoo log id %s of '%s' in odoo" % (odoo_att.get('res-id',False) , odoo_att) ) sync_stat_error(context_sync['stat-log'], 1) - ''' - elif odoo_att and odoo_att['res-mode'] == 'update-sql': - #sync_logdebug(context_sync, 'weladee > %s' % weladee_att) - sync_logdebug(context_sync, 'odoo > %s' % odoo_att) - - # update with query - update_sql = '' - if 'check_in' in odoo_att: - update_sql = "check_in = '%s'" % odoo_att['check_in'] - elif 'check_out' in odoo_att: - update_sql = "check_out = '%s'" % odoo_att['check_out'] - - if update_sql and odoo_att.get('res-id',False): - try: - update_odoo_orm_log(self, odoo_att.get('res-id',False), update_sql, context_sync) - - _add_weladee_log_back(odoo_att.get('res-id',False) ,weladee_att,iteratorAttendance) - sync_stat_update(context_sync['stat-log'], 1) - sync_logwarn(context_sync, 'Found update on odoo record %s, update without ORM' % odoo_att.get('res-id',False) ) - - except Exception as e: - sync_logerror(context_sync, "Error while update attendance of odoo log id %s : %s" % (odoo_att.get('res-id','-') , e) ) - else: - #sync_logdebug(context_sync, 'weladee >> %s' % weladee_att or '-') - #sync_logdebug(context_sync, 'odoo >> %s' % odoo_att or '-') - sync_logwarn(context_sync, 'No found command to update on odoo record, do nothing') - - elif odoo_att and odoo_att['res-mode'] == 'no-update': - #update record to weladee - _add_weladee_log_back(odoo_att.get('res-id',False) ,weladee_att,iteratorAttendance) - ''' except Exception as e: sync_logdebug(context_sync, 'weladee >> %s' % weladee_att or '-') @@ -385,16 +222,4 @@ def sync_log(self, emp_obj, att_obj, authorization, context_sync, odoo_weladee_i return #stat del context_sync['cursor'] - sync_stat_info(context_sync,'stat-log','[log] updating changes from weladee-> odoo') - ''' - if len( iteratorAttendance ) > 0 : - ge = generators(iteratorAttendance) - __ = stub.SyncAttendance( ge , metadata=authorization ) - else: - sync_loginfo(context_sync, '[log] No data to sent') - ''' -''' -def generators(iteratorAttendance): - for i in iteratorAttendance : - yield i -''' \ No newline at end of file + sync_stat_info(context_sync,'stat-log','[log] updating changes from weladee-> odoo') \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/weladee_attendance.py b/Modules/Weladee_Attendances/models/weladee_attendance.py index 39a2b55..5ad0253 100644 --- a/Modules/Weladee_Attendances/models/weladee_attendance.py +++ b/Modules/Weladee_Attendances/models/weladee_attendance.py @@ -10,6 +10,6 @@ class weladee_attendance(models.Model): _inherit = 'hr.attendance' _sql_constraints = [ - ('unique_empin_timestamp', 'unique (employee_id, check_in)', 'employee checkin record'), - ('unique_empout_timestamp', 'unique (employee_id, check_out)', 'employee checkout record'), + ('unique_empin_timestamp', 'unique (employee_id, check_in)', 'Employee checkin record must not duplicate'), + ('unique_empout_timestamp', 'unique (employee_id, check_out)', 'Employee checkout record must not duplicate'), ] \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/weladee_attendance_form.py b/Modules/Weladee_Attendances/models/weladee_attendance_form.py index 1b503c2..3dda238 100644 --- a/Modules/Weladee_Attendances/models/weladee_attendance_form.py +++ b/Modules/Weladee_Attendances/models/weladee_attendance_form.py @@ -9,9 +9,11 @@ from odoo import models, fields, api, _ from odoo.exceptions import UserError, ValidationError from odoo.addons.Weladee_Attendances.models.weladee_settings import get_synchronous_email +from odoo.addons.Weladee_Attendances.library.weladee_translation import sync_form_title, sync_error1_title class weladee_attendance_form(models.TransientModel): _name="weladee_attendance_form" + _description="Weladee settings form" @api.model def _get_synchronous_email(self): @@ -22,12 +24,12 @@ def _get_synchronous_email(self): self.email = get_synchronous_email(self) #fields - email = fields.Text(compute='_get_synchronous_email',default=_get_synchronous_email) + email = fields.Text(compute='_get_synchronous_email',default=_get_synchronous_email,string='Email') @api.model def open_sync_form(self): return { - "name":"Weladee Synchronization", + "name":sync_form_title(), "view_id": self.env.ref('Weladee_Attendances.weladee_attendance_wizard_frm').id, "res_model": "weladee_attendance_form", "res_id": self.create({}).id, @@ -49,19 +51,18 @@ def synchronousBtn(self): last_work = datetime.datetime.strptime(works.last_run,'%Y-%m-%d %H:%M:%S') last_run = last_work.astimezone(user_tz) - raise UserError('Caution, the task already started at %s. Please wait...' % last_run.strftime('%d/%m/%Y %H:%M')) + raise UserError(sync_error1_title() % last_run.strftime('%d/%m/%Y %H:%M')) cron = self.env.ref('Weladee_Attendances.weladee_attendance_synchronous_cron') #restart cron - newnextcall = datetime.datetime.strptime(cron.nextcall,'%Y-%m-%d %H:%M:%S') - newnextcall = newnextcall - datetime.timedelta(days=30) + newnextcall = cron.nextcall - datetime.timedelta(days=30) cron.write({'nextcall': newnextcall}) elapse_start = datetime.datetime.today() self.env['weladee_attendance.working'].create({'last_run':elapse_start}) return { - "name":"Weladee Synchronization", + "name":sync_form_title(), "view_id": self.env.ref('Weladee_Attendances.weladee_attendance_wizard_frm_ok').id, "res_model": "weladee_attendance_form", "res_id": self.create({}).id, diff --git a/Modules/Weladee_Attendances/models/weladee_attendance_sync.py b/Modules/Weladee_Attendances/models/weladee_attendance_sync.py index 1eae1fe..061d504 100644 --- a/Modules/Weladee_Attendances/models/weladee_attendance_sync.py +++ b/Modules/Weladee_Attendances/models/weladee_attendance_sync.py @@ -21,9 +21,11 @@ from odoo.addons.Weladee_Attendances.models.sync.weladee_manager import sync_manager_dep,sync_manager_emp from odoo.addons.Weladee_Attendances.models.sync.weladee_log import sync_log from odoo.addons.Weladee_Attendances.models.sync.weladee_holiday import sync_holiday +from odoo.addons.Weladee_Attendances.models.sync.weladee_expense import sync_expense class weladee_attendance_working(models.TransientModel): _name="weladee_attendance.working" + _description="Weladee schedule last run" last_run = fields.Datetime('Last run') @@ -41,6 +43,9 @@ def start_sync(self): request-logs-key: internal use for prevent write duplicate log request-email : email recipient request-debug : display debug log + + remarks: + 2018-11-14 KPO change hr.holidays to hr.leave ''' elapse_start = datetime.today() user_tz = pytz.timezone(self.env.context.get('tz') or self.env.user.tz or 'UTC') @@ -119,10 +124,15 @@ def start_sync(self): if not sync_has_error(context_sync): sync_logdebug(context_sync,"Start sync...Holiday") - hr_obj = self.env['hr.holidays'] + hr_obj = self.env['hr.leave'] com_hr_obj = self.env['weladee_attendance.company.holidays'] sync_holiday(self, emp_obj, hr_obj, com_hr_obj, authorization, context_sync, odoo_weladee_ids, holiday_status_id, to_email) + if not sync_has_error(context_sync): + sync_logdebug(context_sync,"Start sync...Expense") + ex_obj = self.env['hr.expense'] + sync_expense(self, emp_obj, ex_obj, authorization, context_sync, odoo_weladee_ids, {'period': 'all' ,'unit': 0}) + sync_loginfo(context_sync,'sending result to %s' % context_sync['request-email']) context_sync['request-elapse'] = str(datetime.today() - elapse_start) # send email status diff --git a/Modules/Weladee_Attendances/models/weladee_company_holiday.py b/Modules/Weladee_Attendances/models/weladee_company_holiday.py index e80853a..5af4774 100644 --- a/Modules/Weladee_Attendances/models/weladee_company_holiday.py +++ b/Modules/Weladee_Attendances/models/weladee_company_holiday.py @@ -6,6 +6,7 @@ import datetime import time +from odoo.addons.Weladee_Attendances.library.weladee_translation import msg_error_company_holiday class weladee_company_holidays(models.Model): _name="weladee_attendance.company.holidays" _description="Weladee company holidays" @@ -19,4 +20,4 @@ class weladee_company_holidays(models.Model): def _onchange_company_holiday_date(self): holiday = self.search([('company_holiday_date','=',self.company_holiday_date)]) if holiday: - raise exceptions.UserError('%s is already a company holiday.' % self.company_holiday_date) \ No newline at end of file + raise exceptions.UserError(msg_error_company_holiday() % self.company_holiday_date) \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/weladee_department.py b/Modules/Weladee_Attendances/models/weladee_department.py index 8a0e33b..24504f5 100644 --- a/Modules/Weladee_Attendances/models/weladee_department.py +++ b/Modules/Weladee_Attendances/models/weladee_department.py @@ -21,7 +21,7 @@ class weladee_department(models.Model): email = fields.Char('Email') _sql_constraints = [ - ('name_uniq', 'unique(name)', "Name can't duplicate !"), + ('name_uniq', 'unique(name)', "Department Name can't duplicate !"), ] @api.model diff --git a/Modules/Weladee_Attendances/models/weladee_employee.py b/Modules/Weladee_Attendances/models/weladee_employee.py index 7aa7456..7999d93 100644 --- a/Modules/Weladee_Attendances/models/weladee_employee.py +++ b/Modules/Weladee_Attendances/models/weladee_employee.py @@ -13,6 +13,7 @@ from . import weladee_settings from .sync.weladee_base import stub, myrequest, sync_clean_up from .sync.weladee_employee import new_employee_data_gender +from odoo.addons.Weladee_Attendances.library.weladee_translation import weladee_profile_title, msg_error_weladee_profile def get_weladee_employee(weladee_id, authorization): ''' @@ -142,8 +143,8 @@ def _create_in_weladee(self, employee_odoo, vals): WeladeeData.employee.lg = "en" WeladeeData.employee.Active = vals.get("active",False) WeladeeData.employee.receiveCheckNotification = vals["receive_check_notification"] - WeladeeData.employee.canRequestHoliday = vals["can_request_holiday"] - WeladeeData.employee.hasToFillTimesheet = vals["hasToFillTimesheet"] + WeladeeData.employee.CanRequestHoliday = vals["can_request_holiday"] + WeladeeData.employee.HasToFillTimesheet = vals["hasToFillTimesheet"] #2018-05-28 KPO use field from odoo if vals["passport_id"]: @@ -162,7 +163,7 @@ def _create_in_weladee(self, employee_odoo, vals): WeladeeData.employee.Phones[0] = vals['work_phone'] or '' if 'gender' in vals: - WeladeeData.employee.gender = new_employee_data_gender(vals['gender']) + WeladeeData.employee.Gender = new_employee_data_gender(vals['gender']) try: result = stub.AddEmployee(WeladeeData, metadata=authorization) @@ -246,14 +247,14 @@ def _update_in_weladee(self, employee_odoo, vals): WeladeeData.employee.receiveCheckNotification = employee_odoo.receive_check_notification if "can_request_holiday" in vals : - WeladeeData.employee.canRequestHoliday = vals["can_request_holiday"] + WeladeeData.employee.CanRequestHoliday = vals["can_request_holiday"] else : - WeladeeData.employee.canRequestHoliday = employee_odoo.can_request_holiday + WeladeeData.employee.CanRequestHoliday = employee_odoo.can_request_holiday if "hasToFillTimesheet" in vals : - WeladeeData.employee.hasToFillTimesheet = vals["hasToFillTimesheet"] + WeladeeData.employee.HasToFillTimesheet = vals["hasToFillTimesheet"] else : - WeladeeData.employee.hasToFillTimesheet = employee_odoo.hasToFillTimesheet + WeladeeData.employee.HasToFillTimesheet = employee_odoo.hasToFillTimesheet #2018-05-28 KPO use passport_id from odoo if "passport_id" in vals : @@ -313,7 +314,7 @@ def _update_in_weladee(self, employee_odoo, vals): WeladeeData.employee.Phones[0] = vals['work_phone'] or '' if 'gender' in vals: - WeladeeData.employee.gender = new_employee_data_gender(vals['gender']) + WeladeeData.employee.Gender = new_employee_data_gender(vals['gender']) if 'birthday' in vals: WeladeeData.employee.Birthday = int(datetime.strptime(vals["birthday"],'%Y-%m-%d').timestamp()) @@ -373,6 +374,7 @@ def create(self, vals): self.clean_up_space(odoovals) if not odoovals.get('name',False): odoovals['name'] = " ".join([vals['first_name_english'] or '', vals['last_name_english'] or '']) + if "manager" in odoovals: del odoovals['manager'] pid = super(weladee_employee,self).create( odoovals ) # only when user create from odoo, always send @@ -386,6 +388,7 @@ def create(self, vals): def write(self, vals): odoovals = sync_clean_up(vals) self.clean_up_space(odoovals) + if "manager" in odoovals: del odoovals['manager'] ret = super(weladee_employee, self).write( odoovals ) # if don't need to sync when there is weladee-id in vals # case we don't need to send to weladee, like just update weladee-id in odoo @@ -409,13 +412,13 @@ def open_weladee_employee(self): ''' if self.weladee_profile : return { - 'name': _("Weladee Profile"), + 'name': weladee_profile_title(), 'type': 'ir.actions.act_url', 'url': self.weladee_profile, 'target': 'new' } else : - raise exceptions.UserError("This employee don't have weladee url.") + raise exceptions.UserError(msg_error_weladee_profile()) @api.one @api.returns('self', lambda value: value.id) diff --git a/Modules/Weladee_Attendances/models/weladee_expense.py b/Modules/Weladee_Attendances/models/weladee_expense.py new file mode 100644 index 0000000..9c3a050 --- /dev/null +++ b/Modules/Weladee_Attendances/models/weladee_expense.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +import logging +_logger = logging.getLogger(__name__) +from lxml import etree + +from odoo import osv,api +from odoo import models, fields +from odoo import exceptions +from odoo.tools.translate import _ + +class weladee_expenses(models.Model): + _inherit = 'hr.expense' + + weladee_type = fields.Many2one('weladee_expense_type','Expense Type') \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/weladee_expense_type.py b/Modules/Weladee_Attendances/models/weladee_expense_type.py new file mode 100644 index 0000000..f1efe40 --- /dev/null +++ b/Modules/Weladee_Attendances/models/weladee_expense_type.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +import logging +_logger = logging.getLogger(__name__) + +from odoo import osv,api +from odoo import models, fields +from odoo import exceptions + +class weladee_expense_type(models.Model): + _name = 'weladee_expense_type' + + weladee_code = fields.Char('Weladee Code') + name_english = fields.Char('Name english') + name_thai = fields.Char('Name english') + note = fields.Text('Note') + + _sql_constraints = [ + ('weladee_code_uniq', 'unique(weladee_code)', "Weladee Expense type Code can't duplicate !"), + ] diff --git a/Modules/Weladee_Attendances/models/weladee_grpc.py b/Modules/Weladee_Attendances/models/weladee_grpc.py index 2d91616..90a4bed 100644 --- a/Modules/Weladee_Attendances/models/weladee_grpc.py +++ b/Modules/Weladee_Attendances/models/weladee_grpc.py @@ -12,7 +12,7 @@ def weladee_grpc_ctrl(): return: stub ''' - creds = grpc.ssl_channel_credentials(weladee_certificate) + creds = grpc.ssl_channel_credentials(weladee_certificate.encode()) channel = grpc.secure_channel(weladee_address, creds) return odoo_pb2_grpc.OdooStub(channel) diff --git a/Modules/Weladee_Attendances/models/weladee_holiday_status.py b/Modules/Weladee_Attendances/models/weladee_holiday_status.py index e04a01e..8c3eb24 100644 --- a/Modules/Weladee_Attendances/models/weladee_holiday_status.py +++ b/Modules/Weladee_Attendances/models/weladee_holiday_status.py @@ -8,7 +8,7 @@ from odoo import exceptions class weladee_holiday_status(models.Model): - _inherit = 'hr.holidays.status' + _inherit = 'hr.leave.type' weladee_code = fields.Char('Weladee Code') diff --git a/Modules/Weladee_Attendances/models/weladee_holidays.py b/Modules/Weladee_Attendances/models/weladee_holidays.py index 248ea67..2c5730d 100644 --- a/Modules/Weladee_Attendances/models/weladee_holidays.py +++ b/Modules/Weladee_Attendances/models/weladee_holidays.py @@ -12,7 +12,7 @@ from odoo.addons.Weladee_Attendances.library.weladee_translation import allocate_holiday_tag class weladee_holidays(models.Model): - _inherit = 'hr.holidays' + _inherit = 'hr.leave' weladee_code = fields.Char('Weladee Code') weladee_sick = fields.Boolean('Sick') @@ -20,25 +20,4 @@ class weladee_holidays(models.Model): @api.multi def action_allocated(self): for each in self: - each.write({'state':'validate'}) - - @api.multi - def name_get(self): - res = super(weladee_holidays, self).name_get() - # fixed allocate by tag name - fixed_res = {} - for leave in self: - if leave.type != 'remove': - fixed_res[leave.id] = _("Allocation of %s : %.2f day(s) To %s") % \ - (leave.holiday_status_id.name, - leave.number_of_days_temp, - leave.employee_id.name if leave.employee_id else allocate_holiday_tag() % leave.category_id.name) - - newres = [] - for leave in res: - if leave[0] in fixed_res: - newres.append((leave[0],fixed_res[leave[0]])) - else: - newres.append(leave) - - return newres \ No newline at end of file + each.write({'state':'validate'}) \ No newline at end of file diff --git a/Modules/Weladee_Attendances/models/weladee_settings.py b/Modules/Weladee_Attendances/models/weladee_settings.py index 3dd4460..798efa5 100644 --- a/Modules/Weladee_Attendances/models/weladee_settings.py +++ b/Modules/Weladee_Attendances/models/weladee_settings.py @@ -142,7 +142,7 @@ def _get_holiday_notify_leave_req_email(self): return get_holiday_notify_email(self) - holiday_status_id = fields.Many2one("hr.holidays.status", String="Default Leave Type",required=True,default=_get_holiday_status ) + holiday_status_id = fields.Many2one("hr.leave.type", String="Default Leave Type",required=True,default=_get_holiday_status ) holiday_notify_leave_req = fields.Boolean('Notify if there is not enough allocated leave request', default=_get_holiday_notify_leave_req ) holiday_notify_leave_req_email = fields.Text('Notified Email', default=_get_holiday_notify_leave_req_email) diff --git a/Modules/Weladee_Attendances/security/ir.model.access.csv b/Modules/Weladee_Attendances/security/ir.model.access.csv index c46b41d..b91b7b0 100644 --- a/Modules/Weladee_Attendances/security/ir.model.access.csv +++ b/Modules/Weladee_Attendances/security/ir.model.access.csv @@ -1,2 +1,2 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -group_weladee_leave_allocation_all,group_weladee_leave_allocation_all,hr_holidays.model_hr_holidays,Weladee_Attendances.group_weladee_leave_allocation,1,1,1,1 \ No newline at end of file +group_weladee_leave_allocation_all,group_weladee_leave_allocation_all,hr_holidays.model_hr_leave,Weladee_Attendances.group_weladee_leave_allocation,1,1,1,1 \ No newline at end of file diff --git a/Modules/Weladee_Attendances/views/fw_hr_employee.xml b/Modules/Weladee_Attendances/views/fw_hr_employee.xml index 6c144d7..fe840ed 100644 --- a/Modules/Weladee_Attendances/views/fw_hr_employee.xml +++ b/Modules/Weladee_Attendances/views/fw_hr_employee.xml @@ -14,15 +14,13 @@ remarks: - diff --git a/Modules/Weladee_Attendances/views/weladee_attendance.xml b/Modules/Weladee_Attendances/views/weladee_attendance.xml index 39a786d..de4ee83 100644 --- a/Modules/Weladee_Attendances/views/weladee_attendance.xml +++ b/Modules/Weladee_Attendances/views/weladee_attendance.xml @@ -13,15 +13,15 @@ weladee_attendance_form
-