%PDF- %PDF-
Direktori : /home/ugotscom/bos_naturals/resources/js/components/ |
Current File : /home/ugotscom/bos_naturals/resources/js/components/maintenancedetail5.vue |
<template> <div class="container" > <div class="row" v-for="user in users" :key="user.leadid"> <div class="col-md-9"> <div class="card"> <div class="card-body"> <div class="row"> <div class="col-md-9"> <p class="pending">Ticket Id {{id}}</p> <p>Request {{user.request}}</p> </div> <div class="col-md-3"> <p>{{user.created_at|fdate}}</p> </div> </div> <div class="row"> <div class="col-md"><p>{{user.location}}</p></div> <div class="col-md"></div> <div class="col-md"><p>{{user.property_id}} </p> </div> </div> <a v-b-toggle href="#edit-task" @click.prevent>Edit Lead Details</a> <b-sidebar id="add-file" class="w-50" title="Add file" right shadow backdrop backdrop-variant="dark"> <mfileupload :m_id="id" :clientid="clientid"/> </b-sidebar> <b-sidebar id="add-quote" class="w-50" title="Add Quote" right shadow backdrop backdrop-variant="dark"> <quoteupload :m_id="id" :clientid="clientid"/> </b-sidebar> <div class="row"> <ul class="progressbar"> <li v-for="page in totalPages" :key="page.id" v-bind:class="myBtnClass(page.id)"> {{ page.text }} </li> </ul> </div> </div> <div class="row"> <div class="card-body"> <ul class="nav nav-tabs nav-justified"> <li class="nav-item"> <a class="nav-link" @click.prevent="setActive('activity')" :class="{ active: isActive('activity') }" href="#activity">Activity</a> </li> <li class="nav-item"> <a class="nav-link" @click.prevent="setActive('notes')" :class="{ active: isActive('notes') }" href="#notes">Notes</a> </li> <li class="nav-item"> <a class="nav-link" @click.prevent="setActive('documents')" :class="{ active: isActive('documents') }" href="#documents">Documents</a> </li> <li class="nav-item"> <a class="nav-link" @click.prevent="setActive('contracts')" :class="{ active: isActive('contracts') }" href="#contractors">Contracts</a> </li> <li class="nav-item"> <a class="nav-link" @click.prevent="setActive('accounts')" :class="{ active: isActive('accounts') }" href="#accounts">Accounts</a> </li> <li class="nav-item"> <a class="nav-link" @click.prevent="setActive('pending')" :class="{ active: isActive('pending') }" href="#pending">Pending Payments</a> </li> </ul> <div class="tab-content py-3" id="myTabContent"> <div class="tab-pane fade" :class="{ 'active show': isActive('activity') }" id="activity"> <div class="uk-container uk-padding"> <div class="uk-timeline" > <div class="uk-timeline-item" v-for="activity in activities" :key="activity.id"> <div class="uk-timeline-icon"> <span class="uk-badge"><span uk-icon="check"></span></span> </div> <div class="uk-timeline-content"> <div class="uk-card uk-card-default uk-margin-medium-bottom uk-overflow-auto"> <div class="uk-card-header"> <div class="uk-grid-small uk-flex-middle" uk-grid> <h3 class="uk-card-title">{{activity.activity}}</h3> <span class="uk-label uk-label-success uk-margin-auto-left date-text">{{activity.activity_description}}</span> <span class="uk-label uk-label-success uk-margin-auto-left date-text">{{activity.created_at|fdate}}</span> </div> </div> <div class="uk-card-body"> <p class="uk-text-success"> </p> </div> </div> </div> </div> </div> </div> </div> <div class="tab-pane fade" :class="{ 'active show': isActive('documents') }" id="documents"> <h5>Site Inspection Images</h5> <img :src="'/store/'+id+'/'+doc.Foo" height="150px" width="150px" v-for="(doc, index) in imageDocs" :key="index"> <h5>Documents</h5> <div class="row"> <div class="col-md-3" v-for="file in allfiles" :key="file.id"> <div v-if="file.file_name.split('.').pop()=='pdf'"> <a :href="'../storage/uploads/'+file.file_name" target="_blank"> <i class="fa fa-file-pdf-o"></i><p class="filename">{{file.file_name}}</p></a> </div> <div v-else-if="file.file_name.split('.').pop()=='xlsx'"> <a :href="'../storage/uploads/'+file.file_name" target="_blank"> <i class="fa fa-file-excel-o" aria-hidden="true"></i><p class="filename">{{file.file_name}}</p></a> </div> <div v-else-if="file.file_name.split('.').pop()=='docx'"> <a :href="'../storage/uploads/'+file.file_name" target="_blank"> <i class="fa fa-file-word-o" aria-hidden="true"></i><p class="filename">{{file.file_name}}</p></a> </div> <div v-else> <a :href="'../storage/uploads/'+file.file_name" target="_blank"> <i class="fa fa-file-pdf-o"></i><p class="filename">{{file.file_name}}</p></a> </div> </div> </div> </div> <div class="tab-pane fade" :class="{ 'active show': isActive('contracts') }" id="contracts"> <h3>Clients Contract/Variation</h3> <table class="table table-bordered"> <thead> <tr> <th scope="col">Id</th> <th scope="col">Description</th> <th scope="col">Amount</th> <th scope="col">GST</th> <th scope="col">KFC</th> <th scope="col">Total</th> <th scope="col">Actions</th> </tr> </thead> <tbody> <tr v-for ="work in works" :key="work.m_w_id" :v-if="work.contract_type <= 2"> <th scope="row"></th> <td>{{work.description}}</td> <td class="text-left">{{work.basic_amount}}</td> <td class="text-left">{{work.gst}}</td> <td class="text-left">{{work.kfc}}</td> <td class="text-left">{{(work.basic_amount+work.gst+work.kfc).toFixed(2)}}</td> <td> <a @click="editContract(work.id)">Edit</a></td> </tr> </tbody> <tfoot> <tr> <td class="right" colspan="3">Total:</td><td></td><td></td><td class="text-left">{{(totalQuantity).toFixed(2)}}</td> </tr> </tfoot> </table> <h3>Sub Contracts</h3> <table class="table table-bordered"> <thead> <tr> <th scope="col">Contractor</th> <th scope="col">Description</th> <th scope="col">Amount</th> <th scope="col">GST</th> <th scope="col">KFC</th> <th scope="col">Total</th> <th scope="col">Actions</th> </tr> </thead> <tbody> <tr v-for ="work in subcontracts" :key="work.m_w_id" :v-if="work.contract_type <= 2"> <th scope="row">{{work.name}}</th> <td>{{work.description}}</td> <td class="text-left">{{work.Initial_contract}}</td> <td class="text-left">{{work.gst}}</td> <td class="text-left">{{work.kfc}}</td> <td class="text-left">{{(work.Initial_contract+work.gst+work.kfc).toFixed(2)}}</td> <td> <a @click="editsubContract(work.id)">Edit</a></td> </tr> </tbody> <tfoot> <tr> <td class="right" colspan="3">Total:</td><td></td><td></td><td class="text-left">{{(totalSubQuantity).toFixed(2)}}</td> </tr> </tfoot> </table> </div> <div class="tab-pane fade" :class="{ 'active show': isActive('accounts') }" id="accounts"> <table class="table table-bordered"> <thead> <tr> <th scope="col">#</th> <th scope="col">Date</th> <th scope="col">Client</th> <th scope="col">particular</th> <th scope="col">Expense/Payout</th> <th scope="col">Income</th> <th scope="col">Actions</th> </tr> </thead> <tbody> <tr v-for ="account in accounts" :key="account.id"> <th scope="row">{{account.id}}</th> <td>{{account.Date|fdate}}</td> <td>{{account.client_id}}</td> <td>{{account.particular}}</td> <td class="text-left">{{account.debit}}</td> <td class="text-left">{{account.credit}}</td> </tr> <tr> <td>Total</td> <td></td> <td></td> <td></td> <td class="text-left">{{totaldebit}}</td> <td class="text-left">{{totalcredit}}</td> </tr> </tbody> </table> <pagination :data="accounts" @pagination-change-page="getAccounts"></pagination> </div> <div class="tab-pane fade" :class="{ 'active show': isActive('pending') }" id="pending"> <table class="table table-bordered"> <thead> <tr> <th scope="col">Name</th> <th scope="col">Total Contract with var</th> <th scope="col">Paid</th> <th scope="col">Pending</th> </tr> </thead> <tbody> <tr> <td>client</td> <td class="text-left">{{(totalQuantity).toFixed(2)}}</td> <td class="text-left">{{(totalcredit).toFixed(2)}}</td> <td class="text-left">{{(totalQuantity-totalcredit).toFixed(2)}}</td> </tr> <tr v-for ="payment in payments" :key="payment.id"> <td>{{payment.contractor_name}}</td> <td class="text-left">{{payment.Total_contract}}</td> <td class="text-left">{{payment.Paid}}</td> <td class="text-left">{{payment.Total_contract-payment.Paid}}</td> </tr> </tbody> </table> </div> <div class="tab-pane fade" :class="{ 'active show': isActive('notes') }" id="notes"> <div v-for ="note in notes" :key="note.id"> <h5>{{note.created_at|fdate}}</h5> <p>{{note.notes}}</p> </div> </div> </div> </div> </div> </div> </div> <div class="col-md-3"> <b-dropdown id="dropdown-1" text="Actions" class="m-md-2"> <b-dropdown-item><a v-b-toggle href="#add-site-visit" @click.prevent>Add Site Visit</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-site-inspection" @click.prevent>Add Site Inspection Photos</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-task" @click.prevent>Add task</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-notes" @click.prevent>Add Notes</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#call-log" @click.prevent>Add Call Log</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-accounts" @click.prevent>Add Accounts</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-file" @click.prevent>Add File</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-quote" @click.prevent>Add Quote</a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-followup" @click.prevent>Add Follow Up Task </a></b-dropdown-item> <b-dropdown-item><a v-b-toggle href="#add-contractor" @click.prevent>Add Sub Contract</a></b-dropdown-item> <b-dropdown-item> <a v-b-toggle href="#add-contract-value" @click.prevent>Add Client Contracts </a></b-dropdown-item> </b-dropdown> <div class="card"> <div class="card-body"> <div v-for="user in clients" :key="user.id"> <div class="form-group"> <label for="name">Name:</label> <p>{{user.name}}</p> </div> <div class="form-group"> <label for="phone">Phone:</label> <p>+{{user.cc}}-{{user.phone}}</p> </div> <div class="form-group"> <label for="phone">Whatsapp No:</label> <p>+{{user.wcc}}-{{user.wphone}}</p> </div> <div class="form-group"> <label for="date">Created Date:</label> <p>{{user.created_at|fdate}}</p> </div> </div> </div> <label for="">Select Won/Rejected</label> <select class="form-control" v-model="selected" @change="updatestatus(selected)"> <option value="" disabled selected>Select Status</option> <option value="5">Won</option> <option value="6">Rejected</option> <option value="8">Lost</option> </select> </div> <!-- Call Log Sidebar --> <b-sidebar id="call-log" class="w-50" title="Add Call Log" right shadow backdrop backdrop-variant="dark"> <form action="" method="POST" @submit.prevent="addcalllog()" class="form-task"> <div class="form-group"> <label for="">Call Type</label> <select name="" id="" class="form-control"> <option value="outgoing">Outgoing</option> <option value="incoming">Incoming</option> </select> </div> <div class="form-group"> <label for="">Call Response</label> <select name="" id="" class="form-control"> <option value="Interested">Interested</option> <option value="Left Message">Left Message</option> <option value="No Response">No Response</option> <option value="Not Interested">Not Interested</option> <option value="Not able to reach">Not able to reach</option> </select> </div> <div class="form-group"> <label for="">Notes</label> <input type="text" class="form-control" v-model="activity_description"> </div> <button type="submit" value="submit" class="btn btn-primary">Submit</button> </form> </b-sidebar> <!-- Call Log Sidebar --> <b-sidebar id="add-task" class="w-50" title="Add Task" right shadow backdrop backdrop-variant="dark"> <addmaintenancetasks2 :projectid="id"/> </b-sidebar> <b-sidebar id="add-site-visit" ref="site-visit-sidebar" class="w-50" title="add-site-visit" right shadow backdrop backdrop-variant="dark"> <form action="" method="POST" @submit.prevent="addsitevisit()" class="form-task"> <div class="form-group"> <label for="assigned">Assign to</label> <select class="form-control" name="template" v-model="assigned"> <option v-for="staff in staffs" :key="staff.id" :value="staff.id"> {{ staff.name }} </option> </select> </div> <div class="form-group"> <label for="">Task</label> <input type="text" name="" id="" v-model="task" class="form-control"> </div> <div class="form-group"> <label for="">Task Description</label> <input type="text" name="" id="" v-model="description" class="form-control"> </div> <div class="form-group"> <label for="">Date</label> <input type="date" name="" id="" v-model="due_date" class="form-control"> </div> <button type="submit" value="submit" class="btn btn-primary">Submit</button> </form> </b-sidebar> <b-sidebar id="add-site-inspection" class="w-50" title="add-site-inspection" right shadow backdrop backdrop-variant="dark"> <form @submit="formSubmit" enctype="multipart/form-data"> <input type="file" class="form-control" v-on:change="onChange"> <button class="btn btn-primary btn-block">Upload</button> </form> </b-sidebar> </div> </div> <b-sidebar id="add-contract-value" class="w-50" title="Add Client" right shadow backdrop backdrop-variant="dark"> <form action="" method="POST" @submit.prevent="addcontractvalue()" class="form-task"> <label for="">Description</label> <input type="text" class="form-control" v-model="project_description"> <label for="">Select Contract</label> <select class="form-control" v-model="contract_type"> <option value="" disabled selected>Select Contract</option> <option value="1">Initial Contract</option> <option value="2">Variation</option> </select> <label for="">Client Amount</label> <input type="text" name="" class="form-control" v-model="contract_amount"> <label for="">GST %</label> <input type="text" class="form-control" v-model="gst"> <label for="">GST Amount</label> <input type="text" class="form-control" name="contract_gst" :value="calculateGst"> <label for="">KFC %</label> <input type="text" class="form-control" v-model="contract_kfc"> <label for="">KFC Amount</label> <input type="text" class="form-control" name="contract_Kfc" :value="calculateKfc"> <button type="submit" class="btn btn-primary">Submit</button> </form> </b-sidebar> <b-sidebar id="add-contractor" class="w-50" title="add-contractor" right shadow backdrop backdrop-variant="dark"> <addcontractor :m_id="this.id"/> </b-sidebar> <b-sidebar id="add-accounts" class="w-50" title="add-accounts" right shadow backdrop backdrop-variant="dark"> <addmaintenanceaccounts :projectid="this.id" :clientid="this.clientid"/> </b-sidebar> <b-sidebar id="add-followup" class="w-50" title="add-contractor" right shadow backdrop backdrop-variant="dark"> <form action="" method="POST" @submit.prevent="addfollowup()" class="form-task"> <h1>add Followup</h1> <label for="">Comment</label> <input type="text" name="" id="" class="form-control" v-model="followup_comment"> <label for="">Follow up date</label> <input type="date" class="form-control" v-model="followup_date"> <label for="assigned">Assign to</label> <select class="form-control" name="template" v-model="assigned"> <option v-for="staff in staffs" :key="staff.id" :value="staff.id"> {{ staff.name }} </option> </select> <button type="submit" value="submit" class="btn btn-primary">Submit</button> </form> </b-sidebar> <b-sidebar id="add-notes" class="w-50" title="add-notes" right shadow backdrop backdrop-variant="dark"> <form action="" method="POST" @submit.prevent="addnote()" class="form-task"> <label for="exampleFormControlTextarea1" class="form-label">Make a note</label> <textarea class="form-control" id="exampleFormControlTextarea1" rows="5" v-model="theNote"></textarea> <button type="submit" value="submit" class="btn btn-primary">Submit</button> </form> </b-sidebar> <b-sidebar id="edit-task" ref="site-visit-sidebar" class="w-50" title="edit-task" right shadow backdrop backdrop-variant="dark"> <form @submit.prevent="updateProduct()" class="task-form"> <div class="form-group"> <label for="task">property_name</label> <input type="text" class="form-control" name="task" v-model="maintenance.property_name" placeholder="Task"> </div> <div class="form-group"> <label for="task">Lead Description</label> <textarea class="form-control" id="exampleFormControlTextarea1" rows="5" v-model="maintenance.request"></textarea> </div> <div class="form-row"> <div class="form-group"> <label for="location">Location</label> <input type="text" class="form-control" name="location" v-model="maintenance.location"> </div> </div> <select name="" id="" class="form-control" v-model="maintenance.source"> <option value="1">Facebook</option> <option value="2">Website</option> <option value="3">Whatsapp</option> <option value="4">Direct Call</option> <option value="5">Instagram</option> <option value="6">Boards</option> </select> <button type="submit" value="submit" class="btn btn-primary">Update</button> </form> </b-sidebar> <b-sidebar id="edit-subcontracts" ref="site-visit-sidebar" class="w-50" title="edit-subcontracts" right shadow backdrop backdrop-variant="dark"> <form @submit.prevent="updatesubContracts()" class="task-form"> <div class="form-group"> <label for="task">property_name</label> <input type="text" class="form-control" name="task" placeholder="Task" v-model="subcontractDetails.project_name"> </div> <div class="form-group"> <label for="task">Lead Description</label> <textarea class="form-control" id="exampleFormControlTextarea1" rows="5" v-model="subcontractDetails.description"></textarea> </div> <div class="form-row"> <div class="form-group"> <label for="location">Basic Amount</label> <input type="text" class="form-control" name="location" v-model="subcontractDetails.Initial_contract"> </div> </div> <div class="form-group"> <label for="location">GST Amount</label> <input type="text" class="form-control" name="location" v-model="subcontractDetails.gst"> </div> <div class="form-group"> <label for="location">KFC Amount</label> <input type="text" class="form-control" name="location" v-model="subcontractDetails.kfc"> </div> <select name="" id="" class="form-control" > <option value="1">Facebook</option> <option value="2">Website</option> <option value="3">Whatsapp</option> <option value="4">Direct Call</option> <option value="5">Instagram</option> <option value="6">Boards</option> </select> <button type="submit" value="submit" class="btn btn-primary">Update</button> </form> </b-sidebar> <b-sidebar id="edit-contracts" ref="site-visit-sidebar" class="w-50" title="edit-contracts" right shadow backdrop backdrop-variant="dark"> <form @submit.prevent="updateContracts()" class="task-form"> <div class="form-group"> <label for="task">property_name</label> <input type="text" class="form-control" name="task" placeholder="Task" v-model="contractDetails.project_name"> </div> <div class="form-group"> <label for="task">Lead Description</label> <textarea class="form-control" id="exampleFormControlTextarea1" rows="5" v-model="contractDetails.description"></textarea> </div> <div class="form-row"> <div class="form-group"> <label for="location">Basic Amount</label> <input type="text" class="form-control" name="location" v-model="contractDetails.basic_amount"> </div> </div> <div class="form-group"> <label for="location">GST Amount</label> <input type="text" class="form-control" name="location" v-model="contractDetails.gst"> </div> <div class="form-group"> <label for="location">KFC Amount</label> <input type="text" class="form-control" name="location" v-model="contractDetails.kfc"> </div> <select name="" id="" class="form-control" > <option value="1">Facebook</option> <option value="2">Website</option> <option value="3">Whatsapp</option> <option value="4">Direct Call</option> <option value="5">Instagram</option> <option value="6">Boards</option> </select> <button type="submit" value="submit" class="btn btn-primary">Update</button> </form> </b-sidebar> </div> </template> <script> import mfileupload from './mfileupload' import quoteupload from './quoteupload' import addclients from './clients/addclients' import addcontractor from './addcontractor' import addmaintenanceaccounts from './addmaintenanceaccounts.vue' import addmaintenancetasks from './addmaintenancetasks.vue' import Addmaintenancetasks2 from './addmaintenancetasks2.vue' export default { components: { addmaintenanceaccounts, Addmaintenancetasks2 }, data(){ return { id:this.$route.params.id, clientid:'', users:[], tasks:[], staffs:[], contractors:[], properties:{}, property_for:'', property_type:'', property_name:'', location:'', min_budget:'', max_budget:'', sum:0, selected:'', activeItem: 'activity', status:'', followup_comment:'', followup_date:'', activities:[], works:[], subcontracts:[], accounts:[], propertyid:'', images:[], images2:[1,2,3,4], task:'', taskstatus:'', description:'', assigned:'', due_date:'', clients:[], contract_amount:'', contract_gst:'', contract_kfc:'', project_name:'', project_description:'', contract_type:'', payments:[], count:[], maintenance:{ request:"", description:"", location:"", source:"", }, contractDetails:{ project_name:"", description:"", basic_amount:"", gst:"", kfc:"", id:"", }, subcontractDetails:{ project_name:"", description:"", Initial_contract:"", gst:"", kfc:"", id:"", }, facilitySelected:[], docs:[], notes:[], editContracts:[], editsubContracts:[], theNote:'', gst:'', allfiles:[], items: [ { message: 'Foo' }, { message: 'Bar' } ], activeItem: 'activity', currentstep: 4, // totalPages: ['Enquiry','Sitevisit'], totalPages: [ { id: 1, text: "Enquiry" }, { id: 2, text: "Site Visit Assigned" }, { id: 3, text: "Quote In Progress" }, { id: 4, text: "Quoted" }, { id: 5, text: "Won/lost" } ], currentPage:4, current:1 } }, methods:{ loadusers(){ axios.get('/maintenance/maintenancedetails/'+this.id) .then(response => { this.users = response.data; this.clientid=response.data[0].client_id; this.propertyid=response.data[0].property_id; this.property_name=response.data[0].property_name; this.selected= response.data[0].status; this.maintenance.request =this.users[0].request this.maintenance.property_name =this.users[0].property_name this.maintenance.location =this.users[0].location this.maintenance.source =this.users[0].source axios.get('/client/clientdetails/'+this.clientid) .then(response => { this.clients = response.data; }) }) }, updateProduct() { axios.patch('/maintenances/'+this.id,this.maintenenace ) .then( response => this.$router.push({ path: '/viewmaintenance/'+this.id}) ); }, updateContracts() { axios.patch('/contractors/'+this.contractDetails.id,this.contractDetails ) .then(response => { this.$toaster.success('Contract Updated'), this.$root.$emit('bv::toggle::collapse','edit-contracts') this.loadworks() }) }, updatesubContracts() { axios.patch('/subcontracts/'+this.subcontractDetails.id,this.subcontractDetails ) .then(response => { this.$toaster.success('Sub Contract Updated'), this.$root.$emit('bv::toggle::collapse','edit-subcontracts') this.loadworks() }) }, loadactivities(){ axios.get('/maintenanceactivity/'+this.id) .then(response => { this.activities = response.data; }) }, loadNotes(){ axios.get('/maintenancenotes/notes/'+this.id).then(response=>{this.notes=response.data}) }, loadstaffs(){ axios.get('/users') .then(response => { this.staffs = response.data; }) }, editContract($id){ this.$root.$emit('bv::toggle::collapse','edit-contracts') axios.get('/contractors/editcontract/'+$id) .then(response => { this.editContracts = response.data; this.contractDetails.project_name =this.editContracts[0].project_name this.contractDetails.description =this.editContracts[0].description this.contractDetails.basic_amount =this.editContracts[0].basic_amount this.contractDetails.gst =this.editContracts[0].gst this.contractDetails.kfc =this.editContracts[0].kfc this.contractDetails.id =this.editContracts[0].id }) }, editsubContract($id){ this.$root.$emit('bv::toggle::collapse','edit-subcontracts') axios.get('/subcontracts/editsubcontract/'+$id) .then(response => { this.editsubContracts = response.data; this.subcontractDetails.project_name =this.editsubContracts[0].project_name this.subcontractDetails.description =this.editsubContracts[0].description this.subcontractDetails.Initial_contract =this.editsubContracts[0].Initial_contract this.subcontractDetails.gst =this.editsubContracts[0].gst this.subcontractDetails.kfc =this.editsubContracts[0].kfc this.subcontractDetails.id =this.editsubContracts[0].id }) }, loadcontractors(){ axios.get('/contractors') .then(response => { this.contractors = response.data; }) }, loadpayments(){ axios.get('/subcontracts/serviceDemand/'+this.id) .then(response => { this.payments = response.data; }) }, addnote(){ axios.post('/maintenancenotes/',{ m_id:this.id, notes:this.theNote, }) .then(response => { this.$toaster.success('Note Added'), this.$root.$emit('bv::toggle::collapse','add-notes') this.loadNotes() }) }, addcontractvalue(){ axios.post('/contractors/',{ project:this.id, contractor_id:this.clientid, basic_amount:this.contract_amount, contract_type:this.contract_type, gst:this.calculateGst, kfc:this.calculateKfc, project_name:this.property_name, project_description:this.project_description }) .then(response => { this.$toaster.success('Contract Value Added') this.$root.$emit('bv::toggle::collapse', 'add-contract-value'), this.loadcontractors() }) }, addfollowup(){ axios .post('/maintenanceactivity', { client_id:this.clientid, maintenance_id:this.id, activity: 'Follow up'+this.followup_date, status:1, activity_description:this.followup_comment, assigned:this.assigned, due_date:this.followup_date }) .then( axios.post('/tasks',{ client_id:this.clientid, property_id:this.id, task: 'Follow Up Maintenance Id'+this.id, status:1, description:this.followup_comment, assigned:this.assigned, due_date:this.followup_date }) .then(response => { }), this.$toaster.success('Site Visit Added'), this.$root.$emit('bv::toggle::collapse', 'add-followup'), this. loadactivities(), //window.location.reload() ); }, addsitevisit(){ axios .post('/tasks', { client_id:this.clientid, property_id:this.propertyid, task: this.task, status:1, description:this.description, assigned:this.assigned, due_date:this.due_date }) .then( axios.post('/maintenance/updatestatus/',{ id:this.id, client_id:this.clientid, assigned:this.assigned, due_date:this.due_date, status:2, }) .then(response => { }), this.$toaster.success('Site Visit Added'), this.$root.$emit('bv::toggle::collapse', 'add-site-visit'), this. loadactivities(), //window.location.reload() ); }, loadworks(){ axios.get('/contractors/details/'+this.id) .then(response => { this.works = response.data; }) }, loadclient(){ alert(this.clientid); axios.get('/client/clientdetails/'+this.clientid) .then(response => { this.clients = response.data; }) }, loaddocs(){ axios.get('/maintenance/getFiles/'+this.id) .then(response => { this.docs = response.data; }) }, dsds(){ axios.get('/maintenance/getDocs/'+this.id) .then(response => { this.allfiles = response.data; }) }, loadsubworks(){ axios.get('/subcontracts/subdetails/'+this.id) .then(response => { this.subcontracts = response.data; }) }, loadaccounts(){ axios.get('/maintenanceaccounts/'+this.id) .then(({data})=> (this.accounts = data)); }, getAccounts:function(page = 1) { axios.get('maintenanceaccounts/'+this.id+'?page=' + page) .then(response => { this.accounts = response.data; }); }, alert(){ alert(this.selected); }, updatestatus: function (id) { axios.post('/maintenance/updatestatus/',{ id:this.id, status:this.selected, }) .then(response => { }) window.location.reload() }, addcalllog: function () { axios.post('/maintenanceactivity/',{ client_id:this.clientid, maintenance_id:this.id, activity:'call Log', activity_description:this.activity_description, status:this.selected, }) .then(response => { }) }, loadproperties(){ axios.post('/properties/searchproperty', { property_for: this.property_for, property_type: this.property_type, location:this.location, min_budget:5000, max_budget:35000 }).then(response => { this.properties = response.data}) }, numberWithCommas(x) { return x.toString().split('.')[0].length > 3 ? x.toString().substring(0,x.toString().split('.')[0].length-3).replace(/\B(?=(\d{2})+(?!\d))/g, ",") + "," + x.toString().substring(x.toString().split('.')[0].length-3): x.toString(); }, isActive (menuItem) { return this.activeItem === menuItem }, setActive (menuItem) { this.activeItem = menuItem }, myBtnClass: function(name) { if(name<=this.selected) return 'active' else return 'mope' }, totalItem: function(){ this.works.forEach(function(work) { this.work.forEach(function(a) { this.sum += (parseFloat(a.basic_amount) + parseFloat(worak.gst) + parseFloat(a.kfc)); }); }); return sum; }, onImageChanges(e) { console.log(e); let files = e.target.files || e.dataTransfer.files; if (!files.length) return; for(let i=0;i<files.length;i++){ this.createImages(files[i]); } }, createImages(file) { let reader = new FileReader(); let vm = this; reader.onload = (e) => { vm.images.push(e.target.result); }; reader.readAsDataURL(file); }, removeImage(index) { this.images.splice(index, 1) }, onChange(e) { this.file = e.target.files[0]; }, formSubmit(e) { e.preventDefault(); let existingObj = this; const config = { headers: { 'content-type': 'multipart/form-data' } } let data = new FormData(); data.append('file', this.file); axios.post('/maintenance/inspectionimages/ ', data, config) .then(function (res) { existingObj.success = res.data.success; }) .catch(function (err) { existingObj.output = err; }); }, addSiteinspection(){ axios .post('/maintenance/inspectionimages/'+this.id, { avstatus: 100, images:this.images }) .then( this.$toaster.success('Status Updated'), // this. loadactivities(), // add toaster ); }, }, created: function(){ this.dsds(), this.loadusers(), this.loadsubworks(), this.loadworks(), this.loadpayments(), this.loaddocs(), this.loadstaffs(), this.loadactivities(), this.loadNotes(), this.loadcontractors(), this.loadaccounts(), this.totalItem(), this.loadclient() }, computed:{ totalQuantity: function(){ console.log(this.works); return this.works.reduce(function(total, item){ return total += parseFloat(item.basic_amount+item.gst+item.kfc); },0); }, totalIncome: function(){ return this.accounts.reduce(function(total, item){ return total += parseFloat(item.credit); },0); }, totalSubQuantity: function(){ console.log(this.subcontracts); return this.subcontracts.reduce(function(total, item){ return total += parseFloat(item.Initial_contract+item.gst+item.kfc); },0); }, imageDocs(){ return this.docs.filter(doc => doc.Fiz!='pdf'); }, pdfDocs(){ return this.docs.filter(doc => doc.Fiz=='pdf'); }, calculateGst: function() { return (((this.gst/100).toFixed(2) * this.contract_amount)) ; }, calculateKfc: function() { return (((this.contract_kfc/100).toFixed(2) * this.contract_amount)) ; }, totaldebit(){ var sum = this.accounts.reduce((acc, item) => acc + item.debit, 0); return sum; }, totalcredit(){ var sum = this.accounts.reduce((acc, item) => acc + item.credit, 0); return sum; }, } } </script> <style scoped> .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: #ffffff; background-color: #0d75dd; border-color: #dee2e6 #dee2e6 #f8fafc; } #tasks ul { padding: 0; margin: 0; list-style: none; } .progressbar { width: 100%; padding: 0%; } .progressbar li { list-style-type: none; width: 20%; float: left; font-size: 12px; position: relative; text-align: center; text-transform: uppercase; color: #7d7d7d; padding:10px; border: 1px solid #eee; background: #f3f2f2; } .progressbar li.active { color: white; font-weight: bold; background: #3aac5d; border-right: 1px solid #fff; } .progressbar li.active:before { border-color: #55b776; background: green; } .progressbar li.active + li:after { background-color: #55b776; } .date-text{ font-size:12px; } .fa-file-pdf-o{ text-align: center; display: block; font-size: 62px; color: #e31313; } .fa-file-excel-o{ text-align: center; display: block; font-size: 62px; color: #045716; } .fa-file-word-o{ text-align: center; display: block; font-size: 62px; color: #0e7eda; } .filename{ font-size:12px; text-decoration: none; } .pending { background: rgb(250, 192, 0); color: rgb(0, 0, 0); width: 100px; padding: 4px; padding-top: 4px; text-align: center; } .text-left{ text-align: right !important; } </style>