Patch level : 12.0 1080

Files correlati     : tp0.exe

Commento        :

Aggiunte query personalizzabili per cliente al trasferimento Pack.

Interno:
Bisogna definire nel paragrafo tp di ditta.ini  o studio.ini una variabile
tra le seguenti :
query personalizzabili
archivio                           variabile                     standard
CLIENTI/AGENTI                     Qtp0100Clienti                "SELECT Customers_Suppliers.*, Unit_Measure.UMDesc FROM Customers_Suppliers LEFT JOIN Unit_Measure
                                                                        ON (CurrencyCode = Unit_Measure.UMCode AND Unit_Measure.UMType='9') "
                                                                        WHERE (StatusFlag=1 OR StatusFlag=2 OR StatusFlag=3) AND " dietro viene messa una condizione per clienti o agenti
ARTICOLI                           Qtp0100Articoli               "SELECT Paper_Composition_Group.CompDesc FROM Mag_Existing_Article, Articles_Composition, Paper_Composition_Group
                                                                         WHERE (Mag_Existing_Article.ArtCode='" << key << "') AND (Mag_Existing_Article.ArticleCode=Articles_composition.ArticleCode) AND (Mag_Existing_Article.VariantCode=Articles_composition.VariantCode) AND
                                                                         (Articles_Composition.CompCode=Paper_Composition_Group.CompCode);"
INFORMAZIONI AGGIUNTIVE ARTICOLI   Qtp0100Extra_info_articoli    "SELECT Mag_Existing_Article.ArticleCustCode, Mag_Existing_Article.ArticleCode
                                                                         FROM Mag_Existing_Article WHERE Mag_Existing_Article.ArtCode='" << key << "';"
CONAI                              Qtp0100Conai                  "SELECT SubclassCode,Weight FROM Articles_environmentTax WHERE Articles_environmentTax.ArticleCode=" dietro viene messo il codice articolo
IVA                                Qtp0100IVA                    "SELECT * FROM IVA WHERE IVACode=#CODIVA;"
Composizione imballi               Qtp0100OrderPaperComp         "SELECT Paper_Composition_Group.CompDesc FROM CDoc_Rows, Paper_Composition_Group
                                                                         WHERE (CDoc_Rows.DocNumber=#NDOC) AND (CDoc_Rows.RowNumber=#NROW) AND (CDoc_Rows.CompCode=Paper_Composition_Group.CompCode);"; #NROW deve essere lasciato così
BOLLE                              Qtp010Bolle                   "SELECT DISTINCT PDdT_Header.DocCode, PDdT_Header.StoreDocType, PDdT_Header.DocRefNumber,PDdT_Header.DocDate, Store_Year.SyReferenceYear, PDdT_Header.CustSuppCode,
                                                                                  Customers_Suppliers.FlagCustSupp, Customers_Suppliers.CodContab, Customers_Suppliers.CategoryCode, Customers_Suppliers.ZoneCode,Customers_Suppliers_1.CodContab AS AgentCode,
                                                                                  PDdT_Header.Change, CAMPOCurrencies.UMDesc AS Currency,PDdT_Header.PaymentCode, PDdT_Header.ApplyEnvTax, PDdT_Header.DiscountOnPayment,
                                                                                  CausaliTrasporto.Code AS CodTrasporto, Porto.Code AS CodResa, CausaliTrasporto.Description1 AS TipoTrasporto,Porto.Description1 AS TipoResa, PDdT_Header.Appearance, PDdT_Header.GrossWeight, PDdT_Header.NetWeight,
                                                                                  PDdT_Header.ShiverNumber, (select case when PDdT_Header.BankDesc is null Or [PDdT_Header].[BankDesc]<>''then PDdT_Header.BankDesc else customers_suppliers.bankname end) AS BankDesc, PDdT_Header.CodIvaNI,
                                                                                  Customers_Suppliers_2.CustSuppCode AS DestCode, Customers_Suppliers_2.FlagCustSupp AS FlagDestCode, Customers_Suppliers_2.CodContab AS DestCodContab,Customers_Suppliers_2.TradeName1, Customers_Suppliers_2.Address, Customers_Suppliers_2.Locality,
                                                                                  Customers_Suppliers_2.ZipCode, Customers_Suppliers_2.Region, PDdT_Row.DocRow, PDdT_Row.ArtCode,PDdT_Row.ArtDesc, PDdT_Row.CDocNumber, PDdT_Row.CDocRow,CDoc_Rows.CustReference AS RowCustReference, CDoc_Header.CustReference, PDdT_Row.Provv,
                                                                                  PDdT_Row.DiscountRowDesc, CDoc_Header.DocDate AS OrderDate,PDdT_Row.Quantity, Unit_Measure.UMDesc, PDdT_Row.Quantity1, Unit_Measure_1.UMDesc AS UMDesc1,PDdT_Row.Quantity2, Unit_Measure_2.UMDesc AS UMDesc2, PDdT_Row.AdvanceSale, PDdT_Row.Price,
                                                                                   PDdT_Row.DefPrice, PDdT_Row.PriceNet, PDdT_Row.PriceNetDef, PDdT_Row.AmountNet, PDdT_Row.AmountNetDef,PDdT_Row.Amount, PDdT_Row.AmountDef, PDdT_Row.FlagUMPrice, IVA.IVACode, PDdT_Row.AccountCode, "
                                                                                   PDdT_Row.AccountSubCode, PDdT_Row.WeightETUnit, PDdT_Row.ClassCode, PDdT_Row.SubclassCode,PDdT_Row.DDTRowType, PDdT_Header.StatusFlag, PDdT_Row.Report, PDdT_Row.FamilyCode,
                                                                                  Mag_Existing_Article.ArtType, Mag_Existing_Article.Height, Mag_Existing_Article.Width, Mag_Existing_Article.Lenght,(select case when [Modalità Fornitura Bancali].[Value1] is null then 1 else [Modalità Fornitura Bancali].[Value1] end) AS FornituraBancali,
                                                                                  PDdT_Header.InvoicingType, PDdT_Header.DocProvv, PDdT_Header.ReceiptBook
                                                                                  FROM ((((((PDdT_Header LEFT JOIN Customers_Suppliers ON PDdT_Header.CustSuppCode = Customers_Suppliers.CustSuppCode)
                                                                                  LEFT JOIN Unit_Measure AS CAMPOCurrencies ON (CAMPOCurrencies.UMcode=PDdT_Header.CurrencyCode AND CAMPOCurrencies.UMType='9')
                                                                                  LEFT JOIN Customers_Suppliers AS Customers_Suppliers_1 ON PDdT_Header.AgentCode = Customers_Suppliers_1.CustSuppCode)
                                                                                  LEFT JOIN Porto ON PDdT_Header.PortCode = Porto.Code) "
                                                                                  LEFT JOIN Store_Year ON PDdT_Header.DocYear = Store_Year.SyCode) "
                                                                                  LEFT JOIN Customers_Suppliers AS Customers_Suppliers_2 ON PDdT_Header.DestCode = Customers_Suppliers_2.CustSuppCode) "
                                                                                  LEFT JOIN CausaliTrasporto ON PDdT_Header.DocCausalCode = CausaliTrasporto.Code)
                                                                                  RIGHT JOIN (Mag_Existing_Article RIGHT JOIN ((CDoc_Header RIGHT JOIN (((IVA RIGHT JOIN (((CDoc_Rows RIGHT JOIN PDdT_Row ON (CDoc_Rows.DocNumber = PDdT_Row.CDocNumber)AND (CDoc_Rows.RowNumber = PDdT_Row.CDocRow))
                                                                                  LEFT JOIN Unit_Measure ON PDdT_Row.UMQty = Unit_Measure.UMCode)
                                                                                  LEFT JOIN [Modalità Fornitura Bancali] ON PDdT_Row.DeliveryPalletType = [Modalità Fornitura Bancali].Code)ON IVA.IVACode = PDdT_Row.IVACode) LEFT JOIN Unit_Measure AS Unit_Measure_1 ON PDdT_Row.UMQta1 = Unit_Measure_1.UMCode)
                                                                                  LEFT JOIN Unit_Measure AS Unit_Measure_2 ON PDdT_Row.UMQta2 = Unit_Measure_2.UMCode)ON CDoc_Header.DocNumber = CDoc_Rows.DocNumber)
                                                                                  LEFT JOIN CDoc_Rows_Detail ON (CDoc_Rows.RowNumber = CDoc_Rows_Detail.RowNumber) AND (CDoc_Rows.DocNumber = CDoc_Rows_Detail.DocNumber))ON Mag_Existing_Article.ArtCode = PDdT_Row.ArtCode) ON PDdT_Header.DocCode = PDdT_Row.DocCode
                                                                                  WHERE (((PDdT_Row.DDTRowType)='0' Or (PDdT_Row.DDTRowType)='2') AND ((PDdT_Header.StatusFlag)='1' OR (PDdT_Header.StatusFlag)='2' Or (PDdT_Header.StatusFlag)='3') AND ((select case when [Modalità Fornitura Bancali].[Value1] is null then 1 else [Modalità Fornitura Bancali].[Value1] end)=1) AND ((PDdT_Header.InvoicingType) Is Not Null) AND ((PDdT_Header.DocProvv)<>-1))
                                                                                  ORDER BY PDdT_Header.DocRefNumber, PDdT_Row.DocRow;"
This commit is contained in:
Alessandro Bonazzi 2021-09-23 16:08:32 +02:00
parent 630dc0fe79
commit 3d623b2c72
2 changed files with 74 additions and 9 deletions

View File

@ -320,6 +320,9 @@ bool TPack_clifo::trasferisci()
"FROM Customers_Suppliers LEFT JOIN Unit_Measure "
"ON (CurrencyCode = Unit_Measure.UMCode AND Unit_Measure.UMType='9') "
"WHERE (StatusFlag=1 OR StatusFlag=2 OR StatusFlag=3) AND ";
get_custom_query("tp0100", "Clienti", query);
if (_only_agenti)
query << "(FlagCustSupp='A')";
else

View File

@ -4,6 +4,47 @@
#include "../mg/codcorr.h"
#include "../include/conart.h"
// query personalizzabili
// archivio variabile standard
// CLIENTI/AGENTI Qtp0100Clienti "SELECT Customers_Suppliers.*, Unit_Measure.UMDesc FROM Customers_Suppliers LEFT JOIN Unit_Measure
// ON (CurrencyCode = Unit_Measure.UMCode AND Unit_Measure.UMType='9') "
// WHERE (StatusFlag=1 OR StatusFlag=2 OR StatusFlag=3) AND " dietro viene messa una condizione per clienti o agenti
// ARTICOLI Qtp0100Articoli "SELECT Paper_Composition_Group.CompDesc FROM Mag_Existing_Article, Articles_Composition, Paper_Composition_Group
// WHERE (Mag_Existing_Article.ArtCode='" << key << "') AND (Mag_Existing_Article.ArticleCode=Articles_composition.ArticleCode) AND (Mag_Existing_Article.VariantCode=Articles_composition.VariantCode) AND
// (Articles_Composition.CompCode=Paper_Composition_Group.CompCode);"
// INFORMAZIONI AGGIUNTIVE ARTICOLI Qtp0100Extra_info_articoli "SELECT Mag_Existing_Article.ArticleCustCode, Mag_Existing_Article.ArticleCode
// FROM Mag_Existing_Article WHERE Mag_Existing_Article.ArtCode='" << key << "';"
// CONAI Qtp0100Conai "SELECT SubclassCode,Weight FROM Articles_environmentTax WHERE Articles_environmentTax.ArticleCode=" dietro viene messo il codice articolo
// IVA Qtp0100IVA "SELECT * FROM IVA WHERE IVACode=#CODIVA;"
// Composizione imballi Qtp0100OrderPaperComp "SELECT Paper_Composition_Group.CompDesc FROM CDoc_Rows, Paper_Composition_Group
// WHERE (CDoc_Rows.DocNumber=#NDOC) AND (CDoc_Rows.RowNumber=#NROW) AND (CDoc_Rows.CompCode=Paper_Composition_Group.CompCode);"; #NROW deve essere lasciato così
// BOLLE Qtp010Bolle "SELECT DISTINCT PDdT_Header.DocCode, PDdT_Header.StoreDocType, PDdT_Header.DocRefNumber,PDdT_Header.DocDate, Store_Year.SyReferenceYear, PDdT_Header.CustSuppCode,
// Customers_Suppliers.FlagCustSupp, Customers_Suppliers.CodContab, Customers_Suppliers.CategoryCode, Customers_Suppliers.ZoneCode,Customers_Suppliers_1.CodContab AS AgentCode,
// PDdT_Header.Change, CAMPOCurrencies.UMDesc AS Currency,PDdT_Header.PaymentCode, PDdT_Header.ApplyEnvTax, PDdT_Header.DiscountOnPayment,
// CausaliTrasporto.Code AS CodTrasporto, Porto.Code AS CodResa, CausaliTrasporto.Description1 AS TipoTrasporto,Porto.Description1 AS TipoResa, PDdT_Header.Appearance, PDdT_Header.GrossWeight, PDdT_Header.NetWeight,
// PDdT_Header.ShiverNumber, (select case when PDdT_Header.BankDesc is null Or [PDdT_Header].[BankDesc]<>''then PDdT_Header.BankDesc else customers_suppliers.bankname end) AS BankDesc, PDdT_Header.CodIvaNI,
// Customers_Suppliers_2.CustSuppCode AS DestCode, Customers_Suppliers_2.FlagCustSupp AS FlagDestCode, Customers_Suppliers_2.CodContab AS DestCodContab,Customers_Suppliers_2.TradeName1, Customers_Suppliers_2.Address, Customers_Suppliers_2.Locality,
// Customers_Suppliers_2.ZipCode, Customers_Suppliers_2.Region, PDdT_Row.DocRow, PDdT_Row.ArtCode,PDdT_Row.ArtDesc, PDdT_Row.CDocNumber, PDdT_Row.CDocRow,CDoc_Rows.CustReference AS RowCustReference, CDoc_Header.CustReference, PDdT_Row.Provv,
// PDdT_Row.DiscountRowDesc, CDoc_Header.DocDate AS OrderDate,PDdT_Row.Quantity, Unit_Measure.UMDesc, PDdT_Row.Quantity1, Unit_Measure_1.UMDesc AS UMDesc1,PDdT_Row.Quantity2, Unit_Measure_2.UMDesc AS UMDesc2, PDdT_Row.AdvanceSale, PDdT_Row.Price,
// PDdT_Row.DefPrice, PDdT_Row.PriceNet, PDdT_Row.PriceNetDef, PDdT_Row.AmountNet, PDdT_Row.AmountNetDef,PDdT_Row.Amount, PDdT_Row.AmountDef, PDdT_Row.FlagUMPrice, IVA.IVACode, PDdT_Row.AccountCode, "
// PDdT_Row.AccountSubCode, PDdT_Row.WeightETUnit, PDdT_Row.ClassCode, PDdT_Row.SubclassCode,PDdT_Row.DDTRowType, PDdT_Header.StatusFlag, PDdT_Row.Report, PDdT_Row.FamilyCode,
// Mag_Existing_Article.ArtType, Mag_Existing_Article.Height, Mag_Existing_Article.Width, Mag_Existing_Article.Lenght,(select case when [Modalità Fornitura Bancali].[Value1] is null then 1 else [Modalità Fornitura Bancali].[Value1] end) AS FornituraBancali,
// PDdT_Header.InvoicingType, PDdT_Header.DocProvv, PDdT_Header.ReceiptBook
// FROM ((((((PDdT_Header LEFT JOIN Customers_Suppliers ON PDdT_Header.CustSuppCode = Customers_Suppliers.CustSuppCode)
// LEFT JOIN Unit_Measure AS CAMPOCurrencies ON (CAMPOCurrencies.UMcode=PDdT_Header.CurrencyCode AND CAMPOCurrencies.UMType='9')
// LEFT JOIN Customers_Suppliers AS Customers_Suppliers_1 ON PDdT_Header.AgentCode = Customers_Suppliers_1.CustSuppCode)
// LEFT JOIN Porto ON PDdT_Header.PortCode = Porto.Code) "
// LEFT JOIN Store_Year ON PDdT_Header.DocYear = Store_Year.SyCode) "
// LEFT JOIN Customers_Suppliers AS Customers_Suppliers_2 ON PDdT_Header.DestCode = Customers_Suppliers_2.CustSuppCode) "
// LEFT JOIN CausaliTrasporto ON PDdT_Header.DocCausalCode = CausaliTrasporto.Code)
// RIGHT JOIN (Mag_Existing_Article RIGHT JOIN ((CDoc_Header RIGHT JOIN (((IVA RIGHT JOIN (((CDoc_Rows RIGHT JOIN PDdT_Row ON (CDoc_Rows.DocNumber = PDdT_Row.CDocNumber)AND (CDoc_Rows.RowNumber = PDdT_Row.CDocRow))
// LEFT JOIN Unit_Measure ON PDdT_Row.UMQty = Unit_Measure.UMCode)
// LEFT JOIN [Modalità Fornitura Bancali] ON PDdT_Row.DeliveryPalletType = [Modalità Fornitura Bancali].Code)ON IVA.IVACode = PDdT_Row.IVACode) LEFT JOIN Unit_Measure AS Unit_Measure_1 ON PDdT_Row.UMQta1 = Unit_Measure_1.UMCode)
// LEFT JOIN Unit_Measure AS Unit_Measure_2 ON PDdT_Row.UMQta2 = Unit_Measure_2.UMCode)ON CDoc_Header.DocNumber = CDoc_Rows.DocNumber)
// LEFT JOIN CDoc_Rows_Detail ON (CDoc_Rows.RowNumber = CDoc_Rows_Detail.RowNumber) AND (CDoc_Rows.DocNumber = CDoc_Rows_Detail.DocNumber))ON Mag_Existing_Article.ArtCode = PDdT_Row.ArtCode) ON PDdT_Header.DocCode = PDdT_Row.DocCode
// WHERE (((PDdT_Row.DDTRowType)='0' Or (PDdT_Row.DDTRowType)='2') AND ((PDdT_Header.StatusFlag)='1' OR (PDdT_Header.StatusFlag)='2' Or (PDdT_Header.StatusFlag)='3') AND ((select case when [Modalità Fornitura Bancali].[Value1] is null then 1 else [Modalità Fornitura Bancali].[Value1] end)=1) AND ((PDdT_Header.InvoicingType) Is Not Null) AND ((PDdT_Header.DocProvv)<>-1))
// ORDER BY PDdT_Header.DocRefNumber, PDdT_Row.DocRow;"
// Assegna sottocategoria e peso di una classe CONAI solo se non vuoti
bool TArticolo_pack::set_conai(const TString& scat, const real& weight)
{
@ -59,14 +100,18 @@ public:
bool TCache_art::update_paper_composition(const char* key, TArticolo_pack& art)
{
TString qry(512);
qry = query_header();
qry << "SELECT Paper_Composition_Group.CompDesc\n"
<< "FROM Mag_Existing_Article, Articles_Composition, Paper_Composition_Group\n"
<< "WHERE (Mag_Existing_Article.ArtCode='" << key << "') AND "
<< "(Mag_Existing_Article.ArticleCode=Articles_composition.ArticleCode) AND (Mag_Existing_Article.VariantCode=Articles_composition.VariantCode) AND "
<< "(Articles_Composition.CompCode=Paper_Composition_Group.CompCode);";
get_custom_query("tp0100", "Articoli", qry);
TODBC_recordset paperset(qry);
bool done = paperset.move_first();
if (done)
{
const TString& pc = paperset.get(0u).as_string(); // Paper composition
@ -79,11 +124,15 @@ bool TCache_art::update_paper_composition(const char* key, TArticolo_pack& art)
int TCache_art::get_extra_info(const char* key, TArticolo_pack& art)
{
TString qry(512), article_code;
qry = query_header();
qry << "SELECT Mag_Existing_Article.ArticleCustCode, Mag_Existing_Article.ArticleCode\n"
<< "FROM Mag_Existing_Article\n"
<< "WHERE Mag_Existing_Article.ArtCode='" << key << "';";
get_custom_query("tp0100", "Extra_info_articoli", qry);
TODBC_recordset artset(qry);
int info = artset.move_first() ? 1 : 0;
if (info)
{
@ -119,10 +168,15 @@ int TCache_art::get_extra_info(const char* key, TArticolo_pack& art)
if (article_code.full()) // Ho trovato un articolo di magazzino, carico CONAI info
{
qry = query_header();
qry.cut(0);
qry << "SELECT SubclassCode,Weight\n"
<< "FROM Articles_environmentTax\n"
<< "WHERE Articles_environmentTax.ArticleCode=" << article_code << ';';
<< "FROM Articles_environmentTax\n"
<< "WHERE Articles_environmentTax.ArticleCode=";
get_custom_query("tp0100", "Conai", qry);
qry << article_code << ';';
TODBC_recordset envtax(qry);
art.reset_conai();
@ -465,7 +519,11 @@ const TString& TPack_ddt::get_codice_iva(const TDate& datadoc)
TString8 codiva; // Codice IVA di PACK da decodificare!
TString qry(256);
qry << query_header() << "SELECT * FROM IVA WHERE IVACode=#CODIVA";
qry << "SELECT * FROM IVA WHERE IVACode=#CODIVA;";
get_custom_query("tp0100", "IVA", qry);
TODBC_recordset iva(qry);
const TString& codivani = get_str("CodIvaNI");
@ -512,11 +570,13 @@ bool TPack_ddt::get_paper_from_order(TString& desc) const
return false;
TString qry(256);
qry << query_header();
qry << "SELECT Paper_Composition_Group.CompDesc\n"
"FROM CDoc_Rows, Paper_Composition_Group\n"
"WHERE (CDoc_Rows.DocNumber=#NDOC)AND(CDoc_Rows.RowNumber=#NROW)"
"AND(CDoc_Rows.CompCode=Paper_Composition_Group.CompCode)";
"AND(CDoc_Rows.CompCode=Paper_Composition_Group.CompCode);";
get_custom_query("tp0100", "OrderPaperComp", qry);
TODBC_recordset paper(qry);
paper.set_var("#NDOC", TVariant(ndoc));
@ -589,9 +649,11 @@ bool TPack_ddt::trasferisci()
"((PDdT_Header.StatusFlag)='1' OR (PDdT_Header.StatusFlag)='2' Or (PDdT_Header.StatusFlag)='3') AND "
"((select case when [Modalità Fornitura Bancali].[Value1] is null then 1 else [Modalità Fornitura Bancali].[Value1] end)=1) AND "
"((PDdT_Header.InvoicingType) Is Not Null) AND ((PDdT_Header.DocProvv)<>-1))"
"\nORDER BY PDdT_Header.DocRefNumber, PDdT_Row.DocRow"
"\nORDER BY PDdT_Header.DocRefNumber, PDdT_Row.DocRow;"
;
get_custom_query("tp0100", "Bolle", query);
if (_extended_discount)
{
const TFixed_string discount("PDdT_Row.DiscountRowDesc, ");