Beispiel #1
0
    public static function ProjectReport()
    {
        $project = Project::GetProject($_GET['sid']);
        //, $_GET['period'], $_GET['all']
        echo '
				<div class="logo">
				  <h5 style="margin-bottom:-15px;margin-top:0px;font-size:14px;">Date: ' . date('d/m/Y') . '</h5>
				  <h4>' . $project->name . '</h4><h5>CLIENT: ' . $project->client->name . '</h5>';
        /*if ($_GET['period'] != '' && $_GET['period'] ) {
        			echo '<h5 style="margin-top:-10px">Period: '.$_GET['period'].'</h5>';
        		}	*/
        echo '</div>
				<h5>PROJECT ACTIVITIES</h5>
				<table class="table table-bordered table-striped" style="text-align:center;margin-left:0;margin-right:0;width:760px;font-size:12px;">
			      <thead class="title">
			        <tr>
			          <td>NO</td>
			          <td>SERVICE</td>
			          <td>TASK</td>
			          <td>QTY</td>
			          <td>DATE PROPOSED</td>
			          <td>DATE EXECUTED</td>
					  <td>STATUS</td>
			        </tr>
			      </thead>
			      <tbody>';
        $count = 1;
        foreach ($project->activities as $activity) {
            if ($activity->status == 0) {
                $status = '<td style="color: #027c97">SCHEDULED</td>';
            } elseif ($activity->status == 1) {
                $status = '<td style="color: #e8e624">ON GOING</td>';
            } elseif ($activity->status == 2) {
                $status = '<td style="color: #e81c34">STALLED</td>';
            } elseif ($activity->status == 3) {
                $status = '<td style="color: #27c97b">COMPLETED</td>';
            } elseif ($activity->status == 4) {
                $status = '<td style="color: #9c2488">SUSPENDED</td>';
            }
            echo '<tr>
			      <td>' . $count . '</td>
			      <td>' . $activity->service . '</td>
			      <td>' . $activity->task . '</td>
			      <td>' . $activity->instances . '</td>
			      <td>' . $activity->requestDate . '</td>
			      <td>' . $activity->executionDate . '</td>' . $status . '
			      </tr>';
            $count++;
        }
        echo '</tbody>
			    </table>';
        echo '<h5>QUOTED ITEMS</h5>
					<table class="table table-bordered table-striped" style="text-align:center;margin-left:0;margin-right:0;width:760px;font-size:12px;">
			      <thead class="title">
			        <tr>
			          <td>NO</td>
			          <td>SERVICE</td>
			          <td>DESCRIPTION</td>
			          <td>QTY</td>
			          <td>UNIT PRICE</td>
			          <td>VAT</td>
			          <td>SUB-TOTAL</td>					  
			        </tr>
			      </thead>
			      <tbody>';
        $count = 1;
        $amount = 0.0;
        foreach ($project->quotations as $quote) {
            foreach ($quote->lineItems as $item) {
                echo '<tr>
				      <td>' . $count . '</td>
				      <td>' . $item->itemName . '</td>
				      <td>' . $item->itemDesc . '</td>
				      <td>' . $item->quantity . '</td>
				      <td>' . $item->unitPrice . '</td>
				      <td>' . $item->tax . '</td>
				      <td><script>document.writeln((' . ($item->quantity * $item->unitPrice + $item->quantity * $item->unitPrice * $item->tax / 100) . ').formatMoney(2, \'.\', \',\'));</script></td>
				      </tr>';
                $count++;
            }
            $amount += $quote->total;
        }
        echo '</tbody>
			    </table>
			    <div class="logo">
			    <h5 style="margin: 5px 0 0 5px;float:right">Total Quoted: <b>Ksh. <script>document.writeln((' . $amount . ').formatMoney(2, \'.\', \',\'));</script></b></h5>				    
			   </div>';
        $invoices = SalesInvoice::GetProjectInvoices($_GET['sid'], $project->client);
        echo '<h5>INVOICED ITEMS</h5>
					<table class="table table-bordered table-striped" style="text-align:center;margin-left:0;margin-right:0;width:760px;font-size:12px;">
			      <thead class="title">
			        <tr>
			          <td>NO</td>
			          <td>DATE</td>
			          <td>ITEM</td>
			          <td>DESCRIPTION</td>
			          <td>QTY</td>
			          <td>UNIT PRICE</td>
			          <td>VAT</td>
			          <td>SUB-TOTAL</td>					  
			        </tr>
			      </thead>
			      <tbody>';
        $count = 1;
        $amount = 0.0;
        foreach ($invoices as $invoice) {
            foreach ($invoice->lineItems as $item) {
                echo '<tr>
				      <td>' . $count . '</td>
				      <td>' . $invoice->date . '</td>
				      <td>' . $item->itemName . '</td>
				      <td>' . $item->itemDesc . '</td>
				      <td>' . $item->quantity . '</td>
				      <td>' . $item->unitPrice . '</td>
				      <td>' . $item->tax . '</td>
				      <td><script>document.writeln((' . ($item->quantity * $item->unitPrice + $item->quantity * $item->unitPrice * $item->tax / 100) . ').formatMoney(2, \'.\', \',\'));</script></td>
				      </tr>';
                $count++;
            }
            $amount += $invoice->total->amount;
        }
        echo '</tbody>
			    </table>
			    <div class="logo">
			    <h5 style="margin: 5px 0 0 5px;float:right">Total Invoiced: <b>Ksh. <script>document.writeln((' . $amount . ').formatMoney(2, \'.\', \',\'));</script></b></h5>				    
			   </div>';
        $expenses = ExpenseVoucher::GetProjectVouchers($_GET['sid'], $project->client);
        echo '<h5>PROJECT EXPENSES</h5>
					<table class="table table-bordered table-striped" style="text-align:center;margin-left:0;margin-right:0;width:760px;font-size:12px;">
			      <thead class="title">
			        <tr>
			          <td>NO</td>
			          <td>DATE</td>
			          <td>PARTY</td>
			          <td>DESCRIPTION</td>
			          <td>AMOUNT</td>				  
			        </tr>
			      </thead>
			      <tbody>';
        $count = 1;
        $amount = 0.0;
        foreach ($expenses as $expense) {
            foreach ($expense->items as $item) {
                echo '<tr>
				      <td>' . $count . '</td>
				      <td>' . $expense->date . '</td>
				      <td>' . $item->claimant->name . '</td>
				      <td>' . $item->description . '</td>
				      <td><script>document.writeln((' . $item->adjusted . ').formatMoney(2, \'.\', \',\'));</script></td>
				      
				      </tr>';
                $count++;
                $amount += $item->adjusted;
            }
        }
        echo '</tbody>
			    </table>
			    <div class="logo">
			    <h5 style="margin: 5px 0 0 5px;float:right">Total Expensed: <b>Ksh. <script>document.writeln((' . $amount . ').formatMoney(2, \'.\', \',\'));</script></b></h5>				    
			   </div>';
        $payments = ReceiptVoucher::GetProjectReceipts($_GET['sid']);
        echo '<h5>RECEIVED PAYMENTS</h5>
					<table class="table table-bordered table-striped" style="text-align:center;margin-left:0;margin-right:0;width:760px;font-size:12px;">
			      <thead class="title">
			        <tr>
			          <td>REC. NO</td>
			          <td>DATE</td>
			          <td>AMOUNT</td>
			          <td>VOUCHER</td>
			          <td>DESCRIPTION</td>			  
			        </tr>
			      </thead>
			      <tbody>';
        $amount = 0.0;
        if (count($payments) > 0) {
            foreach ($payments as $payment) {
                echo '<tr>
					    <td>' . $payment['id'] . '</td>
					    <td>' . $payment['datetime'] . '</td>
					    <td><script>document.writeln((' . $payment['amount'] . ').formatMoney(2, \'.\', \',\'));</script></td>
					    <td>' . $payment['voucher_no'] . '</td>
					    <td>' . $payment['description'] . '</td>					    
					   </tr>';
                $amount += $payment['amount'];
            }
        }
        echo '</tbody>
			    </table>
			    <div class="logo">
			    <h5 style="margin: 5px 0 0 5px;float:right">Total Received: <b>Ksh. <script>document.writeln((' . $amount . ').formatMoney(2, \'.\', \',\'));</script></b></h5>				    
			   </div>';
    }
Beispiel #2
0
 public static function GenerateCashCreditNote($clientid, $invoice, $credit, $description)
 {
     $client = Client::GetClient($clientid);
     $description = 'Credit Note (Inv: ' . $invoice . ') - ' . $description;
     $inv = SalesInvoice::GetInvoice($invoice);
     if ($inv->total->amount < $inv->credit->amount + $credit) {
         return false;
     }
     $crnote = CreditNote::CreateCashCreditNote($client, $invoice, $credit, $description);
     if ($crnote->generate()) {
         return new SalesTX($crnote, 'Credit Note');
     } else {
         Logger::Log('SalesTX', 'Failed', 'Credit Note transaction with id:' . $crnote->id . ' and tx id:' . $this->transactionId . ' could not be completed');
         return false;
     }
 }
Beispiel #3
0
 public function getClientInvoices($cid)
 {
     if ($this->validateAdmin()) {
         echo json_encode(SalesInvoice::GetClientInvoices($cid));
     } else {
         echo 0;
     }
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSalesInvoices()
 {
     return $this->hasMany(SalesInvoice::className(), ['order_id' => 'entity_id']);
 }