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); }
//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); }
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); }
//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); }
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); }
//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); } } } }
//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; // } //} }
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(); } } }