import tkinter as tk
from  tkinter import ttk
from tkinter import *                                                               #导入tkinter
from tkinter import messagebox                                                      #引入弹出框
#from typing import Any, Union
import pymysql                                                                       #导入pymysql
from pymysql.cursors import Cursor                                                  #导入游标
from hashlib import sha1                                                            #导入hashlib,引用函数
from PIL import Image                                                                #图像缩放
from tkinter import Scrollbar
from tkinter.ttk import Treeview
import datetime#采购单直接完成对原材料的采购,根据采购单,产生相应的原材料入库清单(可在页面设置按钮显示),只要输入货物编码,可自动出现其他属性
window=tk.Tk()
window.title('原料采购单')
window.geometry('1200x600-100-100')
window['bg'] = 'Beige'
window.resizable(False, False)#不允许改变窗口大小
class YLCG:                                                             #原料采购
    def __init__(self,window):self.conn = pymysql.Connect(host='localhost',port=3306,user='root',passwd='12345',db='库存与存货系统',charset="utf8"
        )#Label
        YLCG_name_Label=tk.Label(window,text='原料采购单',font=('Arial',25),bg= 'Beige')YLCG_name_Label.place(x=350,y=15)YLCG_id_Label=tk.Label(window,text='采购单号:',font=('Arial',12),bg= 'Beige')YLCG_id_Label.place(x=100,y=80)#YLCG_date_Label=tk.Label(window,text='采购日期:',font=('Arial',12),bg= 'Beige')
        #YLCG_date_Label.place(x=300,y=80)

        YLCG_WareHouse_Label=tk.Label(window,text='采购日期:',font=('Arial',12),bg= 'Beige')YLCG_WareHouse_Label.place(x=497,y=80)YLCG_Department_Label=tk.Label(window,text='采购部门:',font=('Arial',12),bg= 'Beige')YLCG_Department_Label.place(x=100,y=120)YLCG_reference_Label=tk.Label(window,text='备注:',font=('Arial',12),bg= 'Beige')YLCG_reference_Label.place(x=332,y=120)YLCG_ZhiDanRen_Label = tk.Label(window, text='制单人:', font=('Arial', 12),bg= 'Beige')YLCG_ZhiDanRen_Label.place(x=100, y=450)#详细
        frame = tk.Frame(window)  # 锁定框架
        frame.place(x=85, y=200, width=620, height=230)scrollBarx = tk.Scrollbar(frame, orient='horizontal')  # 定义滑动条
        scrollBarx.pack(side=tk.BOTTOM, fill=tk.X)scrollBary = tk.Scrollbar(frame)scrollBary.pack(side=tk.RIGHT, fill=tk.Y)tree = ttk.Treeview(frame, show="headings", xscrollcommand=scrollBarx.set, yscrollcommand=scrollBary.set)scrollBarx['command'] = tree.xview  # 根据视图x移动
        scrollBary['command'] = tree.yview  # 根据视图y移动
        tree['columns'] = ('原料编码', '原料名字', '原料类别', '采购数目', '价格', '主计量', '采购时间', '生产批号', '描述', '颜色', '硬度', '供应商ID')tree.column('原料编码', width=120, anchor='center')tree.column('原料名字', width=120, anchor='center')tree.column('原料类别', width=120, anchor='center')tree.column('采购数目', width=120, anchor='center')tree.column('价格', width=120, anchor='center')tree.column('主计量', width=120, anchor='center')tree.column('采购时间', width=120, anchor='center')tree.column('生产批号', width=120, anchor='center')tree.column('描述', width=120, anchor='center')tree.column('颜色', width=120, anchor='center')tree.column('硬度', width=120, anchor='center')tree.column('供应商ID', width=120, anchor='center')tree.heading('原料编码', text='原料编码')tree.heading('原料名字', text='原料名字')tree.heading('原料类别', text='原料类别')tree.heading('采购数目', text='采购数目')tree.heading('价格', text='价格')tree.heading('主计量', text='主计量')tree.heading('采购时间', text='采购时间')tree.heading('生产批号', text='生产批号')tree.heading('描述', text='描述')tree.heading('颜色', text='颜色')tree.heading('硬度', text='硬度')tree.heading('供应商ID', text='供应商ID')tree.insert('', 'end', values=('', '', '', '', '', '', '', '', '', '', '', ''))def buy_product():#数据转移
            window.quit()tk.Button(window, text='采购', width=10, height=1, command=buy_product,bg= 'LemonChiffon').place(x=500, y=440)tree.pack()def treeviewClick(event):iid = tree.identify_row(event.y)xy = tree.identify_element(event.x, event.y)s = tree.selection()print(iid,xy )print(s)#元祖(x,y)
            if s:# var 变量
                var_MaterialID_Text = tk.StringVar()var_MaterialName_Text = tk.StringVar()var_Category_Text = tk.DoubleVarvar_MaterialNum_Text = tk.StringVar()var_MaterialPrice_Text = tk.IntVar()var_MaterialCalculate_Text = tk.IntVar()var_date_Text = tk.IntVar()var_BatchNumber_Text = tk.StringVar()var_M_Specificetions_Text = tk.IntVar()var_Color_Text = tk.IntVar()var_Hard_Text = tk.IntVar()var_SupplierID_Text = tk.StringVar()product = tk.Tk()product.title('原材料货物详细')product.geometry('600x500')product['bg']='Beige'

                MaterialID_Label = tk.Label(product, text='原料编码:', font=('Arial', 12), bg='Beige')MaterialID_Label.place(x=100, y=20)MaterialName_Label = tk.Label(product, text='原料名字:', font=('Arial', 12), bg='Beige')MaterialName_Label.place(x=100, y=50)M_Category_Label = tk.Label(product, text='原料类别:', font=('Arial', 12), bg='Beige')M_Category_Label.place(x=100, y=80)MaterialNum_Label = tk.Label(product, text='采购数目:', font=('Arial', 12), bg='Beige')MaterialNum_Label.place(x=100, y=110)MaterialPrice_Label = tk.Label(product, text='价格:', font=('Arial', 12), bg='Beige')MaterialPrice_Label.place(x=100, y=140)MaterialCalculate_Label = tk.Label(product, text='主计量:', font=('Arial', 12), bg='Beige')MaterialCalculate_Label.place(x=100, y=170)date_Label = tk.Label(product, text='采购时间:', font=('Arial', 12), bg='Beige')date_Label.place(x=100, y=200)BatchNumber_Label = tk.Label(product, text='生产批号:', font=('Arial', 12), bg='Beige')BatchNumber_Label.place(x=100, y=230)M_Specificetions_Label = tk.Label(product, text='描述:', font=('Arial', 12), bg='Beige')M_Specificetions_Label.place(x=100, y=260)Color_Label = tk.Label(product, text='颜色:', font=('Arial', 12), bg='Beige')Color_Label.place(x=100, y=290)Hard_Label = tk.Label(product, text='硬度:', font=('Arial', 12), bg='Beige')Hard_Label.place(x=100, y=320)SupplierID_Label = tk.Label(product, text='供应商ID:', font=('Arial', 12), bg='Beige')SupplierID_Label.place(x=100, y=350)# Entry

                MaterialID_Entry = tk.Entry(product, width=15)MaterialID_Entry.place(x=175, y=20)MaterialName_Entry = tk.Entry(product, width=15)MaterialName_Entry.place(x=175, y=50)M_Category_Entry = tk.Entry(product, width=15)M_Category_Entry.place(x=175, y=80)MaterialNum_Entry = tk.Entry(product, width=15)MaterialNum_Entry.place(x=175, y=110)MaterialbigNum_Entry = tk.Entry(product, width=25)                #最大采购量
                MaterialbigNum_Entry.place(x=300, y=110)MaterialPrice_Entry = tk.Entry(product, width=15)MaterialPrice_Entry.place(x=175, y=140)MaterialCalculate_Entry = tk.Entry(product, width=15)MaterialCalculate_Entry.place(x=175, y=170)date_Entry = tk.Entry(product, width=30)date_Entry.place(x=175, y=200)BatchNumber_Entry = tk.Entry(product, width=15)BatchNumber_Entry.place(x=175, y=230)M_Specificetions_Entry = tk.Entry(product, width=15)M_Specificetions_Entry.place(x=175, y=260)Color_Entry = tk.Entry(product, width=15)Color_Entry.place(x=175, y=290)Hard_Entry = tk.Entry(product, width=15)Hard_Entry.place(x=175, y=320)SupplierID_Entry = tk.Entry(product, width=15)SupplierID_Entry.place(x=175, y=350, width=350)# 变量赋值

                def look_point():  # 在列表里继续插入(原材料)

                    # 输入编码,其余自动显示
                    var_MaterialID_Text = MaterialID_Entry.get()cursor = self.conn.cursor()cursor.execute("select * from material where `MaterialID`='%s'" % var_MaterialID_Text)self.conn.commit()data = cursor.fetchone()print(data[1])  # 获取到数据
                    var_MaterialName_Text = data[1]var_M_Category_Text = data[2]var_MateriralNum_Text = MaterialNum_Entry.get()num = data[12] - data[3]print(num)var_MaterialbigNum_Text = numvar_MaterialPrice_Text = data[4]var_MaterialCalculate_Text = data[5]var_date_Text = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在时间
                    var_BatchNumber_Text = data[7]var_M_Specificetions_Text = data[8]var_Color_Text = data[9]var_Hard_Text = data[10]var_SupplierID_Text = data[11]var_MateriralNum_Text = numMaterialName_Entry.insert('end', data[1])M_Category_Entry.insert('end', data[2])MaterialNum_Entry.insert('end', MaterialNum_Entry.get())MaterialbigNum_Entry.insert('end', '当前最大采购数量为:%d'%num)MaterialPrice_Entry.insert('end', data[4])MaterialCalculate_Entry.insert('end', data[5])date_Entry.insert('end', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))BatchNumber_Entry.insert('end', data[7])M_Specificetions_Entry.insert('end', data[8])Color_Entry.insert('end', data[9])Hard_Entry.insert('end', data[10])SupplierID_Entry.insert('end', data[11])def insert_point():                                             #在列表里继续插入(原材料)

                    #输入编码,其余自动显示
                    var_MaterialID_Text = MaterialID_Entry.get()cursor = self.conn.cursor()cursor.execute("select * from material where `MaterialID`='%s'" % var_MaterialID_Text )self.conn.commit()data = cursor.fetchone()print(data[1])  # 获取到数据

                    var_MaterialName_Text = data[1]var_M_Category_Text =data[2]var_MaterialNum_Text = MaterialNum_Entry.get()var_MaterialPrice_Text = data[4]var_MaterialCalculate_Text = data[5]var_date_Text =datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在时间
                    var_BatchNumber_Text =data[7]var_M_Specifications_Text = data[8]var_Color_Text = data[9]var_Hard_Text =data[10]var_SupplierID_Text = data[11]tree.insert('','end',values=(var_MaterialID_Text, var_MaterialName_Text,var_M_Category_Text,var_MaterialNum_Text,var_MaterialPrice_Text,var_MaterialCalculate_Text,var_date_Text, var_BatchNumber_Text, var_M_Specifications_Text,var_Color_Text,var_Hard_Text,var_SupplierID_Text))#数据插入原料入库表里

                    cursor = self.conn.cursor()sql = "INSERT INTO material_linshi(MaterialID, MaterialName,M_Category,MaterialNum,MaterialPrice,MaterialCalculate,date, BatchNumber, M_Specifications,Color,Hard,SupplierID) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');" % (var_MaterialID_Text, var_MaterialName_Text, var_M_Category_Text, var_MaterialNum_Text,var_MaterialPrice_Text, var_MaterialCalculate_Text, var_date_Text, var_BatchNumber_Text,var_M_Specifications_Text, var_Color_Text, var_Hard_Text, var_SupplierID_Text)  # 插入数据
                    cursor.execute(sql)self.conn.commit()tk.Button(product, text='查看', width=10, height=1, command=look_point).place(x=200, y=380)tk.Button(product, text='插入', width=10, height=1, command=insert_point).place(x=300,y=380)product.mainloop()tree.bind('<Double-Button-1>',treeviewClick)def __Entry(self,window):YLCG_MaterialID_Entry=tk.Entry(window,width=15)YLCG_MaterialID_Entry.place(x=175,y=83)YLCG_MaterialNum_Entry=tk.Entry(window,width=15)               #采购部门
        YLCG_MaterialNum_Entry.place(x=175,y=123)YLCG_MaterialNum_Entry.insert('end', '采购部')YLCG_date_Entry = tk.Entry(window, width=30)YLCG_date_Entry.place(x=175, y=83)YLCG_M_Specificetions_Entry = tk.Entry(window, width=17)YLCG_M_Specificetions_Entry.place(x=572, y=83)nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在时间
        YLCG_M_Specificetions_Entry.insert('end', nowTime)YLCG_Hard_Entry = tk.Entry(window, width=15)                 #备注
        YLCG_Hard_Entry.place(x=375, y=120, width=320)YLCG_SupplierID_Entry = tk.Entry(window, width=15)           #制单人
        YLCG_SupplierID_Entry.place(x=170, y=450)def show(self,window):self.__Entry(window)window.mainloop()YLCG=YLCG(window)
YLCG.show(window)window.mainloop()

ERP-库存与存货-原料采购单相关推荐

  1. Oracle ERP 库存管理(业务流程 核心流程) [转]

    Oracle ERP 库存管理(业务流程 核心流程) [转] 库存核心业务 库存管理的核心是对货物本身的管理,是对货物的数量与相关属性的管理,目的是为销售与采购服务,确保合理的库存保有量,处理库存分类 ...

  2. Oracle ERP 库存管理(业务流程 核心流程)

    库存核心业务 库存管理的核心是对货物本身的管理,是对货物的数量与相关属性的管理,目的是为销售与采购服务,确保合理的库存保有量,处理库存分类帐目与进出流水帐,以单据的形式基本涵盖仓库的各种进出库业务. ...

  3. EPICOR ERP 库存交易类型

    EPICOR ERP 库存交易类型     1.ADJ-CST 记录物料成本变化,包括5种交易 (1)减少物料成本 (2)增加物料成本 (3)根据标准成本追踪采购收货.如果采购收货成本高于标准成本,采 ...

  4. Qt编写ERP库存库房发货电子看板

    一.前言 有了之前可视化大屏电子看板系统的经验,要做这个ERP库存库房发货电子看板,可以说是水到渠成轻车熟路,技术难度比之前做过的各种大屏系统的子模块都要简单.由于库存库房发货数据的特殊性,基本上都是 ...

  5. 每一个合格的家庭主妇都是生产厂长的有力竞争者——ERP库存管理pandas代码示例(面试题)

    欢迎关注,敬请点赞! 每一个合格的家庭主妇都是生产厂长的有力竞争者--ERP简介及代码示例 ERP简介 ERP小故事 ERP库存管理简单代码示例 导入数据 按销量排序的索引列表 分配库存量 最终结果 ...

  6. 电子行业erp库存管理软件有哪些功能?

    ​随着社会信息化技术的不断深入发展, erp库存管理软件已经成为电子贸易企业必备的工具.行业想提升整体运作效率,就必须在库存管理方面下功夫,尤其是电子贸易行业,不少企业在库存管理工作混乱,导致出现库存 ...

  7. oracle erp的库存管理软件,教你如何充分利用ERP库存管理系统

    现如今,信息化的发展已经势不可挡,企业信息化也是一股必然趋势,那么该怎么实现工业化和信息化的完美融合呢?ERP管理系统能够帮助企业完成这一目标.和传统企业管理系统不同,ERP系统的主要功能是解决管理模 ...

  8. 库存与存货SQL脚本

    /* Navicat MySQL Data Transfer Source Server         : RDZ Source Server Version : 50703 Source Host ...

  9. html5 报表erp案例,ERP库存管理系统报表案例分析_泛普软件

    一.案例 现象1:一个产品由成百上千种物料组成,最终又可以分解为各种原辅材料,每种材料的批量和采购提前期都不相同,为了降低成本而又不影响生产,每种材料究竟应该在仓库里保存多少?这一直是企业非常关心的问 ...

最新文章

  1. 打牌软件可以控制吗_使用crm软件真的可以帮助企业省钱吗
  2. linux添加磁盘后进入grub,从硬盘安装 Linux 和从 GRUB 命令行启动操作系统
  3. pjax 历史管理 jQuery.History.js
  4. python3.x获取windows自启动程序列表
  5. 极致无边界!2021 神策数据 Tech-Day 即将开幕
  6. 步步为营-19-正则表达式的简单应用
  7. CRM WebClient UI outbound plug的使用
  8. Qt总结之七:QPaintEvent绘制雷达图(二)
  9. 硬盘引导扇区、多分区图、不通硬盘的LINUX逻辑分区数量
  10. 安卓中的乱码以及编码问题
  11. Apache Shiro框架简介
  12. 仿时钟表盘自定义view
  13. Drug Discov. Today | 药物发现中的先进机器学习技术
  14. css实现烟雾效果(css制作汽车尾气排放效果)
  15. ps-通道实现故障色彩效果
  16. wince tfp telnet
  17. java 调用 yed 绘制 流程图_让人一见倾心的流程图绘制软件yEd
  18. SLT2021: CONVERSATIONAL END-TO-END TTS FOR VOICE AGENTS
  19. java找最长连续号段,字符串—寻找最长连续子串
  20. Android后端工程师的要求,后端工程师的岗位职责和能力

热门文章

  1. ug908中文文档获取方式 | Xilinx
  2. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第三讲mysql8.0安装配置升级(中)
  3. linux安装包为什么要编译,不解:为什么程序需要安装而不是直接放编译好的可执行文件...
  4. javaee期末复习选择题
  5. E签宝的接口对接PHP代码演示
  6. The reference to entity “XX“ must end with the ‘;‘ delimiter.
  7. R语言使用glmnet包的glmnet函数拟合lasso回归模型:使用cv.glmnet函数获取最佳lambda值、coef函数获取每个特征的系数以及截距
  8. 事物的传播特性以及事物的隔离界别
  9. 2020开年最火css效果实现
  10. OpenStack Victoria版——6.2计算节点-Nova计算服务组件