def test_create_invoice(self): sale = Sale() sale.timestamp = datetime.datetime(2015, 1, 1, 0, 0, 0) sale.client_id = 'NA' sale.seller_codename = 'boya' sale.seller_ruc = '123' sale.seller_inv_uid = 1 sale.invoice_code = '123' sale.pretax_amount_usd = Decimal('123') sale.tax_usd = Decimal('123') sale.status = Status.NEW sale.user_id = 'yu' sale.payment_format = PaymentFormat.CASH result = self.test_app.post('/import/client_sale', params=json_dumps(sale)) self.assertEquals(200, result.status_code) sales = list(self.dbapi.search(Sale)) self.assertEquals(1, len(sales)) self.assertEquals(sale.timestamp, sales[0].timestamp) self.assertEquals(Status.NEW, sales[0].status) result = self.test_app.delete('/import/client_sale', params=json_dumps(sale)) self.assertEquals(200, result.status_code) self.assertEquals(1, result.json['deleted']) sales = list(self.dbapi.search(Sale)) self.assertEquals(1, len(sales)) self.assertEquals(sale.timestamp, sales[0].timestamp) self.assertEquals(Status.DELETED, sales[0].status)
def invmeta_to_sale(self, meta): sale = Sale() sale.timestamp = meta.timestamp sale.client_id = meta.client.codigo sale.seller_ruc = meta.almacen_ruc sale.seller_inv_uid = meta.uid sale.invoice_code = meta.codigo sale.pretax_amount_usd = Decimal(meta.subtotal - (meta.discount or 0)) / 100 sale.tax_usd = Decimal(meta.tax or 0) / 100 sale.status = Status.NEW sale.user_id = meta.user sale.payment_format = meta.payment_format sale.seller_codename = self.codename if getattr(meta, 'almacen_id', None): meta.payment_format = 'None' return sale