發(fā)票? 分為表頭和表體,? 認(rèn)款也是發(fā)票也是表頭和表體
一個(gè)頭對(duì)應(yīng)多個(gè)表體棕洋,?
然后 就出問題了黄刚,因?yàn)楣矩?cái)務(wù)想統(tǒng)計(jì)發(fā)票的認(rèn)款梧乘,但是 認(rèn)款和發(fā)票的關(guān)聯(lián)關(guān)系不是 表體和表體的關(guān)聯(lián)惨奕,故而導(dǎo)致沒辦法使用正常的sql進(jìn)行統(tǒng)計(jì)
認(rèn)款的表體 一個(gè)字段記錄發(fā)票單據(jù)號(hào)
認(rèn)款表體? ----多對(duì)多----發(fā)票表體 于游,想要統(tǒng)計(jì)發(fā)票表體的認(rèn)款情況變得有點(diǎn)困難
一個(gè)認(rèn)款只能記錄一個(gè)發(fā)票頭杂拨,但是一個(gè)發(fā)票可以有多個(gè)認(rèn)款
比如發(fā)票金額100葬馋, 可以分兩次或者三次認(rèn)款完成砍艾,一次50.一次20蒂教,一次30,
當(dāng)100 發(fā)票金額=100認(rèn)款金額脆荷, 這個(gè)發(fā)票認(rèn)款完成
但是 財(cái)務(wù)的美女們偶爾會(huì)出現(xiàn)胸大無腦的情況凝垛,于是可能100認(rèn)款了200,然后這個(gè)單據(jù)錯(cuò)誤蜓谋,做紅沖梦皮,做一個(gè)--200的認(rèn)款,這樣抵消那次200的情況桃焕,而且這種情況不止一次剑肯,也許在做以300,然后再來-300观堂, 我在記錄中看到有四到五次的這樣情況让网。可能還做兩次負(fù)認(rèn)款的情況
提到上面種種情況师痕, 沒辦法? 溃睹,我思考設(shè)計(jì)了一種方案,通過定時(shí)認(rèn)款將數(shù)據(jù)記錄到中間表中胰坟,然后使用中間表做數(shù)據(jù)統(tǒng)計(jì)
決定使用中間表丸凭,??
記錄幾個(gè)重要的字段
pk_dktzd_b 認(rèn)款表體行pk(id),? mun? 認(rèn)款金額腕铸, billno 認(rèn)款單據(jù)號(hào),rowno認(rèn)款行號(hào)铛碑,notax_cr認(rèn)款剩余金額
vbillcode發(fā)票單據(jù)號(hào)狠裹,csaleinvoicebid 發(fā)票行pk(id)
vdef1 發(fā)票頭金額
然后? 思路 是這樣處理
1、查詢有認(rèn)款沒有認(rèn)完的發(fā)票汽烦,也就是? 如果發(fā)票號(hào)對(duì)應(yīng)認(rèn)款統(tǒng)計(jì)中涛菠,認(rèn)款有有剩余的,就將發(fā)票查出來sql:
2撇吞、然后 查詢出 認(rèn)款沒有認(rèn)款完成的認(rèn)款數(shù)據(jù)
3俗冻、通過 然后通過以認(rèn)款為主的 匹配發(fā)票一次一次匹配記錄 數(shù)據(jù)
舉例如
發(fā)票? 100? 認(rèn)款(1)120,(2)-120
? ? ? 發(fā)票? ? ? ? ? ? ? ? ? ? 認(rèn)款? ? ? ? ? ? ????????????????????????已經(jīng)認(rèn)款? ? ? ? 剩余認(rèn)款? ? ? ? ? ? ?發(fā)票剩余
? ? ?100? ? ? ? ? ? ? ? ? ? (1)120? ? ? ? ? ? ? ????????????????????? 100? ? ? ? ? ? ? ? 20? ? ? ? ? ? ? ? ? ? ? 0
? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? (2)-120? ? ? ? ? ? ????????????????? ?????-100? ? ? ? ? ? ? ?-20? ? ? ? ? ? ? ? ? ? ? 100
? ? 100? ? ? ? ? ? ? ? ? ? ? (1) 20(120剩余認(rèn)款)???????? 20? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? ? ? 80
? ? 80? ? ? ? ? ? ? ? ? ? ? ? ?( 2 ) -20?(-120剩余認(rèn)款)? ? ? ?-20? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ?100
此時(shí)? ? ? ? ?發(fā)票發(fā)票還有100 剩余牍颈,? 已經(jīng)認(rèn)款0迄薄,已經(jīng)認(rèn)款完成的認(rèn)款單據(jù)將不再查詢出來了,
當(dāng)有新認(rèn)款來了后煮岁,該發(fā)票依然能查詢出來進(jìn)行匹配
當(dāng)然 此處經(jīng)過 都是 認(rèn)款總金額和發(fā)票總金額進(jìn)行統(tǒng)計(jì)實(shí)際上是認(rèn)款對(duì)應(yīng)發(fā)票行進(jìn)行循環(huán)匹配
此處 做一下筆記? 以防止到時(shí)候忘記具體實(shí)現(xiàn)思路了