ToDo notifications assignment  Topic is solved

Discussions relating to plugin development, and the Jiwa API.

Re: ToDo notifications assignment  Topic is solved

Postby SBarnes » Sat Oct 07, 2023 5:47 pm

Ok, I believe that Mike is suggesting you use a group as the list of staff ids that get added to the to do as collaborators, and he is saying if you write the code that way then the list can be changed through the user interface of Jiwa by what is already there.

If I was approaching doing this the the way I would avoid the doubling up on the quote is add a custom field to the to do to link in the quote and create the quote as a place holder at the same time that the to do gets created, you could even then go as far as on the save of the quote to marking the to do off as completed.

And if you want to get a bit fancy you could introduce a form to show the details of outstanding to dos and quotes together which is done something like the below, obviously you wouldn't need a parameter to the form or stored procedure and could just add the form to the menu but what JiwaFinancials.Jiwa.JiwaApplication.NavigationListUI.NavigationList does is shows a grid in the form that loads the stored procedure data into based upon the two result sets and can have drill downs to other forms as needed in this case it would be to quote form and to do form:

Code: Select all

CGBackOrdersForm form;
             form = this.Manager.FormFactory.CreateForm<CGBackOrdersForm>("Back Orders" );
             form.SetParams(gInventoryID);
      
             form.Start();
             form.Show();

public class CGBackOrdersForm : JiwaFinancials.Jiwa.JiwaApplication.NavigationListUI.NavigationList
   {
      public CGBackOrdersForm()
      {
         base.StoredProcName = "usp_JIWA_NavigationList_CGBackOrders";
         base.Text = "Back Orders";

      }
      
      
      public void SetParams(string InventoryID)
      {

         
         
         SqlParameter newSQLParameter3 = new SqlParameter("@InventoryID", SqlDbType.Char )  {Value = InventoryID};
            base.SQLParameters.Add(newSQLParameter3);
      }
      
      public override void Start()
      {
         base.Start();

      }
      

   }   


and the stored procedure like this where it returns two result sets one for the schema and one for data

Code: Select all
CREATE PROCEDURE [dbo].[usp_JIWA_NavigationList_CGBackOrders] ( @InventoryID as varchar(20))
AS
SET NOCOUNT ON
   
DECLARE @Schema TABLE
(
   id INT IDENTITY NOT NULL,
   Name VARCHAR(50) NOT NULL,   
   Caption VARCHAR(50) NOT NULL,
   IsVisible BIT NOT NULL,
   DefaultWidth INT NOT NULL,
   IsDrillDown BIT NOT NULL,
   DrillDownSourceIDColumnName VARCHAR(50) NULL,
   DrillDownClassNameColumnName VARCHAR(50) NULL,
   FormatString VARCHAR(255) NULL,
   DecimalPlacesColumnName VARCHAR(50) NULL
)

   -- First Result defines the schema
INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'InvoiceID', 'InvoiceID', 0, 0, 0, NULL, NULL, NULL, NULL
   
   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'InvoiceNo', 'InvoiceNo', 0, 0, 0, NULL, NULL, NULL, NULL
   
   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'InvHistoryNo', 'InvHistoryNo', 0, 0, 0, NULL, NULL, NULL, NULL   
   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'FullInvNo', 'Invoice', 1, 7, 1, 'InvoiceID', 'SY_Forms_ClassNameOrd', NULL, NULL
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'InvDate', 'Date', 1, 8, 0, 0, NULL, 'dd/MM/yyyy', NULL

   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'DebtorID', 'DebtorID', 0, 0, 0, NULL, NULL, NULL, NULL

   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'AccountNo', 'Account', 1, 7, 1, 'DebtorID', 'SY_Forms_ClassNameDB', NULL, NULL

   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'Name', 'Name', 1, 20, 1, 'DebtorID', 'SY_Forms_ClassNameDB', NULL, NULL

   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'InventoryID', 'InventoryID', 0, 0, 0, NULL, NULL, NULL, NULL   

   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'PartNo', 'Part', 1, 5, 1, 'InventoryID', 'SY_Forms_ClassNameInv', NULL, NULL
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'Description', 'Description', 1, 20, 1, 'InventoryID', 'SY_Forms_ClassNameInv', NULL, NULL
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'QuantityThisDel', 'Quantity', 1, 7, 0, NULL, NULL, '+#,##0;-#,##0', 'DecimalPlacesQty'
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'QuantityBackOrd', 'Back Ord', 1, 7, 0, NULL, NULL, '+#,##0;-#,##0', 'DecimalPlacesQty'   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'DemandQuantity', 'Demand', 1, 7, 0, NULL, NULL, '+#,##0;-#,##0', 'DecimalPlacesQty'   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'CurrentLineTotal', 'CurrentLineTotal', 0, 0, 0, NULL, NULL, NULL, NULL   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'TaxToCharge', 'TaxToCharge', 0, 0, 0, NULL, NULL, NULL, NULL      
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'NetLinetotal', 'Total', 1, 7, 0, NULL, NULL, '{0:$#,#.00;$-#,#.00}', 'DecimalPlacesTotal'   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'SY_Forms_ClassNameOrd', 'SY_Forms_ClassNameOrd', 0, 0, 0, NULL, NULL, NULL, NULL
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'SY_Forms_ClassNameDB', 'SY_Forms_ClassNameDB', 0, 0, 0, NULL, NULL, NULL, NULL
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'SY_Forms_ClassNameInv', 'SY_Forms_ClassNameInv', 0, 0, 0, NULL, NULL, NULL, NULL
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'DecimalPlacesQty', 'DecimalPlacesQty', 0, 0, 0, NULL, NULL, NULL, NULL   
   
   INSERT INTO @Schema(Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName)
   SELECT 'DecimalPlacesTotal', 'DecimalPlacesTotal', 0, 0, 0, NULL, NULL, NULL, NULL   

   

   SELECT Name, Caption, IsVisible, DefaultWidth, IsDrillDown, DrillDownSourceIDColumnName, DrillDownClassNameColumnName, FormatString, DecimalPlacesColumnName
   FROM @Schema
   ORDER BY id

   -- Second Result returns the data
SELECT        SO_Main.InvoiceID, SO_Main.InvoiceNo, SO_History.HistoryNo as InvHistoryNo, SO_Main.InvoiceNo + '-D' + RIGHT('00' + CAST(SO_History.HistoryNo AS varchar(2)), 2) AS FullInvNo, SO_History.RecordDate AS InvDate,
                         SO_Main.DebtorID, dbo.DB_Main.AccountNo, dbo.DB_Main.Name, SO_Lines.InventoryID, SO_Lines.PartNo, SO_Lines.Description, SO_Lines.QuantityThisDel, SO_Lines.QuantityBackOrd,
                         SO_Lines.DemandQuantity, SO_Lines.CurrentLineTotal, SO_Lines.TaxToCharge, SO_Lines.CurrentLineTotal - SO_Lines.TaxToCharge AS NetLinetotal,
                         'JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm' AS SY_Forms_ClassNameOrd, 'JiwaFinancials.Jiwa.JiwaDebtorsUI.frmDebtor' AS SY_Forms_ClassNameDB,
                         'JiwaFinancials.Jiwa.JiwaInventoryUI.InventoryMaintenanceForm' AS SY_Forms_ClassNameInv, 0 AS DecimalPlacesQty, 2 AS DecimalPlacesTotal
FROM            dbo.SO_Main AS SO_Main INNER JOIN
                         dbo.SO_History AS SO_History ON SO_Main.InvoiceID = SO_History.InvoiceID AND SO_Main.CurrentHistoryNo = SO_History.HistoryNo INNER JOIN
                         dbo.SO_Lines AS SO_Lines ON SO_History.InvoiceHistoryID = SO_Lines.InvoiceHistoryID INNER JOIN
                         dbo.DB_Main ON SO_Main.DebtorID = dbo.DB_Main.DebtorID
WHERE        ((SO_Lines.QuantityBackOrd <> 0) OR
                         (SO_Main.Status = 0 OR
                         SO_Main.Status = 3) AND (SO_Lines.QuantityThisDel <> 0) OR
                         (SO_Main.Status = 0 OR
                         SO_Main.Status = 3) AND (ISNULL(SO_Lines.DemandQuantity, 0) <> 0))
and InventoryID =  @InventoryID
order by InvDate desc
GO




Regards
Stuart Barnes
SBarnes
Shihan
Shihan
 
Posts: 1619
Joined: Fri Aug 15, 2008 3:27 pm
Topics Solved: 175

Re: ToDo notifications assignment

Postby JuiceyBrucey » Mon Oct 09, 2023 4:37 pm

Thank you for reply.
Unfortunately it is over my head and things have taken too long already.
So I have sent a request for a quote.
Thank you for all your help.
Cheers
JuiceyBrucey
Frequent Contributor
Frequent Contributor
 
Posts: 132
Joined: Tue Aug 18, 2020 7:19 pm
Topics Solved: 1

Previous

Return to Technical and or Programming

Who is online

Users browsing this forum: No registered users and 33 guests