├── .gitignore ├── README.md ├── TODO.txt ├── iloire Facturacion Tests ├── CustomerTest.cs ├── HomeTest.cs ├── InvoiceDetailsTest.cs ├── InvoiceTest.cs ├── Properties │ └── AssemblyInfo.cs ├── ProviderTest.cs ├── app.config ├── iloire Facturacion Tests.csproj └── packages.config ├── iloire Facturacion.sln ├── iloire Facturacion ├── App_GlobalResources │ ├── Print.Designer.cs │ ├── Print.es.designer.cs │ ├── Print.es.resx │ └── Print.resx ├── CodeTemplates │ ├── AddController │ │ └── Controller.tt │ └── AddView │ │ └── CSHTML │ │ ├── Create.tt │ │ ├── Delete.tt │ │ ├── Details.tt │ │ ├── Edit.tt │ │ ├── Empty.tt │ │ └── List.tt ├── Content │ ├── Site.css │ ├── Site.print.css │ ├── bootstrap.extra.css │ ├── bootstrap.min.css │ ├── bootstrap.print.css │ ├── chosen.css │ ├── images │ │ ├── buttons.gif │ │ ├── chosen-sprite.png │ │ ├── logo.png │ │ └── toolbar.gif │ ├── jquery.cleditor.css │ └── themes │ │ └── base │ │ ├── images │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_2e83ff_256x240.png │ │ ├── ui-icons_454545_256x240.png │ │ ├── ui-icons_888888_256x240.png │ │ └── ui-icons_cd0a0a_256x240.png │ │ ├── jquery.ui.accordion.css │ │ ├── jquery.ui.all.css │ │ ├── jquery.ui.autocomplete.css │ │ ├── jquery.ui.base.css │ │ ├── jquery.ui.button.css │ │ ├── jquery.ui.core.css │ │ ├── jquery.ui.datepicker.css │ │ ├── jquery.ui.dialog.css │ │ ├── jquery.ui.progressbar.css │ │ ├── jquery.ui.resizable.css │ │ ├── jquery.ui.selectable.css │ │ ├── jquery.ui.slider.css │ │ ├── jquery.ui.tabs.css │ │ └── jquery.ui.theme.css ├── Controllers │ ├── AccountController.cs │ ├── CustomerController.cs │ ├── HomeController.cs │ ├── InvoiceController.cs │ ├── InvoiceDetailsController.cs │ ├── ProviderController.cs │ ├── PurchaseController.cs │ ├── PurchaseTypeController.cs │ └── ReportsController.cs ├── Global.asax ├── Global.asax.cs ├── Models │ ├── AccountModels.cs │ ├── Attributes │ │ └── HandleErrorAttribute.cs │ ├── DBContext.cs │ ├── EntitiesContextDBInitializer.cs │ ├── Helper │ │ ├── TAXDateHelper.cs │ │ └── TextHelper.cs │ ├── POCO │ │ ├── Customer.cs │ │ ├── Invoice.cs │ │ ├── InvoiceDetails.cs │ │ ├── ModelView │ │ │ ├── QuarterSummary.cs │ │ │ ├── Summary.cs │ │ │ └── YearSummary.cs │ │ ├── Provider.cs │ │ ├── Purchase.cs │ │ ├── PurchaseType.cs │ │ └── User.cs │ ├── Paging │ │ ├── IPagedList.cs │ │ ├── PagedList.cs │ │ ├── Pager.cs │ │ └── PagingExtensions.cs │ └── Security │ │ └── InvoicingMembershipProvider.cs ├── Properties │ └── AssemblyInfo.cs ├── Scripts │ ├── bootstrap-dropdown.js │ ├── bootstrap-modal.js │ ├── chosen.jquery.js │ ├── jquery-1.7.2.js │ ├── jquery-1.7.2.min.js │ ├── jquery-calendar.js │ ├── jquery-ui-1.8.11.js │ ├── jquery-ui-1.8.11.min.js │ ├── jquery.cleditor.min.js │ ├── jquery.tablesorter.min.js │ ├── jquery.unobtrusive-ajax.js │ ├── jquery.unobtrusive-ajax.min.js │ ├── jquery.validate-vsdoc.js │ ├── jquery.validate.js │ ├── jquery.validate.min.js │ ├── jquery.validate.unobtrusive.js │ ├── jquery.validate.unobtrusive.min.js │ ├── methods_es.js │ ├── modernizr-1.7.js │ └── modernizr-1.7.min.js ├── Views │ ├── Account │ │ ├── ChangePassword.cshtml │ │ ├── ChangePasswordSuccess.cshtml │ │ ├── LogOn.cshtml │ │ └── Register.cshtml │ ├── Customer │ │ ├── Create.cshtml │ │ ├── CustomerListPartial.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ ├── EditOrCreateCustomerPartial.cshtml │ │ └── Index.cshtml │ ├── Home │ │ └── Index.cshtml │ ├── Invoice │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Edit.cshtml │ │ ├── EditOrCreateInvoicePartial.cshtml │ │ ├── Index.cshtml │ │ ├── InvoicesListPartial.cshtml │ │ ├── Print.cshtml │ │ └── PrintProposal.cshtml │ ├── InvoiceDetails │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ ├── EditOrAddInvoiceDetailsPartial.cshtml │ │ └── Index.cshtml │ ├── Provider │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ └── Index.cshtml │ ├── Purchase │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ ├── EditOrCreatePurchasePartial.cshtml │ │ ├── Index.cshtml │ │ └── PurchasesListPartial.cshtml │ ├── PurchaseType │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ └── Index.cshtml │ ├── Reports │ │ ├── ByYear.cshtml │ │ ├── PeriodSummary.cshtml │ │ ├── QuarterDetails.cshtml │ │ ├── QuarterDetailsPartial.cshtml │ │ └── YearSummary.cshtml │ ├── Shared │ │ ├── DisplayMessages.cshtml │ │ ├── DisplayTemplates │ │ │ └── DateTime.cshtml │ │ ├── EditorTemplates │ │ │ ├── Currency.cshtml │ │ │ ├── DateTime.cshtml │ │ │ ├── Decimal.cshtml │ │ │ └── Number.cshtml │ │ ├── Error.cshtml │ │ ├── Menu.cshtml │ │ ├── Messages │ │ │ └── Success.cshtml │ │ ├── Money.cshtml │ │ ├── SearchBoxCompany.cshtml │ │ ├── SearchBoxItems.cshtml │ │ ├── _Layout.cshtml │ │ ├── _LayoutPrint.cshtml │ │ └── _LogOnPartial.cshtml │ ├── Web.config │ └── _ViewStart.cshtml ├── Web.Debug.config ├── Web.Release.config ├── Web.config ├── iloire Facturacion.csproj ├── iloire Facturacion.csproj.user └── packages.config ├── packages ├── EntityFramework.4.1.10331.0 │ ├── EntityFramework.4.1.10331.0.nupkg │ └── lib │ │ ├── EntityFramework.dll │ │ └── EntityFramework.xml ├── Modernizr.1.7 │ ├── Content │ │ └── Scripts │ │ │ ├── modernizr-1.7.js │ │ │ └── modernizr-1.7.min.js │ └── Modernizr.1.7.nupkg ├── Moq.4.0.10827 │ ├── License.txt │ ├── Moq.4.0.10827.nupkg │ ├── Moq.chm │ └── lib │ │ ├── NET35 │ │ ├── Moq.dll │ │ └── Moq.xml │ │ ├── NET40 │ │ ├── Moq.dll │ │ └── Moq.xml │ │ └── Silverlight4 │ │ ├── Castle.Core.dll │ │ ├── Moq.Silverlight.dll │ │ └── Moq.Silverlight.xml ├── NuGetPowerTools.0.29 │ ├── NuGetPowerTools.0.29.nupkg │ └── tools │ │ ├── MSBuild.psm1 │ │ ├── NuGetMSBuild.psm1 │ │ ├── NuGetPowerTools.psd1 │ │ ├── NuGetPowerTools.psm1 │ │ ├── VS.psm1 │ │ └── init.ps1 ├── SqlServerCompact.4.0.8482.1 │ ├── Content │ │ └── web.config.transform │ ├── NativeBinaries │ │ ├── amd64 │ │ │ ├── Microsoft.VC90.CRT │ │ │ │ ├── Microsoft.VC90.CRT.manifest │ │ │ │ ├── README_ENU.txt │ │ │ │ └── msvcr90.dll │ │ │ ├── sqlcecompact40.dll │ │ │ ├── sqlceer40EN.dll │ │ │ ├── sqlceme40.dll │ │ │ ├── sqlceqp40.dll │ │ │ └── sqlcese40.dll │ │ └── x86 │ │ │ ├── Microsoft.VC90.CRT │ │ │ ├── Microsoft.VC90.CRT.manifest │ │ │ ├── README_ENU.txt │ │ │ └── msvcr90.dll │ │ │ ├── sqlcecompact40.dll │ │ │ ├── sqlceer40EN.dll │ │ │ ├── sqlceme40.dll │ │ │ ├── sqlceqp40.dll │ │ │ └── sqlcese40.dll │ ├── SQLCE_EULA_ENU.rtf │ ├── SqlServerCompact.4.0.8482.1.nupkg │ ├── Tools │ │ ├── GetSqlCEPostBuildCmd.ps1 │ │ ├── install.ps1 │ │ └── uninstall.ps1 │ └── lib │ │ └── System.Data.SqlServerCe.dll ├── elmah.1.2.0.1 │ ├── content │ │ └── web.config.transform │ └── elmah.1.2.0.1.nupkg ├── elmah.corelibrary.1.2 │ ├── elmah.corelibrary.1.2.nupkg │ └── lib │ │ └── Elmah.dll ├── jQuery.1.5.1 │ ├── Content │ │ └── Scripts │ │ │ ├── jquery-1.5.1.js │ │ │ └── jquery-1.5.1.min.js │ └── jQuery.1.5.1.nupkg ├── jQuery.UI.Combined.1.8.11 │ ├── Content │ │ ├── Content │ │ │ └── themes │ │ │ │ └── base │ │ │ │ ├── images │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ │ ├── ui-icons_454545_256x240.png │ │ │ │ ├── ui-icons_888888_256x240.png │ │ │ │ └── ui-icons_cd0a0a_256x240.png │ │ │ │ ├── jquery.ui.accordion.css │ │ │ │ ├── jquery.ui.all.css │ │ │ │ ├── jquery.ui.autocomplete.css │ │ │ │ ├── jquery.ui.base.css │ │ │ │ ├── jquery.ui.button.css │ │ │ │ ├── jquery.ui.core.css │ │ │ │ ├── jquery.ui.datepicker.css │ │ │ │ ├── jquery.ui.dialog.css │ │ │ │ ├── jquery.ui.progressbar.css │ │ │ │ ├── jquery.ui.resizable.css │ │ │ │ ├── jquery.ui.selectable.css │ │ │ │ ├── jquery.ui.slider.css │ │ │ │ ├── jquery.ui.tabs.css │ │ │ │ └── jquery.ui.theme.css │ │ └── Scripts │ │ │ ├── jquery-ui-1.8.11.js │ │ │ └── jquery-ui-1.8.11.min.js │ └── jQuery.UI.Combined.1.8.11.nupkg ├── jQuery.Validation.1.8.0 │ ├── Content │ │ └── Scripts │ │ │ ├── jquery.validate-vsdoc.js │ │ │ ├── jquery.validate.js │ │ │ └── jquery.validate.min.js │ └── jQuery.Validation.1.8.0.nupkg ├── jQuery.vsdoc.1.5.1 │ ├── Content │ │ └── Scripts │ │ │ └── jquery-1.5.1-vsdoc.js │ └── jQuery.vsdoc.1.5.1.nupkg └── repositories.config └── screenshots ├── detail_invoice01.png ├── edit_customer01.png ├── home01.png ├── list_customer01.png ├── list_invoice01.png ├── new_customer_bootstrap_style01.png ├── printed_invoice01.png └── unit_testing01.png /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | obj/ 3 | iloire Facturacion/*.dll 4 | iloire Facturacion Tests/*.dll 5 | *.pdb 6 | *.suo 7 | iloire Facturacion/App_Error/* 8 | *.sdf -------------------------------------------------------------------------------- /TODO.txt: -------------------------------------------------------------------------------- 1 | - Be able to edit invoice number. 2 | - Protect again invoice deletion when there are invoice details. 3 | - Protect from invoice modification one is saved (drafts?) 4 | - Make sure localization and js validation works for US ui-culture. -------------------------------------------------------------------------------- /iloire Facturacion Tests/HomeTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using NUnit.Framework; 6 | using iloire_Facturacion.Controllers; 7 | 8 | namespace iloire_Facturacion_Tests 9 | { 10 | [TestFixture] 11 | public class HomeTest 12 | { 13 | [TestFixtureSetUp] 14 | public void TestSetup() 15 | { 16 | 17 | } 18 | 19 | [Test] 20 | public void TestHomeIndex() 21 | { 22 | HomeController hc = new HomeController(); 23 | System.Web.Mvc.ActionResult result = hc.Index(); 24 | Assert.IsInstanceOf(typeof(System.Web.Mvc.ViewResult), result); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /iloire Facturacion Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // La información general sobre un ensamblado se controla mediante el siguiente 6 | // conjunto de atributos. Cambie estos atributos para modificar la información 7 | // asociada con un ensamblado. 8 | [assembly: AssemblyTitle("iloire Facturacion Tests")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("iloire Facturacion Tests")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Si establece ComVisible como false, los tipos de este ensamblado no estarán visibles 18 | // para los componentes COM. Si necesita obtener acceso a un tipo de este ensamblado desde 19 | // COM, establezca el atributo ComVisible como true en este tipo. 20 | [assembly: ComVisible(false)] 21 | 22 | // El siguiente GUID sirve como identificador de typelib si este proyecto se expone a COM 23 | [assembly: Guid("fce00d34-784c-41de-86aa-aedb5b4c1afd")] 24 | 25 | // La información de versión de un ensamblado consta de los cuatro valores siguientes: 26 | // 27 | // Versión principal 28 | // Versión secundaria 29 | // Número de compilación 30 | // Revisión 31 | // 32 | // Puede especificar todos los valores o establecer como predeterminados los números de versión de compilación y de revisión 33 | // mediante el asterisco ('*'), como se muestra a continuación: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /iloire Facturacion Tests/ProviderTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using NUnit.Framework; 6 | using iloire_Facturacion.Controllers; 7 | using MvcPaging; 8 | 9 | namespace iloire_Facturacion_Tests 10 | { 11 | [TestFixture] 12 | public class ProviderTest 13 | { 14 | [TestFixtureSetUp] 15 | public void TestSetup() 16 | { 17 | 18 | } 19 | 20 | [Test] 21 | public void TestListProvider() 22 | { 23 | ProviderController pc = new ProviderController(); 24 | System.Web.Mvc.ViewResult result = pc.Index(null); 25 | Assert.IsNotNull(result.ViewData.Model); 26 | Assert.IsInstanceOf(typeof(IPagedList), result.ViewData.Model); 27 | } 28 | 29 | 30 | [Test] 31 | public void TestAddProvider() 32 | { 33 | ProviderController pc = new ProviderController(); 34 | 35 | Provider p = new Provider(); 36 | p.Address = "Address dummy"; 37 | p.City = "City dummy"; 38 | p.CompanyNumber = "23423423424"; 39 | p.CP = "508000"; 40 | p.Email = "email@email.com"; 41 | p.Fax = "342343434"; 42 | p.Name = "Provider name dummy"; 43 | p.Phone1 = "3423423423"; 44 | p.Phone2 = "234234232"; 45 | 46 | System.Web.Mvc.ActionResult result = pc.Create(p); 47 | 48 | Assert.IsInstanceOf(typeof(System.Web.Mvc.RedirectToRouteResult), result); 49 | } 50 | 51 | [Test] 52 | public void TestEditProvider() 53 | { 54 | ProviderController pc = new ProviderController(); 55 | System.Web.Mvc.ViewResult result = pc.Index(null); 56 | 57 | Provider p = ((IPagedList)result.ViewData.Model).First(); 58 | System.Web.Mvc.ActionResult customerEdition = pc.Edit(p.ProviderID); 59 | 60 | //post edited 61 | p.Address = "Address dummy"; 62 | p.City = "City dummy"; 63 | p.CompanyNumber = "23423423424"; 64 | p.CP = "508000"; 65 | p.Email = "email@email.com"; 66 | p.Fax = "342343434"; 67 | p.Name = "Company name dummy"; 68 | p.Phone1 = "3423423423"; 69 | p.Phone2 = "234234232"; 70 | 71 | System.Web.Mvc.ActionResult resultEditionView = pc.Edit(p.ProviderID); 72 | Assert.IsInstanceOf(typeof(System.Web.Mvc.ViewResult), resultEditionView); 73 | 74 | System.Web.Mvc.ActionResult resultEdition = pc.Edit(p); 75 | Assert.IsInstanceOf(typeof(System.Web.Mvc.RedirectToRouteResult), resultEdition); 76 | } 77 | 78 | [Test] 79 | public void TestDeleteProvider() 80 | { 81 | ProviderController pc = new ProviderController(); 82 | System.Web.Mvc.ViewResult result = pc.Index(null); 83 | 84 | Provider c = ((IPagedList)result.ViewData.Model).First(); 85 | Assert.NotNull(c); 86 | 87 | //ask deletion action 88 | System.Web.Mvc.ActionResult providerAskDeletion = pc.Delete(c.ProviderID); 89 | Assert.IsInstanceOf(typeof(System.Web.Mvc.ViewResult), providerAskDeletion); 90 | 91 | //delete action 92 | System.Web.Mvc.ActionResult providerDeletion = pc.DeleteConfirmed(c.ProviderID); 93 | Assert.IsInstanceOf(typeof(System.Web.Mvc.RedirectToRouteResult), providerDeletion); 94 | } 95 | } 96 | } 97 | 98 | -------------------------------------------------------------------------------- /iloire Facturacion Tests/app.config: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /iloire Facturacion Tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /iloire Facturacion.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Web Developer Express 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iloire Facturacion", "iloire Facturacion\iloire Facturacion.csproj", "{1895D1C8-FDCE-4BB7-839F-ADB779ED1EC6}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iloire Facturacion Tests", "iloire Facturacion Tests\iloire Facturacion Tests.csproj", "{F54F4D12-10BE-4084-8470-5690D7831A44}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {1895D1C8-FDCE-4BB7-839F-ADB779ED1EC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {1895D1C8-FDCE-4BB7-839F-ADB779ED1EC6}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {1895D1C8-FDCE-4BB7-839F-ADB779ED1EC6}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {1895D1C8-FDCE-4BB7-839F-ADB779ED1EC6}.Release|Any CPU.Build.0 = Release|Any CPU 18 | {F54F4D12-10BE-4084-8470-5690D7831A44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {F54F4D12-10BE-4084-8470-5690D7831A44}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {F54F4D12-10BE-4084-8470-5690D7831A44}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {F54F4D12-10BE-4084-8470-5690D7831A44}.Release|Any CPU.Build.0 = Release|Any CPU 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /iloire Facturacion/App_GlobalResources/Print.es.designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/App_GlobalResources/Print.es.designer.cs -------------------------------------------------------------------------------- /iloire Facturacion/CodeTemplates/AddView/CSHTML/Empty.tt: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | <#@ template language="C#" HostSpecific="True" #> 9 | <#@ output extension=".cshtml" #> 10 | <# 11 | MvcTextTemplateHost mvcHost = (MvcTextTemplateHost)(Host); 12 | if(!String.IsNullOrEmpty(mvcHost.ViewDataTypeName)) { 13 | #> 14 | @model <#= mvcHost.ViewDataTypeName #> 15 | 16 | <# 17 | } 18 | 19 | // The following chained if-statement outputs the file header code and markup for a partial view, a content page, or a regular view. 20 | if(mvcHost.IsPartialView) { 21 | #> 22 | <# 23 | } else if(mvcHost.IsContentPage) { 24 | #> 25 | @{ 26 | ViewBag.Title = "<#= mvcHost.ViewName#>"; 27 | <# 28 | if (!String.IsNullOrEmpty(mvcHost.MasterPageFile)) { 29 | #> 30 | Layout = "<#= mvcHost.MasterPageFile#>"; 31 | <# 32 | } 33 | #> 34 | } 35 | 36 |

<#= mvcHost.ViewName#>

37 | <# 38 | } else { 39 | #> 40 | @{ 41 | Layout = null; 42 | } 43 | 44 | 45 | 46 | 47 | 48 | <#= mvcHost.ViewName #> 49 | 50 | 51 | <# 52 | PushIndent(" "); 53 | } 54 | #> 55 | <# 56 | if(!mvcHost.IsPartialView && !mvcHost.IsContentPage) { 57 | #> 58 |
59 | 60 |
61 | <# 62 | } 63 | #> 64 | <# 65 | if(!mvcHost.IsPartialView && !mvcHost.IsContentPage) { 66 | ClearIndent(); 67 | #> 68 | 69 | 70 | <# 71 | } 72 | #> -------------------------------------------------------------------------------- /iloire Facturacion/Content/Site.print.css: -------------------------------------------------------------------------------- 1 | .noprint {display:none;} 2 | 3 | table.invoiceHeader, table.invoiceHeader tr, table.invoiceHeader tr td 4 | { 5 | border:0; 6 | } 7 | 8 | div.from 9 | { 10 | padding:10px; 11 | width:250px; 12 | } 13 | 14 | div.invoiceFooter 15 | { 16 | margin-top:30px; 17 | text-align:right; 18 | font-style:italic; 19 | } 20 | 21 | table td.invoiceFooterTitle 22 | { 23 | text-align:right; 24 | padding-right:15px; 25 | font-weight:bold; 26 | } 27 | 28 | table td.invoiceFooterValue 29 | { 30 | font-weight:bold; 31 | padding-left:15px; 32 | font-size:120%; 33 | } 34 | 35 | table td.invoiceFooterValueTotal 36 | { 37 | padding-left:15px; 38 | font-weight:bold; 39 | font-size:120%; 40 | text-decoration:underline; 41 | } 42 | 43 | hr 44 | { 45 | margin: 10px 0px 10px 0px; 46 | } -------------------------------------------------------------------------------- /iloire Facturacion/Content/bootstrap.extra.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 60px !important; 3 | } 4 | 5 | body, p, td 6 | { 7 | font-size:90% !important; 8 | } 9 | 10 | .container-fluid > .sidebar {width:120px} 11 | .container-fluid > .content {margin-left:140px} 12 | 13 | tfoot 14 | { 15 | background-color:#666666; 16 | } 17 | tfoot * 18 | { 19 | font-weight:bold; 20 | color:white; 21 | } 22 | .actions { 23 | margin-top: 18px; 24 | margin-bottom: 18px; 25 | padding: 15px 10px 15px 100px; 26 | } 27 | 28 | 29 | /*form*/ 30 | label 31 | { 32 | width:90px; 33 | } 34 | form .input 35 | { 36 | margin-left:100px; 37 | } 38 | 39 | fieldset legend 40 | { 41 | padding-left:100px; 42 | } 43 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/bootstrap.print.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 30px !important; 3 | width:850px !important; 4 | font-size:105% !important; 5 | } 6 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/images/buttons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/images/buttons.gif -------------------------------------------------------------------------------- /iloire Facturacion/Content/images/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/images/chosen-sprite.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/images/logo.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/images/toolbar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/images/toolbar.gif -------------------------------------------------------------------------------- /iloire Facturacion/Content/jquery.cleditor.css: -------------------------------------------------------------------------------- 1 | .cleditorMain {border:1px solid #999; padding:0 1px 1px; background-color:white} 2 | .cleditorMain iframe {border:none; margin:0; padding:0} 3 | .cleditorMain textarea {border:none; margin:0; padding:0; overflow-y:scroll; font:10pt Arial,Verdana; resize:none; outline:none /* webkit grip focus */} 4 | .cleditorToolbar {background: url('images/toolbar.gif') repeat} 5 | .cleditorGroup {float:left; height:26px} 6 | .cleditorButton {float:left; width:24px; height:24px; margin:1px 0 1px 0; background: url('images/buttons.gif')} 7 | .cleditorDisabled {opacity:0.3; filter:alpha(opacity=30)} 8 | .cleditorDivider {float:left; width:1px; height:23px; margin:1px 0 1px 0; background:#CCC} 9 | .cleditorPopup {border:solid 1px #999; background-color:white; position:absolute; font:10pt Arial,Verdana; cursor:default; z-index:10000} 10 | .cleditorList div {padding:2px 4px 2px 4px} 11 | .cleditorList p, 12 | .cleditorList h1, 13 | .cleditorList h2, 14 | .cleditorList h3, 15 | .cleditorList h4, 16 | .cleditorList h5, 17 | .cleditorList h6, 18 | .cleditorList font {padding:0; margin:0; background-color:Transparent} 19 | .cleditorColor {width:150px; padding:1px 0 0 1px} 20 | .cleditorColor div {float:left; width:14px; height:14px; margin:0 1px 1px 0} 21 | .cleditorPrompt {background-color:#F6F7F9; padding:4px; font-size:8.5pt} 22 | .cleditorPrompt input, 23 | .cleditorPrompt textarea {font:8.5pt Arial,Verdana;} 24 | .cleditorMsg {background-color:#FDFCEE; width:150px; padding:4px; font-size:8.5pt} 25 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/iloire Facturacion/Content/themes/base/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.accordion.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Accordion 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Accordion#theming 14 | */ 15 | /* IE/Win - Fix animation bug - #4615 */ 16 | .ui-accordion { width: 100%; } 17 | .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } 18 | .ui-accordion .ui-accordion-li-fix { display: inline; } 19 | .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } 20 | .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } 21 | .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } 22 | .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } 23 | .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } 24 | .ui-accordion .ui-accordion-content-active { display: block; } 25 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.all.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI CSS Framework 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Theming 14 | */ 15 | @import "jquery.ui.base.css"; 16 | @import "jquery.ui.theme.css"; 17 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.autocomplete.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Autocomplete 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * http://docs.jquery.com/UI/Autocomplete#theming 13 | */ 14 | .ui-autocomplete { position: absolute; cursor: default; } 15 | 16 | /* workarounds */ 17 | * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ 18 | 19 | /* 20 | * Note: While Microsoft is not the author of this file, Microsoft is 21 | * offering you a license subject to the terms of the Microsoft Software 22 | * License Terms for Microsoft ASP.NET Model View Controller 3. 23 | * Microsoft reserves all other rights. The notices below are provided 24 | * for informational purposes only and are not the license terms under 25 | * which Microsoft distributed this file. 26 | * 27 | * jQuery UI Menu 1.8.11 28 | * 29 | * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 30 | * 31 | * http://docs.jquery.com/UI/Menu#theming 32 | */ 33 | .ui-menu { 34 | list-style:none; 35 | padding: 2px; 36 | margin: 0; 37 | display:block; 38 | float: left; 39 | } 40 | .ui-menu .ui-menu { 41 | margin-top: -3px; 42 | } 43 | .ui-menu .ui-menu-item { 44 | margin:0; 45 | padding: 0; 46 | zoom: 1; 47 | float: left; 48 | clear: left; 49 | width: 100%; 50 | } 51 | .ui-menu .ui-menu-item a { 52 | text-decoration:none; 53 | display:block; 54 | padding:.2em .4em; 55 | line-height:1.5; 56 | zoom:1; 57 | } 58 | .ui-menu .ui-menu-item a.ui-state-hover, 59 | .ui-menu .ui-menu-item a.ui-state-active { 60 | font-weight: normal; 61 | margin: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.base.css: -------------------------------------------------------------------------------- 1 | @import url("jquery.ui.core.css"); 2 | @import url("jquery.ui.resizable.css"); 3 | @import url("jquery.ui.selectable.css"); 4 | @import url("jquery.ui.accordion.css"); 5 | @import url("jquery.ui.autocomplete.css"); 6 | @import url("jquery.ui.button.css"); 7 | @import url("jquery.ui.dialog.css"); 8 | @import url("jquery.ui.slider.css"); 9 | @import url("jquery.ui.tabs.css"); 10 | @import url("jquery.ui.datepicker.css"); 11 | @import url("jquery.ui.progressbar.css"); -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.button.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Button 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Button#theming 14 | */ 15 | .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ 16 | .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ 17 | button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ 18 | .ui-button-icons-only { width: 3.4em; } 19 | button.ui-button-icons-only { width: 3.7em; } 20 | 21 | /*button text element */ 22 | .ui-button .ui-button-text { display: block; line-height: 1.4; } 23 | .ui-button-text-only .ui-button-text { padding: .4em 1em; } 24 | .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } 25 | .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } 26 | .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } 27 | .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } 28 | /* no icon support for input elements, provide padding by default */ 29 | input.ui-button { padding: .4em 1em; } 30 | 31 | /*button icon element(s) */ 32 | .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } 33 | .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } 34 | .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } 35 | .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 36 | .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 37 | 38 | /*button sets*/ 39 | .ui-buttonset { margin-right: 7px; } 40 | .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } 41 | 42 | /* workarounds */ 43 | button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ 44 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.core.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI CSS Framework 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Theming/API 14 | */ 15 | 16 | /* Layout helpers 17 | ----------------------------------*/ 18 | .ui-helper-hidden { display: none; } 19 | .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } 20 | .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } 21 | .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } 22 | .ui-helper-clearfix { display: inline-block; } 23 | /* required comment for clearfix to work in Opera \*/ 24 | * html .ui-helper-clearfix { height:1%; } 25 | .ui-helper-clearfix { display:block; } 26 | /* end clearfix */ 27 | .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } 28 | 29 | 30 | /* Interaction Cues 31 | ----------------------------------*/ 32 | .ui-state-disabled { cursor: default !important; } 33 | 34 | 35 | /* Icons 36 | ----------------------------------*/ 37 | 38 | /* states and images */ 39 | .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } 40 | 41 | 42 | /* Misc visuals 43 | ----------------------------------*/ 44 | 45 | /* Overlays */ 46 | .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } 47 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.dialog.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Dialog 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Dialog#theming 14 | */ 15 | .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } 16 | .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } 17 | .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 18 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } 19 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } 20 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } 21 | .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } 22 | .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } 23 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } 24 | .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } 25 | .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } 26 | .ui-draggable .ui-dialog-titlebar { cursor: move; } 27 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.progressbar.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Progressbar 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Progressbar#theming 14 | */ 15 | .ui-progressbar { height:2em; text-align: left; } 16 | .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.resizable.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Resizable 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)] 12 | * 13 | * http://docs.jquery.com/UI/Resizable#theming 14 | */ 15 | .ui-resizable { position: relative;} 16 | .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} 17 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } 18 | .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } 19 | .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } 20 | .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } 21 | .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } 22 | .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } 23 | .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } 24 | .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } 25 | .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.selectable.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Selectable 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Selectable#theming 14 | */ 15 | .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 16 | -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.slider.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Slider 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Slider#theming 14 | */ 15 | .ui-slider { position: relative; text-align: left; } 16 | .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } 17 | .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } 18 | 19 | .ui-slider-horizontal { height: .8em; } 20 | .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } 21 | .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } 22 | .ui-slider-horizontal .ui-slider-range-min { left: 0; } 23 | .ui-slider-horizontal .ui-slider-range-max { right: 0; } 24 | 25 | .ui-slider-vertical { width: .8em; height: 100px; } 26 | .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } 27 | .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } 28 | .ui-slider-vertical .ui-slider-range-min { bottom: 0; } 29 | .ui-slider-vertical .ui-slider-range-max { top: 0; } -------------------------------------------------------------------------------- /iloire Facturacion/Content/themes/base/jquery.ui.tabs.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Tabs 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Tabs#theming 14 | */ 15 | .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 16 | .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } 17 | .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } 18 | .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } 19 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } 20 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } 21 | .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ 22 | .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } 23 | .ui-tabs .ui-tabs-hide { display: none !important; } 24 | -------------------------------------------------------------------------------- /iloire Facturacion/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | /* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | */ 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Web; 11 | using System.Web.Mvc; 12 | 13 | namespace iloire_Facturacion.Controllers 14 | { 15 | [Authorize] 16 | public class HomeController : Controller 17 | { 18 | public ActionResult Index() 19 | { 20 | return View(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /iloire Facturacion/Controllers/PurchaseTypeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data; 4 | using System.Data.Entity; 5 | using System.Linq; 6 | using System.Web; 7 | using System.Web.Mvc; 8 | 9 | namespace iloire_Facturacion.Controllers 10 | { 11 | public class PurchaseTypeController : Controller 12 | { 13 | private InvoiceDB db = new InvoiceDB(); 14 | 15 | // 16 | // GET: /PurchaseType/ 17 | 18 | public ViewResult Index() 19 | { 20 | return View(db.PurchaseTypes.OrderBy(p=>p.Name).ToList()); 21 | } 22 | 23 | // 24 | // GET: /PurchaseType/Details/5 25 | 26 | public ViewResult Details(int id) 27 | { 28 | PurchaseType purchasetype = db.PurchaseTypes.Find(id); 29 | return View(purchasetype); 30 | } 31 | 32 | // 33 | // GET: /PurchaseType/Create 34 | 35 | public ActionResult Create() 36 | { 37 | return View(); 38 | } 39 | 40 | // 41 | // POST: /PurchaseType/Create 42 | 43 | [HttpPost] 44 | public ActionResult Create(PurchaseType purchasetype) 45 | { 46 | if (ModelState.IsValid) 47 | { 48 | db.PurchaseTypes.Add(purchasetype); 49 | db.SaveChanges(); 50 | return RedirectToAction("Index"); 51 | } 52 | 53 | return View(purchasetype); 54 | } 55 | 56 | // 57 | // GET: /PurchaseType/Edit/5 58 | 59 | public ActionResult Edit(int id) 60 | { 61 | PurchaseType purchasetype = db.PurchaseTypes.Find(id); 62 | return View(purchasetype); 63 | } 64 | 65 | // 66 | // POST: /PurchaseType/Edit/5 67 | 68 | [HttpPost] 69 | public ActionResult Edit(PurchaseType purchasetype) 70 | { 71 | if (ModelState.IsValid) 72 | { 73 | db.Entry(purchasetype).State = EntityState.Modified; 74 | db.SaveChanges(); 75 | return RedirectToAction("Index"); 76 | } 77 | return View(purchasetype); 78 | } 79 | 80 | // 81 | // GET: /PurchaseType/Delete/5 82 | 83 | public ActionResult Delete(int id) 84 | { 85 | PurchaseType purchasetype = db.PurchaseTypes.Find(id); 86 | return View(purchasetype); 87 | } 88 | 89 | // 90 | // POST: /PurchaseType/Delete/5 91 | 92 | [HttpPost, ActionName("Delete")] 93 | public ActionResult DeleteConfirmed(int id) 94 | { 95 | PurchaseType purchasetype = db.PurchaseTypes.Find(id); 96 | db.PurchaseTypes.Remove(purchasetype); 97 | db.SaveChanges(); 98 | return RedirectToAction("Index"); 99 | } 100 | 101 | protected override void Dispose(bool disposing) 102 | { 103 | db.Dispose(); 104 | base.Dispose(disposing); 105 | } 106 | } 107 | } -------------------------------------------------------------------------------- /iloire Facturacion/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="iloire_Facturacion.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /iloire Facturacion/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | namespace iloire_Facturacion 9 | { 10 | // Nota: para obtener instrucciones sobre cómo habilitar el modo clásico de IIS6 o IIS7, 11 | // visite http://go.microsoft.com/?LinkId=9394801 12 | 13 | public class MvcApplication : System.Web.HttpApplication 14 | { 15 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 16 | { 17 | filters.Add(new HandleErrorAttribute()); 18 | } 19 | 20 | public static void RegisterRoutes(RouteCollection routes) 21 | { 22 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 23 | 24 | routes.MapRoute( 25 | "Invoice", // Nombre de ruta 26 | "Invoice/{action}/{id}", // URL con parámetros 27 | new { controller = "Invoice", action = "Index", id = UrlParameter.Optional, proposal = false } // Valores predeterminados de parámetro 28 | ); 29 | 30 | routes.MapRoute( 31 | "Proposal", // Nombre de ruta 32 | "Proposal/{action}/{id}", // URL con parámetros 33 | new { controller = "Invoice", action = "Index", id = UrlParameter.Optional, proposal=true } // Valores predeterminados de parámetro 34 | ); 35 | 36 | 37 | routes.MapRoute( 38 | "Default", // Nombre de ruta 39 | "{controller}/{action}/{id}", // URL con parámetros 40 | new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Valores predeterminados de parámetro 41 | ); 42 | 43 | } 44 | 45 | protected void Application_Start() 46 | { 47 | if (System.Configuration.ConfigurationManager.AppSettings["DropDatabaseOnChange"] == "1") 48 | { 49 | //Set initializer to populate data on database creation 50 | System.Data.Entity.Database.SetInitializer(new EntitiesContextInitializer()); 51 | } 52 | 53 | AreaRegistration.RegisterAllAreas(); 54 | 55 | RegisterGlobalFilters(GlobalFilters.Filters); 56 | RegisterRoutes(RouteTable.Routes); 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/AccountModels.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Globalization; 5 | using System.Web.Mvc; 6 | using System.Web.Security; 7 | 8 | namespace iloire_Facturacion.Models 9 | { 10 | 11 | public class ChangePasswordModel 12 | { 13 | [Required] 14 | [DataType(DataType.Password)] 15 | [Display(Name = "Current password")] 16 | public string OldPassword { get; set; } 17 | 18 | [Required] 19 | [StringLength(100, ErrorMessage = "Minimum password of {0} must be al least {2} character length", MinimumLength = 6)] 20 | [DataType(DataType.Password)] 21 | [Display(Name = "New password")] 22 | public string NewPassword { get; set; } 23 | 24 | [DataType(DataType.Password)] 25 | [Display(Name = "Confirm new password")] 26 | [Compare("NewPassword", ErrorMessage = "New password and confirmation password are not the same")] 27 | public string ConfirmPassword { get; set; } 28 | } 29 | 30 | public class LogOnModel 31 | { 32 | [Required] 33 | [Display(Name = "User name")] 34 | public string UserName { get; set; } 35 | 36 | [Required] 37 | [DataType(DataType.Password)] 38 | [Display(Name = "Password")] 39 | public string Password { get; set; } 40 | 41 | [Display(Name = "Remember my account")] 42 | public bool RememberMe { get; set; } 43 | } 44 | 45 | public class RegisterModel 46 | { 47 | [Required] 48 | [Display(Name = "User name")] 49 | public string UserName { get; set; } 50 | 51 | [Required] 52 | [DataType(DataType.EmailAddress)] 53 | [Display(Name = "Email address")] 54 | public string Email { get; set; } 55 | 56 | [Required] 57 | [StringLength(100, ErrorMessage = "Minimum length of {0} is {2}.", MinimumLength = 6)] 58 | [DataType(DataType.Password)] 59 | [Display(Name = "Password")] 60 | public string Password { get; set; } 61 | 62 | [DataType(DataType.Password)] 63 | [Display(Name = "Confirm password")] 64 | [Compare("Password", ErrorMessage = "New password and confirmation password are not the same")] 65 | public string ConfirmPassword { get; set; } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /iloire Facturacion/Models/Attributes/HandleErrorAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using Elmah; 7 | 8 | namespace iloire_Facturacion.Models.Attributes 9 | { 10 | public class HandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute 11 | { 12 | public override void OnException(ExceptionContext context) 13 | { 14 | base.OnException(context); 15 | 16 | var e = context.Exception; 17 | if (!context.ExceptionHandled // if unhandled, will be logged anyhow 18 | || RaiseErrorSignal(e) // prefer signaling, if possible 19 | || IsFiltered(context)) // filtered? 20 | return; 21 | 22 | LogException(e); 23 | } 24 | 25 | private static bool RaiseErrorSignal(Exception e) 26 | { 27 | var context = HttpContext.Current; 28 | if (context == null) 29 | return false; 30 | var signal = ErrorSignal.FromContext(context); 31 | if (signal == null) 32 | return false; 33 | signal.Raise(e, context); 34 | return true; 35 | } 36 | 37 | private static bool IsFiltered(ExceptionContext context) 38 | { 39 | var config = context.HttpContext.GetSection("elmah/errorFilter") 40 | as ErrorFilterConfiguration; 41 | 42 | if (config == null) 43 | return false; 44 | 45 | var testContext = new ErrorFilterModule.AssertionHelperContext( 46 | context.Exception, HttpContext.Current); 47 | 48 | return config.Assertion.Test(testContext); 49 | } 50 | 51 | private static void LogException(Exception e) 52 | { 53 | var context = HttpContext.Current; 54 | ErrorLog.GetDefault(context).Log(new Error(e, context)); 55 | } 56 | } 57 | } 58 | 59 | -------------------------------------------------------------------------------- /iloire Facturacion/Models/DBContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Data.Entity; 3 | using System.Collections.Generic; 4 | 5 | public class InvoiceDB : DbContext { 6 | 7 | public InvoiceDB() 8 | { 9 | 10 | } 11 | 12 | public DbSet Customers {get; set;} 13 | public DbSet Providers { get; set; } 14 | public DbSet Invoices {get; set;} 15 | public DbSet Purchases { get; set; } 16 | public DbSet PurchaseTypes { get; set; } 17 | public DbSet InvoiceDetails { get; set; } 18 | 19 | public DbSet Users { get; set; } 20 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/Helper/TAXDateHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class TaxDateHelper { 4 | 5 | 6 | public static DateTime GetEndDate(int q, int year) 7 | { 8 | if (q == 1) 9 | return GetStartDate(2,year).AddDays(-1); 10 | else if (q == 2) 11 | return GetStartDate(3, year).AddDays(-1); 12 | else if (q == 3) 13 | return GetStartDate(4, year).AddDays(-1); 14 | else if (q == 4) 15 | return new DateTime(year, 12, 31); 16 | else 17 | throw new ArgumentException("Invalid quarter (valid numbers from 1 to 4)"); 18 | } 19 | 20 | 21 | public static DateTime GetStartDate(int q, int year){ 22 | if (q == 1) 23 | return new DateTime(year, 1, 1); 24 | else if (q == 2) 25 | return new DateTime(year, 4, 1); 26 | else if (q == 3) 27 | return new DateTime(year, 7, 1); 28 | else if (q == 4) 29 | return new DateTime(year, 10, 1); 30 | else 31 | throw new ArgumentException("Invalid quarter (valid numbers from 1 to 4)"); 32 | 33 | } 34 | 35 | 36 | public static void CalculateQuarter(DateTime date, out int quarter, out int year, out DateTime start, out DateTime end) 37 | { 38 | year=date.Year; 39 | if (date < GetStartDate(2,year)){ 40 | quarter = 1; 41 | 42 | start = GetStartDate(1,year); 43 | end = GetStartDate(2,year).AddDays(-1); 44 | } 45 | else if (date < GetStartDate(3,year)) 46 | { 47 | quarter = 2; 48 | 49 | start = GetStartDate(2,year); 50 | end = GetStartDate(3,year).AddDays(-1); 51 | } 52 | else if (date < GetStartDate(4,year)) 53 | { 54 | quarter = 3; 55 | 56 | start = GetStartDate(3,year); 57 | end = GetStartDate(4,year).AddDays(-1); 58 | } 59 | else 60 | { 61 | quarter = 4; 62 | 63 | start = GetStartDate(4,year); 64 | end = new DateTime(year, 12, 31); 65 | } 66 | 67 | } 68 | 69 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/Helper/TextHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | namespace System.Web.Mvc 3 | { 4 | public static class TextHelper 5 | { 6 | public static string Truncate(this HtmlHelper helper, string input, int length) 7 | { 8 | if (string.IsNullOrWhiteSpace(input)) 9 | return ""; 10 | 11 | if (input.Length <= length) 12 | { 13 | return input; 14 | } 15 | else 16 | { 17 | return input.Substring(0, length) + "..."; 18 | } 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/Customer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel; 5 | 6 | public class Customer { 7 | 8 | public int CustomerID {get;set;} 9 | 10 | [Required (ErrorMessage="Name required")] 11 | [DisplayName("Name")] 12 | public string Name { get; set; } 13 | 14 | [DisplayName("C.ID")] 15 | [Required(ErrorMessage = "Field required")] 16 | public string CompanyNumber { get; set; } 17 | 18 | [Required(ErrorMessage = "Address required")] 19 | public string Address { get; set; } 20 | 21 | [Required(ErrorMessage = "Zip code required")] 22 | [DisplayName("Zip Code")] 23 | public string CP { get; set; } 24 | 25 | [Required(ErrorMessage = "City required")] 26 | public string City { get; set; } 27 | 28 | [Required(ErrorMessage = "Contact person required")] 29 | [DisplayName("Contact person")] 30 | public string ContactPerson { get;set; } 31 | 32 | [Required(ErrorMessage = "Telephone required")] 33 | [DisplayName("Telephone")] 34 | public string Phone1 { get; set; } 35 | 36 | [DisplayName("Mobile")] 37 | public string Phone2 { get; set; } 38 | 39 | public string Fax { get; set; } 40 | 41 | [Required(ErrorMessage = "Email required")] 42 | [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Wrong email format")] 43 | public string Email { get; set; } 44 | 45 | public string Notes { get;set; } 46 | 47 | public virtual ICollection Invoices { get; set; } 48 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/Invoice.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.ComponentModel; 6 | using System.ComponentModel.DataAnnotations; 7 | 8 | public class Invoice 9 | { 10 | public Invoice() { 11 | InvoiceDetails = new List(); 12 | } 13 | 14 | public int InvoiceID { get; set; } 15 | 16 | [DisplayName("Invoice Number")] 17 | public int InvoiceNumber { get; set; } 18 | 19 | public bool IsProposal { 20 | get { 21 | return (this.InvoiceNumber == null || this.InvoiceNumber == 0); 22 | } 23 | } 24 | 25 | public int CustomerID { get; set; } 26 | public virtual Customer Customer { get; set; } 27 | 28 | public string Name { get; set; } 29 | 30 | [DisplayName("Name/Notes")] 31 | [Required] 32 | public string Notes { get; set; } 33 | 34 | [DisplayName("Proposal Details")] 35 | public string ProposalDetails { get; set; } 36 | 37 | [DisplayName("Created")] 38 | public DateTime TimeStamp { get; set; } 39 | 40 | [DisplayName("Due Date")] 41 | public DateTime DueDate { get; set; } 42 | 43 | [DisplayName("Advance Payment Tax")] 44 | [Range(0.00, 100.0, ErrorMessage = "Value must be a % between 0 and 100")] 45 | public decimal AdvancePaymentTax { get; set; } 46 | 47 | public bool Paid { get; set; } 48 | 49 | public virtual ICollection InvoiceDetails { get; set; } 50 | 51 | #region Calculated fields 52 | public decimal VATAmount { 53 | get { 54 | return this.TotalWithVAT - this.NetTotal; 55 | } 56 | } 57 | 58 | /// 59 | /// Total before TAX 60 | /// 61 | public decimal NetTotal 62 | { 63 | get { 64 | if (InvoiceDetails == null) 65 | return 0; 66 | 67 | return InvoiceDetails.Sum(i => i.Total); 68 | } 69 | } 70 | 71 | public decimal AdvancePaymentTaxAmount 72 | { 73 | get 74 | { 75 | if (InvoiceDetails == null) 76 | return 0; 77 | 78 | return NetTotal * (AdvancePaymentTax/100); 79 | } 80 | } 81 | 82 | /// 83 | /// Total with tax 84 | /// 85 | public decimal TotalWithVAT 86 | { 87 | get 88 | { 89 | if (InvoiceDetails == null) 90 | return 0; 91 | 92 | return InvoiceDetails.Sum(i => i.TotalPlusVAT); 93 | } 94 | } 95 | 96 | /// 97 | /// Total with VAT minus advanced tax payment 98 | /// 99 | public decimal TotalToPay { 100 | get { 101 | return TotalWithVAT - AdvancePaymentTaxAmount; 102 | } 103 | } 104 | #endregion 105 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/InvoiceDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | using System.ComponentModel; 4 | 5 | public class InvoiceDetails 6 | { 7 | public int InvoiceDetailsID { get; set; } 8 | 9 | public int InvoiceID { get; set; } 10 | public virtual Invoice Invoice { get; set; } 11 | 12 | [Required] 13 | public string Article { get; set; } 14 | 15 | [Range(-100000, 100000, ErrorMessage = "Quantity must be between 1 and 100000")] 16 | public int Qty { get; set; } 17 | 18 | [Range(0.01, 999999999, ErrorMessage = "Price must be between 0.01 and 999999999")] 19 | public decimal Price { get; set; } 20 | 21 | [Range(0.00, 100, ErrorMessage = "VAT must be a % between 0 and 100")] 22 | public decimal VAT { get; set; } 23 | 24 | [DisplayName("Created")] 25 | public DateTime TimeStamp { get; set; } 26 | 27 | #region Calculated fields 28 | public decimal Total { 29 | get { 30 | return Qty * Price; 31 | } 32 | } 33 | 34 | public decimal VATAmount 35 | { 36 | get 37 | { 38 | return TotalPlusVAT - Total; 39 | } 40 | } 41 | 42 | public decimal TotalPlusVAT 43 | { 44 | get 45 | { 46 | return Total * (1 + VAT / 100); 47 | } 48 | } 49 | #endregion 50 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/ModelView/QuarterSummary.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel; 5 | 6 | public class QuarterSummary 7 | { 8 | public int Year { get; set; } 9 | 10 | public Summary Month1 { get; set; } 11 | public Summary Month2 { get; set; } 12 | public Summary Month3 { get; set; } 13 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/ModelView/Summary.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel; 5 | 6 | public class Summary 7 | { 8 | public int Year { get; set; } 9 | 10 | public DateTime From { get; set; } 11 | public DateTime To { get; set; } 12 | 13 | public List Invoices { get; set; } 14 | public List Purchases { get; set; } 15 | public List PurchaseTypes { get; set; } 16 | 17 | public decimal AmountPaid { get; set; } 18 | public decimal NetIncome { get; set; } 19 | public decimal GrossIncome { get; set; } 20 | 21 | public decimal NetExpense { get; set; } 22 | public decimal GrossExpense { get; set; } 23 | public decimal NetBenefit { get { return NetIncome - NetExpense; } } 24 | 25 | public decimal VATReceived { get; set; } 26 | public decimal VATPaid { get; set; } 27 | 28 | public decimal VATBalance { get; set; } 29 | 30 | public decimal AdvancePaymentTaxPaid { get; set; } 31 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/ModelView/YearSummary.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel; 5 | 6 | public class YearSummary 7 | { 8 | public Summary Q1 { get; set; } 9 | public Summary Q2 { get; set; } 10 | public Summary Q3 { get; set; } 11 | public Summary Q4 { get; set; } 12 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/Provider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel; 5 | 6 | public class Provider { 7 | 8 | public int ProviderID {get;set;} 9 | 10 | [Required] 11 | public string Name { get; set; } 12 | 13 | [DisplayName("Company Number")] 14 | //[Required] 15 | public string CompanyNumber { get; set; } 16 | 17 | //[Required] 18 | public string Address { get; set; } 19 | 20 | //[Required] 21 | [DisplayName("Zip Code")] 22 | public string CP { get; set; } 23 | 24 | //[Required] 25 | public string City { get; set; } 26 | 27 | //[Required] 28 | [DisplayName("Telephone")] 29 | public string Phone1 { get; set; } 30 | 31 | [DisplayName("Mobile")] 32 | public string Phone2 { get; set; } 33 | 34 | public string Fax { get; set; } 35 | 36 | //[Required] 37 | [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Wrong email format")] 38 | public string Email { get; set; } 39 | 40 | public virtual ICollection Purchases { get; set; } 41 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/Purchase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | using System.ComponentModel; 4 | 5 | public class Purchase 6 | { 7 | public int PurchaseID { get; set; } 8 | 9 | [Required] 10 | public string Article {get;set;} 11 | 12 | [Range(0.1, 999999999, ErrorMessage = "Price must be between 1 and 999999999")] 13 | public decimal Price { get; set; } 14 | 15 | [Range(0.00, 100.0, ErrorMessage = "VAT must be a % between 0 and 100")] 16 | public decimal VAT { get; set; } 17 | 18 | public int ProviderID { get; set; } 19 | public virtual Provider Provider { get; set; } 20 | 21 | public string Notes { get; set; } 22 | 23 | [DisplayName("Created")] 24 | public DateTime TimeStamp { get; set; } 25 | 26 | public int PurchaseTypeID { get; set; } 27 | [DisplayName("Expense category")] 28 | public virtual PurchaseType PurchaseType { get; set; } 29 | 30 | [DisplayName("Advance Payment Tax")] 31 | [Range(0.00, 100.0, ErrorMessage = "Value must be a % between 0 and 100")] 32 | public decimal AdvancePaymentTax { get; set; } 33 | 34 | #region Calculated fields 35 | public decimal SubTotal 36 | { 37 | get 38 | { 39 | return Price; 40 | } 41 | } 42 | 43 | public decimal TotalWithVAT 44 | { 45 | 46 | get 47 | { 48 | return Price + (Price * VAT / 100); 49 | } 50 | } 51 | 52 | public decimal VATAmount 53 | { 54 | get 55 | { 56 | return TotalWithVAT - SubTotal; 57 | } 58 | } 59 | #endregion 60 | 61 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/PurchaseType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | using System.ComponentModel; 4 | using System.Collections.Generic; 5 | 6 | public class PurchaseType 7 | { 8 | public int PurchaseTypeID { get; set; } 9 | 10 | [Required] 11 | public string Name { get; set; } 12 | 13 | public string Descr { get; set; } 14 | 15 | public virtual ICollection Purchases { get; set; } 16 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/POCO/User.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel; 5 | 6 | public class User 7 | { 8 | public int UserID { get; set; } 9 | 10 | [Required] 11 | public string Name { get; set; } 12 | 13 | [Required] 14 | public string Login { get; set; } 15 | 16 | [Required] 17 | public string Password { get; set; } 18 | 19 | public bool Enabled { get; set; } 20 | 21 | [Required] 22 | [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Wrong email format")] 23 | public string Email { get; set; } 24 | 25 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/Paging/IPagedList.cs: -------------------------------------------------------------------------------- 1 | //author: https://github.com/martijnboland/MvcPaging 2 | using System.Collections.Generic; 3 | 4 | namespace MvcPaging 5 | { 6 | public interface IPagedList : IList 7 | { 8 | int PageCount { get; } 9 | int TotalItemCount { get; } 10 | int PageIndex { get; } 11 | int PageNumber { get; } 12 | int PageSize { get; } 13 | bool HasPreviousPage { get; } 14 | bool HasNextPage { get; } 15 | bool IsFirstPage { get; } 16 | bool IsLastPage { get; } 17 | } 18 | } -------------------------------------------------------------------------------- /iloire Facturacion/Models/Paging/PagedList.cs: -------------------------------------------------------------------------------- 1 | //author: https://github.com/martijnboland/MvcPaging 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | 6 | namespace MvcPaging 7 | { 8 | public class PagedList : List, IPagedList 9 | { 10 | public PagedList(IEnumerable source, int index, int pageSize, int? totalCount = null) 11 | : this(source.AsQueryable(), index, pageSize, totalCount) 12 | { 13 | } 14 | 15 | public PagedList(IQueryable source, int index, int pageSize, int? totalCount = null) 16 | { 17 | if (index < 0) 18 | throw new ArgumentOutOfRangeException("index", "Value can not be below 0."); 19 | if (pageSize < 1) 20 | throw new ArgumentOutOfRangeException("pageSize", "Value can not be less than 1."); 21 | 22 | if (source == null) 23 | source = new List().AsQueryable(); 24 | 25 | var realTotalCount = source.Count(); 26 | 27 | PageSize = pageSize; 28 | PageIndex = index; 29 | TotalItemCount = totalCount.HasValue ? totalCount.Value : realTotalCount; 30 | PageCount = TotalItemCount > 0 ? (int)Math.Ceiling(TotalItemCount / (double)PageSize) : 0; 31 | 32 | HasPreviousPage = (PageIndex > 0); 33 | HasNextPage = (PageIndex < (PageCount - 1)); 34 | IsFirstPage = (PageIndex <= 0); 35 | IsLastPage = (PageIndex >= (PageCount - 1)); 36 | 37 | if (TotalItemCount <= 0) 38 | return; 39 | 40 | var realTotalPages = (int)Math.Ceiling(realTotalCount / (double)PageSize); 41 | 42 | if (realTotalCount < TotalItemCount && realTotalPages <= PageIndex) 43 | AddRange(source.Skip((realTotalPages - 1) * PageSize).Take(PageSize)); 44 | else 45 | AddRange(source.Skip(PageIndex * PageSize).Take(PageSize)); 46 | } 47 | 48 | #region IPagedList Members 49 | 50 | public int PageCount { get; private set; } 51 | public int TotalItemCount { get; private set; } 52 | public int PageIndex { get; private set; } 53 | public int PageNumber { get { return PageIndex + 1; } } 54 | public int PageSize { get; private set; } 55 | public bool HasPreviousPage { get; private set; } 56 | public bool HasNextPage { get; private set; } 57 | public bool IsFirstPage { get; private set; } 58 | public bool IsLastPage { get; private set; } 59 | 60 | #endregion 61 | } 62 | } -------------------------------------------------------------------------------- /iloire Facturacion/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // La información general sobre un ensamblado se controla mediante el siguiente 6 | // conjunto de atributos. Cambie los valores de estos atributos para modificar la información 7 | // asociada a un ensamblado. 8 | [assembly: AssemblyTitle("iloire_Facturacion")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("iloire_Facturacion")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Si ComVisible se establece en False, los componentes COM no verán los 18 | // tipos de este ensamblado. Si necesita obtener acceso a un tipo de este ensamblado desde 19 | // COM, establezca el atributo ComVisible en True en este tipo. 20 | [assembly: ComVisible(false)] 21 | 22 | // El siguiente GUID sirve como ID de la biblioteca de tipos si este proyecto se expone a COM. 23 | [assembly: Guid("aab810b5-fe9b-4ca1-a7b4-e741c0b314b7")] 24 | 25 | // La información de versión de un ensamblado consta de los siguientes cuatro valores: 26 | // 27 | // Versión principal 28 | // Versión secundaria 29 | // Número de compilación 30 | // Revisión 31 | // 32 | // Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión 33 | // mediante el carácter '*', como se muestra a continuación: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /iloire Facturacion/Scripts/bootstrap-dropdown.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrap-dropdown.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#dropdown 4 | * ============================================================ 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | !function( $ ){ 22 | 23 | /* DROPDOWN PLUGIN DEFINITION 24 | * ========================== */ 25 | 26 | $.fn.dropdown = function ( selector ) { 27 | return this.each(function () { 28 | $(this).delegate(selector || d, 'click', function (e) { 29 | var li = $(this).parent('li') 30 | , isActive = li.hasClass('open') 31 | 32 | clearMenus() 33 | !isActive && li.toggleClass('open') 34 | return false 35 | }) 36 | }) 37 | } 38 | 39 | /* APPLY TO STANDARD DROPDOWN ELEMENTS 40 | * =================================== */ 41 | 42 | var d = 'a.menu, .dropdown-toggle' 43 | 44 | function clearMenus() { 45 | $(d).parent('li').removeClass('open') 46 | } 47 | 48 | $(function () { 49 | $('html').bind("click", clearMenus) 50 | $('body').dropdown( '[data-dropdown] a.menu, [data-dropdown] .dropdown-toggle' ) 51 | }) 52 | 53 | }( window.jQuery || window.ender ); 54 | -------------------------------------------------------------------------------- /iloire Facturacion/Scripts/jquery.unobtrusive-ajax.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | ** Unobtrusive Ajax support library for jQuery 3 | ** Copyright (C) Microsoft Corporation. All rights reserved. 4 | */ 5 | (function(a){var b="unobtrusiveAjaxClick",g="unobtrusiveValidation";function c(d,b){var a=window,c=(d||"").split(".");while(a&&c.length)a=a[c.shift()];if(typeof a==="function")return a;b.push(d);return Function.constructor.apply(null,b)}function d(a){return a==="GET"||a==="POST"}function f(b,a){!d(a)&&b.setRequestHeader("X-HTTP-Method-Override",a)}function h(c,b,e){var d;if(e.indexOf("application/x-javascript")!==-1)return;d=(c.getAttribute("data-ajax-mode")||"").toUpperCase();a(c.getAttribute("data-ajax-update")).each(function(f,c){var e;switch(d){case"BEFORE":e=c.firstChild;a("
").html(b).contents().each(function(){c.insertBefore(this,e)});break;case"AFTER":a("
").html(b).contents().each(function(){c.appendChild(this)});break;default:a(c).html(b)}})}function e(b,e){var j,k,g,i;j=b.getAttribute("data-ajax-confirm");if(j&&!window.confirm(j))return;k=a(b.getAttribute("data-ajax-loading"));i=b.getAttribute("data-ajax-loading-duration")||0;a.extend(e,{type:b.getAttribute("data-ajax-method")||undefined,url:b.getAttribute("data-ajax-url")||undefined,beforeSend:function(d){var a;f(d,g);a=c(b.getAttribute("data-ajax-begin"),["xhr"]).apply(this,arguments);a!==false&&k.show(i);return a},complete:function(){k.hide(i);c(b.getAttribute("data-ajax-complete"),["xhr","status"]).apply(this,arguments)},success:function(a,e,d){h(b,a,d.getResponseHeader("Content-Type")||"text/html");c(b.getAttribute("data-ajax-success"),["data","status","xhr"]).apply(this,arguments)},error:c(b.getAttribute("data-ajax-failure"),["xhr","status","error"])});e.data.push({name:"X-Requested-With",value:"XMLHttpRequest"});g=e.type.toUpperCase();if(!d(g)){e.type="POST";e.data.push({name:"X-HTTP-Method-Override",value:g})}a.ajax(e)}function i(c){var b=a(c).data(g);return!b||!b.validate||b.validate()}a("a[data-ajax=true]").live("click",function(a){a.preventDefault();e(this,{url:this.href,type:"GET",data:[]})});a("form[data-ajax=true] input[type=image]").live("click",function(c){var g=c.target.name,d=a(c.target),f=d.parents("form")[0],e=d.offset();a(f).data(b,[{name:g+".x",value:Math.round(c.pageX-e.left)},{name:g+".y",value:Math.round(c.pageY-e.top)}]);setTimeout(function(){a(f).removeData(b)},0)});a("form[data-ajax=true] :submit").live("click",function(c){var e=c.target.name,d=a(c.target).parents("form")[0];a(d).data(b,e?[{name:e,value:c.target.value}]:[]);setTimeout(function(){a(d).removeData(b)},0)});a("form[data-ajax=true]").live("submit",function(d){var c=a(this).data(b)||[];d.preventDefault();if(!i(this))return;e(this,{url:this.action,type:this.method||"GET",data:c.concat(a(this).serializeArray())})})})(jQuery); -------------------------------------------------------------------------------- /iloire Facturacion/Scripts/methods_es.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Localized default methods for the jQuery validation plugin. 3 | * Locale: ES 4 | */ 5 | jQuery.extend(jQuery.validator.methods, { 6 | date: function (value, element) { 7 | return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value); 8 | }, 9 | number: function (value, element) { 10 | return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value); 11 | }, 12 | range: function (value, element, param) { 13 | var val1 = parseInt(String(param[0]).replace(',', '.'), 10); 14 | var val2 = parseInt(String(param[1]).replace(',', '.'),10); 15 | var val = parseInt(String(value).replace(',', '.'),10); 16 | 17 | return this.optional(element) || (val >= val1 && val <= val2); 18 | } 19 | }); -------------------------------------------------------------------------------- /iloire Facturacion/Views/Account/ChangePassword.cshtml: -------------------------------------------------------------------------------- 1 | @model iloire_Facturacion.Models.ChangePasswordModel 2 | 3 | @{ 4 | ViewBag.Title = "Cambiar contraseña"; 5 | } 6 | 7 |

Cambiar contraseña

8 |

9 | Use el formulario siguiente para cambiar la contraseña. 10 |

11 |

12 | Es necesario que las nuevas contraseñas tengan al menos @Membership.MinRequiredPasswordLength caracteres. 13 |

14 | 15 | @using (Html.BeginForm()) { 16 | @Html.ValidationSummary(true, "No se realizó el cambio de contraseña. Corrija los errores e inténtelo de nuevo.") 17 |
18 |
19 | Información de cuenta 20 | 21 |
22 | @Html.LabelFor(m => m.OldPassword) 23 | 24 |
25 | @Html.PasswordFor(m => m.OldPassword) 26 | @Html.ValidationMessageFor(m => m.OldPassword) 27 |
28 |
29 | 30 |
31 | @Html.LabelFor(m => m.NewPassword) 32 |
33 | @Html.PasswordFor(m => m.NewPassword) 34 | @Html.ValidationMessageFor(m => m.NewPassword) 35 |
36 |
37 | 38 |
39 | @Html.LabelFor(m => m.ConfirmPassword) 40 |
41 | @Html.PasswordFor(m => m.ConfirmPassword) 42 | @Html.ValidationMessageFor(m => m.ConfirmPassword) 43 |
44 |
45 | 46 |
47 | 48 |
49 |
50 |
51 | } 52 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Account/ChangePasswordSuccess.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Cambiar contraseña"; 3 | } 4 | 5 |

Cambiar contraseña

6 |

7 | La contraseña se ha cambiado correctamente. 8 |

9 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Account/LogOn.cshtml: -------------------------------------------------------------------------------- 1 | @model iloire_Facturacion.Models.LogOnModel 2 | 3 | @{ 4 | ViewBag.Title = "Log in"; 5 | } 6 | 7 |
8 |
9 | 10 | 11 |

Log in

12 |

13 | Plase enter your email and password to access the application 14 |

15 | 16 | 17 | @Html.ValidationSummary(true, "There were some errors. Please fix them and try again") 18 | 19 | @using (Html.BeginForm()) { 20 |
21 |
22 | Account information 23 | 24 |
25 | @Html.LabelFor(m => m.UserName) 26 |
27 | @Html.TextBoxFor(m => m.UserName) 28 | @Html.ValidationMessageFor(m => m.UserName) 29 |
30 |
31 | 32 |
33 | @Html.LabelFor(m => m.Password) 34 |
35 | @Html.PasswordFor(m => m.Password) 36 | @Html.ValidationMessageFor(m => m.Password) 37 |
38 |
39 | 40 |
41 |
42 | @Html.CheckBoxFor(m => m.RememberMe) 43 | Remember me 44 |
45 |
46 | 47 |
48 | 49 |
50 |
51 |
52 | } 53 |
54 | 55 |
56 |
57 |

Demo

58 |

59 | In order to try the application, use this credentials: 60 |

61 |
62 |
    63 |
  • login: user
  • 64 |
  • password: pass
  • 65 |
66 |
67 |

Remember you can fork the project on github: Fork project on Github

68 |
69 |
70 | 71 | 72 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Account/Register.cshtml: -------------------------------------------------------------------------------- 1 | @model iloire_Facturacion.Models.RegisterModel 2 | 3 | @{ 4 | ViewBag.Title = "Registrarse"; 5 | } 6 | 7 |

Crear una nueva cuenta

8 |

9 | Use el formulario siguiente para crear una cuenta nueva. 10 |

11 |

12 | Es necesario que las contraseñas tengan al menos @Membership.MinRequiredPasswordLength caracteres. 13 |

14 | 15 | 16 | @using (Html.BeginForm()) { 17 | @Html.ValidationSummary(true, "No se creó la cuenta. Corrija los errores e inténtelo de nuevo.") 18 |
19 |
20 | Información de cuenta 21 | 22 |
23 | @Html.LabelFor(m => m.UserName) 24 |
25 | @Html.TextBoxFor(m => m.UserName) 26 | @Html.ValidationMessageFor(m => m.UserName) 27 |
28 |
29 | 30 |
31 | @Html.LabelFor(m => m.Email) 32 |
33 | @Html.TextBoxFor(m => m.Email) 34 | @Html.ValidationMessageFor(m => m.Email) 35 |
36 |
37 | 38 |
39 | @Html.LabelFor(m => m.Password) 40 |
41 | @Html.PasswordFor(m => m.Password) 42 | @Html.ValidationMessageFor(m => m.Password) 43 |
44 |
45 | 46 |
47 | @Html.LabelFor(m => m.ConfirmPassword) 48 |
49 | @Html.PasswordFor(m => m.ConfirmPassword) 50 | @Html.ValidationMessageFor(m => m.ConfirmPassword) 51 |
52 |
53 | 54 |
55 | 56 |
57 |
58 |
59 | } 60 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Customer/Create.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Customer 9 | 10 | @{ 11 | ViewBag.Title = "Create new customer"; 12 | } 13 | 14 | 15 | @using (Html.BeginForm("Create","Customer")) 16 | { 17 | @Html.ValidationSummary(true) 18 | 19 | @{Html.RenderPartial("EditOrCreateCustomerPartial", Model);} 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Customer/CustomerListPartial.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @using MvcPaging; 8 | 9 | @model IPagedList 10 | 11 |
12 | @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount) 13 |
14 | 15 | 16 | 17 | 20 | 23 | 24 | 27 | 30 | 33 | 34 | 35 | 36 | @foreach (var item in Model) { 37 | 38 | 41 | 44 | 45 | 48 | 51 | 54 | 59 | 60 | } 61 | 62 |
18 | Name 19 | 21 | CompanyNumber 22 | 25 | City 26 | 28 | Phone1 29 | 31 | Email 32 |
39 | @Html.DisplayFor(modelItem => item.Name) 40 | 42 | @Html.DisplayFor(modelItem => item.CompanyNumber) 43 | 46 | @Html.DisplayFor(modelItem => item.City) 47 | 49 | @Html.DisplayFor(modelItem => item.Phone1) 50 | 52 | @Html.DisplayFor(modelItem => item.Email) 53 | 55 | @Html.ActionLink("Edit", "Edit", new { id = item.CustomerID }, new { idCustomer = item.CustomerID, @class = "btn primary editCustomer" }) 56 | @Html.ActionLink("Details", "Details", new { id=item.CustomerID }, new { @class = "btn"}) 57 | @Html.ActionLink("Delete", "Delete", new { id=item.CustomerID }, new { @class = "btn"}) 58 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Customer/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @model Customer 8 | 9 | @{ 10 | ViewBag.Title = "Delete"; 11 | } 12 | 13 |

Delete Customer

14 | 15 | 16 |
17 | × 18 |

Are you sure you want to delete this Customer?

19 |
20 | 21 |
22 | Customer 23 |

24 | Name: 25 | @Html.DisplayFor(model => model.Name) 26 |

27 |

28 | CompanyNumber: 29 | @Html.DisplayFor(model => model.CompanyNumber) 30 |

31 |

32 | Address: 33 | @Html.DisplayFor(model => model.Address) 34 |

35 |

36 | Zip Code: 37 | @Html.DisplayFor(model => model.CP) 38 |

39 |

40 | City: 41 | @Html.DisplayFor(model => model.City) 42 |

43 |

44 | Phone1: 45 | @Html.DisplayFor(model => model.Phone1) 46 |

47 |

48 | Phone2: 49 | @Html.DisplayFor(model => model.Phone2) 50 |

51 |

52 | Fax: 53 | @Html.DisplayFor(model => model.Fax) 54 |

55 |

56 | Email: 57 | @Html.DisplayFor(model => model.Email) 58 |

59 |
60 | @using (Html.BeginForm()) { 61 |
62 | 63 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 64 |
65 | } 66 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Customer/Details.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Customer 9 | 10 | @{ 11 | ViewBag.Title = "Details"; 12 | } 13 | 14 | @section Header{ 15 | 24 | } 25 | 26 |
27 |
28 | Customer details 29 |

30 | Name: 31 | @Html.DisplayFor(model => model.Name) 32 |

33 |

34 | CompanyNumber: 35 | @Html.DisplayFor(model => model.CompanyNumber) 36 |

37 | 38 |
39 |

40 | Email: 41 | @Html.DisplayFor(model => model.Email) 42 |

43 |

44 | Address: 45 | @Html.DisplayFor(model => model.Address) 46 |

47 |

48 | Zip Code: 49 | @Html.DisplayFor(model => model.CP) 50 |

51 |

52 | City: 53 | @Html.DisplayFor(model => model.City) 54 |

55 |

56 | Phone1: 57 | @Html.DisplayFor(model => model.Phone1) 58 |

59 |

60 | Phone2: 61 | @Html.DisplayFor(model => model.Phone2) 62 |

63 |

64 | Fax: 65 | @Html.DisplayFor(model => model.Fax) 66 |

67 | 68 |
69 |

70 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn primary"}) 71 |

72 |
73 | 74 |
75 |

Last invoices

76 | @{Html.RenderAction("LastInvoicesByCustomer", "Invoice", new { id = Model.CustomerID });} 77 | 78 |

Last proposals

79 | @{Html.RenderAction("LastProposalsByCustomer", "Invoice", new { id = Model.CustomerID });} 80 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Customer/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Customer 9 | 10 | @{ 11 | ViewBag.Title = "Edit customer"; 12 | } 13 | 14 | @using (Html.BeginForm("Edit","Customer")) { 15 | @Html.ValidationSummary(true) 16 | 17 | @{Html.RenderPartial("EditOrCreateCustomerPartial", Model);} 18 | 19 | } 20 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Página principal"; 3 | } 4 | 5 |

6 | @Html.ActionLink("[+] Create new Invoice", "Create","Invoice", null, new { @class = "btn primary" }) 7 | @Html.ActionLink("[+] Create new expense", "Create", "Purchase", null, new { @class = "btn primary" }) 8 |

9 | 10 |

Dashboard

11 | 12 | 13 | 14 | 24 | 39 | 40 |
15 |

Invoices Overdue

16 | @{Html.RenderAction("OverDueInvoices","Invoice");} 17 | 18 |

Unpaid invoices

19 | @{Html.RenderAction("UnPaidInvoices","Invoice");} 20 | 21 |

Latest proposals

22 | @{Html.RenderAction("LatestProposals","Invoice");} 23 |
25 |

Recent purchases

26 | @{Html.RenderAction("RecentPurchases","Purchase", new {top=5});} 27 | 28 |

This Quarter

29 |
30 | @{Html.RenderAction("ThisQuarterSummary", "Reports");} 31 |
32 | 33 |

This year

34 | @{Html.RenderAction("YearSummary", "Reports", new {id=DateTime.Now.Year});} 35 | 36 |

Last year

37 | @{Html.RenderAction("YearSummary", "Reports", new { id = DateTime.Now.Year-1 });} 38 |
41 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Invoice/Create.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Invoice 9 | 10 | @{ 11 | ViewBag.Title = "Create"; 12 | } 13 | 14 | 15 |
16 | @if (ViewBag.IsProposal) 17 | { 18 |

You are creating a new proposal

19 |

20 | Once the client approves it, you can click on "Make invoice" to add it to your invoices. 21 |

22 | } 23 | else 24 | { 25 |

You are creating a new Invoice

26 |

27 | A new invoice number will be created by using the last invoice number generated (and incrementing that number by 'one') 28 |

29 | } 30 |
31 | 32 | @using (Html.BeginForm("Create", "Invoice", new { proposal = ViewBag.IsProposal}, FormMethod.Post)) 33 | { 34 | @Html.ValidationSummary(true) 35 | 36 | @{Html.RenderPartial("EditOrCreateInvoicePartial", Model);} 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Invoice/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @model Invoice 8 | 9 | @{ 10 | ViewBag.Title = "Delete"; 11 | } 12 | @{ 13 | var entityname = ViewBag.IsProposal ? "Proposal" : "Invoice"; 14 | } 15 | 16 |

Delete @entityname

17 | 18 | 19 |
20 | × 21 |

Are you sure you want to delete this @entityname?

22 |
23 | 24 |
25 |

26 | Customer: 27 | @Html.DisplayFor(model => model.Customer.Name) 28 |

29 |

30 | Notes: 31 | @Html.DisplayFor(model => model.Notes) 32 |

33 |

34 | TimeStamp: 35 | @Html.DisplayFor(model => model.TimeStamp) 36 |

37 |

38 | Paid: 39 | @Html.DisplayFor(model => model.Paid) 40 |

41 |
42 | @using (Html.BeginForm()) { 43 |
44 | 45 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 46 |
47 | } 48 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Invoice/InvoicesListPartial.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model IEnumerable 9 | 10 | 11 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 31 | 32 | @foreach (var item in Model) { 33 | 34 | 35 | 40 | 45 | 48 | 51 | 65 | 66 | } 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 |
13 | ID 14 | 16 | Customer 17 | 19 | Invoice 20 | 22 | Total to pay 23 | 25 | Date 26 | 28 | Due Date 29 |
# @item.InvoiceNumber 36 | 37 | @Html.DisplayFor(modelItem => item.Customer.Name) 38 | 39 | 41 | 42 | @Html.Truncate(item.Notes, 100) 43 | 44 | 46 | @String.Format("{0:C}", item.TotalToPay) 47 | 49 | @Html.DisplayFor(modelItem => item.TimeStamp) 50 | 52 | @if ((!item.Paid) && (!item.IsProposal) && item.DueDate < DateTime.Now) 53 | { 54 | @Html.DisplayFor(modelItem => item.DueDate) 55 | } 56 | else if ((!item.Paid) && (!item.IsProposal) && item.DueDate < DateTime.Now.AddDays(5)) 57 | { 58 | @Html.DisplayFor(modelItem => item.DueDate) 59 | } 60 | else 61 | { 62 | @Html.DisplayFor(modelItem => item.DueDate) 63 | } 64 |
TOTALS: @String.Format("{0:C}", Model.Sum(i => i.TotalToPay))
77 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/InvoiceDetails/Create.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model InvoiceDetails 9 | 10 | @{ 11 | ViewBag.Title = "Create"; 12 | } 13 | 14 | 15 | @using (Html.BeginForm("Create","InvoiceDetails")) { 16 | @Html.ValidationSummary(true) 17 | 18 | @{Html.RenderPartial("EditOrAddInvoiceDetailsPartial", Model);} 19 | 20 | } -------------------------------------------------------------------------------- /iloire Facturacion/Views/InvoiceDetails/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @model InvoiceDetails 8 | 9 | @{ 10 | ViewBag.Title = "Delete"; 11 | } 12 | 13 | 14 |
15 | × 16 |

Are you sure you want to delete this record?

17 |
18 | 19 |
20 | 21 |

22 | Invoice: 23 | @Html.DisplayFor(model => model.Invoice.Notes) 24 |

25 |

26 | Article: 27 | @Html.DisplayFor(model => model.Article) 28 |

29 |

30 | Qty: 31 | @Html.DisplayFor(model => model.Qty) 32 |

33 |

34 | Price: 35 | @Html.DisplayFor(model => model.Price) 36 |

37 |

38 | VAT: 39 | @Html.DisplayFor(model => model.VAT) 40 |

41 |

42 | TimeStamp: 43 | @Html.DisplayFor(model => model.TimeStamp) 44 |

45 |
46 | 47 | @using (Html.BeginForm()) { 48 |
49 | 50 | 51 |
52 | } 53 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/InvoiceDetails/Details.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model InvoiceDetails 9 | 10 | @{ 11 | ViewBag.Title = "Details"; 12 | } 13 | 14 | 15 |
16 | InvoiceDetails details 17 |

18 | Invoice: 19 | @Html.DisplayFor(model => model.Invoice.Notes) 20 |

21 |

22 | Article: 23 | @Html.DisplayFor(model => model.Article) 24 |

25 |

26 | Qty: 27 | @Html.DisplayFor(model => model.Qty) 28 |

29 |

30 | Price: 31 | @String.Format("{0:C}", Model.Price) 32 |

33 |

34 | VAT: 35 | @Html.DisplayFor(model => model.VAT) 36 |

37 |

38 | TimeStamp: 39 | @Html.DisplayFor(model => model.TimeStamp) 40 |

41 |
42 |

43 | 44 | @Html.ActionLink("Edit", "Edit", new { id=Model.InvoiceDetailsID }, new { @class = "btn"}) | 45 | @Html.ActionLink("Back to invoice", "Details", "Invoice", new { id = Model.InvoiceID }, new { @class = "btn" }) 46 |

47 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/InvoiceDetails/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model InvoiceDetails 9 | 10 | @{ 11 | ViewBag.Title = "Edit"; 12 | } 13 | 14 | @using (Html.BeginForm("Edit","InvoiceDetails")) { 15 | @Html.ValidationSummary(true) 16 | 17 | @{Html.RenderPartial("EditOrAddInvoiceDetailsPartial", Model);} 18 | 19 | } -------------------------------------------------------------------------------- /iloire Facturacion/Views/InvoiceDetails/EditOrAddInvoiceDetailsPartial.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model InvoiceDetails 9 | 10 | 11 |
12 | @Html.HiddenFor(model => model.InvoiceDetailsID) 13 | @Html.Hidden("InvoiceID", Model.InvoiceID) 14 | 15 | 16 |
17 | @Html.LabelFor(model => model.Article) 18 | 19 |
20 | @Html.EditorFor(model => model.Article) 21 | @Html.ValidationMessageFor(model => model.Article) 22 |
23 |
24 | 25 |
26 | @Html.LabelFor(model => model.Qty) 27 | 28 |
29 | @Html.EditorFor(model => model.Qty, "Number") 30 | @Html.ValidationMessageFor(model => model.Qty) 31 |
32 |
33 | 34 |
35 | @Html.LabelFor(model => model.Price) 36 | 37 |
38 | @Html.EditorFor(model => model.Price, "Currency") 39 | @Html.ValidationMessageFor(model => model.Price) 40 |
41 |
42 | 43 | 44 |
45 | @Html.LabelFor(model => model.VAT) 46 | 47 |
48 | @Html.EditorFor(model => model.VAT, (string)ViewBag.DefaultVAT) % 49 | @Html.ValidationMessageFor(model => model.VAT) 50 |
51 |
52 | 53 | @Html.HiddenFor(model => model.TimeStamp) 54 | 55 |
56 | 57 | 58 |
59 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Provider/Create.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Provider 9 | 10 | @{ 11 | ViewBag.Title = "Create"; 12 | } 13 | 14 | 15 | @using (Html.BeginForm()) { 16 | @Html.ValidationSummary(true) 17 |
18 | Create Provider 19 | 20 |
21 | @Html.LabelFor(model => model.Name) 22 | 23 |
24 | @Html.EditorFor(model => model.Name) 25 | @Html.ValidationMessageFor(model => model.Name) 26 |
27 |
28 | 29 |
30 | @Html.LabelFor(model => model.CompanyNumber) 31 | 32 |
33 | @Html.EditorFor(model => model.CompanyNumber) 34 | @Html.ValidationMessageFor(model => model.CompanyNumber) 35 |
36 |
37 | 38 |
39 | @Html.LabelFor(model => model.Address) 40 | 41 |
42 | @Html.EditorFor(model => model.Address) 43 | @Html.ValidationMessageFor(model => model.Address) 44 |
45 |
46 | 47 |
48 | @Html.LabelFor(model => model.CP) 49 | 50 |
51 | @Html.EditorFor(model => model.CP) 52 | @Html.ValidationMessageFor(model => model.CP) 53 |
54 |
55 | 56 |
57 | @Html.LabelFor(model => model.City) 58 | 59 |
60 | @Html.EditorFor(model => model.City) 61 | @Html.ValidationMessageFor(model => model.City) 62 |
63 |
64 | 65 |
66 | @Html.LabelFor(model => model.Phone1) 67 | 68 |
69 | @Html.EditorFor(model => model.Phone1) 70 | @Html.ValidationMessageFor(model => model.Phone1) 71 |
72 |
73 | 74 |
75 | @Html.LabelFor(model => model.Phone2) 76 | 77 |
78 | @Html.EditorFor(model => model.Phone2) 79 | @Html.ValidationMessageFor(model => model.Phone2) 80 |
81 |
82 | 83 |
84 | @Html.LabelFor(model => model.Fax) 85 | 86 |
87 | @Html.EditorFor(model => model.Fax) 88 | @Html.ValidationMessageFor(model => model.Fax) 89 |
90 |
91 | 92 |
93 | @Html.LabelFor(model => model.Email) 94 | 95 |
96 | @Html.EditorFor(model => model.Email) 97 | @Html.ValidationMessageFor(model => model.Email) 98 |
99 |
100 | 101 |
102 | 103 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 104 |
105 |
106 | } 107 | 108 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Provider/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @model Provider 8 | 9 | @{ 10 | ViewBag.Title = "Delete"; 11 | } 12 | 13 |

Delete Provider

14 | 15 | 16 |
17 | × 18 |

Are you sure you want to delete this Provider?

19 |
20 | 21 |
22 | Provider 23 |

24 | Name: 25 | @Html.DisplayFor(model => model.Name) 26 |

27 |

28 | CompanyNumber: 29 | @Html.DisplayFor(model => model.CompanyNumber) 30 |

31 |

32 | Address: 33 | @Html.DisplayFor(model => model.Address) 34 |

35 |

36 | Zip Code: 37 | @Html.DisplayFor(model => model.CP) 38 |

39 |

40 | City: 41 | @Html.DisplayFor(model => model.City) 42 |

43 |

44 | Phone1: 45 | @Html.DisplayFor(model => model.Phone1) 46 |

47 |

48 | Phone2: 49 | @Html.DisplayFor(model => model.Phone2) 50 |

51 |

52 | Fax: 53 | @Html.DisplayFor(model => model.Fax) 54 |

55 |

56 | Email: 57 | @Html.DisplayFor(model => model.Email) 58 |

59 |
60 | @using (Html.BeginForm()) { 61 |
62 | 63 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 64 |
65 | } 66 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Provider/Details.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Provider 9 | 10 | @{ 11 | ViewBag.Title = "Details"; 12 | } 13 | 14 | @section Header{ 15 | 26 | } 27 |
28 |
29 | Provider details 30 |

31 | Name: 32 | @Html.DisplayFor(model => model.Name) 33 |

34 |

35 | CompanyNumber: 36 | @Html.DisplayFor(model => model.CompanyNumber) 37 |

38 |

39 | Address: 40 | @Html.DisplayFor(model => model.Address) 41 |

42 |

43 | Zip Code: 44 | @Html.DisplayFor(model => model.CP) 45 |

46 |

47 | City: 48 | @Html.DisplayFor(model => model.City) 49 |

50 |

51 | Phone1: 52 | @Html.DisplayFor(model => model.Phone1) 53 |

54 |

55 | Phone2: 56 | @Html.DisplayFor(model => model.Phone2) 57 |

58 |

59 | Fax: 60 | @Html.DisplayFor(model => model.Fax) 61 |

62 |

63 | Email: 64 | @Html.DisplayFor(model => model.Email) 65 |

66 |
67 |

68 | 69 | @Html.ActionLink("Edit", "Edit", new { id=Model.ProviderID }, new { @class = "btn"}) 70 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 71 |

72 |
73 | 74 |
75 |

Last purchases from this provider

76 | @{Html.RenderAction("RecentPurchasesByCustomer", "Purchase", new { providerID = Model.ProviderID });} 77 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Provider/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Provider 9 | 10 | @{ 11 | ViewBag.Title = "Edit"; 12 | } 13 | 14 |
15 | @using (Html.BeginForm()) { 16 | @Html.ValidationSummary(true) 17 |
18 | Provider edition 19 | 20 | @Html.HiddenFor(model => model.ProviderID) 21 | 22 |
23 | @Html.LabelFor(model => model.Name) 24 | 25 |
26 | @Html.EditorFor(model => model.Name) 27 | @Html.ValidationMessageFor(model => model.Name) 28 |
29 |
30 | 31 |
32 | @Html.LabelFor(model => model.CompanyNumber) 33 | 34 |
35 | @Html.EditorFor(model => model.CompanyNumber) 36 | @Html.ValidationMessageFor(model => model.CompanyNumber) 37 |
38 |
39 | 40 |
41 | @Html.LabelFor(model => model.Address) 42 | 43 |
44 | @Html.EditorFor(model => model.Address) 45 | @Html.ValidationMessageFor(model => model.Address) 46 |
47 |
48 | 49 |
50 | @Html.LabelFor(model => model.CP) 51 | 52 |
53 | @Html.EditorFor(model => model.CP) 54 | @Html.ValidationMessageFor(model => model.CP) 55 |
56 |
57 | 58 |
59 | @Html.LabelFor(model => model.City) 60 | 61 |
62 | @Html.EditorFor(model => model.City) 63 | @Html.ValidationMessageFor(model => model.City) 64 |
65 |
66 | 67 |
68 | @Html.LabelFor(model => model.Phone1) 69 | 70 |
71 | @Html.EditorFor(model => model.Phone1) 72 | @Html.ValidationMessageFor(model => model.Phone1) 73 |
74 |
75 | 76 |
77 | @Html.LabelFor(model => model.Phone2) 78 | 79 |
80 | @Html.EditorFor(model => model.Phone2) 81 | @Html.ValidationMessageFor(model => model.Phone2) 82 |
83 |
84 | 85 |
86 | @Html.LabelFor(model => model.Fax) 87 | 88 |
89 | @Html.EditorFor(model => model.Fax) 90 | @Html.ValidationMessageFor(model => model.Fax) 91 |
92 |
93 | 94 |
95 | @Html.LabelFor(model => model.Email) 96 | 97 |
98 | @Html.EditorFor(model => model.Email) 99 | @Html.ValidationMessageFor(model => model.Email) 100 |
101 |
102 | 103 |
104 | 105 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 106 |
107 |
108 | } 109 | 110 |
111 | 112 |
113 |

Last purchases from this provider

114 | @{Html.RenderAction("RecentPurchasesByCustomer", "Purchase", new { providerID = Model.ProviderID });} 115 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Provider/Index.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @using MvcPaging; 9 | 10 | @model IPagedList 11 | 12 | @{ 13 | ViewBag.Title = "Index"; 14 | } 15 | 16 |
17 | 18 |

List of Provider

19 | 20 |

21 | @Html.ActionLink("[+] Create New", "Create", null, new { @class = "btn primary" }) 22 |

23 | 24 | @{Html.RenderPartial("SearchBoxCompany", "Provider");} 25 | 26 |
27 | @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount) 28 |
29 | 30 | 31 | 32 | 35 | 38 | 39 | 42 | 45 | 46 | 49 | 50 | 51 | 52 | @foreach (var item in Model) 53 | { 54 | 55 | 58 | 61 | 62 | 65 | 68 | 69 | 72 | 77 | 78 | } 79 | 80 |
33 | Name 34 | 36 | CompanyNumber 37 | 40 | City 41 | 43 | Phone1 44 | 47 | Email 48 |
56 | @Html.DisplayFor(modelItem => item.Name) 57 | 59 | @Html.DisplayFor(modelItem => item.CompanyNumber) 60 | 63 | @Html.DisplayFor(modelItem => item.City) 64 | 66 | @Html.DisplayFor(modelItem => item.Phone1) 67 | 70 | @Html.DisplayFor(modelItem => item.Email) 71 | 73 | @Html.ActionLink("Edit", "Edit", new { id = item.ProviderID }, new { @class = "btn primary" }) 74 | @Html.ActionLink("Details", "Details", new { id = item.ProviderID }, new { @class = "btn" }) 75 | @Html.ActionLink("Delete", "Delete", new { id = item.ProviderID }, new { @class = "btn" }) 76 |
81 | 82 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/Create.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Purchase 9 | 10 | @{ 11 | ViewBag.Title = "New Expense"; 12 | } 13 | 14 | @using (Html.BeginForm()) { 15 | @Html.ValidationSummary(true) 16 | 17 | @{Html.RenderPartial("EditOrCreatePurchasePartial", Model);} 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @model Purchase 8 | 9 | @{ 10 | ViewBag.Title = "Delete"; 11 | } 12 | 13 |

Delete Purchase

14 | 15 | 16 |
17 | × 18 |

Are you sure you want to delete this Purchase?

19 |
20 | 21 |
22 | Purchase 23 |

24 | Article: 25 | @Html.DisplayFor(model => model.Article) 26 |

27 |

28 | Price: 29 | @Html.DisplayFor(model => model.Price) 30 |

31 |

32 | VAT: 33 | @Html.DisplayFor(model => model.VAT) 34 |

35 |

36 | Provider: 37 | @Html.DisplayFor(model => model.Provider.Name) 38 |

39 |

40 | Notes: 41 | @Html.DisplayFor(model => model.Notes) 42 |

43 |

44 | TimeStamp: 45 | @Html.DisplayFor(model => model.TimeStamp) 46 |

47 |
48 | @using (Html.BeginForm()) { 49 |
50 | 51 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 52 |
53 | } 54 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/Details.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Purchase 9 | 10 | @{ 11 | ViewBag.Title = "Details"; 12 | } 13 | 14 | 15 |
16 | Expense edition 17 |

18 | Article: 19 | @Html.DisplayFor(model => model.Article) 20 |

21 |
22 |

23 | Net Price: 24 | @String.Format("{0:C}", Model.Price) 25 |

26 |

27 | VAT: 28 | @String.Format("{0:C}", Model.VATAmount) 29 | (@Html.DisplayFor(model => model.VAT) %) 30 |

31 | 32 |

33 | Total: 34 | 35 | @String.Format("{0:C}", Model.TotalWithVAT) 36 | 37 |

38 | 39 |
40 |

41 | Provider: 42 | @Html.DisplayFor(model => model.Provider.Name) 43 |

44 | @if (!string.IsNullOrWhiteSpace(Model.Notes)){ 45 |

46 | Notes: 47 | @Html.DisplayFor(model => model.Notes) 48 |

49 | } 50 |

51 | Date: 52 | @Html.DisplayFor(model => model.TimeStamp) 53 |

54 |
55 |

56 | 57 | @Html.ActionLink("Edit", "Edit", new { id=Model.PurchaseID }, new { @class = "btn"}) | 58 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 59 |

60 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Purchase 9 | 10 | @{ 11 | ViewBag.Title = "Edit Expense"; 12 | } 13 | 14 | @using (Html.BeginForm()) { 15 | @Html.ValidationSummary(true) 16 | 17 | @{Html.RenderPartial("EditOrCreatePurchasePartial", Model);} 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/EditOrCreatePurchasePartial.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Purchase 9 | 10 |
11 | @ViewBag.Title 12 | 13 | @Html.HiddenFor(model => model.PurchaseID) 14 | 15 |
16 | @Html.LabelFor(model => model.Article) 17 | 18 |
19 | @Html.EditorFor(model => model.Article) 20 | @Html.ValidationMessageFor(model => model.Article) 21 |
22 |
23 | 24 |
25 | @Html.LabelFor(model => model.PurchaseTypeID, "PurchaseType") 26 | 27 |
28 | @Html.DropDownList("PurchaseTypeID", String.Empty) 29 | @Html.ValidationMessageFor(model => model.PurchaseTypeID) 30 |
31 |
32 | 33 |
34 | @Html.LabelFor(model => model.Price) 35 | 36 |
37 | @Html.EditorFor(model => model.Price) 38 | @Html.ValidationMessageFor(model => model.Price) 39 |
40 |
41 | 42 |
43 | @Html.LabelFor(model => model.VAT) 44 | 45 |
46 | @Html.EditorFor(model => model.VAT) % 47 | @Html.ValidationMessageFor(model => model.VAT) 48 |
49 |
50 | 51 |
52 | @Html.LabelFor(model => model.ProviderID, "Provider") 53 | 54 |
55 | @Html.DropDownList("ProviderID", String.Empty) 56 | @Html.ValidationMessageFor(model => model.ProviderID) 57 |
58 |
59 | 60 |
61 | @Html.LabelFor(model => model.AdvancePaymentTax) 62 | 63 |
64 | @Html.EditorFor(model => model.AdvancePaymentTax) % 65 | @Html.ValidationMessageFor(model => model.AdvancePaymentTax) 66 |
67 |
68 | 69 |
70 | @Html.LabelFor(model => model.Notes) 71 | 72 |
73 | @Html.TextAreaFor(model => model.Notes) 74 | @Html.ValidationMessageFor(model => model.Notes) 75 |
76 |
77 | 78 |
79 | @Html.LabelFor(model => model.TimeStamp) 80 | 81 |
82 | @Html.EditorFor(model => model.TimeStamp) 83 | @Html.ValidationMessageFor(model => model.TimeStamp) 84 |
85 |
86 | 87 |
88 | 89 | @if (Model!=null && Model.PurchaseID > 0) 90 | { 91 | @Html.ActionLink("Delete", "Delete", new { id = Model.PurchaseID }, new { @class = "btn" }) 92 | 93 | } 94 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn" }) 95 |
96 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/Index.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @using MvcPaging; 9 | @model IPagedList 10 | 11 | @{ 12 | ViewBag.Title = "List of expenses"; 13 | } 14 | 15 | @section Header{ 16 | 26 | } 27 | 28 |

List of Expenses

29 | 30 |

31 | @Html.ActionLink("[+] Create New", "Create", null, new {@class="btn primary"}) 32 |

33 | 34 | @{Html.RenderPartial("SearchBoxItems", "Purchase");} 35 | 36 |
37 | @{ 38 | RouteValueDictionary r = new RouteValueDictionary(); 39 | r.Add("to", Request["to"]); 40 | r.Add("from", Request["from"]); 41 | r.Add("text", Request["text"]); 42 | } 43 | @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, r) 44 |
45 | 46 | 47 | 48 | 51 | 54 | 57 | 60 | 63 | 66 | 69 | 70 | 71 | 72 | @foreach (var item in Model) { 73 | 74 | 77 | 84 | 87 | 90 | 93 | 98 | 101 | 106 | 107 | } 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 |
49 | Article 50 | 52 | Type 53 | 55 | Price 56 | 58 | VAT 59 | 61 | Total 62 | 64 | Provider 65 | 67 | Date 68 |
75 | @Html.DisplayFor(modelItem => item.Article) 76 | 78 | @item.PurchaseType.Name 79 | 80 | @if (!string.IsNullOrWhiteSpace(item.Notes)) { 81 | Notes in this expense 82 | } 83 | 85 | @String.Format("{0:C}", item.Price) 86 | 88 | @Html.DisplayFor(modelItem => item.VAT) % 89 | 91 | @String.Format("{0:C}", item.TotalWithVAT) 92 | 94 | 95 | @Html.DisplayFor(modelItem => item.Provider.Name) 96 | 97 | 99 | @Html.DisplayFor(modelItem => item.TimeStamp) 100 | 102 | @Html.ActionLink("Edit", "Edit", new { id=item.PurchaseID }, new { @class = "btn primary"}) 103 | @Html.ActionLink("Details", "Details", new { id=item.PurchaseID }, new { @class = "btn"}) 104 | @Html.ActionLink("Delete", "Delete", new { id=item.PurchaseID }, new { @class = "btn"}) 105 |
TOTALS: @String.Format("{0:C}", Model.Sum(i => i.SubTotal))@String.Format("{0:C}", Model.Sum(i => i.TotalWithVAT))
120 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Purchase/PurchasesListPartial.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model IEnumerable 9 | 10 | 11 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 31 | 32 | @foreach (var item in Model) { 33 | 34 | 39 | 42 | 45 | 48 | 53 | 56 | 57 | } 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
13 | Article 14 | 16 | Price 17 | 19 | VAT 20 | 22 | Total 23 | 25 | Provider 26 | 28 | Date 29 |
35 | 36 | @Html.DisplayFor(modelItem => item.Article) 37 | 38 | 40 | @String.Format("{0:C}", item.Price) 41 | 43 | @Html.DisplayFor(modelItem => item.VAT) 44 | 46 | @String.Format("{0:C}", item.TotalWithVAT) 47 | 49 | 50 | @Html.DisplayFor(modelItem => item.Provider.Name) 51 | 52 | 54 | @Html.DisplayFor(modelItem => item.TimeStamp) 55 |
TOTALS: @String.Format("{0:C}", Model.Sum(i => i.SubTotal))@String.Format("{0:C}", Model.Sum(i => i.TotalWithVAT))
70 | 71 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/PurchaseType/Create.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model PurchaseType 9 | 10 | @{ 11 | ViewBag.Title = "Create Expense Type"; 12 | } 13 | 14 | 15 | 16 | 17 | 18 | @using (Html.BeginForm()) { 19 | @Html.ValidationSummary(true) 20 |
21 | Create PurchaseType 22 | 23 |
24 | @Html.LabelFor(model => model.Name) 25 | 26 |
27 | @Html.EditorFor(model => model.Name) 28 | @Html.ValidationMessageFor(model => model.Name) 29 |
30 |
31 | 32 |
33 | @Html.LabelFor(model => model.Descr) 34 | 35 |
36 | @Html.TextAreaFor(model => model.Descr) 37 | @Html.ValidationMessageFor(model => model.Descr) 38 |
39 |
40 | 41 |
42 | 43 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 44 |
45 |
46 | } 47 | 48 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/PurchaseType/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | @model PurchaseType 8 | 9 | @{ 10 | ViewBag.Title = "Delete Expense Type"; 11 | } 12 | 13 |

Delete Expense Type

14 | 15 | 16 |
17 | × 18 |

Are you sure you want to delete this PurchaseType?

19 |
20 | 21 |
22 | PurchaseType 23 |

24 | Name: 25 | @Html.DisplayFor(model => model.Name) 26 |

27 |

28 | Descr: 29 | @Html.DisplayFor(model => model.Descr) 30 |

31 |
32 | @using (Html.BeginForm()) { 33 |
34 | 35 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 36 |
37 | } 38 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/PurchaseType/Details.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model PurchaseType 9 | 10 | @{ 11 | ViewBag.Title = "Details Expense Type"; 12 | } 13 | 14 | 15 |
16 | Expense Type details 17 |

18 | Name: 19 | @Html.DisplayFor(model => model.Name) 20 |

21 |

22 | Descr: 23 | @Html.DisplayFor(model => model.Descr) 24 |

25 |
26 |

27 | 28 | @Html.ActionLink("Edit", "Edit", new { id=Model.PurchaseTypeID }, new { @class = "btn"}) | 29 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 30 |

31 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/PurchaseType/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model PurchaseType 9 | 10 | @{ 11 | ViewBag.Title = "Edit Expense Type"; 12 | } 13 | 14 | 15 | 16 | 17 | 18 | @using (Html.BeginForm()) { 19 | @Html.ValidationSummary(true) 20 |
21 | Expense Type Edition 22 | 23 | @Html.HiddenFor(model => model.PurchaseTypeID) 24 | 25 |
26 | @Html.LabelFor(model => model.Name) 27 | 28 |
29 | @Html.EditorFor(model => model.Name) 30 | @Html.ValidationMessageFor(model => model.Name) 31 |
32 |
33 | 34 |
35 | @Html.LabelFor(model => model.Descr) 36 | 37 |
38 | @Html.TextAreaFor(model => model.Descr) 39 | @Html.ValidationMessageFor(model => model.Descr) 40 |
41 |
42 | 43 |
44 | 45 | @Html.ActionLink("Back to List", "Index", null, new { @class = "btn"}) 46 |
47 |
48 | } 49 | 50 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/PurchaseType/Index.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model IEnumerable 9 | 10 | @{ 11 | ViewBag.Title = "List of Expense Types"; 12 | } 13 | 14 |

List of Expense Types

15 | 16 |

17 | @Html.ActionLink("[+] Create New", "Create", null, new {@class="btn primary"}) 18 |

19 | 20 | 21 | 24 | 27 | 28 | 29 | 30 | @foreach (var item in Model) { 31 | 32 | 35 | 38 | 42 | 43 | } 44 | 45 |
22 | Name 23 | 25 | Descr 26 |
33 | @Html.DisplayFor(modelItem => item.Name) 34 | 36 | @Html.DisplayFor(modelItem => item.Descr) 37 | 39 | @Html.ActionLink("Edit", "Edit", new { id=item.PurchaseTypeID }, new { @class = "btn primary"}) 40 | @Html.ActionLink("Delete", "Delete", new { id=item.PurchaseTypeID }, new { @class = "btn"}) 41 |
46 | 51 | 52 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Reports/ByYear.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @{ 9 | ViewBag.Title = "ByYear"; 10 | } 11 | @model int 12 | 13 |

Year @Model

14 | 15 | 16 | @{ 17 | DateTime startQ1 = new DateTime(Model, 1, 1); 18 | DateTime startQ2 = new DateTime(Model, 4, 1); 19 | DateTime startQ3 = new DateTime(Model, 7, 1); 20 | DateTime startQ4 = new DateTime(Model, 10, 1); 21 | } 22 | 23 | 24 |

@Model Year balance

25 |
26 | @{Html.RenderAction("PeriodSummary", "Reports", new { fromDate = startQ1, toDate = startQ1.AddYears(1).AddDays(-1) });} 27 |
28 | 29 | 30 |
31 |

Q1

32 | @{Html.RenderAction("PeriodSummary", "Reports", new { fromDate = startQ1, toDate = startQ2.AddDays(-1) });} 33 | @{Html.RenderAction("QuarterDetailsPartial", "Reports", new { quarter = 1, year = Model});} 34 |
35 | 36 | 37 |
38 |

Q2

39 | @{Html.RenderAction("PeriodSummary", "Reports", new { fromDate = startQ2, toDate = startQ3.AddDays(-1) });} 40 | @{Html.RenderAction("QuarterDetailsPartial", "Reports", new { quarter = 2, year = Model });} 41 |
42 | 43 |
44 |

Q3

45 | @{Html.RenderAction("PeriodSummary", "Reports", new { fromDate = startQ3, toDate = startQ4.AddDays(-1) });} 46 | @{Html.RenderAction("QuarterDetailsPartial", "Reports", new { quarter = 3, year = Model });} 47 |
48 | 49 |
50 |

Q4

51 | @{Html.RenderAction("PeriodSummary", "Reports", new { fromDate = startQ4, toDate = startQ1.AddYears(1).AddDays(-1) });} 52 | @{Html.RenderAction("QuarterDetailsPartial", "Reports", new { quarter = 4, year = Model });} 53 |
54 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Reports/PeriodSummary.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model Summary 9 | 10 | 11 | @{ 12 | var chart_name = Model.GetHashCode(); 13 | } 14 | 15 |
16 | 17 | 33 |
34 |
35 | 36 |
37 |

38 | @String.Format("{0:d}", Model.From) - @String.Format("{0:d}", Model.To) 39 |

40 | 41 |

42 | NET Income: @String.Format("{0:C}", Model.NetIncome) 43 | + 44 | VAT received: @String.Format("{0:C}", Model.VATReceived) 45 | = 46 | Gross Income: @String.Format("{0:C}", Model.GrossIncome) 47 |
48 | NET Expense: @String.Format("{0:C}", Model.NetExpense) 49 | + 50 | VAT Paid: @String.Format("{0:C}", Model.VATPaid) 51 | = 52 | Total Paid: @String.Format("{0:C}", Model.GrossExpense) 53 |


54 | Benefit: 55 | 56 | @{Html.RenderPartial("Money", Model.NetBenefit);} 57 | 58 |
59 | VAT Balance: @String.Format("{0:C}", Model.VATBalance) 60 | 61 |

62 |
63 | 64 | 65 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Reports/QuarterDetails.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model QuarterSummary 9 | 10 | 11 | @using (Html.BeginForm("QuarterDetails", "Reports", null, FormMethod.Get)) 12 | { 13 | 25 | } 26 | 27 | @{Html.RenderAction("QuarterDetailsPartial", Model);} 28 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Reports/YearSummary.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model YearSummary 9 | 10 | @functions{ 11 | private string PrintQty(decimal qty){ 12 | var sign = (qty>0) ? "positive" : "negative"; 13 | return "" + String.Format("{0:C}", qty) + ""; 14 | } 15 | } 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 52 | 55 | 58 | 62 | 63 | 64 |
@Html.ActionLink("Q1", "QuarterDetails", "Reports", new { quarter = 1, year = Model.Q1.Year }, null)@Html.ActionLink("Q2", "QuarterDetails", "Reports", new { quarter = 2, year = Model.Q2.Year }, null)@Html.ActionLink("Q3", "QuarterDetails", "Reports", new { quarter = 3, year = Model.Q3.Year }, null)@Html.ActionLink("Q4", "QuarterDetails", "Reports", new { quarter = 4, year = Model.Q4.Year }, null)TOTAL
Net Income:@String.Format("{0:C}", Model.Q1.NetIncome)@String.Format("{0:C}", Model.Q2.NetIncome)@String.Format("{0:C}", Model.Q3.NetIncome)@String.Format("{0:C}", Model.Q4.NetIncome)@String.Format("{0:C}", Model.Q1.NetIncome + Model.Q2.NetIncome + Model.Q3.NetIncome + Model.Q4.NetIncome)
Net Expense:@String.Format("{0:C}", Model.Q1.NetExpense)@String.Format("{0:C}", Model.Q2.NetExpense)@String.Format("{0:C}", Model.Q3.NetExpense)@String.Format("{0:C}", Model.Q4.NetExpense)@String.Format("{0:C}", Model.Q1.NetExpense + Model.Q2.NetExpense + Model.Q3.NetExpense + Model.Q4.NetExpense)
Net Benefit: 47 | @Html.Raw(PrintQty(Model.Q1.NetBenefit)) 48 | 50 | @Html.Raw(PrintQty(Model.Q2.NetBenefit)) 51 | 53 | @Html.Raw(PrintQty(Model.Q3.NetBenefit)) 54 | 56 | @Html.Raw(PrintQty(Model.Q4.NetBenefit)) 57 | 59 | @{var total_benefit = Model.Q1.NetBenefit + Model.Q2.NetBenefit + Model.Q3.NetBenefit + Model.Q4.NetBenefit;} 60 | @Html.Raw(PrintQty(total_benefit)) 61 |
65 | 66 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/DisplayMessages.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @if (!string.IsNullOrWhiteSpace(ViewBag.Error)) { 9 |
10 | @ViewBag.Error 11 |
12 | } 13 | 14 | @if (!string.IsNullOrWhiteSpace(ViewBag.Warning)) 15 | { 16 |
17 | @ViewBag.Warning 18 |
19 | } 20 | 21 | @if (!string.IsNullOrWhiteSpace(ViewBag.Success)) 22 | { 23 |
24 | @ViewBag.Success 25 |
26 | } -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/DisplayTemplates/DateTime.cshtml: -------------------------------------------------------------------------------- 1 | @model DateTime? 2 | @if (Model.HasValue && (Model.Value > DateTime.MinValue)) 3 | { 4 | 5 | @Model.Value.ToShortDateString() 6 | 7 | if (Model.Value.Hour + Model.Value.Minute + Model.Value.Second > 0) { 8 | 9 | @Model.Value.ToShortTimeString() 10 | 11 | } 12 | } 13 | else 14 | { 15 | - 16 | } -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/EditorTemplates/Currency.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model decimal? 9 | @Html.TextBox("", String.Format("{0:C}", Model.HasValue ? Model.Value.ToString() : string.Empty), new { @class = "money" }) 10 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/EditorTemplates/DateTime.cshtml: -------------------------------------------------------------------------------- 1 | @model DateTime? 2 | @Html.TextBox("", String.Format("{0:d}", Model.HasValue && (Model.Value > DateTime.MinValue) ? Model.Value.Date.ToShortDateString() : string.Empty), new {@class = "datefield small"}) -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/EditorTemplates/Decimal.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model decimal? 9 | @Html.TextBox("", String.Format("{0:d}", Model.HasValue ? Model.Value.ToString() : string.Empty), new { @class = "decimal small" }) 10 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/EditorTemplates/Number.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model int? 9 | @Html.TextBox("", String.Format("{0:d}", Model.HasValue ? Model.Value.ToString() : string.Empty), new { @class = "money" }) 10 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Error"; 5 | } 6 | 7 |

8 | Lo sentimos; se produjo un error al procesar la solicitud. 9 |

10 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/Menu.cshtml: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/Messages/Success.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model string 9 |
10 | × 11 |

@Model

12 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/Money.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model decimal 9 | @if (Model >= 0) 10 | { 11 | @String.Format("{0:C}", Model) 12 | } 13 | else 14 | { 15 | @String.Format("{0:C}", Model) 16 | } 17 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/SearchBoxCompany.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model string 9 | 10 | 21 | 22 | @using (Html.BeginForm("Search", Model)) 23 | { 24 | 29 | } 30 | 31 |
    32 | @foreach (var letra in "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ") 33 | { 34 | if (ViewBag.LetraAlfabetica == letra.ToString()) 35 | { 36 |
  • @letra
  • 37 | } 38 | else 39 | { 40 | 41 |
  • @Html.ActionLink(letra.ToString(), "Search", Model, new { q = letra }, null)
  • 42 |
    43 | } 44 | } 45 |
-------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/SearchBoxItems.cshtml: -------------------------------------------------------------------------------- 1 | @* 2 | Iván Loire - www.iloire.com 3 | Please readme README file for license terms. 4 | 5 | ASP.NET MVC3 ACME Invocing app (demo app for training purposes) 6 | *@ 7 | 8 | @model string 9 | 10 | 31 | 32 | @using (Html.BeginForm("Search", Model, new {proposal=ViewBag.IsProposal}, FormMethod.Get)) 33 | { 34 | 69 | } 70 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/_LayoutPrint.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | @ViewBag.Title 6 | 7 | 8 | 9 | 10 | 11 | @RenderSection("Header", false) 12 | 13 | 14 | 15 | 16 | 17 |
18 | @RenderBody() 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/Shared/_LogOnPartial.cshtml: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /iloire Facturacion/Views/Web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 39 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /iloire Facturacion/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } -------------------------------------------------------------------------------- /iloire Facturacion/Web.Debug.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /iloire Facturacion/Web.Release.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /iloire Facturacion/iloire Facturacion.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | SpecificPage 13 | True 14 | False 15 | False 16 | False 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | False 26 | True 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /iloire Facturacion/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg -------------------------------------------------------------------------------- /packages/EntityFramework.4.1.10331.0/lib/EntityFramework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.dll -------------------------------------------------------------------------------- /packages/Modernizr.1.7/Modernizr.1.7.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Modernizr.1.7/Modernizr.1.7.nupkg -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2007. Clarius Consulting, Manas Technology Solutions, InSTEDD 2 | http://code.google.com/p/moq/ 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, 6 | with or without modification, are permitted provided 7 | that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the 10 | above copyright notice, this list of conditions and 11 | the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce 14 | the above copyright notice, this list of conditions 15 | and the following disclaimer in the documentation 16 | and/or other materials provided with the distribution. 17 | 18 | * Neither the name of Clarius Consulting, Manas Technology Solutions or InSTEDD nor the 19 | names of its contributors may be used to endorse 20 | or promote products derived from this software 21 | without specific prior written permission. 22 | 23 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 24 | CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 25 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 28 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 29 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 33 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 34 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 | SUCH DAMAGE. 37 | 38 | [This is the BSD license, see 39 | http://www.opensource.org/licenses/bsd-license.php] -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/Moq.4.0.10827.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Moq.4.0.10827/Moq.4.0.10827.nupkg -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/Moq.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Moq.4.0.10827/Moq.chm -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/lib/NET35/Moq.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Moq.4.0.10827/lib/NET35/Moq.dll -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/lib/NET40/Moq.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Moq.4.0.10827/lib/NET40/Moq.dll -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/lib/Silverlight4/Castle.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Moq.4.0.10827/lib/Silverlight4/Castle.Core.dll -------------------------------------------------------------------------------- /packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.dll -------------------------------------------------------------------------------- /packages/NuGetPowerTools.0.29/NuGetPowerTools.0.29.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/NuGetPowerTools.0.29/NuGetPowerTools.0.29.nupkg -------------------------------------------------------------------------------- /packages/NuGetPowerTools.0.29/tools/NuGetPowerTools.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | 3 | # Script module or binary module file associated with this manifest 4 | ModuleToProcess = 'NuGetPowerTools.psm1' 5 | 6 | # Version number of this module. 7 | ModuleVersion = '0.1' 8 | 9 | # ID used to uniquely identify this module 10 | GUID = '0093ae2d-89e4-494c-81a6-35881fafb6f2' 11 | 12 | # Author of this module 13 | Author = 'David Fowler' 14 | 15 | # Company or vendor of this module 16 | CompanyName = 'Outercurve Foundation' 17 | 18 | # Copyright statement for this module 19 | Copyright = '(c) 2011 Outercurve Foundation. All rights reserved.' 20 | 21 | # Description of the functionality provided by this module 22 | Description = 'This module provide some powershell goodies that makes working with nuget even easier' 23 | 24 | # Minimum version of the Windows PowerShell engine required by this module 25 | PowerShellVersion = '2.0' 26 | 27 | # Name of the Windows PowerShell host required by this module 28 | PowerShellHostName = 'Package Manager Host' 29 | 30 | # Minimum version of the Windows PowerShell host required by this module 31 | PowerShellHostVersion = '1.2' 32 | 33 | # Minimum version of the .NET Framework required by this module 34 | DotNetFrameworkVersion = '4.0' 35 | 36 | # Minimum version of the common language runtime (CLR) required by this module 37 | CLRVersion = '' 38 | 39 | # Processor architecture (None, X86, Amd64, IA64) required by this module 40 | ProcessorArchitecture = '' 41 | 42 | # Modules that must be imported into the global environment prior to importing this module 43 | RequiredModules = @() 44 | 45 | # Assemblies that must be loaded prior to importing this module 46 | RequiredAssemblies = @() 47 | 48 | # Script files (.ps1) that are run in the caller's environment prior to importing this module 49 | ScriptsToProcess = @() 50 | 51 | # Type files (.ps1xml) to be loaded when importing this module 52 | TypesToProcess = @() 53 | 54 | # Format files (.ps1xml) to be loaded when importing this module 55 | FormatsToProcess = @() 56 | 57 | # Modules to import as nested modules of the module specified in ModuleToProcess 58 | NestedModules = @('VS.psm1', 'MSBuild.psm1', 'NuGetMSBuild.psm1') 59 | 60 | # Functions to export from this module 61 | FunctionsToExport = '*' 62 | 63 | # Cmdlets to export from this module 64 | CmdletsToExport = '' 65 | 66 | # Variables to export from this module 67 | VariablesToExport = '' 68 | 69 | # Aliases to export from this module 70 | AliasesToExport = '' 71 | 72 | # List of all files packaged with this module 73 | FileList = @() 74 | 75 | # Private data to pass to the module specified in ModuleToProcess 76 | PrivateData = '' 77 | 78 | } -------------------------------------------------------------------------------- /packages/NuGetPowerTools.0.29/tools/NuGetPowerTools.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/NuGetPowerTools.0.29/tools/NuGetPowerTools.psm1 -------------------------------------------------------------------------------- /packages/NuGetPowerTools.0.29/tools/VS.psm1: -------------------------------------------------------------------------------- 1 | function Get-SolutionDir { 2 | if($dte.Solution -and $dte.Solution.IsOpen) { 3 | return Split-Path $dte.Solution.Properties.Item("Path").Value 4 | } 5 | else { 6 | throw "Solution not avaliable" 7 | } 8 | } 9 | 10 | function Get-ProjectPropertyValue { 11 | param( 12 | [parameter(Mandatory = $true)] 13 | [string]$ProjectName, 14 | [parameter(Mandatory = $true)] 15 | [string]$PropertyName 16 | ) 17 | try { 18 | $property = (Get-Project $ProjectName).Properties.Item($PropertyName) 19 | if($property) { 20 | return $property.Value 21 | } 22 | } 23 | catch { 24 | } 25 | return $null 26 | } 27 | 28 | Export-ModuleMember * -------------------------------------------------------------------------------- /packages/NuGetPowerTools.0.29/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | Import-Module (Join-Path $toolsPath NuGetPowerTools.psd1) 3 | 4 | Write-Host "" 5 | Write-Host "*************************************************************************************" 6 | Write-Host " INSTRUCTIONS" 7 | Write-Host "*************************************************************************************" 8 | Write-Host " - To enable building a package from a project use the Enable-PackageBuild command" 9 | Write-Host " - To enable restoring packages on build use the Enable-PackageRestore command." 10 | Write-Host " - When using one of the above commands, a .nuget folder will been added to your" 11 | Write-Host " solution root. Make sure you check it in!" 12 | Write-Host " - For for information, see https://github.com/davidfowl/NuGetPowerTools" 13 | Write-Host "*************************************************************************************" 14 | Write-Host "" -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/Content/web.config.transform: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Vy8CgQgbu3qH5JHTK0op4kR8114= QTJu3Gttpt8hhCktGelNeXj4Yp8= 1ruqF7/L+m1tqnJVscaOtNRNHIE= 6 | -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/Microsoft.VC90.CRT/README_ENU.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/Microsoft.VC90.CRT/README_ENU.txt -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/Microsoft.VC90.CRT/msvcr90.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/Microsoft.VC90.CRT/msvcr90.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlcecompact40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlcecompact40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlceer40EN.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlceer40EN.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlceme40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlceme40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlceqp40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlceqp40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlcese40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/amd64/sqlcese40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | +CXED+6HzJlSphyMNOn27ujadC0= MyKED+9DyS+1XcMeaC0Zlw2vFZ0= EeyDE7og6WoPd2oBhYbMEnpFHhY= 6 | -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/Microsoft.VC90.CRT/README_ENU.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/Microsoft.VC90.CRT/README_ENU.txt -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/Microsoft.VC90.CRT/msvcr90.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/Microsoft.VC90.CRT/msvcr90.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlcecompact40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlcecompact40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlceer40EN.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlceer40EN.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlceme40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlceme40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlceqp40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlceqp40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlcese40.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/NativeBinaries/x86/sqlcese40.dll -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/SqlServerCompact.4.0.8482.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/SqlServerCompact.4.0.8482.1.nupkg -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/Tools/GetSqlCEPostBuildCmd.ps1: -------------------------------------------------------------------------------- 1 | $solutionDir = [System.IO.Path]::GetDirectoryName($dte.Solution.FullName) + "\" 2 | $path = $installPath.Replace($solutionDir, "`$(SolutionDir)") 3 | 4 | $NativeAssembliesDir = Join-Path $path "NativeBinaries" 5 | $x86 = $(Join-Path $NativeAssembliesDir "x86\*.*") 6 | $x64 = $(Join-Path $NativeAssembliesDir "amd64\*.*") 7 | 8 | $SqlCEPostBuildCmd = " 9 | if not exist `"`$(TargetDir)x86`" md `"`$(TargetDir)x86`" 10 | xcopy /s /y `"$x86`" `"`$(TargetDir)x86`" 11 | if not exist `"`$(TargetDir)amd64`" md `"`$(TargetDir)amd64`" 12 | xcopy /s /y `"$x64`" `"`$(TargetDir)amd64`"" -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/Tools/install.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | . (Join-Path $toolsPath "GetSqlCEPostBuildCmd.ps1") 4 | 5 | # Get the current Post Build Event cmd 6 | $currentPostBuildCmd = $project.Properties.Item("PostBuildEvent").Value 7 | 8 | # Append our post build command if it's not already there 9 | if (!$currentPostBuildCmd.Contains($SqlCEPostBuildCmd)) { 10 | $project.Properties.Item("PostBuildEvent").Value += $SqlCEPostBuildCmd 11 | } 12 | -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/Tools/uninstall.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | . (Join-Path $toolsPath "GetSqlCEPostBuildCmd.ps1") 4 | 5 | # Get the current Post Build Event cmd 6 | $currentPostBuildCmd = $project.Properties.Item("PostBuildEvent").Value 7 | 8 | # Remove our post build command from it (if it's there) 9 | $project.Properties.Item("PostBuildEvent").Value = $currentPostBuildCmd.Replace($SqlCEPostBuildCmd, "") 10 | -------------------------------------------------------------------------------- /packages/SqlServerCompact.4.0.8482.1/lib/System.Data.SqlServerCe.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/SqlServerCompact.4.0.8482.1/lib/System.Data.SqlServerCe.dll -------------------------------------------------------------------------------- /packages/elmah.1.2.0.1/content/web.config.transform: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /packages/elmah.1.2.0.1/elmah.1.2.0.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/elmah.1.2.0.1/elmah.1.2.0.1.nupkg -------------------------------------------------------------------------------- /packages/elmah.corelibrary.1.2/elmah.corelibrary.1.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/elmah.corelibrary.1.2/elmah.corelibrary.1.2.nupkg -------------------------------------------------------------------------------- /packages/elmah.corelibrary.1.2/lib/Elmah.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/elmah.corelibrary.1.2/lib/Elmah.dll -------------------------------------------------------------------------------- /packages/jQuery.1.5.1/jQuery.1.5.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.1.5.1/jQuery.1.5.1.nupkg -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.accordion.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Accordion 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Accordion#theming 14 | */ 15 | /* IE/Win - Fix animation bug - #4615 */ 16 | .ui-accordion { width: 100%; } 17 | .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } 18 | .ui-accordion .ui-accordion-li-fix { display: inline; } 19 | .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } 20 | .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } 21 | .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } 22 | .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } 23 | .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } 24 | .ui-accordion .ui-accordion-content-active { display: block; } 25 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.all.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI CSS Framework 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Theming 14 | */ 15 | @import "jquery.ui.base.css"; 16 | @import "jquery.ui.theme.css"; 17 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.autocomplete.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Autocomplete 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * http://docs.jquery.com/UI/Autocomplete#theming 13 | */ 14 | .ui-autocomplete { position: absolute; cursor: default; } 15 | 16 | /* workarounds */ 17 | * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ 18 | 19 | /* 20 | * Note: While Microsoft is not the author of this file, Microsoft is 21 | * offering you a license subject to the terms of the Microsoft Software 22 | * License Terms for Microsoft ASP.NET Model View Controller 3. 23 | * Microsoft reserves all other rights. The notices below are provided 24 | * for informational purposes only and are not the license terms under 25 | * which Microsoft distributed this file. 26 | * 27 | * jQuery UI Menu 1.8.11 28 | * 29 | * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 30 | * 31 | * http://docs.jquery.com/UI/Menu#theming 32 | */ 33 | .ui-menu { 34 | list-style:none; 35 | padding: 2px; 36 | margin: 0; 37 | display:block; 38 | float: left; 39 | } 40 | .ui-menu .ui-menu { 41 | margin-top: -3px; 42 | } 43 | .ui-menu .ui-menu-item { 44 | margin:0; 45 | padding: 0; 46 | zoom: 1; 47 | float: left; 48 | clear: left; 49 | width: 100%; 50 | } 51 | .ui-menu .ui-menu-item a { 52 | text-decoration:none; 53 | display:block; 54 | padding:.2em .4em; 55 | line-height:1.5; 56 | zoom:1; 57 | } 58 | .ui-menu .ui-menu-item a.ui-state-hover, 59 | .ui-menu .ui-menu-item a.ui-state-active { 60 | font-weight: normal; 61 | margin: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.base.css: -------------------------------------------------------------------------------- 1 | @import url("jquery.ui.core.css"); 2 | @import url("jquery.ui.resizable.css"); 3 | @import url("jquery.ui.selectable.css"); 4 | @import url("jquery.ui.accordion.css"); 5 | @import url("jquery.ui.autocomplete.css"); 6 | @import url("jquery.ui.button.css"); 7 | @import url("jquery.ui.dialog.css"); 8 | @import url("jquery.ui.slider.css"); 9 | @import url("jquery.ui.tabs.css"); 10 | @import url("jquery.ui.datepicker.css"); 11 | @import url("jquery.ui.progressbar.css"); -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.button.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Button 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Button#theming 14 | */ 15 | .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ 16 | .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ 17 | button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ 18 | .ui-button-icons-only { width: 3.4em; } 19 | button.ui-button-icons-only { width: 3.7em; } 20 | 21 | /*button text element */ 22 | .ui-button .ui-button-text { display: block; line-height: 1.4; } 23 | .ui-button-text-only .ui-button-text { padding: .4em 1em; } 24 | .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } 25 | .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } 26 | .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } 27 | .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } 28 | /* no icon support for input elements, provide padding by default */ 29 | input.ui-button { padding: .4em 1em; } 30 | 31 | /*button icon element(s) */ 32 | .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } 33 | .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } 34 | .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } 35 | .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 36 | .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 37 | 38 | /*button sets*/ 39 | .ui-buttonset { margin-right: 7px; } 40 | .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } 41 | 42 | /* workarounds */ 43 | button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ 44 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.core.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI CSS Framework 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Theming/API 14 | */ 15 | 16 | /* Layout helpers 17 | ----------------------------------*/ 18 | .ui-helper-hidden { display: none; } 19 | .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } 20 | .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } 21 | .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } 22 | .ui-helper-clearfix { display: inline-block; } 23 | /* required comment for clearfix to work in Opera \*/ 24 | * html .ui-helper-clearfix { height:1%; } 25 | .ui-helper-clearfix { display:block; } 26 | /* end clearfix */ 27 | .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } 28 | 29 | 30 | /* Interaction Cues 31 | ----------------------------------*/ 32 | .ui-state-disabled { cursor: default !important; } 33 | 34 | 35 | /* Icons 36 | ----------------------------------*/ 37 | 38 | /* states and images */ 39 | .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } 40 | 41 | 42 | /* Misc visuals 43 | ----------------------------------*/ 44 | 45 | /* Overlays */ 46 | .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } 47 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.dialog.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Dialog 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Dialog#theming 14 | */ 15 | .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } 16 | .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } 17 | .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 18 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } 19 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } 20 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } 21 | .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } 22 | .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } 23 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } 24 | .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } 25 | .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } 26 | .ui-draggable .ui-dialog-titlebar { cursor: move; } 27 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.progressbar.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Progressbar 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Progressbar#theming 14 | */ 15 | .ui-progressbar { height:2em; text-align: left; } 16 | .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.resizable.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Resizable 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)] 12 | * 13 | * http://docs.jquery.com/UI/Resizable#theming 14 | */ 15 | .ui-resizable { position: relative;} 16 | .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} 17 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } 18 | .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } 19 | .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } 20 | .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } 21 | .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } 22 | .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } 23 | .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } 24 | .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } 25 | .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.selectable.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Selectable 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Selectable#theming 14 | */ 15 | .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 16 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.slider.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Slider 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Slider#theming 14 | */ 15 | .ui-slider { position: relative; text-align: left; } 16 | .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } 17 | .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } 18 | 19 | .ui-slider-horizontal { height: .8em; } 20 | .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } 21 | .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } 22 | .ui-slider-horizontal .ui-slider-range-min { left: 0; } 23 | .ui-slider-horizontal .ui-slider-range-max { right: 0; } 24 | 25 | .ui-slider-vertical { width: .8em; height: 100px; } 26 | .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } 27 | .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } 28 | .ui-slider-vertical .ui-slider-range-min { bottom: 0; } 29 | .ui-slider-vertical .ui-slider-range-max { top: 0; } -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.tabs.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Note: While Microsoft is not the author of this file, Microsoft is 3 | * offering you a license subject to the terms of the Microsoft Software 4 | * License Terms for Microsoft ASP.NET Model View Controller 3. 5 | * Microsoft reserves all other rights. The notices below are provided 6 | * for informational purposes only and are not the license terms under 7 | * which Microsoft distributed this file. 8 | * 9 | * jQuery UI Tabs 1.8.11 10 | * 11 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 12 | * 13 | * http://docs.jquery.com/UI/Tabs#theming 14 | */ 15 | .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 16 | .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } 17 | .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } 18 | .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } 19 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } 20 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } 21 | .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ 22 | .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } 23 | .ui-tabs .ui-tabs-hide { display: none !important; } 24 | -------------------------------------------------------------------------------- /packages/jQuery.UI.Combined.1.8.11/jQuery.UI.Combined.1.8.11.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.UI.Combined.1.8.11/jQuery.UI.Combined.1.8.11.nupkg -------------------------------------------------------------------------------- /packages/jQuery.Validation.1.8.0/jQuery.Validation.1.8.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.Validation.1.8.0/jQuery.Validation.1.8.0.nupkg -------------------------------------------------------------------------------- /packages/jQuery.vsdoc.1.5.1/jQuery.vsdoc.1.5.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/packages/jQuery.vsdoc.1.5.1/jQuery.vsdoc.1.5.1.nupkg -------------------------------------------------------------------------------- /packages/repositories.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /screenshots/detail_invoice01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/detail_invoice01.png -------------------------------------------------------------------------------- /screenshots/edit_customer01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/edit_customer01.png -------------------------------------------------------------------------------- /screenshots/home01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/home01.png -------------------------------------------------------------------------------- /screenshots/list_customer01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/list_customer01.png -------------------------------------------------------------------------------- /screenshots/list_invoice01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/list_invoice01.png -------------------------------------------------------------------------------- /screenshots/new_customer_bootstrap_style01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/new_customer_bootstrap_style01.png -------------------------------------------------------------------------------- /screenshots/printed_invoice01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/printed_invoice01.png -------------------------------------------------------------------------------- /screenshots/unit_testing01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iloire/asp.net-mvc-example-invoicing-app/4701281aed5b8f8bdbb90e158d2785d36f675d4b/screenshots/unit_testing01.png --------------------------------------------------------------------------------