コード例 #1
0
        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();

        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: DocumentFactory.cs プロジェクト: asanyaga/BuildTest
        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;
        }
コード例 #4
0
        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);
                    }


                }
            }
        }
コード例 #5
0
 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;
 }
コード例 #6
0
 public ValidationResultInfo Validate(DisbursementNote itemToValidate)
 {
     return _Validate(itemToValidate);
 }