Exemple #1
0
    def get_schema(self, submitted):
        """
        Return the schema for CancelInvoice add/edition

        :param dict submitted: The submitted datas
        :returns: A colander.Schema
        """
        excludes = ('status', 'children', 'parent',)
        return get_add_edit_cancelinvoice_schema(excludes=excludes)
Exemple #2
0
def test_cancelinvoice_invoice_id():
    schema = get_add_edit_cancelinvoice_schema(includes=('invoice_id',))
    schema = schema.bind()

    value = {'invoice_id': 5}
    assert schema.deserialize(value) == value

    value = {}
    with pytest.raises(colander.Invalid):
        schema.deserialize(value)
Exemple #3
0
class CancelInvoiceSetTreasuryiew(BaseEditView):
    """
    View used to set treasury related informations

    context

        An invoice

    perms

        set_treasury.invoice
    """
    factory = CancelInvoice
    schema = get_add_edit_cancelinvoice_schema(
        includes=('financial_year', ),
        title=u"Modifier l'année fiscale de référence du numéro de facture",
    )

    def redirect(self):
        return HTTPFound(
            self.request.route_path("/invoices/{id}.html",
                                    id=self.context.id,
                                    _anchor="treasury"))

    def before(self, form):
        BaseEditView.before(self, form)
        self.request.actionmenu.add(
            ViewLink(
                label=u"Revenir à la facture",
                path="/invoices/{id}.html",
                id=self.context.id,
                _anchor="treasury",
            ))

    @property
    def title(self):
        return u"Facture numéro {0} en date du {1}".format(
            self.context.official_number,
            format_date(self.context.date),
        )
Exemple #4
0
class CancelInvoiceAdminView(BaseEditView):
    factory = CancelInvoice
    schema = get_add_edit_cancelinvoice_schema(isadmin=True)
Exemple #5
0
def test_cancelinvoice(request_with_config, config, cancelinvoice, tva, unity):
    schema = get_add_edit_cancelinvoice_schema()
    request_with_config.context = cancelinvoice
    schema = schema.bind(request=request_with_config)

    value = {
        "name": u"Avoir 1",
        'date': datetime.date.today().isoformat(),
        'address': u"adress",
        "description": u"description",
        "payment_conditions": u"Test",
        'invoice_id': 5,
        'financial_year': 2017,
        'line_groups': [
            {
                'task_id': 5,
                'title': u"title",
                'description': u"description",
                "order": 5,
                'lines': [
                    {
                        'cost': 15,
                        'tva': 20,
                        'description': u'description',
                        'unity': u"Mètre",
                        "quantity": 5,
                        "order": 2,
                    }
                ]
            }
        ],
    }
    expected_value = {
        "name": u"Avoir 1",
        'date': datetime.date.today(),
        'address': u"adress",
        "description": u"description",
        "payment_conditions": u"Test",
        'invoice_id': 5,
        'financial_year': 2017,
        'line_groups': [
            {
                'task_id': 5,
                'title': u"title",
                'description': u"description",
                "order": 5,
                'lines': [
                    {
                        'cost': 1500000,
                        'tva': 2000,
                        'description': u'description',
                        'unity': u"Mètre",
                        "quantity": 5.0,
                        "order": 2,
                    }
                ]
            }
        ],
    }
    # Check those values are valid
    result = schema.deserialize(value)
    for key, value in expected_value.items():
        assert result[key] == value