Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    Il Primo Form che ti posto serve a caricare la tabella SituazioneFatture partendo da due date che gli vengono passate via querystring
    dal form ListaFatture che non ti esterno qui se no scriviamo duecento pagine....
    Gli passa quindi due date [dalla data --> alla data] che servono a scaricare dl db Ordini le fatture di quel range.
    questo è il form ASP che ti posto qui per fare il caricamento della tabella SituazioneFatture....poi una volta caricata da questo form premendo il tasto genera xml chiemeremo un file ASP in AJAX e avremo lo scarico voluto ora ti posto questo file che è in ASP

    file CaricaSituazioneFatture.asp
    codice:
    <!-- #include file="adovbs.inc" -->
    <!-- #include file="Connessioni.asp" -->
    <%
    Dim numfat,datfat,codiva,importo,imposta,imponibile,codiceanagrafico,partitaiva,codicefiscale, ragionesociale,indirizzo,numerocivico,cap,citta,provincia,nazione,datastart,dataend
    Dim d1,d2,RS3,RS4,numrows, OrdineImponibile,OrdineImposta,OrdineImporto,formname
    Dim tbIva(100,3), extrasconto, sco1, sco2, R1, R2, sconto, SQL3, SQL4
    Dim progressivo,natura,codfis, datafattura
    
    formname="CaricaSituazioneFatture"
    Set RS3 = Server.CreateObject("ADODB.Recordset")
    Set RS4 = Server.CreateObject("ADODB.Recordset")
    datastart="01/01/2017"
    dataend="31/12/2017"
    ResetTbIva
    
    LeggiConfigurazione
    
    'on error resume next
    for i=1 to Request.Querystring("datastart").Count 
       datastart=  Request.Querystring("datastart")(i) 
    next
    for i=1 to Request.Querystring("dataend").Count 
       dataend=  Request.Querystring("dataend")(i) 
    next
    
    d1="#"&mid(datastart,4,2)&"/"&left(datastart,2)&"/"&right(datastart,4)&"#"
    d2="#"&mid(dataend,4,2)&"/"&left(dataend,2)&"/"&right(dataend,4)&"#"
    
    'N.massimo di righe in un ordine 
    numrows=LeggiVariabileN("NumRows")
    
    'response.write("ELABORAZIONE FATTURE")
    'SQL1="SELECT * FROM fatture WHERE  DataFattura between " & d1 & " and " & d2 
    SQL1="SELECT * FROM Fatture where (DataFattura >= " & d1 & ") and (DataFattura <= " & d2 & ")"
    
    RS1.Open SQL1, connB, 3, 3
    if not RS1.EOF then
     
      do until RS1.EOF
        numfat=RS1("NumeroFattura")
        datafattura=RS1("datafattura")    
    
        RegistraFattura RS1,numfat, datafattura 
        datafattura=""
        RS1.movenext 
    
       ' exit do 
      loop
     
    end if
    RS1.Close
    set RS3=nothing
    set RS4=nothing
    msg="CARICAMENTO TABELLA SITUAZIONEFATTURE TERMINATO"
    'response.write("<br>STOP CARICAMENTO FATTURE")
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Elaborazione file XML per invio al Ministero delle Finanze</title>
    <style>
    .main {
        width:100%;
        height:500px;
        background-color:#FFFFCC;
        border:thin;
    }
    .header {
        width:100%;
        height: 30px;
        background-color:blue;
        color: white;
        text-align:center;    
    }
    .auto-style1 {
        font-size: medium;
    }
    .auto-style2 {
        text-align: center;
    }
    .auto-style4 {
        text-align: right;
    }
    </style>
    <script type="text/javascript" >
    function  ElaboraExport() {
      var truthBeTold = window.confirm("EXPORT SITUAZIONE FATTURE SU FILE XML ..., PREMI OK PER CONFERMARE!");
      if  (truthBeTold) 
      {
      var progr=document.getElementById("progressivo").value;
      var cari=document.getElementById("carica").value;
      var datiform="carica="+cari;
      datiform=datiform+"&progressivo="+progr+"&datastart=<%=datastart%>&dataend=<%=dataend%>";
      datiform=datiform+"&codicefiscale="+document.getElementById("codicefiscale").value;
      alert(datiform); 
      if (window.XMLHttpRequest) {
            update_record = new XMLHttpRequest();
            update_record.onreadystatechange = ElaboraRisposta;
            update_record.open("GET","CaricaFattureXML.asp?"+datiform, true);
            update_record.send(null);
        // branch for IE/Windows ActiveX version
        } else if (window.ActiveXObject) {
            update_record= new ActiveXObject("Microsoft.XMLHTTP");
            if (update_record) {
                update_record.onreadystatechange = ElaboraRisposta;
                update_record.open("GET","CaricaFattureXML.asp?"+tb, true);
                update_record.send();
            }
        }
     }
    }
    function ElaboraRisposta() {
       var risposta;       
       if (update_record.readyState == 4) {        
              risposta=update_record.responseText;
              var progr="0000"+document.getElementById("progressivo").value;
              var r2=progr.substr(progr.length - 4, 4)
              var codfis=document.getElementById("codicefiscale").value;
              document.getElementById("msg").value="MSG:" + risposta;
              document.getElementById("nomefile").value="IT" +codfis+"_DF_I"+r2+".XML";
      }
    }
    </script>
    </head>
    
    <body>
    <form action="" method="post" name="<%=formname%>" id="<%=formname%>"  enctype="">
    
    <div class="header"><center><h3>ELABORAZIONE FILE XML per INVIO al MINISTERO DELLE FINANZE</h3></center>
    </div>
    <div class="main">
        <span class="auto-style1">La tabella "SituazioneFatture" &egrave; stata caricata 
        con le fatture richieste; Per Emettere il file XML premi il bottone Genera 
        XML e una volta eseguito apparira il nome del file XML elaborato. Aquiesto 
        punto dovrai controllarlo e poi spedirlo al commercialista tramite posta 
        elettronica.</span><br/>
        <br>
        <table style="width: 100%">
            <tr>
                <td colspan="2" class="auto-style2" style="width: 303px"><strong>DICHIARANTE</strong></td>
                
            </tr>
            <tr>
                <td style="width: 275px" class="auto-style4">PROGRESSIVO INVIO</td>
                <td><input name="progressivo" id="progressivo" type="text" value="<%=progressivo%>"></td>
            </tr>
            <tr>
                <td style="width: 275px" class="auto-style4">CODICE FISCALE</td>
                <td><input id="codicefiscale" name="codicefiscale" type="text" value="<%=codfis%>"></td>
            </tr>
            <tr>
                <td style="width: 275px" class="auto-style4">CARICA</td>
                <td><input id="carica" name="carica" type="text" value="<%=carica%>"></td>
            </tr>
        </table>
        <br><br>
     <div style="width:100%;height: 60px;"><br>    
     <input name="button1" type="button" onclick="ElaboraExport()" value="Genera XML" />&nbsp;&nbsp;&nbsp;&nbsp;file XML:&nbsp;<input type="text" id="nomefile" name="nomefile" size="50" value="" readonly="readonly" />
     
     </div>
    </div>
    <br/>
    <input name="msg" type="text" id="msg" value="<%=msg%>" style="width:100%; color:#0000FF;" readonly="true" />
    </form>
    </body>
    
    </html
    
    
    <!-- #include file="Disconnessioni.asp" -->
    <%
    '
    ' Sub e funzioni
    '
    sub RegistraFattura(RS1, numfat, datafattura)
     imponibile=0.0
     imposta=0.0
     importo=0.0
     SQL="select * FROM SituazioneFatture where NumeroFattura=" & numfat
     numeroordine=RS1("NumeroOrdine")
     ResetTbIva
    
     LeggiOrdine numeroordine 'carica la tabella Iva
     
     LeggiCliente codiceanagrafico
     'on error resume next
     RS.Open SQL, connB, 3, 3
     connB.BeginTrans 
    
     'W(numfat)
     if not RS.EOF then
       'W(numfat &" data=" &RS1("DataFattura"))
       RS.Fields("DataFattura")=datafattura
       RS("NumeroOrdine") = RS1("NumeroOrdine")
       RS("codiceanagrafico") = codiceanagrafico
       RS("Ragionesociale")=ragionesociale
       RS("PartitaIva")=partitaiva
       RS("CodiceFiscale")=codicefiscale
       RS("Indirizzo")=indirizzo
       RS("NumeroCivico")=numerocivico
       RS("CAP")=cap
       RS("citta")=citta
       RS("provincia")=provincia
       RS("Nazione")="Italia"
       RS("imponibile")=OrdineImponibile
       RS("imposta")=OrdineImposta
       RS("importo")=OrdineImporto
    ' elabora tabella iva caricata estraendo le aliquote intercettate
    '
    '
      i=1 'prima aliquota da scaricare
      For k=0 to 99
       if TbIva(k,1) > 0 then
          iva = TbIva(k,3)
          imponibile=TbIva(k,1)
          imposta=TbIva(k,2)
          ptr="S0"&i&"01"
          RS(ptr)=imponibile
          ptr="S0"&i&"02"
          RS(ptr)=imposta
          ptr="S0"&i&"03"
          RS(ptr)=iva
          i=i+1
          if i > 4  then
          Exit For
          end if       
       end if
      next
       
       RS.Update
      else
       RS.Addnew
       RS("NumeroFattura")=numfat
       RS.Fields("DataFattura")=datafattura
       RS("NumeroOrdine")=RS1("NumeroOrdine")
       RS("codiceanagrafico")=codiceanagrafico
       LeggiCliente codiceanagrafico
       RS("Ragionesociale")=ragionesociale
       RS("PartitaIva")=partitaiva
       RS("CodiceFiscale")=codicefiscale
       RS("Indirizzo")=indirizzo
       RS("NumeroCivico")=numerocivico
       RS("CAP")=cap
       RS("citta")=citta
       RS("provincia")=provincia
       RS("Nazione")="Italia"
       RS("imponibile")=OrdineImponibile
       RS("imposta")=OrdineImposta
       RS("importo")=OrdineImporto
    ' elabora tabella iva caricata estraendo le aliquote intercettate
    '
    '
       i=1 'prima aliquota da scaricare
       For k=0 to 99
       if TbIva(k,1) > 0 then
          iva = TbIva(k,3)
          imponibile=TbIva(k,1)
          imposta=TbIva(k,2)
          ptr="S0"&i&"01"
          RS(ptr)=imponibile
          ptr="S0"&i&"02"
          RS(ptr)=imposta
          ptr="S0"&i&"03"
          RS(ptr)=iva
          i=i+1
          if i > 4  then
          Exit For
          end if       
        end if
       next
       RS.Update
      end if
     connB.CommitTrans 
     RS.Close
    end sub
    
    sub LeggiOrdine(ord)
    SQL3="select * from Ordini where numeroordine = " & ord 
    RS3.Open SQL3, connB 
    if not RS3.EOF then
      codiceanagrafico=RS3("codiceanagrafico")
      OrdineImponibile=RS3("TotaleImponibile")
      OrdineImposta=RS3("Imposte")
      OrdineImporto=RS3("TotaleImporto")
      extrasconto=RS3("ExtraSconto")
      CaricaTabIVA ord
    else
      codiceanagrafico=0
      imponibile=0
      imposte=0
      importo=0
    end if
    
    RS3.Close
    end sub
    
    '
    ' elabora imponibile e imposta per ogni aliquota IVA presente nell'ordine
    '
    sub CaricaTabIVA(ord)
    ' legge le righe ordine ed elabora i corrispettivi IVA
     SQL4="select * From ItemOrdini where NumeroOrdine=" & ord & " order by ItemOrdine ASC"  
     RS4.Open SQL4, connB, 3, 3
     if not RS4.EOF then
       do until RS4.EOF
       'iva è l'aliquota
       iva=RS4("PercentualeIva")
       sco1=RS4("sconto")
       sco2=RS4("scontoB")
      
      'W("ordine n."&ord&", ")
      
       R1=RS4("PrezzoUnitario")
       R2=RS4("Quantita")
       
       imponibile = R1 * R2
     
       sconto = (imponibile / 100) * sco1
       imponibile = imponibile - sconto
       
       sconto = (imponibile / 100) * sco2
       imponibile = imponibile - sconto
    
       sconto = (imponibile / 100) * extrasconto
       imponibile = imponibile - sconto
       
       imposta = (imponibile / 100) * iva
       importo = imponibile + imposta
    
       tbIva(iva,1)=tbIva(iva,1) + imponibile 
       tbIva(iva,2)=tbIva(iva,2) + imposta
       tbIva(iva,3)=iva 'Aliquota IVA
    
       RS4.movenext
       loop
     end if
     RS4.close
     
    
    
    end sub
    
    sub LeggiCliente(cod)
    SQL3="select * from Clienti where codiceanagrafico = " & cod 
    RS3.Open SQL3, connB 
    if not RS3.EOF then
       ragionesociale=trim(RS3.Fields("RagioneSociale"))
       partitaiva=RS3("partitaiva")
       codicefiscale=RS3("codicefiscale")
       cap=RS3("cap")
       indirizzo=RS3("indirizzo")
       numerocivico=RS3("numerocivico")
       citta=RS3("citta")
       provincia=RS3("Provincia")
    else
       ragionesociale="SCHEDA ANAGRAFICA INESISTENTE..."
       partitaiva="-"
       codicefiscale="-"
       cap="-"
       indirizzo="-"
       numerocivico="-"
       citta="-"
       provincia="-"
    end if
    RS3.close
    end sub
    
    sub W(msg)
     response.write("<br>"&msg&"<br>ERR: "& err.number &" "&err.description & Err.Source)
    end sub
    function fmtDate(dt)
    ' formato data in output: DD/MM/AAAA
    if isDate(dt) then
      fmtDate=right("00"&day(dt),2)&"/"&right("00"&month(dt),2)&"/"&right("0000"&year(dt),4)
    else
      fmtDate=""
    end if
    end function
    
    function LeggiVariabileN(vr)
     SQL="select * from Configurazione where variabile='" & vr & "'"
     RS2.Open SQL, conn, 3, 3
     if not RS2.EOF then
       LeggiVariabileN=RS2.Fields("ValoreNumerico")
     else
       LeggiVariabileN=0
     end if
     RS2.Close
    end function
    
    sub ResetTbIva()
    'reset TbIva
    for i=0 to 100
      tbIva(i,1)=0
      tbIva(i,2)=0
      tbIva(i,3)=0
    next
    end sub
    
    sub LeggiConfigurazione()
    dim pk
    pk=1
    SQL="select * From configurazione where pk = " & pk
    RS.Open SQL, connB
    ' ragionesociale=RS("ragionesociale")
    ' cap=trim(RS.Fields("Cap"))
    ' indirizzo=RS.Fields("indirizzo")
    ' NC=split(indirizzo,",")
    ' citta=trim(RS.Fields("Citta"))
    ' nazione=uCase(RS.Fields("nazione"))
    ' provincia=trim(RS.Fields("Provincia"))
      codfis=trim(RS.Fields("CodiceFiscale"))
    ' partitaiva=trim(RS.Fields("PartitaIva"))
    RS.Close
    end sub
    Questo file necessita di due include...
    Vic53

  2. #12
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    il file Adovbs.inc lo trovi dappertutto nel web se no lo posto io
    il file connessioni te lo posto ma serve a leggere il db Access se invece vuoi accedere a MySQL lo devi impostare tu...
    comunque lo posto
    file Connessioni.asp
    codice:
    <%
    Public conn, connB, SQL, SQL1, SQL2, RS, RS1, RS2, conn_string, connB_string, DB, DB2
    Session.LCID=1040 
    DB="database/DB1.mdb" 'questo è il database di configurazione applicazione
    DB2="database/DB2.mdb" 'questo è il database operativo DATI
    Set conn  = Server.CreateObject("ADODB.Connection")
    Set connB = Server.CreateObject("ADODB.Connection")
    '      conn_string = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(DB)
    'conn_string = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & Server.MapPath(DB)
    conn_string = "Provider = Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Server.MapPath(DB)
    conn.Open conn_string
    '      connB_string="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(DB2) 
    'connB_string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DB2)
    connB_string = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & Server.MapPath(DB2)
    connB.Open connB_string
    Set RS = Server.CreateObject("ADODB.Recordset")
    Set RS1 = Server.CreateObject("ADODB.Recordset")
    Set RS2 = Server.CreateObject("ADODB.Recordset")
    Session.CodePage="1252"
    Response.Charset="windows-1252"
    Response.ContentType = "text/html"
    %>
    Se tutto ti è chiaro dimmelo tu...
    Poi proseguiremo con lo scarico XML
    Vic53

  3. #13
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    A una cosa devo dire ancora ...gli ordini hanno fino a un numero di righe fissato da una tabella di servizio e il campo numrows contiene il valore 250 attualmente ma nel prossimo gestionale le righe sono dinamiche per ogni ordine con un default iniziale di 250 ma l'operatore puo aumentare o diminuire le righe mentre in questa versione la tabella Configurazione ha 250 come valore fisso
    La tabella Configurazione è l'ultima che serve perche contiene i dati della persona che fa la dichiearazione fatture
    Tabella Configurazione
    1. PK num
    2. RagioneSociale
    3. Indirizzo
    4 Filelogo
    5 Citta
    6 Provincia
    7 Nazione
    8 Telefono
    9 Fax
    10 Email
    11 CodiceFiscale
    12 PartitaIva
    13 SitoWeb


    poi una volta Caricata la tabella SisytzioneFatture procederemo a scaricare il file XML.....
    Ultima modifica di vic53; 12-11-2018 a 22:41 Motivo: correzioni
    Vic53

  4. #14
    Caspita Vic !
    ho visto il tio primo msg e l'ho tradotto in php / MySql, poi mi sn collegato per postarlo e.. ho trovato il mondo !
    OK, comincio a postare il codice per la creazione della tabella nel db, la connessione al db + query sulla tabella per noi e per chi segue


    codice:
    /* SQL creazione tbl SituazioneFatture */
    
    CREATE TABLE IF NOT EXISTS `gestionalefe`.`SituazioneFatture` (
      `idSituazioneFatture` INT(11) NOT NULL AUTO_INCREMENT,
      `NumeroFattura` INT(11) NOT NULL,
      `datafattura` DATE NOT NULL,
      `CodiceAnagrafico` BIGINT(20) NOT NULL,
      `RagioneSociale` VARCHAR(80) NOT NULL,
      `CodiceFiscale` VARCHAR(16) NOT NULL,
      `PartitaIva` VARCHAR(11) NOT NULL,
      `Indirizzo` VARCHAR(80) NOT NULL,
      `NumeroCivico` VARCHAR(10) NOT NULL,
      `Cap` VARCHAR(5) NOT NULL,
      `Citta` VARCHAR(50) NOT NULL,
      `Provincia` VARCHAR(4) NOT NULL,
      `Nazione` VARCHAR(40) NOT NULL,
      `Imponibile` INT(11) NOT NULL,
      `Imposta` INT(11) NOT NULL,
      `Importo` INT(11) NOT NULL,
      PRIMARY KEY (`idSituazioneFatture`))
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8
    COLLATE = utf8_general_ci
    
    /*connessione al DB (Connections/MyConnection.php*)*/
    <?php
    
    $hostname_MyConnection = "localhost";
    $database_MyConnection = "gestionalefe";
    $username_MyConnection = "MyUsername";
    $password_MyConnection = "MyPassword";
    $MyConnection = mysql_pconnect($hostname_MyConnection, $username_MyConnection, $password_MyConnection) or trigger_error(mysql_error(),E_USER_ERROR); 
    ?>
    
    
    /* Query the DB (SituazioneFatture.php) */
    
    <?php require_once('Connections/MyConnection.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }
    
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
    
    mysql_select_db($database_MyConnection, $MyConnection);
    $query_SituazioneFattureQry = "SELECT * FROM situazionefatture";
    $SituazioneFattureQry = mysql_query($query_SituazioneFattureQry, $MyConnection) or die(mysql_error());
    $row_SituazioneFattureQry = mysql_fetch_assoc($SituazioneFattureQry);
    $totalRows_SituazioneFattureQry = mysql_num_rows($SituazioneFattureQry);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>SituazioneFatture</title>
    </head>
    <body>
    </body>
    </html>
    <?php
    mysql_free_result($SituazioneFattureQry);
    ?>
    Mi guardo il resto

  5. #15
    Sto guardando... il mio DB è ovviamente diverso dal tuo; per restare sincronizzati ti invito a convertire le tabelle che servono del tuo access in MySQL che cosi mi ricreo in locale la tua struttura senza stare a fare le tbl una ad una.

    Prova ad usare questo:
    http://www.bullzip.com/products/a2m/info.php

    Una volta che abbiamo la tua struttura Mysql costruiamo le pagine php

  6. #16
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    Io ho gia un database MySQL su windows10 ver 7.2.1 e uso il programma MySQL-Front per avere velocemente accesso al nuovo db che sto costruendo...
    Non ho ancora creato la tabella ma posso fare import da Access della struttura tramite MySQL-Front velocemente...
    Alcune tabelle le ho gia importate dato che sto riscrivendo la procedura per intero ed è composta da un centinaio di programmi vari...
    Li ho scritti molti anni fa e ho aggiunto varie cose molte volte...
    Manca il programma di generazione XML che ti posto ora poi cominciamo a fare traduzione e per me nasce la versione 2 di Fatture Clienti e Fornitori... in PHP e MySQL... HO gia impementato accesso login, il menu generale, la lista clienti con ricerca, la lista fornitori con ricerca, la scheda cliente con vari toolsper Cap etc etc... e la lista preventivi e sto rifacendo il preventivo cliente.
    Considera che nel mio gestionale il preventivo puo essere convertito in ordine, stampa in PDF il preventivo, lo puo spedire via mail, puo resettare l'ordine e rifqrlo su un nuovo ordine, puo aprire un ordine di ricarico per fornitore e leggere tramite barcode sul campo Codice articolo e caricale la linea preventivo e andare a capo.....
    comunque è un lavoro lungo e stavolta mi sono ripromesso di fare anche gli help di pagina... ogni pagina oltre che la navigazione backpage automatica a ricordo, ha la pagina sua di help e tutto il sistema è congeganto in ipertesto cliccando in doppio click per esempio sul codicecliente puo aprire la scheda anagrafica cliente e via cosi... tutte le pagine sono ipertesto una con l'altra con relazioni davvero potenti e questo rende il gestionale veloce al banco per emettere fatture immediatamente anche se c'è molta gente... Il gestionale ha un db con 850000 articoli e risponde in tempo reale molto velocemente e gira su 4 stazioni pc per un negozio di elettroforniture di un mio amico a Roma da piu di 15 anni ...la prima versione era in DOS poi è arrivato windows e quendo è arrivato window 7 ho rifatto la procedura da DOS a HTML + vbscript + Access passando da Cobol + ISAM a ACCESS 2000.
    Ora sto riscrivendo la versione 2 in HTML PHP JAVASCRIPT AJAX MYSQL JQUERY.
    Se vuoi aiutarmi ti faccio far parte del mio lavoro ... io di solito lavoro da solo ama se hai tempo ti rendo partecipe delle mie conoscenze. Io ero uno dei sistemisti andati in pensione di Alitalia Alr lines - Servizi ed ero uno degli amministratori della rete Alitalia AZ a Magliana. Ho frquentato 4 corsi circa ogni anno per piu di 25 anni e prima di Alitalia ero un sistemista della Byte di Torino nel 1985... Ora faccio questi lavori per tenermi in esercizio e studiare cose aggironate e passare il tempo studiando nuovi linguaggi anche se molti li conosco gia per averli usati in azienda...
    Va be proseguiamo con il postare il file di export verso XML... molti pezzi sono fissi perchè come ti ho detto questa modifica l'ho fatta in breve tempo
    file CaricaFattureXML.asp
    codice:
    <!-- #include file="adovbs.asp" -->
    <!-- #include file="Connessioni.asp" -->
    <%
    Dim datastart,dataend,d1,d2,progressivo,carica,codfis, codana
    ' 
    ' il campo codana è il campo su cui si effettua la rottura per stampare il nuovo header
    '
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim Rec,AAAA,MM,GG,numerofattura,N1,N2
    
    Dim ragionesociale,indirizzo,NC,cap,citta,provincia,nazione,codicefiscale,partitaiva,pk
    for i=1 to Request.Querystring("carica").Count 
       carica =  Request.Querystring("carica")(i) 
    next
    progressivo="1"
    for i=1 to Request.Querystring("progressivo").Count 
       progressivo =  Request.Querystring("progressivo")(i) 
    next
    for i=1 to Request.Querystring("codicefiscale").Count 
       codfis =  Request.Querystring("codicefiscale")(i) 
    next
    
    progressivo=right("0000"&progressivo,4)
    for i=1 to Request.Querystring("datastart").Count 
       datastart=  Request.Querystring("datastart")(i) 
    next
    for i=1 to Request.Querystring("dataend").Count 
       dataend=  Request.Querystring("dataend")(i) 
    next
    
    'd1="#"&datastart&"#"
    'd2="#"&dataend&"#"
    d1="#"&mid(datastart,4,2)&"/"&left(datastart,2)&"/"&right(datastart,4)&"#"
    d2="#"&mid(dataend,4,2)&"/"&left(dataend,2)&"/"&right(dataend,4)&"#"
    
    dim a, f, fso, fd, fld(100)
    LeggiConfigurazione
    '
    ' prepara il file di scarico
    '
    codana = 0
    'SQL = "SELECT * FROM SituazioneFatture where DataFattura between "& d1 & " and " & d2 & " order 
    SQL  = "SELECT * FROM SituazioneFatture where (DataFattura >= " & d1  & ") and (DataFattura <= " & d2 & ") order by  CodiceAnagrafico ASC,NumeroFattura ASC"
    RS.Open SQL, connB, 3, 3
    File = "public/IT"&codicefiscale&"_DF_I" & progressivo & ".XML"
    fd=Server.MapPath(File) 
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(fd, ForWriting, True)
    ' 
    ' Scarica i dati del CedentePrestatoreDTE 
    '
    ScaricaHeader
    do until RS.EOF
       '
       ' Scarica le fatture
       '
       
       codiceanagrafico=RS("codiceanagrafico") 
       if (codana = 0) or (codana<>codiceanagrafico) then
          EstraiAnagrafica()   
          NuovoCommittente()
       end if    
       ElaboraFattura RS
       codana = codiceanagrafico
    
       RS.movenext
    
    loop
      if codana<>0 then
         Rec="    </CessionarioCommittenteDTE>"
         W Rec
      end if
    
    '
    ' Chiusura del file di trx format XML
    '
    Rec="  </DTE>"
    W Rec
    Rec="</DatiFattura>"
    W Rec
    
    RS.Close
    f.Close
    response.write("FILE XML CREATO IN OUTPUT...")
    '
    '
    '
    sub ScaricaHeader()
    Rec="<?xml version=""1.0""?>"
    W Rec
    Rec="<DatiFattura  xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""  xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" versione=""DAT20""  xmlns=""http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v2.0"">"
    'Rec="<DatiFattura>"
    W Rec
    Rec="  <DatiFatturaHeader xmlns="""">"
    W Rec
    Rec="    <ProgressivoInvio>" & progressivo & "</ProgressivoInvio>"
    W Rec
    Rec="    <Dichiarante>"
    W Rec
    Rec="       <CodiceFiscale>"& codicefiscale & "</CodiceFiscale>"
    W Rec
    Rec="       <Carica>"&carica&"</Carica>"
    W Rec
    Rec="    </Dichiarante>"
    W Rec
    Rec="  </DatiFatturaHeader>"
    W Rec
    Rec="   <DTE xmlns="""">"
    W Rec
    Rec="    <CedentePrestatoreDTE>"
    W Rec
    Rec="      <IdentificativiFiscali>"
    W Rec
    Rec="       <IdFiscaleIVA>"
    W Rec
    Rec="         <IdPaese>"&left(nazione,2)&"</IdPaese>"
    W Rec
    Rec="         <IdCodice>"&partitaiva&"</IdCodice>"
    W Rec
    Rec="       </IdFiscaleIVA>"
    W Rec
    Rec="        <CodiceFiscale>"&codicefiscale&"</CodiceFiscale>"
    W Rec
    Rec="      </IdentificativiFiscali>"
    W Rec
    Rec="      <AltriDatiIdentificativi>"
    W Rec
    Rec="        <Denominazione>"&ragionesociale&"</Denominazione>"
    W Rec
    Rec="        <Sede>"
    W Rec
    Rec="          <Indirizzo>"&NC(0)&"</Indirizzo>"
    W Rec
    Rec="          <NumeroCivico>"&trim(NC(1))&"</NumeroCivico>"
    W Rec
    Rec="          <CAP>"&cap&"</CAP>"
    W Rec
    Rec="          <Comune>"&citta&"</Comune>"
    W Rec
    Rec="          <Provincia>"&provincia&"</Provincia>"
    W Rec
    Rec="          <Nazione>"&left(nazione,2)&"</Nazione>"
    W Rec
    Rec="        </Sede>"
    W Rec
    Rec="      </AltriDatiIdentificativi>"
    W Rec
    Rec="    </CedentePrestatoreDTE>"
    W Rec
    end sub
    '
    ' **** export fattura DTE in XML
    '
    sub EstraiAnagrafica()
    nazione=ucase(RS("nazione"))
    partitaiva=RS("partitaiva")
    codicefiscale=RS("codicefiscale")
    ragionesociale=Replace(RS("ragionesociale"),"&","&amp;")
    indirizzo=RS("indirizzo")
    cap=RS("cap")
    citta=RS("citta")
    provincia=RS("provincia")
    nazione=uCase(RS("nazione"))
    end sub
    
    
    sub ElaboraFattura(RS)
    ' estrae i dati dal recordset
    numerofattura=RS("NumeroFattura")
    AAAA=Year(RS("DataFattura"))
    MM=right("0"&month(RS("DataFattura")),2)
    GG=right("0"&Day(RS("DataFattura")),2)
    
    
    Rec="      <DatiFatturaBodyDTE>"
    W Rec
    Rec="        <DatiGenerali>"
    W Rec
    Rec="          <TipoDocumento>TD01</TipoDocumento>"
    W Rec
    Rec="          <Data>"&AAAA&"-"&MM&"-"&GG&"</Data>"
    W Rec
    N1="N"&NumeroFattura
    N2=right(N1,6)
    Rec="          <Numero>"&FormatNumber(N2,0)&"</Numero>"
    W Rec
    Rec="        </DatiGenerali>"
    W Rec
    if RS("S0101")>0 then
       Rec="        <DatiRiepilogo>"
       W Rec
        Rec="           <ImponibileImporto>"&Replace(FormatNumber(RS("S0101"),2,-1,0,0),",",".")&"</ImponibileImporto>"
       W Rec
       Rec="          <DatiIVA>"
       W Rec
       Rec="            <Imposta>"&Replace(FormatNumber(RS("S0102"),2,-1,0,0),",",".")&"</Imposta>"
       W Rec
       Rec="            <Aliquota>"&Replace(FormatNumber(RS("S0103"),2,-1,0,0),",",".")&"</Aliquota>"
       W Rec
       Rec="          </DatiIVA>"
       W Rec
       if RS("S0103")=0.00 then
         Rec="          <Natura>N2</Natura>"
         W Rec
       end if
       Rec="          <EsigibilitaIVA>I</EsigibilitaIVA>"
       W Rec   
       Rec="        </DatiRiepilogo>"
       W Rec
    end if
    if RS("S0201")>0 then
       Rec="        <DatiRiepilogo>"
       W Rec
        Rec="           <ImponibileImporto>"&Replace(FormatNumber(RS("S0201"),2,-1,0,0),",",".")&"</ImponibileImporto>"
       W Rec
       Rec="          <DatiIVA>"
       W Rec
       Rec="            <Imposta>"&Replace(FormatNumber(RS("S0202"),2,-1,0,0),",",".")&"</Imposta>"
       W Rec
       Rec="            <Aliquota>"&Replace(FormatNumber(RS("S0203"),2,-1,0,0),",",".")&"</Aliquota>"
       W Rec
       Rec="          </DatiIVA>"
       W Rec
       if RS("S0203")=0.00 then
         Rec="          <Natura>N2</Natura>"
         W Rec
       end if
       Rec="          <EsigibilitaIVA>I</EsigibilitaIVA>"
       W Rec   
       Rec="        </DatiRiepilogo>"
       W Rec
    end if
    if RS("S0301")>0 then
       Rec="        <DatiRiepilogo>"
       W Rec
        Rec="           <ImponibileImporto>"&Replace(FormatNumber(RS("S0301"),2,-1,0,0),",",".")&"</ImponibileImporto>"
       W Rec
       Rec="          <DatiIVA>"
       W Rec
       Rec="            <Imposta>"&Replace(FormatNumber(RS("S0302"),2,-1,0,0),",",".")&"</Imposta>"
       W Rec
       Rec="            <Aliquota>"&Replace(FormatNumber(RS("S0303"),2,-1,0,0),",",".")&"</Aliquota>"
       W Rec
       Rec="          </DatiIVA>"
       W Rec
       if RS("S0303")=0.00 then
         Rec="          <Natura>N2</Natura>"
         W Rec
       end if
       Rec="          <EsigibilitaIVA>I</EsigibilitaIVA>"
       W Rec   
       Rec="        </DatiRiepilogo>"
       W Rec
    end if
    if RS("S0401")>0 then
       Rec="        <DatiRiepilogo>"
       W Rec
        Rec="           <ImponibileImporto>"&Replace(FormatNumber(RS("S0401"),2,-1,0,0),",",".")&"</ImponibileImporto>"
       W Rec
       Rec="          <DatiIVA>"
       W Rec
       Rec="            <Imposta>"&Replace(FormatNumber(RS("S0402"),2,-1,0,0),",",".")&"</Imposta>"
       W Rec
       Rec="            <Aliquota>"&Replace(FormatNumber(RS("S0403"),2,-1,0,0),",",".")&"</Aliquota>"
       W Rec
       Rec="          </DatiIVA>"
       W Rec
       if RS("S0403")=0.00 then
         Rec="          <Natura>N2</Natura>"
         W Rec
       end if
       Rec="          <EsigibilitaIVA>I</EsigibilitaIVA>"
       W Rec   
       Rec="        </DatiRiepilogo>"
       W Rec
    end if
    Rec="      </DatiFatturaBodyDTE>"
    W Rec
    end sub
    
    sub NuovoCommittente()
    ' chiude precedente committente
    if codana > 0 then
      Rec="    </CessionarioCommittenteDTE>"
      W Rec
    end if
    
    Rec="    <CessionarioCommittenteDTE>"
    W Rec
    Rec="      <IdentificativiFiscali>"
    W Rec
    if trim(partitaiva)<>"" then
     Rec="       <IdFiscaleIVA>"
     W Rec
     Rec="         <IdPaese>"&left(nazione,2)&"</IdPaese>"
     W Rec
     Rec="         <IdCodice>"&partitaiva&"</IdCodice>"
     W Rec
     Rec="       </IdFiscaleIVA>"
     W Rec
    end if
    if trim(codicefiscale)="" then
     codicefiscale=partitaiva
    end if 
    Rec="        <CodiceFiscale>"&codicefiscale&"</CodiceFiscale>"
    W Rec
    Rec="      </IdentificativiFiscali>"
    W Rec
    Rec="      <AltriDatiIdentificativi>"
    W Rec
    Rec="        <Denominazione>"&ragionesociale&"</Denominazione>"
    W Rec
    Rec="        <Sede>"
    W Rec
    Rec="          <Indirizzo>"&indirizzo&"</Indirizzo>"
    W Rec
    Rec="          <CAP>"&cap&"</CAP>"
    W Rec
    Rec="          <Comune>"&citta&"</Comune>"
    W Rec
    Rec="          <Provincia>"&provincia&"</Provincia>"
    W Rec
    Rec="          <Nazione>"&left(nazione,2)&"</Nazione>"
    W Rec
    Rec="        </Sede>"
    W Rec
    Rec="      </AltriDatiIdentificativi>"
    W Rec
    
    end sub
    
    sub LeggiConfigurazione()
    pk=1
    SQL="select * From configurazione where pk = " & pk
    RS.Open SQL, connB
     ragionesociale=RS("ragionesociale")
     cap=trim(RS.Fields("Cap"))
     indirizzo=RS.Fields("indirizzo")
     NC=split(indirizzo,",")
     citta=trim(RS.Fields("Citta"))
     nazione=uCase(RS.Fields("nazione"))
     provincia=trim(RS.Fields("Provincia"))
     if codfis="" then
        codicefiscale=trim(RS.Fields("CodiceFiscale"))
     else
        codicefiscale=codfis
     end if
     partitaiva=trim(RS.Fields("PartitaIva"))
    RS.Close
    end sub
    
    sub W(Rec)
    f.WriteLine Rec
    end sub
    
    %>
    ok ora proseguiamo verso la nuova export PHP...
    Vic53

  7. #17
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    Ok ho generato su MySQL la tabella SituazioneFatture e ora mi riprometto di scrivere il programma ListaFatture che è quello che lancia il form in finestra modale con Fancybox il programma CaricaSituazioneFatture...
    La lista fatture è una lista di record fatture con la possibilita di visualizzare dalla data alla data ed è preimpostato quando lo apri leggendo la data di gestione cioe l'anno in corso poi puoi selezionare il range di date e avere la lista a video... Daqui puoi ottenere 3 report PDF da dare al commercialista oppure aprire il form che genera il file XML come ti ho presentato....
    Ora inizio a scrivere la pagina PHP per la lista fatture... considera che io utilizzo anche una libreria javascript per le grid... utilizzando una parte del codice del vecchio sistema Linb.net che ho salvato quelche anno fa e che ancora ho integro. Ora Linb.net è a pagamento e costa molto.... ma io ho una vecchia copia che gira benissimo in locale e non ha bisogno di collegarsi al cloud ed era gratuita al tempo che io lìho scaricata... la nuova versione è molto piu potente e fa un sacco di cose ma a me servono solo alcuni oggetti che uso e che mi piacciono tipo la treegrid e alcune messagebox....
    Si potrebbe addirittura pensare di fare un modulo a se stante solo per la generazione del file xml e venderlo dato che servirà a molta gente.. cosa ne pensi?
    fammi sapere...
    Vic53

  8. #18
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    Ok ho generato su MySQL la tabella SituazioneFatture e ora mi riprometto di scrivere il programma ListaFatture che è quello che lancia il form in finestra modale con Fancybox il programma CaricaSituazioneFatture...
    La lista fatture è una lista di record fatture con la possibilita di visualizzare dalla data alla data ed è preimpostato quando lo apri leggendo la data di gestione cioe l'anno in corso poi puoi selezionare il range di date e avere la lista a video... Daqui puoi ottenere 3 report PDF da dare al commercialista oppure aprire il form che genera il file XML come ti ho presentato....
    Ora inizio a scrivere la pagina PHP per la lista fatture... considera che io utilizzo anche una libreria javascript per le grid... utilizzando una parte del codice del vecchio sistema Linb.net che ho salvato quelche anno fa e che ancora ho integro. Ora Linb.net è a pagamento e costa molto.... ma io ho una vecchia copia che gira benissimo in locale e non ha bisogno di collegarsi al cloud ed era gratuita al tempo che io lìho scaricata... la nuova versione è molto piu potente e fa un sacco di cose ma a me servono solo alcuni oggetti che uso e che mi piacciono tipo la treegrid e alcune messagebox....
    Si potrebbe addirittura pensare di fare un modulo a se stante solo per la generazione del file xml e venderlo dato che servirà a molta gente.. cosa ne pensi?
    fammi sapere...
    una altra cosa... volevo dire una piccola cosa ... dato che io uso molto ADO ho scritto le routine per avere a disposizione il sistema ADO con MySQL e la connessione che uso è la seguente e va alla grande...
    ti posto il mio file di connessione a MySQL
    file Connessione.php
    codice:
    <?php
    $cn = new COM("ADODB.Connection") 
       or die("CANNOT START ADO");
    $_SESSION["DBSTATUS"]="DB OPEN";
    $cnstr = "DRIVER={MySQL ODBC 5.3 Unicode Driver}; Port=3306;DATABASE=XXXX;UID=vic53;PWD=xxxxxx;"; 
    $cn->Open($cnstr);
    $rs  = new COM("ADODB.Recordset");
    $rs1 = new COM("ADODB.Recordset");
    $rs2 = new COM("ADODB.Recordset");
    $rs3 = new COM("ADODB.Recordset");
    
    global $rs1;
    global $rs2;
    global $rs3;
    global $cn;
    // funzioni mancanti in PHP
    function left($str, $length) {
         return substr($str, 0, $length);
    }
    function right($str, $length) {
         return substr($str, -$length);
    }     
    ?>
    chiaramente db e password sono mascherati... ma ti assicuro funzionano su Windows10 professional perfettamente e velocemente con php 7.2.1

    inoltre dato che a php manca la funzione left e right le ho scritte e incluse nel file di connessione cosi le ho sempre in linea..
    e a me mancavano e non mi stavo li a farle ogni volta con le sottostringhe solite...
    Vic53

  9. #19
    Ciao Vic ho provato a mandarti un pm ma non viene inviato. Se a te funziona mandami la tua mail che ti scrivo lì

  10. #20
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    Il mio generatore di SQL mi riporta qualche piccola differenza sulla struttura della tabella ... te la posto
    codice:
    # Date: 2018-11-14 07:12:17
    # Generator: MySQL-Front 6.0  (Build 2.20)
    
    
    #
    # Structure for table "situazionefatture"
    #
    
    CREATE TABLE `situazionefatture` (
      `NumeroFattura` int(10) NOT NULL COMMENT 'Progressivo n.fattura AAAANNNNNN',
      `datafattura` datetime DEFAULT NULL COMMENT 'Data emissione',
      `NumeroOrdine` int(10) DEFAULT NULL,
      `CodiceAnagrafico` int(10) DEFAULT NULL,
      `RagioneSociale` varchar(80) DEFAULT NULL,
      `CodiceFiscale` varchar(20) DEFAULT NULL,
      `PartitaIVA` varchar(20) DEFAULT NULL,
      `Indirizzo` varchar(80) DEFAULT NULL,
      `NumeroCivico` varchar(10) DEFAULT NULL,
      `Cap` varchar(5) DEFAULT NULL,
      `Citta` varchar(50) DEFAULT NULL,
      `Provincia` varchar(2) DEFAULT NULL,
      `Nazione` varchar(80) DEFAULT NULL,
      `imponibile` double DEFAULT NULL COMMENT 'totale imponibile fattura',
      `imposta` double DEFAULT NULL COMMENT 'totale imposte fattura',
      `Importo` double DEFAULT NULL COMMENT 'Importo fattura',
      `S0101` double DEFAULT NULL COMMENT 'imponibile aliquota 1',
      `S0102` double DEFAULT NULL COMMENT 'imposta aliquota 1',
      `S0103` smallint(5) DEFAULT NULL COMMENT ' aliquota 1',
      `S0201` double DEFAULT NULL COMMENT 'imponibile aliquota2',
      `S0202` double DEFAULT NULL COMMENT 'imposta aliquota 2',
      `S0203` smallint(5) DEFAULT NULL COMMENT 'aliquota 2',
      `S0301` double DEFAULT NULL COMMENT 'imponibile aliquota 3',
      `S0302` double DEFAULT NULL COMMENT 'imposta aliquota 3',
      `S0303` smallint(5) DEFAULT NULL COMMENT 'aliquota3',
      `S0401` double DEFAULT NULL COMMENT 'imponibile aliquota 4',
      `S0402` double DEFAULT NULL COMMENT 'imposta aliquota 4',
      `S0403` smallint(5) DEFAULT NULL COMMENT 'aliquota 4',
      PRIMARY KEY (`NumeroFattura`),
      UNIQUE KEY `NumeroFattura` (`NumeroFattura`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    E' quasi uguale solo c'è 'unique key' in più...
    poi provo a tradurre il file asp con il programma che mi hai linkato...
    Vic53

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.