Example #1
0
def _create_new_company(company_name):
    """
    Adds a new record for the given company name to our database.

    The plan is to use the crunchbase/glassdoor API to query for the given
    company name.
    If the calls return info on the company, happily add it
    to our database. If not, we'll assume the given company name is
    faulty, and return an appropriate message to the user.
    """
    crunchbase = CrunchbaseAPI()
    response = crunchbase.get_company_info(company_name)
    if response['exists']:
        # Create the company using the name returned by crunchbase
        # TODO: We should add our own checks.. so a search for '*' doesn't give
        # back 'Google'
        # Or maybe we shouldn't let crunchbase spellcheck?
        company_name = response['name'].lower()

        try:
            # If company already exists, redirect to it
            company = Company.objects.get(name=company_name)
            redirect('/companies/{}'.format(new_company.id))
        except Company.DoesNotExist:
            new_company = Company(name=company_name)
            new_company.save()

            logger.info('New company created: {}'.format(company_name))
            return redirect('/companies/{}'.format(new_company.id))
    else:
        return redirect('/')
def process_company_file(data_file):
    workbook = xlrd.open_workbook(settings.MEDIA_ROOT+'/'+data_file.uploaded_file.name)
    worksheets = workbook.sheet_names()
    data_file.number_of_sheets = len(worksheets)
    data_file.save()
    for worksheet_name in worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        num_rows = worksheet.nrows - 1
        curr_row = 0            
        while curr_row < num_rows:
            curr_row += 1                
            company_name = worksheet.cell_value(curr_row, 0)
            industry = worksheet.cell_value(curr_row, 1)
            isin = worksheet.cell_value(curr_row, 2)
            bse_code = worksheet.cell_value(curr_row, 3)
            industry, created = Industry.objects.get_or_create(industry_name=industry)
            industry.created_by = data_file.uploaded_by
            industry.save()
            try:
                company = Company.objects.get(isin_code=isin)
            except:
                try:
                    company = Company.objects.get(company_name=company_name)    
                except:
                    company = Company()
            company.isin_code = isin
            if bse_code:
                company.BSE_code = int(bse_code)
            company.industry = industry
            company.company_name = company_name
            company.created_by = data_file.uploaded_by
            company.save()
    data_file.processing_completed = True
    data_file.save()
Example #3
0
def create_company(request):
    if request.method == 'GET':
        template = 'new_position/new_company.html'
        form = CompanyForm()
        return render(
            request,
            template,
            {
                'form': form
            }
        )
    elif request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = Company(
                name = form.cleaned_data.get('name'),
                tag_name = form.cleaned_data.get('tag_name'),
                product = form.cleaned_data.get('product'),
                why_us = form.cleaned_data.get('why_us'),
                traction = form.cleaned_data.get('traction'),
                funding = form.cleaned_data.get('funding'),
                size = form.cleaned_data.get('size'),
                last_active = datetime.now(),
                market = form.cleaned_data.get('market'),
                company_link = form.cleaned_data.get('company_link'),
            )
            company.save()

            return render(
                request,
                'landing_pages/index.html',
            )
Example #4
0
def enterpriseInfoSave(req):
    """
    企业信息保存!
    :param req:
    :return:
    """
    enterpriseType = req.POST["enterpriseType"]
    enterprise = Company.objects.filter(companyName=enterpriseType)
    if req.POST["radioVal"] == "1":
        isShow = True
    else:
        isShow = False
    if enterprise.exists():
        return HttpResponse(2)
    companyId = uuid.uuid1()  # 生成36位随机数
    try:
        with transaction.atomic():  # 事务的使用,包含的内容一旦出错,则保存的信息全部撤回
            company = Company(companyId=companyId,
                              companyName=enterpriseType,
                              isShow=isShow)
            company.save()
            i = 0
            while i < len(req.POST) - 2:
                enterpriseInfoNum = "enterprise" + str(i)
                enterpriseInfo = req.POST[enterpriseInfoNum]
                dataType = DataType(dataTypeId=uuid.uuid1(),
                                    companyId_id=companyId,
                                    dataName=enterpriseInfo)
                dataType.save()
                i = i + 1
                print enterpriseInfo
            return HttpResponse(1)
    except Exception as err:
        print err
        return HttpResponse(0)
Example #5
0
    def create(self, request, **kwargs):
        serializer = CompanySerializer(data=request.data)
        if serializer.is_valid():
            user = save_user(request.data, UserPermissions.IS_COMPANY)
            city = City(**request.data["city"])
            company = Company(
                name=request.data["name"],
                type=UserType.COMPANY,
                address=request.data["address"],
                identityDoc=request.data["identityDoc"],
                phone=request.data["phone"],
                city=city,
                user=user,
            )

            company.save()
            return Response(
                {
                    "status": "SUCCESS",
                    "msg_status": "Estabecimiento creado satisfactoriamente. Puede ingresar con su nueva contrasena.",
                }
            )
        else:
            messages = []
            make_error(serializer.errors.values(), messages)
            return Response({"status": "FAILURE", "msg_status": messages})
Example #6
0
 def delete(id):
     entity = Company.get(id)
     if(entity is None):
         raise ValueError("Company does not exists")
     else:
         entity.active = False
         Company.save(entity)
Example #7
0
 def create(self, validated_data):
     company = Company(
         name=validated_data['name'],
         alias=validated_data['name'].lower(),
         active=validated_data['active']
     )
     company.save()
     return company
Example #8
0
 def save_instance_form(self, form, user):
     company = Company()
     company.nit = form.cleaned_data['nit']
     company.name = form.cleaned_data['name']
     company.location = form.cleaned_data['location']
     company.website = form.cleaned_data['website']
     company.email = form.cleaned_data['email']
     company.phone = form.cleaned_data['phone']
     company.save()
     user.company = company
     user.save()
Example #9
0
def input_companies():
  ''' Creates the company models for each S&P 500 company'''
  
  yahoo_data = yahooDataRetriever.get_dict_500_companies(name_file)
  
  for i in yahoo_data.keys():
    if len(Company.objects.filter(ticker = i)) > 0:
      continue
    c = Company()
    c.name = yahoo_data.get(i)
    c.ticker = i
    c.save()
    print "## Saved Company Object for: " + i
Example #10
0
    def save_company(self, tree):
        company = Company()
        
        #company introduction
        l = tree.xpath('//div[contains(@class, \'jobs_txt\')]/p')
        #print "company introduction:"
        for i in l:
            if not i.text is None:
                #print i.text
                company.introduction = i.text


        #company name
        l = tree.xpath('//td[@class=\'sr_bt\']')
        for i in l:
            tr = l[0].getparent()
            print "company name:"
            iters = tr.itersiblings(); 
            for it in iters: 
                a_list = it.xpath('//td/table/tr/td/a')
                for i in a_list:
                    if not i.text is None:
                        #print i.text
                        company.name = i.text
                break
            break

        #company info
        l = tree.xpath('//td/strong')
        txt1_tag = ['公司行业:', '公司性质:', '公司规模:' ]

        remove_from_list(l, txt1_tag)
        for i in l:
            td = i.getparent()
            iters = td.itertext()
            index = 0
            for it in iters:
                it = it.lstrip()
                if it in txt1_tag:
                    continue
                if index == 0:
                    company.industry = it
                elif index == 1:
                    company.nature = it
                elif index == 2:
                    company.scale = it
                index += 1
                #print "[%s]" % it.lstrip()
            break

        company.save()
Example #11
0
def company_new():
    company = Company()
    if request.method == 'POST':
        form = CompanyForm(request.form, obj=company)
        if form.validate():
            try:
                form.populate_obj(company)
                validate_company(company)
                company.save()
                flash('Yes, empresa cadastrada com sucesso.', 'success')
                return redirect(url_for('companies.company_index'))
            except AttributeError as e:
                flash(str(e), 'warning')
    else:
        form = CompanyForm(obj=company)
    return render_template('companies/new.html', form=form)
Example #12
0
class TestEmployee(TestCase):
    def setUp(self):
        self.region = Region(name="test_region")
        self.region.save()
        self.company = Company(code="1001", name="test_company", region=self.region)
        self.company.save()

        self.store = Store(code="10011001", name="test_store", company=self.company)
        self.store.save()

        self.emp_region = Employee(username="******", organization=self.region)
        self.emp_company = Employee(username="******", organization=self.company)
        self.emp_store = Employee(username="******", organization=self.store)

    def test_organizations(self):
        organizations = self.emp_region.organizations()
        self.assertEquals([self.region], organizations)
        organizations = self.emp_company.organizations()
        self.assertEquals([self.region, self.company], organizations)
        organizations = self.emp_store.organizations()
        self.assertEquals([self.region, self.company, self.store], organizations)

    def test_in_xxx_org(self):
        # employee in region
        self.assertTrue(self.emp_region.in_region())
        self.assertFalse(self.emp_region.in_company())
        self.assertFalse(self.emp_region.in_store())

        # employee in company
        self.assertFalse(self.emp_company.in_region())
        self.assertTrue(self.emp_company.in_company())
        self.assertFalse(self.emp_company.in_store())

        # employee in company
        self.assertFalse(self.emp_store.in_region())
        self.assertFalse(self.emp_store.in_company())
        self.assertTrue(self.emp_store.in_store())

    def test_org(self):
        self.assertEqual(self.emp_region.org(), self.region)
        self.assertEqual(self.emp_company.org(), self.company)
        self.assertEqual(self.emp_store.org(), self.store)
Example #13
0
class TestOrganization(TestCase):
    def setUp(self):
        self.region = Region(name="test_region")
        self.region.save()

        self.company = Company(code="1001", name="test_company", region=self.region)
        self.company.save()
        self.company2 = Company(code="1002", name="test_company_2", region=self.region)
        self.company2.save()

        self.store = Store(code="10011001", name="test_store", company=self.company)
        self.store.save()

    def test_ancestor(self):
        self.assertTrue(self.region.pk == self.company.ancestor().pk)
        self.assertTrue(self.region.pk == self.store.ancestor().pk)

    def test_belong_to(self):
        self.assertTrue(self.store.belong_to(self.company))
        self.assertFalse(self.region.belong_to(self.company))
        self.assertFalse(self.store.belong_to(self.company2))
Example #14
0
def _find_company(company_name):
    """
    Queries the crunchbase API to find the given company
    """
    crunchbase = CrunchbaseAPI()
    response = crunchbase.get_company_info(company_name)
    if response['exists']:
        # grab and use the name given back by crunchbase
        company_name = response['name'].lower()
        try:
            # See if we already have an entry for the company
            company = Company.objects.get(name=company_name)
            return redirect('/companies/{}/'.format(company.id))
        except Company.DoesNotExist:
            new_company = Company(name=company_name)
            new_company.save()

            logger.info('New company created: {}'.format(company_name))
            return redirect('/companies/{}'.format(new_company.id))
    else:
        # Company doesn't exist, redirect to homepage
        return redirect('/')
Example #15
0
    def create_company(name, notification_plugins, timezone, time_tracking_plugin=None, time_tracking_data=None):
        """ Creates a company in the db

        :param name: Company name
        :type name: str
        :param notification_plugins: List of plugins to use to notify
        :type notification_plugins: [BaseNotificationPlugin]
        :param timezone: Timezone the company is in (as pytz requires it)
        :type timezone: str
        :param time_tracking_plugin: Time Tracking plugin
        :type time_tracking_plugin: str
        :return: Company ID
        :rtype: int
        :raises: NotificationMethodMissing, CompanyNameMissing, InvalidTimeTrackingPlugin
        """

        if name is None:
            raise CompanyNameMissing()

        if timezone is None:
            raise TimezoneMissing()

        # There should be at least a notification method
        if notification_plugins is None or len(notification_plugins) == 0:
            raise NotificationMethodMissing()

        # This throws an exception if the plugin doesn't exist
        PluginsManager.get_time_tracking_plugin(time_tracking_plugin, **time_tracking_data)

        for plugin in notification_plugins:
            PluginsManager.get_notification_plugin(plugin['notification_plugin'], **plugin['notification_data'])

        company = Company(name=name, notification_plugins=notification_plugins, timezone=timezone,
                          time_tracking_plugin=time_tracking_plugin, time_tracking_data=time_tracking_data)
        company.save()

        return company.id
Example #16
0
 def test_safestr(self):
     c = Company(cents_payed=12, products_delivered=1)
     c.name = SafeUnicode(u"Iñtërnâtiônàlizætiøn1")
     c.save()
     c.name = SafeString(u"Iñtërnâtiônàlizætiøn1".encode("utf-8"))
     c.save()
Example #17
0
def populate_db():
    v12 = Vehicle(
            number=12, plate="1234ABC", brand="My brand",
            model="My model", hour_price=27.32, km_price=8.99
            )
    v15 = Vehicle(
            number=15, plate="9876ZYX", brand="My brand",
            model="My model", hour_price=34.02, km_price=4.00
            )
    v12.save()
    v15.save()

    c1 = Company(
            code="0001", name="Company name", nif="B12345678",
            address="Rue st.", city="Zaragoza", state="Zaragoza",
            zip_code="50000", phone="123456789", contact_person="Foolano",
            alternative_phone="987654321", fax="246813579",
            email="*****@*****.**", iban="ES12345678901234567890123456789012",
            bank_name="THE Bank", payment_type="CASH", expiration_days=30,
            first_payment_day=5, second_payment_day=15, third_payment_day=25
            )

    c2 = Company(
            code="0002", name="Foo Inc.", nif="B45678123",
            address="Major st", city="Zaragoza", state="Zaragoza",
            zip_code="50002", email="*****@*****.**",
            iban="ES12345678901234567890123456789012", bank_name="Minor Bank",
            payment_type="BANK_TRANSFER", expiration_days=45,
            first_payment_day=8
            )

    c1.save()
    c2.save()

    dn1 = DeliveryNote(
            code="11111111", date=date(2016, 1, 3), company=c1, vehicle=v12,
            invoiced=False
            )
    dn2 = DeliveryNote(
            code="22222222", date=date(2016, 1, 5), company=c1, vehicle=v15,
            invoiced=False
            )
    dn1.save()
    dn2.save()

    dni1 = DeliveryNoteItem(
            delivery_note=dn1, item_type="HOURS", units=12,
            price=v12.hour_price, description="Working hard"
            )
    dni2 = DeliveryNoteItem(
            delivery_note=dn2, item_type="HOURS", units=7,
            price=21.00, description="We are working hard here"
            )
    dni3 = DeliveryNoteItem(
            delivery_note=dn2, item_type="OTHERS", units=1,
            price=327.86, description="Are you working hard?"
            )
    dni1.save()
    dni2.save()
    dni3.save()

    Settings(vat=21.00, invoice_number="0000000001").save()
Example #18
0
 def test_safestr(self):
     c = Company(cents_payed=12, products_delivered=1)
     c.name = SafeUnicode(u'Iñtërnâtiônàlizætiøn1')
     c.save()
     c.name = SafeString(u'Iñtërnâtiônàlizætiøn1'.encode('utf-8'))
     c.save()
from models import Company, database

alelo = Company()
alelo.name = "ALELO"
alelo.description = "Cartão Refeição, Alimentação. A gente trabalha em seu benefício."
alelo.base_value = 30
alelo.picture = "http://www.appsgalery.com/pictures/000/150/-lelo-150898.png"

sodexo = Company()
sodexo.name = "SODEXO"
sodexo.description = "Motive ainda mais os seus trabalhadores! Com os cartões de benefícios para funcionários da Sodexo, eles ganham benefícios e vantagens exclusivas!"
sodexo.base_value = 25
sodexo.picture = "http://freevectorlogo.net/wp-content/uploads/2012/10/sodexo-vector-logo-400x400.png"

vr = Company()
vr.name = "VR"
vr.description = "A refeição saborosa dos funcionários ainda traz benefícios fiscais para a sua empresa!"
vr.base_value = 28
vr.picture = "http://merkk.com/wp-content/uploads/2015/12/vr-refei----o.png"

with database.transaction():
	alelo.save()
	sodexo.save()
	vr.save()
Example #20
0
    def save(entity, logo_name, logo_data): 

        if logo_name:  
            if logo_name.lower().endswith(('.png')):    
                pass
            else:
                raise ValueError("The logo only supports .png extension")

        if entity.key is None:
            entity.active=True
            entity = Company.save(entity)

            '''Create Asset Inventory'''
            from models import AssetSize
            from random import randint

            for e in AssetSize:
                inventory = AssetInventory()
                inventory.populate(
                    asset_size = AssetSize(int(e)),
                    company_key = entity.key,
                    count = randint(1, 10)
                )
                AssetInventoryService.AssetInventoryInstance.save(inventory)                
            
        else:
            current = Company.get(entity.key.urlsafe())
            if current is not None:
                current.name = entity.name
                current.domain = entity.domain
                current.state = entity.state
                current.city = entity.city
                current.zipcode = entity.zipcode
                current.contact_phone = entity.contact_phone
                current.contact_email = entity.contact_email
                current.address = entity.address
                current.vendor_notes = entity.vendor_notes
                current.active = entity.active
                current.latitude = entity.latitude
                current.longitude = entity.longitude
                entity = Company.save(entity)
            else:
                raise ValueError("Company does not exists")

        if logo_name and logo_data:
            bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gcs_bucket_name())
            path = "/" + bucket_name + "/" + entity.key.urlsafe() + "/" + logo_name
            write_retry_params = gcs.RetryParams(backoff_factor=1.1)
            gcs_file = gcs.open(path,
                                'w',
                                content_type='image/png',
                                options={'x-goog-meta-foo':'foo',
                                        'x-goog-acl':'public-read',
                                        'x-goog-meta-bar':'bar'},
                                retry_params=write_retry_params)
            gcs_file.write(base64.b64decode(logo_data))
            gcs_file.close()
            entity.logo_url = config.GOOGLE_CLOUD_STORAGE_BASE_ADDRESS_TO_DOWNLOAD + "/" + bucket_name + "/" + entity.key.urlsafe() + "/" + logo_name
            entity = Company.save(entity)
                           
        return entity
Example #21
0
 def setup(self):
     com1 = Company(
            name="Orange Farm 1",
            description='We are the tour company that many people rely on',
            location='Thailand')
     com1.save()