def post(self): data = PayProducts.parser.parse_args() try: for payed_product in data.get('products'): sold_product = SoldProductModel.find_by_id( payed_product.id['id']) sold_product.payment_pending = False sold_product.update_to_db() except: return { "message": "an error occurred while updating the sales" }, 500 category = CategoryModel.find_by_name('pago_provedor') if not category: category = CategoryModel.create_category('pago_provedor') transaction = TransactionModel(transaction_id=None, amount=data.get('total'), date=str(data.get('date'))[:19], description=data.get('description'), is_expense=True, currency_id=data.get('currency_id'), category_id=category.category_id, method=data.get('method'), exchange=data.get('exchange')) transaction.save_to_db() return transaction.json(), 201
def post(self): json_data = request.get_json(force=True) total = 0 sold_products = [] for payment in json_data.get('payments'): if json_data.get('credit_charge'): charge = json_data.get('credit_charge') else: charge = 1 total += payment.get('amount') * payment.get('exchange') * charge if not Sale.are_equal(total, json_data.get('total')): return {'message': 'Amounts are not correct'} if json_data.get('seller_id'): user_id = json_data.get('seller_id') else: user_id = get_jwt_identity() sale = SaleModel(total=json_data.get('total'), user_id=user_id, date=json_data.get('date'), sale_id=json_data.get('sale_id'), client_id=json_data.get('client_id'), promoter_id=json_data.get('promoter_id'), promoter_commission=json_data.get('promoter_commission'), user_commission=json_data.get('seller_commission'), discount=json_data.get('discount')) sale.save_to_db() for product in json_data.get('products'): sold_product = SoldProductModel(product_id=product.get('product_id'), price=product.get('price'), adults=product.get('adults'), children=product.get('children'), date=product.get('date'), babies=product.get('babies'), transfer=product.get('transfer'), sale_id=sale.sale_id, payment_pending=True) sold_product.save_to_db() sold_products.append(sold_product) prod_sold_msg = prepare_provider_email(product, sale) result = send_email(sold_product.product.provider.email, prod_sold_msg) category = CategoryModel.find_by_name('venta') if not category: category = CategoryModel.create_category('venta') for payment in json_data.get('payments'): transaction = TransactionModel(transaction_id=None, amount=payment.get('amount'), date=str(sale.date)[:19], description=payment.get('description'), is_expense=False, category_id=category.category_id, sale_id=sale.sale_id, exchange=payment.get('exchange'), method=payment.get('method'), currency_id=payment.get('currency_id')) transaction.save_to_db() sale_msg = prepare_sale_email(sale, sold_products) result_sale = send_email(sale.client.email, sale_msg) receipt_msg = prepare_receipt_email(sale, sold_products) result_receipt = send_email(sale.client.email, receipt_msg) json_sale = sale.json() json_sale['sale_email_sent'] = result_sale json_sale['receipt_email_sent'] = result_receipt return json_sale, 201