Logiciel Pastèque/Scripts divers
Pastèque Desktop
[modifier | modifier le wikicode]Toute version
[modifier | modifier le wikicode]Édition de facture A4
[modifier | modifier le wikicode]Dans le dossier d’installation de Pastèque, créer un dossier reports/fr/pasteque/reports
Mettez y 3 fichiers :
invoice.jrxml
,ticket_lines.jrxml
,logo.png
(votre logo).
Adaptez les fichiers à vos besoins (ils sont définis plus bas).
Dans la configuration avancée, ajoutez la ligne suivante dans Ticket.Buttons, entre les balises <configuration> et </configuration> : <event key="ticket.close" code="code.printinvoice"/>
Dans la configuration avancée, ajoutez une ressource appelée « code.printinvoice » et contenant la ligne suivante : sales.printReport("/fr/pasteque/reports/invoice");
invoice.jrxml
[modifier | modifier le wikicode]<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
name="ticket"
columnCount="1"
printOrder="Vertical"
orientation="Portrait"
pageWidth="595"
pageHeight="842"
columnWidth="535"
columnSpacing="0"
leftMargin="30"
rightMargin="30"
topMargin="20"
bottomMargin="20"
whenNoDataType="NoPages"
isTitleNewPage="false"
isSummaryNewPage="false">
<property name="ireport.scriptlethandling" value="0" />
<property name="ireport.encoding" value="UTF-8" />
<import value="java.util.*" />
<import value="net.sf.jasperreports.engine.*" />
<import value="net.sf.jasperreports.engine.data.*" />
<parameter name="SUBREPORT_DIR" isForPrompting="true" class="java.lang.String">
<defaultValueExpression ><![CDATA["./"]]></defaultValueExpression>
</parameter>
<field name="TICKET" class="fr.pasteque.pos.ticket.TicketInfo"/>
<field name="PLACE" class="java.lang.String"/>
<field name="TAXESLOGIC" class="java.lang.Object"/>
<background>
<band height="0" isSplitAllowed="true" >
</band>
</background>
<!-- HEADER -->
<title>
<band height="85" isSplitAllowed="true" >
<staticText>
<reportElement x="0" y="70" width="520" height="15" key="hautdepage-boutique" />
<textElement textAlignment="Center" />
<text><![CDATA[INFOS MAGASIN]]></text>
</staticText>
</band>
</title>
<pageHeader>
<band height="0" isSplitAllowed="true" >
</band>
</pageHeader>
<columnHeader>
<band height="0" isSplitAllowed="true" >
</band>
</columnHeader>
<!-- BODY -->
<detail>
<band height="555" isSplitAllowed="true" >
<!-- LOGO -->
<image scaleImage="RetainShape" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="0"
y="0"
width="115"
height="80"
key="logo" />
<box></box>
<graphicElement stretchType="NoStretch"/>
<imageExpression class="java.lang.String"><![CDATA["reports/fr/pasteque/reports/logo.png"]]></imageExpression>
</image>
<!-- TOP LEFT -->
<rectangle>
<reportElement
x="120"
y="7"
width="180"
height="77"
key="rectangle-hautgauche"/>
<graphicElement stretchType="NoStretch"/>
</rectangle>
<staticText>
<reportElement
x="130"
y="11"
width="109"
height="21"
key="staticText-3"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[FACTURE N°]]></text>
</staticText>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="200"
y="11"
width="156"
height="21"
key="textField-2"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.printId()]]></textFieldExpression>
</textField>
<staticText>
<reportElement
x="130"
y="32"
width="109"
height="21"
key="staticText-4"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Date: ]]></text>
</staticText>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="165"
y="32"
width="156"
height="21"
key="textField-3"/>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.printDate()]]></textFieldExpression>
</textField>
<staticText>
<reportElement
x="130"
y="55"
width="160"
height="21"
key="conditionsdepaiement"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[CONDITIONS PAIEMENT]]></text>
</staticText>
<!-- TOP RIGHT -->
<rectangle>
<reportElement
x="300"
y="7"
width="220"
height="77"
key="rectangle-hautdroite"/>
<graphicElement stretchType="NoStretch"/>
</rectangle>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="310"
y="15"
width="188"
height="19"
key="textField-4">
<printWhenExpression><![CDATA[Boolean.valueOf($F{TICKET}.getCustomer() != null)]]></printWhenExpression>
</reportElement>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.getCustomer().getName()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="310"
y="25"
width="188"
height="19"
key="textField-CustInfo1">
<printWhenExpression><![CDATA[Boolean.valueOf($F{TICKET}.getCustomer() != null)]]></printWhenExpression>
</reportElement>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.getCustomer().getAddress()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="310"
y="35"
width="188"
height="19"
key="textField-CustInfo2">
<printWhenExpression><![CDATA[Boolean.valueOf($F{TICKET}.getCustomer() != null)]]></printWhenExpression>
</reportElement>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.getCustomer().getAddress2()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="310"
y="45"
width="188"
height="19"
key="textField-CustInfo3">
<printWhenExpression><![CDATA[Boolean.valueOf($F{TICKET}.getCustomer() != null)]]></printWhenExpression>
</reportElement>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.getCustomer().getPostal()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="345"
y="45"
width="188"
height="19"
key="textField-CustInfo4">
<printWhenExpression><![CDATA[Boolean.valueOf($F{TICKET}.getCustomer() != null)]]></printWhenExpression>
</reportElement>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.getCustomer().getCity()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="310"
y="55"
width="188"
height="19"
key="textField-CustInfo5">
<printWhenExpression><![CDATA[Boolean.valueOf($F{TICKET}.getCustomer() != null)]]></printWhenExpression>
</reportElement>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.getCustomer().getCountry()]]></textFieldExpression>
</textField>
<!-- TICKET LINES -->
<rectangle>
<reportElement
x="10"
y="100"
width="520"
height="270"
key="rectangle-lines"/>
<graphicElement stretchType="NoStretch"/>
</rectangle>
<subreport isUsingCache="true">
<reportElement
x="10"
y="100"
width="520"
height="65"
key="subreport-1"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(
$F{TICKET}.getLines()
)]]></dataSourceExpression>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[JasperCompileManager.compileReport(
net.sf.jasperreports.engine.xml.JRXmlLoader.load(getClass().getResourceAsStream(
"/fr/pasteque/reports/ticket_lines.jrxml"
))
)]]></subreportExpression>
</subreport>
<!-- TOTAL -->
<rectangle>
<reportElement
x="10"
y="370"
width="520"
height="120"
key="rectangle-total"/>
<graphicElement stretchType="NoStretch"/>
</rectangle>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="324"
y="399"
width="188"
height="19"
key="textField-6"/>
<box></box>
<textElement textAlignment="Right">
<font pdfFontName="Helvetica-Bold" size="12" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.printTax()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="324"
y="418"
width="188"
height="19"
key="textField-7"/>
<box></box>
<textElement textAlignment="Right">
<font pdfFontName="Helvetica-Bold" size="12" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.printTotal()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="324"
y="380"
width="188"
height="19"
key="textField-8"/>
<box></box>
<textElement textAlignment="Right">
<font pdfFontName="Helvetica-Bold" size="12" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{TICKET}.printSubTotal()]]></textFieldExpression>
</textField>
<staticText>
<reportElement
x="164"
y="380"
width="160"
height="19"
key="staticText-6"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Total HT]]></text>
</staticText>
<staticText>
<reportElement
x="164"
y="399"
width="160"
height="19"
key="staticText-8"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[TVA 20%]]></text>
</staticText>
<staticText>
<reportElement
x="164"
y="418"
width="160"
height="19"
key="staticText-9"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Total TTC]]></text>
</staticText>
</band>
</detail>
<columnFooter>
<band height="0" isSplitAllowed="true" >
</band>
</columnFooter>
<pageFooter>
<band height="0" isSplitAllowed="true" >
</band>
</pageFooter>
<summary>
<band height="40" isSplitAllowed="true" >
<staticText>
<reportElement x="0" y="0" width="520" height="19" key="basdepage-TVA" />
<textElement textAlignment="Center" />
<text><![CDATA[N° T.V.A. INTRACOMMUNAUTAIRE : XXXXXXXXXXXXXX]]></text>
</staticText>
<staticText>
<reportElement x="0" y="20" width="520" height="19" key="basdepage-societe" />
<textElement textAlignment="Center" />
<text><![CDATA[PIED de page]]></text>
</staticText>
</band>
</summary>
</jasperReport>
ticket_liens.jrxml
[modifier | modifier le wikicode]<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
name="ticket_lines"
columnCount="1"
printOrder="Vertical"
orientation="Portrait"
pageWidth="535"
pageHeight="802"
columnWidth="535"
columnSpacing="0"
leftMargin="0"
rightMargin="0"
topMargin="0"
bottomMargin="0"
whenNoDataType="NoPages"
isTitleNewPage="false"
isSummaryNewPage="false">
<property name="ireport.scriptlethandling" value="0" />
<property name="ireport.encoding" value="UTF-8" />
<import value="java.util.*" />
<import value="net.sf.jasperreports.engine.*" />
<import value="net.sf.jasperreports.engine.data.*" />
<field name="productName" class="java.lang.String"/>
<field name="_THIS" class="fr.pasteque.pos.ticket.TicketLineInfo"/>
<background>
<band height="31" isSplitAllowed="true" >
</band>
</background>
<title>
<band height="0" isSplitAllowed="true" >
</band>
</title>
<pageHeader>
<band height="24" isSplitAllowed="true" >
<rectangle>
<reportElement
x="0"
y="0"
width="520"
height="24"
key="rectangle-haut"/>
<graphicElement stretchType="NoStretch"/>
</rectangle>
<staticText>
<reportElement
x="12"
y="5"
width="149"
height="14"
key="staticText-1"/>
<box></box>
<textElement>
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Name]]></text>
</staticText>
<staticText>
<reportElement
x="176"
y="5"
width="113"
height="14"
key="staticText-2"/>
<box></box>
<textElement textAlignment="Right">
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Price]]></text>
</staticText>
<staticText>
<reportElement
x="360"
y="5"
width="136"
height="14"
key="staticText-4"/>
<box></box>
<textElement textAlignment="Right">
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Total]]></text>
</staticText>
<staticText>
<reportElement
x="289"
y="5"
width="71"
height="14"
key="staticText-5"/>
<box></box>
<textElement textAlignment="Right">
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<text><![CDATA[Units]]></text>
</staticText>
</band>
</pageHeader>
<columnHeader>
<band height="0" isSplitAllowed="true" >
</band>
</columnHeader>
<detail>
<band height="20" isSplitAllowed="true" >
<rectangle>
<reportElement
x="0"
y="0"
width="520"
height="20"
key="rectangle-bas"/>
<graphicElement stretchType="NoStretch"/>
</rectangle>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="12"
y="3"
width="149"
height="15"
key="textField-1"/>
<box></box>
<textElement>
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{productName}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="360"
y="3"
width="136"
height="15"
key="textField-2"/>
<box></box>
<textElement textAlignment="Right">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{_THIS}.printValue()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="176"
y="3"
width="113"
height="15"
key="textField-3"/>
<box></box>
<textElement textAlignment="Right">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{_THIS}.printPriceTax()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="289"
y="3"
width="71"
height="15"
key="textField-4"/>
<box></box>
<textElement textAlignment="Right">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{_THIS}.printMultiply()]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="0" isSplitAllowed="true" >
</band>
</columnFooter>
<pageFooter>
<band height="37" isSplitAllowed="true" >
</band>
</pageFooter>
<summary>
<band height="0" isSplitAllowed="true" >
</band>
</summary>
</jasperReport>
Rendu monnaie en pop-up
[modifier | modifier le wikicode]Créer un fichier ressource à partir du compte administrateur
- Aller dans « maintenance » puis « ressources »
- Créer une nouvelle ressource (icône blanche avec point jaune)
- Nommer la ressource « ticket.close »
- Ajouter le code suivant :
import java.awt.Font;
import javax.swing.plaf.FontUIResource;
import com.openbravo.pos.payment.PaymentInfo;
import javax.swing.JOptionPane;
import javax.swing.JDialog;
boolean isCash = false;
String change = "";
PaymentInfo p = ticket.payments.getFirst();
if ("cash".equals(p.getName())) {
isCash = true;
change = p.printChange();
}
JOptionPane pane = new JOptionPane();
Font originalFont=pane.getFont();
UIManager.put("OptionPane.buttonFont", new FontUIResource(new Font("ARIAL",Font.PLAIN,30)));
message = "A RENDRE: " + change;
JLabel FontText = new JLabel(message);
FontText.setFont (new Font ( "Arial", Font.BOLD, 40) );
if(isCash) {
JOptionPane pane = new JOptionPane();
pane.setMessage(FontText);
pane.setPreferredSize( new Dimension(450,150));
JDialog dialog = pane.createDialog("Rendre la monnaie");
new Thread(new Runnable() { void run() {
dialog.show();
} }).start();
}
UIManager.put("OptionPane.buttonFont", new FontUIResource(new Font(originalFont.getName(),originalFont.getStyle(),originalFont.getSize())));
- Sauvegarder via l’icône en forme de disquette
Mettre en place le script pour que la fenêtre apparaisse à la fin de la vente
- Dans la liste des ressources, choisir « Ticket.Buttons »
- Sous la balise « configuration », ajouter :
<event key="ticket.close" code="ticket.close"/>
- Sauvegarder
Relancez Pastèque pour que le changement soit pris en compte
Empêcher l’encaissement lors d’un pré-paiement si le client n’est pas défini
[modifier | modifier le wikicode]Ce script pour le logiciel Pastèque interdit de passer à l’encaissement si le client n’est pas sélectionné quand un des produits du ticket est un prépaiement.
Dans Tickets.Buttons ajouter :
<event key="ticket.total" code="event.PrepaidRequiresCustomer"/>
Créer une ressource event.PrepaidRequiresCustomer et mettre le code suivant :
import fr.pasteque.pos.forms.DataLogicSales;
import fr.pasteque.pos.ticket.ProductInfoExt;
import fr.pasteque.pos.ticket.TicketLineInfo;
DataLogicSales logic = new DataLogicSales();
for( int i = 0; i < ticket.getLinesCount(); i++ ) {
line = ticket.getLine( i );
product = logic.getProductInfo( line.getProductID() );
productCategory = product.getCategoryID();
customer = ticket.getCustomer();
if(productCategory.equals("-1")) {
if(customer == null){
javax.swing.JOptionPane.showMessageDialog(null, "Vous devez choisir un client pour savoir à qui va le prépaiement", "Customer Warning", JOptionPane.WARNING_MESSAGE);
return "Revenir en arrière";
}
}
}
Windows
[modifier | modifier le wikicode]Sauvegarde
[modifier | modifier le wikicode]Ce script exporte une base de données MySQL (sous la forme d'un fichier dump .sql), la compresse et l’envoie vers un serveur FTP pour la sauvegarder
@echo off
REM 7za.exe et mysqldump.exe doivent se trouver a la racine du ftp pour pouvoir être téléchargés
REM Définition du dossier dans lequel le script va travailler
set Folder=
REM Paramétrage des informations de connexion au serveur FTP
set FtpHost=
set FtpUser=
set FtpPass=
REM Paramétrage des informations de connexion à la base de donnée MySQL et de la base à sauvegarder
set DatabaseUser=
set DatabasePass=
set DatabaseName=
REM Creation de la variable DateTime et modification de celle-ci afin de pouvoir l utiliser dans un nom de fichier
set DateTime=%date%_%time%
set DateTime=%DateTime: =_%
set DateTime=%DateTime::=%
set DateTime=%DateTime:/=_%
set DateTime=%DateTime:.=_%
set DateTime=%DateTime:,=_%
REM Définition des variables pour les différents répertoires et fichiers utilises par le script
set TempFolder=%Folder%TEMP
set DestinationFolder=%Folder%ToSend
set LogFolder=%Folder%Log
set SQLSave=%Tempfolder%%USERNAME%_%DatabaseName%_%DateTime%.sql
set BakFile=%TempFolder%%USERNAME%_%DatabaseName%_%DateTime%.BAK
set ZipFile=%TempFolder%%USERNAME%_%DatabaseName%_%DateTime%.7z
set SevenExe=%TempFolder%7za.exe
set SQLDump=%TempFolder%mysqldump.exe
set LogSQL=%LogFolder%logsql.txt
REM Vérification de l'existence des répertoires et fichiers nécessaires et création si besoin
IF NOT EXIST %Folder% mkdir %Folder%
IF NOT EXIST %TempFolder% mkdir %Folder%TEMP
IF NOT EXIST %DestinationFolder% mkdir %Folder%ToSend
IF NOT EXIST %LogFolder% mkdir %Folder%Log
IF NOT EXIST %LogSQL% echo Fichier Log SQL > %LogFolder%logsql.txt
REM Téléchargement de 7z + MySQLDump depuis le serveur FTP
echo %SevenExe%
IF EXIST "%SevenExe%" AND %SQLDump% GOTO 7zaExeExists
echo open %FtpHost% > ftpcmd.txt
echo user %FtpUser% %FtpPass% >> ftpcmd.txt
echo lcd "%TempFolder%" >> ftpcmd.txt
echo hash >> ftpcmd.txt
echo bin >> ftpcmd.txt
echo get 7za.exe >> ftpcmd.txt
echo get mysqldump.exe >> ftpcmd.txt
echo bye >> ftpcmd.txt
ftp -i -n -v -s:ftpcmd.txt
:7zaExeExists
REM Export de la base
@%SQLDump% --user %DatabaseUser% --password="%DatabasePass%" %DatabaseName% > "%SQLSave%"
@if %ERRORLEVEL% EQU 0 echo Reussi_%DateTime% >> %LogSQL%
@if %ERRORLEVEL% GEQ 1 echo Echec_%DateTime% >> %LogSQL%
REM Compression
"%SevenExe%" a -mx5 "%ZipFile%" "%DestinationFolder%" "%SQLSave%"
REM Téléversement de la sauvegarde sur le serveur FTP
echo open %FtpHost% > ftpcmd.txt
echo user %FtpUser% %FtpPass% >> ftpcmd.txt
echo hash >> ftpcmd.txt
echo bin >> ftpcmd.txt
echo put "%ZipFile%" >> ftpcmd.txt
echo bye >> ftpcmd.txt
ftp -i -n -v -s:ftpcmd.txt
REM Ménage
del ftpcmd.txt
del "%SQLSave%"
del "%ZipFile%"
RD "%DestinationFolder%" /S /Q
shutdown -s -t 00