public Order Add(int clientId, int vendorId, int?accountId, int approverId, DateTime neededDate, bool oversized, int shippingMethodId, string notes, bool attention) { /* * INSERT INTO dbo.PurchaseOrder (ClientID, AccountID, VendorID, CreatedDate, NeededDate, ApproverID, Oversized, ShippingMethodID, Notes, Attention, StatusID) * VALUES (@ClientID, @AccountID, @VendorID, @CreatedDate, @NeededDate, @ApproverID, @Oversized, @ShippingMethodID, @Notes, @Attention, 1) * * 1 = Status.Draft */ var po = new Ordering.PurchaseOrder() { Client = Require <Data.Client>(x => x.ClientID, clientId), AccountID = accountId, Vendor = Require <Ordering.Vendor>(x => x.VendorID, vendorId), CreatedDate = DateTime.Now, NeededDate = neededDate, Approver = Require <Data.Client>(x => x.ClientID, approverId), Oversized = oversized, ShippingMethod = Require <Ordering.ShippingMethod>(x => x.ShippingMethodID, shippingMethodId), Notes = notes, Attention = attention, Status = GetStatus(OrderStatus.Draft), Details = new List <Ordering.PurchaseOrderDetail>() }; DataSession.Insert(po); Tracking.Track(TrackingCheckpoints.DraftCreated, po.CreateModel <IPurchaseOrder>(), clientId, new { VendorID = vendorId, AccountID = accountId, ApproverID = approverId }); return(CreateOrder(po)); }
public Order Copy(int poid, int?accountId = null) { //INSERT INTO dbo.PurchaseOrder (ClientID, AccountID, VendorID, CreatedDate, NeededDate, ApproverID, Oversized, ShippingMethodID, Notes, Attention, StatusID) //SELECT ClientID, AccountID, VendorID, GETDATE(), DATEADD(DAY, 7, GETDATE()), ApproverID, Oversized, ShippingMethodID, Notes, Attention, 1 // get the po to be copied var po = Require <Ordering.PurchaseOrder>(x => x.POID, poid); // po may be for a different user than current, this will get the correct vendor and approver - making copies if necessary var vendor = GetVendorForCopy(po); var approver = GetApproverForCopy(po); var copy = new Ordering.PurchaseOrder() { Client = Require <Data.Client>(x => x.ClientID, Context.CurrentUser.ClientID), AccountID = accountId ?? po.AccountID, Vendor = vendor, CreatedDate = DateTime.Now, NeededDate = DateTime.Now.AddDays(7), Approver = approver, Oversized = po.Oversized, ShippingMethod = po.ShippingMethod, Notes = po.Notes, Attention = po.Attention, Status = GetStatus(OrderStatus.Draft) }; DataSession.Insert(copy); // po may be for a different user than current, this will get the correct details - making item copies if necessary var details = GetDetailsForCopy(po, copy, vendor); DataSession.Insert(details); copy.Details = details; Tracking.Track(TrackingCheckpoints.DraftCreated, copy.CreateModel <IPurchaseOrder>(), Context.CurrentUser.ClientID); return(CreateOrder(copy)); }