Grandi Pianure di personalizzazione? Auto-programmazione si applicano nei crediti verso clienti
Microsoft Great Plains è uno dei tre di Microsoft Business Solutions mid-market dei prodotti ERP: Great Plains, Solomon, Navision. Considerando che Great Plains è ora candidato molto buono per l'integrazione con il POS applicazione, come ad esempio Microsoft Retail Management System o RMS e Client Relation Systems, come ad esempio Microsoft CRM? vi è necessità comune in Great Plains personalizzazioni e integrazioni, in particolare a livello di MS SQL Server Transact query SQL e stored procedures.In questo piccolo articolo vi mostreremo come creare auto-applicazione di utilità, quando si integrano enorme numero di operazioni di vendita e dei pagamenti. Lavoreremo con RM20101? Crediti Open File e RM20201? Crediti Applicare Open File.Let 's vedere il codice SQL: declare @ curpmtamt numerico (19,5) declare @ curinvamt numerico (19,5) declare @ curpmtnum varchar (20) declare @ curinvnum varchar (20) declare @ curinvtype intdeclare @ @ curpmttype intdeclare maxid intdeclare @ counter int - Creare una tabella temporanea tablecreate # temp ([ID] int identità (1,1) primary key, CUSTNMBR varchar (15), INVNUM varchar (20), int INVTYPE, PMTNUM varchar (20), int PMTTYPE, INVAMT numerico (19,5), PMTAMT numerico (19,5), AMTAPPLIED numerico (19,5)) CREATE INDEX IDX_INVNUM su # temp (INVNUM) creare l'indice sulla IDX_PMTNUM # temp (PMTNUM) - Inserire inapplicata fatture e paymentsinsert in temp # (CUSTNMBR, INVNUM, INVTYPE, PMTNUM, PMTTYPE, INVAMT, PMTAMT, AMTAPPLIED) selectCUSTNMBR = a.CUSTNMBR, INVNUM = b.DOCNUMBR, INVTYPE = b.RMDTYPAL, PMTNUM = a.DOCNUMBR, PMTTYPE = a.RMDTYPAL, INVAMT = b.CURTRXAM, PMTAMT = a.CURTRXAM, AMTAPPLIED = RM20101 0from ajoin b RM20101 su (a.CUSTNMBR = b.CUSTNMBR) join c RM00101 su (a.CUSTNMBR = c.CUSTNMBR) wherea.RMDTYPAL in (7, 8, 9) andb.RMDTYPAL in (1, 3) anda.CURTRXAM 0 andb.CURTRXAM bya.custnmbr 0order, b.DOCDATE, a.DOCDATE, a.DOCNUMBR, b.DOCNUMBR-- un ciclo tra le recordselect @ maxid = max ([ID]) da tempselect # @ counter = @ 1while counter = @ curpmtamt) e (@ curpmtamt> 0) e (@ curinvamt> 0) - se l'importo della fattura è maggiore o uguale al amountbeginselect pagamento curinvamt = @ @ curinvamt - @ curpmtamt - restante importo della fattura - l'aggiornamento con l'importo che è applicata alla fattura corrente - l'attuale paymentupdate # tempsetAMTAPPLIED = @ curpmtamtwhere [ID] = @ counter - aggiornamento con la quantità di remainingupdate fattura tempsetINVAMT # = @ curinvamtwhereINVNUM = @ curinvnum andINVTYPE = @ curinvtype - aggiornamento con importo del pagamento remainingupdate # tempsetPMTAMT = 0wherePMTNUM = @ andPMTTYPE curpmtnum = @ curpmttypeendelse if (@ curinvamt 0) e (@ curinvamt> 0) - se l'importo della fattura è minore al amountbeginselect pagamento curpmtamt = @ @ curpmtamt - @ curinvamt - restante importo del pagamento - l'aggiornamento con l'importo che viene applicato alla fattura corrente - l'attuale paymentupdate # tempsetAMTAPPLIED = @ curinvamtwhere [ID] = @ counter - aggiornamento con la quantità di remainingupdate fattura # tempsetINVAMT = 0whereINVNUM = @ andINVTYPE curinvnum = @ curinvtype - aggiornamento con importo del pagamento remainingupdate # tempsetPMTAMT = @ @ curpmtamtwherePMTNUM = andPMTTYPE curpmtnum = @ curpmttypeend - Vai alla prossima recordselect @ counter = @ counter + 1END - aggiornare la tabella RM Apri con il corretto amountsupdateRM20101setCURTRXAM = b.INVAMTfromRM20101 ajoin # b temp (a.DOCNUMBR = b.INVNUM e a.RMDTYPAL = b.INVTYPE) updateRM20101setCURTRXAM = b.PMTAMTfromRM20101 ajoin # b temp (a.DOCNUMBR = b.PMTNUM e a.RMDTYPAL = b.PMTTYPE) -- - creare il record RM Applica o record di aggiornamento già se existupdateRM20201setDATE1 = convert (varchar (10), getdate (), 101), GLPOSTDT = convert (varchar (10), getdate (), 101), APPTOAMT = APPTOAMT + a.AMTAPPLIED, ORAPTOAM = ORAPTOAM + a.AMTAPPLIED, APFRMAPLYAMT = APFRMAPLYAMT + a.AMTAPPLIED, ActualApplyToAmount = APFRMAPLYAMT + a.AMTAPPLIEDfrom # temp ajoin b RM20101 su (b.DOCNUMBR = a.INVNUM e b.RMDTYPAL = a.INVTYPE) join c RM20101 su (c.DOCNUMBR = a.PMTNUM e c.RMDTYPAL = a.PMTTYPE) join RM20201 d su (d.APFRDCTY = a.PMTTYPE andd.APFRDCNM = a.PMTNUM andd.APTODCTY = a.INVTYPE andd.APTODCNM = a.INVNUM) 0insert wherea.AMTAPPLIED in
Fonte dell'articolo: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster prendi il Codice Html
Aggiungi questo articolo al tuo sito ora!
Webmaster invia i tuoi Articoli
Nessuna registrazione richiesta. Compila il form e i tuoi articoli sono nella Directory di Messaggiamo.Com