Example #1
0
def Entry_Goods_Receive_GA(request):
    if request.method == 'POST':
        form = NA_Goods_Receive_GA_Form(request.POST)
        if form.is_valid():
            try:
                result = form.save(request=request)
            except NAError as e:
                result = NAErrorHandler.handle(err=e)
        else:
            result = NAErrorHandler.handle_form_error(form_error=form.errors)
        return commonFunct.response_default(result)

    elif request.method == 'GET':
        statusForm = request.GET['statusForm']
        if statusForm == 'Edit' or statusForm == 'Open':
            idapp = request.GET['idapp']
            data, result = NAGaReceive.objects.retrieveData(idapp)
            if data == Data.Success:
                # result = [i for i in result][0]
                # if isinstance(result['datereceived'], datetime):
                #     result['datereceived'] = result['datereceived'].strftime(
                #         '%d/%m/%Y')

                # if isinstance(result['year_made'], date):
                #     result['year_made'] = result['year_made'].strftime('%Y')
                form = NA_Goods_Receive_GA_Form(initial=result)
            elif data == Data.Lost:
                return commonFunct.response_default((data, result))
        else:
            form = NA_Goods_Receive_GA_Form()
        return render(request,
                      'app/Transactions/NA_Entry_Goods_Receive_GA.html',
                      {'form': form})
Example #2
0
def Entry_Privilege(request):
    if request.method == 'POST':
        form = NAPrivilegeForm(request.POST)
        if form.is_valid():
            try:
                result = form.save(user=request.user.username)
            except NAError as e:
                result = NAErrorHandler.handle(err=e)
        else:
            result = NAErrorHandler.handle_form_error(form_error=form.errors)
        return commonFunct.response_default(result)
    elif request.method == 'GET':
        statusForm = request.GET['statusForm']
        if statusForm == 'Edit' or statusForm == 'Open':
            idapp = request.GET['idapp']
            data = NAPrivilege.objects.retrieveData(idapp)
            form = NAPrivilegeForm(initial=data)
            if int(data['role']) == NAPrivilege.GUEST:
                form.fields['divisi'].widget.attrs['disabled'] = ''
        else:
            form = NAPrivilegeForm()
            form.fields['password'].widget.attrs['required'] = ''
            form.fields['confirm_password'].widget.attrs['required'] = ''
            form.fields['divisi'].widget.attrs['disabled'] = ''
        return render(request, 'app/MasterData/NA_Entry_Privilege.html', {'form': form})
Example #3
0
def na_privilege_register(request):
    if request.method == 'POST':
        form = NAPrivilegeRegisterForm(request.POST, request.FILES or None)
        if form.is_valid():
            try:
                user = form.save()
            except NAError as e:
                error_column = NAErrorHandler.retrieve_integrity_column(err=e)
                error_field = NAErrorHandler.retrieve_integrity_field(
                    column=error_column,
                    model=NAPrivilege
                )
                message = {
                    error_field: (
                        '%s already exists' % NAPrivilege.HUMAN_DISPLAY.get(error_field)
                    )
                }
                return JsonResponse(message, status=400)
            login(request, user, backend='NA_DataLayer.NA_Auth.NA_AuthBackend')
            return redirect('home')
        else:
            _, err = NAErrorHandler.handle_form_error(form_error=form.errors, as_dict=True)
            return JsonResponse(err, status=400)
    else:
        form = NAPrivilegeRegisterForm()
        template_name = 'app/NA_User/register.html'
        if False:
            template_name = 'app/MasterData/na_privilege_register.html'
        return render(
            request,
            template_name,
            {'form': form}
        )
Example #4
0
def EntryEmployee(request):
    if request.method == 'POST':
        form = NA_Employee_form(request.POST)
        if form.is_valid():
            try:
                result = form.save(user=request.user.username)
            except NAError as e:
                # error kalau user salah input, ada form yang tidak di isi
                result = NAErrorHandler.handle(err=e)
        else:
            result = NAErrorHandler.handle_form_error(form_error=form.errors)
        return commonFunct.response_default(result)
    elif request.method == 'GET':
        idapp = request.GET['idapp']
        mode = request.GET['mode']
        employee = Employee()
        if mode == 'Edit' or mode == 'Open':
            try:
                result = Employee.objects.get(idapp=idapp)
            except employee.DoesNotExist:
                result = NAErrorHandler.handle_data_lost(model=Employee,
                                                         pk=idapp)
                return commonFunct.response_default(result)
            else:
                form = NA_Employee_form(initial=forms.model_to_dict(result))
                form.fields['nik'].widget.attrs['disabled'] = 'disabled'
        else:
            form = NA_Employee_form()
            del form.fields['inactive']
        return render(request, 'app/MasterData/NA_Entry_Employee.html',
                      {'form': form})
Example #5
0
 def post(self, request):
     form = NAExtendGaVnHistoryForm(request.POST)
     if form.is_valid():
         result = form.save()
     else:
         result = NAErrorHandler.handle_form_error(form_error=form.errors)
     return commonFunct.response_default(result)
Example #6
0
def na_privilege_login(request):
    if request.user.is_authenticated():
        return redirect(request.GET.get('next', '/'))
    else:
        title = "Login"
        cookie_data = {
            'is_ever_sign': True
        }
        cookie_key = '__na_cookie'
        if request.method == 'POST':
            form = NAPrivilegeLoginForm(request.POST or None)
            if form.is_valid():
                form.login(request)
                try:
                    next_action = request.META.get('HTTP_REFERER').split('?')[1]
                    next_action = next_action.replace('next=', '')
                except IndexError:
                    next_action = '/'
                else:
                    try:
                        resolve(next_action)
                    except Resolver404:
                        next_action = '/'
                response = JsonResponse({'redirect': next_action})
                cookie_data.update({
                    'role': int(request.user.role)
                })
                cookie_value = signing.dumps(cookie_data)  # Cryptographic: for security
                response.set_cookie(key=cookie_key, value=cookie_value)
                return response
            else:
                _, result = NAErrorHandler.handle_form_error(
                    form_error=form.errors,
                    as_dict=True
                )
                return JsonResponse(result, status=400)

        form = NA_Permission_Form()
        template_name = "app/NA_User/login.html"
        if request.COOKIES.get(cookie_key):
            cookie_data = signing.loads(request.COOKIES.get(cookie_key))
            if int(cookie_data.get('role')) in [NAPrivilege.SUPER_USER, NAPrivilege.USER]:
                template_name = "app/layout.html"
        return render(
            request,
            template_name,
            {"form": form, "title": title}
        )
Example #7
0
def change_role(request, email):
    try:
        user = NAPrivilege.objects.get(email=email)
        result = Data.Success,
    except NAPrivilege.DoesNotExist:
        result = NAErrorHandler.handle_data_lost(
            model=NAPrivilege,
            email=email
        )
    else:
        role = request.POST['role']
        divisi = request.POST['divisi']
        user.role = role
        user.divisi = divisi
        user.save()
    return commonFunct.response_default(result)
Example #8
0
def NA_Employee_delete(request):
    idapp = request.POST.get('idapp')
    try:
        employee = Employee.objects.get(idapp=idapp)
    except employee.DoesNotExist:
        result = NAErrorHandler.handle_data_lost(pk=idapp, model=Employee)
    else:
        if Employee.objects.hasRef(idapp=idapp):
            message = Message.HasRef_del.value
            return commonFunct.response_default((Data.HasRef, message))
        with transaction.atomic():
            log = LogActivity(models=Employee,
                              activity=LogActivity.DELETED,
                              user=request.user.username,
                              data=employee)
            log.record_activity()
            employee.delete()
            result = Data.Success,
    return commonFunct.response_default(result)
Example #9
0
def Delete_user(request):
    idapp = request.POST['idapp']
    try:
        user = NAPrivilege.objects.get(idapp=idapp)
    except NAPrivilege.DoesNotExist:
        result = NAErrorHandler.handle_data_lost(
            pk=idapp, model=NAPrivilege
        )
    else:
        with transaction.atomic():
            log = LogActivity(
                models=NAPrivilege,
                activity=LogActivity.DELETED,
                user=request.user.username,
                data=user
            )
            log.record_activity()
            user.delete()
            result = Data.Success,
    return commonFunct.response_default(result)
Example #10
0
def getReportAdHoc(request):
	"""main_display_add_hoc = ['GoodsName', 'BrandName', 'SerialNumber', 'Type',
	'DateReleased', 'ToEmployee', 'Equipment', 'Descriptions', 'Conditions', 'Eks_Employee', 'Sender']"""
	try:
		data = request.body
		data = json.loads(data)
		idapp = data['idapp']
		data = NAGoodsOutwards.objects.getReportAdHoc(idapp)[0]
		goods_name = data['GoodsName']

		response = HttpResponse(content_type='application/pdf')
		response['Content-Disposition'] = """inline; filename="Goods_Outwards_{goodsName}.pdf""".format(goodsName=goods_name)
		pdfReport = NA_GO_PDF("Goods_Outwards_{goodsName}".format(goodsName=goods_name))
		outputPDF = pdfReport.buildAddHocPDF(data)
		response.write(outputPDF)
		#return render_to_response('app/Transactions/NA_R_Goods_Outwards.html',
		#'result': outputPDF}, context_instance=RequestContext(request))
		return response
	except NAError as e:
		result = NAErrorHandler.handle(err=e)
		return HttpResponse(json.dumps({'message': result}), status=500, content_type='application/json')
Example #11
0
 def get(self, request):
     idapp = request.GET.get('idapp')
     try:
         ga_history = NAGaVnHistory.objects.get(idapp=idapp)
     except NAGaVnHistory.DoesNotExist:
         result = NAErrorHandler.handle_data_lost(model=NAGaVnHistory,
                                                  pk=idapp)
         return commonFunct.response_default(result)
     else:
         data = {
             'idapp': ga_history.idapp,
             'reg_no': ga_history.reg_no,
             'old_date_reg': ga_history.date_reg.strftime('%d/%m/%Y'),
             'old_expired_reg': ga_history.expired_reg.strftime('%d/%m/%Y'),
             'goods_name': ga_history.fk_app.fk_goods.goodsname,
             'brand': ga_history.fk_app.brand,
             'type_app': ga_history.fk_app.typeapp,
             'colour': ga_history.fk_app.colour,
             'invoice_no': ga_history.fk_app.invoice_no
         }
         form = NAExtendGaVnHistoryForm(initial=data)
     return render(request, 'app/Transactions/NA_Extend_GA_History.html',
                   {'form': form})
Example #12
0
def saveData(request):
    authentication_classes = []
    data = request.body
    #import ipdb

    Odata = json.loads(data, parse_float=Decimal)
    data = Odata['headerData'][0]

    ChangedHeader = str2bool(str(Odata['hasChangedHeader']))
    ChangedDetail = str2bool(str(Odata['hasChangedDetail']))
    dataDetail = Odata['dataForGridDetail']
    #ipdb.set_trace()
    totalReceived = data['totalreceived']
    desc = '('

    #dataDetail = object_list
    if len(dataDetail) > 0:
        detCount = len(dataDetail)
        #build descriptions
        for i in range(detCount):
            brandname = dataDetail[i]['brandname']
            if brandname == '':
                continue
            desc += brandname + ', Type : ' + dataDetail[i][
                'typeapp'] + ', SN : ' + dataDetail[i]['serialnumber']
            if i < detCount - 1:
                desc += ', '
            dataDetail[i].update(createdby=request.user.username if (
                request.user.username is not None
                and request.user.username != '') else 'Admin')
            dataDetail[i].update(modifiedby=request.user.username if (
                request.user.username is not None
                and request.user.username != '') else 'Admin')
    desc += ')'
    data.update(dataForGridDetail=dataDetail)
    #data['dataForGridDetail'] = dataForGridDetail
    data.update(descbysystem=desc)
    data.update(createdby=request.user.username if (
        request.user.username is not None and request.user.username != ''
    ) else 'Admin')
    data.update(modifiedby=request.user.username if (
        request.user.username is not None and request.user.username != ''
    ) else 'Admin')
    if len(dataDetail) != totalReceived:
        totalReceived = len(dataDetail)
    data.update(totalreceived=totalReceived)
    hasRefData = NAGoodsReceive.objects.hasReference(
        {
            'idapp': data['idapp'],
            'idapp_fk_goods': data['idapp_fk_goods'],
            'datereceived': data['datereceived']
        }, None)
    data.update(hasRefData=hasRefData)
    data.update(hasChangedHeader=ChangedHeader)
    data.update(hasChangedDetail=ChangedDetail)
    Oresult = (Data.Success, )
    try:
        result = NAGoodsReceive.objects.SaveData(data, StatusForm.Edit)
        if result != 'success':
            Oresult = (None, 'Unhandled error')
    except NAError as e:
        Oresult = NAErrorHandler.handle(err=e)
    return common.commonFunct.response_default(Oresult)