%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/ugotscom/bos_naturals/resources/js/components/
Upload File :
Create Path :
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>

Zerion Mini Shell 1.0