def asset_fix_report(request): context={} try: depts =Dept.objects.all() dept_default =ApDomain.objects.get(type='PROVINCE',code='CODE') context.update({'depts':depts,'dept_default':dept_default}) if request.POST: dept_id = '' if request.POST['slDept']: dept_id=request.POST['slDept'] dept_name =request.POST['hd_dept_name'] report_name =request.POST['slReportName'] from_date = request.POST["dtFromDate"] to_date = request.POST["dtToDate"] authorization = client.getAuthorization(request.user.username) type_extension ="" params_object = { "p_from_date":from_date, "p_to_date":to_date, "p_dept_id":dept_id, "p_dept_name":dept_name } if report_name=="RPTAssetAmortization": type_extension="PDF" else: type_extension="EXCEL" fileOut = client.exportReportByJasper(authorization, request.user.username, report_name, params_object,type_extension) return HttpResponseRedirect('/report/' + fileOut) except xmlrpclib.ProtocolError: context.update({'has_error':'Không kết nối được server report'}) except Exception as ex: context.update({'has_error':str(ex)}) context.update(csrf(request)) return render_to_response("report/report-fix.html", context, RequestContext(request))
def asset_project_report(request): context={} try: # projects=List.objects.filter(list_type="7") projects = List.objects.raw("SELECT a.id,a.name "+ "FROM list a "+ "WHERE a.list_type ='7'") lsProjects = [] for project in projects: row = {} row.update({'id':project.id}) row.update({'name':project.name}) lsProjects.append(row) context.update({'data':json.dumps(lsProjects,cls=DateEncoder)}) # context.update({"projects":projects}) if request.POST: project_id=request.POST['slProject'] authorization = client.getAuthorization(request.user.username) fileOut = client.exportAssetByProjectReport(authorization, project_id, request.user.username) return HttpResponseRedirect('/report/' + fileOut) except xmlrpclib.ProtocolError: context.update({'has_error':'Không kết nối được server report'}) except Exception as ex: context.update({'has_error':str(ex)}) context.update(csrf(request)) return render_to_response("report/report-asset-by-project.html", context, RequestContext(request))
def asset_sum_amortization_report(request): context={} try: depts =Dept.objects.all() dept_default =ApDomain.objects.get(type='PROVINCE',code='CODE') context.update({'depts':depts,'dept_default':dept_default}) if request.POST: dept_id = '' if request.POST['slDept']: dept_id=request.POST['slDept'] dept_name =request.POST['hd_dept_name'] from_date = request.POST["dtFromDate"] to_date = request.POST["dtToDate"] arrFromDate = from_date.split('/') arrTomDate = to_date.split('/') from_date ="01"+"/"+arrFromDate[1]+"/"+arrFromDate[2] to_date ="01"+"/"+arrTomDate[1]+"/"+arrTomDate[2] authorization = client.getAuthorization(request.user.username) params_object = { "p_from_date":from_date, "p_to_date":to_date, "p_dept_id":dept_id, "p_dept_name":dept_name } fileOut = client.exportReportByJasper(authorization, request.user.username, "RPTAssetAmortizationSum", params_object,"PDF") return HttpResponseRedirect('/report/' + fileOut) except xmlrpclib.ProtocolError: context.update({'has_error':'Không kết nối được server report'}) except Exception as ex: context.update({'has_error':str(ex)}) context.update(csrf(request)) return render_to_response("report/report-sum-amortization.html", context, RequestContext(request))
def card_asset(request): context={} try: ls_stock_asset_serials =StockAssetSerial.objects.filter(num_sub =0) stock_asset_serials=[] for st in ls_stock_asset_serials: row = {} row.update({'id':st.id}) row.update({'name':st.name}) row.update({'serial':st.serial}) stock_asset_serials.append(row) context.update({'data':json.dumps(stock_asset_serials,cls=DateEncoder)}) if request.POST: stock_asset_id=request.POST['slSerial'].strip() authorization = client.getAuthorization(request.user.username) if str(stock_asset_id) == '-1': for stock_asset_serials in ls_stock_asset_serials: params_object = { "p_stock_serial_id":str(stock_asset_serials.id) } client.exportReportByJasper(authorization, request.user.username, "RPTAssetSerial", params_object,"PDF") else: params_object = { "p_stock_serial_id":stock_asset_id } client.exportReportByJasper(authorization, request.user.username, "RPTAssetSerial", params_object,"PDF") # return HttpResponseRedirect('/report/' + fileOut) except xmlrpclib.ProtocolError: context.update({'has_error':'Không kết nối được server report'}) except Exception as ex: context.update({'has_error':str(ex)}) context.update(csrf(request)) return render_to_response("report/card-asset.html", context, RequestContext(request))
def asset_daily_report(request): context={} try: depts =Dept.objects.all() context.update({'depts':depts}) if request.POST: dept_id = '' dept_name = '-1' if request.POST['slDept']: dept_id=request.POST['slDept'] dept_name =request.POST['hd_dept_name'] from_date = request.POST["dtFromDate"] # to_date = request.POST["dtToDate"] # arrFromDate = from_date.split('/') # arrTomDate = to_date.split('/') # from_date ="01"+"/"+arrFromDate[1]+"/"+arrFromDate[2] # to_date ="01"+"/"+arrTomDate[1]+"/"+arrTomDate[2] authorization = client.getAuthorization(request.user.username) params_object = { "p_date":from_date, "p_dept_id":dept_id, "p_dept_name":dept_name } fileOut = client.exportReportByJasper(authorization, request.user.username, "rp_hientrang", params_object,"EXCEL") return HttpResponseRedirect('/report/' + fileOut) except xmlrpclib.ProtocolError: context.update({'has_error':'Không kết nối được server report'}) except Exception as ex: context.update({'has_error':str(ex)}) context.update(csrf(request)) return render_to_response("report/report-daily-asset.html", context, RequestContext(request))
def do_commit(request): try: if request.method == 'POST': file_id = request.POST["file-id"] real_file_name = request.POST["real-uploaded-file"] cursor = connection.cursor() cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'DD/MM/YYYY HH24:MI:SS.FF'") #font_err = xlwt.XFStyle() #font_err.font.colour_index = xlwt.Style.colour_map['red'] #font_success = xlwt.XFStyle() #font_success.font.colour_index = xlwt.Style.colour_map['blue'] #copy file p_error = cursor.var(cx_Oracle.STRING).var cursor.callproc("pck_import.import_asset_serial",(p_error,file_id)) log='' if(p_error.getvalue() is not None): log=p_error.getvalue() return HttpResponse(json.dumps({"handle":"error", "message": log}),content_type="application/json;charset=utf-8") else: log='Commit thành công' authorization = client.getAuthorization(request.user.username) params_object = { "p_file_id":file_id, "p_file_name":real_file_name, } fileOut = client.exportReportByJasper(authorization, request.user.username, "ketqua_import_ts", params_object,"EXCEL") return HttpResponse(json.dumps({"handle":"success","result":log,"result_file":fileOut},encoding='utf-8') ,content_type="application/json;charset=utf-8") except Exception as ex: return HttpResponse(json.dumps({"handle":"error", "message": str(ex)}),content_type="application/json;charset=utf-8")
def view_device_report(request): context = {'devices':Device.objects.all().order_by("code","name","address"),'areas':Area.objects.filter(status="1").order_by("woodenleg","code")} if(request.POST) : device_id = request.POST["slDevice"] area_id = request.POST["slArea"] device_status = request.POST["slStatus"] authorization = client.getAuthorization() fileOut = client.exportDeviceReport(authorization,device_id,area_id,device_status) return HttpResponseRedirect('/report/'+fileOut) context.update(csrf(request)) return render_to_response("report/device-report.html", context,RequestContext(request))
def view_sensor_mirror_report(request): context = {'devices':Device.objects.all().order_by("code","name","address"),'areas':Area.objects.filter(status="1").order_by("woodenleg","code")} context.update({'properties':DeviceProperties.objects.filter(require='0')}) if(request.POST) : device_id = request.POST["slDevice"] area_id = request.POST["slArea"] device_status = request.POST["slStatus"] property_id = request.POST["slProperty"] from_date = request.POST["dtFromDate"] to_date = request.POST["dtToDate"] authorization = client.getAuthorization() fileOut = client.exportSensorMirrorReport(authorization,device_id,area_id,device_status,property_id,from_date,to_date) return HttpResponseRedirect('/report/'+fileOut) context.update(csrf(request)) return render_to_response("report/sensor-mirror-report.html", context,RequestContext(request))
def view_reason_report(request): context = {} if request.POST : reason_code = request.POST['txtReasonCode'] reason_name = request.POST['txtReasonName'] reason_status = request.POST['optStatus'] authorization = client.getAuthorization(request.user.username) params_object = { "p_reason_code":reason_code, "p_reason_name":reason_name, "p_reason_status":reason_status } fileOut = client.exportReportByJasper(authorization, request.user.username, "reason_list", params_object,"EXCEL") return HttpResponseRedirect('/report/' + fileOut) context.update(csrf(request)) return render_to_response("report/reason-report.html", context, RequestContext(request))
def view_device_report(request): context = { 'devices': Device.objects.all().order_by("code", "name", "address"), 'areas': Area.objects.filter(status="1").order_by("woodenleg", "code") } if (request.POST): device_id = request.POST["slDevice"] area_id = request.POST["slArea"] device_status = request.POST["slStatus"] authorization = client.getAuthorization() fileOut = client.exportDeviceReport(authorization, device_id, area_id, device_status) return HttpResponseRedirect('/report/' + fileOut) context.update(csrf(request)) return render_to_response("report/device-report.html", context, RequestContext(request))
def view_Asset_Inventory_report(request): try: context = {} capitals = List.objects.filter(list_type="3") context.update({'capitals':capitals}) if request.POST : capital_id = request.POST['optCapital'] authorization = client.getAuthorization(request.user.username) params_object = { "p_capital_id":capital_id } fileOut = client.exportReportByJasper(authorization, request.user.username, "RPTAssetInventory_Summarize", params_object,"EXCEL") return HttpResponseRedirect('/report/' + fileOut) context.update(csrf(request)) except Exception as ex: context.update({'has_error':str(ex)}) return render_to_response("report/report-verify-asset-summarize.html", context, RequestContext(request))
def view_sensor_mirror_report(request): context = { 'devices': Device.objects.all().order_by("code", "name", "address"), 'areas': Area.objects.filter(status="1").order_by("woodenleg", "code") } context.update( {'properties': DeviceProperties.objects.filter(require='0')}) if (request.POST): device_id = request.POST["slDevice"] area_id = request.POST["slArea"] device_status = request.POST["slStatus"] property_id = request.POST["slProperty"] from_date = request.POST["dtFromDate"] to_date = request.POST["dtToDate"] authorization = client.getAuthorization() fileOut = client.exportSensorMirrorReport(authorization, device_id, area_id, device_status, property_id, from_date, to_date) return HttpResponseRedirect('/report/' + fileOut) context.update(csrf(request)) return render_to_response("report/sensor-mirror-report.html", context, RequestContext(request))
def verify_asset_report(request): context = {} try: capitals = List.objects.filter(list_type="3") statuses = List.objects.filter(list_type="4") context.update({'capitals':capitals,'statuses':statuses}) if request.POST : capital_id = request.POST['optCapital'] use_date = request.POST['dtUseDate'] status = request.POST['optStatus'] authorization = client.getAuthorization(request.user.username) params_object = { "p_capital_id":capital_id, "p_use_date":use_date, "p_status":status } fileOut = client.exportReportByJasper(authorization, request.user.username, "RPTAssetInventory", params_object,"EXCEL") return HttpResponseRedirect('/report/' + fileOut) except xmlrpclib.ProtocolError: context.update({'has_error':'Không kết nối được server report'}) except Exception as ex: context.update({'has_error':str(ex)}) context.update(csrf(request)) return render_to_response("report/report-verify-asset.html", context, RequestContext(request))
def index(request): context = {} try: assets = Asset.objects.all() context.update({'assets':assets, 'reasons':Reason.objects.filter(group_code='3'), 'methods':List.objects.filter(list_type='6'), 'sources':List.objects.filter(list_type='3')}) context.update({'countries':Country.objects.all()}) context.update({'suppliers':Supplier.objects.all()}) context.update({'depts':Dept.objects.all()}) context.update({'stocks':Stock.objects.all()}) context.update({'goals':List.objects.filter(list_type='2')}) context.update({'states':List.objects.filter(list_type='4')}) context.update({'staffs':Staff.objects.all()}) if request.POST: # Get parameter serial_source_id = request.POST["slSerialSource"] username = request.user.username stock_des_id = request.POST["slStockDes"] reason_id = request.POST["slReason"] note = request.POST["txtNote"] decisionno=request.POST["txtDecisionNo"] decisionername=request.POST["txtDecisionerName"] decision_date=request.POST["dt_Decision"] print('decisionno : '+decisionno) stockAssetSerial = StockAssetSerial.objects.get(id=serial_source_id) stock_source_id = stockAssetSerial.stock.id asset_source_id = stockAssetSerial.asset.id dept_source_id = stockAssetSerial.stock.dept.id p_serial = stockAssetSerial.serial dtTransfer = request.POST["dt_transfer"] staff_id =request.POST["slStaff"] cursor = connection.cursor() cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'DD/MM/YYYY HH24:MI:SS.FF'") p_error = cursor.var(cx_Oracle.STRING).var cursor.callproc("pck_stock_trans.change_stock_asset_serial", ( #p_error p_error, #p_stock_id stock_source_id, #p_ie_stock_id stock_des_id, #p_asset_id asset_source_id, #p_serial p_serial, #p_date dtTransfer, #p_reason_id reason_id, # #p_dept_id dept_source_id, #p_staff_id staff_id, #p_username username, #p_note note, #p_decision_no, decisionno, #p_decisioner decisionername, #p_decision_date decision_date )) cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'") cursor.close() if p_error.getvalue() is not None: raise Exception(p_error.getvalue()) else: report_name ='RPTAssetDelivery' type_extension="DOCX" authorization = client.getAuthorization(request.user.username) params_object = { "p_stock_asset_serial_id":'1', } fileOut=client.exportReportByJasper(authorization, request.user.username, report_name, params_object,type_extension) return HttpResponseRedirect('/report/' + fileOut) context.update({'has_success':_(u"Chuyển đổi thành công")}) except Exception as ex: context.update({'has_error':str(ex)}) finally: context.update(csrf(request)) return render_to_response("asset/transfer-asset.html", context, RequestContext(request))
def index(request): try: context={} ap = ApDomain.objects.get(type='AMORTIZE_MONTH') context.update({'amortize_mon':ap.name}) sql = '''SELECT a.* from stock_asset_serial a,stock b WHERE a.stock_id=b.stock_id and b.dept_id in (select dept_id from staff where lower(staff_code)=lower(%s)) ''' assets = StockAssetSerial.objects.raw(sql,[request.user.username]) context.update({"assets":assets}) if(request.POST): submitForm=request.POST['submitForm'] if submitForm=='calculate': month=request.POST['dtAmortizeMonth'] dtmonth = datetime.strptime(month, '%m/%Y') serial=request.POST['slAssetSerial'] cursor=connection.cursor() p_out_error=cursor.var(cx_Oracle.STRING).var p_amount=cursor.var(cx_Oracle.NUMBER).var cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'DD/MM/YYYY HH24:MI:SS.FF'") cursor.callproc("pck_asset.calc_amortize",(p_out_error,p_amount,serial.strip(),dtmonth,request.user.username)) cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'") cursor.close() if p_out_error.getvalue() is not None: print p_out_error.getvalue() context.update({"has_error":p_out_error.getvalue()}) else: amortizeAssets=None if serial.strip()!='': #amortizeAssets = AmortizeAsset.objects.filter(month=dtmonth,serial_no=serial).order_by("status") amortizeAssets = AmortizeAsset.objects.raw("""SELECT a.id,serial_no, a.month,b.capital_id , (SELECT code||'-'||name FROM LIST WHERE list_type='3' AND id=b.capital_id) capital_name, b.amount,b.adjustment,b.original_value,b.sta_of_cycle,(b.original_value-(b.sta_of_cycle+ b.amount+b.adjustment)) remain,b.end_of_cycle, b.status,b.amortize_id,((SELECT code||'-'||name FROM LIST WHERE list_type='6' AND id=b.amortize_id)) amortize_name,b.stock_asset_serial_id FROM asset_amortize a,asset_amortize_capital b WHERE a.id=b.asset_amortize_id AND a.status='00' AND a.MONTH=to_date("""+"'"+month+"'"+""",'mm/yyyy') AND serial_no="""+"'"+serial+"'") else: #amortizeAssets = AmortizeAsset.objects.filter(month=dtmonth) amortizeAssets = AmortizeAsset.objects.raw("""SELECT a.id,serial_no, a.month,b.capital_id , (SELECT code||'-'||name FROM LIST WHERE list_type='3' AND id=b.capital_id) capital_name, b.amount,b.adjustment,b.original_value,b.sta_of_cycle,(b.original_value-(b.sta_of_cycle+ b.amount+b.adjustment)) remain,b.end_of_cycle, b.status,b.amortize_id,((SELECT code||'-'||name FROM LIST WHERE list_type='6' AND id=b.amortize_id)) amortize_name,b.stock_asset_serial_id FROM asset_amortize a,asset_amortize_capital b WHERE a.id=b.asset_amortize_id AND a.status='00' AND a.MONTH=to_date("""+"'"+month+"'"+""",'mm/yyyy')""") context.update(({"amortize_assets": amortizeAssets})) context.update({"has_success":"Tính khấu hao thành công!"}) authorization = client.getAuthorization(request.user.username) params_object = { "p_month":month, "p_serial":serial, } fileOut = client.exportReportByJasper(authorization, request.user.username, "RPTExportAmortize", params_object,"EXCEL") return HttpResponseRedirect('/report/' + fileOut) #return HttpResponse(json.dumps({"handle":"success","result_file":fileOut},encoding='utf-8') ,content_type="application/json;charset=utf-8") #authorization = client.getAuthorization(request.user.username) #params_object = { # "p_month":month, # "p_serial":serial, # } #fileOut = client.exportReportByJasper(authorization, request.user.username, "RPTExportAmortize", params_object,"EXCEL") #return HttpResponse(json.dumps({"handle":"success","result_file":fileOut},encoding='utf-8') ,content_type="application/json;charset=utf-8") else: strChoosen=request.POST['txtChooseAsset'] list_choosen=strChoosen.split(';') cursor=connection.cursor() p_error='' for child_amotize in list_choosen: infos=child_amotize.split(":") p_serial=infos[0] p_month=infos[1] p_out_error=cursor.var(cx_Oracle.STRING).var p_out_amount=cursor.var(cx_Oracle.NUMBER).var cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'DD/MM/YYYY HH24:MI:SS.FF'") cursor.callproc("pck_asset.approve_amortize",(p_out_error,p_out_amount,p_serial.strip(),datetime.strptime(p_month,"%m/%Y"),request.user.username)) cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS' " "NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'") if p_out_error.getvalue() is not None: p_error=p_error+p_out_error.getvalue()+"<br/>" else: amortizeAssets=None #b.amount,b.adjustment,b.original_value,b.sta_of_cycle,(b.original_value-(b.sta_of_cycle+b.amount+b.adjustment)) remain, if p_serial.strip()!='': #amortizeAssets = AmortizeAsset.objects.filter(month=dtmonth,serial_no=serial).order_by("status") amortizeAssets = AmortizeAsset.objects.raw("""SELECT a.id,serial_no, a.month,b.capital_id , (SELECT code||'-'||name FROM LIST WHERE list_type='3' AND id=b.capital_id) capital_name, b.amount,b.adjustment,b.original_value,b.sta_of_cycle,(b.original_value + (b.remain - b.pre_remain) - (b.sta_of_cycle+b.amount+b.adjustment)) remain, b.status,b.amortize_id,((SELECT code||'-'||name FROM LIST WHERE list_type='6' AND id=b.amortize_id)) amortize_name,b.stock_asset_serial_id FROM asset_amortize a,asset_amortize_capital b WHERE a.id=b.asset_amortize_id AND a.status='02' AND a.MONTH=to_date("""+"'"+p_month+"'"+""",'mm/yyyy') AND serial_no="""+"'"+p_serial+"'") else: #amortizeAssets = AmortizeAsset.objects.filter(month=dtmonth) amortizeAssets = AmortizeAsset.objects.raw("""SELECT a.id,serial_no, a.month,b.capital_id , (SELECT code||'-'||name FROM LIST WHERE list_type='3' AND id=b.capital_id) capital_name, b.amount,b.adjustment,b.original_value,b.sta_of_cycle,(b.original_value + (b.remain - b.pre_remain) - (b.sta_of_cycle+ b.amount+b.adjustment)) remain, b.status,b.amortize_id,((SELECT code||'-'||name FROM LIST WHERE list_type='6' AND id=b.amortize_id)) amortize_name,b.stock_asset_serial_id FROM asset_amortize a,asset_amortize_capital b WHERE a.id=b.asset_amortize_id AND a.status='02' AND a.MONTH=to_date("""+"'"+p_month+"'"+""",'mm/yyyy')""") context.update(({"amortize_assets": amortizeAssets})) cursor.close() if p_error.strip()!='': context.update({"has_error":p_error}) context.update({"has_success":"Duyệt thành công!"}) return render_to_response("asset/amortize-asset.html",context, RequestContext(request)) except Exception as ex: return HttpResponse(json.dumps({"has_error": str(ex)}),content_type="application/json")