';
$Ledger=new Acc_Ledger_Sale($cn,$_POST['p_jrn']);
try {
$internal=$Ledger->insert($_POST);
// var $receipt (string) contains the name of the file name of
// the invoice (document created), if empty there
// is no invoice
$receipt='';
/* Save the attachment or generate doc */
if (isset($_FILES['pj'])) {
if (noalyss_strlentrim($_FILES['pj']['name']) != 0)
$cn->save_receipt($seq);
else
/* Generate an invoice and save it into the database */
if (isset($_POST['gen_invoice']))
{
$file = $Ledger->create_document($internal, $_POST);
$receipt= HtmlInput::show_receipt_document($Ledger->jr_id
,h($file));
$acc_document=new Acc_Document($cn,$Ledger->jr_id);
//-----------------------------------------------------------------
// Generate a XLM invoice
// if a document has been created create the XML file
//-----------------------------------------------------------------
if ($g_parameter->MY_INVOICE_FORMAT != 'BASIC' && ! empty($acc_document->d_filename ))
{
$xmldocument= \Noalyss\XMLDocument\XMLInvoice::build_xmlinvoice($cn);
$xmldocument->build_data($Ledger->jr_id);
$code_error = $xmldocument->verify() ;
if ( ! empty( $code_error ) ) {
echo "Impossible de générer facture : code error ";
echo $xmldocument->get_message_error($code_error);
}
$pdf_filename=$acc_document->transform2pdf();
// save PDF In db
$acc_document->update($pdf_filename);
// make the PDF
$xmldocument->set_pdf_filename($pdf_filename);
// make the XML + PDF
$xml=$xmldocument->make_xml($Ledger->jr_id);
if (DEBUGNOALYSS > 1) {
$uniq= tempnam($_ENV['TMP'], "e-invoice");
file_put_contents($uniq, $xml);
echo \Noalyss\Dbg::echo_file("file save $uniq");
}
// save XML string into the DB
$oid=$cn->lo_write($xml);
echo \Noalyss\Dbg::echo_var(1, "oid is $oid");
if ($oid == false) {
throw new Exception ('CV177 : cannot import e-invoice');
}
$acc_document->update_document_xml($oid);
$receipt= HtmlInput::show_receipt_document($Ledger->jr_id,$acc_document->d_filename);
}
}
}
}
catch (\Exception $e) {
if ( $e->getCode()==EXC_BALANCE)
echo_warning(_("enregistrement annulé: balance , voyer le fichier log"));
else
echo_warning($e->getMessage());
return;
}
/* Save the predefined operation */
if ( isset($_POST['opd_name']) && trim($_POST['opd_name']) != "" )
{
$opd=new Pre_operation($cn);
$opd->get_post();
$opd->save();
}
/* Show button */
echo '
Enregistrement
';
echo $Ledger->confirm($_POST,true);
/* Show link for Invoice */
if ($receipt != "")
{
echo '
'._('Document').'
';
echo $receipt;
}
/* Save the additional information into jrn_info */
$obj=new Acc_Ledger_Info($cn);
$obj->save_extra($Ledger->jr_id,$_POST);
/* save followup */
$Ledger->save_followup($http->request("action_gestion","string",""));
// extourne
if (isset($_POST['reverse_ck']))
{
$p_date=$http->post('reverse_date', "string",'');
$p_msg=$http->post("ext_label");
if (isDate($p_date)==$p_date)
{
// reverse the operation
try
{
$Ledger->reverse($p_date,$p_msg);
echo '
';
echo _('Extourné au ').$p_date;
echo '
';
}
catch (Exception $e)
{
echo '
'._('Opération non extournée').
$e->getMessage().
'';
}
}
else
{
// warning because date is invalid
echo '
'._('Date invalide, opération non extournée').'';
}
}
echo '
';
echo "- ";
echo $Ledger->button_new_operation();
echo "
";
echo "- ";
echo $Ledger->button_copy_operation();
echo "
";
echo "
";
echo '
';
return;
}
}
// ------------------------------
/* Display a blank form or a form with predef operation */
// ------------------------------
$array=(isset($_POST['correct'])||isset ($correct))?$_POST:null;
$Ledger=new Acc_Ledger_Sale($cn,0);
//
// pre defined operation
//
echo '
';
if (!isset($_REQUEST ['p_jrn']))
{
$def_ledger=$Ledger->get_first('ven', 2);
if (empty($def_ledger))
{
exit(_('Pas de journal disponible'));
}
$Ledger->id=$def_ledger['jrn_def_id'];
}
else if ( isset($_REQUEST ['p_jrn']) ) {
$Ledger->id=$http->request('p_jrn','number');
}
else if (isset($_REQUEST['p_jrn_predef']))
{
$Ledger->id=$http->request('p_jrn_predef','number');
}
echo '
';
if ($p_msg!="")
{
echo '
'.$p_msg.'';
}
try
{
$payment=$http->request("e_mp","string", 0);
$date_payment=$http->request("mp_date", "string","");
$comm_payment=$http->request("e_comm_paiement", "string","");
$acompte=$http->request("acompte", "string",0);
echo "
";
/* if we suggest the pj n# the run the script */
if ( $g_parameter->MY_PJ_SUGGEST=='Y')
{
echo '';
}
$e_date=$http->request("e_date","string","");
if ($e_date=="" && $g_parameter->MY_DATE_SUGGEST=='Y')
{
echo create_script(" get_last_date()");
}
echo create_script(" update_name()");
return;
?>