public void Save(DisbursementNote documentEntity) { tblDocument docToSave = SaveDocument(documentEntity); DisbursementNote r = documentEntity as DisbursementNote; foreach (DisbursementNoteLineItem rli in r.LineItems) { tblLineItems ll = null; if (docToSave.tblLineItems.Any(n => n.id == rli.Id)) ll = docToSave.tblLineItems.First(n => n.id == rli.Id); else { ll = new tblLineItems(); ll.id = rli.Id; ll.DocumentID = documentEntity.Id; docToSave.tblLineItems.Add(ll); } ll.ProductID = rli.Product.Id; ll.Value = rli.Value; ll.Quantity = rli.Qty; ll.Description = rli.Description; ll.LineItemSequenceNo = rli.LineItemSequenceNo; } _ctx.SaveChanges(); }
public void SubmitChanges(DisbursementNote document,BasicConfig config ) { //send commands var coc = new CreateDisbursementNoteCommand( Guid.NewGuid(), document.Id, document.DocumentIssuerUser.Id, config.CostCentreId, 0, document.DocumentIssuerCostCentreApplicationId, document.DocumentIssuerCostCentre.Id, document.DocumentRecipientCostCentre.Id, document.DocumentIssuerUser.Id, document.DocumentParentId,document.DocumentDateIssued, document.DocumentReference ); _commandRouter.RouteDocumentCommand(coc); _auditLogWFManager.AuditLogEntry("Disbursment Note", string.Format("Created Disbursement Note document: {0}", document.Id)); foreach (var item in document.LineItems) { var ali = new AddDisbursementNoteLineItemCommand( Guid.NewGuid(), document.Id, document.DocumentIssuerUser.Id, document.DocumentIssuerCostCentre.Id, 0, config.CostCentreApplicationId, 0, item.Product.Id, item.Qty, item.Value,document.DocumentParentId); _commandRouter.RouteDocumentCommand(ali); _auditLogWFManager.AuditLogEntry("Disbursment Note", string.Format("Added Product: {1}; Quantity: {2}; Value: {3}; to Disbursement Note document: {0}", document.Id,item.Product.Description,item.Qty,item.Value)); } var co = new ConfirmDisbursementNoteCommand(Guid.NewGuid(), document.Id, document.DocumentIssuerUser.Id, document.DocumentIssuerCostCentre.Id, 0, config.CostCentreApplicationId,document.DocumentParentId); _commandRouter.RouteDocumentCommand(co); _auditLogWFManager.AuditLogEntry("Disbursment Note", string.Format("Confirmed Disbursement Note document: {0}", document.Id)); }
public Document CreateDocument(Guid id, DocumentType documentType, CostCentre documentIssuerCC, CostCentre documentRecipientCC, User documentIssuerUser, string DocumentReference, double? longitude=null, double? latitude=null) { Document doc = null; switch (documentType) { case DocumentType.Order: doc = new Order(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, /*null, */documentIssuerUser, DocumentReference, longitude, latitude); break; case DocumentType.DispatchNote:// doc = new DispatchNote(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, /*null, */documentIssuerUser, DocumentReference, longitude, latitude); break; case DocumentType.Receipt: doc = new Receipt(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, documentIssuerUser, DocumentReference, longitude, latitude); break; case DocumentType.DisbursementNote: doc = new DisbursementNote(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, documentIssuerUser, DocumentReference, longitude, latitude); break; case DocumentType.CreditNote: doc = new CreditNote(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, documentIssuerUser, DocumentReference, longitude, latitude); break; case DocumentType.ReturnsNote: doc = new ReturnsNote(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, documentIssuerUser, DocumentReference, longitude, latitude); break; case DocumentType.PaymentNote: doc = new PaymentNote(id); doc = Map(doc, documentType, documentIssuerCC, documentRecipientCC, documentIssuerUser, DocumentReference, longitude, latitude); break; } return doc; }
public void Save() { using (StructureMap.IContainer c = NestedContainer) { BasicConfig config = c.GetInstance<IConfigService>().Load(); if (ReturnableItems.Count == 0) { MessageBox.Show("Add Returnable Product first"); return; } else { try { CostCentre current = Using<ICostCentreRepository>(c) .GetById( Using<IConfigService>(c).Load().CostCentreId); User user = Using<IUserRepository>(c).GetById(Using<IConfigService>(c).ViewModelParameters.CurrentUserId); CostCentre outlet = Using<ICostCentreRepository>(c).GetById(OutletLookups.OutletId); Guid appId = Using<IConfigService>(c) .Load().CostCentreApplicationId; IInventoryReceivedNoteFactory f = Using<IInventoryReceivedNoteFactory>(c); string DocumentReference = ""; string LoadNo = ""; string OrderReferences = "returnable"; Guid irnid = Guid.NewGuid(); InventoryReceivedNote grn = f.Create(current, appId, current, outlet, LoadNo, OrderReferences, user, DocumentReference, irnid); foreach (var item in ReturnableItems) { InventoryReceivedNoteLineItem li = f.CreateLineItem(item.ProductId, item.Quantity, item.UnitPrice, item.Name, 0); grn.AddLineItem(li); } DisbursementNote disbursementnote = new DisbursementNote(Guid.NewGuid()) { DocumentDateIssued = DateReceived, DocumentIssuerCostCentre = current, DocumentIssuerCostCentreApplicationId = appId, DocumentIssuerUser = user, DocumentRecipientCostCentre = current, DocumentReference = DocumentReference, DocumentType = DocumentType.DisbursementNote, Status = DocumentStatus.New }; foreach (var item in ReturnableItems) { DisbursementNoteLineItem li = new DisbursementNoteLineItem(Guid.NewGuid()) { IsNew = true, Description = item.Name, LineItemSequenceNo = 0, Product = Using<IProductRepository>(c).GetById(item.ProductId), Qty = item.Quantity, Value = item.UnitPrice }; disbursementnote.AddLineItem(li); } Guid id = Guid.NewGuid(); var ian1 = Using<IInventoryAdjustmentNoteFactory>(c) .Create(current, appId, current, user, Guid.NewGuid().ToString(), InventoryAdjustmentNoteType.Returns, Guid.Empty); foreach (var item in ReturnableItems) { Inventory inve = Using<IInventoryRepository>(c).GetByProductIdAndWarehouseId(item.ProductId, current.Id); int inveValue = 0; if (inve != null) inveValue = item.Quantity; InventoryAdjustmentNoteLineItem li = Using<IInventoryAdjustmentNoteFactory>(c) .CreateLineItem(item.Quantity + inveValue, item.ProductId, 0, item.UnitPrice, item.Name); ian1.AddLineItem(li); } ian1.Confirm(); grn.Confirm(); disbursementnote.Confirm(); //Using<IInventoryAdjustmentNoteWfManager>(c).SubmitChanges(ian1); Using<IProducerIRNWFManager>(c).SubmitChanges(grn,config); Using<IConfirmDisbursementNoteWorkFlow>(c).SubmitChanges(disbursementnote,config); ClearAll(); if ( MessageBox.Show( "Confirmed successfully,Click OK to view summary. Click Cancel to continue receiving Returnables", "Receive Returnable ", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { SendNavigationRequestMessage( new Uri("/views/Reports/InventoryAdjustmentsReport.xaml?current=" + ian1.Id, UriKind.Relative)); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
private DisbursementNote Map(tblDocument tblDoc) { var doc = new DisbursementNote(tblDoc.Id); _Map(tblDoc,doc); var lineItem = tblDoc.tblLineItems.Select(n => MapDisbursementNoteLineItems(n)).ToList(); doc._SetLineItems(lineItem); return doc; }
public ValidationResultInfo Validate(DisbursementNote itemToValidate) { return _Validate(itemToValidate); }