function doActions($parameters, &$object, &$action, $hookmanager)
 {
     if (GETPOST('addcontratline')) {
         $fk_line_contrat_origin = GETPOST('fk_line_contrat_origin', 'int');
         if ($fk_line_contrat_origin > 0) {
             global $db;
             dol_include_once('/contrat/class/contrat.class.php');
             $lineContrat = new ContratLigne($db);
             $res = $lineContrat->fetch($fk_line_contrat_origin);
             if ($res > 0) {
                 $linePropal = new PropaleLigne($db);
                 $array_options = array();
                 require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
                 $extrafields = new ExtraFields($db);
                 $TExtra = $extrafields->fetch_name_optionals_label($linePropal->table_element);
                 // Récupération des extrafields de la ligne contrat vers la ligne propal
                 $lineContrat->fetch_optionals();
                 foreach ($lineContrat->array_options as $key => $val) {
                     $subkey = substr($key, 8);
                     if (isset($TExtra[$subkey])) {
                         $array_options[$key] = $val;
                     }
                 }
                 if (isset($TExtra['fk_contratdet_origin'])) {
                     $array_options['options_fk_contratdet_origin'] = $lineContrat->id;
                 }
                 $object->addline($lineContrat->description, $lineContrat->subprice, $lineContrat->qty, $lineContrat->tva_tx, $lineContrat->localtax1_tx, $lineContrat->localtax2_tx, $lineContrat->fk_product, $lineContrat->remise_percent, 'HT', 0.0, $lineContrat->info_bits, 1, -1, 0, 0, 0, $lineContrat->pa_ht, '', $lineContrat->date_ouverture_prevue, $lineContrat->date_fin_validite, $array_options, $lineContrat->fk_unit);
             }
         }
     }
 }
Ejemplo n.º 2
0
        print '<input type="hidden" name="shipToZip" value="' . $shipToZip . '">' . "\n";
        print '<input type="hidden" name="shipToStreet2" value="' . $shipToStreet2 . '">' . "\n";
        print '<input type="hidden" name="phoneNum" value="' . $phoneNum . '">' . "\n";
    } else {
        print '<!-- Shipping address not complete, so we don t use it -->' . "\n";
    }
    print '<input type="hidden" name="email" value="' . $invoice->thirdparty->email . '">' . "\n";
    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';
Ejemplo n.º 3
0
	print ' ('.$langs->trans("ToComplete").')';
    $email=$invoice->client->email;
    $email=(GETPOST("email")?GETPOST("email"):(isValidEmail($email)?$email:''));
	print '</td><td class="CTableRow'.($var?'1':'2').'"><input class="flat" type="text" name="email" size="48" value="'.$email.'"></td></tr>'."\n";
}

// Payment on contract line
if (GETPOST("source") == 'contractline')
{
	$found=true;
	$langs->load("contracts");

	require_once(DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php");

	$contractline=new ContratLigne($db);
	$result=$contractline->fetch('',$_REQUEST["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);
			}
Ejemplo n.º 4
0
 if ($action == 'confirm_close' && $confirm == 'yes' && $user->rights->contrat->creer) {
     $object->cloture($user);
 } else {
     if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->contrat->supprimer) {
         $result = $object->delete($user);
         if ($result >= 0) {
             header("Location: index.php");
             return;
         } else {
             setEventMessage($object->error, 'errors');
         }
     } else {
         if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contrat->creer) {
             if (GETPOST('newcid') > 0) {
                 $contractline = new ContratLigne($db);
                 $result = $contractline->fetch(GETPOST('lineid'));
                 $contractline->fk_contrat = GETPOST('newcid');
                 $result = $contractline->update($user, 1);
                 if ($result >= 0) {
                     header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
                     return;
                 } else {
                     setEventMessage($object->error, 'errors');
                 }
             } else {
                 setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentities("RefNewContract")), 'errors');
             }
         } else {
             if ($action == 'update_extras') {
                 // Fill array 'array_options' with data from update form
                 $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
Ejemplo n.º 5
0
/**
 * Update total of contract lines
 *
 * @param	DoliDB		$db		Database handler
 * @param	Translate	$langs	Object langs
 * @param	Conf		$conf	Object conf
 * @return	void
 */
function migrate_price_contrat($db, $langs, $conf)
{
    $db->begin();
    $tmpmysoc = new Societe($db);
    $tmpmysoc->setMysoc($conf);
    if (empty($tmpmysoc->country_id)) {
        $tmpmysoc->country_id = 0;
    }
    // Ti not have this set to '' or will make sql syntax error.
    print '<tr><td colspan="4">';
    print '<br>';
    print '<b>' . $langs->trans('MigrationContract') . "</b><br>\n";
    // Liste des lignes contrat non a jour
    $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
    $sql .= " c.rowid as contratid";
    $sql .= " FROM " . MAIN_DB_PREFIX . "contratdet as cd, " . MAIN_DB_PREFIX . "contrat as c";
    $sql .= " WHERE cd.fk_contrat = c.rowid";
    $sql .= " AND ((cd.total_ttc = 0 AND cd.remise_percent != 100 AND cd.subprice > 0) or cd.total_ttc IS NULL)";
    dolibarr_install_syslog("upgrade2::migrate_price_contrat");
    $resql = $db->query($sql);
    if ($resql) {
        $num = $db->num_rows($resql);
        $i = 0;
        if ($num) {
            while ($i < $num) {
                $obj = $db->fetch_object($resql);
                $rowid = $obj->rowid;
                $qty = $obj->qty;
                $pu = $obj->subprice;
                $vatrate = $obj->vatrate;
                $remise_percent = $obj->remise_percent;
                $info_bits = $obj->info_bits;
                // On met a jour les 3 nouveaux champs
                $contratligne = new ContratLigne($db);
                //$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis
                $contratligne->fetch($rowid);
                $result = calcul_price_total($qty, $pu, $remise_percent, $vatrate, 0, 0, 0, 'HT', $info_bits, $contratligne->product_type, $tmpmysoc);
                $total_ht = $result[0];
                $total_tva = $result[1];
                $total_ttc = $result[2];
                $contratligne->total_ht = $total_ht;
                $contratligne->total_tva = $total_tva;
                $contratligne->total_ttc = $total_ttc;
                dolibarr_install_syslog("upgrade2: Line " . $rowid . ": contratdetid=" . $obj->rowid . " pu=" . $pu . " qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent . "  -> " . $total_ht . ", " . $total_tva . " , " . $total_ttc);
                print ". ";
                $contratligne->update_total();
                $i++;
            }
        } else {
            print $langs->trans("AlreadyDone");
        }
        $db->free($resql);
        $db->commit();
    } else {
        print "Error #1 " . $db->error();
        $db->rollback();
    }
    print '<br>';
    print '</td></tr>';
}
Ejemplo n.º 6
0
		}
		else
		{
			$mesg='<div class="error">'.$object->error.'</div>';
		}
    }
}

if ($action == 'confirm_move' && $_REQUEST["confirm"] == 'yes')
{
    if ($user->rights->contrat->creer)
    {
    	if ($_POST['newcid'] > 0)
    	{
    		$contractline = new ContratLigne($db);
    		$result=$contractline->fetch($_GET["lineid"]);
	        $contractline->fk_contrat = $_POST["newcid"];
	        $result=$contractline->update($user,1);
	        if ($result >= 0)
			{
				Header("Location: ".$_SERVER['PHP_SELF'].'?id='.$_GET['id']);
				return;
			}
			else
			{
				$mesg='<div class="error">'.$object->error.'</div>';
			}
    	}
		else
		{
			$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("RefNewContract")).'</div>';