Exemple #1
0
 function Main()
 {
     switch ($this->formArray["formAction"]) {
         case "confirm":
             $PaymentEncode = new SoapObject(NCCBIZ . "PaymentEncode.php", "urn:Object");
             $ReceiptEncode = new SoapObject(NCCBIZ . "ReceiptEncode.php", "urn:Object");
             $CollectionEncode = new SoapObject(NCCBIZ . "CollectionEncode.php", "urn:Object");
             $basicReceiptIDArrayIndex = 0;
             $sefReceiptIDArrayIndex = 0;
             $idleReceiptIDArrayIndex = 0;
             // create Basic Receipts
             foreach ($this->formArray["basicReceipt"] as $basicReceiptArray) {
                 $basicReceipt = new Receipt();
                 $basicReceipt->setReceiptNumber($basicReceiptArray["receiptNumber"]);
                 $basicReceipt->setReceiptDate($this->formArray["paymentDate"]);
                 $basicReceipt->setPaymentMode($this->formArray["paymentMode"]);
                 $basicReceipt->setCheckNumber($this->formArray["checkNumber"]);
                 $basicReceipt->setDateOfCheck($this->formArray["dateOfCheck"]);
                 $basicReceipt->setDraweeBank($this->formArray["draweeBank"]);
                 $basicReceipt->setReceivedFrom($this->formArray["receivedFrom"]);
                 $basicReceipt->setPreviousReceiptNumber($basicReceiptArray["previousReceiptNumber"]);
                 $basicReceipt->setPreviousReceiptDate($basicReceiptArray["previousReceiptDate_year"] . "-" . putPreZero($basicReceiptArray["previousReceiptDate_month"] . "-" . putPreZero($basicReceiptArray["previousReceiptDate_day"])));
                 $basicReceipt->setCityTreasurer($this->formArray["cityTreasurer"]);
                 $basicReceipt->setDeputyTreasurer($this->formArray["deputyTreasurer"]);
                 $basicReceipt->setStatus("");
                 $basicReceipt->setDomDocument();
                 $domDoc = $basicReceipt->getDomDocument();
                 $xmlStr = $domDoc->dump_mem(true);
                 if (!($basicReceiptIDArray[$basicReceiptIDArrayIndex] = $ReceiptEncode->saveReceipt($xmlStr))) {
                     exit("error save basic receipt");
                 }
                 $receiptIDArray[] = $basicReceiptIDArray[$basicReceiptIDArrayIndex];
                 $basicReceiptIDArrayIndex++;
             }
             // create Sef Receipts
             foreach ($this->formArray["sefReceipt"] as $sefReceiptArray) {
                 $sefReceipt = new Receipt();
                 $sefReceipt->setReceiptNumber($sefReceiptArray["receiptNumber"]);
                 $sefReceipt->setReceiptDate($this->formArray["paymentDate"]);
                 $sefReceipt->setPaymentMode($this->formArray["paymentMode"]);
                 $sefReceipt->setCheckNumber($this->formArray["checkNumber"]);
                 $sefReceipt->setDateOfCheck($this->formArray["dateOfCheck"]);
                 $sefReceipt->setDraweeBank($this->formArray["draweeBank"]);
                 $sefReceipt->setReceivedFrom($this->formArray["receivedFrom"]);
                 $sefReceipt->setPreviousReceiptNumber($sefReceiptArray["previousReceiptNumber"]);
                 $sefReceipt->setPreviousReceiptDate($sefReceiptArray["previousReceiptDate_year"] . "-" . putPreZero($sefReceiptArray["previousReceiptDate_month"] . "-" . putPreZero($sefReceiptArray["previousReceiptDate_day"])));
                 $sefReceipt->setCityTreasurer($this->formArray["cityTreasurer"]);
                 $sefReceipt->setDeputyTreasurer($this->formArray["deputyTreasurer"]);
                 $sefReceipt->setStatus("");
                 $sefReceipt->setDomDocument();
                 $domDoc = $sefReceipt->getDomDocument();
                 $xmlStr = $domDoc->dump_mem(true);
                 if (!($sefReceiptIDArray[$sefReceiptIDArrayIndex] = $ReceiptEncode->saveReceipt($xmlStr))) {
                     exit("error save sef receipt");
                 }
                 $receiptIDArray[] = $sefReceiptIDArray[$sefReceiptIDArrayIndex];
                 $sefReceiptIDArrayIndex++;
             }
             // create Idle Receipts
             foreach ($this->formArray["idleReceipt"] as $idleReceiptArray) {
                 $idleReceipt = new Receipt();
                 $idleReceipt->setReceiptNumber($idleReceiptArray["receiptNumber"]);
                 $idleReceipt->setReceiptDate($this->formArray["paymentDate"]);
                 $idleReceipt->setPaymentMode($this->formArray["paymentMode"]);
                 $idleReceipt->setCheckNumber($this->formArray["checkNumber"]);
                 $idleReceipt->setDateOfCheck($this->formArray["dateOfCheck"]);
                 $idleReceipt->setDraweeBank($this->formArray["draweeBank"]);
                 $idleReceipt->setReceivedFrom($this->formArray["receivedFrom"]);
                 $idleReceipt->setPreviousReceiptNumber($idleReceiptArray["previousReceiptNumber"]);
                 $idleReceipt->setPreviousReceiptDate($idleReceiptArray["previousReceiptDate_year"] . "-" . putPreZero($idleReceiptArray["previousReceiptDate_month"] . "-" . putPreZero($idleReceiptArray["previousReceiptDate_day"])));
                 $idleReceipt->setCityTreasurer($this->formArray["cityTreasurer"]);
                 $idleReceipt->setDeputyTreasurer($this->formArray["deputyTreasurer"]);
                 $idleReceipt->setStatus("");
                 $idleReceipt->setDomDocument();
                 $domDoc = $idleReceipt->getDomDocument();
                 $xmlStr = $domDoc->dump_mem(true);
                 if (!($idleReceiptIDArray[$idleReceiptIDArrayIndex] = $ReceiptEncode->saveReceipt($xmlStr))) {
                     exit("error save idle receipt");
                 }
                 $receiptIDArray[] = $idleReceiptIDArray[$idleReceiptIDArrayIndex];
                 $idleReceiptIDArrayIndex++;
             }
             $lineCtr = 0;
             $basicReceiptIDArrayIndex = 0;
             $sefReceiptIDArrayIndex = 0;
             $idleReceiptIDArrayIndex = 0;
             if (is_array($this->formArray["payment"])) {
                 foreach ($this->formArray["payment"] as $formPaymentArray) {
                     $payment = new Payment();
                     $payment->setTdID($formPaymentArray["tdID"]);
                     $payment->setDueID($formPaymentArray["dueID"]);
                     $payment->setDueType($formPaymentArray["dueType"]);
                     $payment->setBacktaxTDID($formPaymentArray["backtaxTDID"]);
                     $payment->setTaxDue($formPaymentArray["taxDue"]);
                     $payment->setAdvancedPaymentDiscount($formPaymentArray["advancedPaymentDiscount"]);
                     $payment->setEarlyPaymentDiscount($formPaymentArray["earlyPaymentDiscount"]);
                     $payment->setPenalty($formPaymentArray["penalty"]);
                     $payment->setAmnesty($formPaymentArray["amnesty"]);
                     $payment->setBalanceDue($formPaymentArray["balanceDue"]);
                     $payment->setAmountPaid($formPaymentArray["amountPaid"]);
                     $payment->setDueDate($formPaymentArray["dueDate"]);
                     $payment->setPaymentDate($formPaymentArray["paymentDate"]);
                     $payment->setOwnerID($formPaymentArray["ownerID"]);
                     $payment->setDomDocument();
                     $domDoc = $payment->getDomDocument();
                     $xmlStr = $domDoc->dump_mem(true);
                     if (!($paymentID = $PaymentEncode->savePayment($xmlStr))) {
                         exit("error save payment");
                     }
                     //  basicCollection
                     if (is_array($formPaymentArray["basicReceipt"])) {
                         $basicReceiptID = $basicReceiptIDArray[$basicReceiptIDArrayIndex];
                         foreach ($formPaymentArray["basicReceipt"] as $basicCollectionArray) {
                             $basicCollection = new Collection();
                             $basicCollection->setPaymentID($paymentID);
                             $basicCollection->setReceiptID($basicReceiptID);
                             $basicCollection->setTaxType($basicCollectionArray["taxType"]);
                             $basicCollection->setTaxDue($basicCollectionArray["taxDue"]);
                             $basicCollection->setAdvancedPaymentDiscount($basicCollectionArray["advancedPaymentDiscount"]);
                             $basicCollection->setEarlyPaymentDiscount($basicCollectionArray["earlyPaymentDiscount"]);
                             $basicCollection->setPenalty($basicCollectionArray["penalty"]);
                             $basicCollection->setAmnesty($basicCollectionArray["amnesty"]);
                             $basicCollection->setBalanceDue($basicCollectionArray["balanceDue"]);
                             $basicCollection->setAmountPaid($basicCollectionArray["amountPaid"]);
                             $basicCollection->setDomDocument();
                             $domDoc = $basicCollection->getDomDocument();
                             $xmlStr = $domDoc->dump_mem(true);
                             if (!($basicCollectionID = $CollectionEncode->saveCollection($xmlStr))) {
                                 exit("error save basic collection");
                             }
                         }
                     }
                     //  sefCollection
                     if (is_array($formPaymentArray["sefReceipt"])) {
                         $sefReceiptID = $sefReceiptIDArray[$sefReceiptIDArrayIndex];
                         foreach ($formPaymentArray["sefReceipt"] as $sefCollectionArray) {
                             $sefCollection = new Collection();
                             $sefCollection->setPaymentID($paymentID);
                             $sefCollection->setReceiptID($sefReceiptID);
                             $sefCollection->setTaxType($sefCollectionArray["taxType"]);
                             $sefCollection->setTaxDue($sefCollectionArray["taxDue"]);
                             $sefCollection->setAdvancedPaymentDiscount($sefCollectionArray["advancedPaymentDiscount"]);
                             $sefCollection->setEarlyPaymentDiscount($sefCollectionArray["earlyPaymentDiscount"]);
                             $sefCollection->setPenalty($sefCollectionArray["penalty"]);
                             $sefCollection->setAmnesty($sefCollectionArray["amnesty"]);
                             $sefCollection->setBalanceDue($sefCollectionArray["balanceDue"]);
                             $sefCollection->setAmountPaid($sefCollectionArray["amountPaid"]);
                             $sefCollection->setDomDocument();
                             $domDoc = $sefCollection->getDomDocument();
                             $xmlStr = $domDoc->dump_mem(true);
                             if (!($sefCollectionID = $CollectionEncode->saveCollection($xmlStr))) {
                                 exit("error save basic collection");
                             }
                         }
                     }
                     //  idleCollection
                     if (is_array($formPaymentArray["idleReceipt"])) {
                         $idleReceiptID = $idleReceiptIDArray[$idleReceiptIDArrayIndex];
                         foreach ($formPaymentArray["idleReceipt"] as $idleCollectionArray) {
                             $idleCollection = new Collection();
                             $idleCollection->setPaymentID($paymentID);
                             $idleCollection->setReceiptID($idleReceiptID);
                             $idleCollection->setTaxType($idleCollectionArray["taxType"]);
                             $idleCollection->setTaxDue($idleCollectionArray["taxDue"]);
                             $idleCollection->setAdvancedPaymentDiscount($idleCollectionArray["advancedPaymentDiscount"]);
                             $idleCollection->setEarlyPaymentDiscount($idleCollectionArray["earlyPaymentDiscount"]);
                             $idleCollection->setPenalty($idleCollectionArray["penalty"]);
                             $idleCollection->setAmnesty($idleCollectionArray["amnesty"]);
                             $idleCollection->setBalanceDue($idleCollectionArray["balanceDue"]);
                             $idleCollection->setAmountPaid($idleCollectionArray["amountPaid"]);
                             $idleCollection->setDomDocument();
                             $domDoc = $idleCollection->getDomDocument();
                             $xmlStr = $domDoc->dump_mem(true);
                             if (!($idleCollectionID = $CollectionEncode->saveCollection($xmlStr))) {
                                 exit("error save basic collection");
                             }
                         }
                     }
                     $lineCtr++;
                     if ($lineCtr == $this->formArray["maxLinesPerReceipt"] || $lineCtr == count($this->formArray["payment"])) {
                         $lineCtr = 0;
                         $basicReceiptIDArrayIndex++;
                         $sefReceiptIDArrayIndex++;
                         $idleReceiptIDArrayIndex++;
                     }
                 }
                 $receiptIDArrayQueryString = "";
                 foreach ($receiptIDArray as $receiptID) {
                     $receiptIDArrayQueryString .= "&receiptIDArray[]=" . $receiptID;
                 }
                 header("Location: PrintReceiptDetails.php" . $this->sess->url("") . "&rptopID=" . $this->formArray["rptopID"] . "&ownerID=" . $this->formArray["ownerID"] . $receiptIDArrayQueryString);
                 exit;
             }
             break;
         default:
             header("Location: Unauthorized.php" . $this->sess->url(""));
             exit;
     }
 }
 function initReceipt($payment, $taxType)
 {
     $receipt = new Receipt();
     $receipt->setReceiptDate(date("Y-m-d", strtotime("now")));
     $receipt->setReceivedFrom($payment->getOwnerID());
     $receipt->setTaxType($taxType);
     if ($payment->getDueID() != "") {
         $due = $this->captureDueDetails($payment->getDueID());
     } else {
         if ($payment->getBacktaxTDID() != "") {
             $due = $this->captureBacktaxTDDetails($payment->getBacktaxTDID(), $payment->getDueType());
         } else {
             // should not get here.
             // cannot establish taxDue and thus a proper receipt.
             // exit("error. payment has no dueID / backtaxTDID associated. cannot establish receipts");
         }
     }
     switch ($taxType) {
         case "basic":
             $receipt->setTaxDue(un_number_format($due->getBasicTax()));
             break;
         case "sef":
             $receipt->setTaxDue(un_number_format($due->getSefTax()));
             break;
         case "idle":
             $receipt->setTaxDue(un_number_format($due->getIdleTax()));
             break;
     }
     // use: basicAdvancedPaymentDiscount = (advancedPaymentDiscount/taxDue)(basicTax)
     $advancedPaymentDiscount = un_number_format($payment->getAdvancedPaymentDiscount()) / un_number_format($payment->getTaxDue());
     $advancedPaymentDiscount = $advancedPaymentDiscount * un_number_format($receipt->getTaxDue());
     $receipt->setAdvancedPaymentDiscount($advancedPaymentDiscount);
     // use: basicEarlyPaymentDiscount = (earlyPaymentDiscount/taxDue)(basicTax)
     $earlyPaymentDiscount = un_number_format($payment->getEarlyPaymentDiscount()) / un_number_format($payment->getTaxDue());
     $earlyPaymentDiscount = $earlyPaymentDiscount * un_number_format($receipt->getTaxDue());
     $receipt->setEarlyPaymentDiscount($earlyPaymentDiscount);
     // if amountPaidForQuartersForTaxType > 0 use
     // use: basicPenalty = (penalty/balanceDue)(basicTax)
     // else
     // use: basicPenalty = (penalty/taxDue)(basicTax)
     if ($amountPaidForQuartersForTaxType > 0) {
         $penalty = un_number_format($payment->getPenalty()) / un_number_format($payment->getBalanceDue());
         $penalty = $penalty * un_number_format($receipt->getTaxDue());
     } else {
         $penalty = un_number_format($payment->getPenalty()) / un_number_format($payment->getTaxDue());
         $penalty = $penalty * un_number_format($receipt->getTaxDue());
     }
     $receipt->setPenalty($penalty);
     $receipt->setAmnesty($payment->getAmnesty());
     // use:
     // basicBalanceDue = basicTax
     // ** if discount > 0 : basicBalanceDue = basicTax - [basicEarlyPaymentDiscount or basicAdvancedPaymentDiscount]
     // ** if amnesty is true : basicBalanceDue += basicPenalty
     // basicBalance Due = basicBalanceDue - paidBasic
     $balanceDue = $receipt->getTaxDue();
     if ($receipt->getAdvancedPaymentDiscount() > 0) {
         $balanceDue = $receipt->getTaxDue() - $receipt->getAdvancedPaymentDiscount();
     } else {
         if ($receipt->getEarlyPaymentDiscount() > 0) {
             $balanceDue = $receipt->getTaxDue() - $receipt->getEarlyPaymentDiscount();
         }
     }
     if ($receipt->getAmnesty() != "true") {
         $balanceDue = $balanceDue + un_number_format($receipt->getPenalty());
     }
     $paidTotals = $this->getPaidTotals($payment->getDueID(), $payment->getBacktaxTDID(), $payment->getDueType(), $taxType);
     // if Due Type is "Annual" and previous "Quarter" payments have been made, adjust the Tax Due:
     // this is for reverted annual payments from quarterly mode
     if (is_a($due, "Due")) {
         if ($due->getDueType() == "Annual") {
             $amountPaidForQuartersForTaxType = $this->getAmountPaidForQuarters($due, $taxType);
         }
         if ($amountPaidForQuartersForTaxType > 0) {
             $paidTotals = $amountPaidForQuartersForTaxType;
         }
     }
     $balanceDue = $balanceDue - $paidTotals;
     $receipt->setBalanceDue($balanceDue);
     // use: basicAmountPaid = (basicBalanceDue/balanceDue)(amountPaid)
     $amountPaid = un_number_format($receipt->getBalanceDue()) / un_number_format($payment->getBalanceDue());
     $amountPaid = $amountPaid * un_number_format($payment->getAmountPaid());
     $receipt->setAmountPaid($amountPaid);
     return $receipt;
 }