コード例 #1
0
$action = GETPOST('action', 'alpha');
$confirm = GETPOST('confirm', 'alpha');
$socid = GETPOST('socid', 'int');
$id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alpha');
// Security check
if ($user->societe_id) {
    $socid = $user->societe_id;
}
$result = restrictedArea($user, 'contrat', $id);
$object = new Contrat($db);
/*
 * Ajout d'un nouveau contact
 */
if ($action == 'addcontact' && $user->rights->contrat->creer) {
    $result = $object->fetch($id);
    if ($result > 0 && $id > 0) {
        $contactid = GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid');
        $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
    }
    if ($result >= 0) {
        header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
        exit;
    } else {
        if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
            $langs->load("errors");
            $mesg = '<div class="error">' . $langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType") . '</div>';
        } else {
            $mesg = '<div class="error">' . $object->error . '</div>';
        }
    }
コード例 #2
0
}
// Class
dol_include_once("/immobilier/class/contrat.class.php");
dol_include_once('/immobilier/lib/immobilier.lib.php');
// Langs
$langs->load("immobilier@immobilier");
$id = GETPOST('id', 'int');
$mesg = '';
$limit = $conf->liste_limit;
/*
* loyer et paiement par contrat
*
*/
llxheader('', $langs->trans("bilancontrat"), '');
$contrat = new Contrat($db);
$result = $contrat->fetch($id);
$head = contrat_prepare_head($contrat);
dol_fiche_head($head, 'info', $langs->trans("Imoinfo"), 0, 'agreement');
$sql = "(SELECT l.periode_du as date , l.montant_tot as debit, 0 as credit , l.nom as des";
$sql .= " FROM " . MAIN_DB_PREFIX . "immo_loyer as l";
$sql .= " WHERE l.contrat_id =" . $id;
$sql .= ")";
$sql .= "UNION (SELECT p.date_paiement as date, 0 as debit , p.montant as credit, p.commentaire as des";
$sql .= " FROM " . MAIN_DB_PREFIX . "immo_paie as p";
$sql .= " WHERE p.contrat_id =" . $id;
$sql .= ")";
$sql .= "ORDER BY date";
$result = $db->query($sql);
if ($result) {
    $num_lignes = $db->num_rows($result);
    $i = 0;
コード例 #3
0
ファイル: card.php プロジェクト: TAASA/Dolibarr-ERP-3.8.1
$id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alpha');
$datecontrat = '';
// Security check
if ($user->societe_id) {
    $socid = $user->societe_id;
}
$result = restrictedArea($user, 'contrat', $id);
$usehm = !empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? $conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE : 0;
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('contractcard', 'globalcard'));
$object = new Contrat($db);
$extrafields = new ExtraFields($db);
// Load object
if ($id > 0 || !empty($ref) && $action != 'add') {
    $ret = $object->fetch($id, $ref);
    if ($ret > 0) {
        $ret = $object->fetch_thirdparty();
    }
    if ($ret < 0) {
        dol_print_error('', $object->error);
    }
}
// fetch optionals attributes and labels
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
// fetch optionals attributes lines and labels
$extrafieldsline = new ExtraFields($db);
$extralabelslines = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$permissionnote = $user->rights->contrat->creer;
// Used by the include of actions_setnotes.inc.php
$permissiondellink = $user->rights->contrat->creer;
コード例 #4
0
ファイル: contrat.class.php プロジェクト: ADDAdev/Dolibarr
 /**
  *      Update database for contract line
  *
  *      @param	User	$user        	User that modify
  *      @param  int		$notrigger	    0=no, 1=yes (no update trigger)
  *      @return int         			<0 if KO, >0 if OK
  */
 function update($user, $notrigger = 0)
 {
     global $conf, $langs;
     $error = 0;
     // Clean parameters
     $this->fk_contrat = trim($this->fk_contrat);
     $this->fk_product = trim($this->fk_product);
     $this->statut = trim($this->statut);
     $this->label = trim($this->label);
     $this->description = trim($this->description);
     $this->tva_tx = trim($this->tva_tx);
     $this->localtax1_tx = trim($this->localtax1_tx);
     $this->localtax2_tx = trim($this->localtax2_tx);
     $this->qty = trim($this->qty);
     $this->remise_percent = trim($this->remise_percent);
     $this->remise = trim($this->remise);
     $this->fk_remise_except = trim($this->fk_remise_except);
     $this->subprice = price2num($this->subprice);
     $this->price_ht = price2num($this->price_ht);
     $this->total_ht = trim($this->total_ht);
     $this->total_tva = trim($this->total_tva);
     $this->total_localtax1 = trim($this->total_localtax1);
     $this->total_localtax2 = trim($this->total_localtax2);
     $this->total_ttc = trim($this->total_ttc);
     $this->info_bits = trim($this->info_bits);
     $this->fk_user_author = trim($this->fk_user_author);
     $this->fk_user_ouverture = trim($this->fk_user_ouverture);
     $this->fk_user_cloture = trim($this->fk_user_cloture);
     $this->commentaire = trim($this->commentaire);
     // Check parameters
     // Put here code to add control on parameters values
     // Calcul du total TTC et de la TVA pour la ligne a partir de
     // qty, pu, remise_percent et txtva
     // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
     // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
     $tabprice = calcul_price_total($this->qty, $this->price_ht, $this->remise_percent, $this->tva_tx, $this->localtax1_tx, $this->localtax2_tx, 0, 'HT', 0, 1);
     $this->total_ht = $tabprice[0];
     $this->total_tva = $tabprice[1];
     $this->total_ttc = $tabprice[2];
     $this->total_localtax1 = $tabprice[9];
     $this->total_localtax2 = $tabprice[10];
     if (empty($this->pa_ht)) {
         $this->pa_ht = 0;
     }
     // si prix d'achat non renseigné et utilisé pour calcul des marges alors prix achat = prix vente
     if ($this->pa_ht == 0) {
         if ($this->subprice > 0 && (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)) {
             $this->pa_ht = $this->subprice * (1 - $this->remise_percent / 100);
         }
     }
     $this->db->begin();
     // Update request
     $sql = "UPDATE " . MAIN_DB_PREFIX . "contratdet SET";
     $sql .= " fk_contrat='" . $this->fk_contrat . "',";
     $sql .= " fk_product=" . ($this->fk_product ? "'" . $this->fk_product . "'" : 'null') . ",";
     $sql .= " statut='" . $this->statut . "',";
     $sql .= " label='" . $this->db->escape($this->label) . "',";
     $sql .= " description='" . $this->db->escape($this->description) . "',";
     $sql .= " date_commande=" . ($this->date_commande != '' ? "'" . $this->db->idate($this->date_commande) . "'" : "null") . ",";
     $sql .= " date_ouverture_prevue=" . ($this->date_ouverture_prevue != '' ? "'" . $this->db->idate($this->date_ouverture_prevue) . "'" : "null") . ",";
     $sql .= " date_ouverture=" . ($this->date_ouverture != '' ? "'" . $this->db->idate($this->date_ouverture) . "'" : "null") . ",";
     $sql .= " date_fin_validite=" . ($this->date_fin_validite != '' ? "'" . $this->db->idate($this->date_fin_validite) . "'" : "null") . ",";
     $sql .= " date_cloture=" . ($this->date_cloture != '' ? "'" . $this->db->idate($this->date_cloture) . "'" : "null") . ",";
     $sql .= " tva_tx='" . $this->tva_tx . "',";
     $sql .= " localtax1_tx='" . $this->localtax1_tx . "',";
     $sql .= " localtax2_tx='" . $this->localtax2_tx . "',";
     $sql .= " qty='" . $this->qty . "',";
     $sql .= " remise_percent='" . $this->remise_percent . "',";
     $sql .= " remise=" . ($this->remise ? "'" . $this->remise . "'" : "null") . ",";
     $sql .= " fk_remise_except=" . ($this->fk_remise_except ? "'" . $this->fk_remise_except . "'" : "null") . ",";
     $sql .= " subprice='" . $this->subprice . "',";
     $sql .= " price_ht='" . $this->price_ht . "',";
     $sql .= " total_ht='" . $this->total_ht . "',";
     $sql .= " total_tva='" . $this->total_tva . "',";
     $sql .= " total_localtax1='" . $this->total_localtax1 . "',";
     $sql .= " total_localtax2='" . $this->total_localtax2 . "',";
     $sql .= " total_ttc='" . $this->total_ttc . "',";
     $sql .= " fk_product_fournisseur_price=" . (!empty($this->fk_fournprice) ? $this->fk_fournprice : "NULL") . ",";
     $sql .= " buy_price_ht='" . price2num($this->pa_ht) . "',";
     $sql .= " info_bits='" . $this->info_bits . "',";
     $sql .= " fk_user_author=" . ($this->fk_user_author >= 0 ? $this->fk_user_author : "NULL") . ",";
     $sql .= " fk_user_ouverture=" . ($this->fk_user_ouverture > 0 ? $this->fk_user_ouverture : "NULL") . ",";
     $sql .= " fk_user_cloture=" . ($this->fk_user_cloture > 0 ? $this->fk_user_cloture : "NULL") . ",";
     $sql .= " commentaire='" . $this->db->escape($this->commentaire) . "'";
     $sql .= " WHERE rowid=" . $this->id;
     dol_syslog(get_class($this) . "::update", LOG_DEBUG);
     $resql = $this->db->query($sql);
     if ($resql) {
         $contrat = new Contrat($this->db);
         $contrat->fetch($this->fk_contrat);
         $result = $contrat->update_statut($user);
     } else {
         $this->error = "Error " . $this->db->lasterror();
         $this->db->rollback();
         return -1;
     }
     if (!$notrigger) {
         // Call trigger
         $result = $this->call_trigger('LINECONTRACT_UPDATE', $user);
         if ($result < 0) {
             $error++;
             $this->db->rollback();
             return -1;
         }
         // End call triggers
     }
     $this->db->commit();
     return 1;
 }
コード例 #5
0
ファイル: card.php プロジェクト: NoisyBoy86/Dolibarr_test
     }
     print '</tr></table>';
     print '</td><td colspan="3">';
     if ($action == 'contrat') {
         print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
         print '<tr><td>';
         $htmlcontract = new Formcontract($db);
         //print "$socid,$selected,$htmlname";
         $htmlcontract->select_contract($object->socid, $object->fk_contrat, 'contratid');
         print '</td>';
         print '<td align="left"><input type="submit" class="button" value="' . $langs->trans("Modify") . '"></td>';
         print '</tr></table>';
     } else {
         if ($object->fk_contrat) {
             $contratstatic = new Contrat($db);
             $contratstatic->fetch($object->fk_contrat);
             //print '<a href="'.DOL_URL_ROOT.'/projet/card.php?id='.$selected.'">'.$projet->title.'</a>';
             print $contratstatic->getNomUrl(0, '', 1);
         } else {
             print "&nbsp;";
         }
     }
     print '</td>';
     print '</tr>';
 }
 // Statut
 print '<tr><td>' . $langs->trans("Status") . '</td><td colspan="3">' . $object->getLibStatut(4) . '</td></tr>';
 // Other attributes
 $cols = 3;
 include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
 print "</table>";
コード例 #6
0
/**
 *      \file       htdocs/contrat/info.php
 *      \ingroup    contrat
 *      \brief      Page des informations d'un contrat
 */
require "../main.inc.php";
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/contract.lib.php';
require_once DOL_DOCUMENT_ROOT . '/contrat/class/contrat.class.php';
$langs->load("contracts");
// Security check
$contratid = GETPOST("id", 'int');
if ($user->societe_id) {
    $socid = $user->societe_id;
}
$result = restrictedArea($user, 'contrat', $contratid, '');
/*
* View
*/
llxHeader();
$contrat = new Contrat($db);
$contrat->fetch($contratid);
$contrat->info($contratid);
$head = contract_prepare_head($contrat);
dol_fiche_head($head, 'info', $langs->trans("Contract"), 0, 'contract');
print '<table width="100%"><tr><td>';
dol_print_object_info($contrat);
print '</td></tr></table>';
print '</div>';
$db->close();
llxFooter();
コード例 #7
0
<?php

require '../config.php';
$get = GETPOST('get');
switch ($get) {
    case 'is-concurrent':
        $fk_contrat = (int) GETPOST('id');
        dol_include_once('/contrat/class/contrat.class.php');
        $c = new Contrat($db);
        $c->fetch($fk_contrat);
        if ($c->id > 0 && $c->array_options['options_concurrent'] == 1) {
            echo 1;
        } else {
            echo 0;
        }
        break;
    default:
        break;
}
コード例 #8
0
$usehm = !empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? $conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE : 0;
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('contractcard'));
$object = new Contrat($db);
$extrafields = new ExtraFields($db);
// fetch optionals attributes and labels
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
$permissionnote = $user->rights->contrat->creer;
// Used by the include of actions_setnotes.inc.php
/*
 * Actions
 */
include DOL_DOCUMENT_ROOT . '/core/actions_setnotes.inc.php';
// Must be include, not includ_once
if ($action == 'confirm_active' && $confirm == 'yes' && $user->rights->contrat->activer) {
    $object->fetch($id);
    $result = $object->active_line($user, GETPOST('ligne'), GETPOST('date'), GETPOST('dateend'), GETPOST('comment'));
    if ($result > 0) {
        header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
        exit;
    } else {
        setEventMessage($object->error, 'errors');
    }
} else {
    if ($action == 'confirm_closeline' && $confirm == 'yes' && $user->rights->contrat->activer) {
        if (!GETPOST('dateend')) {
            $error++;
            setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), 'errors');
        }
        if (!$error) {
            $object->fetch($id);
コード例 #9
0
ファイル: contrat.class.php プロジェクト: nrjacker4/crm-php
 /**
  *      Update database for contract line
  *
  *      @param	User	$user        	User that modify
  *      @param  int		$notrigger	    0=no, 1=yes (no update trigger)
  *      @return int         			<0 if KO, >0 if OK
  */
 function update($user, $notrigger = 0)
 {
     global $conf, $langs;
     $error = 0;
     // Clean parameters
     $this->fk_contrat = trim($this->fk_contrat);
     $this->fk_product = trim($this->fk_product);
     $this->statut = trim($this->statut);
     $this->label = trim($this->label);
     $this->description = trim($this->description);
     $this->tva_tx = trim($this->tva_tx);
     $this->localtax1_tx = trim($this->localtax1_tx);
     $this->localtax2_tx = trim($this->localtax2_tx);
     $this->qty = trim($this->qty);
     $this->remise_percent = trim($this->remise_percent);
     $this->remise = trim($this->remise);
     $this->fk_remise_except = trim($this->fk_remise_except);
     $this->subprice = price2num($this->subprice);
     $this->price_ht = price2num($this->price_ht);
     $this->total_ht = trim($this->total_ht);
     $this->total_tva = trim($this->total_tva);
     $this->total_localtax1 = trim($this->total_localtax1);
     $this->total_localtax2 = trim($this->total_localtax2);
     $this->total_ttc = trim($this->total_ttc);
     $this->info_bits = trim($this->info_bits);
     $this->fk_user_author = trim($this->fk_user_author);
     $this->fk_user_ouverture = trim($this->fk_user_ouverture);
     $this->fk_user_cloture = trim($this->fk_user_cloture);
     $this->commentaire = trim($this->commentaire);
     // Check parameters
     // Put here code to add control on parameters values
     // Calcul du total TTC et de la TVA pour la ligne a partir de
     // qty, pu, remise_percent et txtva
     // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
     // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
     $tabprice = calcul_price_total($this->qty, $this->price_ht, $this->remise_percent, $this->tva_tx, $this->localtax1_tx, $this->localtax2_tx, 0, 'HT', 0);
     $this->total_ht = $tabprice[0];
     $this->total_tva = $tabprice[1];
     $this->total_ttc = $tabprice[2];
     $this->total_localtax1 = $tabprice[9];
     $this->total_localtax2 = $tabprice[10];
     // Update request
     $sql = "UPDATE " . MAIN_DB_PREFIX . "contratdet SET";
     $sql .= " fk_contrat='" . $this->fk_contrat . "',";
     $sql .= " fk_product=" . ($this->fk_product ? "'" . $this->fk_product . "'" : 'null') . ",";
     $sql .= " statut='" . $this->statut . "',";
     $sql .= " label='" . $this->db->escape($this->label) . "',";
     $sql .= " description='" . $this->db->escape($this->description) . "',";
     $sql .= " date_commande=" . ($this->date_commande != '' ? "'" . $this->db->idate($this->date_commande) . "'" : "null") . ",";
     $sql .= " date_ouverture_prevue=" . ($this->date_ouverture_prevue != '' ? "'" . $this->db->idate($this->date_ouverture_prevue) . "'" : "null") . ",";
     $sql .= " date_ouverture=" . ($this->date_ouverture != '' ? "'" . $this->db->idate($this->date_ouverture) . "'" : "null") . ",";
     $sql .= " date_fin_validite=" . ($this->date_fin_validite != '' ? "'" . $this->db->idate($this->date_fin_validite) . "'" : "null") . ",";
     $sql .= " date_cloture=" . ($this->date_cloture != '' ? "'" . $this->db->idate($this->date_cloture) . "'" : "null") . ",";
     $sql .= " tva_tx='" . $this->tva_tx . "',";
     $sql .= " localtax1_tx='" . $this->localtax1_tx . "',";
     $sql .= " localtax2_tx='" . $this->localtax2_tx . "',";
     $sql .= " qty='" . $this->qty . "',";
     $sql .= " remise_percent='" . $this->remise_percent . "',";
     $sql .= " remise=" . ($this->remise ? "'" . $this->remise . "'" : "null") . ",";
     $sql .= " fk_remise_except=" . ($this->fk_remise_except ? "'" . $this->fk_remise_except . "'" : "null") . ",";
     $sql .= " subprice='" . $this->subprice . "',";
     $sql .= " price_ht='" . $this->price_ht . "',";
     $sql .= " total_ht='" . $this->total_ht . "',";
     $sql .= " total_tva='" . $this->total_tva . "',";
     $sql .= " total_localtax1='" . $this->total_localtax1 . "',";
     $sql .= " total_localtax2='" . $this->total_localtax2 . "',";
     $sql .= " total_ttc='" . $this->total_ttc . "',";
     $sql .= " info_bits='" . $this->info_bits . "',";
     $sql .= " fk_user_author=" . ($this->fk_user_author >= 0 ? $this->fk_user_author : "NULL") . ",";
     $sql .= " fk_user_ouverture=" . ($this->fk_user_ouverture > 0 ? $this->fk_user_ouverture : "NULL") . ",";
     $sql .= " fk_user_cloture=" . ($this->fk_user_cloture > 0 ? $this->fk_user_cloture : "NULL") . ",";
     $sql .= " commentaire='" . $this->db->escape($this->commentaire) . "'";
     $sql .= " WHERE rowid=" . $this->id;
     dol_syslog(get_class($this) . "::update sql=" . $sql, LOG_DEBUG);
     $resql = $this->db->query($sql);
     if ($resql) {
         $contrat = new Contrat($this->db);
         $contrat->fetch($this->fk_contrat);
         $result = $contrat->update_statut($user);
     } else {
         $this->error = "Error " . $this->db->lasterror();
         dol_syslog(get_class($this) . "::update " . $this->error, LOG_ERR);
         return -1;
     }
     if (!$notrigger) {
         // Appel des triggers
         include_once DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php";
         $interface = new Interfaces($this->db);
         $result = $interface->run_triggers('MYOBJECT_MODIFY', $this, $user, $langs, $conf);
         if ($result < 0) {
             $error++;
             $this->errors = $interface->errors;
         }
         // Fin appel triggers
     }
     return 1;
 }
コード例 #10
0
ファイル: ContratTest.php プロジェクト: Samara94/dolibarr
 /**
  * testContratDelete
  *
  * @param	int		$id		Id of contract
  * @return	int
  *
  * @depends	testContratOther
  * The depends says test is run only if previous is ok
  */
 public function testContratDelete($id)
 {
     global $conf, $user, $langs, $db;
     $conf = $this->savconf;
     $user = $this->savuser;
     $langs = $this->savlangs;
     $db = $this->savdb;
     $localobject = new Contrat($this->savdb);
     $result = $localobject->fetch($id);
     $result = $localobject->delete($user);
     print __METHOD__ . " id=" . $id . " result=" . $result . "\n";
     $this->assertLessThan($result, 0);
     return $result;
 }
コード例 #11
0
ファイル: contact.php プロジェクト: remyyounes/dolibarr
$html = new Form($db);
$formcompany= new FormCompany($db);
$contactstatic=new Contact($db);
$userstatic=new User($db);


/* *************************************************************************** */
/*                                                                             */
/* Mode vue et edition                                                         */
/*                                                                             */
/* *************************************************************************** */
$id = $_GET["id"];
if ($id > 0)
{
	$contrat = New Contrat($db);
	if ($contrat->fetch($id) > 0)
	{
		if ($mesg) print $mesg;

		$soc = new Societe($db);
		$soc->fetch($contrat->socid);

	    $head = contract_prepare_head($contrat);

		$hselected=1;

		dol_fiche_head($head, $hselected, $langs->trans("Contract"), 0, 'contract');

		/*
		 *   Contrat
		 */
コード例 #12
0
ファイル: fiche.php プロジェクト: remyyounes/dolibarr
$contratid = GETPOST("id");
if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'contrat',$contratid,'contrat');

$usehm=$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE;

$object = new Contrat($db);


/*
 * Actions
 */

if ($action == 'confirm_active' && $_REQUEST["confirm"] == 'yes' && $user->rights->contrat->activer)
{
    $object->fetch($_GET["id"]);
    $result = $object->active_line($user, $_GET["ligne"], $_GET["date"], $_GET["dateend"], $_GET["comment"]);

    if ($result > 0)
    {
        Header("Location: fiche.php?id=".$object->id);
        exit;
    }
    else {
        $mesg=$object->error;
    }
}

if ($action == 'confirm_closeline' && $_REQUEST["confirm"] == 'yes' && $user->rights->contrat->activer)
{
    $object->fetch($_GET["id"]);
コード例 #13
0
ファイル: contrat.class.php プロジェクト: Albertopf/prueba
 /**
  *      Update database for contract line
  *
  *      @param	User	$user        	User that modify
  *      @param  int		$notrigger	    0=no, 1=yes (no update trigger)
  *      @return int         			<0 if KO, >0 if OK
  */
 function update($user, $notrigger = 0)
 {
     global $conf, $langs, $mysoc;
     $error = 0;
     // Clean parameters
     $this->fk_contrat = trim($this->fk_contrat);
     $this->fk_product = trim($this->fk_product);
     $this->statut = (int) $this->statut;
     $this->label = trim($this->label);
     $this->description = trim($this->description);
     $this->tva_tx = trim($this->tva_tx);
     $this->localtax1_tx = trim($this->localtax1_tx);
     $this->localtax2_tx = trim($this->localtax2_tx);
     $this->qty = trim($this->qty);
     $this->remise_percent = trim($this->remise_percent);
     $this->remise = trim($this->remise);
     $this->fk_remise_except = trim($this->fk_remise_except);
     $this->subprice = price2num($this->subprice);
     $this->price_ht = price2num($this->price_ht);
     $this->total_ht = trim($this->total_ht);
     $this->total_tva = trim($this->total_tva);
     $this->total_localtax1 = trim($this->total_localtax1);
     $this->total_localtax2 = trim($this->total_localtax2);
     $this->total_ttc = trim($this->total_ttc);
     $this->info_bits = trim($this->info_bits);
     $this->fk_user_author = trim($this->fk_user_author);
     $this->fk_user_ouverture = trim($this->fk_user_ouverture);
     $this->fk_user_cloture = trim($this->fk_user_cloture);
     $this->commentaire = trim($this->commentaire);
     //if (empty($this->subprice)) $this->subprice = 0;
     if (empty($this->price_ht)) {
         $this->price_ht = 0;
     }
     if (empty($this->total_ht)) {
         $this->total_ht = 0;
     }
     if (empty($this->total_tva)) {
         $this->total_tva = 0;
     }
     if (empty($this->total_ttc)) {
         $this->total_ttc = 0;
     }
     // Check parameters
     // Put here code to add control on parameters values
     // Calcul du total TTC et de la TVA pour la ligne a partir de
     // qty, pu, remise_percent et txtva
     // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
     // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
     $localtaxes_type = getLocalTaxesFromRate($this->txtva, 0, $this->societe, $mysoc);
     $tabprice = calcul_price_total($this->qty, $this->price_ht, $this->remise_percent, $this->tva_tx, $this->localtax1_tx, $this->localtax2_tx, 0, 'HT', 0, 1, $mysoc, $localtaxes_type);
     $this->total_ht = $tabprice[0];
     $this->total_tva = $tabprice[1];
     $this->total_ttc = $tabprice[2];
     $this->total_localtax1 = $tabprice[9];
     $this->total_localtax2 = $tabprice[10];
     if (empty($this->pa_ht)) {
         $this->pa_ht = 0;
     }
     // if buy price not defined, define buyprice as configured in margin admin
     if ($this->pa_ht == 0) {
         if (($result = $this->defineBuyPrice($this->subprice, $this->remise_percent, $this->fk_product)) < 0) {
             return $result;
         } else {
             $this->pa_ht = $result;
         }
     }
     $this->db->begin();
     // Update request
     $sql = "UPDATE " . MAIN_DB_PREFIX . "contratdet SET";
     $sql .= " fk_contrat='" . $this->fk_contrat . "',";
     $sql .= " fk_product=" . ($this->fk_product ? "'" . $this->fk_product . "'" : 'null') . ",";
     $sql .= " statut='" . $this->statut . "',";
     $sql .= " label='" . $this->db->escape($this->label) . "',";
     $sql .= " description='" . $this->db->escape($this->description) . "',";
     $sql .= " date_commande=" . ($this->date_commande != '' ? "'" . $this->db->idate($this->date_commande) . "'" : "null") . ",";
     $sql .= " date_ouverture_prevue=" . ($this->date_ouverture_prevue != '' ? "'" . $this->db->idate($this->date_ouverture_prevue) . "'" : "null") . ",";
     $sql .= " date_ouverture=" . ($this->date_ouverture != '' ? "'" . $this->db->idate($this->date_ouverture) . "'" : "null") . ",";
     $sql .= " date_fin_validite=" . ($this->date_fin_validite != '' ? "'" . $this->db->idate($this->date_fin_validite) . "'" : "null") . ",";
     $sql .= " date_cloture=" . ($this->date_cloture != '' ? "'" . $this->db->idate($this->date_cloture) . "'" : "null") . ",";
     $sql .= " tva_tx='" . $this->tva_tx . "',";
     $sql .= " localtax1_tx='" . $this->localtax1_tx . "',";
     $sql .= " localtax2_tx='" . $this->localtax2_tx . "',";
     $sql .= " qty='" . $this->qty . "',";
     $sql .= " remise_percent='" . $this->remise_percent . "',";
     $sql .= " remise=" . ($this->remise ? "'" . $this->remise . "'" : "null") . ",";
     $sql .= " fk_remise_except=" . ($this->fk_remise_except ? "'" . $this->fk_remise_except . "'" : "null") . ",";
     $sql .= " subprice=" . ($this->subprice != '' ? $this->subprice : "null") . ",";
     $sql .= " price_ht=" . ($this->price_ht != '' ? $this->price_ht : "null") . ",";
     $sql .= " total_ht='" . $this->total_ht . "',";
     $sql .= " total_tva='" . $this->total_tva . "',";
     $sql .= " total_localtax1='" . $this->total_localtax1 . "',";
     $sql .= " total_localtax2='" . $this->total_localtax2 . "',";
     $sql .= " total_ttc='" . $this->total_ttc . "',";
     $sql .= " fk_product_fournisseur_price=" . (!empty($this->fk_fournprice) ? $this->fk_fournprice : "NULL") . ",";
     $sql .= " buy_price_ht='" . price2num($this->pa_ht) . "',";
     $sql .= " info_bits='" . $this->info_bits . "',";
     $sql .= " fk_user_author=" . ($this->fk_user_author >= 0 ? $this->fk_user_author : "NULL") . ",";
     $sql .= " fk_user_ouverture=" . ($this->fk_user_ouverture > 0 ? $this->fk_user_ouverture : "NULL") . ",";
     $sql .= " fk_user_cloture=" . ($this->fk_user_cloture > 0 ? $this->fk_user_cloture : "NULL") . ",";
     $sql .= " commentaire='" . $this->db->escape($this->commentaire) . "'";
     $sql .= ", fk_unit=" . (!$this->fk_unit ? 'NULL' : $this->fk_unit);
     $sql .= " WHERE rowid=" . $this->id;
     dol_syslog(get_class($this) . "::update", LOG_DEBUG);
     $resql = $this->db->query($sql);
     if ($resql) {
         $contrat = new Contrat($this->db);
         $contrat->fetch($this->fk_contrat);
         $result = $contrat->update_statut($user);
     } else {
         $this->error = "Error " . $this->db->lasterror();
         $error++;
         //return -1;
     }
     if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($this->array_options) && count($this->array_options) > 0) {
         $result = $this->insertExtraFields();
         if ($result < 0) {
             $error++;
         }
     }
     if (empty($error)) {
         if (!$notrigger) {
             // Call trigger
             $result = $this->call_trigger('LINECONTRACT_UPDATE', $user);
             if ($result < 0) {
                 $error++;
                 $this->db->rollback();
                 return -1;
             }
             // End call triggers
         }
     }
     if (empty($error)) {
         $this->db->commit();
         return 1;
     } else {
         $this->db->rollback();
         $this->errors[] = $this->error;
         return -1;
     }
 }
コード例 #14
0
ファイル: newpayment.php プロジェクト: ADDAdev/Dolibarr
    print '<input type="hidden" name="desc" value="' . $langs->trans("Invoice") . ' ' . $invoice->ref . '">' . "\n";
}
// Payment on contract line
if (GETPOST("source") == 'contractline' && $valid) {
    $found = true;
    $langs->load("contracts");
    require_once DOL_DOCUMENT_ROOT . '/contrat/class/contrat.class.php';
    $contractline = new ContratLigne($db);
    $result = $contractline->fetch('', $ref);
    if ($result < 0) {
        $mesg = $contractline->error;
        $error++;
    } else {
        if ($contractline->fk_contrat > 0) {
            $contract = new Contrat($db);
            $result = $contract->fetch($contractline->fk_contrat);
            if ($result > 0) {
                $result = $contract->fetch_thirdparty($contract->socid);
            } else {
                $mesg = $contract->error;
                $error++;
            }
        } else {
            $mesg = 'ErrorRecordNotFound';
            $error++;
        }
    }
    $amount = $contractline->total_ttc;
    if ($contractline->fk_product) {
        $product = new Product($db);
        $result = $product->fetch($contractline->fk_product);
コード例 #15
0
ファイル: info.php プロジェクト: abbenbouchta/immobilier
/**
 *      \file       htdocs/contrat/info.php
 *      \ingroup    contrat
 *      \brief      Page des informations d'un contrat
 */
require "../main.inc.php";
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/contract.lib.php';
require_once DOL_DOCUMENT_ROOT . '/contrat/class/contrat.class.php';
$langs->load("contracts");
// Security check
$contratid = isset($_GET["id"]) ? $_GET["id"] : '';
if ($user->societe_id) {
    $socid = $user->societe_id;
}
$result = restrictedArea($user, 'contrat', $contratid, '');
/*
* View
*/
llxHeader();
$contrat = new Contrat($db);
$contrat->fetch($_GET["id"]);
$contrat->info($_GET["id"]);
$head = contract_prepare_head($contrat);
dol_fiche_head($head, 'info', $langs->trans("Contract"), 0, 'contract');
print '<table width="100%"><tr><td>';
dol_print_object_info($contrat);
print '</td></tr></table>';
print '</div>';
$db->close();
llxFooter();
コード例 #16
0
ファイル: contrat.class.php プロジェクト: remyyounes/dolibarr
	/**
	 *      Update database for contract line
	 *      @param      user        	User that modify
	 *      @param      notrigger	    0=no, 1=yes (no update trigger)
	 *      @return     int         	<0 if KO, >0 if OK
	 */
	function update($user, $notrigger=0)
	{
		global $conf, $langs;

		// Clean parameters
		$this->fk_contrat=trim($this->fk_contrat);
		$this->fk_product=trim($this->fk_product);
		$this->statut=trim($this->statut);
		$this->label=trim($this->label);
		$this->description=trim($this->description);
		$this->tva_tx=trim($this->tva_tx);
		$this->localtax1_tx=trim($this->localtax1_tx);
		$this->localtax2_tx=trim($this->localtax2_tx);
		$this->qty=trim($this->qty);
		$this->remise_percent=trim($this->remise_percent);
		$this->remise=trim($this->remise);
		$this->fk_remise_except=trim($this->fk_remise_except);
		$this->subprice=price2num($this->subprice);
		$this->price_ht=price2num($this->price_ht);
		$this->total_ht=trim($this->total_ht);
		$this->total_tva=trim($this->total_tva);
		$this->total_localtax1=trim($this->total_localtax1);
		$this->total_localtax2=trim($this->total_localtax2);
		$this->total_ttc=trim($this->total_ttc);
		$this->info_bits=trim($this->info_bits);
		$this->fk_user_author=trim($this->fk_user_author);
		$this->fk_user_ouverture=trim($this->fk_user_ouverture);
		$this->fk_user_cloture=trim($this->fk_user_cloture);
		$this->commentaire=trim($this->commentaire);

		// Check parameters
		// Put here code to add control on parameters values

		// Update request
		$sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET";
		$sql.= " fk_contrat='".$this->fk_contrat."',";
		$sql.= " fk_product=".($this->fk_product?"'".$this->fk_product."'":'null').",";
		$sql.= " statut='".$this->statut."',";
		$sql.= " label='".$this->db->escape($this->label)."',";
		$sql.= " description='".$this->db->escape($this->description)."',";
		$sql.= " date_commande=".($this->date_commande!=''?$this->db->idate($this->date_commande):"null").",";
		$sql.= " date_ouverture_prevue=".($this->date_ouverture_prevue!=''?$this->db->idate($this->date_ouverture_prevue):"null").",";
		$sql.= " date_ouverture=".($this->date_ouverture!=''?$this->db->idate($this->date_ouverture):"null").",";
		$sql.= " date_fin_validite=".($this->date_fin_validite!=''?$this->db->idate($this->date_fin_validite):"null").",";
		$sql.= " date_cloture=".($this->date_cloture!=''?$this->db->idate($this->date_cloture):"null").",";
		$sql.= " tva_tx='".$this->tva_tx."',";
		$sql.= " localtax1_tx='".$this->localtax1_tx."',";
		$sql.= " localtax2_tx='".$this->localtax2_tx."',";
		$sql.= " qty='".$this->qty."',";
		$sql.= " remise_percent='".$this->remise_percent."',";
		$sql.= " remise=".($this->remise?"'".$this->remise."'":"null").",";
		$sql.= " fk_remise_except=".($this->fk_remise_except?"'".$this->fk_remise_except."'":"null").",";
		$sql.= " subprice='".$this->subprice."',";
		$sql.= " price_ht='".$this->price_ht."',";
		$sql.= " total_ht='".$this->total_ht."',";
		$sql.= " total_tva='".$this->total_tva."',";
		$sql.= " total_localtax1='".$this->total_localtax1."',";
		$sql.= " total_localtax2='".$this->total_localtax2."',";
		$sql.= " total_ttc='".$this->total_ttc."',";
		$sql.= " info_bits='".$this->info_bits."',";
		$sql.= " fk_user_author=".($this->fk_user_author >= 0?$this->fk_user_author:"NULL").",";
		$sql.= " fk_user_ouverture=".($this->fk_user_ouverture > 0?$this->fk_user_ouverture:"NULL").",";
		$sql.= " fk_user_cloture=".($this->fk_user_cloture > 0?$this->fk_user_cloture:"NULL").",";
		$sql.= " commentaire='".$this->db->escape($this->commentaire)."'";
		$sql.= " WHERE rowid=".$this->id;

		dol_syslog("ContratLigne::update sql=".$sql, LOG_DEBUG);
		$resql = $this->db->query($sql);
		if ($resql)
		{
			$contrat=new Contrat($this->db);
			$contrat->fetch($this->fk_contrat);
			$result=$contrat->update_statut($user);
		}
		else
		{
			$this->error="Error ".$this->db->lasterror();
			dol_syslog("ContratLigne::update ".$this->error, LOG_ERR);
			return -1;
		}

		if (! $notrigger)
		{
			// Appel des triggers
			include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
			$interface=new Interfaces($this->db);
			$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
			if ($result < 0) { $error++; $this->errors=$interface->errors; }
			// Fin appel triggers
		}

		return 1;
	}
コード例 #17
0
function _header($id, $object_type)
{
    global $db, $langs;
    $langs->load('interventions');
    $langs->load('contracts');
    if ($object_type == 'contrat') {
        $object = new Contrat($db);
        $object->fetch($id);
        dol_include_once('/core/lib/contract.lib.php');
        $head = contract_prepare_head($object);
        dol_fiche_head($head, 'dispatchAsset', $langs->trans("Contract"), 0, 'contract');
    } else {
        if ($object_type == 'intervention') {
            $object = new Fichinter($db);
            $object->fetch($id);
            dol_include_once('/core/lib/fichinter.lib.php');
            $head = fichinter_prepare_head($object);
            dol_fiche_head($head, 'dispatchAsset', $langs->trans("InterventionCard"), 0, 'intervention');
        } else {
            if ($object_type == 'ticketsup') {
                dol_include_once('/ticketsup/class/ticketsup.class.php');
                dol_include_once('/ticketsup/lib/ticketsup.lib.php');
                $object = new Ticketsup($db);
                $object->fetch($id);
                $head = ticketsup_prepare_head($object);
                dol_fiche_head($head, 'dispatchAsset', $langs->trans("Ticket"), 0, 'ticketsup@ticketsup');
            }
        }
    }
    return $object;
}