phpcompta-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpcompta-dev] r5474 - phpcompta/trunk/include


From: phpcompta-dev
Subject: [Phpcompta-dev] r5474 - phpcompta/trunk/include
Date: Tue, 8 Oct 2013 16:04:47 +0200 (CEST)

Author: danydb
Date: 2013-10-08 16:04:46 +0200 (Tue, 08 Oct 2013)
New Revision: 5474

Added:
   phpcompta/trunk/include/class_print_ledger.php
   phpcompta/trunk/include/class_print_ledger_detail_item.php
Modified:
   phpcompta/trunk/include/class_print_ledger_detail.php
   phpcompta/trunk/include/export_ledger_pdf.php
Log:
Task #890 PRINTJRN : export PDF et CSV des op?\195?\169rations 
d?\195?\169taill?\195?\169es


Added: phpcompta/trunk/include/class_print_ledger.php
===================================================================
--- phpcompta/trunk/include/class_print_ledger.php                              
(rev 0)
+++ phpcompta/trunk/include/class_print_ledger.php      2013-10-08 14:04:46 UTC 
(rev 5474)
@@ -0,0 +1,129 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta 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.
+ *
+ *   PhpCompta 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 PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/**
+ *  Parent class for the print_ledger class
+ *
+ * @author danydb
+ */
+require_once 'class_database.php';
+require_once('class_print_ledger_detail.php');
+require_once('class_print_ledger_simple.php');
+require_once('class_print_ledger_simple_without_vat.php');
+require_once('class_print_ledger_fin.php');
+require_once('class_print_ledger_misc.php');
+
+/**
+ * @brief Strategie class for the print_ledger class
+ * 
+ */
+class Print_Ledger {
+
+    /**
+     * Create an object Print_Ledger* depending on $p_type_export ( 0 => 
accounting
+     * 1-> one row per operation 2-> detail of item)
+     * @param type $cn
+     * @param type $p_type_export
+     * @param type $p_format_output CSV or PDF
+     * @param Acc_Ledger $ledger
+     */
+    static function factory(Database $cn, $p_type_export, $p_format_output, 
Acc_Ledger $p_ledger) {
+        /**
+         * For PDF output
+         */
+        if ($p_format_output == 'PDF') {
+            switch ($p_type_export) {
+                case 0:
+                    //---------------------------------------------
+                    // Detailled Printing (accounting )
+                    //---------------------------------------------
+                    return new Print_Ledger_Detail($cn, $p_ledger);
+                    break;
+
+                case 1:
+                    
//----------------------------------------------------------------------
+                    // Simple Printing Purchase Ledger
+                    
//---------------------------------------------------------------------
+                    $own = new Own($cn);
+                    $jrn_type = $p_ledger->get_type();
+
+
+                    if ($jrn_type == 'ACH' || $jrn_type == 'VEN') {
+                        if (
+                                ($jrn_type == 'ACH' && $cn->get_value('select 
count(qp_id) from quant_purchase') == 0) ||
+                                ($jrn_type == 'VEN' && $cn->get_value('select 
count(qs_id) from quant_sold') == 0)
+                        ) {
+                            $pdf = new Print_Ledger_Simple_without_vat($cn, 
$p_ledger);
+                            $pdf->set_error('Ce journal ne peut être imprimé 
en mode simple');
+                            return $pdf;
+                        }
+                        if ($own->MY_TVA_USE == 'Y') {
+                            $pdf = new Print_Ledger_Simple($cn, $p_ledger);
+                            return $pdf;
+                        }
+                        if ($own->MY_TVA_USE == 'N') {
+                            $pdf = new Print_Ledger_Simple_without_vat($cn, 
$p_ledger);
+                            return $pdf;
+                        }
+                    }
+
+                    if ($jrn_type == 'FIN') {
+                        $pdf = new Print_Ledger_Financial($cn, $p_ledger);
+                        return $pdf;
+                    }
+                    if ($jrn_type == 'ODS' || $p_ledger->id == 0) {
+                        $pdf = new Print_Ledger_Misc($cn, $p_ledger);
+                        return $pdf;
+                    }
+                    break;
+                case 2:
+                    /*                     * 
********************************************************
+                     * Print Detail Operation + Item
+                     * 
********************************************************* */
+                    $own = new Own($cn);
+                    $jrn_type = $p_ledger->get_type();
+                    if ($jrn_type == 'FIN') {
+                        $pdf = new Print_Ledger_Financial($cn, $p_ledger);
+                        return $pdf;
+                        ;
+                    }
+                    if ($jrn_type == 'ODS' || $p_ledger->id == 0) {
+                        $pdf = new Print_Ledger_Misc($cn, $p_ledger);
+                        return $pdf;
+                    }
+                    if (
+                            ($jrn_type == 'ACH' && $cn->get_value('select 
count(qp_id) from quant_purchase') == 0) ||
+                            ($jrn_type == 'VEN' && $cn->get_value('select 
count(qs_id) from quant_sold') == 0)
+                    ) {
+                        $pdf = new Print_Ledger_Simple_without_vat($cn, 
$p_ledger);
+                        $pdf->set_error('Ce journal ne peut être imprimé en 
mode simple');
+                        return $pdf;
+                    }
+                    $pdf = new Print_Ledger_Detail_Item($cn,$p_ledger);
+                    return $pdf;
+                    
+            } // end switch
+        } // end $p_format == PDF
+    }
+
+// end function
+}
+
+?>

Modified: phpcompta/trunk/include/class_print_ledger_detail.php
===================================================================
--- phpcompta/trunk/include/class_print_ledger_detail.php       2013-10-05 
23:04:06 UTC (rev 5473)
+++ phpcompta/trunk/include/class_print_ledger_detail.php       2013-10-08 
14:04:46 UTC (rev 5474)
@@ -28,12 +28,13 @@
 
 class Print_Ledger_Detail extends PDF
 {
-    public function __construct ($p_cn = null, $orientation = 'P', $unit = 
'mm', $format = 'A4')
+    public function __construct ($p_cn = null, Acc_Ledger $ledger)
     {
 
         if($p_cn == null) die("No database connection. Abort.");
-
+        
         parent::__construct($p_cn,'L', 'mm', 'A4');
+        $this->ledger=$ledger;
         date_default_timezone_set ('Europe/Paris');
 
     }
@@ -70,13 +71,14 @@
         return parent::Cell($w, $h, $txt, $border, $ln, $align, $fill, $link);
     }
 
-    function export($Jrn)
+    function export()
     {
+        
         // detailled printing
         $rap_deb=0;
         $rap_cred=0;
         // take all operations from jrn
-        $array=$Jrn->get_operation($_GET['from_periode'],$_GET['to_periode']);
+        
$array=$this->ledger->get_operation($_GET['from_periode'],$_GET['to_periode']);
 
         $this->SetFont('DejaVu','BI',7);
         $this->Cell(215,7,'report Débit',0,0,'R');

Added: phpcompta/trunk/include/class_print_ledger_detail_item.php
===================================================================
--- phpcompta/trunk/include/class_print_ledger_detail_item.php                  
        (rev 0)
+++ phpcompta/trunk/include/class_print_ledger_detail_item.php  2013-10-08 
14:04:46 UTC (rev 5474)
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Print detail of operation PURCHASE or SOLD plus the items
+ * There is no report of the different amounts
+ *
+ * @author danydb
+ */
+class Print_Ledger_Detail_Item extends PDF
+{
+    public function __construct ($p_cn,$p_jrn)
+    {
+
+        if($p_cn == null) die("No database connection. Abort.");
+
+        parent::__construct($p_cn,'L', 'mm', 'A4');
+        $this->ledger=$p_jrn;
+        
+    }
+
+    function setDossierInfo($dossier = "n/a")
+    {
+        $this->dossier = dossier::name()." ".$dossier;
+    }
+    /**
+     address@hidden write the header of each page
+     */
+    function Header()
+    {
+        //Arial bold 12
+        $this->SetFont('DejaVu', 'B', 12);
+        //Title
+        $this->Cell(0,10,$this->dossier, 'B', 0, 'C');
+        //Line break
+        $this->Ln(20);
+        
+    }
+    /**
+     address@hidden write the Footer
+     */
+    function Footer()
+    {
+        //Position at 3 cm from bottom
+        $this->SetY(-20);
+        /* write reporting  */
+        $this->Cell(143,6,'Total page ','T',0,'R'); /* HTVA */
+        $this->Cell(15,6,nbm($this->tp_htva),'T',0,'R'); /* HTVA */
+        if ( $this->jrn_type !='VEN')
+        {
+            $this->Cell(15,6,nbm($this->tp_priv),'T',0,'R');  /* prive */
+            $this->Cell(15,6,nbm($this->tp_nd),'T',0,'R');  /* Tva ND */
+        }
+        foreach($this->a_Tva as $line_tva)
+        {
+            $l=$line_tva['tva_id'];
+            $this->Cell(15,6,nbm($this->tp_tva[$l]),'T',0,'R');
+        }
+        $this->Cell(15,6,nbm($this->tp_tvac),'T',0,'R'); /* Tvac */
+        $this->Ln(2);
+
+        $this->Cell(143,6,'report',0,0,'R'); /* HTVA */
+        $this->Cell(15,6,nbm($this->rap_htva),0,0,'R'); /* HTVA */
+        if ( $this->jrn_type !='VEN')
+        {
+            $this->Cell(15,6,nbm($this->rap_priv),0,0,'R');  /* prive */
+            $this->Cell(15,6,nbm($this->rap_nd),0,0,'R');  /* Tva ND */
+        }
+        foreach($this->a_Tva as $line_tva)
+        {
+            $l=$line_tva['tva_id'];
+            $this->Cell(15,6,nbm($this->rap_tva[$l]),0,0,'R');
+        }
+        $this->Cell(15,6,nbm($this->rap_tvac),0,0,'R'); /* Tvac */
+        $this->Ln(2);
+
+        //Arial italic 8
+        $this->SetFont('Arial', 'I', 8);
+        //Page number
+        $this->Cell(0,8,'Date '.$this->date." - Page 
".$this->PageNo().'/{nb}',0,0,'L');
+        // Created by PhpCompta
+        $this->Cell(0,8,'Created by Phpcompta, online on 
http://www.aevalys.eu',0,0,'R',false,'http://www.aevalys.eu');
+    }
+
+    function Cell ($w, $h=0, $txt='', $border=0, $ln=0, $align='', 
$fill=false, $link='')
+    {
+        $txt = str_replace("\\", "", $txt);
+        return parent::Cell($w, $h, $txt, $border, $ln, $align, $fill, $link);
+    }
+    /**
+     address@hidden export the ledger in  PDF
+     */
+    function export()
+    {
+      bcscale(2);
+        $a_jrn=$this->ledger->get_operation($_GET['from_periode'],
+                                            $_GET['to_periode']);
+
+        if ( $a_jrn == null ) return;
+        for ( $i=0;$i<count($a_jrn);$i++)
+        {
+            
+        }
+    }
+
+}
+?>

Modified: phpcompta/trunk/include/export_ledger_pdf.php
===================================================================
--- phpcompta/trunk/include/export_ledger_pdf.php       2013-10-05 23:04:06 UTC 
(rev 5473)
+++ phpcompta/trunk/include/export_ledger_pdf.php       2013-10-08 14:04:46 UTC 
(rev 5474)
@@ -21,13 +21,14 @@
 
 // Copyright Author Dany De Bontridder address@hidden
 // $Revision$
-/*! \file
+/* ! \file
  * \brief Send a ledger in a pdf format
  *
  */
-if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
+if (!defined('ALLOWED'))
+    die('Appel direct ne sont pas permis');
 require_once('class_dossier.php');
-$gDossier=dossier::id();
+$gDossier = dossier::id();
 require_once('class_pdf.php');
 include_once('class_user.php');
 include_once("ac_common.php");
@@ -36,146 +37,44 @@
 include_once("class_acc_ledger.php");
 require_once('class_own.php');
 require_once('class_periode.php');
-require_once('class_print_ledger_detail.php');
-require_once('class_print_ledger_simple.php');
-require_once('class_print_ledger_simple_without_vat.php');
-require_once('class_print_ledger_fin.php');
-require_once('class_print_ledger_misc.php');
+require_once 'class_print_ledger.php';
 
 
-$cn=new Database($gDossier);
-$periode=new Periode($cn);
+        $cn = new Database($gDossier);
+$periode = new Periode($cn);
 
-$l_type="JRN";
-$own=new Own($cn);
+$l_type = "JRN";
+$own = new Own($cn);
 
-$Jrn=new Acc_Ledger($cn,$_GET['jrn_id']);
+$Jrn = new Acc_Ledger($cn, $_GET['jrn_id']);
 
 $Jrn->get_name();
 $g_user->Check();
 $g_user->check_dossier($gDossier);
 
 // Security
-if ( $_GET['jrn_id']!=0 &&  $g_user->check_jrn($_GET['jrn_id']) == 'X' )
-{
+if ($_GET['jrn_id'] != 0 && $g_user->check_jrn($_GET['jrn_id']) == 'X') {
     /* Cannot Access */
     NoAccess();
 }
 
-$ret="";
+$ret = "";
 
-// filter : 0 for Grand Livre otherwise 1
-$filter=( $Jrn->id == 0)?0:1;
-$jrn_type=$Jrn->get_type();
+$jrn_type = $Jrn->get_type();
 
-//----------------------------------------------------------------------
-// Detailled Printing
-//---------------------------------------------------------------------
-if ( $_REQUEST['p_simple']== 0 )
-{
-    $pdf=new Print_Ledger_Detail($cn);
-    $pdf->setDossierInfo($Jrn->name);
-    $pdf->AliasNbPages();
-    $pdf->AddPage();
-    $pdf->SetAuthor('Phpcompta');
-    $pdf->setTitle("Journal",true);
+$pdf = Print_Ledger::factory($cn, $_REQUEST['p_simple'], "PDF", $Jrn);
 
-    $pdf->export($Jrn);
+$pdf->setDossierInfo($Jrn->name);
+$pdf->AliasNbPages();
+$pdf->AddPage();
+$pdf->SetAuthor('Phpcompta');
+$pdf->setTitle("Journal", true);
 
-    $fDate=date('dmy-Hi');
-    $pdf->Output('journal-'.$fDate.'.pdf','D');
-    exit(0);
+$pdf->export();
 
-} // impression detaillé
-//----------------------------------------------------------------------
-// Simple Printing Purchase Ledger
-//---------------------------------------------------------------------
-if   (  $_REQUEST['p_simple']== 1 )
-{
-    if ( $jrn_type=='ACH' || $jrn_type=='VEN')
-    {
-        if ( $jrn_type=='ACH' && $cn->get_value('select count(qp_id) from 
quant_purchase') == 0 )
-        {
-            $pdf= new Print_Ledger_Simple_without_vat($cn,$Jrn);
-            $pdf->setDossierInfo($Jrn->name);
-            $pdf->AliasNbPages();
-            $pdf->AddPage();
-            $pdf->SetAuthor('Phpcompta');
-            $pdf->setTitle("Journal",true);
+$fDate = date('dmy-Hi');
+$pdf->Output('journal-' . $fDate . '.pdf', 'D');
+exit(0);
 
-            $pdf->Cell(0,6,'Ce journal ne peut être imprimé en mode simple');
-            $pdf->output('erreur.pdf','D');
-            exit();
-        }
-        if ( $jrn_type=='VEN' && $cn->get_value('select count(qs_id) from 
quant_sold') == 0 )
-        {
-            $pdf= new Print_Ledger_Simple_without_vat($cn,$Jrn);
-            $pdf->setDossierInfo($Jrn->name);
-            $pdf->AliasNbPages();
-            $pdf->AddPage();
-            $pdf->Cell(0,6,'Ce journal ne peut être imprimé en mode simple');
-            $pdf->output('erreur.pdf','D');
-            exit();
-        }
 
-        if ( $own->MY_TVA_USE=='Y')
-        {
-            $pdf= new Print_Ledger_Simple($cn,$Jrn);
-            $pdf->setDossierInfo($Jrn->name);
-            $pdf->AliasNbPages();
-            $pdf->AddPage();
-            $pdf->SetAuthor('Phpcompta');
-            $pdf->setTitle("Journal",true);
-
-            $pdf->export();
-            $fDate=date('dmy-Hi');
-            $pdf->Output('journal-'.$fDate.'.pdf','D');
-            exit(0);
-        }
-        if ( $own->MY_TVA_USE=='N')
-        {
-            $pdf= new Print_Ledger_Simple_without_vat($cn,$Jrn);
-            $pdf->setDossierInfo($Jrn->name);
-            $pdf->AliasNbPages();
-            $pdf->AddPage();
-            $pdf->SetAuthor('Phpcompta');
-            $pdf->setTitle("Journal", true);
-
-            $pdf->export($Jrn);
-            $fDate=date('dmy-Hi');
-            $pdf->Output('journal-'.$fDate.'.pdf','D');
-            exit(0);
-        }
-
-    }
-
-    if ($jrn_type=='FIN')
-    {
-        $pdf= new Print_Ledger_Financial($cn,$Jrn);
-        $pdf->setDossierInfo($Jrn->name);
-        $pdf->AliasNbPages();
-        $pdf->AddPage();
-        $pdf->SetAuthor('Phpcompta');
-        $pdf->setTitle("Journal",true);
-
-        $pdf->export();
-        $fDate=date('dmy-Hi');
-        $pdf->Output('journal-'.$fDate.'.pdf','D');
-        exit(0);
-    }
-    if ( $jrn_type=='ODS' || $Jrn->id==0)
-    {
-        $pdf= new Print_Ledger_Misc($cn,$Jrn);
-        $pdf->setDossierInfo($Jrn->name);
-        $pdf->AliasNbPages();
-        $pdf->SetAuthor('Phpcompta');
-        $pdf->setTitle("Journal",true);
-
-        $pdf->AddPage();
-        $pdf->export();
-        $fDate=date('dmy-Hi');
-        $pdf->Output('journal-'.$fDate.'.pdf','D');
-        exit(0);
-    }
-}
 ?>



---
PhpCompta est un logiciel de comptabilité libre en ligne (full web)
Projet opensource http://www.phpcompta.eu



reply via email to

[Prev in Thread] Current Thread [Next in Thread]