* InputCircle.cs: An input control specialized for circle selection

* UserCard.cs: Displays user informations on a little div

* Estim.cs:
* WebControls.csproj:
* CircleInfo.cs:
* CircleProvider.cs:
* CircleApiController.cs:
* BasketApiController.cs:
* ITContentProvider.csproj:
* CalendarApiController.cs:
* WorkFlowApiController.cs:
* NpgsqlCircleProvider.cs:
* FrontOfficeApiController.cs:

* InputUserName.cs: Fixes the ToolBoxData attribute

* Web.csproj:
* Circle.cs: refactoring

* instdbws.sql: Foreign keys are cascading updates and deletions

* Estim.tt:
* Profile.cs: User's profile does not contain anymore the main e-mail
  address, it conflicts with registration informations, it is not part
  of the profile data
This commit is contained in:
Paul Schneider 2015-06-10 23:38:18 +02:00
commit 6680addcc8
24 changed files with 796 additions and 227 deletions

View file

@ -15,7 +15,7 @@ namespace Yavsc.ApiControllers
/// Maintains a collection of articles
/// qualified with name value pairs
/// </summary>
public class BasketController : ApiController
public class BasketApiController : ApiController
{
/// <summary>
/// The wfmgr.

View file

@ -34,7 +34,7 @@ namespace Yavsc.ApiControllers
/// <summary>
/// Night flash controller.
/// </summary>
public class CalendarController: ApiController
public class CalendarApiController: ApiController
{
YaEvent[] getTestList()
{

View file

@ -30,50 +30,71 @@ namespace Yavsc.ApiControllers
/// <summary>
/// Circle controller.
/// </summary>
public class CircleController : ApiController
public class CircleApiController : ApiController
{
/// <summary>
/// Add the specified id and users.
/// Creates the specified circle using the given title and user list.
/// </summary>
/// <param name="id">Identifier.</param>
/// <param name="title">Title.</param>
/// <param name="title">Identifier.</param>
/// <param name="users">Users.</param>
[Authorize]
public void Add(string id, string [] users)
public long Create(string title, string [] users)
{
string user = Membership.GetUser ().UserName;
CircleManager.DefaultProvider.Add (user, id, users);
}
/// <summary>
/// Delete the specified id.
/// </summary>
/// <param name="id">Identifier.</param>
[Authorize] public void Delete(string id)
{
string user = Membership.GetUser ().UserName;
CircleManager.DefaultProvider.Delete (user, id);
return CircleManager.DefaultProvider.Create (user, title, users);
}
/// <summary>
/// Get the specified id.
/// Add the specified users to the circle.
/// </summary>
/// <param name="id">Circle Identifier.</param>
/// <param name="username">username.</param>
[Authorize]
public void Add(long id, string username)
{
checkIsOwner (CircleManager.DefaultProvider.Get (id));
CircleManager.DefaultProvider.Add (id, username);
}
/// <summary>
/// Delete the circle specified by id.
/// </summary>
/// <param name="id">Identifier.</param>
[Authorize] public void Delete(long id)
{
checkIsOwner (CircleManager.DefaultProvider.Get(id));
CircleManager.DefaultProvider.Delete (id);
}
private void checkIsOwner(Circle c)
{
string user = Membership.GetUser ().UserName;
if (c.Owner != user)
throw new AccessViolationException ("You're not owner of this circle");
}
/// <summary>
/// Get the circle specified id.
/// </summary>
/// <param name="id">Identifier.</param>
[Authorize]
public Circle Get(string id)
public Circle Get(long id)
{
string user = Membership.GetUser ().UserName;
return CircleManager.DefaultProvider.Get (user, id);
var c = CircleManager.DefaultProvider.Get (id);
checkIsOwner (c);
return c;
}
/// <summary>
/// List this instance.
/// List the circles
/// </summary>
[Authorize]
public CircleInfoCollection List()
{
string user = Membership.GetUser ().UserName;
return CircleManager.DefaultProvider.List ();
return CircleManager.DefaultProvider.List (user);
}
}
}

View file

@ -100,7 +100,6 @@ namespace Yavsc.ApiControllers
Estimate e = wfmgr.GetEstimate (estimid);
tmpe.Session = new Dictionary<string,object> ();
tmpe.Session.Add ("estim", e);
Profile prpro = new Profile (ProfileBase.Create (e.Responsible));
if (!prpro.HasBankAccount)
throw new TemplateException ("NotBankable:" + e.Responsible);
@ -114,6 +113,8 @@ namespace Yavsc.ApiControllers
tmpe.Session.Add ("from", prpro);
tmpe.Session.Add ("to", prcli);
tmpe.Session.Add ("efrom", Membership.GetUser (e.Responsible).Email);
tmpe.Session.Add ("efrom", Membership.GetUser (e.Client).Email);
tmpe.Init ();
return tmpe.TransformText ();
}

View file

@ -17,7 +17,7 @@ namespace Yavsc.ApiControllers
/// <summary>
/// Work flow controller.
/// </summary>
public class WorkFlowController : ApiController
public class WorkFlowApiController : ApiController
{
string adminRoleName="Admin";
/// <summary>

View file

@ -1,3 +1,21 @@
2015-06-10 Paul Schneider <paul@pschneider.fr>
* Estim.cs:
* BasketApiController.cs:
* CircleApiController.cs:
* CalendarApiController.cs:
* WorkFlowApiController.cs:
* FrontOfficeApiController.cs:
* Web.csproj: refactoring
* instdbws.sql: Foreign keys are cascading updates and
deletions
* Estim.tt: User's profile does not contain anymore the main
e-mail address, it conflicts with registration informations,
it is not part of the profile data
2015-06-10 Paul Schneider <paul@pschneider.fr>
* CalendarController.cs: refactoring

View file

@ -126,6 +126,7 @@
<Folder Include="Views\PayPal\" />
<Folder Include="ApiControllers\" />
<Folder Include="Views\Modules\" />
<Folder Include="Views\Circle\" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controllers\HomeController.cs" />
@ -173,21 +174,21 @@
<Compile Include="Formatters\ErrorHtmlFormatter.cs" />
<Compile Include="Formatters\RssFeedsFormatter.cs" />
<Compile Include="Formatters\TexToPdfFormatter.cs" />
<Compile Include="ApiControllers\BasketController.cs" />
<Compile Include="ApiControllers\BlogsApiController.cs" />
<Compile Include="ApiControllers\FrontOfficeApiController.cs" />
<Compile Include="ApiControllers\PaypalApiController.cs" />
<Compile Include="WebApiConfig.cs" />
<Compile Include="ApiControllers\WorkFlowController.cs" />
<Compile Include="IValueProvider.cs" />
<Compile Include="Formatters\EstimToPdfFormatter.MSAN.cs" />
<Compile Include="Helpers\TemplateException.cs" />
<Compile Include="Helpers\MarkdownHelper.cs" />
<Compile Include="ApiControllers\CalendarController.cs" />
<Compile Include="Formatters\FormatterException.cs" />
<Compile Include="NUnitTestClass.cs" />
<Compile Include="TestExec.cs" />
<Compile Include="ApiControllers\CircleController.cs" />
<Compile Include="ApiControllers\CircleApiController.cs" />
<Compile Include="ApiControllers\BasketApiController.cs" />
<Compile Include="ApiControllers\CalendarApiController.cs" />
<Compile Include="ApiControllers\WorkFlowApiController.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Views\Web.config" />

View file

@ -256,10 +256,10 @@ CREATE TABLE comment
CONSTRAINT comment_pkey PRIMARY KEY (_id),
CONSTRAINT fkey_blog FOREIGN KEY (postid)
REFERENCES blog (_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
ON UPDATE CASCADE ON DELETE ,
CONSTRAINT fkey_users FOREIGN KEY (username, applicationname)
REFERENCES users (username, applicationname) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -342,7 +342,7 @@ CREATE TABLE histoestim
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT histoestim_username_fkey FOREIGN KEY (username, applicationname)
REFERENCES users (username, applicationname) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -401,7 +401,7 @@ CREATE TABLE projet
CONSTRAINT projet_pk_new PRIMARY KEY (id),
CONSTRAINT pk_project_manager FOREIGN KEY (managerid, "ApplicationName")
REFERENCES users (username, applicationname) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -427,7 +427,7 @@ CREATE TABLE stocksymbols
stocksymbol character varying(10),
CONSTRAINT fkprofiles1 FOREIGN KEY (uniqueid)
REFERENCES profiles (uniqueid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -489,7 +489,7 @@ CREATE TABLE tasks
CONSTRAINT tasks_pk_new PRIMARY KEY (id),
CONSTRAINT tasks_fk_new FOREIGN KEY (prid)
REFERENCES projet (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -507,10 +507,10 @@ CREATE TABLE taskdeps
CONSTRAINT pk_tasks_deps PRIMARY KEY ("taskId", deptask),
CONSTRAINT pk_foreign_dep FOREIGN KEY (deptask)
REFERENCES tasks (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT pk_foreign_task FOREIGN KEY ("taskId")
REFERENCES tasks (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -583,10 +583,10 @@ CREATE TABLE wrtags
CONSTRAINT wrtags_pkey1 PRIMARY KEY (wrid, tagid),
CONSTRAINT cstwrtagsref FOREIGN KEY (tagid)
REFERENCES tag (_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT wrtags_wrid_fkey1 FOREIGN KEY (wrid)
REFERENCES writtings (_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
@ -640,11 +640,52 @@ CREATE TABLE histowritting
CONSTRAINT histowritting_pkey PRIMARY KEY (_id),
CONSTRAINT histowritting_username_fkey FOREIGN KEY (username, applicationname)
REFERENCES users (username, applicationname) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT histowritting_wrtid_fkey FOREIGN KEY (wrtid)
REFERENCES writtings (_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
);
-- Table: circle
-- DROP TABLE circle;
CREATE TABLE circle
(
_id serial NOT NULL, -- Circle identifier
owner character varying(255), -- creator of this circle
applicationname character varying(255), -- Application name
CONSTRAINT circle_pkey PRIMARY KEY (_id),
CONSTRAINT circle_owner_fkey FOREIGN KEY (owner, applicationname)
REFERENCES users (username, applicationname) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
COMMENT ON COLUMN circle._id IS 'Circle identifier';
COMMENT ON COLUMN circle.owner IS 'creator of this circle';
COMMENT ON COLUMN circle.applicationname IS 'Application name';
-- Table: circle_members
-- DROP TABLE circle_members;
CREATE TABLE circle_members
(
circle_id bigint NOT NULL,
member character varying NOT NULL,
CONSTRAINT circle_members_pkey PRIMARY KEY (circle_id, member),
CONSTRAINT circle_members_member_fkey FOREIGN KEY (member)
REFERENCES users (pkid) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);

View file

@ -37,6 +37,18 @@ namespace Yavsc.templates {
return this._toField;
}
}
private String _efromField;
public String efrom {
get {
return this._efromField;
}
}
private String _etoField;
public String eto {
get {
return this._etoField;
}
}
public virtual string TransformText() {
@ -48,168 +60,132 @@ namespace Yavsc.templates {
#line default
#line hidden
#line 14 ""
#line 16 ""
this.Write("\n\\documentclass[french,11pt]{article}\n\\usepackage{babel}\n\\usepackage[T1]{fontenc}\n\\usepackage[utf8]{inputenc}\n\\usepackage[a4paper]{geometry}\n\\usepackage{units}\n\\usepackage{bera}\n\\usepackage{graphicx}\n\\usepackage{fancyhdr}\n\\usepackage{fp}\n\n\\def\\TVA{20} % Taux de la TVA\n\n\\def\\TotalHT{0}\n\\def\\TotalTVA{0}\n\n\\newcommand{\\AjouterService}[3]{% Arguments : Désignation, quantité, prix\n \\FPround{\\prix}{#3}{2}\n \\FPeval{\\montant}{#2 * #3}\n \\FPround{\\montant}{\\montant}{2}\n \\FPadd{\\TotalHT}{\\TotalHT}{\\montant}\n \n \\eaddto\\ListeProduits{#1 & \\prix & #2 & \\montant \\cr}\n}\n\n\n\\newcommand{\\AfficheResultat}{%\n \\ListeProduits\n \n \\FPeval{\\TotalTVA}{\\TotalHT * \\TVA / 100}\n \\FPadd{\\TotalTTC}{\\TotalHT}{\\TotalTVA}\n \\FPround{\\TotalHT}{\\TotalHT}{2}\n \\FPround{\\TotalTVA}{\\TotalTVA}{2}\n \\FPround{\\TotalTTC}{\\TotalTTC}{2}\n \\global\\let\\TotalHT\\TotalHT\n \\global\\let\\TotalTVA\\TotalTVA\n \\global\\let\\TotalTTC\\TotalTTC\n \n\n \\cr \n \\hline\n \\textbf{Total} & & & \\TotalHT\n}\n\n\\newcommand*\\eaddto[2]{% version développée de \\addto\n \\edef\\tmp{#2}%\n \\expandafter\\addto\n \\expandafter#1%\n \\expandafter{\\tmp}%\n}\n\n\\newcommand{\\ListeProduits}{}\n\n\n\n\n%%%%%%%%%%%%%%%%%%%%% A MODIFIER DANS LA FACTURE %%%%%%%%%%%%%%%%%%%%%\n\n\\def\\FactureNum {");
#line default
#line hidden
#line 73 ""
#line 75 ""
this.Write(this.ToStringHelper.ToStringWithCulture( estim.Id.ToString() ));
#line default
#line hidden
#line 73 ""
#line 75 ""
this.Write("} % Numéro de facture\n\\def\\FactureAcquittee {non} % Facture acquittée : oui/non\n\\def\\FactureLieu {");
#line default
#line hidden
#line 75 ""
#line 77 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.CityAndState ));
#line default
#line hidden
#line 75 ""
#line 77 ""
this.Write("} % Lieu de l'édition de la facture\n\\def\\FactureObjet {Facture : ");
#line default
#line hidden
#line 76 ""
#line 78 ""
this.Write(this.ToStringHelper.ToStringWithCulture( estim.Title ));
#line default
#line hidden
#line 76 ""
#line 78 ""
this.Write("} % Objet du document\n% Description de la facture\n\\def\\FactureDescr {%\n ");
#line default
#line hidden
#line 79 ""
#line 81 ""
this.Write(this.ToStringHelper.ToStringWithCulture( estim.Description ));
#line default
#line hidden
#line 79 ""
#line 81 ""
this.Write("\n}\n\n% Infos Client\n\\def\\ClientNom{");
#line default
#line hidden
#line 83 ""
#line 85 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Name ));
#line default
#line hidden
#line 83 ""
#line 85 ""
this.Write("} % Nom du client\n\\def\\ClientAdresse{% % Adresse du client\n ");
#line default
#line hidden
#line 85 ""
#line 87 ""
if (!string.IsNullOrWhiteSpace(to.Address)) {
#line default
#line hidden
#line 86 ""
#line 88 ""
this.Write(" ");
#line default
#line hidden
#line 86 ""
#line 88 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Address ));
#line default
#line hidden
#line 86 ""
#line 88 ""
this.Write("\\\\\n ");
#line default
#line hidden
#line 87 ""
#line 89 ""
}
#line default
#line hidden
#line 88 ""
#line 90 ""
this.Write(" ");
#line default
#line hidden
#line 88 ""
#line 90 ""
if (!string.IsNullOrWhiteSpace(to.ZipCode)) {
#line default
#line hidden
#line 89 ""
#line 91 ""
this.Write(" ");
#line default
#line hidden
#line 89 ""
#line 91 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.ZipCode ));
#line default
#line hidden
#line 89 ""
#line 91 ""
this.Write(" ");
#line default
#line hidden
#line 89 ""
}
#line default
#line hidden
#line 90 ""
this.Write(" ");
#line default
#line hidden
#line 90 ""
if (!string.IsNullOrWhiteSpace(to.ZipCode)) {
#line default
#line hidden
#line 91 ""
this.Write(" ");
#line default
#line hidden
#line 91 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.CityAndState ));
#line default
#line hidden
#line 91 ""
this.Write("\\\\ ");
#line default
#line hidden
#line 91 ""
}
@ -217,91 +193,97 @@ namespace Yavsc.templates {
#line hidden
#line 92 ""
this.Write(" \n");
this.Write(" ");
#line default
#line hidden
#line 92 ""
if (!string.IsNullOrWhiteSpace(to.ZipCode)) {
#line default
#line hidden
#line 93 ""
if (!string.IsNullOrWhiteSpace(to.Phone)) {
this.Write(" ");
#line default
#line hidden
#line 93 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.CityAndState ));
#line default
#line hidden
#line 93 ""
this.Write("\\\\ ");
#line default
#line hidden
#line 93 ""
}
#line default
#line hidden
#line 94 ""
this.Write(" Téléphone fixe: ");
#line default
#line hidden
#line 94 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Phone ));
#line default
#line hidden
#line 94 ""
this.Write("\\\\\n");
this.Write(" \n");
#line default
#line hidden
#line 95 ""
}
if (!string.IsNullOrWhiteSpace(to.Phone)) {
#line default
#line hidden
#line 96 ""
if (!string.IsNullOrWhiteSpace(to.Mobile)) {
this.Write(" Téléphone fixe: ");
#line default
#line hidden
#line 97 ""
this.Write(" Mobile: ");
#line 96 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Phone ));
#line default
#line hidden
#line 97 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Mobile ));
#line default
#line hidden
#line 97 ""
#line 96 ""
this.Write("\\\\\n");
#line default
#line hidden
#line 98 ""
#line 97 ""
}
#line default
#line hidden
#line 99 ""
this.Write(" ");
#line 98 ""
if (!string.IsNullOrWhiteSpace(to.Mobile)) {
#line default
#line hidden
#line 99 ""
if (!string.IsNullOrWhiteSpace(to.Email)) {
this.Write(" Mobile: ");
#line default
#line hidden
#line 100 ""
this.Write(" E-mail: ");
#line 99 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Mobile ));
#line default
#line hidden
#line 100 ""
this.Write(this.ToStringHelper.ToStringWithCulture( to.Email ));
#line 99 ""
this.Write("\\\\\n");
#line default
#line hidden
@ -313,91 +295,85 @@ namespace Yavsc.templates {
#line hidden
#line 101 ""
this.Write("}\n\n% Liste des produits facturés : Désignation, prix\n\n ");
#line default
#line hidden
#line 105 ""
foreach (Writting wr in estim.Lines) {
#line default
#line hidden
#line 106 ""
this.Write("\\AjouterService {");
#line default
#line hidden
#line 106 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.Description));
#line default
#line hidden
#line 106 ""
this.Write(" ");
#line default
#line hidden
#line 106 ""
if (!string.IsNullOrWhiteSpace(wr.ProductReference)) {
#line 101 ""
if (!string.IsNullOrWhiteSpace(eto)) {
#line default
#line hidden
#line 107 ""
this.Write(" (");
#line 102 ""
this.Write(" E-mail: ");
#line default
#line hidden
#line 107 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.ProductReference));
#line 102 ""
this.Write(this.ToStringHelper.ToStringWithCulture( eto ));
#line default
#line hidden
#line 107 ""
this.Write(")");
#line default
#line hidden
#line 107 ""
#line 102 ""
}
#line default
#line hidden
#line 108 ""
this.Write("} {");
#line 103 ""
this.Write("}\n\n% Liste des produits facturés : Désignation, prix\n\n ");
#line default
#line hidden
#line 107 ""
foreach (Writting wr in estim.Lines) {
#line default
#line hidden
#line 108 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.Count));
this.Write("\\AjouterService {");
#line default
#line hidden
#line 108 ""
this.Write("} {");
this.Write(this.ToStringHelper.ToStringWithCulture(wr.Description));
#line default
#line hidden
#line 108 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.UnitaryCost));
this.Write(" ");
#line default
#line hidden
#line 108 ""
this.Write("} \n ");
if (!string.IsNullOrWhiteSpace(wr.ProductReference)) {
#line default
#line hidden
#line 109 ""
this.Write(" (");
#line default
#line hidden
#line 109 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.ProductReference));
#line default
#line hidden
#line 109 ""
this.Write(")");
#line default
#line hidden
@ -409,49 +385,55 @@ namespace Yavsc.templates {
#line hidden
#line 110 ""
this.Write("\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\\geometry{verbose,tmargin=4em,bmargin=8em,lmargin=6em,rmargin=6em}\n\\setlength{\\parindent}{0pt}\n\\setlength{\\parskip}{1ex plus 0.5ex minus 0.2ex}\n\n\\thispagestyle{fancy}\n\\pagestyle{fancy}\n\\setlength{\\parindent}{0pt}\n\n\\renewcommand{\\headrulewidth}{0pt}\n\\cfoot{\n ");
this.Write("} {");
#line default
#line hidden
#line 123 ""
if (!string.IsNullOrWhiteSpace(from.Name)) {
#line 110 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.Count));
#line default
#line hidden
#line 124 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Name ));
#line 110 ""
this.Write("} {");
#line default
#line hidden
#line 124 ""
#line 110 ""
this.Write(this.ToStringHelper.ToStringWithCulture(wr.UnitaryCost));
#line default
#line hidden
#line 110 ""
this.Write("} \n ");
#line default
#line hidden
#line 111 ""
}
#line default
#line hidden
#line 125 ""
this.Write(" ");
#line 112 ""
this.Write("\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\\geometry{verbose,tmargin=4em,bmargin=8em,lmargin=6em,rmargin=6em}\n\\setlength{\\parindent}{0pt}\n\\setlength{\\parskip}{1ex plus 0.5ex minus 0.2ex}\n\n\\thispagestyle{fancy}\n\\pagestyle{fancy}\n\\setlength{\\parindent}{0pt}\n\n\\renewcommand{\\headrulewidth}{0pt}\n\\cfoot{\n ");
#line default
#line hidden
#line 125 ""
if (!string.IsNullOrWhiteSpace(from.Address)) {
if (!string.IsNullOrWhiteSpace(from.Name)) {
#line default
#line hidden
#line 126 ""
this.Write(" - ");
#line default
#line hidden
#line 126 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Address ));
this.Write(this.ToStringHelper.ToStringWithCulture( from.Name ));
#line default
#line hidden
@ -463,119 +445,119 @@ namespace Yavsc.templates {
#line hidden
#line 127 ""
this.Write(" \n ");
this.Write(" ");
#line default
#line hidden
#line 127 ""
if (!string.IsNullOrWhiteSpace(from.Address)) {
#line default
#line hidden
#line 128 ""
if (!string.IsNullOrWhiteSpace(from.CityAndState)) {
#line default
#line hidden
#line 129 ""
this.Write(" - ");
#line default
#line hidden
#line 129 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.CityAndState ));
#line 128 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Address ));
#line default
#line hidden
#line 128 ""
}
#line default
#line hidden
#line 129 ""
}
this.Write(" \n ");
#line default
#line hidden
#line 130 ""
this.Write(" \\newline\n \\small{\n ");
if (!string.IsNullOrWhiteSpace(from.CityAndState)) {
#line default
#line hidden
#line 131 ""
this.Write(" - ");
#line default
#line hidden
#line 131 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.CityAndState ));
#line default
#line hidden
#line 131 ""
}
#line default
#line hidden
#line 132 ""
if (!string.IsNullOrWhiteSpace(from.Email)) {
this.Write(" \\newline\n \\small{\n ");
#line default
#line hidden
#line 133 ""
#line 134 ""
if (!string.IsNullOrWhiteSpace(efrom)) {
#line default
#line hidden
#line 135 ""
this.Write("E-mail: ");
#line default
#line hidden
#line 133 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Email ));
#line 135 ""
this.Write(this.ToStringHelper.ToStringWithCulture( efrom ));
#line default
#line hidden
#line 133 ""
#line 135 ""
}
#line default
#line hidden
#line 134 ""
#line 136 ""
this.Write(" ");
#line default
#line hidden
#line 134 ""
#line 136 ""
if (!string.IsNullOrWhiteSpace(from.Mobile)) {
#line default
#line hidden
#line 135 ""
#line 137 ""
this.Write(" - Téléphone mobile: ");
#line default
#line hidden
#line 135 ""
#line 137 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Mobile ));
#line default
#line hidden
#line 135 ""
}
#line default
#line hidden
#line 136 ""
this.Write(" ");
#line default
#line hidden
#line 136 ""
if (!string.IsNullOrWhiteSpace(from.Phone)) {
#line default
#line hidden
#line 137 ""
this.Write(" - Téléphone fixe: ");
#line default
#line hidden
#line 137 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Phone ));
#line default
#line hidden
#line 137 ""
}
@ -583,164 +565,194 @@ namespace Yavsc.templates {
#line hidden
#line 138 ""
this.Write(" ");
#line default
#line hidden
#line 138 ""
if (!string.IsNullOrWhiteSpace(from.Phone)) {
#line default
#line hidden
#line 139 ""
this.Write(" - Téléphone fixe: ");
#line default
#line hidden
#line 139 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Phone ));
#line default
#line hidden
#line 139 ""
}
#line default
#line hidden
#line 140 ""
this.Write(" }\n}\n\n\\begin{document}\n\n% Logo de la société\n%\\includegraphics{logo.jpg}\n\n% Nom et adresse de la société\n");
#line default
#line hidden
#line 147 ""
#line 149 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Name ));
#line default
#line hidden
#line 147 ""
#line 149 ""
this.Write("\\\\\n");
#line default
#line hidden
#line 148 ""
#line 150 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.Address ));
#line default
#line hidden
#line 148 ""
#line 150 ""
this.Write("\\\\\n");
#line default
#line hidden
#line 149 ""
#line 151 ""
this.Write(this.ToStringHelper.ToStringWithCulture(from.ZipCode ));
#line default
#line hidden
#line 149 ""
#line 151 ""
this.Write(" ");
#line default
#line hidden
#line 149 ""
#line 151 ""
this.Write(this.ToStringHelper.ToStringWithCulture(from.CityAndState));
#line default
#line hidden
#line 149 ""
#line 151 ""
this.Write("\\\\\n\nFacture n°\\FactureNum\n\n\n{\\addtolength{\\leftskip}{10.5cm} %in ERT\n \\textbf{\\ClientNom} \\\\\n \\ClientAdresse \\\\\n\n} %in ERT\n\n\n\\hspace*{10.5cm}\n\\FactureLieu, le \\today\n\n~\\\\~\\\\\n\n\\textbf{Objet : \\FactureObjet \\\\}\n\n\\textnormal{\\FactureDescr}\n\n~\\\\\n\n\\begin{center}\n \\begin{tabular}{lrrr}\n \\textbf{Désignation ~~~~~~} & \\textbf{Prix unitaire} & \\textbf{Quantité} & \\textbf{Montant (EUR)} \\\\\n \\hline\n \\AfficheResultat{}\n \\end{tabular}\n\\end{center}\n\n\\begin{flushright}\n\\textit{Auto entreprise en franchise de TVA}\\\\\n\n\\end{flushright}\n~\\\\\n\n\\ifthenelse{\\equal{\\FactureAcquittee}{oui}}{\n Facture acquittée.\n}{\n\n À régler par chèque ou par virement bancaire :\n\n \\begin{center}\n \\begin{tabular}{|c c c c|}\n ");
#line default
#line hidden
#line 194 ""
#line 196 ""
if (!string.IsNullOrWhiteSpace(from.BankCode) && !string.IsNullOrWhiteSpace(from.WicketCode)
&& !string.IsNullOrWhiteSpace(from.AccountNumber) ) {
#line default
#line hidden
#line 196 ""
#line 198 ""
this.Write(" \\hline \\textbf{Code banque} & \\textbf{Code guichet} & \\textbf{N° de Compte} & \\textbf{Clé RIB} \\\\\n ");
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.BankCode ));
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(" & ");
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.WicketCode ));
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(" & ");
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(this.ToStringHelper.ToStringWithCulture(from.AccountNumber ));
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(" & ");
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(this.ToStringHelper.ToStringWithCulture(from.BankedKey));
#line default
#line hidden
#line 197 ""
#line 199 ""
this.Write(" \\\\\n ");
#line default
#line hidden
#line 198 ""
#line 200 ""
}
if (!string.IsNullOrWhiteSpace(from.IBAN) && !string.IsNullOrWhiteSpace(from.BIC)) {
#line default
#line hidden
#line 200 ""
#line 202 ""
this.Write(" \\hline \\textbf{IBAN N°} & \\multicolumn{3}{|l|}{ ");
#line default
#line hidden
#line 200 ""
#line 202 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.IBAN ));
#line default
#line hidden
#line 200 ""
#line 202 ""
this.Write(" } \\\\\n \\hline \\textbf{Code BIC} & \\multicolumn{3}{|l|}{ ");
#line default
#line hidden
#line 201 ""
#line 203 ""
this.Write(this.ToStringHelper.ToStringWithCulture( from.BIC ));
#line default
#line hidden
#line 201 ""
#line 203 ""
this.Write(" }\n ");
#line default
#line hidden
#line 202 ""
#line 204 ""
}
#line default
#line hidden
#line 203 ""
#line 205 ""
this.Write(" \\\\\n \\hline\n \\end{tabular}\n \\end{center}\n}\n\\end{document}\n");
#line default
@ -819,6 +831,52 @@ namespace Yavsc.templates {
}
}
}
bool _efromAcquired = false;
if (((this.Session != null) && this.Session.ContainsKey("efrom"))) {
object data = this.Session["efrom"];
if (typeof(String).IsAssignableFrom(data.GetType())) {
this._efromField = ((String)(data));
_efromAcquired = true;
}
else {
this.Error("The type 'String' of the parameter 'efrom' did not match the type passed to the template");
}
}
if ((_efromAcquired == false)) {
object data = System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("efrom");
if ((data != null)) {
if (typeof(String).IsAssignableFrom(data.GetType())) {
this._efromField = ((String)(data));
_efromAcquired = true;
}
else {
this.Error("The type 'String' of the parameter 'efrom' did not match the type passed to the template");
}
}
}
bool _etoAcquired = false;
if (((this.Session != null) && this.Session.ContainsKey("eto"))) {
object data = this.Session["eto"];
if (typeof(String).IsAssignableFrom(data.GetType())) {
this._etoField = ((String)(data));
_etoAcquired = true;
}
else {
this.Error("The type 'String' of the parameter 'eto' did not match the type passed to the template");
}
}
if ((_etoAcquired == false)) {
object data = System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("eto");
if ((data != null)) {
if (typeof(String).IsAssignableFrom(data.GetType())) {
this._etoField = ((String)(data));
_etoAcquired = true;
}
else {
this.Error("The type 'String' of the parameter 'eto' did not match the type passed to the template");
}
}
}
}
}

View file

@ -11,6 +11,8 @@
<#@ parameter type="Estimate" name="estim" #>
<#@ parameter type="Profile" name="from" #>
<#@ parameter type="Profile" name="to" #>
<#@ parameter type="String" name="efrom" #>
<#@ parameter type="String" name="eto" #>
\documentclass[french,11pt]{article}
\usepackage{babel}
@ -93,8 +95,8 @@
<# if (!string.IsNullOrWhiteSpace(to.Mobile)) { #>
Mobile: <#= to.Mobile #>\\
<# } #>
<# if (!string.IsNullOrWhiteSpace(to.Email)) { #>
E-mail: <#= to.Email #><# } #>
<# if (!string.IsNullOrWhiteSpace(eto)) { #>
E-mail: <#= eto #><# } #>
}
% Liste des produits facturés : Désignation, prix
@ -120,7 +122,7 @@
<# if (!string.IsNullOrWhiteSpace(from.Address)) { #> - <#= from.Address #><# } #>
<# if (!string.IsNullOrWhiteSpace(from.CityAndState)) { #> - <#= from.CityAndState #><# } #> \newline
\small{
<# if (!string.IsNullOrWhiteSpace(from.Email)) { #>E-mail: <#= from.Email #><# } #>
<# if (!string.IsNullOrWhiteSpace(efrom)) { #>E-mail: <#= efrom #><# } #>
<# if (!string.IsNullOrWhiteSpace(from.Mobile)) { #> - Téléphone mobile: <#= from.Mobile #><# } #>
<# if (!string.IsNullOrWhiteSpace(from.Phone)) { #> - Téléphone fixe: <#= from.Phone #><# } #>
}