@ -66,6 +66,8 @@ cur_messages = {
Введите новый статус заказа :
''' ,
mod_table_operate . Messages . OPEN : f '''
< b > Номер заказа : #{orders.key_name} </b>
< b > Заказ : #{orders.name_field}</b>
< b > Описание и состав заказа : < / b > #{orders.desc_field}
@ -84,10 +86,16 @@ messages_notification = {
mod_table_operate . NotificationMessage ( orders . OrderStatus . NEW ) : f ''' Статус заказа " # { orders . name_field } " изменён на - ожидает модерации ''' ,
mod_table_operate . NotificationMessage ( orders . OrderStatus . PAY ) : f ''' Статус заказа " # { orders . name_field } " изменён на - Заказ ожидает оплаты.
Оплатите заказ и прикрепите чек об оплате к заказу . Для этого проследуйте по пути " Заказы " - > " Редактировать мой заказ " - > " Загрузить чек по оплате моего заказа " ''' ,
< b > Описание заказа : < / b >
#{orders.desc_field}
Оплатите заказ и прикрепите чек об оплате к заказу . Для этого проследуйте по пути " Главное меню " - > " Заказы " - > " Загрузить чек по оплате моего заказа " ''' ,
mod_table_operate . NotificationMessage ( orders . OrderStatus . ADDRESS ) : f ''' Статус заказа " # { orders . name_field } " изменён на - Заказ ожидает указания адреса доставки.
Для этого проследуйте по пути " Заказы " - > " Редактировать мой заказ " - > " Изменить адрес в моём заказе " ''' ,
< b > Описание заказа : < / b >
#{orders.desc_field}
Для этого проследуйте по пути " Главное меню " - > " Заказы " - > " Редактировать мой заказ " - > " Изменить адрес в моём заказе " ''' ,
mod_table_operate . NotificationMessage ( orders . OrderStatus . FINISH ) : f ''' Статус заказа " # { orders . name_field } " изменён на - Заказ выполнен ''' ,
}
@ -139,9 +147,10 @@ class ModuleAllOrders(orders.ModuleOrders):
return DBItemForUserSelectSource ( self . m_Bot , self . m_Table . GetName ( ) , parent_id_field , a_PrevPrefix , a_ButtonName )
def GetButtonNameAndKeyValueAndAccess ( self , a_Item ) :
parent_field_id = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . PARENT_ID )
user_field_id = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . USER_ID )
key_field_id = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . KEY )
n , k , a = super ( ) . GetButtonNameAndKeyValueAndAccess ( a_Item )
return n + " : " + str ( a_Item [ parent _field_id] ) , k , a
return str ( a_Item [ key_field_id ] ) + " : " + n + " , " + str ( a_Item [ user _field_id] ) , k , a
async def OnChangeField ( self , a_Field , a_ItemID , a_ItemData , a_EditUserID ) :
super ( ) . OnChangeField ( a_Field , a_ItemID , a_ItemData , a_EditUserID )
@ -154,22 +163,33 @@ class ModuleAllOrders(orders.ModuleOrders):
item = item [ 0 ]
user_field_id = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . USER_ID )
parent_field_id = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . PARENT_ID )
status_field_id = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . STATUS )
print ( ' OnChangeField ' , item , user_field_id , status_field_id )
#print('OnChangeField', item, user_field_id, status_field_id )
owner_id = item [ user_field_id ]
new_status = item [ status_field_id ]
parent_id = item [ parent_field_id ]
msg = self . GetMessage ( mod_table_operate . NotificationMessage ( new_status ) )
parent_id_msg = None
if msg :
name = self . GetMessageNameWithTableFieldDestinyAndValue ( mod_table_operate . NotificationMessage ( new_status ) , bd_table . TableFieldDestiny . PARENT_ID , parent_id )
#print('name', name, msg.GetLanguage())
parent_id_msg = msg . FindMessageForLang ( name , msg . GetLanguage ( ) )
if parent_id_msg :
msg = parent_id_msg
if not msg :
self . m_Log . Error ( f ' Не удалось оповестить по заказу № { a_ItemID } . Пустое сообщение для нового статуса { new_status } ' )
return
msg = self . UpdateMessage ( msg , None , item )
await self . m_Bot . SendMessage (
owner_id ,
msg . GetDesc ( ) ,
msg . GetPhotoID ( ) ,
None ,
None
)
await self . SendMessageToUser ( msg , owner_id )
def GetStartButtons ( self , a_Message , a_UserGroups ) :
return [
[ mod_table_operate . ButtonNames . LIST , user_access . AccessMode . VIEW ] ,
[ mod_table_operate . ButtonNames . EDIT , user_access . AccessMode . EDIT ] ,
[ mod_table_operate . ButtonNames . ADD , user_access . AccessMode . ADD ] ,
[ mod_table_operate . ButtonNames . DEL , user_access . AccessMode . DELETE ] ,
]
def GetViewItemInlineKeyboard ( self , a_Message , a_UserGroups , a_ItemID ) :
table_name = self . m_Table . GetName ( )
@ -178,22 +198,37 @@ class ModuleAllOrders(orders.ModuleOrders):
user_id = None
user_id_field_index = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . USER_ID )
key_field_index = self . m_Table . GetFieldIDByDestiny ( bd_table . TableFieldDestiny . KEY )
if user_id_field_index and cur_item and cur_item [ user_id_field_index ] :
user_id = cur_item [ user_id_field_index ]
if not user_id :
return None
cur_buttons = [ ]
users_mod = self . GetModule ( users . module_name )
if users_mod :
cur_buttons + = [
keyboard . InlineButtonWithAccess ( self . GetButton ( ButtonNames . SHOW_USER_INFO ) , users_mod . GetShowPrefix ( ) , user_id , users_mod . GetAccess ( ) , user_access . AccessMode . VIEW ) ,
]
for dst in bd_table . TableFieldDestiny . DESC , bd_table . TableFieldDestiny . STATUS :
access = self . GetAccessForEditKeyboardButtons ( self . m_Table . GetFieldByDestiny ( dst ) )
btn = mod_table_operate . EditButton ( dst )
prefix = self . m_EditPrefix . get ( dst , None )
if prefix :
cur_buttons + = [
keyboard . InlineButtonWithAccess ( self . GetButton ( btn ) , prefix , cur_item [ key_field_index ] , access , user_access . AccessMode . EDIT ) ,
]
user_message_mod = self . GetModule ( user_message . module_name )
if user_message_mod :
cur_buttons + = [
keyboard . InlineButtonWithAccess ( self . GetButton ( ButtonNames . SEND_USER_MESSAGE ) , user_message_mod . GetAddPrefix ( ) , user_id , user_message_mod . GetAccess ( ) , user_access . AccessMode . ADD ) ,
]
users_mod = self . GetModule ( users . module_name )
if users_mod :
cur_buttons + = [
keyboard . InlineButtonWithAccess ( self . GetButton ( ButtonNames . SHOW_USER_INFO ) , users_mod . GetShowPrefix ( ) , user_id , users_mod . GetAccess ( ) , user_access . AccessMode . VIEW ) ,
]
if len ( cur_buttons ) == 0 :
return None
return keyboard . MakeInlineKeyboardButtons ( self . m_Bot , cur_buttons , a_UserGroups )