Patch level : 2.0 496

Files correlati     : pr0.exe pr0700b.msk pr1.exe pr1100.msk pr1100a.frm pr1300a.frm pr1300a.msk
Ricompilazione Demo : [ ]
Commento            :

GF20035
Le stampe vengono visualizzate, ma se vengono inviate alla stampante non
stampa nulla e poi uscendo dalle voci di menù appare il messaggio:
"PR1 questo programma ha eseguito un'operazione non valida e sarà terminato".

GF20036
Vengono riportati gli importi solo delle provvigioni da liquidare al
momento della fatturazione, mentre per quelli da liquidare al momento del
pagamento non viene riporatto nulla.

GF20037
Se clicco due volte sulla riga che riporata gli estremi della fattura sulla
quale la provvigione è stata calcolata i tasti ANNULLA / CONFERMA / ELIMINA
non sono allineati correttamente.

GF20038
La % di provvigione che mi presenta nella relativa colonna in riferimento
in corrispondenza della rata non numerata non è corretta. (allego l'area
dati d'esempio sulla quale si può notare l'errore).
Secondo me dovrebbe essere zero


git-svn-id: svn://10.65.10.50/trunk@11233 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-06-12 09:05:46 +00:00
parent 51dad27c7d
commit fbce256e5d
8 changed files with 90 additions and 220 deletions

View File

@ -151,7 +151,7 @@ bool TGestione_provv_app::ndoc_handler(TMask_field& f, KEY key)
ndoc = ot.get_long(2); ndoc = ot.get_long(2);
other_key.format("%4d%4s%7ld",anno,(const char*)codnum,ndoc); other_key.format("%4d%4s%7ld",anno,(const char*)codnum,ndoc);
if (key == other_key) if (key == other_key)
return f.error_box("Non e' possibile inserire due documenti con lo stessa chiave"); return f.error_box("Non e' possibile inserire due documenti con la stessa chiave");
} }
} }
return calcola_rate_handler(f, key); return calcola_rate_handler(f, key);

View File

@ -93,7 +93,7 @@ ENDMASK
// Maschera spreadsheet dei documenti // Maschera spreadsheet dei documenti
PAGE "" -1 -1 78 11 PAGE "" -1 -1 78 13
NUMBER F_ANNO 4 NUMBER F_ANNO 4
BEGIN BEGIN
@ -149,7 +149,7 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
NUMBER F_CAMBIO 18 2 NUMBER F_CAMBIO 18 6
BEGIN BEGIN
PROMPT 25 4 "Cambio " PROMPT 25 4 "Cambio "
END END

View File

@ -1,10 +1,5 @@
#include <applicat.h> #include <applicat.h>
#include <config.h>
#include <mask.h> #include <mask.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <utility.h>
#include <form.h> #include <form.h>
#include "agenti.h" #include "agenti.h"
@ -12,57 +7,40 @@
class TStampa_agenti : public TSkeleton_application class TStampa_agenti : public TSkeleton_application
{ {
TArray _files;
TMask * _mask;
TForm * _form;
int _codicees;
bool _raggmag;
TString _daart,_aart,_damag,_amag;
TDate _dadata,_adata;
protected: protected:
virtual void main_loop(); virtual void main_loop();
public: public:
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
virtual bool check_autorization() const virtual bool check_autorization() const { return FALSE; }
{return FALSE;}
}; };
void TStampa_agenti::main_loop() void TStampa_agenti::main_loop()
{ {
_files.add(new TLocalisamfile(LF_AGENTI)); open_files(LF_TAB, LF_AGENTI, LF_CLIFO, 0);
_files.add(new TLocalisamfile(LF_CLIFO));
_files.add(new TLocalisamfile(LF_TAB));
TRectype darec(LF_AGENTI),arec(LF_AGENTI); TMask mask("pr1100");
_mask = new TMask("pr1100"); while (mask.run() == K_ENTER)
while (_mask->run() == K_ENTER) { {
_form = new TForm("pr1100a", ""); TForm form("pr1100a");
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor(); TCursor& cur = *form.cursor();
TString sortexp; TRectype darec(LF_AGENTI),arec(LF_AGENTI);
TString filter; if (mask.get(F_ORDINAMENTO)[0]=='C')
darec.zero(' ');
arec.zero(' ');
if (*_mask->get(F_ORDINAMENTO)=='C')
{ {
darec.put(AGE_CODAGE,_mask->get(F_DAAGE)); darec.put(AGE_CODAGE,mask.get(F_DAAGE));
arec.put(AGE_CODAGE,_mask->get(F_AAGE)); arec.put(AGE_CODAGE,mask.get(F_AAGE));
cur.setkey(1); cur.setkey(1);
} }
else else
{ {
darec.put(AGE_RAGSOC,_mask->get(F_DADES)); darec.put(AGE_RAGSOC,mask.get(F_DADES));
arec.put(AGE_RAGSOC,_mask->get(F_ADES)); arec.put(AGE_RAGSOC,mask.get(F_ADES));
cur.setkey(2); cur.setkey(2);
} }
cur.setregion(darec,arec); cur.setregion(darec,arec);
_form->print(); form.print();
delete _form;
} // while true } // while true
delete _mask;
} }
int pr1100(int argc, char* argv[]) int pr1100(int argc, char* argv[])

View File

@ -1,32 +1,32 @@
#include "pr1100.h" #include "pr1100.h"
PAGE "Stampa agenti" -1 -1 78 20
PAGE "Stampa agenti" -1 -1 68 7
LISTBOX F_ORDINAMENTO 16 LISTBOX F_ORDINAMENTO 16
BEGIN BEGIN
PROMPT 2 5 "Ordinamento per " PROMPT 2 1 "Ordinamento "
FLAGS "U" ITEM "C|Codice"
ITEM "C|Codice" MESSAGE HIDE,G_RAGSOC@|SHOW,G_CODAGE@
MESSAGE HIDE,G_RAGSOC@|SHOW,G_CODAGE@ ITEM "R|Ragione sociale"
ITEM "R|Ragione sociale" MESSAGE SHOW,G_RAGSOC@|HIDE,G_CODAGE@
MESSAGE SHOW,G_RAGSOC@|HIDE,G_CODAGE@
END END
STRING F_DAAGE 6 STRING F_DAAGE 6
BEGIN BEGIN
PROMPT 2 7 "Dall'agente " PROMPT 2 3 "Dall'agente "
FLAGS "U" FLAGS "U"
USE LF_AGENTI USE LF_AGENTI
INPUT CODAGE F_DAAGE INPUT CODAGE F_DAAGE
DISPLAY "Codice" CODAGE DISPLAY "Codice" CODAGE
DISPLAY "Descr@50" RAGSOC DISPLAY "Descrizione@50" RAGSOC
OUTPUT F_DAAGE CODAGE OUTPUT F_DAAGE CODAGE
GROUP G_CODAGE GROUP G_CODAGE
END END
STRING F_AAGE 6 STRING F_AAGE 6
BEGIN BEGIN
PROMPT 2 9 " all'agente " PROMPT 2 4 " all'agente "
FLAGS "U" FLAGS "U"
COPY USE F_DAAGE COPY USE F_DAAGE
INPUT CODAGE F_AAGE INPUT CODAGE F_AAGE
COPY DISPLAY F_DAAGE COPY DISPLAY F_DAAGE
@ -36,28 +36,28 @@ END
STRING F_DADES 50 STRING F_DADES 50
BEGIN BEGIN
PROMPT 2 7 "Dall'agente " PROMPT 2 3 "Dall'agente "
FLAGS "U" FLAGS "U"
USE LF_AGENTI KEY 2 USE LF_AGENTI KEY 2
INPUT RAGSOC F_DADES INPUT RAGSOC F_DADES
DISPLAY "Descr@50" RAGSOC DISPLAY "Descrizione@50" RAGSOC
DISPLAY "Codice" CODAGE DISPLAY "Codice" CODAGE
OUTPUT F_DADES RAGSOC OUTPUT F_DADES RAGSOC
GROUP G_RAGSOC GROUP G_RAGSOC
END END
STRING F_ADES 50 STRING F_ADES 50
BEGIN BEGIN
PROMPT 2 9 " all'agente " PROMPT 2 4 " all'agente "
FLAGS "U" FLAGS "U"
COPY USE F_DADES COPY USE F_DADES
INPUT RAGSOC F_ADES INPUT RAGSOC F_ADES
COPY DISPLAY F_DADES COPY DISPLAY F_DADES
OUTPUT F_ADES RAGSOC OUTPUT F_ADES RAGSOC
GROUP G_RAGSOC GROUP G_RAGSOC
END END
BUTTON DLG_OK 10 2 BUTTON DLG_PRINT 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
@ -67,6 +67,6 @@ BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,63 +1,45 @@
#include "pr0500a.h" #include "pr0500a.h"
USE LF_AGENTI KEY 1
JOIN LF_CLIFO INTO TIPOCF=="F" CODCF==CODFORN USE LF_AGENTI
JOIN LF_CLIFO INTO TIPOCF=="F" CODCF==CODFORN
END END
DESCRIPTION SECTION HEADER ODD 4
BEGIN
END
GENERAL STRINGA 1 50
BEGIN
OFFSET 0 0
FONT "Courier New"
SIZE 10
CARATTERE "X"
INIZIALE 5 1
FINALE 133
END
SECTION HEADER ODD 5
STRINGA 1 40 1
BEGIN BEGIN
KEY "nome ditta" KEY "nome ditta"
PROMPT 1 1 "Ditta " PROMPT 1 1 ""
MESSAGE _DITTA, !RAGSOC MESSAGE _DITTA, !RAGSOC
END END
STRINGA 2 10 STRINGA 2 10
BEGIN BEGIN
KEY "Data" KEY "Data"
PROMPT 120 1 "Data " PROMPT 56 1 ""
MESSAGE _TODAY MESSAGE _TODAY
END END
NUMERO 3 7 NUMERO 3 4
BEGIN BEGIN
KEY "Nr. pagina" KEY "Nr. pagina"
PROMPT 137 1 "Pagina " PROMPT 72 1 "Pag."
MESSAGE _PAGENO MESSAGE _PAGENO
END END
NUMERO 4 32 NUMERO 4 32
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 45 2 "Stampa archivio agenti" PROMPT 31 2 "@bStampa archivio agenti"
END END
STRINGA 5 146 STRINGA 5 146
BEGIN BEGIN
KEY "Separatore (iniziale)" KEY "Separatore (iniziale)"
PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------------------------" PROMPT 1 3 "_______________________________________________________________________________"
END END
END END
SECTION BODY ODD 12 SECTION BODY ODD 12
LISTBOX F_TIPO 20 LISTBOX F_TIPO 20

View File

@ -1,6 +1,6 @@
#include <mask.h>
#include <applicat.h> #include <applicat.h>
#include <form.h> #include <form.h>
#include <mask.h>
#include <printer.h> #include <printer.h>
#include <progind.h> #include <progind.h>
@ -10,39 +10,38 @@
class TStampa_schedeprovv_form : public TForm class TStampa_schedeprovv_form : public TForm
{ {
TString80 _basecalcolo; TString _basecalcolo;
TPagamento _pagamento; TPagamento _pagamento;
protected: protected:
virtual bool validate(TForm_item &, TToken_string &); virtual bool validate(TForm_item &, TToken_string &);
public: public:
void set_basecalcolo(const TString80& s) { _basecalcolo = s; } void set_basecalcolo(const TString& s) { _basecalcolo = s; }
TStampa_schedeprovv_form(const char* name); TStampa_schedeprovv_form(const char* name);
virtual ~TStampa_schedeprovv_form(){}; virtual ~TStampa_schedeprovv_form(){};
}; };
TStampa_schedeprovv_form::TStampa_schedeprovv_form(const char* name): TForm() TStampa_schedeprovv_form::TStampa_schedeprovv_form(const char* name) : TForm(name)
{ { }
read(name);
}
bool TStampa_schedeprovv_form::validate(TForm_item &cf, TToken_string &s) bool TStampa_schedeprovv_form::validate(TForm_item &cf, TToken_string &s)
{ {
const TString code(s.get(0)); const TString code = s.get(0);
if (code == "_BASECALCOLO")
if (code == "_BASECALCOLO")
{ {
real valore; real valore;
if (_basecalcolo.empty()) if (_basecalcolo.empty())
{ {
const real cambio = TForm::find_field('B', odd_page, 666).get(); const real cambio = TForm::find_field('B', odd_page, 666).get();
valore = TForm::cursor()->relation()->curr().get_real(PROV_IMPRATA)*cambio; valore = TForm::cursor()->curr().get_real(PROV_IMPRATA)*cambio;
} }
else else
{ {
const int nriga = TForm::cursor()->relation()->curr().get_int(PROV_NRIGA); const int nriga = TForm::cursor()->curr().get_int(PROV_NRIGA);
if (nriga == 1) if (nriga == 1)
{ {
TDocumento doc(TForm::cursor()->relation()->curr(LF_DOC)); TDocumento doc(TForm::cursor()->curr(LF_DOC));
_pagamento = doc.pagamento(); _pagamento = doc.pagamento();
real importo = doc.get(_basecalcolo); real importo = doc.get(_basecalcolo);
if (doc.tipo().nota_credito()) if (doc.tipo().nota_credito())
@ -50,8 +49,8 @@ bool TStampa_schedeprovv_form::validate(TForm_item &cf, TToken_string &s)
_pagamento.set_total(importo,0,0); _pagamento.set_total(importo,0,0);
_pagamento.set_rate_auto(); _pagamento.set_rate_auto();
} }
const int nrata = TForm::cursor()->relation()->curr().get_int(PROV_NRATA); const int nrata = TForm::cursor()->curr().get_int(PROV_NRATA);
if (nrata <= _pagamento.n_rate() && nrata > 0) if (nrata > 0 && nrata <= _pagamento.n_rate())
valore = _pagamento.importo_rata(nrata-1); valore = _pagamento.importo_rata(nrata-1);
else else
valore = ZERO; valore = ZERO;
@ -63,7 +62,6 @@ bool TStampa_schedeprovv_form::validate(TForm_item &cf, TToken_string &s)
class TStampa_schedeprovv : public TSkeleton_application class TStampa_schedeprovv : public TSkeleton_application
{ {
TMask * _m; TMask * _m;
void riporta_pagamenti(TCursor &cur); void riporta_pagamenti(TCursor &cur);
@ -75,11 +73,12 @@ protected:
bool TStampa_schedeprovv::create() bool TStampa_schedeprovv::create()
{ {
_m= new TMask ("pr1300a");
open_files(LF_CFVEN, LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, open_files(LF_CFVEN, LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG,
LF_SCONTI, LF_UMART, LF_TAB, LF_TABCOM, LF_CLIFO, LF_INDSP, LF_SCONTI, LF_UMART, LF_TAB, LF_TABCOM, LF_CLIFO, LF_INDSP,
LF_OCCAS, LF_PCON, LF_MOVMAG, LF_RMOVMAG, LF_MAG, LF_SVRIEP, LF_OCCAS, LF_PCON, LF_MOVMAG, LF_RMOVMAG, LF_MAG, LF_SVRIEP,
LF_AGENTI, LF_PERCPROV, LF_ATTIV, LF_CAUSALI, 0); LF_AGENTI, LF_PERCPROV, LF_ATTIV, LF_CAUSALI, 0);
_m= new TMask ("pr1300a");
return TSkeleton_application::create(); return TSkeleton_application::create();
} }

View File

@ -23,7 +23,6 @@ BEGIN
SIZE 7 SIZE 7
END END
SECTION HEADER ODD 7 SECTION HEADER ODD 7
STRINGA 1 40 1 STRINGA 1 40 1
@ -53,92 +52,6 @@ BEGIN
PROMPT 60 3 "Stampa schede di provvigione" PROMPT 60 3 "Stampa schede di provvigione"
END END
/*
STRINGA 5 146
BEGIN
KEY "Separatore (iniziale)"
PROMPT 1 4 "------------------------------------------------------------------------------------------------------------------------------------------------------"
END
*/
/*
STRINGA 3
BEGIN
KEY "Codice Agente "
PROMPT 2 2 ""
FIELD LF_AGENTI->CODAGE
END
STRINGA 4
BEGIN
KEY "Ragione sociale"
PROMPT 8 2 ""
FIELD LF_AGENTI->RAGSOC
END
STRINGA 5
BEGIN
KEY "Indirizzo"
PROMPT 2 3 ""
FLAGS "H"
FIELD A_CLIFO@->INDCF
MESSAGE COPY,7
END
STRINGA 6
BEGIN
KEY "Numero civico"
PROMPT 52 3 ""
FLAGS "H"
FIELD A_CLIFO@->CIVCF
MESSAGE APPEND,7
END
STRINGA 7
BEGIN
KEY "Indirizzo completo"
PROMPT 2 3 ""
END
STRINGA 8
BEGIN
KEY "C.A.P."
PROMPT 2 4 "C.A.P. "
FIELD A_CLIFO@->CAPCF
END
STRINGA 9
BEGIN
KEY "Localita'"
PROMPT 26 4 ""
FIELD A_CLIFO@->LOCALITACF
END
STRINGA 10
BEGIN
KEY "Comune"
PROMPT 2 5 ""
FLAGS "H"
FIELD A_COMUNI@->DENCOM
MESSAGE COPY,12
END
STRINGA 11
BEGIN
KEY "Provincia"
PROMPT 52 5 ""
FLAGS "H"
FIELD A_COMUNI@->PROVCOM
MESSAGE APPEND,12
END
STRINGA 12
BEGIN
KEY "Comune completo"
PROMPT 2 5 ""
END
*/
END END
SECTION BODY ODD 3 COLUMNWISE SECTION BODY ODD 3 COLUMNWISE
@ -296,7 +209,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
BEGIN BEGIN
KEY "FATTORE DI CONVERSIONE" KEY "FATTORE DI CONVERSIONE"
FLAGS "H" FLAGS "H"
MESSAGE _NUMEXPR,IF(CODVAL,CAMBIO,1) MESSAGE _STREXPR,IF(CODVAL=="",1,CAMBIO)
END END
SECTION RATA_DAPAGARE 1 1 1 STREXPR LF_PROVV->SALDATA!="X" SECTION RATA_DAPAGARE 1 1 1 STREXPR LF_PROVV->SALDATA!="X"
@ -315,7 +228,8 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
PROMPT 2 1 "del " PROMPT 2 1 "del "
FIELD LF_PROVV->DATASCAD FIELD LF_PROVV->DATASCAD
END END
STRINGA 3 6
STRINGA 3 6
BEGIN BEGIN
KEY "CODVAL" KEY "CODVAL"
PROMPT 3 1 "" PROMPT 3 1 ""
@ -338,13 +252,12 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
MESSAGE _NUMEXPR,LF_PROVV->IMPPROVV*#666 MESSAGE _NUMEXPR,LF_PROVV->IMPPROVV*#666
MESSAGE ADD,204 MESSAGE ADD,204
END END
NUMERO 105 6 NUMERO 105 6 2
BEGIN BEGIN
KEY "perc. provv." KEY "perc. provv."
PROMPT 6 1 "" PROMPT 6 1 ""
PICTURE "##@,@#" PICTURE "##@,@@"
MESSAGE _NUMEXPR,#104/#103*100 MESSAGE _NUMEXPR,IF(#103,#104*100/#103,0)
END END
VALUTA 106 15 VALUTA 106 15
BEGIN BEGIN
@ -423,8 +336,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
KEY "perc provv" KEY "perc provv"
PROMPT 6 1 "" PROMPT 6 1 ""
PICTURE "##@,@@" PICTURE "##@,@@"
MESSAGE _NUMEXPR,IF(#103==0,0,#104*100/#103) MESSAGE _NUMEXPR,IF(#103,#104*100/#103,0)
END END
VALUTA 106 15 VALUTA 106 15
BEGIN BEGIN
@ -491,7 +403,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
KEY "PERCENTUALE" KEY "PERCENTUALE"
prompt 6 1 "" prompt 6 1 ""
PICTURE "##@,@@" PICTURE "##@,@@"
MESSAGE _NUMEXPR,IF(#203==0,0,#204*100/#203) MESSAGE _NUMEXPR,IF(#203,#204*100/#203,0)
END END
VALUTA 206 15 VALUTA 206 15
BEGIN BEGIN
@ -567,8 +479,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 6 1 "" PROMPT 6 1 ""
PICTURE "##@,@@" PICTURE "##@,@@"
MESSAGE _NUMEXPR,IF(#303==0,0,#304*100/#303) MESSAGE _NUMEXPR,IF(#303,#304*100/#303,0)
END END
VALUTA 306 15 VALUTA 306 15
BEGIN BEGIN
@ -631,7 +542,7 @@ END // end clienti
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 6 2 "" PROMPT 6 2 ""
PICTURE "##@,@@" PICTURE "##@,@@"
MESSAGE _NUMEXPR,IF(#403==0,0,#404*100/#403) MESSAGE _NUMEXPR,IF(#403,#404*100/#403,0)
GROUP G_TOTAGE GROUP G_TOTAGE
END END

View File

@ -1,6 +1,6 @@
#include "pr1300a.h" #include "pr1300a.h"
PAGE "Stampa schede di provvigione" -1 -1 78 20 PAGE "Stampa schede di provvigione" -1 -1 78 18
STRING F_DAAGE 5 STRING F_DAAGE 5
BEGIN BEGIN
@ -115,7 +115,7 @@ BEGIN
//MESSAGE K_SPACE,F_ORDINAMENTO|K_SPACE,F_VAL2PRINT //MESSAGE K_SPACE,F_ORDINAMENTO|K_SPACE,F_VAL2PRINT
END END
BUTTON DLG_OK 10 2 BUTTON DLG_PRINT 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END