def status_dialog(self): customer_id = self.request.matchdict.get('customer_id') customer = Customer.load(customer_id) self.forbid_if(not customer or customer.campaign.company.enterprise_id != self.enterprise_id) order = order_item = events = redir = None if self.request.GET.get('order_id'): order = CustomerOrder.load(self.request.GET.get('order_id')) self.forbid_if(not order or order.campaign.company.enterprise_id != self.enterprise_id) events = util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, order), 'event_id', 'display_name', True) redir = '/crm/customer/show_orders/%s' % customer_id elif self.request.GET.get('order_item_id'): order_item = OrderItem.load(self.request.GET.get('order_item_id')) self.forbid_if(not order_item or order_item.order.campaign.company.enterprise_id != self.enterprise_id) events = util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, order_item), 'event_id', 'display_name', True) redir = '/crm/customer/edit_order_dialog/%s/%s' % (customer_id, order_item.order_id) else: events = util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, customer), 'event_id', 'display_name', True) redir = '/crm/customer/edit/%s' % customer_id return { 'customer' : customer, 'order' : order, 'order_item' : order_item, 'events' : events, 'redir' : redir }
def _show_prep(self, report_id): report = Report.load(report_id) campaigns = products = companies = users = vendors = None if report.show_campaign_id: campaigns = util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name', True) if report.show_vendor_id: vendors = util.select_list(Vendor.find_all(self.enterprise_id), 'vendor_id', 'name', True) if report.show_company_id: companies = util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name', True) if report.show_user_id: users = util.select_list(Users.find_all(self.enterprise_id), 'user_id', 'user_id', True) if report.show_product_id: products = util.select_list(Product.find_all(self.enterprise_id), 'product_id', 'name', True) return { 'today' : util.today_date(), 'tomorrow' : util.tomorrow(), 'thirty_ago' : util.today_date() - datetime.timedelta(days=30), 'rpt_end_dt' : self.request.GET.get('rpt_end_dt'), 'rpt_start_dt' : self.request.GET.get('rpt_start_dt'), 'enterprise_id' : self.enterprise_id, 'report' : report, 'campaigns' : campaigns, 'products' : products, 'companies' : companies, 'users' : users, 'vendors' : vendors }
def _edit_impl(self): purchase_order_id = self.request.matchdict.get('purchase_order_id') purchase = PurchaseOrder.load(purchase_order_id) if purchase_order_id else PurchaseOrder() return { 'companies' : util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name'), 'vendors' : util.select_list(Vendor.find_all(self.enterprise_id), 'vendor_id', 'name', True), 'products' : Product.find_all(self.enterprise_id), 'purchase' : purchase, 'events' : util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, purchase), 'event_id', 'display_name') if purchase.purchase_order_id else [] }
def _edit_impl(self): company_id = self.request.matchdict.get('company_id') comms = [] campaigns = util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name') company = None if company_id: company = Company.load(company_id) comms = util.select_list(Communication.find_all_by_company(company), 'comm_id', 'name') else: company = Company() return {'comms': comms, 'company': company, 'campaigns': campaigns}
def _edit_impl(self): site_id = self.request.matchdict.get('site_id') self.session['last_site_id'] = site_id if site_id: site = Site.load(site_id) self.forbid_if(not site or str(site.company.enterprise_id) != str(self.enterprise_id)) else: site = Site() return { 'site' : site, 'shipping_methods' : Site.get_shipping_methods(), 'tax_methods' : Site.get_tax_methods(), 'companies' : util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name'), 'campaigns' : util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name') }
def _edit_impl(self): customer_id = self.request.matchdict.get('customer_id') customer = None if customer_id: customer = Customer.load(customer_id) self.forbid_if(not customer or customer.campaign.company.enterprise_id != self.enterprise_id) self._add_to_recent(customer) else: customer = Customer() customer.campaign = self.request.ctx.site.company.default_campaign return { 'customer' : customer, 'users' : util.select_list(Users.find_all(self.enterprise_id), 'user_id', ['fname', 'lname'], True), 'phases' : util.select_list(CustomerPhase.find_all(self.enterprise_id), 'phase_id', 'display_name', True), 'campaigns' : util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name') }
def _edit_impl(self, user_id=None): user = priv = None if user_id: user = self.request.ctx.user if self.request.ctx.user.user_id == user_id else Users.load(user_id) priv = user.priv if user.priv else UserPriv() else: user = Users() priv = UserPriv() return { 'enterprises' : util.select_list(Enterprise.find_all(), 'enterprise_id', 'name', True), 'user_types': Users.get_user_types(), 'vendors' : util.select_list(Vendor.find_all(self.enterprise_id), 'vendor_id', 'name', True), 'timezones' : country_timezones('US'), 'user' : user, 'priv' : priv }
def show_returns(self): product_id = self.request.matchdict['product_id'] product = Product.load(product_id) self.forbid_if(not product or product.company.enterprise_id != self.enterprise_id) return {'product' : product, 'events' : util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, product), 'event_id', 'display_name'), 'returns' : ProductReturn.find(product)}
def _edit_impl(self): campaign_id = self.request.matchdict.get('campaign_id') comms = [] companies = util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name') campaign = None if campaign_id: campaign = Campaign.load(campaign_id) self.forbid_if(not campaign or campaign.company.enterprise_id != self.enterprise_id) comms = util.select_list(Communication.find_all_by_company(campaign.company), 'comm_id', 'name', True) else: campaign = Campaign() return {'comms': comms, 'campaign': campaign, 'companies': companies}
def search(self): name = self.request.POST.get('name') company_id = self.request.POST.get('company_id') return { 'companies' : util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name'), 'name' : name, 'company_id' : company_id, 'campaigns' : Campaign.search(self.enterprise_id, name, company_id) }
def show_purchases(self): product_id = self.request.matchdict['product_id'] from pvscore.model.crm.purchase import PurchaseOrderItem product = Product.load(product_id) self.forbid_if(not product or product.company.enterprise_id != self.enterprise_id) return {'product' : product, 'events' : util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, product), 'event_id', 'display_name'), 'purchase_order_items' : PurchaseOrderItem.find_by_product(product) }
def _edit_impl(self): site_id = self.request.matchdict.get('site_id') site = Site.load(site_id) self.forbid_if(not site or str(site.company.enterprise_id) != str(self.enterprise_id)) content_id = self.request.matchdict.get('content_id') if content_id: content = Content.load(content_id) self.forbid_if(not content or str(content.site.company.enterprise_id) != str(self.enterprise_id) or str(content.site_id) != str(site_id)) else: content = Content() content.site_id = site_id return { 'site' : site, 'content' : content, 'companies' : util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name'), 'campaigns' : util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name') }
def _edit_impl(self): product_id = self.request.matchdict.get('product_id') campaigns = Campaign.find_all(self.enterprise_id) companies = util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name') product_types = Product.get_types() vendors = util.select_list(Vendor.find_all(self.enterprise_id), 'vendor_id', 'name', True) categories = util.select_list(ProductCategory.find_all(self.enterprise_id), 'category_id', 'name', True) if product_id: product = Product.load(product_id) self.forbid_if(not product or product.company.enterprise_id != self.enterprise_id) product_categories = ProductCategory.find_by_product(product) else: product = Product() product_categories = [] self.forbid_if(self.request.ctx.user.is_vendor_user() and product.product_id and not self.request.ctx.user.vendor_id == product.vendor_id) children = product.get_children() other_products = product.find_eligible_children() non_children = [] for prod in other_products: found = False for kid in children: if kid.child_id == prod.product_id: found = True break if found == False: non_children.append(prod) return { 'product' : product, 'campaigns' : campaigns, 'companies' : companies, 'product_types' : product_types, 'vendors' : vendors, 'categories' : categories, 'product_categories' : product_categories, 'children' : children, 'non_children': non_children, 'other_products' : other_products, 'events' : util.select_list(StatusEvent.find_all_applicable(self.enterprise_id, product), 'event_id', 'display_name'), 'is_attribute' : self.request.GET.get('is_attribute') == 'True', 'parent_product' : Product.load(self.request.GET.get('parent_id')) if 'parent_id' in self.request.GET else None }
def search(self): vendor_id = self.request.POST.get('vendor_id') from_dt = self.request.POST.get('from_dt', util.str_today()) to_dt = self.request.POST.get('to_dt', util.str_today()) return { 'vendor_id' : vendor_id, 'from_dt' : from_dt, 'to_dt' : to_dt, 'purchases' : PurchaseOrder.search(self.enterprise_id, vendor_id, from_dt, to_dt), 'vendors' : util.select_list(Vendor.find_all(self.enterprise_id), 'vendor_id', 'name') }
def show_search(self): return { 'company_name' : None, 'fname' : None, 'lname' : None, 'email' : None, 'phone' : None, 'customers' : None, 'user_assigned' : None, 'users' : util.select_list(Users.find_all(self.enterprise_id), 'user_id', ['fname', 'lname'], True) }
def _edit_impl(self): category_id = self.request.matchdict.get('category_id') companies = util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name') if category_id: category = ProductCategory.load(category_id) self.forbid_if(not category or category.company.enterprise_id != self.enterprise_id) else: category = ProductCategory() all_products = Product.find_all(self.enterprise_id) return {'companies' : companies, 'category' : category, 'all_products' : all_products}
def _edit_impl(self): report_id = self.request.matchdict.get('report_id') report = None if report_id: report = Report.load(report_id) self.forbid_if(not report) else: report = Report() return { 'report' : report, 'reports' : Report.find_vendor_reports() if self.request.ctx.user.is_vendor_user() else Report.find_all(), 'companies' : util.select_list(Company.find_all_all(), 'company_id', 'name') }
def search(self): ret = { 'company_name' : None, 'fname' : None, 'lname' : None, 'email' : None, 'phone' : None, 'customers' : None, 'user_assigned' : None, 'users' : util.select_list(Users.find_all(self.enterprise_id), 'user_id', ['fname', 'lname'], True) } ret['company_name'] = self.request.POST.get('company_name', self.request.GET.get('company_name')) ret['fname'] = self.request.POST.get('fname', self.request.GET.get('fname')) ret['lname'] = self.request.POST.get('lname', self.request.GET.get('lname')) ret['email'] = self.request.POST.get('email', self.request.GET.get('email')) ret['phone'] = self.request.POST.get('phone', self.request.GET.get('phone')) ret['user_assigned'] = self.request.POST.get('user_assigned', self.request.GET.get('user_assigned')) ret['customers'] = Customer.search(self.enterprise_id, ret['company_name'], ret['fname'], ret['lname'], ret['email'], ret['phone'], ret['user_assigned']) if 'customers' in ret and len(ret['customers']) == 1: ret = HTTPFound('/crm/customer/edit/%s' % ret['customers'][0].customer_id) return ret
def show_search(self): return { 'vendors' : util.select_list(Vendor.find_all(self.enterprise_id), 'vendor_id', 'name'), 'purchases' : None }