Commit cc119079 by 夏超

[fix] 修复问题

parent 5fd7f9f2
from . import models
from . import controller
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': '生产-收入支出',
'depends': ['base', 'roke_mes_production'],
'author': 'www.rokedata.com',
'website': 'http://www.rokedata.com',
'description': """
""",
'data': [
'security/ir.model.access.csv',
'views/roke_product_income_expense.xml',
'views/template.xml',
],
'demo': [
# 'data/demo.xml',
],
'qweb':[
'static/src/xml/roke_product_income_expense_iframe.xml'
],
'application': True,
'installable': True,
'auto_install': False,
}
# -*- coding: utf-8 -*-
from . import main
import datetime
from odoo import http, tools
import os
from jinja2 import FileSystemLoader, Environment
import logging
_logger = logging.getLogger(__name__)
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
templateloader = FileSystemLoader(searchpath=BASE_DIR + "/static/src/js")
env = Environment(loader=templateloader)
class ProductIncomeExpenseIframe(http.Controller):
@http.route("/roke/pub/product_income_expense_iframe", type="http", auth='user', cors='*', csrf=False)
def product_income_expense_iframe(self, **kwargs):
_self = http.request
user_id = _self.env.user.id
user_name = _self.env.user.name
template = env.get_template('index.html')
data = {"code": 1, "message": "请求通过", "user_id": user_id, "user_name": user_name}
return template.render(data)
@http.route("/roke/product/product_income_expense/create", type="json", auth='none', cors='*', csrf=False)
def product_income_expense_create(self):
_self = http.request
data_list = _self.jsonrequest.get("data_list", [])
return_data = []
for v in data_list:
data = {
"business_date": v.get("business_date", False),
"abstract": v.get("abstract", False),
"income": v.get("income", False),
"expenditure": v.get("expenditure", False),
"balance": v.get("balance", False)
}
result = _self.env(user=v.get("user_id"))["roke.product.income.expense"].create(data)
return_data.append({
"id": result.id,
"business_date": result.business_date and result.business_date.strftime('%Y-%m-%d'),
"abstract": result.abstract or "",
"income": result.income or 0,
"expenditure": result.expenditure or 0,
"balance": result.balance or 0,
"user_name": result.create_uid.name or "",
"create_date": (result.create_date + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'),
})
return {"code": 0, "message": "创建成功!", "data": return_data}
@http.route("/roke/product/product_income_expense/get", type="json", auth='none', cors='*', csrf=False)
def product_income_expense_get_list(self):
_self = http.request
limit = _self.jsonrequest.get("limit", 20)
page = _self.jsonrequest.get("page", 1)
data_list = _self.env["roke.product.income.expense"].sudo().search([], limit=limit, offset=(page - 1) * limit,
order="create_date desc")
count = _self.env["roke.product.income.expense"].sudo().search_count([])
data = []
for v in data_list:
data.append({
"id": v.id,
"business_date": v.business_date and v.business_date.strftime('%Y-%m-%d'),
"abstract": v.abstract or "",
"income": v.income or 0,
"expenditure": v.expenditure or 0,
"balance": v.balance or 0,
"user_name": v.create_uid.name or "",
"create_date": (v.create_date + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'),
})
return {"code": 0, "message": "获取成功!", "data": data, "count": count}
@http.route("/roke/product/product_income_expense/delete", type="json", auth='none', cors='*', csrf=False)
def product_income_expense_delete(self):
_self = http.request
del_id = _self.jsonrequest.get("del_id", False)
if not del_id:
return {"code": 1, "message": "删除失败,没找到对应数据。"}
data = _self.env["roke.product.income.expense"].sudo().search([("id", "=", del_id)])
if not data:
return {"code": 1, "message": "删除失败,没找到对应数据。"}
data.unlink()
return {"code": 0, "message": "删除成功!"}
from . import product_income_expense
import calendar
import requests
import datetime as date_time
from datetime import datetime
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class ProductIncomeExpense(models.Model):
_name = "roke.product.income.expense"
business_date = fields.Date(string="业务日期")
abstract = fields.Text(string="摘要")
income = fields.Float(string="收入")
expenditure = fields.Float(string="支出")
balance = fields.Float(string="结余")
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_roke_product_income_expense,roke_product_income_expense,model_roke_product_income_expense,base.group_system,1,1,1,1
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
odoo.define('roke_product_income_expense.product_income_expense_iframe', function (require) {
"use strict";
var core = require('web.core');
var session = require('web.session');
var AbstractAction = require('web.AbstractAction');
var ProductIncomeExpenseIFrame = AbstractAction.extend({
template: 'ProductIncomeExpenseIFrame',
init: function (parent, action, params) {
this.add_sum = 0
this.key = ""
this.old_data = {}
this.action_controller = `${action.params.controller}?user_id=${session.uid}&user_name=${session.name}`
return this._super.apply(this, arguments);
},
});
core.action_registry.add('product_income_expense_iframe', ProductIncomeExpenseIFrame);
return ProductIncomeExpenseIFrame;
});
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="ProductIncomeExpenseIFrame">
<iframe id="ProductIncomeExpenseIFrame" t-attf-src="#{widget.action_controller}" style="width: 100%;height: 100%;border: none;"></iframe>
</t>
</templates>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="roke_product_income_expense_iframe_action" model="ir.actions.client">
<field name="name">财务收支记录</field>
<field name="tag">product_income_expense_iframe</field>
<field name="target">current</field>
<field name="params" eval="{'controller': '/roke/pub/product_income_expense_iframe'}"/>
</record>
<menuitem
id="roke_product_income_expense_iframe_menu"
name="收入支出表"
action="roke_product_income_expense_iframe_action"
parent="roke_mes_production.roke_production_business_menu"
sequence="60"
groups="base.group_system"
/>
</odoo>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--id 为自定义,唯一标识符 ,inherit_id 是继承自哪里,为固定写法-->
<template id="product_income_expense_id" inherit_id="web.assets_backend">
<!--我们用xpath 找到我们要放置的地方-->
<xpath expr="." position="inside">
<script type="text/javascript" src="/roke_product_income_expense/static/src/js/roke_product_income_expense_iframe.js"/>
</xpath>
</template>
</odoo>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment