Пример #1
0
 private static void ImportContacts()
 {
     Console.WriteLine("Importing contacts:");
     subjectIdMap = new Dictionary<int, int>();
     using (var dc = new InvoicingEntities()) {
         foreach (var c in dc.Contacts) {
             try {
                 Console.Write("  #{0}: {1}...", c.ContactId, c.CompanyName);
                 var newSubject = new JsonSubject {
                     bank_account = c.BankAccountNumber,
                     city = c.DefaultBillAddress.City,
                     country = c.DefaultBillAddress.Country,
                     custom_id = c.ContactId.ToString(),
                     email = c.ContactEmail,
                     full_name = c.ContactName,
                     name = c.CompanyName,
                     phone = c.ContactMobile,
                     registration_no = c.ICO,
                     street = c.DefaultBillAddress.Street,
                     vat_no = c.DIC,
                     zip = c.DefaultBillAddress.ZIP
                 };
                 var newId = context.Subjects.Create(newSubject);
                 Console.WriteLine("OK, ID={0}", newId);
                 subjectIdMap.Add(c.ContactId, newId);
             }
             catch (FakturoidException) {
                 Console.WriteLine("Failed!");
             }
         }
     }
 }
Пример #2
0
        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");
                }
            }
        }