Jump to content

Need help! pulling out my hair!!!!


Recommended Posts

this is a snippet of my quote/contract script

it seems to know the recurring but not the onetime, it shows the "unit price" but no the "total price

I need to have the one time and payments show up in the contract

the 2 hooks you need to add in

//term is the call 

// 1 displays the number of months

[term: 1]

[recur:36]

<?php

$pdf->Image(ROOTDIR.'/assets/img/rwclogo.png', 63,10,75,'c');
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','B',11);

$pdf->Cell(175,40,"CONTRACT FOR $subject ONLINE MARKETING SERVICES",25,1,'C');

$total_onetime = 0;
$total_recur = array();

foreach ($lineitems AS $item) {
 
$description = $item["description"]; 


# find term 
$matches = array();

preg_match('/\[term:(.*?)\]/i', $description, $matches); 
if (empty($matches)) { 

$term = ''; 
}

else { 

$term = strtolower(trim($matches[1])); 

$description = str_replace($matches[0], '', $description); 
}


# find recur 
$matches = array();

preg_match('/\[recur:(.*?)\]/i', $description, $matches); 
if (empty($matches)) { 

$recur = ''; 
}

else { 

$recur = strtolower(trim($matches[1])); 

$description = trim(str_replace($matches[0], '', $description)); 
}


# get unit price and total price 
$matches = array(); 
preg_match('/\d+\.\d+/', $item['unitprice'], $matches); 
$item_unitprice = (float)$matches[0];

$matches = array(); 
preg_match('/\d+\.\d+/', $item['total'], $matches); 
$item_total = (float)$matches[0];
 
# add onetime and recurring totals
 
if ($recur == '') { 

$total_onetime += $item_total; 
}

else { 

if (!array_key_exists($recur, $total_recur)) { 


$total_recur[$recur] = 0; 

}


$total_recur[$recur] += $item_total; 
}

}

$pdf->SetFont('freesans','B',9);

if ($total_onetime > 0) { 

}

foreach (array('monthly', 'quarterly', 'semi-annually', 'annually', 'biennially') as $recur) { 
if (isset($total_recur[$recur]) && $total_recur[$recur] > 0) { 

}

unset($total_recur[$recur]);
}

# any remaining recurs
foreach ($total_recur as $recur => $amount) { 

}

#==========================================================================
# determine weather to show the ONE TIME payment or not
#if ( $total_onetime < 100 ) {
#$ot_show = false;
#} 
#else {
#$ot_show = true;
#}


#==========================================================================
# determines weather or not to split the initial payment in half

#if ( $total_onetime >= 10000 ) {
#$bulk = $total_onetime / 2;
#$addtl_payment_msg = 'and the second half of $' .$bulk. ', will be due within 60 days. ';
#} else {
#$bulk = $total_onetime;
#$addtl_payment_msg = '';
}
#==========================================================================
#calculate One time payment using monthly pymts as a varible
#==========================================================================
#$otpp = ( $total_recur[$recur] * $recur );
#$ots = ( $otpp * .1);
#$ots = round( $ots, 2, PHP_ROUND_HALF_UP );
#$otp = $otpp - ($otpp * .1);
#$otp = round( $otp, 2, PHP_ROUND_HALF_UP );

#==========================================================================
#calculate One time payment and monthly payment to come up with a total
#$totalot = ( $total_recur[$recur] * $recur + $bulk );
#$totalot10 = ( $totalot - $ots );
#==========================================================================

$pdf->SetDrawColor(255);
$pdf->SetFillColor(255);

$pdf->SetFont('freesans','B',9);
$pdf->Cell(170,5,"Authorization:",0,0,'L');
$pdf->SetFont('freesans','',9);
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','',9,C); 
$pdf->MultiCell(170,5,"
This document defines the TERMS AND CONDITIONS (T&C) of our working relationship. All projects or services (“the work”) that AGENCY (or “we”) RWC ME 04401 may be contracted to produce or provide for CLIENT ($clientsdetails[companyname]) will be subject to and you the undersigned agree to the following:

The CLIENT authorizes the AGENCY access CLIENT's current website, webhost, and all digital materials to transfer as needed from the CLIENT for the purposes of completeing the work on the domain $subject. The CLIENT authorizes use of CLIENT's logo and all brand identification in the creation of the website. The CLIENT understands they are entering into a$pdf->Cell $recur month contract with THE AGENCY.    

The Agency will only begin work after CLIENT’s approval of the project authorization to proceed,(ATP) and the terms and conditions,(T&C) and after receipt of payment of the initial invoice $".$total_onetime.  ". Your signature/execution of the ATP and the T&C will constitute an AGREEMENT between us. 
                                                                                                                 ");
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','B',9);
$pdf->Cell(170,5,"Description of the work:",0,0,'L');
$pdf->SetFont('freesans','',9);
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','',9,L); 
$pdf->MultiCell(170,5,"$notes",0,1,'C');


if ($proposal) {
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','B',9);
$pdf->Cell(170,5,"Installment Plan:",0,0,'L');
$pdf->SetFont('freesans','',9);
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','',9,L); 
$pdf->MultiCell(170,5,$proposal                  );
}
$pdf->AddPage();
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','B',9);
$pdf->Cell(170,5,"Approvals:",0,0,'L');
$pdf->SetFont('freesans','',9);
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','',9,L); 
$pdf->MultiCell(170,5,"
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','B',9);
$pdf->Cell(170,5,"Additions and Alterations:",0,0,'L');
$pdf->SetFont('freesans','',9);
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','',9,C); 
$pdf->MultiCell(170,5,"                              ");
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','B',9);
$pdf->Cell(170,5,"Payments:",0,0,'L');
$pdf->SetFont('freesans','',9);
$pdf->MultiCell(170,5,"");
$pdf->SetFont('freesans','',9,L); 
$pdf->MultiCell(170,5,"The AGENCY is providing Online Marketing Services in advance of total payment. The CLIENT will have an initial down payment of $" . $bulk . ". that is due at the signing of this contract, " .$addtl_payment_msg. "Then an ongoing payment of $pdf->Cell $$total_recur[$recur], on a monthly basis for the following$pdf->Cell $recur months, starting from the date of signing this agreement.                                " );
$pdf->MultiCell(170,5,"");

$pdf->AddPage();
$pdf->Image(ROOTDIR.'/assets/img/rwclogo.png', 63,10,75,'c');
$pdf->SetFont('freesans','B',11);
$pdf->Ln();


$pdf->SetFont('freesans','B',9);

$pdf->Ln();

$pdf->SetFont('freesans','',9);

$pdf->MultiCell(39,5,"");
$pdf->Ln();

$pdf->SetFont('freesans','B',9);
$pdf->SetDrawColor(200);
$pdf->SetFillColor(239);

$pdf->SetFont('freesans','',9);
$pdf->Cell(10,6,"Qty",1,0,'C','1');
$pdf->Cell(80,6,"Description",1,0,'C','1');
$pdf->Cell(20,6,"Recur",1,0,'C','1');
$pdf->Cell(20,6,"Term",1,0,'C','1');
$pdf->Cell(20,6,"Unit Price",1,0,'C','1');
$pdf->Cell(20,6,"Total",1,0,'C','1');

$pdf->Ln();

$pdf->SetFont('freesans','B',9);

$total_onetime = 0;
$total_recur = array();

foreach ($lineitems AS $item) {
 
$description = $item["description"]; 

#==========================================================================
# find term 
#==========================================================================
$matches = array();

preg_match('/\[term:(.*?)\]/i', $description, $matches); 
if (empty($matches)) { 

$term = ''; 
}

else { 

$term = strtolower(trim($matches[1])); 

$description = str_replace($matches[0], '', $description); 
}

#==========================================================================
# find recur 
#==========================================================================
$matches = array();

preg_match('/\[recur:(.*?)\]/i', $description, $matches); 
if (empty($matches)) { 

$recur = ''; 
}

else { 

$recur = strtolower(trim($matches[1])); 

$description = trim(str_replace($matches[0], '', $description)); 
}

#==========================================================================
# get unit price and total price 
#==========================================================================
$matches = array(); 
preg_match('/\d+\.\d+/', $item['unitprice'], $matches); 
$item_unitprice = (float)$matches[0];

$matches = array(); 
preg_match('/\d+\.\d+/', $item['total'], $matches); 
$item_total = (float)$matches[0];
#==========================================================================
# add onetime and recurring totals
#========================================================================== 
if ($recur == '') { 

$total_onetime += $item_total; 
}

else { 

if (!array_key_exists($recur, $total_recur)) { 


$total_recur[$recur] = 0; 

}


$total_recur[$recur] += $item_total; 
}

#==========================================================================
# display line items
#==========================================================================
$numlines = ceil(strlen($description)/55); 
$cellheight = $numlines * 8;

$pdf->MultiCell(10,$cellheight,$item["qty"],1,'C','',0);

$pdf->MultiCell(80,$cellheight,$description,1,'L','',0);

$pdf->MultiCell(20,$cellheight,$recur,'1','C','',0);

$pdf->MultiCell(20,$cellheight,$term,'1','C','',0);

$pdf->MultiCell(20,$cellheight,sprintf('$%.2f',$item_unitprice),1,'C','',0);

$pdf->MultiCell(20,$cellheight,sprintf('$%.2f',$item_total),1,'C','',1);

}

$pdf->SetFont('freesans','B',9);

/*
$pdf->Cell(145,6,"Subtotal",1,0,'R','1');
$pdf->Cell(25,6,$currencysymbol.$subtotal,1,0,'C','1');
$pdf->Ln();

if ($taxlevel1["rate"]>0) {
    $pdf->Cell(145,6,$taxlevel1["name"]." @ ".$taxlevel1["rate"]."%",1,0,'R','1');
    $pdf->Cell(25,6,$currencysymbol.$tax1,1,0,'C','1');
    $pdf->Ln();
}

if ($taxlevel2["rate"]>0) {
    $pdf->Cell(145,6,$taxlevel2["name"]." @ ".$taxlevel2["rate"]."%",1,0,'R','1');
    $pdf->Cell(25,6,$currencysymbol.$tax2,1,0,'C','1');
    $pdf->Ln();
}

$pdf->Cell(145,6,"Total",1,0,'R','1');

$pdf->Cell(25,6,$currencysymbol.$total,1,0,'C','1');
$pdf->Ln();
*/

if ($total_onetime > 0) { 
$pdf->Cell(150,6,'Pre-Pay',1,0,'R',1);

$pdf->Cell(20,6,sprintf('$%.2f',$total_onetime),1,0,'C',1);

$pdf->Ln();
}

foreach (array('monthly', 'quarterly', 'semi-annually', 'annually', 'biennially') as $recur) { 
if (isset($total_recur[$recur]) && $total_recur[$recur] > 0) { 

$pdf->Cell(150,6,ucfirst($recur) . ' Monthly Payments',1,0,'R',1);


$pdf->Cell(20,6,sprintf('$%.2f',$total_recur[$recur]),1,0,'C',1);


$pdf->Ln();

}

unset($total_recur[$recur]);
}
#==========================================================================
# any remaining recurs
#==========================================================================
foreach ($total_recur as $recur => $amount) { 
$pdf->Cell(150,6,ucfirst($recur) . ' Monthly Payments',1,0,'R',1); 
$pdf->Cell(20,6,sprintf('$%.2f',$amount),1,0,'C',1);

$pdf->Ln();
}


$pdf->SetFont('freesans','',9,l);
$pdf->MultiCell(170,5,"

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated