private static void ImportInvoices() { Console.WriteLine("Importing invoices:"); using (var dc = new InvoicingEntities()) { foreach (var i in dc.Invoices) { // Compute invoice number var invoiceNumber = string.Format("{0}01{1:00000}", i.DateTaxed.Year - 1980, i.SeqId); // Map old contact ID to new var subjectId = subjectIdMap[i.ContactId]; Console.Write(" #{0}: {1}...", i.InvoiceId, invoiceNumber); // Create new invoice entity var newInvoice = new JsonInvoice { number = invoiceNumber, subject_id = subjectId, issued_on = i.DateCreated, taxable_fulfillment_due = i.DateTaxed, due_on = i.DateDue, lines = new List <JsonInvoiceLine>() }; // Add invoice items foreach (var l in i.Items) { newInvoice.lines.Add(new JsonInvoiceLine { name = l.Name, quantity = l.Quantity, unit_name = l.Unit, unit_price = l.UnitPrice, vat_rate = l.Tax }); } // Create invoice var newInvoiceId = context.Invoices.Create(newInvoice); Console.WriteLine("OK, ID={0}", newInvoiceId); // Get payment status if (i.Payments.Any()) { Console.Write(" #{0}: Updating payment status...", i.InvoiceId); var datePaid = i.Payments.Max(x => x.DateReceived); context.Invoices.SetPaymentStatus(newInvoiceId, InvoicePaymentStatus.Paid, datePaid); } else { Console.Write(" #{0}: Updating delivery status...", i.InvoiceId); context.Invoices.SendMessage(newInvoiceId, InvoiceMessageType.NoMessage); } Console.WriteLine("OK"); } } }
private static void ShowInvoices() { Console.Write("Creating new subject..."); var subjectId = context.Subjects.Create(new JsonSubject { name = "ACME, s. r. o.", street = "Testovací 123", city = "Praha", zip = "11000", country = "CZ", registration_no = "12345678", vat_no = "CZ12345678", email = "*****@*****.**" }); Console.WriteLine("OK, ID={0}", subjectId); Console.Write("Creating new invoice..."); var newInvoice = new JsonInvoice { subject_id = subjectId, client_street = "Jiná ulice 123", lines = new List <JsonInvoiceLine>(), }; newInvoice.lines.Add(new JsonInvoiceLine { name = "Položka 1", quantity = 1, unit_name = "ks", unit_price = 100, vat_rate = 21 }); newInvoice.lines.Add(new JsonInvoiceLine { name = "Položka 2", quantity = 3, unit_name = "hod.", unit_price = 1234, vat_rate = 21 }); var newInvoiceId = context.Invoices.Create(newInvoice); Console.WriteLine("OK, ID={0}", newInvoiceId); Console.Write("Reading back invoice information..."); newInvoice = context.Invoices.SelectSingle(newInvoiceId); Console.WriteLine("OK"); Console.Write("Sending invoice by e-mail..."); context.Invoices.SendMessage(newInvoiceId, InvoiceMessageType.InvoiceMessage); Console.WriteLine("OK"); Console.Write("Marking invoice as paid..."); context.Invoices.SetPaymentStatus(newInvoiceId, InvoicePaymentStatus.Paid); Console.WriteLine("OK"); Console.Write("Deleting invoice..."); context.Invoices.Delete(newInvoiceId); Console.WriteLine("OK"); Console.Write("Deleting subject..."); context.Subjects.Delete(subjectId); Console.WriteLine("OK"); }
private static void ShowInvoices() { Console.Write("Creating new subject..."); var subjectId = context.Subjects.Create(new JsonSubject { name = "ACME, s. r. o.", street = "Testovací 123", city = "Praha", zip = "11000", country = "CZ", registration_no = "12345678", vat_no = "CZ12345678", email = "*****@*****.**" }); Console.WriteLine("OK, ID={0}", subjectId); Console.Write("Creating new invoice..."); var newInvoice = new JsonInvoice { subject_id = subjectId, client_street = "Jiná ulice 123", lines = new List<JsonInvoiceLine>(), }; newInvoice.lines.Add(new JsonInvoiceLine { name = "Položka 1", quantity = 1, unit_name = "ks", unit_price = 100, vat_rate = 21 }); newInvoice.lines.Add(new JsonInvoiceLine { name = "Položka 2", quantity = 3, unit_name = "hod.", unit_price = 1234, vat_rate = 21 }); var newInvoiceId = context.Invoices.Create(newInvoice); Console.WriteLine("OK, ID={0}", newInvoiceId); Console.Write("Reading back invoice information..."); newInvoice = context.Invoices.SelectSingle(newInvoiceId); Console.WriteLine("OK"); Console.Write("Sending invoice by e-mail..."); context.Invoices.SendMessage(newInvoiceId, InvoiceMessageType.InvoiceMessage); Console.WriteLine("OK"); Console.Write("Marking invoice as paid..."); context.Invoices.SetPaymentStatus(newInvoiceId, InvoicePaymentStatus.Paid); Console.WriteLine("OK"); Console.Write("Deleting invoice..."); context.Invoices.Delete(newInvoiceId); Console.WriteLine("OK"); Console.Write("Deleting subject..."); context.Subjects.Delete(subjectId); Console.WriteLine("OK"); }