Example #1
0
 def approve_global_app(self):
     """Утверждение заявки по предприятию"""
     # Выбор нужных  заявок и элементов заявок
     app_q = meta.Session.query(model.App)
     approved_apps = app_q.filter_by(campaign_id = app_globals.current_campaign_id).filter_by(status = 3).all()
     for approved_app in approved_apps:
         # Утверждение заявки
         try:
             approved_app.status = 4
             meta.Session.commit()   
             
             # Выбрать автора заявки
             users_q = meta.Session.query(model.User)
             user = users_q.filter_by(id = approved_app.author_id).first()  
             # Отправить письмо
             mail = user.mail
             fromaddr = 'cniikometa.ru'
             toaddrs = str(mail)
             msg = "Subject: Заявка\nContent-Type: text/plain; charset='UTF-8'\nВаша заявка утверждена ответственным по предприятию."
             server = smtplib.SMTP('localhost')
             server.sendmail(fromaddr, toaddrs, msg)
             server.quit()
         except:
             pass         
     h.redirect(url(controller='app', action='global_app'))
Example #2
0
 def delete_section(self):
     """Удаляет раздел и все дочерние разделы"""
     section_q = meta.Session.query(model.Section)
     section = section_q.filter_by(id=request.urlvars["id"]).first()
     meta.Session.delete(section)
     meta.Session.commit()
     h.redirect(url(controller="catalog", action="section", id=section.parent_section_id))
Example #3
0
 def create(self):
     """Создание новой заявочной кампании"""
     campaign = model.Campaign()
     campaign.start_date = self.form_result['start_date']
     campaign.end_date = self.form_result['end_date']
     campaign.status = '1'
     campaign.description = self.form_result['description']
     meta.Session.add(campaign)
     meta.Session.flush()
     
     # Установка лимитов по подразделениям
     users = request.environ['authkit.users']
     c.users = users
     for group in users.list_groups():
         limit = model.Limit()
         limit.campaign_id = campaign.id
         limit.group_uid = users.group_uid(group)
         try:
             limit.limit_value = self.form_result['limit'+str(users.group_uid(group))]
         except:
             pass
         meta.Session.add(limit)
         meta.Session.flush()
     
     h.redirect(url(controller='campaign', action='assign_globals'))
Example #4
0
 def end(self):
     """Завершение кампании - окончена, неактивна"""
     campaign_q = meta.Session.query(model.Campaign)
     c.current_campaign = campaign_q.filter_by(id = request.urlvars['id']).first()
     c.current_campaign.status = 3
     meta.Session.commit()
     h.redirect(url(controller='campaign', action='index'))
Example #5
0
 def delete_item(self):
     """Удаление объекта из заявки"""
     app_elements_q = meta.Session.query(model.AppElements)
     app_element = app_elements_q.filter_by(id = request.urlvars['id']).first()
     meta.Session.delete(app_element)
     meta.Session.commit()
     h.redirect(url(controller='app', action='user_app'))
Example #6
0
 def app_to_director(self):
     """Передача заявки по отделу ответственному по предприятию на 
        устверждение.
        Сотрудникам, которые заполняли заявки, высылаются письма на e-mail"""
     # Выбор группы
     boss_q = meta.Session.query(model.User)
     boss_group = boss_q.filter_by(username = request.environ['REMOTE_USER']).first().group_uid
     # Выбор пользователей этой группы
     users_q = meta.Session.query(model.User)
     users_in_group = users_q.filter_by(group_uid = boss_group).all()      
     # Выбор заявки и элементов заявки дла этой группы
     for user in users_in_group:       
         app_q = meta.Session.query(model.App)
         current_app = app_q.filter_by(author_id = user.uid).filter_by(campaign_id = app_globals.current_campaign_id) 
         current_app = current_app.filter(or_(model.App.status.like(2), model.App.status.like(3))).first()  
         # Передача заявки ответственному по предприятию
         try:
             current_app.status = 3 
             meta.Session.commit()   
             # Отправить письмо
             mail = user.mail
             fromaddr = 'cniikometa.ru'
             toaddrs = str(mail)
             msg = "Subject: Заявка\nContent-Type: text/plain; charset='UTF-8'\nВаша заявка утверждена ответственным по подразделению."
             server = smtplib.SMTP('localhost')
             server.sendmail(fromaddr, toaddrs, msg)
             server.quit()
         except:
             pass 
     h.redirect(url(controller='app', action='group_app'))
Example #7
0
 def director_app_to_global(self):
     """Ответственный по предприятию добавляет свою заявку к общей"""
     app_q = meta.Session.query(model.App)
     current_app = app_q.filter_by(author_id = app_globals.user_id).filter_by(campaign_id = app_globals.current_campaign_id).first() 
     if current_app.status == 1:
         current_app.status = 4 # Forwarding app to boss
     meta.Session.commit()
     h.redirect(url(controller='app', action='user_app'))
Example #8
0
 def assign_globals(self):
     """Инициализация глобальных переменных"""
     campaign_q = meta.Session.query(model.Campaign)
     c.current_campaign = campaign_q.filter_by(status = '1').first()
     app_globals.current_campaign_id = c.current_campaign.id
     app_globals.current_campaign_start_date = c.current_campaign.start_date
     app_globals.current_campaign_end_date = c.current_campaign.end_date
     h.redirect(url(controller='campaign', action='index'))
Example #9
0
 def create_section(self):
     """Создание раздела"""
     section = model.Section()
     section.name = self.form_result["name"]
     section.parent_section_id = self.form_result["parent_section"]
     section.description = self.form_result["description"]
     meta.Session.add(section)
     meta.Session.flush()
     h.redirect(url(controller="catalog", action="section", id=section.id))
Example #10
0
 def restore_item_group(self):
     """Восстановление объекта в заявке по отделу"""
     # Восстанавливает элемент. Статус меняется на 2.
     app_elements_q = meta.Session.query(model.AppElements)
     current_app_element = app_elements_q.filter_by(id = request.urlvars['id']).first()
     if current_app_element.status == 3:
         current_app_element.status = 2
     meta.Session.commit()  
     h.redirect(url(controller='app', action='group_app')) 
Example #11
0
 def app_to_boss(self):
     """Передача заявки пользователя ответственному по отделу"""
     # Пользователять отправляет заявку ответственному по отделу
     app_q = meta.Session.query(model.App)
     current_app = app_q.filter_by(author_id = app_globals.user_id).filter_by(campaign_id = app_globals.current_campaign_id).first() 
     if current_app.status == 1:
         current_app.status = 2 # Передача заявки ответственному по отделу
     meta.Session.commit()
     h.redirect(url(controller='app', action='user_app'))
Example #12
0
 def save_section(self):
     """Сохранения параметров раздела"""
     section_q = meta.Session.query(model.Section)
     section = section_q.filter_by(id=request.urlvars["id"]).first()
     section.name = self.form_result["name"]
     section.description = self.form_result["description"]
     section.edited = datetime.datetime.now()
     meta.Session.commit()
     h.redirect(url(controller="catalog", action="section", id=section.id))
Example #13
0
 def delete_item(self):
     """Удаление объекта"""
     item_q = meta.Session.query(model.Item)
     item = item_q.filter_by(id=request.urlvars["id"]).first()
     # Объект не удаляется из базы данных, а просто становится невидимым
     # Это необходимо, чтобы сохранилась информация в старых заявках
     item.deleted = 1
     # meta.Session.delete(item)
     meta.Session.commit()
     h.redirect(url(controller="catalog", action="section", id=item.section_id))
Example #14
0
 def delete_item_group(self):
     """Удаление объекта из заявки по отделу"""
     # Удаление элементов из заявки. Они не удаляются полностью, статус меняется на 3
     app_elements_q = meta.Session.query(model.AppElements)
     current_app_element = app_elements_q.filter_by(id = request.urlvars['id']).first()
     if current_app_element.status == 3:
         pass
     else:
         current_app_element.status = 3
     meta.Session.commit()  
     h.redirect(url(controller='app', action='group_app')) 
Example #15
0
 def create_item(self):
     """Создание объекта"""
     item = model.Item()
     item.brand = self.form_result["brand"]
     item.model = self.form_result["model"]
     item.description = self.form_result["description"]
     item.section_id = self.form_result["section_id"]
     item.unit_id = self.form_result["unit_id"]
     item.price = self.form_result["price"]
     meta.Session.add(item)
     meta.Session.flush()
     h.redirect(url(controller="catalog", action="new_item"))
Example #16
0
 def save_item(self, id):
     """Сохранение параметров объекта"""
     item_q = meta.Session.query(model.Item)
     item = item_q.filter_by(id=id).first()
     item.brand = self.form_result["brand"]
     item.model = self.form_result["model"]
     item.description = self.form_result["description"]
     item.section_id = self.form_result["section_id"]
     item.unit_id = self.form_result["unit_id"]
     item.price = self.form_result["price"]
     item.edited = datetime.datetime.now()
     meta.Session.commit()
     h.redirect(url(controller="catalog", action="section", id=item.section_id))
Example #17
0
  def edit_item_group(self):
      """Изменения элемента заявки по отделу"""
      app_elements_q = meta.Session.query(model.AppElements)
      current_app_element = app_elements_q.filter_by(id = request.urlvars['id']).first()
 
      current_app_element.quarter1 = self.form_result[u'quarter1']
      current_app_element.quarter2 = self.form_result[u'quarter2']
      current_app_element.quarter3 = self.form_result[u'quarter3']
      current_app_element.quarter4 = self.form_result[u'quarter4']
      current_app_element.amount = int(current_app_element.quarter1) + int(current_app_element.quarter2) + int(current_app_element.quarter3) + int(current_app_element.quarter4)
      current_app_element.price = int(current_app_element.amount) * int(current_app_element.items.price)
      current_app_element.finsource = self.form_result[u'finsource']
      current_app_element.needs = self.form_result[u'needs']
      current_app_element.place = self.form_result[u'place']
      current_app_element.note = self.form_result[u'note']
      current_app_element.status = 1
      meta.Session.commit()
      h.redirect(url(controller='app', action='edit_item_group_form', id=request.urlvars['id'])) 
Example #18
0
 def mail_sale_app(self):
     """Информирование сотрудников по e-mail о результатах реализации"""
     # Выбор пользователей
     users_q = meta.Session.query(model.User)
     users = users_q.all()      
     for user in users:         
         try:
             # Отправить письмо
             mail = user.mail
             fromaddr = 'cniikometa.ru'
             toaddrs = str(mail)
             msg = "Subject: Заявка\nContent-Type: text/plain; charset='UTF-8'\nВаша заявка реализована."
             server = smtplib.SMTP('localhost')
             server.sendmail(fromaddr, toaddrs, msg)
             server.quit()
         except:
             pass
     h.redirect(url(controller='app', action='sale_app'))
Example #19
0
 def save_user_app(self):
     """Сохранение изменений, внесённых в заявку пользователя"""
     app_q = meta.Session.query(model.App)
     current_app = app_q.filter_by(author_id = app_globals.user_id).filter_by(campaign_id = app_globals.current_campaign_id).first() 
     app_elements_q = meta.Session.query(model.AppElements)
     current_app_elements = app_elements_q.filter_by(app_id = current_app.id)
     
     for element in current_app_elements:
         element.quarter1 = self.form_result[u'quarter1_el'+str(element.id)]
         element.quarter2 = self.form_result[u'quarter2_el'+str(element.id)]
         element.quarter3 = self.form_result[u'quarter3_el'+str(element.id)]
         element.quarter4 = self.form_result[u'quarter4_el'+str(element.id)]
         element.amount = int(element.quarter1) + int(element.quarter2) + int(element.quarter3) + int(element.quarter4)
         element.price = int(element.amount) * int(element.items.price)
         element.finsource = self.form_result[u'finsource_el'+str(element.id)]
         element.needs = self.form_result[u'needs_el'+str(element.id)]
         element.place = self.form_result[u'place_el'+str(element.id)]
         element.note = self.form_result[u'note_el'+str(element.id)]
         meta.Session.commit()
     
     h.redirect(url(controller='app', action='user_app'))
Example #20
0
 def save_sale_app(self):
     """Реализация заявок"""
     # Выбор нужных заявок и элементов заявок  
     app_q = meta.Session.query(model.App)
     approved_apps = app_q.filter_by(campaign_id = app_globals.current_campaign_id)
     approved_apps = approved_apps.filter(or_(model.App.status.like(4), model.App.status.like(4))).all()
     for approved_app in approved_apps:
         app_elements_q = meta.Session.query(model.AppElements)
         app_elements = app_elements_q.filter_by(app_id = approved_app.id)
     
         for element in app_elements:
             element.quarter1p = self.form_result[u'quarter1p_el'+str(element.id)]
             element.quarter2p = self.form_result[u'quarter2p_el'+str(element.id)]
             element.quarter3p = self.form_result[u'quarter3p_el'+str(element.id)]
             element.quarter4p = self.form_result[u'quarter4p_el'+str(element.id)]
             element.amountp = int(element.quarter1p) + int(element.quarter2p) + int(element.quarter3p) + int(element.quarter4p)
             element.price = int(element.amount) * int(element.items.price)
             element.pricep = int(element.amountp) * int(element.items.price)
             element.status = self.form_result[u'action_el'+str(element.id)]
             meta.Session.commit()
     
     h.redirect(url(controller='app', action='sale_app'))
Example #21
0
 def add_item(self):
     """Добавление нового объекта в заявку"""
     app_q = meta.Session.query(model.App)
     c.current_app = app_q.filter_by(author_id = app_globals.user_id).filter_by(campaign_id = app_globals.current_campaign_id).first()
     if (c.current_app.status == 1) or (h.auth.authorized(h.auth.is_valid_user)):    
         app_elements_q = meta.Session.query(model.AppElements)
         # Проверка, есть ли уже этот элемент в заявке
         c.repeat_element = app_elements_q.filter_by(app_id = c.current_app.id).filter_by(item_id = request.urlvars['id']).first()
         try:
             c.repeat_element.id
         except:
             app_elements = model.AppElements()
             app_elements.app_id = c.current_app.id
             app_elements.item_id = request.urlvars['id']
             app_elements.quarter1 = '0'
             app_elements.quarter2 = '0'
             app_elements.quarter3 = '0'
             app_elements.quarter4 = '0'
             app_elements.quarter1p = '0'
             app_elements.quarter2p = '0'
             app_elements.quarter3p = '0'
             app_elements.quarter4p = '0'
             app_elements.amount = '0'
             app_elements.amountp = '0'
             app_elements.price = '0'
             app_elements.pricep = '0'
             app_elements.finsource = '1'
             app_elements.needs = '1'
             app_elements.place = '1'
             app_elements.note = u' '
             app_elements.status = '0'
             meta.Session.add(app_elements)
             meta.Session.flush() 
     else:
         # Javasctipt here
         pass
     
     h.redirect(url(controller='catalog', action='section', id=app_globals.current_section_id))
Example #22
0
 def change_item_group(self):
     """Замена элементы заявки по отделу на другой"""
     h.redirect(url(controller='app', action='group_app')) 
Example #23
0
 def index(self):
     """Отображает список основных разделов (первый уровень)"""
     section_q = meta.Session.query(model.Section)
     c.section = section_q
     c.main_sections = section_q.filter_by(parent_section_id=1)
     h.redirect(url(controller="catalog", action="section", id=1))