예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Fakturoid API v2 C#/.NET Client Demo Application");
            Console.WriteLine("http://github.com/ridercz/Fakturoid-API");
            Console.WriteLine("Copyright (c) Michal A. Valášek - Altairis, 2013-2014");
            Console.WriteLine();

            // Verify commandline arguments
            if (args.Length != 3) {
                Console.WriteLine("USAGE: fdemo accountname email token");
                return;
            }
            var accountName = args[0];
            var email = args[1];
            var accountToken = args[2];

            // Create context
            context = new FakturoidContext(accountName, email, accountToken, "Fakturoid API v2 C#/.NET Client Demo Application ([email protected])");

            // Do some magic
            ShowAccountInfo();
            //ShowEvents();
            //ShowTodos();
            //ShowSubjects();
            //ShowInvoices();

            // Wait for ENTER
            Console.WriteLine("Press ENTER to continue...");
            Console.ReadLine();
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Fakturoid API v2 C#/.NET Client Demo Application");
            Console.WriteLine("http://github.com/ridercz/Fakturoid-API");
            Console.WriteLine("Copyright (c) Michal A. Valášek - Altairis, 2013-2014");
            Console.WriteLine();

            // Verify commandline arguments
            if (args.Length != 3)
            {
                Console.WriteLine("USAGE: fdemo accountname email token");
                return;
            }
            var accountName  = args[0];
            var email        = args[1];
            var accountToken = args[2];

            // Create context
            context = new FakturoidContext(accountName, email, accountToken, "Fakturoid API v2 C#/.NET Client Demo Application ([email protected])");

            // Do some magic
            ShowAccountInfo();
            //ShowEvents();
            //ShowTodos();
            //ShowSubjects();
            //ShowInvoices();

            // Wait for ENTER
            Console.WriteLine("Press ENTER to continue...");
            Console.ReadLine();
        }
예제 #3
0
 private KHPeriodInfo CreatePeriodInfo(FakturoidContext context, ExportSetup setup)
 {
     return(new KHPeriodInfo
     {
         ExportDate = DateTime.Now.Date.ToString("dd.MM.yyyy"),
         Month = setup.ExportMode == ExportMode.Month ? new int?(setup.Period) : null,
         Quarter = setup.ExportMode == ExportMode.Quarter ? new int?(setup.Period) : null,
         Year = setup.Year,
     });
 }
예제 #4
0
        public KHExportSheet GetExportForPeriod(ExportSetup setup)
        {
            var context = new FakturoidContext(_connectConfig.AccountName, _connectConfig.Login, _connectConfig.Key, "Fakturoid API v2 C#/.NET Client Demo Application ([email protected])");

            var sheet = new KHExportSheet();

            sheet.ExportData = CreateExportData(context, setup);


            return(sheet);
        }
예제 #5
0
        private List <KHInvoicedExpense> CreateInvoicedExpenses(FakturoidContext context, ExportSetup setup)
        {
            var expenses = context.Expenses.Select().Where(w => w.issued_on >= setup.GetReferenceDate() && w.issued_on < setup.GetEndDate() && w.total > 10000).ToList();


            return(expenses.Select(s => new KHInvoicedExpense
            {
                PriceWithoutTaxH = s.subtotal,
                PriceTaxH = s.total - s.subtotal,
            }).ToList());
        }
예제 #6
0
        private VATReceived CreateReceived(FakturoidContext context, ExportSetup setup)
        {
            var expenses = context.Expenses.Select().Where(w => w.issued_on >= setup.GetReferenceDate() && w.issued_on < setup.GetEndDate()).ToList();

            return(new VATReceived
            {
                WithoutTaxH = Decimal.Round(expenses.GetTotalWithoutVAT(FakturoidExtensions.VAT_RATE_REGULAR), 0),
                TaxH = Decimal.Round(expenses.GetVAT(FakturoidExtensions.VAT_RATE_REGULAR), 0),
                WithoutTaxL = Decimal.Round(expenses.GetTotalWithoutVAT(FakturoidExtensions.VAT_RATE_LOW), 0),
                TaxL = Decimal.Round(expenses.GetVAT(FakturoidExtensions.VAT_RATE_LOW), 0),
            });
        }
예제 #7
0
        private List <KHInvoice> CreateInvoices(FakturoidContext context, ExportSetup setup)
        {
            var invoices = context.Invoices.Select().Where(w => w.issued_on >= setup.GetReferenceDate() && w.issued_on < setup.GetEndDate());

            return(invoices.Select(s => new KHInvoice
            {
                InvoiceNumber = s.number,
                InvoiceDate = s.issued_on.Value.ToString("dd.MM.yyyy"),
                PartnerVATNumber = s.client_registration_no,
                PriceWithoutTaxH = s.subtotal,
                PriceTaxH = s.total - s.subtotal,
            }).ToList());
        }
예제 #8
0
        private KHSmallExpenses CreateSummedExpense(FakturoidContext context, ExportSetup setup)
        {
            var expenses = context.Expenses.Select().Where(w => w.issued_on >= setup.GetReferenceDate() && w.issued_on < setup.GetEndDate() && w.total < 10000).ToList();

            return(new KHSmallExpenses
            {
                PriceWithoutTaxH = expenses.GetTotalWithoutVAT(21),
                PriceTaxH = expenses.GetVAT(21),
                PriceWithoutTaxL = expenses.GetTotalWithoutVAT(15),
                PriceTaxL = expenses.GetVAT(15),
                //PriceWithoutTaxN = GetTotalWithVAT(expenses, 0),
                //PriceTaxN = GetVAT(expenses, 0),
            });
        }
예제 #9
0
        private KHExportBody CreateExportData(FakturoidContext context, ExportSetup setup)
        {
            var data = new KHExportBody
            {
                PeriodInfo       = CreatePeriodInfo(context, setup),
                Invoices         = CreateInvoices(context, setup),
                InvoicedExpenses = CreateInvoicedExpenses(context, setup),
                SmallExpenses    = CreateSummedExpense(context, setup),
                Subject          = CreateSubject(context, setup),
            };

            data.Summary = CreateSummary(data);

            return(data);
        }
예제 #10
0
        private VATExportBody CreateExportData(FakturoidContext context, ExportSetup setup)
        {
            var data = new VATExportBody
            {
                PeriodInfo  = CreatePeriodInfo(context, setup),
                Invoiced    = CreateInvoiced(context, setup),
                Received    = CreateReceived(context, setup),
                Adjustments = CreateAdjustments(context, setup),
                Subject     = CreateSubject(context, setup),
            };

            data.Summary = CreateSummary(data);

            return(data);
        }
예제 #11
0
        private Subject CreateSubject(FakturoidContext context, ExportSetup setup)
        {
            var client = context.GetAccountInfo();

            return(new Subject
            {
                FirstName = client.name.Split(' ').First(),
                Surname = client.name.Split(' ').Last(),
                Country = "ČESKÁ REPUBLIKA",
                City = client.city,
                Street = client.street,
                Email = client.email,
                VATNumber = client.vat_no.Replace("CZ", ""),
                Zip = client.zip,
                AuthorityOfficeNumber = setup.OfficeNo,
                AuthorityOffice2 = setup.OfficeDepartmentNo,
                Phone = client.phone,
            });
        }
예제 #12
0
        static void Main(string[] args)
        {
            // Verify commandline arguments
            if (args.Length != 3)
            {
                Console.WriteLine("USAGE: InvoicingImport accountname email token");
                return;
            }
            var accountName  = args[0];
            var email        = args[1];
            var accountToken = args[2];

            // Create API context
            context = new FakturoidContext(accountName, email, accountToken);

            // Process all operations
            PurgeAll();
            ImportContacts();
            ImportInvoices();
        }
예제 #13
0
        static void Main(string[] args)
        {
            // Show banner
            Console.WriteLine("Fakturoid API v2 C#/.NET Client Purge Application");
            Console.WriteLine("http://github.com/ridercz/Fakturoid-API");
            Console.WriteLine("Copyright (c) Michal A. Valášek - Altairis, 2013-2014");
            Console.WriteLine();

            // Verify commandline arguments
            if (args.Length != 3)
            {
                Console.WriteLine("USAGE: fpurge accountname email token");
                return;
            }
            var accountName  = args[0];
            var email        = args[1];
            var accountToken = args[2];

            // Create context
            var context = new FakturoidContext(accountName, accountToken, "Fakturoid API v2 C#/.NET Client Demo Application ([email protected])");

            // Get account info
            var info = context.GetAccountInfo();

            Console.WriteLine("Company name:     {0}", info.name);
            Console.WriteLine("Company reg. no.: {0}", info.registration_no);
            Console.WriteLine("Account name:     {0}", info.subdomain);
            Console.WriteLine();

            // Verify if user really wants to delete all
            var oldBg = Console.BackgroundColor;
            var oldFg = Console.ForegroundColor;

            Console.BackgroundColor = ConsoleColor.Red;
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.WriteLine("  This application will DELETE all contacts and invoices in this account!      ");
            Console.WriteLine("  It comes handy in development, but can be disastrous in production.          ");
            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.BackgroundColor = oldBg;
            Console.ForegroundColor = oldFg;

            Console.WriteLine();
            Console.WriteLine("Type 'yes' (without quotes) and press ENTER if you want to do that.");
            var r = Console.ReadLine();

            if (!r.Equals("yes"))
            {
                Console.WriteLine("Cancelled.");
                return;
            }
            Console.WriteLine();

            // Delete all invoices
            Console.Write("Getting list of invoices...");
            var invoices = context.Invoices.Select();

            Console.WriteLine("OK");

            Console.WriteLine("Deleting invoices:");
            foreach (var invoice in invoices)
            {
                try {
                    Console.Write("  #{0}: ({1}) {2}...", invoice.id, invoice.number, invoice.client_name);
                    context.Invoices.Delete(invoice.id);
                    Console.WriteLine("OK");
                }
                catch (FakturoidException fex) {
                    Console.WriteLine("Failed!");
                    Console.WriteLine("    " + fex.Message);
                }
            }

            // Delete all subjects
            Console.Write("Getting list of subjects...");
            var subjects = context.Subjects.Select();

            Console.WriteLine("OK");

            Console.WriteLine("Deleting subjects:");
            foreach (var subject in subjects)
            {
                try {
                    Console.Write("  #{0}: {1}...", subject.id, subject.name);
                    context.Subjects.Delete(subject.id);
                    Console.WriteLine("OK");
                }
                catch (FakturoidException fex) {
                    Console.WriteLine("Failed!");
                    Console.WriteLine("    " + fex.Message);
                    Console.WriteLine(fex.Message);
                }
            }

            // Okay
            Console.WriteLine("Program execution terminated successfully.");
        }
예제 #14
0
        static void Main(string[] args)
        {
            // Show banner
            Console.WriteLine("Fakturoid API v2 C#/.NET Client Purge Application");
            Console.WriteLine("http://github.com/ridercz/Fakturoid-API");
            Console.WriteLine("Copyright (c) Michal A. Valášek - Altairis, 2013-2014");
            Console.WriteLine();

            // Verify commandline arguments
            if (args.Length != 3) {
                Console.WriteLine("USAGE: fpurge accountname email token");
                return;
            }
            var accountName = args[0];
            var email = args[1];
            var accountToken = args[2];

            // Create context
            var context = new FakturoidContext(accountName, accountToken, "Fakturoid API v2 C#/.NET Client Demo Application ([email protected])");

            // Get account info
            var info = context.GetAccountInfo();
            Console.WriteLine("Company name:     {0}", info.name);
            Console.WriteLine("Company reg. no.: {0}", info.registration_no);
            Console.WriteLine("Account name:     {0}", info.subdomain);
            Console.WriteLine();

            // Verify if user really wants to delete all
            var oldBg = Console.BackgroundColor;
            var oldFg = Console.ForegroundColor;
            Console.BackgroundColor = ConsoleColor.Red;
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.WriteLine("  This application will DELETE all contacts and invoices in this account!      ");
            Console.WriteLine("  It comes handy in development, but can be disastrous in production.          ");
            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.BackgroundColor = oldBg;
            Console.ForegroundColor = oldFg;

            Console.WriteLine();
            Console.WriteLine("Type 'yes' (without quotes) and press ENTER if you want to do that.");
            var r = Console.ReadLine();
            if (!r.Equals("yes")) {
                Console.WriteLine("Cancelled.");
                return;
            }
            Console.WriteLine();

            // Delete all invoices
            Console.Write("Getting list of invoices...");
            var invoices = context.Invoices.Select();
            Console.WriteLine("OK");

            Console.WriteLine("Deleting invoices:");
            foreach (var invoice in invoices) {
                try {
                    Console.Write("  #{0}: ({1}) {2}...", invoice.id, invoice.number, invoice.client_name);
                    context.Invoices.Delete(invoice.id);
                    Console.WriteLine("OK");
                }
                catch (FakturoidException fex) {
                    Console.WriteLine("Failed!");
                    Console.WriteLine("    " + fex.Message);
                }
            }

            // Delete all subjects
            Console.Write("Getting list of subjects...");
            var subjects = context.Subjects.Select();
            Console.WriteLine("OK");

            Console.WriteLine("Deleting subjects:");
            foreach (var subject in subjects) {
                try {
                    Console.Write("  #{0}: {1}...", subject.id, subject.name);
                    context.Subjects.Delete(subject.id);
                    Console.WriteLine("OK");
                }
                catch (FakturoidException fex) {
                    Console.WriteLine("Failed!");
                    Console.WriteLine("    " + fex.Message);
                    Console.WriteLine(fex.Message);
                }
            }

            // Okay
            Console.WriteLine("Program execution terminated successfully.");
        }
예제 #15
0
 private VATAdjustments CreateAdjustments(FakturoidContext context, ExportSetup setup)
 {
     return(new VATAdjustments());
 }