Prechádzať zdrojové kódy

Fix remove a FIXME tag.

Laurent Destailleur 8 rokov pred
rodič
commit
248c5acff2

+ 22 - 22
htdocs/compta/paiement/cheque/list.php

@@ -139,24 +139,14 @@ if ($resql)
 	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="page" value="'.$page.'">';
-	
+
 	print_barre_liste($langs->trans("MenuChequeDeposits"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_bank.png', '', '', $limit);
-	
+
 	$moreforfilter='';
-	
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
-    print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.ref","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("NbOfCheques"),$_SERVER["PHP_SELF"],"bc.nbcheque","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"bc.amount","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"bc.statut","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre('');
-	print "</tr>\n";
-
 	// Lignes des champs de filtre
 	print '<tr class="liste_titre">';
 	print '<td class="liste_titre" align="left">';
@@ -181,15 +171,25 @@ if ($resql)
     print '</td>';
     print "</tr>\n";
 
+    print '<tr class="liste_titre">';
+	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.ref","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("NbOfCheques"),$_SERVER["PHP_SELF"],"bc.nbcheque","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"bc.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"bc.statut","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre('');
+	print "</tr>\n";
+
     if ($num > 0)
     {
     	$var=true;
     	while ($i < min($num,$limit))
     	{
     		$objp = $db->fetch_object($resql);
-    		
+
     		print '<tr class="oddeven">';
-    
+
     		// Num ref cheque
     		print '<td>';
     		$checkdepositstatic->id=$objp->rowid;
@@ -197,29 +197,29 @@ if ($resql)
     		$checkdepositstatic->statut=$objp->statut;
     		print $checkdepositstatic->getNomUrl(1);
     		print '</td>';
-    
+
     		// Date
     		print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'day').'</td>';  // TODO Use date hour
-    
+
     		// Bank
     		print '<td>';
     		if ($objp->bid) print '<a href="'.DOL_URL_ROOT.'/compta/bank/bankentries.php?account='.$objp->bid.'">'.img_object($langs->trans("ShowAccount"),'account').' '.$objp->label.'</a>';
     		else print '&nbsp;';
     		print '</td>';
-    
+
     		// Number of cheques
     		print '<td align="right">'.$objp->nbcheque.'</td>';
-    
+
     		// Amount
     		print '<td align="right">'.price($objp->amount).'</td>';
-    
+
     		// Statut
     		print '<td align="right">';
     		print $checkdepositstatic->LibStatut($objp->statut,5);
     		print '</td>';
-    		
+
     		print '<td></td>';
-    		
+
             print "</tr>\n";
     		$i++;
     	}

+ 36 - 30
htdocs/compta/paiement/class/paiement.class.php

@@ -38,7 +38,7 @@ class Paiement extends CommonObject
     public $element='payment';
     public $table_element='paiement';
     public $picto = 'payment';
-    
+
 	var $facid;
 	var $datepaye;
 	/**
@@ -65,7 +65,7 @@ class Paiement extends CommonObject
 	// fk_paiement dans llx_paiement_facture est le rowid du paiement
     var $fk_paiement;    // Type of paiment
 
-    
+
 	/**
 	 *	Constructor
 	 *
@@ -153,14 +153,14 @@ class Paiement extends CommonObject
 
 		$error = 0;
 		$way = $this->getWay();
-		
+
 		$now=dol_now();
-		
+
         // Clean parameters
         $totalamount = 0;
 		$totalamount_converted = 0;
         $atleastonepaymentnotnull = 0;
-		
+
 		if ($way == 'dolibarr')
 		{
 			$amounts = &$this->amounts;
@@ -171,22 +171,22 @@ class Paiement extends CommonObject
 			$amounts = &$this->multicurrency_amounts;
 			$amounts_to_update = &$this->amounts;
 		}
-		
+
 		foreach ($amounts as $key => $value)	// How payment is dispatch
 		{
 			$value_converted = Multicurrency::getAmountConversionFromInvoiceRate($key, $value, $way);
 			$totalamount_converted += $value_converted;
 			$amounts_to_update[$key] = price2num($value_converted, 'MT');
-			
+
 			$newvalue = price2num($value,'MT');
 			$amounts[$key] = $newvalue;
 			$totalamount += $newvalue;
 			if (! empty($newvalue)) $atleastonepaymentnotnull++;
 		}
-		
+
 		$totalamount = price2num($totalamount);
 		$totalamount_converted = price2num($totalamount_converted);
-		
+
 		// Check parameters
         if (empty($totalamount) && empty($atleastonepaymentnotnull))	 // We accept negative amounts for withdraw reject but not empty arrays
         {
@@ -211,7 +211,7 @@ class Paiement extends CommonObject
 
 		$sql = "INSERT INTO ".MAIN_DB_PREFIX."paiement (entity, ref, datec, datep, amount, multicurrency_amount, fk_paiement, num_paiement, note, fk_user_creat)";
 		$sql.= " VALUES (".$conf->entity.", '".$this->ref."', '". $this->db->idate($now)."', '".$this->db->idate($this->datepaye)."', '".$total."', '".$mtotal."', ".$this->paiementid.", '".$this->num_paiement."', '".$this->db->escape($this->note)."', ".$user->id.")";
-		
+
 		dol_syslog(get_class($this)."::Create insert paiement", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 		if ($resql)
@@ -227,7 +227,7 @@ class Paiement extends CommonObject
 					$amount = price2num($amount);
 					$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiement_facture (fk_facture, fk_paiement, amount, multicurrency_amount)';
 					$sql .= ' VALUES ('.$facid.', '. $this->id.', \''.$amount.'\', \''.$this->multicurrency_amounts[$key].'\')';
-		
+
 					dol_syslog(get_class($this).'::Create Amount line '.$key.' insert paiement_facture', LOG_DEBUG);
 					$resql=$this->db->query($sql);
 					if ($resql)
@@ -245,21 +245,27 @@ class Paiement extends CommonObject
 
 							//var_dump($invoice->total_ttc.' - '.$paiement.' -'.$creditnotes.' - '.$deposits.' - '.$remaintopay);exit;
 
-                            // If there is withdrawals request to do and not done yet, we wait before closing.
+                            /* Why this ? We can remove i think.
+                            // If there is withdrawals request to do and not done yet on the invoice the payment is on, we wait before closing.
                             $mustwait=0;
+                            $sqlrequest ="SELECT COUNT(rowid) FROM ".MAIN_DB_PREFIX."prelevement_facture_demande";
+                            $sqlrequest.="WHERE fk_facture = ".$invoice->id." AND traite = 0";
+                            ...
+
                             $listofpayments=$invoice->getListOfPayments();
                             foreach($listofpayments as $paym)
                             {
-                                // This payment might be this one or a previous one
+                                // This payment on invoice $invoice might be the one we record or another one
                                 if ($paym['type']=='PRE')
                                 {
                                     if (! empty($conf->prelevement->enabled))
                                     {
-                                        // FIXME Check if this invoice has a withdraw request
                                         // if not, $mustwait++;      // This will disable automatic close on invoice to allow to process
+
                                     }
                                 }
                             }
+                            */
 
                             //Invoice types that are eligible for changing status to paid
 							$affected_types = array(
@@ -272,14 +278,14 @@ class Paiement extends CommonObject
 
                             if (!in_array($invoice->type, $affected_types)) dol_syslog("Invoice ".$facid." is not a standard, nor replacement invoice, nor credit note, nor deposit invoice, nor situation invoice. We do nothing more.");
                             else if ($remaintopay) dol_syslog("Remain to pay for invoice ".$facid." not null. We do nothing more.");
-                            else if ($mustwait) dol_syslog("There is ".$mustwait." differed payment to process, we do nothing more.");
+                            //else if ($mustwait) dol_syslog("There is ".$mustwait." differed payment to process, we do nothing more.");
                             else
                             {
                                 // If invoice is a down payment, we also convert down payment to discount
                                 if ($invoice->type == Facture::TYPE_DEPOSIT)
                                 {
 			                        $amount_ht = $amount_tva = $amount_ttc = array();
-			                         
+
                                     // Loop on each vat rate
                                     $i = 0;
                                     foreach ($invoice->lines as $line)
@@ -292,20 +298,20 @@ class Paiement extends CommonObject
                                             $i ++;
                                         }
                                     }
-                                    
+
                                     // Insert one discount by VAT rate category
                                     $discount = new DiscountAbsolute($this->db);
                                     $discount->description = '(DEPOSIT)';
                                     $discount->fk_soc = $invoice->socid;
                                     $discount->fk_facture_source = $invoice->id;
-                                
+
                                     foreach ($amount_ht as $tva_tx => $xxx)
                                     {
                                         $discount->amount_ht = abs($amount_ht[$tva_tx]);
                                         $discount->amount_tva = abs($amount_tva[$tva_tx]);
                                         $discount->amount_ttc = abs($amount_ttc[$tva_tx]);
                                         $discount->tva_tx = abs($tva_tx);
-                            
+
                                         $result = $discount->create($user);
                                         if ($result < 0)
                                         {
@@ -313,14 +319,14 @@ class Paiement extends CommonObject
                                             break;
                                         }
                                     }
-                                    
+
                                     if ($error)
                                     {
                                         setEventMessages($discount->error, $discount->errors, 'errors');
                                         $error++;
-                                    }                                   
+                                    }
                                 }
-                                
+
                                 // Set invoice to paid
                                 if (! $error)
                                 {
@@ -520,13 +526,13 @@ class Paiement extends CommonObject
 
             $acc = new Account($this->db);
             $result=$acc->fetch($this->fk_account);
-			
+
 			$totalamount=$this->amount;
             if (empty($totalamount)) $totalamount=$this->total; // For backward compatibility
-            
+
             // if dolibarr currency != bank currency then we received an amount in customer currency (currently I don't manage the case : my currency is USD, the customer currency is EUR and he paid me in GBP. Seems no sense for me)
             if (!empty($conf->multicurrency->enabled) && $conf->currency != $acc->currency_code) $totalamount=$this->multicurrency_amount;
-			
+
             if ($mode == 'payment_supplier') $totalamount=-$totalamount;
 
             // Insert payment into llx_bank
@@ -796,7 +802,7 @@ class Paiement extends CommonObject
 
 	/**
 	 *    Information sur l'objet
-	 *    
+	 *
 	 *    @param   int     $id      id du paiement dont il faut afficher les infos
 	 *    @return  void
 	 */
@@ -962,13 +968,13 @@ class Paiement extends CommonObject
 
 	/**
 	 * 	get the right way of payment
-	 * 
+	 *
 	 * 	@return 	string 	'dolibarr' if standard comportment or paid in dolibarr currency, 'customer' if payment received from multicurrency inputs
 	 */
 	function getWay()
 	{
 		global $conf;
-		
+
 		$way = 'dolibarr';
 		if (!empty($conf->multicurrency->enabled))
 		{
@@ -981,10 +987,10 @@ class Paiement extends CommonObject
 				}
 			}
 		}
-		
+
 		return $way;
 	}
-	
+
 	/**
 	 *  Initialise an instance with random values.
 	 *  Used to build previews or test instances.