• Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng
  • Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    bonv2b > 14-07-15, 05:31 PM

    Nhờ các bác giúp em vấn đề sau:

    Khách hàng trả một khoản tiền 90.000.000
    trong đó khách hàng mua 3 hóa đơn với giá trị như sau
    ngày 1/1/20xx mua HĐ 1: 20.000.000
    ngày 8/1/20xx mua HĐ 2: 60.000.000
    ngày 11/1/20xx mua HĐ 3: 30.000.000
    -----
    Nhờ các bác giúp tạo query sao cho tạo ra kết quả cuối cùng là
    HĐ 1: Đã trả hết
    HĐ 2: Đã trả hết
    HĐ 3: Còn thiếu 20.000.000

    Em cám ơn các bác nhiều ạ, em nghĩ mãi ko ra híc  020 020
  • RE: Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    ongke0711 > 14-07-15, 09:06 PM

    Cái này không dùng Query được đâu mà phải dùng code.
    Nghiệp vụ theo dõi công nợ này cũng phức tạp và còn nhiều table liên quan nhưng để đơn giản như yêu cầu của bạn thì xem file demo đính kèm nhé.
    http://www.mediafire.com/download/ly4z8y...ong_no.mdb
  • RE: Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    tranthanhan1962 > 15-07-15, 10:19 PM

    Như ongke0711 đã nói nghiệp vụ công nợ rất phức tạp, cách tính toán của mỗi người viết ứng dụng cũng khác nhau theo từng yêu cầu công nợ thực tế của doanh nghiệp. Nhìn sơ qua thấy có vẻ yêu cầu của bạn quá đơn giản nhưng xem kỹ lại thì không đơn giản chút nào.
    Yêu cầu của bạn là
    ngày 1/1/20xx mua HĐ 1: 20.000.000
    ngày 8/1/20xx mua HĐ 2: 60.000.000
    ngày 11/1/20xx mua HĐ 3: 30.000.000
    -----
    Nhờ các bác giúp tạo query sao cho tạo ra kết quả cuối cùng là
    HĐ 1: Đã trả hết
    HĐ 2: Đã trả hết
    HĐ 3: Còn thiếu 20.000.000
     
    Khách hàng trả một khoản tiền 90.000.000 (Bạn không cho biết thời gian trước , sau hay khỏan giữa các phát sinh nợ). Nếu đó là khoản tiền ứng trước thì có thể xử lý cho field ghi chú “đã trả hết” mới được còn đó là khoản tiền trả sau phát sinh nợ thì dù có viết code VBA cũng bó tay (Bởi vì phải xử lý chạy ngược chạy xuôi từng record để thêm ghi chú “đã trả hết” thì đây là công việc tốn tài nguyên máy rất lớn mà hiệu quả thì lại không đáng.). Cách xử lý nhẹ nhàng nhất là xử lý bằng Running Sum trong Report tất nhiên dù Query hay Report thì cột tồn nợ hay lỹ kế nợ vẫn chỉ báo con số nợ được lũy kế chứ không quay ngược lại để cho biết từng hóa đơn dã xử lý hết nợ.
    Còn nếu vẫn muốn làm điều đó bạn có thể tạo trên table phát sinh 2 field nợ lũy kế và ghi chú. Nợ lũy kế thì có thể viết code để xử lý trực tiếp khi nhập phát sinh còn ghi chú thì bạn phải xử lý bằng tay.
    Gửi bạn demo trong đó có cách xử lý bằng query và report. (tính cột lũy kế cộng dồn như trong excel)
    Query thì bạn phải xử lý bằng 2 cái
    1. Q_PHATSINHNO (làm query nguồn)
     
    SELECT CONGNO.STT, CONGNO.Ngay, CONGNO.Conno, CONGNO.Datra, [Conno]-[Datra] AS PHATSINHNO
    FROM CONGNO;
     
    1. Q_LUYKENO (tạo cột NOLUYKE)
     
    SELECT TAM.STT, TAM.Ngay, TAM.Conno, TAM.Datra, (SELECT Sum(Q_PHATSINHNO.PHATSINHNO) AS Total  FROM Q_PHATSINHNO  WHERE Q_PHATSINHNO.STT <= TAM.STT) AS NOLUYKE
    FROM Q_PHATSINHNO AS TAM;
     
    Report thì đơn giản hơn chỉ cần tạo textbox NOLUYKE =[Conno]-[Datra] rồi thiết đặt Running Sum cho nó

    Demo
  • RE: Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    ongke0711 > 16-07-15, 09:10 PM

    Cái query của bác An hay quá, em (thua bác 1 giáp nếu đúng bác sinh năm 62 ;-) ) đang áp dụng để làm cái báo cáo bảo dưỡng xe (cảnh báo chu kỳ bảo dưỡng vs số km đi được).
    Riêng phần công nợ, em có thêm một số ý kiến chia sẽ về thực tế theo dõi công nợ bên em, không biết cty bác làm như thế nào?
    - Bên em khi nhân viên thu tiền đem tiền về thì họ sẽ làm cái báo cáo thu tiền, cụ thể là 1 cục tiền đó khách hàng trả cho hóa đơn nào, số tiền bao nhiêu. Sau đó admin sẽ nhập thủ công vào phần mềm công nợ --> không cần điên đầu viết code tự động phân bổ hóa đơn.
    - Có khi nhân viên admin sẽ gợi ý tư vấn với khách là thành toán dứt cho các hóa đơn nhỏ trước (mặc dù thời gian đến hạn sau) --> tính thủ công nhiều ,linh hoạt khi thanh toán hóa đơn --> không cần code tự động phân bổ.
    - Khi khách thanh toán = chuyển khoản thì cũng ghi chú là thanh toán cho hóa đơn số mấy.
    Do vậy em nghĩ thủ công như vậy lại thực tế hơn là tự động hóa. Em "chọn việc nhẹ nhàng" cho lập trình xử lý công nợ  này... 007 . Có thể còn các nghiệp vụ khác bên admin công nợ mà em chưa trải ngiệm (vì làm sales mà) nên chưa bao quát hết vấn để.
    Vài dòng chia sẽ 007 .
  • RE: Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    tranthanhan1962 > 16-07-15, 11:10 PM

    (16-07-15, 09:10 PM)ongke0711 Đã viết: Cái query của bác An hay quá, em (thua bác 1 giáp nếu đúng bác sinh năm 62 ;-) ) đang áp dụng để làm cái báo cáo bảo dưỡng xe (cảnh báo chu kỳ bảo dưỡng vs số km đi được).
    Riêng phần công nợ, em có thêm một số ý kiến chia sẽ về thực tế theo dõi công nợ bên em, không biết cty bác làm như thế nào?
    - Bên em khi nhân viên thu tiền đem tiền về thì họ sẽ làm cái báo cáo thu tiền, cụ thể là 1 cục tiền đó khách hàng trả cho hóa đơn nào, số tiền bao nhiêu. Sau đó admin sẽ nhập thủ công vào phần mềm công nợ --> không cần điên đầu viết code tự động phân bổ hóa đơn.
    - Có khi nhân viên admin sẽ gợi ý tư vấn với khách là thành toán dứt cho các hóa đơn nhỏ trước (mặc dù thời gian đến hạn sau) --> tính thủ công nhiều ,linh hoạt khi thanh toán hóa đơn --> không cần code tự động phân bổ.
    - Khi khách thanh toán = chuyển khoản thì cũng ghi chú là thanh toán cho hóa đơn số mấy.
    Do vậy em nghĩ thủ công như vậy lại thực tế hơn là tự động hóa. Em "chọn việc nhẹ nhàng" cho lập trình xử lý công nợ  này... 007 . Có thể còn các nghiệp vụ khác bên admin công nợ mà em chưa trải ngiệm (vì làm sales mà) nên chưa bao quát hết vấn để.
    Vài dòng chia sẽ 007 .

    Mình đúng là sinh năm 62. Mình làm kế toán cho nhiều công ty đồng thời cũng cung cấp khá nhiều phần mềm kế toán nên cũng có một vài kinh nghiệm nho nhỏ tùy theo từng cách xử lý của các công ty. Theo kiểu công ty của bạn thì mình có ý như thế này. Bạn làm thêm một table thu nợ có khoá ngoại là mã số hóa đơn & số hóa đơn (do mã số hóa đơn & số hóa đơn bán ra của bạn là duy nhất nên xử lý nó làm trường khóa chính), bạn có thể đưa vào table thu nợ các trường như ngày thu nợ, người thu nợ, số tiền thu được. Khi các phát sinh thu nợ đó = phát sinh nợ của hóa đơn là hết nợ. Từ 2 table phát sinh hóa đơn (có nợ) và table thu nợ rất dễ dàng làm report để báo cáo. Trường hợp nếu phần mềm của bạn có hạch toán tài khoản thì bạn thì nó chính là phát sinh của TK 131 trên table phát sinh tài khoản bạn thêm một field tên khách hàng để theo dõi. Khi Nợ - Có TK 131 của khách hàng nào bằng nhau thì khách hàng đó hết nợ.
    Chúc bạn thành công.
  • RE: Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    bonv2b > 17-07-15, 09:50 PM

    Kaka, cám ơn các bác. Em thì mới đi làm, mấy đời kế toán trước là bê bết hết cả, trong tay em chỉ có số công nợ cuối cùng được xác nhận và danh sách đơn hàng, nên em đang làm ngược trở lại, lấy số công nợ cuối suy ngược ra những đơn hàng nào chưa trả tiền và suy ra công nợ quá hạn
    Cơ mà file của bác thành nhân 62 em nhấn vào thì bị lỗi ko down được ạ sad
    Bác re-up cho em với, em cám ơn sad
  • RE: Giúp đỡ tạo query phân bổ 1 khoản tiền ra nhiều đơn hàng

    tranthanhan1962 > 18-07-15, 01:10 AM

    (17-07-15, 09:50 PM)bonv2b Đã viết: Kaka, cám ơn các bác. Em thì mới đi làm, mấy đời kế toán trước là bê bết hết cả, trong tay em chỉ có số công nợ cuối cùng được xác nhận và danh sách đơn hàng, nên em đang làm ngược trở lại, lấy số công nợ cuối suy ngược ra những đơn hàng nào chưa trả tiền và suy ra công nợ quá hạn
    Cơ mà file của bác thành nhân 62 em nhấn vào thì bị lỗi ko down được ạ sad
    Bác re-up cho em với, em cám ơn sad

    Không hiểu sau nó bị lỗi. Mình đã xử lý lại