Find Jobs
Hire Freelancers

Algorithm for Matching Invoice Payments

$30-250 USD

În desfășurare
Data postării: peste 12 ani în urmă

$30-250 USD

Plata la predare
For a better formatted document, download [login to view URL] Mathematical model / algorithm to assign a payment amount exactly to a number of outstanding invoice transactions. This is required for an accounts program that is being developed. Scenario: Customer pays x-amount as payment and there are y-number of outstanding invoices / credit notes. The objective is to second guess the customer and identify which invoices / credit notes the payment relates to. This may not always be possible because the customer records may not match ours. However, if the amount being paid is for some or all of the items in our list, then the algorithm should select the correct list of items. As the number of items in the list increase, the number of permutations grow exponentially. After predetermined number of attempts, the algorithm should either give up or make the best job it can (minimum outstanding balance; remaining balance can be zero or positive but NOT negative) before giving up. Amount Paid: x-amount Item Date Type Amount 1. 11/01/2011 Invoice Owed-amount1 2. 18/01/2011 Invoice Owed-amount2 3. 25/01/2011 Invoice Owed-amounr3 4. 03/02/2011 Invoice Owed-amount4 5. 08/02/2011 Credit Note Credit-amount1 6. 15/02/2011 Invoice Owed-amount5 7. 22/02/2011 Invoice Owed-amount6 8. 25/02/2011 Invoice Owed-amount7 9 28/02/2011 Invoice Owed-amount8 10. 04/03/2011 Credit Note Credit-amount2 11. 08/03/2011 Invoice Owed-amount9 Points to consider: The list of items will be in date order and the older items are likely (but not necessarily) to be paid before the newer ones. If there are any credit notes, then there is a big chance that it matches one or more invoices in the list. If credit notes cannot be matched to invoices, the credit balance may be added to the amount paid by the customer. It is possible that the amount paid is for the invoices only and the credit notes should be ignored. The algorithm should be efficient and take into account that the number of items will vary for each instance. Ideally I would like the solution in C# but will accept a flowchart or some other suitable form. I must have unrestricted rights to utilise the solution without infringing any copyright and without having to make any additional payments.
ID-ul proiectului: 1182412

Despre proiect

4 propuneri
Proiect la distanță
Activ: 13 ani în urmă

Vrei să câștigi bani?

Avantajele de a licita pe platforma Freelancer

Stabilește bugetul și intervalul temporal
Îți primești plata pentru serviciile prestate
Evidențiază-ți propunerea
Te înregistrezi și licitezi gratuit pentru proiecte
Acordat utilizatorului:
Avatarul utilizatorului
Hi,I can do this [login to view URL] check your inbox for more details.
$120 USD în 3 zile
4,8 (41 recenzii)
5,0
5,0
4 freelanceri plasează o ofertă medie de $180 USD pentru proiect
Avatarul utilizatorului
see private message
$200 USD în 10 zile
5,0 (4 recenzii)
4,3
4,3
Avatarul utilizatorului
Hi. I'm a Computer Science student. Finding an optimal solution seems to me a as a problem in NP-Hard. My plan for finding an efficient algorithm would be this: - Check if the problem is in NP-Hard - Depending on that find the optimal solution otherwise find an appropriate approximation algorithm.
$250 USD în 14 zile
5,0 (1 recenzie)
1,4
1,4
Avatarul utilizatorului
Hai, please check PM. Thank you
$150 USD în 4 zile
5,0 (1 recenzie)
1,4
1,4

Despre client

Steagul UNITED KINGDOM
ROTHERHAM, United Kingdom
4,2
22
Metoda de plată a fost confirmată
Membru din mar. 31, 2009

Verificarea clientului

Mulțumim! Ți-am trimis prin e-mail linkul pe care trebuie să-l accesezi pentru a revendica creditul gratuit.
A apărut o eroare la trimiterea e-mailului. Încearcă din nou.
Utilizatori înregistrați Totalul proiectelor postate
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Se încarcă previzualizarea
S-a oferit permisiunea de depistare a locației.
Ți-a expirat sesiunea pentru conectare sau te-ai deconectat. Conectează-te din nou.