signing estimate
This commit is contained in:
@ -1,19 +1,22 @@
|
||||
|
||||
namespace Yavsc.Interfaces.Workflow {
|
||||
public interface IEvent {
|
||||
/// <summary>
|
||||
/// <c>/topic/(bookquery|estimate)</c>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string Topic { get; set ; }
|
||||
/// <summary>
|
||||
/// Should be the user's name
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string Sender { get; set ; }
|
||||
/// <summary>
|
||||
/// The message
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string Message { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public interface IEvent {
|
||||
/// <summary>
|
||||
/// <c>/topic/(bookquery|estimate)</c>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string Topic { get; set ; }
|
||||
/// <summary>
|
||||
/// Should be the user's name
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string Sender { get; set ; }
|
||||
/// <summary>
|
||||
/// The message
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string Message { get; set; }
|
||||
}
|
@ -16,6 +16,8 @@ namespace Yavsc.Models.Billing
|
||||
public string Description { get; set; }
|
||||
public BaseProduct Article { get; set; }
|
||||
public int Count { get; set; }
|
||||
|
||||
[DisplayFormat(DataFormatString="{0:C}")]
|
||||
public decimal UnitaryCost { get; set; }
|
||||
|
||||
public long EstimateId { get; set; }
|
||||
|
@ -9,6 +9,7 @@ namespace Yavsc.Models.Billing
|
||||
{
|
||||
using Interfaces;
|
||||
using Models.Workflow;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public partial class Estimate : IEstimate
|
||||
{
|
||||
@ -22,7 +23,7 @@ namespace Yavsc.Models.Billing
|
||||
/// it will result in a new estimate template
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[ForeignKey("CommandId")]
|
||||
[ForeignKey("CommandId"),JsonIgnore]
|
||||
public BookQuery Query { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Title { get; set; }
|
||||
@ -62,12 +63,12 @@ namespace Yavsc.Models.Billing
|
||||
[Required]
|
||||
public string OwnerId { get; set; }
|
||||
|
||||
[ForeignKey("OwnerId")]
|
||||
[ForeignKey("OwnerId"),JsonIgnore]
|
||||
public virtual PerformerProfile Owner { get; set; }
|
||||
|
||||
[Required]
|
||||
public string ClientId { get; set; }
|
||||
[ForeignKey("ClientId")]
|
||||
[ForeignKey("ClientId"),JsonIgnore]
|
||||
public virtual ApplicationUser Client { get; set; }
|
||||
|
||||
public string CommandType
|
||||
|
@ -1,7 +1,3 @@
|
||||
|
||||
namespace Yavsc.Models.Messaging
|
||||
{
|
||||
|
||||
//
|
||||
// BookQueryEvent.cs
|
||||
//
|
||||
@ -23,6 +19,12 @@ namespace Yavsc.Models.Messaging
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
namespace Yavsc.Models.Messaging
|
||||
{
|
||||
using Interfaces.Workflow;
|
||||
|
||||
|
||||
|
||||
public class BookQueryEvent: BookQueryProviderInfo, IEvent
|
||||
{
|
||||
public BookQueryEvent()
|
||||
|
@ -1,16 +1,23 @@
|
||||
using System.Linq;
|
||||
using Microsoft.Data.Entity;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using Yavsc.Helpers;
|
||||
using Yavsc.Models.Billing;
|
||||
|
||||
namespace Yavsc.Models.Messaging
|
||||
{
|
||||
using Interfaces.Workflow;
|
||||
using Billing;
|
||||
using Yavsc.Helpers;
|
||||
using System;
|
||||
|
||||
public class EstimationEvent: IEvent
|
||||
{
|
||||
public EstimationEvent(ApplicationDbContext context, Estimate estimate, IStringLocalizer SR)
|
||||
{
|
||||
Topic = "Estimation";
|
||||
Estimation = estimate;
|
||||
var perfer = context.Performers.FirstOrDefault(
|
||||
var perfer = context.Performers.Include(
|
||||
p=>p.Performer
|
||||
).FirstOrDefault(
|
||||
p => p.PerformerId == estimate.OwnerId
|
||||
);
|
||||
// Use estimate.OwnerId;
|
||||
@ -27,28 +34,19 @@ namespace Yavsc.Models.Messaging
|
||||
ProviderClientInfo ProviderInfo { get; set; }
|
||||
Estimate Estimation { get; set; }
|
||||
|
||||
private string subtopic = null;
|
||||
string IEvent.Topic
|
||||
{
|
||||
get
|
||||
{
|
||||
return "/topic/estimate"+subtopic!=null?"/"+subtopic:"";
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
subtopic = value;
|
||||
}
|
||||
}
|
||||
|
||||
string IEvent.Sender
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
string IEvent.Message
|
||||
public string Topic
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public string Sender
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public string Message
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
}
|
||||
}
|
@ -212,14 +212,13 @@
|
||||
<data name="EstimateToProduce"><value>Demandes de Devis en souffrance</value></data>
|
||||
<data name="EstimateToSignAsPro"><value>Devis à valider</value></data>
|
||||
<data name="EstimateToSignAsCli"><value>Devis à accèpter ou refuser</value></data>
|
||||
<data name="EstimationMessageToClient"><value>{0} à validé et évalué votre demande, avec un devis à {1:C}</value></data>
|
||||
|
||||
<data name="EventDate"><value>Date de l'évennement</value></data>
|
||||
|
||||
<data name="BillToSignAsPro"><value>Factures à produire</value></data>
|
||||
<data name="BillToSignAsCli"><value>Factures à honnorer</value></data>
|
||||
<data name="PayementsDone"><value>Paiements effectués</value></data>
|
||||
|
||||
<data name="EstimationMessageToClient"><value>{0} a validé un devis pour vous : {1}\nAu total : {2} €
|
||||
Il attend maintenant votre signature.</value></data>
|
||||
<data name="EstimateWanted"><value>Demande de devis</value></data>
|
||||
<data name="Event date"><value>Date de l'évennement</value></data>
|
||||
<data name="EventWebPage"><value>Page web de l'événement</value></data>
|
||||
|
@ -12,10 +12,10 @@
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.Description)
|
||||
@Html.DisplayNameFor(model => model.Title)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.Title)
|
||||
@Html.DisplayNameFor(model => model.Description)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.Query.Client)
|
||||
@ -23,6 +23,9 @@
|
||||
<th>
|
||||
@SR["Performer"]
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.ProviderValidationDate)
|
||||
</th>
|
||||
<th>
|
||||
@SR["Id"]
|
||||
</th>
|
||||
@ -32,10 +35,10 @@
|
||||
@foreach (var item in Model) {
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Description)
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
@Html.DisplayFor(modelItem => item.Description)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Query.Client.UserName)
|
||||
@ -43,6 +46,9 @@
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Query.PerformerProfile.Performer.UserName)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.ProviderValidationDate)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Id)
|
||||
</td>
|
||||
|
@ -1,4 +1,5 @@
|
||||
@model Estimate
|
||||
|
||||
<dl class="dl-horizontal">
|
||||
<dt>
|
||||
@Html.DisplayNameFor(model => model.Title)
|
||||
@ -23,5 +24,8 @@
|
||||
}
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<label>Signature fournisseur :
|
||||
<img src="/api/pdfestimate/prosign/@Model.Id" alt="" style="height:100px; background-color: white;">
|
||||
</label>
|
||||
|
||||
@await Component.InvokeAsync("Estimate",Model.Id)
|
||||
|
Reference in New Issue
Block a user