浏览代码

销售订单

huwhois 4 年之前
父节点
当前提交
b59c70bc3d

+ 8 - 8
app/controller/Base.php

@ -14,17 +14,17 @@ class Base extends BaseController
14 14
    {
15 15
        parent::__construct($app);
16 16
17
        //判断是否登陆
18
        if (!session('?uid')) {
19
            $this->error('您还没有登录, 请登录', '/login');
20
        }
17
        // //判断是否登陆
18
        // if (!session('?uid')) {
19
        //     $this->error('您还没有登录, 请登录', '/login');
20
        // }
21 21
22
        // 登录用户信息
23
        $this->uid = session('uid');
24
        $this->username = session('username');
22
        // // 登录用户信息
23
        // $this->uid = session('uid');
24
        // $this->username = session('username');
25 25
                
26 26
        //记录日志
27
        $this->addLog();
27
        // $this->addLog();
28 28
    }
29 29
30 30
    /**

+ 3 - 3
app/controller/Login.php

@ -30,9 +30,9 @@ class Login extends BaseController
30 30
                $this->error('用户名/密码/验证码不能为空');
31 31
            }
32 32
33
            // if (!captcha_check($captcha)) {
34
            //     $this->error('验证码不正确', '/login');
35
            // }
33
            if (!captcha_check($captcha)) {
34
                $this->error('验证码不正确', '/login');
35
            }
36 36
37 37
            $info = $this->user_model->where('username', $username)->find();
38 38

+ 85 - 0
app/controller/SaleCompany.php

@ -0,0 +1,85 @@
1
<?php
2
namespace app\controller;
3
4
use think\App;
5
use think\facade\View;
6
use app\model\SaleCompany as CompanyModel;
7
8
class SaleCompany extends Base
9
{
10
    protected $model;
11
12
    public function __construct(App $app)
13
    {
14
        parent::__construct($app);
15
        $this->model = new CompanyModel();
16
    }
17
18
    public function index($key="")
19
    {
20
        $map = [];
21
        if ($key) {
22
            $map[] = ['name','LIKE', '%'.$key.'%'];
23
        }
24
        // var_dump($map);
25
        // exit;
26
        
27
        $list = $this->model->where($map)->paginate();
28
29
        $page = $list->render();
30
31
        return View::fetch('',[
32
            'list' => $list,
33
            'page' => $page,
34
            'key' => $key
35
        ]);
36
    }
37
38
    public function save()
39
    {
40
        if ($this->request->isPost()) {
41
            $param = $this->request->param();
42
            
43
            try {
44
                if ($param['id']) {
45
                    $seller = $this->model->find(intval($param['id']));
46
                } else {
47
                    $seller = new CompanyModel();
48
                    $seller->create_time = time();
49
                }
50
                $seller->name = $param['name'];
51
                $seller->department_id = $param['department_id'];
52
                
53
                $seller->save();
54
            } catch (\Exception $e) {
55
                $this->error($e->getMessage());
56
            }
57
58
            $this->success('操作成功', 'sale_seller/index');
59
        } else {
60
            $id = $this->request->has('id','route') ? intval($this->request->param('id')) : 0;
61
62
            if ($id) {
63
                $data = $this->model->find($id);
64
            } else {
65
                $data = [
66
                    'id' => 0,
67
                    'name' => '',
68
                    'department_id' => 1,
69
                ];
70
            }
71
            return View::fetch('', [
72
                'data' => $data,
73
            ]);
74
        }
75
    }
76
77
    public function delete($id)
78
    {
79
        if ($this->model->destroy($id)) {
80
            return json(['code'=>2]);
81
        } else {
82
            return json(['code'=>0]);
83
        }
84
    }
85
}

+ 175 - 0
app/controller/SaleOrder.php

@ -0,0 +1,175 @@
1
<?php
2
namespace app\controller;
3
4
use think\App;
5
use think\facade\View;
6
use app\model\SaleOrder as OrderModel;
7
use app\model\SaleOrderItem as OrderItemModel;
8
use app\model\SaleOrderDetails as OrderDetailsModel;
9
use app\model\SaleDepartment as DepartmentModel;
10
use think\facade\Db;
11
12
class SaleOrder extends Base
13
{
14
    protected $model;
15
    protected $itemModel;
16
    protected $detailsModel;
17
18
    public function __construct(App $app)
19
    {
20
        parent::__construct($app);
21
        $this->model = new OrderModel();
22
        $this->itemModel = new OrderItemModel();
23
        $this->detailsModel = new OrderDetailsModel();
24
    }
25
26
    public function index($month=0, $key="")
27
    {
28
        $map = [];
29
        if ($key) {
30
            $map[] = ['company_name','LIKE', '%'.$key.'%'];
31
        }
32
        if ($month) {
33
            $map[] = ['month','=', $month];
34
        }
35
36
        $limit = $this->request->cookie('limit') ? : 50;
37
38
        $list = $this->detailsModel->where($map)->paginate([
39
            'list_rows' => $limit,
40
            'query' => $this->request->param()
41
        ]);
42
        // 未取消合同统计
43
        $map[] = ['status', '=', 0];
44
        $total_contract_money = $this->detailsModel->where($map)->sum('contract_money');
45
        $total_payment = $this->detailsModel->where($map)->sum('payment');
46
47
        $page = $list->render();
48
49
        return View::fetch('',[
50
            'list' => $list,
51
            'page' => $page,
52
            'key' => $key,
53
            'month' => $month,
54
            'limit' => $limit,
55
            'total_contract_money' => round($total_contract_money, 2),
56
            'total_payment' => round($total_payment, 2)
57
        ]);
58
    }
59
60
    public function save()
61
    {
62
        $departmentModel = new DepartmentModel();
63
        $departments = $departmentModel->column('name', 'id');
64
        if ($this->request->isPost()) {
65
            $param = $this->request->param();
66
            
67
            try {
68
                if ($param['id']) {
69
                    $seller = $this->model->find(intval($param['id']));
70
                } else {
71
                    $seller = new OrderModel();
72
                    $seller->create_time = time();
73
                }
74
                $seller->name = $param['name'];
75
                $seller->department_id = $param['department_id'];
76
                $seller->department_name = $departments[$param['department_id']];
77
                
78
                $seller->save();
79
            } catch (\Exception $e) {
80
                $this->error($e->getMessage());
81
            }
82
83
            $this->success('操作成功', 'sale_seller/index');
84
        } else {
85
            $id = $this->request->has('id','route') ? intval($this->request->param('id')) : 0;
86
87
            if ($id) {
88
                $data = $this->model->find($id);
89
            } else {
90
                $data = [
91
                    'id' => 0,
92
                    'name' => '',
93
                    'department_id' => 1,
94
                ];
95
            }
96
            return View::fetch('', [
97
                'data' => $data,
98
                'departments' => $departments
99
            ]);
100
        }
101
    }
102
103
    public function delete($id)
104
    {
105
        if ($this->model->destroy($id)) {
106
            return json(['code'=>2]);
107
        } else {
108
            return json(['code'=>0]);
109
        }
110
    }
111
112
    public function item($order_id)
113
    {
114
        $list = $this->itemModel->where('order_id', $order_id)->select();
115
        $orderInfo = $this->model->field('id,no,contract_no,company_name,contract_time')->find($order_id);
116
        return View::fetch('',[
117
            'list' => $list,
118
            'order_id' => $order_id,
119
            'orderInfo' => $orderInfo
120
        ]);
121
    }
122
123
    public function itemInfo($id)
124
    {
125
        $data = $this->itemModel->find($id);
126
        if ($this->request->isAjax()) {
127
            return json(['code'=>2, 'data'=>$data]);
128
        }
129
    }
130
131
    public function itemSave()
132
    {
133
        if ($this->request->isAjax()) {
134
            $param = $this->request->param();
135
            // var_dump($param);
136
            // exit;
137
            try {
138
                if ($param['id']) {
139
                    $seller = $this->itemModel->find(intval($param['id']));
140
                } else {
141
                    $seller = new OrderItemModel();
142
                }
143
                $seller->order_id = intval($param['order_id']);
144
                $seller->goods_category = $param['goods_category'];
145
                $seller->goods_name = $param['goods_name'];
146
                $seller->goods_price = $param['goods_price'];
147
                $seller->sales_amount = $param['sales_amount'];
148
                $seller->sales_price = $param['sales_price'];
149
                $seller->actual_amount = $param['actual_amount'];
150
                $seller->actual_price = $param['actual_price'];
151
                $seller->agency = $param['agency'];
152
                $seller->fare = $param['fare'];
153
                $seller->type = intval($param['type']);
154
                $seller->remark = $param['remark'];
155
                
156
                $seller->save();
157
            } catch (\Exception $e) {
158
                // $this->error($e->getMessage());
159
                return json(['code'=>0, 'msg'=>$e->getMessage()]);
160
            }
161
            return json(['code'=>2]);
162
        }
163
    }
164
165
    public function itemDelete($id)
166
    {
167
        if ($this->request->isPost()) {
168
            if ($this->itemModel->destroy($id)) {
169
                return json(['code'=>2]);
170
            } else {
171
                return json(['code'=>0]);
172
            }
173
        }
174
    }
175
}

+ 77 - 0
app/controller/SaleSeller.php

@ -0,0 +1,77 @@
1
<?php
2
namespace app\controller;
3
4
use think\App;
5
use think\facade\View;
6
use app\model\SaleSeller as SaleSellerModel;
7
use app\model\SaleDepartment as DepartmentModel;
8
9
class SaleSeller extends Base
10
{
11
    protected $model;
12
13
    public function __construct(App $app)
14
    {
15
        parent::__construct($app);
16
        $this->model = new SaleSellerModel();
17
    }
18
19
    public function index()
20
    {
21
        $list = $this->model->select();
22
23
        return View::fetch('',['list'=>$list]);
24
    }
25
26
    public function save()
27
    {
28
        $departmentModel = new DepartmentModel();
29
        $departments = $departmentModel->column('name', 'id');
30
        if ($this->request->isPost()) {
31
            $param = $this->request->param();
32
            
33
            try {
34
                if ($param['id']) {
35
                    $seller = $this->model->find(intval($param['id']));
36
                } else {
37
                    $seller = new SaleSellerModel();
38
                    $seller->create_time = time();
39
                }
40
                $seller->name = $param['name'];
41
                $seller->department_id = $param['department_id'];
42
                $seller->department_name = $departments[$param['department_id']];
43
                
44
                $seller->save();
45
            } catch (\Exception $e) {
46
                $this->error($e->getMessage());
47
            }
48
49
            $this->success('操作成功', 'sale_seller/index');
50
        } else {
51
            $id = $this->request->has('id','route') ? intval($this->request->param('id')) : 0;
52
53
            if ($id) {
54
                $data = $this->model->find($id);
55
            } else {
56
                $data = [
57
                    'id' => 0,
58
                    'name' => '',
59
                    'department_id' => 1,
60
                ];
61
            }
62
            return View::fetch('', [
63
                'data' => $data,
64
                'departments' => $departments
65
            ]);
66
        }
67
    }
68
69
    public function delete($id)
70
    {
71
        if ($this->model->destroy($id)) {
72
            return json(['code'=>2]);
73
        } else {
74
            return json(['code'=>0]);
75
        }
76
    }
77
}

+ 6 - 0
app/model/SaleCompany.php

@ -0,0 +1,6 @@
1
<?php
2
namespace app\model;
3
4
class SaleCompany extends \think\Model
5
{
6
}

+ 6 - 0
app/model/SaleDepartment.php

@ -0,0 +1,6 @@
1
<?php
2
namespace app\model;
3
4
class SaleDepartment extends \think\Model
5
{
6
}

+ 6 - 0
app/model/SaleOrder.php

@ -0,0 +1,6 @@
1
<?php
2
namespace app\model;
3
4
class SaleOrder extends \think\Model
5
{
6
}

+ 6 - 0
app/model/SaleOrderDetails.php

@ -0,0 +1,6 @@
1
<?php
2
namespace app\model;
3
4
class SaleOrderDetails extends \think\Model
5
{
6
}

+ 6 - 0
app/model/SaleOrderItem.php

@ -0,0 +1,6 @@
1
<?php
2
namespace app\model;
3
4
class SaleOrderItem extends \think\Model
5
{
6
}

+ 6 - 0
app/model/SaleSeller.php

@ -0,0 +1,6 @@
1
<?php
2
namespace app\model;
3
4
class SaleSeller extends \think\Model
5
{
6
}

+ 1 - 1
config/captcha.php

@ -5,7 +5,7 @@
5 5
6 6
return [
7 7
    //验证码位数
8
    'length'   => 5,
8
    'length'   => 4,
9 9
    // 验证码字符集合
10 10
    'codeSet'  => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
11 11
    // 验证码过期时间

+ 10 - 0
route/app.php

@ -10,8 +10,18 @@
10 10
// +----------------------------------------------------------------------
11 11
use think\facade\Route;
12 12
13
Route::pattern([
14
    'name' => '\w+',
15
    'id'   => '\d+',
16
    'order_id'   => '\d+',
17
]);
18
13 19
Route::get('think', function () {
14 20
    return 'hello,ThinkPHP6!';
15 21
});
16 22
17 23
Route::get('hello/:name', 'index/hello');
24
25
Route::get('sale_seller/index', 'sale_seller/index');
26
Route::rule('sale_seller/save/[:id]', 'sale_seller/save');
27
Route::rule('sale_order/item/:order_id', 'sale_order/item');

+ 577 - 0
view/commission/input.html

@ -0,0 +1,577 @@
1
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
2
    <div class="modal-dialog" style="width:800px">
3
        <div class="modal-content">
4
            <div class="modal-header">
5
                <button type="button" class="close" aria-hidden="true" onclick="cel()">
6
                    &times;
7
                </button>
8
                <button type="button" class="btn btn-default btn-sm" aria-hidden="true" onclick="updatecahce()" style="float:right;margin-right: 30px;">
9
                    刷新销售数据
10
                </button>
11
                <h4 class="modal-title" id="myModalLabel">
12
                    数据录入
13
                </h4>
14
            </div>
15
            <div class="modal-body">
16
                <form role="form" id="market-form">
17
                    <input type="hidden" name="id" id="id" value="0">
18
                    <div class="row">
19
                        <div class="col-md-6">
20
                            <div class="form-group">
21
                                <label for="name">计提月份</label>
22
                                <select name="month" id="month" class="form-control">
23
                                    <?php
24
                                    foreach ($maonth_picker->monarr as $value) {
25
                                        if ($maonth_picker->cur_month == $value) {
26
                                            echo "<option value='$value' selected>$value</option>";
27
                                        } else {
28
                                            echo "<option value='$value'>$value</option>";
29
                                        }
30
                                    }
31
                                    ?>
32
                                </select>
33
                            </div>
34
                        </div>
35
                        <div class="col-md-6">
36
                            <div class="form-group">
37
                                <label for="name">公司名称</label>
38
                                <select class="selectpicker form-control" data-live-search="true" name="company" id="company">
39
                                    <option value="">公司名称</option>
40
                                    <?php
41
                                    foreach ($data_company as $company) {
42
                                    ?>
43
                                        <option value="<?php echo $company['name'] ?>"><?php echo $company['name'] ?></option>
44
                                    <?php
45
                                    }
46
                                    ?>
47
                                </select>
48
                            </div>
49
                        </div>
50
                    </div>
51
                    <div class="row">
52
                        <div class="col-md-12">
53
                            <div class="form-group">
54
                                <label for="name">请选择要录入的数据</label>
55
                                <select class="form-control" name="conpany_sales_data" id="conpany_sales_data">
56
                                    <option value="0">请选择合同数据</option>
57
                                </select>
58
                            </div>
59
                        </div>
60
                    </div>
61
                    <div class="row">
62
                        <div class="col-md-6">
63
                            <div class="form-group">
64
                                <label for="name">合同号</label>
65
                                <input type="text" class="form-control" name="contract_no" id="contract_no" placeholder="合同号">
66
                            </div>
67
                        </div>
68
                        <div class="col-md-6">
69
                            <div class="form-group">
70
                                <label for="name">产品类别</label>
71
                                <input type="text" class="form-control" name="goods_category" id="goods_category" placeholder="产品类别">
72
                            </div>
73
                        </div>
74
                    </div>
75
                    <div class="row">
76
                        <div class="col-md-6">
77
                            <div class="form-group">
78
                                <label for="name">产品型号</label>
79
                                <input type="text" class="form-control" name="goods_type" id="goods_type" placeholder="产品型号">
80
                            </div>
81
                        </div>
82
                        <div class="col-md-6">
83
                            <div class="form-group">
84
                                <label for="name">数量(KG)</label>
85
                                <input type="number" class="form-control val_change" name="amount" id="amount" placeholder="数量">
86
                            </div>
87
                        </div>
88
                    </div>
89
                    <div class="row">
90
                        <div class="col-md-6">
91
                            <div class="form-group">
92
                                <label for="name">单价</label>
93
                                <input type="number" class="form-control val_change" name="price" id="price" placeholder="单价">
94
                            </div>
95
                        </div>
96
                        <div class="col-md-6">
97
                            <div class="form-group">
98
                                <label for="name">合同额</label>
99
                                <input type="number" class="form-control val_change" name="contract_value" id="contract_value" placeholder="合同额">
100
                            </div>
101
                        </div>
102
                    </div>
103
                    <div class="row">
104
                        <div class="col-md-6">
105
                            <div class="form-group">
106
                                <label for="name">代理费</label>
107
                                <input type="number" class="form-control val_change" name="agency" id="agency" placeholder="代理费">
108
                            </div>
109
                        </div>
110
                        <div class="col-md-6">
111
                            <div class="form-group">
112
                                <label for="name">运费</label>
113
                                <input type="number" class="form-control val_change" name="shipping" id="shipping" placeholder="运费">
114
                            </div>
115
                        </div>
116
                    </div>
117
                    <div class="row">
118
                        <div class="col-md-6">
119
                            <div class="form-group">
120
                                <label for="name">收款金额</label>
121
                                <input type="number" class="form-control val_change" name="receive_money" id="receive_money" placeholder="收款金额">
122
                            </div>
123
                        </div>
124
                        <div class="col-md-6">
125
                            <div class="form-group">
126
                                <label for="name">上期余额</label>
127
                                <input type="number" class="form-control" name="period_balance" id="period_balance" placeholder="上期余额">
128
                            </div>
129
                        </div>
130
                    </div>
131
                    <div class="row">
132
                        <div class="col-md-6">
133
                            <div class="form-group">
134
                                <label for="name">实收金额</label>
135
                                <input type="number" class="form-control" name="actual_money" id="actual_money" placeholder="实收金额">
136
                            </div>
137
                        </div>
138
                        <div class="col-md-6">
139
                            <div class="form-group">
140
                                <label for="name">本期结余</label>
141
                                <input type="number" class="form-control" name="current_balance" id="current_balance" placeholder="本期结余">
142
                            </div>
143
                        </div>
144
                    </div>
145
                    <div class="row">
146
                        <div class="col-md-6">
147
                            <div class="form-group">
148
                                <label for="name">提成类型</label>
149
                                <label class="radio-inline">
150
                                    <input type="radio" name="type" id="type0" value="0" checked="checked" onclick="tcType(0)"> 一般
151
                                </label>
152
                                <label class="radio-inline">
153
                                    <input type="radio" name="type" id="type1" value="1" onclick="tcType(1)"> 特批1
154
                                </label>
155
                                <label class="radio-inline">
156
                                    <input type="radio" name="type" id="type2" value="2" onclick="tcType(2)"> 特批2
157
                                </label>
158
                            </div>
159
                        </div>
160
                    </div>
161
                    <div id="yiban" class="active bj">
162
                        <div class="row">
163
                            <div class="col-md-6">
164
                                <div class="form-group">
165
                                    <label for="name">基准单价</label>
166
                                    <input type="number" class="form-control val_change" name="base_price" id="base_price" placeholder="基准单价">
167
                                </div>
168
                            </div>
169
                            <div class="col-md-6">
170
                                <div class="form-group">
171
                                    <label for="name">合同基准价</label>
172
                                    <input type="number" class="form-control" name="base_value" id="base_value" placeholder="合同基准价">
173
                                </div>
174
                            </div>
175
                        </div>
176
                        <div class="row">
177
                            <div class="col-md-6">
178
                                <div class="form-group">
179
                                    <label for="name">工程费成本</label>
180
                                    <input type="number" class="form-control val_change" name="project" id="project" placeholder="工程费成本">
181
                                </div>
182
                            </div>
183
                            <div class="col-md-6">
184
                                <div class="form-group">
185
                                    <label for="name">总利润</label>
186
                                    <input type="number" class="form-control" name="total_profit" id="total_profit" placeholder="总利润">
187
                                </div>
188
                            </div>
189
                        </div>
190
                    </div>
191
                    <div id="tepi" class="bj">
192
                        <div class="row">
193
                            <div class="col-md-6">
194
                                <div class="form-group">
195
                                    <label for="name">公司低价</label>
196
                                    <input type="number" class="form-control val_change" name="base_price2" id="base_price2" placeholder="基准单价">
197
                                </div>
198
                            </div>
199
                            <div class="col-md-6">
200
                                <div class="form-group">
201
                                    <label for="name">实际合同额</label>
202
                                    <input type="number" class="form-control" name="actual_value" id="actual_value" placeholder="实际合同额">
203
                                </div>
204
                            </div>
205
                        </div>
206
                        <div class="row">
207
                            <div class="col-md-4">
208
                                <div class="form-group">
209
                                    <label for="name">价格比例</label>
210
                                    <input type="number" class="form-control" name="price_rate" id="price_rate" placeholder="价格比例">
211
                                </div>
212
                            </div>
213
                            <div class="col-md-4">
214
                                <div class="form-group">
215
                                    <label for="name">提成比例</label>
216
                                    <input type="number" class="form-control" name="commission_rate" id="commission_rate" placeholder="提成比例">
217
                                </div>
218
                            </div>
219
                            <div class="col-md-4">
220
                                <div class="form-group">
221
                                    <label for="name">提成额</label>
222
                                    <input type="number" class="form-control" name="commission_money" id="commission_money" placeholder="提成额">
223
                                </div>
224
                            </div>
225
                        </div>
226
                    </div>
227
                    <div class="row">
228
                        <div class="col-md-6">
229
                            <div class="form-group">
230
                                <label for="name">销售员</label>
231
                                <input type="text" class="form-control" name="seller" id="seller" placeholder="销售员">
232
                            </div>
233
                        </div>
234
                        <div class="col-md-6">
235
                            <div class="form-group">
236
                                <label for="name">备注</label>
237
                                <input type="text" class="form-control" name="remark" id="remark" placeholder="备注">
238
                            </div>
239
                        </div>
240
                    </div>
241
                    <div class="row">
242
                    </div>
243
                </form>
244
            </div>
245
            <div class="modal-footer">
246
                <button type="button" class="btn btn-default" onclick="cel()">关闭
247
                </button>
248
                <button type="button" class="btn btn-primary" onclick="doSave()">
249
                    提交
250
                </button>
251
            </div>
252
        </div><!-- /.modal-content -->
253
    </div><!-- /.modal -->
254
</div>
255
256
<script>
257
function edit(id) {
258
    $.ajax({
259
        url: "/index/commission/info/id/"+id,
260
        type: "GET",
261
        data: {},
262
        dataType: 'json',
263
        success: function(res) {
264
            if (res.code == 0) {
265
                dataForm = res.data;
266
                // console.log(dataForm);
267
                // return  false;
268
                $("#id").val(dataForm.id);
269
                $('#company').selectpicker('val', dataForm.company);
270
                getContractNoByCompany(dataForm.company, dataForm.former_id);
271
                $("#contract_no").val(dataForm.contract_no);
272
                $("#goods_category").val(dataForm.goods_category);
273
                $("#goods_type").val(dataForm.goods_type);
274
                $("#amount").val(dataForm.amount);
275
                $("#price").val(dataForm.price);
276
                $("#contract_value").val(dataForm.contract_value);
277
                $("#receive_money").val(dataForm.receive_money);
278
                $("#period_balance").val(dataForm.period_balance);
279
                $("#actual_money").val(dataForm.actual_money);
280
                $("#agency").val(dataForm.agency);
281
                $("#shipping").val(dataForm.shipping);
282
                $("#current_balance").val(dataForm.current_balance);
283
                let type = dataForm.type;
284
                // console.log(type)
285
                $('input[name="type"]').prop('checked', false);
286
                $("#type" + type).prop('checked', true);
287
                if (type != 0) {
288
                    $("#base_price2").val(dataForm.base_price);
289
                    $("#actual_value").val(dataForm.actual_value);
290
                    $("#price_rate").val(dataForm.price_rate);
291
                    $("#commission_rate").val(dataForm.c_rate);
292
                    $("#commission_money").val(dataForm.c_money);
293
                    $('#yiban').removeClass('active');
294
                    $('#tepi').addClass('active');
295
                } else {
296
                    $("#base_price").val(dataForm.base_price);
297
                    $("#base_value").val(dataForm.base_value);
298
                    $("#project").val(dataForm.project);
299
                    $("#total_profit").val(dataForm.total_profit);
300
                    $('#tepi').removeClass('active');
301
                    $('#yiban').addClass('active');
302
                }
303
304
                $("#seller").val(dataForm.seller);
305
                $("#remark").val(dataForm.remark);
306
                $('#myModal').modal('show');
307
                return false;
308
            } else {
309
                alert(res.msg);
310
            }
311
            return false;
312
        }
313
    });   
314
}
315
316
var dataForm = {
317
    "id": 0,
318
    "month": "",
319
    "company": "",
320
    "contract_no": "",
321
    "goods_category": "",
322
    "goods_type": "",
323
    "amount": 0,
324
    "price": 0,
325
    "contract_value": 0,
326
    "receive_money": 0,
327
    "period_balance": 0,
328
    "agency": 0,
329
    "base_price": 0,
330
    "shipping": 0,
331
    "project": 0,
332
    "type": 0,
333
    "seller": "",
334
    "remark": "",
335
    "former_id": 0
336
};
337
// 销售数据
338
var salesData = getSalesData()
339
// console.log(salesData)
340
341
// 公司名称下的合同数据
342
var conpanySalesData = [];
343
344
// (从缓存读取)
345
function getSalesData() {
346
    salesData = JSON.parse(window.localStorage.getItem('salesData'));
347
348
    return salesData;
349
}
350
351
// 根据公司名选择数据条
352
function getContractNoByCompany(company, former_id=0) {
353
    conpanySalesData = []; // 清空数组
354
    var option = {};
355
    let str = '<option value="0">请选择合同数据</option>';
356
    var key=1;
357
    for (var i=1; i < salesData.length; i++) { 
358
        row = salesData[i];
359
        // console.log(row);
360
        if (row[3] == company) {
361
            option.contract_no = row[12];
362
            option.goods_category = row[6];
363
            option.goods_type = row[7];
364
            option.amount = row[8];
365
            option.price = row[10];
366
            option.contract_value = row[11];
367
            option.seller = row[13];
368
            option.shipping = row[15];
369
            option.former_id = row[16];
370
            conpanySalesData[key] = option;
371
            if (option.former_id == former_id) {
372
                str += '<option value="' + key + '" selected>'+ row[1] +','+ option.contract_no +','+option.goods_category+','+ option.goods_type+','+ option.amount+','+ option.price+','+ option.contract_value+'</option>';
373
            } else {
374
                str += '<option value="' + key + '">'+ row[1] +','+ option.contract_no +','+option.goods_category+','+ option.goods_type+','+ option.amount+','+ option.price+','+ option.contract_value+'</option>';
375
            }
376
            key++;
377
            option = {};
378
        }
379
    }
380
    $('#conpany_sales_data').html(str);
381
}
382
383
// update 上期结余
384
function updatePeriodBalance() {
385
    $.post('/index/commission/perbalance', {
386
        'company': dataForm.company
387
    }, function(res) {
388
        // console.log(res);
389
        if (res.code == 0) {
390
            dataForm.period_balance = res.data;
391
            $("#period_balance").val(dataForm.period_balance)
392
        }
393
    }, 'json')
394
}
395
396
$("#company").change(function() {
397
    dataForm.company = $(this).val();
398
    getContractNoByCompany(dataForm.company);
399
    updatePeriodBalance();
400
})
401
402
$('#conpany_sales_data').change(function(){
403
    // 销售表读取的数据
404
    var k = $('#conpany_sales_data').val();
405
    // console.log(k);
406
    if (k==0) {
407
        $("#market-form")[0].reset();
408
    } else {
409
        var data = conpanySalesData[k];
410
        console.log(data);
411
        dataForm.contract_no = data.contract_no;
412
        dataForm.goods_category = data.goods_category;
413
        dataForm.goods_type = data.goods_type;
414
        dataForm.amount = data.amount;
415
        if (data.price.indexOf('(') != -1) {
416
            var price = ltrim(data.price, '(');
417
            price = rtrim(price, ')');
418
            dataForm.price = Number(-price);
419
        } else {
420
            dataForm.price = data.price;
421
        }
422
        dataForm.seller = data.seller;
423
        dataForm.shipping = data.shipping;
424
        dataForm.former_id = data.former_id;
425
        if (data.contract_value.indexOf('(') != -1) {
426
            var contract_value = ltrim(data.contract_value, '(');
427
            contract_value = rtrim(contract_value, ')');
428
            dataForm.contract_value = Number(-contract_value);
429
        } else {
430
            dataForm.contract_value = Number(data.contract_value);
431
        }
432
        $("#contract_no").val(dataForm.contract_no);
433
        $("#goods_category").val(dataForm.goods_category);
434
        $("#goods_type").val(dataForm.goods_type);
435
        $("#amount").val(Number(dataForm.amount));
436
        if (dataForm.price<0) {
437
            $("#price").css('color', 'red');
438
        }
439
        $("#price").val(Number(dataForm.price));
440
        if (dataForm.contract_value<0) {
441
            $("#contract_value").css('color', 'red');
442
        }
443
        $("#contract_value").val(dataForm.contract_value);
444
        $("#seller").val(dataForm.seller);
445
        $("#shipping").val(Number(dataForm.shipping));
446
        $("#agency").val(0);
447
        $("#receive_money").val(0);
448
        $("#actual_money").val(0);
449
        $("#current_balance").val(0);
450
        $("#project").val(0);
451
    }
452
})
453
454
// 更新dataFrom
455
function updateDataFrom() {
456
    dataForm.shipping = Number($("#shipping").val());
457
    dataForm.contract_value = Number($("#contract_value").val());
458
    dataForm.agency = Number($("#agency").val());
459
    // 更新实收金额 
460
    var receive_money = Number($("#receive_money").val());
461
    dataForm.receive_money = receive_money;
462
    dataForm.actual_money = receive_money + dataForm.period_balance;
463
    
464
    $("#actual_money").val(dataForm.actual_money) ;
465
    // 本期结余
466
    dataForm.current_balance = dataForm.actual_money - dataForm.contract_value;
467
    $("#current_balance").val(dataForm.current_balance);
468
}
469
470
$(".val_change").change(function() {
471
    updateDataFrom();
472
    updateBaseValue();
473
    updateTotalProfit();
474
    updateTepi();
475
})
476
477
function tcType(bj) {
478
    dataForm.type = bj;
479
    if (bj != 0) {
480
        $('#yiban').removeClass('active');
481
        $('#tepi').addClass('active');
482
    } else {
483
        $('#tepi').removeClass('active');
484
        $('#yiban').addClass('active');
485
    }
486
}
487
488
// 合同基准价
489
function updateBaseValue() {
490
    var amount = $("#amount").val();
491
    var base_price = $("#base_price").val();
492
    $("#base_value").val(amount * base_price);
493
}
494
495
// 总利润
496
function updateTotalProfit() {
497
    var contract_value = Number($("#contract_value").val());
498
    var agency = Number($("#agency").val());
499
    var base_value = Number($("#base_value").val());
500
    var shipping = Number($("#shipping").val());
501
502
    var total_profit = contract_value - agency - base_value - shipping;
503
    $("#total_profit").val(total_profit);
504
}
505
506
//价格比例 & 提成比例  特批
507
function updateTepi() {
508
    var base_price = Number($("#base_price2").val());
509
    if (dataForm.type != 0) {
510
        dataForm.base_price = base_price;
511
        var price = $("#price").val();
512
        var price_rate = price / base_price;
513
        $("#price_rate").val(price_rate);
514
        var contract_value = Number($("#contract_value").val());
515
        var agency = Number($("#agency").val());
516
        var actual_value = contract_value - agency;
517
        $("#actual_value").val(actual_value);
518
        var shipping = Number($("#shipping").val());
519
520
        if (dataForm.type == 1) {
521
            if (price_rate < 1.05) {
522
                dataForm.commission_rate = 0.01;
523
            } else if (price_rate < 1.1) {
524
                dataForm.commission_rate = 0.015;
525
            } else {
526
                dataForm.commission_rate = 0.02;
527
            }
528
        } else {
529
            dataForm.commission_rate = Math.floor((((price_rate - 1) / 0.1) * 0.01 + 0.01) * 100) / 100;
530
            // console.log(dataForm.commission_rate)
531
        }
532
        $("#commission_rate").val(dataForm.commission_rate);
533
        var commission_money = ((actual_value - shipping) * dataForm.commission_rate).toFixed(2);
534
        $("#commission_money").val(commission_money);
535
    }
536
}
537
538
function doSave() {
539
    dataForm.id = $('#id').val();
540
    dataForm.month = $('#month').val();
541
    dataForm.type = $('input[name="type"]:checked').val();
542
    if (dataForm.type != 0) {
543
        dataForm.base_price = Number($('#base_price2').val());
544
    } else {
545
        dataForm.base_price = Number($('#base_price').val());
546
    }
547
    dataForm.remark = $('#remark').val();
548
    $.ajax({
549
        url: "/index/commission/save",
550
        type: "POST",
551
        data: dataForm,
552
        dataType: 'json',
553
        success: function(res) {
554
            if (res.code == 0) {
555
                alert('保存成功');
556
                window.location.reload();
557
            } else {
558
                alert(res.msg);
559
            }
560
            return false;
561
        }
562
    });
563
}
564
565
function updatecahce() {
566
    storageSalesData(true);
567
}
568
569
function cel() {
570
    dataForm.id = 0;
571
    $('#id').val(0);
572
    $('#company').selectpicker('val', '');
573
    $('#conpany_sales_data').html('');
574
    $('#myModal').modal('hide');
575
    $("#market-form")[0].reset();
576
}
577
</script>

+ 5 - 1
view/index/index.html

@ -1 +1,5 @@
1
teest
1
{layout name="layout" /}
2
3
<div class="welcome">
4
    <span>欢迎使用xx系统</span> 
5
</div>

+ 92 - 0
view/layout.html

@ -0,0 +1,92 @@
1
<!DOCTYPE html>
2
<html lang="zh-cn">
3
4
<head>
5
    <meta charset="UTF-8">
6
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
    <title>赛亿销售统计</title>
8
    <link rel="stylesheet" href="/static/css/base.css">
9
    <link rel="stylesheet" href="/static/css/style.css">
10
    <link rel="stylesheet" href="/static/css/bootstrap.min.css">
11
    <script src="/static/js/jquery.min.js"></script>
12
    <script src="/static/js/bootstrap.min.js"></script>
13
    <style type="text/css">
14
        @media print {
15
            .noprint {
16
                display: none;
17
            }
18
19
            input {
20
                border: none;
21
            }
22
        }
23
    </style>
24
</head>
25
26
<body>
27
    <header class="header">
28
        <img src="/static/images/logo.png" alt="logo" class="logo">
29
        <span>北京赛亿科技有限公司</span>
30
    </header>
31
    <aside class="aside">
32
        <div class="col-md-12 lin-height text_center"><a href="/sale_order">销售订单</a></div>
33
        <div class="col-md-12 lin-height text_center"><a href="/index">提成汇总</a></div>
34
        <div class="col-md-12 lin-height text_center"><a href="/index/commission">计提数据录入</a></div>
35
        <div class="col-md-12 lin-height text_center"><a href="/sale_seller">销售员管理</a></div>
36
        <div class="col-md-12 lin-height text_center"><a href="/sale_company">购货单位管理</a></div>
37
    </aside>
38
    <section class="wrap">
39
        {__CONTENT__}
40
    </section>
41
    <script>
42
        // function doPrint() {
43
        //     var bdhtml = window.document.body.innerHTML;
44
        //     var startprint = "<!--startprint-->";
45
        //     var endprint = "<!--endprint-->";
46
        //     prnhtml = bdhtml.substr(bdhtml.indexOf(startprint) + 17, bdhtml.indexOf(endprint));
47
        //     window.document.body.innerHTML = prnhtml;
48
        //     window.print();
49
        //     window.document.body.innerHTML = bdhtml;
50
        // }
51
52
        $("#select_time").change(function() {
53
            var select_time = $("#select_time").val();
54
            window.location.href = "/index.php?select_time=" + select_time;
55
        })
56
57
        // 修改其他业务费, 历史欠款
58
        function modify(obj) {
59
            var su_id = $(obj).data("su_id")
60
            var seller = $(obj).data("seller");
61
            var other_expenses = $(obj).data("other_expenses");
62
            var overdraft = $(obj).data("overdraft");
63
            $("#su_id").val(su_id);
64
            $("#seller").val(seller);
65
            $("#other_expenses").val(other_expenses);
66
            $("#overdraft").val(overdraft);
67
68
            $("#myModal").modal("show");
69
        }
70
71
        $("#tj").click(function() {
72
            var data = {
73
                "id": Number($("#su_id").val()),
74
                "name": $("#seller").val(),
75
                "month": $("#month").val(),
76
                "other_expenses": Number($("#other_expenses").val()),
77
                "overdraft": Number($("#overdraft").val()),
78
            }
79
            console.log(data);
80
            // return false;
81
            $.post('/dosummary.php', data, function(res) {
82
                if (res.code == 0) {
83
                    window.location.reload();
84
                } else {
85
                    alert(res.msg);
86
                }
87
            }, 'json');
88
        })
89
    </script>
90
</body>
91
92
</html>

+ 1 - 1
view/login/index.html

@ -4,7 +4,7 @@
4 4
5 5
<head>
6 6
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
	<link href="/static/css/style.css" rel="stylesheet" type="text/css">
7
	<link href="/static/css/login.css" rel="stylesheet" type="text/css">
8 8
	<title>Suryee</title>
9 9
</head>
10 10

+ 82 - 0
view/sale_company/index.html

@ -0,0 +1,82 @@
1
{layout name="layout" /}
2
3
<nav class="breadcrumb">
4
    <span><a href="/">首页</a></span>
5
    <span>&gt;</span>
6
    <span><a href="javascript:void(0);">购货单位管理</a></span>
7
</nav>
8
<div class="content">
9
    <div class="row" style="margin: 0 0;">
10
        <div class="col-md-2 col-xs-3 btn-top-box text-center">
11
            <a href="/sale_company/save/0" class="btn btn-success radius">新增</a>
12
        </div>
13
        <div class="col-md-6 btn-top-box">
14
            <form action="/sale_company/index" method="get">
15
                <div class="col-md-1">
16
                </div>
17
                <div class="col-md-4">
18
                    <input type="text" class="form-control" name="key" id="key" value="{$key|default=''}"
19
                        placeholder="请输入公司名称">
20
                </div>
21
                <div class="col-md-3" style="text-align:left;">
22
                    <div class="btn-group ">
23
                        <button type="submit" class="btn btn-success">搜索</button>
24
                    </div>
25
                    <div class="btn-group ">
26
                        <a href="/sale_company" class="btn btn-danger ml-10">清除</a>
27
                    </div>
28
                </div>
29
            </form>
30
        </div>
31
    </div>
32
    <div class="col-md-10" style="margin-top: 20px;">
33
        <table class=" table table-hover table-bordered">
34
            <thead>
35
                <tr>
36
                    <th width="25">
37
                        <input type="checkbox" value="" name="">
38
                    </th>
39
                    <th class="text-center">id</th>
40
                    <th class="text-center">公司名称</th>
41
                    <th class="text-center">余额初期值</th>
42
                    <th class="text-center">操作</th>
43
                </tr>
44
            </thead>
45
            <tbody>
46
                        {foreach $list as $value}
47
                <tr>
48
                    <td>
49
                        <input type="checkbox" value="{$value.id}" name="checkbox[]">
50
                    </td>
51
                    <td class="text-center">{$value.id}</td>
52
                    <td class="text-center">{$value['name']}</td>
53
                    <td class="text-center">{$value['initial_balance']}</td>
54
                    <td class="text-center">
55
                        <a href="/sale_company/save/{$value['id']}">修改</a>
56
                        <a href="javascript:void(0);" class="ml-10" onClick="del('{$value.id}', this)">删除</a> 
57
                    </td>
58
                </tr>
59
                {/foreach}
60
            </tbody>
61
        </table>
62
    </div>
63
    <div class="pagelist">
64
        {$page|raw}
65
    </div>
66
</div>
67
68
<script>
69
    function del(id, obj) {
70
        $.post('/sale_company/delete', {
71
            'id': id
72
        }, function (res) {
73
            if (res.code == 2) {
74
                $(obj).parents("tr").remove();
75
                alert('删除成功!');
76
            } else {
77
                alert('删除失败, 请稍后重试.');
78
                return false;
79
            }
80
        }, 'json');
81
    }
82
</script>

+ 89 - 0
view/sale_company/save.html

@ -0,0 +1,89 @@
1
{layout name="layout" /}
2
3
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
4
    <div class="modal-dialog" style="width: 800px;">
5
        <div class="modal-content">
6
            <div class="modal-header">
7
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
8
                    &times;
9
                </button>
10
                <h4 class="modal-title" id="myModalLabel">
11
                    新增销售单位
12
                </h4>
13
            </div>
14
            <div class="modal-body">
15
                <form role="form" id="company-form">
16
                    <input type="hidden" name="id" id="id" value="0">
17
                    <div class="row">
18
                        <div class="col-md-2">
19
                            <div class="form-group" style="text-align:right;line-height:40px;">
20
                                <label form-label for="name">公司名称:</label>
21
                            </div>
22
                        </div>
23
                        <div class="col-md-4">
24
                            <div class="form-group">
25
                                <input type="text" class="form-control" name="name" id="name" value="" placeholder="公司名称">
26
                            </div>
27
                        </div>
28
                        <span style='color:red;' id="error_msg"></span>
29
                    </div>
30
                    <div class="row">
31
                        <div class="col-md-2">
32
                            <div class="form-group" style="text-align:right;line-height:40px;">
33
                                <label form-label for="department">初期余额:</label>
34
                            </div>
35
                        </div>
36
                        <div class="col-md-4">
37
                            <div class="form-group">
38
                                <input type="number" class="form-control" name="initial_balance" id="initial_balance" value="" placeholder="初期余额">
39
                            </div>
40
                        </div>
41
                    </div>
42
                </form>
43
            </div>
44
            <div class="modal-footer">
45
                <button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
46
                <button type="button" class="btn btn-primary" onclick="save()">保存</button>
47
            </div>
48
        </div><!-- /.modal-content -->
49
    </div><!-- /.modal -->
50
</div>
51
52
<script>
53
function closeModel() {
54
    $("#error_msg").html('');
55
    $("#company-form")[0].reset();
56
    $('#myModal').modal('hide');
57
}
58
59
function modify(id, name, initial_balance) {
60
    $("#id").val(id);
61
    $("#name").val(name);
62
    $("#initial_balance").val(initial_balance);
63
    $('#myModal').modal('show');
64
}
65
66
function save(params) {
67
    var id = $("#id").val();
68
    var name = $("#name").val();
69
    var initial_balance = Number($("#initial_balance").val());
70
    $.post('/index/company/save', {
71
        'id': id,
72
        'name': name,
73
        'initial_balance': initial_balance
74
    }, function(res) {
75
        if (res.code == 0) {
76
            alert('保存成功');
77
            $('#myModal').modal('hide');
78
            $("#company-form")[0].reset();
79
            window.location.reload();
80
        } else {
81
            // $("#company-form").children('div:first').append("<span style='color:red;'>" + res.msg + "</span>");
82
            $("#error_msg").html(res.msg);
83
        }
84
        return false;
85
    }, 'json');
86
    return false;
87
}
88
89
</script>

+ 136 - 0
view/sale_order/index.html

@ -0,0 +1,136 @@
1
{layout name="layout" /}
2
3
<nav class="breadcrumb">
4
    <span><a href="/">首页</a></span>
5
    <span>&gt;</span>
6
    <span>销售订单</span>
7
</nav>
8
9
<div class="content">
10
    <div class="row" style="margin: 10px 0;">
11
        <div class="col-md-2 col-xs-3 text-center">
12
            <a href="/sale_order/save/0" class="btn btn-success radius">新增</a>
13
        </div>
14
        <div class="col-md-8">
15
            <form action="/sale_order/index" method="get">
16
                <label for="month" class="form-label col-md-2 text-right mt-5">
17
                    请选择月份 :
18
                </label>
19
                <div class="formControls col-md-2" style="width: 100px;">
20
                    <select class="form-control input-sm" name="month" id="month">
21
                        {for start="0" end="13"}
22
                        {eq name="i" value="0"}
23
                        <option value="{$i}"{eq name="month" value="0"}selected{/eq}>全年</option>
24
                        {else/}
25
                        <option value="{$i}"{eq name="month" value="$i"}selected{/eq}>{$i}月</option>
26
                        {/eq}
27
                        {/for}
28
                    </select>
29
                </div>
30
                <div class="col-md-4">
31
                    <input type="text" class="form-control" name="key" id="key" value="{$key}"
32
                        placeholder="请输入公司名称">
33
                </div>
34
                <div class="col-md-3" style="text-align:left;">
35
                    <div class="btn-group ">
36
                        <button type="submit" class="btn btn-success">搜索</button>
37
                    </div>
38
                    <div class="btn-group ">
39
                        <a href="/sale_order/index" class="btn btn-danger ml-10">清除</a>
40
                    </div>
41
                </div>
42
            </form>
43
        </div>
44
    </div>
45
    <div class="col-md-12" style="min-width: 1200px;">
46
        <table class="table table-hover table-bordered table-condensed">
47
            <thead>
48
                <tr class="text-center bg-info">
49
                    <td>统计</td>
50
                    <td colspan="11" class="text-left">
51
                        总销售金额 : ¥{$total_contract_money} | 总到款金额: ¥{$total_payment}
52
                    </td>
53
                    <td colspan="2">
54
                        <span>每页行数:</span>
55
                        <select name="limit" id="limit" onchange="changLimit()">
56
                            {for start="10" end="101" step="10"}
57
                            <option value="{$i}" {eq name="limit" value="$i"}selected{/eq}>{$i}</option>
58
                            {/for}
59
                        </select>
60
                    </td>
61
                </tr>
62
                <tr>
63
                    <th>序号</th>
64
                    <th>月份</th>
65
                    <th style="width: 250px;">购货单位</th>
66
                    <th style="min-width: 160px;">合同号</th>
67
                    <th>合同总金额</th>
68
                    <th>签订时间</th>
69
                    <th>运费</th>
70
                    <th>代理费</th>
71
                    <th>销售员</th>
72
                    <th>到款金额</th>
73
                    <th>未到款</th>
74
                    <th>末期余额</th>
75
                    <th>提成</th>
76
                    <th>操作</th>
77
                </tr>
78
            </thead>
79
            <tbody>
80
                {foreach $list as $value}
81
                <tr class="text-center">
82
                    <td>{$value.no}</td>
83
                    <td>{$value.month}</td>
84
                    <td class="text-left">{$value.company_name}</td>
85
                    <td class="text-left">{$value.contract_no}</td>
86
                    <td>{$value.contract_money}</td>
87
                    <td>{$value.contract_time}</td>
88
                    <td>{$value.fare}</td>
89
                    <td>{$value.agency}</td>
90
                    <td>{$value.seller_name}</td>
91
                    <td>{$value.payment}</td>
92
                    <td>{$value.contract_money-$value.payment|round=2}</td>
93
                    <td>--</td>
94
                    <td>{$value.is_commission}</td>
95
                    <td class="td-manager">
96
                        <a href="/sale_order/item/{$value.id}">产品明细</a>
97
                        <a href="javascript:void(0);" onclick="edit()">订单详情</a>
98
                        <a href="javascript:void(0);" onclick="del('{$value.id}', this)">删除</a>
99
                    </td>
100
                </tr>
101
                {/foreach}
102
            </tbody>
103
        </table>
104
    </div>
105
    <div class="pagelist">
106
        {$page|raw}
107
    </div>
108
</div>
109
110
<script src="/static/js/JQuery.cookie.js"></script>
111
<script>
112
    function changLimit() {
113
        var limit = $("#limit").val();
114
        $.cookie('limit', limit, { expires: 7, path: '/' });
115
        window.location.reload();
116
    }
117
118
    function del(id, obj) {
119
        $.ajax({
120
            url: "/sale_order/delete",
121
            type: "POST",
122
            data: {
123
                "id": id
124
            },
125
            dataType: 'json',
126
            success: function(data) {
127
                if (data.code == 2) {
128
                    $(obj).parents("tr").remove();
129
                } else {
130
                    alert(data.msg);
131
                }
132
                return false;
133
            }
134
        });
135
    }
136
</script>

+ 131 - 0
view/sale_order/index2.html

@ -0,0 +1,131 @@
1
{layout name="layout" /}
2
3
<nav class="breadcrumb">
4
    <span><a href="/">首页</a></span>
5
    <span>&gt;</span>
6
    <span><a href="javascript:void(0);">销售明细</a></span>
7
</nav>
8
<div class="content">
9
    <div class="row" style="margin: 0 0;">
10
        <div class="col-md-2 col-xs-3 btn-top-box text-center">
11
            <a href="/sale_order/save/0" class="btn btn-success radius">新增</a>
12
        </div>
13
        <div class="col-md-6 btn-top-box">
14
            <form action="/sale_order/index" method="get">
15
                <div class="col-md-1">
16
                </div>
17
                <div class="col-md-4">
18
                    <input type="text" class="form-control" name="key" id="key" value="{$key|default=''}"
19
                        placeholder="请输入公司名称">
20
                </div>
21
                <div class="col-md-3" style="text-align:left;">
22
                    <div class="btn-group ">
23
                        <button type="submit" class="btn btn-success">搜索</button>
24
                    </div>
25
                    <div class="btn-group ">
26
                        <a href="/sale_order" class="btn btn-danger ml-10">清除</a>
27
                    </div>
28
                </div>
29
            </form>
30
        </div>
31
    </div>
32
    <div class="col-md-12" style="margin-top: 20px;">
33
        <table class=" table table-hover table-bordered">
34
            <thead>
35
                <tr>
36
                    <th width="25">
37
                        <input type="checkbox" value="" name="">
38
                    </th>
39
                    <!-- <th class="text-center">id</th> -->
40
                    <th class="text-center">序号</th>
41
                    <th class="text-center">购货单位</th>
42
                    <th class="text-center">余额初期值</th>
43
                    <th class="text-center">操作</th>
44
                </tr>
45
            </thead>
46
            <tbody>
47
                        {foreach $list as $value}
48
                <tr>
49
                    <td>
50
                        <input type="checkbox" value="{$value.id}" name="checkbox[]">
51
                    </td>
52
                    <td class="text-center">{$value.id}</td>
53
                    <td class="text-center">{$value['name']}</td>
54
                    <td class="text-center">{$value['initial_balance']}</td>
55
                    <td class="text-center">
56
                        <a href="/sale_company/save/{$value['id']}">修改</a>
57
                        <a href="javascript:void(0);" class="ml-10" onClick="del({$value.id|intval}, this)">删除</a> 
58
                    </td>
59
                </tr>
60
                {/foreach}
61
            </tbody>
62
        </table>
63
    </div>
64
    <div class="pagelist">
65
        {$page|raw}
66
    </div>
67
</div>
68
69
<script>
70
    function del(id, obj) {
71
        $.post('/sale_company/delete', {
72
            'id': id
73
        }, function (res) {
74
            if (res.code == 2) {
75
                $(obj).parents("tr").remove();
76
                alert('删除成功!');
77
            } else {
78
                alert('删除失败, 请稍后重试.');
79
                return false;
80
            }
81
        }, 'json');
82
    }
83
</script>
84
<?php
85
$type = ['一般', '特批1', '特批2'];
86
$tr_type = ['info', 'warning', 'danger'];
87
foreach ($data as $value) {
88
?>
89
    <tr class="<?php echo $tr_type[$value['type']]; ?>">
90
        <td><?php echo $value['id']; ?></td>
91
        <td><?php echo $value['company']; ?></td>
92
        <td><?php echo $value['contract_no']; ?></td>
93
        <td><?php echo $value['goods_category']; ?></td>
94
        <td><?php echo $value['goods_type']; ?></td>
95
        <td><?php echo $value['amount']; ?></td>
96
        <td><?php echo $value['price']; ?></td>
97
        <td><?php echo $value['base_price']; ?></td>
98
        <td><?php echo $value['type'] ? $value['price_rate'] : ''; ?></td>
99
        <td><?php echo $value['contract_value']; ?></td>
100
        <td><?php echo $value['agency']; ?></td>
101
        <td><?php echo $value['type'] ? '' : $value['base_value']; ?></td>
102
        <td><?php echo $value['type'] ? $value['actual_value'] : ''; ?></td>
103
        <td><?php echo $value['shipping']; ?></td>
104
        <td><?php echo $value['project']; ?></td>
105
        <td><?php echo $value['receive_money']; ?></td>
106
        <td><?php echo $value['period_balance']; ?></td>
107
        <td><?php echo $value['actual_money']; ?></td>
108
        <td><?php echo $value['current_balance']; ?></td>
109
        <td><?php echo $value['type'] ? '' : $value['total_profit']; ?></td>
110
        <td><?php echo $value['type'] ? $value['c_rate'] : ''; ?></td>
111
        <td><?php echo $value['type'] ? $value['c_money'] : ''; ?></td>
112
        <td><?php echo $value['seller']; ?></td>
113
        <td class="td-manager">
114
            <a href="javascript:void(0);" onclick="del(<?php echo $value['id']; ?>, this)">删除</a>
115
            <a href="javascript:void(0);" onclick="edit(<?php echo $value['id']; ?>)">修改</a></td>
116
    </tr>
117
<?php
118
}
119
?>
120
<th>发货人</th>
121
<th>发货运费</th>
122
<th>紧急发货</th>
123
<th>运单号</th>
124
<th>付款方式</th>
125
<th>到款时间</th>
126
<th>到款金额</th>
127
<th>运费</th>
128
<th>发票</th>
129
<th>开票日期</th>
130
<th>开票金额</th>
131
<th>发票号</th>

+ 265 - 0
view/sale_order/item.html

@ -0,0 +1,265 @@
1
{layout name="layout" /}
2
3
<nav class="breadcrumb">
4
    <span><a href="/">首页</a></span>
5
    <span>&gt;</span>
6
    <span><a href="/sale_order/index">销售订单</a></span>
7
    <span>&gt;</span>
8
    <span>产品明细</span>
9
</nav>
10
11
<div class="content">
12
    <div class="row">
13
        <div class="col-md-3 btn-top-box" style="padding-left: 50px;">
14
            <a href="javascript:window.history.back();" class="btn btn-default radius">返回</a>
15
            <a href="javascript:save(0);" class="btn btn-primary radius">新增明细</a>
16
        </div>
17
    </div>
18
    <div class="col-md-10">
19
        <table class="table table-hover table-bordered table-condensed">
20
            <thead>
21
                <tr>
22
                    <th class="bg-info" colspan="14" style="text-align: left;">
23
                        购货单位: {$orderInfo.company_name} | 合同号: {$orderInfo.contract_no} | 时间: {$orderInfo.contract_time}
24
                    </th>
25
                </tr>
26
                <tr>
27
                    <th>id</th>
28
                    <th>种类</th>
29
                    <th>产品名称</th>
30
                    <th>产品公司价格</th>
31
                    <th>销售数量(单位KG/台)</th>
32
                    <th>销售价格</th>
33
                    <th>合同金额</th>
34
                    <th>实际发货量</th>
35
                    <th>实际成交价格</th>
36
                    <th>运费分摊</th>
37
                    <th>代理费分摊</th>
38
                    <th>备注</th>
39
                    <th>提成类型</th>
40
                    <th>操作</th>
41
                </tr>
42
            </thead>
43
            <tbody>
44
                {php}$types=['一般', '特批1', '特批2'];{/php}
45
                {foreach $list as $value}
46
                <tr>
47
                    <td>{$value.id}</td>
48
                    <td>{$value.goods_category}</td>
49
                    <td>{$value.goods_name}</td>
50
                    <td>{$value.goods_price}</td>
51
                    <td>{$value.sales_amount}</td>
52
                    <td>{$value.sales_price}</td>
53
                    <td>{$value.sales_price * $value.sales_amount|round=2}</td>
54
                    <td>{$value.actual_amount}</td>
55
                    <td>{$value.actual_price}</td>
56
                    <td>{$value.fare}</td>
57
                    <td>{$value.agency}</td>
58
                    <td>{$value.remark}</td>
59
                    <td>{$types[$value['type']]}</td>
60
                    <td class="td-manager">
61
                        <a href="javascript:void(0);" onclick="save('{$value.id}')">修改</a>
62
                        <a href="javascript:void(0);" onclick="del('{$value.id}', this)">删除</a>
63
                    </td>
64
                </tr>
65
                {/foreach}
66
            </tbody>
67
        </table>
68
    </div>
69
</div>
70
71
<div class="modal" tabindex="-1" role="dialog" data-backdrop="false" id="myModal" aria-labelledby="myModalLabel" style="right: 10%;">
72
    <div class="modal-dialog" role="document">
73
      <div class="modal-content">
74
        <div class="modal-header">
75
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
76
          <h4 class="modal-title">产品明细</h4>
77
        </div>
78
        <div class="modal-body">
79
            <form role="form" id="goods-form">
80
                <input type="hidden" name="id" id="id" value="0">
81
                <input type="hidden" name="order_id" id="order_id" value="{$order_id}">
82
                <div class="row">
83
                    <div class="col-md-4">
84
                        <div class="form-group">
85
                            <label for="name">产品类别</label>
86
                            <input type="text" class="form-control" name="goods_category" id="goods_category" placeholder="产品类别">
87
                        </div>
88
                    </div>
89
                    <div class="col-md-4">
90
                        <div class="form-group">
91
                            <label for="name">产品名称</label>
92
                            <input type="text" class="form-control" name="goods_name" id="goods_name" placeholder="产品名称">
93
                        </div>
94
                    </div>
95
                    <div class="col-md-4">
96
                        <div class="form-group">
97
                            <label for="name">产品价格(公司低价)</label>
98
                            <input type="text" class="form-control" name="goods_price" id="goods_price" placeholder="产品价格">
99
                        </div>
100
                    </div>
101
                </div>
102
                <div class="row">
103
                    <div class="col-md-4">
104
                        <div class="form-group">
105
                            <label for="name">销售数量(KG/台)</label>
106
                            <input type="number" class="form-control val_change" name="sales_amount" id="sales_amount" placeholder="数量">
107
                        </div>
108
                    </div>
109
                    <div class="col-md-4">
110
                        <div class="form-group">
111
                            <label for="name">销售单价</label>
112
                            <input type="number" class="form-control val_change" name="sales_price" id="sales_price" placeholder="单价">
113
                        </div>
114
                    </div>
115
                    <div class="col-md-4">
116
                        <div class="form-group">
117
                            <label for="name">总金额</label>
118
                            <input type="number" class="form-control" name="" id="sales_money" placeholder="总金额">
119
                        </div>
120
                    </div>
121
                </div>
122
                <div class="row">
123
                    <div class="col-md-4">
124
                        <div class="form-group">
125
                            <label for="name">实际发货量(KG/台)</label>
126
                            <input type="number" class="form-control val_change" name="actual_amount" id="actual_amount" placeholder="数量">
127
                        </div>
128
                    </div>
129
                    <div class="col-md-4">
130
                        <div class="form-group">
131
                            <label for="name">实际成交价</label>
132
                            <input type="number" class="form-control val_change" name="actual_price" id="actual_price" placeholder="单价">
133
                        </div>
134
                    </div>
135
                    <div class="col-md-4">
136
                        <div class="form-group">
137
                            <label for="name">总金额</label>
138
                            <input type="number" class="form-control" name="" id="actual_money" placeholder="总金额">
139
                        </div>
140
                    </div>
141
                </div>
142
                <div class="row">
143
                    <div class="col-md-4">
144
                        <div class="form-group">
145
                            <label for="name">代理费分摊</label>
146
                            <input type="number" class="form-control val_change" name="agency" id="agency" placeholder="代理费">
147
                        </div>
148
                    </div>
149
                    <div class="col-md-4">
150
                        <div class="form-group">
151
                            <label for="name">运费分摊</label>
152
                            <input type="number" class="form-control val_change" name="fare" id="fare" placeholder="运费">
153
                        </div>
154
                    </div>
155
                    <div class="col-md-4">
156
                        <div class="form-group">
157
                            <label for="name">提成类型</label>
158
                            <div class="mt-5">
159
                                <label class="radio-inline">
160
                                    <input type="radio" name="type" id="type0" value="0" checked="checked"> 一般
161
                                </label>
162
                                <label class="radio-inline">
163
                                    <input type="radio" name="type" id="type1" value="1"> 特批1
164
                                </label>
165
                                <label class="radio-inline">
166
                                    <input type="radio" name="type" id="type2" value="2"> 特批2
167
                                </label>
168
                            </div>
169
                        </div>
170
                    </div>
171
                </div>
172
                <div class="row">
173
                    <div class="col-md-12">
174
                        <div class="form-group">
175
                            <label for="name">备注</label>
176
                            <textarea class="form-control"  name="remark" id="remark"  rows="3"></textarea>
177
                        </div>
178
                    </div>
179
                </div>
180
            </form>
181
        </div>
182
        <div class="modal-footer">
183
          <button type="button" class="btn btn-default"  onclick="closeModel()">Close</button>
184
          <button type="button" class="btn btn-success" onclick="doSave()">Save</button>
185
        </div>
186
      </div><!-- /.modal-content -->
187
    </div><!-- /.modal-dialog -->
188
  </div><!-- /.modal -->
189
190
191
<script>
192
    function save(id) {
193
        console.log(id);
194
        if (id) {
195
            $.get('/sale_order/iteminfo', {
196
                'id': id,
197
            }, function(res) {
198
                if (res.code == 2) {
199
                    var data = res.data;
200
                    $("#id").val(data.id);
201
                    $("#order_id").val(data.order_id);
202
                    $("#goods_category").val(data.goods_category);
203
                    $("#goods_name").val(data.goods_name);
204
                    $("#goods_price").val(data.goods_price);
205
                    $("#sales_amount").val(data.sales_amount);
206
                    $("#sales_price").val(data.sales_price);
207
                    $("#actual_amount").val(data.actual_amount);
208
                    $("#actual_price").val(data.actual_price);
209
                    $("#agency").val(data.agency);
210
                    $("#fare").val(data.fare);
211
                    $("input[type='radio'][name='type']").prop("checked",false);
212
                    $("input[type='radio'][name='type'][value='"+data.type+"']").prop("checked",true);
213
                    $("#remark").val(data.remark);
214
                }
215
            }, 'json');
216
        } else {
217
            $("#id").val(0);
218
            $("#order_id").val({$order_id});
219
        }
220
        $('#myModal').modal('show');
221
    }
222
223
    function closeModel() {
224
        $("#goods-form")[0].reset();
225
        $('#myModal').modal('hide');
226
    }
227
228
    function doSave() {
229
        var data = $("#goods-form").serializeArray();
230
        $.post('/sale_order/itemsave', data, function(res) {
231
            if (res.code == 0) {
232
                alert('保存成功');
233
                $('#myModal').modal('hide');
234
                $("#seller-form")[0].reset();
235
                window.location.reload();
236
            } else {
237
                alert(res.msg);
238
            }
239
            return false;
240
        }, 'json');
241
        return false;
242
    }
243
244
    function del(id, obj) {
245
        $.ajax({
246
            url: "/sale_order/itemdelete",
247
            type: "POST",
248
            data: {
249
                "id": id
250
            },
251
            dataType: 'json',
252
            success: function(data) {
253
                if (data.code == 2) {
254
                    $(obj).parents("tr").remove();
255
                } else {
256
                    alert("操作失败, 请稍后重试!");
257
                }
258
                return false;
259
            }
260
        });
261
    }
262
</script>
263
</body>
264
265
</html>

+ 89 - 0
view/sale_order/save.html

@ -0,0 +1,89 @@
1
{layout name="layout" /}
2
3
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
4
    <div class="modal-dialog" style="width: 800px;">
5
        <div class="modal-content">
6
            <div class="modal-header">
7
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
8
                    &times;
9
                </button>
10
                <h4 class="modal-title" id="myModalLabel">
11
                    新增销售单位
12
                </h4>
13
            </div>
14
            <div class="modal-body">
15
                <form role="form" id="company-form">
16
                    <input type="hidden" name="id" id="id" value="0">
17
                    <div class="row">
18
                        <div class="col-md-2">
19
                            <div class="form-group" style="text-align:right;line-height:40px;">
20
                                <label form-label for="name">公司名称:</label>
21
                            </div>
22
                        </div>
23
                        <div class="col-md-4">
24
                            <div class="form-group">
25
                                <input type="text" class="form-control" name="name" id="name" value="" placeholder="公司名称">
26
                            </div>
27
                        </div>
28
                        <span style='color:red;' id="error_msg"></span>
29
                    </div>
30
                    <div class="row">
31
                        <div class="col-md-2">
32
                            <div class="form-group" style="text-align:right;line-height:40px;">
33
                                <label form-label for="department">初期余额:</label>
34
                            </div>
35
                        </div>
36
                        <div class="col-md-4">
37
                            <div class="form-group">
38
                                <input type="number" class="form-control" name="initial_balance" id="initial_balance" value="" placeholder="初期余额">
39
                            </div>
40
                        </div>
41
                    </div>
42
                </form>
43
            </div>
44
            <div class="modal-footer">
45
                <button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
46
                <button type="button" class="btn btn-primary" onclick="save()">保存</button>
47
            </div>
48
        </div><!-- /.modal-content -->
49
    </div><!-- /.modal -->
50
</div>
51
52
<script>
53
function closeModel() {
54
    $("#error_msg").html('');
55
    $("#company-form")[0].reset();
56
    $('#myModal').modal('hide');
57
}
58
59
function modify(id, name, initial_balance) {
60
    $("#id").val(id);
61
    $("#name").val(name);
62
    $("#initial_balance").val(initial_balance);
63
    $('#myModal').modal('show');
64
}
65
66
function save(params) {
67
    var id = $("#id").val();
68
    var name = $("#name").val();
69
    var initial_balance = Number($("#initial_balance").val());
70
    $.post('/index/company/save', {
71
        'id': id,
72
        'name': name,
73
        'initial_balance': initial_balance
74
    }, function(res) {
75
        if (res.code == 0) {
76
            alert('保存成功');
77
            $('#myModal').modal('hide');
78
            $("#company-form")[0].reset();
79
            window.location.reload();
80
        } else {
81
            // $("#company-form").children('div:first').append("<span style='color:red;'>" + res.msg + "</span>");
82
            $("#error_msg").html(res.msg);
83
        }
84
        return false;
85
    }, 'json');
86
    return false;
87
}
88
89
</script>

+ 65 - 0
view/sale_seller/index.html

@ -0,0 +1,65 @@
1
{layout name="layout" /}
2
3
<nav class="breadcrumb">
4
    <span><a href="/">首页</a></span>
5
    <span>&gt;</span>
6
    <span><a href="javascript:void(0);">销售员管理</a></span>
7
</nav>
8
9
<div class="content">
10
    <div class="row">
11
        <div class="col-md-3 btn-top-box">
12
            <!-- <a href="javascript:;" class="btn btn-danger radius" onClick="del_all()">批量删除</a> -->
13
            <a href="/sale_seller/save/0" class="btn btn-success radius">新增</a>
14
        </div>
15
    </div>
16
    <div class="col-md-10 mt-20">
17
        <table class=" table table-hover table-bordered">
18
            <thead>
19
                <tr>
20
                    <th width="25">
21
                        <input type="checkbox" value="" name="">
22
                    </th>
23
                    <th class="text-center">序 号</th>
24
                    <th class="text-center">销售员</th>
25
                    <th class="text-center">所属部门</th>
26
                    <th class="text-center">操作</th>
27
                </tr>
28
            </thead>
29
            <tbody>
30
                {foreach $list as $value}
31
                <tr>
32
                    <td>
33
                        <input type="checkbox" value="{$value.id}" name="checkbox[]">
34
                    </td>
35
                    <td class="text-center">{$value.id}</td>
36
                    <td class="text-center">{$value.name}</td>
37
                    <td class="text-center">{$value.department_name}</td>
38
                    <td class="text-center td-manager">
39
                        <a href="/sale_seller/save/{$value['id']}">修改</a>
40
                        <a href="javascript:void(0);" class="ml-10" onClick="del({$value.id|intval}, this)">删除</a>
41
                    </td>
42
                </tr>
43
                {/foreach}
44
            </tbody>
45
        </table>
46
    </div>
47
</div>
48
49
<!--请在下方写此页面业务相关的脚本-->
50
<script type="text/javascript">
51
    function del(id, obj) {
52
        $.post('/sale_seller/delete', {
53
            'id': id
54
        }, function (res) {
55
            if (res.code == 2) {
56
                $(obj).parents("tr").remove();
57
                alert('删除成功!');
58
            } else {
59
                alert('删除失败, 请稍后重试.');
60
                return false;
61
            }
62
        }, 'json');
63
    }
64
</script>
65
<!--请在上方写此页面业务相关的脚本-->

+ 54 - 0
view/sale_seller/save.html

@ -0,0 +1,54 @@
1
{layout name="layout" /}
2
3
<nav class="breadcrumb">
4
    <span><a href="/" class="maincolor">首页</a></span>
5
    <span>&gt;</span>
6
    <span><a href="/sale_seller">销售员管理</a></span>
7
    <span>&gt;</span>
8
    <span><a href="javascript:void(0);">{empty name="data.id"}新增{else/}修改{/empty}</a></span>
9
</nav>
10
<div class="content">
11
    <div class="row">
12
        <div class="blank">
13
14
        </div>
15
    </div>
16
    <form role="form" id="form-seller" action="" method="POST">
17
        <input type="hidden" name="id" id="id" value="{$data.id}">
18
        <div class="row">
19
            <div class="col-md-2">
20
                <div class="form-group" style="text-align:right;line-height:40px;">
21
                    <label form-label for="name">姓名:</label>
22
                </div>
23
            </div>
24
            <div class="col-md-4">
25
                <div class="form-group">
26
                    <input type="text" class="form-control" name="name" id="name" value="{$data.name}" placeholder="销售员">
27
                </div>
28
            </div>
29
            <span style='color:red;' id="error_msg"></span>
30
        </div>
31
        <div class="row">
32
            <div class="col-md-2">
33
                <div class="form-group" style="text-align:right;line-height:40px;">
34
                    <label form-label for="department">部门:</label>
35
                </div>
36
            </div>
37
            <div class="col-md-4">
38
                <div class="form-group">
39
                    <select name="department_id" id="department_id" class="form-control">
40
                        {foreach $departments as $key=>$val}
41
                        <option value="{$key}" {eq name="data.department_id" value="$key"}selected{/eq}>{$val}</option>
42
                        {/foreach}
43
                    </select>
44
                </div>
45
            </div>
46
        </div>
47
        <div class="row">
48
            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
49
                <input class="btn btn-success radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
50
                <input class="btn btn-default radius" type="button" value="&nbsp;&nbsp;取消&nbsp;&nbsp;" onClick="window.history.back();">
51
            </div>
52
        </div>
53
    </form>
54
</div>