* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \file htdocs/compta/sociales/charges.php \ingroup tax \brief Fiche d'une charge sociale \version $Id$ */ require("./pre.inc.php"); require(DOL_DOCUMENT_ROOT."/chargesociales.class.php"); $langs->load("compta"); $langs->load("bills"); $chid=isset($_GET["id"])?$_GET["id"]:$_POST["id"]; // Security check $socid = isset($_GET["socid"])?$_GET["socid"]:''; if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'tax', '', '', 'charges'); /* *************************************************************************** */ /* */ /* Actions */ /* */ /* *************************************************************************** */ /* * Classer paye */ if ($_POST["action"] == 'confirm_payed') { if ($_POST["confirm"] == 'yes') { $chargesociales = new ChargeSociales($db); $result = $chargesociales->set_payed($chid); } else { $_GET["action"]=''; } } /* * Suppression d'une charge sociale */ if ($_POST["action"] == 'confirm_delete') { if ($_POST["confirm"] == 'yes') { $chargesociales=new ChargeSociales($db); $chargesociales->id=$_GET["id"]; $result=$chargesociales->delete($user); if ($result > 0) { Header("Location: index.php"); exit; } else { $mesg='
'.$chargesociales->error.'
'; } } else { $_GET['action']=''; } } /* * Ajout d'une charge sociale */ if ($_POST["action"] == 'add' && $user->rights->tax->charges->creer) { $dateech=@dolibarr_mktime($_POST["echhour"],$_POST["echmin"],$_POST["echsec"],$_POST["echmonth"],$_POST["echday"],$_POST["echyear"]); if (! $dateech) { $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("DateDue")).'
'; $_GET["action"] = 'create'; } elseif (! $_POST["period"]) { $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Period")).'
'; $_GET["action"] = 'create'; } elseif (! $_POST["amount"]) { $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount")).'
'; $_GET["action"] = 'create'; } else { $chargesociales=new ChargeSociales($db); $chargesociales->type=$_POST["actioncode"]; $chargesociales->lib=$_POST["label"]; $chargesociales->date_ech=$dateech; $chargesociales->periode=$_POST["period"]; $chargesociales->amount=$_POST["amount"]; $chid=$chargesociales->create($user); if ($chid > 0) { //$mesg='
'.$langs->trans("SocialContributionAdded").'
'; } else { $mesg='
'.$chargesociales->error.'
'; } } } if ($_GET["action"] == 'update' && ! $_POST["cancel"] && $user->rights->tax->charges->creer) { $dateech=@dolibarr_mktime($_POST["echhour"],$_POST["echmin"],$_POST["echsec"],$_POST["echmonth"],$_POST["echday"],$_POST["echyear"]); if (! $dateech) { $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("DateDue")).'
'; $_GET["action"] = 'edit'; } elseif (! $_POST["period"]) { $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Period")).'
'; $_GET["action"] = 'edit'; } else { $chargesociales=new ChargeSociales($db); $result=$chargesociales->fetch($_GET["id"]); $chargesociales->lib=$_POST["label"]; $chargesociales->date_ech=$dateech; $chargesociales->periode=$_POST["period"]; $result=$chargesociales->update($user); if ($result > 0) { //$mesg='
'.$langs->trans("SocialContributionAdded").'
'; } else { $mesg='
'.$chargesociales->error.'
'; } } } llxHeader(); $html = new Form($db); /* * Mode creation * */ if ($_GET["action"] == 'create') { print_fiche_titre($langs->trans("NewSocialContribution")); print "
\n"; if ($mesg) print $mesg.'
'; $var=false; print '
'; print ''; print ""; print ""; print ''; print "\n"; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print '
'; print ' '; print ''; print $langs->trans("DateDue"); print ''; print $langs->trans("Period"); print ''; print $langs->trans("Type"); print ''; print $langs->trans("Label"); print ''; print $langs->trans("Amount"); print ''; print ' '; print '
 '; print $html->select_date('-1', 'ech', 0, 0, 0, 'charge', 1); print '
YYYYMMDD
'; $html->select_type_socialcontrib(); print '
'; print '
'; } /* *************************************************************************** */ /* */ /* Mode fiche */ /* */ /* *************************************************************************** */ if ($chid > 0) { $cha = new ChargeSociales($db); /* * Charge */ if ($cha->fetch($chid) > 0) { if ($mesg) print $mesg.'
'; $h = 0; $head[$h][0] = DOL_URL_ROOT.'/compta/sociales/charges.php?id='.$cha->id; $head[$h][1] = $langs->trans('Card'); $head[$h][2] = 'card'; $h++; dolibarr_fiche_head($head, 'card', $langs->trans("SocialContribution")); /* * Confirmation de la suppression de la charge * */ if ($_GET["action"] == 'payed') { $text=$langs->trans('ConfirmPaySocialContribution'); $html->form_confirm($_SERVER["PHP_SELF"]."?id=$cha->id&action=confirm_payed",$langs->trans('PaySocialContribution'),$text,"confirm_payed"); print '
'; } if ($_GET['action'] == 'delete') { $text=$langs->trans('ConfirmDeleteSocialContribution'); $html->form_confirm($_SERVER['PHP_SELF'].'?id='.$cha->id,$langs->trans('DeleteSocialContribution'),$text,'confirm_delete'); print '
'; } if ($_GET['action'] == 'edit') print "
id&action=update\" method=\"post\">"; print ''; print ""; print ""; print ""; print ""; print '"; print ""; if ($cha->paye==0 && $_GET['action'] == 'edit') { print ''; print '"; } else { print ''; print ""; } print ''; print ''; if ($_GET['action'] == 'edit') { print ''; } print '
".$langs->trans("Ref").''.$cha->id."
".$langs->trans("Type")."$cha->type_libelle".$langs->trans("Payments")."
".$langs->trans("Period").""; if ($cha->paye==0 && $_GET['action'] == 'edit') { print "periode,"%Y%m%d")."\"> (YYYYMMDD)"; } else { print dolibarr_print_date($cha->periode,"%Y"); } print "'; /* * Paiements */ $sql = "SELECT ".$db->pdate("datep")." as dp, p.amount,"; $sql .= "c.libelle as paiement_type, p.num_paiement, p.rowid"; $sql .= " FROM ".MAIN_DB_PREFIX."paiementcharge as p, ".MAIN_DB_PREFIX."c_paiement as c "; $sql .= " WHERE p.fk_charge = ".$chid." AND p.fk_typepaiement = c.id"; $sql .= " ORDER BY dp DESC"; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; $total = 0; echo ''; print ''; print ''; print ''; $var=True; while ($i < $num) { $objp = $db->fetch_object($result); $var=!$var; print "\n"; print "\n"; print '\n"; print ""; $totalpaye += $objp->amount; $i++; } if ($cha->paye == 0) { print "\n"; print "\n"; $resteapayer = $cha->amount - $totalpaye; print ""; print "\n"; } print "
'.$langs->trans("Date").''.$langs->trans("Type").''.$langs->trans("Amount").' 
"; print img_object($langs->trans("Payment"),"payment").' '; print dolibarr_print_date($objp->dp)."$objp->paiement_type $objp->num_paiement'.price($objp->amount)."".$langs->trans("Currency".$conf->monnaie)."
".$langs->trans("AlreadyPayed")." :".price($totalpaye)."".$langs->trans("Currency".$conf->monnaie)."
".$langs->trans("AmountExpected")." :".price($cha->amount)."".$langs->trans("Currency".$conf->monnaie)."
".$langs->trans("RemainderToPay")." :".price($resteapayer)."".$langs->trans("Currency".$conf->monnaie)."
"; $db->free(); } else { dolibarr_print_error($db); } print "
'.$langs->trans("Label").''; print ''; print '
'.$langs->trans("DateDue").""; print $html->select_date($cha->date_ech, 'ech', 0, 0, 0, 'charge', 1); print "
'.$langs->trans("Label").''.$cha->lib.'
".$langs->trans("DateDue")."".dolibarr_print_date($cha->date_ech,'day')."
'.$langs->trans("AmountTTC").''.price($cha->amount).'
'.$langs->trans("Status").''.$cha->getLibStatut(4).'
'; print ''; print '   '; print ''; print '
'; if ($_GET['action'] == 'edit') print "
\n"; print ''; /* * Boutons actions */ if (! $_GET["action"] || $_GET["action"] == 'update') { print "
\n"; // Editer if ($cha->paye == 0 && $user->rights->tax->charges->creer) { print "id&action=edit\">".$langs->trans("Modify").""; } // Emettre paiement if ($cha->paye == 0 && round($resteapayer) > 0 && $user->rights->tax->charges->creer) { print "id&action=create\">".$langs->trans("DoPayment").""; } // Classer 'payé' if ($cha->paye == 0 && round($resteapayer) <=0 && $user->rights->tax->charges->creer) { print "id&action=payed\">".$langs->trans("ClassifyPayed").""; } // Supprimer if ($cha->paye == 0 && $totalpaye <=0 && $user->rights->tax->charges->supprimer) { print "id&action=delete\">".$langs->trans("Delete").""; } print "
"; } } else { /* Charge non trouvé */ dolibarr_print_error('',$cha->error); } } $db->close(); llxFooter('$Date$ - $Revision$'); ?>