private void Save(int invoiceId, int userId) { BLInvoice bLInvoice = new BLInvoice(); BLInvoiceDetail bLInvoiceDetail = new BLInvoiceDetail(); if (userId != 0 & invoiceId == 0) { string invoiceNumber = txtInvoiceNumber.Text; DateTime invoiceDate = dateInvoice.Value; ClientFullNameModel clientFullName = (ClientFullNameModel)cmbClientFullName.SelectedItem; FullAddressModule fullAddress = (FullAddressModule)cmbAddress.SelectedItem; if (fullAddress == null) { MessageBox.Show("Clientul nu are o adresa, adaugati o adresa clientului pentru a creea o factura!"); return; } int clientId = clientFullName.ClientId; int clientAddressId = fullAddress.ClientAddressId; string observations = txtObservations.Text; MessageBox.Show(clientAddressId.ToString()); bLInvoice.AddInvoice(invoiceNumber, invoiceDate, clientId, clientAddressId, userId, observations); MessageBox.Show("Factura a fost adaugata cu succes."); int invoiceIdValue = bLInvoice.GetInvoiceList(-1, "", DateTime.Now, DateTime.Now, invoiceNumber)[0].InvoiceId; Save(invoiceIdValue, 0); } if (userId == 0 & invoiceId != 0) { for (int i = 0; i < dataGridDetails.Rows.Count; i++) { InvoiceDetailModel detail = new InvoiceDetailModel(); detail = (InvoiceDetailModel)dataGridDetails.Rows[i].DataBoundItem; if (detail.Status == 1) { bLInvoiceDetail.AddDetail(invoiceId, detail.ItemName, detail.Qtty, detail.UnitPrice, detail.Amount, detail.Observations); } //INSERT if (detail.Status == 2) { bLInvoiceDetail.UpdateDetail(invoiceId, detail.InvoiceDetailId, detail.ItemName, detail.Qtty, detail.UnitPrice, detail.Amount, detail.Observations); } //UPDATE if (detail.Status == 3) { bLInvoiceDetail.DeleteDetail(invoiceId, detail.InvoiceDetailId); } } } }