Great Plains personalização? programação auto-aplicável em contas a receber
Microsoft Great Plains é uma das três Microsoft Business Solutions meados de mercado ERP produtos: Great Plains, Solomon, Navision. Considerando que a Great Plains é agora muito bom candidato para a integração com POS aplicação, como o Microsoft Retail Management System ou RMS e Cliente relação Sistemas, como o Microsoft CRM? há necessidade comum em Great Plains personalizações e integrações, especialmente sobre o nível de MS SQL Server realiza consultas SQL e armazenados procedures.In este pequeno artigo iremos mostrar-lhe como criar auto-aplicável utilidade, quando você integrar grande número de operações de vendas e pagamentos. Iremos trabalhar com RM20101? Recebíveis Open File e RM20201? Recebíveis Aplicar Open File.Let eu ver código SQL: declare @ curpmtamt numérico (19,5) declare @ curinvamt numérico (19,5) declare @ curpmtnum varchar (20) declare @ curinvnum varchar (20) declare @ curinvtype intdeclare @ curpmttype intdeclare @ @ maxid intdeclare contador int - Criar uma tabela temporária tablecreate # temp ([ID] int identidade (1,1) chave primária, CUSTNMBR varchar (15), INVNUM varchar (20), INVTYPE int, PMTNUM varchar (20), PMTTYPE int, INVAMT numérico (19,5), PMTAMT numérico (19,5), AMTAPPLIED numérico (19,5)) criar índice IDX_INVNUM sobre # temp (INVNUM) criar índice IDX_PMTNUM sobre # temp (PMTNUM) - Inserir unapplied facturas e paymentsinsert em # 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 = 0from RM20101 ajoin RM20101 b em (a.CUSTNMBR = b.CUSTNMBR) aderir RM00101 c on (a.CUSTNMBR = c.CUSTNMBR) wherea.RMDTYPAL em (7, 8, 9) andb.RMDTYPAL em (1, 3) anda.CURTRXAM 0 andb.CURTRXAM 0order bya.custnmbr, b.DOCDATE, a.DOCDATE, a.DOCNUMBR, b.DOCNUMBR-- iterar através de cada recordselect @ maxid = max ([ID]) de tempselect # @ @ counter = 1while counter = @ curpmtamt) e (@ curpmtamt> 0) e (@ curinvamt> 0) - se o montante da factura é maior ou o mesmo que o pagamento amountbeginselect @ @ curinvamt = curinvamt - @ curpmtamt - factura montante restante - update com o montante que é aplicada ao actual factura de - o actual paymentupdate # tempsetAMTAPPLIED = @ curpmtamtwhere [ID] = @ counter - actualização com o valor da factura remainingupdate # tempsetINVAMT = @ @ curinvamtwhereINVNUM = curinvnum andINVTYPE = @ curinvtype - update com o valor do pagamento remainingupdate # tempsetPMTAMT = 0wherePMTNUM = @ curpmtnum andPMTTYPE = @ curpmttypeendelse if (@ curinvamt 0) e (@ curinvamt> 0) - se o montante da factura é menor ao pagamento amountbeginselect @ @ curpmtamt = curpmtamt - @ curinvamt - pagamento montante restante - update com o montante que é aplicado a partir da actual factura - a actual paymentupdate # tempsetAMTAPPLIED = @ curinvamtwhere [ID] = @ counter - actualização com o valor da factura remainingupdate # tempsetINVAMT = = 0whereINVNUM @ curinvnum andINVTYPE = @ curinvtype - update com o valor do pagamento remainingupdate # tempsetPMTAMT = curpmtamtwherePMTNUM = @ @ @ curpmtnum andPMTTYPE = curpmttypeend - vá para o próximo recordselect @ counter = @ counter + 1END - actualizar os RM Abrir tabela com a correta amountsupdateRM20101setCURTRXAM = b.INVAMTfromRM20101 # temp ajoin b em (a.DOCNUMBR = b.INVNUM e a.RMDTYPAL = b.INVTYPE) updateRM20101setCURTRXAM = b.PMTAMTfromRM20101 ajoin # temp b em (a.DOCNUMBR = b.PMTNUM e a.RMDTYPAL = b.PMTTYPE) -- - criar a RM Aplicar ou gravar a.AMTAPPLIED, APFRMAPLYAMT = APFRMAPLYAMT + a.AMTAPPLIED, ActualApplyToAmount = APFRMAPLYAMT + a.AMTAPPLIEDfrom # temp ajoin RM20101 b em (b.DOCNUMBR = a.INVNUM e b.RMDTYPAL = a.INVTYPE) aderir RM20101 c on (c.DOCNUMBR = a.PMTNUM e c.RMDTYPAL = a.PMTTYPE) aderir RM20201 d em (d.APFRDCTY = a.PMTTYPE andd.APFRDCNM = a.PMTNUM andd.APTODCTY = a.INVTYPE andd.APTODCNM = a.INVNUM) wherea.AMTAPPLIED 0insert dentro
Artigo Fonte: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster começa O Código do HTML
Adicionar este artigo para o seu site agora!
Webmaster enviar seus artigos
Nenhum registro necessário! Preencha o formulário e seu artigo está no Messaggiamo.Com Diretório!