Beispiel #1
0
def tt(b,e,a):
	i = b
	while i < e:
		s_i2s = i2s(i)
		s_pytils = numeral.in_words(i)
		if (s_pytils != s_i2s):
			print ("\tError on %d\n\t\ti2s\t!%s!\n\t\tpytils\t!%s!\n" % ((i),s_i2s,s_pytils))
		i += a 
Beispiel #2
0
def money_to_words(amount, code):
    rubles_num_in_words = numeral.in_words(amount)
    rubles = numeral.choose_plural(amount, CURRENCY_RU[code])
    copek_num = round(amount - amount)
    copek = numeral.choose_plural(int(copek_num), CURRENCY_CENTS_RU[code]) if code in CURRENCY_CENTS_RU else ''
    if copek:
        return ("%s %s %02d %s")%(rubles_num_in_words, rubles, copek_num, copek)
    else:
        return ("%s %s")%(rubles_num_in_words, rubles)
Beispiel #3
0
 def processing(self):
     """
     Финальный процессинг через eval всего выражения + вывод
     """
     n = self.collectored_numbers
     result = str(eval(n[0] + self.operation + n[1]))
     operation = self.r_operations_list[self.operation]
     abs_result = numeral.in_words(float(result))
     print("Число №1: " + n[0] + "\nЧисло №2: " + n[1])
     print("Операция: " + operation + "\nРезультат в виде числа: " + result)
     print("Результат прописью: " + abs_result + "\n")
Beispiel #4
0
def money_to_words(amount, code):
    rubles_num_in_words = numeral.in_words(amount)
    rubles = numeral.choose_plural(amount, CURRENCY_RU[code])
    copek_num = round(amount - amount)
    copek = numeral.choose_plural(
        int(copek_num),
        CURRENCY_CENTS_RU[code]) if code in CURRENCY_CENTS_RU else ''
    if copek:
        return ("%s %s %02d %s") % (rubles_num_in_words, rubles, copek_num,
                                    copek)
    else:
        return ("%s %s") % (rubles_num_in_words, rubles)
Beispiel #5
0
def to_grn(amount):
    if amount:
        cash_d = math.modf(amount)
        if round(cash_d[0], 2) != 0.0:
            d = int(round(cash_d[0], 2) * 100)
            if d < 10:
                d = u"0%s" % d
            else:
                d = u"%s" % d
        else:
            d = u"00"
        d += u" коп."
        return u"{0} грн. {1}".format(numeral.in_words(int(cash_d[1])), d)
    else:
        return '-'
def in_words(amount, gender=None):
    """
    In-words representation of amount.

    Parameter is a gender: MALE, FEMALE or NEUTER

    Examples::
        {{ some_int|in_words }}
        {{ some_other_int|in_words:FEMALE }}
    """
    try:
        res = numeral.in_words(amount, getattr(numeral, str(gender), None))
    except Exception, err:
        # because filter must die silently
        res = default_value % {'error': err, 'value': str(amount)}
Beispiel #7
0
def in_words(amount, gender=None):
    """
    In-words representation of amount.

    Parameter is a gender: MALE, FEMALE or NEUTER

    Examples::
        {{ some_int|in_words }}
        {{ some_other_int|in_words:FEMALE }}
    """
    try:
        res = numeral.in_words(amount, getattr(numeral, str(gender), None))
    except Exception, err:
        # because filter must die silently
        res = default_value % {'error': err, 'value': str(amount)}
Beispiel #8
0
def in_words(amount, gender=None, case=numeral.NOMINATIVE):
    """
    In-words representation of amount.

    Parameter is a gender: MALE, FEMALE or NEUTER

    Examples::
        {{ some_int|in_words }}
        {{ some_other_int|in_words:FEMALE }}
    """
    try:
        res = numeral.in_words(amount, getattr(numeral, str(gender), None), case)
    except Exception as err:
        # because filter must die silently
        res = default_value % {"error": err, "value": str(amount)}
    return res
Beispiel #9
0
def in_words(amount, gender=None):
    """
    In-words representation of amount.

    Parameter is a gender: MALE, FEMALE or NEUTER

    Examples::
        {{ some_int|in_words }}
        {{ some_other_int|in_words:FEMALE }}
    """
    try:
        ures = numeral.in_words(amount, getattr(numeral, str(gender), None))
        res = pseudo_str(ures, encoding, default_value)
    except Exception, err:
        # because filter must die silently
        res = default_value % {"error": err, "value": str(amount)}
Beispiel #10
0
    def printToWord(self):
            ### Определение переменных для замены в word документе
        num_dogovor = self.lineEdit_NumDogovor.text() # Номер договора
        receipt = self.lineEdit_NumReceipt.text() # Номер квитанции
        fio = self.lineEdit_Fio.text() # ФИО пациента
        fio_short = self.shorten_to_initials(self.lineEdit_Fio.text()) # Фамилия и инициалы пациента
        document_name = self.comboBox_Documents.currentText() # Название документа удостоверяющего личность
        doc_number = self.lineEdit_NumDoc.text() # № документа удостоверяющего личность
        address = self.lineEdit_Address.text() # Адрес
        usluga = self.comboBox_Usluga.currentText() # Название услуги
        summ = self.lineEdit_PriceUsluga.text() # Сумма
        summ_word = numeral.in_words(int(summ)) # Сумма прописью
        date_mini = dt.ru_strftime('%d.%m.%Y') # Форматированные текущая дата 01.01.2020
        date_full = dt.ru_strftime('%d %B %Y', inflected=True) # Форматированные текущая дата 01 января 2020

            ### Формирование и сохранение документа word
        doc_name = '{}_{}_{}_{}'.format(fio, date_full, num_dogovor, receipt) # Формирование имени документа ФИО_Дата.docx
        template = r"res\usluga_template.docx"
        document = MailMerge(template)
        #print(document.get_merge_fields()) # Какие поля используются в шаблоне
        document.merge(
            num_dogovor=num_dogovor,
            receipt = receipt,
            fio=fio,
            fio_short=fio_short,
            document=document_name,
            doc_number=doc_number,
            address=address,
            usluga=usluga,
            summ=summ,
            summ_word = summ_word,
            date_full = date_full,
            date_mini = date_mini,
        )
        document.write("docx\{}.docx".format(doc_name,))
        os.startfile("docx\{}.docx".format(doc_name,)) # Запуск word документа и печать - os.startfile("res\generated_usluga.docx",  "print")
Beispiel #11
0
 def _get_amount_items_in_words(self):
     amount = len(self.move_lines)
     self.amount_items_in_words = numeral.in_words(int(amount))
Beispiel #12
0
# -*- coding: utf-8 -*-
from pytils.numeral import in_words
print in_words(21)
Beispiel #13
0
    # pytils всегда возвращает юникод (строка в Py3.x)
    # обычно это ОК выводить юникод в терминал
    # но если это неинтерактивный вывод
    # (например, использования модуля subprocess)
    # то для Py2.x нужно использовать перекодировку в utf-8
    from pytils.third import six
    if six.PY3:
        out = s
    else:
        out = s.encode('UTF-8')
    print(out)


# in_words нужен для представления цифр словами

print_(numeral.in_words(12))
#-> двенадцать

# вторым параметром можно задать пол:
# мужской=numeral.MALE, женский=numeral.FEMALE, срелний=numeral.NEUTER (по умолчанию -- мужской)
print_(numeral.in_words(21))
#-> двадцать один

# можно передавать неименованным параметром:
print_(numeral.in_words(21, numeral.FEMALE))
#-> двадцать одна

# можно именованным
print_(numeral.in_words(21, gender=numeral.FEMALE))
#-> двадцать одна
print_(numeral.in_words(21, gender=numeral.NEUTER))
Beispiel #14
0
 def get_count_stock_moves_in_text(self, picking_id):
     picking = self.pool.get('m15').browse(self.cr, self.uid, picking_id)
     count = len(picking.move_lines)
     return numeral.in_words(count, numeral.NEUTER)
Beispiel #15
0
 def get_price_in_text(self, picking_id):
     sum_all=0.0
     picking = self.pool.get('m15').browse(self.cr, self.uid, picking_id)
     for move in picking.move_lines:
         sum_all=sum_all + move.price_all     
     return numeral.in_words(int(sum_all))  
    def generate(self, cr, user, ids, context=None):
        contract_id = ids
        if isinstance(ids, (list, tuple)):
            contract_id = ids[0]
        contract = self.read(cr, user, contract_id, [])

        service = self.pool.get('brief.services.stage').read(cr, user, contract['service_id'][0], ['template_id'])
        if service['template_id']:
            template = self.pool.get('ir.attachment').read(cr, user, service['template_id'][0],
                                                           ['store_fname', 'parent_id'])
            dbro = self.pool.get('document.directory').read(cr, user, template['parent_id'][0], ['storage_id'], context)
            storage = self.pool.get('document.storage').read(cr, user, dbro['storage_id'][0], ['path'])

            filepath = os.path.join(storage['path'], template['store_fname'])
            file_data = open(filepath, 'rb').read()
            template_io = StringIO()
            template_io.write(file_data)
            serializer = OOSerializer(template_io)
            basic = Template(source=template_io, serializer=serializer)

            d = datetime.strptime(contract['contract_date'], '%Y-%m-%d')
            date_str = dt.ru_strftime(u"%d %B %Y", d, inflected=True)
            if not contract['contract_number']:
                raise osv.except_osv('Договор', 'Необходимо ввести номер договора')
            if not contract['amount']:
                raise osv.except_osv('Договор', 'Необходимо ввести сумму договора')

            term = 7
            if contract['term'] == 'mounth':
                term = 30
            elif contract['term'] == 'year':
                term = 365
            else:
                term = 0
            o = {
                'name': u'-',
                'contract_number': contract['contract_number'],
                'contract_date': date_str,
                'doc_type': contract['doc_type_id'][1] if contract['doc_type_id'] else '-',
                'responsible_id': contract['responsible_id'][1] if contract['responsible_id'] else '-',
                #  Название баннерной или тизерной сети
                'web': 'test',

                #  стоимость услуг цифры
                'cost_num': contract['amount'],
                #  стоимость услуг слова
                'cost_word': numeral.in_words(float(contract['amount'])),

                #  срок предоставления услуги в фомате 30 (тридцать)
                'term': term,


                #  наш генеральный директор
                'our_gen_dir': u'-',
                #  название фирмы
                'our_firm_name': u'-',
                #  наш Юридический адрес
                'our_address': u'-',
                #  Фактический адрес,адрес почтовой корреспонденции наш
                'our_fact_address': u'-',
                #  ИНН / КПП наш
                'our_inn': u'-',
                #  ОГРН наш
                'our_ogrn': u'-',
                #  Код ОКПО наш
                'our_okpo': u'-',
                #  банк наш
                'our_bank': u'-',
                #  к/с наш
                'our_ks': u'-',
                #  р/с наш
                'our_rs': u'-',
                #  бик наш
                'our_bik': u'-',
                #  Тел/факс наш
                'our_phone': u'-',
                #  Web сайт почта наш
                'our_site': u'-',

                #  заказчика e-mail
                'partner_mail': u'-',
                #  название фирмы заказчика
                'partner_firm_name': u'-',
                #  Юридический адрес партнера
                'partner_address': u'-',
                #  Фактический адрес,адрес почтовой корреспонденции партнера
                'partner_fact_address': u'-',
                #  ИНН / КПП партнера
                'partner_inn': u'-',
                #  ОГРН партнера
                'partner_ogrn': u'-',
                #  Код ОКПО партнера
                'partner_okpo': u'-',
                #  банк партнера
                'partner_bank': u'-',
                #  к/с партнера
                'partner_ks': u'-',
                #  р/с партнера
                'partner_rs': u'-',
                #  бик партнера
                'partner_bik': u'-',
                'partner_kpp': u'-',
                #  Тел/факс партнера
                'partner_phone': u'-',
                #  Web сайт почта партнера
                'partner_site': u'-',
            }

            if contract['bank_id']:
                bank = self.pool.get('res.partner.bank').read(cr, 1, contract['bank_id'][0], [])
                o.update({
                    'partner_mail': bank['email'] or u'-',
                    'partner_site': bank['site'] or u'-',
                    'partner_firm_name': bank['fullname'] or u'-',
                    'partner_address': self.pool.get('res.partner.bank.address').get_address(cr, contract['bank_id'][0]) or u'-',
                    'partner_fact_address': self.pool.get('res.partner.bank.address').get_address(cr, contract['bank_id'][0], 'fa') or u'-',
                    'partner_inn': bank['inn'] or u'-',
                    'partner_kpp': bank['kpp'] or u'-',
                    'partner_ogrn': bank['ogrn'] or u'-',
                    'partner_okpo': bank['okpo'] or u'-',
                    'partner_bank': bank['bank'] or u'-',
                    'partner_ks': bank['correspondent_account'] or u'-',
                    'partner_rs': bank['current_account'] or u'-',
                    'partner_bik': bank['bik'] or u'-',
                    'partner_phone': bank['phone'] or u'-',
                })

            if contract['account_id']:
                account = self.pool.get('account.account').read(cr, 1, contract['account_id'][0], [])
                o.update({
                    'our_gen_dir': account['responsible'] or u'-',
                    'our_firm_name': account['full'] or u'-',
                    'our_address': account['address'] or u'-',
                    'our_fact_address': account['address'] or u'-',
                    'our_inn': account['inn'] or u'-',
                    'our_kpp': account['kpp'] or u'-',
                    'our_ogrn': u'1127747081406',
                    'our_okpo': u'13183255',
                    'our_bank': account['bank'] or u'-',
                    'our_ks': account['bank_number'] or u'-',
                    'our_rs': account['account_number'] or u'-',
                    'our_bik': account['bik'] or u'-',
                    'our_phone': account['phone'] or u'-',
                    'our_site': u'UpSale.ru, [email protected]',
                })

            filename = '{0} {1} {2}'.format(
                contract['contract_number'].encode('utf-8'),
                contract['partner_id'][1].encode('utf-8'),
                contract['service_id'][1].encode('utf-8'), )

            #data = [(k, v.encode('cp1251')) for k, v in o.iteritems() if isinstance(v, unicode)]

            odt_file = os.path.join(storage['path'], 'tmp.odt')
            file(odt_file, 'wb').write(basic.generate(o=o).render().getvalue())

            doc_id = self.pool.get('ir.attachment').create(cr, user, {
                'name': '{0}.odt'.format(filename, ),
                'datas': base64.b64encode(open(odt_file, 'rb').read()),
                'datas_fname': '{0}.odt'.format(filename, ),
                'res_model': self._name,
                'res_id': contract['id']
            })
            self.write(cr, user, [contract['id']], {'doc_id': doc_id})
        return True
Beispiel #17
0
 def in_words(self, number):
     return numeral.in_words(number)
Beispiel #18
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from pytils import numeral

# in_words нужен для представления цифр словами

print numeral.in_words(12)
#-> двенадцать

# вторым параметром можно задать пол:
# мужской=numeral.MALE, женский=numeral.FEMALE, срелний=numeral.NEUTER (по умолчанию -- мужской)
print numeral.in_words(21)
#-> двадцать один

# можно передавать неименованным параметром:
print numeral.in_words(21, numeral.FEMALE)
#-> двадцать одна

# можно именованным
print numeral.in_words(21, gender=numeral.FEMALE)
#-> двадцать одна
print numeral.in_words(21, gender=numeral.NEUTER)
#-> двадцать одно

# можно и дробные
print numeral.in_words(12.5)
#-> двенадцать целых пять десятых

# причем "пишутся" только значимые цифры
print numeral.in_words(5.30000)
Beispiel #19
0
def in_words(self, number):
    return numeral.in_words(number)
Beispiel #20
0
    # pytils всегда возвращает юникод (строка в Py3.x)
    # обычно это ОК выводить юникод в терминал
    # но если это неинтерактивный вывод
    # (например, использования модуля subprocess)
    # то для Py2.x нужно использовать перекодировку в utf-8
    from pytils.third import six
    if six.PY3:
        out = s
    else:
        out = s.encode('UTF-8')
    print(out)


# in_words нужен для представления цифр словами

print_(numeral.in_words(12))
#-> двенадцать

# вторым параметром можно задать пол:
# мужской=numeral.MALE, женский=numeral.FEMALE, срелний=numeral.NEUTER (по умолчанию -- мужской)
print_(numeral.in_words(21))
#-> двадцать один

# можно передавать неименованным параметром:
print_(numeral.in_words(21, numeral.FEMALE))
#-> двадцать одна

# можно именованным
print_(numeral.in_words(21, gender=numeral.FEMALE))
#-> двадцать одна
print_(numeral.in_words(21, gender=numeral.NEUTER))
Beispiel #21
0
 def _get_amount_items_in_words(self):
     amount = len(self.move_lines)
     self.amount_items_in_words = numeral.in_words(int(amount))