示例#1
0
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))
示例#2
0
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))
示例#3
0
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))
示例#4
0
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))
示例#5
0
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")
示例#6
0
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))
示例#7
0
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))
示例#8
0
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))
示例#10
0
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")