예제 #1
0
        private void SetInvoice(Invoice1 invoice)
        {
            txtId.Value         = invoice.Id.ToString();
            txtCCAbbrv.Value    = invoice.CollabCtr.NameAbbrv;
            txtCCId.Value       = invoice.CollabCtrId.ToString();
            txtInvoiceDate.Text = invoice.InvoiceDate != null?Convert.ToDateTime(invoice.InvoiceDate).ToShortDateString() : "";

            txtInvoiceId.Value = invoice.InvoiceId;     //invoice.Id > 0 ? txtCCAbbrv.Value + '-' + invoice.Id.ToString() : "";
            txtStartDate.Text  = invoice.StartDate != null?Convert.ToDateTime(invoice.StartDate).ToShortDateString() : "";

            txtEndDate.Text = invoice.EndDate != null?Convert.ToDateTime(invoice.EndDate).ToShortDateString() : "";

            //txtSubTotal.Value = invoice.SubTotal != null ? invoice.SubTotal.ToString() : "";
            //txtDiscount.Value = invoice.Discount != null ? invoice.Discount.ToString() : "";

            //txtGrandTotal.Value = invoice.SubTotal != null && invoice.Discount != null ? (invoice.SubTotal - invoice.Discount).ToString() : "";
            txtRcvDate.Text = invoice.PaymentRcvdDate != null?Convert.ToDateTime(invoice.PaymentRcvdDate).ToShortDateString() : "";

            txtPaymentRcvd.Value = invoice.PaymentRcvdAmount != null?invoice.PaymentRcvdAmount.ToString() : "";

            txtComments.Value = invoice.Comments != null ? invoice.Comments : "";

            lnkFile.Text = invoice.FileName;

            //BindgvInvoiceItem(invoice.InvoiceItem);
            BindRptNewInvoice(invoice.Id);
        }
예제 #2
0
        //private void BindgvInvoiceItem(ICollection<InvoiceItem> items)
        //{
        //    DataTable dt = CreateInvoiceItemTable(items, true);
        //    gvInvoiceItem.DataSource = dt;
        //    gvInvoiceItem.DataBind();
        //}

        private Invoice1 GetInvoiceById(int id)
        {
            Invoice1 invoice1 = null;

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                invoice1 = db.Invoice1Set.FirstOrDefault(i => i.Id == id);
                invoice1.CollabCtr.NameAbbrv = invoice1.CollabCtr.NameAbbrv;
                invoice1.InvoiceItem2        = invoice1.InvoiceItem2;
                foreach (InvoiceItem2 i in invoice1.InvoiceItem2)
                {
                    i.ClientAgmt = i.ClientAgmt;
                }

                //ddlAgreementHdn.Items.Clear();
                //IDictionary<int, string> dropDownSource = new Dictionary<int, string>();
                //dropDownSource = db.ClientAgmt
                //                .Where(a => a.CollabCtr.Id == invoice1.CollabCtrId)
                //                .ToDictionary(c => c.Id, c => c.AgmtId);

                //PageUtility.BindDropDownList(ddlAgreementHdn, dropDownSource, "--- Select ---");
            }

            return(invoice1);
        }
예제 #3
0
        private Invoice1 GetInvoice(int id, string fileName, byte[] fileData)
        {
            int      ccid = 0;
            DateTime dt;
            Decimal  dc = 0.0m;

            Invoice1 invoice = new Invoice1()
            {
                Id          = id,
                CollabCtrId = Int32.TryParse(txtCCId.Value, out ccid) ? ccid : -1,
                InvoiceDate = DateTime.TryParse(txtInvoiceDate.Text, out dt) ? dt : DateTime.Now,
                StartDate   = DateTime.TryParse(txtStartDate.Text, out dt) ? dt : DateTime.Now,
                EndDate     = DateTime.TryParse(txtEndDate.Text, out dt) ? dt : DateTime.Now,
                //SubTotal = Decimal.TryParse(txtSubTotal.Value, out dc) ? dc : (Decimal?)null,
                //Discount = Decimal.TryParse(txtDiscount.Value, out dc) ? dc : (Decimal?)null,
                PaymentRcvdDate   = DateTime.TryParse(txtRcvDate.Text, out dt) ? dt : (DateTime?)null,
                PaymentRcvdAmount = Decimal.TryParse(txtPaymentRcvd.Value, out dc) ? dc : (Decimal?)null,
                FileName          = fileName,
                FileUpload        = fileData,
                Comments          = txtComments.Value,
                Creator           = Page.User.Identity.Name,
                CreateDate        = DateTime.Now,
                InvoiceId         = txtInvoiceId.Value
            };

            return(invoice);
        }
예제 #4
0
        //private List<InvoiceItem> GetInvoiceItem(int invoiceId)
        //{
        //    List<InvoiceItem> lstInvoiceItem = new List<InvoiceItem>();

        //    foreach (GridViewRow row in gvInvoiceItem.Rows)
        //    {
        //        if (row.RowType == DataControlRowType.DataRow)
        //        {
        //            Label lblId = row.FindControl("lblId") as Label;
        //            DropDownList ddlAgreement = row.FindControl("ddlAgreement") as DropDownList;
        //            DropDownList ddlBiostat = row.FindControl("ddlBiostat") as DropDownList;
        //            TextBox txtDesc = row.FindControl("txtDesc") as TextBox;
        //            TextBox txtInvoiceRate = row.FindControl("txtRate") as TextBox;
        //            TextBox txtInvoiceHr = row.FindControl("txtCompletedHours") as TextBox;

        //            int agreementId = -1, biostatId = -1;
        //            int output = 0;
        //            decimal dOutput = 0.0m;

        //            if (ddlAgreement != null && ddlBiostat != null && txtDesc != null && txtInvoiceRate != null && txtInvoiceHr != null)
        //            {
        //                Int32.TryParse(ddlAgreement.SelectedValue, out agreementId);
        //                Int32.TryParse(ddlBiostat.SelectedValue, out biostatId);

        //                if (agreementId > 0)
        //                {
        //                    InvoiceItem invoiceItem = new InvoiceItem()
        //                    {
        //                        Id = int.TryParse(lblId.Text, out output) ? output : -1,
        //                        InvoiceId = invoiceId,
        //                        ClientAgmtId = agreementId,
        //                        BiostatId = biostatId > 0 ? biostatId : -1,
        //                        Desc = txtDesc.Text,
        //                        InvoiceRate = decimal.TryParse(txtInvoiceRate.Text, out dOutput) ? dOutput : 0.0m,
        //                        InvoiceHr = decimal.TryParse(txtInvoiceHr.Text, out dOutput) ? dOutput : 0.0m,
        //                        Creator = Page.User.Identity.Name,
        //                        CreateDate = DateTime.Now
        //                    };

        //                    lstInvoiceItem.Add(invoiceItem);
        //                }
        //            }
        //        }
        //    }

        //    return lstInvoiceItem;
        //}

        private int SaveInvoice(Invoice1 invoice)
        {
            int invoiceId = -1;

            try
            {
                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    if (invoice.Id > 0) //update
                    {
                        var prevInvoice = db.Invoice1Set.FirstOrDefault(c => c.Id == invoice.Id);

                        if (prevInvoice != null)
                        {
                            invoice.CollabCtrId = prevInvoice.CollabCtrId;

                            if (prevInvoice.FileName != null && prevInvoice.FileUpload != null)
                            {
                                if (invoice.FileUpload.Count <byte>() == 0 && prevInvoice.FileUpload.Count <byte>() > 0)
                                {
                                    invoice.FileName   = prevInvoice.FileName;
                                    invoice.FileUpload = prevInvoice.FileUpload;
                                }
                            }

                            db.Entry(prevInvoice).CurrentValues.SetValues(invoice);
                        }
                    }
                    else //new
                    {
                        db.Invoice1Set.Add(invoice);
                    }

                    db.SaveChanges();

                    invoiceId = invoice.Id;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //
            }

            return(invoiceId);
        }
예제 #5
0
        private List <InvoiceItem2> GetInvoiceItem2(Invoice1 invoice)
        {
            var lstInvoiceItem = new List <InvoiceItem2>();

            foreach (RepeaterItem item in rptNewInvoice.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    var lblId      = item.FindControl("lblId") as Label;
                    var agmt       = item.FindControl("lblAgreement") as Label;
                    var staffType  = item.FindControl("lblType") as Label;
                    var tobeBilled = ((System.Web.UI.HtmlControls.HtmlInputText)item.FindControl("txtToBeBilled"));

                    int id = 0;
                    Int32.TryParse(lblId.Text, out id);
                    decimal invoiceHr = 0.0m;
                    Decimal.TryParse(tobeBilled.Value, out invoiceHr);

                    using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                    {
                        var agreement = db.ClientAgmt.FirstOrDefault(a => a.AgmtId == agmt.Text);

                        if (agreement != null)
                        {
                            InvoiceItem2 i = new InvoiceItem2()
                            {
                                Id           = id,
                                Invoice1Id   = invoice.Id,
                                ClientAgmtId = agreement.Id,
                                StaffType    = staffType.Text,
                                InvoiceHr    = invoiceHr,
                                Creator      = Page.User.Identity.Name,
                                CreationDate = DateTime.Now,
                                IsDeleted    = false
                            };

                            lstInvoiceItem.Add(i);
                        }
                    }
                }
            }

            return(lstInvoiceItem);
        }
예제 #6
0
        //protected void gvInvoiceItem_RowDeleting(object sender, GridViewDeleteEventArgs e)
        //{
        //    GridViewRow row = gvInvoiceItem.Rows[e.RowIndex];

        //    //BindgvInvoiceItem(e.RowIndex);
        //}

        protected void rptInvoice_ItemCommand(Object sender, RepeaterCommandEventArgs e)
        {
            if (((Button)e.CommandSource).Text.Equals("Edit"))
            {
                int id = 0;
                int.TryParse(((Button)e.CommandSource).CommandArgument, out id);

                if (id > 0)
                {
                    Invoice1 invoice = GetInvoiceById(id);

                    if (invoice != null)
                    {
                        SetInvoice(invoice);

                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                                "ModalScript", PageUtility.LoadEditScript(true), false);
                    }
                }
            }
        }
예제 #7
0
        //protected void btnAddInvoiceItem_Click(object sender, EventArgs e)
        //{
        //    BindgvInvoiceItem(-1);
        //}

        //protected void gvInvoiceItem_RowDataBound(object sender, GridViewRowEventArgs e)
        //{
        //    if (e.Row.RowType == DataControlRowType.DataRow)
        //    {
        //        DropDownList ddl = e.Row.FindControl("ddlBiostat") as DropDownList;

        //        string id = (e.Row.FindControl("lblBiostatId") as Label).Text;

        //        if (ddl != null)
        //        {
        //            //ddl.Items.AddRange(ddlBiostat.Items.OfType<ListItem>().ToArray());
        //            foreach (ListItem li in ddlBiostatHdn.Items)
        //            {
        //                ListItem newItem = new ListItem();
        //                newItem.Value = li.Value;
        //                newItem.Text = li.Text;
        //                newItem.Selected = false;

        //                if (li.Value == id)
        //                {
        //                    newItem.Selected = true;
        //                }

        //                ddl.Items.Add(newItem);
        //            }

        //        }

        //        ddl = e.Row.FindControl("ddlAgreement") as DropDownList;

        //        id = (e.Row.FindControl("lblAgreementId") as Label).Text;

        //        if (ddl != null)
        //        {
        //            //ddl.Items.AddRange(ddlBiostat.Items.OfType<ListItem>().ToArray());
        //            foreach (ListItem li in ddlAgreementHdn.Items)
        //            {
        //                ListItem newItem = new ListItem();
        //                newItem.Value = li.Value;
        //                newItem.Text = li.Text;
        //                newItem.Selected = false;

        //                if (li.Value == id)
        //                {
        //                    newItem.Selected = true;
        //                }

        //                ddl.Items.Add(newItem);
        //            }
        //        }

        //    }
        //}

        protected void btnSave_Click(object sender, EventArgs e)
        {
            int    id        = 0;
            string ccAbbrv   = txtCCAbbrv.Value,
                   ccId      = txtCCId.Value,
                   invoiceId = txtInvoiceId.Value,
                   strId     = txtId.Value;

            //char[] delimiter = { '-', '_' };

            //if (invoiceId.Split(delimiter).Length > 1)
            //{
            //    Int32.TryParse(invoiceId.Split(delimiter)[1], out id);
            //}
            Int32.TryParse(strId, out id);

            string fileName = "";

            byte[] fileData = new byte[0];
            // Check to see if file was uploaded
            if (fileUpload.PostedFile != null)
            {
                // Get a reference to PostedFile object
                HttpPostedFile uploadFile = fileUpload.PostedFile;

                // Get size of uploaded file
                int nFileLen = uploadFile.ContentLength;

                // make sure the size of the file is > 0
                if (nFileLen > 0)
                {
                    // Allocate a buffer for reading of the file
                    fileData = new byte[nFileLen];

                    // Read uploaded file from the Stream
                    uploadFile.InputStream.Read(fileData, 0, nFileLen);

                    // Create a name for the file to store
                    fileName = System.IO.Path.GetFileName(uploadFile.FileName);

                    // Write data into a file
                    //WriteToFile(Server.MapPath(strFilename), ref myData);

                    //// Store it in database
                    //int nFileID = WriteToDB(strFilename, myFile.ContentType, ref myData);
                }
            }

            Invoice1 invoice = GetInvoice(id, fileName, fileData);

            int savedInvoiceId = SaveInvoice(invoice);

            if (savedInvoiceId > 0)
            {
                SaveInvoiceItem(invoice);
            }

            ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                    "ModalScript", PageUtility.LoadEditScript(false), false);

            BindRptInvoice();

            //foreach (GridViewRow row in gvInvoiceItem.Rows)
            //{
            //    if (row.RowType == DataControlRowType.DataRow)
            //    {
            //        TextBox txtAgreementDate = row.FindControl("txtAgreementDate") as TextBox;
            //    }
            //}
        }
예제 #8
0
        private void SaveInvoiceItem(Invoice1 invoice)
        {
            //List<InvoiceItem> lstInvoiceItem = GetInvoiceItem(invoiceId);

            //if (lstInvoiceItem.Count > 0)
            //{
            //    using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            //    {
            //        var invoiceItems = db.InvoiceItem.Where(b => b.InvoiceId == invoiceId).ToList();

            //        foreach (var invoiceItem in lstInvoiceItem)
            //        {
            //            var itemInDB = db.InvoiceItem.FirstOrDefault(i => i.Id == invoiceItem.Id);

            //            if (itemInDB != null)
            //            {
            //                db.Entry(itemInDB).CurrentValues.SetValues(invoiceItem);
            //            }
            //            else
            //            {
            //                db.InvoiceItem.Add(invoiceItem);
            //            }
            //        }

            //        foreach (var item in invoiceItems)
            //        {
            //            if (lstInvoiceItem.FindIndex(i => i.Id == item.Id) < 0)
            //            {
            //                db.InvoiceItem.Remove(item);
            //            }
            //        }

            //        db.SaveChanges();
            //    }
            //}
            List <InvoiceItem2> lstInvoiceItem = GetInvoiceItem2(invoice);

            if (lstInvoiceItem.Count > 0)
            {
                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    var invoiceItems = db.InvoiceItem2.Where(b => b.Invoice1.Id == invoice.Id).ToList();
                    foreach (var invoiceItem in lstInvoiceItem)
                    {
                        var itemInDB = db.InvoiceItem2.FirstOrDefault(i => i.Id == invoiceItem.Id);

                        if (itemInDB != null)
                        {
                            db.Entry(itemInDB).CurrentValues.SetValues(invoiceItem);
                        }
                        else
                        {
                            db.InvoiceItem2.Add(invoiceItem);
                        }
                    }

                    foreach (var item in invoiceItems)
                    {
                        if (lstInvoiceItem.FindIndex(i => i.Id == item.Id) < 0)
                        {
                            //db.InvoiceItem2.Remove(item);
                            item.IsDeleted = true;
                        }
                    }

                    db.SaveChanges();
                }
            }
        }