Beispiel #1
0
        public tblInvoiceReceipt AddIRPartial(int Grno, decimal total, decimal paid, decimal balance)
        {
            var user = System.Web.HttpContext.Current.Session["UserName"].ToString();
            var add  = new tblInvoiceReceipt()
            {
                GRReferenceNo = Grno,
                TotalAmount   = total,
                PaidAmount    = paid,
                Balance       = balance,
                Createdon     = DateTime.Now.Date,
                Createdby     = user,
                Status        = "Partial"
            };

            return(add);
        }
        public override void okBtn_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            base.okBtn_Click(sender, e);

            if (this.myUnPaidInvoices.Any() != true)
            {
                MessageBox.Show("Can not process receipt. This claimant have no unpaid invoices.");
                this.DialogResult = DialogResult.Retry;
                return;
            }

            if (this.DialogResult == DialogResult.OK)
            {
                applyReceipt();

                var paidlist = new List<int> { };
                var newConnection = new dbContextDataContext();
                foreach (var i in myUnPaidInvoices)
                {
                    if(!object.Equals(i.ReceiptAmount, default(decimal)))
                    {
                        var ir = new tblInvoiceReceipt();
                        ir.InvRecAmnt = i.ReceiptAmount;
                        ir.InvoiceNo = i.InvoiceNo;
                        ir.ReceiptNo = myReceipt.ReceiptNo;
                        newConnection.tblInvoiceReceipts.InsertOnSubmit(ir);
                    }
                    if ((i.ReceiptAmount + i.ReceiptTotal) == i.InvoiceTotal)
                    {
                        paidlist.Add(i.InvoiceNo);
                    }
                }

                foreach (var p in paidlist)
                {
                    var inv = newConnection.tblInvoices.Where(i => i.InvoiceNo == p).SingleOrDefault();
                    if(inv !=null)
                    inv.InvoicePaid = true;
                }

                if (myPayments.Sum(p => p.PayinAmnt).Value > myUnPaidInvoices.Sum(u => u.ReceiptAmount))
                {
                    var result = MessageBox.Show("Fund remaining, do you want to save this as a credit?", "OVERPAYMENT",
                             MessageBoxButtons.YesNoCancel,
                             MessageBoxIcon.Question);

                    if (result == DialogResult.Yes)
                    {
                        var newCredit = new Db.Credit();
                        newCredit.CreditComment = "Overpayment on Receipt #: " + myReceipt.ReceiptNo.ToString();
                        newCredit.CreditDate = System.DateTime.Today;
                        newCredit.CreditType = 3;
                        newCredit.ClaimantID = myClaimant.ClaimantID;
                        newCredit.CreditCancelled = false;
                        newCredit.CreditAmount = decimal.Subtract(myPayments.Sum(p => p.PayinAmnt).Value, myUnPaidInvoices.Sum(u => u.ReceiptAmount));
                        newConnection.Credits.InsertOnSubmit(newCredit);
                    }

                    if (result == DialogResult.No)
                    {
                        //proceed as normal.
                    }

                    if (result == DialogResult.Cancel)
                    {
                        this.DialogResult = DialogResult.Retry;
                        return;
                    }
                }

                newConnection.SubmitChanges();
            }
            Cursor.Current = Cursors.Default;
        }
Beispiel #3
0
 public void addInvoiceR(tblInvoiceReceipt obj)
 {
     context.tblInvoiceReceipts.Add(obj);
 }
Beispiel #4
0
        void retrieveInvoiceDetails(tblInvoice MyInvoice)
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                myInvoice = MyInvoice;

                var Lines = myConnection.getInvoiceLines(myInvoice.InvoiceNo).ToList();
                foreach (var line in Lines)
                {
                    AnonInvoiceLines newLine = new AnonInvoiceLines();
                    newLine.Fee = line.Fee;
                    newLine.GST = line.GST;
                    newLine.RateID = line.RateID;
                    newLine.PatientName = line.Patient;
                    newLine.SessionDate = line.Date;
                    newLine.ItemNo = line.ItemNo;
                    newLine.PatientID = line.PatientID;

                    myLines.Add(newLine);
                }

                myTransaction = myConnection.tblTransactions.
                    Where(transaction => (transaction.InvoiceNo == MyInvoice.InvoiceNo) && (transaction.TranType == "I")).FirstOrDefault();
                myClaimant = myConnection.tblClaimants.Where(claimant => claimant.ClaimantID == myTransaction.ClaimantID).FirstOrDefault();
                myPhysio = myConnection.tblPhysios.Where(physio => physio.PhysioID == myTransaction.PhysioID).FirstOrDefault();
                var myReceiptLines = myConnection.getReceiptsOfSingleInvoice(myInvoice.InvoiceNo).ToList();
                var myReceiptDetails = myConnection.getReceiptDetailsOfSingleInvoice(myInvoice.InvoiceNo).ToList();

                foreach (var line in myReceiptLines)
                {
                    tblInvoiceReceipt myLine = new tblInvoiceReceipt();
                    myLine.InvoiceNo = line.InvoiceNo;
                    myLine.InvoiceReceiptID = line.InvoiceNo;
                    myLine.InvRecAmnt = line.InvRecAmnt;
                    myLine.ReceiptNo = line.ReceiptNo;
                    myReceiptAmounts.Add(myLine);
                }

                foreach (var line in myReceiptDetails)
                {
                    tblReceipt myLine = new tblReceipt();
                    myLine.ReceiptNo = line.ReceiptNo;
                    myLine.ReceiptDate = line.ReceiptDate;
                    myLine.ReceiptComments = line.ReceiptComments;
                    myLine.ReceiptAmnt = line.ReceiptAmnt;
                    myLine.IsMulti = line.IsMulti;
                    myLine.ReceiptCancelled = line.ReceiptCancelled;
                    myReceipts.Add(myLine);
                }

                this.claimantBillingAddressMemoEdit.Text = myClaimant.FirstNames + Environment.NewLine + myClaimant.LastName + Environment.NewLine
                    + myClaimant.Address1 + Environment.NewLine + myClaimant.Address2 + Environment.NewLine + myClaimant.Address3 + Environment.NewLine;

                this.invoiceDateEdit.DateTime = myTransaction.TranDate.Value;
                this.commentsMemoExEdit.Text = myInvoice.InvoiceComments;

                if (myInvoice.InvoiceCancelled.GetValueOrDefault(false) != true)
                {
                    makeInvoiceOfficial();
                }
                else
                {
                    cancelInvoice();
                }

                this.physioLookUp.EditValue = myPhysio.PhysioID;

                Cursor.Current = Cursors.Default;
            }
            catch (Exception)
            {
                MessageBox.Show("Can not display invoice. Data is corrupt.");
                this.DialogResult = DialogResult.Cancel;
                this.Close();
                return;
            }
        }
Beispiel #5
0
        public void viewInvoice(tblInvoice thisInvoice)
        {
            myForm = new invoiceViewForm();
            myInvoice = thisInvoice;

            var newConnection = new dbContextDataContext();

            var Lines = newConnection.tblPatientStats.Where(lines => lines.InvoiceNo == thisInvoice.InvoiceNo);
            foreach (var line in Lines)
            {
                myInvoiceLines.Add(line);
            }

            myTransaction = newConnection.tblTransactions.
                Where(transaction => (transaction.InvoiceNo == thisInvoice.InvoiceNo) && (transaction.TranType == "I")).FirstOrDefault();
            myClaimant = newConnection.tblClaimants.Where(claimant => claimant.ClaimantID == myTransaction.ClaimantID).FirstOrDefault();

            if (myTransaction == null)
            {
                myTransaction = new tblTransaction();
            }

            if (myInvoice == null)
            {
                myInvoice = new tblInvoice();
            }

            if (myClaimant == null)
            {
                myClaimant = new tblClaimant();
            }

            var receiptAmounts = newConnection.tblInvoiceReceipts.Where(rm => rm.InvoiceNo == myInvoice.InvoiceNo);
            var receipts = from rm in receiptAmounts
                           from r in newConnection.tblReceipts.Where(r => r.ReceiptNo == rm.ReceiptNo)
                           select r;

            // Second query to get receipts from another table. I might combine the two tables come deployment.

            var receiptAmounts2 = from rm in newConnection.tblReceiptInvoices
                            where rm.InvoiceNo == myInvoice.InvoiceNo
                            select new
                            {
                                InvoiceNo = rm.InvoiceNo,
                                ReceiptNo = rm.ReceiptNo,
                                InvRecAmnt = rm.Received
                            };

            foreach (var receipt in receiptAmounts2)
            {
                var receiptAmount = new tblInvoiceReceipt();
                receiptAmount.InvoiceNo = receipt.InvoiceNo;
                receiptAmount.InvRecAmnt = receipt.InvRecAmnt;
                receiptAmount.ReceiptNo = receipt.ReceiptNo;
                myReceiptAmounts.Add(receiptAmount);
            }

            foreach (var receipt in receipts)
            {
                myReceipts.Add(receipt);
            }

            foreach (var receiptAmount in receiptAmounts)
            {
                myReceiptAmounts.Add(receiptAmount);
            }

            myForm.invoiceDateEdit.DateTime = myTransaction.TranDate.Value;
            registeFormEvents();
            updateInvoiceForm();
            makeInvoiceOfficial();
            myForm.ShowDialog();
            Cursor.Current = Cursors.Default;
            applyPaid();
        }