} if (!$uniq_checklist) { $factures = $journal->loadRefsFacture(); if (count($factures)) { $printer_justif = new CPrinter(); $printer_justif->function_id = $user->function_id; $printer_justif->label = "justif"; $printer_justif->loadMatchingObject(); if (!$printer_justif->_id) { CAppUI::setMsg("Les imprimantes ne sont pas paramétrées", UI_MSG_ERROR); echo CAppUI::getMsg(); return false; } $file = new CFile(); foreach ($factures as $facture) { $facture_pdf = new CEditPdf(); $facture_pdf->factures = array($facture); $pdf = ""; $pdf = $facture_pdf->editFactureBVR(false, "S"); $file_path = tempnam("tmp", "facture"); $file->_file_path = $file_path; file_put_contents($file_path, $pdf); $printer_bvr->loadRefSource()->sendDocument($file); unlink($file_path); $pdf = ""; $pdf = $facture_pdf->editJustificatif(false, "S"); $file_path = tempnam("tmp", "facture"); $file->_file_path = $file_path; file_put_contents($file_path, $pdf); $printer_justif->loadRefSource()->sendDocument($file); unlink($file_path);
$factures = array(); $facture = new $facture_class(); //si on a une facture_id on la charge if ($facture_id) { $factures[$facture_id] = $facture->load($facture_id); } elseif (count($factures_id)) { $where = array(); $where["facture_id"] = CSQLDataSource::prepareIn(array_keys($factures_id)); $factures = $facture->loadList($where); } else { $where = array(); $where["praticien_id"] = " = '{$prat_id}'"; $where["cloture"] = "BETWEEN '{$date_min}' AND '{$date_max}'"; $factures = $facture->loadList($where, "facture_id DESC", null, "facture_id"); } $facture_pdf = new CEditPdf(); $facture_pdf->factures = $factures; if ($type_pdf == "bvr") { $facture_pdf->editFactureBVR(); } if ($type_pdf == "bvr_TS") { $facture_pdf->editFactureBVR("TS"); } if ($type_pdf == "justificatif") { $facture_pdf->editJustificatif(); } if ($type_pdf == "bvr_justif") { $facture_pdf->editFactureBVRJustif(); } if ($type_pdf == "impression") { $facture_pdf->printBill($tiers_soldant);
$tiers_soldant = CValue::get("tiers_soldant", 0); $uniq_checklist = CValue::get("uniq_checklist", 0); $date_min = CValue::get("_date_min"); $date_max = CValue::get("_date_max"); if ($factures_id) { $factures_id = explode("|", $factures_id); } // Factures qui viennent d'être imprimées $factures = array(); $facture = new $facture_class(); if (count($factures_id)) { $where = array(); $where["facture_id"] = CSQLDataSource::prepareIn(array_values($factures_id)); $factures = $facture->loadList($where); //Impression des factures et justificatifs pdf $facture_pdf = new CEditPdf(); $facture_pdf->factures = $factures; $facture_pdf->printBill($tiers_soldant); $journal_pdf = new CEditJournal(); $journal_pdf->type_pdf = "debiteur"; $journal_pdf->factures = $factures; foreach ($journal_pdf->factures as $fact) { /** @var CFacture $fact */ $fact->loadRefsObjects(); $fact->loadRefPatient(); $fact->loadRefPraticien(); $fact->loadRefsReglements(); $fact->isRelancable(); } if (!$uniq_checklist) { $journal_pdf->editJournal(false);
$_facture->load($facture_id); $_facture->loadRefPatient(); $_facture->loadRefsObjects(); $_facture->loadRefsReglements(); $_facture->loadRefsRelances(); $_facture->isRelancable(); $not_exist_objets = !count($_facture->_ref_consults) && !count($_facture->_ref_sejours); if (!$_facture->_is_relancable || count($_facture->_ref_relances) + 1 < $type_relance || $not_exist_objets) { //mbTrace("echec"); } else { $factures[$facture_id] = $_facture; } } if (count($factures)) { $nb_generate_pdf_relance = CAppUI::conf("dPfacturation CRelance nb_generate_pdf_relance"); $facture_pdf = new CEditPdf(); $facture_pdf->pdf = new CMbPdf('P', 'mm'); $facture_pdf->pdf->setPrintHeader(false); $facture_pdf->pdf->setPrintFooter(false); $facture_pdf->font = "vera"; $facture_pdf->fontb = $facture_pdf->font . "b"; $nb_fact = 0; foreach ($factures as $_facture) { $nb_fact++; if ($nb_fact > $nb_generate_pdf_relance) { continue; } $relance = new CRelance(); $relance->object_id = $_facture->_id; $relance->object_class = $_facture->_class; if ($msg = $relance->store()) {
/** * Impression des factures * * @param bool $ts tiers soldant * * @return void */ function printBill($ts = false) { if (count($this->factures)) { $user = CMediusers::get(); $printer_bvr = new CPrinter(); $printer_bvr->function_id = $user->function_id; $printer_bvr->label = "bvr"; $printer_bvr->loadMatchingObject(); $printer_justif = new CPrinter(); $printer_justif->function_id = $user->function_id; $printer_justif->label = "justif"; $printer_justif->loadMatchingObject(); if (!$printer_bvr->_id || !$printer_justif->_id) { CAppUI::setMsg("Les imprimantes ne sont pas paramétrées", UI_MSG_ERROR); echo CAppUI::getMsg(); return false; } $file = new CFile(); foreach ($this->factures as $facture) { $facture_pdf = new CEditPdf(); $facture_pdf->factures = array($facture); $pdf = ""; $pdf = $facture_pdf->editFactureBVR($ts, "S"); $file_path = tempnam("tmp", "facture"); $file->_file_path = $file_path; file_put_contents($file_path, $pdf); $printer_bvr->loadRefSource()->sendDocument($file); unlink($file_path); $pdf = ""; $pdf = $facture_pdf->editJustificatif($ts, "S"); $file_path = tempnam("tmp", "facture"); $file->_file_path = $file_path; file_put_contents($file_path, $pdf); $printer_justif->loadRefSource()->sendDocument($file); unlink($file_path); } } }