source: pmb4.2/trunk/fuentes/pmb/circ/encaissement.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 11.6 KB
Line 
1<?php
2// +-------------------------------------------------+
3// � 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: encaissement.php,v 1.14 2015-04-03 11:16:23 jpermanne Exp $
6
7//Liste des trabsactions d'un compte
8$base_path="..";
9
10$current_alert="circ";
11
12require_once("../includes/init.inc.php");
13require_once("$base_path/classes/comptes.class.php");
14require_once($class_path."/transaction/transaction.class.php");
15
16$cpte=new comptes($id_compte);
17if ($cpte->error) {
18        print pmb_bidi($cpte->error_message);
19        exit;
20} 
21
22function back_to_list() {
23        global $show_transactions, $date_debut,$id_compte;
24       
25        print "<script type='text/javascript' >document.location=\"list_transactions.php?show_transactions=$show_transactions&date_debut=".rawurlencode(stripslashes($date_debut))."&id_compte=$id_compte\";</script>";
26}
27
28function back_to_main() {
29                global $show_transactions, $date_debut,$id_compte,$cpte;
30       
31                print "<script type='text/javascript' >parent.document.location=\"../circ.php?categ=pret&sub=compte&id=".$cpte->get_empr_from_compte_id()."&typ_compte=".$cpte->typ_compte."&show_transactions=$show_transactions&date_debut=".rawurlencode(stripslashes($date_debut))."\";</script>";
32}
33
34function encaisse_form($with_validated=false, $transacash_num=0) {
35        global $id_compte,$solde,$date_debut,$val_transactions,$somme,$cpte,$charset;
36        global $pmb_gestion_devise,$msg,$charset;
37       
38        $solde=$cpte->get_solde();
39        if ($solde<0) {
40                print "<table>";
41                print "<tr><td style='text-align:right'>".$msg["finance_enc_montant_valide"]." : </td><td style='text-align:right'>".comptes::format($somme*(-1))."</td></tr>";
42                if ($solde<=0) print "<tr class='erreur'><td style='text-align:right'>".$msg["finance_enc_montant_a_enc"]." : </td><td style='text-align:right'>"; else if ($solde>0) print "<td>".$msg["finance_enc_compte_cred"]." : </td><td style='text-align:right'>";
43                print comptes::format($solde*(-1));             
44                print "</td></tr></table>";
45                print "<script type='text/javascript' >function check_somme(f) {
46                        message='';
47                        if (isNaN(f.somme.value)) {
48                                message='".addslashes($msg["finance_enc_nan"])."';
49                        } else {
50                                if (f.somme.value<=0)
51                                        message='".addslashes($msg["finance_enc_mnt_neg"])."';
52                        }
53                        if (message) {
54                                alert(message);
55                                return false;
56                        } else return true;
57                }
58                </script>";
59                print "<form name='form_encaissement' action='encaissement.php?id_compte=$id_compte&show_transactions=$show_transactions&date_debut=".rawurlencode(stripslashes($date_debut))."' method='post'>
60                <input type='hidden' name='act' value='enc'/>
61                <input type='hidden' name='transacash_num' value='$transacash_num'/>
62                <input type='hidden' name='val_transactions' value=\"".htmlentities($val_transactions,ENT_QUOTES,$charset)."\"/>".
63                htmlentities($msg['finance_mnt_percu'], ENT_QUOTES, $charset)."&nbsp;<input type='text' value='".$solde*(-1)."' name='somme' class='saisie-5em' style='text-align:right'>&nbsp;".$pmb_gestion_devise."
64                <input type='submit' value='".$msg["finance_but_enc"]."' class='bouton' onClick=\"return check_somme(this.form)\"/>&nbsp;<input type='button' value='".$msg["76"]."' class='bouton' onClick=\"document.form_encaissement.act.value=''; document.form_encaissement.submit();\"/>
65                </form>
66                ";
67        } else {
68                back_to_main();
69        }
70}
71
72function special_form() {
73        global $id_compte,$solde,$date_debut,$val_transactions,$somme,$cpte,$charset,$msg, $pmb_gestion_devise;
74        print "<h3>".$msg["finance_but_cred"]."</h3>";
75        print "<script type='text/javascript' >function check_somme(f) {
76                message='';
77                if (isNaN(f.somme.value)) {
78                        message='".addslashes($msg["finance_enc_nan"])."';
79                } else {
80                        if (f.somme.value<=0)
81                                message='".addslashes($msg["finance_enc_mnt_neg"])."';
82                }
83                if (message) {
84                        alert(message);
85                        return false;
86                } else return true;
87        }
88        </script>";
89        print "<form name='form_special' action='encaissement.php?id_compte=$id_compte&show_transactions=$show_transactions&date_debut=".rawurlencode(stripslashes($date_debut))."' method='post'>
90                <input type='hidden' name='act' value='enc_special'/>
91                ".$msg["finance_montant"]." <input type='text' value='' name='somme' class='saisie-5em' style='text-align:right'>&nbsp;".$pmb_gestion_devise."<br />
92                <input type='radio' value='1' name='typ_special' id='typ_special_1' checked>&nbsp;<label for='typ_special_1'>".$msg["finance_enc_spe_crediter"]."&nbsp;<input type='checkbox' name='credit_perte' value='1'>&nbsp;".$msg["finance_enc_spe_perte"]."</label><br /><input type='radio' value='2' name='typ_special' id='typ_special_2'>&nbsp;<label for='typ_special_2'>".$msg["finance_enc_debiter"]."</label><br />
93                <input type='radio' value='3' name='typ_special' id='typ_special_3'>&nbsp;<label for='typ_special_3'>".$msg["finance_enc_crediter_enc"]."</label><br /><input type='radio' value='4' name='typ_special' id='typ_special_4'>&nbsp;<label for='typ_special_4'>".$msg["finance_enc_debiter_enc"]." <input type='checkbox' name='dec_perte' value='1'>&nbsp;".$msg["finance_enc_spe_perte"]."</label><br />
94                ".$msg["finance_enc_raison"]."<br />
95                <textarea cols='80' rows='2' wrap='virtual' name='commentaire'></textarea><br />
96                <input type='submit' value='".$msg["finance_enc_valider"]."' class='bouton' onClick=\"return check_somme(this.form)\"/>&nbsp;<input type='button' value='".$msg["76"]."' class='bouton' onClick=\"document.form_special.act.value=''; document.form_special.submit();\"/>
97                </form>
98                ";
99}
100
101if($pmb_printer_name) {
102$print_script="
103<div id='printer_script'></div>
104<script type='text/javascript'>
105       
106        function printer_get_jzebra() {
107                if(!document.jzebra) {
108                        var req = new http_request();
109                        req.request('$base_path/ajax.php?module=circ&categ=zebra_print_pret&sub=get_script');
110                        document.getElementById('printer_script').innerHTML=req.get_text();
111                        return false;
112                }
113        }
114
115        function printer_jzebra_send_ticket(text,printer,encoding) {
116                console.log(text);
117                console.log(printer);
118                console.log(encoding); 
119                var applet = document.jzebra;
120                var found=false;
121                if(applet!=null) {
122                        applet.findPrinter(printer);
123                        while (!applet.isDoneFinding()) {}
124                        if(printer == applet.getPrinter()) {
125                                found = true;
126                                if(encoding) {
127                                        applet.setEncoding(encoding);
128                                }
129                                applet.append(text);
130                                applet.print();
131                        }
132                }
133                if(!found) {                                                   
134                alert('".$msg['printer_not_found']."');
135        }
136    }
137                               
138        function printer_jzebra_print_ticket(url) {
139                printer_get_jzebra();
140                var req = new http_request();
141                if(req.request(url)){
142                        // Il y a une erreur.
143                        alert ( req.get_text() );                       
144                }else {
145                        alert ( req.get_text() );       
146                        printer_jzebra_send_ticket(req.get_text(),'".$pmb_printer_name."','850');
147                        return 1;       
148                }
149        }
150        printer_jzebra_print_ticket('$base_path/ajax.php?module=circ&categ=zebra_print_pret&sub=transacash_ticket&transacash_id=!!transacash_id!!');
151</script>       ";
152}
153
154switch ($act) {
155        case "valenc":
156                //Validation de ce qui n'est pas valide
157                $t=$cpte->get_transactions("","",0,0);
158                $somme=0;
159                $val_transactions="";
160                for ($i=0; $i<count($t); $i++) {
161                        if ($cpte->validate_transaction($t[$i]->id_transaction)) {
162                                $somme+=$t[$i]->montant*$t[$i]->sens;
163                                $val_transactions.=" #".$t[$i]->id_transaction."#";
164                        }
165                }
166                if(count($t)){
167                        $transacash_num=$cpte->cashdesk_memo_transactions($t);                                 
168                }
169                if ($val_transactions!="") $val_transactions=$msg["finance_enc_tr_lib_valider"]." : ".$val_transactions."\n";
170                $solde_avant=$cpte->get_solde();
171                if ($solde_avant!=0) $val_transactions.=$msg["finance_enc_tr_lib_etat_compte"]." : ".$solde_avant;
172                $cpte->update_solde();
173                encaisse_form(true,$transacash_num);
174                break;
175        case "enc":
176                if ($somme*1>0) {
177                        //Generation de la transaction
178                        if ($id_transaction=$cpte->record_transaction("",$somme,1,$val_transactions,1)) {
179                                $cpte->validate_transaction($id_transaction);
180                                $cpte->update_solde();
181                                if(!$transacash_num){                                   
182                                        $req="select MAX(transacash_num) from transactions where compte_id=".$cpte->id_compte."";
183                                        $resultat=pmb_mysql_query($req);
184                                        if ($transacash_num=pmb_mysql_result($resultat,0,0)){
185                                                $req="update transactions set transacash_num = $transacash_num where compte_id=".$cpte->id_compte." and transacash_num=0";
186                                                pmb_mysql_query($req);                                         
187                                        }
188                                }
189                                $cpte->cashdesk_memo_encaissement($id_transaction,$transacash_num,$somme);             
190                        }
191//                      print str_replace("!!transacash_id!!",$transacash_num,$print_script);                   
192                        back_to_main();
193                } else {
194                        back_to_list();
195                }
196                break;
197        case "transac_add":                     
198                if ($transactype_total*1>0) {
199                        $transactype=new transactype($transactype_id); 
200                        if($quantity) $aff_quantity=" ($quantity)";
201                        //Generation de la transaction
202                        if ($id_transaction=$cpte->record_transaction("",$transactype_total,-1,$transactype->name.$aff_quantity,0,$transactype_id)) {
203                                //$cpte->validate_transaction($id_transaction);
204                                //$cpte->update_solde();
205                        }
206                        back_to_main();
207                } else {
208                        back_to_list();
209                }
210                break;
211        case "val":
212                if (!isset($trans)) $trans=array();
213                $i=0;
214                foreach ($trans as $key=>$value){
215                        $cpte->validate_transaction($key);
216                        $t[$i]->id_transaction=$key;                   
217                        $i++;
218                }
219                if(count($t)){
220                        $transacash_num=$cpte->cashdesk_memo_transactions($t);                                 
221                }
222                $cpte->update_solde();
223                back_to_main();
224                break;
225        case "supr":
226                if (!isset($trans)) $trans=array();
227                foreach ($trans as $key=>$value){
228                        $cpte->delete_transaction($key);
229                }
230                $cpte->update_solde();
231                back_to_main();
232                break;
233        case "encnoval":
234                $solde=$cpte->get_solde();
235                $val_transactions.=$msg["finance_enc_tr_lib_etat_compte"]." : ".$solde;
236                encaisse_form();
237               
238                break;
239        case "special":
240                special_form();
241                break;
242        case "enc_special":
243                if ($somme*1>0) {
244                        switch ($typ_special) {
245                                case "1":
246                                        //Crediter
247                                        $signe=1;
248                                        $caisse=0;
249                                        break;
250                                case "2":
251                                        //Debiter
252                                        $signe=-1;
253                                        $caisse=0;
254                                        break;
255                                case "3":
256                                        //Crediter et encaisser
257                                        $signe=1;
258                                        $caisse=1;
259                                        break;
260                                case "4":
261                                        //Debiter et decaisser
262                                        $signe=-1;
263                                        $caisse=1;
264                                        break;
265                        }
266                        if ($id_transaction=$cpte->record_transaction("",$somme,$signe,stripslashes($commentaire),$caisse)) {
267                                $cpte->validate_transaction($id_transaction);
268                                //Traitement du passage en perte
269                                //Credit
270                                if (($typ_special==1)&&($credit_perte)) {
271                                        //Ajout d'un transaction debit pour le compte 0
272                                        $requete="insert into transactions (compte_id,user_id,user_name,machine,date_enrgt,date_prevue,date_effective,montant,sens,realisee,commentaire,encaissement) values(0,$PMBuserid,'".$PMBusername."','".$_SERVER["REMOTE_ADDR"]."', now(), now(), now(), ".($somme*1).", -1, 1,'#".$id_transaction."# : ".$commentaire."',0)";
273                                        pmb_mysql_query($requete);
274                                }
275                                //Decaissement
276                                if (($typ_special==4)&&($dec_perte)) {
277                                        //Credit sur le compte du lecteur
278                                        if ($id_transaction_1=$cpte->record_transaction("",$somme,1,sprintf($msg["finance_enc_tr_lib_lost"]," #".$id_transaction."#")." : ".stripslashes($commentaire),0)) {
279                                                $cpte->validate_transaction($id_transaction_1);
280                                                //Debit sur le compte 0
281                                                $requete="insert into transactions (compte_id,user_id,user_name,machine,date_enrgt,date_prevue,date_effective,montant,sens,realisee,commentaire,encaissement) values(0,$PMBuserid,'".$PMBusername."','".$_SERVER["REMOTE_ADDR"]."', now(), now(), now(), ".($somme*1).", -1, 1,'#".$id_transaction_1."# : ".sprintf($msg["finance_enc_tr_lib_lost"],"#".$id_transaction."#")." : ".stripslashes($commentaire)."',0)";
282                                                pmb_mysql_query($requete);
283                                        }
284                                }
285                                $cpte->update_solde();
286                        }
287                        back_to_main();
288                } else {
289                        back_to_list();
290                }
291        default:
292                back_to_list();
293                break;
294}
295
296print "<script type='text/javascript'> parent.document.getElementById('selector_transaction_list').style.visibility='hidden';
297parent.document.getElementById('buttons_transaction_list').style.visibility='hidden';
298</script>";
299?>
Note: See TracBrowser for help on using the repository browser.